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: Justin M. Forbes To: git-commits@fedoraproject.org Subject: [rpms/kernel] f44: kernel-7.1.13-200 Date: Wed, 02 Sep 2026 13:37:15 GMT Message-ID: <178835623508.1.16390257775268084835.rpms-kernel-8787d06b33ab@fedoraproject.org> List-ID: X-Git-Repo: rpms/kernel X-Git-Branch: f44 X-Git-Rev: 8787d06b33abba6d8f85f2640a30e22ad0261455 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMva2VybmVsCiAgICAgICAgICAgIEJyYW5jaCA6IGY0NAogICAgICAgICAgICBD b21taXQgOiA4Nzg3ZDA2YjMzYWJiYTZkOGY4NWYyNjQwYTMwZTIyYWQwMjYxNDU1CiAgICAgICAg ICAgIEF1dGhvciA6IEp1c3RpbiBNLiBGb3JiZXMgPGpmb3JiZXNAZmVkb3JhcHJvamVjdC5vcmc+ CiAgICAgICAgICAgIERhdGUgICA6IDIwMjYtMDktMDJUMDc6Mzc6MDAtMDY6MDAKICAgICAgICAg ICAgU3RhdHMgIDogKzI2NTEvLTE2MCBpbiA0NCBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAgICA6 IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMva2VybmVsL2MvODc4N2QwNmIzM2Fi YmE2ZDhmODVmMjY0MGEzMGUyMmFkMDI2MTQ1NT9icmFuY2g9ZjQ0CgogICAgICAgICAgICBMb2c6 CiAgICAgICAgICAgIGtlcm5lbC03LjEuMTMtMjAwCgoqIFdlZCBTZXAgMDIgMjAyNiBKdXN0aW4g TS4gRm9yYmVzIDxqZm9yYmVzQGZlZG9yYXByb2plY3Qub3JnPiBbNy4xLjEzLTBdCi0gTmV3IGNv bmZpZyBpdGVtIGZvciA3LjEuMTMgc3RhYmxlIHVwZGF0ZSAoSnVzdGluIE0uIEZvcmJlcykKLSBB ZGQgbW9yZSBidWdzIHRvIEJ1Z3NGaXhlZCAoSnVzdGluIE0uIEZvcmJlcykKLSBwYWdlX3Bvb2w6 IGtlZXAgZnJhZ19vZmZzZXQgYWxpZ25lZCBmb3Igb2RkLXNpemVkIHJlcXVlc3RzIChGbG9yaWFu IFNjaGF1ZXIpIFsyNTIxNTQ2IDI1MjE4NDddCi0gQUNQSTogc2NhbjogRG8gbm90IGNvbWJpbmUg cmVzb3VyY2VzIHRoYXQgb3ZlcmxhcCBjb21wbGV0ZWx5IChSYWZhZWwgSi4gV3lzb2NraSkgWzI1 MTQzOTBdCi0gQUNQSTogc2NhbjogQXZvaWQgcmVnaXN0ZXJpbmcgcGxhdGZvcm0gZGV2aWNlcyB3 aXRoIHJlc291cmNlIG92ZXJsYXBzIChSYWZhZWwgSi4gV3lzb2NraSkgWzI1MTQzOTBdCi0gQmx1 ZXRvb3RoOiBidHVzYjogbGltaXQgUlRMODc2MUIgQlJPS0VOX0VYVF9TQ0FOIHF1aXJrIHRvIDBi ZGE6YTcyOCAoSnVuamllIENhbykgWzI1MjE1MDRdCi0gcmVkaGF0OiBjb25maWdzOiBmZWRvcmE6 IEVuYWJsZSBJbnRlbCBDVlMgKEthdGUgSHN1YW4pCi0gbWVkaWE6IGkyYzogY3ZzOiBQYXNzIGxp bmsgZnJlcXVlbmN5IGV4cGxpY2l0bHkgdG8gY3NpX3NldF9saW5rX2NmZygpIChMYXVyZW50IFBp bmNoYXJ0KQotIG1lZGlhOiBpMmM6IGN2czogQWRkIE5WTCBBQ1BJIElEIChBcnVuIFQpCi0gbWVk aWE6IGkyYzogY3ZzOiBBZGQgSVBVOCBQQ0kgZGV2aWNlIElEIChBcnVuIFQpCi0gbWVkaWE6IGky YzogY3ZzOiBBZGQgZHJpdmVyIG9mIEludGVsIENvbXB1dGVyIFZpc2lvbiBTZW5zaW5nIENvbnRy b2xsZXIoQ1ZTKSAoTWlndWVsIFZhZGlsbG8pCi0gQWRkIGJ1Z3MgdG8gQnVnc0ZpeGVkIGZvciA3 LjEuMTMgKEp1c3RpbiBNLiBGb3JiZXMpCi0gcmFuZG9tOiBEcm9wIHRoZSBleHRybmcgbW9kdWxl IHJlZmVyZW5jZSB3aGVuIGltcG9ydF91YnVmKCkgZmFpbHMgKEp1bmppZSBDYW8pIFsyNTI0MjYy XQotIExpbnV4IHY3LjEuMTMKUmVzb2x2ZXM6IHJoYnojMjUxNDM5MCwgcmhieiMyNTIxNTA0LCBy aGJ6IzI1MjE1NDYsIHJoYnojMjUyMTg0NywgcmhieiMyNTI0MjYyCgpTaWduZWQtb2ZmLWJ5OiBK dXN0aW4gTS4gRm9yYmVzIDxqZm9yYmVzQGZlZG9yYXByb2plY3Qub3JnPgoKLS0tCmRpZmYgLS1n aXQgYS9QYXRjaGxpc3QuY2hhbmdlbG9nIGIvUGF0Y2hsaXN0LmNoYW5nZWxvZwppbmRleCBkYjYx Mjg4Li44Y2Y2N2FiIDEwMDY0NAotLS0gYS9QYXRjaGxpc3QuY2hhbmdlbG9nCisrKyBiL1BhdGNo bGlzdC5jaGFuZ2Vsb2cKQEAgLTEsMyArMSwzMCBAQAoraHR0cHM6Ly9naXRsYWIuY29tL2NraS1w cm9qZWN0L2tlcm5lbC1hcmsvLS9jb21taXQvMzQyMjA2NmMzZTZlOGFhYzNhZjJiZDM0ZDhkOTRh ZTcxNDg5MjY4MQorIDM0MjIwNjZjM2U2ZThhYWMzYWYyYmQzNGQ4ZDk0YWU3MTQ4OTI2ODEgQmx1 ZXRvb3RoOiBidHVzYjogbGltaXQgUlRMODc2MUIgQlJPS0VOX0VYVF9TQ0FOIHF1aXJrIHRvIDBi ZGE6YTcyOAorCitodHRwczovL2dpdGxhYi5jb20vY2tpLXByb2plY3Qva2VybmVsLWFyay8tL2Nv bW1pdC81YjhiMzhmMjcyMGJiM2VmYjM1ODA0ZGM4ZjgyMTgxYzZiN2VhNDNlCisgNWI4YjM4ZjI3 MjBiYjNlZmIzNTgwNGRjOGY4MjE4MWM2YjdlYTQzZSBBQ1BJOiBzY2FuOiBEbyBub3QgY29tYmlu ZSByZXNvdXJjZXMgdGhhdCBvdmVybGFwIGNvbXBsZXRlbHkKKworaHR0cHM6Ly9naXRsYWIuY29t L2NraS1wcm9qZWN0L2tlcm5lbC1hcmsvLS9jb21taXQvZDFiZDYzZjgwM2NlNGE3YjYwZGU2M2Vk Mzk3MzI2NWM2ZDc3ODkyOQorIGQxYmQ2M2Y4MDNjZTRhN2I2MGRlNjNlZDM5NzMyNjVjNmQ3Nzg5 MjkgQUNQSTogc2NhbjogQXZvaWQgcmVnaXN0ZXJpbmcgcGxhdGZvcm0gZGV2aWNlcyB3aXRoIHJl c291cmNlIG92ZXJsYXBzCisKK2h0dHBzOi8vZ2l0bGFiLmNvbS9ja2ktcHJvamVjdC9rZXJuZWwt YXJrLy0vY29tbWl0L2FhNGJlY2NjZjg2NmM5NThlZGNkOGUyNGI5ZGJmNDJhY2YyMTNhNmUKKyBh YTRiZWNjY2Y4NjZjOTU4ZWRjZDhlMjRiOWRiZjQyYWNmMjEzYTZlIHBhZ2VfcG9vbDoga2VlcCBm cmFnX29mZnNldCBhbGlnbmVkIGZvciBvZGQtc2l6ZWQgcmVxdWVzdHMKKworaHR0cHM6Ly9naXRs YWIuY29tL2NraS1wcm9qZWN0L2tlcm5lbC1hcmsvLS9jb21taXQvMDJlMTYyYmY3OTI1MWU5ZjQ2 ZTQyOWU3OWVmZjM3YTRmMTMxOGY1ZQorIDAyZTE2MmJmNzkyNTFlOWY0NmU0MjllNzllZmYzN2E0 ZjEzMThmNWUgcmFuZG9tOiBEcm9wIHRoZSBleHRybmcgbW9kdWxlIHJlZmVyZW5jZSB3aGVuIGlt cG9ydF91YnVmKCkgZmFpbHMKKworaHR0cHM6Ly9naXRsYWIuY29tL2NraS1wcm9qZWN0L2tlcm5l bC1hcmsvLS9jb21taXQvMTdlNTJmZDY4OTE2MWQ3MDgzMTc4YjY0ZDE5MGUzNmVmMGYwYWZmMgor IDE3ZTUyZmQ2ODkxNjFkNzA4MzE3OGI2NGQxOTBlMzZlZjBmMGFmZjIgbWVkaWE6IGkyYzogY3Zz OiBQYXNzIGxpbmsgZnJlcXVlbmN5IGV4cGxpY2l0bHkgdG8gY3NpX3NldF9saW5rX2NmZygpCisK K2h0dHBzOi8vZ2l0bGFiLmNvbS9ja2ktcHJvamVjdC9rZXJuZWwtYXJrLy0vY29tbWl0L2Q2OGI4 OGZkNjQ2NThlNWMwOGViNjA4MDkwNDcyYzdmYjcxOTk4MDIKKyBkNjhiODhmZDY0NjU4ZTVjMDhl YjYwODA5MDQ3MmM3ZmI3MTk5ODAyIG1lZGlhOiBpMmM6IGN2czogQWRkIE5WTCBBQ1BJIElECisK K2h0dHBzOi8vZ2l0bGFiLmNvbS9ja2ktcHJvamVjdC9rZXJuZWwtYXJrLy0vY29tbWl0LzcwZDNl MThiZmFkYmRjMDU3ZGFhOTgzYTk3NTk5YzNjZDkzYWIwMDAKKyA3MGQzZTE4YmZhZGJkYzA1N2Rh YTk4M2E5NzU5OWMzY2Q5M2FiMDAwIG1lZGlhOiBpMmM6IGN2czogQWRkIElQVTggUENJIGRldmlj ZSBJRAorCitodHRwczovL2dpdGxhYi5jb20vY2tpLXByb2plY3Qva2VybmVsLWFyay8tL2NvbW1p dC8yMjJmOTZhNDhkNWE3NzRhZmE0ODQ2OTg5YjY4YjU5NDFiOTUwYjNmCisgMjIyZjk2YTQ4ZDVh Nzc0YWZhNDg0Njk4OWI2OGI1OTQxYjk1MGIzZiBtZWRpYTogaTJjOiBjdnM6IEFkZCBkcml2ZXIg b2YgSW50ZWwgQ29tcHV0ZXIgVmlzaW9uIFNlbnNpbmcgQ29udHJvbGxlcihDVlMpCisKIGh0dHBz Oi8vZ2l0bGFiLmNvbS9ja2ktcHJvamVjdC9rZXJuZWwtYXJrLy0vY29tbWl0LzM2NmYwYTRmOGFi Y2Y3MjQ4MWFjNDBmNjc1Mjc1NGI4ZDIwOTJjOWEKICAzNjZmMGE0ZjhhYmNmNzI0ODFhYzQwZjY3 NTI3NTRiOGQyMDkyYzlhIEFMU0E6IGhkYS9yZWFsdGVrOiBhZGQgcXVpcmsgZm9yIEZyYW1ld29y ayBGMTExOjAwMTAKIAoKZGlmZiAtLWdpdCBhL2tlcm5lbC1hYXJjaDY0LTE2ay1kZWJ1Zy1mZWRv cmEuY29uZmlnIGIva2VybmVsLWFhcmNoNjQtMTZrLWRlYnVnLWZlZG9yYS5jb25maWcKaW5kZXgg OGNiNzQ2Ni4uMTQ0ZjIyYyAxMDA2NDQKLS0tIGEva2VybmVsLWFhcmNoNjQtMTZrLWRlYnVnLWZl ZG9yYS5jb25maWcKKysrIGIva2VybmVsLWFhcmNoNjQtMTZrLWRlYnVnLWZlZG9yYS5jb25maWcK QEAgLTEwMzg0LDYgKzEwMzg0LDcgQEAgQ09ORklHX1ZJREVPX0lNWDhNUV9NSVBJX0NTSTI9bQog IyBDT05GSUdfVklERU9fSU1YX01FRElBIGlzIG5vdCBzZXQKIENPTkZJR19WSURFT19JTVhfTUlQ SV9DU0lTPW0KIENPTkZJR19WSURFT19JTVhfUFhQPW0KKyMgQ09ORklHX1ZJREVPX0lOVEVMX0NW UyBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JUFUzX0NJTzIgaXMgbm90IHNldAogQ09ORklH X1ZJREVPX0lSX0kyQz1tCiBDT05GSUdfVklERU9fSVNMNzk5OFg9bQoKZGlmZiAtLWdpdCBhL2tl cm5lbC1hYXJjaDY0LTE2ay1mZWRvcmEuY29uZmlnIGIva2VybmVsLWFhcmNoNjQtMTZrLWZlZG9y YS5jb25maWcKaW5kZXggNjAxMzAyMS4uZjliMDRhNCAxMDA2NDQKLS0tIGEva2VybmVsLWFhcmNo NjQtMTZrLWZlZG9yYS5jb25maWcKKysrIGIva2VybmVsLWFhcmNoNjQtMTZrLWZlZG9yYS5jb25m aWcKQEAgLTEwMzUwLDYgKzEwMzUwLDcgQEAgQ09ORklHX1ZJREVPX0lNWDhNUV9NSVBJX0NTSTI9 bQogIyBDT05GSUdfVklERU9fSU1YX01FRElBIGlzIG5vdCBzZXQKIENPTkZJR19WSURFT19JTVhf TUlQSV9DU0lTPW0KIENPTkZJR19WSURFT19JTVhfUFhQPW0KKyMgQ09ORklHX1ZJREVPX0lOVEVM X0NWUyBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JUFUzX0NJTzIgaXMgbm90IHNldAogQ09O RklHX1ZJREVPX0lSX0kyQz1tCiBDT05GSUdfVklERU9fSVNMNzk5OFg9bQoKZGlmZiAtLWdpdCBh L2tlcm5lbC1hYXJjaDY0LTY0ay1kZWJ1Zy1yaGVsLmNvbmZpZyBiL2tlcm5lbC1hYXJjaDY0LTY0 ay1kZWJ1Zy1yaGVsLmNvbmZpZwppbmRleCBjMGQ3OGVmLi5mODQ3YmUyIDEwMDY0NAotLS0gYS9r ZXJuZWwtYWFyY2g2NC02NGstZGVidWctcmhlbC5jb25maWcKKysrIGIva2VybmVsLWFhcmNoNjQt NjRrLWRlYnVnLXJoZWwuY29uZmlnCkBAIC04NDU2LDYgKzg0NTYsNyBAQCBDT05GSUdfVklERU9f RkJfSVZUVj1tCiAjIENPTkZJR19WSURFT19JTVg4X0lTSSBpcyBub3Qgc2V0CiAjIENPTkZJR19W SURFT19JTVg4TVFfTUlQSV9DU0kyIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lNWF9NSVBJ X0NTSVMgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fSU5URUxfQ1ZTIGlzIG5vdCBzZXQKICMg Q09ORklHX1ZJREVPX0lOVEVMX0lQVTYgaXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSVBVM19D SU8yIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lTTDc5OThYIGlzIG5vdCBzZXQKCmRpZmYg LS1naXQgYS9rZXJuZWwtYWFyY2g2NC02NGstcmhlbC5jb25maWcgYi9rZXJuZWwtYWFyY2g2NC02 NGstcmhlbC5jb25maWcKaW5kZXggMzFkZTU5ZS4uZmU5ZDk4NCAxMDA2NDQKLS0tIGEva2VybmVs LWFhcmNoNjQtNjRrLXJoZWwuY29uZmlnCisrKyBiL2tlcm5lbC1hYXJjaDY0LTY0ay1yaGVsLmNv bmZpZwpAQCAtODQyNyw2ICs4NDI3LDcgQEAgQ09ORklHX1ZJREVPX0ZCX0lWVFY9bQogIyBDT05G SUdfVklERU9fSU1YOF9JU0kgaXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSU1YOE1RX01JUElf Q1NJMiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JTVhfTUlQSV9DU0lTIGlzIG5vdCBzZXQK KyMgQ09ORklHX1ZJREVPX0lOVEVMX0NWUyBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JTlRF TF9JUFU2IGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lQVTNfQ0lPMiBpcyBub3Qgc2V0CiAj IENPTkZJR19WSURFT19JU0w3OTk4WCBpcyBub3Qgc2V0CgpkaWZmIC0tZ2l0IGEva2VybmVsLWFh cmNoNjQtZGVidWctZmVkb3JhLmNvbmZpZyBiL2tlcm5lbC1hYXJjaDY0LWRlYnVnLWZlZG9yYS5j b25maWcKaW5kZXggYzNiNmJmYS4uYWQ3MTFiYiAxMDA2NDQKLS0tIGEva2VybmVsLWFhcmNoNjQt ZGVidWctZmVkb3JhLmNvbmZpZworKysgYi9rZXJuZWwtYWFyY2g2NC1kZWJ1Zy1mZWRvcmEuY29u ZmlnCkBAIC0xMDM4Myw2ICsxMDM4Myw3IEBAIENPTkZJR19WSURFT19JTVg4TVFfTUlQSV9DU0ky PW0KICMgQ09ORklHX1ZJREVPX0lNWF9NRURJQSBpcyBub3Qgc2V0CiBDT05GSUdfVklERU9fSU1Y X01JUElfQ1NJUz1tCiBDT05GSUdfVklERU9fSU1YX1BYUD1tCisjIENPTkZJR19WSURFT19JTlRF TF9DVlMgaXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSVBVM19DSU8yIGlzIG5vdCBzZXQKIENP TkZJR19WSURFT19JUl9JMkM9bQogQ09ORklHX1ZJREVPX0lTTDc5OThYPW0KCmRpZmYgLS1naXQg YS9rZXJuZWwtYWFyY2g2NC1kZWJ1Zy1yaGVsLmNvbmZpZyBiL2tlcm5lbC1hYXJjaDY0LWRlYnVn LXJoZWwuY29uZmlnCmluZGV4IDcyN2QyNmUuLjA0ZWFkNGMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC1h YXJjaDY0LWRlYnVnLXJoZWwuY29uZmlnCisrKyBiL2tlcm5lbC1hYXJjaDY0LWRlYnVnLXJoZWwu Y29uZmlnCkBAIC04NDUzLDYgKzg0NTMsNyBAQCBDT05GSUdfVklERU9fRkJfSVZUVj1tCiAjIENP TkZJR19WSURFT19JTVg4X0lTSSBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JTVg4TVFfTUlQ SV9DU0kyIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lNWF9NSVBJX0NTSVMgaXMgbm90IHNl dAorIyBDT05GSUdfVklERU9fSU5URUxfQ1ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lO VEVMX0lQVTYgaXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSVBVM19DSU8yIGlzIG5vdCBzZXQK ICMgQ09ORklHX1ZJREVPX0lTTDc5OThYIGlzIG5vdCBzZXQKCmRpZmYgLS1naXQgYS9rZXJuZWwt YWFyY2g2NC1mZWRvcmEuY29uZmlnIGIva2VybmVsLWFhcmNoNjQtZmVkb3JhLmNvbmZpZwppbmRl eCBlYjE0YTBhLi5iZjhiMzQ3IDEwMDY0NAotLS0gYS9rZXJuZWwtYWFyY2g2NC1mZWRvcmEuY29u ZmlnCisrKyBiL2tlcm5lbC1hYXJjaDY0LWZlZG9yYS5jb25maWcKQEAgLTEwMzQ5LDYgKzEwMzQ5 LDcgQEAgQ09ORklHX1ZJREVPX0lNWDhNUV9NSVBJX0NTSTI9bQogIyBDT05GSUdfVklERU9fSU1Y X01FRElBIGlzIG5vdCBzZXQKIENPTkZJR19WSURFT19JTVhfTUlQSV9DU0lTPW0KIENPTkZJR19W SURFT19JTVhfUFhQPW0KKyMgQ09ORklHX1ZJREVPX0lOVEVMX0NWUyBpcyBub3Qgc2V0CiAjIENP TkZJR19WSURFT19JUFUzX0NJTzIgaXMgbm90IHNldAogQ09ORklHX1ZJREVPX0lSX0kyQz1tCiBD T05GSUdfVklERU9fSVNMNzk5OFg9bQoKZGlmZiAtLWdpdCBhL2tlcm5lbC1hYXJjaDY0LXJoZWwu Y29uZmlnIGIva2VybmVsLWFhcmNoNjQtcmhlbC5jb25maWcKaW5kZXggNmNlMWYwNi4uYjZjMWIw MiAxMDA2NDQKLS0tIGEva2VybmVsLWFhcmNoNjQtcmhlbC5jb25maWcKKysrIGIva2VybmVsLWFh cmNoNjQtcmhlbC5jb25maWcKQEAgLTg0MjQsNiArODQyNCw3IEBAIENPTkZJR19WSURFT19GQl9J VlRWPW0KICMgQ09ORklHX1ZJREVPX0lNWDhfSVNJIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVP X0lNWDhNUV9NSVBJX0NTSTIgaXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSU1YX01JUElfQ1NJ UyBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19JTlRFTF9DVlMgaXMgbm90IHNldAogIyBDT05G SUdfVklERU9fSU5URUxfSVBVNiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JUFUzX0NJTzIg aXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSVNMNzk5OFggaXMgbm90IHNldAoKZGlmZiAtLWdp dCBhL2tlcm5lbC1hYXJjaDY0LXJ0LTY0ay1kZWJ1Zy1mZWRvcmEuY29uZmlnIGIva2VybmVsLWFh cmNoNjQtcnQtNjRrLWRlYnVnLWZlZG9yYS5jb25maWcKaW5kZXggZWU0MzcyOS4uMDZkYjMzOSAx MDA2NDQKLS0tIGEva2VybmVsLWFhcmNoNjQtcnQtNjRrLWRlYnVnLWZlZG9yYS5jb25maWcKKysr IGIva2VybmVsLWFhcmNoNjQtcnQtNjRrLWRlYnVnLWZlZG9yYS5jb25maWcKQEAgLTEwMzk5LDYg KzEwMzk5LDcgQEAgQ09ORklHX1ZJREVPX0lNWDhNUV9NSVBJX0NTSTI9bQogIyBDT05GSUdfVklE RU9fSU1YX01FRElBIGlzIG5vdCBzZXQKIENPTkZJR19WSURFT19JTVhfTUlQSV9DU0lTPW0KIENP TkZJR19WSURFT19JTVhfUFhQPW0KKyMgQ09ORklHX1ZJREVPX0lOVEVMX0NWUyBpcyBub3Qgc2V0 CiAjIENPTkZJR19WSURFT19JUFUzX0NJTzIgaXMgbm90IHNldAogQ09ORklHX1ZJREVPX0lSX0ky Qz1tCiBDT05GSUdfVklERU9fSVNMNzk5OFg9bQoKZGlmZiAtLWdpdCBhL2tlcm5lbC1hYXJjaDY0 LXJ0LTY0ay1kZWJ1Zy1yaGVsLmNvbmZpZyBiL2tlcm5lbC1hYXJjaDY0LXJ0LTY0ay1kZWJ1Zy1y aGVsLmNvbmZpZwppbmRleCAwMGY5OWU5Li43Y2UyNjdjIDEwMDY0NAotLS0gYS9rZXJuZWwtYWFy Y2g2NC1ydC02NGstZGVidWctcmhlbC5jb25maWcKKysrIGIva2VybmVsLWFhcmNoNjQtcnQtNjRr LWRlYnVnLXJoZWwuY29uZmlnCkBAIC04NTAzLDYgKzg1MDMsNyBAQCBDT05GSUdfVklERU9fRkJf SVZUVj1tCiAjIENPTkZJR19WSURFT19JTVg4X0lTSSBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURF T19JTVg4TVFfTUlQSV9DU0kyIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lNWF9NSVBJX0NT SVMgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fSU5URUxfQ1ZTIGlzIG5vdCBzZXQKICMgQ09O RklHX1ZJREVPX0lOVEVMX0lQVTYgaXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSVBVM19DSU8y IGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lTTDc5OThYIGlzIG5vdCBzZXQKCmRpZmYgLS1n aXQgYS9rZXJuZWwtYWFyY2g2NC1ydC02NGstZmVkb3JhLmNvbmZpZyBiL2tlcm5lbC1hYXJjaDY0 LXJ0LTY0ay1mZWRvcmEuY29uZmlnCmluZGV4IGQ4MjVjNjAuLjNiMjhhYWEgMTAwNjQ0Ci0tLSBh L2tlcm5lbC1hYXJjaDY0LXJ0LTY0ay1mZWRvcmEuY29uZmlnCisrKyBiL2tlcm5lbC1hYXJjaDY0 LXJ0LTY0ay1mZWRvcmEuY29uZmlnCkBAIC0xMDM2NSw2ICsxMDM2NSw3IEBAIENPTkZJR19WSURF T19JTVg4TVFfTUlQSV9DU0kyPW0KICMgQ09ORklHX1ZJREVPX0lNWF9NRURJQSBpcyBub3Qgc2V0 CiBDT05GSUdfVklERU9fSU1YX01JUElfQ1NJUz1tCiBDT05GSUdfVklERU9fSU1YX1BYUD1tCisj IENPTkZJR19WSURFT19JTlRFTF9DVlMgaXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSVBVM19D SU8yIGlzIG5vdCBzZXQKIENPTkZJR19WSURFT19JUl9JMkM9bQogQ09ORklHX1ZJREVPX0lTTDc5 OThYPW0KCmRpZmYgLS1naXQgYS9rZXJuZWwtYWFyY2g2NC1ydC02NGstcmhlbC5jb25maWcgYi9r ZXJuZWwtYWFyY2g2NC1ydC02NGstcmhlbC5jb25maWcKaW5kZXggNTIxMzc0ZS4uNDA5ZWIxZCAx MDA2NDQKLS0tIGEva2VybmVsLWFhcmNoNjQtcnQtNjRrLXJoZWwuY29uZmlnCisrKyBiL2tlcm5l bC1hYXJjaDY0LXJ0LTY0ay1yaGVsLmNvbmZpZwpAQCAtODQ3NCw2ICs4NDc0LDcgQEAgQ09ORklH X1ZJREVPX0ZCX0lWVFY9bQogIyBDT05GSUdfVklERU9fSU1YOF9JU0kgaXMgbm90IHNldAogIyBD T05GSUdfVklERU9fSU1YOE1RX01JUElfQ1NJMiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19J TVhfTUlQSV9DU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX0lOVEVMX0NWUyBpcyBub3Qg c2V0CiAjIENPTkZJR19WSURFT19JTlRFTF9JUFU2IGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVP X0lQVTNfQ0lPMiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JU0w3OTk4WCBpcyBub3Qgc2V0 CgpkaWZmIC0tZ2l0IGEva2VybmVsLWFhcmNoNjQtcnQtZGVidWctZmVkb3JhLmNvbmZpZyBiL2tl cm5lbC1hYXJjaDY0LXJ0LWRlYnVnLWZlZG9yYS5jb25maWcKaW5kZXggOGIwODA4Mi4uYzYwMzJm MiAxMDA2NDQKLS0tIGEva2VybmVsLWFhcmNoNjQtcnQtZGVidWctZmVkb3JhLmNvbmZpZworKysg Yi9rZXJuZWwtYWFyY2g2NC1ydC1kZWJ1Zy1mZWRvcmEuY29uZmlnCkBAIC0xMDM5NSw2ICsxMDM5 NSw3IEBAIENPTkZJR19WSURFT19JTVg4TVFfTUlQSV9DU0kyPW0KICMgQ09ORklHX1ZJREVPX0lN WF9NRURJQSBpcyBub3Qgc2V0CiBDT05GSUdfVklERU9fSU1YX01JUElfQ1NJUz1tCiBDT05GSUdf VklERU9fSU1YX1BYUD1tCisjIENPTkZJR19WSURFT19JTlRFTF9DVlMgaXMgbm90IHNldAogIyBD T05GSUdfVklERU9fSVBVM19DSU8yIGlzIG5vdCBzZXQKIENPTkZJR19WSURFT19JUl9JMkM9bQog Q09ORklHX1ZJREVPX0lTTDc5OThYPW0KCmRpZmYgLS1naXQgYS9rZXJuZWwtYWFyY2g2NC1ydC1k ZWJ1Zy1yaGVsLmNvbmZpZyBiL2tlcm5lbC1hYXJjaDY0LXJ0LWRlYnVnLXJoZWwuY29uZmlnCmlu ZGV4IGZhNjhkZGYuLmEyNjg5MDkgMTAwNjQ0Ci0tLSBhL2tlcm5lbC1hYXJjaDY0LXJ0LWRlYnVn LXJoZWwuY29uZmlnCisrKyBiL2tlcm5lbC1hYXJjaDY0LXJ0LWRlYnVnLXJoZWwuY29uZmlnCkBA IC04NDk5LDYgKzg0OTksNyBAQCBDT05GSUdfVklERU9fRkJfSVZUVj1tCiAjIENPTkZJR19WSURF T19JTVg4X0lTSSBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JTVg4TVFfTUlQSV9DU0kyIGlz IG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lNWF9NSVBJX0NTSVMgaXMgbm90IHNldAorIyBDT05G SUdfVklERU9fSU5URUxfQ1ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lOVEVMX0lQVTYg aXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSVBVM19DSU8yIGlzIG5vdCBzZXQKICMgQ09ORklH X1ZJREVPX0lTTDc5OThYIGlzIG5vdCBzZXQKCmRpZmYgLS1naXQgYS9rZXJuZWwtYWFyY2g2NC1y dC1mZWRvcmEuY29uZmlnIGIva2VybmVsLWFhcmNoNjQtcnQtZmVkb3JhLmNvbmZpZwppbmRleCA3 NWM2YWMyLi5iODVlODZiIDEwMDY0NAotLS0gYS9rZXJuZWwtYWFyY2g2NC1ydC1mZWRvcmEuY29u ZmlnCisrKyBiL2tlcm5lbC1hYXJjaDY0LXJ0LWZlZG9yYS5jb25maWcKQEAgLTEwMzYxLDYgKzEw MzYxLDcgQEAgQ09ORklHX1ZJREVPX0lNWDhNUV9NSVBJX0NTSTI9bQogIyBDT05GSUdfVklERU9f SU1YX01FRElBIGlzIG5vdCBzZXQKIENPTkZJR19WSURFT19JTVhfTUlQSV9DU0lTPW0KIENPTkZJ R19WSURFT19JTVhfUFhQPW0KKyMgQ09ORklHX1ZJREVPX0lOVEVMX0NWUyBpcyBub3Qgc2V0CiAj IENPTkZJR19WSURFT19JUFUzX0NJTzIgaXMgbm90IHNldAogQ09ORklHX1ZJREVPX0lSX0kyQz1t CiBDT05GSUdfVklERU9fSVNMNzk5OFg9bQoKZGlmZiAtLWdpdCBhL2tlcm5lbC1hYXJjaDY0LXJ0 LXJoZWwuY29uZmlnIGIva2VybmVsLWFhcmNoNjQtcnQtcmhlbC5jb25maWcKaW5kZXggMWQ3YmE4 Ny4uMjBjODlmYiAxMDA2NDQKLS0tIGEva2VybmVsLWFhcmNoNjQtcnQtcmhlbC5jb25maWcKKysr IGIva2VybmVsLWFhcmNoNjQtcnQtcmhlbC5jb25maWcKQEAgLTg0NzAsNiArODQ3MCw3IEBAIENP TkZJR19WSURFT19GQl9JVlRWPW0KICMgQ09ORklHX1ZJREVPX0lNWDhfSVNJIGlzIG5vdCBzZXQK ICMgQ09ORklHX1ZJREVPX0lNWDhNUV9NSVBJX0NTSTIgaXMgbm90IHNldAogIyBDT05GSUdfVklE RU9fSU1YX01JUElfQ1NJUyBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19JTlRFTF9DVlMgaXMg bm90IHNldAogIyBDT05GSUdfVklERU9fSU5URUxfSVBVNiBpcyBub3Qgc2V0CiAjIENPTkZJR19W SURFT19JUFUzX0NJTzIgaXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSVNMNzk5OFggaXMgbm90 IHNldAoKZGlmZiAtLWdpdCBhL2tlcm5lbC1wcGM2NGxlLWRlYnVnLWZlZG9yYS5jb25maWcgYi9r ZXJuZWwtcHBjNjRsZS1kZWJ1Zy1mZWRvcmEuY29uZmlnCmluZGV4IDc0MGE3MTkuLjQ3ZWY4MDkg MTAwNjQ0Ci0tLSBhL2tlcm5lbC1wcGM2NGxlLWRlYnVnLWZlZG9yYS5jb25maWcKKysrIGIva2Vy bmVsLXBwYzY0bGUtZGVidWctZmVkb3JhLmNvbmZpZwpAQCAtODM4Nyw2ICs4Mzg3LDcgQEAgQ09O RklHX1ZJREVPX0lNWDM1NT1tCiBDT05GSUdfVklERU9fSU1YNDEyPW0KIENPTkZJR19WSURFT19J TVg0MTU9bQogIyBDT05GSUdfVklERU9fSU1YNDcxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVP X0lOVEVMX0NWUyBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JUFUzX0NJTzIgaXMgbm90IHNl dAogQ09ORklHX1ZJREVPX0lSX0kyQz1tCiBDT05GSUdfVklERU9fSVNMNzk5OFg9bQoKZGlmZiAt LWdpdCBhL2tlcm5lbC1wcGM2NGxlLWRlYnVnLXJoZWwuY29uZmlnIGIva2VybmVsLXBwYzY0bGUt ZGVidWctcmhlbC5jb25maWcKaW5kZXggNjE5OWI4YS4uZWFlMjEwMSAxMDA2NDQKLS0tIGEva2Vy bmVsLXBwYzY0bGUtZGVidWctcmhlbC5jb25maWcKKysrIGIva2VybmVsLXBwYzY0bGUtZGVidWct cmhlbC5jb25maWcKQEAgLTc4MjcsNiArNzgyNyw3IEBAIENPTkZJR19WSURFT19GQl9JVlRWPW0K ICMgQ09ORklHX1ZJREVPX0lNWDQxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JTVg0MTUg aXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSU1YNDcxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJ REVPX0lOVEVMX0NWUyBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JTlRFTF9JUFU2IGlzIG5v dCBzZXQKICMgQ09ORklHX1ZJREVPX0lQVTNfQ0lPMiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURF T19JU0w3OTk4WCBpcyBub3Qgc2V0CgpkaWZmIC0tZ2l0IGEva2VybmVsLXBwYzY0bGUtZmVkb3Jh LmNvbmZpZyBiL2tlcm5lbC1wcGM2NGxlLWZlZG9yYS5jb25maWcKaW5kZXggMjJhZDMxNS4uMjQ5 NWNmNiAxMDA2NDQKLS0tIGEva2VybmVsLXBwYzY0bGUtZmVkb3JhLmNvbmZpZworKysgYi9rZXJu ZWwtcHBjNjRsZS1mZWRvcmEuY29uZmlnCkBAIC04MzUyLDYgKzgzNTIsNyBAQCBDT05GSUdfVklE RU9fSU1YMzU1PW0KIENPTkZJR19WSURFT19JTVg0MTI9bQogQ09ORklHX1ZJREVPX0lNWDQxNT1t CiAjIENPTkZJR19WSURFT19JTVg0NzEgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fSU5URUxf Q1ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lQVTNfQ0lPMiBpcyBub3Qgc2V0CiBDT05G SUdfVklERU9fSVJfSTJDPW0KIENPTkZJR19WSURFT19JU0w3OTk4WD1tCgpkaWZmIC0tZ2l0IGEv a2VybmVsLXBwYzY0bGUtcmhlbC5jb25maWcgYi9rZXJuZWwtcHBjNjRsZS1yaGVsLmNvbmZpZwpp bmRleCBiM2RkMjdhLi5jM2NjODJkIDEwMDY0NAotLS0gYS9rZXJuZWwtcHBjNjRsZS1yaGVsLmNv bmZpZworKysgYi9rZXJuZWwtcHBjNjRsZS1yaGVsLmNvbmZpZwpAQCAtNzgwMCw2ICs3ODAwLDcg QEAgQ09ORklHX1ZJREVPX0ZCX0lWVFY9bQogIyBDT05GSUdfVklERU9fSU1YNDEyIGlzIG5vdCBz ZXQKICMgQ09ORklHX1ZJREVPX0lNWDQxNSBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JTVg0 NzEgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fSU5URUxfQ1ZTIGlzIG5vdCBzZXQKICMgQ09O RklHX1ZJREVPX0lOVEVMX0lQVTYgaXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSVBVM19DSU8y IGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lTTDc5OThYIGlzIG5vdCBzZXQKCmRpZmYgLS1n aXQgYS9rZXJuZWwtcmlzY3Y2NC1kZWJ1Zy1mZWRvcmEuY29uZmlnIGIva2VybmVsLXJpc2N2NjQt ZGVidWctZmVkb3JhLmNvbmZpZwppbmRleCBhNWNjMTM0Li4zYjU3MTliIDEwMDY0NAotLS0gYS9r ZXJuZWwtcmlzY3Y2NC1kZWJ1Zy1mZWRvcmEuY29uZmlnCisrKyBiL2tlcm5lbC1yaXNjdjY0LWRl YnVnLWZlZG9yYS5jb25maWcKQEAgLTg1NjQsNiArODU2NCw3IEBAIENPTkZJR19WSURFT19JTVgz NTU9bQogQ09ORklHX1ZJREVPX0lNWDQxMj1tCiBDT05GSUdfVklERU9fSU1YNDE1PW0KICMgQ09O RklHX1ZJREVPX0lNWDQ3MSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19JTlRFTF9DVlMgaXMg bm90IHNldAogIyBDT05GSUdfVklERU9fSVBVM19DSU8yIGlzIG5vdCBzZXQKIENPTkZJR19WSURF T19JUl9JMkM9bQogIyBDT05GSUdfVklERU9fSVNMNzk5OFggaXMgbm90IHNldAoKZGlmZiAtLWdp dCBhL2tlcm5lbC1yaXNjdjY0LWRlYnVnLXJoZWwuY29uZmlnIGIva2VybmVsLXJpc2N2NjQtZGVi dWctcmhlbC5jb25maWcKaW5kZXggMDg0YjUxZS4uZWMxMmQ0OSAxMDA2NDQKLS0tIGEva2VybmVs LXJpc2N2NjQtZGVidWctcmhlbC5jb25maWcKKysrIGIva2VybmVsLXJpc2N2NjQtZGVidWctcmhl bC5jb25maWcKQEAgLTc5MDgsNiArNzkwOCw3IEBAIENPTkZJR19WSURFT19GQl9JVlRWPW0KICMg Q09ORklHX1ZJREVPX0lNWDQxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JTVg0MTUgaXMg bm90IHNldAogIyBDT05GSUdfVklERU9fSU1YNDcxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVP X0lOVEVMX0NWUyBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JTlRFTF9JUFU2IGlzIG5vdCBz ZXQKICMgQ09ORklHX1ZJREVPX0lQVTNfQ0lPMiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19J U0w3OTk4WCBpcyBub3Qgc2V0CgpkaWZmIC0tZ2l0IGEva2VybmVsLXJpc2N2NjQtZmVkb3JhLmNv bmZpZyBiL2tlcm5lbC1yaXNjdjY0LWZlZG9yYS5jb25maWcKaW5kZXggMzhjY2ZhYi4uYzFlZmQ5 OSAxMDA2NDQKLS0tIGEva2VybmVsLXJpc2N2NjQtZmVkb3JhLmNvbmZpZworKysgYi9rZXJuZWwt cmlzY3Y2NC1mZWRvcmEuY29uZmlnCkBAIC04NTI5LDYgKzg1MjksNyBAQCBDT05GSUdfVklERU9f SU1YMzU1PW0KIENPTkZJR19WSURFT19JTVg0MTI9bQogQ09ORklHX1ZJREVPX0lNWDQxNT1tCiAj IENPTkZJR19WSURFT19JTVg0NzEgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fSU5URUxfQ1ZT IGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lQVTNfQ0lPMiBpcyBub3Qgc2V0CiBDT05GSUdf VklERU9fSVJfSTJDPW0KICMgQ09ORklHX1ZJREVPX0lTTDc5OThYIGlzIG5vdCBzZXQKCmRpZmYg LS1naXQgYS9rZXJuZWwtcmlzY3Y2NC1yaGVsLmNvbmZpZyBiL2tlcm5lbC1yaXNjdjY0LXJoZWwu Y29uZmlnCmluZGV4IDY1ZGIyYjEuLjcxNjQ1NDQgMTAwNjQ0Ci0tLSBhL2tlcm5lbC1yaXNjdjY0 LXJoZWwuY29uZmlnCisrKyBiL2tlcm5lbC1yaXNjdjY0LXJoZWwuY29uZmlnCkBAIC03ODgxLDYg Kzc4ODEsNyBAQCBDT05GSUdfVklERU9fRkJfSVZUVj1tCiAjIENPTkZJR19WSURFT19JTVg0MTIg aXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSU1YNDE1IGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJ REVPX0lNWDQ3MSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19JTlRFTF9DVlMgaXMgbm90IHNl dAogIyBDT05GSUdfVklERU9fSU5URUxfSVBVNiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19J UFUzX0NJTzIgaXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSVNMNzk5OFggaXMgbm90IHNldAoK ZGlmZiAtLWdpdCBhL2tlcm5lbC1yaXNjdjY0LXJ0LWRlYnVnLWZlZG9yYS5jb25maWcgYi9rZXJu ZWwtcmlzY3Y2NC1ydC1kZWJ1Zy1mZWRvcmEuY29uZmlnCmluZGV4IDJiODkwMjguLjZjY2Y2NTIg MTAwNjQ0Ci0tLSBhL2tlcm5lbC1yaXNjdjY0LXJ0LWRlYnVnLWZlZG9yYS5jb25maWcKKysrIGIv a2VybmVsLXJpc2N2NjQtcnQtZGVidWctZmVkb3JhLmNvbmZpZwpAQCAtODU3Niw2ICs4NTc2LDcg QEAgQ09ORklHX1ZJREVPX0lNWDM1NT1tCiBDT05GSUdfVklERU9fSU1YNDEyPW0KIENPTkZJR19W SURFT19JTVg0MTU9bQogIyBDT05GSUdfVklERU9fSU1YNDcxIGlzIG5vdCBzZXQKKyMgQ09ORklH X1ZJREVPX0lOVEVMX0NWUyBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JUFUzX0NJTzIgaXMg bm90IHNldAogQ09ORklHX1ZJREVPX0lSX0kyQz1tCiAjIENPTkZJR19WSURFT19JU0w3OTk4WCBp cyBub3Qgc2V0CgpkaWZmIC0tZ2l0IGEva2VybmVsLXJpc2N2NjQtcnQtZmVkb3JhLmNvbmZpZyBi L2tlcm5lbC1yaXNjdjY0LXJ0LWZlZG9yYS5jb25maWcKaW5kZXggZjJkNWU1Yi4uMmJmMmI5NSAx MDA2NDQKLS0tIGEva2VybmVsLXJpc2N2NjQtcnQtZmVkb3JhLmNvbmZpZworKysgYi9rZXJuZWwt cmlzY3Y2NC1ydC1mZWRvcmEuY29uZmlnCkBAIC04NTQxLDYgKzg1NDEsNyBAQCBDT05GSUdfVklE RU9fSU1YMzU1PW0KIENPTkZJR19WSURFT19JTVg0MTI9bQogQ09ORklHX1ZJREVPX0lNWDQxNT1t CiAjIENPTkZJR19WSURFT19JTVg0NzEgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fSU5URUxf Q1ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lQVTNfQ0lPMiBpcyBub3Qgc2V0CiBDT05G SUdfVklERU9fSVJfSTJDPW0KICMgQ09ORklHX1ZJREVPX0lTTDc5OThYIGlzIG5vdCBzZXQKCmRp ZmYgLS1naXQgYS9rZXJuZWwtczM5MHgtZGVidWctZmVkb3JhLmNvbmZpZyBiL2tlcm5lbC1zMzkw eC1kZWJ1Zy1mZWRvcmEuY29uZmlnCmluZGV4IDU2ODJmZTEuLmNjZTliNjYgMTAwNjQ0Ci0tLSBh L2tlcm5lbC1zMzkweC1kZWJ1Zy1mZWRvcmEuY29uZmlnCisrKyBiL2tlcm5lbC1zMzkweC1kZWJ1 Zy1mZWRvcmEuY29uZmlnCkBAIC04MzQzLDYgKzgzNDMsNyBAQCBDT05GSUdfVklERU9fSU1YMzU1 PW0KIENPTkZJR19WSURFT19JTVg0MTI9bQogQ09ORklHX1ZJREVPX0lNWDQxNT1tCiAjIENPTkZJ R19WSURFT19JTVg0NzEgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fSU5URUxfQ1ZTIGlzIG5v dCBzZXQKICMgQ09ORklHX1ZJREVPX0lQVTNfQ0lPMiBpcyBub3Qgc2V0CiBDT05GSUdfVklERU9f SVJfSTJDPW0KIENPTkZJR19WSURFT19JU0w3OTk4WD1tCgpkaWZmIC0tZ2l0IGEva2VybmVsLXMz OTB4LWRlYnVnLXJoZWwuY29uZmlnIGIva2VybmVsLXMzOTB4LWRlYnVnLXJoZWwuY29uZmlnCmlu ZGV4IGM5NDdjODAuLmYzYWUxZjIgMTAwNjQ0Ci0tLSBhL2tlcm5lbC1zMzkweC1kZWJ1Zy1yaGVs LmNvbmZpZworKysgYi9rZXJuZWwtczM5MHgtZGVidWctcmhlbC5jb25maWcKQEAgLTc4MjEsNiAr NzgyMSw3IEBAIENPTkZJR19WSURFT19GQl9JVlRWPW0KICMgQ09ORklHX1ZJREVPX0lNWDQxMiBp cyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JTVg0MTUgaXMgbm90IHNldAogIyBDT05GSUdfVklE RU9fSU1YNDcxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX0lOVEVMX0NWUyBpcyBub3Qgc2V0 CiAjIENPTkZJR19WSURFT19JTlRFTF9JUFU2IGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lQ VTNfQ0lPMiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JU0w3OTk4WCBpcyBub3Qgc2V0Cgpk aWZmIC0tZ2l0IGEva2VybmVsLXMzOTB4LWZlZG9yYS5jb25maWcgYi9rZXJuZWwtczM5MHgtZmVk b3JhLmNvbmZpZwppbmRleCA1MGEwMTg2Li4wZGU1YzAxIDEwMDY0NAotLS0gYS9rZXJuZWwtczM5 MHgtZmVkb3JhLmNvbmZpZworKysgYi9rZXJuZWwtczM5MHgtZmVkb3JhLmNvbmZpZwpAQCAtODMw OCw2ICs4MzA4LDcgQEAgQ09ORklHX1ZJREVPX0lNWDM1NT1tCiBDT05GSUdfVklERU9fSU1YNDEy PW0KIENPTkZJR19WSURFT19JTVg0MTU9bQogIyBDT05GSUdfVklERU9fSU1YNDcxIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1ZJREVPX0lOVEVMX0NWUyBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19J UFUzX0NJTzIgaXMgbm90IHNldAogQ09ORklHX1ZJREVPX0lSX0kyQz1tCiBDT05GSUdfVklERU9f SVNMNzk5OFg9bQoKZGlmZiAtLWdpdCBhL2tlcm5lbC1zMzkweC1yaGVsLmNvbmZpZyBiL2tlcm5l bC1zMzkweC1yaGVsLmNvbmZpZwppbmRleCA4YjVjM2VkLi5hNThmYzc3IDEwMDY0NAotLS0gYS9r ZXJuZWwtczM5MHgtcmhlbC5jb25maWcKKysrIGIva2VybmVsLXMzOTB4LXJoZWwuY29uZmlnCkBA IC03Nzk0LDYgKzc3OTQsNyBAQCBDT05GSUdfVklERU9fRkJfSVZUVj1tCiAjIENPTkZJR19WSURF T19JTVg0MTIgaXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSU1YNDE1IGlzIG5vdCBzZXQKICMg Q09ORklHX1ZJREVPX0lNWDQ3MSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19JTlRFTF9DVlMg aXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSU5URUxfSVBVNiBpcyBub3Qgc2V0CiAjIENPTkZJ R19WSURFT19JUFUzX0NJTzIgaXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSVNMNzk5OFggaXMg bm90IHNldAoKZGlmZiAtLWdpdCBhL2tlcm5lbC1zMzkweC16ZmNwZHVtcC1yaGVsLmNvbmZpZyBi L2tlcm5lbC1zMzkweC16ZmNwZHVtcC1yaGVsLmNvbmZpZwppbmRleCAzZGVhMjZhLi5lOWFlMzgy IDEwMDY0NAotLS0gYS9rZXJuZWwtczM5MHgtemZjcGR1bXAtcmhlbC5jb25maWcKKysrIGIva2Vy bmVsLXMzOTB4LXpmY3BkdW1wLXJoZWwuY29uZmlnCkBAIC03ODE1LDYgKzc4MTUsNyBAQCBDT05G SUdfVklERU9fRkJfSVZUVj1tCiAjIENPTkZJR19WSURFT19JTVg0MTIgaXMgbm90IHNldAogIyBD T05GSUdfVklERU9fSU1YNDE1IGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lNWDQ3MSBpcyBu b3Qgc2V0CisjIENPTkZJR19WSURFT19JTlRFTF9DVlMgaXMgbm90IHNldAogIyBDT05GSUdfVklE RU9fSU5URUxfSVBVNiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JUFUzX0NJTzIgaXMgbm90 IHNldAogIyBDT05GSUdfVklERU9fSVNMNzk5OFggaXMgbm90IHNldAoKZGlmZiAtLWdpdCBhL2tl cm5lbC14ODZfNjQtZGVidWctZmVkb3JhLmNvbmZpZyBiL2tlcm5lbC14ODZfNjQtZGVidWctZmVk b3JhLmNvbmZpZwppbmRleCAzMWFkNDZmLi5iMTIzNGNmIDEwMDY0NAotLS0gYS9rZXJuZWwteDg2 XzY0LWRlYnVnLWZlZG9yYS5jb25maWcKKysrIGIva2VybmVsLXg4Nl82NC1kZWJ1Zy1mZWRvcmEu Y29uZmlnCkBAIC04OTg2LDYgKzg5ODYsNyBAQCBDT05GSUdfVklERU9fSU1YMzU1PW0KIENPTkZJ R19WSURFT19JTVg0MTI9bQogQ09ORklHX1ZJREVPX0lNWDQxNT1tCiBDT05GSUdfVklERU9fSU1Y NDcxPW0KK0NPTkZJR19WSURFT19JTlRFTF9DVlM9bQogQ09ORklHX1ZJREVPX0lOVEVMX0lQVTY9 bQogQ09ORklHX1ZJREVPX0lOVEVMX0lQVTc9bQogQ09ORklHX1ZJREVPX0lQVTNfQ0lPMj1tCgpk aWZmIC0tZ2l0IGEva2VybmVsLXg4Nl82NC1kZWJ1Zy1yaGVsLmNvbmZpZyBiL2tlcm5lbC14ODZf NjQtZGVidWctcmhlbC5jb25maWcKaW5kZXggNTg5ZmU5YS4uOGIxMmQ4YSAxMDA2NDQKLS0tIGEv a2VybmVsLXg4Nl82NC1kZWJ1Zy1yaGVsLmNvbmZpZworKysgYi9rZXJuZWwteDg2XzY0LWRlYnVn LXJoZWwuY29uZmlnCkBAIC04MjA4LDYgKzgyMDgsNyBAQCBDT05GSUdfVklERU9fSEk1NTY9bQog IyBDT05GSUdfVklERU9fSU1YNDEyIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lNWDQxNSBp cyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JTVg0NzEgaXMgbm90IHNldAorIyBDT05GSUdfVklE RU9fSU5URUxfQ1ZTIGlzIG5vdCBzZXQKIENPTkZJR19WSURFT19JTlRFTF9JUFU2PW0KICMgQ09O RklHX1ZJREVPX0lQVTNfQ0lPMiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19JU0w3OTk4WCBp cyBub3Qgc2V0CgpkaWZmIC0tZ2l0IGEva2VybmVsLXg4Nl82NC1mZWRvcmEuY29uZmlnIGIva2Vy bmVsLXg4Nl82NC1mZWRvcmEuY29uZmlnCmluZGV4IDE0ZGJlMjguLjE1ZTBhYjAgMTAwNjQ0Ci0t LSBhL2tlcm5lbC14ODZfNjQtZmVkb3JhLmNvbmZpZworKysgYi9rZXJuZWwteDg2XzY0LWZlZG9y YS5jb25maWcKQEAgLTg5NTIsNiArODk1Miw3IEBAIENPTkZJR19WSURFT19JTVgzNTU9bQogQ09O RklHX1ZJREVPX0lNWDQxMj1tCiBDT05GSUdfVklERU9fSU1YNDE1PW0KIENPTkZJR19WSURFT19J TVg0NzE9bQorQ09ORklHX1ZJREVPX0lOVEVMX0NWUz1tCiBDT05GSUdfVklERU9fSU5URUxfSVBV Nj1tCiBDT05GSUdfVklERU9fSU5URUxfSVBVNz1tCiBDT05GSUdfVklERU9fSVBVM19DSU8yPW0K CmRpZmYgLS1naXQgYS9rZXJuZWwteDg2XzY0LXJoZWwuY29uZmlnIGIva2VybmVsLXg4Nl82NC1y aGVsLmNvbmZpZwppbmRleCBjYWFlZGQ1Li42MjIxYjhmIDEwMDY0NAotLS0gYS9rZXJuZWwteDg2 XzY0LXJoZWwuY29uZmlnCisrKyBiL2tlcm5lbC14ODZfNjQtcmhlbC5jb25maWcKQEAgLTgxODAs NiArODE4MCw3IEBAIENPTkZJR19WSURFT19ISTU1Nj1tCiAjIENPTkZJR19WSURFT19JTVg0MTIg aXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSU1YNDE1IGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJ REVPX0lNWDQ3MSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19JTlRFTF9DVlMgaXMgbm90IHNl dAogQ09ORklHX1ZJREVPX0lOVEVMX0lQVTY9bQogIyBDT05GSUdfVklERU9fSVBVM19DSU8yIGlz IG5vdCBzZXQKICMgQ09ORklHX1ZJREVPX0lTTDc5OThYIGlzIG5vdCBzZXQKCmRpZmYgLS1naXQg YS9rZXJuZWwteDg2XzY0LXJ0LWRlYnVnLWZlZG9yYS5jb25maWcgYi9rZXJuZWwteDg2XzY0LXJ0 LWRlYnVnLWZlZG9yYS5jb25maWcKaW5kZXggMDVhZjY2NS4uNTk4NzVjYyAxMDA2NDQKLS0tIGEv a2VybmVsLXg4Nl82NC1ydC1kZWJ1Zy1mZWRvcmEuY29uZmlnCisrKyBiL2tlcm5lbC14ODZfNjQt cnQtZGVidWctZmVkb3JhLmNvbmZpZwpAQCAtODk5OCw2ICs4OTk4LDcgQEAgQ09ORklHX1ZJREVP X0lNWDM1NT1tCiBDT05GSUdfVklERU9fSU1YNDEyPW0KIENPTkZJR19WSURFT19JTVg0MTU9bQog Q09ORklHX1ZJREVPX0lNWDQ3MT1tCitDT05GSUdfVklERU9fSU5URUxfQ1ZTPW0KIENPTkZJR19W SURFT19JTlRFTF9JUFU2PW0KIENPTkZJR19WSURFT19JTlRFTF9JUFU3PW0KIENPTkZJR19WSURF T19JUFUzX0NJTzI9bQoKZGlmZiAtLWdpdCBhL2tlcm5lbC14ODZfNjQtcnQtZGVidWctcmhlbC5j b25maWcgYi9rZXJuZWwteDg2XzY0LXJ0LWRlYnVnLXJoZWwuY29uZmlnCmluZGV4IGNhZjhkNDgu Ljk2YTA2MDQgMTAwNjQ0Ci0tLSBhL2tlcm5lbC14ODZfNjQtcnQtZGVidWctcmhlbC5jb25maWcK KysrIGIva2VybmVsLXg4Nl82NC1ydC1kZWJ1Zy1yaGVsLmNvbmZpZwpAQCAtODI1NCw2ICs4MjU0 LDcgQEAgQ09ORklHX1ZJREVPX0hJNTU2PW0KICMgQ09ORklHX1ZJREVPX0lNWDQxMiBpcyBub3Qg c2V0CiAjIENPTkZJR19WSURFT19JTVg0MTUgaXMgbm90IHNldAogIyBDT05GSUdfVklERU9fSU1Y NDcxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX0lOVEVMX0NWUyBpcyBub3Qgc2V0CiBDT05G SUdfVklERU9fSU5URUxfSVBVNj1tCiAjIENPTkZJR19WSURFT19JUFUzX0NJTzIgaXMgbm90IHNl dAogIyBDT05GSUdfVklERU9fSVNMNzk5OFggaXMgbm90IHNldAoKZGlmZiAtLWdpdCBhL2tlcm5l bC14ODZfNjQtcnQtZmVkb3JhLmNvbmZpZyBiL2tlcm5lbC14ODZfNjQtcnQtZmVkb3JhLmNvbmZp ZwppbmRleCBkZTQ3ZjRmLi42ZjNjNzY4IDEwMDY0NAotLS0gYS9rZXJuZWwteDg2XzY0LXJ0LWZl ZG9yYS5jb25maWcKKysrIGIva2VybmVsLXg4Nl82NC1ydC1mZWRvcmEuY29uZmlnCkBAIC04OTY0 LDYgKzg5NjQsNyBAQCBDT05GSUdfVklERU9fSU1YMzU1PW0KIENPTkZJR19WSURFT19JTVg0MTI9 bQogQ09ORklHX1ZJREVPX0lNWDQxNT1tCiBDT05GSUdfVklERU9fSU1YNDcxPW0KK0NPTkZJR19W SURFT19JTlRFTF9DVlM9bQogQ09ORklHX1ZJREVPX0lOVEVMX0lQVTY9bQogQ09ORklHX1ZJREVP X0lOVEVMX0lQVTc9bQogQ09ORklHX1ZJREVPX0lQVTNfQ0lPMj1tCgpkaWZmIC0tZ2l0IGEva2Vy bmVsLXg4Nl82NC1ydC1yaGVsLmNvbmZpZyBiL2tlcm5lbC14ODZfNjQtcnQtcmhlbC5jb25maWcK aW5kZXggNzJlMzMxNS4uZDZiYTI4MSAxMDA2NDQKLS0tIGEva2VybmVsLXg4Nl82NC1ydC1yaGVs LmNvbmZpZworKysgYi9rZXJuZWwteDg2XzY0LXJ0LXJoZWwuY29uZmlnCkBAIC04MjI2LDYgKzgy MjYsNyBAQCBDT05GSUdfVklERU9fSEk1NTY9bQogIyBDT05GSUdfVklERU9fSU1YNDEyIGlzIG5v dCBzZXQKICMgQ09ORklHX1ZJREVPX0lNWDQxNSBpcyBub3Qgc2V0CiAjIENPTkZJR19WSURFT19J TVg0NzEgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fSU5URUxfQ1ZTIGlzIG5vdCBzZXQKIENP TkZJR19WSURFT19JTlRFTF9JUFU2PW0KICMgQ09ORklHX1ZJREVPX0lQVTNfQ0lPMiBpcyBub3Qg c2V0CiAjIENPTkZJR19WSURFT19JU0w3OTk4WCBpcyBub3Qgc2V0CgpkaWZmIC0tZ2l0IGEva2Vy bmVsLmNoYW5nZWxvZyBiL2tlcm5lbC5jaGFuZ2Vsb2cKaW5kZXggM2E0MjdhNC4uMDk1MmQyNiAx MDA2NDQKLS0tIGEva2VybmVsLmNoYW5nZWxvZworKysgYi9rZXJuZWwuY2hhbmdlbG9nCkBAIC0x LDMgKzEsMjAgQEAKKyogV2VkIFNlcCAwMiAyMDI2IEp1c3RpbiBNLiBGb3JiZXMgPGpmb3JiZXNA ZmVkb3JhcHJvamVjdC5vcmc+IFs3LjEuMTMtMF0KKy0gTmV3IGNvbmZpZyBpdGVtIGZvciA3LjEu MTMgc3RhYmxlIHVwZGF0ZSAoSnVzdGluIE0uIEZvcmJlcykKKy0gQWRkIG1vcmUgYnVncyB0byBC dWdzRml4ZWQgKEp1c3RpbiBNLiBGb3JiZXMpCistIHBhZ2VfcG9vbDoga2VlcCBmcmFnX29mZnNl dCBhbGlnbmVkIGZvciBvZGQtc2l6ZWQgcmVxdWVzdHMgKEZsb3JpYW4gU2NoYXVlcikgWzI1MjE1 NDYgMjUyMTg0N10KKy0gQUNQSTogc2NhbjogRG8gbm90IGNvbWJpbmUgcmVzb3VyY2VzIHRoYXQg b3ZlcmxhcCBjb21wbGV0ZWx5IChSYWZhZWwgSi4gV3lzb2NraSkgWzI1MTQzOTBdCistIEFDUEk6 IHNjYW46IEF2b2lkIHJlZ2lzdGVyaW5nIHBsYXRmb3JtIGRldmljZXMgd2l0aCByZXNvdXJjZSBv dmVybGFwcyAoUmFmYWVsIEouIFd5c29ja2kpIFsyNTE0MzkwXQorLSBCbHVldG9vdGg6IGJ0dXNi OiBsaW1pdCBSVEw4NzYxQiBCUk9LRU5fRVhUX1NDQU4gcXVpcmsgdG8gMGJkYTphNzI4IChKdW5q aWUgQ2FvKSBbMjUyMTUwNF0KKy0gcmVkaGF0OiBjb25maWdzOiBmZWRvcmE6IEVuYWJsZSBJbnRl bCBDVlMgKEthdGUgSHN1YW4pCistIG1lZGlhOiBpMmM6IGN2czogUGFzcyBsaW5rIGZyZXF1ZW5j eSBleHBsaWNpdGx5IHRvIGNzaV9zZXRfbGlua19jZmcoKSAoTGF1cmVudCBQaW5jaGFydCkKKy0g bWVkaWE6IGkyYzogY3ZzOiBBZGQgTlZMIEFDUEkgSUQgKEFydW4gVCkKKy0gbWVkaWE6IGkyYzog Y3ZzOiBBZGQgSVBVOCBQQ0kgZGV2aWNlIElEIChBcnVuIFQpCistIG1lZGlhOiBpMmM6IGN2czog QWRkIGRyaXZlciBvZiBJbnRlbCBDb21wdXRlciBWaXNpb24gU2Vuc2luZyBDb250cm9sbGVyKENW UykgKE1pZ3VlbCBWYWRpbGxvKQorLSBBZGQgYnVncyB0byBCdWdzRml4ZWQgZm9yIDcuMS4xMyAo SnVzdGluIE0uIEZvcmJlcykKKy0gcmFuZG9tOiBEcm9wIHRoZSBleHRybmcgbW9kdWxlIHJlZmVy ZW5jZSB3aGVuIGltcG9ydF91YnVmKCkgZmFpbHMgKEp1bmppZSBDYW8pIFsyNTI0MjYyXQorLSBM aW51eCB2Ny4xLjEzCitSZXNvbHZlczogcmhieiMyNTE0MzkwLCByaGJ6IzI1MjE1MDQsIHJoYnoj MjUyMTU0NiwgcmhieiMyNTIxODQ3LCByaGJ6IzI1MjQyNjIKKwogKiBGcmkgQXVnIDI4IDIwMjYg SnVzdGluIE0uIEZvcmJlcyA8amZvcmJlc0BmZWRvcmFwcm9qZWN0Lm9yZz4gWzcuMS4xMi0wXQog LSBMaW51eCB2Ny4xLjEyCiBSZXNvbHZlczogCgpkaWZmIC0tZ2l0IGEva2VybmVsLnNwZWMgYi9r ZXJuZWwuc3BlYwppbmRleCAyNzg0Zjg1Li5iMmQ3MmRhIDEwMDY0NAotLS0gYS9rZXJuZWwuc3Bl YworKysgYi9rZXJuZWwuc3BlYwpAQCAtMTg3LDE4ICsxODcsMTggQEAgU3VtbWFyeTogVGhlIExp bnV4IGtlcm5lbAogIyAgdGhlIC0td2l0aC1yZWxlYXNlIG9wdGlvbiBvdmVycmlkZXMgdGhpcyBz ZXR0aW5nLikKICVkZWZpbmUgZGVidWdidWlsZHNlbmFibGVkIDEKICMgZGVmaW5lIGJ1aWxkaWQg LmxvY2FsCi0lZGVmaW5lIHNwZWNycG12ZXJzaW9uIDcuMS4xMgotJWRlZmluZSBzcGVjdmVyc2lv biA3LjEuMTIKKyVkZWZpbmUgc3BlY3JwbXZlcnNpb24gNy4xLjEzCislZGVmaW5lIHNwZWN2ZXJz aW9uIDcuMS4xMwogJWRlZmluZSBwYXRjaHZlcnNpb24gNy4xCiAlZGVmaW5lIHBrZ3JlbGVhc2Ug MjAwCiAlZGVmaW5lIGt2ZXJzaW9uIDcKLSVkZWZpbmUgdGFyZmlsZV9yZWxlYXNlIDcuMS4xMgor JWRlZmluZSB0YXJmaWxlX3JlbGVhc2UgNy4xLjEzCiAjIFRoaXMgaXMgbmVlZGVkIHRvIGRvIG1l cmdlIHdpbmRvdyB2ZXJzaW9uIG1hZ2ljCiAlZGVmaW5lIHBhdGNobGV2ZWwgMQogIyBUaGlzIGFs bG93cyBwa2dfcmVsZWFzZSB0byBoYXZlIGNvbmZpZ3VyYWJsZSAlJXs/ZGlzdH0gdGFnCiAlZGVm aW5lIHNwZWNyZWxlYXNlIDIwMCV7P2J1aWxkaWR9JXs/ZGlzdH0KICMgVGhpcyBkZWZpbmVzIHRo ZSBrYWJpIHRhcmJhbGwgdmVyc2lvbgotJWRlZmluZSBrYWJpdmVyc2lvbiA3LjEuMTIKKyVkZWZp bmUga2FiaXZlcnNpb24gNy4xLjEzCiAKICMgSWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gMSwg YSBicGYgc2VsZnRlc3RzIGJ1aWxkIGZhaWx1cmUgd2lsbCBjYXVzZSBhCiAjIGZhdGFsIGtlcm5l bCBwYWNrYWdlIGJ1aWxkIGVycm9yCkBAIC00ODY1LDYgKzQ4NjUsMjIgQEAgZmlcCiAjCiAjCiAl Y2hhbmdlbG9nCisqIFdlZCBTZXAgMDIgMjAyNiBKdXN0aW4gTS4gRm9yYmVzIDxqZm9yYmVzQGZl ZG9yYXByb2plY3Qub3JnPiBbNy4xLjEzLTBdCistIE5ldyBjb25maWcgaXRlbSBmb3IgNy4xLjEz IHN0YWJsZSB1cGRhdGUgKEp1c3RpbiBNLiBGb3JiZXMpCistIEFkZCBtb3JlIGJ1Z3MgdG8gQnVn c0ZpeGVkIChKdXN0aW4gTS4gRm9yYmVzKQorLSBwYWdlX3Bvb2w6IGtlZXAgZnJhZ19vZmZzZXQg YWxpZ25lZCBmb3Igb2RkLXNpemVkIHJlcXVlc3RzIChGbG9yaWFuIFNjaGF1ZXIpIFsyNTIxNTQ2 IDI1MjE4NDddCistIEFDUEk6IHNjYW46IERvIG5vdCBjb21iaW5lIHJlc291cmNlcyB0aGF0IG92 ZXJsYXAgY29tcGxldGVseSAoUmFmYWVsIEouIFd5c29ja2kpIFsyNTE0MzkwXQorLSBBQ1BJOiBz Y2FuOiBBdm9pZCByZWdpc3RlcmluZyBwbGF0Zm9ybSBkZXZpY2VzIHdpdGggcmVzb3VyY2Ugb3Zl cmxhcHMgKFJhZmFlbCBKLiBXeXNvY2tpKSBbMjUxNDM5MF0KKy0gQmx1ZXRvb3RoOiBidHVzYjog bGltaXQgUlRMODc2MUIgQlJPS0VOX0VYVF9TQ0FOIHF1aXJrIHRvIDBiZGE6YTcyOCAoSnVuamll IENhbykgWzI1MjE1MDRdCistIHJlZGhhdDogY29uZmlnczogZmVkb3JhOiBFbmFibGUgSW50ZWwg Q1ZTIChLYXRlIEhzdWFuKQorLSBtZWRpYTogaTJjOiBjdnM6IFBhc3MgbGluayBmcmVxdWVuY3kg ZXhwbGljaXRseSB0byBjc2lfc2V0X2xpbmtfY2ZnKCkgKExhdXJlbnQgUGluY2hhcnQpCistIG1l ZGlhOiBpMmM6IGN2czogQWRkIE5WTCBBQ1BJIElEIChBcnVuIFQpCistIG1lZGlhOiBpMmM6IGN2 czogQWRkIElQVTggUENJIGRldmljZSBJRCAoQXJ1biBUKQorLSBtZWRpYTogaTJjOiBjdnM6IEFk ZCBkcml2ZXIgb2YgSW50ZWwgQ29tcHV0ZXIgVmlzaW9uIFNlbnNpbmcgQ29udHJvbGxlcihDVlMp IChNaWd1ZWwgVmFkaWxsbykKKy0gQWRkIGJ1Z3MgdG8gQnVnc0ZpeGVkIGZvciA3LjEuMTMgKEp1 c3RpbiBNLiBGb3JiZXMpCistIHJhbmRvbTogRHJvcCB0aGUgZXh0cm5nIG1vZHVsZSByZWZlcmVu Y2Ugd2hlbiBpbXBvcnRfdWJ1ZigpIGZhaWxzIChKdW5qaWUgQ2FvKSBbMjUyNDI2Ml0KKy0gTGlu dXggdjcuMS4xMworCiAqIEZyaSBBdWcgMjggMjAyNiBKdXN0aW4gTS4gRm9yYmVzIDxqZm9yYmVz QGZlZG9yYXByb2plY3Qub3JnPiBbNy4xLjEyLTBdCiAtIExpbnV4IHY3LjEuMTIKIAoKZGlmZiAt LWdpdCBhL3BhdGNoLTcuMS1yZWRoYXQucGF0Y2ggYi9wYXRjaC03LjEtcmVkaGF0LnBhdGNoCmlu ZGV4IGE5ZDY1ZWQuLjkxNDhhMGMgMTAwNjQ0Ci0tLSBhL3BhdGNoLTcuMS1yZWRoYXQucGF0Y2gK KysrIGIvcGF0Y2gtNy4xLXJlZGhhdC5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLSBNQUlOVEFJTkVS UyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjkgKworIE1BSU5U QUlORVJTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArCiAg TWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMw ICsKICBhcmNoL2FybS9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgIDQgKy0KICBhcmNoL2FybTY0L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgIDIgKy0KQEAgLTEzLDE0ICsxMywxNyBAQAogIGNyeXB0by9zZXFpdi5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArLQogIGNyeXB0by9zaWcuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArLQogIGNyeXB0by90 ZXN0bWdyLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQorIGRy aXZlcnMvYWNwaS9hY3BpX3BsYXRmb3JtLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA0NSAr LQogIGRyaXZlcnMvYWNwaS9hcGVpL2hlc3QuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgOCArCiAgZHJpdmVycy9hY3BpL2JhdHRlcnkuYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDE0ICsKICBkcml2ZXJzL2FjcGkvaXJxLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMTcgKy0KICBkcml2ZXJzL2FjcGkvc2Nhbi5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgIDkgKwogIGRyaXZlcnMvYXRhL2xpYmFoY2kuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAxOCArCisgZHJpdmVycy9ibHVldG9vdGgvYnRydGwuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzIC0KKyBkcml2ZXJzL2JsdWV0b290aC9idHVz Yi5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKwogIGRyaXZlcnMvY2hhci9pcG1p L2lwbWlfZG1pLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArCiAgZHJpdmVycy9jaGFy L2lwbWkvaXBtaV9tc2doYW5kbGVyLmMgICAgICAgICAgICAgICAgfCAgIDE2ICstCi0gZHJpdmVy cy9jaGFyL3JhbmRvbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTI2ICsrLQor IGRyaXZlcnMvY2hhci9yYW5kb20uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEy OCArKy0KICBkcml2ZXJzL2Zpcm13YXJlL2VmaS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAg ICB8ICAgIDEgKwogIGRyaXZlcnMvZmlybXdhcmUvZWZpL2VmaS5jICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDEyNCArKy0KICBkcml2ZXJzL2Zpcm13YXJlL2VmaS9saWJzdHViL2ZkdC5jICAg ICAgICAgICAgICAgICB8ICAgIDUgKwpAQCAtMjgsOCArMzEsMTMgQEAKICBkcml2ZXJzL2Zpcm13 YXJlL2VmaS9zZWN1cmVib290LmMgICAgICAgICAgICAgICAgICB8ICAgMzggKwogIGRyaXZlcnMv aHd0cmFjaW5nL2NvcmVzaWdodC9jb3Jlc2lnaHQtZXRtNHgtY29yZS5jIHwgICAxOSArCiAgZHJp dmVycy9pb21tdS9pb21tdS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIyICsK LSBkcml2ZXJzL21lZGlhL2kyYy9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MTAgKwotIGRyaXZlcnMvbWVkaWEvaTJjL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgMSArCisgZHJpdmVycy9tZWRpYS9pMmMvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEyICsKKyBkcml2ZXJzL21lZGlhL2kyYy9NYWtlZmlsZSAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgIDIgKworIGRyaXZlcnMvbWVkaWEvaTJjL2N2cy9LY29uZmlnICAgICAg ICAgICAgICAgICAgICAgIHwgICAyMSArCisgZHJpdmVycy9tZWRpYS9pMmMvY3ZzL01ha2VmaWxl ICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsKKyBkcml2ZXJzL21lZGlhL2kyYy9jdnMvY29y ZS5jICAgICAgICAgICAgICAgICAgICAgICB8IDEwNDYgKysrKysrKysrKysrKysrKysrKworIGRy aXZlcnMvbWVkaWEvaTJjL2N2cy9pY3ZzLmggICAgICAgICAgICAgICAgICAgICAgIHwgIDQ5MyAr KysrKysrKysKKyBkcml2ZXJzL21lZGlhL2kyYy9jdnMvdjRsMi5jICAgICAgICAgICAgICAgICAg ICAgICB8ICA2MTcgKysrKysrKysrKysrCiAgZHJpdmVycy9tZWRpYS9pMmMvaW14NDcxLmMgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgOTU3ICsrKysrKysrKysrKysrKysrKwogIGRyaXZlcnMv bWVkaWEvcGNpL2ludGVsL2lwdS1icmlkZ2UuYyAgICAgICAgICAgICAgIHwgICA0MSArCiAgZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsK QEAgLTYwLDYgKzY4LDcgQEAKICBpbmNsdWRlL2xpbnV4L3JhbmRvbS5oICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMTAgKwogIGluY2x1ZGUvbGludXgvc2VjdXJpdHkuaCAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgOSArCiAga2VybmVsL21vZHVsZS9zaWduaW5nLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICstCisgbmV0L2NvcmUvcGFnZV9wb29sLmMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICstCiAgc2NyaXB0cy9NYWtlZmls ZS5saWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKICBzY3JpcHRzL3Rh Z3Muc2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogIHNlY3Vy aXR5L2ludGVncml0eS9wbGF0Zm9ybV9jZXJ0cy9sb2FkX3VlZmkuYyAgICAgIHwgICAgNiArLQpA QCAtNzEsMTAgKzgwLDEwIEBACiAgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL0RFTllMSVNU LnJoZWwgICAgICAgICAgfCAgIDc2ICsrCiAgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01h a2VmaWxlICAgICAgICAgICAgICAgfCAgICAyICstCiAgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMv YnBmL3Byb2dfdGVzdHMva3N5bXNfYnRmLmMgfCAgIDMxIC0KLSA3MyBmaWxlcyBjaGFuZ2VkLCA1 ODk3IGluc2VydGlvbnMoKyksIDEyOCBkZWxldGlvbnMoLSkKKyA4MiBmaWxlcyBjaGFuZ2VkLCA4 MTQyIGluc2VydGlvbnMoKyksIDE0NCBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL01BSU5U QUlORVJTIGIvTUFJTlRBSU5FUlMKLWluZGV4IDYyNGNmYjZjZjFkNC4uZjliY2QxNTJiMDliIDEw MDY0NAoraW5kZXggNjI0Y2ZiNmNmMWQ0Li5hMDk2ODQ4OTE4ZDIgMTAwNjQ0CiAtLS0gYS9NQUlO VEFJTkVSUwogKysrIGIvTUFJTlRBSU5FUlMKIEBAIC0xMTU5LDYgKzExNTksMjkgQEAgVDoJZ2l0 IGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9pb21tdS9saW51 eC5naXQKQEAgLTEwNyw3ICsxMTYsMjAgQEAgaW5kZXggNjI0Y2ZiNmNmMWQ0Li5mOWJjZDE1MmIw OWIgMTAwNjQ0CiAgQU1EIEtGRAogIE06CUZlbGl4IEt1ZWhsaW5nIDxGZWxpeC5LdWVobGluZ0Bh bWQuY29tPgogIEw6CWFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCi1AQCAtMjQ5NjksNiAr MjQ5OTIsMTIgQEAgVDoJZ2l0IGdpdDovL2xpbnV4dHYub3JnL21lZGlhLmdpdAorQEAgLTEyODM1 LDYgKzEyODU4LDEyIEBAIFM6CU9ycGhhbgorIFQ6CWdpdCBnaXQ6Ly9naXQuY29kZS5zZi5uZXQv cC9pbnRlbC1zYXMvaXNjaQorIEY6CWRyaXZlcnMvc2NzaS9pc2NpLworIAorK0lOVEVMIENPTVBV VEVSIFZJU0lPTiBTRU5TSU5HIChDVlMpIERSSVZFUgorK006CU1pZ3VlbCBWYWRpbGxvIDxtaWd1 ZWwudmFkaWxsb0BpbnRlbC5jb20+CisrTDoJbGludXgtbWVkaWFAdmdlci5rZXJuZWwub3JnCisr UzoJTWFpbnRhaW5lZAorK0Y6CWRyaXZlcnMvbWVkaWEvaTJjL2N2cy8KKysKKyBJTlRFTCBDUFUg ZmFtaWx5IG1vZGVsIG51bWJlcnMKKyBNOglUb255IEx1Y2sgPHRvbnkubHVja0BpbnRlbC5jb20+ CisgTToJeDg2QGtlcm5lbC5vcmcKK0BAIC0yNDk2OSw2ICsyNDk5OCwxMiBAQCBUOglnaXQgZ2l0 Oi8vbGludXh0di5vcmcvbWVkaWEuZ2l0CiAgRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL21lZGlhL2kyYy9zb255LGlteDQxNS55YW1sCiAgRjoJZHJpdmVycy9tZWRpYS9pMmMv aW14NDE1LmMKICAKQEAgLTEyMSw3ICsxNDMsNyBAQCBpbmRleCA2MjRjZmI2Y2YxZDQuLmY5YmNk MTUyYjA5YiAxMDA2NDQKICBNOglNYXhpbSBMZXZpdHNreSA8bWF4aW1sZXZpdHNreUBnbWFpbC5j b20+CiAgTToJQWxleCBEdWJvdiA8b2FrYWRAeWFob28uY29tPgogZGlmZiAtLWdpdCBhL01ha2Vm aWxlIGIvTWFrZWZpbGUKLWluZGV4IGFmMzRjNjMzYjc5Ni4uMGM4ZDBiNDEyZjY3IDEwMDY0NAor aW5kZXggZjUzNWMzN2Q2ZmU5Li4xNTljMzgxMDhiYmMgMTAwNjQ0CiAtLS0gYS9NYWtlZmlsZQog KysrIGIvTWFrZWZpbGUKIEBAIC0zNTYsNiArMzU2LDE3IEBAIGlmbmVxICgkKGZpbHRlciBpbnN0 YWxsLCQoTUFLRUNNREdPQUxTKSksKQpAQCAtNTAwLDYgKzUyMiw3OCBAQCBpbmRleCA0ZDg2ZWZh ZTY1YjIuLjMxYzYzNzJjNTBkZCAxMDA2NDQKICAJCS5zdWl0ZSA9IHsKICAJCQkua3BwID0gX19W RUNTKGVjZGhfcDM4NF90dl90ZW1wbGF0ZSkKICAJCX0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Fj cGkvYWNwaV9wbGF0Zm9ybS5jIGIvZHJpdmVycy9hY3BpL2FjcGlfcGxhdGZvcm0uYworaW5kZXgg YTA5NjM2YTQxNjhlLi5lM2M3N2E2NWY2MWMgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2FjcGkvYWNw aV9wbGF0Zm9ybS5jCisrKysgYi9kcml2ZXJzL2FjcGkvYWNwaV9wbGF0Zm9ybS5jCitAQCAtMTIs NiArMTIsNyBAQAorICNpbmNsdWRlIDxsaW51eC9iaXRzLmg+CisgI2luY2x1ZGUgPGxpbnV4L2Rl dmljZS5oPgorICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKysjaW5jbHVkZSA8bGludXgvaW9wb3J0 Lmg+CisgI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorICNpbmNsdWRlIDxsaW51eC9tb2R1bGUu aD4KKyAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KK0BAIC03MSw2ICs3Miw0MiBAQCBz dGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIGFjcGlfcGxhdGZvcm1fbm90aWZpZXIgPSB7Cisg CS5ub3RpZmllcl9jYWxsID0gYWNwaV9wbGF0Zm9ybV9kZXZpY2VfcmVtb3ZlX25vdGlmeSwKKyB9 OworIAorK3N0YXRpYyB1bnNpZ25lZCBpbnQgYWNwaV9wbGF0Zm9ybV9hZGp1c3RfcmVzb3VyY2Vz KHN0cnVjdCBhY3BpX2RldmljZSAqYWRldiwKKysJCQkJCQkgICBzdHJ1Y3QgcmVzb3VyY2UgKm5l d19yZXMsCisrCQkJCQkJICAgc3RydWN0IHJlc291cmNlICpyZXNvdXJjZXMsCisrCQkJCQkJICAg dW5zaWduZWQgaW50IGNvdW50KQorK3sKKysJdW5zaWduZWQgaW50IGk7CisrCisrCWlmICghKG5l d19yZXMtPmZsYWdzICYgKElPUkVTT1VSQ0VfSU8gfCBJT1JFU09VUkNFX01FTSkpKQorKwkJcmV0 dXJuIGNvdW50OworKworKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICkgeworKwkJc3RydWN0IHJl c291cmNlICpyZXMgPSAmcmVzb3VyY2VzW2ldOworKworKwkJLyoKKysJCSAqIExvb2sgZm9yIG92 ZXJsYXBzIG9mIHJlc291cmNlcyBvZiB0aGUgc2FtZSB0eXBlIHRoYXQgd291bGQKKysJCSAqIGNh dXNlIHJlc291cmNlIGluc2VydGlvbiB0byBmYWlsIGRvd24gdGhlIHJvYWQuCisrCQkgKi8KKysJ CWlmIChfX3Jlc291cmNlX2NvbnRhaW5zX3VuYm91bmQocmVzLCBuZXdfcmVzKSB8fAorKwkJICAg IF9fcmVzb3VyY2VfY29udGFpbnNfdW5ib3VuZChuZXdfcmVzLCByZXMpIHx8CisrCQkgICAgcmVz b3VyY2VfdHlwZShuZXdfcmVzKSAhPSByZXNvdXJjZV90eXBlKHJlcykgfHwKKysJCSAgICAhcmVz b3VyY2VfdW5pb24obmV3X3JlcywgcmVzLCBuZXdfcmVzKSkgeworKwkJCWkrKzsKKysJCQljb250 aW51ZTsKKysJCX0KKysKKysJCWRldl9pbmZvKCZhZGV2LT5kZXYsICIlcFIgZXhwYW5kZWQgZHVl IHRvIG92ZXJsYXBcbiIsIG5ld19yZXMpOworKwkJLyoKKysJCSAqIEVsaW1pbmF0ZSB0aGUgcHJl dmlvdXNseSBwcm9jZXNzZWQgcmVzb3VyY2UgdGhhdCBvdmVybGFwcGVkCisrCQkgKiB3aXRoIHRo ZSBuZXcgb25lIGJlY2F1c2UgaXQgaXMgbm90IG5lY2Vzc2FyeSBhbnkgbW9yZS4KKysJCSAqLwor KwkJbWVtbW92ZShyZXMsIHJlcyArIDEsICgtLWNvdW50IC0gaSkgKiBzaXplb2YoKnJlcykpOwor Kwl9CisrCisrCXJldHVybiBjb3VudDsKKyt9CisrCisgc3RhdGljIHZvaWQgYWNwaV9wbGF0Zm9y bV9maWxsX3Jlc291cmNlKHN0cnVjdCBhY3BpX2RldmljZSAqYWRldiwKKyAJY29uc3Qgc3RydWN0 IHJlc291cmNlICpzcmMsIHN0cnVjdCByZXNvdXJjZSAqZGVzdCkKKyB7CitAQCAtMTUxLDEwICsx ODgsMTQgQEAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqYWNwaV9jcmVhdGVfcGxhdGZvcm1fZGV2 aWNlKHN0cnVjdCBhY3BpX2RldmljZSAqYWRldiwKKyAJCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01F TSk7CisgCQkJfQorIAkJCWNvdW50ID0gMDsKKy0JCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlbnRy eSwgJnJlc291cmNlX2xpc3QsIG5vZGUpCisrCQkJbGlzdF9mb3JfZWFjaF9lbnRyeShyZW50cnks ICZyZXNvdXJjZV9saXN0LCBub2RlKSB7CisrCQkJCWNvdW50ID0gYWNwaV9wbGF0Zm9ybV9hZGp1 c3RfcmVzb3VyY2VzKGFkZXYsCisrCQkJCQkJCQkgICAgICAgcmVudHJ5LT5yZXMsCisrCQkJCQkJ CQkgICAgICAgcmVzb3VyY2VzLAorKwkJCQkJCQkJICAgICAgIGNvdW50KTsKKyAJCQkJYWNwaV9w bGF0Zm9ybV9maWxsX3Jlc291cmNlKGFkZXYsIHJlbnRyeS0+cmVzLAorIAkJCQkJCQkgICAgJnJl c291cmNlc1tjb3VudCsrXSk7CistCisrCQkJfQorIAkJCWFjcGlfZGV2X2ZyZWVfcmVzb3VyY2Vf bGlzdCgmcmVzb3VyY2VfbGlzdCk7CisgCQl9CisgCX0KIGRpZmYgLS1naXQgYS9kcml2ZXJzL2Fj cGkvYXBlaS9oZXN0LmMgYi9kcml2ZXJzL2FjcGkvYXBlaS9oZXN0LmMKIGluZGV4IDIwZDc1NzY4 N2UzZC4uOTBhMTNmMjBmMDUyIDEwMDY0NAogLS0tIGEvZHJpdmVycy9hY3BpL2FwZWkvaGVzdC5j CkBAIC02NTAsNiArNzQ0LDYzIEBAIGluZGV4IGM3OWFiZGZjZDdhOS4uZTIzYmZiN2Y5NGM3IDEw MDY0NAogIAkvKiB3YWl0IGZvciBlbmdpbmUgdG8gc3RvcC4gVGhpcyBjb3VsZCBiZSBhcyBsb25n IGFzIDUwMCBtc2VjICovCiAgCXRtcCA9IGF0YV93YWl0X3JlZ2lzdGVyKGFwLCBwb3J0X21taW8g KyBQT1JUX0NNRCwKICAJCQkJUE9SVF9DTURfTElTVF9PTiwgUE9SVF9DTURfTElTVF9PTiwgMSwg NTAwKTsKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0b290aC9idHJ0bC5jIGIvZHJpdmVycy9i bHVldG9vdGgvYnRydGwuYworaW5kZXggN2Y1NGQyZDJkMTNhLi4wM2ZhOTQwOWUzZWUgMTAwNjQ0 CistLS0gYS9kcml2ZXJzL2JsdWV0b290aC9idHJ0bC5jCisrKysgYi9kcml2ZXJzL2JsdWV0b290 aC9idHJ0bC5jCitAQCAtMTM0MywxOSArMTM0Myw2IEBAIHZvaWQgYnRydGxfc2V0X3F1aXJrcyhz dHJ1Y3QgaGNpX2RldiAqaGRldiwgc3RydWN0IGJ0cnRsX2RldmljZV9pbmZvICpidHJ0bF9kZXYp CisgCWlmICghYnRydGxfZGV2LT5pY19pbmZvKQorIAkJcmV0dXJuOworIAorLQlzd2l0Y2ggKGJ0 cnRsX2Rldi0+cHJvamVjdF9pZCkgeworLQljYXNlIENISVBfSURfODc2MUI6CistCQkvKiBSVEw4 NzYxQi9CVSByZXBvcnRzIEhDSSB2ZXJzaW9uIDUuMSBidXQgZG9lcyBub3Qgc3VwcG9ydAorLQkJ ICogdGhlIExFIEV4dGVuZGVkIFNjYW4gY29tbWFuZHMgKE9wY29kZSAweDIwNDIpLCBjYXVzaW5n CistCQkgKiByZXBlYXRlZCAtRUJVU1kgZmFpbHVyZXMgd2hlbiBCbHVlWiBhdHRlbXB0cyBleHRl bmRlZAorLQkJICogc2Nhbm5pbmcgd2hpbGUgYSBjb25uZWN0aW9uIGlzIGFjdGl2ZS4KKy0JCSAq LworLQkJaGNpX3NldF9xdWlyayhoZGV2LCBIQ0lfUVVJUktfQlJPS0VOX0VYVF9TQ0FOKTsKKy0J CWJyZWFrOworLQlkZWZhdWx0OgorLQkJYnJlYWs7CistCX0KKy0KKyAJc3dpdGNoIChidHJ0bF9k ZXYtPmljX2luZm8tPmxtcF9zdWJ2ZXIpIHsKKyAJY2FzZSBSVExfUk9NX0xNUF84NzAzQjoKKyAJ CS8qIDg3MjNDUyByZXBvcnRzIHR3byBwYWdlcyBmb3IgbG9jYWwgZXh0IGZlYXR1cmVzLAorZGlm ZiAtLWdpdCBhL2RyaXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMgYi9kcml2ZXJzL2JsdWV0b290aC9i dHVzYi5jCitpbmRleCA0YTM1NmY3MjBlMWYuLmUyMDY5NWFjMWMyNSAxMDA2NDQKKy0tLSBhL2Ry aXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMKKysrKyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMK K0BAIC02Nyw2ICs2Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBidHVzYl9kcml2ZXI7 CisgI2RlZmluZSBCVFVTQl9JTlRFTF9OT19XQlNfU1VQUE9SVAlCSVQoMjYpCisgI2RlZmluZSBC VFVTQl9BQ1RJT05TX1NFTUkJCUJJVCgyNykKKyAjZGVmaW5lIEJUVVNCX0JBUlJPVAkJCUJJVCgy OCkKKysjZGVmaW5lIEJUVVNCX0JST0tFTl9FWFRfU0NBTgkJQklUKDI5KQorIAorIHN0YXRpYyBj b25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBidHVzYl90YWJsZVtdID0geworIAkvKiBHZW5lcmlj IEJsdWV0b290aCBVU0IgZGV2aWNlICovCitAQCAtNjEwLDYgKzYxMSwxMCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcXVpcmtzX3RhYmxlW10gPSB7CisgCXsgVVNCX0RFVklD RSgweDA0ODksIDB4ZTEzMCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX1JFQUxURUsgfAorIAkJCQkJ CSAgICAgQlRVU0JfV0lERUJBTkRfU1BFRUNIIH0sCisgCisrCS8qIFJlYWx0ZWsgODc2MUJVIEJs dWV0b290aCBkZXZpY2VzICovCisrCXsgVVNCX0RFVklDRSgweDBiZGEsIDB4YTcyOCksIC5kcml2 ZXJfaW5mbyA9IEJUVVNCX1JFQUxURUsgfAorKwkJCQkJCSAgICAgQlRVU0JfQlJPS0VOX0VYVF9T Q0FOIH0sCisrCisgCS8qIFJlYWx0ZWsgQmx1ZXRvb3RoIGRldmljZXMgKi8KKyAJeyBVU0JfVkVO RE9SX0FORF9JTlRFUkZBQ0VfSU5GTygweDBiZGEsIDB4ZTAsIDB4MDEsIDB4MDEpLAorIAkgIC5k cml2ZXJfaW5mbyA9IEJUVVNCX1JFQUxURUsgfSwKK0BAIC00MzQ3LDYgKzQzNTIsOSBAQCBzdGF0 aWMgaW50IGJ0dXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAorIAlpZiAoaWQt PmRyaXZlcl9pbmZvICYgQlRVU0JfSU5WQUxJRF9MRV9TVEFURVMpCisgCQloY2lfc2V0X3F1aXJr KGhkZXYsIEhDSV9RVUlSS19CUk9LRU5fTEVfU1RBVEVTKTsKKyAKKysJaWYgKGlkLT5kcml2ZXJf aW5mbyAmIEJUVVNCX0JST0tFTl9FWFRfU0NBTikKKysJCWhjaV9zZXRfcXVpcmsoaGRldiwgSENJ X1FVSVJLX0JST0tFTl9FWFRfU0NBTik7CisrCisgCWlmIChpZC0+ZHJpdmVyX2luZm8gJiBCVFVT Ql9ESUdJQU5TV0VSKSB7CisgCQlkYXRhLT5jbWRyZXFfdHlwZSA9IFVTQl9UWVBFX1ZFTkRPUjsK KyAJCWhjaV9zZXRfcXVpcmsoaGRldiwgSENJX1FVSVJLX1JFU0VUX09OX0NMT1NFKTsKIGRpZmYg LS1naXQgYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX2RtaS5jIGIvZHJpdmVycy9jaGFyL2lwbWkv aXBtaV9kbWkuYwogaW5kZXggNTA1ZTMyOTExYzM0Li4yNmY3ZWUwY2NmNDAgMTAwNjQ0CiAtLS0g YS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX2RtaS5jCkBAIC03MTIsNyArODYzLDcgQEAgaW5kZXgg M2UwYjdkNjAyNjlkLi44MzE3ZDI2NDQyNmEgMTAwNjQ0CiAgCXJ2ID0gaXBtaV9yZWdpc3Rlcl9k cml2ZXIoKTsKICAJbXV0ZXhfdW5sb2NrKCZpcG1pX2ludGVyZmFjZXNfbXV0ZXgpOwogZGlmZiAt LWdpdCBhL2RyaXZlcnMvY2hhci9yYW5kb20uYyBiL2RyaXZlcnMvY2hhci9yYW5kb20uYwotaW5k ZXggYjRkYTFmYjk3NmMxLi4xZTExMmUyYjQwNWIgMTAwNjQ0CitpbmRleCBiNGRhMWZiOTc2YzEu LjdmZjRkZDRkOTgzNiAxMDA2NDQKIC0tLSBhL2RyaXZlcnMvY2hhci9yYW5kb20uYwogKysrIGIv ZHJpdmVycy9jaGFyL3JhbmRvbS5jCiBAQCAtNTEsOSArNTEsMTEgQEAKQEAgLTc4Nyw3ICs5Mzgs NyBAQCBpbmRleCBiNGRhMWZiOTc2YzEuLjFlMTEyZTJiNDA1YiAxMDA2NDQKICAKICAJaWYgKGZs YWdzICYgfihHUk5EX05PTkJMT0NLIHwgR1JORF9SQU5ET00gfCBHUk5EX0lOU0VDVVJFKSkKICAJ CXJldHVybiAtRUlOVkFMOwotQEAgLTEzOTIsNiArMTQxNywyMSBAQCBTWVNDQUxMX0RFRklORTMo Z2V0cmFuZG9tLCBjaGFyIF9fdXNlciAqLCB1YnVmLCBzaXplX3QsIGxlbiwgdW5zaWduZWQgaW50 LCBmbGFncworQEAgLTEzOTIsNiArMTQxNywyMyBAQCBTWVNDQUxMX0RFRklORTMoZ2V0cmFuZG9t LCBjaGFyIF9fdXNlciAqLCB1YnVmLCBzaXplX3QsIGxlbiwgdW5zaWduZWQgaW50LCBmbGFncwog IAlpZiAoKGZsYWdzICYgKEdSTkRfSU5TRUNVUkUgfCBHUk5EX1JBTkRPTSkpID09IChHUk5EX0lO U0VDVVJFIHwgR1JORF9SQU5ET00pKQogIAkJcmV0dXJuIC1FSU5WQUw7CiAgCkBAIC03OTksOCAr OTUwLDEwIEBAIGluZGV4IGI0ZGExZmI5NzZjMS4uMWUxMTJlMmI0MDViIDEwMDY0NAogKwogKwlp ZiAocm5nKSB7CiArCQlyZXQgPSBpbXBvcnRfdWJ1ZihJVEVSX0RFU1QsIHVidWYsIGxlbiwgJml0 ZXIpOwotKwkJaWYgKHVubGlrZWx5KHJldCkpCisrCQlpZiAodW5saWtlbHkocmV0KSkgeworKwkJ CW1vZHVsZV9wdXQocm5nLT5vd25lcik7CiArCQkJcmV0dXJuIHJldDsKKysJCX0KICsJCXJldCA9 IHJuZy0+ZXh0cm5nX3JlYWRfaXRlcigmaXRlciwgISEoZmxhZ3MgJiBHUk5EX1JBTkRPTSkpOwog KwkJbW9kdWxlX3B1dChybmctPm93bmVyKTsKICsJCXJldHVybiByZXQ7CkBAIC04MDksNyArOTYy LDcgQEAgaW5kZXggYjRkYTFmYjk3NmMxLi4xZTExMmUyYjQwNWIgMTAwNjQ0CiAgCWlmICghY3Ju Z19yZWFkeSgpICYmICEoZmxhZ3MgJiBHUk5EX0lOU0VDVVJFKSkgewogIAkJaWYgKGZsYWdzICYg R1JORF9OT05CTE9DSykKICAJCQlyZXR1cm4gLUVBR0FJTjsKLUBAIC0xNDEyLDYgKzE0NTIsMTIg QEAgc3RhdGljIF9fcG9sbF90IHJhbmRvbV9wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3Rh YmxlICp3YWl0KQorQEAgLTE0MTIsNiArMTQ1NCwxMiBAQCBzdGF0aWMgX19wb2xsX3QgcmFuZG9t X3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKndhaXQpCiAgCXJldHVybiBjcm5n X3JlYWR5KCkgPyBFUE9MTElOIHwgRVBPTExSRE5PUk0gOiBFUE9MTE9VVCB8IEVQT0xMV1JOT1JN OwogIH0KICAKQEAgLTgyMiw3ICs5NzUsNyBAQCBpbmRleCBiNGRhMWZiOTc2YzEuLjFlMTEyZTJi NDA1YiAxMDA2NDQKICBzdGF0aWMgc3NpemVfdCB3cml0ZV9wb29sX3VzZXIoc3RydWN0IGlvdl9p dGVyICppdGVyKQogIHsKICAJdTggYmxvY2tbQkxBS0UyU19CTE9DS19TSVpFXTsKLUBAIC0xNTUy LDcgKzE1OTgsNTggQEAgc3RhdGljIGludCByYW5kb21fZmFzeW5jKGludCBmZCwgc3RydWN0IGZp bGUgKmZpbHAsIGludCBvbikKK0BAIC0xNTUyLDcgKzE2MDAsNTggQEAgc3RhdGljIGludCByYW5k b21fZmFzeW5jKGludCBmZCwgc3RydWN0IGZpbGUgKmZpbHAsIGludCBvbikKICAJcmV0dXJuIGZh c3luY19oZWxwZXIoZmQsIGZpbHAsIG9uLCAmZmFzeW5jKTsKICB9CiAgCkBAIC04ODEsNyArMTAz NCw3IEBAIGluZGV4IGI0ZGExZmI5NzZjMS4uMWUxMTJlMmI0MDViIDEwMDY0NAogIAkucmVhZF9p dGVyID0gcmFuZG9tX3JlYWRfaXRlciwKICAJLndyaXRlX2l0ZXIgPSByYW5kb21fd3JpdGVfaXRl ciwKICAJLnBvbGwgPSByYW5kb21fcG9sbCwKLUBAIC0xNTY1LDYgKzE2NjIsNyBAQCBjb25zdCBz dHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJhbmRvbV9mb3BzID0geworQEAgLTE1NjUsNiArMTY2NCw3 IEBAIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcmFuZG9tX2ZvcHMgPSB7CiAgfTsKICAK ICBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHVyYW5kb21fZm9wcyA9IHsKQEAgLTg4OSw3 ICsxMDQyLDcgQEAgaW5kZXggYjRkYTFmYjk3NmMxLi4xZTExMmUyYjQwNWIgMTAwNjQ0CiAgCS5y ZWFkX2l0ZXIgPSB1cmFuZG9tX3JlYWRfaXRlciwKICAJLndyaXRlX2l0ZXIgPSByYW5kb21fd3Jp dGVfaXRlciwKICAJLnVubG9ja2VkX2lvY3RsID0gcmFuZG9tX2lvY3RsLAotQEAgLTE1NzUsNiAr MTY3MywzMiBAQCBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHVyYW5kb21fZm9wcyA9IHsK K0BAIC0xNTc1LDYgKzE2NzUsMzIgQEAgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB1cmFu ZG9tX2ZvcHMgPSB7CiAgCS5zcGxpY2Vfd3JpdGUgPSBpdGVyX2ZpbGVfc3BsaWNlX3dyaXRlLAog IH07CiAgCkBAIC0xMTM5LDE2NiArMTI5MiwyMzkxIEBAIGluZGV4IDAwMDAwMDAwMDAwMC4uZGUw YTM3MTRhNWQ0CiBAQCAtMCwwICsxLDM4IEBACiArLyogQ29yZSBrZXJuZWwgc2VjdXJlIGJvb3Qg c3VwcG9ydC4KICsgKgotKyAqIENvcHlyaWdodCAoQykgMjAxNyBSZWQgSGF0LCBJbmMuIEFsbCBS aWdodHMgUmVzZXJ2ZWQuCi0rICogV3JpdHRlbiBieSBEYXZpZCBIb3dlbGxzIChkaG93ZWxsc0By ZWRoYXQuY29tKQorKyAqIENvcHlyaWdodCAoQykgMjAxNyBSZWQgSGF0LCBJbmMuIEFsbCBSaWdo dHMgUmVzZXJ2ZWQuCisrICogV3JpdHRlbiBieSBEYXZpZCBIb3dlbGxzIChkaG93ZWxsc0ByZWRo YXQuY29tKQorKyAqCisrICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbmNlCisrICogYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uCisrICogMiBvZiB0aGUgTGlj ZW5jZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysgKi8KKysKKysj ZGVmaW5lIHByX2ZtdChmbXQpIEtCVUlMRF9NT0ROQU1FICI6ICIgZm10CisrCisrI2luY2x1ZGUg PGxpbnV4L2VmaS5oPgorKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKysjaW5jbHVkZSA8bGlu dXgvcHJpbnRrLmg+CisrCisrLyoKKysgKiBEZWNpZGUgd2hhdCB0byBkbyB3aGVuIFVFRkkgc2Vj dXJlIGJvb3QgbW9kZSBpcyBlbmFibGVkLgorKyAqLworK3ZvaWQgX19pbml0IGVmaV9zZXRfc2Vj dXJlX2Jvb3QoZW51bSBlZmlfc2VjdXJlYm9vdF9tb2RlIG1vZGUpCisreworKwlpZiAoZWZpX2Vu YWJsZWQoRUZJX0JPT1QpKSB7CisrCQlzd2l0Y2ggKG1vZGUpIHsKKysJCWNhc2UgZWZpX3NlY3Vy ZWJvb3RfbW9kZV9kaXNhYmxlZDoKKysJCQlwcl9pbmZvKCJTZWN1cmUgYm9vdCBkaXNhYmxlZFxu Iik7CisrCQkJYnJlYWs7CisrCQljYXNlIGVmaV9zZWN1cmVib290X21vZGVfZW5hYmxlZDoKKysJ CQlzZXRfYml0KEVGSV9TRUNVUkVfQk9PVCwgJmVmaS5mbGFncyk7CisrCQkJcHJfaW5mbygiU2Vj dXJlIGJvb3QgZW5hYmxlZFxuIik7CisrCQkJYnJlYWs7CisrCQlkZWZhdWx0OgorKwkJCXByX3dh cm4oIlNlY3VyZSBib290IGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIChtb2RlICV1KVxuIiwKKysJ CQkJICAgbW9kZSk7CisrCQkJYnJlYWs7CisrCQl9CisrCX0KKyt9CitkaWZmIC0tZ2l0IGEvZHJp dmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1ldG00eC1jb3JlLmMgYi9kcml2ZXJz L2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWV0bTR4LWNvcmUuYworaW5kZXggYTI1MTM3 NWRiMjRiLi4yYjUzMzdlYWViNmQgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jl c2lnaHQvY29yZXNpZ2h0LWV0bTR4LWNvcmUuYworKysrIGIvZHJpdmVycy9od3RyYWNpbmcvY29y ZXNpZ2h0L2NvcmVzaWdodC1ldG00eC1jb3JlLmMKK0BAIC0xMiw2ICsxMiw3IEBACisgI2luY2x1 ZGUgPGxpbnV4L2luaXQuaD4KKyAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyAjaW5jbHVkZSA8 bGludXgvZGV2aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L2RtaS5oPgorICNpbmNsdWRlIDxsaW51 eC9pby5oPgorICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyAjaW5jbHVkZSA8bGludXgvZnMuaD4K K0BAIC0yNTQ3LDYgKzI1NDgsMTYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWJhX2lkIGV0bTRf aWRzW10gPSB7CisgCXt9LAorIH07CisgCisrc3RhdGljIGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVt X2lkIGJyb2tlbl9jb3Jlc2lnaHRbXSA9IHsKKysJeworKwkJLm1hdGNoZXMgPSB7CisrCQkJRE1J X01BVENIKERNSV9TWVNfVkVORE9SLCAiSFBFIiksCisrCQkJRE1JX01BVENIKERNSV9QUk9EVUNU X05BTUUsICJBcG9sbG8gNzAiKSwKKysJCX0sCisrCX0sCisrCXsgfQkvKiB0ZXJtaW5hdGluZyBl bnRyeSAqLworK307CisrCisgTU9EVUxFX0RFVklDRV9UQUJMRShhbWJhLCBldG00X2lkcyk7Cisg Cisgc3RhdGljIHN0cnVjdCBhbWJhX2RyaXZlciBldG00eF9hbWJhX2RyaXZlciA9IHsKK0BAIC0y NjIxLDYgKzI2MzIsMTEgQEAgc3RhdGljIGludCBfX2luaXQgZXRtNHhfaW5pdCh2b2lkKQorIHsK KyAJaW50IHJldDsKKyAKKysJaWYgKGRtaV9jaGVja19zeXN0ZW0oYnJva2VuX2NvcmVzaWdodCkp IHsKKysJCXByX2luZm8oIkVUTTQgZGlzYWJsZWQgZHVlIHRvIGZpcm13YXJlIGJ1Z1xuIik7Cisr CQlyZXR1cm4gMDsKKysJfQorKworIAlyZXQgPSBldG00X3BtX3NldHVwKCk7CisgCisgCS8qIGV0 bTRfcG1fc2V0dXAoKSBkb2VzIGl0cyBvd24gY2xlYW51cCAtIGV4aXQgb24gZXJyb3IgKi8KK0BA IC0yNjQ3LDYgKzI2NjMsOSBAQCBzdGF0aWMgaW50IF9faW5pdCBldG00eF9pbml0KHZvaWQpCisg Cisgc3RhdGljIHZvaWQgX19leGl0IGV0bTR4X2V4aXQodm9pZCkKKyB7CisrCWlmIChkbWlfY2hl Y2tfc3lzdGVtKGJyb2tlbl9jb3Jlc2lnaHQpKQorKwkJcmV0dXJuOworKworIAlhbWJhX2RyaXZl cl91bnJlZ2lzdGVyKCZldG00eF9hbWJhX2RyaXZlcik7CisgCXBsYXRmb3JtX2RyaXZlcl91bnJl Z2lzdGVyKCZldG00X3BsYXRmb3JtX2RyaXZlcik7CisgCWV0bTRfcG1fY2xlYXIoKTsKK2RpZmYg LS1naXQgYS9kcml2ZXJzL2lvbW11L2lvbW11LmMgYi9kcml2ZXJzL2lvbW11L2lvbW11LmMKK2lu ZGV4IGQxYTllNzEzZDNhMC4uOTQwNDU4MzcwNzMwIDEwMDY0NAorLS0tIGEvZHJpdmVycy9pb21t dS9pb21tdS5jCisrKysgYi9kcml2ZXJzL2lvbW11L2lvbW11LmMKK0BAIC04LDYgKzgsNyBAQAor IAorICNpbmNsdWRlIDxsaW51eC9hbWJhL2J1cy5oPgorICNpbmNsdWRlIDxsaW51eC9kZXZpY2Uu aD4KKysjaW5jbHVkZSA8bGludXgvZG1pLmg+CisgI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgor ICNpbmNsdWRlIDxsaW51eC9iaXRzLmg+CisgI2luY2x1ZGUgPGxpbnV4L2J1Zy5oPgorQEAgLTMx MzYsNiArMzEzNywyNyBAQCBpbnQgaW9tbXVfZndzcGVjX2FkZF9pZHMoc3RydWN0IGRldmljZSAq ZGV2LCBjb25zdCB1MzIgKmlkcywgaW50IG51bV9pZHMpCisgfQorIEVYUE9SVF9TWU1CT0xfR1BM KGlvbW11X2Z3c3BlY19hZGRfaWRzKTsKKyAKKysjaWZkZWYgQ09ORklHX0FSTTY0Cisrc3RhdGlj IGludCBfX2luaXQgaW9tbXVfcXVpcmtzKHZvaWQpCisreworKwljb25zdCBjaGFyICp2ZW5kb3Is ICpuYW1lOworKworKwl2ZW5kb3IgPSBkbWlfZ2V0X3N5c3RlbV9pbmZvKERNSV9TWVNfVkVORE9S KTsKKysJbmFtZSA9IGRtaV9nZXRfc3lzdGVtX2luZm8oRE1JX1BST0RVQ1RfTkFNRSk7CisrCisr CWlmICh2ZW5kb3IgJiYKKysJICAgIChzdHJuY21wKHZlbmRvciwgIkdJR0FCWVRFIiwgOCkgPT0g MCAmJiBuYW1lICYmCisrCSAgICAgKHN0cm5jbXAobmFtZSwgIlIxMjAiLCA0KSA9PSAwIHx8Cisr CSAgICAgIHN0cm5jbXAobmFtZSwgIlIyNzAiLCA0KSA9PSAwKSkpIHsKKysJCXByX3dhcm4oIkdp Z2FieXRlICVzIGRldGVjdGVkLCBmb3JjZSBpb21tdSBwYXNzdGhyb3VnaCBtb2RlIiwgbmFtZSk7 CisrCQlpb21tdV9kZWZfZG9tYWluX3R5cGUgPSBJT01NVV9ET01BSU5fSURFTlRJVFk7CisrCX0K KysKKysJcmV0dXJuIDA7CisrfQorK2FyY2hfaW5pdGNhbGwoaW9tbXVfcXVpcmtzKTsKKysjZW5k aWYKKysKKyAvKioKKyAgKiBpb21tdV9zZXR1cF9kZWZhdWx0X2RvbWFpbiAtIFNldCB0aGUgZGVm YXVsdF9kb21haW4gZm9yIHRoZSBncm91cAorICAqIEBncm91cDogR3JvdXAgdG8gY2hhbmdlCitk aWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9pMmMvS2NvbmZpZyBiL2RyaXZlcnMvbWVkaWEvaTJj L0tjb25maWcKK2luZGV4IDhmMmJhNDEyMTU4Ni4uODU5MmJlNTNiYjc1IDEwMDY0NAorLS0tIGEv ZHJpdmVycy9tZWRpYS9pMmMvS2NvbmZpZworKysrIGIvZHJpdmVycy9tZWRpYS9pMmMvS2NvbmZp ZworQEAgLTI4Nyw2ICsyODcsMTYgQEAgY29uZmlnIFZJREVPX0lNWDQxNQorIAkgIFRvIGNvbXBp bGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQorIAkgIG1vZHVs ZSB3aWxsIGJlIGNhbGxlZCBpbXg0MTUuCisgCisrY29uZmlnIFZJREVPX0lNWDQ3MQorKwl0cmlz dGF0ZSAiU29ueSBJTVg0NzEgc2Vuc29yIHN1cHBvcnQiCisrCXNlbGVjdCBWNEwyX0NDSV9JMkMK KysJaGVscAorKwkgIFRoaXMgaXMgYSBWaWRlbzRMaW51eDIgc2Vuc29yIGRyaXZlciBmb3IgdGhl IFNvbnkKKysJICBJTVg0NzEgY2FtZXJhLgorKworKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIg YXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQorKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxl ZCBpbXg0NzEuCisrCisgY29uZmlnIFZJREVPX01BWDkyNzFfTElCCisgCXRyaXN0YXRlCisgCitA QCAtMTY1OSw2ICsxNjY5LDggQEAgZW5kbWVudQorIG1lbnUgIk1pc2NlbGxhbmVvdXMgaGVscGVy IGNoaXBzIgorIAl2aXNpYmxlIGlmICFNRURJQV9ISURFX0FOQ0lMTEFSWV9TVUJEUlYKKyAKKytz b3VyY2UgImRyaXZlcnMvbWVkaWEvaTJjL2N2cy9LY29uZmlnIgorKworIGNvbmZpZyBWSURFT19J MkMKKyAJdHJpc3RhdGUgIkkyQyB0cmFuc3BvcnQgdmlkZW8gc3VwcG9ydCIKKyAJZGVwZW5kcyBv biBWSURFT19ERVYgJiYgSTJDCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9pMmMvTWFrZWZp bGUgYi9kcml2ZXJzL21lZGlhL2kyYy9NYWtlZmlsZQoraW5kZXggOTBiMjc2YTc0MTdhLi5hY2Jk MzIxZmMxMmUgMTAwNjQ0CistLS0gYS9kcml2ZXJzL21lZGlhL2kyYy9NYWtlZmlsZQorKysrIGIv ZHJpdmVycy9tZWRpYS9pMmMvTWFrZWZpbGUKK0BAIC02MSw2ICs2MSw3IEBAIG9iai0kKENPTkZJ R19WSURFT19JTVgzMzUpICs9IGlteDMzNS5vCisgb2JqLSQoQ09ORklHX1ZJREVPX0lNWDM1NSkg Kz0gaW14MzU1Lm8KKyBvYmotJChDT05GSUdfVklERU9fSU1YNDEyKSArPSBpbXg0MTIubworIG9i ai0kKENPTkZJR19WSURFT19JTVg0MTUpICs9IGlteDQxNS5vCisrb2JqLSQoQ09ORklHX1ZJREVP X0lNWDQ3MSkgKz0gaW14NDcxLm8KKyBvYmotJChDT05GSUdfVklERU9fSVJfSTJDKSArPSBpci1r YmQtaTJjLm8KKyBvYmotJChDT05GSUdfVklERU9fSVNMNzk5OFgpICs9IGlzbDc5OTh4Lm8KKyBv YmotJChDT05GSUdfVklERU9fS1MwMTI3KSArPSBrczAxMjcubworQEAgLTE3MSwzICsxNzIsNCBA QCBvYmotJChDT05GSUdfVklERU9fVlAyN1NNUFgpICs9IHZwMjdzbXB4Lm8KKyBvYmotJChDT05G SUdfVklERU9fVlBYMzIyMCkgKz0gdnB4MzIyMC5vCisgb2JqLSQoQ09ORklHX1ZJREVPX1dNODcz OSkgKz0gd204NzM5Lm8KKyBvYmotJChDT05GSUdfVklERU9fV004Nzc1KSArPSB3bTg3NzUubwor K29iai0kKENPTkZJR19WSURFT19JTlRFTF9DVlMpICs9IGN2cy8KK2RpZmYgLS1naXQgYS9kcml2 ZXJzL21lZGlhL2kyYy9jdnMvS2NvbmZpZyBiL2RyaXZlcnMvbWVkaWEvaTJjL2N2cy9LY29uZmln CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi40MzA5ZDIwZGQ3MjYK Ky0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvbWVkaWEvaTJjL2N2cy9LY29uZmlnCitAQCAt MCwwICsxLDIxIEBACisrIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Cisr CisrY29uZmlnIFZJREVPX0lOVEVMX0NWUworKwl0cmlzdGF0ZSAiSW50ZWwgQ1ZTIENTSS0yIGJy aWRnZSBzdXBwb3J0IgorKwlkZXBlbmRzIG9uIEkyQyAmJiBBQ1BJICYmIFZJREVPX0RFVgorKwlk ZXBlbmRzIG9uIElQVV9CUklER0UgfHwgIUlQVV9CUklER0UKKysJc2VsZWN0IE1FRElBX0NPTlRS T0xMRVIKKysJc2VsZWN0IFZJREVPX1Y0TDJfU1VCREVWX0FQSQorKwlzZWxlY3QgVjRMMl9GV05P REUKKysJaGVscAorKwkgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB0aGUgSW50ZWwgQ29tcHV0ZXIg VmlzaW9uIFNlbnNpbmcgKENWUykuCisrCisrCSAgVGhlIGRyaXZlciByZWdpc3RlcnMgYSBWNEwy IHN1Yi1kZXZpY2UgdG8gYXJiaXRyYXRlIENTSS0yIGxpbmsKKysJICBvd25lcnNoaXAgYmV0d2Vl biB0aGUgaG9zdCBhbmQgQ1ZTIGZpcm13YXJlLCBhbmQgY29uZmlndXJlcyB0aGUKKysJICBkZXZp Y2UgZm9yIGNhbWVyYSBzZW5zb3Igc3RyZWFtaW5nLgorKworKwkgIFRoZSBkcml2ZXIgY2FuIG9w ZXJhdGUgd2l0aCBmdWxsIEkyQyB0cmFuc3BvcnQgb3IgaW4gYSByZWR1Y2VkCisrCSAgcGxhdGZv cm0gKEdQSU8tb25seSkgbW9kZSB3aGVuIEkyQyBpcyB1bmF2YWlsYWJsZS4KKysKKysJICBTYXkg WSB0byBidWlsZCBpbnRvIHRoZSBrZXJuZWwsIG9yIE0gdG8gYnVpbGQgYXMgYSBtb2R1bGUuCisr CSAgVGhlIG1vZHVsZSB3aWxsIGJlIG5hbWVkIGludGVsX2N2cy4gSWYgdW5zdXJlLCBzYXkgTi4K K2RpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2kyYy9jdnMvTWFrZWZpbGUgYi9kcml2ZXJzL21l ZGlhL2kyYy9jdnMvTWFrZWZpbGUKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAw MDAwMDAuLjBhZWIyYzJlMzEwMAorLS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVycy9tZWRpYS9p MmMvY3ZzL01ha2VmaWxlCitAQCAtMCwwICsxLDQgQEAKKysjIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wLW9ubHkKKytpbnRlbF9jdnMteSA6PSBjb3JlLm8gdjRsMi5vCisrCisrb2Jq LSQoQ09ORklHX1ZJREVPX0lOVEVMX0NWUykgKz0gaW50ZWxfY3ZzLm8KK2RpZmYgLS1naXQgYS9k cml2ZXJzL21lZGlhL2kyYy9jdnMvY29yZS5jIGIvZHJpdmVycy9tZWRpYS9pMmMvY3ZzL2NvcmUu YworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uNzQ4NjgxNWIxNmJk CistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL21lZGlhL2kyYy9jdnMvY29yZS5jCitAQCAt MCwwICsxLDEwNDYgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5 CisrLyoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjYgSW50ZWwgQ29ycG9yYXRpb24KKysgKi8KKysK KysjaW5jbHVkZSA8bGludXgvYWNwaS5oPgorKyNpbmNsdWRlIDxsaW51eC9jbGVhbnVwLmg+Cisr I2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisrI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorKyNp bmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CisrI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgor KyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisrI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgor KyNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CisrI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0 YWJsZS5oPgorKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKysjaW5jbHVkZSA8bGludXgvcGNp Lmg+CisrI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorKyNpbmNsdWRlIDxsaW51 eC9wbV9ydW50aW1lLmg+CisrI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKysjaW5jbHVkZSA8bGlu dXgvdGltZTY0Lmg+CisrI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgorKworKyNpbmNsdWRl IDxtZWRpYS9pcHUtYnJpZGdlLmg+CisrI2luY2x1ZGUgPG1lZGlhL2lwdTYtcGNpLXRhYmxlLmg+ CisrCisrI2luY2x1ZGUgImljdnMuaCIKKysKKysvKiBDb21tYW5kIHRpbWVvdXRzIGRldGVybWlu ZWQgZXhwZXJpbWVudGFsbHkgKi8KKysjZGVmaW5lIENNRF9USU1FT1VUICg1ICogSFopCisrI2Rl ZmluZSBGV19SRUFEWV9ERUxBWV9NUyAxMDAKKysKKysjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5U RUxfSVBVNwkJMHg2NDVkCS8qIE1UTCAvIExOTCAqLworKyNkZWZpbmUgUENJX0RFVklDRV9JRF9J TlRFTF9JUFU3UDUJCTB4YjA1ZAkvKiBBUkwgLyBQVEwgKi8KKysjZGVmaW5lIFBDSV9ERVZJQ0Vf SURfSU5URUxfSVBVOAkJMHhkNzE5CS8qIE5WTCAqLworKworKy8qCisrICogSVBVNyBQQ0kgZGV2 aWNlIElEcyBub3QgY292ZXJlZCBieSBpcHU2X3BjaV90YmwgaW4gaXB1Ni1wY2ktdGFibGUuaC4K KysgKiBPbmNlIHRoZSBJUFU2IGRyaXZlciBnYWlucyBzdXBwb3J0IGZvciBJUFU3LCB0aGlzIHRh YmxlIGNhbiBiZSBkcm9wcGVkLgorKyAqLworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2Rldmlj ZV9pZCBpY3ZzX2lwdTdfdGJsW10gPSB7CisrCXsgUENJX1ZERVZJQ0UoSU5URUwsIFBDSV9ERVZJ Q0VfSURfSU5URUxfSVBVNykgfSwKKysJeyBQQ0lfVkRFVklDRShJTlRFTCwgUENJX0RFVklDRV9J RF9JTlRFTF9JUFU3UDUpIH0sCisrCXsgUENJX1ZERVZJQ0UoSU5URUwsIFBDSV9ERVZJQ0VfSURf SU5URUxfSVBVOCkgfSwKKysJeyB9CisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlf Z3Bpb19wYXJhbXMgZ3Bpb193YWtlID0geyAwLCAwLCBmYWxzZSB9OworK3N0YXRpYyBjb25zdCBz dHJ1Y3QgYWNwaV9ncGlvX3BhcmFtcyBncGlvX3JzdCAgPSB7IDEsIDAsIGZhbHNlIH07Cisrc3Rh dGljIGNvbnN0IHN0cnVjdCBhY3BpX2dwaW9fcGFyYW1zIGdwaW9fcmVxICA9IHsgMiwgMCwgZmFs c2UgfTsKKytzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZ3Bpb19wYXJhbXMgZ3Bpb19yZXNwID0g eyAzLCAwLCBmYWxzZSB9OworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWNwaV9ncGlvX21hcHBpbmcg aWN2c19hY3BpX2dwaW9zW10gPSB7CisrCXsgIndha2UtZ3BpbyIsICZncGlvX3dha2UsIDEgfSwK KysJeyAicnN0LWdwaW8iLCAgJmdwaW9fcnN0LCAgMSB9LAorKwl7ICJyZXEtZ3BpbyIsICAmZ3Bp b19yZXEsICAxIH0sCisrCXsgInJlc3AtZ3BpbyIsICZncGlvX3Jlc3AsIDEgfSwKKysJeyB9Cisr fTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZ3Bpb19wYXJhbXMgbGdwaW9fcmVxICA9 IHsgMCwgMCwgZmFsc2UgfTsKKytzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZ3Bpb19wYXJhbXMg bGdwaW9fcmVzcCA9IHsgMSwgMCwgZmFsc2UgfTsKKytzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlf Z3Bpb19tYXBwaW5nIGljdnNfYWNwaV9sZ3Bpb3NbXSA9IHsKKysJeyAicmVxLWdwaW8iLCAgJmxn cGlvX3JlcSwgIDEgfSwKKysJeyAicmVzcC1ncGlvIiwgJmxncGlvX3Jlc3AsIDEgfSwKKysJeyB9 CisrfTsKKysKKysvKiBEZXZpY2UgcXVpcmsgdGFibGUgKi8KKytzdGF0aWMgY29uc3Qgc3RydWN0 IGljdnNfZGV2aWNlX3F1aXJrIGN2c19xdWlya190YWJsZVtdID0geworKwl7IDB4MmFjMSwgMHgy MGQwLCBJQ1ZTX05PX01JUElfQ09ORklHIHwKKysJCQkgIElDVlNfTk9fQ0FQUyB8CisrCQkJICBJ Q1ZTX05PX0ZXX1VQREFURQorKwl9LAkvKiBMYXR0aWNlIE5YMzMgKi8KKysJeyAweDA2Q0IsIDB4 MDcwMSwgSUNWU19TS0lQX0ZXX1JFU0VUIHwKKysJCQkgIElDVlNfSE9TVF9TRU5TT1JfUFdSX0NU UkwgfAorKwkJCSAgSUNWU19IT1NUX1BSSVZfQ1RSTCB8CisrCQkJICBJQ1ZTX0ZXX0JVRl9TSVpF XzI1NiB8CisrCQkJICBJQ1ZTX0ZXX0hFQURFUl9TSVpFXzI1NgorKwl9LAkvKiBTeW5hcHRpY3Mg U1ZQN3h4eCAqLworKwl7IH0KKyt9OworKworKy8qKgorKyAqIGN2c19zZXRfcXVpcmtzIC0gTWF0 Y2ggZGV2aWNlIFZJRC9QSUQgYW5kIHNldCBxdWlya3MKKysgKiBAY3R4OiBDVlMgZGV2aWNlIGNv bnRleHQKKysgKiBAdmlkOiBWZW5kb3IgSUQKKysgKiBAcGlkOiBQcm9kdWN0IElECisrICoKKysg KiBTZWFyY2hlcyB0aGUgcXVpcmsgdGFibGUgZm9yIGEgbWF0Y2hpbmcgVklEL1BJRCBhbmQgcG9w dWxhdGVzIGN0eC0+cXVpcmtzCisrICogd2l0aCB0aGUgY29ycmVzcG9uZGluZyBxdWlyayBmbGFn cy4KKysgKiBJZiBubyBtYXRjaCBpcyBmb3VuZCwgcXVpcmtzIGlzIHNldCB0byAwLgorKyAqLwor K3N0YXRpYyB2b2lkIGN2c19zZXRfcXVpcmtzKHN0cnVjdCBpY3ZzICpjdHgsIHUxNiB2aWQsIHUx NiBwaWQpCisreworKwljdHgtPnF1aXJrcyA9IDA7CisrCisrCWZvciAodW5zaWduZWQgaW50IGkg PSAwOyBpIDwgQVJSQVlfU0laRShjdnNfcXVpcmtfdGFibGUpOyBpKyspIHsKKysJCWlmIChjdnNf cXVpcmtfdGFibGVbaV0udmlkID09IHZpZCAmJgorKwkJICAgIGN2c19xdWlya190YWJsZVtpXS5w aWQgPT0gcGlkKSB7CisrCQkJY3R4LT5xdWlya3MgPSBjdnNfcXVpcmtfdGFibGVbaV0ucXVpcmtz OworKwkJCWRldl9pbmZvKGN2c19kZXYoY3R4KSwKKysJCQkJICJRdWlya3M6IDB4JWx4IChWSUQ6 MHglMDR4IFBJRDoweCUwNHgpXG4iLAorKwkJCQkgY3R4LT5xdWlya3MsIHZpZCwgcGlkKTsKKysJ CQlyZXR1cm47CisrCQl9CisrCX0KKysKKysJZGV2X2luZm8oY3ZzX2RldihjdHgpLAorKwkJICJO byBxdWlya3MgZm9yIGRldmljZSAoVklEOjB4JTA0eCBQSUQ6MHglMDR4KVxuIiwgdmlkLCBwaWQp OworK30KKysKKysvKiBJMkMgdHJhbnNwb3J0IGhlbHBlcnMgKi8KKysKKysvKioKKysgKiBjdnNf cmVhZF9pMmMgLSBJc3N1ZSBhIHJlYWQtdHlwZSBjb21tYW5kIGFuZCBmZXRjaCBkZXZpY2UgcmVz cG9uc2UKKysgKiBAY3R4OiBDVlMgZGV2aWNlIGNvbnRleHQKKysgKiBAY21kX2lkOiBDb21tYW5k IGlkZW50aWZpZXIgKGJpZyBlbmRpYW4pCisrICogQHJlc3A6IERlc3RpbmF0aW9uIGJ1ZmZlciBm b3IgcmVzcG9uc2UgcGF5bG9hZAorKyAqIEBzaXplOiBTaXplIG9mIHBheWxvYWQgdG8gcmVhZCBp bnRvIEByZXNwICh3aXRob3V0IHByZWZpeCkKKysgKgorKyAqIFNlbmRzIEBjbWRfaWQgYW5kIHJl YWRzIGJhY2sgdGhlIHJlc3BvbnNlIGluIGEgc2luZ2xlIEkyQyB0cmFuc2FjdGlvbi4KKysgKiBX aGVuIHRoZSBkZXZpY2UgcHJlcGVuZHMgYSA0LWJ5dGUgcHJvdG9jb2wgcHJlZml4LCB0aGUgY29t YmluZWQKKysgKiBwcmVmaXgrcGF5bG9hZCBpcyByZWFkIGludG8gYSB0ZW1wb3JhcnkgYnVmZmVy IGFuZCBvbmx5IHRoZSBwYXlsb2FkIGlzCisrICogY29waWVkIHRvIEByZXNwLCBhdm9pZGluZyBh bnkgZGVwZW5kZW5jeSBvbiB0aGUgbGF5b3V0IG9mIHRoZSBjYWxsZXIncworKyAqIGJ1ZmZlci4K KysgKgorKyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIGVycm5vLgorKyAqLwor K3N0YXRpYyBpbnQgY3ZzX3JlYWRfaTJjKHN0cnVjdCBpY3ZzICpjdHgsIF9fYmUxNiBjbWRfaWQs IHZvaWQgKnJlc3AsCisrCQkJc2l6ZV90IHNpemUpCisreworKwlzaXplX3QgcHJlZml4X3NpemUg PSBjdHgtPnByZWZpeCA/IHNpemVvZih1MzIpIDogMDsKKysJc2l6ZV90IHJlYWRfc2l6ZSA9IHNp emUgKyBwcmVmaXhfc2l6ZTsKKysJc3RydWN0IGkyY19jbGllbnQgKmkyYyA9IGN0eC0+aTJjX2Ns aWVudDsKKysJdTggKmJ1ZiBfX2ZyZWUoa2ZyZWUpID0gTlVMTDsKKysJaW50IGNudDsKKysKKysJ aWYgKCFyZXNwIHx8ICFzaXplKQorKwkJcmV0dXJuIC1FSU5WQUw7CisrCisrCWNudCA9IGkyY19t YXN0ZXJfc2VuZChpMmMsIChjb25zdCBjaGFyICopJmNtZF9pZCwgc2l6ZW9mKGNtZF9pZCkpOwor KwlpZiAoY250ICE9IHNpemVvZihjbWRfaWQpKQorKwkJcmV0dXJuIGNudCA8IDAgPyBjbnQgOiAt RUlPOworKworKwlidWYgPSBrbWFsbG9jKHJlYWRfc2l6ZSwgR0ZQX0tFUk5FTCk7CisrCWlmICgh YnVmKQorKwkJcmV0dXJuIC1FTk9NRU07CisrCisrCWNudCA9IGkyY19tYXN0ZXJfcmVjdihpMmMs IGJ1ZiwgcmVhZF9zaXplKTsKKysJaWYgKGNudCAhPSByZWFkX3NpemUpIHsKKysJCWRldl9kYmco Y3ZzX2RldihjdHgpLCAicmVjdiBjbWQgMHglMDR4IHNob3J0IHJlYWQgKCVkLyV6dSlcbiIsCisr CQkJYmUxNl90b19jcHUoY21kX2lkKSwgY250LCByZWFkX3NpemUpOworKwkJcmV0dXJuIGNudCA8 IDAgPyBjbnQgOiAtRUlPOworKwl9CisrCisrCW1lbWNweShyZXNwLCBidWYgKyBwcmVmaXhfc2l6 ZSwgc2l6ZSk7CisrCisrCXJldHVybiAwOworK30KKysKKysvKioKKysgKiBjdnNfd3JpdGVfaTJj IC0gV3JpdGUgYSByYXcgY29tbWFuZCBidWZmZXIgdG8gdGhlIGRldmljZSBvdmVyIEkyQworKyAq IEBjdHg6IENWUyBkZXZpY2UgY29udGV4dAorKyAqIEBkYXRhOiBCdWZmZXIgY29udGFpbmluZyBj b21tYW5kICsgcGF5bG9hZAorKyAqIEBzaXplOiBUb3RhbCBieXRlcyB0byB3cml0ZQorKyAqCisr ICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUgZXJybm8uCisrICovCisrc3RhdGlj IGludCBjdnNfd3JpdGVfaTJjKHN0cnVjdCBpY3ZzICpjdHgsIGNvbnN0IHZvaWQgKmRhdGEsIGlu dCBzaXplKQorK3sKKysJc3RydWN0IGkyY19jbGllbnQgKmkyYyA9IGN0eC0+aTJjX2NsaWVudDsK KysJaW50IGNudDsKKysKKysJaWYgKHNpemUgPCAwIHx8ICFkYXRhKQorKwkJcmV0dXJuIC1FSU5W QUw7CisrCisrCWNudCA9IGkyY19tYXN0ZXJfc2VuZChpMmMsIGRhdGEsIHNpemUpOworKwlpZiAo Y250ICE9IHNpemUpIHsKKysJCWRldl9kYmcoY3ZzX2RldihjdHgpLCAic2VuZCBzaG9ydCAoJWQv JWQpXG4iLCBjbnQsIHNpemUpOworKwkJcmV0dXJuIGNudCA8IDAgPyBjbnQgOiAtRUlPOworKwl9 CisrCisrCXJldHVybiAwOworK30KKysKKysvKioKKysgKiBjdnNfY2hlY2tzdW0gLSBTaW1wbGUg YWRkaXRpdmUgY2hlY2tzdW0gaGVscGVyCisrICogQGRhdGE6IDMyLWJpdCBhbGlnbmVkIGRhdGEg YnVmZmVyCisrICogQGxlbjogTGVuZ3RoIGluIGJ5dGVzIChtdWx0aXBsZSBvZiA0KQorKyAqCisr ICogUmV0dXJuOiAzMi1iaXQgYWRkaXRpdmUgY2hlY2tzdW0gb2YgdGhlIGR3b3JkcyBpbiBAZGF0 YS4KKysgKi8KKytzdGF0aWMgdTMyIGN2c19jaGVja3N1bShjb25zdCB2b2lkICpkYXRhLCBzaXpl X3QgbGVuKQorK3sKKysJY29uc3QgdTMyICp3b3JkcyA9IGRhdGE7CisrCXUzMiBjc3VtID0gMDsK KysKKysJaWYgKFdBUk5fT05fT05DRShsZW4gJSBzaXplb2YodTMyKSkpCisrCQlyZXR1cm4gMDsK KysKKysJZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBsZW4gLyBzaXplb2YodTMyKTsgaSsr KQorKwkJY3N1bSArPSB3b3Jkc1tpXTsKKysKKysJcmV0dXJuIGNzdW07CisrfQorKworKy8qKgor KyAqIGN2c19zY2hlZHVsZV9hbmRfd2FpdCAtIFNjaGVkdWxlIHBvbGxpbmcgd29yayB0aGVuIHdh aXQgZm9yIGNvbXBsZXRpb24KKysgKiBAY3R4OiBDVlMgZGV2aWNlIGNvbnRleHQKKysgKiBAd29y a19kZWxheV9tczogRGVsYXkgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSBwb2xsaW5nIHdvcmsgZXhl Y3V0ZXMKKysgKiBAd2FpdF9qaWZmaWVzOiBUaW1lb3V0IChqaWZmaWVzKSB0byB3YWl0IGZvciBj bWQgY29tcGxldGlvbgorKyAqCisrICogUXVldWVzIGN0eC0+d29yayB0byBydW4gYWZ0ZXIgQHdv cmtfZGVsYXlfbXMgYW5kIHRoZW4gd2FpdHMgdXAgdG8KKysgKiBAd2FpdF9qaWZmaWVzIGZvciBj dHgtPmNtZF9jb21wbGV0aW9uLgorKyAqCisrICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIC1FVElN RURPVVQgb24gdGltZW91dCwgbmVnYXRpdmUgZXJybm8gb24gZXJyb3IuCisrICovCisrc3RhdGlj IGludCBjdnNfc2NoZWR1bGVfYW5kX3dhaXQoc3RydWN0IGljdnMgKmN0eCwgdW5zaWduZWQgaW50 IHdvcmtfZGVsYXlfbXMsCisrCQkJCSB1bnNpZ25lZCBsb25nIHdhaXRfamlmZmllcykKKyt7Cisr CWludCByZXQ7CisrCisrCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmY3R4LT53b3JrLCBtc2Vjc190 b19qaWZmaWVzKHdvcmtfZGVsYXlfbXMpKTsKKysJcmV0ID0gd2FpdF9mb3JfY29tcGxldGlvbl9r aWxsYWJsZV90aW1lb3V0KCZjdHgtPmNtZF9jb21wbGV0aW9uLAorKwkJCQkJCSAgIHdhaXRfamlm Zmllcyk7CisrCWlmIChyZXQgPCAwKQorKwkJcmV0dXJuIHJldDsKKysJaWYgKCFyZXQpCisrCQly ZXR1cm4gLUVUSU1FRE9VVDsKKysKKysJcmV0dXJuIDA7CisrfQorKworKy8qKgorKyAqIGN2c193 YWl0X3dha2Vfb3Jfc2xlZXAgLSBXYWl0IGZvciB3YWtlIElSUSBvciBzbGVlcCBmYWxsYmFjawor KyAqIEBjdHg6IENWUyBkZXZpY2UgY29udGV4dAorKyAqIEB0aW1lb3V0X2ppZmZpZXM6IFRpbWVv dXQgKGppZmZpZXMpIGZvciB3YWtlIGV2ZW50IG9uIGZ1bGwtY2FwIGRldmljZXMKKysgKiBAc2xl ZXBfbXM6IE1pbGxpc2Vjb25kcyB0byBzbGVlcCBvbiBsaWdodC1jYXAgZGV2aWNlcworKyAqCisr ICogRm9yIGZ1bGwgY2FwYWJpbGl0eSBkZXZpY2VzIChJQ1ZTX0ZVTExDQVApIHdhaXRzIGludGVy cnVwdGlibHkgb24KKysgKiBjdHgtPmhvc3R3YWtlX2V2ZW50IHVudGlsIGN0eC0+aG9zdHdha2Vf ZXZlbnRfYXJnIGJlY29tZXMgdHJ1ZSBvcgorKyAqIEB0aW1lb3V0X2ppZmZpZXMgZWxhcHNlcy4g VGhlIGZsYWcgaXMgY2xlYXJlZCBhZnRlciB0aGUgd2FpdC4KKysgKiBGb3IgbGlnaHQgY2FwYWJp bGl0eSBkZXZpY2VzIHBlcmZvcm1zIGEgYmxvY2tpbmcgbXNsZWVwKEBzbGVlcF9tcykuCisrICoK KysgKiBSZXR1cm4gY29kZXMgbm9ybWFsaXplZCBmb3IgY2FsbGVyIHN3aXRjaCBoYW5kbGluZzoK KysgKgk8MAkJOiBlcnJvciAvIGludGVycnVwdGVkCisrICoJLUVUSU1FRE9VVAk6IHRpbWVvdXQg KHdha2UgZXZlbnQgbm90IG9ic2VydmVkKQorKyAqCTAJCTogc3VjY2VzcyAod2FrZSBvYnNlcnZl ZCBPUiBsaWdodC1jYXAgc2xlZXAgZWxhcHNlZCkKKysgKgorKyAqIFJldHVybjogbmVnYXRpdmUg ZXJybm8sIC1FVElNRURPVVQgb24gdGltZW91dCwgMCBvbiBzdWNjZXNzLgorKyAqLworK3N0YXRp YyBpbnQgY3ZzX3dhaXRfd2FrZV9vcl9zbGVlcChzdHJ1Y3QgaWN2cyAqY3R4LAorKwkJCQkgIHVu c2lnbmVkIGxvbmcgdGltZW91dF9qaWZmaWVzLAorKwkJCQkgIHVuc2lnbmVkIGludCBzbGVlcF9t cykKKyt7CisrCWludCByZXQ7CisrCisrCWlmIChjdHgtPnJlcyA9PSBJQ1ZTX0ZVTExDQVApIHsK KysJCXJldCA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZV90aW1lb3V0KGN0eC0+aG9zdHdha2Vf ZXZlbnQsCisrCQkJCQkJICAgICAgIGN0eC0+aG9zdHdha2VfZXZlbnRfYXJnLAorKwkJCQkJCSAg ICAgICB0aW1lb3V0X2ppZmZpZXMpOworKwkJY3R4LT5ob3N0d2FrZV9ldmVudF9hcmcgPSBmYWxz ZTsKKysJCWlmIChyZXQgPCAwKQorKwkJCXJldHVybiByZXQ7CisrCQlpZiAoIXJldCkKKysJCQly ZXR1cm4gLUVUSU1FRE9VVDsKKysJCXJldHVybiAwOworKwl9CisrCisrCW1zbGVlcChzbGVlcF9t cyk7CisrCisrCXJldHVybiAwOyAvKiB0cmVhdCBzbGVlcCBwYXRoIGFzIHN1Y2Nlc3MgKi8KKyt9 CisrCisrLyoqCisrICogY3ZzX2NvbmZpZ19taXBpIC0gU2VuZCBhIEhPU1RfU0VUX01JUElfQ09O RklHIGNvbW1hbmQKKysgKiBAY3R4OiBDVlMgZGV2aWNlIGNvbnRleHQKKysgKiBAYzogQ29tbWFu ZCBjb250YWluZXIgd2l0aCBjb25mIGZpZWxkIHBvcHVsYXRlZAorKyAqIEBsZW46IExlbmd0aCBv ZiBvcmlnaW5hbCBjb21tYW5kIHN0cnVjdHVyZSAodW51c2VkIGV4Y2VwdCBmb3Igc3ltbWV0cnkp CisrICoKKysgKiBQYWNrYWdlcyBAYy0+cGFyYW0uY29uZiBpbnRvIGEgY3ZzX21pcGlfZGF0YV9w YWNrZXQgaW5jbHVkaW5nIHNpemUgYW5kCisrICogY2hlY2tzdW0sIHRoZW4gd3JpdGVzIGl0IHRv IHRoZSBkZXZpY2UuCisrICoKKysgKiBGaXJtd2FyZSBub3RlOiB0aGUgQ1ZTIGZpcm13YXJlIGV4 cGVjdHMgdGhlIE1JUEkgY29uZmlndXJhdGlvbiB0byBiZQorKyAqIHNlbnQgYXMgYSBzaW5nbGUg dHJhbnNhY3Rpb24sIGluY2x1ZGluZyBhbGwgcmVsZXZhbnQgcGFyYW1ldGVycyBhbmQgY2hlY2tz dW0uCisrICoKKysgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgTk9fTUlQSV9DT05GSUcgb3IgbmVn YXRpdmUgZXJybm8gZnJvbSBJMkMgd3JpdGUuCisrICovCisrc3RhdGljIGludCBjdnNfY29uZmln X21pcGkoc3RydWN0IGljdnMgKmN0eCwgc3RydWN0IGljdnNfY21kICpjLCBzaXplX3QgbGVuKQor K3sKKysJc3RydWN0IGljdnNfbWlwaV9kYXRhX3BhY2tldCBwa3QgPSB7CisrCQkuY21kX2lkID0g Yy0+Y21kX2lkLAorKwkJLnNpemUgPSBzaXplb2YoYy0+cGFyYW0uY29uZiksCisrCQkuY3JjID0g Y3ZzX2NoZWNrc3VtKCZjLT5wYXJhbS5jb25mLCBzaXplb2YoYy0+cGFyYW0uY29uZikpLAorKwkJ LmNvbmYgPSBjLT5wYXJhbS5jb25mLAorKwl9OworKworKwlpZiAoY3R4LT5xdWlya3MgJiBJQ1ZT X05PX01JUElfQ09ORklHKQorKwkJcmV0dXJuIDA7CisrCisrCXJldHVybiBjdnNfd3JpdGVfaTJj KGN0eCwgJnBrdCwgc2l6ZW9mKHBrdCkpOworK30KKysKKysvKioKKysgKiBjdnNfZ2V0X2Rldmlj ZV9zdGF0ZSAtIFF1ZXJ5IGN1cnJlbnQgZGV2aWNlIHN0YXRlIGJpdGZpZWxkCisrICogQGN0eDog Q1ZTIGRldmljZSBjb250ZXh0CisrICogQHN0YXRlOiBSZXR1cm5lZCBzdGF0ZSB2YWx1ZQorKyAq CisrICogSXNzdWVzIEdFVF9ERVZfU1RBVEUgYW5kIGZpbGxzIEBzdGF0ZS4KKysgKgorKyAqIFJl dHVybjogMCBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIGVycm5vLgorKyAqLworK3N0YXRpYyBpbnQg Y3ZzX2dldF9kZXZpY2Vfc3RhdGUoc3RydWN0IGljdnMgKmN0eCwgdTggKnN0YXRlKQorK3sKKysJ c3RydWN0IGljdnNfcmVzcCBuID0geworKwkJLmNtZF9pZCA9IGNwdV90b19iZTE2KElDVlNfR0VU X0RFVl9TVEFURSksCisrCX07CisrCWludCByZXQ7CisrCisrCXJldCA9IGN2c19yZWFkX2kyYyhj dHgsIG4uY21kX2lkLCAmbi5yZXNwLnN0YXRlLCBzaXplb2Yobi5yZXNwLnN0YXRlKSk7CisrCWlm IChyZXQpCisrCQlyZXR1cm4gcmV0OworKworKwkqc3RhdGUgPSBuLnJlc3Auc3RhdGU7CisrCisr CXJldHVybiAwOworK30KKysKKysvKioKKysgKiBjdnNfZ2V0X2RldmljZV9jYXBzIC0gUmVhZCBw cm90b2NvbCBjYXBhYmlsaXRpZXMKKysgKiBAY3R4OiBDVlMgZGV2aWNlIGNvbnRleHQKKysgKiBA Y2FwczogQ2FwYWJpbGl0eSBzdHJ1Y3R1cmUgdG8gcG9wdWxhdGUKKysgKgorKyAqIFJldHVybjog MCBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIGVycm5vLgorKyAqLworK3N0YXRpYyBpbnQgY3ZzX2dl dF9kZXZpY2VfY2FwcyhzdHJ1Y3QgaWN2cyAqY3R4LAorKwkJCSAgICAgICBzdHJ1Y3QgaWN2c19k ZXZfY2FwYWJpbGl0aWVzICpjYXBzKQorK3sKKysJc3RydWN0IGljdnNfcmVzcCBuID0geworKwkJ LmNtZF9pZCA9IGNwdV90b19iZTE2KElDVlNfR0VUX0RFVl9DQVBBQklMSVRZKSwKKysJfTsKKysJ aW50IHJldDsKKysKKysJaWYgKGN0eC0+cXVpcmtzICYgSUNWU19OT19DQVBTKQorKwkJcmV0dXJu IDA7CisrCisrCXJldCA9IGN2c19yZWFkX2kyYyhjdHgsIG4uY21kX2lkLCAmbi5yZXNwLmNhcCwg c2l6ZW9mKG4ucmVzcC5jYXApKTsKKysJaWYgKHJldCkKKysJCXJldHVybiByZXQ7CisrCisrCSpj YXBzID0gbi5yZXNwLmNhcDsKKysKKysJcmV0dXJuIDA7CisrfQorKworKy8qKgorKyAqIGN2c19o d19pbml0IC0gUHJvYmUgZGV2aWNlIGZvciBwcmVmaXggc3VwcG9ydCBhbmQgYXBwbHkgcXVpcmtz CisrICogQGN0eDogQ1ZTIGRldmljZSBjb250ZXh0CisrICoKKysgKiBTZW5kcyBHRVRfREVWX1ZJ RF9QSUQgYW5kIHByb2JlcyBmb3IgYSAzMi1iaXQgcHJlZml4LgorKyAqIElmIGl0IG1hdGNoZXMg SUNWU19QUkVGSVhfVkFMLCBzZXRzIGN0eC0+cHJlZml4IGZvciBzdWJzZXF1ZW50IHJlYWRzLgor KyAqIFRoZW4gcmVhZHMgVklEL1BJRCBhbmQgYXBwbGllcyBtYXRjaGluZyBxdWlya3MuCisrICog R0VUX0RFVl9WSURfUElEIGlzIHN1cHBvcnRlZCBieSBhbGwgcHJvdG9jb2wgdmVyc2lvbnMuCisr ICoKKysgKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBlcnJuby4KKysgKi8KKytz dGF0aWMgaW50IGN2c19od19pbml0KHN0cnVjdCBpY3ZzICpjdHgpCisreworKwlzdHJ1Y3QgaWN2 c19yZXNwIG4gPSB7IH07CisrCV9fYmUxNiBjbWQgPSBjcHVfdG9fYmUxNihJQ1ZTX0dFVF9ERVZf VklEX1BJRCk7CisrCXUzMiByZXNwOworKwlpbnQgcmV0OworKworKwkvKgorKwkgKiBDbGVhciBw cmVmaXggc28gY3ZzX3JlYWRfaTJjIGFsd2F5cyByZWFkcyBleGFjdGx5IHNpemVvZih1MzIpIGJ5 dGVzCisrCSAqIGhlcmUsIHJlZ2FyZGxlc3Mgb2YgYW55IHZhbHVlIGxlZnQgb3ZlciBmcm9tIGEg cHJldmlvdXMgY2FsbCAoZS5nLgorKwkgKiBvbiByZXN1bWUpLgorKwkgKi8KKysJY3R4LT5wcmVm aXggPSBmYWxzZTsKKysJcmV0ID0gY3ZzX3JlYWRfaTJjKGN0eCwgY21kLCAmcmVzcCwgc2l6ZW9m KHJlc3ApKTsKKysJaWYgKHJldCkKKysJCXJldHVybiByZXQ7CisrCisrCWN0eC0+cHJlZml4ID0g cmVzcCA9PSBJQ1ZTX1BSRUZJWF9WQUw7CisrCisrCS8qIE5vdyByZWFkIFZJRC9QSUQgdG8gYXBw bHkgcXVpcmtzICovCisrCXJldCA9IGN2c19yZWFkX2kyYyhjdHgsIGNtZCwKKysJCQkgICAmbi5y ZXNwLnZpZF9waWQsIHNpemVvZihuLnJlc3AudmlkX3BpZCkpOworKwlpZiAocmV0KQorKwkJcmV0 dXJuIHJldDsKKysKKysJY3ZzX3NldF9xdWlya3MoY3R4LCBuLnJlc3AudmlkX3BpZC52X2lkLCBu LnJlc3AudmlkX3BpZC5wX2lkKTsKKysKKysJcmV0dXJuIDA7CisrfQorKworKy8qKgorKyAqIGN2 c19pcnFfaGFuZGxlciAtIFdha2UgSVJRIGhhbmRsZXIgKGZ1bGwgY2FwYWJpbGl0eSBkZXZpY2Vz KQorKyAqIEBpcnE6IElSUSBudW1iZXIKKysgKiBAZGV2X2lkOiBEZXZpY2UgY29udGV4dCBwb2lu dGVyCisrICoKKysgKiBTZXRzIGEgd2FpdHF1ZXVlIGZsYWcgYW5kIHdha2VzIHVwIHNsZWVwaW5n IHdhaXRlcnMuCisrICoKKysgKiBSZXR1cm46IElSUV9IQU5ETEVEIGFsd2F5cy4KKysgKi8KKytz dGF0aWMgaXJxcmV0dXJuX3QgY3ZzX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkK Kyt7CisrCXN0cnVjdCBpY3ZzICpjdHggPSBkZXZfaWQ7CisrCisrCWN0eC0+aG9zdHdha2VfZXZl bnRfYXJnID0gdHJ1ZTsKKysJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZjdHgtPmhvc3R3YWtlX2V2 ZW50KTsKKysKKysJcmV0dXJuIElSUV9IQU5ETEVEOworK30KKysKKysvKioKKysgKiBjdnNfcmVz ZXQgLSBUb2dnbGUgcmVzZXQgR1BJTyBmb3IgZnVsbCBjYXBhYmlsaXR5IGRldmljZXMKKysgKiBA Y3R4OiBDVlMgZGV2aWNlIGNvbnRleHQKKysgKgorKyAqIERyaXZlcyByZXNldCBsb3cgYnJpZWZs eSB0aGVuIGhpZ2ggaWYgZGV2aWNlIHJlc291cmNlcyBpbmRpY2F0ZSBmdWxsCisrICogY2FwYWJp bGl0eS4gTGlnaHQgZGV2aWNlcyBoYXZlIG5vIHJlc2V0IGxpbmUuCisrICovCisrc3RhdGljIHZv aWQgY3ZzX3Jlc2V0KHN0cnVjdCBpY3ZzICpjdHgpCisreworKwlpZiAoY3R4LT5xdWlya3MgJiBJ Q1ZTX1NLSVBfRldfUkVTRVQpCisrCQlyZXR1cm47CisrCisrCWlmIChjdHgtPnJlcyA9PSBJQ1ZT X0ZVTExDQVApIHsKKysJCWdwaW9kX3NldF92YWx1ZShjdHgtPnJzdCwgMCk7CisrCQlmc2xlZXAo MjAwMCk7CisrCQlncGlvZF9zZXRfdmFsdWUoY3R4LT5yc3QsIDEpOworKwl9CisrfQorKworKy8q KgorKyAqIGN2c19yZWN2IC0gRGVsYXllZCB3b3JrIGhhbmRsZXIgcG9sbGluZyBmb3IgY29tbWFu ZCBjb21wbGV0aW9uCisrICogQHdvcms6IEVtYmVkZGVkIGRlbGF5ZWRfd29yayBtZW1iZXIKKysg KgorKyAqIFJlLXJlYWRzIGRldmljZSBzdGF0ZTsgaWYgZGV2aWNlX2J1c3kgcmVtYWlucyBzZXQs IHJlLXNjaGVkdWxlcyBpdHNlbGYuCisrICogT3RoZXJ3aXNlIHN0b3JlcyBzdGF0ZSBpbnRvIHdx X3Jlc3AgYW5kIGNvbXBsZXRlcyB0aGUgY29tbWFuZC4KKysgKi8KKytzdGF0aWMgdm9pZCBjdnNf cmVjdihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCisreworKwlzdHJ1Y3QgaWN2cyAqY3R4ID0g Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpY3ZzLCB3b3JrLndvcmspOworKwl1OCBzdGF0ZSA9 IDA7CisrCWludCByZXQ7CisrCisrCXJldCA9IGN2c19nZXRfZGV2aWNlX3N0YXRlKGN0eCwgJnN0 YXRlKTsKKysJaWYgKHJldCA8IDApIHsKKysJCWRldl9kYmcoY3ZzX2RldihjdHgpLCAic3RhdGUg cmVhZCBmYWlsZWQ6ICVkXG4iLCByZXQpOworKwkJcmV0dXJuOworKwl9CisrCisrCWlmIChzdGF0 ZSAmIElDVlNfREVWX1NUQVRFX0JVU1kpIHsKKysJCWRldl9kYmcoY3ZzX2RldihjdHgpLCAiZGV2 aWNlIGJ1c3ksIHJlc2NoZWR1bGVcbiIpOworKwkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZjdHgt PndvcmssCisrCQkJCSAgICAgIG1zZWNzX3RvX2ppZmZpZXMoRldfUkVBRFlfREVMQVlfTVMpKTsK KysJCXJldHVybjsKKysJfQorKworKwljdHgtPndxX3Jlc3AucmVzcC5zdGF0ZSA9IHN0YXRlOwor Kwljb21wbGV0ZSgmY3R4LT5jbWRfY29tcGxldGlvbik7CisrfQorKworKy8qKgorKyAqIGN2c19z ZW5kIC0gQ29tbW9uIGNvbW1hbmQgc3VibWlzc2lvbiBwYXRoCisrICogQGN0eDogQ1ZTIGRldmlj ZSBjb250ZXh0CisrICogQGNtZDogQ29tbWFuZCBidWZmZXIgKGljdnNfY21kKSB3aXRoIGNtZF9p ZCBhbmQgcGFyYW0gcG9wdWxhdGVkCisrICogQGxlbjogQnVmZmVyIGxlbmd0aAorKyAqCisrICog RGlzcGF0Y2hlcyBhIHNldCBvZiBzdXBwb3J0ZWQgY29tbWFuZHM6CisrICogLSBJQ1ZTX1NFVF9E RVZfSE9TVF9JRCwKKysgKiAtIElDVlNfSE9TVF9TRU5TT1JfT1dORVIsCisrICogLSBJQ1ZTX0hP U1RfU0VUX01JUElfQ09ORklHCisrICogLSBJQ1ZTX0ZXX0xPQURFUl8qCisrICoKKysgKiBGb3Ig STJDIGJhc2VkIGNvbW1hbmRzIGl0IHNldHMgYmlnLWVuZGlhbiBjbWQgaWRzLCB3cml0ZXMgdG8g dGhlIGRldmljZQorKyAqIGFuZCB3YWl0cyAodmlhIGRlbGF5ZWQgd29yaykgZm9yIGNvbXBsZXRp b24gb3IgdGltZW91dC4KKysgKiBHUElPIGJhc2VkIG93bmVyc2hpcCB0b2dnbGVzIGFyZSBoYW5k bGVkIGxvY2FsbHkuCisrICoKKysgKiBDYWxsZXIgbXVzdCBob2xkIGN0eC0+bG9jayB3aGVuIGlu dm9raW5nIHRoaXMgZnVuY3Rpb24gYW5kIGNoZWNrIGZvciBpMmMKKysgKiBidXMgYXZhaWxhYmls aXR5LgorKyAqCisrICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vLCAtRUlO VkFMIGZvciB1bnN1cHBvcnRlZCBjb21tYW5kCisrICogb3Igc3RhdHVzIGZyb20gZGV2aWNlIGlu IGN0eC0+d3FfcmVzcC4KKysgKi8KKytpbnQgY3ZzX3NlbmQoc3RydWN0IGljdnMgKmN0eCwgc3Ry dWN0IGljdnNfY21kICpjbWQsIHNpemVfdCBsZW4pCisreworKwlpbnQgcmV0LCBzdGF0dXMgPSAw OworKworKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZjdHgtPmxvY2spOworKworKwlkZXZfZGJnKGN2 c19kZXYoY3R4KSwgInNlbmQgY21kID0gMHglMDR4IiwgYmUxNl90b19jcHUoY21kLT5jbWRfaWQp KTsKKysKKysJcmVpbml0X2NvbXBsZXRpb24oJmN0eC0+Y21kX2NvbXBsZXRpb24pOworKworKwlz d2l0Y2ggKGJlMTZfdG9fY3B1KGNtZC0+Y21kX2lkKSkgeworKwljYXNlIElDVlNfU0VUX0RFVl9I T1NUX0lEOgorKwkJY21kLT5jbWRfaWQgPSBjcHVfdG9fYmUxNihJQ1ZTX1NFVF9ERVZfSE9TVF9J RCk7CisrCQlyZXQgPSBjdnNfd3JpdGVfaTJjKGN0eCwgY21kLCBsZW4pOworKwkJaWYgKHJldCA8 IDApCisrCQkJYnJlYWs7CisrCisrCQlyZXQgPSBjdnNfc2NoZWR1bGVfYW5kX3dhaXQoY3R4LCBG V19SRUFEWV9ERUxBWV9NUywKKysJCQkJCSAgICBDTURfVElNRU9VVCk7CisrCQlpZiAocmV0IDwg MCkKKysJCQlicmVhazsKKysKKysJCXN0YXR1cyA9IGN0eC0+d3FfcmVzcC5yZXNwLnN0YXRlICYK KysJCQkgIElDVlNfREVWX1NUQVRFX0VSUk9SID8gLUVJTlZBTCA6IDA7CisrCQlicmVhazsKKysJ Y2FzZSBJQ1ZTX0hPU1RfU0VOU09SX09XTkVSOgorKwkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVw KGN0eC0+cmVxLCBjbWQtPnBhcmFtLnBhcmFtKTsKKysJCWZzbGVlcChGV19SRUFEWV9ERUxBWV9N UyAqIFVTRUNfUEVSX01TRUMpOworKwkJcmV0ID0gZ3Bpb2RfZ2V0X3ZhbHVlX2NhbnNsZWVwKGN0 eC0+cmVzcCk7CisrCQlzdGF0dXMgPSBjbWQtPnBhcmFtLnBhcmFtID09IHJldCA/IDAgOiAtRUlO VkFMOworKwkJcmV0ID0gMDsgLyogc3VjY2VzcyAqLworKwkJYnJlYWs7CisrCWNhc2UgSUNWU19I T1NUX1NFVF9NSVBJX0NPTkZJRzoKKysJCWNtZC0+Y21kX2lkID0gY3B1X3RvX2JlMTYoSUNWU19I T1NUX1NFVF9NSVBJX0NPTkZJRyk7CisrCQlyZXQgPSBjdnNfY29uZmlnX21pcGkoY3R4LCBjbWQs IGxlbik7CisrCQlpZiAocmV0IDwgMCkKKysJCQlicmVhazsKKysKKysJCXJldCA9IGN2c19zY2hl ZHVsZV9hbmRfd2FpdChjdHgsIEZXX1JFQURZX0RFTEFZX01TLAorKwkJCQkJICAgIENNRF9USU1F T1VUKTsKKysJCXN0YXR1cyA9IChjdHgtPndxX3Jlc3AucmVzcC5zdGF0ZSAmCisrCQkJICBJQ1ZT X0RFVl9TVEFURV9FUlJPUikgPyAtRUlOVkFMIDogMDsKKysJCWJyZWFrOworKwljYXNlIElDVlNf RldfTE9BREVSX1NUQVJUOgorKwkJY21kLT5jbWRfaWQgPSBjcHVfdG9fYmUxNihJQ1ZTX0ZXX0xP QURFUl9TVEFSVCk7CisrCQlyZXQgPSBjdnNfd3JpdGVfaTJjKGN0eCwgY21kLCBsZW4pOworKwkJ aWYgKHJldCA8IDApCisrCQkJYnJlYWs7CisrCisrCQlyZXQgPSBjdnNfd2FpdF93YWtlX29yX3Ns ZWVwKGN0eCwgQ01EX1RJTUVPVVQsCisrCQkJCQkgICAgIEZXX1JFQURZX0RFTEFZX01TKTsKKysJ CWlmIChyZXQpCisrCQkJYnJlYWs7CisrCisrCQlyZXQgPSBjdnNfc2NoZWR1bGVfYW5kX3dhaXQo Y3R4LCBGV19SRUFEWV9ERUxBWV9NUywKKysJCQkJCSAgICBDTURfVElNRU9VVCk7CisrCQlzdGF0 dXMgPSAoY3R4LT53cV9yZXNwLnJlc3Auc3RhdGUgJgorKwkJCSAgSUNWU19ERVZfU1RBVEVfRE9X TkxPQUQpID8gMCA6IC1FSU5WQUw7CisrCQlicmVhazsKKysJY2FzZSBJQ1ZTX0ZXX0xPQURFUl9E QVRBOgorKwkJLyogUXVpcmsgZm9yIG9sZGVyIHByb3RvY29scyAqLworKwkJaWYgKGN0eC0+Y2Fw cy5wcm90b2NvbF92ZXJzaW9uX21ham9yID49IDIgJiYKKysJCSAgICBjdHgtPmNhcHMucHJvdG9j b2xfdmVyc2lvbl9taW5vciA+PSAyKSB7CisrCQkJY21kLT5jbWRfaWQgPSBjcHVfdG9fYmUxNihJ Q1ZTX0ZXX0xPQURFUl9EQVRBKTsKKysJCQlyZXQgPSBjdnNfd3JpdGVfaTJjKGN0eCwgY21kLCBs ZW4pOworKwkJfSBlbHNlIHsKKysJCQlyZXQgPSBjdnNfd3JpdGVfaTJjKGN0eCwgJmNtZC0+cGFy YW0sCisrCQkJCQkgICAgbGVuIC0gc2l6ZW9mKGNtZC0+Y21kX2lkKSk7CisrCQl9CisrCisrCQlp ZiAocmV0IDwgMCkKKysJCQlyZXR1cm4gcmV0OworKworKwkJcmV0ID0gY3ZzX3dhaXRfd2FrZV9v cl9zbGVlcChjdHgsIEZXX1JFQURZX0RFTEFZX01TLAorKwkJCQkJICAgICBGV19SRUFEWV9ERUxB WV9NUyk7CisrCQlpZiAocmV0KQorKwkJCWJyZWFrOworKworKwkJcmV0ID0gY3ZzX3NjaGVkdWxl X2FuZF93YWl0KGN0eCwgRldfUkVBRFlfREVMQVlfTVMsCisrCQkJCQkgICAgQ01EX1RJTUVPVVQp OworKwkJc3RhdHVzID0gY3R4LT53cV9yZXNwLnJlc3Auc3RhdGUgJgorKwkJCSAgSUNWU19ERVZf U1RBVEVfRVJST1IgPyAtRUlOVkFMIDogMDsKKysJCWJyZWFrOworKwljYXNlIElDVlNfRldfTE9B REVSX0VORDoKKysJCWNtZC0+Y21kX2lkID0gY3B1X3RvX2JlMTYoSUNWU19GV19MT0FERVJfRU5E KTsKKysJCXJldCA9IGN2c193cml0ZV9pMmMoY3R4LCBjbWQsIGxlbik7CisrCQlpZiAocmV0IDwg MCkKKysJCQlicmVhazsKKysKKysJCXJldCA9IGN2c193YWl0X3dha2Vfb3Jfc2xlZXAoY3R4LCBD TURfVElNRU9VVCwKKysJCQkJCSAgICAgRldfUkVBRFlfREVMQVlfTVMpOworKwkJaWYgKHJldCkK KysJCQlicmVhazsKKysKKysJCXJldCA9IGN2c19zY2hlZHVsZV9hbmRfd2FpdChjdHgsIEZXX1JF QURZX0RFTEFZX01TLAorKwkJCQkJICAgIENNRF9USU1FT1VUKTsKKysJCXN0YXR1cyA9ICEoY3R4 LT53cV9yZXNwLnJlc3Auc3RhdGUgJgorKwkJCSAgIElDVlNfREVWX1NUQVRFX0RPV05MT0FEKSA/ IDAgOiAtRUlOVkFMOworKwkJYnJlYWs7CisrCWRlZmF1bHQ6CisrCQlyZXQgPSAtRUlOVkFMOwor KwkJYnJlYWs7CisrCX0KKysKKysJaWYgKHJldCA8IDApCisrCQlyZXR1cm4gcmV0OworKworKwly ZXR1cm4gY3R4LT53cV9yZXNwLnN0YXR1cyA9IHN0YXR1czsKKyt9CisrCisrLyoqCisrICogY3Zz X3NldF9saW5rX293bmVyIC0gU3dpdGNoIENTSS0yIGxpbmsgb3duZXJzaGlwIGJldHdlZW4gaG9z dCBhbmQgZGV2aWNlCisrICogQGN0eDogQ1ZTIGRldmljZSBjb250ZXh0CisrICogQG93bmVyOiBE ZXNpcmVkIG93bmVyIChJQ1ZTX0NTSV9MSU5LX0hPU1Qgb3IgSUNWU19DU0lfTElOS19DVlMpCisr ICoKKysgKiBDYWxsZWQgZnJvbSBydW50aW1lIFBNIGNhbGxiYWNrcyB0byBjbGFpbSBvciByZWxl YXNlIHRoZSBDU0ktMiBsaW5rLgorKyAqIEFsc28gY2FsbGFibGUgZGlyZWN0bHkgZm9yIGVycm9y IHJlY292ZXJ5IHBhdGhzLgorKyAqCisrICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRp dmUgZXJybm8uCisrICovCisraW50IGN2c19zZXRfbGlua19vd25lcihzdHJ1Y3QgaWN2cyAqY3R4 LCBlbnVtIGljdnNfY3NpX2xpbmtfb3duZXIgb3duZXIpCisreworKwlzdHJ1Y3QgaWN2c19jbWQg Y21kID0geworKwkJLmNtZF9pZCA9IGNwdV90b19iZTE2KElDVlNfSE9TVF9TRU5TT1JfT1dORVIp LAorKwkJLnBhcmFtLnBhcmFtID0gb3duZXIsCisrCX07CisrCXNpemVfdCBjbWRfc2l6ZSA9IHNp emVvZihjbWQuY21kX2lkKSArIHNpemVvZihjbWQucGFyYW0ucGFyYW0pOworKworKwlndWFyZCht dXRleCkoJmN0eC0+bG9jayk7CisrCXJldHVybiBjdnNfc2VuZChjdHgsICZjbWQsIGNtZF9zaXpl KTsKKyt9CisrCisrLyoqCisrICogY3ZzX2NvbmZpZ3VyZV9kZXZfY2FwcyAtIENvbmZpZ3VyZSBk ZXZpY2UgY2FwYWJpbGl0eSBvd25lcnNoaXAgYml0cworKyAqIEBjdHg6IENWUyBkZXZpY2UgY29u dGV4dAorKyAqCisrICogVGVsbHMgdGhlIENWUyBkZXZpY2Ugd2hpY2ggb2YgaXRzIGZlYXR1cmVz IChwcml2YWN5IExFRCwgUkdCIGNhbWVyYQorKyAqIHBvd2VyLXVwLCB2aXNpb24gc2Vuc2luZykg YXJlIGNvbnRyb2xsZWQgYnkgdGhlIGhvc3QsIHRoZW4gc2VuZHMKKysgKiBTRVRfREVWX0hPU1Rf SUQuCisrICoKKysgKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBlcnJuby4KKysg Ki8KKytzdGF0aWMgaW50IGN2c19jb25maWd1cmVfZGV2X2NhcHMoc3RydWN0IGljdnMgKmN0eCkK Kyt7CisrCXN0cnVjdCBpY3ZzX2NtZCBjbWQgPSB7IC5jbWRfaWQgPSBjcHVfdG9fYmUxNihJQ1ZT X1NFVF9ERVZfSE9TVF9JRCkgfTsKKysJc2l6ZV90IHN6ID0gc2l6ZW9mKGNtZC5jbWRfaWQpICsg c2l6ZW9mKGNtZC5wYXJhbS5ob3N0X2lkKTsKKysKKysJaWYgKGN0eC0+cXVpcmtzICYgSUNWU19O T19DQVBTKQorKwkJcmV0dXJuIDA7CisrCisrCWlmIChjdHgtPnF1aXJrcyAmIElDVlNfSE9TVF9W SVNJT05fU0VOU0lORykKKysJCWNtZC5wYXJhbS5ob3N0X2lkIHw9IElDVlNfSE9TVF9JRF9WSVNJ T05fU0VOU0lORzsKKysJaWYgKGN0eC0+cXVpcmtzICYgSUNWU19IT1NUX1BSSVZfQ1RSTCkKKysJ CWNtZC5wYXJhbS5ob3N0X2lkIHw9IElDVlNfSE9TVF9JRF9QUklWQUNZX0xFRDsKKysJaWYgKGN0 eC0+cXVpcmtzICYgSUNWU19IT1NUX1NFTlNPUl9QV1JfQ1RSTCkKKysJCWNtZC5wYXJhbS5ob3N0 X2lkIHw9IElDVlNfSE9TVF9JRF9SR0JDQU1FUkFfUFdSVVA7CisrCisrCWd1YXJkKG11dGV4KSgm Y3R4LT5sb2NrKTsKKysJcmV0dXJuIGN2c19zZW5kKGN0eCwgJmNtZCwgc3opOworK30KKysKKysv KioKKysgKiBjdnNfY29yZV9wcm9iZSAtIFNoYXJlZCBwcm9iZSBwYXRoIGZvciBJMkMgJiBwbGF0 Zm9ybSBpbnN0YW50aWF0aW9uCisrICogQGRldjogUGFyZW50IGRldmljZQorKyAqIEBpMmM6IEky QyBjbGllbnQgKE5VTEwgZm9yIHBsYXRmb3JtIGRldmljZXMpCisrICoKKysgKiBEaXNjb3ZlcnMg SVBVLCBwYXJzZXMgQUNQSSByZXNvdXJjZXMsIHNldHMgdXAgR1BJT3MvSVJRcywgaW5pdGlhbGl6 ZXMKKysgKiBzdWItZGV2aWNlIChDU0kpIGFuZCBob3N0IGlkZW50aWZpZXIsIGFuZCBleHBvc2Vz IHN5c2ZzIGZpcm13YXJlIGludGVyZmFjZS4KKysgKgorKyAqIFJldHVybjogMCBvbiBzdWNjZXNz IG9yIG5lZ2F0aXZlIGVycm5vLgorKyAqLworK3N0YXRpYyBpbnQgY3ZzX2NvcmVfcHJvYmUoc3Ry dWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjKQorK3sKKysJc3RydWN0IHBj aV9kZXYgKmlwdSA9IE5VTEw7CisrCXN0cnVjdCBpY3ZzICpjdHg7CisrCWludCByZXQ7CisrCisr CS8qIExvY2F0ZSBJUFUgZGV2aWNlICovCisrCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyAhaXB1 ICYmIGlwdTZfcGNpX3RibFtpXS52ZW5kb3I7IGkrKykKKysJCWlwdSA9IHBjaV9nZXRfZGV2aWNl KGlwdTZfcGNpX3RibFtpXS52ZW5kb3IsCisrCQkJCSAgICAgaXB1Nl9wY2lfdGJsW2ldLmRldmlj ZSwgTlVMTCk7CisrCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyAhaXB1ICYmIGljdnNfaXB1N190 YmxbaV0udmVuZG9yOyBpKyspCisrCQlpcHUgPSBwY2lfZ2V0X2RldmljZShpY3ZzX2lwdTdfdGJs W2ldLnZlbmRvciwKKysJCQkJICAgICBpY3ZzX2lwdTdfdGJsW2ldLmRldmljZSwgTlVMTCk7Cisr CWlmICghaXB1KQorKwkJcmV0dXJuIC1FTk9ERVY7CisrCisrCXJldCA9IGlwdV9icmlkZ2VfaW5p dCgmaXB1LT5kZXYsIGlwdV9icmlkZ2VfcGFyc2Vfc3NkYik7CisrCWlmIChyZXQgPCAwKQorKwkJ Z290byBlcnJfcHV0X2lwdTsKKysKKysJaWYgKCFkZXZfZndub2RlKGRldikpIHsKKysJCXJldCA9 IC1FTlhJTzsKKysJCWdvdG8gZXJyX3B1dF9pcHU7CisrCX0KKysKKysJY3R4ID0gZGV2bV9remFs bG9jKGRldiwgc2l6ZW9mKCpjdHgpLCBHRlBfS0VSTkVMKTsKKysJaWYgKCFjdHgpIHsKKysJCXJl dCA9IC1FTk9NRU07CisrCQlnb3RvIGVycl9wdXRfaXB1OworKwl9CisrCisrCWN0eC0+aTJjX2Ns aWVudCA9IGkyYzsKKysKKysJcmV0ID0gZ3Bpb2RfY291bnQoZGV2LCBOVUxMKTsKKysJc3dpdGNo IChyZXQpIHsKKysJY2FzZSBJQ1ZTX0dQSU9fU1lOQzoKKysJCWN0eC0+cmVzID0gSUNWU19MSUdI VENBUDsKKysJCWJyZWFrOworKwljYXNlIElDVlNfR1BJT19BU1lOQzoKKysJCWN0eC0+cmVzID0g SUNWU19GVUxMQ0FQOworKwkJYnJlYWs7CisrCWRlZmF1bHQ6CisrCQlkZXZfZXJyKGRldiwgInVu ZXhwZWN0ZWQgR1BJTyBjb3VudCAlZFxuIiwgcmV0KTsKKysJCXJldCA9IC1FSU5WQUw7CisrCQln b3RvIGVycl9wdXRfaXB1OworKwl9CisrCisrCXJldCA9IGRldm1fYWNwaV9kZXZfYWRkX2RyaXZl cl9ncGlvcyhkZXYsCisrCQkJCQkgICAgIGN0eC0+cmVzID09IElDVlNfRlVMTENBUCA/CisrCQkJ CQkgICAgIGljdnNfYWNwaV9ncGlvcyA6CisrCQkJCQkgICAgIGljdnNfYWNwaV9sZ3Bpb3MpOwor KwlpZiAocmV0KSB7CisrCQlkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiZmFpbGVkIHRvIGFkZCBB Q1BJIEdQSU9zXG4iKTsKKysJCWdvdG8gZXJyX3B1dF9pcHU7CisrCX0KKysKKysJY3R4LT5yZXEg PSBkZXZtX2dwaW9kX2dldChkZXYsICJyZXEiLCBHUElPRF9PVVRfSElHSCk7CisrCWlmIChJU19F UlIoY3R4LT5yZXEpKSB7CisrCQlyZXQgPSBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihjdHgt PnJlcSksCisrCQkJCSAgICAiZmFpbGVkIHRvIGdldCByZXEgR1BJT1xuIik7CisrCQlnb3RvIGVy cl9wdXRfaXB1OworKwl9CisrCisrCWN0eC0+cmVzcCA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgInJl c3AiLCBHUElPRF9JTik7CisrCWlmIChJU19FUlIoY3R4LT5yZXNwKSkgeworKwkJcmV0ID0gZGV2 X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoY3R4LT5yZXNwKSwKKysJCQkJICAgICJmYWlsZWQgdG8g Z2V0IHJlc3AgR1BJT1xuIik7CisrCQlnb3RvIGVycl9wdXRfaXB1OworKwl9CisrCisrCWlmIChj dHgtPnJlcyA9PSBJQ1ZTX0ZVTExDQVApIHsKKysJCXN0cnVjdCBncGlvX2Rlc2MgKndha2U7Cisr CisrCQljdHgtPnJzdCA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgInJzdCIsIEdQSU9EX09VVF9ISUdI KTsKKysJCWlmIChJU19FUlIoY3R4LT5yc3QpKSB7CisrCQkJcmV0ID0gZGV2X2Vycl9wcm9iZShk ZXYsIFBUUl9FUlIoY3R4LT5yc3QpLAorKwkJCQkJICAgICJmYWlsZWQgdG8gZ2V0IHJzdCBHUElP XG4iKTsKKysJCQlnb3RvIGVycl9wdXRfaXB1OworKwkJfQorKworKwkJd2FrZSA9IGRldm1fZ3Bp b2RfZ2V0KGRldiwgIndha2UiLCBHUElPRF9JTik7CisrCQlpZiAoSVNfRVJSKHdha2UpKSB7Cisr CQkJcmV0ID0gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIod2FrZSksCisrCQkJCQkgICAgImZh aWxlZCB0byBnZXQgd2FrZSBHUElPXG4iKTsKKysJCQlnb3RvIGVycl9wdXRfaXB1OworKwkJfQor KworKwkJY3R4LT5pcnEgPSBncGlvZF90b19pcnEod2FrZSk7CisrCQlpZiAoY3R4LT5pcnEgPCAw KSB7CisrCQkJcmV0ID0gZGV2X2Vycl9wcm9iZShkZXYsIGN0eC0+aXJxLAorKwkJCQkJICAgICJm YWlsZWQgdG8gZ2V0IHdha2UgSVJRXG4iKTsKKysJCQlnb3RvIGVycl9wdXRfaXB1OworKwkJfQor KworKwkJcmV0ID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycShkZXYsIGN0eC0+aXJxLCBOVUxM LAorKwkJCQkJCWN2c19pcnFfaGFuZGxlciwKKysJCQkJCQlJUlFGX09ORVNIT1QgfCBJUlFGX05P X1NVU1BFTkQsCisrCQkJCQkJImN2c193YWtlIiwgY3R4KTsKKysJCWlmIChyZXQpIHsKKysJCQlk ZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiZmFpbGVkIHRvIHJlcXVlc3QgSVJRXG4iKTsKKysJCQln b3RvIGVycl9wdXRfaXB1OworKwkJfQorKwl9CisrCisrCXJldCA9IGRldm1fbXV0ZXhfaW5pdChk ZXYsICZjdHgtPmxvY2spOworKwlpZiAocmV0KQorKwkJZ290byBlcnJfcHV0X2lwdTsKKysKKysJ aW5pdF9jb21wbGV0aW9uKCZjdHgtPmNtZF9jb21wbGV0aW9uKTsKKysJaW5pdF93YWl0cXVldWVf aGVhZCgmY3R4LT5ob3N0d2FrZV9ldmVudCk7CisrCUlOSVRfREVMQVlFRF9XT1JLKCZjdHgtPndv cmssIGN2c19yZWN2KTsKKysKKysJaWYgKGkyYykgeworKwkJcmV0ID0gY3ZzX2h3X2luaXQoY3R4 KTsKKysJCWlmIChyZXQpIHsKKysJCQlkZXZfZXJyKGRldiwgIkhXIGluaXQgZmFpbGVkICglZClc biIsIHJldCk7CisrCQkJLyoKKysJCQkgKiBGYWxsYmFjayB0byBHUElPLW9ubHkgbW9kZS4KKysJ CQkgKiBTb21lIEJJT1Mgc2hvdyB0aGUgZGV2aWNlIG9uIHRoZSBJMkMgYnVzLCBob3dldmVyLAor KwkJCSAqIHRoZSBkZXZpY2UgaXMgbm90IGFjY2Vzc2libGUgdmlhIEkyQy4KKysJCQkgKi8KKysJ CQljdHgtPmkyY19jbGllbnQgPSBOVUxMOworKwkJCWdvdG8gZmFpbF9pMmM7CisrCQl9CisrCisr CQlyZXQgPSBjdnNfZ2V0X2RldmljZV9jYXBzKGN0eCwgJmN0eC0+Y2Fwcyk7CisrCQlpZiAocmV0 KSB7CisrCQkJZGV2X2Vycl9wcm9iZShkZXYsIHJldCwgImdldCBjYXBzIGZhaWxlZFxuIik7Cisr CQkJZ290byBlcnJfcHV0X2lwdTsKKysJCX0KKysKKysJCXJldCA9IGN2c19jb25maWd1cmVfZGV2 X2NhcHMoY3R4KTsKKysJCWlmIChyZXQpIHsKKysJCQlkZXZfZXJyX3Byb2JlKGRldiwgcmV0LAor KwkJCQkgICAgICAiY29uZmlndXJlIGRldiBjYXBzIGZhaWxlZFxuIik7CisrCQkJZ290byBlcnJf cHV0X2lwdTsKKysJCX0KKysJfQorKworK2ZhaWxfaTJjOgorKwlyZXQgPSBjdnNfY3NpX2luaXQo Y3R4LCBkZXYsIGkyYyk7CisrCWlmIChyZXQpIHsKKysJCWRldl9lcnJfcHJvYmUoZGV2LCByZXQs ICJDU0kgaW5pdCBmYWlsZWRcbiIpOworKwkJZ290byBlcnJfcHV0X2lwdTsKKysJfQorKworKwlk ZXZfc2V0X2RydmRhdGEoZGV2LCBjdHgpOworKwlwbV9ydW50aW1lX3NldF9hdXRvc3VzcGVuZF9k ZWxheShkZXYsIDEwMDApOworKwlwbV9ydW50aW1lX3VzZV9hdXRvc3VzcGVuZChkZXYpOworKwlw bV9ydW50aW1lX2VuYWJsZShkZXYpOworKwlwbV9ydW50aW1lX2lkbGUoZGV2KTsKKysKKysJLyoK KysJICogQ3JlYXRlIGEgUE0gcnVudGltZSBkZXZpY2UgbGluayB3aXRoIElQVSBhcyBjb25zdW1l ciBhbmQgQ1ZTIGFzCisrCSAqIHN1cHBsaWVyLiBXaGVuIHRoZSBJUFUgcnVudGltZS1yZXN1bWVz IHRvIHN0YXJ0IHN0cmVhbWluZywgdGhlIFBNCisrCSAqIGZyYW1ld29yayBhdXRvbWF0aWNhbGx5 IHJlc3VtZXMgQ1ZTIGZpcnN0LCB0cmlnZ2VyaW5nCisrCSAqIGN2c19ydW50aW1lX3Jlc3VtZSgp IHdoaWNoIGhhbmRzIENTSS0yIGxpbmsgb3duZXJzaGlwIHRvIHRoZSBob3N0LgorKwkgKi8KKysJ Y3R4LT5pcHVfbGluayA9IGRldmljZV9saW5rX2FkZCgmaXB1LT5kZXYsIGRldiwKKysJCQkJCURM X0ZMQUdfUE1fUlVOVElNRSB8CisrCQkJCQlETF9GTEFHX1JQTV9BQ1RJVkUgfAorKwkJCQkJRExf RkxBR19TVEFURUxFU1MpOworKwlpZiAoIWN0eC0+aXB1X2xpbmspIHsKKysJCWRldl9lcnIoZGV2 LCAiSVBVIGRldmljZSBsaW5rIGZhaWxlZFxuIik7CisrCQlyZXQgPSAtRU5PREVWOworKwkJZ290 byBlcnJfY3NpX3JlbW92ZTsKKysJfQorKworKwlpZiAoaGFzX2FjcGlfY29tcGFuaW9uKGRldikp CisrCQlhY3BpX2Rldl9jbGVhcl9kZXBlbmRlbmNpZXMoQUNQSV9DT01QQU5JT04oZGV2KSk7Cisr CisrCXB1dF9kZXZpY2UoJmlwdS0+ZGV2KTsKKysKKysJcmV0dXJuIDA7CisrCisrZXJyX2NzaV9y ZW1vdmU6CisrCWlmIChjdHgtPmlwdV9saW5rKQorKwkJZGV2aWNlX2xpbmtfZGVsKGN0eC0+aXB1 X2xpbmspOworKwljdnNfY3NpX3JlbW92ZShjdHgpOworKwlwbV9ydW50aW1lX2RvbnRfdXNlX2F1 dG9zdXNwZW5kKGRldik7CisrCXBtX3J1bnRpbWVfZGlzYWJsZShkZXYpOworKwlwbV9ydW50aW1l X3NldF9zdXNwZW5kZWQoZGV2KTsKKysKKytlcnJfcHV0X2lwdToKKysJcHV0X2RldmljZSgmaXB1 LT5kZXYpOworKworKwlyZXR1cm4gcmV0OworK30KKysKKysvKioKKysgKiBjdnNfcHJvYmUgLSBJ MkMgZHJpdmVyIHByb2JlIGVudHJ5CisrICogQGkyYzogSTJDIGNsaWVudAorKyAqCisrICogUmV0 dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUgZXJybm8uCisrICovCisrc3RhdGljIGludCBj dnNfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmkyYykKKyt7CisrCXJldHVybiBjdnNfY29yZV9w cm9iZSgmaTJjLT5kZXYsIGkyYyk7CisrfQorKworKy8qKgorKyAqIGN2c19jb3JlX3JlbW92ZSAt IFNoYXJlZCByZW1vdmUgbG9naWMKKysgKiBAZGV2OiBEZXZpY2UKKysgKi8KKytzdGF0aWMgdm9p ZCBjdnNfY29yZV9yZW1vdmUoc3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJc3RydWN0IGljdnMg KmN0eCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKworKwljYW5jZWxfZGVsYXllZF93b3JrX3N5 bmMoJmN0eC0+d29yayk7CisrCWN2c19jc2lfcmVtb3ZlKGN0eCk7CisrCisrCWlmIChjdHgtPmlw dV9saW5rKQorKwkJZGV2aWNlX2xpbmtfZGVsKGN0eC0+aXB1X2xpbmspOworKworKwlwbV9ydW50 aW1lX3B1dF9ub2lkbGUoZGV2KTsKKysJcG1fcnVudGltZV9kaXNhYmxlKGRldik7CisrCXBtX3J1 bnRpbWVfc2V0X3N1c3BlbmRlZChkZXYpOworKworKwljdnNfcmVzZXQoY3R4KTsKKyt9CisrCisr LyoqCisrICogY3ZzX3JlbW92ZSAtIEkyQyBkcml2ZXIgcmVtb3ZlCisrICogQGNsaWVudDogSTJD IGNsaWVudAorKyAqLworK3N0YXRpYyB2b2lkIGN2c19yZW1vdmUoc3RydWN0IGkyY19jbGllbnQg KmNsaWVudCkKKyt7CisrCWN2c19jb3JlX3JlbW92ZSgmY2xpZW50LT5kZXYpOworK30KKysKKysv KioKKysgKiBjdnNfc3VzcGVuZCAtIFN5c3RlbSBzdXNwZW5kIGNhbGxiYWNrCisrICogQGRldjog RGV2aWNlCisrICoKKysgKiBSZXR1cm46IDAuCisrICovCisrc3RhdGljIGludCBfX21heWJlX3Vu dXNlZCBjdnNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlzdHJ1Y3QgaWN2cyAq Y3R4ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisrCisrCWNhbmNlbF9kZWxheWVkX3dvcmtfc3lu YygmY3R4LT53b3JrKTsKKysKKysJcmV0dXJuIDA7CisrfQorKworKy8qKgorKyAqIGN2c19yZXN1 bWUgLSBTeXN0ZW0gcmVzdW1lIGNhbGxiYWNrCisrICogQGRldjogRGV2aWNlCisrICoKKysgKiBS ZS12YWxpZGF0ZXMgSTJDIGxpbmsgcHJlZml4IGFuZCByZS1zZW5kcyBob3N0IGlkIGlmIHRyYW5z cG9ydCBhdmFpbGFibGUuCisrICoKKysgKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBuZWdhdGl2 ZSBlcnJubyBpZiBJMkMgY2hlY2sgZmFpbHMuCisrICovCisrc3RhdGljIGludCBfX21heWJlX3Vu dXNlZCBjdnNfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKKyt7CisrCXN0cnVjdCBpY3ZzICpj dHggPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysJaW50IHJldDsKKysKKysJaWYgKGN0eC0+aTJj X2NsaWVudCkgeworKwkJcmV0ID0gY3ZzX2h3X2luaXQoY3R4KTsKKysJCWlmIChyZXQpCisrCQkJ cmV0dXJuIHJldDsKKysJCXJldHVybiBjdnNfY29uZmlndXJlX2Rldl9jYXBzKGN0eCk7CisrCX0K KysKKysJcmV0dXJuIDA7CisrfQorKworKy8qKgorKyAqIGN2c19ydW50aW1lX3Jlc3VtZSAtIFJ1 bnRpbWUgUE0gcmVzdW1lOiBjbGFpbSBDU0ktMiBsaW5rIG93bmVyc2hpcAorKyAqIEBkZXY6IERl dmljZQorKyAqCisrICogVHJpZ2dlcmVkIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgSVBVIChjb25z dW1lcikgcnVudGltZS1yZXN1bWVzLCBiZWNhdXNlCisrICogYSBETF9GTEFHX1BNX1JVTlRJTUUg ZGV2aWNlIGxpbmsgbWFrZXMgQ1ZTIHRoZSBzdXBwbGllci4gVHJhbnNmZXJzIENTSS0yCisrICog bGluayBvd25lcnNoaXAgdG8gdGhlIGhvc3Qgc28gdGhlIElQVSBjYW4gc3RhcnQgcmVjZWl2aW5n IHNlbnNvciBmcmFtZXMuCisrICoKKysgKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBuZWdhdGl2 ZSBlcnJuby4KKysgKi8KKytzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGN2c19ydW50aW1lX3Jl c3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlzdHJ1Y3QgaWN2cyAqY3R4ID0gZGV2X2dl dF9kcnZkYXRhKGRldik7CisrCisrCXJldHVybiBjdnNfc2V0X2xpbmtfb3duZXIoY3R4LCBJQ1ZT X0NTSV9MSU5LX0hPU1QpOworK30KKysKKysvKioKKysgKiBjdnNfcnVudGltZV9zdXNwZW5kIC0g UnVudGltZSBQTSBzdXNwZW5kOiByZWxlYXNlIENTSS0yIGxpbmsgb3duZXJzaGlwCisrICogQGRl djogRGV2aWNlCisrICoKKysgKiBDYWxsZWQgd2hlbiB0aGUgc3RyZWFtaW5nIHJlZmVyZW5jZSBp cyBkcm9wcGVkIGJ5IGN2c19jc2lfZGlzYWJsZV9zdHJlYW1zCisrICogdmlhIHBtX3J1bnRpbWVf cHV0X2F1dG9zdXNwZW5kLiBSZXR1cm5zIENTSS0yIGxpbmsgb3duZXJzaGlwIHRvIENWUyBmaXJt d2FyZS4KKysgKgorKyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIGVycm5vLgor KyAqLworK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgY3ZzX3J1bnRpbWVfc3VzcGVuZChzdHJ1 Y3QgZGV2aWNlICpkZXYpCisreworKwlzdHJ1Y3QgaWN2cyAqY3R4ID0gZGV2X2dldF9kcnZkYXRh KGRldik7CisrCisrCXJldHVybiBjdnNfc2V0X2xpbmtfb3duZXIoY3R4LCBJQ1ZTX0NTSV9MSU5L X0NWUyk7CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBfX21heWJlX3Vu dXNlZCBjdnNfcG1fb3BzID0geworKwlTRVRfU1lTVEVNX1NMRUVQX1BNX09QUyhjdnNfc3VzcGVu ZCwgY3ZzX3Jlc3VtZSkKKysJU0VUX1JVTlRJTUVfUE1fT1BTKGN2c19ydW50aW1lX3N1c3BlbmQs IGN2c19ydW50aW1lX3Jlc3VtZSwgTlVMTCkKKyt9OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg YWNwaV9kZXZpY2VfaWQgaW50ZWxfY3ZzX2FjcGlfbWF0Y2hbXSA9IHsKKysJeyAiSU5UQzEwREUi IH0sIC8qIExOTCAqLworKwl7ICJJTlRDMTBFMCIgfSwgLyogQVJMICovCisrCXsgIklOVEMxMEUx IiB9LCAvKiBQVEwgKi8KKysJeyAiSU5UQzEwRkEiIH0sIC8qIE5WTCAqLworKwl7IH0KKyt9Owor K01PRFVMRV9ERVZJQ0VfVEFCTEUoYWNwaSwgaW50ZWxfY3ZzX2FjcGlfbWF0Y2gpOworKworK3N0 YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBjdnNfZHJpdmVyID0geworKwkuZHJpdmVyID0geworKwkJ Lm5hbWUgPSAiaW50ZWxfY3ZzIiwKKysJCS5hY3BpX21hdGNoX3RhYmxlID0gaW50ZWxfY3ZzX2Fj cGlfbWF0Y2gsCisrCQkucG0gPSBwbV9wdHIoJmN2c19wbV9vcHMpLAorKwl9LAorKwkucHJvYmUg PSBjdnNfcHJvYmUsCisrCS5yZW1vdmUgPSBjdnNfcmVtb3ZlLAorK307CisrCisrc3RhdGljIGlu dCBjdnNfcGxhdGZvcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7Cisr CXJldHVybiBjdnNfY29yZV9wcm9iZSgmcGRldi0+ZGV2LCBOVUxMKTsKKyt9CisrCisrc3RhdGlj IHZvaWQgY3ZzX3BsYXRmb3JtX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQor K3sKKysJY3ZzX2NvcmVfcmVtb3ZlKCZwZGV2LT5kZXYpOworK30KKysKKysvKgorKyAqIFBsYXRm b3JtIGRyaXZlciBzdHJ1Y3R1cmUuCisrICoKKysgKiBTb21lIHBsYXRmb3JtcyBtYXkgaW5zdGFu dGlhdGUgdGhlIENWUyBkZXZpY2UgYXMgYSBwbGF0Zm9ybSBkZXZpY2UKKysgKiB3aXRob3V0IEky QyBzdXBwb3J0LiBUaGlzIGRyaXZlciBiaW5kaW5nIGFsbG93cyBzdWNoIHBsYXRmb3JtcyB0byB1 c2UgdGhlCisrICogQ1ZTIGNvcmUgZnVuY3Rpb25hbGl0eSAoR1BJT3MsIENTSSBzdWItZGV2aWNl KSB3aXRob3V0IEkyQy4KKysgKi8KKytzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBjdnNf cGxhdGZvcm1fZHJpdmVyID0geworKwkuZHJpdmVyID0geworKwkJLm5hbWUgPSAiY3ZzX3BsYXRm b3JtIiwKKysJCS5hY3BpX21hdGNoX3RhYmxlID0gaW50ZWxfY3ZzX2FjcGlfbWF0Y2gsCisrCQku cG0gPSBwbV9wdHIoJmN2c19wbV9vcHMpLAorKwl9LAorKwkucHJvYmUgPSBjdnNfcGxhdGZvcm1f cHJvYmUsCisrCS5yZW1vdmUgPSBjdnNfcGxhdGZvcm1fcmVtb3ZlLAorK307CisrCisrLyoqCisr ICogY3ZzX2luaXQgLSBNb2R1bGUgaW5pdCByZWdpc3RlcmluZyBJMkMgYW5kIHBsYXRmb3JtIGRy aXZlcnMKKysgKgorKyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIGVycm5vLgor KyAqLworK3N0YXRpYyBpbnQgX19pbml0IGN2c19pbml0KHZvaWQpCisreworKwlpbnQgcmV0Owor KworKwlyZXQgPSBpMmNfYWRkX2RyaXZlcigmY3ZzX2RyaXZlcik7CisrCWlmIChyZXQpCisrCQly ZXR1cm4gcmV0OworKworKwlyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJmN2c19wbGF0 Zm9ybV9kcml2ZXIpOworKwlpZiAocmV0KSB7CisrCQlpMmNfZGVsX2RyaXZlcigmY3ZzX2RyaXZl cik7CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisrCXJldHVybiAwOworK30KKysKKysvKioKKysg KiBjdnNfZXhpdCAtIE1vZHVsZSBleGl0IHVucmVnaXN0ZXJpbmcgZHJpdmVycworKyAqLworK3N0 YXRpYyB2b2lkIF9fZXhpdCBjdnNfZXhpdCh2b2lkKQorK3sKKysJcGxhdGZvcm1fZHJpdmVyX3Vu cmVnaXN0ZXIoJmN2c19wbGF0Zm9ybV9kcml2ZXIpOworKwlpMmNfZGVsX2RyaXZlcigmY3ZzX2Ry aXZlcik7CisrfQorK21vZHVsZV9pbml0KGN2c19pbml0KTsKKyttb2R1bGVfZXhpdChjdnNfZXhp dCk7CisrCisrTU9EVUxFX0lNUE9SVF9OUygiSU5URUxfSVBVX0JSSURHRSIpOworK01PRFVMRV9B VVRIT1IoIk1pZ3VlbCBWYWRpbGxvIDxtaWd1ZWwudmFkaWxsb0BpbnRlbC5jb20+Iik7CisrTU9E VUxFX0RFU0NSSVBUSU9OKCJJbnRlbCBWaXNpb24gU2Vuc2luZyBDb250cm9sbGVyIGRyaXZlciIp OworK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK2RpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2ky Yy9jdnMvaWN2cy5oIGIvZHJpdmVycy9tZWRpYS9pMmMvY3ZzL2ljdnMuaAorbmV3IGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uMTdiZWIwOTIwZGQyCistLS0gL2Rldi9udWxs CisrKysgYi9kcml2ZXJzL21lZGlhL2kyYy9jdnMvaWN2cy5oCitAQCAtMCwwICsxLDQ5MyBAQAor Ky8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8KKysvKgorKyAqIENv cHlyaWdodCAoYykgMjAyNiBJbnRlbCBDb3Jwb3JhdGlvbgorKyAqLworKworKyNpZm5kZWYgX0lD VlNfSAorKyNkZWZpbmUgX0lDVlNfSAorKworKyNpbmNsdWRlIDxsaW51eC9iaXRzLmg+CisrI2lu Y2x1ZGUgPGxpbnV4L2NvbXBsZXRpb24uaD4KKysjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKysj aW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CisrI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cisr I2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KKysKKysjaW5jbHVkZSA8bWVkaWEvbWVkaWEtZW50aXR5 Lmg+CisrI2luY2x1ZGUgPG1lZGlhL3Y0bDItY3RybHMuaD4KKysjaW5jbHVkZSA8bWVkaWEvdjRs Mi1zdWJkZXYuaD4KKysKKysvKgorKyAqIFBDSSBkZXZpY2UgSURzIGZvciBhbGwgSVBVIGdlbmVy YXRpb25zIHRoYXQgY28tZXhpc3Qgd2l0aCB0aGUgQ1ZTIGJyaWRnZS4KKysgKiBJUFU3ICgweDY0 NWQpIGlzIHNoYXJlZCBieSBNVEwgYW5kIExOTDsgSVBVN1A1ICgweGIwNWQpIGlzIHNoYXJlZCBi eQorKyAqIEFSTCBhbmQgUFRMLiBUaGVzZSBhcmUgbm90IHlldCBpbiB0aGUgc2hhcmVkIGlwdTYt cGNpLXRhYmxlIHNvIHRoZXkgYXJlCisrICogbGlzdGVkIGhlcmUgYWxvbmdzaWRlIHRoZSBJUFU2 IGZhbWlseSBmb3IgcHJvYmUtdGltZSBJUFUgZGlzY292ZXJ5LgorKyAqLworK3N0cnVjdCBncGlv X2Rlc2M7Cisrc3RydWN0IGkyY19jbGllbnQ7CisrCisrLyoKKysgKiBHUElPIHJlc291cmNlIGNv dW50cyAoQUNQSSBlbnVtZXJhdGVkKS4KKysgKgorKyAqIDQtR1BJTyBjb25maWd1cmF0aW9uIGhh cyBhIHdha2UgSVJRIGFuZCBzdXBwb3J0cyBhc3luY2hyb25vdXMgbWVzc2FnaW5nLgorKyAqIDIt R1BJTyBjb25maWd1cmF0aW9uIGhhcyBubyBJUlEsIHNvIGNvbW11bmljYXRpb24gaXMgc3luY2hy b25vdXMgb25seS4KKysgKi8KKysjZGVmaW5lIElDVlNfR1BJT19BU1lOQwk0CisrI2RlZmluZSBJ Q1ZTX0dQSU9fU1lOQwkyCisrCisrLyogRmlybXdhcmUgcmVzcG9uc2UgcHJlZml4IChvcHRpb25h bCwgZm9yIHByb3RvY29sIHJldmlzaW9uIDIueCBvciBuZXdlcikgKi8KKysjZGVmaW5lIElDVlNf UFJFRklYX1ZBTAkweENBRkVCMEJBCisrCisrLyoKKysgKiBDU0kgYnJpZGdlIHN1Yi1kZXZpY2Ug ZGVmaW5pdGlvbnMKKysgKi8KKysvKioKKysgKiBlbnVtIGljdnNfY3NpX2NtZF9pZCAtIExvdy1s ZXZlbCBDU0kgYnJpZGdlIGNvbW1hbmQgaWRlbnRpZmllcnMKKysgKgorKyAqIFRoZXNlIG51bWVy aWMgSURzIGFyZSBwYXJ0IG9mIHRoZSBsZWdhY3kgQ1NJLXNpZGUgcHJvdG9jb2wgbm90IG1hcHBl ZAorKyAqIGRpcmVjdGx5IHRvIHRoZSBoaWdoZXIgbGV2ZWwgZmlybXdhcmUgb3Bjb2RlcyBpbiBl bnVtIGljdnNfY29tbWFuZC4gT25seQorKyAqIGEgbWluaW1hbCBzdWJzZXQgaXMgcHJlc2VudGx5 IGlzc3VlZC9oYW5kbGVkIGJ5IHRoZSBkcml2ZXIuIE90aGVycyBhcmUKKysgKiByZXNlcnZlZCBm b3IgZnV0dXJlIGV4cGFuc2lvbiBvZiB0aGUgQ1NJIGJyaWRnZSBmZWF0dXJlIHNldC4KKysgKgor KyAqIEBJQ1ZTX0NTSV9TRVRfT1dORVI6ICAgICBTZXQgQ1NJIHNlbnNvciBvd25lcnNoaXAgYmV0 d2VlbiBob3N0IGFuZCBDVlMKKysgKiBASUNWU19DU0lfU0VUX0NPTkY6ICAgICAgQXBwbHkgQ1NJ IGxpbmsgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzCisrICogQElDVlNfQ1NJX1BSSVZBQ1lfTk9U SUY6IE5vdGlmeSBob3N0IG9mIGEgcHJpdmFjeSBzdGF0ZSB0cmFuc2l0aW9uCisrICovCisrZW51 bSBpY3ZzX2NzaV9jbWRfaWQgeworKwlJQ1ZTX0NTSV9TRVRfT1dORVIgPSAwLAorKwlJQ1ZTX0NT SV9TRVRfQ09ORiA9IDIsCisrCUlDVlNfQ1NJX1BSSVZBQ1lfTk9USUYgPSA2LAorK307CisrCisr LyoqCisrICogZW51bSBpY3ZzX2NzaV9saW5rX293bmVyIC0gQ1NJLTIgbGluayAvIHNlbnNvciBv d25lcnNoaXAKKysgKgorKyAqIE93bmVyc2hpcCByZWZsZWN0cyB3aGljaCBlbmRwb2ludCBjdXJy ZW50bHkgY29udHJvbHMgdGhlIGF0dGFjaGVkIGltYWdlCisrICogc2Vuc29yIG92ZXIgdGhlIENT SS0yIGxpbmsuIFRyYW5zaXRpb25zIG1heSBnYXRlIHN0cmVhbWluZyBvciByZWNvbmZpZ3VyZQor KyAqIGxpbmsgcGFyYW1ldGVycy4gVGhlIGhvc3QgcmVxdWVzdHMgb3duZXJzaGlwIGNoYW5nZXMg dmlhIHByb3RvY29sIG9wY29kZXMKKysgKiBhbmQgbWF5IG5lZWQgdG8gYXNzZXJ0IEdQSU8gc2ln bmFscyBvbiBwbGF0Zm9ybXMgd2l0aG91dCBmdWxsIGNhcGFiaWxpdHkuCisrICoKKysgKiBASUNW U19DU0lfTElOS19IT1NUOiBIb3N0IChMaW51eCkgb3ducyB0aGUgc2Vuc29yIGFuZCBtYXkgc3Rh cnQgc3RyZWFtaW5nCisrICogQElDVlNfQ1NJX0xJTktfQ1ZTOiAgQ1ZTIGZpcm13YXJlIG93bnMg dGhlIHNlbnNvciAoaG9zdCBtdXN0IG5vdCBzdHJlYW0pCisrICovCisrZW51bSBpY3ZzX2NzaV9s aW5rX293bmVyIHsKKysJSUNWU19DU0lfTElOS19IT1NULAorKwlJQ1ZTX0NTSV9MSU5LX0NWUywK Kyt9OworKworKy8qKgorKyAqIGVudW0gaWN2c19jc2lfcHJpdmFjeV9zdGF0dXMgLSBSZXBvcnRl ZCBwcml2YWN5IHN0YXRlCisrICoKKysgKiBSZWZsZWN0cyB1c2VyIHByaXZhY3kgKGUuZy4gY2Ft ZXJhIExFRCBhc3NlcnRpb24gYW5kIHN0cmVhbSBnYXRpbmcpLiBUaGUKKysgKiBNQVggdmFsdWUg aXMgYSBzZW50aW5lbCB1c2VkIGZvciBib3VuZHMgY2hlY2tpbmcgYW5kIGlzIG5vdCBhIHJlYWwg c3RhdGUuCisrICoKKysgKiBASUNWU19DU0lfUFJJVkFDWV9PRkY6IFByaXZhY3kgbm90IGFzc2Vy dGVkIChMRUQgb2ZmLCBzdHJlYW1pbmcgcGVybWl0dGVkKQorKyAqIEBJQ1ZTX0NTSV9QUklWQUNZ X09OOiAgUHJpdmFjeSBhc3NlcnRlZCAoTEVEIG9uIGFuZC9vciBzdHJlYW0gZ2F0ZWQpCisrICog QElDVlNfQ1NJX1BSSVZBQ1lfTUFYOiBTZW50aW5lbDsgbm90IGEgdmFsaWQgb3BlcmF0aW9uYWwg dmFsdWUKKysgKi8KKytlbnVtIGljdnNfY3NpX3ByaXZhY3lfc3RhdHVzIHsKKysJSUNWU19DU0lf UFJJVkFDWV9PRkYsCisrCUlDVlNfQ1NJX1BSSVZBQ1lfT04sCisrCUlDVlNfQ1NJX1BSSVZBQ1lf TUFYCisrfTsKKysKKysvKioKKysgKiBlbnVtIGljdnNfY3NpX3BhZHMgLSBNZWRpYSBwYWRzIGV4 cG9zZWQgYnkgdGhlIENWUyBzdWItZGV2aWNlCisrICoKKysgKiBUaGUgYnJpZGdlIHByZXNlbnRz IGEgc2luZ2xlIHNpbmsgKGZyb20gdGhlIHJlbW90ZSBzZW5zb3IpIGFuZCBhIHNpbmdsZQorKyAq IHNvdXJjZSAodG93YXJkIHRoZSByZXN0IG9mIHRoZSBtZWRpYSBncmFwaCAvIGNvbnN1bWVycyku IE5VTV9QQURTIGlzIHVzZWQKKysgKiBmb3Igc2l6aW5nIGFycmF5cyBhbmQgaXRlcmF0aW9uOyBp dCBpcyBub3QgYSByZWFsIHBhZCBpbmRleC4KKysgKgorKyAqIEBJQ1ZTX0NTSV9QQURfU0lOSzog ICBTaW5rIHBhZCByZWNlaXZpbmcgZnJhbWVzIGZyb20gcmVtb3RlIHNlbnNvcgorKyAqIEBJQ1ZT X0NTSV9QQURfU09VUkNFOiBTb3VyY2UgcGFkIGVtaXR0aW5nIGZyYW1lcyB0byBkb3duc3RyZWFt IGVudGl0aWVzCisrICogQElDVlNfQ1NJX05VTV9QQURTOiAgIENvdW50IHNlbnRpbmVsIChhcnJh eSBzaXplIC8gaXRlcmF0aW9uIGJvdW5kKQorKyAqLworK2VudW0gaWN2c19jc2lfcGFkcyB7Cisr CUlDVlNfQ1NJX1BBRF9TSU5LLAorKwlJQ1ZTX0NTSV9QQURfU09VUkNFLAorKwlJQ1ZTX0NTSV9O VU1fUEFEUworK307CisrCisrLyoKKysgKiBDb3JlIGRyaXZlciBzdHJ1Y3R1cmVzIGFuZCBmdW5j dGlvbnMgdXNlZCBieSBib3RoIEkyQyBhbmQgcGxhdGZvcm0gbW9kZXMKKysgKi8KKysKKysvKioK KysgKiBET0M6IENWUyBkZXZpY2UgcXVpcmsgZmxhZ3MKKysgKgorKyAqIFRoZXNlIGJpdCBmbGFn IG1hY3JvcyBkZXNjcmliZSBwZXItZGV2aWNlIGJlaGF2aW9yYWwgYWRqdXN0bWVudHMgYXBwbGll ZAorKyAqIGFmdGVyIFZJRC9QSUQgbWF0Y2hpbmcgKHNlZSBjdnNfaTJjX2NoZWNrKCkgYW5kIGN2 c19hcHBseV9xdWlya3MoKSkuIFRoZXkKKysgKiBhbGxvdyB0aGUgZHJpdmVyIHRvIHNlbGVjdGl2 ZWx5IGFsdGVyIGxvZ2ljIHBhdGhzIGZvciBmaXJtd2FyZSAvIGhhcmR3YXJlCisrICogdmFyaWFu dHMgd2l0aG91dCBpbnRyb2R1Y2luZyBoYXJkLWNvZGVkIGNvbmRpdGlvbmFscyBhdCBlYWNoIGNh bGwgc2l0ZS4KKysgKgorKyAqIEBJQ1ZTX05PX01JUElfQ09ORklHOiBEZXZpY2UgZmlybXdhcmUg cGVyZm9ybXMgaXRzIG93biBNSVBJIGxpbmsgc2V0dXA7CisrICogICAgICAgICAgICAgICAgICAg ICAgIHNraXAgc2VuZGluZyBIT1NUX1NFVF9NSVBJX0NPTkZJRy4KKysgKiBASUNWU19TS0lQX0ZX X1JFU0VUOiAgU2tpcCBpc3N1aW5nIGEgcG9zdCBmaXJtd2FyZS11cGRhdGUgcmVzZXQgc2VxdWVu Y2UuCisrICogQElDVlNfTk9fQ0FQUzogICAgICAgIERldmljZSBmaXJtd2FyZSBkb2VzIG5vdCBz dXBwb3J0IEdFVF9ERVZfQ0FQQUJJTElUWTsKKysgKiAgICAgICAgICAgICAgICAgICAgICAgc2tp cCBjYXBhYmlsaXR5IHF1ZXJ5IGFuZCB0cmVhdCBjYXBzIGFzIHVuc3VwcG9ydGVkLgorKyAqIEBJ Q1ZTX0ZXX0JVRl9TSVpFXzI1NjogRmlybXdhcmUgZXhwZWN0cyBjaHVuayB0cmFuc2ZlciBidWZm ZXIgc2l6ZSBvZiAyNTYKKysgKiAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzIChvdmVycmlk ZSBkZWZhdWx0cyBpZiB0aGV5IGRpZmZlcikuCisrICogQElDVlNfRldfSEVBREVSX1NJWkVfMjU2 OiBGaXJtd2FyZSBoZWFkZXIgc2l6ZSBmaXhlZCBhdCAyNTYgYnl0ZXMgb2Zmc2V0CisrICogICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3Igc3RhcnQgb2YgcGF5bG9hZCBkYXRhLgorKyAqIEBJ Q1ZTX0hPU1RfU0VOU09SX1BXUl9DVFJMOiBIb3N0IG11c3QgY29udHJvbCBzZW5zb3IgcG93ZXIg c2VxdWVuY2luZy4KKysgKiBASUNWU19IT1NUX1BSSVZfQ1RSTDogSG9zdCBvd25zIHByaXZhY3kg TEVEIGdhdGluZy4KKysgKiBASUNWU19IT1NUX1ZJU0lPTl9TRU5TSU5HOiBIb3N0IGVuYWJsZXMg dmlzaW9uIHNlbnNpbmcgY2FwYWJpbGl0eSBiaXQKKysgKiBASUNWU19OT19GV19VUERBVEU6ICAg RGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgZmlybXdhcmUgdXBkYXRlLgorKyAqLworKyNkZWZpbmUg SUNWU19OT19NSVBJX0NPTkZJRwkJQklUKDApCisrI2RlZmluZSBJQ1ZTX1NLSVBfRldfUkVTRVQJ CUJJVCgxKQorKyNkZWZpbmUgSUNWU19OT19DQVBTCQkJQklUKDIpCisrI2RlZmluZSBJQ1ZTX0ZX X0JVRl9TSVpFXzI1NgkJQklUKDMpCisrI2RlZmluZSBJQ1ZTX0ZXX0hFQURFUl9TSVpFXzI1NgkJ QklUKDQpCisrI2RlZmluZSBJQ1ZTX0hPU1RfU0VOU09SX1BXUl9DVFJMCUJJVCg1KQorKyNkZWZp bmUgSUNWU19IT1NUX1BSSVZfQ1RSTAkJQklUKDYpCisrI2RlZmluZSBJQ1ZTX0hPU1RfVklTSU9O X1NFTlNJTkcJQklUKDcpCisrI2RlZmluZSBJQ1ZTX05PX0ZXX1VQREFURQkJQklUKDgpCisrCisr LyoqCisrICogc3RydWN0IGljdnNfZGV2aWNlX3F1aXJrIC0gRGV2aWNlLXNwZWNpZmljIHF1aXJr IGVudHJ5CisrICogQHZpZDogVmVuZG9yIElECisrICogQHBpZDogUHJvZHVjdCBJRAorKyAqIEBx dWlya3M6IFF1aXJrIGZsYWdzIGZvciB0aGlzIGRldmljZQorKyAqLworK3N0cnVjdCBpY3ZzX2Rl dmljZV9xdWlyayB7CisrCXUxNiB2aWQ7CisrCXUxNiBwaWQ7CisrCXVuc2lnbmVkIGxvbmcgcXVp cmtzOworK307CisrCisrLyoqCisrICogc3RydWN0IGljdnNfZHRfY29uZmlnIC0gRGF0YSB0eXBl IGNvbmZpZ3VyYXRpb24gZm9yIGEgdmlydHVhbCBjaGFubmVsCisrICogQHBpeGVsX3dpZHRoOiBQ aXhlbCB3aWR0aCBpbiBwaXhlbHMKKysgKiBAcGl4ZWxfaGVpZ2h0OiBQaXhlbCBoZWlnaHQgaW4g cGl4ZWxzCisrICogQGRhdGFfdHlwZTogTUlQSSBDU0ktMiBkYXRhIHR5cGUgKFJBVzEwLCBSQVcx MiwgZXRjLikKKysgKiBAcmVzZXJ2ZWQ6IFJlc2VydmVkIGZvciBmdXR1cmUgdXNlCisrICovCisr c3RydWN0IGljdnNfZHRfY29uZmlnIHsKKysJdTE2CXBpeGVsX3dpZHRoOworKwl1MTYJcGl4ZWxf aGVpZ2h0OworKwl1OAlkYXRhX3R5cGU7CisrCXU4CXJlc2VydmVkWzNdOworK307CisrCisrLyoq CisrICogc3RydWN0IGljdnNfdmNfY29uZmlnIC0gVmlydHVhbCBjaGFubmVsIGNvbmZpZ3VyYXRp b24KKysgKiBAdmM6IFZpcnR1YWwgY2hhbm5lbCBpbmRleCAoMC0zMSkKKysgKiBAZHRfY291bnQ6 IE51bWJlciBvZiBkYXRhIHR5cGVzIGNvbmZpZ3VyZWQKKysgKiBAZHRfY29uZmlnczogQXJyYXkg b2YgZGF0YSB0eXBlIGNvbmZpZ3VyYXRpb25zICh1cCB0byA0KQorKyAqIEByZXNlcnZlZDogUmVz ZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UKKysgKi8KKytzdHJ1Y3QgaWN2c192Y19jb25maWcgeworKwl1 OAl2YzsKKysJdTgJZHRfY291bnQ7CisrCXN0cnVjdCBpY3ZzX2R0X2NvbmZpZyBkdF9jb25maWdz WzRdOworKwl1OAlyZXNlcnZlZFs2XTsKKyt9OworKworKy8qKgorKyAqIHN0cnVjdCBpY3ZzX2xp bmtfY2ZnIC0gSG9zdCB0byBDVlMgQ1NJIGxpbmsgY29uZmlndXJhdGlvbgorKyAqIEBmcHM6IEZy YW1lcyBwZXIgc2Vjb25kCisrICogQG5yX29mX2xhbmVzOiBOdW1iZXIgb2YgQ1NJLTIgZGF0YSBs YW5lcyB1c2VkCisrICogQHBoeV9tb2RlOiAwID0gRFBIWSwgMSA9IENQSFkKKysgKiBAdmNfY291 bnQ6IE51bWJlciBvZiB2aXJ0dWFsIGNoYW5uZWxzIGVuYWJsZWQKKysgKiBAdmNfY29uZmlnczog UGVyLVZDIGNvbmZpZ3VyYXRpb24KKysgKiBAbGlua19mcmVxOiBMaW5rIGZyZXF1ZW5jeSBpbiBI egorKyAqIEByZXNlcnZlZDogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UKKysgKi8KKytzdHJ1Y3Qg aWN2c19saW5rX2NmZyB7CisrCXU4CWZwczsKKysJdTgJbnJfb2ZfbGFuZXM7CisrCXU4CXBoeV9t b2RlOworKwl1OAl2Y19jb3VudDsKKysJc3RydWN0IGljdnNfdmNfY29uZmlnIHZjX2NvbmZpZ3Nb NF07CisrCXUzMglsaW5rX2ZyZXE7CisrCXU4CXJlc2VydmVkWzhdOworK307CisrCisrLyoqCisr ICogc3RydWN0IGljdnNfZndfdmVyc2lvbiAtIEZpcm13YXJlIHZlcnNpb24gdHVwbGUKKysgKiBA bWFqb3I6IE1ham9yIHZlcnNpb24KKysgKiBAbWlub3I6IE1pbm9yIHZlcnNpb24KKysgKiBAaG90 Zml4OiBIb3RmaXgvcGF0Y2ggbGV2ZWwKKysgKiBAYnVpbGQ6IEJ1aWxkIG51bWJlcgorKyAqLwor K3N0cnVjdCBpY3ZzX2Z3X3ZlcnNpb24geworKwl1MzIJbWFqb3I7CisrCXUzMgltaW5vcjsKKysJ dTMyCWhvdGZpeDsKKysJdTMyCWJ1aWxkOworK307CisrCisrLyoqCisrICogc3RydWN0IGljdnNf dmlkX3BpZCAtIERldmljZSB2ZW5kb3IvcHJvZHVjdCBJRHMKKysgKiBAdl9pZDogVmVuZG9yIElE CisrICogQHBfaWQ6IFByb2R1Y3QgSUQKKysgKi8KKytzdHJ1Y3QgaWN2c192aWRfcGlkIHsKKysJ dTE2CXZfaWQ7CisrCXUxNglwX2lkOworK307CisrCisrLyoqCisrICogc3RydWN0IGljdnNfbWlw aV9kYXRhX3BhY2tldCAtIEVuY2Fwc3VsYXRlZCBNSVBJIGxpbmsgY29uZmlndXJhdGlvbiBwYWNr ZXQKKysgKiBAY21kX2lkOiBDb21tYW5kIGlkZW50aWZpZXIKKysgKiBAc2l6ZTogUGF5bG9hZCBz aXplIChieXRlcykKKysgKiBAY3JjOiBDaGVja3N1bSBvdmVyIHBheWxvYWQKKysgKiBAY29uZjog Q1NJIGxpbmsgY29uZmlndXJhdGlvbgorKyAqIEByZXNlcnZlZDogUmVzZXJ2ZWQgZm9yIGZ1dHVy ZSB1c2UKKysgKi8KKytzdHJ1Y3QgaWN2c19taXBpX2RhdGFfcGFja2V0IHsKKysJX19iZTE2CWNt ZF9pZDsKKysJdTMyCXNpemU7CisrCXUzMgljcmM7CisrCXN0cnVjdCBpY3ZzX2xpbmtfY2ZnIGNv bmY7CisrCXU4CXJlc2VydmVkWzcwXTsKKyt9IF9fcGFja2VkOworKworKy8qKgorKyAqIHN0cnVj dCBpY3ZzX21pcGlfcmVhZF9wYWNrZXQgLSBSZWFkLWJhY2sgTUlQSSBjb25maWd1cmF0aW9uCisr ICogQHNpemU6IFBheWxvYWQgc2l6ZQorKyAqIEBjcmM6IFBheWxvYWQgY2hlY2tzdW0KKysgKiBA Y29uZjogQ1NJIGxpbmsgY29uZmlndXJhdGlvbgorKyAqLworK3N0cnVjdCBpY3ZzX21pcGlfcmVh ZF9wYWNrZXQgeworKwl1MzIJc2l6ZTsKKysJdTMyCWNyYzsKKysJc3RydWN0IGljdnNfbGlua19j ZmcgY29uZjsKKyt9OworKworKy8qIEhvc3QgaWRlbnRpZmllciBiaXRmaWVsZCBtYXNrcyAqLwor KyNkZWZpbmUgSUNWU19IT1NUX0lEX1JHQkNBTUVSQV9QV1JVUAlCSVQoMzEpCisrI2RlZmluZSBJ Q1ZTX0hPU1RfSURfUFJJVkFDWV9MRUQJQklUKDMwKQorKyNkZWZpbmUgSUNWU19IT1NUX0lEX0RF VklDRV9QT1dFUglHRU5NQVNLKDI5LCAyOCkKKysjZGVmaW5lIElDVlNfSE9TVF9JRF9WSVNJT05f U0VOU0lORwlCSVQoMjcpCisrCisrLyogRGV2aWNlIHN0YXRlIGJpdGZpZWxkIG1hc2tzICh1OCkg Ki8KKysjZGVmaW5lIElDVlNfREVWX1NUQVRFX1BSSVZBQ1kJCUJJVCgwKQorKyNkZWZpbmUgSUNW U19ERVZfU1RBVEVfT04JCUJJVCgxKQorKyNkZWZpbmUgSUNWU19ERVZfU1RBVEVfU0VOU09SX09X TkVSCUJJVCgyKQorKyNkZWZpbmUgSUNWU19ERVZfU1RBVEVfRE9XTkxPQUQJCUJJVCg0KQorKyNk ZWZpbmUgSUNWU19ERVZfU1RBVEVfRVJST1IJCUJJVCg2KQorKyNkZWZpbmUgSUNWU19ERVZfU1RB VEVfQlVTWQkJQklUKDcpCisrCisrLyogRGV2aWNlIGNhcGFiaWxpdHkgYml0ZmllbGQgbWFza3Mg KHUxNikgKi8KKysjZGVmaW5lIElDVlNfQ0FQX0hPU1RfTUlQSV9SRVFVSVJFRAlCSVQoMTUpCisr I2RlZmluZSBJQ1ZTX0NBUF9GV19BTlRJUk9MTEJBQ0sJQklUKDE0KQorKyNkZWZpbmUgSUNWU19D QVBfUFJJVkFDWTJWSVNJT05EUklWRVIJQklUKDEzKQorKyNkZWZpbmUgSUNWU19DQVBfRldVUERB VEVfUkVTRVRfSE9TVAlCSVQoMTIpCisrI2RlZmluZSBJQ1ZTX0NBUF9OT19DQU1FUkFfRldVUERB VEUJQklUKDExKQorKyNkZWZpbmUgSUNWU19DQVBfUE9XRVJfRE9NQUlOX1NVUFBPUlQJQklUKDEw KQorKyNkZWZpbmUgSUNWU19DQVBfRldfRkxBU0hFRF9JTl9QTEFDRQlCSVQoOSkKKysjZGVmaW5l IElDVlNfQ0FQX0lPX0NPTlRFWFRfSE9UCQlCSVQoOCkKKysKKysvKioKKysgKiBzdHJ1Y3QgaWN2 c19kZXZfY2FwYWJpbGl0aWVzIC0gUHJvdG9jb2wgY2FwYWJpbGl0aWVzIHJlcG9ydGVkIGJ5IGRl dmljZQorKyAqIEBwcm90b2NvbF92ZXJzaW9uX21ham9yOiBNYWpvciBwcm90b2NvbCB2ZXJzaW9u CisrICogQHByb3RvY29sX3ZlcnNpb25fbWlub3I6IE1pbm9yIHByb3RvY29sIHZlcnNpb24KKysg KiBAY2FwYWJpbGl0eTogQ2FwYWJpbGl0eSBiaXRmaWVsZCAtIHVzZSBJQ1ZTX0NBUF8qIG1hc2tz CisrICogQG1heF9wYWNrZXRfdGltZTogTWF4IHBhY2tldCBwcm9jZXNzaW5nIHRpbWUgKG1zKQor KyAqIEBtYXhfcG9zdF9kbF90aW1lOiBNYXggcG9zdC1kb3dubG9hZCB0aW1lIChzKQorKyAqLwor K3N0cnVjdCBpY3ZzX2Rldl9jYXBhYmlsaXRpZXMgeworKwl1OCBwcm90b2NvbF92ZXJzaW9uX21h am9yOworKwl1OCBwcm90b2NvbF92ZXJzaW9uX21pbm9yOworKwl1MTYgY2FwYWJpbGl0eTsKKysJ dTE2IG1heF9wYWNrZXRfdGltZTsKKysJdTE2IG1heF9wb3N0X2RsX3RpbWU7CisrfTsKKysKKysv KioKKysgKiBzdHJ1Y3QgaWN2c19jbWQgLSBHZW5lcmljIGNvbW1hbmQgY29udGFpbmVyCisrICog QGNtZF9pZDogQ29tbWFuZCBpZGVudGlmaWVyCisrICogQHBhcmFtOiBQYXJhbWV0ZXIgdW5pb24g cHJvdmlkaW5nIG11bHRpcGxlIHZhcmlhbnRzCisrICogQHBhcmFtLnBhcmFtOiBSYXcgcGFyYW1l dGVyCisrICogQHBhcmFtLmhvc3RfaWQ6IEhvc3QgaWRlbnRpZmllciAoSUNWU19TRVRfREVWX0hP U1RfSUQpIC0gdXNlCisrICoJCSAgIElDVlNfSE9TVF9JRF8qIG1hc2tzCisrICogQHBhcmFtLmNv bmY6IENTSSBsaW5rIGNvbmZpZ3VyYXRpb24gKElDVlNfSE9TVF9TRVRfTUlQSV9DT05GSUcpCisr ICovCisrc3RydWN0IGljdnNfY21kIHsKKysJX19iZTE2IGNtZF9pZDsKKysJdW5pb24geworKwkJ dTMyIHBhcmFtOworKwkJdTMyIGhvc3RfaWQ7CisrCQlzdHJ1Y3QgaWN2c19saW5rX2NmZyBjb25m OworKwl9IHBhcmFtOworK30gX19wYWNrZWQ7CisrCisrLyoqCisrICogc3RydWN0IGljdnNfcmVz cCAtIEZpcm13YXJlIHJlc3BvbnNlIGNvbnRhaW5lcgorKyAqIEBzdGF0dXM6IEludGVybmFsIHN0 YXR1cyBjb2RlCisrICogQGNtZF9pZDogT3JpZ2luYWwgY29tbWFuZCBpZGVudGlmaWVyCisrICog QHJlc3A6IFJlc3BvbnNlIHVuaW9uIGNvbnRhaW5pbmcgdmFyaWFudCBwYXlsb2FkCisrICogQHJl c3Auc3RhdGU6IERldmljZSBzdGF0ZSByZXNwb25zZSAodTgsIHVzZSBJQ1ZTX0RFVl9TVEFURV8q IG1hc2tzKQorKyAqIEByZXNwLmNhcDogQ2FwYWJpbGl0eSByZXNwb25zZQorKyAqIEByZXNwLmNv bmY6IExpbmsgY29uZmlndXJhdGlvbiByZXNwb25zZQorKyAqIEByZXNwLm1pcGlfcmVhZDogUmF3 IGxpbmsgY29uZmlnIHJlYWQtYmFjaworKyAqIEByZXNwLnZpZF9waWQ6IFZlbmRvci9wcm9kdWN0 IGlkZW50aWZpZXJzCisrICogQHJlc3AuZndfdmVyc2lvbjogRmlybXdhcmUgdmVyc2lvbiB0dXBs ZQorKyAqLworK3N0cnVjdCBpY3ZzX3Jlc3AgeworKwl1MzIgc3RhdHVzOworKwlfX2JlMTYgY21k X2lkOworKwl1bmlvbiB7CisrCQl1OCBzdGF0ZTsKKysJCXN0cnVjdCBpY3ZzX2Rldl9jYXBhYmls aXRpZXMgY2FwOworKwkJc3RydWN0IGljdnNfbGlua19jZmcgY29uZjsKKysJCXN0cnVjdCBpY3Zz X21pcGlfcmVhZF9wYWNrZXQgbWlwaV9yZWFkOworKwkJc3RydWN0IGljdnNfdmlkX3BpZCB2aWRf cGlkOworKwkJc3RydWN0IGljdnNfZndfdmVyc2lvbiBmd192ZXJzaW9uOworKwl9IHJlc3A7Cisr fTsKKysKKysvKioKKysgKiBlbnVtIGljdnNfcmVzb3VyY2VzIC0gRGV2aWNlIGNhcGFiaWxpdHkg LyByZXNvdXJjZSBjYXRlZ29yeQorKyAqCisrICogQ2F0ZWdvcml6ZXMgaGFyZHdhcmUgcmVzb3Vy Y2UgYXZhaWxhYmlsaXR5IHdoaWNoIGluZmx1ZW5jZXMgcHJvdG9jb2wKKysgKiBmZWF0dXJlcyAo ZS5nLiByZXNldCBjb250cm9sLCB3YWtlIElSUSwgR1BJTyBtZWRpYXRlZCBvd25lcnNoaXApLiBM aWdodAorKyAqIGNhcGFiaWxpdHkgZGV2aWNlcyBleHBvc2UgYSByZWR1Y2VkIHNldCBvZiBjb250 cm9sIEdQSU9zOyBmdWxsIGNhcGFiaWxpdHkKKysgKiBkZXZpY2VzIHByb3ZpZGUgYWxsIG9wdGlv bmFsIHNpZ25hbHMgYW5kIGZlYXR1cmVzLiBOT1RTVVAgcmVwcmVzZW50cyBhbgorKyAqIHVuc3Vw cG9ydGVkIG9yIHVuaW5pdGlhbGl6ZWQgc3RhdGUuCisrICoKKysgKiBASUNWU19OT1RTVVA6ICAg Q2FwYWJpbGl0eSBub3Qgc3VwcG9ydGVkIC8gbm90IHlldCBkZXRlcm1pbmVkCisrICogQElDVlNf TElHSFRDQVA6IExpZ2h0IGNhcGFiaWxpdHkgKGxpbWl0ZWQgR1BJTyAvIG5vIGRlZGljYXRlZCB3 YWtlIElSUSkKKysgKiBASUNWU19GVUxMQ0FQOiAgRnVsbCBjYXBhYmlsaXR5IChyZXNldCBHUElP LCB3YWtlIElSUSwgZXh0ZW5kZWQgcHJvdG9jb2wpCisrICovCisrZW51bSBpY3ZzX3Jlc291cmNl cyB7CisrCUlDVlNfTk9UU1VQLAorKwlJQ1ZTX0xJR0hUQ0FQLAorKwlJQ1ZTX0ZVTExDQVAsCisr fTsKKysKKysvKioKKysgKiBlbnVtIGljdnNfY29tbWFuZCAtIFByb3RvY29sIGNvbW1hbmQgb3Bj b2RlcyAoZmlybXdhcmUgc3BhY2UgMHgwODAwKykKKysgKiBASUNWU19HRVRfREVWX1NUQVRFOiAg ICAgICAgUXVlcnkgY3VycmVudCBkZXZpY2Ugc3RhdGUgYml0ZmllbGQKKysgKiBASUNWU19HRVRf REVWX0ZXX1ZFUlNJT046ICAgUmV0cmlldmUgZmlybXdhcmUgdmVyc2lvbiB0dXBsZQorKyAqIEBJ Q1ZTX0dFVF9ERVZfVklEX1BJRDogICAgICBSZWFkIHZlbmRvciAvIHByb2R1Y3QgaWRlbnRpZmll cnMKKysgKiBASUNWU19HRVRfREVWX0VSUl9DT0RFOiAgICAgRmV0Y2ggbGFzdCBlcnJvciBjb2Rl IChpZiBhbnkpCisrICogQElDVlNfR0VUX0RFVl9DQVBBQklMSVRZOiAgIFJlYWQgcHJvdG9jb2wg Y2FwYWJpbGl0eSBzdHJ1Y3R1cmUKKysgKiBASUNWU19TRVRfREVWX0hPU1RfSUQ6ICAgICAgU2V0 IGhvc3QgaWRlbnRpdHkgLyBvd25lcnNoaXAgYml0cworKyAqIEBJQ1ZTX0dFVF9ERVZfSE9TVF9J RDogICAgICBSZWFkIGJhY2sgaG9zdCBpZGVudGl0eQorKyAqIEBJQ1ZTX0ZXX0xPQURFUl9TVEFS VDogICAgICBCZWdpbiBmaXJtd2FyZSBkb3dubG9hZCBzZXF1ZW5jZQorKyAqIEBJQ1ZTX0ZXX0xP QURFUl9EQVRBOiAgICAgICBTdHJlYW0gYSBjaHVuayBvZiBmaXJtd2FyZSBwYXlsb2FkCisrICog QElDVlNfRldfTE9BREVSX0VORDogICAgICAgIEVuZCBmaXJtd2FyZSBkb3dubG9hZCAvIHRyaWdn ZXIgZmxhc2gKKysgKiBASUNWU19IT1NUX0dFVF9NSVBJX0NPTkZJRzogUmVxdWVzdCBjdXJyZW50 IE1JUEkgQ1NJIGxpbmsgY29uZmlndXJhdGlvbgorKyAqIEBJQ1ZTX0hPU1RfU0VUX01JUElfQ09O RklHOiBBcHBseSBuZXcgTUlQSSBDU0kgbGluayBjb25maWd1cmF0aW9uCisrICogQElDVlNfSE9T VF9TRU5TT1JfT1dORVI6ICAgIFRvZ2dsZSBDU0kgc2Vuc29yIG93bmVyc2hpcCAoR1BJTyBhc3Np c3QpCisrICovCisrZW51bSBpY3ZzX2NvbW1hbmQgeworKwlJQ1ZTX0dFVF9ERVZfU1RBVEUJCT0g MHgwODAwLAorKwlJQ1ZTX0dFVF9ERVZfRldfVkVSU0lPTgkJPSAweDA4MDEsCisrCUlDVlNfR0VU X0RFVl9WSURfUElECQk9IDB4MDgwMiwKKysJSUNWU19HRVRfREVWX0VSUl9DT0RFCQk9IDB4MDgw MywKKysJSUNWU19HRVRfREVWX0NBUEFCSUxJVFkJCT0gMHgwODA0LAorKwlJQ1ZTX1NFVF9ERVZf SE9TVF9JRAkJPSAweDA4MDUsCisrCUlDVlNfR0VUX0RFVl9IT1NUX0lECQk9IDB4MDgwNiwKKysJ SUNWU19GV19MT0FERVJfU1RBUlQJCT0gMHgwODIwLAorKwlJQ1ZTX0ZXX0xPQURFUl9EQVRBCQk9 IDB4MDgyMSwKKysJSUNWU19GV19MT0FERVJfRU5ECQk9IDB4MDgyMiwKKysJSUNWU19IT1NUX0dF VF9NSVBJX0NPTkZJRwk9IDB4MDgyRiwKKysJSUNWU19IT1NUX1NFVF9NSVBJX0NPTkZJRwk9IDB4 MDgzMCwKKysJSUNWU19IT1NUX1NFTlNPUl9PV05FUgkJPSAweDA4MzEsCisrfTsKKysKKysvKioK KysgKiBlbnVtIGljdnNfc3RhdGUgLSBEZXZpY2Ugc3RhdGUgYml0ZmllbGQgZmxhZ3MKKysgKgor KyAqIFRoZXNlIGZsYWdzIGNvcnJlc3BvbmQgdG8gYml0cyBpbiB0aGUgZGV2aWNlIHN0YXRlIGJ5 dGUgcmV0dXJuZWQgdmlhCisrICogR0VUX0RFVl9TVEFURSBhbmQgZGVjb2RlZCBpbiB1bmlvbiBp Y3ZzX2Rldl9zdGF0ZS4gTXVsdGlwbGUgYml0cyBtYXkgYmUKKysgKiBhc3NlcnRlZCBzaW11bHRh bmVvdXNseS4gUmVzZXJ2ZWQgYml0cyBhcmUgb21pdHRlZC4KKysgKgorKyAqIEBJQ1ZTX0RFVklD RV9PRkZfU1RBVEU6IFJhdyB6ZXJvIHZhbHVlOyBkZXZpY2UgaXMgcG93ZXJlZCBvZmYgb3IKKysg KgkJCSAgIG5vdCB5ZXQgcmVhZHkKKysgKiBASUNWU19ERVZJQ0VfUFJJVkFDWV9PTjogUHJpdmFj eSBtb2RlIGFjdGl2ZSAoTEVEIGFzc2VydGVkIGFuZC9vcgorKyAqCQkJICAgIHN0cmVhbSBnYXRl ZCkKKysgKiBASUNWU19ERVZJQ0VfT05fU1RBVEU6IERldmljZSBwb3dlcmVkIGFuZCByZXNwb25z aXZlIHRvIHByb3RvY29sIGNvbW1hbmRzCisrICogQElDVlNfREVWSUNFX1NFTlNPUl9PV05FUjog Q1ZTIGN1cnJlbnRseSBvd25zIHRoZSBhdHRhY2hlZCBDU0kgc2Vuc29yCisrICogQElDVlNfREVW SUNFX0RXTkxEX1NUQVRFOiBGaXJtd2FyZSBkb3dubG9hZCAvIGZsYXNoIG9wZXJhdGlvbiBpbiBw cm9ncmVzcworKyAqIEBJQ1ZTX0RFVklDRV9FUlJPUl9TVEFURTogRGV2aWNlIGhhcyByZXBvcnRl ZCBhbiBlcnJvciAocXVlcnkKKysgKgkJCSAgICAgSUNWU19HRVRfREVWX0VSUl9DT0RFKQorKyAq IEBJQ1ZTX0RFVklDRV9CVVNZX1NUQVRFOiBEZXZpY2UgaXMgYnVzeSBwcm9jZXNzaW5nIGEgcHJp b3IgY29tbWFuZAorKyAqLworK2VudW0gaWN2c19zdGF0ZSB7CisrCUlDVlNfREVWSUNFX09GRl9T VEFURQkJPSAweDAwLAorKwlJQ1ZTX0RFVklDRV9QUklWQUNZX09OCQk9IEJJVCgwKSwKKysJSUNW U19ERVZJQ0VfT05fU1RBVEUJCT0gQklUKDEpLAorKwlJQ1ZTX0RFVklDRV9TRU5TT1JfT1dORVIJ PSBCSVQoMiksCisrCUlDVlNfREVWSUNFX0RXTkxEX1NUQVRFCQk9IEJJVCg0KSwKKysJSUNWU19E RVZJQ0VfRVJST1JfU1RBVEUJCT0gQklUKDYpLAorKwlJQ1ZTX0RFVklDRV9CVVNZX1NUQVRFCQk9 IEJJVCg3KSwKKyt9OworKworKy8qKgorKyAqIHN0cnVjdCBpY3ZzIC0gQ29yZSBDVlMgZGV2aWNl IGNvbnRleHQKKysgKiBAaTJjX2NsaWVudDogSTJDIGNsaWVudCAoTlVMTCBpbiBwbGF0Zm9ybS1v bmx5IG1vZGUpCisrICogQHdvcms6IERlbGF5ZWQgd29yayBmb3IgcG9sbGluZyBkZXZpY2Ugc3Rh dGUgLyBjb21wbGV0aW9uCisrICogQHdxX3Jlc3A6IExhc3QgcmVzcG9uc2UgY29udGFpbmVyIHBv cHVsYXRlZCBieSB3b3JrcXVldWUKKysgKiBAY21kX2NvbXBsZXRpb246IENvbXBsZXRpb24gZm9y IGNvbW1hbmQgd2FpdGVycworKyAqIEBsb2NrOiBNdXRleCBwcm90ZWN0aW5nIGNvbW1hbmQgc3Vi bWlzc2lvbiAmIHNoYXJlZCBzdGF0ZQorKyAqIEBzdWJkZXY6IFY0TDIgc3ViLWRldmljZSByZXBy ZXNlbnRpbmcgdGhlIENTSSBicmlkZ2UgZW50aXR5CisrICogQHJlbW90ZTogUmVtb3RlIG1lZGlh IHBhZCBjb25uZWN0ZWQgdG8gdXBzdHJlYW0gY2FtZXJhIHNlbnNvcgorKyAqIEBub3RpZmllcjog QXN5bmMgbm90aWZpZXIgZm9yIHJlbW90ZSBzZW5zb3IgZGlzY292ZXJ5CisrICogQGN0cmxfaGFu ZGxlcjogVjRMMiBjb250cm9sIGhhbmRsZXIKKysgKiBAZnJlcV9jdHJsOiAoZnV0dXJlKSBmcmVx dWVuY3kgY29udHJvbCBwb2ludGVyCisrICogQHBhZHM6IExvY2FsIG1lZGlhIHBhZHMgKHNpbmsv c291cmNlKQorKyAqIEBucl9vZl9sYW5lczogQWN0aXZlIENTSS0yIGxhbmUgY291bnQKKysgKiBA aXB1X2xpbms6IFBNIHJ1bnRpbWUgZGV2aWNlIGxpbmsgKElQVSBjb25zdW1lciwgQ1ZTIHN1cHBs aWVyKQorKyAqIEByZXM6IFJlc291cmNlIGNhcGFiaWxpdHkgKGxpZ2h0L2Z1bGwpCisrICogQGNh cHM6IFJlcG9ydGVkIGRldmljZSBwcm90b2NvbCBjYXBhYmlsaXRpZXMKKysgKiBAcHJlZml4OiBG aXJtd2FyZSByZXNwb25zZSBwcmVmaXggcHJlc2VudAorKyAqIEBxdWlya3M6IERldmljZS1zcGVj aWZpYyBxdWlyayBmbGFncworKyAqIEByc3Q6IFJlc2V0IEdQSU8gKGZ1bGwgY2FwYWJpbGl0eSBv bmx5KQorKyAqIEByZXE6IFJlcXVlc3QgR1BJTyAob3duZXJzaGlwIHNpZ25hbGluZykKKysgKiBA cmVzcDogUmVzcG9uc2UgR1BJTyAob3duZXJzaGlwIHNpZ25hbGluZykKKysgKiBAaXJxOiBXYWtl IElSUSAoZnVsbCBjYXBhYmlsaXR5KQorKyAqIEBob3N0d2FrZV9ldmVudDogV2FpdHF1ZXVlIGZv ciB3YWtlIGV2ZW50cworKyAqIEBob3N0d2FrZV9ldmVudF9hcmc6IFdha2UgZXZlbnQgZmxhZwor KyAqLworK3N0cnVjdCBpY3ZzIHsKKysJc3RydWN0IGkyY19jbGllbnQgKmkyY19jbGllbnQ7Cisr CXN0cnVjdCBkZWxheWVkX3dvcmsgd29yazsKKysJc3RydWN0IGljdnNfcmVzcCB3cV9yZXNwOwor KwlzdHJ1Y3QgY29tcGxldGlvbiBjbWRfY29tcGxldGlvbjsKKysJc3RydWN0IG11dGV4IGxvY2s7 IC8qIFByb3RlY3RzIGNvbW1hbmQgZXhlY3V0aW9uIGFuZCBkZXZpY2Ugc3RhdGUgKi8KKysJc3Ry dWN0IHY0bDJfc3ViZGV2IHN1YmRldjsKKysJc3RydWN0IG1lZGlhX3BhZCAqcmVtb3RlOworKwlz dHJ1Y3QgdjRsMl9hc3luY19ub3RpZmllciBub3RpZmllcjsKKysJc3RydWN0IHY0bDJfY3RybF9o YW5kbGVyIGN0cmxfaGFuZGxlcjsKKysJc3RydWN0IHY0bDJfY3RybCAqZnJlcV9jdHJsOworKwlz dHJ1Y3QgbWVkaWFfcGFkIHBhZHNbSUNWU19DU0lfTlVNX1BBRFNdOworKwl1MzIgbnJfb2ZfbGFu ZXM7CisrCXN0cnVjdCBkZXZpY2VfbGluayAqaXB1X2xpbms7CisrCWVudW0gaWN2c19yZXNvdXJj ZXMgcmVzOworKwlzdHJ1Y3QgaWN2c19kZXZfY2FwYWJpbGl0aWVzIGNhcHM7CisrCWJvb2wgcHJl Zml4OworKwl1bnNpZ25lZCBsb25nIHF1aXJrczsKKysJc3RydWN0IGdwaW9fZGVzYyAqcnN0Owor KwlzdHJ1Y3QgZ3Bpb19kZXNjICpyZXE7CisrCXN0cnVjdCBncGlvX2Rlc2MgKnJlc3A7CisrCWlu dCBpcnE7CisrCXdhaXRfcXVldWVfaGVhZF90IGhvc3R3YWtlX2V2ZW50OworKwlib29sIGhvc3R3 YWtlX2V2ZW50X2FyZzsKKyt9OworKworKy8qKgorKyAqIGN2c19kZXYgLSBIZWxwZXIgcmV0dXJu aW5nIHRoZSBzdHJ1Y3QgZGV2aWNlIGZvciBhIENWUyBjb250ZXh0CisrICogQGN0eDogQ1ZTIGNv bnRleHQKKysgKgorKyAqIEF2b2lkcyByZXBlYXRpbmcgdHJhbnNwb3J0IGNvbmRpdGlvbmFsIGxv Z2ljIGF0IGVhY2ggY2FsbCBzaXRlIHdoZW4KKysgKiBhY3F1aXJpbmcgdGhlIGRldmljZSBwb2lu dGVyIGZvciBsb2dnaW5nIG9yIFBNIG9wZXJhdGlvbnMuCisrICoKKysgKiBSZXR1cm46IERldmlj ZSBwb2ludGVyIChuZXZlciBOVUxMIGlmIEBjdHggaXMgdmFsaWQpLgorKyAqLworK3N0YXRpYyBp bmxpbmUgc3RydWN0IGRldmljZSAqY3ZzX2RldihzdHJ1Y3QgaWN2cyAqY3R4KQorK3sKKysJcmV0 dXJuIGN0eC0+aTJjX2NsaWVudCA/ICZjdHgtPmkyY19jbGllbnQtPmRldiA6IGN0eC0+c3ViZGV2 LmRldjsKKyt9CisrCisrLyogQ3Jvc3MtdW5pdCBpbnRlcmZhY2VzICovCisraW50IGN2c19zZW5k KHN0cnVjdCBpY3ZzICpjdHgsIHN0cnVjdCBpY3ZzX2NtZCAqY21kLCBzaXplX3QgbGVuKTsKKytp bnQgY3ZzX3NldF9saW5rX293bmVyKHN0cnVjdCBpY3ZzICpjdHgsIGVudW0gaWN2c19jc2lfbGlu a19vd25lciBvd25lcik7CisraW50IGN2c19jc2lfaW5pdChzdHJ1Y3QgaWN2cyAqY3R4LCBzdHJ1 Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBpMmNfY2xpZW50ICppMmMpOworK3ZvaWQgY3ZzX2NzaV9y ZW1vdmUoc3RydWN0IGljdnMgKmN0eCk7CisrCisrI2VuZGlmIC8qIF9JQ1ZTX0ggKi8KK2RpZmYg LS1naXQgYS9kcml2ZXJzL21lZGlhL2kyYy9jdnMvdjRsMi5jIGIvZHJpdmVycy9tZWRpYS9pMmMv Y3ZzL3Y0bDIuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uOWZh ZGNhN2EzYmVlCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL21lZGlhL2kyYy9jdnMvdjRs Mi5jCitAQCAtMCwwICsxLDYxNyBAQAorKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wLW9ubHkKKysvKgorKyAqIENvcHlyaWdodCAoQykgMjAyNiBJbnRlbCBDb3Jwb3JhdGlvbgor KyAqIENWUyBkcml2ZXIgLSBDU0kvVjRMMiBzdWJkZXYgc3VwcG9ydAorKyAqLworKworKyNpbmNs dWRlIDxsaW51eC9jbGVhbnVwLmg+CisrI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorKyNpbmNs dWRlIDxsaW51eC9tb2R1bGUuaD4KKysjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgorKyNp bmNsdWRlIDxsaW51eC9wcm9wZXJ0eS5oPgorKworKyNpbmNsdWRlIDxtZWRpYS92NGwyLWFzeW5j Lmg+CisrI2luY2x1ZGUgPG1lZGlhL3Y0bDItY29tbW9uLmg+CisrI2luY2x1ZGUgPG1lZGlhL3Y0 bDItY3RybHMuaD4KKysjaW5jbHVkZSA8bWVkaWEvdjRsMi1ldmVudC5oPgorKyNpbmNsdWRlIDxt ZWRpYS92NGwyLWZ3bm9kZS5oPgorKyNpbmNsdWRlIDxtZWRpYS92NGwyLW1jLmg+CisrI2luY2x1 ZGUgPG1lZGlhL3Y0bDItc3ViZGV2Lmg+CisrCisrI2luY2x1ZGUgImljdnMuaCIKKysKKysvKgor KyAqIEhlbHBlcnMKKysgKi8KKytzdGF0aWMgaW5saW5lIHN0cnVjdCBpY3ZzICpub3RpZmllcl90 b19jc2koc3RydWN0IHY0bDJfYXN5bmNfbm90aWZpZXIgKm4pCisreworKwlyZXR1cm4gY29udGFp bmVyX29mKG4sIHN0cnVjdCBpY3ZzLCBub3RpZmllcik7CisrfQorKworK3N0YXRpYyBpbmxpbmUg c3RydWN0IGljdnMgKnNkX3RvX2NzaShzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkKQorK3sKKysJcmV0 dXJuIGNvbnRhaW5lcl9vZihzZCwgc3RydWN0IGljdnMsIHN1YmRldik7CisrfQorKworKy8qCisr ICogRGVmYXVsdCBmb3JtYXRzCisrICovCisrc3RhdGljIGNvbnN0IHN0cnVjdCB2NGwyX21idXNf ZnJhbWVmbXQgY3ZzX2NzaV9mb3JtYXRfbWJ1c19kZWZhdWx0ID0geworKwkud2lkdGggPSAxLAor KwkuaGVpZ2h0ID0gMSwKKysJLmNvZGUgPSBNRURJQV9CVVNfRk1UX1k4XzFYOCwKKysJLmZpZWxk ID0gVjRMMl9GSUVMRF9OT05FLAorK307CisrCisrLyoqCisrICogY3NpX3NldF9saW5rX2NmZyAt IFByb2dyYW0gZGVmYXVsdCBDU0ktMiBsaW5rIHBhcmFtZXRlcnMKKysgKiBAY3R4OiBDVlMgZGV2 aWNlIGNvbnRleHQKKysgKiBAbGlua19mcmVxOiBMaW5rIGZyZXF1ZW5jeSAoSHopCisrICoKKysg KiBQb3B1bGF0ZXMgYSBIT1NUX1NFVF9NSVBJX0NPTkZJRyBjb21tYW5kIHVzaW5nIGN1cnJlbnQg bGFuZSBjb3VudCBhbmQKKysgKiBsaW5rIGZyZXF1ZW5jeSwgdGhlbiBzdWJtaXRzIGl0IHRvIHRo ZSBkZXZpY2UuCisrICogUmVzdCBvZiB0aGUgbGluayBwYXJhbWV0ZXJzIGFyZSBsZWZ0IGF0IGZp cm13YXJlIGRlZmF1bHRzLgorKyAqCisrICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRp dmUgZXJybm8uCisrICovCisrc3RhdGljIGludCBjc2lfc2V0X2xpbmtfY2ZnKHN0cnVjdCBpY3Zz ICpjdHgsIHU2NCBsaW5rX2ZyZXEpCisreworKwlzdHJ1Y3QgaWN2c19jbWQgY21kID0geworKwkJ LmNtZF9pZCA9IGNwdV90b19iZTE2KElDVlNfSE9TVF9TRVRfTUlQSV9DT05GSUcpLAorKwkJLnBh cmFtLmNvbmYubnJfb2ZfbGFuZXMgPSBjdHgtPm5yX29mX2xhbmVzLAorKwkJLnBhcmFtLmNvbmYu bGlua19mcmVxID0gbGlua19mcmVxLAorKwl9OworKwlzaXplX3QgY21kX3NpemUgPSBzaXplb2Yo Y21kLmNtZF9pZCkgKyBzaXplb2YoY21kLnBhcmFtLmNvbmYpOworKworKwlndWFyZChtdXRleCko JmN0eC0+bG9jayk7CisrCXJldHVybiBjdnNfc2VuZChjdHgsICZjbWQsIGNtZF9zaXplKTsKKyt9 CisrCisrLyoKKysgKiBTdHJlYW1pbmcKKysgKi8KKysKKysvKioKKysgKiBjdnNfY3NpX2VuYWJs ZV9zdHJlYW1zIC0gU3RhcnQgc3RyZWFtaW5nIHRocm91Z2ggdGhlIGJyaWRnZQorKyAqIEBzZDog U3ViLWRldmljZSBwb2ludGVyCisrICogQHN0YXRlOiBBY3RpdmUgc3RhdGUKKysgKiBAcGFkOiBQ YWQgaWRlbnRpZmllciAobXVzdCBiZSBJQ1ZTX0NTSV9QQURfU09VUkNFKQorKyAqIEBzdHJlYW1z X21hc2s6IFN0cmVhbXMgdG8gZW5hYmxlIChiaXQgMCBzdXBwb3J0ZWQpCisrICoKKysgKiBSdW50 aW1lLXJlc3VtZXMgdGhlIGJyaWRnZSAodHJpZ2dlcmluZyBjdnNfcnVudGltZV9yZXN1bWUoKSB0 byBjbGFpbSBDU0ktMgorKyAqIGxpbmsgb3duZXJzaGlwKSwgZmV0Y2hlcyB0aGUgbGluayBmcmVx dWVuY3ksIHByb2dyYW1zIHRoZSBNSVBJIGNvbmZpZ3VyYXRpb24sCisrICogYW5kIGZvcndhcmRz IHRoZSBlbmFibGUgcmVxdWVzdCBkb3duc3RyZWFtLgorKyAqCisrICogUmV0dXJuOiAwIG9uIHN1 Y2Nlc3Mgb3IgbmVnYXRpdmUgZXJybm8uCisrICovCisrc3RhdGljIGludCBjdnNfY3NpX2VuYWJs ZV9zdHJlYW1zKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsCisrCQkJCSAgc3RydWN0IHY0bDJfc3Vi ZGV2X3N0YXRlICpzdGF0ZSwKKysJCQkJICB1MzIgcGFkLCB1NjQgc3RyZWFtc19tYXNrKQorK3sK KysJc3RydWN0IGljdnMgKmN0eCA9IHNkX3RvX2NzaShzZCk7CisrCXN0cnVjdCB2NGwyX3N1YmRl diAqcmVtb3RlX3NkID0KKysJCQkgICAgbWVkaWFfZW50aXR5X3RvX3Y0bDJfc3ViZGV2KGN0eC0+ cmVtb3RlLT5lbnRpdHkpOworKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjdnNfZGV2KGN0eCk7Cisr CXM2NCBsaW5rX2ZyZXE7CisrCWludCByZXQ7CisrCisrCS8qIGN2c19zZXRfbGlua19vd25lcihJ Q1ZTX0NTSV9MSU5LX0hPU1QpICovCisrCXJldCA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQo ZGV2KTsKKysJaWYgKHJldCA8IDApCisrCQlyZXR1cm4gcmV0OworKworKwlsaW5rX2ZyZXEgPSB2 NGwyX2dldF9saW5rX2ZyZXEoY3R4LT5yZW1vdGUsIDAsIDApOworKwlpZiAobGlua19mcmVxIDwg MCkgeworKwkJcmV0ID0gbGlua19mcmVxOworKwkJZ290byBlcnJfcnBtX3B1dDsKKysJfQorKwor KwlpZiAoY3R4LT5pMmNfY2xpZW50KSB7CisrCQlyZXQgPSBjc2lfc2V0X2xpbmtfY2ZnKGN0eCwg bGlua19mcmVxKTsKKysJCWlmIChyZXQgPCAwKQorKwkJCWdvdG8gZXJyX3JwbV9wdXRfc3luYzsK KysJfQorKworKwlyZXQgPSB2NGwyX3N1YmRldl9lbmFibGVfc3RyZWFtcyhyZW1vdGVfc2QsCisr CQkJCQkgY3R4LT5yZW1vdGUtPmluZGV4LAorKwkJCQkJIHN0cmVhbXNfbWFzayk7CisrCWlmIChy ZXQpCisrCQlnb3RvIGVycl9ycG1fcHV0X3N5bmM7CisrCisrCXJldHVybiAwOworKworK2Vycl9y cG1fcHV0X3N5bmM6CisrCS8qIEJ5cGFzcyBhdXRvc3VzcGVuZCB0byBpbW1lZGlhdGVseSByZWxl YXNlIG93bmVyc2hpcCBvbiBlcnJvciAqLworKwlwbV9ydW50aW1lX3B1dF9zeW5jKGRldik7Cisr CXJldHVybiByZXQ7CisrZXJyX3JwbV9wdXQ6CisrCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5k KGRldik7CisrCXJldHVybiByZXQ7CisrfQorKworKy8qKgorKyAqIGN2c19jc2lfZGlzYWJsZV9z dHJlYW1zIC0gU3RvcCBzdHJlYW1pbmcgdGhyb3VnaCB0aGUgYnJpZGdlCisrICogQHNkOiBTdWIt ZGV2aWNlIHBvaW50ZXIKKysgKiBAc3RhdGU6IEFjdGl2ZSBzdGF0ZQorKyAqIEBwYWQ6IFBhZCBp ZGVudGlmaWVyIChtdXN0IGJlIElDVlNfQ1NJX1BBRF9TT1VSQ0UpCisrICogQHN0cmVhbXNfbWFz azogU3RyZWFtcyB0byBkaXNhYmxlIChiaXQgMCBzdXBwb3J0ZWQpCisrICoKKysgKiBEaXNhYmxl cyB0aGUgcmVtb3RlIHNlbnNvciBzdHJlYW0gdGhlbiBkcm9wcyB0aGUgUE0gcmVmZXJlbmNlIGFj cXVpcmVkCisrICogZHVyaW5nIGVuYWJsZS4gQWZ0ZXIgdGhlIGF1dG9zdXNwZW5kIGRlbGF5LCBj dnNfcnVudGltZV9zdXNwZW5kKCkgd2lsbAorKyAqIHJldHVybiBDU0ktMiBsaW5rIG93bmVyc2hp cCB0byBDVlMgZmlybXdhcmUuCisrICoKKysgKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBuZWdh dGl2ZSBlcnJuby4KKysgKi8KKytzdGF0aWMgaW50IGN2c19jc2lfZGlzYWJsZV9zdHJlYW1zKHN0 cnVjdCB2NGwyX3N1YmRldiAqc2QsCisrCQkJCSAgIHN0cnVjdCB2NGwyX3N1YmRldl9zdGF0ZSAq c3RhdGUsCisrCQkJCSAgIHUzMiBwYWQsIHU2NCBzdHJlYW1zX21hc2spCisreworKwlzdHJ1Y3Qg aWN2cyAqY3R4ID0gc2RfdG9fY3NpKHNkKTsKKysJc3RydWN0IHY0bDJfc3ViZGV2ICpyZW1vdGVf c2QgPQorKwkJCSAgICBtZWRpYV9lbnRpdHlfdG9fdjRsMl9zdWJkZXYoY3R4LT5yZW1vdGUtPmVu dGl0eSk7CisrCXN0cnVjdCBkZXZpY2UgKmRldiA9IGN2c19kZXYoY3R4KTsKKysJaW50IHJldDsK KysKKysJcmV0ID0gdjRsMl9zdWJkZXZfZGlzYWJsZV9zdHJlYW1zKHJlbW90ZV9zZCwKKysJCQkJ CSAgY3R4LT5yZW1vdGUtPmluZGV4LAorKwkJCQkJICBzdHJlYW1zX21hc2spOworKwlpZiAocmV0 KQorKwkJZGV2X2VycihkZXYsICJkaXNhYmxlIHN0cmVhbXMgZmFpbGVkOiAlZFxuIiwgcmV0KTsK KysKKysJLyogY3ZzX3NldF9saW5rX293bmVyKElDVlNfQ1NJX0xJTktfQ1ZTKSAqLworKwlwbV9y dW50aW1lX3B1dF9hdXRvc3VzcGVuZChkZXYpOworKworKwlyZXR1cm4gcmV0OworK30KKysKKysv KgorKyAqIFBhZCBvcGVyYXRpb25zIC8gZm9ybWF0cworKyAqLworKy8qKgorKyAqIGN2c19jc2lf aW5pdF9zdGF0ZSAtIEluaXRpYWxpemUgcGFkIGZvcm1hdHMgaW4gc3ViZGV2IHN0YXRlCisrICog QHNkOiBTdWItZGV2aWNlCisrICogQHN0YXRlOiBTdGF0ZSBjb250YWluZXIKKysgKgorKyAqIFNl dHMgYWxsIHBhZCBmb3JtYXRzIHRvIGEgbWluaW1hbCAxeDEgZGVmYXVsdC4KKysgKgorKyAqIFJl dHVybjogMC4KKysgKi8KKytzdGF0aWMgaW50IGN2c19jc2lfaW5pdF9zdGF0ZShzdHJ1Y3QgdjRs Ml9zdWJkZXYgKnNkLAorKwkJCSAgICAgIHN0cnVjdCB2NGwyX3N1YmRldl9zdGF0ZSAqc3RhdGUp CisreworKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHNkLT5lbnRpdHkubnVtX3BhZHM7 IGkrKykKKysJCSp2NGwyX3N1YmRldl9zdGF0ZV9nZXRfZm9ybWF0KHN0YXRlLCBpKSA9CisrCQkJ Y3ZzX2NzaV9mb3JtYXRfbWJ1c19kZWZhdWx0OworKworKwlyZXR1cm4gMDsKKyt9CisrCisrLyoq CisrICogY3ZzX2NzaV9zZXRfZm10IC0gTmVnb3RpYXRlIHBhZCBmb3JtYXQKKysgKiBAc2Q6IFN1 Yi1kZXZpY2UKKysgKiBAc3RhdGU6IFN0YXRlCisrICogQGZvcm1hdDogRGVzaXJlZCAvIHJldHVy bmVkIGZvcm1hdAorKyAqCisrICogTWlycm9ycyBzaW5rIGZvcm1hdCBvbnRvIHNvdXJjZSBwYWQu IEFjY2VwdHMgbWFueSBtZWRpYSBidXMgY29kZXMsIGZhbGxpbmcKKysgKiBiYWNrIHRvIFk4IGlm IHVuc3VwcG9ydGVkLiBOb3JtYWxpemVzIGZpZWxkIHNldHRpbmcuCisrICoKKysgKiBSZXR1cm46 IDAuCisrICovCisrc3RhdGljIGludCBjdnNfY3NpX3NldF9mbXQoc3RydWN0IHY0bDJfc3ViZGV2 ICpzZCwKKysJCQkgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlLAorKwkJCSAgIHN0 cnVjdCB2NGwyX3N1YmRldl9mb3JtYXQgKmZvcm1hdCkKKyt7CisrCXN0cnVjdCB2NGwyX21idXNf ZnJhbWVmbXQgKnNyYyA9CisrCQl2NGwyX3N1YmRldl9zdGF0ZV9nZXRfZm9ybWF0KHN0YXRlLCBJ Q1ZTX0NTSV9QQURfU09VUkNFKTsKKysJc3RydWN0IHY0bDJfbWJ1c19mcmFtZWZtdCAqc2luayA9 CisrCQl2NGwyX3N1YmRldl9zdGF0ZV9nZXRfZm9ybWF0KHN0YXRlLCBJQ1ZTX0NTSV9QQURfU0lO Syk7CisrCisrCWlmIChmb3JtYXQtPnBhZCA9PSBJQ1ZTX0NTSV9QQURfU09VUkNFKSB7IC8qIHNv dXJjZSBwYWQgbWlycm9ycyBzaW5rICovCisrCQkqc3JjID0gKnNpbms7CisrCQlyZXR1cm4gMDsK KysJfQorKworKwl2NGxfYm91bmRfYWxpZ25faW1hZ2UoJmZvcm1hdC0+Zm9ybWF0LndpZHRoLCAx LCA2NTUzNiwgMCwKKysJCQkgICAgICAmZm9ybWF0LT5mb3JtYXQuaGVpZ2h0LCAxLCA2NTUzNiwg MCwgMCk7CisrCisrCXN3aXRjaCAoZm9ybWF0LT5mb3JtYXQuY29kZSkgeworKwkvKiBBY2NlcHQg YSBsYXJnZSBsaXN0OyBkZWZhdWx0IGZhbGxiYWNrIHRvIFk4ICovCisrCWNhc2UgTUVESUFfQlVT X0ZNVF9SR0I0NDRfMVgxMjoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1JHQjQ0NF8yWDhfUEFESElf QkU6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I0NDRfMlg4X1BBREhJX0xFOgorKwljYXNlIE1F RElBX0JVU19GTVRfUkdCNTU1XzJYOF9QQURISV9CRToKKysJY2FzZSBNRURJQV9CVVNfRk1UX1JH QjU1NV8yWDhfUEFESElfTEU6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I1NjVfMVgxNjoKKysJ Y2FzZSBNRURJQV9CVVNfRk1UX0JHUjU2NV8yWDhfQkU6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9C R1I1NjVfMlg4X0xFOgorKwljYXNlIE1FRElBX0JVU19GTVRfUkdCNTY1XzJYOF9CRToKKysJY2Fz ZSBNRURJQV9CVVNfRk1UX1JHQjU2NV8yWDhfTEU6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I2 NjZfMVgxODoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1JCRzg4OF8xWDI0OgorKwljYXNlIE1FRElB X0JVU19GTVRfUkdCNjY2XzFYMjRfQ1BBREhJOgorKwljYXNlIE1FRElBX0JVU19GTVRfQkdSODg4 XzFYMjQ6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9HQlI4ODhfMVgyNDoKKysJY2FzZSBNRURJQV9C VVNfRk1UX1JHQjg4OF8xWDI0OgorKwljYXNlIE1FRElBX0JVU19GTVRfUkdCODg4XzJYMTJfQkU6 CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I4ODhfMlgxMl9MRToKKysJY2FzZSBNRURJQV9CVVNf Rk1UX0FSR0I4ODg4XzFYMzI6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgzMl9QQURI SToKKysJY2FzZSBNRURJQV9CVVNfRk1UX1JHQjEwMTAxMF8xWDMwOgorKwljYXNlIE1FRElBX0JV U19GTVRfUkdCMTIxMjEyXzFYMzY6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0IxNjE2MTZfMVg0 ODoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1k4XzFYODoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1VW OF8xWDg6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9VWVZZOF8xXzVYODoKKysJY2FzZSBNRURJQV9C VVNfRk1UX1ZZVVk4XzFfNVg4OgorKwljYXNlIE1FRElBX0JVU19GTVRfWVVZVjhfMV81WDg6Cisr CWNhc2UgTUVESUFfQlVTX0ZNVF9ZVllVOF8xXzVYODoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1VZ Vlk4XzJYODoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1ZZVVk4XzJYODoKKysJY2FzZSBNRURJQV9C VVNfRk1UX1lVWVY4XzJYODoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1lWWVU4XzJYODoKKysJY2Fz ZSBNRURJQV9CVVNfRk1UX1kxMF8xWDEwOgorKwljYXNlIE1FRElBX0JVU19GTVRfVVlWWTEwXzJY MTA6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9WWVVZMTBfMlgxMDoKKysJY2FzZSBNRURJQV9CVVNf Rk1UX1lVWVYxMF8yWDEwOgorKwljYXNlIE1FRElBX0JVU19GTVRfWVZZVTEwXzJYMTA6CisrCWNh c2UgTUVESUFfQlVTX0ZNVF9ZMTJfMVgxMjoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1VZVlkxMl8y WDEyOgorKwljYXNlIE1FRElBX0JVU19GTVRfVllVWTEyXzJYMTI6CisrCWNhc2UgTUVESUFfQlVT X0ZNVF9ZVVlWMTJfMlgxMjoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1lWWVUxMl8yWDEyOgorKwlj YXNlIE1FRElBX0JVU19GTVRfVVlWWThfMVgxNjoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1ZZVVk4 XzFYMTY6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9ZVVlWOF8xWDE2OgorKwljYXNlIE1FRElBX0JV U19GTVRfWVZZVThfMVgxNjoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1lEWVVZRFlWOF8xWDE2Ogor KwljYXNlIE1FRElBX0JVU19GTVRfVVlWWTEwXzFYMjA6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9W WVVZMTBfMVgyMDoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1lVWVYxMF8xWDIwOgorKwljYXNlIE1F RElBX0JVU19GTVRfWVZZVTEwXzFYMjA6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9WVVk4XzFYMjQ6 CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9ZVVY4XzFYMjQ6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9V WVlWWVk4XzBfNVgyNDoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1VZVlkxMl8xWDI0OgorKwljYXNl IE1FRElBX0JVU19GTVRfVllVWTEyXzFYMjQ6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9ZVVlWMTJf MVgyNDoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1lWWVUxMl8xWDI0OgorKwljYXNlIE1FRElBX0JV U19GTVRfWVVWMTBfMVgzMDoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1VZWVZZWTEwXzBfNVgzMDoK KysJY2FzZSBNRURJQV9CVVNfRk1UX0FZVVY4XzFYMzI6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9V WVlWWVkxMl8wXzVYMzY6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9ZVVYxMl8xWDM2OgorKwljYXNl IE1FRElBX0JVU19GTVRfWVVWMTZfMVg0ODoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1VZWVZZWTE2 XzBfNVg0ODoKKysJY2FzZSBNRURJQV9CVVNfRk1UX0pQRUdfMVg4OgorKwljYXNlIE1FRElBX0JV U19GTVRfQUhTVjg4ODhfMVgzMjoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1NCR0dSOF8xWDg6Cisr CWNhc2UgTUVESUFfQlVTX0ZNVF9TR0JSRzhfMVg4OgorKwljYXNlIE1FRElBX0JVU19GTVRfU0dS Qkc4XzFYODoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1NSR0dCOF8xWDg6CisrCWNhc2UgTUVESUFf QlVTX0ZNVF9TQkdHUjEwXzFYMTA6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9TR0JSRzEwXzFYMTA6 CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9TR1JCRzEwXzFYMTA6CisrCWNhc2UgTUVESUFfQlVTX0ZN VF9TUkdHQjEwXzFYMTA6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9TQkdHUjEyXzFYMTI6CisrCWNh c2UgTUVESUFfQlVTX0ZNVF9TR0JSRzEyXzFYMTI6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9TR1JC RzEyXzFYMTI6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9TUkdHQjEyXzFYMTI6CisrCWNhc2UgTUVE SUFfQlVTX0ZNVF9TQkdHUjE0XzFYMTQ6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9TR0JSRzE0XzFY MTQ6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9TR1JCRzE0XzFYMTQ6CisrCWNhc2UgTUVESUFfQlVT X0ZNVF9TUkdHQjE0XzFYMTQ6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9TQkdHUjE2XzFYMTY6Cisr CWNhc2UgTUVESUFfQlVTX0ZNVF9TR0JSRzE2XzFYMTY6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9T R1JCRzE2XzFYMTY6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9TUkdHQjE2XzFYMTY6CisrCQlicmVh azsKKysJZGVmYXVsdDoKKysJCWZvcm1hdC0+Zm9ybWF0LmNvZGUgPSBNRURJQV9CVVNfRk1UX1k4 XzFYODsKKysJCWJyZWFrOworKwl9CisrCisrCWlmIChmb3JtYXQtPmZvcm1hdC5maWVsZCA9PSBW NEwyX0ZJRUxEX0FOWSkKKysJCWZvcm1hdC0+Zm9ybWF0LmZpZWxkID0gVjRMMl9GSUVMRF9OT05F OworKworKwkqc2luayA9IGZvcm1hdC0+Zm9ybWF0OworKwkqc3JjID0gKnNpbms7CisrCisrCXJl dHVybiAwOworK30KKysKKysvKioKKysgKiBjdnNfY3NpX2dldF9tYnVzX2NvbmZpZyAtIFByb3Zp ZGUgY3VycmVudCBDU0ktMiBidXMgY29uZmlndXJhdGlvbgorKyAqIEBzZDogU3ViLWRldmljZQor KyAqIEBwYWQ6IFBhZCBpbmRleAorKyAqIEBjZmc6IFJldHVybmVkIGJ1cyBjb25maWcKKysgKgor KyAqIEZpbGxzIGxhbmUgb3JkZXJpbmcgYW5kIG51bWJlciBvZiBsYW5lczsgcmV0cmlldmVzIGxp bmsgZnJlcXVlbmN5IGZyb20KKysgKiByZW1vdGUgZW50aXR5LgogKyAqCi0rICogVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotKyAq IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bmNlCi0rICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uCi0rICogMiBvZiB0aGUgTGljZW5jZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKysgKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBl cnJuby4KICsgKi8KKytzdGF0aWMgaW50IGN2c19jc2lfZ2V0X21idXNfY29uZmlnKHN0cnVjdCB2 NGwyX3N1YmRldiAqc2QsIHVuc2lnbmVkIGludCBwYWQsCisrCQkJCSAgIHN0cnVjdCB2NGwyX21i dXNfY29uZmlnICpjZmcpCisreworKwlzdHJ1Y3QgaWN2cyAqY3R4ID0gc2RfdG9fY3NpKHNkKTsK KysJczY0IGZyZXE7CiArCi0rI2RlZmluZSBwcl9mbXQoZm10KSBLQlVJTERfTU9ETkFNRSAiOiAi IGZtdAorKwljZmctPnR5cGUgPSBWNEwyX01CVVNfQ1NJMl9EUEhZOworKwlmb3IgKHVuc2lnbmVk IGludCBpID0gMDsgaSA8IFY0TDJfTUJVU19DU0kyX01BWF9EQVRBX0xBTkVTOyBpKyspCisrCQlj ZmctPmJ1cy5taXBpX2NzaTIuZGF0YV9sYW5lc1tpXSA9IGkgKyAxOworKwljZmctPmJ1cy5taXBp X2NzaTIubnVtX2RhdGFfbGFuZXMgPSBjdHgtPm5yX29mX2xhbmVzOwogKwotKyNpbmNsdWRlIDxs aW51eC9lZmkuaD4KLSsjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0rI2luY2x1ZGUgPGxpbnV4 L3ByaW50ay5oPgorKwlmcmVxID0gdjRsMl9nZXRfbGlua19mcmVxKGN0eC0+cmVtb3RlLCAwLCAw KTsKKysJaWYgKGZyZXEgPCAwKQorKwkJcmV0dXJuIC1FSU5WQUw7CisrCisrCWNmZy0+bGlua19m cmVxID0gZnJlcTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg djRsMl9zdWJkZXZfY29yZV9vcHMgY3ZzX2NzaV9zdWJkZXZfY29yZV9vcHMgPSB7CisrCS5zdWJz Y3JpYmVfZXZlbnQgPSB2NGwyX2N0cmxfc3ViZGV2X3N1YnNjcmliZV9ldmVudCwKKysJLnVuc3Vi c2NyaWJlX2V2ZW50ID0gdjRsMl9ldmVudF9zdWJkZXZfdW5zdWJzY3JpYmUsCisrfTsKKysKKytz dGF0aWMgY29uc3Qgc3RydWN0IHY0bDJfc3ViZGV2X3ZpZGVvX29wcyBjdnNfY3NpX3ZpZGVvX29w cyA9IHsKKysJLnNfc3RyZWFtID0gdjRsMl9zdWJkZXZfc19zdHJlYW1faGVscGVyLAorK307Cisr Cisrc3RhdGljIGNvbnN0IHN0cnVjdCB2NGwyX3N1YmRldl9wYWRfb3BzIGN2c19jc2lfcGFkX29w cyA9IHsKKysJLmdldF9mbXQgPSB2NGwyX3N1YmRldl9nZXRfZm10LAorKwkuc2V0X2ZtdCA9IGN2 c19jc2lfc2V0X2ZtdCwKKysJLmdldF9tYnVzX2NvbmZpZyA9IGN2c19jc2lfZ2V0X21idXNfY29u ZmlnLAorKwkuZW5hYmxlX3N0cmVhbXMgPSBjdnNfY3NpX2VuYWJsZV9zdHJlYW1zLAorKwkuZGlz YWJsZV9zdHJlYW1zID0gY3ZzX2NzaV9kaXNhYmxlX3N0cmVhbXMsCisrfTsKKysKKytzdGF0aWMg Y29uc3Qgc3RydWN0IHY0bDJfc3ViZGV2X29wcyBjdnNfY3NpX3N1YmRldl9vcHMgPSB7CisrCS5j b3JlID0gJmN2c19jc2lfc3ViZGV2X2NvcmVfb3BzLAorKwkudmlkZW8gPSAmY3ZzX2NzaV92aWRl b19vcHMsCisrCS5wYWQgPSAmY3ZzX2NzaV9wYWRfb3BzLAorK307CisrCisrc3RhdGljIGNvbnN0 IHN0cnVjdCB2NGwyX3N1YmRldl9pbnRlcm5hbF9vcHMgY3ZzX2NzaV9pbnRlcm5hbF9vcHMgPSB7 CisrCS5pbml0X3N0YXRlID0gY3ZzX2NzaV9pbml0X3N0YXRlLAorK307CisrCisrc3RhdGljIGNv bnN0IHN0cnVjdCBtZWRpYV9lbnRpdHlfb3BlcmF0aW9ucyBjdnNfY3NpX2VudGl0eV9vcHMgPSB7 CisrCS5saW5rX3ZhbGlkYXRlID0gdjRsMl9zdWJkZXZfbGlua192YWxpZGF0ZSwKKyt9OwogKwog Ky8qCi0rICogRGVjaWRlIHdoYXQgdG8gZG8gd2hlbiBVRUZJIHNlY3VyZSBib290IG1vZGUgaXMg ZW5hYmxlZC4KKysgKiBBc3luYyBub3RpZmllcgogKyAqLwotK3ZvaWQgX19pbml0IGVmaV9zZXRf c2VjdXJlX2Jvb3QoZW51bSBlZmlfc2VjdXJlYm9vdF9tb2RlIG1vZGUpCisrLyoqCisrICogY3Zz X2NzaV9ub3RpZnlfYm91bmQgLSBSZW1vdGUgc2Vuc29yIGJvdW5kIGNhbGxiYWNrCisrICogQG5v dGlmaWVyOiBBc3luYyBub3RpZmllcgorKyAqIEBzZDogUmVtb3RlIHN1YmRldgorKyAqIEBhc2M6 IEFzeW5jIG1hdGNoIGNvbm5lY3Rpb24KKysgKgorKyAqIExvY2F0ZXMgdGhlIHNvdXJjZSBwYWQg b2YgdGhlIHJlbW90ZSBzZW5zb3IgYW5kIGNyZWF0ZXMgYSBtZWRpYSBsaW5rIHRvCisrICogdGhl IENWUyBicmlkZ2Ugc2luayBwYWQgZW5hYmxpbmcgaXQgYnkgZGVmYXVsdC4KKysgKgorKyAqIFJl dHVybjogMCBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIGVycm5vLgorKyAqLworK3N0YXRpYyBpbnQg Y3ZzX2NzaV9ub3RpZnlfYm91bmQoc3RydWN0IHY0bDJfYXN5bmNfbm90aWZpZXIgKm5vdGlmaWVy LAorKwkJCQlzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLAorKwkJCQlzdHJ1Y3QgdjRsMl9hc3luY19j b25uZWN0aW9uICphc2MpCiArewotKwlpZiAoZWZpX2VuYWJsZWQoRUZJX0JPT1QpKSB7Ci0rCQlz d2l0Y2ggKG1vZGUpIHsKLSsJCWNhc2UgZWZpX3NlY3VyZWJvb3RfbW9kZV9kaXNhYmxlZDoKLSsJ CQlwcl9pbmZvKCJTZWN1cmUgYm9vdCBkaXNhYmxlZFxuIik7Ci0rCQkJYnJlYWs7Ci0rCQljYXNl IGVmaV9zZWN1cmVib290X21vZGVfZW5hYmxlZDoKLSsJCQlzZXRfYml0KEVGSV9TRUNVUkVfQk9P VCwgJmVmaS5mbGFncyk7Ci0rCQkJcHJfaW5mbygiU2VjdXJlIGJvb3QgZW5hYmxlZFxuIik7Ci0r CQkJYnJlYWs7Ci0rCQlkZWZhdWx0OgotKwkJCXByX3dhcm4oIlNlY3VyZSBib290IGNvdWxkIG5v dCBiZSBkZXRlcm1pbmVkIChtb2RlICV1KVxuIiwKLSsJCQkJICAgbW9kZSk7Ci0rCQkJYnJlYWs7 Ci0rCQl9Ci0rCX0KKysJc3RydWN0IGljdnMgKmN0eCA9IG5vdGlmaWVyX3RvX2NzaShub3RpZmll cik7CisrCWludCBwYWQ7CisrCisrCXBhZCA9IG1lZGlhX2VudGl0eV9nZXRfZndub2RlX3BhZCgm c2QtPmVudGl0eSwgYXNjLT5tYXRjaC5md25vZGUsCisrCQkJCQkgIE1FRElBX1BBRF9GTF9TT1VS Q0UpOworKwlpZiAocGFkIDwgMCkKKysJCXJldHVybiBwYWQ7CisrCisrCWN0eC0+cmVtb3RlID0g JnNkLT5lbnRpdHkucGFkc1twYWRdOworKworKwlyZXR1cm4gbWVkaWFfY3JlYXRlX3BhZF9saW5r KCZzZC0+ZW50aXR5LCBwYWQsICZjdHgtPnN1YmRldi5lbnRpdHksCisrCQkJCSAgICAgSUNWU19D U0lfUEFEX1NJTkssIE1FRElBX0xOS19GTF9FTkFCTEVEIHwKKysJCQkJICAgICBNRURJQV9MTktf RkxfSU1NVVRBQkxFKTsKICt9Ci1kaWZmIC0tZ2l0IGEvZHJpdmVycy9od3RyYWNpbmcvY29yZXNp Z2h0L2NvcmVzaWdodC1ldG00eC1jb3JlLmMgYi9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQv Y29yZXNpZ2h0LWV0bTR4LWNvcmUuYwotaW5kZXggYTI1MTM3NWRiMjRiLi4yYjUzMzdlYWViNmQg MTAwNjQ0Ci0tLS0gYS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWV0bTR4 LWNvcmUuYwotKysrIGIvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC1ldG00 eC1jb3JlLmMKLUBAIC0xMiw2ICsxMiw3IEBACi0gI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSAj aW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+Ci0rI2lu Y2x1ZGUgPGxpbnV4L2RtaS5oPgotICNpbmNsdWRlIDxsaW51eC9pby5oPgotICNpbmNsdWRlIDxs aW51eC9lcnIuaD4KLSAjaW5jbHVkZSA8bGludXgvZnMuaD4KLUBAIC0yNTQ3LDYgKzI1NDgsMTYg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWJhX2lkIGV0bTRfaWRzW10gPSB7Ci0gCXt9LAotIH07 Ci0gCi0rc3RhdGljIGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkIGJyb2tlbl9jb3Jlc2lnaHRb XSA9IHsKLSsJewotKwkJLm1hdGNoZXMgPSB7Ci0rCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9S LCAiSFBFIiksCi0rCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJBcG9sbG8gNzAiKSwK LSsJCX0sCi0rCX0sCi0rCXsgfQkvKiB0ZXJtaW5hdGluZyBlbnRyeSAqLworKworKy8qKgorKyAq IGN2c19jc2lfbm90aWZ5X3VuYmluZCAtIFJlbW90ZSBzZW5zb3IgdW5iaW5kIGNhbGxiYWNrCisr ICogQG5vdGlmaWVyOiBOb3RpZmllcgorKyAqIEBzZDogUmVtb3RlIHN1YmRldgorKyAqIEBhc2M6 IENvbm5lY3Rpb24KKysgKi8KKytzdGF0aWMgdm9pZCBjdnNfY3NpX25vdGlmeV91bmJpbmQoc3Ry dWN0IHY0bDJfYXN5bmNfbm90aWZpZXIgKm5vdGlmaWVyLAorKwkJCQkgIHN0cnVjdCB2NGwyX3N1 YmRldiAqc2QsCisrCQkJCSAgc3RydWN0IHY0bDJfYXN5bmNfY29ubmVjdGlvbiAqYXNjKQorK3sK KysJc3RydWN0IGljdnMgKmN0eCA9IG5vdGlmaWVyX3RvX2NzaShub3RpZmllcik7CisrCisrCWN0 eC0+cmVtb3RlID0gTlVMTDsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCB2NGwyX2FzeW5j X25vdGlmaWVyX29wZXJhdGlvbnMgY3ZzX2NzaV9ub3RpZnlfb3BzID0geworKwkuYm91bmQgPSBj dnNfY3NpX25vdGlmeV9ib3VuZCwKKysJLnVuYmluZCA9IGN2c19jc2lfbm90aWZ5X3VuYmluZCwK ICt9OwogKwotIE1PRFVMRV9ERVZJQ0VfVEFCTEUoYW1iYSwgZXRtNF9pZHMpOwotIAotIHN0YXRp YyBzdHJ1Y3QgYW1iYV9kcml2ZXIgZXRtNHhfYW1iYV9kcml2ZXIgPSB7Ci1AQCAtMjYyMSw2ICsy NjMyLDExIEBAIHN0YXRpYyBpbnQgX19pbml0IGV0bTR4X2luaXQodm9pZCkKLSB7Ci0gCWludCBy ZXQ7Ci0gCi0rCWlmIChkbWlfY2hlY2tfc3lzdGVtKGJyb2tlbl9jb3Jlc2lnaHQpKSB7Ci0rCQlw cl9pbmZvKCJFVE00IGRpc2FibGVkIGR1ZSB0byBmaXJtd2FyZSBidWdcbiIpOwotKwkJcmV0dXJu IDA7CisrLyoKKysgKiBDb250cm9scworKyAqLworKy8qKgorKyAqIGN2c19jc2lfaW5pdF9jb250 cm9scyAtIEluaXRpYWxpemUgVjRMMiBjb250cm9scworKyAqIEBjdHg6IENWUyBjb250ZXh0Cisr ICoKKysgKiBDdXJyZW50bHkgc2V0cyB1cCBhIHJlYWQtb25seSBwcml2YWN5IGNvbnRyb2wgcGxh Y2Vob2xkZXIuCisrICoKKysgKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBlcnJu by4KKysgKi8KKytzdGF0aWMgaW50IGN2c19jc2lfaW5pdF9jb250cm9scyhzdHJ1Y3QgaWN2cyAq Y3R4KQorK3sKKysJc3RydWN0IHY0bDJfY3RybCAqcHJpdmFjeV9jdHJsOworKworKwl2NGwyX2N0 cmxfaGFuZGxlcl9pbml0KCZjdHgtPmN0cmxfaGFuZGxlciwgMSk7CisrCisrCXByaXZhY3lfY3Ry bCA9IHY0bDJfY3RybF9uZXdfc3RkKCZjdHgtPmN0cmxfaGFuZGxlciwgTlVMTCwKKysJCQkJCSBW NEwyX0NJRF9QUklWQUNZLCAwLCAxLCAxLCAwKTsKKysJaWYgKHByaXZhY3lfY3RybCkKKysJCXBy aXZhY3lfY3RybC0+ZmxhZ3MgfD0gVjRMMl9DVFJMX0ZMQUdfUkVBRF9PTkxZOworKwlpZiAoY3R4 LT5jdHJsX2hhbmRsZXIuZXJyb3IpIHsKKysJCXY0bDJfY3RybF9oYW5kbGVyX2ZyZWUoJmN0eC0+ Y3RybF9oYW5kbGVyKTsKKysJCXJldHVybiBjdHgtPmN0cmxfaGFuZGxlci5lcnJvcjsKICsJfQog KwotIAlyZXQgPSBldG00X3BtX3NldHVwKCk7Ci0gCi0gCS8qIGV0bTRfcG1fc2V0dXAoKSBkb2Vz IGl0cyBvd24gY2xlYW51cCAtIGV4aXQgb24gZXJyb3IgKi8KLUBAIC0yNjQ3LDYgKzI2NjMsOSBA QCBzdGF0aWMgaW50IF9faW5pdCBldG00eF9pbml0KHZvaWQpCi0gCi0gc3RhdGljIHZvaWQgX19l eGl0IGV0bTR4X2V4aXQodm9pZCkKLSB7Ci0rCWlmIChkbWlfY2hlY2tfc3lzdGVtKGJyb2tlbl9j b3Jlc2lnaHQpKQotKwkJcmV0dXJuOworKwljdHgtPnN1YmRldi5jdHJsX2hhbmRsZXIgPSAmY3R4 LT5jdHJsX2hhbmRsZXI7CiArCi0gCWFtYmFfZHJpdmVyX3VucmVnaXN0ZXIoJmV0bTR4X2FtYmFf ZHJpdmVyKTsKLSAJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJmV0bTRfcGxhdGZvcm1fZHJp dmVyKTsKLSAJZXRtNF9wbV9jbGVhcigpOwotZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvaW9t bXUuYyBiL2RyaXZlcnMvaW9tbXUvaW9tbXUuYwotaW5kZXggZDFhOWU3MTNkM2EwLi45NDA0NTgz NzA3MzAgMTAwNjQ0Ci0tLS0gYS9kcml2ZXJzL2lvbW11L2lvbW11LmMKLSsrKyBiL2RyaXZlcnMv aW9tbXUvaW9tbXUuYwotQEAgLTgsNiArOCw3IEBACi0gCi0gI2luY2x1ZGUgPGxpbnV4L2FtYmEv YnVzLmg+Ci0gI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgotKyNpbmNsdWRlIDxsaW51eC9kbWku aD4KLSAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0gI2luY2x1ZGUgPGxpbnV4L2JpdHMuaD4K LSAjaW5jbHVkZSA8bGludXgvYnVnLmg+Ci1AQCAtMzEzNiw2ICszMTM3LDI3IEBAIGludCBpb21t dV9md3NwZWNfYWRkX2lkcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHUzMiAqaWRzLCBpbnQg bnVtX2lkcykKLSB9Ci0gRVhQT1JUX1NZTUJPTF9HUEwoaW9tbXVfZndzcGVjX2FkZF9pZHMpOwot IAotKyNpZmRlZiBDT05GSUdfQVJNNjQKLStzdGF0aWMgaW50IF9faW5pdCBpb21tdV9xdWlya3Mo dm9pZCkKKysJcmV0dXJuIDA7CisrfQorKworKy8qCisrICogRmlybXdhcmUgKGdyYXBoKSBwYXJz aW5nCisrICovCisrLyoqCisrICogY3ZzX2NzaV9wYXJzZV9maXJtd2FyZSAtIFBhcnNlIGZpcm13 YXJlIChBQ1BJIGdyYXBoKSBlbmRwb2ludHMKKysgKiBAY3R4OiBDVlMgY29udGV4dAorKyAqCisr ICogRGlzY292ZXJzIHNpbmsgYW5kIHJlbW90ZSBzb3VyY2UgZW5kcG9pbnRzLCB2YWxpZGF0ZXMg bGFuZSBjb3VudHMgYW5kCisrICogcmVnaXN0ZXJzIGFuIGFzeW5jIG5vdGlmaWVyIGZvciB0aGUg cmVtb3RlIHNlbnNvci4KKysgKgorKyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZl IGVycm5vLgorKyAqLworK3N0YXRpYyBpbnQgY3ZzX2NzaV9wYXJzZV9maXJtd2FyZShzdHJ1Y3Qg aWN2cyAqY3R4KQogK3sKLSsJY29uc3QgY2hhciAqdmVuZG9yLCAqbmFtZTsKKysJc3RydWN0IHY0 bDJfZndub2RlX2VuZHBvaW50IGVwID0geyAuYnVzX3R5cGUgPSBWNEwyX01CVVNfQ1NJMl9EUEhZ IH07CisrCXN0cnVjdCBkZXZpY2UgKmRldiA9IGN2c19kZXYoY3R4KTsKKysJc3RydWN0IGZ3bm9k ZV9oYW5kbGUgKnNpbmtfZXAsICpzb3VyY2VfZXA7CisrCXN0cnVjdCB2NGwyX2FzeW5jX2Nvbm5l Y3Rpb24gKmFzYzsKKysJaW50IHJldDsKICsKLSsJdmVuZG9yID0gZG1pX2dldF9zeXN0ZW1faW5m byhETUlfU1lTX1ZFTkRPUik7Ci0rCW5hbWUgPSBkbWlfZ2V0X3N5c3RlbV9pbmZvKERNSV9QUk9E VUNUX05BTUUpOworKwlzaW5rX2VwID0gZndub2RlX2dyYXBoX2dldF9lbmRwb2ludF9ieV9pZChk ZXZfZndub2RlKGRldiksIDAsIDAsIDApOworKwl2NGwyX2FzeW5jX3N1YmRldl9uZl9pbml0KCZj dHgtPm5vdGlmaWVyLCAmY3R4LT5zdWJkZXYpOworKwljdHgtPm5vdGlmaWVyLm9wcyA9ICZjdnNf Y3NpX25vdGlmeV9vcHM7CiArCi0rCWlmICh2ZW5kb3IgJiYKLSsJICAgIChzdHJuY21wKHZlbmRv ciwgIkdJR0FCWVRFIiwgOCkgPT0gMCAmJiBuYW1lICYmCi0rCSAgICAgKHN0cm5jbXAobmFtZSwg IlIxMjAiLCA0KSA9PSAwIHx8Ci0rCSAgICAgIHN0cm5jbXAobmFtZSwgIlIyNzAiLCA0KSA9PSAw KSkpIHsKLSsJCXByX3dhcm4oIkdpZ2FieXRlICVzIGRldGVjdGVkLCBmb3JjZSBpb21tdSBwYXNz dGhyb3VnaCBtb2RlIiwgbmFtZSk7Ci0rCQlpb21tdV9kZWZfZG9tYWluX3R5cGUgPSBJT01NVV9E T01BSU5fSURFTlRJVFk7CisrCXJldCA9IHY0bDJfZndub2RlX2VuZHBvaW50X3BhcnNlKHNpbmtf ZXAsICZlcCk7CisrCWlmIChyZXQpCisrCQlnb3RvIGVycl9uZl9jbGVhbnVwOworKworKwljdHgt Pm5yX29mX2xhbmVzID0gZXAuYnVzLm1pcGlfY3NpMi5udW1fZGF0YV9sYW5lczsKKysJc291cmNl X2VwID0gZndub2RlX2dyYXBoX2dldF9lbmRwb2ludF9ieV9pZChkZXZfZndub2RlKGRldiksIDEs IDAsIDApOworKwlyZXQgPSB2NGwyX2Z3bm9kZV9lbmRwb2ludF9wYXJzZShzb3VyY2VfZXAsICZl cCk7CisrCWZ3bm9kZV9oYW5kbGVfcHV0KHNvdXJjZV9lcCk7CisrCWlmIChyZXQpCisrCQlnb3Rv IGVycl9uZl9jbGVhbnVwOworKworKwlpZiAoY3R4LT5ucl9vZl9sYW5lcyAhPSBlcC5idXMubWlw aV9jc2kyLm51bV9kYXRhX2xhbmVzKSB7CisrCQlyZXQgPSAtRUlOVkFMOworKwkJZ290byBlcnJf bmZfY2xlYW51cDsKICsJfQogKworKwlhc2MgPSB2NGwyX2FzeW5jX25mX2FkZF9md25vZGVfcmVt b3RlKCZjdHgtPm5vdGlmaWVyLCBzaW5rX2VwLAorKwkJCQkJICAgICAgc3RydWN0IHY0bDJfYXN5 bmNfY29ubmVjdGlvbik7CisrCWlmIChJU19FUlIoYXNjKSkgeworKwkJcmV0ID0gUFRSX0VSUihh c2MpOworKwkJZ290byBlcnJfbmZfY2xlYW51cDsKKysJfQorKworKwlyZXQgPSB2NGwyX2FzeW5j X25mX3JlZ2lzdGVyKCZjdHgtPm5vdGlmaWVyKTsKKysJaWYgKHJldCkKKysJCWdvdG8gZXJyX25m X2NsZWFudXA7CisrCisrCWZ3bm9kZV9oYW5kbGVfcHV0KHNpbmtfZXApOworKwogKwlyZXR1cm4g MDsKKysKKytlcnJfbmZfY2xlYW51cDoKKysJdjRsMl9hc3luY19uZl9jbGVhbnVwKCZjdHgtPm5v dGlmaWVyKTsKKysJZndub2RlX2hhbmRsZV9wdXQoc2lua19lcCk7CisrCisrCXJldHVybiByZXQ7 CiArfQotK2FyY2hfaW5pdGNhbGwoaW9tbXVfcXVpcmtzKTsKLSsjZW5kaWYKICsKLSAvKioKLSAg KiBpb21tdV9zZXR1cF9kZWZhdWx0X2RvbWFpbiAtIFNldCB0aGUgZGVmYXVsdF9kb21haW4gZm9y IHRoZSBncm91cAotICAqIEBncm91cDogR3JvdXAgdG8gY2hhbmdlCi1kaWZmIC0tZ2l0IGEvZHJp dmVycy9tZWRpYS9pMmMvS2NvbmZpZyBiL2RyaXZlcnMvbWVkaWEvaTJjL0tjb25maWcKLWluZGV4 IDhmMmJhNDEyMTU4Ni4uZTExNDM1NzlhZTNkIDEwMDY0NAotLS0tIGEvZHJpdmVycy9tZWRpYS9p MmMvS2NvbmZpZwotKysrIGIvZHJpdmVycy9tZWRpYS9pMmMvS2NvbmZpZwotQEAgLTI4Nyw2ICsy ODcsMTYgQEAgY29uZmlnIFZJREVPX0lNWDQxNQotIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIg YXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQotIAkgIG1vZHVsZSB3aWxsIGJlIGNhbGxl ZCBpbXg0MTUuCi0gCi0rY29uZmlnIFZJREVPX0lNWDQ3MQotKwl0cmlzdGF0ZSAiU29ueSBJTVg0 NzEgc2Vuc29yIHN1cHBvcnQiCi0rCXNlbGVjdCBWNEwyX0NDSV9JMkMKLSsJaGVscAotKwkgIFRo aXMgaXMgYSBWaWRlbzRMaW51eDIgc2Vuc29yIGRyaXZlciBmb3IgdGhlIFNvbnkKLSsJICBJTVg0 NzEgY2FtZXJhLgorKy8qCisrICogUHVibGljIENTSSBpbml0L2NsZWFudXAgdXNlZCBieSBjb3Jl IHByb2JlL3JlbW92ZQorKyAqLworKy8qKgorKyAqIGN2c19jc2lfaW5pdCAtIEluaXRpYWxpemUg Q1NJL1Y0TDIgc3ViLWRldmljZSBzaWRlIG9mIGJyaWRnZQorKyAqIEBjdHg6IENWUyBjb250ZXh0 CisrICogQGRldjogUGFyZW50IGRldmljZQorKyAqIEBpMmM6IEkyQyBjbGllbnQgKG1heSBiZSBO VUxMIGZvciBwbGF0Zm9ybSBtb2RlKQorKyAqCisrICogU2V0cyB1cCBzdWItZGV2aWNlLCBtZWRp YSBlbnRpdHkgcGFkcywgYXN5bmMgbm90aWZpZXIsIGNvbnRyb2xzIGFuZAorKyAqIHJlZ2lzdGVy cyB3aXRoIHRoZSBWNEwyIGZyYW1ld29yay4KKysgKgorKyAqIFJldHVybjogMCBvbiBzdWNjZXNz IG9yIG5lZ2F0aXZlIGVycm5vLgorKyAqLworK2ludCBjdnNfY3NpX2luaXQoc3RydWN0IGljdnMg KmN0eCwgc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjKQorK3sKKysJ aW50IHJldDsKICsKLSsJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9v c2UgTSBoZXJlOiB0aGUKLSsJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgaW14NDcxLgorKwlpZiAo aTJjKSB7CisrCQl2NGwyX2kyY19zdWJkZXZfaW5pdCgmY3R4LT5zdWJkZXYsIGkyYywgJmN2c19j c2lfc3ViZGV2X29wcyk7CisrCX0gZWxzZSB7CisrCQl2NGwyX3N1YmRldl9pbml0KCZjdHgtPnN1 YmRldiwgJmN2c19jc2lfc3ViZGV2X29wcyk7CisrCQljdHgtPnN1YmRldi5kZXYgPSBkZXY7Cisr CX0KICsKLSBjb25maWcgVklERU9fTUFYOTI3MV9MSUIKLSAJdHJpc3RhdGUKLSAKLWRpZmYgLS1n aXQgYS9kcml2ZXJzL21lZGlhL2kyYy9NYWtlZmlsZSBiL2RyaXZlcnMvbWVkaWEvaTJjL01ha2Vm aWxlCi1pbmRleCA5MGIyNzZhNzQxN2EuLmY1YzlmYTkzZGM0NyAxMDA2NDQKLS0tLSBhL2RyaXZl cnMvbWVkaWEvaTJjL01ha2VmaWxlCi0rKysgYi9kcml2ZXJzL21lZGlhL2kyYy9NYWtlZmlsZQot QEAgLTYxLDYgKzYxLDcgQEAgb2JqLSQoQ09ORklHX1ZJREVPX0lNWDMzNSkgKz0gaW14MzM1Lm8K LSBvYmotJChDT05GSUdfVklERU9fSU1YMzU1KSArPSBpbXgzNTUubwotIG9iai0kKENPTkZJR19W SURFT19JTVg0MTIpICs9IGlteDQxMi5vCi0gb2JqLSQoQ09ORklHX1ZJREVPX0lNWDQxNSkgKz0g aW14NDE1Lm8KLStvYmotJChDT05GSUdfVklERU9fSU1YNDcxKSArPSBpbXg0NzEubwotIG9iai0k KENPTkZJR19WSURFT19JUl9JMkMpICs9IGlyLWtiZC1pMmMubwotIG9iai0kKENPTkZJR19WSURF T19JU0w3OTk4WCkgKz0gaXNsNzk5OHgubwotIG9iai0kKENPTkZJR19WSURFT19LUzAxMjcpICs9 IGtzMDEyNy5vCisrCWN0eC0+c3ViZGV2LmludGVybmFsX29wcyA9ICZjdnNfY3NpX2ludGVybmFs X29wczsKKysJdjRsMl9zZXRfc3ViZGV2ZGF0YSgmY3R4LT5zdWJkZXYsIGN0eCk7CisrCWN0eC0+ c3ViZGV2LmZsYWdzID0gVjRMMl9TVUJERVZfRkxfSEFTX0RFVk5PREU7CisrCWN0eC0+c3ViZGV2 LmVudGl0eS5mdW5jdGlvbiA9IE1FRElBX0VOVF9GX1ZJRF9JRl9CUklER0U7CisrCWN0eC0+c3Vi ZGV2LmVudGl0eS5vcHMgPSAmY3ZzX2NzaV9lbnRpdHlfb3BzOworKwlzbnByaW50ZihjdHgtPnN1 YmRldi5uYW1lLCBzaXplb2YoY3R4LT5zdWJkZXYubmFtZSksICJJbnRlbCBDVlMiKTsKKysKKysJ cmV0ID0gY3ZzX2NzaV9wYXJzZV9maXJtd2FyZShjdHgpOworKwlpZiAocmV0KQorKwkJcmV0dXJu IHJldDsKKysKKysJcmV0ID0gY3ZzX2NzaV9pbml0X2NvbnRyb2xzKGN0eCk7CisrCWlmIChyZXQp CisrCQlnb3RvIGVycl9uZl91bnJlZzsKKysKKysJY3R4LT5wYWRzW0lDVlNfQ1NJX1BBRF9TT1VS Q0VdLmZsYWdzID0gTUVESUFfUEFEX0ZMX1NPVVJDRTsKKysJY3R4LT5wYWRzW0lDVlNfQ1NJX1BB RF9TSU5LXS5mbGFncyA9IE1FRElBX1BBRF9GTF9TSU5LOworKwlyZXQgPSBtZWRpYV9lbnRpdHlf cGFkc19pbml0KCZjdHgtPnN1YmRldi5lbnRpdHksIElDVlNfQ1NJX05VTV9QQURTLAorKwkJCQkg ICAgIGN0eC0+cGFkcyk7CisrCWlmIChyZXQpCisrCQlnb3RvIGVycl9jdHJsX2NsZWFudXA7Cisr CisrCWN0eC0+c3ViZGV2LnN0YXRlX2xvY2sgPSBjdHgtPmN0cmxfaGFuZGxlci5sb2NrOworKwly ZXQgPSB2NGwyX3N1YmRldl9pbml0X2ZpbmFsaXplKCZjdHgtPnN1YmRldik7CisrCWlmIChyZXQp CisrCQlnb3RvIGVycl9lbnRpdHlfY2xlYW51cDsKKysKKysJcmV0ID0gdjRsMl9hc3luY19yZWdp c3Rlcl9zdWJkZXYoJmN0eC0+c3ViZGV2KTsKKysJaWYgKHJldCkKKysJCWdvdG8gZXJyX2VudGl0 eV9jbGVhbnVwOworKworKwlyZXR1cm4gMDsKKysKKytlcnJfZW50aXR5X2NsZWFudXA6CisrCW1l ZGlhX2VudGl0eV9jbGVhbnVwKCZjdHgtPnN1YmRldi5lbnRpdHkpOworKworK2Vycl9jdHJsX2Ns ZWFudXA6CisrCXY0bDJfY3RybF9oYW5kbGVyX2ZyZWUoJmN0eC0+Y3RybF9oYW5kbGVyKTsKKysK KytlcnJfbmZfdW5yZWc6CisrCXY0bDJfYXN5bmNfbmZfdW5yZWdpc3RlcigmY3R4LT5ub3RpZmll cik7CisrCXY0bDJfYXN5bmNfbmZfY2xlYW51cCgmY3R4LT5ub3RpZmllcik7CisrCisrCXJldHVy biByZXQ7CisrfQorKworKy8qKgorKyAqIGN2c19jc2lfcmVtb3ZlIC0gQ2xlYW51cCBDU0kvVjRM MiBzdWItZGV2aWNlCisrICogQGN0eDogQ1ZTIGNvbnRleHQKKysgKi8KKyt2b2lkIGN2c19jc2lf cmVtb3ZlKHN0cnVjdCBpY3ZzICpjdHgpCisreworKwl2NGwyX2FzeW5jX25mX3VucmVnaXN0ZXIo JmN0eC0+bm90aWZpZXIpOworKwl2NGwyX2FzeW5jX25mX2NsZWFudXAoJmN0eC0+bm90aWZpZXIp OworKwl2NGwyX2N0cmxfaGFuZGxlcl9mcmVlKCZjdHgtPmN0cmxfaGFuZGxlcik7CisrCXY0bDJf YXN5bmNfdW5yZWdpc3Rlcl9zdWJkZXYoJmN0eC0+c3ViZGV2KTsKKysJdjRsMl9zdWJkZXZfY2xl YW51cCgmY3R4LT5zdWJkZXYpOworKwltZWRpYV9lbnRpdHlfY2xlYW51cCgmY3R4LT5zdWJkZXYu ZW50aXR5KTsKKyt9CisrCisrTU9EVUxFX0FVVEhPUigiTWlndWVsIFZhZGlsbG8gPG1pZ3VlbC52 YWRpbGxvQGludGVsLmNvbT4iKTsKKytNT0RVTEVfREVTQ1JJUFRJT04oIkNTSS9WNEwyIHN1cHBv cnQgZm9yIEludGVsIFZpc2lvbiBTZW5zaW5nIENvbnRyb2xsZXIiKTsKKytNT0RVTEVfTElDRU5T RSgiR1BMIik7CiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9pMmMvaW14NDcxLmMgYi9kcml2 ZXJzL21lZGlhL2kyYy9pbXg0NzEuYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAw MDAwMDAwMC4uNmQzNThiMTFlOTZkCkBAIC02NTgxLDEwICs4OTU5LDEwIEBAIGluZGV4IDExNWJi Mzc1NzdhMS4uNGI5Yjg2NzQyZDZhIDEwMDY0NAogIAlkZWZhdWx0OgogIAkJKmNvbl9pZCA9ICJ1 bmtub3duIjsKIGRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5jIGIvZHJpdmVycy91 c2IvY29yZS9odWIuYwotaW5kZXggMjQ5NjBiYTljYWE5Li4zMjU5N2NkYjcyZWYgMTAwNjQ0Citp bmRleCA1NGMwOTFjYjM2NjEuLmUyYTcyZDYyYTFkOSAxMDA2NDQKIC0tLSBhL2RyaXZlcnMvdXNi L2NvcmUvaHViLmMKICsrKyBiL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMKLUBAIC01ODk0LDYgKzU4 OTQsMTMgQEAgc3RhdGljIHZvaWQgaHViX2V2ZW50KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK K0BAIC01ODk5LDYgKzU4OTksMTMgQEAgc3RhdGljIHZvaWQgaHViX2V2ZW50KHN0cnVjdCB3b3Jr X3N0cnVjdCAqd29yaykKICAJCQkodTE2KSBodWItPmNoYW5nZV9iaXRzWzBdLAogIAkJCSh1MTYp IGh1Yi0+ZXZlbnRfYml0c1swXSk7CiAgCkBAIC02NzczLDYgKzkxNTEsMjAgQEAgaW5kZXggNTkw YmEyOWM4NWFiLi4wMjE1M2Q4NTc1MzEgMTAwNjQ0CiAgfQogIAogIGludCBtb2R1bGVfc2lnX2No ZWNrKHN0cnVjdCBsb2FkX2luZm8gKmluZm8sIGludCBmbGFncykKK2RpZmYgLS1naXQgYS9uZXQv Y29yZS9wYWdlX3Bvb2wuYyBiL25ldC9jb3JlL3BhZ2VfcG9vbC5jCitpbmRleCA4MTcxZDExNzMy MjEuLjFjZGIwYTgwZThiMyAxMDA2NDQKKy0tLSBhL25ldC9jb3JlL3BhZ2VfcG9vbC5jCisrKysg Yi9uZXQvY29yZS9wYWdlX3Bvb2wuYworQEAgLTEwNjUsNyArMTA2NSw4IEBAIG5ldG1lbV9yZWYg cGFnZV9wb29sX2FsbG9jX2ZyYWdfbmV0bWVtKHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wsCisgCWlm IChXQVJOX09OKHNpemUgPiBtYXhfc2l6ZSkpCisgCQlyZXR1cm4gMDsKKyAKKy0Jc2l6ZSA9IEFM SUdOKHNpemUsIGRtYV9nZXRfY2FjaGVfYWxpZ25tZW50KCkpOworKwlzaXplID0gQUxJR04oc2l6 ZSwgbWF4X3QodW5zaWduZWQgaW50LCBkbWFfZ2V0X2NhY2hlX2FsaWdubWVudCgpLAorKwkJCQkg X19hbGlnbm9mX18oc3RydWN0IHNrYl9zaGFyZWRfaW5mbykpKTsKKyAJKm9mZnNldCA9IHBvb2wt PmZyYWdfb2Zmc2V0OworIAorIAlpZiAobmV0bWVtICYmICpvZmZzZXQgKyBzaXplID4gbWF4X3Np emUpIHsKIGRpZmYgLS1naXQgYS9zY3JpcHRzL01ha2VmaWxlLmxpYiBiL3NjcmlwdHMvTWFrZWZp bGUubGliCiBpbmRleCAwNzE4ZTM5Y2VkZGEuLjEwZTk0YTFiOGI2ZSAxMDA2NDQKIC0tLSBhL3Nj cmlwdHMvTWFrZWZpbGUubGliCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXgg ZTczMDhjNi4uMDYxOTcxZiAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0x LDMgKzEsMyBAQAotU0hBNTEyIChsaW51eC03LjEuMTIudGFyLnh6KSA9IGE3YWNmZThkNmMzOWYw ZDljNTM3ZWIwMzYwZmJlNGRmODM1MDAzYmM2OTQ0YTViOTg3YzIyNDZkYzA2Y2ZmMzM0OWE5YzBk NjIwMGQ1NTBlZGUzNzUxMDEyOWM3OWMyOTdmNmMyOGFmYmIzMWViZGE3NjIwNjkwZTVlMDJmOGU0 Ci1TSEE1MTIgKGtlcm5lbC1hYmktc3RhYmxlbGlzdHMtNy4xLjEyLnRhci54eikgPSBiMzM1YTcz NTA3YWNiNDAxZDlkYjZhMmY5NzFkN2EzMTc0ZTEyMDcwOWQwOTMyNWRjNDY0ODRhNmE3NGI1MzRh YzI0NzcxMjFjYmI0YTNmMmIyZTg2YmU2NzdlOGVlOWVmNWIxYTAyNDExY2Q2ODYwZDUxMjhjNWY3 MGM3N2M5NAotU0hBNTEyIChrZXJuZWwta2FiaS1kdy03LjEuMTIudGFyLnh6KSA9IDEyNzkxZGE3 YzNmZDc1NmZhYjcwYTcwZmJkOTFiMjdmYjdhYTdmZDZiNDZmNTllM2NkODgzZmVlMGQxYzM2ZGJm MmZiYTg2MTA4OGU2MGJmNzUxOTY0MWM5NGJmZWRmMTFkYmVhNTFhNjBlNDkwYWRlMDk1MjE5MTQw ZWE1NjlhCitTSEE1MTIgKGxpbnV4LTcuMS4xMy50YXIueHopID0gOWUwY2IxMGI2MjI1NmY2NjA5 YmQ1MDQzNWZiNzhmOTIyMWRjNThiYmRjZGQyNzk1Mjk3NWYzOGRmNWVkMjAxZTc0MTZjYzllNTU2 YWQyMmRhMjVlNzhiOTc0NzU1NTU0MTU0NzdhYzdjODg3NDIwYjBiM2M5N2JjNGMxMjk1NGYKK1NI QTUxMiAoa2VybmVsLWFiaS1zdGFibGVsaXN0cy03LjEuMTMudGFyLnh6KSA9IGYzZDAxN2Q0NTE0 ZTlmMzczMzU4ZDkwNTEzMDMwODQyYmFiNmE5MTExYWIxYzgxMDYwNjcwNWZhZmI3NzBkZTEwZDY1 MDYzYjAxNTkyYjFmNTBlMWRmZjBlNWY5ZDA1MzY4YzI1ODcyYTY1M2RkZWUyZWI2YTBjOTQxYjY2 NDAyCitTSEE1MTIgKGtlcm5lbC1rYWJpLWR3LTcuMS4xMy50YXIueHopID0gM2FhNjZhMTA4ZTUz Y2FmYzdkZTczMTZlNjhjNzllYzMxZmI1MjJhNjlmODU0MTJjZDRhZTg3NjhiMWViNDFlZTM5YjI2 OGRhZmRlODAzOGZiODljYzk1ZThjOTA5YTc1ZmI1ZjYyZWFkMzhlYTVkZTNkNjgzMmNmMDk2N2Vl NTQK