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] f44: update to xen 4.21.2 Date: Thu, 30 Jul 2026 15:02:02 GMT Message-ID: <178542372244.1.17663596591177064262.rpms-xen-bbef6d9f4f23@fedoraproject.org> List-ID: X-Git-Repo: rpms/xen X-Git-Branch: f44 X-Git-Rev: bbef6d9f4f233ed7e1f60af2f35e8ab59d530474 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMveGVuCiAgICAgICAgICAgIEJyYW5jaCA6IGY0NAogICAgICAgICAgICBDb21t aXQgOiBiYmVmNmQ5ZjRmMjMzZWQ3ZTFmNjBhZjJmMzVlOGFiNTlkNTMwNDc0CiAgICAgICAgICAg IEF1dGhvciA6IE1pY2hhZWwgWW91bmcgPG0uYS55b3VuZ0BkdXJoYW0uYWMudWs+CiAgICAgICAg ICAgIERhdGUgICA6IDIwMjYtMDctMzBUMTU6NTc6MzYrMDE6MDAKICAgICAgICAgICAgU3RhdHMg IDogKzI0Ly00NTMyIGluIDM1IGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0cHM6Ly9z cmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy94ZW4vYy9iYmVmNmQ5ZjRmMjMzZWQ3ZTFmNjBhZjJm MzVlOGFiNTlkNTMwNDc0P2JyYW5jaD1mNDQKCiAgICAgICAgICAgIExvZzoKICAgICAgICAgICAg dXBkYXRlIHRvIHhlbiA0LjIxLjIKCmluY2x1ZGVzIG11bHRpcGxlIHNlY3VyaXR5IGZpeGVzCgot LS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDZiNzQxMTguLmE5 OWE0ZWIgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtNyw0ICs3 LDQgQEAgcGNpdXRpbHMtMi4yLjkudGFyLmJ6MgogemxpYi0xLjIuMy50YXIuZ3oKIHBvbGFyc3Ns LTEuMS40LWdwbC50Z3oKIC9taW5pLW9zLTQuMjEuMC50YXIueHoKLS94ZW4tNC4yMS4xLnRhci54 egorL3hlbi00LjIxLjIudGFyLnh6CgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5k ZXggNGIzMGZlYS4uOGZjNjdjMyAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBA IC01LDQgKzUsNCBAQCBTSEE1MTIgKHpsaWItMS4yLjMudGFyLmd6KSA9IDAyMWI5NThmY2QwZDM0 NmM0YmE3NjFiY2YwY2M0MGYzNTIyZGU2MTg2Y2Y1YTBhNmVhMwogU0hBNTEyIChwb2xhcnNzbC0x LjEuNC1ncGwudGd6KSA9IDg4ZGE2MTRlNGQzZjQ0MDljNGZkM2JiM2U0NGM3NTg3YmEwNTFlM2Zl ZDRlMzNkNTI2MDY5YTY3ZTgxODAyMTJlMWVhMjJkYTk4NDY1NmY1MGUyOTAwNDlmNjBkZGNhNjUz ODNlNTk4M2MwZjg4ODRmNjQ4ZDcxZjY5ODMwM2FkCiBTSEE1MTIgKHBjaXV0aWxzLTIuMi45LnRh ci5iejIpID0gMmIzZDk4ZDAyN2U0NmQ4YzA4MDM3MzY2ZGRlNmYwNzgxY2EwM2M2MTBlZjJiMzgw OTg0NjM5ZTRlZjM5ODk5ZWQ4ZDhiOGU0Y2Q5YzlkYzU0ZGYxMDEyNzliOTU4NzliZDY2YmZkNGQw NGFkMDdmZWY0MWU4NDdlYTdhZTMyYjUKIFNIQTUxMiAobWluaS1vcy00LjIxLjAudGFyLnh6KSA9 IDc1NDM3NzRkMTVkYTg0NDc2ZDkzZDA0MTU0OTkwOTIzYzgyMjA5Y2IzZmExMjU1NzRjMDM4MzY1 MmM1YTMxMDk1NzIwMGY1NGI2M2IzNDUwMjE2MWY5YzNhZmNlNDkwN2UwMDYwZDkwMzZmM2VhZjNh N2NiNmIxYjMxMTliNTQ2Ci1TSEE1MTIgKHhlbi00LjIxLjEudGFyLnh6KSA9IDhkZmU2NTI1NWUy MDJiM2RhY2Y5ZDBkNzI2NTYzNmJjMWY5NzYyN2MxMWIwOGJhYmMxM2E1YjhlNzRjN2M2NWU3ZTJj NmExNTEzZTI4YjNjNzEzZmU1MTJlZGI2NzAyYTczYjJiZjY2N2UyYThmMmNlODI1YjE5NmEyY2Q1 YWFiCitTSEE1MTIgKHhlbi00LjIxLjIudGFyLnh6KSA9IDc4ZGUyNmFiMDFmMDYwMjQ4OTBlODY3 YzBiNGEzOGQ0YTU5MGVjZmZlYmMxOGY4ZGFmYTg0MmJhZWIxNDRiMGYwNDYzZjJjZjI0MWViM2Iw ODExNzliMzU3ZGRmNWVlMzg5ZDg4M2NhMjNhMTJhMmJlNTFiYTMxNjFmYjhjMGZkCgpkaWZmIC0t Z2l0IGEveGVuLmdpdC05MGIyMDU0N2I3NTZhNWNmOWIwZmVjOWZiMGRlNWIzNjFlOGJmNGMzLnBh dGNoIGIveGVuLmdpdC05MGIyMDU0N2I3NTZhNWNmOWIwZmVjOWZiMGRlNWIzNjFlOGJmNGMzLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNWU2NWJhLi4wMDAwMDAwCi0tLSBh L3hlbi5naXQtOTBiMjA1NDdiNzU2YTVjZjliMGZlYzlmYjBkZTViMzYxZThiZjRjMy5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLUZyb20gOTBiMjA1NDdiNzU2YTVjZjliMGZl YzlmYjBkZTViMzYxZThiZjRjMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFuZHJl dyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci1EYXRlOiBGcmksIDEwIEFwciAy MDI2IDIxOjU1OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHg4Ni9hbWQ6IE1pdGlnYXRlIEFN RC1TTi03MDUzIC8gRlAtRFNTCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PXV0ZjgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQot VGhpcyBpcyBYU0EtNDg4IC8gQ1ZFLTIwMjUtNTQ1MDUKLQotU2lnbmVkLW9mZi1ieTogQW5kcmV3 IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLVJldmlld2VkLWJ5OiBSb2dlciBQ YXUgTW9ubsODwqkgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotKGNoZXJyeSBwaWNrZWQgZnJvbSBj b21taXQgOTk5MTJkMzQ2MDA5ZmRhMWU3ZmIxNTEwYzk1MDFmYmFiMTdlOTJhMCkKLS0tLQotIHhl bi9hcmNoL3g4Ni9jcHUvYW1kLmMgICAgICAgICAgICAgICB8IDM3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysKLSB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLWluZGV4LmggfCAgMSAr Ci0gMiBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvY3B1L2FtZC5jIGIveGVuL2FyY2gveDg2L2NwdS9hbWQuYwotaW5kZXggOGM1NWQy MzNmMy4uMWJiMDc2NmViZiAxMDA2NDQKLS0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMKLSsr KyBiL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMKLUBAIC0xMDQ4LDYgKzEwNDgsNDIgQEAgdm9pZCBh bWRfaW5pdF9kZV9jZmcoY29uc3Qgc3RydWN0IGNwdWluZm9feDg2ICpjKQotICAgICB3cm1zcmwo TVNSX0FNRDY0X0RFX0NGRywgdmFsIHwgbmV3KTsKLSB9Ci0gCi0rc3RhdGljIHZvaWQgYW1kX2lu aXRfZnBfY2ZnKGNvbnN0IHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKLSt7Ci0rICAgIHVpbnQ2NF90 IHZhbCwgbmV3ID0gMDsKLSsKLSsgICAgLyogSWYgdmlydHVhbGlzZWQsIHdlIHdvbid0IGhhdmUg bXV0YWJsZSBhY2Nlc3MgZXZlbiBpZiB3ZSBjYW4gcmVhZCBpdC4gKi8KLSsgICAgaWYgKCBjcHVf aGFzX2h5cGVydmlzb3IgKQotKyAgICAgICAgcmV0dXJuOwotKwotKyAgICAvKgotKyAgICAgKiBP biBaZW4xLCBtaXRpZ2F0ZSBTQi03MDUzIC8gRlAtRFNTIEZsb2F0aW5nIFBvaW50IERpdmlkZXIg U3RhdGUKLSsgICAgICogU2FtcGxpbmcgYnkgc2V0dGluZyBiaXQgOSBhcyBpbnN0cnVjdGVkLgot KyAgICAgKi8KLSsgICAgaWYgKCBjLT5mYW1pbHkgPT0gMHgxNyAmJiBpc196ZW4xX3VhcmNoKCkg KQotKyAgICAgICAgbmV3IHw9IDEgPDwgOTsKLSsKLSsgICAgLyoKLSsgICAgICogQXZvaWQgcmVh ZGluZyBGUF9DRkcgaWYgd2UgZG9uJ3QgaW50ZW5kIHRvIGNoYW5nZSBhbnl0aGluZy4gIFRoZQot KyAgICAgKiByZWdpc3RlciBkb2Vzbid0IGV4aXN0IG9uIGFsbCBmYW1pbGllcy4KLSsgICAgICov Ci0rICAgIGlmICggIW5ldyApCi0rICAgICAgICByZXR1cm47Ci0rCi0rICAgIHZhbCA9IHJkbXNy KE1TUl9BTUQ2NF9GUF9DRkcpOwotKwotKyAgICBpZiAoICh2YWwgJiBuZXcpID09IG5ldyApCi0r ICAgICAgICByZXR1cm47Ci0rCi0rICAgIC8qCi0rICAgICAqIEZQX0NGRyBpcyBhIENvcmUtc2Nv cGVkIE1TUiwgYW5kIHRoaXMgd3JpdGUgaXMgcmFjeS4gIEhvd2V2ZXIsIGJvdGgKLSsgICAgICog dGhyZWFkcyBjYWxjdWxhdGUgdGhlIG5ldyB2YWx1ZSBmcm9tIHN0YXRlIHdoaWNoIGV4cGVjdGVk IHRvIGJlCi0rICAgICAqIGNvbnNpc3RlbnQgYWNyb3NzIENQVXMgYW5kIHVucmVsYXRlZCB0byB0 aGUgb2xkIHZhbHVlLCBzbyB0aGUgcmVzdWx0Ci0rICAgICAqIHNob3VsZCBiZSBjb25zaXN0ZW50 LgotKyAgICAgKi8KLSsgICAgd3Jtc3IoTVNSX0FNRDY0X0ZQX0NGRywgdmFsIHwgbmV3KTsKLSt9 Ci0rCi0gdm9pZCBfX2luaXQgYW1kX2luaXRfbGZlbmNlX2Rpc3BhdGNoKHZvaWQpCi0gewotICAg ICBzdHJ1Y3QgY3B1aW5mb194ODYgKmMgPSAmYm9vdF9jcHVfZGF0YTsKLUBAIC0xMTIwLDYgKzEx NTYsNyBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBpbml0X2FtZChzdHJ1Y3QgY3B1aW5mb194ODYg KmMpCi0gCXVpbnQ2NF90IHZhbHVlOwotIAotIAlhbWRfaW5pdF9kZV9jZmcoYyk7Ci0rCWFtZF9p bml0X2ZwX2NmZyhjKTsKLSAKLSAJaWYgKGMgPT0gJmJvb3RfY3B1X2RhdGEpCi0gCQlhbWRfaW5p dF9sZmVuY2VfZGlzcGF0Y2goKTsgLyogTmVlZHMgYW1kX2luaXRfZGVfY2ZnKCkgKi8KLWRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLWluZGV4LmggYi94ZW4vYXJjaC94 ODYvaW5jbHVkZS9hc20vbXNyLWluZGV4LmgKLWluZGV4IGRmNTI1ODdjODUuLjZjNWIyNTY5ZTEg MTAwNjQ0Ci0tLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLWluZGV4LmgKLSsrKyBi L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3ItaW5kZXguaAotQEAgLTQyOCw2ICs0MjgsNyBA QAotICNkZWZpbmUgTVNSX0FNRDY0X0xTX0NGRwkJMHhjMDAxMTAyMFUKLSAjZGVmaW5lIE1TUl9B TUQ2NF9JQ19DRkcJCTB4YzAwMTEwMjFVCi0gI2RlZmluZSBNU1JfQU1ENjRfRENfQ0ZHCQkweGMw MDExMDIyVQotKyNkZWZpbmUgTVNSX0FNRDY0X0ZQX0NGRwkJMHhjMDAxMTAyOFUKLSAjZGVmaW5l IE1TUl9BTUQ2NF9ERV9DRkcJCTB4YzAwMTEwMjlVCi0gI2RlZmluZSBBTUQ2NF9ERV9DRkdfTEZF TkNFX1NFUklBTElTRQkoX0FDKDEsIFVMTCkgPDwgMSkKLSAjZGVmaW5lIE1TUl9BTUQ2NF9FWF9D RkcJCTB4YzAwMTEwMmNVCi0tLSAKLTIuMzkuNQotCgpkaWZmIC0tZ2l0IGEveGVuLmpzb24ubm9j cHVpZC5wYXRjaCBiL3hlbi5qc29uLm5vY3B1aWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGY3MDFmMGQuLjAwMDAwMDAKLS0tIGEveGVuLmpzb24ubm9jcHVpZC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLS0tLSB4ZW4tNC4yMS4wL3Rvb2xzL2xpYnMv bGlnaHQvbGlieGxfbm9jcHVpZC5jLm9yaWcJMjAyNS0xMS0xOCAxODowMjoxMy4wMDAwMDAwMDAg KzAwMDAKLSsrKyB4ZW4tNC4yMS4wL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfbm9jcHVpZC5jCTIw MjUtMTEtMjAgMDk6MDM6NTYuNTE3ODA0NTE0ICswMDAwCi1AQCAtNDAsMTEgKzQwLDI0IEBACi0g ICAgIHJldHVybiAwOwotIH0KLSAKLSsjaWZkZWYgSEFWRV9MSUJKU09OQwotKyNpZm5kZWYgX2hp ZGRlbgotKyNkZWZpbmUgX2hpZGRlbgotKyNlbmRpZgotK19oaWRkZW4gaW50IGxpYnhsX2NwdWlk X3BvbGljeV9saXN0X2dlbl9qc28oanNvbl9vYmplY3QgKipqc29fciwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYnhsX2NwdWlkX3BvbGljeV9saXN0ICpwY3B1aWQpCi0rewot KyAgICByZXR1cm4gMDsKLSt9Ci0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQoSEFWRV9MSUJZQUpM KQotIHlhamxfZ2VuX3N0YXR1cyBsaWJ4bF9jcHVpZF9wb2xpY3lfbGlzdF9nZW5fanNvbih5YWps X2dlbiBoYW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfY3B1aWRf cG9saWN5X2xpc3QgKnBjcHVpZCkKLSB7Ci0gICAgIHJldHVybiAwOwotIH0KLSsjZW5kaWYKLSAK LSBpbnQgbGlieGxfX2NwdWlkX3BvbGljeV9saXN0X3BhcnNlX2pzb24obGlieGxfX2djICpnYywK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfX2pz b25fb2JqZWN0ICpvLAoKZGlmZiAtLWdpdCBhL3hlbi5zcGVjIGIveGVuLnNwZWMKaW5kZXggNzY1 NmU2Yi4uMjdjMTMwNSAxMDA2NDQKLS0tIGEveGVuLnNwZWMKKysrIGIveGVuLnNwZWMKQEAgLTUw LDggKzUwLDggQEAKIAogU3VtbWFyeTogWGVuIGlzIGEgdmlydHVhbCBtYWNoaW5lIG1vbml0b3IK IE5hbWU6ICAgIHhlbgotVmVyc2lvbjogNC4yMS4xCi1SZWxlYXNlOiA0JXs/ZGlzdH0KK1ZlcnNp b246IDQuMjEuMgorUmVsZWFzZTogMSV7P2Rpc3R9CiAjIEF1dG9tYXRpY2FsbHkgY29udmVydGVk IGZyb20gb2xkIGZvcm1hdDogR1BMdjIrIGFuZCBMR1BMdjIrIGFuZCBCU0QgLSByZXZpZXcgaXMg aGlnaGx5IHJlY29tbWVuZGVkLgogTGljZW5zZTogR1BMLTIuMC1vci1sYXRlciBBTkQgTGljZW5z ZVJlZi1DYWxsYXdheS1MR1BMdjIrIEFORCBMaWNlbnNlUmVmLUNhbGxhd2F5LUJTRAogVVJMOiAg ICAgaHR0cDovL3hlbi5vcmcvCkBAIC03OCwzOCArNzgsNiBAQCBQYXRjaDY6IHhlbi5nY2MxMS5m aXhlcy5wYXRjaAogUGF0Y2g3OiB4ZW4uZ2NjMTIuZml4ZXMucGF0Y2gKIFBhdGNoODogeGVuLmVm aS5idWlsZC5wYXRjaAogUGF0Y2g5OiB4ZW4ucHl0aG9uMy4xMi5wYXRjaAotUGF0Y2gxMTogeGVu Lmpzb24ubm9jcHVpZC5wYXRjaAotUGF0Y2gxMjogeHNhNDgzLnBhdGNoCi1QYXRjaDEzOiB4c2E0 ODQucGF0Y2gKLVBhdGNoMTQ6IHhzYTQ4Ni5wYXRjaAotUGF0Y2gxNTogeGVuLmdpdC05MGIyMDU0 N2I3NTZhNWNmOWIwZmVjOWZiMGRlNWIzNjFlOGJmNGMzLnBhdGNoCi1QYXRjaDE2OiB4c2E0OTAt NC4yMS5wYXRjaAotUGF0Y2gxNzogeHNhNDkxLTQuMjEucGF0Y2gKLVBhdGNoMTg6IHhzYTQ5Mi00 LjIxLTAxLnBhdGNoCi1QYXRjaDE5OiB4c2E0OTItNC4yMS0wMi5wYXRjaAotUGF0Y2gyMDogeHNh NDkyLTQuMjEtMDMucGF0Y2gKLVBhdGNoMjE6IHhzYTQ5Mi00LjIxLTA0LnBhdGNoCi1QYXRjaDIy OiB4c2E0OTItNC4yMS0wNS5wYXRjaAotUGF0Y2gyMzogeHNhNDkyLTQuMjEtMDYucGF0Y2gKLVBh dGNoMjQ6IHhzYTQ5Mi00LjIxLTA3LnBhdGNoCi1QYXRjaDI1OiB4c2E0OTItNC4yMS0wOC5wYXRj aAotUGF0Y2gyNjogeHNhNDkyLTQuMjEtMDkucGF0Y2gKLVBhdGNoMjc6IHhzYTQ5Mi00LjIxLTEw LnBhdGNoCi1QYXRjaDI4OiB4c2E0OTItNC4yMS0xMS5wYXRjaAotUGF0Y2gyOTogeHNhNDkyLTQu MjEtMTIucGF0Y2gKLVBhdGNoMzA6IHhzYTQ5Mi00LjIxLTEzLnBhdGNoCi1QYXRjaDMxOiB4c2E0 OTItNC4yMS0xNC5wYXRjaAotUGF0Y2gzMjogeHNhNDkyLTQuMjEtMTUucGF0Y2gKLVBhdGNoMzM6 IHhzYTQ5Mi00LjIxLTE2LnBhdGNoCi1QYXRjaDM0OiB4c2E0OTItNC4yMS0xNy5wYXRjaAotUGF0 Y2gzNTogeHNhNDkyLTQuMjEtMTgucGF0Y2gKLVBhdGNoMzY6IHhzYTQ5Mi00LjIxLTE5LnBhdGNo Ci1QYXRjaDM3OiB4c2E0OTItNC4yMS0yMC5wYXRjaAotUGF0Y2gzODogeHNhNDkzLTQuMjEtMDEu cGF0Y2gKLVBhdGNoMzk6IHhzYTQ5My00LjIxLTAyLnBhdGNoCi1QYXRjaDQwOiB4c2E0OTMtNC4y MS0wMy5wYXRjaAotUGF0Y2g0MTogeHNhNDkzLTQuMjEtMDQucGF0Y2gKLVBhdGNoNDI6IHhzYTQ5 NC00LjIxLnBhdGNoCiAKIAogIyBidWlsZCB1c2luZyBGZWRvcmEgc2VhYmlvcyBhbmQgaXB4ZSBw YWNrYWdlcyBmb3Igcm9tcwpAQCAtMjk1LDM4ICsyNjMsNiBAQCBUaGlzIHBhY2thZ2UgY29udGFp bnMgZmlsZXMgdXNlZCBpbiB0ZXN0aW5nIHRoZSB4ZW4gYnVpbGRzCiAlcGF0Y2ggNyAtcDEKICVw YXRjaCA4IC1wMQogJXBhdGNoIDkgLXAxCi0lcGF0Y2ggMTEgLXAxCi0lcGF0Y2ggMTIgLXAxCi0l cGF0Y2ggMTMgLXAxCi0lcGF0Y2ggMTQgLXAxCi0lcGF0Y2ggMTUgLXAxCi0lcGF0Y2ggMTYgLXAx Ci0lcGF0Y2ggMTcgLXAxCi0lcGF0Y2ggMTggLXAxCi0lcGF0Y2ggMTkgLXAxCi0lcGF0Y2ggMjAg LXAxCi0lcGF0Y2ggMjEgLXAxCi0lcGF0Y2ggMjIgLXAxCi0lcGF0Y2ggMjMgLXAxCi0lcGF0Y2gg MjQgLXAxCi0lcGF0Y2ggMjUgLXAxCi0lcGF0Y2ggMjYgLXAxCi0lcGF0Y2ggMjcgLXAxCi0lcGF0 Y2ggMjggLXAxCi0lcGF0Y2ggMjkgLXAxCi0lcGF0Y2ggMzAgLXAxCi0lcGF0Y2ggMzEgLXAxCi0l cGF0Y2ggMzIgLXAxCi0lcGF0Y2ggMzMgLXAxCi0lcGF0Y2ggMzQgLXAxCi0lcGF0Y2ggMzUgLXAx Ci0lcGF0Y2ggMzYgLXAxCi0lcGF0Y2ggMzcgLXAxCi0lcGF0Y2ggMzggLXAxCi0lcGF0Y2ggMzkg LXAxCi0lcGF0Y2ggNDAgLXAxCi0lcGF0Y2ggNDEgLXAxCi0lcGF0Y2ggNDIgLXAxCiAKICMgc3R1 YmRvbSBzb3VyY2VzCiBjcCAtdiAle1NPVVJDRTEwfSAle1NPVVJDRTExfSAle1NPVVJDRTEyfSAl e1NPVVJDRTEzfSAle1NPVVJDRTE0fSAle1NPVVJDRTE1fSBzdHViZG9tCkBAIC04ODIsNiArODE4 LDI2IEBAIGZpCiAle19saWJleGVjZGlyfS94ZW4vdGVzdHMvKgogCiAlY2hhbmdlbG9nCisqIFRo dSBKdWwgMzAgMjAyNiBNaWNoYWVsIFlvdW5nIDxtLmEueW91bmdAZHVyaGFtLmFjLnVrPiAtIDQu MjEuMi0xCistIHVwZGF0ZSB0byB4ZW4gNC4yMS4yCistIGluY2x1ZGVzIHNlY3VyaXR5IGZpeGVz CisgIHg4NiBzaGFkb3cgcGFnaW5nIGlzIGRlcHJlY2F0ZWQgW1hTQS00OTUsIENWRS0yMDI2LTQy NDkzXQorICB2SVJRIGV2ZW50IGNoYW5uZWwgYmluZGluZyBtYXkgYnJlYWsgWGVuc3RvcmUgW1hT QS00OTYsIENWRS0yMDI2LTQyNDkyXQorICBidWZmZXIgb3ZlcnJ1bnMgaW4gbGliZnNpbWFnZSBp c285NjYwIGhhbmRsaW5nIFtYU0EtNDk3LCBDVkUtMjAyNi00MjQ5NCwKKwlDVkUtMjAyNi00MjQ5 NSwgQ1ZFLTIwMjYtNjI0MjMsIENWRS0yMDI2LTYyNDI0LCBDVkUtMjAyNi02MjQyNV0KKyAgc3lz Y3RsIGFuZCBwbGF0Zm9ybS1vcCBsb2NrcyBvcGVuIHRvIGFidXNlIFtYU0EtNDk5LCBDVkUtMjAy Ni02MjQyNiwKKwlDVkUtMjAyNi02MjQyN10KKyAgZ3JhbnQtdGFibGU6IHR5cGUgY29uZnVzaW9u IGluIGdyYW50LWNvcHkgW1hTQS01MDAsIENWRS0yMDI2LTYyNDI4XQorICBncmFudC10YWJsZTog dmVyc2lvbiBjaGFuZ2UgcmFjaW5nIHdpdGggb3RoZXIgb3BlcmF0aW9ucyBbWFNBLTUwMSwKKwlD VkUtMjAyNi02MjQzNSwgQ1ZFLTIwMjYtNjI0MzZdCisgIHZOVU1BIGRvbWFpbiBjbGVhbnVwIG1h eSByYWNlIG90aGVyIG9wZXJhdGlvbnMgW1hTQS01MDIsIENWRS0yMDI2LTYyNDI5XQorICB4ODY6 IE91dC1vZi1ib3VuZHMgcmVhZCBpbiB2UlRDIGVtdWxhdGlvbiBbWFNBLTUwMywgQ1ZFLTIwMjYt NjI0MzBdCisgIFZpcmlkaWFuIFNUSU1FUiBkaXZpc2lvbiBieSB6ZXJvIFtYU0EtNTA0LCBDVkUt MjAyNi02MjQzMV0KKyAgZXZ0Y2huOiBSYWNlIGJldHdlZW4gRklGTyBleHBhbmQgYW5kIHJlc2V0 IFtYU0EtNTA1LCBDVkUtMjAyNi02MjQzMl0KKyAgY29ycmVjdCBidWZmZXIgY2hlY2tzIGZvciBE TV9PUCBoeXBlcmNhbGxzIFtYU0EtNTA2LCBDVkUtMjAyNi02MjQzM10KKyAgUG9EOiBEb24ndCB0 cnkgdG8gcmVjbGFpbSBzcGVjaWFsIHBhZ2VzIFtYU0EtNTA3LCBDVkUtMjAyNi02MjQzNF0KKyAg cHlncnViIGlzIG9ubHkgc3VwcG9ydGVkIGluIGRlLXByaXZpbGVnZWQgbW9kZSBbWFNBLTUwOF0K KwogKiBGcmkgSnVuIDEyIDIwMjYgTWljaGFlbCBZb3VuZyA8bS5hLnlvdW5nQGR1cmhhbS5hYy51 az4gLSA0LjIxLjEtNAogLSB4ODYgSFZNIEkvTyBwb3J0IGxpc3QgdHJhdmVyc2FsIFtYU0EtNDkx LCBDVkUtMjAyNi00MjQ4N10KIC0gZG9tY3RsIGxvY2sgb3BlbiB0byBhYnVzZSBbWFNBLTQ5Miwg Q1ZFLTIwMjYtNDI0ODksIENWRS0yMDI2LTQyNDkwXQoKZGlmZiAtLWdpdCBhL3hzYTQ4My5wYXRj aCBiL3hzYTQ4My5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGVjYjJlOS4u MDAwMDAwMAotLS0gYS94c2E0ODMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBA Ci1Gcm9tOiBBbmRyaWkgU3VsdGFub3YgPGFuZHJpeS5zdWx0YW5vdkB2YXRlcy50ZWNoPgotU3Vi amVjdDogdG9vbHMvb3hlbnN0b3JlZDogUmVzZXQgcXVvdGEgd2hlbiByZXNldHRpbmcgcGVybWlz c2lvbnMKLQotVGhlIHF1b3RhIG9iamVjdCBjb250YWlucyBib3RoIGxpbWl0cyBhbmQgdGhlIGN1 cnJlbnQgbm9kZSB1c2FnZSBjb3VudHMuCi0KLVdoZW4gYSBkb21haW4gaXMgdG9ybiBkb3duLCB0 aGUgbm9kZSBkYXRhIGl0c2VsZiBpcyBjbGVhbmVkIHVwIGJ1dCB0aGUgbm9kZQotdXNhZ2UgY291 bnRzIGFyZSBub3QuICBBIGxhdGVyIGRvbWFpbiByZXVzaW5nIHRoZSBzYW1lIGRvbWlkIGNhbiBj cmVhdGUgZmV3ZXIKLW5vZGVzIGJlZm9yZSBiZWluZyBkZWVtZWQgdG8gYmUgb3ZlciBxdW90YS4K LQotUmVzZXQgdGhlIGNvdW50IHdoZW4gdGhlIG5vZGUgcGVybWlzc2lvbnMgYXJlIGNsZWFuZWQg dXAuCi0KLVRoaXMgaXMgWFNBLTQ4MyAvIENWRS0yMDI2LTIzNTU2LgotCi1TaWduZWQtb2ZmLWJ5 OiBBbmRyaWkgU3VsdGFub3YgPGFuZHJpeS5zdWx0YW5vdkB2YXRlcy50ZWNoPgotU2lnbmVkLW9m Zi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLQotZGlmZiAt LWdpdCBhL3Rvb2xzL29jYW1sL3hlbnN0b3JlZC9zdG9yZS5tbCBiL3Rvb2xzL29jYW1sL3hlbnN0 b3JlZC9zdG9yZS5tbAotaW5kZXggOWI4ZGQyODEyZGYwLi5hYTkyMDRlYWQzZWMgMTAwNjQ0Ci0t LS0gYS90b29scy9vY2FtbC94ZW5zdG9yZWQvc3RvcmUubWwKLSsrKyBiL3Rvb2xzL29jYW1sL3hl bnN0b3JlZC9zdG9yZS5tbAotQEAgLTQ2NSw3ICs0NjUsOCBAQCBsZXQgcmVzZXRfcGVybWlzc2lv bnMgc3RvcmUgZG9taWQgPQotICAgICAgICAgaWYgcGVybXMgPD4gbm9kZS5wZXJtcyB0aGVuCi0g ICAgICAgICAgIExvZ2dpbmcuZGVidWcgInN0b3JlfG5vZGUiICJDaGFuZ2VkIHBlcm1pc3Npb25z IGZvciBub2RlICVzIiAoTm9kZS5nZXRfbmFtZSBub2RlKTsKLSAgICAgICAgIFNvbWUgeyBub2Rl IHdpdGggTm9kZS5wZXJtcyB9Ci0tICAgICkgc3RvcmUucm9vdAotKyAgICApIHN0b3JlLnJvb3Q7 Ci0rICBzdG9yZS5xdW90YSA8LSBRdW90YS5kZWwgc3RvcmUucXVvdGEgZG9taWQKLSAKLSB0eXBl IG9wcyA9IHsKLSAgIHN0b3JlOiB0OwoKZGlmZiAtLWdpdCBhL3hzYTQ4NC5wYXRjaCBiL3hzYTQ4 NC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTIyNTQ5ZS4uMDAwMDAwMAot LS0gYS94c2E0ODQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi1Gcm9tIDNk MGQxOWFkMTdmMjljNjRkZGU0YTdiYWYzOTJkYTRmZDU4ZjM2NTQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+Ci1EYXRlOiBNb24s IDE2IE1hciAyMDI2IDE1OjA2OjExICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHRvb2xzL3hlbnN0 b3JlZDogbWFrZSBjb25uX2RlbGV0ZV9hbGxfdHJhbnNhY3Rpb25zKCkKLSBpZGVtcG90ZW50Ci0K LWNvbm5fZGVsZXRlX2FsbF90cmFuc2FjdGlvbnMoKSBzaG91bGQgYmUgY2FsbGFibGUgaW4gYW55 IGNvbnRleHQsCi1yZXNldHRpbmcgQUxMIHRyYW5zYWN0aW9uIHJlbGF0ZWQgZGF0YS4KLQotVGhp cyBpbmNsdWRlcyBudW1iZXIgb2YgYWN0aXZlIHRyYW5zYWN0aW9ucyBhbmQgdGhlIHRyYW5zYWN0 aW9uCi1wb2ludGVyIGluIHN0cnVjdCBjb25uZWN0aW9uLgotCi1TbyByZXNldCBjb25uLT50cmFu cyB0byBOVUxMIGluIGNvbm5fZGVsZXRlX2FsbF90cmFuc2FjdGlvbnMoKSBhbmQKLWRvIHRoZSBj bGVhbnVwIGZvciBlYWNoIHRyYW5zYWN0aW9uIGluIGRlc3Ryb3lfdHJhbnNhY3Rpb24oKS4KLQot VGhpcyBhdm9pZHMgdHJpZ2dlcmluZyB0aGUgYXNzZXJ0KCkgaW4gY29ubl9kZWxldGVfYWxsX3Ry YW5zYWN0aW9ucygpCi1pbiBjYXNlIGUuZy4gaWdub3JlX2Nvbm5lY3Rpb24oKSB3YXMgY2FsbGVk IHdoaWxlIGFuIG9wZXJhdGlvbiBpbnNpZGUKLWEgdHJhbnNhY3Rpb24gd2FzIHBlcmZvcm1lZCwg b3IgWFNfUkVTRVRfV0FUQ0hFUyB3YXMgY2FsbGVkIGluIGEKLXRyYW5zYWN0aW9uLgotCi1UaGlz IGlzIFhTQS00ODQgLyBDVkUtMjAyNi0yMzU1Ny4KLQotUmVwb3J0ZWQtYnk6IEFuZHJpaSBTdWx0 YW5vdiA8YW5kcml5LnN1bHRhbm92QHZhdGVzLnRlY2g+Ci1GaXhlczogMWY5ZDA0ZmIwMjFjICgi eGVuc3RvcmVkOiBhbGxvdyBndWVzdCB0byBzaHV0ZG93biBhbGwgaXRzIHdhdGNoZXMvdHJhbnNh Y3Rpb25zIikKLVNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4K LS0tLQotIHRvb2xzL3hlbnN0b3JlZC90cmFuc2FjdGlvbi5jIHwgMjAgKysrKysrKysrLS0tLS0t LS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlZC90cmFuc2FjdGlvbi5jIGIvdG9vbHMveGVu c3RvcmVkL3RyYW5zYWN0aW9uLmMKLWluZGV4IDE2N2NkNTk3ZmQuLjA4MjVjNDg4NTkgMTAwNjQ0 Ci0tLS0gYS90b29scy94ZW5zdG9yZWQvdHJhbnNhY3Rpb24uYwotKysrIGIvdG9vbHMveGVuc3Rv cmVkL3RyYW5zYWN0aW9uLmMKLUBAIC00MzIsMTcgKzQzMiwyMyBAQCBzdGF0aWMgaW50IGZpbmFs aXplX3RyYW5zYWN0aW9uKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAotIHN0YXRpYyBpbnQgZGVz dHJveV90cmFuc2FjdGlvbih2b2lkICpfdHJhbnNhY3Rpb24pCi0gewotIAlzdHJ1Y3QgdHJhbnNh Y3Rpb24gKnRyYW5zID0gX3RyYW5zYWN0aW9uOwotKwlzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiA9 IHRyYW5zLT5jb25uOwotIAlzdHJ1Y3QgYWNjZXNzZWRfbm9kZSAqaTsKLSAKLSAJd3JsX250cmFu c2FjdGlvbnMtLTsKLSAJdHJhY2VfZGVzdHJveSh0cmFucywgInRyYW5zYWN0aW9uIik7Ci0gCXdo aWxlICgoaSA9IGxpc3RfdG9wKCZ0cmFucy0+YWNjZXNzZWQsIHN0cnVjdCBhY2Nlc3NlZF9ub2Rl LCBsaXN0KSkpIHsKLSAJCWlmIChpLT50YV9ub2RlKQotLQkJCWRiX2RlbGV0ZSh0cmFucy0+Y29u biwgaS0+dHJhbnNfbmFtZSwgTlVMTCk7Ci0rCQkJZGJfZGVsZXRlKGNvbm4sIGktPnRyYW5zX25h bWUsIE5VTEwpOwotIAkJbGlzdF9kZWwoJmktPmxpc3QpOwotIAkJdGFsbG9jX2ZyZWUoaSk7Ci0g CX0KLSAKLSsJbGlzdF9kZWwoJnRyYW5zLT5saXN0KTsKLSsJZG9tYWluX3RyYW5zYWN0aW9uX2Rl Yyhjb25uKTsKLSsJaWYgKGxpc3RfZW1wdHkoJmNvbm4tPnRyYW5zYWN0aW9uX2xpc3QpKQotKwkJ Y29ubi0+dGFfc3RhcnRfdGltZSA9IDA7Ci0rCi0gCXJldHVybiAwOwotIH0KLSAKLUBAIC01MjMs MTAgKzUyOSw2IEBAIGludCBkb190cmFuc2FjdGlvbl9lbmQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwKLSAJCXJldHVybiBFTk9FTlQ7Ci0gCi0gCWNvbm4tPnRyYW5z YWN0aW9uID0gTlVMTDsKLS0JbGlzdF9kZWwoJnRyYW5zLT5saXN0KTsKLS0JZG9tYWluX3RyYW5z YWN0aW9uX2RlYyhjb25uKTsKLS0JaWYgKGxpc3RfZW1wdHkoJmNvbm4tPnRyYW5zYWN0aW9uX2xp c3QpKQotLQkJY29ubi0+dGFfc3RhcnRfdGltZSA9IDA7Ci0gCi0gCWNoa19xdW90YSA9IHRyYW5z LT5ub2RlX2NyZWF0ZWQgJiYgZG9tYWluX2lzX3VucHJpdmlsZWdlZChjb25uKTsKLSAKLUBAIC01 NzIsMTQgKzU3NCwxMCBAQCB2b2lkIGNvbm5fZGVsZXRlX2FsbF90cmFuc2FjdGlvbnMoc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4pCi0gCXN0cnVjdCB0cmFuc2FjdGlvbiAqdHJhbnM7Ci0gCi0gCXdo aWxlICgodHJhbnMgPSBsaXN0X3RvcCgmY29ubi0+dHJhbnNhY3Rpb25fbGlzdCwKLS0JCQkJIHN0 cnVjdCB0cmFuc2FjdGlvbiwgbGlzdCkpKSB7Ci0tCQlsaXN0X2RlbCgmdHJhbnMtPmxpc3QpOwot KwkJCQkgc3RydWN0IHRyYW5zYWN0aW9uLCBsaXN0KSkpCi0gCQl0YWxsb2NfZnJlZSh0cmFucyk7 Ci0tCX0KLS0KLS0JYXNzZXJ0KGNvbm4tPnRyYW5zYWN0aW9uID09IE5VTEwpOwotIAotLQljb25u LT50YV9zdGFydF90aW1lID0gMDsKLSsJY29ubi0+dHJhbnNhY3Rpb24gPSBOVUxMOwotIH0KLSAK LSBpbnQgY2hlY2tfdHJhbnNhY3Rpb25zKHN0cnVjdCBoYXNodGFibGUgKmhhc2gpCi0tLSAKLTIu NTMuMAotCgpkaWZmIC0tZ2l0IGEveHNhNDg2LnBhdGNoIGIveHNhNDg2LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NTRlOTU3Li4wMDAwMDAwCi0tLSBhL3hzYTQ4Ni5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDE4MSArMCwwIEBACi1Gcm9tOiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+Ci1TdWJqZWN0OiBnbnR0YWI6IHNwbGl0IGdudHRhYl9tYXBfZnJhbWUo KQotCi1JZiBhIGRvbWFpbiB0cmllcyB0byBtYXAgc3RhdHVzIGZyYW1lcyBpbiBwYXJhbGxlbCB0 byBzd2l0Y2hpbmcgZ3JhbnQKLXRhYmxlIHZlcnNpb24gZnJvbSAyIHRvIDEsIHRoZSBtYXBwaW5n IG9wZXJhdGlvbiBtYXkgcHV0IGluIHBsYWNlIFAyTQotZW50cmllcyByZWZlcmVuY2luZyBNRk5z IHdoaWNoIGdudHRhYl91bnBvcHVsYXRlX3N0YXR1c19mcmFtZXMoKSBpcyBpbiB0aGUKLXByb2Nl c3Mgb2YgZnJlZWluZy4KLQotSWRlYWxseSB3ZSB3b3VsZCByZWZjb3VudCBwYWdlcyB3aGVuIGVu dGVyZWQgaW50byBQMk0gdGFibGVzLCBidXQgdGhhdCdzIGEKLXNpZ25pZmljYW50IGNoYW5nZS4g RXh0ZW5kIHRoZSBncmFudC10YWJsZS1sb2NrZWQgcmVnaW9uIGluc3RlYWQgaW4KLXhlbm1lbV9h ZGRfdG9fcGh5c21hcF9vbmUoKSAoYmVpbmcgdGhlIHNvbGUgY2FsbGVyIG9mIGdudHRhYl9tYXBf ZnJhbWUoKSksCi1zdWNoIHRoYXQgYSByYWNlIHdpdGggZ250dGFiX3VucG9wdWxhdGVfc3RhdHVz X2ZyYW1lcygpIGlzIG5vIGxvbmdlcgotcG9zc2libGUuCi0KLVRoaXMgaXMgWFNBLTQ4NiAvIENW RS0yMDI2LTIzNTU4LgotCi1GaXhlczogNWNlOGZhZmE5NDdjICgiRHluYW1pYyBncmFudC10YWJs ZSBzaXppbmciKQotRml4ZXM6IGE5OGRjMTM3MDNlMCAoIkludHJvZHVjZSBhIGdyYW50X2VudHJ5 X3YyIHN0cnVjdHVyZSIpCi1SZXBvcnRlZC1ieTogUmFmYWwgV29qdGN6dWsgPHJhZmFsLndvanRj enVrQDdidWxscy5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+Ci1SZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j b20+Ci0KLS0tLSBhL3hlbi9hcmNoL2FybS9tbS5jCi0rKysgYi94ZW4vYXJjaC9hcm0vbW0uYwot QEAgLTE3NCwxMiArMTc0LDEwIEBAIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXBfb25lKAotICAg ICBzd2l0Y2ggKCBzcGFjZSApCi0gICAgIHsKLSAgICAgY2FzZSBYRU5NQVBTUEFDRV9ncmFudF90 YWJsZToKLS0gICAgICAgIHJjID0gZ250dGFiX21hcF9mcmFtZShkLCBpZHgsIGdmbiwgJm1mbik7 Ci0rICAgICAgICByYyA9IGdudHRhYl9tYXBfZnJhbWVfYmVnaW4oZCwgaWR4LCBnZm4sICZtZm4p OwotICAgICAgICAgaWYgKCByYyApCi0gICAgICAgICAgICAgcmV0dXJuIHJjOwotIAotLSAgICAg ICAgLyogTmVlZCB0byB0YWtlIGNhcmUgb2YgdGhlIHJlZmVyZW5jZSBvYnRhaW5lZCBpbiBnbnR0 YWJfbWFwX2ZyYW1lKCkuICovCi0tICAgICAgICBwYWdlID0gbWZuX3RvX3BhZ2UobWZuKTsKLSAg ICAgICAgIHQgPSBwMm1fcmFtX3J3OwotIAotICAgICAgICAgYnJlYWs7Ci1AQCAtMjgxLDEwICsy NzksMjMgQEAgaW50IHhlbm1lbV9hZGRfdG9fcGh5c21hcF9vbmUoCi0gICAgICAqIHRvIGRyb3Ag dGhlIHJlZmVyZW5jZSB3ZSB0b29rIGVhcmxpZXIuIEluIGFsbCBvdGhlciBjYXNlcyB3ZSBuZWVk IHRvCi0gICAgICAqIGRyb3AgYW55IHJlZmVyZW5jZSB3ZSB0b29rIGVhcmxpZXIgKHBlcmhhcHMg aW5kaXJlY3RseSkuCi0gICAgICAqLwotLSAgICBpZiAoIHNwYWNlID09IFhFTk1BUFNQQUNFX2dt Zm5fZm9yZWlnbiA/IHJjIDogcGFnZSAhPSBOVUxMICkKLSsgICAgc3dpdGNoICggc3BhY2UgKQot ICAgICB7Ci0rICAgIGRlZmF1bHQ6Ci0rICAgICAgICBpZiAoIHBhZ2UgKQotKyAgICAgICAgICAg IHB1dF9wYWdlKHBhZ2UpOwotKyAgICAgICAgYnJlYWs7Ci0rCi0rICAgIGNhc2UgWEVOTUFQU1BB Q0VfZ3JhbnRfdGFibGU6Ci0rICAgICAgICBnbnR0YWJfbWFwX2ZyYW1lX2VuZChkLCBtZm4pOwot KyAgICAgICAgYnJlYWs7Ci0rCi0rICAgIGNhc2UgWEVOTUFQU1BBQ0VfZ21mbl9mb3JlaWduOgot KyAgICAgICAgaWYgKCAhcmMgKQotKyAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgQVNTRVJU KHBhZ2UgIT0gTlVMTCk7Ci0gICAgICAgICBwdXRfcGFnZShwYWdlKTsKLSsgICAgICAgIGJyZWFr OwotICAgICB9Ci0gCi0gICAgIHJldHVybiByYzsKLS0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0u YwotKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCi1AQCAtMjAwOSwxMSArMjAwOSw5IEBAIGlu dCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXBfb25lKAotICAgICAgICAgYnJlYWs7Ci0gCi0gICAgIGNh c2UgWEVOTUFQU1BBQ0VfZ3JhbnRfdGFibGU6Ci0tICAgICAgICByYyA9IGdudHRhYl9tYXBfZnJh bWUoZCwgaWR4LCBnZm4sICZtZm4pOwotKyAgICAgICAgcmMgPSBnbnR0YWJfbWFwX2ZyYW1lX2Jl Z2luKGQsIGlkeCwgZ2ZuLCAmbWZuKTsKLSAgICAgICAgIGlmICggcmMgKQotICAgICAgICAgICAg IHJldHVybiByYzsKLS0gICAgICAgIC8qIE5lZWQgdG8gdGFrZSBjYXJlIG9mIHRoZSByZWZlcmVu Y2Ugb2J0YWluZWQgaW4gZ250dGFiX21hcF9mcmFtZSgpLiAqLwotLSAgICAgICAgcGFnZSA9IG1m bl90b19wYWdlKG1mbik7Ci0gICAgICAgICBicmVhazsKLSAKLSAgICAgY2FzZSBYRU5NQVBTUEFD RV9nbWZuOgotQEAgLTIwOTUsMTkgKzIwOTMsMjggQEAgaW50IHhlbm1lbV9hZGRfdG9fcGh5c21h cF9vbmUoCi0gICAgIHB1dF9nZm4oZCwgZ2ZuX3goZ2ZuKSk7Ci0gCi0gIHB1dF9ib3RoOgotLSAg ICAvKgotLSAgICAgKiBJbiB0aGUgWEVOTUFQU1BBQ0VfZ21mbiBjYXNlLCB3ZSB0b29rIGEgcmVm IG9mIHRoZSBnZm4gYXQgdGhlIHRvcC4KLS0gICAgICogV2UgYWxzbyBtYXkgbmVlZCB0byB0cmFu c2ZlciBvd25lcnNoaXAgb2YgdGhlIHBhZ2UgcmVmZXJlbmNlIHRvIG91cgotLSAgICAgKiBjYWxs ZXIuCi0tICAgICAqLwotLSAgICBpZiAoIHNwYWNlID09IFhFTk1BUFNQQUNFX2dtZm4gKQotKyAg ICBzd2l0Y2ggKCBzcGFjZSApCi0gICAgIHsKLSsgICAgY2FzZSBYRU5NQVBTUEFDRV9nbWZuOgot KyAgICAgICAgLyoKLSsgICAgICAgICAqIFdlIHRvb2sgYSByZWYgb2YgdGhlIGdmbiBhdCB0aGUg dG9wLiAgV2UgYWxzbyBtYXkgbmVlZCB0byB0cmFuc2ZlcgotKyAgICAgICAgICogb3duZXJzaGlw IG9mIHRoZSBwYWdlIHJlZmVyZW5jZSB0byBvdXIgY2FsbGVyLgotKyAgICAgICAgICovCi0gICAg ICAgICBwdXRfZ2ZuKGQsIGdtZm4pOwotICAgICAgICAgaWYgKCAhcmMgJiYgZXh0cmEucHBhZ2Ug KQotICAgICAgICAgewotICAgICAgICAgICAgICpleHRyYS5wcGFnZSA9IHBhZ2U7Ci0gICAgICAg ICAgICAgcGFnZSA9IE5VTEw7Ci0gICAgICAgICB9Ci0rICAgICAgICBicmVhazsKLSsKLSsgICAg Y2FzZSBYRU5NQVBTUEFDRV9ncmFudF90YWJsZToKLSsgICAgICAgIC8qCi0rICAgICAgICAgKiBX ZSAoZ250dGFiX21hcF9mcmFtZV9iZWdpbigpKSBhY3F1aXJlZCBhIGxvY2sgYW5kIHRvb2sgYSBy ZWYgb2YgdGhlCi0rICAgICAgICAgKiBwYWdlIHVuZGVybHlpbmcgdGhlIE1GTiBhdCB0aGUgdG9w LgotKyAgICAgICAgICovCi0rICAgICAgICBnbnR0YWJfbWFwX2ZyYW1lX2VuZChkLCBtZm4pOwot KyAgICAgICAgYnJlYWs7Ci0gICAgIH0KLSAKLSAgICAgaWYgKCBwYWdlICkKLS0tLSBhL3hlbi9j b21tb24vZ3JhbnRfdGFibGUuYwotKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCi1AQCAt NDI1MCw3ICs0MjUwLDggQEAgaW50IGdudHRhYl9hY3F1aXJlX3Jlc291cmNlKAotICAgICByZXR1 cm4gcmM7Ci0gfQotIAotLWludCBnbnR0YWJfbWFwX2ZyYW1lKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgaWR4LCBnZm5fdCBnZm4sIG1mbl90ICptZm4pCi0raW50IGdudHRhYl9tYXBf ZnJhbWVfYmVnaW4oCi0rICAgIHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgaWR4LCBn Zm5fdCBnZm4sIG1mbl90ICptZm4pCi0gewotICAgICBpbnQgcmMgPSAwOwotICAgICBzdHJ1Y3Qg Z3JhbnRfdGFibGUgKmd0ID0gZC0+Z3JhbnRfdGFibGU7Ci1AQCAtNDI4OCwxMSArNDI4OSwxOSBA QCBpbnQgZ250dGFiX21hcF9mcmFtZShzdHJ1Y3QgZG9tYWluICpkLCB1Ci0gICAgICAgICAgICAg cHV0X3BhZ2UocGcpOwotICAgICB9Ci0gCi0tICAgIGdyYW50X3dyaXRlX3VubG9jayhndCk7Ci0r ICAgIGlmICggcmMgKQotKyAgICAgICAgZ3JhbnRfd3JpdGVfdW5sb2NrKGQtPmdyYW50X3RhYmxl KTsKLSAKLSAgICAgcmV0dXJuIHJjOwotIH0KLSAKLSt2b2lkIGdudHRhYl9tYXBfZnJhbWVfZW5k KHN0cnVjdCBkb21haW4gKmQsIG1mbl90IG1mbikKLSt7Ci0rICAgIHB1dF9wYWdlKG1mbl90b19w YWdlKG1mbikpOwotKwotKyAgICBncmFudF93cml0ZV91bmxvY2soZC0+Z3JhbnRfdGFibGUpOwot K30KLSsKLSBzdGF0aWMgdm9pZCBnbnR0YWJfdXNhZ2VfcHJpbnQoc3RydWN0IGRvbWFpbiAqcmQp Ci0gewotICAgICBpbnQgZmlyc3QgPSAxOwotLS0tIGEveGVuL2luY2x1ZGUveGVuL2dyYW50X3Rh YmxlLmgKLSsrKyBiL3hlbi9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5oCi1AQCAtNjAsOCArNjAs MTMgQEAgaW50IGdudHRhYl9yZWxlYXNlX21hcHBpbmdzKHN0cnVjdCBkb21haQotIGludCBtZW1f c2hhcmluZ19ncmVmX3RvX2dmbihzdHJ1Y3QgZ3JhbnRfdGFibGUgKmd0LCBncmFudF9yZWZfdCBy ZWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmbl90ICpnZm4sIHVpbnQxNl90ICpz dGF0dXMpOwotIAotLWludCBnbnR0YWJfbWFwX2ZyYW1lKHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGxvbmcgaWR4LCBnZm5fdCBnZm4sCi0tICAgICAgICAgICAgICAgICAgICAgbWZuX3QgKm1m bik7Ci0rLyoKLSsgKiBUaGVzZSBuZWVkIHRvIGJlIHVzZWQgYXMgYSBwYWlyLCBhcyB0aGUgZmly c3QgKGluIHRoZSBzdWNjZXNzIGNhc2UpIHJldHVybnMKLSsgKiB3aXRoIGEgbG9jayBhbmQgcGFn ZSByZWZlcmVuY2UgaGVsZCB3aGljaCB0aGUgc2Vjb25kIG5lZWRzIHRvIGRyb3AuCi0rICovCi0r aW50IGdudHRhYl9tYXBfZnJhbWVfYmVnaW4oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9u ZyBpZHgsIGdmbl90IGdmbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCAqbWZu KTsKLSt2b2lkIGdudHRhYl9tYXBfZnJhbWVfZW5kKHN0cnVjdCBkb21haW4gKmQsIG1mbl90IG1m bik7Ci0gCi0gdW5zaWduZWQgaW50IGdudHRhYl9yZXNvdXJjZV9tYXhfZnJhbWVzKGNvbnN0IHN0 cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBpZCk7Ci0gCi1AQCAtMTAwLDEyICsxMDUsMTQg QEAgc3RhdGljIGlubGluZSBpbnQgbWVtX3NoYXJpbmdfZ3JlZl90b19nZgotICAgICByZXR1cm4g LUVJTlZBTDsKLSB9Ci0gCi0tc3RhdGljIGlubGluZSBpbnQgZ250dGFiX21hcF9mcmFtZShzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGlkeCwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdmbl90IGdmbiwgbWZuX3QgKm1mbikKLStzdGF0aWMgaW5saW5lIGludCBn bnR0YWJfbWFwX2ZyYW1lX2JlZ2luKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgaWR4 LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ZuX3QgZ2ZuLCBt Zm5fdCAqbWZuKQotIHsKLSAgICAgcmV0dXJuIC1FSU5WQUw7Ci0gfQotIAotK3N0YXRpYyBpbmxp bmUgdm9pZCBnbnR0YWJfbWFwX2ZyYW1lX2VuZChzdHJ1Y3QgZG9tYWluICpkLCBtZm5fdCBtZm4p IHt9Ci0rCi0gc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZ250dGFiX3Jlc291cmNlX21heF9m cmFtZXMoCi0gICAgIGNvbnN0IHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBpZCkKLSB7 CgpkaWZmIC0tZ2l0IGEveHNhNDkwLTQuMjEucGF0Y2ggYi94c2E0OTAtNC4yMS5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWE1NjBjYi4uMDAwMDAwMAotLS0gYS94c2E0OTAt NC4yMS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLUZyb206IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci1TdWJqZWN0OiB4ODYvYW1kOiBNaXRp Z2F0ZSBBTUQtU04tNzA1MgotCi1UaGlzIGlzIFhTQS00OTAgLyBDVkUtMjAyNS01NDUxOC4KLQot U2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K LVJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KLQot ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMgYi94ZW4vYXJjaC94ODYvY3B1L2Ft ZC5jCi1pbmRleCAxYmIwNzY2ZWJmMTMuLmI1YmYyYjczMmU4ZiAxMDA2NDQKLS0tLSBhL3hlbi9h cmNoL3g4Ni9jcHUvYW1kLmMKLSsrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMKLUBAIC0xMTE2 LDExICsxMTE2LDI1IEBAIHN0YXRpYyB2b2lkIGFtZF9jaGVja19icF9jZmcodm9pZCkKLSB7Ci0g CXVpbnQ2NF90IHZhbCwgbmV3ID0gMDsKLSAKLS0JLyoKLS0JICogQU1EIEVycmF0dW0gIzE0ODUu ICBTZXQgYml0IDUsIGFzIGluc3RydWN0ZWQuCi0tCSAqLwotLQlpZiAoIWNwdV9oYXNfaHlwZXJ2 aXNvciAmJiBib290X2NwdV9kYXRhLng4NiA9PSAweDE5ICYmIGlzX3plbjRfdWFyY2goKSkKLS0J CW5ldyB8PSAoMSA8PCA1KTsKLSsJaWYgKCFjcHVfaGFzX2h5cGVydmlzb3IpIHsKLSsJCS8qCi0r CQkgKiBBTUQgRXJyYXR1bSAjMTQ4NS4gIElmIFNNVCBpcyBlbmFibGVkIGFuZCBTVElCUCBkaXNh YmxlZCwKLSsJCSAqIHRoZSBDUFUgbWF5IGZldGNoIGluY29ycmVjdCBpbnN0cnVjdGlvbiBieXRl cy4KLSsJCSAqCi0rCQkgKiBTZXQgYml0IDUsIGFzIGluc3RydWN0ZWQuCi0rCQkgKi8KLSsJCWlm IChib290X2NwdV9kYXRhLng4NiA9PSAweDE5ICYmIGlzX3plbjRfdWFyY2goKSkKLSsJCQluZXcg fD0gKDEgPDwgNSk7Ci0rCi0rCQkvKgotKwkJICogQU1EIFNCLTcwNTIuICBDUFUgT1AgQ2FjaGUg Y29ycnVwdGlvbiwgY2F1c2luZyBpbnN0cnVjdGlvbnMKLSsJCSAqIHRvIGJlIGV4ZWN1dGVkIGF0 IGEgaGlnaGVyIHByaXZpbGVnZS4KLSsJCSAqCi0rCQkgKiBTZXQgYml0IDMzLCBhcyBpbnN0cnVj dGVkLgotKwkJICovCi0rCQlpZiAoYm9vdF9jcHVfZGF0YS54ODYgPT0gMHgxNyAmJiBpc196ZW4y X3VhcmNoKCkpCi0rCQkJbmV3IHw9ICgxVUwgPDwgMzMpOwotKwl9Ci0gCi0gCS8qCi0gCSAqIE9u IGhhcmR3YXJlIHN1cHBvcnRpbmcgU1JTT19NU1JfRklYLCBhY3RpdmF0ZSBCUF9TUEVDX1JFRFVD RSBieQoKZGlmZiAtLWdpdCBhL3hzYTQ5MS00LjIxLnBhdGNoIGIveHNhNDkxLTQuMjEucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxZWJjMWEuLjAwMDAwMDAKLS0tIGEveHNh NDkxLTQuMjEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMTEgKzAsMCBAQAotRnJvbTogSmFu IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotU3ViamVjdDogeDg2L0hWTTogYWRkIGxvY2tp bmcgdG8gSS9PIHBvcnQgdHJhbnNsYXRpb24gbGlzdCB0cmF2ZXJzYWwKLQotWEVOX0RPTUNUTF9p b3BvcnRfbWFwcGluZyBpcyB1c2FibGUgYnkgRE0gc3R1YmRvbXMsIGFuZCBoZW5jZSB3ZSBjYW4n dAotYXNzdW1lIHRoZSBsaXN0IHRvIGJlIGxlZnQgdW5hbHRlcmVkIHdoaWxlIHRoZSBndWVzdCAo cmVhbGx5OiB0aGUKLWh5cGVydmlzb3Igb24gYmVoYWxmIG9mIHRoZSBndWVzdCkgaXMgYWNjZXNz aW5nIGl0LgotCi1UaGlzIGlzIFhTQS00OTEgLyBDVkUtMjAyNi00MjQ4Ny4KLQotRml4ZXM6IDE5 MmM0ZGFiYzM0NCAoImRvbWN0bCBhbmQgcDJtIGNoYW5nZXMgZm9yIFBDSSBwYXNzdGhydSIpCi1T aWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci1SZXZpZXdlZC1i eTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci0KLS0tLSBhL3hlbi9h cmNoL3g4Ni9kb21jdGwuYwotKysrIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCi1AQCAtNjYzLDYg KzY2Myw3IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCi0gICAgICAgICAgICAgICAgICAgICJpb3Bv cnRfbWFwOmFkZDogZG9tJWQgZ3BvcnQ9JXggbXBvcnQ9JXggbnI9JXhcbiIsCi0gICAgICAgICAg ICAgICAgICAgIGQtPmRvbWFpbl9pZCwgZmdwLCBmbXAsIG5wKTsKLSAKLSsgICAgICAgICAgICB3 cml0ZV9sb2NrKCZodm0tPmcybV9pb3BvcnRfbG9jayk7Ci0gICAgICAgICAgICAgbGlzdF9mb3Jf ZWFjaF9lbnRyeShnMm1faW9wb3J0LCAmaHZtLT5nMm1faW9wb3J0X2xpc3QsIGxpc3QpCi0gICAg ICAgICAgICAgICAgIGlmIChnMm1faW9wb3J0LT5tcG9ydCA9PSBmbXAgKQotICAgICAgICAgICAg ICAgICB7Ci1AQCAtNjg0LDExICs2ODUsMTQgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKLSAgICAg ICAgICAgICAgICAgZzJtX2lvcG9ydC0+bnAgPSBucDsKLSAgICAgICAgICAgICAgICAgbGlzdF9h ZGRfdGFpbCgmZzJtX2lvcG9ydC0+bGlzdCwgJmh2bS0+ZzJtX2lvcG9ydF9saXN0KTsKLSAgICAg ICAgICAgICB9Ci0rICAgICAgICAgICAgd3JpdGVfdW5sb2NrKCZodm0tPmcybV9pb3BvcnRfbG9j ayk7Ci0gICAgICAgICAgICAgaWYgKCAhcmV0ICkKLSAgICAgICAgICAgICAgICAgcmV0ID0gaW9w b3J0c19wZXJtaXRfYWNjZXNzKGQsIGZtcCwgZm1wICsgbnAgLSAxKTsKLSAgICAgICAgICAgICBp ZiAoIHJldCAmJiAhZm91bmQgJiYgZzJtX2lvcG9ydCApCi0gICAgICAgICAgICAgewotKyAgICAg ICAgICAgICAgICB3cml0ZV9sb2NrKCZodm0tPmcybV9pb3BvcnRfbG9jayk7Ci0gICAgICAgICAg ICAgICAgIGxpc3RfZGVsKCZnMm1faW9wb3J0LT5saXN0KTsKLSsgICAgICAgICAgICAgICAgd3Jp dGVfdW5sb2NrKCZodm0tPmcybV9pb3BvcnRfbG9jayk7Ci0gICAgICAgICAgICAgICAgIHhmcmVl KGcybV9pb3BvcnQpOwotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLUBAIC02OTcsNiArNzAx LDggQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKLSAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0df SU5GTwotICAgICAgICAgICAgICAgICAgICAiaW9wb3J0X21hcDpyZW1vdmU6IGRvbSVkIGdwb3J0 PSV4IG1wb3J0PSV4IG5yPSV4XG4iLAotICAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQs IGZncCwgZm1wLCBucCk7Ci0rCi0rICAgICAgICAgICAgd3JpdGVfbG9jaygmaHZtLT5nMm1faW9w b3J0X2xvY2spOwotICAgICAgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoZzJtX2lvcG9ydCwg Jmh2bS0+ZzJtX2lvcG9ydF9saXN0LCBsaXN0KQotICAgICAgICAgICAgICAgICBpZiAoIGcybV9p b3BvcnQtPm1wb3J0ID09IGZtcCApCi0gICAgICAgICAgICAgICAgIHsKLUBAIC03MDQsNiArNzEw LDggQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKLSAgICAgICAgICAgICAgICAgICAgIHhmcmVlKGcy bV9pb3BvcnQpOwotICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg IH0KLSsgICAgICAgICAgICB3cml0ZV91bmxvY2soJmh2bS0+ZzJtX2lvcG9ydF9sb2NrKTsKLSsK LSAgICAgICAgICAgICByZXQgPSBpb3BvcnRzX2RlbnlfYWNjZXNzKGQsIGZtcCwgZm1wICsgbnAg LSAxKTsKLSAgICAgICAgICAgICBpZiAoIHJldCAmJiBpc19oYXJkd2FyZV9kb21haW4oY3VycmQp ICkKLSAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKLS0tLSBhL3hlbi9hcmNoL3g4 Ni9odm0vZW11bGF0ZS5jCi0rKysgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwotQEAgLTE2 MCw3ICsxNjAsNiBAQCB2b2lkIGh2bWVtdWxfY2FuY2VsKHN0cnVjdCB2Y3B1ICp2KQotICAgICBo dmlvLT5tbWlvX2luc25fYnl0ZXMgPSAwOwotICAgICBodmlvLT5tbWlvX2FjY2VzcyA9IChzdHJ1 Y3QgbnBmZWMpe307Ci0gICAgIGh2aW8tPm1taW9fcmV0cnkgPSBmYWxzZTsKLS0gICAgaHZpby0+ ZzJtX2lvcG9ydCA9IE5VTEw7Ci0gCi0gICAgIGh2bWVtdWxfY2FjaGVfZGlzYWJsZSh2KTsKLSB9 Ci0tLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCi0rKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2 bS5jCi1AQCAtNjEwLDYgKzYxMCw3IEBAIGludCBodm1fZG9tYWluX2luaXRpYWxpc2Uoc3RydWN0 IGRvbWFpbgotICAgICBzcGluX2xvY2tfaW5pdCgmZC0+YXJjaC5odm0uaXJxX2xvY2spOwotICAg ICBzcGluX2xvY2tfaW5pdCgmZC0+YXJjaC5odm0udWNfbG9jayk7Ci0gICAgIHNwaW5fbG9ja19p bml0KCZkLT5hcmNoLmh2bS53cml0ZV9tYXAubG9jayk7Ci0rICAgIHJ3bG9ja19pbml0KCZkLT5h cmNoLmh2bS5nMm1faW9wb3J0X2xvY2spOwotICAgICByd2xvY2tfaW5pdCgmZC0+YXJjaC5odm0u bW1jZmdfbG9jayk7Ci0gICAgIElOSVRfTElTVF9IRUFEKCZkLT5hcmNoLmh2bS53cml0ZV9tYXAu bGlzdCk7Ci0gICAgIElOSVRfTElTVF9IRUFEKCZkLT5hcmNoLmh2bS5nMm1faW9wb3J0X2xpc3Qp OwotLS0tIGEveGVuL2FyY2gveDg2L2h2bS9pby5jCi0rKysgYi94ZW4vYXJjaC94ODYvaHZtL2lv LmMKLUBAIC0xNDMsMzYgKzE0Myw1NiBAQCBib29sIGhhbmRsZV9waW8odWludDE2X3QgcG9ydCwg dW5zaWduZWQKLSAgICAgcmV0dXJuIHRydWU7Ci0gfQotIAotLXN0YXRpYyBib29sIGNmX2NoZWNr IGcybV9wb3J0aW9fYWNjZXB0KAotLSAgICBjb25zdCBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhh bmRsZXIsIGNvbnN0IGlvcmVxX3QgKnApCi0rLyogTkI6IFJldHVybnMgd2l0aCB0aGUgbG9jayBo ZWxkIGluIHRoZSBzdWNjZXNzIGNhc2UuICovCi0rc3RhdGljIGNvbnN0IHN0cnVjdCBnMm1faW9w b3J0ICpnMm1fcG9ydGlvX2ZpbmRfYW5kX2xvY2soc3RydWN0IGh2bV9kb21haW4gKmh2bSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50NjRfdCBhZGRyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQzMl90IHNpemUpCi0gewotLSAgICBzdHJ1Y3QgdmNwdSAqY3Vy ciA9IGN1cnJlbnQ7Ci0tICAgIGNvbnN0IHN0cnVjdCBodm1fZG9tYWluICpodm0gPSAmY3Vyci0+ ZG9tYWluLT5hcmNoLmh2bTsKLS0gICAgc3RydWN0IGh2bV92Y3B1X2lvICpodmlvID0gJmN1cnIt PmFyY2guaHZtLmh2bV9pbzsKLS0gICAgc3RydWN0IGcybV9pb3BvcnQgKmcybV9pb3BvcnQ7Ci0t ICAgIHVuc2lnbmVkIGludCBzdGFydCwgZW5kOwotKyAgICBjb25zdCBzdHJ1Y3QgZzJtX2lvcG9y dCAqZzJtX2lvcG9ydDsKLSsKLSsgICAgcmVhZF9sb2NrKCZodm0tPmcybV9pb3BvcnRfbG9jayk7 Ci0gCi0gICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoIGcybV9pb3BvcnQsICZodm0tPmcybV9pb3Bv cnRfbGlzdCwgbGlzdCApCi0gICAgIHsKLS0gICAgICAgIHN0YXJ0ID0gZzJtX2lvcG9ydC0+Z3Bv cnQ7Ci0tICAgICAgICBlbmQgPSBzdGFydCArIGcybV9pb3BvcnQtPm5wOwotLSAgICAgICAgaWYg KCAocC0+YWRkciA+PSBzdGFydCkgJiYgKHAtPmFkZHIgKyBwLT5zaXplIDw9IGVuZCkgKQotLSAg ICAgICAgewotLSAgICAgICAgICAgIGh2aW8tPmcybV9pb3BvcnQgPSBnMm1faW9wb3J0OwotLSAg ICAgICAgICAgIHJldHVybiAxOwotLSAgICAgICAgfQotKyAgICAgICAgdW5zaWduZWQgaW50IHN0 YXJ0ID0gZzJtX2lvcG9ydC0+Z3BvcnQ7Ci0rCi0rICAgICAgICBpZiAoIGFkZHIgPj0gc3RhcnQg JiYgYWRkciArIHNpemUgPD0gc3RhcnQgKyBnMm1faW9wb3J0LT5ucCApCi0rICAgICAgICAgICAg cmV0dXJuIGcybV9pb3BvcnQ7Ci0gICAgIH0KLSAKLS0gICAgcmV0dXJuIDA7Ci0rICAgIHJlYWRf dW5sb2NrKCZodm0tPmcybV9pb3BvcnRfbG9jayk7Ci0rCi0rICAgIHJldHVybiBOVUxMOwotK30K LSsKLStzdGF0aWMgYm9vbCBjZl9jaGVjayBnMm1fcG9ydGlvX2FjY2VwdCgKLSsgICAgY29uc3Qg c3RydWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyLCBjb25zdCBpb3JlcV90ICpwKQotK3sKLSsg ICAgc3RydWN0IGh2bV9kb21haW4gKmh2bSA9ICZjdXJyZW50LT5kb21haW4tPmFyY2guaHZtOwot KyAgICBjb25zdCBzdHJ1Y3QgZzJtX2lvcG9ydCAqZzJtX2lvcG9ydCA9Ci0rICAgICAgICBnMm1f cG9ydGlvX2ZpbmRfYW5kX2xvY2soaHZtLCBwLT5hZGRyLCBwLT5zaXplKTsKLSsKLSsgICAgaWYg KCAhZzJtX2lvcG9ydCApCi0rICAgICAgICByZXR1cm4gZmFsc2U7Ci0rCi0rICAgIHJlYWRfdW5s b2NrKCZodm0tPmcybV9pb3BvcnRfbG9jayk7Ci0rCi0rICAgIHJldHVybiB0cnVlOwotIH0KLSAK LSBzdGF0aWMgaW50IGNmX2NoZWNrIGcybV9wb3J0aW9fcmVhZCgKLSAgICAgY29uc3Qgc3RydWN0 IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyLCB1aW50NjRfdCBhZGRyLCB1aW50MzJfdCBzaXplLAot ICAgICB1aW50NjRfdCAqZGF0YSkKLSB7Ci0tICAgIHN0cnVjdCBodm1fdmNwdV9pbyAqaHZpbyA9 ICZjdXJyZW50LT5hcmNoLmh2bS5odm1faW87Ci0tICAgIGNvbnN0IHN0cnVjdCBnMm1faW9wb3J0 ICpnMm1faW9wb3J0ID0gaHZpby0+ZzJtX2lvcG9ydDsKLS0gICAgdW5zaWduZWQgaW50IG1wb3J0 ID0gKGFkZHIgLSBnMm1faW9wb3J0LT5ncG9ydCkgKyBnMm1faW9wb3J0LT5tcG9ydDsKLSsgICAg c3RydWN0IGh2bV9kb21haW4gKmh2bSA9ICZjdXJyZW50LT5kb21haW4tPmFyY2guaHZtOwotKyAg ICBjb25zdCBzdHJ1Y3QgZzJtX2lvcG9ydCAqZzJtX2lvcG9ydCA9Ci0rICAgICAgICBnMm1fcG9y dGlvX2ZpbmRfYW5kX2xvY2soaHZtLCBhZGRyLCBzaXplKTsKLSsgICAgdW5zaWduZWQgaW50IG1w b3J0OwotKwotKyAgICBpZiAoICFnMm1faW9wb3J0ICkKLSsgICAgICAgIHJldHVybiBYODZFTVVM X1JFVFJZOwotKwotKyAgICBtcG9ydCA9IGFkZHIgLSBnMm1faW9wb3J0LT5ncG9ydCArIGcybV9p b3BvcnQtPm1wb3J0OwotIAotICAgICBzd2l0Y2ggKCBzaXplICkKLSAgICAgewotQEAgLTE4OSw2 ICsyMDksOCBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGcybV9wb3J0aW9fcmVhZCgKLSAgICAgICAg IEJVRygpOwotICAgICB9Ci0gCi0rICAgIHJlYWRfdW5sb2NrKCZodm0tPmcybV9pb3BvcnRfbG9j ayk7Ci0rCi0gICAgIHJldHVybiBYODZFTVVMX09LQVk7Ci0gfQotIAotQEAgLTE5Niw5ICsyMTgs MTUgQEAgc3RhdGljIGludCBjZl9jaGVjayBnMm1fcG9ydGlvX3dyaXRlKAotICAgICBjb25zdCBz dHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRsZXIsIHVpbnQ2NF90IGFkZHIsIHVpbnQzMl90IHNp emUsCi0gICAgIHVpbnQ2NF90IGRhdGEpCi0gewotLSAgICBzdHJ1Y3QgaHZtX3ZjcHVfaW8gKmh2 aW8gPSAmY3VycmVudC0+YXJjaC5odm0uaHZtX2lvOwotLSAgICBjb25zdCBzdHJ1Y3QgZzJtX2lv cG9ydCAqZzJtX2lvcG9ydCA9IGh2aW8tPmcybV9pb3BvcnQ7Ci0tICAgIHVuc2lnbmVkIGludCBt cG9ydCA9IChhZGRyIC0gZzJtX2lvcG9ydC0+Z3BvcnQpICsgZzJtX2lvcG9ydC0+bXBvcnQ7Ci0r ICAgIHN0cnVjdCBodm1fZG9tYWluICpodm0gPSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bTsK LSsgICAgY29uc3Qgc3RydWN0IGcybV9pb3BvcnQgKmcybV9pb3BvcnQgPQotKyAgICAgICAgZzJt X3BvcnRpb19maW5kX2FuZF9sb2NrKGh2bSwgYWRkciwgc2l6ZSk7Ci0rICAgIHVuc2lnbmVkIGlu dCBtcG9ydDsKLSsKLSsgICAgaWYgKCAhZzJtX2lvcG9ydCApCi0rICAgICAgICByZXR1cm4gWDg2 RU1VTF9SRVRSWTsKLSsKLSsgICAgbXBvcnQgPSBhZGRyIC0gZzJtX2lvcG9ydC0+Z3BvcnQgKyBn Mm1faW9wb3J0LT5tcG9ydDsKLSAKLSAgICAgc3dpdGNoICggc2l6ZSApCi0gICAgIHsKLUBAIC0y MTUsNiArMjQzLDggQEAgc3RhdGljIGludCBjZl9jaGVjayBnMm1fcG9ydGlvX3dyaXRlKAotICAg ICAgICAgQlVHKCk7Ci0gICAgIH0KLSAKLSsgICAgcmVhZF91bmxvY2soJmh2bS0+ZzJtX2lvcG9y dF9sb2NrKTsKLSsKLSAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKLSB9Ci0gCi0tLS0gYS94ZW4v YXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL2RvbWFpbi5oCi0rKysgYi94ZW4vYXJjaC94ODYvaW5j bHVkZS9hc20vaHZtL2RvbWFpbi5oCi1AQCAtMTI1LDYgKzEyNSw3IEBAIHN0cnVjdCBodm1fZG9t YWluIHsKLSAKLSAgICAgLyogTGlzdCBvZiBndWVzdCB0byBtYWNoaW5lIElPIHBvcnRzIG1hcHBp bmcuICovCi0gICAgIHN0cnVjdCBsaXN0X2hlYWQgZzJtX2lvcG9ydF9saXN0OwotKyAgICByd2xv Y2tfdCBnMm1faW9wb3J0X2xvY2s7Ci0gCi0gICAgIC8qIExpc3Qgb2YgTU1DRkcgcmVnaW9ucyB0 cmFwcGVkIGJ5IFhlbi4gKi8KLSAgICAgc3RydWN0IGxpc3RfaGVhZCBtbWNmZ19yZWdpb25zOwot LS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS92Y3B1LmgKLSsrKyBiL3hlbi9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9odm0vdmNwdS5oCi1AQCAtNTQsOCArNTQsNiBAQCBzdHJ1Y3QgaHZt X3ZjcHVfaW8gewotICAgICB1bnNpZ25lZCBsb25nIG1zaXhfdW5tYXNrX2FkZHJlc3M7Ci0gICAg IHVuc2lnbmVkIGxvbmcgbXNpeF9zbm9vcF9hZGRyZXNzOwotICAgICB1bnNpZ25lZCBsb25nIG1z aXhfc25vb3BfZ3BhOwotLQotLSAgICBjb25zdCBzdHJ1Y3QgZzJtX2lvcG9ydCAqZzJtX2lvcG9y dDsKLSB9OwotIAotIHN0cnVjdCBuZXN0ZWR2Y3B1IHsKCmRpZmYgLS1naXQgYS94c2E0OTItNC4y MS0wMS5wYXRjaCBiL3hzYTQ5Mi00LjIxLTAxLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA3MjQ0ZWJkLi4wMDAwMDAwCi0tLSBhL3hzYTQ5Mi00LjIxLTAxLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMjY0ICswLDAgQEAKLUZyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz dXNlLmNvbT4KLVN1YmplY3Q6IHNjaGVkOiB1c2Ugc2VxdWVuY2UgY291bnRlciB0byBlbmxpZ2h0 ZW4gdmNwdV9ydW5zdGF0ZV9nZXQoKQotCi1TdWJzZXF1ZW50bHkgWEVOX0RPTUNUTF9nZXRkb21h aW5pbmZvIHdpbGwgd2FudCB0byBpbnZva2UgdGhlIGZ1bmN0aW9uCi13aXRob3V0IGhvbGRpbmcg YSBsb2NrLCB0aHVzIGFsbG93aW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiBvZiBwb3RlbnRpYWxseQot bWFueSBpbnN0YW5jZXMuIEFzIHdhcyBsZWFybmVkIGZyb20gMjI4YWI5OTkyZmZiICgiZG9tY3Rs OiBpbXByb3ZlCi1sb2NraW5nIGR1cmluZyBkb21haW4gZGVzdHJ1Y3Rpb24iKSwgcmV2ZXJ0ZWQg YnkgZDA4ODdjYzZiMTZlLCBzdWNoCi1wYXJhbGxlbGlzbSBjYW4gcmVzdWx0IGluIHNldmVyZSBs b2NrIGNvbnRlbnRpb24gb24gYW55IChwcmV2aW91c2x5KQotaW5uZXIgbG9jay4gVG8gYXZvaWQg dGFraW5nIHRoYXQgcmlzayByZXBsYWNlIHRoZSB1c2Ugb2YgdGhlIHNjaGVkdWxlcgotbG9jayBp biB2Y3B1X3J1bnN0YXRlX2dldCgpIGJ5IGEgbmV3bHkgaW50cm9kdWNlZCBzZXF1ZW5jZSBjb3Vu dGVyLgotQ29udmVydCB0aGUgIm5vIGxvY2sgaWYgY3VycmVudCIgcHJvcGVydHkgdG8gInVzZSBh IGxvY2FsIGNvdW50ZXIKLWluc3RhbmNlIiwgdGh1cyBndWFyYW50ZWVpbmcgdGhlIGxvb3AgdG8g ZXhpdCBhZnRlciB0aGUgZmlyc3QgaXRlcmF0aW9uLgotCi1Ta2VsZXRvbiBhbmQgY29tbWVudGFy eSBvZiB0aGUgc2VxY291bnQgaW1wbGVtZW50YXRpb24gYmFzZWQgb24gLwotZGVyaXZlZCBmcm9t IExpbnV4IDYuMTEtcmMuCi0KLVRvIGhhdmUgcnVuc3RhdGVfc2VxIHBsYWNlZCBuZXh0IHRvIHJ1 bnN0YXRlIGluIHN0cnVjdCB2Y3B1LCB3aXRob3V0Ci1pbnRyb2R1Y2luZyBhIG5ldyBvYnZpb3Vz IHBhZGRpbmcgaG9sZSwgeWV0IHdoaWxlIGtlZXBpbmcgdGhlIGxhdHRlcgotYWRqYWNlbnQgdG8g cnVuc3RhdGVfZ3Vlc3R7LF9hcmVhfSBhcyB3ZWxsLCBtb3ZlIHJ1bnN0YXRlIGRvd24gYSBsaXR0 bGUuCi0KLVRoaXMgaXMgcGFydCBvZiBYU0EtNDkyLgotCi1SZXF1ZXN0ZWQtYnk6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBKYW4gQmV1 bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kg PHJvZ2VyLnBhdUBjaXRyaXguY29tPgotUmV2aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9z c0BzdXNlLmNvbT4KLQotLS0tIGEveGVuL2NvbW1vbi9zY2hlZC9jb3JlLmMKLSsrKyBiL3hlbi9j b21tb24vc2NoZWQvY29yZS5jCi1AQCAtMjgxLDEzICsyODEsMTggQEAgc3RhdGljIGlubGluZSB2 b2lkIHZjcHVfcnVuc3RhdGVfY2hhbmdlKAotICAgICB9Ci0gCi0gICAgIGRlbHRhID0gbmV3X2Vu dHJ5X3RpbWUgLSB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1lOwotLSAgICBpZiAoIGRlbHRh ID4gMCApCi0rCi0rICAgIC8qIFNlcmlhbGl6YXRpb246IC0+c2NoZWR1bGVfbG9jayAoc2VlIEFT U0VSVCgpIGFib3ZlKS4gKi8KLSsgICAgd2l0aF9zZXFfd3JpdGUoJnYtPnJ1bnN0YXRlX3NlcSkK LSAgICAgewotLSAgICAgICAgdi0+cnVuc3RhdGUudGltZVt2LT5ydW5zdGF0ZS5zdGF0ZV0gKz0g ZGVsdGE7Ci0tICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1lID0gbmV3X2VudHJ5 X3RpbWU7Ci0tICAgIH0KLSsgICAgICAgIGlmICggZGVsdGEgPiAwICkKLSsgICAgICAgIHsKLSsg ICAgICAgICAgICB2LT5ydW5zdGF0ZS50aW1lW3YtPnJ1bnN0YXRlLnN0YXRlXSArPSBkZWx0YTsK LSsgICAgICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1lID0gbmV3X2VudHJ5X3Rp bWU7Ci0rICAgICAgICB9Ci0gCi0tICAgIHYtPnJ1bnN0YXRlLnN0YXRlID0gbmV3X3N0YXRlOwot KyAgICAgICAgdi0+cnVuc3RhdGUuc3RhdGUgPSBuZXdfc3RhdGU7Ci0rICAgIH0KLSB9Ci0gCi0g dm9pZCBzY2hlZF9ndWVzdF9pZGxlKHZvaWQgKCppZGxlKSAodm9pZCksIHVuc2lnbmVkIGludCBj cHUpCi1AQCAtMzA3LDMwICszMTIsMTggQEAgdm9pZCBzY2hlZF9ndWVzdF9pZGxlKHZvaWQgKCpp ZGxlKSAodm9pZAotIHZvaWQgdmNwdV9ydW5zdGF0ZV9nZXQoY29uc3Qgc3RydWN0IHZjcHUgKnYs Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmNwdV9ydW5zdGF0ZV9pbmZvICpydW5z dGF0ZSkKLSB7Ci0tICAgIHNwaW5sb2NrX3QgKmxvY2s7Ci0tICAgIHNfdGltZV90IGRlbHRhOwot LSAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdDsKLSsgICAgc3RydWN0IHNlcWNvdW50IHNlcSA9 IFNFUUNOVF9aRVJPKCk7Ci0rICAgIGNvbnN0IHN0cnVjdCBzZXFjb3VudCAqcyA9IGxpa2VseSh2 ID09IGN1cnJlbnQpID8gJnNlcSA6ICZ2LT5ydW5zdGF0ZV9zZXE7Ci0gCi0tICAgIHJjdV9yZWFk X2xvY2soJnNjaGVkX3Jlc19yY3Vsb2NrKTsKLS0KLS0gICAgLyoKLS0gICAgICogQmUgY2FyZWZ1 bCBpbiBjYXNlIG9mIGFuIGlkbGUgdmNwdTogdGhlIGFzc2lnbm1lbnQgdG8gYSB1bml0IG1pZ2h0 Ci0tICAgICAqIGNoYW5nZSBldmVuIHdpdGggdGhlIHNjaGVkdWxpbmcgbG9jayBoZWxkLCBzbyBi ZSBzdXJlIHRvIHVzZSB0aGUKLS0gICAgICogY29ycmVjdCB1bml0IGZvciBsb2NraW5nIGluIG9y ZGVyIHRvIGF2b2lkIHRyaWdnZXJpbmcgYW4gQVNTRVJUKCkgaW4KLS0gICAgICogdGhlIHVubG9j ayBmdW5jdGlvbi4KLS0gICAgICovCi0tICAgIHVuaXQgPSBpc19pZGxlX3ZjcHUodikgPyBnZXRf c2NoZWRfcmVzKHYtPnByb2Nlc3NvciktPnNjaGVkX3VuaXRfaWRsZQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgIDogdi0+c2NoZWRfdW5pdDsKLS0gICAgbG9jayA9IGxpa2VseSh2ID09IGN1 cnJlbnQpID8gTlVMTCA6IHVuaXRfc2NoZWR1bGVfbG9ja19pcnEodW5pdCk7Ci0tICAgIG1lbWNw eShydW5zdGF0ZSwgJnYtPnJ1bnN0YXRlLCBzaXplb2YoKnJ1bnN0YXRlKSk7Ci0tICAgIGRlbHRh ID0gTk9XKCkgLSBydW5zdGF0ZS0+c3RhdGVfZW50cnlfdGltZTsKLS0gICAgaWYgKCBkZWx0YSA+ IDAgKQotLSAgICAgICAgcnVuc3RhdGUtPnRpbWVbcnVuc3RhdGUtPnN0YXRlXSArPSBkZWx0YTsK LS0KLS0gICAgaWYgKCB1bmxpa2VseShsb2NrICE9IE5VTEwpICkKLS0gICAgICAgIHVuaXRfc2No ZWR1bGVfdW5sb2NrX2lycShsb2NrLCB1bml0KTsKLSsgICAgdW50aWxfc2VxX3JlYWQocykKLSsg ICAgewotKyAgICAgICAgc190aW1lX3QgZGVsdGE7Ci0gCi0tICAgIHJjdV9yZWFkX3VubG9jaygm c2NoZWRfcmVzX3JjdWxvY2spOwotKyAgICAgICAgKnJ1bnN0YXRlID0gdi0+cnVuc3RhdGU7Ci0r ICAgICAgICBkZWx0YSA9IE5PVygpIC0gcnVuc3RhdGUtPnN0YXRlX2VudHJ5X3RpbWU7Ci0rICAg ICAgICBpZiAoIGRlbHRhID4gMCApCi0rICAgICAgICAgICAgcnVuc3RhdGUtPnRpbWVbcnVuc3Rh dGUtPnN0YXRlXSArPSBkZWx0YTsKLSsgICAgfQotIH0KLSAKLSB1aW50NjRfdCBnZXRfY3B1X2lk bGVfdGltZSh1bnNpZ25lZCBpbnQgY3B1KQotLS0tIGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgK LSsrKyBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCi1AQCAtMTYsNiArMTYsNyBAQAotICNpbmNs dWRlIDx4ZW4vcmFkaXgtdHJlZS5oPgotICNpbmNsdWRlIDx4ZW4vbXVsdGljYWxsLmg+Ci0gI2lu Y2x1ZGUgPHhlbi9ub3NwZWMuaD4KLSsjaW5jbHVkZSA8eGVuL3NlcWNvdW50Lmg+Ci0gI2luY2x1 ZGUgPHhlbi90YXNrbGV0Lmg+Ci0gI2luY2x1ZGUgPHhlbi9tbS5oPgotICNpbmNsdWRlIDx4ZW4v c21wLmg+Ci1AQCAtMTk4LDcgKzE5OSw2IEBAIHN0cnVjdCB2Y3B1Ci0gCi0gICAgIHN0cnVjdCBz Y2hlZF91bml0ICpzY2hlZF91bml0OwotIAotLSAgICBzdHJ1Y3QgdmNwdV9ydW5zdGF0ZV9pbmZv IHJ1bnN0YXRlOwotICNpZm5kZWYgQ09ORklHX0NPTVBBVAotICMgZGVmaW5lIHJ1bnN0YXRlX2d1 ZXN0KHYpICgodiktPnJ1bnN0YXRlX2d1ZXN0KQotICAgICBYRU5fR1VFU1RfSEFORExFKHZjcHVf cnVuc3RhdGVfaW5mb190KSBydW5zdGF0ZV9ndWVzdDsgLyogZ3Vlc3QgYWRkcmVzcyAqLwotQEAg LTIxMCw2ICsyMTAsOCBAQCBzdHJ1Y3QgdmNwdQotICAgICB9IHJ1bnN0YXRlX2d1ZXN0OyAvKiBn dWVzdCBhZGRyZXNzICovCi0gI2VuZGlmCi0gICAgIHN0cnVjdCBndWVzdF9hcmVhIHJ1bnN0YXRl X2d1ZXN0X2FyZWE7Ci0rICAgIHN0cnVjdCB2Y3B1X3J1bnN0YXRlX2luZm8gcnVuc3RhdGU7Ci0r ICAgIHN0cnVjdCBzZXFjb3VudCAgcnVuc3RhdGVfc2VxOwotICAgICB1bnNpZ25lZCBpbnQgICAg IG5ld19zdGF0ZTsKLSAKLSAgICAgLyogSGFzIHRoZSBGUFUgYmVlbiBpbml0aWFsaXNlZD8gKi8K LS0tLSAvZGV2L251bGwKLSsrKyBiL3hlbi9pbmNsdWRlL3hlbi9zZXFjb3VudC5oCi1AQCAtMCww ICsxLDEzOSBAQAotKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8K LSsjaWZuZGVmIFhFTl9TRVFDT1VOVF9ICi0rI2RlZmluZSBYRU5fU0VRQ09VTlRfSAotKwotKyNp bmNsdWRlIDx4ZW4vbGliLmg+Ci0rI2luY2x1ZGUgPHhlbi9ub3NwZWMuaD4KLSsKLSsjaW5jbHVk ZSA8YXNtL2F0b21pYy5oPgotKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+Ci0rCi0rLyoKLSsgKiBT ZXF1ZW5jZSBjb3VudGVycyAoc2VxY291bnRfdCkKLSsgKgotKyAqIFRoaXMgaXMgdGhlIHJhdyBj b3VudGluZyBtZWNoYW5pc20sIHdpdGhvdXQgYW55IHdyaXRlciBwcm90ZWN0aW9uLgotKyAqCi0r ICogV3JpdGUgc2lkZSBjcml0aWNhbCBzZWN0aW9ucyBtdXN0IGJlIHNlcmlhbGl6ZWQgKGFuZCBu b24tcHJlZW1wdGlibGUpLgotKyAqCi0rICogSWYgcmVhZGVycyBjYW4gYmUgaW52b2tlZCBmcm9t IGludGVycnVwdCBjb250ZXh0cywgaW50ZXJydXB0cyBtdXN0IGFsc28KLSsgKiBiZSByZXNwZWN0 aXZlbHkgZGlzYWJsZWQgYmVmb3JlIGVudGVyaW5nIHRoZSB3cml0ZSBzZWN0aW9uLgotKyAqCi0r ICogVGhpcyBtZWNoYW5pc20gY2FuJ3QgYmUgdXNlZCBpZiB0aGUgcHJvdGVjdGVkIGRhdGEgY29u dGFpbnMgcG9pbnRlcnMsCi0rICogYXMgdGhlIHdyaXRlciBjYW4gaW52YWxpZGF0ZSBhIHBvaW50 ZXIgdGhhdCBhIHJlYWRlciBpcyBmb2xsb3dpbmcuCi0rICovCi0rc3RydWN0IHNlcWNvdW50IHsK LSsgICAgdW5zaWduZWQgaW50IHNlcXVlbmNlOwotK307Ci0rCi0rLyoKLSsgKiBTRVFDTlRfWkVS TygpIC0gaW5pdGlhbGl6ZXIgZm9yIHNlcWNvdW50X3QKLSsgKiBAbmFtZTogTmFtZSBvZiB0aGUg c3RydWN0IHNlcWNvdW50IGluc3RhbmNlCi0rICovCi0rI2RlZmluZSBTRVFDTlRfWkVSTygpIHsg LnNlcXVlbmNlID0gMCB9Ci0rCi0rc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgc2VxcHJvcF9z ZXF1ZW5jZShjb25zdCBzdHJ1Y3Qgc2VxY291bnQgKnMpCi0rewotKyAgICByZXR1cm4gQUNDRVNT X09OQ0Uocy0+c2VxdWVuY2UpOwotK30KLSsKLSsvKgotKyAqIHJlYWRfc2VxY291bnRfYmVnaW4o KSAtIGJlZ2luIGEgc2VxY291bnQgcmVhZCBjcml0aWNhbCBzZWN0aW9uCi0rICogQHM6IFBvaW50 ZXIgdG8gc3RydWN0IHNlcWNvdW50Ci0rICoKLSsgKiBSZXR1cm46IGNvdW50IHRvIGJlIHBhc3Nl ZCB0byByZWFkX3NlcWNvdW50X3JldHJ5KCkKLSsgKi8KLStzdGF0aWMgaW5saW5lIHVuc2lnbmVk IGludCBfcmVhZF9zZXFjb3VudF9iZWdpbihjb25zdCBzdHJ1Y3Qgc2VxY291bnQgKnMpCi0rewot KyAgICB1bnNpZ25lZCBpbnQgc2VxOwotKwotKyAgICB3aGlsZSAoKHNlcSA9IHNlcXByb3Bfc2Vx dWVuY2UocykpICYgMSkKLSsgICAgICAgIGNwdV9yZWxheCgpOwotKwotKyAgICBzbXBfcm1iKCk7 Ci0rCi0rICAgIHJldHVybiBzZXE7Ci0rfQotKwotK3N0YXRpYyBhbHdheXNfaW5saW5lIHVuc2ln bmVkIGludCByZWFkX3NlcWNvdW50X2JlZ2luKGNvbnN0IHN0cnVjdCBzZXFjb3VudCAqcykKLSt7 Ci0rICAgIHVuc2lnbmVkIGludCBzZXEgPSBfcmVhZF9zZXFjb3VudF9iZWdpbihzKTsKLSsKLSsg ICAgYmxvY2tfbG9ja19zcGVjdWxhdGlvbigpOwotKwotKyAgICByZXR1cm4gc2VxOwotK30KLSsK LSsvKgotKyAqIHJlYWRfc2VxY291bnRfcmV0cnkoKSAtIGVuZCBhIHNlcWNvdW50IHJlYWQgY3Jp dGljYWwgc2VjdGlvbgotKyAqIEBzOiBQb2ludGVyIHRvIHN0cnVjdCBzZXFjb3VudAotKyAqIEBz dGFydDogY291bnQsIGZyb20gcmVhZF9zZXFjb3VudF9iZWdpbigpCi0rICoKLSsgKiByZWFkX3Nl cWNvdW50X3JldHJ5IGNsb3NlcyB0aGUgcmVhZCBjcml0aWNhbCBzZWN0aW9uIG9mIGdpdmVuIHN0 cnVjdAotKyAqIHNlcWNvdW50LiAgSWYgdGhlIGNyaXRpY2FsIHNlY3Rpb24gd2FzIGludmFsaWQs IGl0IG11c3QgYmUgaWdub3JlZAotKyAqIChhbmQgdHlwaWNhbGx5IHJldHJpZWQpLgotKyAqCi0r ICogUmV0dXJuOiB0cnVlIGlmIGEgcmVhZCBzZWN0aW9uIHJldHJ5IGlzIHJlcXVpcmVkLCBlbHNl IGZhbHNlCi0rICovCi0rc3RhdGljIGlubGluZSBib29sIF9yZWFkX3NlcWNvdW50X3JldHJ5KGNv bnN0IHN0cnVjdCBzZXFjb3VudCAqcywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IHN0YXJ0KQotK3sKLSsgICAgc21wX3JtYigpOwotKyAgICBy ZXR1cm4gdW5saWtlbHkoc2VxcHJvcF9zZXF1ZW5jZShzKSAhPSBzdGFydCk7Ci0rfQotKwotK3N0 YXRpYyBhbHdheXNfaW5saW5lIGJvb2wgcmVhZF9zZXFjb3VudF9yZXRyeShjb25zdCBzdHJ1Y3Qg c2VxY291bnQgKnMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBzdGFydCkKLSt7Ci0rICAgIHJldHVybiBsb2NrX2V2YWx1YXRlX25v c3BlYyhfcmVhZF9zZXFjb3VudF9yZXRyeShzLCBzdGFydCkpOwotK30KLSsKLSsvKiBMb29wcyB1 bnRpbCBhIGNvbnNpc3RlbnQgY291bnQgaGFzIGJlZW4gb2JzZXJ2ZWQgYWNyb3NzIHRoZSBsb29w IGJvZHkuICovCi0rI2RlZmluZSB1bnRpbF9zZXFfcmVhZChzZXEpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAotKyAgICBmb3IgKCB1bnNpZ25lZCBpbnQgcmV0cnlfID0gMSwg Y291bnRfOyAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgICAgICAgcmV0cnlfICYmIChjb3Vu dF8gPSByZWFkX3NlcWNvdW50X2JlZ2luKHNlcSksIHRydWUpOyBcCi0rICAgICAgICAgIHJldHJ5 XyA9IHJlYWRfc2VxY291bnRfcmV0cnkoc2VxLCBjb3VudF8pICkKLSsKLSsvKgotKyAqIHdyaXRl X3NlcWNvdW50X2JlZ2luKCkgLSBzdGFydCBhIHN0cnVjdCBzZXFjb3VudCB3cml0ZSBzaWRlIGNy aXRpY2FsIHNlY3Rpb24KLSsgKiBAczogUG9pbnRlciB0byBzdHJ1Y3Qgc2VxY291bnQKLSsgKgot KyAqIENvbnRleHQ6IHNlcXVlbmNlIGNvdW50ZXIgd3JpdGUgc2lkZSBzZWN0aW9ucyBtdXN0IGJl IHNlcmlhbGl6ZWQuCi0rICogSWYgcmVhZGVycyBjYW4gYmUgaW52b2tlZCBmcm9tIGludGVycnVw dCBjb250ZXh0LCBpbnRlcnJ1cHRzIG11c3QgYmUKLSsgKiByZXNwZWN0aXZlbHkgZGlzYWJsZWQu Ci0rICovCi0rc3RhdGljIGlubGluZSB2b2lkIHdyaXRlX3NlcWNvdW50X2JlZ2luKHN0cnVjdCBz ZXFjb3VudCAqcykKLSt7Ci0rICAgIGFkZF9zaXplZCgmcy0+c2VxdWVuY2UsIDEpOwotKyAgICBz bXBfd21iKCk7Ci0rfQotKwotKy8qCi0rICogd3JpdGVfc2VxY291bnRfZW5kKCkgLSBlbmQgYSBz dHJ1Y3Qgc2VxY291bnQgd3JpdGUgc2lkZSBjcml0aWNhbCBzZWN0aW9uCi0rICogQHM6IFBvaW50 ZXIgdG8gc2VxY291bnQKLSsgKi8KLStzdGF0aWMgaW5saW5lIHZvaWQgd3JpdGVfc2VxY291bnRf ZW5kKHN0cnVjdCBzZXFjb3VudCAqcykKLSt7Ci0rICAgIHNtcF93bWIoKTsKLSsgICAgYWRkX3Np emVkKCZzLT5zZXF1ZW5jZSwgMSk7Ci0rfQotKwotKy8qCi0rICogTm90IHJlYWxseSBhIGxvb3As IGJ1dCB3ZSBuZWVkIHdyaXRlX3NlcWNvdW50X3tiZWdpbixlbmR9KCkgaW4gdGhlIGNvcnJlY3QK LSsgKiBwb3NpdGlvbi4KLSsgKi8KLSsjZGVmaW5lIHdpdGhfc2VxX3dyaXRlKHNlcSkgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCi0rICAgIGZvciAoIGJvb2wgb25jZV8gPSB0cnVlOyAgICAg ICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAgICAgICBvbmNlXyAmJiAod3JpdGVfc2VxY291 bnRfYmVnaW4oc2VxKSwgdHJ1ZSk7IFwKLSsgICAgICAgICAgKHdyaXRlX3NlcWNvdW50X2VuZChz ZXEpLCBvbmNlXyA9IGZhbHNlKSApCi0rCi0rI2VuZGlmIC8qIFhFTl9TRVFDT1VOVF9IICovCi0r Ci0rLyoKLSsgKiBMb2NhbCB2YXJpYWJsZXM6Ci0rICogbW9kZTogQwotKyAqIGMtZmlsZS1zdHls ZTogIkJTRCIKLSsgKiBjLWJhc2ljLW9mZnNldDogNAotKyAqIHRhYi13aWR0aDogNAotKyAqIGlu ZGVudC10YWJzLW1vZGU6IG5pbAotKyAqIEVuZDoKLSsgKi8KCmRpZmYgLS1naXQgYS94c2E0OTIt NC4yMS0wMi5wYXRjaCBiL3hzYTQ5Mi00LjIxLTAyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA3NWNhOGNhLi4wMDAwMDAwCi0tLSBhL3hzYTQ5Mi00LjIxLTAyLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTA0ICswLDAgQEAKLUZyb206IEphbiBCZXVsaWNoIDxqYmV1bGlj aEBzdXNlLmNvbT4KLVN1YmplY3Q6IGRvbWN0bDogaGFuZGxlIFhFTl9ET01DVExfZ2V0ZG9tYWlu aW5mbyB3aXRob3V0IGFjcXVpcmluZyBkb21jdGwgbG9jawotCi1nZXRkb21haW5pbmZvKCkgaXMg bm90IGNhbGxlZCB1bmRlciBjb25zaXN0ZW50bHkgdGhlIHNhbWUgbG9jay4gVGh1cywKLXdpdGgg Y2FsbGVyIHNpZGUgbG9ja2luZyBpcnJlbGV2YW50LCBpdCBjYW4gYXMgd2VsbCBiZSBjYWxsZWQg d2l0aCB0aGUKLWRvbWN0bCBsb2NrIG5vdCBoZWxkLiAoQ2FsbGVycyBub3QgcGF1c2luZyB0aGUg ZG9tYWluIHRoZXkgd2FudCB0bwotcmV0cmlldmUgaW5mb3JtYXRpb24gZm9yIGFscmVhZHkgbmVl ZCB0byBiZSBhd2FyZSB0aGF0IG5vdCBhbGwgb2YgdGhlCi1kYXRhIHJldHVybmVkIGNhbiBiZSBy ZWxpZWQgb24gYXMgYmVpbmcgY29uc2lzdGVudDsgbW9zdCBkYXRhIHdpbGwgYWxzbwotYmUgc3Rh bGUgYnkgdGhlIHRpbWUgdGhlIGNhbGxlciBnZXRzIHRvIGxvb2sgYXQgaXQuKQotCi1Nb3ZlIHRo ZSBoYW5kbGluZyBub3Qgb25seSBhaGVhZCBvZiBhY3F1aXJpbmcgdGhlIGxvY2ssIGJ1dCBhbHNv IGFoZWFkCi1vZiB0aGUgWFNNIGNoZWNrLCBsZXZlcmFnaW5nIHRoYXQgdGhlIHN1Yi1vcCBoYXMg aXRzIG93biBob29rLgotCi1XaGlsZSBtb3ZpbmcsIGNvbnZlcnQgYW4gYXNzaWdubWVudCB0byBh biBhc3NlcnRpb246IFRoZSBkb21haW4gaW4KLXF1ZXN0aW9uIHdhcyBkZXRlcm1pbmVkIGZyb20g dGhlIGZpZWxkIHdoaWNoIHByZXZpb3VzbHkgd2FzICJ1cGRhdGVkIi4KLQotVGhpcyBpcyBwYXJ0 IG9mIFhTQS00OTIuCi0KLUZpeGVzOiA1NTEzYmQwYjQ2NzUgKCJhZGQgeGVuc3RvcmUgZG9tYWlu IGZsYWcgdG8gaHlwZXJ2aXNvciIpCi1SZXBvcnRlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbT4KLVNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGlj aEBzdXNlLmNvbT4KLVJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KLUFja2VkLWJ5OiBEYW5pZWwgUC4gU21pdGggPGRwc21pdGhAYXBlcnR1c3NvbHV0 aW9ucy5jb20+Ci0KLS0tLSBhL3hlbi9jb21tb24vZG9tY3RsLmMKLSsrKyBiL3hlbi9jb21tb24v ZG9tY3RsLmMKLUBAIC0zMTgsNiArMzE4LDI2IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9I QU5ETEVfUEFSQU0oeGUKLSAgICAgICAgIGJyZWFrOwotICAgICB9Ci0gCi0rICAgIC8qIEhhbmRs ZSBzdWItb3BzIG5vdCByZXF1aXJpbmcgdGhlIGRvbWN0bCBsb2NrLiAqLwotKyAgICBzd2l0Y2gg KCBvcC0+Y21kICkKLSsgICAgewotKyAgICBjYXNlIFhFTl9ET01DVExfZ2V0ZG9tYWluaW5mbzoK LSsgICAgICAgIHJldCA9IHhzbV9nZXRkb21haW5pbmZvKFhTTV9YU19QUklWLCBkKTsKLSsgICAg ICAgIGlmICggIXJldCApCi0rICAgICAgICB7Ci0rICAgICAgICAgICAgZ2V0ZG9tYWluaW5mbyhk LCAmb3AtPnUuZ2V0ZG9tYWluaW5mbyk7Ci0rCi0rICAgICAgICAgICAgQVNTRVJUKG9wLT5kb21h aW4gPT0gb3AtPnUuZ2V0ZG9tYWluaW5mby5kb21haW4pOwotKyAgICAgICAgICAgIGNvcHliYWNr ID0gdHJ1ZTsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tf ZG9tb25seTsKLSsKLSsgICAgZGVmYXVsdDoKLSsgICAgICAgIC8qIEV2ZXJ5dGhpbmcgZWxzZSBo YW5kbGVkIGZ1cnRoZXIgZG93bi4gKi8KLSsgICAgICAgIGJyZWFrOwotKyAgICB9Ci0rCi0gICAg IHJldCA9IHhzbV9kb21jdGwoWFNNX09USEVSLCBkLCBvcC0+Y21kLAotICAgICAgICAgICAgICAg ICAgICAgIC8qIFNTSURSZWYgb25seSBhcHBsaWNhYmxlIGZvciBjbWQgPT0gY3JlYXRlZG9tYWlu ICovCi0gICAgICAgICAgICAgICAgICAgICAgb3AtPnUuY3JlYXRlZG9tYWluLnNzaWRyZWYpOwot QEAgLTUxNiwxNyArNTM2LDYgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJB TSh4ZQotICAgICAgICAgY29weWJhY2sgPSAxOwotICAgICAgICAgYnJlYWs7Ci0gCi0tICAgIGNh c2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgotLSAgICAgICAgcmV0ID0geHNtX2dldGRvbWFp bmluZm8oWFNNX1hTX1BSSVYsIGQpOwotLSAgICAgICAgaWYgKCByZXQgKQotLSAgICAgICAgICAg IGJyZWFrOwotLQotLSAgICAgICAgZ2V0ZG9tYWluaW5mbyhkLCAmb3AtPnUuZ2V0ZG9tYWluaW5m byk7Ci0tCi0tICAgICAgICBvcC0+ZG9tYWluID0gb3AtPnUuZ2V0ZG9tYWluaW5mby5kb21haW47 Ci0tICAgICAgICBjb3B5YmFjayA9IDE7Ci0tICAgICAgICBicmVhazsKLS0KLSAgICAgY2FzZSBY RU5fRE9NQ1RMX2dldHZjcHVjb250ZXh0OgotICAgICB7Ci0gICAgICAgICB2Y3B1X2d1ZXN0X2Nv bnRleHRfdSBjID0geyAubmF0ID0gTlVMTCB9OwotLS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15 LmgKLSsrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCi1AQCAtMTcyLDkgKzE3MiwxMyBAQCBz dGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2RvbWN0Ci0gICAgIGNhc2UgWEVOX0RP TUNUTF9iaW5kX3B0X2lycToKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE6Ci0g ICAgICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKFhTTV9ETV9QUklWLCBjdXJyZW50LT5k b21haW4sIGQpOwotLSAgICBjYXNlIFhFTl9ET01DVExfZ2V0ZG9tYWluaW5mbzoKLSAgICAgY2Fz ZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3RhdGU6Ci0gICAgICAgICByZXR1cm4geHNtX2RlZmF1 bHRfYWN0aW9uKFhTTV9YU19QUklWLCBjdXJyZW50LT5kb21haW4sIGQpOwotKwotKyAgICBjYXNl IFhFTl9ET01DVExfZ2V0ZG9tYWluaW5mbzoKLSsgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgp OwotKyAgICAgICAgcmV0dXJuIC1FSUxTRVE7Ci0rCi0gICAgIGRlZmF1bHQ6Ci0gICAgICAgICBy ZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKFhTTV9QUklWLCBjdXJyZW50LT5kb21haW4sIGQpOwot ICAgICB9Ci0tLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKLSsrKyBiL3hlbi94c20vZmxhc2sv aG9va3MuYwotQEAgLTY4Miw4ICs2ODIsMTIgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19k b21jdGwoc3RydWN0Ci0gICAgICAgICAgKi8KLSAgICAgICAgIHJldHVybiBhdmNfY3VycmVudF9o YXNfcGVybShzc2lkcmVmLCBTRUNDTEFTU19ET01BSU4sIERPTUFJTl9fQ1JFQVRFLCBOVUxMKTsK LSAKLS0gICAgLyogVGhlc2UgaGF2ZSBpbmRpdmlkdWFsIFhTTSBob29rcyAoY29tbW9uL2RvbWN0 bC5jKSAqLwotKyAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIGFuZCBkb24n dCBtYWtlIGl0IGhlcmUuICovCi0gICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgot KyAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7Ci0rICAgICAgICByZXR1cm4gLUVJTFNFUTsK LSsKLSsgICAgLyogVGhlc2UgaGF2ZSBpbmRpdmlkdWFsIFhTTSBob29rcyAoY29tbW9uL2RvbWN0 bC5jKSAqLwotICAgICBjYXNlIFhFTl9ET01DVExfc2NoZWR1bGVyX29wOgotICAgICBjYXNlIFhF Tl9ET01DVExfaXJxX3Blcm1pc3Npb246Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9pb21lbV9wZXJt aXNzaW9uOgoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00LjIxLTAzLnBhdGNoIGIveHNhNDkyLTQuMjEt MDMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhMGRiMjIuLjAwMDAwMDAK LS0tIGEveHNhNDkyLTQuMjEtMDMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBA Ci1Gcm9tOiBEYW5pZWwgUC4gU21pdGggPGRwc21pdGhAYXBlcnR1c3NvbHV0aW9ucy5jb20+Ci1T dWJqZWN0OiBkb21jdGw6IHByb3RlY3QgbG9ja2luZyBmb3IgZ2V0X2RvbWFpbl9zdGF0ZQotCi1X aGVuIERPTUlEX0lOVkFMSUQgaXMgcGFzc2VkLCB0aGUgZG9tIGV4ZWMgaGFuZGxlciBsb2NrIGlz IGJlaW5nIHRha2VuCi13aXRob3V0IGFueSBjaGVjayB0aGF0IHRoZSBkb21haW4gaXMgZXZlbiBh bGxvd2VkIHRvIHRha2UgdGhlIGxvY2suIFRoaXMKLWFsbG93cyBmb3IgYW4gdW5hdXRob3JpemVk IGRvbWFpbiB0byBEb1MgdGhlIGdldF9kb21haW5fc3RhdGUgZG9tY3RsIG9wLgotTW92ZSB0byBj b25zaWRlciB0aGUgb3AgZWZmZWN0aXZlbHkgYmVpbmcgY2FsbGVkIGFnYWluc3QgdGhlIGh5cGVy dmlzb3IuCi1UaHVzIGl0IGlzIHRoZSB0YXJnZXQgb2YgdGhlIGNhbGwgYmVpbmcgaW52b2tlZCB0 byBpZGVudGlmeSB0aGUgbGFzdAotZG9tYWluIHdpdGggYSBzdGF0ZSBjaGFuZ2UuIFRoZSBzdWJz ZXF1ZW50IGNoZWNrIG9mIHdoZXRoZXIgdGhlIHNvdXJjZQotZG9tYWluIGlzIGFsbG93ZWQgdGhl IHN0YXRlIG9mIHRoZSBsYXN0IGRvbWFpbiB0byBjaGFuZ2Ugc3RhdGUgaXMgc3RpbGwKLXJlbGV2 YW50LgotCi1UaGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4KLQotU2lnbmVkLW9mZi1ieTogRGFuaWVs IFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgotU2lnbmVkLW9mZi1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBN b25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotCi0tLS0gYS90b29scy9mbGFzay9wb2xpY3kv bW9kdWxlcy94ZW5zdG9yZS50ZQotKysrIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVu c3RvcmUudGUKLUBAIC0xNCw2ICsxNCw3IEBAIGFsbG93IHhlbnN0b3JlX3QgeGVuX3Q6eGVuIHdy aXRlY29uc29sZTsKLSAjIFhlbnN0b3JlIHF1ZXJpZXMgZG9tYWluaW5mbyBvbiBhbGwgZG9tYWlu cwotIGFsbG93IHhlbnN0b3JlX3QgZG9tYWluX3R5cGU6ZG9tYWluIGdldGRvbWFpbmluZm87Ci0g YWxsb3cgeGVuc3RvcmVfdCBkb21haW5fdHlwZTpkb21haW4yIGdldF9kb21haW5fc3RhdGU7Ci0r YWxsb3cgeGVuc3RvcmVfdCBkb214ZW5fdDpkb21haW4yIGdldF9kb21haW5fc3RhdGU7Ci0gCi0g IyBBcyBhIHNob3J0Y3V0LCB0aGUgZm9sbG93aW5nIDMgcnVsZXMgYXJlIHVzZWQgaW5zdGVhZCBv ZiBhZGRpbmcgYSBkb21haW5fY29tbXMKLSAjIHJ1bGUgYmV0d2VlbiB4ZW5zdG9yZV90IGFuZCBl dmVyeSBkb21haW4gdHlwZSB0aGF0IHRhbGtzIHRvIHhlbnN0b3JlCi0tLS0gYS94ZW4vY29tbW9u L2RvbWFpbi5jCi0rKysgYi94ZW4vY29tbW9uL2RvbWFpbi5jCi1AQCAtMjE2LDEyICsyMTYsOCBA QCBpbnQgZ2V0X2RvbWFpbl9zdGF0ZShzdHJ1Y3QgeGVuX2RvbWN0bF9nCi0gICAgIGlmICggaW5m by0+cGFkMCApCi0gICAgICAgICByZXR1cm4gLUVJTlZBTDsKLSAKLS0gICAgaWYgKCBkICkKLSsg ICAgaWYgKCBkICE9IGRvbV94ZW4gKQotICAgICB7Ci0tICAgICAgICByYyA9IHhzbV9nZXRfZG9t YWluX3N0YXRlKFhTTV9YU19QUklWLCBkKTsKLS0gICAgICAgIGlmICggcmMgKQotLSAgICAgICAg ICAgIHJldHVybiByYzsKLS0KLSAgICAgICAgIHNldF9kb21haW5fc3RhdGVfaW5mbyhpbmZvLCBk KTsKLSAKLSAgICAgICAgIHJldHVybiAwOwotLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYwotKysr IGIveGVuL2NvbW1vbi9kb21jdGwuYwotQEAgLTMwNCwxMyArMzA0LDE5IEBAIGxvbmcgZG9fZG9t Y3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKLSAgICAgICAgIGZhbGx0aHJvdWdoOwotICAg ICBjYXNlIFhFTl9ET01DVExfdGVzdF9hc3NpZ25fZGV2aWNlOgotICAgICBjYXNlIFhFTl9ET01D VExfdm1fZXZlbnRfb3A6Ci0tICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlOgot ICAgICAgICAgaWYgKCBvcC0+ZG9tYWluID09IERPTUlEX0lOVkFMSUQgKQotICAgICAgICAgewot ICAgICAgICAgICAgIGQgPSBOVUxMOwotICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgfQot ICAgICAgICAgZmFsbHRocm91Z2g7Ci0rICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0 YXRlOgotKyAgICAgICAgaWYgKCBvcC0+ZG9tYWluID09IERPTUlEX0lOVkFMSUQgKQotKyAgICAg ICAgewotKyAgICAgICAgICAgIGQgPSBkb21feGVuOwotKyAgICAgICAgICAgIGJyZWFrOwotKyAg ICAgICAgfQotKyAgICAgICAgZmFsbHRocm91Z2g7Ci0gICAgIGRlZmF1bHQ6Ci0gICAgICAgICBk ID0gcmN1X2xvY2tfZG9tYWluX2J5X2lkKG9wLT5kb21haW4pOwotICAgICAgICAgaWYgKCAhZCAp Ci1AQCAtODYzLDcgKzg2OSw5IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0oeGUKLSAgICAgICAgIGJyZWFrOwotIAotICAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2RvbWFp bl9zdGF0ZToKLS0gICAgICAgIHJldCA9IGdldF9kb21haW5fc3RhdGUoJm9wLT51LmdldF9kb21h aW5fc3RhdGUsIGQsICZvcC0+ZG9tYWluKTsKLSsgICAgICAgIHJldCA9IHhzbV9nZXRfZG9tYWlu X3N0YXRlKFhTTV9YU19QUklWLCBkKTsKLSsgICAgICAgIGlmICggIXJldCApCi0rICAgICAgICAg ICAgcmV0ID0gZ2V0X2RvbWFpbl9zdGF0ZSgmb3AtPnUuZ2V0X2RvbWFpbl9zdGF0ZSwgZCwgJm9w LT5kb21haW4pOwotICAgICAgICAgaWYgKCAhcmV0ICkKLSAgICAgICAgICAgICBjb3B5YmFjayA9 IHRydWU7Ci0gICAgICAgICBicmVhazsKLUBAIC04NzYsNyArODg0LDcgQEAgbG9uZyBkb19kb21j dGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQotICAgICBkb21jdGxfbG9ja19yZWxlYXNlKCk7 Ci0gCi0gIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk6Ci0tICAgIGlmICggZCAmJiBkICE9IGRv bV9pbyApCi0rICAgIGlmICggZCAmJiAhaXNfc3lzdGVtX2RvbWFpbihkKSApCi0gICAgICAgICBy Y3VfdW5sb2NrX2RvbWFpbihkKTsKLSAKLSAgICAgaWYgKCBjb3B5YmFjayAmJiBfX2NvcHlfdG9f Z3Vlc3QodV9kb21jdGwsIG9wLCAxKSApCgpkaWZmIC0tZ2l0IGEveHNhNDkyLTQuMjEtMDQucGF0 Y2ggYi94c2E0OTItNC4yMS0wNC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NDgxZmY1ZC4uMDAwMDAwMAotLS0gYS94c2E0OTItNC4yMS0wNC5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDgxICswLDAgQEAKLUZyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4K LVN1YmplY3Q6IGRvbWN0bDogaGFuZGxlIFhFTl9ET01DVExfZ2V0X2RvbWFpbl9zdGF0ZSB3aXRo b3V0IGFjcXVpcmluZyBkb21jdGwgbG9jawotCi1nZXRfZG9tYWluX3N0YXRlKCkgdXNlcyBpdHMg b3duIGxvY2tpbmcuIFRodXMsIHdpdGggY2FsbGVyIHNpZGUgbG9ja2luZwotaXJyZWxldmFudCwg aXQgY2FuIGFzIHdlbGwgYmUgY2FsbGVkIHdpdGggdGhlIGRvbWN0bCBsb2NrIG5vdCBoZWxkLgot Ci1Nb3ZlIHRoZSBoYW5kbGluZyBub3Qgb25seSBhaGVhZCBvZiBhY3F1aXJpbmcgdGhlIGxvY2ss IGJ1dCBhbHNvIGFoZWFkCi1vZiB0aGUgWFNNIGNoZWNrLCBsZXZlcmFnaW5nIHRoYXQgdGhlIHN1 Yi1vcCBoYXMgaXRzIG93biBob29rLgotCi1UaGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4KLQotRml4 ZXM6IDNhZDNkZjFiZDBhYSAoInhlbjogYWRkIG5ldyBkb21jdGwgZ2V0X2RvbWFpbl9zdGF0ZSIp Ci1SZXBvcnRlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K LVNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLUFja2VkLWJ5 OiBEYW5pZWwgUC4gU21pdGggPGRwc21pdGhAYXBlcnR1c3NvbHV0aW9ucy5jb20+Ci1SZXZpZXdl ZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci0KLS0tLSBhL3hl bi9jb21tb24vZG9tY3RsLmMKLSsrKyBiL3hlbi9jb21tb24vZG9tY3RsLmMKLUBAIC0zMzksNiAr MzM5LDE0IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKLSAKLSAg ICAgICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tfZG9tb25seTsKLSAKLSsgICAgY2FzZSBYRU5f RE9NQ1RMX2dldF9kb21haW5fc3RhdGU6Ci0rICAgICAgICByZXQgPSB4c21fZ2V0X2RvbWFpbl9z dGF0ZShYU01fWFNfUFJJViwgZCk7Ci0rICAgICAgICBpZiAoICFyZXQgKQotKyAgICAgICAgICAg IHJldCA9IGdldF9kb21haW5fc3RhdGUoJm9wLT51LmdldF9kb21haW5fc3RhdGUsIGQsICZvcC0+ ZG9tYWluKTsKLSsgICAgICAgIGlmICggIXJldCApCi0rICAgICAgICAgICAgY29weWJhY2sgPSB0 cnVlOwotKyAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5OwotKwotICAgICBk ZWZhdWx0OgotICAgICAgICAgLyogRXZlcnl0aGluZyBlbHNlIGhhbmRsZWQgZnVydGhlciBkb3du LiAqLwotICAgICAgICAgYnJlYWs7Ci1AQCAtODY4LDE0ICs4NzYsNiBAQCBsb25nIGRvX2RvbWN0 bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCi0gICAgICAgICAgICAgcmV0ID0gLUVPUE5PVFNV UFA7Ci0gICAgICAgICBicmVhazsKLSAKLS0gICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5f c3RhdGU6Ci0tICAgICAgICByZXQgPSB4c21fZ2V0X2RvbWFpbl9zdGF0ZShYU01fWFNfUFJJViwg ZCk7Ci0tICAgICAgICBpZiAoICFyZXQgKQotLSAgICAgICAgICAgIHJldCA9IGdldF9kb21haW5f c3RhdGUoJm9wLT51LmdldF9kb21haW5fc3RhdGUsIGQsICZvcC0+ZG9tYWluKTsKLS0gICAgICAg IGlmICggIXJldCApCi0tICAgICAgICAgICAgY29weWJhY2sgPSB0cnVlOwotLSAgICAgICAgYnJl YWs7Ci0tCi0gICAgIGRlZmF1bHQ6Ci0gICAgICAgICByZXQgPSBhcmNoX2RvX2RvbWN0bChvcCwg ZCwgdV9kb21jdGwpOwotICAgICAgICAgYnJlYWs7Ci0tLS0gYS94ZW4vaW5jbHVkZS94c20vZHVt bXkuaAotKysrIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKLUBAIC0xNzIsMTAgKzE3Miw5IEBA IHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fZG9tY3QKLSAgICAgY2FzZSBYRU5f RE9NQ1RMX2JpbmRfcHRfaXJxOgotICAgICBjYXNlIFhFTl9ET01DVExfdW5iaW5kX3B0X2lycToK LSAgICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX0RNX1BSSVYsIGN1cnJlbnQt PmRvbWFpbiwgZCk7Ci0tICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlOgotLSAg ICAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihYU01fWFNfUFJJViwgY3VycmVudC0+ZG9t YWluLCBkKTsKLSAKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldGRvbWFpbmluZm86Ci0rICAgIGNh c2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlOgotICAgICAgICAgQVNTRVJUX1VOUkVBQ0hB QkxFKCk7Ci0gICAgICAgICByZXR1cm4gLUVJTFNFUTsKLSAKLS0tLSBhL3hlbi94c20vZmxhc2sv aG9va3MuYwotKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCi1AQCAtNjg0LDYgKzY4NCw3IEBA IHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAotIAotICAgICAvKiBUaGVz ZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIGFuZCBkb24ndCBtYWtlIGl0IGhlcmUuICovCi0g ICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgotKyAgICBjYXNlIFhFTl9ET01DVExf Z2V0X2RvbWFpbl9zdGF0ZToKLSAgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwotICAgICAg ICAgcmV0dXJuIC1FSUxTRVE7Ci0gCi1AQCAtNjk0LDcgKzY5NSw2IEBAIHN0YXRpYyBpbnQgY2Zf Y2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAotICAgICBjYXNlIFhFTl9ET01DVExfbWVtb3J5X21h cHBpbmc6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9zZXRfdGFyZ2V0OgotICAgICBjYXNlIFhFTl9E T01DVExfdm1fZXZlbnRfb3A6Ci0tICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRl OgotIAotICAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIChhcmNoLy4uL2Rv bWN0bC5jKSAqLwotICAgICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9pcnE6CgpkaWZmIC0tZ2l0 IGEveHNhNDkyLTQuMjEtMDUucGF0Y2ggYi94c2E0OTItNC4yMS0wNS5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggY2I3YmVhYS4uMDAwMDAwMAotLS0gYS94c2E0OTItNC4yMS0w NS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1NiArMCwwIEBACi1Gcm9tOiBKYW4gQmV1bGlj aCA8amJldWxpY2hAc3VzZS5jb20+Ci1TdWJqZWN0OiBkb21haW46IGxvY2tpbmcgZm9yIGlvbWVt X2NhcHMgYWNjZXNzZXMKLQotSW4gb3JkZXIgdG8gYmUgYWJsZSB0byBwdWxsIGF0IGxlYXN0IHRo ZSBYRU5fRE9NQ1RMX2lvbWVtX21hcHBpbmcgaGFuZGxpbmcKLW91dCBvZiB0aGUgZG9tY3RsLWxv Y2tlZCByZWdpb24sIGEgc2VwYXJhdGUgKHBlci1kb21haW4pIGxvY2sgaXMgbmVlZGVkIHRvCi1z eW5jaHJvbml6ZSBpbiBwYXJ0aWN1bGFyIHdpdGggWEVOX0RPTUNUTF9pb21lbV9wZXJtaXNzaW9u LgotCi1Mb2NraW5nIGlzIGFkZGVkIG9ubHkgYXMgZmFyIGFzIGRvbWN0bC1zIGFyZSBhZmZlY3Rl ZC4gVXNlcyBwcmVzZW50bHkKLW91dHNpZGUgb2YgdGhlIGRvbWN0bCBsb2NrIG1heSB3YW50IGRl YWxpbmcgd2l0aCBzdWJzZXF1ZW50bHkgKHBlcmhhcHMKLWxpbWl0ZWQgdG8gbm9uLV9faW5pdCBj b2RlKS4KLQotVGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIuCi0KLVNpZ25lZC1vZmYtYnk6IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLVJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOp IDxyb2dlci5wYXVAY2l0cml4LmNvbT4KLQotLS0tIGEveGVuL2NvbW1vbi9kb21haW4uYwotKysr IGIveGVuL2NvbW1vbi9kb21haW4uYwotQEAgLTUxOCwxMCArNTE4LDE1IEBAIHN0YXRpYyBpbnQg bGF0ZV9od2RvbV9pbml0KHN0cnVjdCBkb21haW4KLSAgICAgICogbWF5IGJlIG1vZGlmaWVkIGFm dGVyIHRoaXMgaHlwZXJjYWxsIHJldHVybnMgaWYgYSBtb3JlIGNvbXBsZXgKLSAgICAgICogZGV2 aWNlIG1vZGVsIGlzIGRlc2lyZWQuCi0gICAgICAqLwotKyAgICB3cml0ZV9sb2NrKCZkb20wLT5j YXBzX2xvY2spOwotICAgICByYW5nZXNldF9zd2FwKGQtPmlycV9jYXBzLCBkb20wLT5pcnFfY2Fw cyk7Ci0gICAgIHJhbmdlc2V0X3N3YXAoZC0+aW9tZW1fY2FwcywgZG9tMC0+aW9tZW1fY2Fwcyk7 Ci0gI2lmZGVmIENPTkZJR19YODYKLSAgICAgcmFuZ2VzZXRfc3dhcChkLT5hcmNoLmlvcG9ydF9j YXBzLCBkb20wLT5hcmNoLmlvcG9ydF9jYXBzKTsKLSsjZW5kaWYKLSsgICAgd3JpdGVfdW5sb2Nr KCZkb20wLT5jYXBzX2xvY2spOwotKwotKyNpZmRlZiBDT05GSUdfWDg2Ci0gICAgIHNldHVwX2lv X2JpdG1hcChkKTsKLSAgICAgc2V0dXBfaW9fYml0bWFwKGRvbTApOwotICNlbmRpZgotQEAgLTg3 Myw2ICs4NzgsNyBAQCBzdHJ1Y3QgZG9tYWluICpkb21haW5fY3JlYXRlKGRvbWlkX3QgZG9tCi0g ICAgIHJzcGluX2xvY2tfaW5pdF9wcm9mKGQsIGRvbWFpbl9sb2NrKTsKLSAgICAgcnNwaW5fbG9j a19pbml0X3Byb2YoZCwgcGFnZV9hbGxvY19sb2NrKTsKLSAgICAgc3Bpbl9sb2NrX2luaXQoJmQt Pmh5cGVyY2FsbF9kZWFkbG9ja19tdXRleCk7Ci0rICAgIHJ3bG9ja19pbml0KCZkLT5jYXBzX2xv Y2spOwotICAgICBJTklUX1BBR0VfTElTVF9IRUFEKCZkLT5wYWdlX2xpc3QpOwotICAgICBJTklU X1BBR0VfTElTVF9IRUFEKCZkLT5leHRyYV9wYWdlX2xpc3QpOwotICAgICBJTklUX1BBR0VfTElT VF9IRUFEKCZkLT54ZW5wYWdlX2xpc3QpOwotLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYwotKysr IGIveGVuL2NvbW1vbi9kb21jdGwuYwotQEAgLTI2Nyw2ICsyNjcsMzUgQEAgc3RhdGljIHN0cnVj dCB2bnVtYV9pbmZvICp2bnVtYV9pbml0KGNvbgotICAgICByZXR1cm4gRVJSX1BUUihyZXQpOwot IH0KLSAKLSt2b2lkIGlvY2Fwc19kb3VibGVfbG9jayhzdHJ1Y3QgZG9tYWluICpkLCBib29sIHdy aXRlKQotK3sKLSsgICAgc3RydWN0IGRvbWFpbiAqY3VycmQgPSBjdXJyZW50LT5kb21haW47Ci0r Ci0rICAgIGlmICggZC0+ZG9tYWluX2lkID4gY3VycmQtPmRvbWFpbl9pZCApCi0rICAgICAgICBy ZWFkX2xvY2soJmN1cnJkLT5jYXBzX2xvY2spOwotKwotKyAgICBpZiAoIHdyaXRlICkKLSsgICAg ICAgIHdyaXRlX2xvY2soJmQtPmNhcHNfbG9jayk7Ci0rICAgIGVsc2UKLSsgICAgICAgIHJlYWRf bG9jaygmZC0+Y2Fwc19sb2NrKTsKLSsKLSsgICAgaWYgKCBkLT5kb21haW5faWQgPCBjdXJyZC0+ ZG9tYWluX2lkICkKLSsgICAgICAgIHJlYWRfbG9jaygmY3VycmQtPmNhcHNfbG9jayk7Ci0rfQot KwotK3ZvaWQgaW9jYXBzX2RvdWJsZV91bmxvY2soc3RydWN0IGRvbWFpbiAqZCwgYm9vbCB3cml0 ZSkKLSt7Ci0rICAgIHN0cnVjdCBkb21haW4gKmN1cnJkID0gY3VycmVudC0+ZG9tYWluOwotKwot KyAgICBpZiAoIGQgIT0gY3VycmQgKQotKyAgICAgICAgcmVhZF91bmxvY2soJmN1cnJkLT5jYXBz X2xvY2spOwotKwotKyAgICBpZiAoIHdyaXRlICkKLSsgICAgICAgIHdyaXRlX3VubG9jaygmZC0+ Y2Fwc19sb2NrKTsKLSsgICAgZWxzZQotKyAgICAgICAgcmVhZF91bmxvY2soJmQtPmNhcHNfbG9j ayk7Ci0rfQotKwotIHN0YXRpYyBib29sIGlzX3N0YWJsZV9kb21jdGwodWludDMyX3QgY21kKQot IHsKLSAgICAgcmV0dXJuIGNtZCA9PSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3RhdGU7Ci1AQCAt Njg3LDYgKzcxNiw4IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUK LSAgICAgICAgIGlmICggKG1mbiArIG5yX21mbnMgLSAxKSA8IG1mbiApIC8qIHdyYXA/ICovCi0g ICAgICAgICAgICAgYnJlYWs7Ci0gCi0rICAgICAgICBpb2NhcHNfZG91YmxlX2xvY2soZCwgdHJ1 ZSk7Ci0rCi0gICAgICAgICBpZiAoICFpb21lbV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJlbnQtPmRv bWFpbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuLCBtZm4gKyBu cl9tZm5zIC0gMSkgfHwKLSAgICAgICAgICAgICAgeHNtX2lvbWVtX3Blcm1pc3Npb24oWFNNX0hP T0ssIGQsIG1mbiwgbWZuICsgbnJfbWZucyAtIDEsIGFsbG93KSApCi1AQCAtNjk1LDYgKzcyNiw4 IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKLSAgICAgICAgICAg ICByZXQgPSBpb21lbV9wZXJtaXRfYWNjZXNzKGQsIG1mbiwgbWZuICsgbnJfbWZucyAtIDEpOwot ICAgICAgICAgZWxzZQotICAgICAgICAgICAgIHJldCA9IGlvbWVtX2RlbnlfYWNjZXNzKGQsIG1m biwgbWZuICsgbnJfbWZucyAtIDEpOwotKwotKyAgICAgICAgaW9jYXBzX2RvdWJsZV91bmxvY2so ZCwgdHJ1ZSk7Ci0gICAgICAgICBicmVhazsKLSAgICAgfQotIAotQEAgLTcxOSwxOSArNzUyLDE1 IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKLSAgICAgICAgICAg ICBicmVhazsKLSAjZW5kaWYKLSAKLSsgICAgICAgIGlvY2Fwc19kb3VibGVfbG9jayhkLCBmYWxz ZSk7Ci0rCi0gICAgICAgICByZXQgPSAtRVBFUk07Ci0gICAgICAgICBpZiAoICFpb21lbV9hY2Nl c3NfcGVybWl0dGVkKGN1cnJlbnQtPmRvbWFpbiwgbWZuLCBtZm5fZW5kKSB8fAotLSAgICAgICAg ICAgICAhaW9tZW1fYWNjZXNzX3Blcm1pdHRlZChkLCBtZm4sIG1mbl9lbmQpICkKLS0gICAgICAg ICAgICBicmVhazsKLS0KLS0gICAgICAgIHJldCA9IHhzbV9pb21lbV9tYXBwaW5nKFhTTV9IT09L LCBkLCBtZm4sIG1mbl9lbmQsIGFkZCk7Ci0tICAgICAgICBpZiAoIHJldCApCi0tICAgICAgICAg ICAgYnJlYWs7Ci0tCi0tICAgICAgICBpZiAoICFwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQot LSAgICAgICAgICAgIGJyZWFrOwotLQotLSAgICAgICAgaWYgKCBhZGQgKQotKyAgICAgICAgICAg ICAhaW9tZW1fYWNjZXNzX3Blcm1pdHRlZChkLCBtZm4sIG1mbl9lbmQpIHx8Ci0rICAgICAgICAg ICAgIChyZXQgPSB4c21faW9tZW1fbWFwcGluZyhYU01fSE9PSywgZCwgbWZuLCBtZm5fZW5kLCBh ZGQpKSB8fAotKyAgICAgICAgICAgICAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICkKLSsgICAg ICAgICAgICAvKiBOb3RoaW5nLiAqLzsKLSsgICAgICAgIGVsc2UgaWYgKCBhZGQgKQotICAgICAg ICAgewotICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19ERUJVRwotICAgICAgICAgICAgICAg ICAgICAibWVtb3J5X21hcDphZGQ6IGRvbSVkIGdmbj0lbHggbWZuPSVseCBucj0lbHhcbiIsCi1A QCAtNzU1LDYgKzc4NCw4IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0o eGUKLSAgICAgICAgICAgICAgICAgICAgICAgICJtZW1vcnlfbWFwOiBlcnJvciAlbGQgcmVtb3Zp bmcgZG9tJWQgYWNjZXNzIHRvIFslbHgsJWx4XVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAg IHJldCwgZC0+ZG9tYWluX2lkLCBtZm4sIG1mbl9lbmQpOwotICAgICAgICAgfQotKwotKyAgICAg ICAgaW9jYXBzX2RvdWJsZV91bmxvY2soZCwgZmFsc2UpOwotICAgICAgICAgYnJlYWs7Ci0gICAg IH0KLSAKLS0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb2NhcC5oCi0rKysgYi94ZW4vaW5jbHVkZS94 ZW4vaW9jYXAuaAotQEAgLTEyLDYgKzEyLDkgQEAKLSAjaW5jbHVkZSA8YXNtL2lvY2FwLmg+Ci0g I2luY2x1ZGUgPGFzbS9wMm0uaD4KLSAKLSt2b2lkIGlvY2Fwc19kb3VibGVfbG9jayhzdHJ1Y3Qg ZG9tYWluICpkLCBib29sIHdyaXRlKTsKLSt2b2lkIGlvY2Fwc19kb3VibGVfdW5sb2NrKHN0cnVj dCBkb21haW4gKmQsIGJvb2wgd3JpdGUpOwotKwotIHN0YXRpYyBpbmxpbmUgaW50IGlvbWVtX3Bl cm1pdF9hY2Nlc3Moc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBzLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBlKQotIHsKLS0tLSBh L3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCi0rKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAot QEAgLTUzNiw2ICs1MzYsNyBAQCBzdHJ1Y3QgZG9tYWluCi0gI2VuZGlmCi0gCi0gICAgIC8qIEkv TyBjYXBhYmlsaXRpZXMgKGFjY2VzcyB0byBJUlFzIGFuZCBtZW1vcnktbWFwcGVkIEkvTykuICov Ci0rICAgIHJ3bG9ja190ICAgICAgICAgY2Fwc19sb2NrOwotICAgICBzdHJ1Y3QgcmFuZ2VzZXQg KmlvbWVtX2NhcHM7Ci0gICAgIHN0cnVjdCByYW5nZXNldCAqaXJxX2NhcHM7Ci0gCgpkaWZmIC0t Z2l0IGEveHNhNDkyLTQuMjEtMDYucGF0Y2ggYi94c2E0OTItNC4yMS0wNi5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzllMDA2MS4uMDAwMDAwMAotLS0gYS94c2E0OTItNC4y MS0wNi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAKLUZyb206IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLVN1YmplY3Q6IHg4Ni9kb21haW46IGxvY2tpbmcgZm9y IGlvcG9ydF9jYXBzIGFjY2Vzc2VzCi0KLUluIG9yZGVyIHRvIGJlIGFibGUgdG8gcHVsbCBhdCBs ZWFzdCB0aGUgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZwotaGFuZGxpbmcgb3V0IG9mIHRoZSBk b21jdGwtbG9ja2VkIHJlZ2lvbiwgdGhlIG5ldyBzZXBhcmF0ZSAocGVyLWRvbWFpbikKLWxvY2sg aXMgdXNlZCB0byBzeW5jaHJvbml6ZSBpbiBwYXJ0aWN1bGFyIHdpdGgKLVhFTl9ET01DVExfaW9w b3J0X3Blcm1pc3Npb24uCi0KLUxvY2tpbmcgaXMgYWRkZWQgb25seSBhcyBmYXIgYXMgZG9tY3Rs LXMgYXJlIGFmZmVjdGVkLiBVc2VzIHByZXNlbnRseQotb3V0c2lkZSBvZiB0aGUgZG9tY3RsIGxv Y2sgbWF5IHdhbnQgZGVhbGluZyB3aXRoIHN1YnNlcXVlbnRseSAocGVyaGFwcwotbGltaXRlZCB0 byBub24tX19pbml0IGNvZGUpLgotCi1UaGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4KLQotU2lnbmVk LW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotUmV2aWV3ZWQtYnk6IFJv Z2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotCi0tLS0gYS94ZW4vYXJjaC94 ODYvZG9tY3RsLmMKLSsrKyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwotQEAgLTIzMyw2ICsyMzMs OCBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAotICAgICAgICAgdW5zaWduZWQgaW50IG5wID0gZG9t Y3RsLT51LmlvcG9ydF9wZXJtaXNzaW9uLm5yX3BvcnRzOwotICAgICAgICAgaW50IGFsbG93ID0g ZG9tY3RsLT51LmlvcG9ydF9wZXJtaXNzaW9uLmFsbG93X2FjY2VzczsKLSAKLSsgICAgICAgIGlv Y2Fwc19kb3VibGVfbG9jayhkLCB0cnVlKTsKLSsKLSAgICAgICAgIGlmICggKGZwICsgbnApIDw9 IGZwIHx8IChmcCArIG5wKSA+IE1BWF9JT1BPUlRTICkKLSAgICAgICAgICAgICByZXQgPSAtRUlO VkFMOwotICAgICAgICAgZWxzZSBpZiAoICFpb3BvcnRzX2FjY2Vzc19wZXJtaXR0ZWQoY3VycmQs IGZwLCBmcCArIG5wIC0gMSkgfHwKLUBAIC0yNDIsNiArMjQ0LDggQEAgbG9uZyBhcmNoX2RvX2Rv bWN0bCgKLSAgICAgICAgICAgICByZXQgPSBpb3BvcnRzX3Blcm1pdF9hY2Nlc3MoZCwgZnAsIGZw ICsgbnAgLSAxKTsKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICByZXQgPSBpb3BvcnRzX2Rl bnlfYWNjZXNzKGQsIGZwLCBmcCArIG5wIC0gMSk7Ci0rCi0rICAgICAgICBpb2NhcHNfZG91Ymxl X3VubG9jayhkLCB0cnVlKTsKLSAgICAgICAgIGJyZWFrOwotICAgICB9Ci0gCi1AQCAtNjQ4LDE2 ICs2NTIsMTMgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKLSAgICAgICAgICAgICBicmVhazsKLSAg ICAgICAgIH0KLSAKLS0gICAgICAgIHJldCA9IC1FUEVSTTsKLS0gICAgICAgIGlmICggIWlvcG9y dHNfYWNjZXNzX3Blcm1pdHRlZChjdXJyZCwgZm1wLCBmbXAgKyBucCAtIDEpICkKLS0gICAgICAg ICAgICBicmVhazsKLS0KLS0gICAgICAgIHJldCA9IHhzbV9pb3BvcnRfbWFwcGluZyhYU01fSE9P SywgZCwgZm1wLCBmbXAgKyBucCAtIDEsIGFkZCk7Ci0tICAgICAgICBpZiAoIHJldCApCi0tICAg ICAgICAgICAgYnJlYWs7Ci0tCi0gICAgICAgICBodm0gPSAmZC0+YXJjaC5odm07Ci0tICAgICAg ICBpZiAoIGFkZCApCi0rICAgICAgICBpb2NhcHNfZG91YmxlX2xvY2soZCwgdHJ1ZSk7Ci0rCi0r ICAgICAgICBpZiAoICFpb3BvcnRzX2FjY2Vzc19wZXJtaXR0ZWQoY3VycmQsIGZtcCwgZm1wICsg bnAgLSAxKSB8fAotKyAgICAgICAgICAgICAocmV0ID0geHNtX2lvcG9ydF9tYXBwaW5nKFhTTV9I T09LLCBkLCBmbXAsIGZtcCArIG5wIC0gMSwgYWRkKSkgKQotKyAgICAgICAgICAgIHJldCA9IHJl dCA/OiAtRVBFUk07Ci0rICAgICAgICBlbHNlIGlmICggYWRkICkKLSAgICAgICAgIHsKLSAgICAg ICAgICAgICBwcmludGsoWEVOTE9HX0dfSU5GTwotICAgICAgICAgICAgICAgICAgICAiaW9wb3J0 X21hcDphZGQ6IGRvbSVkIGdwb3J0PSV4IG1wb3J0PSV4IG5yPSV4XG4iLAotQEAgLTcxOCw2ICs3 MjAsOCBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAotICAgICAgICAgICAgICAgICAgICAgICAgImlv cG9ydF9tYXA6IGVycm9yICVsZCBkZW55aW5nIGRvbSVkIGFjY2VzcyB0byBbJXgsJXhdXG4iLAot ICAgICAgICAgICAgICAgICAgICAgICAgcmV0LCBkLT5kb21haW5faWQsIGZtcCwgZm1wICsgbnAg LSAxKTsKLSAgICAgICAgIH0KLSsKLSsgICAgICAgIGlvY2Fwc19kb3VibGVfdW5sb2NrKGQsIHRy dWUpOwotICAgICAgICAgYnJlYWs7Ci0gICAgIH0KLSAKLS0tLSBhL3hlbi9hcmNoL3g4Ni9zZXR1 cC5jCi0rKysgYi94ZW4vYXJjaC94ODYvc2V0dXAuYwotQEAgLTIzMzksOSArMjMzOSwxMiBAQCB2 b2lkIF9faHdkb21faW5pdCBzZXR1cF9pb19iaXRtYXAoc3RydWN0Ci0gICAgICAgICByZXR1cm47 Ci0gCi0gICAgIGJpdG1hcF9maWxsKGQtPmFyY2guaHZtLmlvX2JpdG1hcCwgMHgxMDAwMCk7Ci0r Ci0rICAgIHJlYWRfbG9jaygmZC0+Y2Fwc19sb2NrKTsKLSAgICAgaWYgKCByYW5nZXNldF9yZXBv cnRfcmFuZ2VzKGQtPmFyY2guaW9wb3J0X2NhcHMsIDAsIDB4MTAwMDAsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpb19iaXRtYXBfY2IsIGQpICkKLSAgICAgICAgIEJVRygpOwot KyAgICByZWFkX3VubG9jaygmZC0+Y2Fwc19sb2NrKTsKLSAKLSAgICAgLyoKLSAgICAgICogV2Ug bmVlZCB0byB0cmFwIDQtYnl0ZSBhY2Nlc3NlcyB0byAweGNmOCAoc2VlIGFkbWluX2lvX29rYXko KSwKCmRpZmYgLS1naXQgYS94c2E0OTItNC4yMS0wNy5wYXRjaCBiL3hzYTQ5Mi00LjIxLTA3LnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzQzNzczLi4wMDAwMDAwCi0tLSBh L3hzYTQ5Mi00LjIxLTA3LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjAyICswLDAgQEAKLUZy b206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLVN1YmplY3Q6IGRvbWFpbjogbG9j a2luZyBmb3IgaXJxX2NhcHMgYWNjZXNzZXMKLQotSW4gb3JkZXIgdG8gYmUgYWJsZSB0byBwdWxs IGF0IGxlYXN0IHRoZSBYRU5fRE9NQ1RMX3ssdW59YmluZF9wdF9pcnEKLWhhbmRsaW5nIG91dCBv ZiB0aGUgZG9tY3RsLWxvY2tlZCByZWdpb24sIGEgc2VwYXJhdGUgKHBlci1kb21haW4pIGxvY2sg aXMKLW5lZWRlZCB0byBzeW5jaHJvbml6ZSBpbiBwYXJ0aWN1bGFyIHdpdGggWEVOX0RPTUNUTF97 aXJxLGdzaX1fcGVybWlzc2lvbi4KLQotTG9ja2luZyBpcyBhZGRlZCBvbmx5IGFzIGZhciBhcyBk b21jdGwtcyBhcmUgYWZmZWN0ZWQuIFVzZXMgcHJlc2VudGx5Ci1vdXRzaWRlIG9mIHRoZSBkb21j dGwgbG9jayBtYXkgd2FudCBkZWFsaW5nIHdpdGggc3Vic2VxdWVudGx5IChwZXJoYXBzCi1saW1p dGVkIHRvIG5vbi1fX2luaXQgY29kZSkuCi0KLVRoaXMgaXMgcGFydCBvZiBYU0EtNDkyLgotCi1T aWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci1SZXZpZXdlZC1i eTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci1SZXZpZXdlZC1ieTog SnVsaWVuIEdyYWxsIDxqdWxpZW5AeGVuLm9yZz4KLQotLS0tIGEveGVuL2FyY2gvYXJtL2RvbWN0 bC5jCi0rKysgYi94ZW4vYXJjaC9hcm0vZG9tY3RsLmMKLUBAIC03Niw2ICs3Niw3IEBAIGxvbmcg YXJjaF9kb19kb21jdGwoc3RydWN0IHhlbl9kb21jdGwgKmQKLSAgICAgY2FzZSBYRU5fRE9NQ1RM X2JpbmRfcHRfaXJxOgotICAgICB7Ci0gICAgICAgICBpbnQgcmM7Ci0rICAgICAgICBzdHJ1Y3Qg ZG9tYWluICpjdXJyZCA9IGN1cnJlbnQtPmRvbWFpbjsKLSAgICAgICAgIHN0cnVjdCB4ZW5fZG9t Y3RsX2JpbmRfcHRfaXJxICpiaW5kID0gJmRvbWN0bC0+dS5iaW5kX3B0X2lycTsKLSAgICAgICAg IHVpbnQzMl90IGlycSA9IGJpbmQtPnUuc3BpLnNwaTsKLSAgICAgICAgIHVpbnQzMl90IHZpcnEg PSBiaW5kLT5tYWNoaW5lX2lycTsKLUBAIC0xMDcsMjEgKzEwOCwyNiBAQCBsb25nIGFyY2hfZG9f ZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICpkCi0gICAgICAgICBpZiAoIHJjICkKLSAgICAgICAg ICAgICByZXR1cm4gcmM7Ci0gCi0tICAgICAgICBpZiAoICFpcnFfYWNjZXNzX3Blcm1pdHRlZChj dXJyZW50LT5kb21haW4sIGlycSkgKQotLSAgICAgICAgICAgIHJldHVybiAtRVBFUk07Ci0rICAg ICAgICByZWFkX2xvY2soJmN1cnJkLT5jYXBzX2xvY2spOwotIAotLSAgICAgICAgaWYgKCAhdmdp Y19yZXNlcnZlX3ZpcnEoZCwgdmlycSkgKQotLSAgICAgICAgICAgIHJldHVybiAtRUJVU1k7Ci0t Ci0tICAgICAgICByYyA9IHJvdXRlX2lycV90b19ndWVzdChkLCB2aXJxLCBpcnEsICJyb3V0ZWQg SVJRIik7Ci0tICAgICAgICBpZiAoIHJjICkKLS0gICAgICAgICAgICB2Z2ljX2ZyZWVfdmlycShk LCB2aXJxKTsKLSsgICAgICAgIGlmICggIWlycV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJkLCBpcnEp ICkKLSsgICAgICAgICAgICByYyA9IC1FUEVSTTsKLSsgICAgICAgIGVsc2UgaWYgKCAhdmdpY19y ZXNlcnZlX3ZpcnEoZCwgdmlycSkgKQotKyAgICAgICAgICAgIHJjID0gLUVCVVNZOwotKyAgICAg ICAgZWxzZQotKyAgICAgICAgewotKyAgICAgICAgICAgIHJjID0gcm91dGVfaXJxX3RvX2d1ZXN0 KGQsIHZpcnEsIGlycSwgInJvdXRlZCBJUlEiKTsKLSsgICAgICAgICAgICBpZiAoIHJjICkKLSsg ICAgICAgICAgICAgICAgdmdpY19mcmVlX3ZpcnEoZCwgdmlycSk7Ci0rICAgICAgICB9Ci0gCi0r ICAgICAgICByZWFkX3VubG9jaygmY3VycmQtPmNhcHNfbG9jayk7Ci0gICAgICAgICByZXR1cm4g cmM7Ci0gICAgIH0KLSAgICAgY2FzZSBYRU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE6Ci0gICAgIHsK LSAgICAgICAgIGludCByYzsKLSsgICAgICAgIHN0cnVjdCBkb21haW4gKmN1cnJkID0gY3VycmVu dC0+ZG9tYWluOwotICAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfYmluZF9wdF9pcnEgKmJpbmQg PSAmZG9tY3RsLT51LmJpbmRfcHRfaXJxOwotICAgICAgICAgdWludDMyX3QgaXJxID0gYmluZC0+ dS5zcGkuc3BpOwotICAgICAgICAgdWludDMyX3QgdmlycSA9IGJpbmQtPm1hY2hpbmVfaXJxOwot QEAgLTEzOCwxNiArMTQ0LDE1IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoc3RydWN0IHhlbl9kb21j dGwgKmQKLSAgICAgICAgIGlmICggcmMgKQotICAgICAgICAgICAgIHJldHVybiByYzsKLSAKLS0g ICAgICAgIGlmICggIWlycV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJlbnQtPmRvbWFpbiwgaXJxKSAp Ci0tICAgICAgICAgICAgcmV0dXJuIC1FUEVSTTsKLS0KLS0gICAgICAgIHJjID0gcmVsZWFzZV9n dWVzdF9pcnEoZCwgdmlycSk7Ci0tICAgICAgICBpZiAoIHJjICkKLS0gICAgICAgICAgICByZXR1 cm4gcmM7Ci0rICAgICAgICByZWFkX2xvY2soJmN1cnJkLT5jYXBzX2xvY2spOwotIAotLSAgICAg ICAgdmdpY19mcmVlX3ZpcnEoZCwgdmlycSk7Ci0rICAgICAgICBpZiAoICFpcnFfYWNjZXNzX3Bl cm1pdHRlZChjdXJyZCwgaXJxKSApCi0rICAgICAgICAgICAgcmMgPSAtRVBFUk07Ci0rICAgICAg ICBlbHNlIGlmICggIShyYyA9IHJlbGVhc2VfZ3Vlc3RfaXJxKGQsIHZpcnEpKSApCi0rICAgICAg ICAgICAgdmdpY19mcmVlX3ZpcnEoZCwgdmlycSk7Ci0gCi0tICAgICAgICByZXR1cm4gMDsKLSsg ICAgICAgIHJlYWRfdW5sb2NrKCZjdXJyZC0+Y2Fwc19sb2NrKTsKLSsgICAgICAgIHJldHVybiBy YzsKLSAgICAgfQotIAotICAgICBjYXNlIFhFTl9ET01DVExfdnVhcnRfb3A6Ci0tLS0gYS94ZW4v YXJjaC94ODYvZG9tY3RsLmMKLSsrKyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwotQEAgLTI2Nywx NiArMjY3LDE3IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCi0gICAgICAgICAgICAgYnJlYWs7Ci0g ICAgICAgICB9Ci0gCi0tICAgICAgICByZXQgPSAtRVBFUk07Ci0rICAgICAgICBpb2NhcHNfZG91 YmxlX2xvY2soZCwgdHJ1ZSk7Ci0rCi0gICAgICAgICBpZiAoICFpcnFfYWNjZXNzX3Blcm1pdHRl ZChjdXJyZCwgaXJxKSB8fAotICAgICAgICAgICAgICB4c21faXJxX3Blcm1pc3Npb24oWFNNX0hP T0ssIGQsIGlycSwgZmxhZ3MpICkKLS0gICAgICAgICAgICBicmVhazsKLS0KLS0gICAgICAgIGlm ICggZmxhZ3MgKQotKyAgICAgICAgICAgIHJldCA9IC1FUEVSTTsKLSsgICAgICAgIGVsc2UgaWYg KCBmbGFncyApCi0gICAgICAgICAgICAgcmV0ID0gaXJxX3Blcm1pdF9hY2Nlc3MoZCwgaXJxKTsK LSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICByZXQgPSBpcnFfZGVueV9hY2Nlc3MoZCwgaXJx KTsKLSAKLSsgICAgICAgIGlvY2Fwc19kb3VibGVfdW5sb2NrKGQsIHRydWUpOwotICAgICAgICAg YnJlYWs7Ci0gICAgIH0KLSAKLUBAIC01NzksMjAgKzU4MCwyNyBAQCBsb25nIGFyY2hfZG9fZG9t Y3RsKAotICAgICAgICAgICAgIGJyZWFrOwotIAotICAgICAgICAgaXJxID0gZG9tYWluX3BpcnFf dG9faXJxKGQsIGJpbmQtPm1hY2hpbmVfaXJxKTsKLS0gICAgICAgIHJldCA9IC1FUEVSTTsKLS0g ICAgICAgIGlmICggaXJxIDw9IDAgfHwgIWlycV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJkLCBpcnEp ICkKLS0gICAgICAgICAgICBicmVhazsKLSsgICAgICAgIGlmICggaXJxIDw9IDAgKQotKyAgICAg ICAgICAgIHJldCA9IC1FUEVSTTsKLSAKLS0gICAgICAgIHJldCA9IC1FU1JDSDsKLS0gICAgICAg IGlmICggaXNfaW9tbXVfZW5hYmxlZChkKSApCi0rICAgICAgICByZWFkX2xvY2soJmN1cnJkLT5j YXBzX2xvY2spOwotKwotKyAgICAgICAgaWYgKCAhaXJxX2FjY2Vzc19wZXJtaXR0ZWQoY3VycmQs IGlycSkgKQotKyAgICAgICAgICAgIHJldCA9IC1FUEVSTTsKLSsgICAgICAgIGVsc2UgaWYgKCBp c19pb21tdV9lbmFibGVkKGQpICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgICBwY2lkZXZzX2xv Y2soKTsKLSAgICAgICAgICAgICByZXQgPSBwdF9pcnFfY3JlYXRlX2JpbmQoZCwgYmluZCk7Ci0g ICAgICAgICAgICAgcGNpZGV2c191bmxvY2soKTsKLSsKLSsgICAgICAgICAgICBpZiAoIHJldCA8 IDAgKQotKyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfRVJSICJwdF9pcnFfY3JlYXRl X2JpbmQgZmFpbGVkICglbGQpIGZvciAlcGRcbiIsCi0rICAgICAgICAgICAgICAgICAgICAgICBy ZXQsIGQpOwotICAgICAgICAgfQotLSAgICAgICAgaWYgKCByZXQgPCAwICkKLS0gICAgICAgICAg ICBwcmludGsoWEVOTE9HX0dfRVJSICJwdF9pcnFfY3JlYXRlX2JpbmQgZmFpbGVkICglbGQpIGZv ciBkb20lZFxuIiwKLS0gICAgICAgICAgICAgICAgICAgcmV0LCBkLT5kb21haW5faWQpOwotKyAg ICAgICAgZWxzZQotKyAgICAgICAgICAgIHJldCA9IC1FU1JDSDsKLSsKLSsgICAgICAgIHJlYWRf dW5sb2NrKCZjdXJyZC0+Y2Fwc19sb2NrKTsKLSAgICAgICAgIGJyZWFrOwotICAgICB9Ci0gCi1A QCAtNjA1LDIzICs2MTMsMjYgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKLSAgICAgICAgIGlmICgg IWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICAgICAgIGJyZWFrOwotIAotLSAgICAgICAgcmV0 ID0gLUVQRVJNOwotLSAgICAgICAgaWYgKCBpcnEgPD0gMCB8fCAhaXJxX2FjY2Vzc19wZXJtaXR0 ZWQoY3VycmQsIGlycSkgKQotLSAgICAgICAgICAgIGJyZWFrOwotLQotICAgICAgICAgcmV0ID0g eHNtX3VuYmluZF9wdF9pcnEoWFNNX0hPT0ssIGQsIGJpbmQpOwotICAgICAgICAgaWYgKCByZXQg KQotICAgICAgICAgICAgIGJyZWFrOwotIAotLSAgICAgICAgaWYgKCBpc19pb21tdV9lbmFibGVk KGQpICkKLSsgICAgICAgIHJlYWRfbG9jaygmY3VycmQtPmNhcHNfbG9jayk7Ci0rCi0rICAgICAg ICBpZiAoICFpcnFfYWNjZXNzX3Blcm1pdHRlZChjdXJyZCwgaXJxKSApCi0rICAgICAgICAgICAg cmV0ID0gLUVQRVJNOwotKyAgICAgICAgZWxzZSBpZiAoIGlzX2lvbW11X2VuYWJsZWQoZCkgKQot ICAgICAgICAgewotICAgICAgICAgICAgIHBjaWRldnNfbG9jaygpOwotICAgICAgICAgICAgIHJl dCA9IHB0X2lycV9kZXN0cm95X2JpbmQoZCwgYmluZCk7Ci0gICAgICAgICAgICAgcGNpZGV2c191 bmxvY2soKTsKLSsKLSsgICAgICAgICAgICBpZiAoIHJldCA8IDAgKQotKyAgICAgICAgICAgICAg ICBwcmludGsoWEVOTE9HX0dfRVJSICJwdF9pcnFfZGVzdHJveV9iaW5kIGZhaWxlZCAoJWxkKSBm b3IgJXBkXG4iLAotKyAgICAgICAgICAgICAgICAgICAgICAgcmV0LCBkKTsKLSAgICAgICAgIH0K LS0gICAgICAgIGlmICggcmV0IDwgMCApCi0tICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VS UiAicHRfaXJxX2Rlc3Ryb3lfYmluZCBmYWlsZWQgKCVsZCkgZm9yIGRvbSVkXG4iLAotLSAgICAg ICAgICAgICAgICAgICByZXQsIGQtPmRvbWFpbl9pZCk7Ci0rCi0rICAgICAgICByZWFkX3VubG9j aygmY3VycmQtPmNhcHNfbG9jayk7Ci0gICAgICAgICBicmVhazsKLSAgICAgfQotIAotLS0tIGEv eGVuL2NvbW1vbi9kb21jdGwuYwotKysrIGIveGVuL2NvbW1vbi9kb21jdGwuYwotQEAgLTY5NSw2 ICs2OTUsOSBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCi0gICAg ICAgICAgICAgcmV0ID0gLUVJTlZBTDsKLSAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgIH0K LSsKLSsgICAgICAgIGlvY2Fwc19kb3VibGVfbG9jayhkLCB0cnVlKTsKLSsKLSAgICAgICAgIGly cSA9IHBpcnFfYWNjZXNzX3Blcm1pdHRlZChjdXJyZW50LT5kb21haW4sIHBpcnEpOwotICAgICAg ICAgaWYgKCAhaXJxIHx8IHhzbV9pcnFfcGVybWlzc2lvbihYU01fSE9PSywgZCwgaXJxLCBhbGxv dykgKQotICAgICAgICAgICAgIHJldCA9IC1FUEVSTTsKLUBAIC03MDIsNiArNzA1LDggQEAgbG9u ZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQotICAgICAgICAgICAgIHJldCA9 IGlycV9wZXJtaXRfYWNjZXNzKGQsIGlycSk7Ci0gICAgICAgICBlbHNlCi0gICAgICAgICAgICAg cmV0ID0gaXJxX2RlbnlfYWNjZXNzKGQsIGlycSk7Ci0rCi0rICAgICAgICBpb2NhcHNfZG91Ymxl X3VubG9jayhkLCB0cnVlKTsKLSAgICAgICAgIGJyZWFrOwotICAgICB9Ci0gI2VuZGlmCgpkaWZm IC0tZ2l0IGEveHNhNDkyLTQuMjEtMDgucGF0Y2ggYi94c2E0OTItNC4yMS0wOC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFlZmJmNC4uMDAwMDAwMAotLS0gYS94c2E0OTIt NC4yMS0wOC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLUZyb206IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLVN1YmplY3Q6IFhTTS9GbGFzazogc3BsaXQgdGhl IC5pb21lbV9tYXBwaW5nKCkgaG9vawotCi1JdCdzIHVzZWQgdHdpY2UgaW4gZW50aXJlbHkgZGlm ZmVyZW50IHNpdHVhdGlvbnMuIFRoZSB1c2UgaW4gZG9fZG9tY3RsKCkKLXdhbnRzIHRvIGJlY29t ZSBhbiBvcmRpbmFyeSBYU01fRE1fUFJJViBpbnZvY2F0aW9uLCB3aGlsZSB0aGUgb25lIGluIHZQ Q0kKLWNvZGUgbmVlZCB0byByZW1haW4gWFNNX0hPT0sgKGl0IG1heSBwbGF1c2libHkgYmVjb21l IFhTTV9UQVJHRVQpLiBGb3IKLUZsYXNrLCB0aGUgc2FtZSBiYWNraW5nIGZ1bmN0aW9uIHdpbGwg Y29udGludWUgdG8gYmUgdXNlZCBmb3IgdGhlIHRpbWUKLWJlaW5nLgotCi1UaGlzIGlzIHBhcnQg b2YgWFNBLTQ5Mi4KLQotU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgotQWNrZWQtYnk6IERhbmllbCBQLiBTbWl0aCA8ZHBzbWl0aEBhcGVydHVzc29sdXRpb25z LmNvbT4KLQotLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYwotKysrIGIveGVuL2RyaXZl cnMvdnBjaS9oZWFkZXIuYwotQEAgLTY3LDcgKzY3LDcgQEAgc3RhdGljIGludCBjZl9jaGVjayBt YXBfcmFuZ2UoCi0gICAgICAgICAgICAgcmV0dXJuIC1FUEVSTTsKLSAgICAgICAgIH0KLSAKLS0g ICAgICAgIHJjID0geHNtX2lvbWVtX21hcHBpbmcoWFNNX0hPT0ssIG1hcC0+ZCwgbWFwX21mbiwg bV9lbmQsIG1hcC0+bWFwKTsKLSsgICAgICAgIHJjID0geHNtX2lvbWVtX21hcHBpbmdfdnBjaShY U01fSE9PSywgbWFwLT5kLCBtYXBfbWZuLCBtX2VuZCwgbWFwLT5tYXApOwotICAgICAgICAgaWYg KCByYyApCi0gICAgICAgICB7Ci0gICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX1dBUk5JTkcK LS0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCi0rKysgYi94ZW4vaW5jbHVkZS94c20vZHVt bXkuaAotQEAgLTU4MCw2ICs1ODAsMTMgQEAgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNr IHhzbV9pb21lbQotICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVu dC0+ZG9tYWluLCBkKTsKLSB9Ci0gCi0rc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhz bV9pb21lbV9tYXBwaW5nX3ZwY2koCi0rICAgIFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWlu ICpkLCB1aW50NjRfdCBzLCB1aW50NjRfdCBlLCB1aW50OF90IGFsbG93KQotK3sKLSsgICAgWFNN X0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOwotKyAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9u KGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKLSt9Ci0rCi0gc3RhdGljIFhTTV9JTkxJTkUg aW50IGNmX2NoZWNrIHhzbV9wY2lfY29uZmlnX3Blcm1pc3Npb24oCi0gICAgIFhTTV9ERUZBVUxU X0FSRyBzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBtYWNoaW5lX2JkZiwgdWludDE2X3Qgc3Rh cnQsCi0gICAgIHVpbnQxNl90IGVuZCwgdWludDhfdCBhY2Nlc3MpCi0tLS0gYS94ZW4vaW5jbHVk ZS94c20veHNtLmgKLSsrKyBiL3hlbi9pbmNsdWRlL3hzbS94c20uaAotQEAgLTExOCw2ICsxMTgs OCBAQCBzdHJ1Y3QgeHNtX29wcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4 X3QgYWxsb3cpOwotICAgICBpbnQgKCppb21lbV9tYXBwaW5nKShzdHJ1Y3QgZG9tYWluICpkLCB1 aW50NjRfdCBzLCB1aW50NjRfdCBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90 IGFsbG93KTsKLSsgICAgaW50ICgqaW9tZW1fbWFwcGluZ192cGNpKShzdHJ1Y3QgZG9tYWluICpk LCB1aW50NjRfdCBzLCB1aW50NjRfdCBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQ4X3QgYWxsb3cpOwotICAgICBpbnQgKCpwY2lfY29uZmlnX3Blcm1pc3Npb24pKHN0cnVj dCBkb21haW4gKmQsIHVpbnQzMl90IG1hY2hpbmVfYmRmLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQxNl90IHN0YXJ0LCB1aW50MTZfdCBlbmQsIHVpbnQ4X3QgYWNjZXNz KTsKLSAKLUBAIC01MjMsNiArNTI1LDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9pb21lbV9t YXBwaW5nKAotICAgICByZXR1cm4gYWx0ZXJuYXRpdmVfY2FsbCh4c21fb3BzLmlvbWVtX21hcHBp bmcsIGQsIHMsIGUsIGFsbG93KTsKLSB9Ci0gCi0rc3RhdGljIGlubGluZSBpbnQgeHNtX2lvbWVt X21hcHBpbmdfdnBjaSgKLSsgICAgeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQs IHVpbnQ2NF90IHMsIHVpbnQ2NF90IGUsIHVpbnQ4X3QgYWxsb3cpCi0rewotKyAgICByZXR1cm4g YWx0ZXJuYXRpdmVfY2FsbCh4c21fb3BzLmlvbWVtX21hcHBpbmdfdnBjaSwgZCwgcywgZSwgYWxs b3cpOwotK30KLSsKLSBzdGF0aWMgaW5saW5lIGludCB4c21fcGNpX2NvbmZpZ19wZXJtaXNzaW9u KAotICAgICB4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgbWFj aGluZV9iZGYsIHVpbnQxNl90IHN0YXJ0LAotICAgICB1aW50MTZfdCBlbmQsIHVpbnQ4X3QgYWNj ZXNzKQotLS0tIGEveGVuL3hzbS9kdW1teS5jCi0rKysgYi94ZW4veHNtL2R1bW15LmMKLUBAIC03 Niw2ICs3Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeHNtX29wcyBfX2luaXRjb25zdF8KLSAg ICAgLmlycV9wZXJtaXNzaW9uICAgICAgICAgICAgICAgID0geHNtX2lycV9wZXJtaXNzaW9uLAot ICAgICAuaW9tZW1fcGVybWlzc2lvbiAgICAgICAgICAgICAgPSB4c21faW9tZW1fcGVybWlzc2lv biwKLSAgICAgLmlvbWVtX21hcHBpbmcgICAgICAgICAgICAgICAgID0geHNtX2lvbWVtX21hcHBp bmcsCi0rICAgIC5pb21lbV9tYXBwaW5nX3ZwY2kgICAgICAgICAgICA9IHhzbV9pb21lbV9tYXBw aW5nX3ZwY2ksCi0gICAgIC5wY2lfY29uZmlnX3Blcm1pc3Npb24gICAgICAgICA9IHhzbV9wY2lf Y29uZmlnX3Blcm1pc3Npb24sCi0gICAgIC5nZXRfdm51bWFpbmZvICAgICAgICAgICAgICAgICA9 IHhzbV9nZXRfdm51bWFpbmZvLAotIAotLS0tIGEveGVuL3hzbS9mbGFzay9ob29rcy5jCi0rKysg Yi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKLUBAIC0xOTUwLDYgKzE5NTAsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHhzbV9vcHMgX19pbml0Y29uc3RfCi0gICAgIC5pcnFfcGVybWlzc2lvbiA9IGZs YXNrX2lycV9wZXJtaXNzaW9uLAotICAgICAuaW9tZW1fcGVybWlzc2lvbiA9IGZsYXNrX2lvbWVt X3Blcm1pc3Npb24sCi0gICAgIC5pb21lbV9tYXBwaW5nID0gZmxhc2tfaW9tZW1fbWFwcGluZywK LSsgICAgLmlvbWVtX21hcHBpbmdfdnBjaSA9IGZsYXNrX2lvbWVtX21hcHBpbmcsCi0gICAgIC5w Y2lfY29uZmlnX3Blcm1pc3Npb24gPSBmbGFza19wY2lfY29uZmlnX3Blcm1pc3Npb24sCi0gCi0g ICAgIC5yZXNvdXJjZV9wbHVnX2NvcmUgPSBmbGFza19yZXNvdXJjZV9wbHVnX2NvcmUsCgpkaWZm IC0tZ2l0IGEveHNhNDkyLTQuMjEtMDkucGF0Y2ggYi94c2E0OTItNC4yMS0wOS5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZlOTQwMy4uMDAwMDAwMAotLS0gYS94c2E0OTIt NC4yMS0wOS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE5NCArMCwwIEBACi1Gcm9tOiBKYW4g QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci1TdWJqZWN0OiBkb21jdGw6IGhhbmRsZSBYRU5f RE9NQ1RMX21lbW9yeV9tYXBwaW5nIHdpdGhvdXQgYWNxdWlyaW5nIGRvbWN0bCBsb2NrCi0KLVdp dGggZGVkaWNhdGVkIGxvY2tpbmcgYWRkZWQsIHRoZSBkb21jdGwgbG9jayBpc24ndCByZXF1aXJl ZCBoZXJlIGFueW1vcmUuCi1Nb3ZlIHRoZSByZS1wdXJwb3NlZCBkZWRpY2F0ZWQgWFNNIGNoZWNr IGFzIGVhcmx5IGFzIHBvc3NpYmxlLgotCi1NaW5pbWFsICJtb2Rlcm5pemF0aW9uIjogU3dpdGNo ICJhZGQiIHRvIGJvb2wgYW5kIHVzZSAlcGQgaW4gbG9nIG1lc3NhZ2VzLgotCi1UaGlzIGlzIHBh cnQgb2YgWFNBLTQ5Mi4KLQotRml4ZXM6IGZkYTQ5ZjliM2ZiYiAoIkFkZCBidWlsZCBvcHRpb24g dG8gYWxsb3cgbW9yZSBoeXBlcmNhbGxzIGZyb20gc3R1YmRvbXMiKQotUmVwb3J0ZWQtYnk6IEFu ZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBK YW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci1BY2tlZC1ieTogRGFuaWVsIFAuIFNtaXRo IDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgotUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBN b25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotCi0tLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5j Ci0rKysgYi94ZW4vY29tbW9uL2RvbWN0bC5jCi1AQCAtMzc2LDYgKzM3Niw2NiBAQCBsb25nIGRv X2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCi0gICAgICAgICAgICAgY29weWJhY2sg PSB0cnVlOwotICAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5OwotIAotKyAg ICBjYXNlIFhFTl9ET01DVExfbWVtb3J5X21hcHBpbmc6Ci0rICAgIHsKLSsgICAgICAgIHVuc2ln bmVkIGxvbmcgZ2ZuID0gb3AtPnUubWVtb3J5X21hcHBpbmcuZmlyc3RfZ2ZuOwotKyAgICAgICAg dW5zaWduZWQgbG9uZyBtZm4gPSBvcC0+dS5tZW1vcnlfbWFwcGluZy5maXJzdF9tZm47Ci0rICAg ICAgICB1bnNpZ25lZCBsb25nIG5yX21mbnMgPSBvcC0+dS5tZW1vcnlfbWFwcGluZy5ucl9tZm5z OwotKyAgICAgICAgdW5zaWduZWQgbG9uZyBtZm5fZW5kID0gbWZuICsgbnJfbWZucyAtIDE7Ci0r ICAgICAgICBib29sIGFkZCA9IG9wLT51Lm1lbW9yeV9tYXBwaW5nLmFkZF9tYXBwaW5nOwotKwot KyAgICAgICAgcmV0ID0gLUVJTlZBTDsKLSsgICAgICAgIGlmICggbWZuX2VuZCA8IG1mbiB8fCAv KiBXcmFwPyAqLwotKyAgICAgICAgICAgICAoKG1mbiB8IG1mbl9lbmQpID4+IChwYWRkcl9iaXRz IC0gUEFHRV9TSElGVCkpIHx8Ci0rICAgICAgICAgICAgIChnZm4gKyBucl9tZm5zIC0gMSkgPCBn Zm4gKSAvKiBXcmFwPyAqLwotKyAgICAgICAgICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tfZG9t b25seTsKLSsKLSsgICAgICAgIHJldCA9IHhzbV9pb21lbV9tYXBwaW5nKFhTTV9ETV9QUklWLCBk LCBtZm4sIG1mbl9lbmQsIGFkZCk7Ci0rICAgICAgICBpZiAoIHJldCB8fCAhcGFnaW5nX21vZGVf dHJhbnNsYXRlKGQpICkKLSsgICAgICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9u bHk7Ci0rCi0rI2lmbmRlZiBDT05GSUdfWDg2IC8qIFhYWCBBUk0hPyAqLwotKyAgICAgICAgcmV0 ID0gLUUyQklHOwotKyAgICAgICAgLyogTXVzdCBicmVhayBoeXBlcmNhbGwgdXAgYXMgdGhpcyBj b3VsZCB0YWtlIGEgd2hpbGUuICovCi0rICAgICAgICBpZiAoIG5yX21mbnMgPiA2NCApCi0rICAg ICAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5OwotKyNlbmRpZgotKwotKyAg ICAgICAgaW9jYXBzX2RvdWJsZV9sb2NrKGQsIGZhbHNlKTsKLSsKLSsgICAgICAgIHJldCA9IC1F UEVSTTsKLSsgICAgICAgIGlmICggIWlvbWVtX2FjY2Vzc19wZXJtaXR0ZWQoY3VycmVudC0+ZG9t YWluLCBtZm4sIG1mbl9lbmQpIHx8Ci0rICAgICAgICAgICAgICFpb21lbV9hY2Nlc3NfcGVybWl0 dGVkKGQsIG1mbiwgbWZuX2VuZCkgKQotKyAgICAgICAgICAgIC8qIE5vdGhpbmcuICovOwotKyAg ICAgICAgZWxzZSBpZiAoIGFkZCApCi0rICAgICAgICB7Ci0rICAgICAgICAgICAgcHJpbnRrKFhF TkxPR19HX0RFQlVHCi0rICAgICAgICAgICAgICAgICAgICJtZW1vcnlfbWFwOmFkZDogJXBkIGdm bj0lbHggbWZuPSVseCBucj0lbHhcbiIsCi0rICAgICAgICAgICAgICAgICAgIGQsIGdmbiwgbWZu LCBucl9tZm5zKTsKLSsKLSsgICAgICAgICAgICByZXQgPSBtYXBfbW1pb19yZWdpb25zKGQsIF9n Zm4oZ2ZuKSwgbnJfbWZucywgX21mbihtZm4pKTsKLSsgICAgICAgICAgICBpZiAoIHJldCA8IDAg KQotKyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfV0FSTklORwotKyAgICAgICAgICAg ICAgICAgICAgICAgIm1lbW9yeV9tYXA6ZmFpbDogJXBkIGdmbj0lbHggbWZuPSVseCBucj0lbHgg cmV0OiVsZFxuIiwKLSsgICAgICAgICAgICAgICAgICAgICAgIGQsIGdmbiwgbWZuLCBucl9tZm5z LCByZXQpOwotKyAgICAgICAgfQotKyAgICAgICAgZWxzZQotKyAgICAgICAgewotKyAgICAgICAg ICAgIHByaW50ayhYRU5MT0dfR19ERUJVRwotKyAgICAgICAgICAgICAgICAgICAibWVtb3J5X21h cDpyZW1vdmU6ICVwZCBnZm49JWx4IG1mbj0lbHggbnI9JWx4XG4iLAotKyAgICAgICAgICAgICAg ICAgICBkLCBnZm4sIG1mbiwgbnJfbWZucyk7Ci0rCi0rICAgICAgICAgICAgcmV0ID0gdW5tYXBf bW1pb19yZWdpb25zKGQsIF9nZm4oZ2ZuKSwgbnJfbWZucywgX21mbihtZm4pKTsKLSsgICAgICAg ICAgICBpZiAoIHJldCA8IDAgJiYgaXNfaGFyZHdhcmVfZG9tYWluKGN1cnJlbnQtPmRvbWFpbikg KQotKyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUgotKyAgICAgICAgICAgICAgICAg ICAgICAgIm1lbW9yeV9tYXA6IGVycm9yICVsZCByZW1vdmluZyAlcGQgYWNjZXNzIHRvIFslbHgs JWx4XVxuIiwKLSsgICAgICAgICAgICAgICAgICAgICAgIHJldCwgZCwgbWZuLCBtZm5fZW5kKTsK LSsgICAgICAgIH0KLSsKLSsgICAgICAgIGlvY2Fwc19kb3VibGVfdW5sb2NrKGQsIGZhbHNlKTsK LSsgICAgICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tfZG9tb25seTsKLSsgICAgfQotKwotICAg ICBkZWZhdWx0OgotICAgICAgICAgLyogRXZlcnl0aGluZyBlbHNlIGhhbmRsZWQgZnVydGhlciBk b3duLiAqLwotICAgICAgICAgYnJlYWs7Ci1AQCAtNzM2LDY0ICs3OTYsNiBAQCBsb25nIGRvX2Rv bWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCi0gICAgICAgICBicmVhazsKLSAgICAgfQot IAotLSAgICBjYXNlIFhFTl9ET01DVExfbWVtb3J5X21hcHBpbmc6Ci0tICAgIHsKLS0gICAgICAg IHVuc2lnbmVkIGxvbmcgZ2ZuID0gb3AtPnUubWVtb3J5X21hcHBpbmcuZmlyc3RfZ2ZuOwotLSAg ICAgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBvcC0+dS5tZW1vcnlfbWFwcGluZy5maXJzdF9tZm47 Ci0tICAgICAgICB1bnNpZ25lZCBsb25nIG5yX21mbnMgPSBvcC0+dS5tZW1vcnlfbWFwcGluZy5u cl9tZm5zOwotLSAgICAgICAgdW5zaWduZWQgbG9uZyBtZm5fZW5kID0gbWZuICsgbnJfbWZucyAt IDE7Ci0tICAgICAgICBpbnQgYWRkID0gb3AtPnUubWVtb3J5X21hcHBpbmcuYWRkX21hcHBpbmc7 Ci0tCi0tICAgICAgICByZXQgPSAtRUlOVkFMOwotLSAgICAgICAgaWYgKCBtZm5fZW5kIDwgbWZu IHx8IC8qIHdyYXA/ICovCi0tICAgICAgICAgICAgICgobWZuIHwgbWZuX2VuZCkgPj4gKHBhZGRy X2JpdHMgLSBQQUdFX1NISUZUKSkgfHwKLS0gICAgICAgICAgICAgKGdmbiArIG5yX21mbnMgLSAx KSA8IGdmbiApIC8qIHdyYXA/ICovCi0tICAgICAgICAgICAgYnJlYWs7Ci0tCi0tI2lmbmRlZiBD T05GSUdfWDg2IC8qIFhYWCBBUk0hPyAqLwotLSAgICAgICAgcmV0ID0gLUUyQklHOwotLSAgICAg ICAgLyogTXVzdCBicmVhayBoeXBlcmNhbGwgdXAgYXMgdGhpcyBjb3VsZCB0YWtlIGEgd2hpbGUu ICovCi0tICAgICAgICBpZiAoIG5yX21mbnMgPiA2NCApCi0tICAgICAgICAgICAgYnJlYWs7Ci0t I2VuZGlmCi0tCi0tICAgICAgICBpb2NhcHNfZG91YmxlX2xvY2soZCwgZmFsc2UpOwotLQotLSAg ICAgICAgcmV0ID0gLUVQRVJNOwotLSAgICAgICAgaWYgKCAhaW9tZW1fYWNjZXNzX3Blcm1pdHRl ZChjdXJyZW50LT5kb21haW4sIG1mbiwgbWZuX2VuZCkgfHwKLS0gICAgICAgICAgICAgIWlvbWVt X2FjY2Vzc19wZXJtaXR0ZWQoZCwgbWZuLCBtZm5fZW5kKSB8fAotLSAgICAgICAgICAgICAocmV0 ID0geHNtX2lvbWVtX21hcHBpbmcoWFNNX0hPT0ssIGQsIG1mbiwgbWZuX2VuZCwgYWRkKSkgfHwK LS0gICAgICAgICAgICAgIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSApCi0tICAgICAgICAgICAg LyogTm90aGluZy4gKi87Ci0tICAgICAgICBlbHNlIGlmICggYWRkICkKLS0gICAgICAgIHsKLS0g ICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfREVCVUcKLS0gICAgICAgICAgICAgICAgICAgIm1l bW9yeV9tYXA6YWRkOiBkb20lZCBnZm49JWx4IG1mbj0lbHggbnI9JWx4XG4iLAotLSAgICAgICAg ICAgICAgICAgICBkLT5kb21haW5faWQsIGdmbiwgbWZuLCBucl9tZm5zKTsKLS0KLS0gICAgICAg ICAgICByZXQgPSBtYXBfbW1pb19yZWdpb25zKGQsIF9nZm4oZ2ZuKSwgbnJfbWZucywgX21mbiht Zm4pKTsKLS0gICAgICAgICAgICBpZiAoIHJldCA8IDAgKQotLSAgICAgICAgICAgICAgICBwcmlu dGsoWEVOTE9HX0dfV0FSTklORwotLSAgICAgICAgICAgICAgICAgICAgICAgIm1lbW9yeV9tYXA6 ZmFpbDogZG9tJWQgZ2ZuPSVseCBtZm49JWx4IG5yPSVseCByZXQ6JWxkXG4iLAotLSAgICAgICAg ICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBnZm4sIG1mbiwgbnJfbWZucywgcmV0KTsKLS0g ICAgICAgIH0KLS0gICAgICAgIGVsc2UKLS0gICAgICAgIHsKLS0gICAgICAgICAgICBwcmludGso WEVOTE9HX0dfREVCVUcKLS0gICAgICAgICAgICAgICAgICAgIm1lbW9yeV9tYXA6cmVtb3ZlOiBk b20lZCBnZm49JWx4IG1mbj0lbHggbnI9JWx4XG4iLAotLSAgICAgICAgICAgICAgICAgICBkLT5k b21haW5faWQsIGdmbiwgbWZuLCBucl9tZm5zKTsKLS0KLS0gICAgICAgICAgICByZXQgPSB1bm1h cF9tbWlvX3JlZ2lvbnMoZCwgX2dmbihnZm4pLCBucl9tZm5zLCBfbWZuKG1mbikpOwotLSAgICAg ICAgICAgIGlmICggcmV0IDwgMCAmJiBpc19oYXJkd2FyZV9kb21haW4oY3VycmVudC0+ZG9tYWlu KSApCi0tICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSCi0tICAgICAgICAgICAgICAg ICAgICAgICAibWVtb3J5X21hcDogZXJyb3IgJWxkIHJlbW92aW5nIGRvbSVkIGFjY2VzcyB0byBb JWx4LCVseF1cbiIsCi0tICAgICAgICAgICAgICAgICAgICAgICByZXQsIGQtPmRvbWFpbl9pZCwg bWZuLCBtZm5fZW5kKTsKLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGlvY2Fwc19kb3VibGVfdW5s b2NrKGQsIGZhbHNlKTsKLS0gICAgICAgIGJyZWFrOwotLSAgICB9Ci0tCi0gICAgIGNhc2UgWEVO X0RPTUNUTF9zZXR0aW1lb2Zmc2V0OgotICAgICAgICAgZG9tYWluX3NldF90aW1lX29mZnNldChk LCBvcC0+dS5zZXR0aW1lb2Zmc2V0LnRpbWVfb2Zmc2V0X3NlY29uZHMpOwotICAgICAgICAgYnJl YWs7Ci0tLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAotKysrIGIveGVuL2luY2x1ZGUveHNt L2R1bW15LmgKLUBAIC0xNjgsMTMgKzE2OCwxMyBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2Zf Y2hlY2sgeHNtX2RvbWN0Ci0gICAgIHN3aXRjaCAoIGNtZCApCi0gICAgIHsKLSAgICAgY2FzZSBY RU5fRE9NQ1RMX2lvcG9ydF9tYXBwaW5nOgotLSAgICBjYXNlIFhFTl9ET01DVExfbWVtb3J5X21h cHBpbmc6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9iaW5kX3B0X2lycToKLSAgICAgY2FzZSBYRU5f RE9NQ1RMX3VuYmluZF9wdF9pcnE6Ci0gICAgICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9u KFhTTV9ETV9QUklWLCBjdXJyZW50LT5kb21haW4sIGQpOwotIAotICAgICBjYXNlIFhFTl9ET01D VExfZ2V0ZG9tYWluaW5mbzoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3RhdGU6 Ci0rICAgIGNhc2UgWEVOX0RPTUNUTF9tZW1vcnlfbWFwcGluZzoKLSAgICAgICAgIEFTU0VSVF9V TlJFQUNIQUJMRSgpOwotICAgICAgICAgcmV0dXJuIC1FSUxTRVE7Ci0gCi1AQCAtNTc2LDcgKzU3 Niw3IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21faW9tZW0KLSBzdGF0aWMg WFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2lvbWVtX21hcHBpbmcoCi0gICAgIFhTTV9ERUZB VUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBzLCB1aW50NjRfdCBlLCB1aW50OF90 IGFsbG93KQotIHsKLS0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOwotKyAgICBYU01f QVNTRVJUX0FDVElPTihYU01fRE1fUFJJVik7Ci0gICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rp b24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOwotIH0KLSAKLS0tLSBhL3hlbi94c20vZmxh c2svaG9va3MuYwotKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCi1AQCAtNjg1LDYgKzY4NSw3 IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAotICAgICAvKiBUaGVz ZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIGFuZCBkb24ndCBtYWtlIGl0IGhlcmUuICovCi0g ICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgotICAgICBjYXNlIFhFTl9ET01DVExf Z2V0X2RvbWFpbl9zdGF0ZToKLSsgICAgY2FzZSBYRU5fRE9NQ1RMX21lbW9yeV9tYXBwaW5nOgot ICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7Ci0gICAgICAgICByZXR1cm4gLUVJTFNFUTsK LSAKLUBAIC02OTIsNyArNjkzLDYgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwo c3RydWN0Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9zY2hlZHVsZXJfb3A6Ci0gICAgIGNhc2UgWEVO X0RPTUNUTF9pcnFfcGVybWlzc2lvbjoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvbWVtX3Blcm1p c3Npb246Ci0tICAgIGNhc2UgWEVOX0RPTUNUTF9tZW1vcnlfbWFwcGluZzoKLSAgICAgY2FzZSBY RU5fRE9NQ1RMX3NldF90YXJnZXQ6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF92bV9ldmVudF9vcDoK LSAKCmRpZmYgLS1naXQgYS94c2E0OTItNC4yMS0xMC5wYXRjaCBiL3hzYTQ5Mi00LjIxLTEwLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDA2YTE5Li4wMDAwMDAwCi0tLSBh L3hzYTQ5Mi00LjIxLTEwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAsMCBAQAotRnJv bTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotU3ViamVjdDogZG9tY3RsOiBoYW5k bGUgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZyB3aXRob3V0IGFjcXVpcmluZyBkb21jdGwgbG9j awotCi1XaXRoIGRlZGljYXRlZCBsb2NraW5nIGFkZGVkLCB0aGUgZG9tY3RsIGxvY2sgaXNuJ3Qg cmVxdWlyZWQgaGVyZSBhbnltb3JlLgotQXMgdGhlIGhhbmRsaW5nIGlzIGluIGFyY2gtc3BlY2lm aWMgY29kZSAoeDg2IG9ubHkpLCBhbG1vc3Qgbm8gY29kZSBpcwotYmVpbmcgbW92ZWQsIGJ1dCBh IDJuZCAoZXh0ZW5zaWJsZSB0byBvdGhlciBzdWItb3BzKSBpbnZvY2F0aW9uIG9mCi1hcmNoX2Rv X2RvbWN0bCgpIGlzIGJlaW5nIGFkZGVkLiBNb3ZlIGp1c3QgdGhlIHJlLXB1cnBvc2VkIGRlZGlj YXRlZCBYU00KLWNoZWNrIGFzIGVhcmx5IGFzIHBvc3NpYmxlLgotCi1JbiBmbGFza19kb21jdGwo KSBkb24ndCBwdXQgI2lmZGVmIGFyb3VuZCB0aGUgbW92ZWQgY2FzZSBsYWJlbC4KLQotVGhpcyBp cyBwYXJ0IG9mIFhTQS00OTIuCi0KLUZpeGVzOiBmZGE0OWY5YjNmYmIgKCJBZGQgYnVpbGQgb3B0 aW9uIHRvIGFsbG93IG1vcmUgaHlwZXJjYWxscyBmcm9tIHN0dWJkb21zIikKLVJlcG9ydGVkLWJ5 OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotU2lnbmVkLW9mZi1i eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotUmV2aWV3ZWQtYnk6IFJvZ2VyIFBh dSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotQWNrZWQtYnk6IERhbmllbCBQLiBTbWl0 aCA8ZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbT4KLQotLS0tIGEveGVuL2FyY2gveDg2L2Rv bWN0bC5jCi0rKysgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKLUBAIC02NjMsMTIgKzY2MywxNSBA QCBsb25nIGFyY2hfZG9fZG9tY3RsKAotICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgfQot IAotKyAgICAgICAgcmV0ID0geHNtX2lvcG9ydF9tYXBwaW5nKFhTTV9ETV9QUklWLCBkLCBmbXAs IGZtcCArIG5wIC0gMSwgYWRkKTsKLSsgICAgICAgIGlmICggcmV0ICkKLSsgICAgICAgICAgICBi cmVhazsKLSsKLSAgICAgICAgIGh2bSA9ICZkLT5hcmNoLmh2bTsKLSAgICAgICAgIGlvY2Fwc19k b3VibGVfbG9jayhkLCB0cnVlKTsKLSAKLS0gICAgICAgIGlmICggIWlvcG9ydHNfYWNjZXNzX3Bl cm1pdHRlZChjdXJyZCwgZm1wLCBmbXAgKyBucCAtIDEpIHx8Ci0tICAgICAgICAgICAgIChyZXQg PSB4c21faW9wb3J0X21hcHBpbmcoWFNNX0hPT0ssIGQsIGZtcCwgZm1wICsgbnAgLSAxLCBhZGQp KSApCi0tICAgICAgICAgICAgcmV0ID0gcmV0ID86IC1FUEVSTTsKLSsgICAgICAgIGlmICggIWlv cG9ydHNfYWNjZXNzX3Blcm1pdHRlZChjdXJyZCwgZm1wLCBmbXAgKyBucCAtIDEpICkKLSsgICAg ICAgICAgICByZXQgPSAtRVBFUk07Ci0gICAgICAgICBlbHNlIGlmICggYWRkICkKLSAgICAgICAg IHsKLSAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfSU5GTwotLS0tIGEveGVuL2NvbW1vbi9k b21jdGwuYwotKysrIGIveGVuL2NvbW1vbi9kb21jdGwuYwotQEAgLTQzNiw2ICs0MzYsMTAgQEAg bG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQotICAgICAgICAgZ290byBk b21jdGxfb3V0X3VubG9ja19kb21vbmx5OwotICAgICB9Ci0gCi0rICAgIGNhc2UgWEVOX0RPTUNU TF9pb3BvcnRfbWFwcGluZzoKLSsgICAgICAgIHJldCA9IGFyY2hfZG9fZG9tY3RsKG9wLCBkLCB1 X2RvbWN0bCk7Ci0rICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7Ci0rCi0g ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAvKiBFdmVyeXRoaW5nIGVsc2UgaGFuZGxlZCBmdXJ0aGVy IGRvd24uICovCi0gICAgICAgICBicmVhazsKLS0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5o Ci0rKysgYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAotQEAgLTE2NywxMyArMTY3LDEzIEBAIHN0 YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fZG9tY3QKLSAgICAgWFNNX0FTU0VSVF9B Q1RJT04oWFNNX09USEVSKTsKLSAgICAgc3dpdGNoICggY21kICkKLSAgICAgewotLSAgICBjYXNl IFhFTl9ET01DVExfaW9wb3J0X21hcHBpbmc6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9iaW5kX3B0 X2lycToKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE6Ci0gICAgICAgICByZXR1 cm4geHNtX2RlZmF1bHRfYWN0aW9uKFhTTV9ETV9QUklWLCBjdXJyZW50LT5kb21haW4sIGQpOwot IAotICAgICBjYXNlIFhFTl9ET01DVExfZ2V0ZG9tYWluaW5mbzoKLSAgICAgY2FzZSBYRU5fRE9N Q1RMX2dldF9kb21haW5fc3RhdGU6Ci0rICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGlu ZzoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX21lbW9yeV9tYXBwaW5nOgotICAgICAgICAgQVNTRVJU X1VOUkVBQ0hBQkxFKCk7Ci0gICAgICAgICByZXR1cm4gLUVJTFNFUTsKLUBAIC03NzIsNyArNzcy LDcgQEAgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9pb3BvcgotIHN0YXRpYyBY U01fSU5MSU5FIGludCBjZl9jaGVjayB4c21faW9wb3J0X21hcHBpbmcoCi0gICAgIFhTTV9ERUZB VUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBzLCB1aW50MzJfdCBlLCB1aW50OF90 IGFsbG93KQotIHsKLS0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOwotKyAgICBYU01f QVNTRVJUX0FDVElPTihYU01fRE1fUFJJVik7Ci0gICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rp b24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOwotIH0KLSAKLS0tLSBhL3hlbi94c20vZmxh c2svaG9va3MuYwotKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCi1AQCAtNjg1LDYgKzY4NSw3 IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAotICAgICAvKiBUaGVz ZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIGFuZCBkb24ndCBtYWtlIGl0IGhlcmUuICovCi0g ICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgotICAgICBjYXNlIFhFTl9ET01DVExf Z2V0X2RvbWFpbl9zdGF0ZToKLSsgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9tYXBwaW5nOgot ICAgICBjYXNlIFhFTl9ET01DVExfbWVtb3J5X21hcHBpbmc6Ci0gICAgICAgICBBU1NFUlRfVU5S RUFDSEFCTEUoKTsKLSAgICAgICAgIHJldHVybiAtRUlMU0VROwotQEAgLTcwMyw3ICs3MDQsNiBA QCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RvbWN0bChzdHJ1Y3QKLSAgICAgLyogVGhlc2Ug aGF2ZSBpbmRpdmlkdWFsIFhTTSBob29rcyAoYXJjaC94ODYvZG9tY3RsLmMpICovCi0gICAgIGNh c2UgWEVOX0RPTUNUTF9zaGFkb3dfb3A6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfcGVy bWlzc2lvbjoKLS0gICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9tYXBwaW5nOgotICAgICBjYXNl IFhFTl9ET01DVExfZ3NpX3Blcm1pc3Npb246Ci0gI2VuZGlmCi0gI2lmZGVmIENPTkZJR19IQVNf UEFTU1RIUk9VR0gKCmRpZmYgLS1naXQgYS94c2E0OTItNC4yMS0xMS5wYXRjaCBiL3hzYTQ5Mi00 LjIxLTExLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDdmZDVhLi4wMDAw MDAwCi0tLSBhL3hzYTQ5Mi00LjIxLTExLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTI4ICsw LDAgQEAKLUZyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLVN1YmplY3Q6IGRv bWN0bDogaGFuZGxlIFhFTl9ET01DVExfeyx1bn1iaW5kX3B0X2lycSB3aXRob3V0IGFjcXVpcmlu ZyBkb21jdGwgbG9jawotCi1XaXRoIGRlZGljYXRlZCBsb2NraW5nIGFkZGVkLCB0aGUgZG9tY3Rs IGxvY2sgaXNuJ3QgcmVxdWlyZWQgaGVyZSBhbnltb3JlLgotKEl0IGFsc28gYWxyZWFkeSBpc24n dCB1c2VkIHdoZW4gcHRfaXJxX3tjcmVhdGUsZGVzdHJveX1fYmluZCgpIGFyZQotaW52b2tlZCBm b3IgUFZIIERvbTAuKSBBcyB0aGUgaGFuZGxpbmcgaXMgaW4gYXJjaC1zcGVjaWZpYyBjb2RlLCBu byBjb2RlCi1pcyBiZWluZyBtb3ZlZCwgYnV0IHRoZSAybmQgKGV4dGVuc2libGUgdG8gb3RoZXIg c3ViLW9wcyBsaWtlIHRoZSBvbmVzCi1oZXJlKSBpbnZvY2F0aW9uIG9mIGFyY2hfZG9fZG9tY3Rs KCkgaXMgYmVpbmcgcmUtdXNlZC4KLQotVGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIuCi0KLUZpeGVz OiBmZGE0OWY5YjNmYmIgKCJBZGQgYnVpbGQgb3B0aW9uIHRvIGFsbG93IG1vcmUgaHlwZXJjYWxs cyBmcm9tIHN0dWJkb21zIikKLVJlcG9ydGVkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v cGVyM0BjaXRyaXguY29tPgotU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1 c2UuY29tPgotUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu Y29tPgotQWNrZWQtYnk6IERhbmllbCBQLiBTbWl0aCA8ZHBzbWl0aEBhcGVydHVzc29sdXRpb25z LmNvbT4KLUFja2VkLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPgotCi0tLS0gYS94 ZW4vYXJjaC9hcm0vZG9tY3RsLmMKLSsrKyBiL3hlbi9hcmNoL2FybS9kb21jdGwuYwotQEAgLTEw NCw3ICsxMDQsNyBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICpkCi0g ICAgICAgICBpZiAoIHJjICkKLSAgICAgICAgICAgICByZXR1cm4gcmM7Ci0gCi0tICAgICAgICBy YyA9IHhzbV9iaW5kX3B0X2lycShYU01fSE9PSywgZCwgYmluZCk7Ci0rICAgICAgICByYyA9IHhz bV9iaW5kX3B0X2lycShYU01fRE1fUFJJViwgZCwgYmluZCk7Ci0gICAgICAgICBpZiAoIHJjICkK LSAgICAgICAgICAgICByZXR1cm4gcmM7Ci0gCi1AQCAtMTQwLDcgKzE0MCw3IEBAIGxvbmcgYXJj aF9kb19kb21jdGwoc3RydWN0IHhlbl9kb21jdGwgKmQKLSAgICAgICAgIGlmICggaXJxICE9IHZp cnEgKQotICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwotIAotLSAgICAgICAgcmMgPSB4c21f dW5iaW5kX3B0X2lycShYU01fSE9PSywgZCwgYmluZCk7Ci0rICAgICAgICByYyA9IHhzbV91bmJp bmRfcHRfaXJxKFhTTV9ETV9QUklWLCBkLCBiaW5kKTsKLSAgICAgICAgIGlmICggcmMgKQotICAg ICAgICAgICAgIHJldHVybiByYzsKLSAKLS0tLSBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwotKysr IGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCi1AQCAtNTc1LDcgKzU3NSw3IEBAIGxvbmcgYXJjaF9k b19kb21jdGwoCi0gICAgICAgICBpZiAoICFpc19odm1fZG9tYWluKGQpICkKLSAgICAgICAgICAg ICBicmVhazsKLSAKLS0gICAgICAgIHJldCA9IHhzbV9iaW5kX3B0X2lycShYU01fSE9PSywgZCwg YmluZCk7Ci0rICAgICAgICByZXQgPSB4c21fYmluZF9wdF9pcnEoWFNNX0RNX1BSSVYsIGQsIGJp bmQpOwotICAgICAgICAgaWYgKCByZXQgKQotICAgICAgICAgICAgIGJyZWFrOwotIAotQEAgLTYx Myw3ICs2MTMsNyBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAotICAgICAgICAgaWYgKCAhaXNfaHZt X2RvbWFpbihkKSApCi0gICAgICAgICAgICAgYnJlYWs7Ci0gCi0tICAgICAgICByZXQgPSB4c21f dW5iaW5kX3B0X2lycShYU01fSE9PSywgZCwgYmluZCk7Ci0rICAgICAgICByZXQgPSB4c21fdW5i aW5kX3B0X2lycShYU01fRE1fUFJJViwgZCwgYmluZCk7Ci0gICAgICAgICBpZiAoIHJldCApCi0g ICAgICAgICAgICAgYnJlYWs7Ci0gCi0tLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jCi0rKysgYi94 ZW4vY29tbW9uL2RvbWN0bC5jCi1AQCAtNDM3LDYgKzQzNyw4IEBAIGxvbmcgZG9fZG9tY3RsKFhF Tl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKLSAgICAgfQotIAotICAgICBjYXNlIFhFTl9ET01DVExf aW9wb3J0X21hcHBpbmc6Ci0rICAgIGNhc2UgWEVOX0RPTUNUTF9iaW5kX3B0X2lycToKLSsgICAg Y2FzZSBYRU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE6Ci0gICAgICAgICByZXQgPSBhcmNoX2RvX2Rv bWN0bChvcCwgZCwgdV9kb21jdGwpOwotICAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19k b21vbmx5OwotIAotLS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKLSsrKyBiL3hlbi9pbmNs dWRlL3hzbS9kdW1teS5oCi1AQCAtMTY4LDEzICsxNjgsMTEgQEAgc3RhdGljIFhTTV9JTkxJTkUg aW50IGNmX2NoZWNrIHhzbV9kb21jdAotICAgICBzd2l0Y2ggKCBjbWQgKQotICAgICB7Ci0gICAg IGNhc2UgWEVOX0RPTUNUTF9iaW5kX3B0X2lycToKLS0gICAgY2FzZSBYRU5fRE9NQ1RMX3VuYmlu ZF9wdF9pcnE6Ci0tICAgICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKFhTTV9ETV9QUklW LCBjdXJyZW50LT5kb21haW4sIGQpOwotLQotICAgICBjYXNlIFhFTl9ET01DVExfZ2V0ZG9tYWlu aW5mbzoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3RhdGU6Ci0gICAgIGNhc2Ug WEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZzoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX21lbW9yeV9t YXBwaW5nOgotKyAgICBjYXNlIFhFTl9ET01DVExfdW5iaW5kX3B0X2lycToKLSAgICAgICAgIEFT U0VSVF9VTlJFQUNIQUJMRSgpOwotICAgICAgICAgcmV0dXJuIC1FSUxTRVE7Ci0gCi1AQCAtNTQx LDE0ICs1MzksMTQgQEAgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV91bm1hcAot IHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fYmluZF9wdF9pcnEoCi0gICAgIFhT TV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2RvbWN0bF9iaW5kX3B0 X2lycSAqYmluZCkKLSB7Ci0tICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9IT09LKTsKLSsgICAg WFNNX0FTU0VSVF9BQ1RJT04oWFNNX0RNX1BSSVYpOwotICAgICByZXR1cm4geHNtX2RlZmF1bHRf YWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKLSB9Ci0gCi0gc3RhdGljIFhTTV9J TkxJTkUgaW50IGNmX2NoZWNrIHhzbV91bmJpbmRfcHRfaXJxKAotICAgICBYU01fREVGQVVMVF9B Ukcgc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9kb21jdGxfYmluZF9wdF9pcnEgKmJpbmQp Ci0gewotLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fSE9PSyk7Ci0rICAgIFhTTV9BU1NFUlRf QUNUSU9OKFhTTV9ETV9QUklWKTsKLSAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rp b24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7Ci0gfQotIAotLS0tIGEveGVuL3hzbS9mbGFzay9ob29r cy5jCi0rKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKLUBAIC02ODMsMTAgKzY4MywxMiBAQCBz dGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RvbWN0bChzdHJ1Y3QKLSAgICAgICAgIHJldHVybiBh dmNfY3VycmVudF9oYXNfcGVybShzc2lkcmVmLCBTRUNDTEFTU19ET01BSU4sIERPTUFJTl9fQ1JF QVRFLCBOVUxMKTsKLSAKLSAgICAgLyogVGhlc2UgaGF2ZSBpbmRpdmlkdWFsIFhTTSBob29rcyBh bmQgZG9uJ3QgbWFrZSBpdCBoZXJlLiAqLwotKyAgICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9p cnE6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgotICAgICBjYXNlIFhFTl9E T01DVExfZ2V0X2RvbWFpbl9zdGF0ZToKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9tYXBw aW5nOgotICAgICBjYXNlIFhFTl9ET01DVExfbWVtb3J5X21hcHBpbmc6Ci0rICAgIGNhc2UgWEVO X0RPTUNUTF91bmJpbmRfcHRfaXJxOgotICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7Ci0g ICAgICAgICByZXR1cm4gLUVJTFNFUTsKLSAKLUBAIC02OTcsOSArNjk5LDYgQEAgc3RhdGljIGlu dCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9zZXRf dGFyZ2V0OgotICAgICBjYXNlIFhFTl9ET01DVExfdm1fZXZlbnRfb3A6Ci0gCi0tICAgIC8qIFRo ZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MgKGFyY2gvLi4vZG9tY3RsLmMpICovCi0tICAg IGNhc2UgWEVOX0RPTUNUTF9iaW5kX3B0X2lycToKLS0gICAgY2FzZSBYRU5fRE9NQ1RMX3VuYmlu ZF9wdF9pcnE6Ci0gI2lmZGVmIENPTkZJR19YODYKLSAgICAgLyogVGhlc2UgaGF2ZSBpbmRpdmlk dWFsIFhTTSBob29rcyAoYXJjaC94ODYvZG9tY3RsLmMpICovCi0gICAgIGNhc2UgWEVOX0RPTUNU TF9zaGFkb3dfb3A6CgpkaWZmIC0tZ2l0IGEveHNhNDkyLTQuMjEtMTIucGF0Y2ggYi94c2E0OTIt NC4yMS0xMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzE5ZDFlMS4uMDAw MDAwMAotLS0gYS94c2E0OTItNC4yMS0xMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE3MiAr MCwwIEBACi1Gcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci1TdWJqZWN0OiBk b21jdGw6IGhhbmRsZSBYRU5fRE9NQ1RMX2lve21lbSxwb3J0fV9wZXJtaXNzaW9uIHdpdGhvdXQg YWNxdWlyaW5nIGRvbWN0bCBsb2NrCi0KLVdpdGggZGVkaWNhdGVkIGxvY2tpbmcgYWRkZWQsIHRo ZSBkb21jdGwgbG9jayBpc24ndCByZXF1aXJlZCBoZXJlIGFueW1vcmUuCi1BcyB0aGUgSS9PIHBv cnQgaGFuZGxpbmcgaXMgaW4gYXJjaC1zcGVjaWZpYyBjb2RlICh4ODYgb25seSksIG5vIGNvZGUg aXMKLWJlaW5nIG1vdmVkLCBidXQgdGhlIDJuZCBpbnZvY2F0aW9uIG9mIGFyY2hfZG9fZG9tY3Rs KCkgaXMgcmUtdXNlZC4gTW92ZQotdGhlIHJlLXB1cnBvc2VkIGRlZGljYXRlZCBYU00gY2hlY2tz IGFzIGVhcmx5IGFzIHBvc3NpYmxlLgotCi1UaGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4KLQotU2ln bmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotUmV2aWV3ZWQtYnk6 IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotQWNrZWQtYnk6IERhbmll bCBQLiBTbWl0aCA8ZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbT4KLQotLS0tIGEveGVuL2Fy Y2gveDg2L2RvbWN0bC5jCi0rKysgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKLUBAIC0yMzMsMTIg KzIzMywxNyBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAotICAgICAgICAgdW5zaWduZWQgaW50IG5w ID0gZG9tY3RsLT51LmlvcG9ydF9wZXJtaXNzaW9uLm5yX3BvcnRzOwotICAgICAgICAgaW50IGFs bG93ID0gZG9tY3RsLT51LmlvcG9ydF9wZXJtaXNzaW9uLmFsbG93X2FjY2VzczsKLSAKLSsgICAg ICAgIHJldCA9IC1FSU5WQUw7Ci0rICAgICAgICBpZiAoIChmcCArIG5wKSA8PSBmcCB8fCAoZnAg KyBucCkgPiBNQVhfSU9QT1JUUyApCi0rICAgICAgICAgICAgYnJlYWs7Ci0rCi0rICAgICAgICBy ZXQgPSB4c21faW9wb3J0X3Blcm1pc3Npb24oWFNNX1BSSVYsIGQsIGZwLCBmcCArIG5wIC0gMSwg YWxsb3cpOwotKyAgICAgICAgaWYgKCByZXQgKQotKyAgICAgICAgICAgIGJyZWFrOwotKwotICAg ICAgICAgaW9jYXBzX2RvdWJsZV9sb2NrKGQsIHRydWUpOwotIAotLSAgICAgICAgaWYgKCAoZnAg KyBucCkgPD0gZnAgfHwgKGZwICsgbnApID4gTUFYX0lPUE9SVFMgKQotLSAgICAgICAgICAgIHJl dCA9IC1FSU5WQUw7Ci0tICAgICAgICBlbHNlIGlmICggIWlvcG9ydHNfYWNjZXNzX3Blcm1pdHRl ZChjdXJyZCwgZnAsIGZwICsgbnAgLSAxKSB8fAotLSAgICAgICAgICAgICAgICAgIHhzbV9pb3Bv cnRfcGVybWlzc2lvbihYU01fSE9PSywgZCwgZnAsIGZwICsgbnAgLSAxLCBhbGxvdykgKQotKyAg ICAgICAgaWYgKCAhaW9wb3J0c19hY2Nlc3NfcGVybWl0dGVkKGN1cnJkLCBmcCwgZnAgKyBucCAt IDEpICkKLSAgICAgICAgICAgICByZXQgPSAtRVBFUk07Ci0gICAgICAgICBlbHNlIGlmICggYWxs b3cgKQotICAgICAgICAgICAgIHJldCA9IGlvcG9ydHNfcGVybWl0X2FjY2VzcyhkLCBmcCwgZnAg KyBucCAtIDEpOwotLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYwotKysrIGIveGVuL2NvbW1vbi9k b21jdGwuYwotQEAgLTM3Niw2ICszNzYsMzQgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hB TkRMRV9QQVJBTSh4ZQotICAgICAgICAgICAgIGNvcHliYWNrID0gdHJ1ZTsKLSAgICAgICAgIGdv dG8gZG9tY3RsX291dF91bmxvY2tfZG9tb25seTsKLSAKLSsgICAgY2FzZSBYRU5fRE9NQ1RMX2lv bWVtX3Blcm1pc3Npb246Ci0rICAgIHsKLSsgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuID0gb3At PnUuaW9tZW1fcGVybWlzc2lvbi5maXJzdF9tZm47Ci0rICAgICAgICB1bnNpZ25lZCBsb25nIG5y X21mbnMgPSBvcC0+dS5pb21lbV9wZXJtaXNzaW9uLm5yX21mbnM7Ci0rICAgICAgICBib29sIGFs bG93ID0gb3AtPnUuaW9tZW1fcGVybWlzc2lvbi5hbGxvd19hY2Nlc3M7Ci0rCi0rICAgICAgICBy ZXQgPSAtRUlOVkFMOwotKyAgICAgICAgaWYgKCAobWZuICsgbnJfbWZucyAtIDEpIDwgbWZuICkg LyogV3JhcD8gKi8KLSsgICAgICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7 Ci0rCi0rICAgICAgICByZXQgPSB4c21faW9tZW1fcGVybWlzc2lvbihYU01fUFJJViwgZCwgbWZu LCBtZm4gKyBucl9tZm5zIC0gMSwgYWxsb3cpOwotKyAgICAgICAgaWYgKCByZXQgKQotKyAgICAg ICAgICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tfZG9tb25seTsKLSsKLSsgICAgICAgIGlvY2Fw c19kb3VibGVfbG9jayhkLCB0cnVlKTsKLSsKLSsgICAgICAgIGlmICggIWlvbWVtX2FjY2Vzc19w ZXJtaXR0ZWQoY3VycmVudC0+ZG9tYWluLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtZm4sIG1mbiArIG5yX21mbnMgLSAxKSApCi0rICAgICAgICAgICAgcmV0ID0gLUVQ RVJNOwotKyAgICAgICAgZWxzZSBpZiAoIGFsbG93ICkKLSsgICAgICAgICAgICByZXQgPSBpb21l bV9wZXJtaXRfYWNjZXNzKGQsIG1mbiwgbWZuICsgbnJfbWZucyAtIDEpOwotKyAgICAgICAgZWxz ZQotKyAgICAgICAgICAgIHJldCA9IGlvbWVtX2RlbnlfYWNjZXNzKGQsIG1mbiwgbWZuICsgbnJf bWZucyAtIDEpOwotKwotKyAgICAgICAgaW9jYXBzX2RvdWJsZV91bmxvY2soZCwgdHJ1ZSk7Ci0r ICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7Ci0rICAgIH0KLSsKLSAgICAg Y2FzZSBYRU5fRE9NQ1RMX21lbW9yeV9tYXBwaW5nOgotICAgICB7Ci0gICAgICAgICB1bnNpZ25l ZCBsb25nIGdmbiA9IG9wLT51Lm1lbW9yeV9tYXBwaW5nLmZpcnN0X2dmbjsKLUBAIC00MzYsNiAr NDY0LDcgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQotICAgICAg ICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5OwotICAgICB9Ci0gCi0rICAgIGNhc2Ug WEVOX0RPTUNUTF9pb3BvcnRfcGVybWlzc2lvbjoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9y dF9tYXBwaW5nOgotICAgICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9pcnE6Ci0gICAgIGNhc2Ug WEVOX0RPTUNUTF91bmJpbmRfcHRfaXJxOgotQEAgLTc3NywzMSArODA2LDYgQEAgbG9uZyBkb19k b21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQotICAgICB9Ci0gI2VuZGlmCi0gCi0tICAg IGNhc2UgWEVOX0RPTUNUTF9pb21lbV9wZXJtaXNzaW9uOgotLSAgICB7Ci0tICAgICAgICB1bnNp Z25lZCBsb25nIG1mbiA9IG9wLT51LmlvbWVtX3Blcm1pc3Npb24uZmlyc3RfbWZuOwotLSAgICAg ICAgdW5zaWduZWQgbG9uZyBucl9tZm5zID0gb3AtPnUuaW9tZW1fcGVybWlzc2lvbi5ucl9tZm5z OwotLSAgICAgICAgaW50IGFsbG93ID0gb3AtPnUuaW9tZW1fcGVybWlzc2lvbi5hbGxvd19hY2Nl c3M7Ci0tCi0tICAgICAgICByZXQgPSAtRUlOVkFMOwotLSAgICAgICAgaWYgKCAobWZuICsgbnJf bWZucyAtIDEpIDwgbWZuICkgLyogd3JhcD8gKi8KLS0gICAgICAgICAgICBicmVhazsKLS0KLS0g ICAgICAgIGlvY2Fwc19kb3VibGVfbG9jayhkLCB0cnVlKTsKLS0KLS0gICAgICAgIGlmICggIWlv bWVtX2FjY2Vzc19wZXJtaXR0ZWQoY3VycmVudC0+ZG9tYWluLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtZm4sIG1mbiArIG5yX21mbnMgLSAxKSB8fAotLSAgICAgICAg ICAgICB4c21faW9tZW1fcGVybWlzc2lvbihYU01fSE9PSywgZCwgbWZuLCBtZm4gKyBucl9tZm5z IC0gMSwgYWxsb3cpICkKLS0gICAgICAgICAgICByZXQgPSAtRVBFUk07Ci0tICAgICAgICBlbHNl IGlmICggYWxsb3cgKQotLSAgICAgICAgICAgIHJldCA9IGlvbWVtX3Blcm1pdF9hY2Nlc3MoZCwg bWZuLCBtZm4gKyBucl9tZm5zIC0gMSk7Ci0tICAgICAgICBlbHNlCi0tICAgICAgICAgICAgcmV0 ID0gaW9tZW1fZGVueV9hY2Nlc3MoZCwgbWZuLCBtZm4gKyBucl9tZm5zIC0gMSk7Ci0tCi0tICAg ICAgICBpb2NhcHNfZG91YmxlX3VubG9jayhkLCB0cnVlKTsKLS0gICAgICAgIGJyZWFrOwotLSAg ICB9Ci0tCi0gICAgIGNhc2UgWEVOX0RPTUNUTF9zZXR0aW1lb2Zmc2V0OgotICAgICAgICAgZG9t YWluX3NldF90aW1lX29mZnNldChkLCBvcC0+dS5zZXR0aW1lb2Zmc2V0LnRpbWVfb2Zmc2V0X3Nl Y29uZHMpOwotICAgICAgICAgYnJlYWs7Ci0tLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAot KysrIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKLUBAIC0xNzAsNyArMTcwLDkgQEAgc3RhdGlj IFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9kb21jdAotICAgICBjYXNlIFhFTl9ET01DVExf YmluZF9wdF9pcnE6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgotICAgICBj YXNlIFhFTl9ET01DVExfZ2V0X2RvbWFpbl9zdGF0ZToKLSsgICAgY2FzZSBYRU5fRE9NQ1RMX2lv bWVtX3Blcm1pc3Npb246Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZzoKLSsg ICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9wZXJtaXNzaW9uOgotICAgICBjYXNlIFhFTl9ET01D VExfbWVtb3J5X21hcHBpbmc6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF91bmJpbmRfcHRfaXJxOgot ICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7Ci1AQCAtNTY3LDcgKzU2OSw3IEBAIHN0YXRp YyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21faXJxX3AKLSBzdGF0aWMgWFNNX0lOTElORSBp bnQgY2ZfY2hlY2sgeHNtX2lvbWVtX3Blcm1pc3Npb24oCi0gICAgIFhTTV9ERUZBVUxUX0FSRyBz dHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBzLCB1aW50NjRfdCBlLCB1aW50OF90IGFsbG93KQot IHsKLS0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOwotKyAgICBYU01fQVNTRVJUX0FD VElPTihYU01fUFJJVik7Ci0gICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBj dXJyZW50LT5kb21haW4sIGQpOwotIH0KLSAKLUBAIC03NjMsNyArNzY1LDcgQEAgc3RhdGljIFhT TV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9wcml2XwotIHN0YXRpYyBYU01fSU5MSU5FIGludCBj Zl9jaGVjayB4c21faW9wb3J0X3Blcm1pc3Npb24oCi0gICAgIFhTTV9ERUZBVUxUX0FSRyBzdHJ1 Y3QgZG9tYWluICpkLCB1aW50MzJfdCBzLCB1aW50MzJfdCBlLCB1aW50OF90IGFsbG93KQotIHsK LS0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOwotKyAgICBYU01fQVNTRVJUX0FDVElP TihYU01fUFJJVik7Ci0gICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJy ZW50LT5kb21haW4sIGQpOwotIH0KLSAKLS0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYwotKysr IGIveGVuL3hzbS9mbGFzay9ob29rcy5jCi1AQCAtNjg2LDcgKzY4Niw5IEBAIHN0YXRpYyBpbnQg Y2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAotICAgICBjYXNlIFhFTl9ET01DVExfYmluZF9w dF9pcnE6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgotICAgICBjYXNlIFhF Tl9ET01DVExfZ2V0X2RvbWFpbl9zdGF0ZToKLSsgICAgY2FzZSBYRU5fRE9NQ1RMX2lvbWVtX3Bl cm1pc3Npb246Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZzoKLSsgICAgY2Fz ZSBYRU5fRE9NQ1RMX2lvcG9ydF9wZXJtaXNzaW9uOgotICAgICBjYXNlIFhFTl9ET01DVExfbWVt b3J5X21hcHBpbmc6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF91bmJpbmRfcHRfaXJxOgotICAgICAg ICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7Ci1AQCAtNjk1LDE0ICs2OTcsMTIgQEAgc3RhdGljIGlu dCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0Ci0gICAgIC8qIFRoZXNlIGhhdmUgaW5kaXZp ZHVhbCBYU00gaG9va3MgKGNvbW1vbi9kb21jdGwuYykgKi8KLSAgICAgY2FzZSBYRU5fRE9NQ1RM X3NjaGVkdWxlcl9vcDoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2lycV9wZXJtaXNzaW9uOgotLSAg ICBjYXNlIFhFTl9ET01DVExfaW9tZW1fcGVybWlzc2lvbjoKLSAgICAgY2FzZSBYRU5fRE9NQ1RM X3NldF90YXJnZXQ6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF92bV9ldmVudF9vcDoKLSAKLSAjaWZk ZWYgQ09ORklHX1g4NgotICAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIChh cmNoL3g4Ni9kb21jdGwuYykgKi8KLSAgICAgY2FzZSBYRU5fRE9NQ1RMX3NoYWRvd19vcDoKLS0g ICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9wZXJtaXNzaW9uOgotICAgICBjYXNlIFhFTl9ET01D VExfZ3NpX3Blcm1pc3Npb246Ci0gI2VuZGlmCi0gI2lmZGVmIENPTkZJR19IQVNfUEFTU1RIUk9V R0gKCmRpZmYgLS1naXQgYS94c2E0OTItNC4yMS0xMy5wYXRjaCBiL3hzYTQ5Mi00LjIxLTEzLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MWNlMWFlLi4wMDAwMDAwCi0tLSBh L3hzYTQ5Mi00LjIxLTEzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTYzICswLDAgQEAKLUZy b206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLVN1YmplY3Q6IGRvbWN0bDogaGFu ZGxlIFhFTl9ET01DVExfe2lycSxnc2l9X3Blcm1pc3Npb24gd2l0aG91dCBhY3F1aXJpbmcgZG9t Y3RsIGxvY2sKLQotV2l0aCBkZWRpY2F0ZWQgbG9ja2luZyBhZGRlZCwgdGhlIGRvbWN0bCBsb2Nr IGlzbid0IHJlcXVpcmVkIGhlcmUgYW55bW9yZS4KLUFzIHRoZSBHU0kgaGFuZGxpbmcgaXMgaW4g YXJjaC1zcGVjaWZpYyBjb2RlICh4ODYgb25seSksIG5vIGNvZGUgaXMgYmVpbmcKLW1vdmVkIHRo ZXJlOyB0aGUgMm5kIGludm9jYXRpb24gb2YgYXJjaF9kb19kb21jdGwoKSBpcyByZS11c2VkLiBN b3ZlIHRoZQotcmUtcHVycG9zZWQgKFhTTV9IT09LIC0+IFhTTV9QUklWLCBhcyB4c21fZG9tY3Rs KCkgaXMgbm93IGJ5cGFzc2VkKQotZGVkaWNhdGVkIFhTTSBjaGVja3MgYXMgZWFybHkgYXMgcG9z c2libGUuCi0KLVRoaXMgaXMgcGFydCBvZiBYU0EtNDkyLgotCi1TaWduZWQtb2ZmLWJ5OiBKYW4g QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci1BY2tlZC1ieTogRGFuaWVsIFAuIFNtaXRoIDxk cHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgotUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25u w6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotCi0tLS0gYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMK LSsrKyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwotQEAgLTI3MiwxMCArMjcyLDEzIEBAIGxvbmcg YXJjaF9kb19kb21jdGwoCi0gICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICB9Ci0gCi0rICAg ICAgICByZXQgPSB4c21faXJxX3Blcm1pc3Npb24oWFNNX1BSSVYsIGQsIGlycSwgZmxhZ3MpOwot KyAgICAgICAgaWYgKCByZXQgKQotKyAgICAgICAgICAgIGJyZWFrOwotKwotICAgICAgICAgaW9j YXBzX2RvdWJsZV9sb2NrKGQsIHRydWUpOwotIAotLSAgICAgICAgaWYgKCAhaXJxX2FjY2Vzc19w ZXJtaXR0ZWQoY3VycmQsIGlycSkgfHwKLS0gICAgICAgICAgICAgeHNtX2lycV9wZXJtaXNzaW9u KFhTTV9IT09LLCBkLCBpcnEsIGZsYWdzKSApCi0rICAgICAgICBpZiAoICFpcnFfYWNjZXNzX3Bl cm1pdHRlZChjdXJyZCwgaXJxKSApCi0gICAgICAgICAgICAgcmV0ID0gLUVQRVJNOwotICAgICAg ICAgZWxzZSBpZiAoIGZsYWdzICkKLSAgICAgICAgICAgICByZXQgPSBpcnFfcGVybWl0X2FjY2Vz cyhkLCBpcnEpOwotLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYwotKysrIGIveGVuL2NvbW1vbi9k b21jdGwuYwotQEAgLTQ2NCw4ICs0NjQsNDEgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hB TkRMRV9QQVJBTSh4ZQotICAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5Owot ICAgICB9Ci0gCi0rI2lmZGVmIENPTkZJR19IQVNfUElSUQotKyAgICBjYXNlIFhFTl9ET01DVExf aXJxX3Blcm1pc3Npb246Ci0rICAgIHsKLSsgICAgICAgIHVuc2lnbmVkIGludCBwaXJxID0gb3At PnUuaXJxX3Blcm1pc3Npb24ucGlycSwgaXJxOwotKyAgICAgICAgYm9vbCBhbGxvdyA9IG9wLT51 LmlycV9wZXJtaXNzaW9uLmFsbG93X2FjY2VzczsKLSsKLSsgICAgICAgIHJldCA9IC1FSU5WQUw7 Ci0rICAgICAgICBpZiAoIHBpcnEgPj0gY3VycmVudC0+ZG9tYWluLT5ucl9waXJxcyApCi0rICAg ICAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5OwotKwotKyAgICAgICAgaXJx ID0gZG9tYWluX3BpcnFfdG9faXJxKGN1cnJlbnQtPmRvbWFpbiwgcGlycSk7Ci0rCi0rICAgICAg ICByZXQgPSAtRVBFUk07Ci0rICAgICAgICBpZiAoIGlycSApCi0rICAgICAgICAgICAgcmV0ID0g eHNtX2lycV9wZXJtaXNzaW9uKFhTTV9QUklWLCBkLCBpcnEsIGFsbG93KTsKLSsgICAgICAgIGlm ICggcmV0ICkKLSsgICAgICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7Ci0r Ci0rICAgICAgICBpb2NhcHNfZG91YmxlX2xvY2soZCwgdHJ1ZSk7Ci0rCi0rICAgICAgICBpZiAo ICFpcnFfYWNjZXNzX3Blcm1pdHRlZChjdXJyZW50LT5kb21haW4sIGlycSkgKQotKyAgICAgICAg ICAgIHJldCA9IC1FUEVSTTsKLSsgICAgICAgIGVsc2UgaWYgKCBhbGxvdyApCi0rICAgICAgICAg ICAgcmV0ID0gaXJxX3Blcm1pdF9hY2Nlc3MoZCwgaXJxKTsKLSsgICAgICAgIGVsc2UKLSsgICAg ICAgICAgICByZXQgPSBpcnFfZGVueV9hY2Nlc3MoZCwgaXJxKTsKLSsKLSsgICAgICAgIGlvY2Fw c19kb3VibGVfdW5sb2NrKGQsIHRydWUpOwotKyAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9j a19kb21vbmx5OwotKyAgICB9Ci0rI2VuZGlmCi0rCi0gICAgIGNhc2UgWEVOX0RPTUNUTF9pb3Bv cnRfcGVybWlzc2lvbjoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9tYXBwaW5nOgotKyAg ICBjYXNlIFhFTl9ET01DVExfZ3NpX3Blcm1pc3Npb246Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9i aW5kX3B0X2lycToKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE6Ci0gICAgICAg ICByZXQgPSBhcmNoX2RvX2RvbWN0bChvcCwgZCwgdV9kb21jdGwpOwotQEAgLTc3OSwzMyArODEy LDYgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQotICAgICAgICAg fQotICAgICAgICAgYnJlYWs7Ci0gCi0tI2lmZGVmIENPTkZJR19IQVNfUElSUQotLSAgICBjYXNl IFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb246Ci0tICAgIHsKLS0gICAgICAgIHVuc2lnbmVkIGlu dCBwaXJxID0gb3AtPnUuaXJxX3Blcm1pc3Npb24ucGlycSwgaXJxOwotLSAgICAgICAgaW50IGFs bG93ID0gb3AtPnUuaXJxX3Blcm1pc3Npb24uYWxsb3dfYWNjZXNzOwotLQotLSAgICAgICAgaWYg KCBwaXJxID49IGN1cnJlbnQtPmRvbWFpbi0+bnJfcGlycXMgKQotLSAgICAgICAgewotLSAgICAg ICAgICAgIHJldCA9IC1FSU5WQUw7Ci0tICAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICB9Ci0t Ci0tICAgICAgICBpb2NhcHNfZG91YmxlX2xvY2soZCwgdHJ1ZSk7Ci0tCi0tICAgICAgICBpcnEg PSBwaXJxX2FjY2Vzc19wZXJtaXR0ZWQoY3VycmVudC0+ZG9tYWluLCBwaXJxKTsKLS0gICAgICAg IGlmICggIWlycSB8fCB4c21faXJxX3Blcm1pc3Npb24oWFNNX0hPT0ssIGQsIGlycSwgYWxsb3cp ICkKLS0gICAgICAgICAgICByZXQgPSAtRVBFUk07Ci0tICAgICAgICBlbHNlIGlmICggYWxsb3cg KQotLSAgICAgICAgICAgIHJldCA9IGlycV9wZXJtaXRfYWNjZXNzKGQsIGlycSk7Ci0tICAgICAg ICBlbHNlCi0tICAgICAgICAgICAgcmV0ID0gaXJxX2RlbnlfYWNjZXNzKGQsIGlycSk7Ci0tCi0t ICAgICAgICBpb2NhcHNfZG91YmxlX3VubG9jayhkLCB0cnVlKTsKLS0gICAgICAgIGJyZWFrOwot LSAgICB9Ci0tI2VuZGlmCi0tCi0gICAgIGNhc2UgWEVOX0RPTUNUTF9zZXR0aW1lb2Zmc2V0Ogot ICAgICAgICAgZG9tYWluX3NldF90aW1lX29mZnNldChkLCBvcC0+dS5zZXR0aW1lb2Zmc2V0LnRp bWVfb2Zmc2V0X3NlY29uZHMpOwotICAgICAgICAgYnJlYWs7Ci0tLS0gYS94ZW4vaW5jbHVkZS94 c20vZHVtbXkuaAotKysrIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKLUBAIC0xNzAsOSArMTcw LDExIEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fZG9tY3QKLSAgICAgY2Fz ZSBYRU5fRE9NQ1RMX2JpbmRfcHRfaXJxOgotICAgICBjYXNlIFhFTl9ET01DVExfZ2V0ZG9tYWlu aW5mbzoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3RhdGU6Ci0rICAgIGNhc2Ug WEVOX0RPTUNUTF9nc2lfcGVybWlzc2lvbjoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvbWVtX3Bl cm1pc3Npb246Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZzoKLSAgICAgY2Fz ZSBYRU5fRE9NQ1RMX2lvcG9ydF9wZXJtaXNzaW9uOgotKyAgICBjYXNlIFhFTl9ET01DVExfaXJx X3Blcm1pc3Npb246Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9tZW1vcnlfbWFwcGluZzoKLSAgICAg Y2FzZSBYRU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE6Ci0gICAgICAgICBBU1NFUlRfVU5SRUFDSEFC TEUoKTsKLUBAIC01NjIsNyArNTY0LDcgQEAgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNr IHhzbV91bm1hcAotIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21faXJxX3Blcm1p c3Npb24oCi0gICAgIFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCBpbnQgcGlycSwg dWludDhfdCBhbGxvdykKLSB7Ci0tICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9IT09LKTsKLSsg ICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX1BSSVYpOwotICAgICByZXR1cm4geHNtX2RlZmF1bHRf YWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKLSB9Ci0gCi0tLS0gYS94ZW4veHNt L2ZsYXNrL2hvb2tzLmMKLSsrKyBiL3hlbi94c20vZmxhc2svaG9va3MuYwotQEAgLTY4Niw5ICs2 ODYsMTEgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0Ci0gICAgIGNh c2UgWEVOX0RPTUNUTF9iaW5kX3B0X2lycToKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldGRvbWFp bmluZm86Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlOgotKyAgICBjYXNl IFhFTl9ET01DVExfZ3NpX3Blcm1pc3Npb246Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9pb21lbV9w ZXJtaXNzaW9uOgotICAgICBjYXNlIFhFTl9ET01DVExfaW9wb3J0X21hcHBpbmc6Ci0gICAgIGNh c2UgWEVOX0RPTUNUTF9pb3BvcnRfcGVybWlzc2lvbjoKLSsgICAgY2FzZSBYRU5fRE9NQ1RMX2ly cV9wZXJtaXNzaW9uOgotICAgICBjYXNlIFhFTl9ET01DVExfbWVtb3J5X21hcHBpbmc6Ci0gICAg IGNhc2UgWEVOX0RPTUNUTF91bmJpbmRfcHRfaXJxOgotICAgICAgICAgQVNTRVJUX1VOUkVBQ0hB QkxFKCk7Ci1AQCAtNjk2LDE0ICs2OTgsMTIgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19k b21jdGwoc3RydWN0Ci0gCi0gICAgIC8qIFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3Mg KGNvbW1vbi9kb21jdGwuYykgKi8KLSAgICAgY2FzZSBYRU5fRE9NQ1RMX3NjaGVkdWxlcl9vcDoK LS0gICAgY2FzZSBYRU5fRE9NQ1RMX2lycV9wZXJtaXNzaW9uOgotICAgICBjYXNlIFhFTl9ET01D VExfc2V0X3RhcmdldDoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX3ZtX2V2ZW50X29wOgotIAotICNp ZmRlZiBDT05GSUdfWDg2Ci0gICAgIC8qIFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3Mg KGFyY2gveDg2L2RvbWN0bC5jKSAqLwotICAgICBjYXNlIFhFTl9ET01DVExfc2hhZG93X29wOgot LSAgICBjYXNlIFhFTl9ET01DVExfZ3NpX3Blcm1pc3Npb246Ci0gI2VuZGlmCi0gI2lmZGVmIENP TkZJR19IQVNfUEFTU1RIUk9VR0gKLSAgICAgLyoKCmRpZmYgLS1naXQgYS94c2E0OTItNC4yMS0x NC5wYXRjaCBiL3hzYTQ5Mi00LjIxLTE0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAyYjEzMzc3Li4wMDAwMDAwCi0tLSBhL3hzYTQ5Mi00LjIxLTE0LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMTc5ICswLDAgQEAKLUZyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl LmNvbT4KLVN1YmplY3Q6IGRvbWN0bC9YU006IGRyb3Agdm1fZXZlbnRfY29udHJvbCBob29rCi0K LUludGVncmF0ZSB0aGUgY2hlY2tpbmcgd2l0aCB4c21fZG9tY3RsKCkuIENhcmUgbmVlZHMgdG8g YmUgdGFrZW4gd2l0aCB0aGUKLUdFVF9WRVJTSU9OIHN1Yi1vcCwgd2hpY2ggbWF5IGJlIGludm9r ZWQgd2l0aCBET01JRF9JTlZBTElELCBhbmQgd2hpY2ggaGFzCi1iZWVuIChhbmQgY29udGludWVz IHRvIGJlKSBieXBhc3NpbmcgWFNNIGNoZWNraW5nLgotCi1TaW5jZSB0aGUgbGF0dGVyIHR3byBw YXJhbWV0ZXJzIHdlcmUgdW51c2VkLCBtb25pdG9yX2RvbWN0bCgpIGludm9raW5nIHRoZQotaG9v ayB3YXMgYWN0dWFsbHkgcmVkdW5kYW50IHdpdGggdGhlIGVhcmxpZXIgeHNtX2RvbWN0bCgpIChh cyBjYW4gYmUgc2VlbgotbmljZWx5IGZyb20gdGhlIGh1bmtzIGNoYW5naW5nIHhzbS9mbGFzay9o b29rcy5jKS4KLQotQXMgYSBwb3NpdGl2ZSBzaWRlIGVmZmVjdCwgcGVybWlzc2lvbnMgYXJlIHRo ZW4gY2hlY2tlZCBhdCB0aGUgc2FtZSBlYXJseQotcG9pbnQgd2l0aCBhbmQgd2l0aG91dCBGbGFz ay4KLQotV2hpbGUgZm9sZGluZyBYRU5fRE9NQ1RMX21vbml0b3Jfb3AgYW5kIFhFTl9ET01DVExf dm1fZXZlbnRfb3AgaW4KLWZsYXNrX2RvbWN0bCgpLCBhbHNvIGZvbGQgaW4gWEVOX0RPTUNUTF9z ZXRfYWNjZXNzX3JlcXVpcmVkLgotCi1UaGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4KLQotU2lnbmVk LW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotQWNrZWQtYnk6IERhbmll bCBQLiBTbWl0aCA8ZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbT4KLVJldmlld2VkLWJ5OiBS b2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KLQotLS0tIGEveGVuL2NvbW1v bi9kb21jdGwuYwotKysrIGIveGVuL2NvbW1vbi9kb21jdGwuYwotQEAgLTQ5Niw2ICs0OTYsMjMg QEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQotICAgICB9Ci0gI2Vu ZGlmCi0gCi0rICAgIGNhc2UgWEVOX0RPTUNUTF92bV9ldmVudF9vcDoKLSsgICAgICAgIGlmICgg b3AtPnUudm1fZXZlbnRfb3Aub3AgPT0gWEVOX1ZNX0VWRU5UX0dFVF9WRVJTSU9OICkKLSsgICAg ICAgIHsKLSsgICAgICAgICAgICAvKiBObyBYU00gY2hlY2sgKGFuZCBwb3RlbnRpYWxseSBkID09 IE5VTEwpIGhlcmUuICovCi0rICAgICAgICAgICAgcmV0ID0gdm1fZXZlbnRfZG9tY3RsKGQsICZv cC0+dS52bV9ldmVudF9vcCk7Ci0rICAgICAgICAgICAgaWYgKCAhcmV0ICkKLSsgICAgICAgICAg ICAgICAgY29weWJhY2sgPSB0cnVlOwotKyAgICAgICAgICAgIGdvdG8gZG9tY3RsX291dF91bmxv Y2tfZG9tb25seTsKLSsgICAgICAgIH0KLSsgICAgICAgIGlmICggIWQgKQotKyAgICAgICAgewot KyAgICAgICAgICAgIHJldCA9IC1FU1JDSDsKLSsgICAgICAgICAgICBnb3RvIGRvbWN0bF9vdXRf dW5sb2NrX2RvbW9ubHk7Ci0rICAgICAgICB9Ci0rICAgICAgICAvKiBPdGhlciBzdWItb3BzIGhh bmRsZWQgZnVydGhlciBkb3duLiAqLwotKyAgICAgICAgYnJlYWs7Ci0rCi0gICAgIGNhc2UgWEVO X0RPTUNUTF9pb3BvcnRfcGVybWlzc2lvbjoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9t YXBwaW5nOgotICAgICBjYXNlIFhFTl9ET01DVExfZ3NpX3Blcm1pc3Npb246Ci0tLS0gYS94ZW4v Y29tbW9uL21vbml0b3IuYwotKysrIGIveGVuL2NvbW1vbi9tb25pdG9yLmMKLUBAIC0zMCwxNiAr MzAsMTEgQEAKLSAKLSBpbnQgbW9uaXRvcl9kb21jdGwoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0 IHhlbl9kb21jdGxfbW9uaXRvcl9vcCAqbW9wKQotIHsKLS0gICAgaW50IHJjOwotICAgICBib29s IHJlcXVlc3RlZF9zdGF0dXMgPSBmYWxzZTsKLSAKLSAgICAgaWYgKCB1bmxpa2VseShjdXJyZW50 LT5kb21haW4gPT0gZCkgKSAvKiBubyBkb21haW5fcGF1c2UoKSAqLwotICAgICAgICAgcmV0dXJu IC1FUEVSTTsKLSAKLS0gICAgcmMgPSB4c21fdm1fZXZlbnRfY29udHJvbChYU01fUFJJViwgZCwg bW9wLT5vcCwgbW9wLT5ldmVudCk7Ci0tICAgIGlmICggdW5saWtlbHkocmMpICkKLS0gICAgICAg IHJldHVybiByYzsKLS0KLSAgICAgc3dpdGNoICggbW9wLT5vcCApCi0gICAgIHsKLSAgICAgY2Fz ZSBYRU5fRE9NQ1RMX01PTklUT1JfT1BfRU5BQkxFOgotLS0tIGEveGVuL2NvbW1vbi92bV9ldmVu dC5jCi0rKysgYi94ZW4vY29tbW9uL3ZtX2V2ZW50LmMKLUBAIC02MDMsMTEgKzYwMywxMCBAQCBp bnQgdm1fZXZlbnRfZG9tY3RsKHN0cnVjdCBkb21haW4gKmQsIHN0Ci0gCi0gICAgIC8qIEFsbCBv dGhlciBzdWJvcHMgbmVlZCB0byB0YXJnZXQgYSByZWFsIGRvbWFpbi4gKi8KLSAgICAgaWYgKCB1 bmxpa2VseShkID09IE5VTEwpICkKLS0gICAgICAgIHJldHVybiAtRVNSQ0g7Ci0tCi0tICAgIHJj ID0geHNtX3ZtX2V2ZW50X2NvbnRyb2woWFNNX1BSSVYsIGQsIHZlYy0+bW9kZSwgdmVjLT5vcCk7 Ci0tICAgIGlmICggcmMgKQotLSAgICAgICAgcmV0dXJuIHJjOwotKyAgICB7Ci0rICAgICAgICBB U1NFUlRfVU5SRUFDSEFCTEUoKTsKLSsgICAgICAgIHJldHVybiAtRUlMU0VROwotKyAgICB9Ci0g Ci0gICAgIGlmICggdW5saWtlbHkoZCA9PSBjdXJyZW50LT5kb21haW4pICkgLyogbm8gZG9tYWlu X3BhdXNlKCkgKi8KLSAgICAgewotLS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKLSsrKyBi L3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCi1AQCAtNjUyLDEzICs2NTIsNiBAQCBzdGF0aWMgWFNN X0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2h2bV9hCi0gICAgIH0KLSB9Ci0gCi0tc3RhdGljIFhT TV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV92bV9ldmVudF9jb250cm9sKAotLSAgICBYU01fREVG QVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgaW50IG1vZGUsIGludCBvcCkKLS17Ci0tICAgIFhT TV9BU1NFUlRfQUNUSU9OKFhTTV9QUklWKTsKLS0gICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlv bihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7Ci0tfQotLQotICNpZmRlZiBDT05GSUdfVk1f RVZFTlQKLSBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX21lbV9hY2Nlc3MoWFNN X0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQpCi0gewotLS0tIGEveGVuL2luY2x1ZGUveHNt L3hzbS5oCi0rKysgYi94ZW4vaW5jbHVkZS94c20veHNtLmgKLUBAIC0xNTcsOCArMTU3LDYgQEAg c3RydWN0IHhzbV9vcHMgewotICAgICBpbnQgKCpodm1fYWx0cDJtaHZtX29wKShzdHJ1Y3QgZG9t YWluICpkLCB1aW50NjRfdCBtb2RlLCB1aW50MzJfdCBvcCk7Ci0gICAgIGludCAoKmdldF92bnVt YWluZm8pKHN0cnVjdCBkb21haW4gKmQpOwotIAotLSAgICBpbnQgKCp2bV9ldmVudF9jb250cm9s KShzdHJ1Y3QgZG9tYWluICpkLCBpbnQgbW9kZSwgaW50IG9wKTsKLS0KLSAjaWZkZWYgQ09ORklH X1ZNX0VWRU5UCi0gICAgIGludCAoKm1lbV9hY2Nlc3MpKHN0cnVjdCBkb21haW4gKmQpOwotICNl bmRpZgotQEAgLTY1NywxMiArNjU1LDYgQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX2dldF92bnVt YWluZm8oeHNtXwotICAgICByZXR1cm4gYWx0ZXJuYXRpdmVfY2FsbCh4c21fb3BzLmdldF92bnVt YWluZm8sIGQpOwotIH0KLSAKLS1zdGF0aWMgaW5saW5lIGludCB4c21fdm1fZXZlbnRfY29udHJv bCgKLS0gICAgeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQsIGludCBtb2RlLCBp bnQgb3ApCi0tewotLSAgICByZXR1cm4gYWx0ZXJuYXRpdmVfY2FsbCh4c21fb3BzLnZtX2V2ZW50 X2NvbnRyb2wsIGQsIG1vZGUsIG9wKTsKLS19Ci0tCi0gI2lmZGVmIENPTkZJR19WTV9FVkVOVAot IHN0YXRpYyBpbmxpbmUgaW50IHhzbV9tZW1fYWNjZXNzKHhzbV9kZWZhdWx0X3QgZGVmLCBzdHJ1 Y3QgZG9tYWluICpkKQotIHsKLS0tLSBhL3hlbi94c20vZHVtbXkuYwotKysrIGIveGVuL3hzbS9k dW1teS5jCi1AQCAtMTE2LDggKzExNiw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeHNtX29wcyBf X2luaXRjb25zdF8KLSAgICAgLnJlbW92ZV9mcm9tX3BoeXNtYXAgICAgICAgICAgID0geHNtX3Jl bW92ZV9mcm9tX3BoeXNtYXAsCi0gICAgIC5tYXBfZ21mbl9mb3JlaWduICAgICAgICAgICAgICA9 IHhzbV9tYXBfZ21mbl9mb3JlaWduLAotIAotLSAgICAudm1fZXZlbnRfY29udHJvbCAgICAgICAg ICAgICAgPSB4c21fdm1fZXZlbnRfY29udHJvbCwKLS0KLSAjaWZkZWYgQ09ORklHX1ZNX0VWRU5U Ci0gICAgIC5tZW1fYWNjZXNzICAgICAgICAgICAgICAgICAgICA9IHhzbV9tZW1fYWNjZXNzLAot ICNlbmRpZgotLS0tIGEveGVuL3hzbS9mbGFzay9ob29rcy5jCi0rKysgYi94ZW4veHNtL2ZsYXNr L2hvb2tzLmMKLUBAIC02OTksNyArNjk5LDYgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19k b21jdGwoc3RydWN0Ci0gICAgIC8qIFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MgKGNv bW1vbi9kb21jdGwuYykgKi8KLSAgICAgY2FzZSBYRU5fRE9NQ1RMX3NjaGVkdWxlcl9vcDoKLSAg ICAgY2FzZSBYRU5fRE9NQ1RMX3NldF90YXJnZXQ6Ci0tICAgIGNhc2UgWEVOX0RPTUNUTF92bV9l dmVudF9vcDoKLSAKLSAjaWZkZWYgQ09ORklHX1g4NgotICAgICAvKiBUaGVzZSBoYXZlIGluZGl2 aWR1YWwgWFNNIGhvb2tzIChhcmNoL3g4Ni9kb21jdGwuYykgKi8KLUBAIC03OTMsOSArNzkyLDgg QEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0Ci0gICAgICAgICByZXR1 cm4gY3VycmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19ET01BSU4sIERPTUFJTl9fVFJJR0dFUik7 Ci0gCi0gICAgIGNhc2UgWEVOX0RPTUNUTF9zZXRfYWNjZXNzX3JlcXVpcmVkOgotLSAgICAgICAg cmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1NfRE9NQUlOMiwgRE9NQUlOMl9fVk1f RVZFTlQpOwotLQotICAgICBjYXNlIFhFTl9ET01DVExfbW9uaXRvcl9vcDoKLSsgICAgY2FzZSBY RU5fRE9NQ1RMX3ZtX2V2ZW50X29wOgotICAgICAgICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0o ZCwgU0VDQ0xBU1NfRE9NQUlOMiwgRE9NQUlOMl9fVk1fRVZFTlQpOwotIAotICAgICBjYXNlIFhF Tl9ET01DVExfZGVidWdfb3A6Ci1AQCAtMTM2OCwxMSArMTM2Niw2IEBAIHN0YXRpYyBpbnQgY2Zf Y2hlY2sgZmxhc2tfaHZtX2FsdHAybWh2bV8KLSAgICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0o ZCwgU0VDQ0xBU1NfSFZNLCBIVk1fX0FMVFAyTUhWTV9PUCk7Ci0gfQotIAotLXN0YXRpYyBpbnQg Y2ZfY2hlY2sgZmxhc2tfdm1fZXZlbnRfY29udHJvbChzdHJ1Y3QgZG9tYWluICpkLCBpbnQgbW9k ZSwgaW50IG9wKQotLXsKLS0gICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1Nf RE9NQUlOMiwgRE9NQUlOMl9fVk1fRVZFTlQpOwotLX0KLS0KLSAjaWZkZWYgQ09ORklHX1ZNX0VW RU5UCi0gc3RhdGljIGludCBjZl9jaGVjayBmbGFza19tZW1fYWNjZXNzKHN0cnVjdCBkb21haW4g KmQpCi0gewotQEAgLTE5NzEsOCArMTk2NCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeHNtX29w cyBfX2luaXRjb25zdF8KLSAgICAgLmRvX3hzbV9vcCA9IGRvX2ZsYXNrX29wLAotICAgICAuZ2V0 X3ZudW1haW5mbyA9IGZsYXNrX2dldF92bnVtYWluZm8sCi0gCi0tICAgIC52bV9ldmVudF9jb250 cm9sID0gZmxhc2tfdm1fZXZlbnRfY29udHJvbCwKLS0KLSAjaWZkZWYgQ09ORklHX1ZNX0VWRU5U Ci0gICAgIC5tZW1fYWNjZXNzID0gZmxhc2tfbWVtX2FjY2VzcywKLSAjZW5kaWYKCmRpZmYgLS1n aXQgYS94c2E0OTItNC4yMS0xNS5wYXRjaCBiL3hzYTQ5Mi00LjIxLTE1LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzg3ZjNiLi4wMDAwMDAwCi0tLSBhL3hzYTQ5Mi00LjIx LTE1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLUZyb206IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLVN1YmplY3Q6IGRvbWN0bC9YU006IHBhc3MgZnVsbCBz dHJ1Y3QgeGVuX2RvbWN0bCB0byB4c21fZG9tY3RsKCkKLQotU3Vic2VxdWVudGx5IHNvbWUgc3Vi LW9wcyB3aWxsIHdhbnQgdG8gaW5zcGVjdCB0aGVpciBzdWItc3ViLW9wcy4gUGx1cwotdGhpcyB3 YXkgd2UgZG9uJ3QgbmVlZCB0byBwYXNzIFNTSURyZWYgc2VwYXJhdGVseSBhbnltb3JlIGZvcgot ZG9tYWluX2NyZWF0ZS4KLQotVGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIuCi0KLVNpZ25lZC1vZmYt Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLUFja2VkLWJ5OiBEYW5pZWwgUC4g U21pdGggPGRwc21pdGhAYXBlcnR1c3NvbHV0aW9ucy5jb20+Ci0KLS0tLSBhL3hlbi9hcmNoL3g4 Ni9tbS9wYWdpbmcuYwotKysrIGIveGVuL2FyY2gveDg2L21tL3BhZ2luZy5jCi1AQCAtNzM1LDcg KzczNSw3IEBAIGxvbmcgZG9fcGFnaW5nX2RvbWN0bF9jb250KAotICAgICBpZiAoIGQgPT0gTlVM TCApCi0gICAgICAgICByZXR1cm4gLUVTUkNIOwotIAotLSAgICByZXQgPSB4c21fZG9tY3RsKFhT TV9PVEhFUiwgZCwgb3AuY21kLCAwIC8qIFNTSURyZWYgbm90IGFwcGxpY2FibGUgKi8pOwotKyAg ICByZXQgPSB4c21fZG9tY3RsKFhTTV9PVEhFUiwgZCwgJm9wKTsKLSAgICAgaWYgKCAhcmV0ICkK LSAgICAgewotICAgICAgICAgaWYgKCBkb21jdGxfbG9ja19hY3F1aXJlKCkgKQotLS0tIGEveGVu L2NvbW1vbi9kb21jdGwuYwotKysrIGIveGVuL2NvbW1vbi9kb21jdGwuYwotQEAgLTUyNiw5ICs1 MjYsNyBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCi0gICAgICAg ICBicmVhazsKLSAgICAgfQotIAotLSAgICByZXQgPSB4c21fZG9tY3RsKFhTTV9PVEhFUiwgZCwg b3AtPmNtZCwKLS0gICAgICAgICAgICAgICAgICAgICAvKiBTU0lEUmVmIG9ubHkgYXBwbGljYWJs ZSBmb3IgY21kID09IGNyZWF0ZWRvbWFpbiAqLwotLSAgICAgICAgICAgICAgICAgICAgIG9wLT51 LmNyZWF0ZWRvbWFpbi5zc2lkcmVmKTsKLSsgICAgcmV0ID0geHNtX2RvbWN0bChYU01fT1RIRVIs IGQsIG9wKTsKLSAgICAgaWYgKCByZXQgKQotICAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9j a19kb21vbmx5OwotIAotLS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKLSsrKyBiL3hlbi9p bmNsdWRlL3hzbS9kdW1teS5oCi1AQCAtMTYyLDEwICsxNjIsMTAgQEAgc3RhdGljIFhTTV9JTkxJ TkUgaW50IGNmX2NoZWNrIHhzbV9zZXRfdAotIH0KLSAKLSBzdGF0aWMgWFNNX0lOTElORSBpbnQg Y2ZfY2hlY2sgeHNtX2RvbWN0bCgKLS0gICAgWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4g KmQsIHVuc2lnbmVkIGludCBjbWQsIHVpbnQzMl90IHNzaWRyZWYpCi0rICAgIFhTTV9ERUZBVUxU X0FSRyBzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2RvbWN0bCAqb3ApCi0gewotICAgICBY U01fQVNTRVJUX0FDVElPTihYU01fT1RIRVIpOwotLSAgICBzd2l0Y2ggKCBjbWQgKQotKyAgICBz d2l0Y2ggKCBvcC0+Y21kICkKLSAgICAgewotICAgICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9p cnE6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgotLS0tIGEveGVuL2luY2x1 ZGUveHNtL3hzbS5oCi0rKysgYi94ZW4vaW5jbHVkZS94c20veHNtLmgKLUBAIC02MSw3ICs2MSw3 IEBAIHN0cnVjdCB4c21fb3BzIHsKLSAgICAgaW50ICgqc3lzY3RsX3NjaGVkdWxlcl9vcCkoaW50 IG9wKTsKLSAjZW5kaWYKLSAgICAgaW50ICgqc2V0X3RhcmdldCkoc3RydWN0IGRvbWFpbiAqZCwg c3RydWN0IGRvbWFpbiAqZSk7Ci0tICAgIGludCAoKmRvbWN0bCkoc3RydWN0IGRvbWFpbiAqZCwg dW5zaWduZWQgaW50IGNtZCwgdWludDMyX3Qgc3NpZHJlZik7Ci0rICAgIGludCAoKmRvbWN0bCko c3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9kb21jdGwgKm9wKTsKLSAgICAgaW50ICgqc3lz Y3RsKShpbnQgY21kKTsKLSAgICAgaW50ICgqcmVhZGNvbnNvbGUpKHVpbnQzMl90IGNsZWFyKTsK LSAKLUBAIC0yNjAsOSArMjYwLDkgQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX3NldF90YXJnZXQo Ci0gfQotIAotIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9kb21jdGwoeHNtX2RlZmF1bHRfdCBkZWYs IHN0cnVjdCBkb21haW4gKmQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgY21kLCB1aW50MzJfdCBzc2lkcmVmKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHhlbl9kb21jdGwgKm9wKQotIHsKLS0gICAgcmV0dXJuIGFsdGVybmF0aXZlX2Nh bGwoeHNtX29wcy5kb21jdGwsIGQsIGNtZCwgc3NpZHJlZik7Ci0rICAgIHJldHVybiBhbHRlcm5h dGl2ZV9jYWxsKHhzbV9vcHMuZG9tY3RsLCBkLCBvcCk7Ci0gfQotIAotIHN0YXRpYyBpbmxpbmUg aW50IHhzbV9zeXNjdGwoeHNtX2RlZmF1bHRfdCBkZWYsIGludCBjbWQpCi0tLS0gYS94ZW4veHNt L2ZsYXNrL2hvb2tzLmMKLSsrKyBiL3hlbi94c20vZmxhc2svaG9va3MuYwotQEAgLTY2NywxMCAr NjY3LDkgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19zZXRfdGFyZ2V0KHN0cgotICAgICBy ZXR1cm4gcmM7Ci0gfQotIAotLXN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVj dCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBjbWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDMyX3Qgc3NpZHJlZikKLStzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2Rv bWN0bChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2RvbWN0bCAqb3ApCi0gewotLSAgICBz d2l0Y2ggKCBjbWQgKQotKyAgICBzd2l0Y2ggKCBvcC0+Y21kICkKLSAgICAgewotICAgICBjYXNl IFhFTl9ET01DVExfY3JlYXRlZG9tYWluOgotICAgICAgICAgLyoKLUBAIC02ODAsNyArNjc5LDgg QEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0Ci0gICAgICAgICAgKiBO b3RlIHRoYXQgZCBpcyBOVUxMIGJlY2F1c2Ugd2UgaGF2ZW4ndCBldmVuIGFsbG9jYXRlZCBtZW1v cnkgZm9yIGl0Ci0gICAgICAgICAgKiB0aGlzIGVhcmx5IGluIFhFTl9ET01DVExfY3JlYXRlZG9t YWluLgotICAgICAgICAgICovCi0tICAgICAgICByZXR1cm4gYXZjX2N1cnJlbnRfaGFzX3Blcm0o c3NpZHJlZiwgU0VDQ0xBU1NfRE9NQUlOLCBET01BSU5fX0NSRUFURSwgTlVMTCk7Ci0rICAgICAg ICByZXR1cm4gYXZjX2N1cnJlbnRfaGFzX3Blcm0ob3AtPnUuY3JlYXRlZG9tYWluLnNzaWRyZWYs IFNFQ0NMQVNTX0RPTUFJTiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE T01BSU5fX0NSRUFURSwgTlVMTCk7Ci0gCi0gICAgIC8qIFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBY U00gaG9va3MgYW5kIGRvbid0IG1ha2UgaXQgaGVyZS4gKi8KLSAgICAgY2FzZSBYRU5fRE9NQ1RM X2JpbmRfcHRfaXJxOgotQEAgLTg1NSw3ICs4NTUsNyBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGZs YXNrX2RvbWN0bChzdHJ1Y3QKLSAgICAgICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNF Q0NMQVNTX0RPTUFJTjIsIERPTUFJTjJfX1NFVF9MTENfQ09MT1JTKTsKLSAKLSAgICAgZGVmYXVs dDoKLS0gICAgICAgIHJldHVybiBhdmNfdW5rbm93bl9wZXJtaXNzaW9uKCJkb21jdGwiLCBjbWQp OwotKyAgICAgICAgcmV0dXJuIGF2Y191bmtub3duX3Blcm1pc3Npb24oImRvbWN0bCIsIG9wLT5j bWQpOwotICAgICB9Ci0gfQotIAoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00LjIxLTE2LnBhdGNoIGIv eHNhNDkyLTQuMjEtMTYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjYjg2 MTkuLjAwMDAwMDAKLS0tIGEveHNhNDkyLTQuMjEtMTYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwxMTIgKzAsMCBAQAotRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotU3Vi amVjdDogZG9tY3RsL1hTTTogZHJvcCBzY2hlZHVsZXJfb3AgaG9vawotCi1JbnRlZ3JhdGUgdGhl IGNoZWNraW5nIHdpdGggeHNtX2RvbWN0bCgpLCBub3cgdGhhdCBpdCBoYXMgdGhlIGZ1bGwgb3AK LXN0cnVjdCBwYXNzZWQuIEFzIGEgcG9zaXRpdmUgc2lkZSBlZmZlY3QsIHBlcm1pc3Npb25zIGFy ZSB0aGVuIGNoZWNrZWQgYXQKLXRoZSBzYW1lIGVhcmx5IHBvaW50IHdpdGggYW5kIHdpdGhvdXQg Rmxhc2suCi0KLVRoaXMgaXMgcGFydCBvZiBYU0EtNDkyLgotCi1TaWduZWQtb2ZmLWJ5OiBKYW4g QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci1BY2tlZC1ieTogRGFuaWVsIFAuIFNtaXRoIDxk cHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgotUmV2aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jvc3Mg PGpncm9zc0BzdXNlLmNvbT4KLQotLS0tIGEveGVuL2NvbW1vbi9zY2hlZC9jb3JlLmMKLSsrKyBi L3hlbi9jb21tb24vc2NoZWQvY29yZS5jCi1AQCAtMjA3NCwxMCArMjA3NCw2IEBAIGxvbmcgc2No ZWRfYWRqdXN0KHN0cnVjdCBkb21haW4gKmQsIHN0cnUKLSB7Ci0gICAgIGxvbmcgcmV0OwotIAot LSAgICByZXQgPSB4c21fZG9tY3RsX3NjaGVkdWxlcl9vcChYU01fSE9PSywgZCwgb3AtPmNtZCk7 Ci0tICAgIGlmICggcmV0ICkKLS0gICAgICAgIHJldHVybiByZXQ7Ci0tCi0gICAgIGlmICggb3At PnNjaGVkX2lkICE9IGRvbV9zY2hlZHVsZXIoZCktPnNjaGVkX2lkICkKLSAgICAgICAgIHJldHVy biAtRUlOVkFMOwotIAotLS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKLSsrKyBiL3hlbi9p bmNsdWRlL3hzbS9kdW1teS5oCi1AQCAtMTQxLDEzICsxNDEsNiBAQCBzdGF0aWMgWFNNX0lOTElO RSBpbnQgY2ZfY2hlY2sgeHNtX2dldGRvCi0gICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24o YWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOwotIH0KLSAKLS1zdGF0aWMgWFNNX0lOTElORSBp bnQgY2ZfY2hlY2sgeHNtX2RvbWN0bF9zY2hlZHVsZXJfb3AoCi0tICAgIFhTTV9ERUZBVUxUX0FS RyBzdHJ1Y3QgZG9tYWluICpkLCBpbnQgY21kKQotLXsKLS0gICAgWFNNX0FTU0VSVF9BQ1RJT04o WFNNX0hPT0spOwotLSAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVu dC0+ZG9tYWluLCBkKTsKLS19Ci0tCi0gc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhz bV9zeXNjdGxfc2NoZWR1bGVyX29wKFhTTV9ERUZBVUxUX0FSRyBpbnQgY21kKQotIHsKLSAgICAg WFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOwotLS0tIGEveGVuL2luY2x1ZGUveHNtL3hzbS5o Ci0rKysgYi94ZW4vaW5jbHVkZS94c20veHNtLmgKLUBAIC01Niw3ICs1Niw2IEBAIHN0cnVjdCB4 c21fb3BzIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4ZW5fZG9t Y3RsX2dldGRvbWFpbmluZm8gKmluZm8pOwotICAgICBpbnQgKCpkb21haW5fY3JlYXRlKShzdHJ1 Y3QgZG9tYWluICpkLCB1aW50MzJfdCBzc2lkcmVmKTsKLSAgICAgaW50ICgqZ2V0ZG9tYWluaW5m bykoc3RydWN0IGRvbWFpbiAqZCk7Ci0tICAgIGludCAoKmRvbWN0bF9zY2hlZHVsZXJfb3ApKHN0 cnVjdCBkb21haW4gKmQsIGludCBvcCk7Ci0gI2lmZGVmIENPTkZJR19TWVNDVEwKLSAgICAgaW50 ICgqc3lzY3RsX3NjaGVkdWxlcl9vcCkoaW50IG9wKTsKLSAjZW5kaWYKLUBAIC0yNDAsMTIgKzIz OSw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9nZXRfZG9tYWluX3N0YXRlKHgKLSAgICAgcmV0 dXJuIGFsdGVybmF0aXZlX2NhbGwoeHNtX29wcy5nZXRfZG9tYWluX3N0YXRlLCBkKTsKLSB9Ci0g Ci0tc3RhdGljIGlubGluZSBpbnQgeHNtX2RvbWN0bF9zY2hlZHVsZXJfb3AoCi0tICAgIHhzbV9k ZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkLCBpbnQgY21kKQotLXsKLS0gICAgcmV0dXJu IGFsdGVybmF0aXZlX2NhbGwoeHNtX29wcy5kb21jdGxfc2NoZWR1bGVyX29wLCBkLCBjbWQpOwot LX0KLS0KLSAjaWZkZWYgQ09ORklHX1NZU0NUTAotIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9zeXNj dGxfc2NoZWR1bGVyX29wKHhzbV9kZWZhdWx0X3QgZGVmLCBpbnQgY21kKQotIHsKLS0tLSBhL3hl bi94c20vZHVtbXkuYwotKysrIGIveGVuL3hzbS9kdW1teS5jCi1AQCAtMTgsNyArMTgsNiBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHhzbV9vcHMgX19pbml0Y29uc3RfCi0gICAgIC5zZWN1cml0eV9k b21haW5pbmZvICAgICAgICAgICA9IHhzbV9zZWN1cml0eV9kb21haW5pbmZvLAotICAgICAuZG9t YWluX2NyZWF0ZSAgICAgICAgICAgICAgICAgPSB4c21fZG9tYWluX2NyZWF0ZSwKLSAgICAgLmdl dGRvbWFpbmluZm8gICAgICAgICAgICAgICAgID0geHNtX2dldGRvbWFpbmluZm8sCi0tICAgIC5k b21jdGxfc2NoZWR1bGVyX29wICAgICAgICAgICA9IHhzbV9kb21jdGxfc2NoZWR1bGVyX29wLAot ICNpZmRlZiBDT05GSUdfU1lTQ1RMCi0gICAgIC5zeXNjdGxfc2NoZWR1bGVyX29wICAgICAgICAg ICA9IHhzbV9zeXNjdGxfc2NoZWR1bGVyX29wLAotICNlbmRpZgotLS0tIGEveGVuL3hzbS9mbGFz ay9ob29rcy5jCi0rKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKLUBAIC02MDksNyArNjA5LDcg QEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19nZXRkb21haW5pbmZvKAotICAgICByZXR1cm4g Y3VycmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19ET01BSU4sIERPTUFJTl9fR0VURE9NQUlOSU5G Tyk7Ci0gfQotIAotLXN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsX3NjaGVkdWxlcl9v cChzdHJ1Y3QgZG9tYWluICpkLCBpbnQgb3ApCi0rc3RhdGljIGludCBmbGFza19kb21jdGxfc2No ZWR1bGVyX29wKHN0cnVjdCBkb21haW4gKmQsIGludCBvcCkKLSB7Ci0gICAgIHN3aXRjaCAoIG9w ICkKLSAgICAgewotQEAgLTY5Nyw3ICs2OTcsNiBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNr X2RvbWN0bChzdHJ1Y3QKLSAgICAgICAgIHJldHVybiAtRUlMU0VROwotIAotICAgICAvKiBUaGVz ZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIChjb21tb24vZG9tY3RsLmMpICovCi0tICAgIGNh c2UgWEVOX0RPTUNUTF9zY2hlZHVsZXJfb3A6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9zZXRfdGFy Z2V0OgotIAotICNpZmRlZiBDT05GSUdfWDg2Ci1AQCAtNzQ1LDYgKzc0NCw5IEBAIHN0YXRpYyBp bnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAotICAgICBjYXNlIFhFTl9ET01DVExfc2V0 ZG9tYWluaGFuZGxlOgotICAgICAgICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xB U1NfRE9NQUlOLCBET01BSU5fX1NFVERPTUFJTkhBTkRMRSk7Ci0gCi0rICAgIGNhc2UgWEVOX0RP TUNUTF9zY2hlZHVsZXJfb3A6Ci0rICAgICAgICByZXR1cm4gZmxhc2tfZG9tY3RsX3NjaGVkdWxl cl9vcChkLCBvcC0+dS5zY2hlZHVsZXJfb3AuY21kKTsKLSsKLSAgICAgY2FzZSBYRU5fRE9NQ1RM X3NldF9leHRfdmNwdWNvbnRleHQ6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9zZXRfdmNwdV9tc3Jz OgotICAgICBjYXNlIFhFTl9ET01DVExfc2V0dmNwdWNvbnRleHQ6Ci1AQCAtMTg4NCw3ICsxODg2 LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB4c21fb3BzIF9faW5pdGNvbnN0XwotICAgICAuc2Vj dXJpdHlfZG9tYWluaW5mbyA9IGZsYXNrX3NlY3VyaXR5X2RvbWFpbmluZm8sCi0gICAgIC5kb21h aW5fY3JlYXRlID0gZmxhc2tfZG9tYWluX2NyZWF0ZSwKLSAgICAgLmdldGRvbWFpbmluZm8gPSBm bGFza19nZXRkb21haW5pbmZvLAotLSAgICAuZG9tY3RsX3NjaGVkdWxlcl9vcCA9IGZsYXNrX2Rv bWN0bF9zY2hlZHVsZXJfb3AsCi0gI2lmZGVmIENPTkZJR19TWVNDVEwKLSAgICAgLnN5c2N0bF9z Y2hlZHVsZXJfb3AgPSBmbGFza19zeXNjdGxfc2NoZWR1bGVyX29wLAotICNlbmRpZgoKZGlmZiAt LWdpdCBhL3hzYTQ5Mi00LjIxLTE3LnBhdGNoIGIveHNhNDkyLTQuMjEtMTcucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5NTQyZGYuLjAwMDAwMDAKLS0tIGEveHNhNDkyLTQu MjEtMTcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBAQAotRnJvbTogSmFuIEJl dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotU3ViamVjdDogZG9tY3RsL1hTTTogZHJvcCBzaGFk b3dfY29udHJvbF9vcCBob29rCi0KLUludGVncmF0ZSB0aGUgY2hlY2tpbmcgd2l0aCB4c21fZG9t Y3RsKCksIG5vdyB0aGF0IGl0IGhhcyB0aGUgZnVsbCBvcAotc3RydWN0IHBhc3NlZC4gQXMgYSBw b3NpdGl2ZSBzaWRlIGVmZmVjdCwgcGVybWlzc2lvbnMgYXJlIHRoZW4gY2hlY2tlZCBhdAotdGhl IHNhbWUgZWFybHkgcG9pbnQgd2l0aCBhbmQgd2l0aG91dCBGbGFzay4KLQotVGhpcyBpcyBwYXJ0 IG9mIFhTQS00OTIuCi0KLVNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl LmNvbT4KLUFja2VkLWJ5OiBEYW5pZWwgUC4gU21pdGggPGRwc21pdGhAYXBlcnR1c3NvbHV0aW9u cy5jb20+Ci0KLS0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wYWdpbmcuYwotKysrIGIveGVuL2FyY2gv eDg2L21tL3BhZ2luZy5jCi1AQCAtNjc3LDEwICs2NzcsNiBAQCBpbnQgcGFnaW5nX2RvbWN0bChz dHJ1Y3QgZG9tYWluICpkLCBzdHJ1Ci0gICAgICAgICByZXR1cm4gLUVCVVNZOwotICAgICB9Ci0g Ci0tICAgIHJjID0geHNtX3NoYWRvd19jb250cm9sKFhTTV9IT09LLCBkLCBzYy0+b3ApOwotLSAg ICBpZiAoIHJjICkKLS0gICAgICAgIHJldHVybiByYzsKLS0KLSAgICAgLyogQ29kZSB0byBoYW5k bGUgbG9nLWRpcnR5LiBOb3RlIHRoYXQgc29tZSBsb2cgZGlydHkgb3BlcmF0aW9ucwotICAgICAg KiBwaWdneS1iYWNrIG9uIHNoYWRvdyBvcGVyYXRpb25zLiBGb3IgZXhhbXBsZSwgd2hlbgotICAg ICAgKiBYRU5fRE9NQ1RMX1NIQURPV19PUF9PRkYgaXMgY2FsbGVkLCBpdCBmaXJzdCBjaGVja3Mg d2hldGhlciBsb2cgZGlydHkKLS0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCi0rKysgYi94 ZW4vaW5jbHVkZS94c20vZHVtbXkuaAotQEAgLTY4MiwxMyArNjgyLDYgQEAgc3RhdGljIFhTTV9J TkxJTkUgaW50IGNmX2NoZWNrIHhzbV9kb19tYwotICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0 aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBOVUxMKTsKLSB9Ci0gCi0tc3RhdGljIFhTTV9J TkxJTkUgaW50IGNmX2NoZWNrIHhzbV9zaGFkb3dfY29udHJvbCgKLS0gICAgWFNNX0RFRkFVTFRf QVJHIHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IG9wKQotLXsKLS0gICAgWFNNX0FTU0VSVF9B Q1RJT04oWFNNX0hPT0spOwotLSAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwg Y3VycmVudC0+ZG9tYWluLCBkKTsKLS19Ci0tCi0gc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2No ZWNrIHhzbV9tZW1fc2hhcmluZ19vcCgKLSAgICAgWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21h aW4gKmQsIHN0cnVjdCBkb21haW4gKmNkLCBpbnQgb3ApCi0gewotLS0tIGEveGVuL2luY2x1ZGUv eHNtL3hzbS5oCi0rKysgYi94ZW4vaW5jbHVkZS94c20veHNtLmgKLUBAIC0xNzIsNyArMTcyLDYg QEAgc3RydWN0IHhzbV9vcHMgewotIAotICNpZmRlZiBDT05GSUdfWDg2Ci0gICAgIGludCAoKmRv X21jYSkodm9pZCk7Ci0tICAgIGludCAoKnNoYWRvd19jb250cm9sKShzdHJ1Y3QgZG9tYWluICpk LCB1aW50MzJfdCBvcCk7Ci0gICAgIGludCAoKm1lbV9zaGFyaW5nX29wKShzdHJ1Y3QgZG9tYWlu ICpkLCBzdHJ1Y3QgZG9tYWluICpjZCwgaW50IG9wKTsKLSAgICAgaW50ICgqYXBpYykoc3RydWN0 IGRvbWFpbiAqZCwgaW50IGNtZCk7Ci0gICAgIGludCAoKm1hY2hpbmVfbWVtb3J5X21hcCkodm9p ZCk7Ci1AQCAtNjgwLDEyICs2NzksNiBAQCBzdGF0aWMgaW5saW5lIGludCB4c21fZG9fbWNhKHhz bV9kZWZhdWx0Ci0gICAgIHJldHVybiBhbHRlcm5hdGl2ZV9jYWxsKHhzbV9vcHMuZG9fbWNhKTsK LSB9Ci0gCi0tc3RhdGljIGlubGluZSBpbnQgeHNtX3NoYWRvd19jb250cm9sKAotLSAgICB4c21f ZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3Qgb3ApCi0tewotLSAgICBy ZXR1cm4gYWx0ZXJuYXRpdmVfY2FsbCh4c21fb3BzLnNoYWRvd19jb250cm9sLCBkLCBvcCk7Ci0t fQotLQotIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9tZW1fc2hhcmluZ19vcCgKLSAgICAgeHNtX2Rl ZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkb21haW4gKmNkLCBpbnQgb3Ap Ci0gewotLS0tIGEveGVuL3hzbS9kdW1teS5jCi0rKysgYi94ZW4veHNtL2R1bW15LmMKLUBAIC0x MzAsNyArMTMwLDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB4c21fb3BzIF9faW5pdGNvbnN0Xwot ICAgICAucGxhdGZvcm1fb3AgICAgICAgICAgICAgICAgICAgPSB4c21fcGxhdGZvcm1fb3AsCi0g I2lmZGVmIENPTkZJR19YODYKLSAgICAgLmRvX21jYSAgICAgICAgICAgICAgICAgICAgICAgID0g eHNtX2RvX21jYSwKLS0gICAgLnNoYWRvd19jb250cm9sICAgICAgICAgICAgICAgID0geHNtX3No YWRvd19jb250cm9sLAotICAgICAubWVtX3NoYXJpbmdfb3AgICAgICAgICAgICAgICAgPSB4c21f bWVtX3NoYXJpbmdfb3AsCi0gICAgIC5hcGljICAgICAgICAgICAgICAgICAgICAgICAgICA9IHhz bV9hcGljLAotICAgICAubWFjaGluZV9tZW1vcnlfbWFwICAgICAgICAgICAgPSB4c21fbWFjaGlu ZV9tZW1vcnlfbWFwLAotLS0tIGEveGVuL3hzbS9mbGFzay9ob29rcy5jCi0rKysgYi94ZW4veHNt L2ZsYXNrL2hvb2tzLmMKLUBAIC00MCw2ICs0MCw3IEBACi0gCi0gI2lmZGVmIENPTkZJR19YODYK LSAjaW5jbHVkZSA8YXNtL3B2L3NoaW0uaD4KLStzdGF0aWMgaW50IGZsYXNrX3NoYWRvd19jb250 cm9sKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBvcCk7Ci0gI2Vsc2UKLSAjZGVmaW5l IHB2X3NoaW0gZmFsc2UKLSAjZW5kaWYKLUBAIC02OTksMTAgKzcwMCw2IEBAIHN0YXRpYyBpbnQg Y2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAotICAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1 YWwgWFNNIGhvb2tzIChjb21tb24vZG9tY3RsLmMpICovCi0gICAgIGNhc2UgWEVOX0RPTUNUTF9z ZXRfdGFyZ2V0OgotIAotLSNpZmRlZiBDT05GSUdfWDg2Ci0tICAgIC8qIFRoZXNlIGhhdmUgaW5k aXZpZHVhbCBYU00gaG9va3MgKGFyY2gveDg2L2RvbWN0bC5jKSAqLwotLSAgICBjYXNlIFhFTl9E T01DVExfc2hhZG93X29wOgotLSNlbmRpZgotICNpZmRlZiBDT05GSUdfSEFTX1BBU1NUSFJPVUdI Ci0gICAgIC8qCi0gICAgICAqIFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MKLUBAIC03 ODcsNiArNzg0LDExIEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAot ICAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2FkZHJlc3Nfc2l6ZToKLSAgICAgICAgIHJldHVybiBj dXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0RPTUFJTiwgRE9NQUlOX19HRVRBRERSU0laRSk7 Ci0gCi0rI2lmZGVmIENPTkZJR19YODYKLSsgICAgY2FzZSBYRU5fRE9NQ1RMX3NoYWRvd19vcDoK LSsgICAgICAgIHJldHVybiBmbGFza19zaGFkb3dfY29udHJvbChkLCBvcC0+dS5zaGFkb3dfb3Au b3ApOwotKyNlbmRpZgotKwotICAgICBjYXNlIFhFTl9ET01DVExfbWVtX3NoYXJpbmdfb3A6Ci0g ICAgICAgICByZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19IVk0sIEhWTV9fTUVN X1NIQVJJTkcpOwotIAotQEAgLTE2MDMsNyArMTYwNSw3IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sg Zmxhc2tfZG9fbWNhKHZvaWQpCi0gICAgIHJldHVybiBkb21haW5faGFzX3hlbihjdXJyZW50LT5k b21haW4sIFhFTl9fTUNBX09QKTsKLSB9Ci0gCi0tc3RhdGljIGludCBjZl9jaGVjayBmbGFza19z aGFkb3dfY29udHJvbChzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBvcCkKLStzdGF0aWMgaW50 IGZsYXNrX3NoYWRvd19jb250cm9sKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBvcCkK LSB7Ci0gICAgIHVpbnQzMl90IHBlcm07Ci0gCi1AQCAtMTk5OSw3ICsyMDAxLDYgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCB4c21fb3BzIF9faW5pdGNvbnN0XwotICAgICAucGxhdGZvcm1fb3AgPSBm bGFza19wbGF0Zm9ybV9vcCwKLSAjaWZkZWYgQ09ORklHX1g4NgotICAgICAuZG9fbWNhID0gZmxh c2tfZG9fbWNhLAotLSAgICAuc2hhZG93X2NvbnRyb2wgPSBmbGFza19zaGFkb3dfY29udHJvbCwK LSAgICAgLm1lbV9zaGFyaW5nX29wID0gZmxhc2tfbWVtX3NoYXJpbmdfb3AsCi0gICAgIC5hcGlj ID0gZmxhc2tfYXBpYywKLSAgICAgLm1hY2hpbmVfbWVtb3J5X21hcCA9IGZsYXNrX21hY2hpbmVf bWVtb3J5X21hcCwKCmRpZmYgLS1naXQgYS94c2E0OTItNC4yMS0xOC5wYXRjaCBiL3hzYTQ5Mi00 LjIxLTE4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZDgyMTI0Li4wMDAw MDAwCi0tLSBhL3hzYTQ5Mi00LjIxLTE4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAs MCBAQAotRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotU3ViamVjdDogZG9t Y3RsOiBoYW5kbGUgWEVOX0RPTUNUTF9nZXRfZGV2aWNlX2dyb3VwIHdpdGhvdXQgYWNxdWlyaW5n IGRvbWN0bCBsb2NrCi0KLWlvbW11X2dldF9kZXZpY2VfZ3JvdXAoKSB1c2VzIGl0cyBvd24gbG9j a2luZy4gVGh1cywgd2l0aCBjYWxsZXIgc2lkZQotbG9ja2luZyBpcnJlbGV2YW50LCBpdCBjYW4g YXMgd2VsbCBiZSBjYWxsZWQgd2l0aCB0aGUgZG9tY3RsIGxvY2sgbm90Ci1oZWxkLgotCi1Nb3Zl IHRoZSBoYW5kbGluZyBub3Qgb25seSBhaGVhZCBvZiBhY3F1aXJpbmcgdGhlIGxvY2ssIGJ1dCBh bHNvIGFoZWFkCi1vZiB0aGUgWFNNIGNoZWNrLCBsZXZlcmFnaW5nIHRoYXQgdGhlIHN1Yi1vcCBo YXMgaXRzIG93biBob29rLgotCi1UaGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4KLQotU2lnbmVkLW9m Zi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotQWNrZWQtYnk6IERhbmllbCBQ LiBTbWl0aCA8ZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbT4KLVJldmlld2VkLWJ5OiBSb2dl ciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KLQotLS0tIGEveGVuL2NvbW1vbi9k b21jdGwuYwotKysrIGIveGVuL2NvbW1vbi9kb21jdGwuYwotQEAgLTUxMyw2ICs1MTMsMTAgQEAg bG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQotICAgICAgICAgLyogT3Ro ZXIgc3ViLW9wcyBoYW5kbGVkIGZ1cnRoZXIgZG93bi4gKi8KLSAgICAgICAgIGJyZWFrOwotIAot KyAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2RldmljZV9ncm91cDoKLSsgICAgICAgIHJldCA9IGlv bW11X2RvX2RvbWN0bChvcCwgZCwgdV9kb21jdGwpOwotKyAgICAgICAgZ290byBkb21jdGxfb3V0 X3VubG9ja19kb21vbmx5OwotKwotICAgICBjYXNlIFhFTl9ET01DVExfaW9wb3J0X3Blcm1pc3Np b246Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZzoKLSAgICAgY2FzZSBYRU5f RE9NQ1RMX2dzaV9wZXJtaXNzaW9uOgotQEAgLTkxOCw3ICs5MjIsNiBAQCBsb25nIGRvX2RvbWN0 bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCi0gICAgIGNhc2UgWEVOX0RPTUNUTF9hc3NpZ25f ZGV2aWNlOgotICAgICBjYXNlIFhFTl9ET01DVExfdGVzdF9hc3NpZ25fZGV2aWNlOgotICAgICBj YXNlIFhFTl9ET01DVExfZGVhc3NpZ25fZGV2aWNlOgotLSAgICBjYXNlIFhFTl9ET01DVExfZ2V0 X2RldmljZV9ncm91cDoKLSAgICAgICAgIHJldCA9IGlvbW11X2RvX2RvbWN0bChvcCwgZCwgdV9k b21jdGwpOwotICAgICAgICAgYnJlYWs7Ci0gCi0tLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9wY2kuYwotKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKLUBAIC0xNjIwLDcg KzE2MjAsNyBAQCBzdGF0aWMgaW50IGlvbW11X2dldF9kZXZpY2VfZ3JvdXAoCi0gICAgICAgICBp ZiAoIChwZGV2LT5zZWcgIT0gc2VnKSB8fCAoKGIgPT0gYnVzKSAmJiAoZGYgPT0gZGV2Zm4pKSAp Ci0gICAgICAgICAgICAgY29udGludWU7Ci0gCi0tICAgICAgICBpZiAoIHhzbV9nZXRfZGV2aWNl X2dyb3VwKFhTTV9IT09LLCAoc2VnIDw8IDE2KSB8IChiIDw8IDgpIHwgZGYpICkKLSsgICAgICAg IGlmICggeHNtX2dldF9kZXZpY2VfZ3JvdXAoWFNNX1BSSVYsIChzZWcgPDwgMTYpIHwgKGIgPDwg OCkgfCBkZikgKQotICAgICAgICAgICAgIGNvbnRpbnVlOwotIAotICAgICAgICAgc2Rldl9pZCA9 IGlvbW11X2NhbGwob3BzLCBnZXRfZGV2aWNlX2dyb3VwX2lkLCBzZWcsIGIsIGRmKTsKLUBAIC0x NjkwLDcgKzE2OTAsNyBAQCBpbnQgaW9tbXVfZG9fcGNpX2RvbWN0bCgKLSAgICAgICAgIHUzMiBt YXhfc2RldnM7Ci0gICAgICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQzMikgc2RldnM7Ci0g Ci0tICAgICAgICByZXQgPSB4c21fZ2V0X2RldmljZV9ncm91cChYU01fSE9PSywgZG9tY3RsLT51 LmdldF9kZXZpY2VfZ3JvdXAubWFjaGluZV9zYmRmKTsKLSsgICAgICAgIHJldCA9IHhzbV9nZXRf ZGV2aWNlX2dyb3VwKFhTTV9QUklWLCBkb21jdGwtPnUuZ2V0X2RldmljZV9ncm91cC5tYWNoaW5l X3NiZGYpOwotICAgICAgICAgaWYgKCByZXQgKQotICAgICAgICAgICAgIGJyZWFrOwotIAotLS0t IGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKLSsrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5o Ci1AQCAtMTYyLDYgKzE2Miw3IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21f ZG9tY3QKLSAgICAgewotICAgICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9pcnE6Ci0gICAgIGNh c2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgotKyAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2Rl dmljZV9ncm91cDoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3RhdGU6Ci0gICAg IGNhc2UgWEVOX0RPTUNUTF9nc2lfcGVybWlzc2lvbjoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2lv bWVtX3Blcm1pc3Npb246Ci1AQCAtNDAxLDcgKzQwMiw3IEBAIHN0YXRpYyBYU01fSU5MSU5FIGlu dCBjZl9jaGVjayB4c21fZ2V0X3YKLSBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNt X2dldF9kZXZpY2VfZ3JvdXAoCi0gICAgIFhTTV9ERUZBVUxUX0FSRyB1aW50MzJfdCBtYWNoaW5l X2JkZikKLSB7Ci0tICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9IT09LKTsKLSsgICAgWFNNX0FT U0VSVF9BQ1RJT04oWFNNX1BSSVYpOwotICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFj dGlvbiwgY3VycmVudC0+ZG9tYWluLCBOVUxMKTsKLSB9Ci0gCi0tLS0gYS94ZW4veHNtL2ZsYXNr L2hvb2tzLmMKLSsrKyBiL3hlbi94c20vZmxhc2svaG9va3MuYwotQEAgLTY4Niw2ICs2ODYsNyBA QCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RvbWN0bChzdHJ1Y3QKLSAgICAgLyogVGhlc2Ug aGF2ZSBpbmRpdmlkdWFsIFhTTSBob29rcyBhbmQgZG9uJ3QgbWFrZSBpdCBoZXJlLiAqLwotICAg ICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9pcnE6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRk b21haW5pbmZvOgotKyAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2RldmljZV9ncm91cDoKLSAgICAg Y2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3RhdGU6Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9n c2lfcGVybWlzc2lvbjoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvbWVtX3Blcm1pc3Npb246Ci1A QCAtNzA1LDcgKzcwNiw2IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVj dAotICAgICAgKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzCi0gICAgICAqIChkcml2 ZXJzL3Bhc3N0aHJvdWdoL3twY2ksZGV2aWNlX3RyZWUuYykKLSAgICAgICovCi0tICAgIGNhc2Ug WEVOX0RPTUNUTF9nZXRfZGV2aWNlX2dyb3VwOgotICAgICBjYXNlIFhFTl9ET01DVExfdGVzdF9h c3NpZ25fZGV2aWNlOgotICAgICBjYXNlIFhFTl9ET01DVExfYXNzaWduX2RldmljZToKLSAgICAg Y2FzZSBYRU5fRE9NQ1RMX2RlYXNzaWduX2RldmljZToKCmRpZmYgLS1naXQgYS94c2E0OTItNC4y MS0xOS5wYXRjaCBiL3hzYTQ5Mi00LjIxLTE5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA1NGExMTE3Li4wMDAwMDAwCi0tLSBhL3hzYTQ5Mi00LjIxLTE5LnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMzc4ICswLDAgQEAKLUZyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz dXNlLmNvbT4KLVN1YmplY3Q6IGRvbWN0bC9YU006IGRyb3AgeyxkZX1hc3NpZ25feyxkdH1kZXZp Y2UgaG9va3MKLQotSW50ZWdyYXRlIHRoZSBjaGVja2luZyB3aXRoIHhzbV9kb21jdGwoKS4gQXMg YSBwb3NpdGl2ZSBzaWRlIGVmZmVjdCwKLXBlcm1pc3Npb25zIGFyZSB0aGVuIGNoZWNrZWQgYXQg dGhlIHNhbWUgZWFybHkgcG9pbnQgd2l0aCBhbmQgd2l0aG91dAotRmxhc2suIEFzIHRoZSBEVCBk ZXZpY2UgcGF0aCBuZWVkcyBmZXRjaGluZyBlYXJsaWVyIChidXQgbXVzdCBub3QgYmUKLWRvdWJs ZSBmZXRjaGVkKSwgY2FjaGUgaXQgaW4gYSBwcml2YXRlIGZpZWxkIG9mIHRoZSBwdWJsaWMgaW50 ZXJmYWNlCi1zdHJ1Y3QuCi0KLVRoaXMgaXMgcGFydCBvZiBYU0EtNDkyLgotCi1TaWduZWQtb2Zm LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci1BY2tlZC1ieTogRGFuaWVsIFAu IFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgotUmV2aWV3ZWQtYnk6IFJvZ2Vy IFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotCi0tLS0gYS94ZW4vY29tbW9uL2Rv bWN0bC5jCi0rKysgYi94ZW4vY29tbW9uL2RvbWN0bC5jCi1AQCAtMzI1LDYgKzMyNSwxMCBAQCBs b25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCi0gICAgIGNhc2UgWEVOX0RP TUNUTF9kZWFzc2lnbl9kZXZpY2U6Ci0gICAgICAgICBpZiAoIG9wLT5kb21haW4gPT0gRE9NSURf SU8gKQotICAgICAgICAgewotKyNpZmRlZiBDT05GSUdfSEFTX0RFVklDRV9UUkVFX0RJU0NPVkVS WQotKyAgICAgICAgICAgIGlmICggb3AtPnUuYXNzaWduX2RldmljZS5kZXYgPT0gWEVOX0RPTUNU TF9ERVZfRFQgKQotKyAgICAgICAgICAgICAgICBvcC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQuZGV2 ID0gTlVMTDsKLSsjZW5kaWYKLSAgICAgICAgICAgICBkID0gZG9tX2lvOwotICAgICAgICAgICAg IGJyZWFrOwotICAgICAgICAgfQotQEAgLTMzMiw2ICszMzYsMTEgQEAgbG9uZyBkb19kb21jdGwo WEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQotICAgICAgICAgICAgIHJldHVybiAtRVNSQ0g7Ci0g ICAgICAgICBmYWxsdGhyb3VnaDsKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX3Rlc3RfYXNzaWduX2Rl dmljZToKLSsjaWZkZWYgQ09ORklHX0hBU19ERVZJQ0VfVFJFRV9ESVNDT1ZFUlkKLSsgICAgICAg IGlmICggb3AtPnUuYXNzaWduX2RldmljZS5kZXYgPT0gWEVOX0RPTUNUTF9ERVZfRFQgKQotKyAg ICAgICAgICAgIG9wLT51LmFzc2lnbl9kZXZpY2UudS5kdC5kZXYgPSBOVUxMOwotKyAgICAgICAg ZmFsbHRocm91Z2g7Ci0rI2VuZGlmCi0gICAgIGNhc2UgWEVOX0RPTUNUTF92bV9ldmVudF9vcDoK LSAgICAgICAgIGlmICggb3AtPmRvbWFpbiA9PSBET01JRF9JTlZBTElEICkKLSAgICAgICAgIHsK LS0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2RldmljZV90cmVlLmMKLSsrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2RldmljZV90cmVlLmMKLUBAIC0zNDAsMTUgKzM0MCwxNSBAQCBp bnQgaW9tbXVfZG9fZHRfZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsCi0gICAgICAgICBpZiAoIChk ICYmIGQtPmlzX2R5aW5nKSB8fCBkb21jdGwtPnUuYXNzaWduX2RldmljZS5mbGFncyApCi0gICAg ICAgICAgICAgYnJlYWs7Ci0gCi0tICAgICAgICByZXQgPSBkdF9maW5kX25vZGVfYnlfZ3BhdGgo ZG9tY3RsLT51LmFzc2lnbl9kZXZpY2UudS5kdC5wYXRoLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRvbWN0bC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQuc2l6ZSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGV2KTsKLS0gICAgICAgIGlmICggcmV0 ICkKLS0gICAgICAgICAgICBicmVhazsKLS0KLS0gICAgICAgIHJldCA9IHhzbV9hc3NpZ25fZHRk ZXZpY2UoWFNNX0hPT0ssIGQsIGR0X25vZGVfZnVsbF9uYW1lKGRldikpOwotLSAgICAgICAgaWYg KCByZXQgKQotLSAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgZGV2ID0gZG9tY3RsLT51LmFz c2lnbl9kZXZpY2UudS5kdC5kZXY7Ci0rICAgICAgICBpZiAoICFkZXYgKQotKyAgICAgICAgewot KyAgICAgICAgICAgIHJldCA9IGR0X2ZpbmRfbm9kZV9ieV9ncGF0aChkb21jdGwtPnUuYXNzaWdu X2RldmljZS51LmR0LnBhdGgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRvbWN0bC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQuc2l6ZSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJmRldik7Ci0rICAgICAgICAgICAgaWYgKCByZXQgKQot KyAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgIH0KLSAKLSAgICAgICAgIGlmICggZG9t Y3RsLT5jbWQgPT0gWEVOX0RPTUNUTF90ZXN0X2Fzc2lnbl9kZXZpY2UgKQotICAgICAgICAgewot QEAgLTM5NiwxNSArMzk2LDE1IEBAIGludCBpb21tdV9kb19kdF9kb21jdGwoc3RydWN0IHhlbl9k b21jdGwKLSAgICAgICAgIGlmICggZG9tY3RsLT51LmFzc2lnbl9kZXZpY2UuZmxhZ3MgKQotICAg ICAgICAgICAgIGJyZWFrOwotIAotLSAgICAgICAgcmV0ID0gZHRfZmluZF9ub2RlX2J5X2dwYXRo KGRvbWN0bC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQucGF0aCwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkb21jdGwtPnUuYXNzaWduX2RldmljZS51LmR0LnNpemUsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRldik7Ci0tICAgICAgICBpZiAoIHJl dCApCi0tICAgICAgICAgICAgYnJlYWs7Ci0tCi0tICAgICAgICByZXQgPSB4c21fZGVhc3NpZ25f ZHRkZXZpY2UoWFNNX0hPT0ssIGQsIGR0X25vZGVfZnVsbF9uYW1lKGRldikpOwotLSAgICAgICAg aWYgKCByZXQgKQotLSAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgZGV2ID0gZG9tY3RsLT51 LmFzc2lnbl9kZXZpY2UudS5kdC5kZXY7Ci0rICAgICAgICBpZiAoICFkZXYgKQotKyAgICAgICAg ewotKyAgICAgICAgICAgIHJldCA9IGR0X2ZpbmRfbm9kZV9ieV9ncGF0aChkb21jdGwtPnUuYXNz aWduX2RldmljZS51LmR0LnBhdGgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvbWN0bC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQuc2l6ZSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRldik7Ci0rICAgICAgICAgICAgaWYgKCByZXQg KQotKyAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgIH0KLSAKLSAgICAgICAgIGlmICgg ZCA9PSBkb21faW8gKQotICAgICAgICAgewotLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv cGNpLmMKLSsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCi1AQCAtMTc0MCwxMCAr MTc0MCw2IEBAIGludCBpb21tdV9kb19wY2lfZG9tY3RsKAotIAotICAgICAgICAgbWFjaGluZV9z YmRmID0gZG9tY3RsLT51LmFzc2lnbl9kZXZpY2UudS5wY2kubWFjaGluZV9zYmRmOwotIAotLSAg ICAgICAgcmV0ID0geHNtX2Fzc2lnbl9kZXZpY2UoWFNNX0hPT0ssIGQsIG1hY2hpbmVfc2JkZik7 Ci0tICAgICAgICBpZiAoIHJldCApCi0tICAgICAgICAgICAgYnJlYWs7Ci0tCi0gICAgICAgICBz ZWcgPSBtYWNoaW5lX3NiZGYgPj4gMTY7Ci0gICAgICAgICBidXMgPSBQQ0lfQlVTKG1hY2hpbmVf c2JkZik7Ci0gICAgICAgICBkZXZmbiA9IFBDSV9ERVZGTihtYWNoaW5lX3NiZGYpOwotQEAgLTE3 ODUsMTAgKzE3ODEsNiBAQCBpbnQgaW9tbXVfZG9fcGNpX2RvbWN0bCgKLSAKLSAgICAgICAgIG1h Y2hpbmVfc2JkZiA9IGRvbWN0bC0+dS5hc3NpZ25fZGV2aWNlLnUucGNpLm1hY2hpbmVfc2JkZjsK LSAKLS0gICAgICAgIHJldCA9IHhzbV9kZWFzc2lnbl9kZXZpY2UoWFNNX0hPT0ssIGQsIG1hY2hp bmVfc2JkZik7Ci0tICAgICAgICBpZiAoIHJldCApCi0tICAgICAgICAgICAgYnJlYWs7Ci0tCi0g ICAgICAgICBzZWcgPSBtYWNoaW5lX3NiZGYgPj4gMTY7Ci0gICAgICAgICBidXMgPSBQQ0lfQlVT KG1hY2hpbmVfc2JkZik7Ci0gICAgICAgICBkZXZmbiA9IFBDSV9ERVZGTihtYWNoaW5lX3NiZGYp OwotLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCi0rKysgYi94ZW4vaW5jbHVkZS9w dWJsaWMvZG9tY3RsLmgKLUBAIC01NzUsNyArNTc1LDEwIEBAIHN0cnVjdCB4ZW5fZG9tY3RsX2Fz c2lnbl9kZXZpY2UgewotICAgICAgICAgfSBwY2k7Ci0gICAgICAgICBzdHJ1Y3QgewotICAgICAg ICAgICAgIHVpbnQzMl90IHNpemU7IC8qIExlbmd0aCBvZiB0aGUgcGF0aCAqLwotLSAgICAgICAg ICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoY2hhcikgcGF0aDsgLyogcGF0aCB0byB0aGUgZGV2aWNl IHRyZWUgbm9kZSAqLwotKyAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoY2hhcikgcGF0 aDsgLyogUGF0aCB0byB0aGUgZGV2aWNlIHRyZWUgbm9kZSAqLwotKyNpZmRlZiBfX1hFTl9fCi0r ICAgICAgICAgICAgc3RydWN0IGR0X2RldmljZV9ub2RlICpkZXY7IC8qIFJlc29sdmVkIGRldmlj ZSBub2RlIG9mIHRoZSBhYm92ZSAqLwotKyNlbmRpZgotICAgICAgICAgfSBkdDsKLSAgICAgfSB1 OwotIH07Ci0tLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAotKysrIGIveGVuL2luY2x1ZGUv eHNtL2R1bW15LmgKLUBAIC00MDUsNDAgKzQwNSw4IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBj Zl9jaGVjayB4c21fZ2V0X2QKLSAgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX1BSSVYpOwotICAg ICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBOVUxM KTsKLSB9Ci0tCi0tc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9hc3NpZ25fZGV2 aWNlKAotLSAgICBYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgbWFj aGluZV9iZGYpCi0tewotLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fSE9PSyk7Ci0tICAgIHJl dHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOwotLX0K LS0KLS1zdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2RlYXNzaWduX2RldmljZSgK LS0gICAgWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IG1hY2hpbmVf YmRmKQotLXsKLS0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOwotLSAgICByZXR1cm4g eHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKLS19Ci0tCi0g I2VuZGlmIC8qIEhBU19QQVNTVEhST1VHSCAmJiBIQVNfUENJICovCi0gCi0tI2lmIGRlZmluZWQo Q09ORklHX0hBU19QQVNTVEhST1VHSCkgJiYgZGVmaW5lZChDT05GSUdfSEFTX0RFVklDRV9UUkVF X0RJU0NPVkVSWSkKLS1zdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2Fzc2lnbl9k dGRldmljZSgKLS0gICAgWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IGNo YXIgKmR0cGF0aCkKLS17Ci0tICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9IT09LKTsKLS0gICAg cmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7Ci0t fQotLQotLXN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fZGVhc3NpZ25fZHRkZXZp Y2UoCi0tICAgIFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBjaGFyICpk dHBhdGgpCi0tewotLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fSE9PSyk7Ci0tICAgIHJldHVy biB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOwotLX0KLS0K LS0jZW5kaWYgLyogSEFTX1BBU1NUSFJPVUdIICYmIEhBU19ERVZJQ0VfVFJFRV9ESVNDT1ZFUlkg Ki8KLS0KLSBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX3Jlc291cmNlX3BsdWdf Y29yZShYU01fREVGQVVMVF9WT0lEKQotIHsKLSAgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hP T0spOwotLS0tIGEveGVuL2luY2x1ZGUveHNtL3hzbS5oCi0rKysgYi94ZW4vaW5jbHVkZS94c20v eHNtLmgKLUBAIC0xMjQsMTMgKzEyNCw2IEBAIHN0cnVjdCB4c21fb3BzIHsKLSAKLSAjaWYgZGVm aW5lZChDT05GSUdfSEFTX1BBU1NUSFJPVUdIKSAmJiBkZWZpbmVkKENPTkZJR19IQVNfUENJKQot ICAgICBpbnQgKCpnZXRfZGV2aWNlX2dyb3VwKSh1aW50MzJfdCBtYWNoaW5lX2JkZik7Ci0tICAg IGludCAoKmFzc2lnbl9kZXZpY2UpKHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IG1hY2hpbmVf YmRmKTsKLS0gICAgaW50ICgqZGVhc3NpZ25fZGV2aWNlKShzdHJ1Y3QgZG9tYWluICpkLCB1aW50 MzJfdCBtYWNoaW5lX2JkZik7Ci0tI2VuZGlmCi0tCi0tI2lmIGRlZmluZWQoQ09ORklHX0hBU19Q QVNTVEhST1VHSCkgJiYgZGVmaW5lZChDT05GSUdfSEFTX0RFVklDRV9UUkVFX0RJU0NPVkVSWSkK LS0gICAgaW50ICgqYXNzaWduX2R0ZGV2aWNlKShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBjaGFy ICpkdHBhdGgpOwotLSAgICBpbnQgKCpkZWFzc2lnbl9kdGRldmljZSkoc3RydWN0IGRvbWFpbiAq ZCwgY29uc3QgY2hhciAqZHRwYXRoKTsKLSAjZW5kaWYKLSAKLSAgICAgaW50ICgqcmVzb3VyY2Vf cGx1Z19jb3JlKSh2b2lkKTsKLUBAIC01MzMsMzUgKzUyNiw4IEBAIHN0YXRpYyBpbmxpbmUgaW50 IHhzbV9nZXRfZGV2aWNlX2dyb3VwKHgKLSB7Ci0gICAgIHJldHVybiBhbHRlcm5hdGl2ZV9jYWxs KHhzbV9vcHMuZ2V0X2RldmljZV9ncm91cCwgbWFjaGluZV9iZGYpOwotIH0KLS0KLS1zdGF0aWMg aW5saW5lIGludCB4c21fYXNzaWduX2RldmljZSgKLS0gICAgeHNtX2RlZmF1bHRfdCBkZWYsIHN0 cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IG1hY2hpbmVfYmRmKQotLXsKLS0gICAgcmV0dXJuIGFs dGVybmF0aXZlX2NhbGwoeHNtX29wcy5hc3NpZ25fZGV2aWNlLCBkLCBtYWNoaW5lX2JkZik7Ci0t fQotLQotLXN0YXRpYyBpbmxpbmUgaW50IHhzbV9kZWFzc2lnbl9kZXZpY2UoCi0tICAgIHhzbV9k ZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBtYWNoaW5lX2JkZikKLS17 Ci0tICAgIHJldHVybiBhbHRlcm5hdGl2ZV9jYWxsKHhzbV9vcHMuZGVhc3NpZ25fZGV2aWNlLCBk LCBtYWNoaW5lX2JkZik7Ci0tfQotICNlbmRpZiAvKiBIQVNfUEFTU1RIUk9VR0ggJiYgSEFTX1BD SSkgKi8KLSAKLS0jaWYgZGVmaW5lZChDT05GSUdfSEFTX1BBU1NUSFJPVUdIKSAmJiBkZWZpbmVk KENPTkZJR19IQVNfREVWSUNFX1RSRUVfRElTQ09WRVJZKQotLXN0YXRpYyBpbmxpbmUgaW50IHhz bV9hc3NpZ25fZHRkZXZpY2UoCi0tICAgIHhzbV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWlu ICpkLCBjb25zdCBjaGFyICpkdHBhdGgpCi0tewotLSAgICByZXR1cm4gYWx0ZXJuYXRpdmVfY2Fs bCh4c21fb3BzLmFzc2lnbl9kdGRldmljZSwgZCwgZHRwYXRoKTsKLS19Ci0tCi0tc3RhdGljIGlu bGluZSBpbnQgeHNtX2RlYXNzaWduX2R0ZGV2aWNlKAotLSAgICB4c21fZGVmYXVsdF90IGRlZiwg c3RydWN0IGRvbWFpbiAqZCwgY29uc3QgY2hhciAqZHRwYXRoKQotLXsKLS0gICAgcmV0dXJuIGFs dGVybmF0aXZlX2NhbGwoeHNtX29wcy5kZWFzc2lnbl9kdGRldmljZSwgZCwgZHRwYXRoKTsKLS19 Ci0tCi0tI2VuZGlmIC8qIEhBU19QQVNTVEhST1VHSCAmJiBIQVNfREVWSUNFX1RSRUVfRElTQ09W RVJZICovCi0tCi0gc3RhdGljIGlubGluZSBpbnQgeHNtX3Jlc291cmNlX3BsdWdfcGNpKHhzbV9k ZWZhdWx0X3QgZGVmLCB1aW50MzJfdCBtYWNoaW5lX2JkZikKLSB7Ci0gICAgIHJldHVybiBhbHRl cm5hdGl2ZV9jYWxsKHhzbV9vcHMucmVzb3VyY2VfcGx1Z19wY2ksIG1hY2hpbmVfYmRmKTsKLS0t LSBhL3hlbi94c20vZHVtbXkuYwotKysrIGIveGVuL3hzbS9kdW1teS5jCi1AQCAtODEsMTMgKzgx LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB4c21fb3BzIF9faW5pdGNvbnN0XwotIAotICNpZiBk ZWZpbmVkKENPTkZJR19IQVNfUEFTU1RIUk9VR0gpICYmIGRlZmluZWQoQ09ORklHX0hBU19QQ0kp Ci0gICAgIC5nZXRfZGV2aWNlX2dyb3VwICAgICAgICAgICAgICA9IHhzbV9nZXRfZGV2aWNlX2dy b3VwLAotLSAgICAuYXNzaWduX2RldmljZSAgICAgICAgICAgICAgICAgPSB4c21fYXNzaWduX2Rl dmljZSwKLS0gICAgLmRlYXNzaWduX2RldmljZSAgICAgICAgICAgICAgID0geHNtX2RlYXNzaWdu X2RldmljZSwKLS0jZW5kaWYKLS0KLS0jaWYgZGVmaW5lZChDT05GSUdfSEFTX1BBU1NUSFJPVUdI KSAmJiBkZWZpbmVkKENPTkZJR19IQVNfREVWSUNFX1RSRUVfRElTQ09WRVJZKQotLSAgICAuYXNz aWduX2R0ZGV2aWNlICAgICAgICAgICAgICAgPSB4c21fYXNzaWduX2R0ZGV2aWNlLAotLSAgICAu ZGVhc3NpZ25fZHRkZXZpY2UgICAgICAgICAgICAgPSB4c21fZGVhc3NpZ25fZHRkZXZpY2UsCi0g I2VuZGlmCi0gCi0gICAgIC5yZXNvdXJjZV9wbHVnX2NvcmUgICAgICAgICAgICA9IHhzbV9yZXNv dXJjZV9wbHVnX2NvcmUsCi0tLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKLSsrKyBiL3hlbi94 c20vZmxhc2svaG9va3MuYwotQEAgLTQ1LDYgKzQ1LDE3IEBAIHN0YXRpYyBpbnQgZmxhc2tfc2hh ZG93X2NvbnRyb2woc3RydWN0IGQKLSAjZGVmaW5lIHB2X3NoaW0gZmFsc2UKLSAjZW5kaWYKLSAK LSsjaWZkZWYgQ09ORklHX0hBU19QQVNTVEhST1VHSAotKyNpZmRlZiBDT05GSUdfSEFTX1BDSQot K3N0YXRpYyBpbnQgZmxhc2tfYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25l ZCBpbnQgbWFjaGluZV9iZGYpOwotK3N0YXRpYyBpbnQgZmxhc2tfZGVhc3NpZ25fZGV2aWNlKHN0 cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBtYWNoaW5lX2JkZik7Ci0rI2VuZGlmCi0rI2lm ZGVmIENPTkZJR19IQVNfREVWSUNFX1RSRUVfRElTQ09WRVJZCi0rc3RhdGljIGludCBmbGFza19h c3NpZ25fZHRkZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgY29uc3QgY2hhciAqZHRwYXRoKTsKLStz dGF0aWMgaW50IGZsYXNrX2RlYXNzaWduX2R0ZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIGNvbnN0 IGNoYXIgKmR0cGF0aCk7Ci0rI2VuZGlmCi0rI2VuZGlmIC8qIENPTkZJR19IQVNfUEFTU1RIUk9V R0ggKi8KLSsKLSBzdGF0aWMgdWludDMyX3QgZG9tYWluX3NpZChjb25zdCBzdHJ1Y3QgZG9tYWlu ICpkb20pCi0gewotICAgICBzdHJ1Y3QgZG9tYWluX3NlY3VyaXR5X3N0cnVjdCAqZHNlYyA9IGRv bS0+c3NpZDsKLUBAIC03MDAsMTYgKzcxMSw2IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tf ZG9tY3RsKHN0cnVjdAotIAotICAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tz IChjb21tb24vZG9tY3RsLmMpICovCi0gICAgIGNhc2UgWEVOX0RPTUNUTF9zZXRfdGFyZ2V0Ogot LQotLSNpZmRlZiBDT05GSUdfSEFTX1BBU1NUSFJPVUdICi0tICAgIC8qCi0tICAgICAqIFRoZXNl IGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MKLS0gICAgICogKGRyaXZlcnMvcGFzc3Rocm91Z2gv e3BjaSxkZXZpY2VfdHJlZS5jKQotLSAgICAgKi8KLS0gICAgY2FzZSBYRU5fRE9NQ1RMX3Rlc3Rf YXNzaWduX2RldmljZToKLS0gICAgY2FzZSBYRU5fRE9NQ1RMX2Fzc2lnbl9kZXZpY2U6Ci0tICAg IGNhc2UgWEVOX0RPTUNUTF9kZWFzc2lnbl9kZXZpY2U6Ci0tI2VuZGlmCi0gICAgICAgICByZXR1 cm4gMDsKLSAKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2Rlc3Ryb3lkb21haW46Ci1AQCAtNzg5LDYg Kzc5MCw0OSBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RvbWN0bChzdHJ1Y3QKLSAgICAg ICAgIHJldHVybiBmbGFza19zaGFkb3dfY29udHJvbChkLCBvcC0+dS5zaGFkb3dfb3Aub3ApOwot ICNlbmRpZgotIAotKyNpZmRlZiBDT05GSUdfSEFTX1BBU1NUSFJPVUdICi0rCi0rICAgIGNhc2Ug WEVOX0RPTUNUTF90ZXN0X2Fzc2lnbl9kZXZpY2U6Ci0rICAgIGNhc2UgWEVOX0RPTUNUTF9hc3Np Z25fZGV2aWNlOgotKyAgICBjYXNlIFhFTl9ET01DVExfZGVhc3NpZ25fZGV2aWNlOgotKyAgICAg ICAgc3dpdGNoICggb3AtPnUuYXNzaWduX2RldmljZS5kZXYgKQotKyAgICAgICAgewotKyNpZmRl ZiBDT05GSUdfSEFTX1BDSQotKyAgICAgICAgY2FzZSBYRU5fRE9NQ1RMX0RFVl9QQ0k6Ci0rICAg ICAgICAgICAgcmV0dXJuIG9wLT5jbWQgIT0gWEVOX0RPTUNUTF9kZWFzc2lnbl9kZXZpY2UKLSsg ICAgICAgICAgICAgICAgICAgPyBmbGFza19hc3NpZ25fZGV2aWNlKAotKyAgICAgICAgICAgICAg ICAgICAgICAgICBkLCBvcC0+dS5hc3NpZ25fZGV2aWNlLnUucGNpLm1hY2hpbmVfc2JkZikKLSsg ICAgICAgICAgICAgICAgICAgOiBmbGFza19kZWFzc2lnbl9kZXZpY2UoCi0rICAgICAgICAgICAg ICAgICAgICAgICAgIGQsIG9wLT51LmFzc2lnbl9kZXZpY2UudS5wY2kubWFjaGluZV9zYmRmKTsK LSsjZW5kaWYKLSsKLSsjaWZkZWYgQ09ORklHX0hBU19ERVZJQ0VfVFJFRV9ESVNDT1ZFUlkKLSsg ICAgICAgIGNhc2UgWEVOX0RPTUNUTF9ERVZfRFQ6Ci0rICAgICAgICB7Ci0rICAgICAgICAgICAg c3RydWN0IGR0X2RldmljZV9ub2RlICpkZXY7Ci0rICAgICAgICAgICAgaW50IHJldCA9IGR0X2Zp bmRfbm9kZV9ieV9ncGF0aChvcC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQucGF0aCwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wLT51LmFzc2lnbl9kZXZpY2Uu dS5kdC5zaXplLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JmRldik7Ci0rCi0rICAgICAgICAgICAgaWYgKCByZXQgKQotKyAgICAgICAgICAgICAgICByZXR1 cm4gcmV0OwotKwotKyAgICAgICAgICAgIG9wLT51LmFzc2lnbl9kZXZpY2UudS5kdC5kZXYgPSBk ZXY7Ci0rCi0rICAgICAgICAgICAgcmV0dXJuIG9wLT5jbWQgIT0gWEVOX0RPTUNUTF9kZWFzc2ln bl9kZXZpY2UKLSsgICAgICAgICAgICAgICAgICAgPyBmbGFza19hc3NpZ25fZHRkZXZpY2UoZCwg ZHRfbm9kZV9mdWxsX25hbWUoZGV2KSkKLSsgICAgICAgICAgICAgICAgICAgOiBmbGFza19kZWFz c2lnbl9kdGRldmljZShkLCBkdF9ub2RlX2Z1bGxfbmFtZShkZXYpKTsKLSsgICAgICAgIH0KLSsj ZW5kaWYKLSsKLSsgICAgICAgIGRlZmF1bHQ6Ci0rICAgICAgICAgICAgLyogVW5rbm93biB0eXBl LiAqLwotKyAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgfQotKyAgICAgICAgcmV0dXJuIGF2 Y191bmtub3duX3Blcm1pc3Npb24oImFzc2lnbl9kZXZpY2UiLCBvcC0+Y21kKTsKLSsKLSsjZW5k aWYgLyogQ09ORklHX0hBU19QQVNTVEhST1VHSCAqLwotKwotICAgICBjYXNlIFhFTl9ET01DVExf bWVtX3NoYXJpbmdfb3A6Ci0gICAgICAgICByZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBTRUND TEFTU19IVk0sIEhWTV9fTUVNX1NIQVJJTkcpOwotIAotQEAgLTE0MTYsNyArMTQ2MCw3IEBAIHN0 YXRpYyBpbnQgZmxhc2tfdGVzdF9hc3NpZ25fZGV2aWNlKHVpbnQKLSAgICAgcmV0dXJuIGF2Y19j dXJyZW50X2hhc19wZXJtKHJzaWQsIFNFQ0NMQVNTX1JFU09VUkNFLCBSRVNPVVJDRV9fU1RBVF9E RVZJQ0UsIE5VTEwpOwotIH0KLSAKLS1zdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2Fzc2lnbl9k ZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgbWFjaGluZV9iZGYpCi0rc3RhdGljIGlu dCBmbGFza19hc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IG1hY2hpbmVf YmRmKQotIHsKLSAgICAgdWludDMyX3QgZHNpZCwgcnNpZDsKLSAgICAgaW50IHJjID0gLUVQRVJN OwotQEAgLTE0NDYsNyArMTQ5MCw3IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfYXNzaWdu X2RldmljZSgKLSAgICAgcmV0dXJuIGF2Y19oYXNfcGVybShkc2lkLCByc2lkLCBTRUNDTEFTU19S RVNPVVJDRSwgZHBlcm0sICZhZCk7Ci0gfQotIAotLXN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tf ZGVhc3NpZ25fZGV2aWNlKAotK3N0YXRpYyBpbnQgZmxhc2tfZGVhc3NpZ25fZGV2aWNlKAotICAg ICBzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBtYWNoaW5lX2JkZikKLSB7Ci0gICAgIHVpbnQz Ml90IHJzaWQ7Ci1AQCAtMTQ3OCw3ICsxNTIyLDcgQEAgc3RhdGljIGludCBmbGFza190ZXN0X2Fz c2lnbl9kdGRldmljZShjbwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7 Ci0gfQotIAotLXN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfYXNzaWduX2R0ZGV2aWNlKHN0cnVj dCBkb21haW4gKmQsIGNvbnN0IGNoYXIgKmR0cGF0aCkKLStzdGF0aWMgaW50IGZsYXNrX2Fzc2ln bl9kdGRldmljZShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBjaGFyICpkdHBhdGgpCi0gewotICAg ICB1aW50MzJfdCBkc2lkLCByc2lkOwotICAgICBpbnQgcmMgPSAtRVBFUk07Ci1AQCAtMTUwOCw3 ICsxNTUyLDcgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19hc3NpZ25fZHRkZXZpYwotICAg ICByZXR1cm4gYXZjX2hhc19wZXJtKGRzaWQsIHJzaWQsIFNFQ0NMQVNTX1JFU09VUkNFLCBkcGVy bSwgJmFkKTsKLSB9Ci0gCi0tc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kZWFzc2lnbl9kdGRl dmljZSgKLStzdGF0aWMgaW50IGZsYXNrX2RlYXNzaWduX2R0ZGV2aWNlKAotICAgICBzdHJ1Y3Qg ZG9tYWluICpkLCBjb25zdCBjaGFyICpkdHBhdGgpCi0gewotICAgICB1aW50MzJfdCByc2lkOwot QEAgLTE5ODksMTMgKzIwMzMsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHhzbV9vcHMgX19pbml0 Y29uc3RfCi0gCi0gI2lmIGRlZmluZWQoQ09ORklHX0hBU19QQVNTVEhST1VHSCkgJiYgZGVmaW5l ZChDT05GSUdfSEFTX1BDSSkKLSAgICAgLmdldF9kZXZpY2VfZ3JvdXAgPSBmbGFza19nZXRfZGV2 aWNlX2dyb3VwLAotLSAgICAuYXNzaWduX2RldmljZSA9IGZsYXNrX2Fzc2lnbl9kZXZpY2UsCi0t ICAgIC5kZWFzc2lnbl9kZXZpY2UgPSBmbGFza19kZWFzc2lnbl9kZXZpY2UsCi0tI2VuZGlmCi0t Ci0tI2lmIGRlZmluZWQoQ09ORklHX0hBU19QQVNTVEhST1VHSCkgJiYgZGVmaW5lZChDT05GSUdf SEFTX0RFVklDRV9UUkVFX0RJU0NPVkVSWSkKLS0gICAgLmFzc2lnbl9kdGRldmljZSA9IGZsYXNr X2Fzc2lnbl9kdGRldmljZSwKLS0gICAgLmRlYXNzaWduX2R0ZGV2aWNlID0gZmxhc2tfZGVhc3Np Z25fZHRkZXZpY2UsCi0gI2VuZGlmCi0gCi0gICAgIC5wbGF0Zm9ybV9vcCA9IGZsYXNrX3BsYXRm b3JtX29wLAoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00LjIxLTIwLnBhdGNoIGIveHNhNDkyLTQuMjEt MjAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmZDEwYTkuLjAwMDAwMDAK LS0tIGEveHNhNDkyLTQuMjEtMjAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMjMgKzAsMCBA QAotRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotU3ViamVjdDogZG9tY3Rs OiBoYW5kbGUgWEVOX0RPTUNUTF9zZXRfdGFyZ2V0IHdpdGhvdXQgYWNxdWlyaW5nIGRvbWN0bCBs b2NrCi0KLVRoZSBvbmx5IGxvY2tpbmcgcmVxdWlyZWQgaGVyZSBpcyB0aGF0IGJldHdlZW4gY2hl Y2tpbmcgZC0+dGFyZ2V0IGFuZAotc2V0dGluZyBpdC4gVG8gYXZvaWQgdGhlIG5lZWQgZm9yIGFu IGV4cGxpY2l0IGxvY2ssIHVzZSBjbXB4Y2hncHRyKCkgdG8KLXVwZGF0ZSBkLT50YXJnZXQuCi0K LU1vdmUgdGhlIGhhbmRsaW5nIG5vdCBvbmx5IGFoZWFkIG9mIGFjcXVpcmluZyB0aGUgbG9jaywg YnV0IGFsc28gYWhlYWQKLW9mIHRoZSBYU00gY2hlY2ssIGxldmVyYWdpbmcgdGhhdCB0aGUgc3Vi LW9wIGhhcyBpdHMgb3duIGhvb2suCi0KLVRoaXMgaXMgcGFydCBvZiBYU0EtNDkyLgotCi1TaWdu ZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci1BY2tlZC1ieTogRGFu aWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgotUmV2aWV3ZWQtYnk6 IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotCi0tLS0gYS94ZW4vY29t bW9uL2RvbWN0bC5jCi0rKysgYi94ZW4vY29tbW9uL2RvbWN0bC5jCi1AQCAtNTA1LDYgKzUwNSwz MCBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCi0gICAgIH0KLSAj ZW5kaWYKLSAKLSsgICAgY2FzZSBYRU5fRE9NQ1RMX3NldF90YXJnZXQ6Ci0rICAgIHsKLSsgICAg ICAgIHN0cnVjdCBkb21haW4gKmUgPSBnZXRfZG9tYWluX2J5X2lkKG9wLT51LnNldF90YXJnZXQu dGFyZ2V0KTsKLSsKLSsgICAgICAgIHJldCA9IC1FU1JDSDsKLSsgICAgICAgIGlmICggIWUgKQot KyAgICAgICAgICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tfZG9tb25seTsKLSsKLSsgICAgICAg IGlmICggZCA9PSBlICkKLSsgICAgICAgICAgICByZXQgPSAtRUlOVkFMOwotKyAgICAgICAgZWxz ZSBpZiAoICFpc19odm1fZG9tYWluKGUpICkKLSsgICAgICAgICAgICByZXQgPSAtRU9QTk9UU1VQ UDsKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICByZXQgPSB4c21fc2V0X3RhcmdldChYU01f UFJJViwgZCwgZSk7Ci0rCi0rICAgICAgICAvKiBIb2xkIHJlZmVyZW5jZSBvbiBAZSB1bnRpbCB3 ZSBkZXN0cm95IEBkLiAqLwotKyAgICAgICAgaWYgKCAhcmV0ICYmIGNtcHhjaGdwdHIoJmQtPnRh cmdldCwgTlVMTCwgZSkgKQotKyAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7Ci0rCi0rICAgICAg ICBpZiAoIHJldCApCi0rICAgICAgICAgICAgcHV0X2RvbWFpbihlKTsKLSsgICAgICAgIGdvdG8g ZG9tY3RsX291dF91bmxvY2tfZG9tb25seTsKLSsgICAgfQotKwotICAgICBjYXNlIFhFTl9ET01D VExfdm1fZXZlbnRfb3A6Ci0gICAgICAgICBpZiAoIG9wLT51LnZtX2V2ZW50X29wLm9wID09IFhF Tl9WTV9FVkVOVF9HRVRfVkVSU0lPTiApCi0gICAgICAgICB7Ci1AQCAtODQ0LDM2ICs4NjgsNiBA QCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCi0gICAgICAgICBkb21h aW5fc2V0X3RpbWVfb2Zmc2V0KGQsIG9wLT51LnNldHRpbWVvZmZzZXQudGltZV9vZmZzZXRfc2Vj b25kcyk7Ci0gICAgICAgICBicmVhazsKLSAKLS0gICAgY2FzZSBYRU5fRE9NQ1RMX3NldF90YXJn ZXQ6Ci0tICAgIHsKLS0gICAgICAgIHN0cnVjdCBkb21haW4gKmU7Ci0tCi0tICAgICAgICByZXQg PSAtRVNSQ0g7Ci0tICAgICAgICBlID0gZ2V0X2RvbWFpbl9ieV9pZChvcC0+dS5zZXRfdGFyZ2V0 LnRhcmdldCk7Ci0tICAgICAgICBpZiAoIGUgPT0gTlVMTCApCi0tICAgICAgICAgICAgYnJlYWs7 Ci0tCi0tICAgICAgICByZXQgPSAtRUlOVkFMOwotLSAgICAgICAgaWYgKCAoZCA9PSBlKSB8fCAo ZC0+dGFyZ2V0ICE9IE5VTEwpICkKLS0gICAgICAgIHsKLS0gICAgICAgICAgICBwdXRfZG9tYWlu KGUpOwotLSAgICAgICAgICAgIGJyZWFrOwotLSAgICAgICAgfQotLQotLSAgICAgICAgcmV0ID0g LUVPUE5PVFNVUFA7Ci0tICAgICAgICBpZiAoIGlzX2h2bV9kb21haW4oZSkgKQotLSAgICAgICAg ICAgIHJldCA9IHhzbV9zZXRfdGFyZ2V0KFhTTV9IT09LLCBkLCBlKTsKLS0gICAgICAgIGlmICgg cmV0ICkKLS0gICAgICAgIHsKLS0gICAgICAgICAgICBwdXRfZG9tYWluKGUpOwotLSAgICAgICAg ICAgIGJyZWFrOwotLSAgICAgICAgfQotLQotLSAgICAgICAgLyogSG9sZCByZWZlcmVuY2Ugb24g QGUgdW50aWwgd2UgZGVzdHJveSBAZC4gKi8KLS0gICAgICAgIGQtPnRhcmdldCA9IGU7Ci0tICAg ICAgICBicmVhazsKLS0gICAgfQotLQotICAgICBjYXNlIFhFTl9ET01DVExfc3Vic2NyaWJlOgot ICAgICAgICAgZC0+c3VzcGVuZF9ldnRjaG4gPSBvcC0+dS5zdWJzY3JpYmUucG9ydDsKLSAgICAg ICAgIGJyZWFrOwotLS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKLSsrKyBiL3hlbi9pbmNs dWRlL3hzbS9kdW1teS5oCi1AQCAtMTUwLDcgKzE1MCw3IEBAIHN0YXRpYyBYU01fSU5MSU5FIGlu dCBjZl9jaGVjayB4c21fc3lzY3QKLSBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNt X3NldF90YXJnZXQoCi0gICAgIFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1 Y3QgZG9tYWluICplKQotIHsKLS0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOwotKyAg ICBYU01fQVNTRVJUX0FDVElPTihYU01fUFJJVik7Ci0gICAgIHJldHVybiB4c21fZGVmYXVsdF9h Y3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIE5VTEwpOwotIH0KLSAKLUBAIC0xNzAsNiAr MTcwLDcgQEAgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9kb21jdAotICAgICBj YXNlIFhFTl9ET01DVExfaW9wb3J0X3Blcm1pc3Npb246Ci0gICAgIGNhc2UgWEVOX0RPTUNUTF9p cnFfcGVybWlzc2lvbjoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX21lbW9yeV9tYXBwaW5nOgotKyAg ICBjYXNlIFhFTl9ET01DVExfc2V0X3RhcmdldDoKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX3VuYmlu ZF9wdF9pcnE6Ci0gICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKLSAgICAgICAgIHJldHVy biAtRUlMU0VROwotLS0tIGEveGVuL3hzbS9mbGFzay9ob29rcy5jCi0rKysgYi94ZW4veHNtL2Zs YXNrL2hvb2tzLmMKLUBAIC03MDUsMTQgKzcwNSwxMSBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGZs YXNrX2RvbWN0bChzdHJ1Y3QKLSAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9wZXJtaXNzaW9u OgotICAgICBjYXNlIFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb246Ci0gICAgIGNhc2UgWEVOX0RP TUNUTF9tZW1vcnlfbWFwcGluZzoKLSsgICAgY2FzZSBYRU5fRE9NQ1RMX3NldF90YXJnZXQ6Ci0g ICAgIGNhc2UgWEVOX0RPTUNUTF91bmJpbmRfcHRfaXJxOgotICAgICAgICAgQVNTRVJUX1VOUkVB Q0hBQkxFKCk7Ci0gICAgICAgICByZXR1cm4gLUVJTFNFUTsKLSAKLS0gICAgLyogVGhlc2UgaGF2 ZSBpbmRpdmlkdWFsIFhTTSBob29rcyAoY29tbW9uL2RvbWN0bC5jKSAqLwotLSAgICBjYXNlIFhF Tl9ET01DVExfc2V0X3RhcmdldDoKLS0gICAgICAgIHJldHVybiAwOwotLQotICAgICBjYXNlIFhF Tl9ET01DVExfZGVzdHJveWRvbWFpbjoKLSAgICAgICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJt KGQsIFNFQ0NMQVNTX0RPTUFJTiwgRE9NQUlOX19ERVNUUk9ZKTsKLSAKCmRpZmYgLS1naXQgYS94 c2E0OTMtNC4yMS0wMS5wYXRjaCBiL3hzYTQ5My00LjIxLTAxLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBjMDZiOWE1Li4wMDAwMDAwCi0tLSBhL3hzYTQ5My00LjIxLTAxLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzExICswLDAgQEAKLUZyb20gMmUyMWI1MzAxNzY1ZGUz NTNjMDYwODFlZWU5NTMyNTViZjMyNzE3NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IE1pY2hhbCBPcnplbCA8bWljaGFsLm9yemVsQGFtZC5jb20+Ci1EYXRlOiBUdWUsIDE0IEFwciAy MDI2IDEwOjExOjI0ICswMjAwCi1TdWJqZWN0OiB4ZW4vYXJtNjQ6IGZsdXNodGxiOiBPcHRpbWl6 ZSBBUk02NF9XT1JLQVJPVU5EX1JFUEVBVF9UTEJJCi0KLVRoZSBBUk02NF9XT1JLQVJPVU5EX1JF UEVBVF9UTEJJIHdvcmthcm91bmQgaXMgdXNlZCB0byBtaXRpZ2F0ZSBzZXZlcmFsCi1lcnJhdGEg d2hlcmUgYnJvYWRjYXN0IFRMQkk7RFNCIHNlcXVlbmNlcyBkb24ndCBwcm92aWRlIGFsbCB0aGUK LWFyY2hpdGVjdHVyYWxseSByZXF1aXJlZCBzeW5jaHJvbml6YXRpb24uIFRoZSB3b3JrYXJvdW5k IHBlcmZvcm1zIG1vcmUKLXdvcmsgdGhhbiBuZWNlc3NhcnksIGFuZCBjYW4gaGF2ZSBzaWduaWZp Y2FudCBvdmVyaGVhZC4gVGhpcyBwYXRjaAotb3B0aW1pemVzIHRoZSB3b3JrYXJvdW5kLCBhcyBl eHBsYWluZWQgYmVsb3cuCi0KLTEuIEFsbCByZWxldmFudCBlcnJhdGEgb25seSBhZmZlY3QgdGhl IG9yZGVyaW5nIGFuZC9vciBjb21wbGV0aW9uIG9mCi0gICBtZW1vcnkgYWNjZXNzZXMgd2hpY2gg aGF2ZSBiZWVuIHRyYW5zbGF0ZWQgYnkgYW4gaW52YWxpZGF0ZWQgVExCCi0gICBlbnRyeS4gVGhl IGFjdHVhbCBpbnZhbGlkYXRpb24gb2YgVExCIGVudHJpZXMgaXMgdW5hZmZlY3RlZC4KLQotMi4g VGhlIGV4aXN0aW5nIHdvcmthcm91bmQgaXMgYXBwbGllZCB0byBib3RoIGJyb2FkY2FzdCBhbmQg bG9jYWwgVExCCi0gICBpbnZhbGlkYXRpb24sIHdoZXJlYXMgZm9yIGFsbCByZWxldmFudCBlcnJh dGEgaXQgaXMgb25seSBuZWNlc3NhcnkgdG8KLSAgIGFwcGx5IGEgd29ya2Fyb3VuZCBmb3IgYnJv YWRjYXN0IGludmFsaWRhdGlvbi4KLQotMy4gVGhlIGV4aXN0aW5nIHdvcmthcm91bmQgcmVwbGFj ZXMgZXZlcnkgVExCSSB3aXRoIGEgVExCSTtEU0I7VExCSQotICAgc2VxdWVuY2UsIHdoZXJlYXMg Zm9yIGFsbCByZWxldmFudCBlcnJhdGEgaXQgaXMgb25seSBuZWNlc3NhcnkgdG8KLSAgIGV4ZWN1 dGUgYSBzaW5nbGUgYWRkaXRpb25hbCBUTEJJO0RTQiBzZXF1ZW5jZSBhZnRlciBhbnkgbnVtYmVy IG9mCi0gICBUTEJJcyBhcmUgY29tcGxldGVkIGJ5IGEgRFNCLgotCi0gICBGb3IgZXhhbXBsZSwg Zm9yIGEgc2VxdWVuY2Ugb2YgYmF0Y2hlZCBUTEJJczoKLQotICAgICAgIFRMQkkgPG9wMT5bLCA8 YXJnMT5dCi0gICAgICAgVExCSSA8b3AyPlssIDxhcmcyPl0KLSAgICAgICBUTEJJIDxvcDM+Wywg PGFyZzM+XQotICAgICAgIERTQiBJU0gKLQotICAgLi4uIHRoZSBleGlzdGluZyB3b3JrYXJvdW5k IHdpbGwgZXhwYW5kIHRoaXMgdG86Ci0KLSAgICAgICBUTEJJIDxvcDE+WywgPGFyZzE+XQotICAg ICAgIERTQiBJU0ggICAgICAgICAgICAgICAgICAvLyBhZGRpdGlvbmFsCi0gICAgICAgVExCSSA8 b3AxPlssIDxhcmcxPl0gICAgIC8vIGFkZGl0aW9uYWwKLSAgICAgICBUTEJJIDxvcDI+WywgPGFy ZzI+XQotICAgICAgIERTQiBJU0ggICAgICAgICAgICAgICAgICAvLyBhZGRpdGlvbmFsCi0gICAg ICAgVExCSSA8b3AyPlssIDxhcmcyPl0gICAgIC8vIGFkZGl0aW9uYWwKLSAgICAgICBUTEJJIDxv cDM+WywgPGFyZzM+XQotICAgICAgIERTQiBJU0ggICAgICAgICAgICAgICAgICAvLyBhZGRpdGlv bmFsCi0gICAgICAgVExCSSA8b3AzPlssIDxhcmczPl0gICAgIC8vIGFkZGl0aW9uYWwKLSAgICAg ICBEU0IgSVNICi0KLSAgIC4uLiB3aGVyZWFzIGl0IGlzIHN1ZmZpY2llbnQgdG8gaGF2ZToKLQot ICAgICAgIFRMQkkgPG9wMT5bLCA8YXJnMT5dCi0gICAgICAgVExCSSA8b3AyPlssIDxhcmcyPl0K LSAgICAgICBUTEJJIDxvcDM+WywgPGFyZzM+XQotICAgICAgIERTQiBJU0gKLSAgICAgICBUTEJJ IDxvcFg+WywgPGFyZ1g+XSAgICAgLy8gYWRkaXRpb25hbAotICAgICAgIERTQiBJU0ggICAgICAg ICAgICAgICAgICAvLyBhZGRpdGlvbmFsCi0KLSAgIFVzaW5nIGEgc2luZ2xlIGFkZGl0aW9uYWwg VExCSSBhbmQgRFNCIGF0IHRoZSBlbmQgb2YgdGhlIHNlcXVlbmNlIGNhbgotICAgaGF2ZSBzaWdu aWZpY2FudGx5IGxvd2VyIG92ZXJoZWFkIGFzIGVhY2ggRFNCIHdoaWNoIGNvbXBsZXRlcyBhIFRM QkkKLSAgIG11c3Qgc3luY2hyb25pemUgd2l0aCBvdGhlciBQRXMgaW4gdGhlIHN5c3RlbSwgd2l0 aCBwb3RlbnRpYWwKLSAgIHBlcmZvcm1hbmNlIGVmZmVjdHMgYm90aCBsb2NhbGx5IGFuZCBzeXN0 ZW0td2lkZS4KLQotNC4gVGhlIGV4aXN0aW5nIHdvcmthcm91bmQgcmVwZWF0cyBlYWNoIHNwZWNp ZmljIFRMQkkgb3BlcmF0aW9uLCB3aGVyZWFzCi0gICBmb3IgYWxsIHJlbGV2YW50IGVycmF0YSBp dCBpcyBzdWZmaWNpZW50IGZvciB0aGUgYWRkaXRpb25hbCBUTEJJIHRvCi0gICB1c2UgKmFueSog b3BlcmF0aW9uIHdoaWNoIHdpbGwgYmUgYnJvYWRjYXN0LCByZWdhcmRsZXNzIG9mIHdoaWNoCi0g ICB0cmFuc2xhdGlvbiByZWdpbWUgb3Igc3RhZ2Ugb2YgdHJhbnNsYXRpb24gdGhlIG9wZXJhdGlv biBhcHBsaWVzIHRvLgotCi0gICBGb3IgZXhhbXBsZSwgZm9yIGEgc2luZ2xlIFRMQkk6Ci0KLSAg ICAgICBUTEJJIEFMTEUySVMKLSAgICAgICBEU0IgSVNICi0KLSAgIC4uLiB0aGUgZXhpc3Rpbmcg d29ya2Fyb3VuZCB3aWxsIGV4cGFuZCB0aGlzIHRvOgotCi0gICAgICAgVExCSSBBTExFMklTCi0g ICAgICAgRFNCIElTSAotICAgICAgIFRMQkkgQUxMRTJJUyAgICAgICAgICAgICAvLyBhZGRpdGlv bmFsCi0gICAgICAgRFNCIElTSCAgICAgICAgICAgICAgICAgIC8vIGFkZGl0aW9uYWwKLQotICAg Li4uIHdoZXJlYXMgaXQgaXMgc3VmZmljaWVudCB0byBoYXZlOgotCi0gICAgICAgVExCSSBBTExF MklTCi0gICAgICAgRFNCIElTSAotICAgICAgIFRMQkkgVkFMRTFJUywgWFpSICAgICAgICAvLyBh ZGRpdGlvbmFsCi0gICAgICAgRFNCIElTSCAgICAgICAgICAgICAgICAgIC8vIGFkZGl0aW9uYWwK LQotICAgQXMgdGhlIGFkZGl0aW9uYWwgVExCSSBkb2Vzbid0IGhhdmUgdG8gbWF0Y2ggYSBzcGVj aWZpYyBlYXJsaWVyIFRMQkksCi0gICB0aGUgYWRkaXRpb25hbCBUTEJJIGNhbiBiZSBpbXBsZW1l bnRlZCBpbiBzZXBhcmF0ZSBjb2RlLCB3aXRoIG5vCi0gICBtZW1vcnkgb2YgdGhlIGVhcmxpZXIg VExCSXMuIFRoZSBhZGRpdGlvbmFsIFRMQkkgY2FuIGFsc28gdXNlIGEKLSAgIGNoZWFwZXIgVExC SSBvcGVyYXRpb24uCi0KLTUuIFRoZSBleGlzdGluZyB3b3JrYXJvdW5kIGlzIGFwcGxpZWQgdG8g Ym90aCBTdGFnZS0xIGFuZCBTdGFnZS0yIFRMQgotICAgaW52YWxpZGF0aW9uLCB3aGVyZWFzIGZv ciBhbGwgcmVsZXZhbnQgZXJyYXRhIGl0IGlzIG9ubHkgbmVjZXNzYXJ5IHRvCi0gICBhcHBseSBh IHdvcmthcm91bmQgZm9yIFN0YWdlLTEgaW52YWxpZGF0aW9uLgotCi0gICBBcmNoaXRlY3R1cmFs bHksIFRMQkkgb3BlcmF0aW9ucyB3aGljaCBpbnZhbGlkYXRlIG9ubHkgU3RhZ2UtMgotICAgaW5m b3JtYXRpb24gKGUuZy4gSVBBUzJFMUlTKSBhcmUgbm90IHJlcXVpcmVkIHRvIGludmFsaWRhdGUg VExCCi0gICBlbnRyaWVzIHdoaWNoIGNvbWJpbmUgaW5mb3JtYXRpb24gZnJvbSBTdGFnZS0xIGFu ZCBTdGFnZS0yCi0gICB0cmFuc2xhdGlvbiB0YWJsZSBlbnRyaWVzLCBhbmQgY29uc2VxdWVudGx5 IG1heSBub3QgY29tcGxldGUgbWVtb3J5Ci0gICBhY2Nlc3NlcyB0cmFuc2xhdGVkIGJ5IHRob3Nl IGNvbWJpbmVkIGVudHJpZXMuIEluIHRoZXNlIGNhc2VzLAotICAgY29tcGxldGlvbiBvZiBtZW1v cnkgYWNjZXNzZXMgaXMgb25seSBndWFyYW50ZWVkIGFmdGVyIHN1YnNlcXVlbnQKLSAgIGludmFs aWRhdGlvbiBvZiBTdGFnZS0xIGluZm9ybWF0aW9uIChlLmcuIFZNQUxMRTFJUykuCi0KLVJld29y ayB0aGUgd29ya2Fyb3VuZCBsb2dpYyBhcyBmb2xsb3dzOgotIC0gYWRkIFRMQl9IRUxQRVJfTE9D QUwoKSB0byBiZSB1c2VkIGZvciBsb2NhbCBUTEIgb3BzIHdpdGhvdXQgYQotICAgd29ya2Fyb3Vu ZCwKLSAtIG1vZGlmeSBUTEJfSEVMUEVSKCkgd29ya2Fyb3VuZCB0byB1c2UgdGxiaSB2YWxlMmlz LCB4enIgYXMgYSBzZWNvbmQKLSAgIFRMQkksCi0gLSBkcm9wIFRMQl9IRUxQRVJfVkEoKS4gSXQn cyB1c2VkIG9ubHkgYnkgX19mbHVzaF94ZW5fdGxiX29uZV9sb2NhbAotICAgd2hpY2ggaXMgbG9j YWwgYW5kIGRvZXMgbm90IG5lZWQgd29ya2Fyb3VuZCBhbmQgYnkKLSAgIF9fZmx1c2hfeGVuX3Rs Yl9vbmUuIEluIHRoZSBsYXR0ZXIgY2FzZSwgc2luY2UgaXQncyB1c2VkIGluIGEgbG9vcCwKLSAg IHdlIGRvbid0IG5lZWQgYSB3b3JrYXJvdW5kIGluIHRoZSBtaWRkbGUuIEFkZCBfX3RsYl9yZXBl YXRfc3luYyB3aXRoCi0gICBhIHdvcmthcm91bmQgdG8gYmUgdXNlZCBhdCB0aGUgZW5kIGFmdGVy IERTQiBhbmQgYmVmb3JlIGZpbmFsIElTQiwKLSAtIFRMQkkgVkFMRTJJUyBwYXNzaW5nIFhaUiBp cyB1c2VkIGFzIGFuIGFkZGl0aW9uYWwgVExCSS4gV2hpbGUgdGhlcmUgaXMKLSAgIGFuIGlkZW50 aXR5IG1hcHBpbmcgdGhlcmUsIGl0J3MgdXNlZCB2ZXJ5IHJhcmVseS4gVGhlIHBlcmZvcm1hbmNl Ci0gICBpbXBhY3QgaXMgdGhlcmVmb3JlIG5lZ2xpZ2libGUuIElmIHRoaW5ncyBjaGFuZ2UgaW4g dGhlIGZ1dHVyZSwgd2UKLSAgIGNhbiByZXZpc2l0IHRoZSBkZWNpc2lvbi4KLQotU2lnbmVkLW9m Zi1ieTogTWljaGFsIE9yemVsIDxtaWNoYWwub3J6ZWxAYW1kLmNvbT4KLVJldmlld2VkLWJ5OiBM dWNhIEZhbmNlbGx1IDxsdWNhLmZhbmNlbGx1QGFybS5jb20+Ci1SZXZpZXdlZC1ieTogSnVsaWVu IEdyYWxsIDxqZ3JhbGxAYW1hem9uLmNvbT4KLShjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDdj NTAyZDc1OTE1MTkxMzU3NjViODA0MWNiZDFjNzBlNTZlNWEwYjkpCi0KLWRpZmYgLS1naXQgYS94 ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtMzIvZmx1c2h0bGIuaCBiL3hlbi9hcmNoL2FybS9p bmNsdWRlL2FzbS9hcm0zMi9mbHVzaHRsYi5oCi1pbmRleCA2MWMyNWEzMTg5OTguLjU0ODNiZTA4 ZmJiZSAxMDA2NDQKLS0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm0zMi9mbHVzaHRs Yi5oCi0rKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtMzIvZmx1c2h0bGIuaAotQEAg LTU3LDYgKzU3LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIF9fZmx1c2hfeGVuX3RsYl9vbmUodmFk ZHJfdCB2YSkKLSAgICAgYXNtIHZvbGF0aWxlKFNUT1JFX0NQMzIoMCwgVExCSU1WQUhJUykgOiA6 ICJyIiAodmEpIDogIm1lbW9yeSIpOwotIH0KLSAKLSsvKiBPbmx5IGZvciBBUk02NF9XT1JLQVJP VU5EX1JFUEVBVF9UTEJJICovCi0rc3RhdGljIGlubGluZSB2b2lkIF9fdGxiX3JlcGVhdF9zeW5j KHZvaWQpIHt9Ci0rCi0gI2VuZGlmIC8qIF9fQVNNX0FSTV9BUk0zMl9GTFVTSFRMQl9IX18gKi8K LSAvKgotICAqIExvY2FsIHZhcmlhYmxlczoKLWRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5j bHVkZS9hc20vYXJtNjQvZmx1c2h0bGIuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm02 NC9mbHVzaHRsYi5oCi1pbmRleCAzYjk5YzExYjUwZDEuLjE2MDZiMjZiZjI4YSAxMDA2NDQKLS0t LSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm02NC9mbHVzaHRsYi5oCi0rKysgYi94ZW4v YXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtNjQvZmx1c2h0bGIuaAotQEAgLTEyLDkgKzEyLDE0IEBA Ci0gICogQVJNNjRfV09SS0FST1VORF9SRVBFQVRfVExCSToKLSAgKiBNb2RpZmljYXRpb24gb2Yg dGhlIHRyYW5zbGF0aW9uIHRhYmxlIGZvciBhIHZpcnR1YWwgYWRkcmVzcyBtaWdodCBsZWFkIHRv Ci0gICogcmVhZC1hZnRlci1yZWFkIG9yZGVyaW5nIHZpb2xhdGlvbi4KLS0gKiBUaGUgd29ya2Fy b3VuZCByZXBlYXRzIFRMQkkrRFNCIElTSCBvcGVyYXRpb24gZm9yIGFsbCB0aGUgVExCIGZsdXNo Ci0tICogb3BlcmF0aW9ucy4gV2hpbGUgdGhpcyBpcyBzdHJpY3RseSBub3QgbmVjZXNzYXJ5LCB3 ZSBkb24ndCB3YW50IHRvCi0tICogdGFrZSBhbnkgcmlzay4KLSsgKiBUaGUgd29ya2Fyb3VuZCBy ZXBlYXRzIFRMQkkrRFNCIElTSCBvcGVyYXRpb24gZm9yIGJyb2FkY2FzdCBUTEIgZmx1c2gKLSsg KiBvcGVyYXRpb25zLiBUaGUgd29ya2Fyb3VuZCBpcyBub3QgbmVlZGVkIGZvciBsb2NhbCBvcGVy YXRpb25zLgotKyAqCi0rICogSXQgaXMgc3VmZmljaWVudCBmb3IgdGhlIGFkZGl0aW9uYWwgVExC SSB0byB1c2UgKmFueSogb3BlcmF0aW9uIHdoaWNoIHdpbGwKLSsgKiBiZSBicm9hZGNhc3QsIHJl Z2FyZGxlc3Mgb2Ygd2hpY2ggdHJhbnNsYXRpb24gcmVnaW1lIG9yIHN0YWdlIG9mIHRyYW5zbGF0 aW9uCi0rICogdGhlIG9wZXJhdGlvbiBhcHBsaWVzIHRvLiBUTEJJIFZBTEUySVMgaXMgdXNlZCBw YXNzaW5nIFhaUi4gV2hpbGUgdGhlcmUgaXMKLSsgKiBhbiBpZGVudGl0eSBtYXBwaW5nIHRoZXJl LCBpdCdzIG9ubHkgdXNlZCBkdXJpbmcgc3VzcGVuZC9yZXN1bWUsIENQVSBvbi9vZmYsCi0rICog c28gdGhlIGltcGFjdCAocGVyZm9ybWFuY2UgaWYgYW55KSBpcyBuZWdsaWdpYmxlLgotICAqCi0g ICogRm9yIFhlbiBwYWdlLXRhYmxlcyB0aGUgSVNCIHdpbGwgZGlzY2FyZCBhbnkgaW5zdHJ1Y3Rp b25zIGZldGNoZWQKLSAgKiBmcm9tIHRoZSBvbGQgbWFwcGluZ3MuCi1AQCAtMjYsNjkgKzMxLDkw IEBACi0gICogTm90ZSB0aGF0IGZvciBsb2NhbCBUTEIgZmx1c2gsIHVzaW5nIG5vbi1zaGFyZWFi bGUgKG5zaCkgaXMgc3VmZmljaWVudAotICAqIChzZWUgRDUtNDkyOSBpbiBBUk0gRERJIDA0ODdI LmEpLiBBbHRob3VnaCwgdGhlIG1lbW9yeSBiYXJyaWVyIGluCi0gICogZm9yIHRoZSB3b3JrYXJv dW5kIGlzIGxlZnQgYXMgaW5uZXItc2hhcmVhYmxlIHRvIG1hdGNoIHdpdGggTGludXgKLS0gKiB2 Ni4xLXJjOC4KLSsgKiB2Ni4xOS4KLSAgKi8KLS0jZGVmaW5lIFRMQl9IRUxQRVIobmFtZSwgdGxi b3AsIHNoKSAgICAgICAgICAgICAgXAotKyNkZWZpbmUgVExCX0hFTFBFUl9MT0NBTChuYW1lLCB0 bGJvcCkgICAgICAgICAgICBcCi0gc3RhdGljIGlubGluZSB2b2lkIG5hbWUodm9pZCkgICAgICAg ICAgICAgICAgICAgIFwKLSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAotICAgICBhc21faW5saW5lIHZvbGF0aWxlICggICAgICAgICAgICAgICAgICAg ICAgICBcCi0tICAgICAgICAiZHNiICAiICAjIHNoICAic3Q7IiAgICAgICAgICAgICAgICAgICAg IFwKLSsgICAgICAgICJkc2IgIG5zaHN0OyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot ICAgICAgICAgInRsYmkgIiAgIyB0bGJvcCAgIjsiICAgICAgICAgICAgICAgICAgICBcCi0tICAg ICAgICBBTFRFUk5BVElWRSggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLS0gICAgICAg ICAgICAibm9wOyBub3A7IiwgICAgICAgICAgICAgICAgICAgICAgICAgXAotLSAgICAgICAgICAg ICJkc2IgIGlzaDsiICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0tICAgICAgICAgICAgInRs YmkgIiAgIyB0bGJvcCAgIjsiLCAgICAgICAgICAgICAgIFwKLS0gICAgICAgICAgICBBUk02NF9X T1JLQVJPVU5EX1JFUEVBVF9UTEJJLCAgICAgICAgXAotLSAgICAgICAgICAgIENPTkZJR19BUk02 NF9XT1JLQVJPVU5EX1JFUEVBVF9UTEJJKSBcCi0tICAgICAgICAiZHNiICAiICAjIHNoICAiOyIg ICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgICAgICJkc2IgIG5zaDsiICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgImlzYjsiICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCi0gICAgICAgICA6IDogOiAibWVtb3J5Iik7ICAgICAgICAgICAgICAg ICAgICAgICAgIFwKLSB9Ci0gCi0tLyoKLS0gKiBGTHVzaCBUTEIgYnkgVkEuIFRoaXMgd2lsbCBs aWtlbHkgYmUgdXNlZCBpbiBhIGxvb3AsIHNvIHRoZSBjYWxsZXIKLS0gKiBpcyByZXNwb25zaWJs ZSB0byB1c2UgdGhlIGFwcHJvcHJpYXRlIG1lbW9yeSBiYXJyaWVycyBiZWZvcmUvYWZ0ZXIKLS0g KiB0aGUgc2VxdWVuY2UuCi0tICoKLS0gKiBTZWUgYWJvdmUgYWJvdXQgdGhlIEFSTTY0X1dPUktB Uk9VTkRfUkVQRUFUX1RMQkkgc2VxdWVuY2UuCi0tICovCi0tI2RlZmluZSBUTEJfSEVMUEVSX1ZB KG5hbWUsIHRsYm9wKSAgICAgICAgICAgICAgIFwKLS1zdGF0aWMgaW5saW5lIHZvaWQgbmFtZSh2 YWRkcl90IHZhKSAgICAgICAgICAgICAgXAotLXsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCi0tICAgIGFzbV9pbmxpbmUgdm9sYXRpbGUgKCAgICAgICAg ICAgICAgICAgICAgICAgIFwKLS0gICAgICAgICJ0bGJpICIgICMgdGxib3AgICIsICUwOyIgICAg ICAgICAgICAgICAgXAotLSAgICAgICAgQUxURVJOQVRJVkUoICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCi0tICAgICAgICAgICAgIm5vcDsgbm9wOyIsICAgICAgICAgICAgICAgICAgICAg ICAgIFwKLS0gICAgICAgICAgICAiZHNiICBpc2g7IiAgICAgICAgICAgICAgICAgICAgICAgICAg XAotLSAgICAgICAgICAgICJ0bGJpICIgICMgdGxib3AgICIsICUwOyIsICAgICAgICAgICBcCi0t ICAgICAgICAgICAgQVJNNjRfV09SS0FST1VORF9SRVBFQVRfVExCSSwgICAgICAgIFwKLS0gICAg ICAgICAgICBDT05GSUdfQVJNNjRfV09SS0FST1VORF9SRVBFQVRfVExCSSkgXAotLSAgICAgICAg OiA6ICJyIiAodmEgPj4gUEFHRV9TSElGVCkgOiAibWVtb3J5Iik7ICBcCi0rI2RlZmluZSBUTEJf SEVMUEVSKG5hbWUsIHRsYm9wKSAgICAgICAgICAgICAgICAgICAgICAgXAotK3N0YXRpYyBpbmxp bmUgdm9pZCBuYW1lKHZvaWQpICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSt7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgIGFzbV9p bmxpbmUgdm9sYXRpbGUgKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAgICAg ImRzYiAgaXNoc3Q7IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgICAg ICJ0bGJpICIgICMgdGxib3AgICI7IiAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgICAg ICBBTFRFUk5BVElWRSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAg ICAgICAgICJub3A7IG5vcDsiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAg ICAgICAgICAiZHNiICBpc2g7IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAg ICAgICAgICAgInRsYmkgdmFsZTJpcywgeHpyOyIsICAgICAgICAgICAgICAgICAgICAgXAotKyAg ICAgICAgICAgIEFSTTY0X1dPUktBUk9VTkRfUkVQRUFUX1RMQkksICAgICAgICAgICAgIFwKLSsg ICAgICAgICAgICBDT05GSUdfQVJNNjRfV09SS0FST1VORF9SRVBFQVRfVExCSSkgICAgICBcCi0r ICAgICAgICAiZHNiICBpc2g7IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot KyAgICAgICAgImlzYjsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK LSsgICAgICAgIDogOiA6ICJtZW1vcnkiKTsgXAotIH0KLSAKLSAvKiBGbHVzaCBsb2NhbCBUTEJz LCBjdXJyZW50IFZNSUQgb25seS4gKi8KLS1UTEJfSEVMUEVSKGZsdXNoX2d1ZXN0X3RsYl9sb2Nh bCwgdm1hbGxzMTJlMSwgbnNoKQotK1RMQl9IRUxQRVJfTE9DQUwoZmx1c2hfZ3Vlc3RfdGxiX2xv Y2FsLCB2bWFsbHMxMmUxKQotIAotIC8qIEZsdXNoIGlubmVyc2hhcmVhYmxlIFRMQnMsIGN1cnJl bnQgVk1JRCBvbmx5ICovCi0tVExCX0hFTFBFUihmbHVzaF9ndWVzdF90bGIsIHZtYWxsczEyZTFp cywgaXNoKQotK1RMQl9IRUxQRVIoZmx1c2hfZ3Vlc3RfdGxiLCB2bWFsbHMxMmUxaXMpCi0gCi0g LyogRmx1c2ggbG9jYWwgVExCcywgYWxsIFZNSURzLCBub24taHlwZXJ2aXNvciBtb2RlICovCi0t VExCX0hFTFBFUihmbHVzaF9hbGxfZ3Vlc3RzX3RsYl9sb2NhbCwgYWxsZTEsIG5zaCkKLStUTEJf SEVMUEVSX0xPQ0FMKGZsdXNoX2FsbF9ndWVzdHNfdGxiX2xvY2FsLCBhbGxlMSkKLSAKLSAvKiBG bHVzaCBpbm5lcnNoYXJlYWJsZSBUTEJzLCBhbGwgVk1JRHMsIG5vbi1oeXBlcnZpc29yIG1vZGUg Ki8KLS1UTEJfSEVMUEVSKGZsdXNoX2FsbF9ndWVzdHNfdGxiLCBhbGxlMWlzLCBpc2gpCi0rVExC X0hFTFBFUihmbHVzaF9hbGxfZ3Vlc3RzX3RsYiwgYWxsZTFpcykKLSAKLSAvKiBGbHVzaCBhbGwg aHlwZXJ2aXNvciBtYXBwaW5ncyBmcm9tIHRoZSBUTEIgb2YgdGhlIGxvY2FsIHByb2Nlc3Nvci4g Ki8KLS1UTEJfSEVMUEVSKGZsdXNoX3hlbl90bGJfbG9jYWwsIGFsbGUyLCBuc2gpCi0rVExCX0hF TFBFUl9MT0NBTChmbHVzaF94ZW5fdGxiX2xvY2FsLCBhbGxlMikKLSsKLSsjdW5kZWYgVExCX0hF TFBFUl9MT0NBTAotKyN1bmRlZiBUTEJfSEVMUEVSCi0rCi0rLyoKLSsgKiBGTHVzaCBUTEIgYnkg VkEuIFRoaXMgd2lsbCBsaWtlbHkgYmUgdXNlZCBpbiBhIGxvb3AsIHNvIHRoZSBjYWxsZXIKLSsg KiBpcyByZXNwb25zaWJsZSB0byB1c2UgdGhlIGFwcHJvcHJpYXRlIG1lbW9yeSBiYXJyaWVycyBi ZWZvcmUvYWZ0ZXIKLSsgKiB0aGUgc2VxdWVuY2UuCi0rICovCi0gCi0gLyogRmx1c2ggVExCIG9m IGxvY2FsIHByb2Nlc3NvciBmb3IgYWRkcmVzcyB2YS4gKi8KLS1UTEJfSEVMUEVSX1ZBKF9fZmx1 c2hfeGVuX3RsYl9vbmVfbG9jYWwsIHZhZTIpCi0rc3RhdGljIGlubGluZSB2b2lkIF9fZmx1c2hf eGVuX3RsYl9vbmVfbG9jYWwodmFkZHJfdCB2YSkKLSt7Ci0rICAgIGFzbV9pbmxpbmUgdm9sYXRp bGUgKAotKyAgICAgICAgInRsYmkgdmFlMiwgJTAiIDogOiAiciIgKHZhID4+IFBBR0VfU0hJRlQp IDogIm1lbW9yeSIpOwotK30KLSAKLSAvKiBGbHVzaCBUTEIgb2YgYWxsIHByb2Nlc3NvcnMgaW4g dGhlIGlubmVyLXNoYXJlYWJsZSBkb21haW4gZm9yIGFkZHJlc3MgdmEuICovCi0tVExCX0hFTFBF Ul9WQShfX2ZsdXNoX3hlbl90bGJfb25lLCB2YWUyaXMpCi0rc3RhdGljIGlubGluZSB2b2lkIF9f Zmx1c2hfeGVuX3RsYl9vbmUodmFkZHJfdCB2YSkKLSt7Ci0rICAgIGFzbV9pbmxpbmUgdm9sYXRp bGUgKAotKyAgICAgICAgInRsYmkgdmFlMmlzLCAlMCIgOiA6ICJyIiAodmEgPj4gUEFHRV9TSElG VCkgOiAibWVtb3J5Iik7Ci0rfQotIAotLSN1bmRlZiBUTEJfSEVMUEVSCi0tI3VuZGVmIFRMQl9I RUxQRVJfVkEKLSsvKgotKyAqIEFSTTY0X1dPUktBUk9VTkRfUkVQRUFUX1RMQkk6Ci0rICogRm9y IGFsbCByZWxldmFudCBlcnJhdGFzIGl0IGlzIG9ubHkgbmVjZXNzYXJ5IHRvIGV4ZWN1dGUgYSBz aW5nbGUKLSsgKiBhZGRpdGlvbmFsIFRMQkk7RFNCIHNlcXVlbmNlIGFmdGVyIGFueSBudW1iZXIg b2YgVExCSXMgYXJlIGNvbXBsZXRlZCBieSBEU0IuCi0rICovCi0rc3RhdGljIGlubGluZSB2b2lk IF9fdGxiX3JlcGVhdF9zeW5jKHZvaWQpCi0rewotKyAgICBhc21faW5saW5lIHZvbGF0aWxlICgK LSsgICAgICAgIEFMVEVSTkFUSVZFKAotKyAgICAgICAgICAgICJub3A7IG5vcDsiLAotKyAgICAg ICAgICAgICJ0bGJpIHZhbGUyaXMsIHh6cjsiCi0rICAgICAgICAgICAgImRzYiAgaXNoOyIsCi0r ICAgICAgICAgICAgQVJNNjRfV09SS0FST1VORF9SRVBFQVRfVExCSSwKLSsgICAgICAgICAgICBD T05GSUdfQVJNNjRfV09SS0FST1VORF9SRVBFQVRfVExCSSkKLSsgICAgICAgIDogOiA6ICJtZW1v cnkiKTsKLSt9Ci0gCi0gI2VuZGlmIC8qIF9fQVNNX0FSTV9BUk02NF9GTFVTSFRMQl9IX18gKi8K LSAvKgotZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9mbHVzaHRsYi5oIGIv eGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2ZsdXNodGxiLmgKLWluZGV4IGU0NWZiNmQ5N2IwMi4u YzI5MmMzYzAwZDI5IDEwMDY0NAotLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2ZsdXNo dGxiLmgKLSsrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9mbHVzaHRsYi5oCi1AQCAtNjUs NiArNjUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmx1c2hfeGVuX3RsYl9yYW5nZV92YSh2YWRk cl90IHZhLAotICAgICAgICAgdmEgKz0gUEFHRV9TSVpFOwotICAgICB9Ci0gICAgIGRzYihpc2gp OyAvKiBFbnN1cmUgdGhlIFRMQiBpbnZhbGlkYXRpb24gaGFzIGNvbXBsZXRlZCAqLwotKyAgICBf X3RsYl9yZXBlYXRfc3luYygpOwotICAgICBpc2IoKTsKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEveGVu L2FyY2gvYXJtL2luY2x1ZGUvYXNtL21tdS9sYXlvdXQuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRl L2FzbS9tbXUvbGF5b3V0LmgKLWluZGV4IDE5YzBlYzYzYTU5YS4uZmVhZmMxNGViZmRhIDEwMDY0 NAotLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21tdS9sYXlvdXQuaAotKysrIGIveGVu L2FyY2gvYXJtL2luY2x1ZGUvYXNtL21tdS9sYXlvdXQuaAotQEAgLTIzLDYgKzIzLDEwIEBACi0g ICoKLSAgKiAgUmVzZXJ2ZWQgdG8gaWRlbnRpdHkgbWFwIFhlbgotICAqCi0rICogIE5vdGU6IEFz IHBhcnQgb2YgQVJNNjRfV09SS0FST1VORF9SRVBFQVRfVExCSSwgVkEgMCBpcyB1c2VkIGZvciBh biBleHRyYQotKyAqICBUTEJJIG9wZXJhdGlvbiBnaXZlbiBpdHMgcmFyZSB1c2UgKG9ubHkgaWRl bnRpdHkgbWFwcGluZykgYW5kIHRodXMKLSsgKiAgbmVnbGlnaWJsZSBwZXJmb3JtYW5jZSBpbXBh Y3QuCi0rICoKLSAgKiAweDAwMDAwYTAwMDAwMDAwMDAgLSAweDAwMDAwYTdmZmZmZmZmZmYgKDUx MkdCLCBMMCBzbG90IFsyMF0pCi0gICogIChSZWxhdGl2ZSBvZmZzZXRzKQotICAqICAgMCAgLSAg IDJNICAgVW5tYXBwZWQKCmRpZmYgLS1naXQgYS94c2E0OTMtNC4yMS0wMi5wYXRjaCBiL3hzYTQ5 My00LjIxLTAyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODAxMTljLi4w MDAwMDAwCi0tLSBhL3hzYTQ5My00LjIxLTAyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzEg KzAsMCBAQAotRnJvbSA3ZTcwYjg3NTEyYzk2NjI0OGIxZTg0NTNkOWFjNTRjNjQzYzA2ZjQ0IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWljaGFsIE9yemVsIDxtaWNoYWwub3J6ZWxA YW1kLmNvbT4KLURhdGU6IEZyaSwgMjIgTWF5IDIwMjYgMDk6MzU6NTUgKzAyMDAKLVN1YmplY3Q6 IHhlbi9hcm06IFN5bmMgbWlzc2luZyBkZWZpbml0aW9ucyBmb3IgQXJtIENQVXMgd2l0aCBMaW51 eAotCi1TeW5jaHJvbml6ZSB3aXRoIExpbnV4IGtlcm5lbCA3LjAgZGVmaW5pdGlvbnMgZm9yIHRo ZSBmb2xsb3dpbmcgQ1BVczoKLSAtIENvcnRleC1BNzZBRSwKLSAtIENvcnRleC1BNzhBRSwKLSAt IENvcnRleC1YMUMsCi0gLSBDb3J0ZXgtWDMsCi0gLSBOZW92ZXJzZS1WMiwKLSAtIENvcnRleC1Y NCwKLSAtIE5lb3ZlcnNlLVYzQUUsCi0gLSBOZW92ZXJzZS1WMywKLSAtIENvcnRleC1YOTI1Lgot Ci1UaGVzZSB3aWxsIGJlIHVzZWQgZm9yIGVycmF0YSBkZXRlY3Rpb24gaW4gc3Vic2VxdWVudCBw YXRjaGVzLgotCi1TaWduZWQtb2ZmLWJ5OiBNaWNoYWwgT3J6ZWwgPG1pY2hhbC5vcnplbEBhbWQu Y29tPgotUmV2aWV3ZWQtYnk6IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+Ci0KLWRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vcHJvY2Vzc29yLmggYi94ZW4vYXJjaC9h cm0vaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgKLWluZGV4IGVjMjNmZDA5OGI2My4uOTA3Nzc4Njgz YjA4IDEwMDY0NAotLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCi0r KysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgKLUBAIC04OSwxMyArODks MjIgQEAKLSAjZGVmaW5lIEFSTV9DUFVfUEFSVF9DT1JURVhfQTc2ICAgICAweEQwQgotICNkZWZp bmUgQVJNX0NQVV9QQVJUX05FT1ZFUlNFX04xICAgIDB4RDBDCi0gI2RlZmluZSBBUk1fQ1BVX1BB UlRfQ09SVEVYX0E3NyAgICAgMHhEMEQKLSsjZGVmaW5lIEFSTV9DUFVfUEFSVF9DT1JURVhfQTc2 QUUgICAweEQwRQotICNkZWZpbmUgQVJNX0NQVV9QQVJUX05FT1ZFUlNFX1YxICAgIDB4RDQwCi0g I2RlZmluZSBBUk1fQ1BVX1BBUlRfQ09SVEVYX0E3OCAgICAgMHhENDEKLSsjZGVmaW5lIEFSTV9D UFVfUEFSVF9DT1JURVhfQTc4QUUgICAweEQ0MgotICNkZWZpbmUgQVJNX0NQVV9QQVJUX0NPUlRF WF9YMSAgICAgIDB4RDQ0Ci0gI2RlZmluZSBBUk1fQ1BVX1BBUlRfQ09SVEVYX0E3MTAgICAgMHhE NDcKLSAjZGVmaW5lIEFSTV9DUFVfUEFSVF9DT1JURVhfWDIgICAgICAweEQ0OAotICNkZWZpbmUg QVJNX0NQVV9QQVJUX05FT1ZFUlNFX04yICAgIDB4RDQ5Ci0gI2RlZmluZSBBUk1fQ1BVX1BBUlRf Q09SVEVYX0E3OEMgICAgMHhENEIKLSsjZGVmaW5lIEFSTV9DUFVfUEFSVF9DT1JURVhfWDFDICAg ICAweEQ0QwotKyNkZWZpbmUgQVJNX0NQVV9QQVJUX0NPUlRFWF9YMyAgICAgIDB4RDRFCi0rI2Rl ZmluZSBBUk1fQ1BVX1BBUlRfTkVPVkVSU0VfVjIgICAgMHhENEYKLSsjZGVmaW5lIEFSTV9DUFVf UEFSVF9DT1JURVhfWDQgICAgICAweEQ4MgotKyNkZWZpbmUgQVJNX0NQVV9QQVJUX05FT1ZFUlNF X1YzQUUgIDB4RDgzCi0rI2RlZmluZSBBUk1fQ1BVX1BBUlRfTkVPVkVSU0VfVjMgICAgMHhEODQK LSsjZGVmaW5lIEFSTV9DUFVfUEFSVF9DT1JURVhfWDkyNSAgICAweEQ4NQotIAotICNkZWZpbmUg TUlEUl9DT1JURVhfQTEyIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9Q QVJUX0NPUlRFWF9BMTIpCi0gI2RlZmluZSBNSURSX0NPUlRFWF9BMTcgTUlEUl9DUFVfTU9ERUwo QVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVYX0ExNykKLUBAIC0xMTAsMTMgKzEx OSwyMiBAQAotICNkZWZpbmUgTUlEUl9DT1JURVhfQTc2IE1JRFJfQ1BVX01PREVMKEFSTV9DUFVf SU1QX0FSTSwgQVJNX0NQVV9QQVJUX0NPUlRFWF9BNzYpCi0gI2RlZmluZSBNSURSX05FT1ZFUlNF X04xIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX05FT1ZFUlNF X04xKQotICNkZWZpbmUgTUlEUl9DT1JURVhfQTc3IE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1Q X0FSTSwgQVJNX0NQVV9QQVJUX0NPUlRFWF9BNzcpCi0rI2RlZmluZSBNSURSX0NPUlRFWF9BNzZB RSBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9DT1JURVhfQTc2 QUUpCi0gI2RlZmluZSBNSURSX05FT1ZFUlNFX1YxIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1Q X0FSTSwgQVJNX0NQVV9QQVJUX05FT1ZFUlNFX1YxKQotICNkZWZpbmUgTUlEUl9DT1JURVhfQTc4 IE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX0NPUlRFWF9BNzgp Ci0rI2RlZmluZSBNSURSX0NPUlRFWF9BNzhBRSBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9B Uk0sIEFSTV9DUFVfUEFSVF9DT1JURVhfQTc4QUUpCi0gI2RlZmluZSBNSURSX0NPUlRFWF9YMSAg TUlEUl9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVYX1gxKQot ICNkZWZpbmUgTUlEUl9DT1JURVhfQTcxMCBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0s IEFSTV9DUFVfUEFSVF9DT1JURVhfQTcxMCkKLSAjZGVmaW5lIE1JRFJfQ09SVEVYX1gyICBNSURS X0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9DT1JURVhfWDIpCi0gI2Rl ZmluZSBNSURSX05FT1ZFUlNFX04yIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJN X0NQVV9QQVJUX05FT1ZFUlNFX04yKQotICNkZWZpbmUgTUlEUl9DT1JURVhfQTc4QyBNSURSX0NQ VV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9DT1JURVhfQTc4QykKLSsjZGVm aW5lIE1JRFJfQ09SVEVYX1gxQyBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9D UFVfUEFSVF9DT1JURVhfWDFDKQotKyNkZWZpbmUgTUlEUl9DT1JURVhfWDMgTUlEUl9DUFVfTU9E RUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVYX1gzKQotKyNkZWZpbmUgTUlE Ul9ORU9WRVJTRV9WMiBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFS VF9ORU9WRVJTRV9WMikKLSsjZGVmaW5lIE1JRFJfQ09SVEVYX1g0IE1JRFJfQ1BVX01PREVMKEFS TV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX0NPUlRFWF9YNCkKLSsjZGVmaW5lIE1JRFJfTkVP VkVSU0VfVjNBRSBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9O RU9WRVJTRV9WM0FFKQotKyNkZWZpbmUgTUlEUl9ORU9WRVJTRV9WMyBNSURSX0NQVV9NT0RFTChB Uk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9ORU9WRVJTRV9WMykKLSsjZGVmaW5lIE1JRFJf Q09SVEVYX1g5MjUgTUlEUl9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRf Q09SVEVYX1g5MjUpCi0gCi0gLyogTVBJRFIgTXVsdGlwcm9jZXNzb3IgQWZmaW5pdHkgUmVnaXN0 ZXIgKi8KLSAjZGVmaW5lIF9NUElEUl9VUCAgICAgICAgICAgKDMwKQoKZGlmZiAtLWdpdCBhL3hz YTQ5My00LjIxLTAzLnBhdGNoIGIveHNhNDkzLTQuMjEtMDMucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDg2YmFlNjguLjAwMDAwMDAKLS0tIGEveHNhNDkzLTQuMjEtMDMucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1Gcm9tIGMwZjdiNDBmZGJiOTg2YjNj ZjQ3MGVkNTFmMzg3ODI2MWUzM2Y5Y2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBN aWNoYWwgT3J6ZWwgPG1pY2hhbC5vcnplbEBhbWQuY29tPgotRGF0ZTogRnJpLCAyMiBNYXkgMjAy NiAwOTozNTo1NiArMDIwMAotU3ViamVjdDogeGVuL2FybTogQWRkIEMxLVVsdHJhIGRlZmluaXRp b25zCi0KLUFkZCBwcm9jZXNzb3IgZGVmaW5pdGlvbnMgZm9yIEMxLVVsdHJhLiBUaGVzZSB3aWxs IGJlIHVzZWQgZm9yIGVycmF0YQotZGV0ZWN0aW9uIGluIHN1YnNlcXVlbnQgcGF0Y2hlcy4KLQot VGhlc2UgdmFsdWVzIGNhbiBiZSBmb3VuZCBpbiB0aGUgQzEtVWx0cmEgVFJNOgotCi0gIGh0dHBz Oi8vZGV2ZWxvcGVyLmFybS5jb20vZG9jdW1lbnRhdGlvbi8xMDgwMTQvMDEwMC8KLQotLi4uIGlu IHNlY3Rpb24gQS41LjEgKCJNSURSX0VMMSwgTWFpbiBJRCBSZWdpc3RlciIpLgotCi1TaWduZWQt b2ZmLWJ5OiBNaWNoYWwgT3J6ZWwgPG1pY2hhbC5vcnplbEBhbWQuY29tPgotUmV2aWV3ZWQtYnk6 IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+Ci0KLWRpZmYgLS1naXQgYS94ZW4vYXJjaC9h cm0vaW5jbHVkZS9hc20vcHJvY2Vzc29yLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vcHJv Y2Vzc29yLmgKLWluZGV4IDkwNzc3ODY4M2IwOC4uNzI3NDVjY2E2MmJjIDEwMDY0NAotLS0tIGEv eGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCi0rKysgYi94ZW4vYXJjaC9hcm0v aW5jbHVkZS9hc20vcHJvY2Vzc29yLmgKLUBAIC0xMDUsNiArMTA1LDcgQEAKLSAjZGVmaW5lIEFS TV9DUFVfUEFSVF9ORU9WRVJTRV9WM0FFICAweEQ4MwotICNkZWZpbmUgQVJNX0NQVV9QQVJUX05F T1ZFUlNFX1YzICAgIDB4RDg0Ci0gI2RlZmluZSBBUk1fQ1BVX1BBUlRfQ09SVEVYX1g5MjUgICAg MHhEODUKLSsjZGVmaW5lIEFSTV9DUFVfUEFSVF9DMV9VTFRSQSAgICAgICAweEQ4QwotIAotICNk ZWZpbmUgTUlEUl9DT1JURVhfQTEyIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJN X0NQVV9QQVJUX0NPUlRFWF9BMTIpCi0gI2RlZmluZSBNSURSX0NPUlRFWF9BMTcgTUlEUl9DUFVf TU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVYX0ExNykKLUBAIC0xMzUs NiArMTM2LDcgQEAKLSAjZGVmaW5lIE1JRFJfTkVPVkVSU0VfVjNBRSBNSURSX0NQVV9NT0RFTChB Uk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9ORU9WRVJTRV9WM0FFKQotICNkZWZpbmUgTUlE Ul9ORU9WRVJTRV9WMyBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFS VF9ORU9WRVJTRV9WMykKLSAjZGVmaW5lIE1JRFJfQ09SVEVYX1g5MjUgTUlEUl9DUFVfTU9ERUwo QVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVYX1g5MjUpCi0rI2RlZmluZSBNSURS X0MxX1VMVFJBIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX0Mx X1VMVFJBKQotIAotIC8qIE1QSURSIE11bHRpcHJvY2Vzc29yIEFmZmluaXR5IFJlZ2lzdGVyICov Ci0gI2RlZmluZSBfTVBJRFJfVVAgICAgICAgICAgICgzMCkKCmRpZmYgLS1naXQgYS94c2E0OTMt NC4yMS0wNC5wYXRjaCBiL3hzYTQ5My00LjIxLTA0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBiNTllZTc0Li4wMDAwMDAwCi0tLSBhL3hzYTQ5My00LjIxLTA0LnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotRnJvbSA2YWY2N2FlY2E0MThiZmZiODA3NDI0 ZWIzNDE1ZmFiNTllNTgxNzMzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWljaGFs IE9yemVsIDxtaWNoYWwub3J6ZWxAYW1kLmNvbT4KLURhdGU6IEZyaSwgMjIgTWF5IDIwMjYgMDk6 MzU6NTcgKzAyMDAKLVN1YmplY3Q6IHhlbi9hcm06IEFkZCBDMS1QcmVtaXVtIGRlZmluaXRpb25z Ci0KLUFkZCBwcm9jZXNzb3IgZGVmaW5pdGlvbnMgZm9yIEMxLVByZW1pdW0uIFRoZXNlIHdpbGwg YmUgdXNlZCBmb3IgZXJyYXRhCi1kZXRlY3Rpb24gaW4gc3Vic2VxdWVudCBwYXRjaGVzLgotCi1U aGVzZSB2YWx1ZXMgY2FuIGJlIGZvdW5kIGluIHRoZSBDMS1QcmVtaXVtIFRSTToKLQotICBodHRw czovL2RldmVsb3Blci5hcm0uY29tL2RvY3VtZW50YXRpb24vMTA5NDE2LzAxMDAvCi0KLS4uLiBp biBzZWN0aW9uIEEuNS4xICgiTUlEUl9FTDEsIE1haW4gSUQgUmVnaXN0ZXIiKS4KLQotU2lnbmVk LW9mZi1ieTogTWljaGFsIE9yemVsIDxtaWNoYWwub3J6ZWxAYW1kLmNvbT4KLVJldmlld2VkLWJ5 OiBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPgotCi1kaWZmIC0tZ2l0IGEveGVuL2FyY2gv YXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3By b2Nlc3Nvci5oCi1pbmRleCA3Mjc0NWNjYTYyYmMuLjI1YzU3NjJjNjcwNiAxMDA2NDQKLS0tLSBh L3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaAotKysrIGIveGVuL2FyY2gvYXJt L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCi1AQCAtMTA2LDYgKzEwNiw3IEBACi0gI2RlZmluZSBB Uk1fQ1BVX1BBUlRfTkVPVkVSU0VfVjMgICAgMHhEODQKLSAjZGVmaW5lIEFSTV9DUFVfUEFSVF9D T1JURVhfWDkyNSAgICAweEQ4NQotICNkZWZpbmUgQVJNX0NQVV9QQVJUX0MxX1VMVFJBICAgICAg IDB4RDhDCi0rI2RlZmluZSBBUk1fQ1BVX1BBUlRfQzFfUFJFTUlVTSAgICAgMHhEOTAKLSAKLSAj ZGVmaW5lIE1JRFJfQ09SVEVYX0ExMiBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFS TV9DUFVfUEFSVF9DT1JURVhfQTEyKQotICNkZWZpbmUgTUlEUl9DT1JURVhfQTE3IE1JRFJfQ1BV X01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX0NPUlRFWF9BMTcpCi1AQCAtMTM3 LDYgKzEzOCw3IEBACi0gI2RlZmluZSBNSURSX05FT1ZFUlNFX1YzIE1JRFJfQ1BVX01PREVMKEFS TV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX05FT1ZFUlNFX1YzKQotICNkZWZpbmUgTUlEUl9D T1JURVhfWDkyNSBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9D T1JURVhfWDkyNSkKLSAjZGVmaW5lIE1JRFJfQzFfVUxUUkEgTUlEUl9DUFVfTU9ERUwoQVJNX0NQ VV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQzFfVUxUUkEpCi0rI2RlZmluZSBNSURSX0MxX1BSRU1J VU0gTUlEUl9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQzFfUFJFTUlV TSkKLSAKLSAvKiBNUElEUiBNdWx0aXByb2Nlc3NvciBBZmZpbml0eSBSZWdpc3RlciAqLwotICNk ZWZpbmUgX01QSURSX1VQICAgICAgICAgICAoMzApCgpkaWZmIC0tZ2l0IGEveHNhNDk0LTQuMjEu cGF0Y2ggYi94c2E0OTQtNC4yMS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg ZDUyYTBmMS4uMDAwMDAwMAotLS0gYS94c2E0OTQtNC4yMS5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDQwNCArMCwwIEBACi1Gcm9tIDU3OTAxNmEzNTk3NDEwNDRjOTA3NmJmMDg4NGUxZGJhYjAw YWIwODAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSb2dlciBQYXUgTW9ubmUgPHJv Z2VyLnBhdUBjaXRyaXguY29tPgotRGF0ZTogTW9uLCAxNiBNYXIgMjAyNiAxMTowMzoyMiArMDEw MAotU3ViamVjdDogW1BBVENIXSB4ODYvbW06IGFjY3VyYXRlbHkgdHJhY2sgd2hpY2ggdkNQVSBw YWdlLXRhYmxlcyBhcmUgbG9hZGVkCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0 Ci0KLU5laXRoZXIgY3VycmVudCBub3IgY3Vycl92Y3B1IHBlci1DUFUgZmllbGRzIGFjY3VyYXRl bHkgdHJhY2sgd2hpY2gKLXBhZ2UtdGFibGVzIGFyZSBsb2FkZWQuICBUaGVyZSBhcmUgY29ybmVy IGNhc2VzIHdoZW4gZGVhbGluZyB3aXRoIHNoYWRvdwotcGFnaW5nIGZhaWx1cmVzIHRoYXQgc3dp dGNoIHRvIHRoZSBpZGxlIHZDUFUgcGFnZS10YWJsZXMgd2l0aG91dCBjaGFuZ2luZwotY3VycmVu dCBvciBjdXJyX3ZjcHUgcGVyLUNQVSBmaWVsZHMuCi0KLUludHJvZHVjZSBhIG5ldyBwZXItQ1BV IGZpZWxkIHRoYXQgYXR0ZW1wdHMgdG8gdHJhY2sgd2hpY2ggdkNQVSBwYWdlLXRhYmxlcwotYXJl IGxvYWRlZC4gIFVwZGF0ZSBzdWNoIHRyYWNraW5nIHdoZW4gY3IzIGlzIGNoYW5nZWQsIGFuZCBk byBzbyBpbiBhCi1yZWdpb24gd2l0aCBpbnRlcnJ1cHRzIGRpc2FibGVkLCBhcyB0byBhdm9pZCBo YW5kbGluZyBpbnRlcnJ1cHRzIHdpdGggYQotbWlzbWF0Y2ggYmV0d2VlbiB0aGUgdkNQVSB0cmFj a2luZyBmaWVsZCBhbmQgdGhlIGxvYWRlZCBwYWdlLXRhYmxlcy4KLQotQXMgYSByZXN1bHQgb2Yg dGhpcyBuZXdseSBtb3JlIGFjY3VyYXRlIHRyYWNraW5nIHRoZSBtYXBjYWNoZSBvdmVycmlkZQot ZnVuY3Rpb25hbGl0eSBjYW4gYmUgcmVtb3ZlZDogdGhlIGRvbTAgUFYgYnVpbGRlciB3YXMgdGhl IG9ubHkgdXNlciBvZiBpdCwKLWFuZCBpdCdzIHVwZGF0ZWQgaGVyZSB0byBwcm9wZXJseSBzaWdu YWwgd2hpY2ggdkNQVSBwYWdlLXRhYmxlcyBhcmUgbG9hZGVkCi1pbiB0aGUgY2FsbHMgdG8gc3dp dGNoX2NyM19jcjQoKS4KLQotTm90ZSB0aGUgRUZJIHBhZ2UtdGFibGVzIGhhdmUgdGhlIFhlbiBv d25lZCBMNCBzbG90cyBjb3BpZWQgZnJvbSB0aGUgaWRsZQotcGFnZS10YWJsZXMsIHNvIGZvciB0 aGUgZWZmZWN0cyBvZiB0aGUgbWFwY2FjaGUgdGhlIEVGSSBwYWdlLXRhYmxlcyBjb3VsZAotdXNl IHRoZSBpZGxlIG1hcGNhY2hlIGlmIGl0IGhhZCBvbmUuICBQYXNzIHRoZSBpZGxlIHZDUFUgaW4g dGhlCi1zd2l0Y2hfY3IzX2NyNCgpIGNhbGwgdGhhdCBzd2l0Y2hlcyB0byB0aGUgcnVudGltZSBF RkkgcGFnZS10YWJsZXMuCi0KLVRoZXJlIGFyZSBrbm93biBpc3N1ZXMgd2l0aCB0aGUgdXNlIG9m IG1hcGNhY2hlIGluIE5NSSBjb250ZXh0LsKgIFRoaXMgcGF0Y2gKLWRvZXMgbm90IGFsdGVyIHRo ZSBiZWhhdmlvdXIuCi0KLVRoaXMgaXMgQ1ZFLTIwMjYtNDI0ODggLyBYU0EtNDk0LgotCi1GaXhl czogZmIwZmY0OWZlOWY3ICgieDg2L3NoYWRvdzogZGVmZXIgcmVsZWFzaW5nIG9mIFBWJ3MgdG9w LWxldmVsIHNoYWRvdyByZWZlcmVuY2UiKQotU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7D qSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci1BY2tlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tLQotIHhlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jICAg ICAgICAgICB8IDQ4ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KLSB4ZW4vYXJjaC94ODYv Zmx1c2h0bGIuYyAgICAgICAgICAgICAgfCAgNSArKy0KLSB4ZW4vYXJjaC94ODYvaW5jbHVkZS9h c20vZG9tYWluLmggICAgfCAgMSAtCi0geGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2ZsdXNodGxi LmggIHwgIDIgKy0KLSB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmggfCAgMyAr KwotIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgICAgICB8ICA0ICstLQotIHhlbi9h cmNoL3g4Ni9wdi9kb20wX2J1aWxkLmMgICAgICAgICB8IDEyICsrKy0tLS0KLSB4ZW4vYXJjaC94 ODYvcHYvZG9tYWluLmMgICAgICAgICAgICAgfCAxMyArKysrKystLQotIHhlbi9hcmNoL3g4Ni9z bXBib290LmMgICAgICAgICAgICAgICB8ICAxICsKLSB4ZW4vY29tbW9uL2VmaS9jb21tb24tc3R1 Yi5jICAgICAgICAgfCAgNSAtLS0KLSB4ZW4vY29tbW9uL2VmaS9ydW50aW1lLmMgICAgICAgICAg ICAgfCAyMSArKysrKy0tLS0tLS0KLSB4ZW4vaW5jbHVkZS94ZW4vZWZpLmggICAgICAgICAgICAg ICAgfCAgMSAtCi0gMTIgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYyBiL3hlbi9h cmNoL3g4Ni9kb21haW5fcGFnZS5jCi1pbmRleCBlYWM1ZTMzMDRmYjguLjcyYzAwMTk0ZjMxNSAx MDA2NDQKLS0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCi0rKysgYi94ZW4vYXJjaC94 ODYvZG9tYWluX3BhZ2UuYwotQEAgLTE4LDQ4ICsxOCw0MCBAQAotICNpbmNsdWRlIDxhc20vaGFy ZGlycS5oPgotICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KLSAKLS1zdGF0aWMgREVGSU5FX1BFUl9D UFUoc3RydWN0IHZjcHUgKiwgb3ZlcnJpZGUpOwotLQotIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZj cHUgKm1hcGNhY2hlX2N1cnJlbnRfdmNwdSh2b2lkKQotIHsKLS0gICAgLyogSW4gdGhlIGNvbW1v biBjYXNlIHdlIHVzZSB0aGUgbWFwY2FjaGUgb2YgdGhlIHJ1bm5pbmcgVkNQVS4gKi8KLS0gICAg c3RydWN0IHZjcHUgKnYgPSB0aGlzX2NwdShvdmVycmlkZSkgPzogY3VycmVudDsKLS0KLS0gICAg LyoKLS0gICAgICogV2hlbiBjdXJyZW50IGlzbid0IHByb3Blcmx5IHNldCB1cCB5ZXQsIHRoaXMg aXMgZXF1aXZhbGVudCB0bwotLSAgICAgKiBydW5uaW5nIGluIGFuIGlkbGUgdkNQVSAoY2FsbGVy cyBtdXN0IGNoZWNrIGZvciBOVUxMKS4KLS0gICAgICovCi0tICAgIGlmICggIXYgKQotLSAgICAg ICAgcmV0dXJuIE5VTEw7Ci0rICAgIHN0cnVjdCB2Y3B1ICp2ID0gdGhpc19jcHUocGd0YWJsZV92 Y3B1KTsKLSsgICAgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50OwotIAotICAgICAvKgotLSAg ICAgKiBXaGVuIHVzaW5nIGVmaSBydW50aW1lIHBhZ2UgdGFibGVzLCB3ZSBoYXZlIHRoZSBlcXVp dmFsZW50IG9mIHRoZSBpZGxlCi0tICAgICAqIGRvbWFpbidzIHBhZ2UgdGFibGVzIGJ1dCBjdXJy ZW50IG1heSBwb2ludCBhdCBhbm90aGVyIGRvbWFpbidzIFZDUFUuCi0tICAgICAqIFJldHVybiBO VUxMIGFzIHRob3VnaCBjdXJyZW50IGlzIG5vdCBwcm9wZXJseSBzZXQgdXAgeWV0LgotKyAgICAg KiBEdXJpbmcgZWFybHkgYm9vdCBwZ3RhYmxlX3ZjcHUgaXMgbm90IHNldCwgY2FsbGVycyBtdXN0 IGhhbmRsZSBOVUxMLgotKyAgICAgKiBOb24tUFYgZG9tYWlucyBkb24ndCBoYXZlIGEgbWFwY2Fj aGUsIHRoZSBkaXJlY3RtYXAgY292ZXJzIGFsbCBwaHlzaWNhbAotKyAgICAgKiBhZGRyZXNzIHNw YWNlLgotICAgICAgKi8KLS0gICAgaWYgKCBlZmlfcnNfdXNpbmdfcGd0YWJsZXMoKSApCi0rICAg IGlmICggIXYgfHwgIWlzX3B2X3ZjcHUodikgKQotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gCi0g ICAgIC8qCi0tICAgICAqIElmIGd1ZXN0X3RhYmxlIGlzIE5VTEwsIGFuZCB3ZSBhcmUgcnVubmlu ZyBhIHBhcmF2aXJ0dWFsaXNlZCBndWVzdCwKLS0gICAgICogdGhlbiBpdCBtZWFucyB3ZSBhcmUg cnVubmluZyBvbiB0aGUgaWRsZSBkb21haW4ncyBwYWdlIHRhYmxlIGFuZCBtdXN0Ci0tICAgICAq IHRoZXJlZm9yZSB1c2UgaXRzIG1hcGNhY2hlLgotKyAgICAgKiBJZiB3ZSBhcmUgaW4gYSBsYXp5 IGNvbnRleHQtc3dpdGNoIHN0YXRlIGZyb20gYSBQViB2Q1BVIGRvIGEgZnVsbCBzd2l0Y2gKLSsg ICAgICogdG8gdGhlIGlkbGUgdkNQVSBub3csIG90aGVyd2lzZSBhbiBpbmNvbWluZyBGTFVTSF9W Q1BVX1NUQVRFIElQSSB3b3VsZAotKyAgICAgKiBjaGFuZ2UgdGhlIHBhZ2UgdGFibGVzIHVuZGVy IG91ciBmZWV0IGFuIGludmFsaWRhdGUgYW55IGluLXVzZSBtYXBjYWNoZQotKyAgICAgKiBlbnRy aWVzLgotICAgICAgKi8KLS0gICAgaWYgKCB1bmxpa2VseShwYWdldGFibGVfaXNfbnVsbCh2LT5h cmNoLmd1ZXN0X3RhYmxlKSkgJiYgaXNfcHZfdmNwdSh2KSApCi0rICAgIGlmICggdW5saWtlbHko dGhpc19jcHUoY3Vycl92Y3B1KSAhPSBjdXJyKSApCi0gICAgIHsKLS0gICAgICAgIC8qIElmIHdl IHJlYWxseSBhcmUgaWRsaW5nLCBwZXJmb3JtIGxhenkgY29udGV4dCBzd2l0Y2ggbm93LiAqLwot LSAgICAgICAgaWYgKCAodiA9IGlkbGVfdmNwdVtzbXBfcHJvY2Vzc29yX2lkKCldKSA9PSBjdXJy ZW50ICkKLS0gICAgICAgICAgICBzeW5jX2xvY2FsX2V4ZWNzdGF0ZSgpOwotKyAgICAgICAgQVNT RVJUKGN1cnIgPT0gaWRsZV92Y3B1W3NtcF9wcm9jZXNzb3JfaWQoKV0pOwotKyAgICAgICAgc3lu Y19sb2NhbF9leGVjc3RhdGUoKTsKLSAgICAgICAgIC8qIFdlIG11c3Qgbm93IGJlIHJ1bm5pbmcg b24gdGhlIGlkbGUgcGFnZSB0YWJsZS4gKi8KLSAgICAgICAgIEFTU0VSVChjcjNfcGEocmVhZF9j cjMoKSkgPT0gX19wYShpZGxlX3BnX3RhYmxlKSk7Ci0gICAgIH0KLSAKLS0gICAgcmV0dXJuIHY7 Ci0tfQotLQotLXZvaWQgX19pbml0IG1hcGNhY2hlX292ZXJyaWRlX2N1cnJlbnQoc3RydWN0IHZj cHUgKnYpCi0tewotLSAgICB0aGlzX2NwdShvdmVycmlkZSkgPSB2OwotKyAgICAvKgotKyAgICAg KiBBdCB0aGlzIHBvaW50IHdlIGNhbiBndWFyYW50ZWUgWGVuIGlzIG5vdCBpbiBsYXp5IGNvbnRl eHQgc3dpdGNoOiBlaXRoZXIKLSsgICAgICogdGhlIGNvZGUgYWJvdmUgd2lsbCBoYXZlIHN5bmNl ZCB0aGUgc3RhdGUsIG9yIGFuIGluY29taW5nCi0rICAgICAqIEZMVVNIX1ZDUFVfU1RBVEUgSVBJ IGhhcyBkb25lIHNvIGJlaGluZCBvdXIgYmFjay4gIFVzZSBBQ0NFU1NfT05DRSB0bwotKyAgICAg KiBlbnN1cmUgdGhlIGNvbXBpbGVyIG5ldmVyIHJldHVybnMgdGhlIGxvY2FsbHkgY2FjaGVkIHBn dGFibGVfdmNwdSB2YWx1ZS4KLSsgICAgICovCi0rICAgIHJldHVybiBBQ0NFU1NfT05DRSh0aGlz X2NwdShwZ3RhYmxlX3ZjcHUpKTsKLSB9Ci0gCi0gI2RlZmluZSBtYXBjYWNoZV9sMl9lbnRyeShl KSAoKGUpID4+IFBBR0VUQUJMRV9PUkRFUikKLWRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZmx1 c2h0bGIuYyBiL3hlbi9hcmNoL3g4Ni9mbHVzaHRsYi5jCi1pbmRleCAwOWU2NzZjMTUxZmEuLjky OGJjYTY2YjQzMyAxMDA2NDQKLS0tLSBhL3hlbi9hcmNoL3g4Ni9mbHVzaHRsYi5jCi0rKysgYi94 ZW4vYXJjaC94ODYvZmx1c2h0bGIuYwotQEAgLTExMSw3ICsxMTEsOSBAQCBzdGF0aWMgdm9pZCBk b190bGJfZmx1c2godm9pZCkKLSAgICAgbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotIH0KLSAK LS12b2lkIHN3aXRjaF9jcjNfY3I0KHVuc2lnbmVkIGxvbmcgY3IzLCB1bnNpZ25lZCBsb25nIGNy NCkKLStERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdmNwdSAqLCBwZ3RhYmxlX3ZjcHUpOwotKwotK3Zv aWQgc3dpdGNoX2NyM19jcjQoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgY3IzLCB1bnNp Z25lZCBsb25nIGNyNCkKLSB7Ci0gICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIG9sZF9jcjQ7Ci0g ICAgIHUzMiB0ID0gMDsKLUBAIC0xNTUsNiArMTU3LDcgQEAgdm9pZCBzd2l0Y2hfY3IzX2NyNCh1 bnNpZ25lZCBsb25nIGNyMywgdW5zaWduZWQgbG9uZyBjcjQpCi0gICAgIGlmICggKG9sZF9jcjQg JiBYODZfQ1I0X1BDSURFKSA+IChjcjQgJiBYODZfQ1I0X1BDSURFKSApCi0gICAgICAgICBjcjMg fD0gWDg2X0NSM19OT0ZMVVNIOwotICAgICB3cml0ZV9jcjMoY3IzKTsKLSsgICAgdGhpc19jcHUo cGd0YWJsZV92Y3B1KSA9IHY7Ci0gCi0gICAgIGlmICggb2xkX2NyNCAhPSBjcjQgKQotICAgICAg ICAgd3JpdGVfY3I0KGNyNCk7Ci1kaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt L2RvbWFpbi5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2RvbWFpbi5oCi1pbmRleCA4Mjhm NDJjM2U0NDguLjEwZDJiOWZlMjU0NiAxMDA2NDQKLS0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRl L2FzbS9kb21haW4uaAotKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2RvbWFpbi5oCi1A QCAtNzUsNyArNzUsNiBAQCBzdHJ1Y3QgbWFwY2FjaGVfZG9tYWluIHsKLSAKLSBpbnQgbWFwY2Fj aGVfZG9tYWluX2luaXQoc3RydWN0IGRvbWFpbiAqZCk7Ci0gaW50IG1hcGNhY2hlX3ZjcHVfaW5p dChzdHJ1Y3QgdmNwdSAqdik7Ci0tdm9pZCBtYXBjYWNoZV9vdmVycmlkZV9jdXJyZW50KHN0cnVj dCB2Y3B1ICp2KTsKLSAKLSAvKiB4ODYvNjQ6IHRvZ2dsZSBndWVzdCBiZXR3ZWVuIGtlcm5lbCBh bmQgdXNlciBtb2Rlcy4gKi8KLSB2b2lkIHRvZ2dsZV9ndWVzdF9tb2RlKHN0cnVjdCB2Y3B1ICp2 KTsKLWRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vZmx1c2h0bGIuaCBiL3hl bi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mbHVzaHRsYi5oCi1pbmRleCA3YmNiY2EyYjdmMzEuLjM0 NTY3N2ViNzJhZSAxMDA2NDQKLS0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mbHVzaHRs Yi5oCi0rKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vZmx1c2h0bGIuaAotQEAgLTEwNCw3 ICsxMDQsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW52bHBnKGNvbnN0IHZvaWQgKnApCi0gfQot IAotIC8qIFdyaXRlIHBhZ2V0YWJsZSBiYXNlIGFuZCBpbXBsaWNpdGx5IHRpY2sgdGhlIHRsYmZs dXNoIGNsb2NrLiAqLwotLXZvaWQgc3dpdGNoX2NyM19jcjQodW5zaWduZWQgbG9uZyBjcjMsIHVu c2lnbmVkIGxvbmcgY3I0KTsKLSt2b2lkIHN3aXRjaF9jcjNfY3I0KHN0cnVjdCB2Y3B1ICp2LCB1 bnNpZ25lZCBsb25nIGNyMywgdW5zaWduZWQgbG9uZyBjcjQpOwotIAotIC8qIGZsdXNoXyogZmxh ZyBmaWVsZHM6ICovCi0gIC8qCi1kaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt L3Byb2Nlc3Nvci5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCi1pbmRl eCAyZTA4N2M2MjU3NzAuLmQyY2FjZGZlZGI3NCAxMDA2NDQKLS0tLSBhL3hlbi9hcmNoL3g4Ni9p bmNsdWRlL2FzbS9wcm9jZXNzb3IuaAotKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3By b2Nlc3Nvci5oCi1AQCAtMzI4LDYgKzMyOCw5IEBAIERFQ0xBUkVfUEVSX0NQVShzdHJ1Y3QgdHNz X3BhZ2UsIHRzc19wYWdlKTsKLSAKLSBERUNMQVJFX1BFUl9DUFUocm9vdF9wZ2VudHJ5X3QgKiwg cm9vdF9wZ3QpOwotIAotKy8qIHZDUFUgb2YgdGhlIGN1cnJlbnRseSBsb2FkZWQgcGFnZS10YWJs ZXMuICovCi0rREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCB2Y3B1ICosIHBndGFibGVfdmNwdSk7Ci0r Ci0gZXh0ZXJuIHZvaWQgd3JpdGVfcHRiYXNlKHN0cnVjdCB2Y3B1ICp2KTsKLSAKLSAvKiBQQVVT RSAoZW5jb2Rpbmc6IFJFUCBOT1ApIGlzIGEgZ29vZCB0aGluZyB0byBpbnNlcnQgaW50byBidXN5 LXdhaXQgbG9vcHMuICovCi1kaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJj aC94ODYvbW0uYwotaW5kZXggMmIyM2JmMmU3YTc1Li5kMDJjOTg2MmQzODcgMTAwNjQ0Ci0tLS0g YS94ZW4vYXJjaC94ODYvbW0uYwotKysrIGIveGVuL2FyY2gveDg2L21tLmMKLUBAIC01MzUsNyAr NTM1LDcgQEAgdm9pZCB3cml0ZV9wdGJhc2Uoc3RydWN0IHZjcHUgKnYpCi0gICAgICAgICBjcHVf aW5mby0+cHZfY3IzID0gX19wYSh0aGlzX2NwdShyb290X3BndCkpOwotICAgICAgICAgaWYgKCBu ZXdfY3I0ICYgWDg2X0NSNF9QQ0lERSApCi0gICAgICAgICAgICAgY3B1X2luZm8tPnB2X2NyMyB8 PSBnZXRfcGNpZF9iaXRzKHYsIHRydWUpOwotLSAgICAgICAgc3dpdGNoX2NyM19jcjQodi0+YXJj aC5jcjMsIG5ld19jcjQpOwotKyAgICAgICAgc3dpdGNoX2NyM19jcjQodiwgdi0+YXJjaC5jcjMs IG5ld19jcjQpOwotICAgICB9Ci0gICAgIGVsc2UKLSAgICAgewotQEAgLTU0Myw3ICs1NDMsNyBA QCB2b2lkIHdyaXRlX3B0YmFzZShzdHJ1Y3QgdmNwdSAqdikKLSAgICAgICAgIGNwdV9pbmZvLT51 c2VfcHZfY3IzID0gZmFsc2U7Ci0gICAgICAgICBjcHVfaW5mby0+eGVuX2NyMyA9IDA7Ci0gICAg ICAgICAvKiBzd2l0Y2hfY3IzX2NyNCgpIHNlcmlhbGl6ZXMuICovCi0tICAgICAgICBzd2l0Y2hf Y3IzX2NyNCh2LT5hcmNoLmNyMywgbmV3X2NyNCk7Ci0rICAgICAgICBzd2l0Y2hfY3IzX2NyNCh2 LCB2LT5hcmNoLmNyMywgbmV3X2NyNCk7Ci0gICAgICAgICBjcHVfaW5mby0+cHZfY3IzID0gMDsK LSAgICAgfQotIH0KLWRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jIGIv eGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYwotaW5kZXggMzc3MjkwOTFkZmFhLi40MmJjNTMw YzBmMGQgMTAwNjQ0Ci0tLS0gYS94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jCi0rKysgYi94 ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jCi1AQCAtODI4LDggKzgyOCw3IEBAIHN0YXRpYyBp bnQgX19pbml0IGRvbTBfY29uc3RydWN0KGNvbnN0IHN0cnVjdCBib290X2RvbWFpbiAqYmQpCi0g ICAgIHVwZGF0ZV9jcjModik7Ci0gCi0gICAgIC8qIFdlIHJ1biBvbiBkb20wJ3MgcGFnZSB0YWJs ZXMgZm9yIHRoZSBmaW5hbCBwYXJ0IG9mIHRoZSBidWlsZCBwcm9jZXNzLiAqLwotLSAgICBzd2l0 Y2hfY3IzX2NyNChjcjNfcGEodi0+YXJjaC5jcjMpLCByZWFkX2NyNCgpKTsKLS0gICAgbWFwY2Fj aGVfb3ZlcnJpZGVfY3VycmVudCh2KTsKLSsgICAgc3dpdGNoX2NyM19jcjQodiwgY3IzX3BhKHYt PmFyY2guY3IzKSwgcmVhZF9jcjQoKSk7Ci0gCi0gICAgIC8qIENvcHkgdGhlIE9TIGltYWdlIGFu ZCBmcmVlIHRlbXBvcmFyeSBidWZmZXIuICovCi0gICAgIGVsZi5kZXN0X2Jhc2UgPSAodm9pZCop dmtlcm5fc3RhcnQ7Ci1AQCAtODM4LDggKzgzNyw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGRvbTBf Y29uc3RydWN0KGNvbnN0IHN0cnVjdCBib290X2RvbWFpbiAqYmQpCi0gICAgIHJjID0gZWxmX2xv YWRfYmluYXJ5KCZlbGYpOwotICAgICBpZiAoIHJjIDwgMCApCi0gICAgIHsKLS0gICAgICAgIG1h cGNhY2hlX292ZXJyaWRlX2N1cnJlbnQoTlVMTCk7Ci0tICAgICAgICBzd2l0Y2hfY3IzX2NyNChj dXJyZW50LT5hcmNoLmNyMywgcmVhZF9jcjQoKSk7Ci0rICAgICAgICBzd2l0Y2hfY3IzX2NyNChj dXJyZW50LCBjdXJyZW50LT5hcmNoLmNyMywgcmVhZF9jcjQoKSk7Ci0gICAgICAgICBwcmludGso IkZhaWxlZCB0byBsb2FkIHRoZSBrZXJuZWwgYmluYXJ5XG4iKTsKLSAgICAgICAgIGdvdG8gb3V0 OwotICAgICB9Ci1AQCAtODUwLDggKzg0OCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGRvbTBfY29u c3RydWN0KGNvbnN0IHN0cnVjdCBib290X2RvbWFpbiAqYmQpCi0gICAgICAgICBpZiAoIChwYXJt cy52aXJ0X2h5cGVyY2FsbCA8IHZfc3RhcnQpIHx8Ci0gICAgICAgICAgICAgIChwYXJtcy52aXJ0 X2h5cGVyY2FsbCA+PSB2X2VuZCkgKQotICAgICAgICAgewotLSAgICAgICAgICAgIG1hcGNhY2hl X292ZXJyaWRlX2N1cnJlbnQoTlVMTCk7Ci0tICAgICAgICAgICAgc3dpdGNoX2NyM19jcjQoY3Vy cmVudC0+YXJjaC5jcjMsIHJlYWRfY3I0KCkpOwotKyAgICAgICAgICAgIHN3aXRjaF9jcjNfY3I0 KGN1cnJlbnQsIGN1cnJlbnQtPmFyY2guY3IzLCByZWFkX2NyNCgpKTsKLSAgICAgICAgICAgICBw cmludGsoIkludmFsaWQgSFlQRVJDQUxMX1BBR0UgZmllbGQgaW4gRUxGIG5vdGVzLlxuIik7Ci0g ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0gICAgICAgICB9Ci1AQCAtOTkyLDggKzk4OSw3 IEBAIHN0YXRpYyBpbnQgX19pbml0IGRvbTBfY29uc3RydWN0KGNvbnN0IHN0cnVjdCBib290X2Rv bWFpbiAqYmQpCi0gI2VuZGlmCi0gCi0gICAgIC8qIFJldHVybiB0byBpZGxlIGRvbWFpbidzIHBh Z2UgdGFibGVzLiAqLwotLSAgICBtYXBjYWNoZV9vdmVycmlkZV9jdXJyZW50KE5VTEwpOwotLSAg ICBzd2l0Y2hfY3IzX2NyNChjdXJyZW50LT5hcmNoLmNyMywgcmVhZF9jcjQoKSk7Ci0rICAgIHN3 aXRjaF9jcjNfY3I0KGN1cnJlbnQsIGN1cnJlbnQtPmFyY2guY3IzLCByZWFkX2NyNCgpKTsKLSAK LSAgICAgdXBkYXRlX2RvbWFpbl93YWxsY2xvY2tfdGltZShkKTsKLSAKLWRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMgYi94ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMKLWluZGV4 IGVmNGY0NDJlNzMzMi4uZDllNTJmNWY4OGYzIDEwMDY0NAotLS0tIGEveGVuL2FyY2gveDg2L3B2 L2RvbWFpbi5jCi0rKysgYi94ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMKLUBAIC00NTEsNiArNDUx LDggQEAgc3RhdGljIHZvaWQgX3RvZ2dsZV9ndWVzdF9wdChzdHJ1Y3QgdmNwdSAqdikKLSAgICAg cGFnZXRhYmxlX3Qgb2xkX3NoYWRvdzsKLSAgICAgdW5zaWduZWQgbG9uZyBjcjM7Ci0gCi0rICAg IEFTU0VSVChsb2NhbF9pcnFfaXNfZW5hYmxlZCgpKTsKLSsKLSAgICAgdi0+YXJjaC5mbGFncyBe PSBURl9rZXJuZWxfbW9kZTsKLSAgICAgZ3Vlc3RfdXBkYXRlID0gdi0+YXJjaC5mbGFncyAmIFRG X2tlcm5lbF9tb2RlOwotICAgICBvbGRfc2hhZG93ID0gdXBkYXRlX2NyMyh2KTsKLUBAIC00NzMs MTUgKzQ3NSwyMiBAQCBzdGF0aWMgdm9pZCBfdG9nZ2xlX2d1ZXN0X3B0KHN0cnVjdCB2Y3B1ICp2 KQotICAgICB7Ci0gICAgICAgICBjcjMgJj0gflg4Nl9DUjNfTk9GTFVTSDsKLSAKLSsgICAgICAg IGxvY2FsX2lycV9kaXNhYmxlKCk7Ci0gICAgICAgICBpZiAoIHVubGlrZWx5KG1mbl9lcShwYWdl dGFibGVfZ2V0X21mbihvbGRfc2hhZG93KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1hZGRyX3RvX21mbihjcjMpKSkgKQotICAgICAgICAgewotLSAgICAgICAgICAgIGNyMyA9IGlk bGVfdmNwdVt2LT5wcm9jZXNzb3JdLT5hcmNoLmNyMzsKLSAgICAgICAgICAgICAvKiBBbHNvIHN1 cHByZXNzIHJ1bnN0YXRlL3RpbWUgYXJlYSB1cGRhdGVzIGJlbG93LiAqLwotICAgICAgICAgICAg IGd1ZXN0X3VwZGF0ZSA9IGZhbHNlOwotKwotKyAgICAgICAgICAgIGNyMyA9IGlkbGVfdmNwdVt2 LT5wcm9jZXNzb3JdLT5hcmNoLmNyMzsKLSsgICAgICAgICAgICB0aGlzX2NwdShwZ3RhYmxlX3Zj cHUpID0gaWRsZV92Y3B1W3YtPnByb2Nlc3Nvcl07Ci0gICAgICAgICB9Ci0rCi0rICAgICAgICB3 cml0ZV9jcjMoY3IzKTsKLSsgICAgICAgIGxvY2FsX2lycV9lbmFibGUoKTsKLSAgICAgfQotLSAg ICB3cml0ZV9jcjMoY3IzKTsKLSsgICAgZWxzZQotKyAgICAgICAgd3JpdGVfY3IzKGNyMyk7Ci0g Ci0gICAgIGlmICggIXBhZ2V0YWJsZV9pc19udWxsKG9sZF9zaGFkb3cpICkKLSAgICAgICAgIHNo YWRvd19wdXRfdG9wX2xldmVsKHYtPmRvbWFpbiwgb2xkX3NoYWRvdyk7Ci1kaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L3NtcGJvb3QuYyBiL3hlbi9hcmNoL3g4Ni9zbXBib290LmMKLWluZGV4IDI3 NjI4ODAwYTgyMS4uYjM3ZmVhYjNiZWY0IDEwMDY0NAotLS0tIGEveGVuL2FyY2gveDg2L3NtcGJv b3QuYwotKysrIGIveGVuL2FyY2gveDg2L3NtcGJvb3QuYwotQEAgLTEwNjMsNiArMTA2Myw3IEBA IHN0YXRpYyBpbnQgY3B1X3NtcGJvb3RfYWxsb2ModW5zaWduZWQgaW50IGNwdSkKLSAKLSAgICAg aW5mby0+Y3VycmVudF92Y3B1ID0gaWRsZV92Y3B1W2NwdV07IC8qIHNldF9jdXJyZW50KCkgKi8K LSAgICAgcGVyX2NwdShjdXJyX3ZjcHUsIGNwdSkgPSBpZGxlX3ZjcHVbY3B1XTsKLSsgICAgcGVy X2NwdShwZ3RhYmxlX3ZjcHUsIGNwdSkgPSBpZGxlX3ZjcHVbY3B1XTsKLSAKLSAgICAgZ2R0ID0g cGVyX2NwdShnZHQsIGNwdSkgPzogYWxsb2NfeGVuaGVhcF9wYWdlcygwLCBtZW1mbGFncyk7Ci0g ICAgIGlmICggZ2R0ID09IE5VTEwgKQotZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZWZpL2NvbW1v bi1zdHViLmMgYi94ZW4vY29tbW9uL2VmaS9jb21tb24tc3R1Yi5jCi1pbmRleCA3N2YxMzhhNmM1 NzQuLjdiMTIwMDViZWEzZiAxMDA2NDQKLS0tLSBhL3hlbi9jb21tb24vZWZpL2NvbW1vbi1zdHVi LmMKLSsrKyBiL3hlbi9jb21tb24vZWZpL2NvbW1vbi1zdHViLmMKLUBAIC03LDExICs3LDYgQEAg Ym9vbCBlZmlfZW5hYmxlZCh1bnNpZ25lZCBpbnQgZmVhdHVyZSkKLSAgICAgcmV0dXJuIGZhbHNl OwotIH0KLSAKLS1ib29sIGVmaV9yc191c2luZ19wZ3RhYmxlcyh2b2lkKQotLXsKLS0gICAgcmV0 dXJuIGZhbHNlOwotLX0KLS0KLSB1bnNpZ25lZCBsb25nIGVmaV9nZXRfdGltZSh2b2lkKQotIHsK LSAgICAgQlVHKCk7Ci1kaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9lZmkvcnVudGltZS5jIGIveGVu L2NvbW1vbi9lZmkvcnVudGltZS5jCi1pbmRleCAzMGQ2NDljYTVjMWIuLmZlYjA5YWNmNzU0YyAx MDA2NDQKLS0tLSBhL3hlbi9jb21tb24vZWZpL3J1bnRpbWUuYwotKysrIGIveGVuL2NvbW1vbi9l ZmkvcnVudGltZS5jCi1AQCAtNDksNyArNDksNiBAQCBjb25zdCBDSEFSMTYgKl9fcmVhZF9tb3N0 bHkgZWZpX2Z3X3ZlbmRvcjsKLSBjb25zdCBFRklfUlVOVElNRV9TRVJWSUNFUyAqX19yZWFkX21v c3RseSBlZmlfcnM7Ci0gI2lmbmRlZiBDT05GSUdfQVJNIC8qIFRPRE8gLSBkaXNhYmxlZCB1bnRp bCBpbXBsZW1lbnRlZCBvbiBBUk0gKi8KLSBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGVmaV9yc19s b2NrKTsKLS1zdGF0aWMgdW5zaWduZWQgaW50IGVmaV9yc19vbl9jcHUgPSBOUl9DUFVTOwotICNl bmRpZgotIAotIFVJTlROIF9fcmVhZF9tb3N0bHkgZWZpX21lbW1hcF9zaXplOwotQEAgLTkyLDYg KzkxLDExIEBAIHN0cnVjdCBlZmlfcnNfc3RhdGUgZWZpX3JzX2VudGVyKHZvaWQpCi0gICAgIGlm ICggbWZuX2VxKGVmaV9sNF9tZm4sIElOVkFMSURfTUZOKSApCi0gICAgICAgICByZXR1cm4gc3Rh dGU7Ci0gCi0rICAgIC8qCi0rICAgICAqIElmIGluIGxhenkgaWRsZSBjb250ZXh0IHN3aXRjaCBz dGF0ZSBzeW5jIG5vdyB0byBhdm9pZCBhbiBpbmNvbWluZwotKyAgICAgKiBGTFVTSF9WQ1BVX1NU QVRFIElQSSBjaGFuZ2luZyB0aGUgbG9hZGVkIHBhZ2UtdGFibGVzLgotKyAgICAgKi8KLSsgICAg c3luY19sb2NhbF9leGVjc3RhdGUoKTsKLSAgICAgc3RhdGUuY3IzID0gcmVhZF9jcjMoKTsKLSAg ICAgc2F2ZV9mcHVfZW5hYmxlKCk7Ci0gICAgIGFzbSB2b2xhdGlsZSAoICJmbmNsZXg7IGZsZGN3 ICUwIiA6OiAibSIgKGZjdykgKTsKLUBAIC05OSw4ICsxMDMsNiBAQCBzdHJ1Y3QgZWZpX3JzX3N0 YXRlIGVmaV9yc19lbnRlcih2b2lkKQotIAotICAgICBzcGluX2xvY2soJmVmaV9yc19sb2NrKTsK LSAKLS0gICAgZWZpX3JzX29uX2NwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLS0KLSAgICAgLyog cHJldmVudCBmaXh1cF9wYWdlX2ZhdWx0KCkgZnJvbSBkb2luZyBhbnl0aGluZyAqLwotICAgICBp cnFfZW50ZXIoKTsKLSAKLUBAIC0xMTUsNyArMTE3LDggQEAgc3RydWN0IGVmaV9yc19zdGF0ZSBl ZmlfcnNfZW50ZXIodm9pZCkKLSAgICAgICAgIGxnZHQoJmdkdF9kZXNjKTsKLSAgICAgfQotIAot LSAgICBzd2l0Y2hfY3IzX2NyNChtZm5fdG9fbWFkZHIoZWZpX2w0X21mbiksIHJlYWRfY3I0KCkp OwotKyAgICBzd2l0Y2hfY3IzX2NyNChpZGxlX3ZjcHVbc21wX3Byb2Nlc3Nvcl9pZCgpXSwgbWZu X3RvX21hZGRyKGVmaV9sNF9tZm4pLAotKyAgICAgICAgICAgICAgICAgICByZWFkX2NyNCgpKTsK LSAKLSAgICAgLyoKLSAgICAgICogQXQgdGhlIHRpbWUgb2Ygd3JpdGluZyAoMjAyMiksIG5vIFVF RkkgZmlyd21hcmUgaXMgQ0VULUlCVCBjb21wYXRpYmxlLgotQEAgLTE0Myw3ICsxNDYsNyBAQCB2 b2lkIGVmaV9yc19sZWF2ZShzdHJ1Y3QgZWZpX3JzX3N0YXRlICpzdGF0ZSkKLSAgICAgaWYgKCBz dGF0ZS0+bXNyX3NfY2V0ICkKLSAgICAgICAgIHdybXNybChNU1JfU19DRVQsIHN0YXRlLT5tc3Jf c19jZXQpOwotIAotLSAgICBzd2l0Y2hfY3IzX2NyNChzdGF0ZS0+Y3IzLCByZWFkX2NyNCgpKTsK LSsgICAgc3dpdGNoX2NyM19jcjQoY3Vyciwgc3RhdGUtPmNyMywgcmVhZF9jcjQoKSk7Ci0gICAg IGlmICggaXNfcHZfdmNwdShjdXJyKSAmJiAhaXNfaWRsZV92Y3B1KGN1cnIpICkKLSAgICAgewot ICAgICAgICAgc3RydWN0IGRlc2NfcHRyIGdkdF9kZXNjID0gewotQEAgLTE1NCwxOCArMTU3LDEw IEBAIHZvaWQgZWZpX3JzX2xlYXZlKHN0cnVjdCBlZmlfcnNfc3RhdGUgKnN0YXRlKQotICAgICAg ICAgbGdkdCgmZ2R0X2Rlc2MpOwotICAgICB9Ci0gICAgIGlycV9leGl0KCk7Ci0tICAgIGVmaV9y c19vbl9jcHUgPSBOUl9DUFVTOwotICAgICBzcGluX3VubG9jaygmZWZpX3JzX2xvY2spOwotICAg ICB2Y3B1X3Jlc3RvcmVfZnB1X25vbmxhenkoY3VyciwgdHJ1ZSk7Ci0gfQotIAotLWJvb2wgZWZp X3JzX3VzaW5nX3BndGFibGVzKHZvaWQpCi0tewotLSAgICByZXR1cm4gIW1mbl9lcShlZmlfbDRf bWZuLCBJTlZBTElEX01GTikgJiYKLS0gICAgICAgICAgIChzbXBfcHJvY2Vzc29yX2lkKCkgPT0g ZWZpX3JzX29uX2NwdSkgJiYKLS0gICAgICAgICAgIChyZWFkX2NyMygpID09IG1mbl90b19tYWRk cihlZmlfbDRfbWZuKSk7Ci0tfQotLQotIHVuc2lnbmVkIGxvbmcgZWZpX2dldF90aW1lKHZvaWQp Ci0gewotICAgICBFRklfVElNRSB0aW1lOwotZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9l ZmkuaCBiL3hlbi9pbmNsdWRlL3hlbi9lZmkuaAotaW5kZXggNzIzY2I4MDg1MjcwLi45OTUzMTk3 ZWU1NTMgMTAwNjQ0Ci0tLS0gYS94ZW4vaW5jbHVkZS94ZW4vZWZpLmgKLSsrKyBiL3hlbi9pbmNs dWRlL3hlbi9lZmkuaAotQEAgLTQwLDcgKzQwLDYgQEAgZXh0ZXJuIGJvb2wgZWZpX3NlY3VyZV9i b290OwotIAotIHZvaWQgZWZpX2luaXRfbWVtb3J5KHZvaWQpOwotIGJvb2wgZWZpX2Jvb3RfbWVt X3VudXNlZCh1bnNpZ25lZCBsb25nICpzdGFydCwgdW5zaWduZWQgbG9uZyAqZW5kKTsKLS1ib29s IGVmaV9yc191c2luZ19wZ3RhYmxlcyh2b2lkKTsKLSB1bnNpZ25lZCBsb25nIGVmaV9nZXRfdGlt ZSh2b2lkKTsKLSB2b2lkIGVmaV9oYWx0X3N5c3RlbSh2b2lkKTsKLSB2b2lkIGVmaV9yZXNldF9z eXN0ZW0oYm9vbCB3YXJtKTsKLS0tIAotMi41My4wCi0K