From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH RESEND 7/7] drm/i915: hide away VBT private data in a separate header Date: Thu, 17 Mar 2016 12:04:22 +0200 Message-ID: <87a8lxv2s9.fsf@intel.com> References: <1458125015-7931-1-git-send-email-jani.nikula@intel.com> <1458125015-7931-7-git-send-email-jani.nikula@intel.com> <20160316155159.GA14170@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id A58E76EA4C for ; Thu, 17 Mar 2016 10:04:27 +0000 (UTC) In-Reply-To: <20160316155159.GA14170@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAxNiBNYXIgMjAxNiwgRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90 ZToKPiBbIHRleHQvcGxhaW4gXQo+IE9uIFdlZCwgTWFyIDE2LCAyMDE2IGF0IDEyOjQzOjM1UE0g KzAyMDAsIEphbmkgTmlrdWxhIHdyb3RlOgo+PiBXZSd2ZSBiZWVuIGFjY3VtdWxhdGluZyBjb2Rl IGFjcm9zcyB0aGUgZHJpdmVyIHRoYXQgZGVwZW5kcyBvbiB0aGUgVkJUCj4+IHNwZWNpZmljIHN0 cnVjdHVyZXMgYW5kIGRlZmluZXMuIFRoZSBWQlQgaXMgYW4gdW5jb250cm9sbGFibGUKPj4gYmVh c3QuIEVuY291cmFnZSBlbmNhcHN1bGF0aW9uIG9mIHRoZSBWQlQgZGF0YSBieSBoaWRpbmcgdGhl IHN0cnVjdHVyZXMKPj4gYW5kIGRlZmluZXMgaW4gYSBwcml2YXRlIGhlYWRlciBvbmx5IHRvIGJl IGluY2x1ZGVkIGZyb20gaW50ZWxfYmlvcy5jLgo+PiAKPj4gU2lnbmVkLW9mZi1ieTogSmFuaSBO aWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPgo+IE5vdCBnb2luZyB0byBjaGVjayBpbiBk ZXRhaWwgd2hldGhlciB5b3UgY29weXBhc3RlZCB0aGUgc3RydWN0cyBjb3JyZWN0bHkKPiAoSSB0 aGluayBJJ3ZlIGRvbmUgdGhhdCBvbmNlIGJlZm9yZSBhbHJlYWR5LCB3aGVyZSB3YXMgbXkgci1i IGxvc3QhKS4gV2l0aAo+IHRoYXQgY2F2ZWF0Ogo+Cj4gUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0 ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CgpJIGRpZCBhIGRvdWJsZS1jaGVjayBkaWZmIG9u IHRoZSBiZWZvcmUgYW5kIGFmdGVyLCBhbmQgdGhlcmUgd2VyZSBvbmx5CmNvbW1lbnQgY2hhbmdl cyBhbmQgY29kZSBtb3ZlbWVudC4KClB1c2hlZCB0byBkcm0taW50ZWwtbmV4dC1xdWV1ZWQsIHRo YW5rcyBmb3IgdGhlIHJldmlldy4KCkJSLApKYW5pLgoKPgo+PiAtLS0KPj4gIERvY3VtZW50YXRp b24vRG9jQm9vay9ncHUudG1wbCAgICAgICAgfCAgIDIgKy0KPj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Jpb3MuYyAgICAgfCAgIDQgKy0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Jpb3MuaCAgICAgfCA4NjEgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdmJ0X2RlZnMuaCB8IDgyNiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+PiAgNCBmaWxlcyBjaGFuZ2VkLCA4NjUgaW5zZXJ0aW9u cygrKSwgODI4IGRlbGV0aW9ucygtKQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3ZidF9kZWZzLmgKPj4gCj4+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0 aW9uL0RvY0Jvb2svZ3B1LnRtcGwgYi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1LnRtcGwKPj4g aW5kZXggMTY5MmM0ZGQ1NDg3Li5hYjdmZmViZjRiOTUgMTAwNjQ0Cj4+IC0tLSBhL0RvY3VtZW50 YXRpb24vRG9jQm9vay9ncHUudG1wbAo+PiArKysgYi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1 LnRtcGwKPj4gQEAgLTMzMzQsNyArMzMzNCw3IEBAIGludCBudW1faW9jdGxzOzwvc3lub3BzaXM+ Cj4+ICAJPHRpdGxlPlZpZGVvIEJJT1MgVGFibGUgKFZCVCk8L3RpdGxlPgo+PiAgIVBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMgVmlkZW8gQklPUyBUYWJsZSAoVkJUKQo+PiAgIUlk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMKPj4gLSFJZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYmlvcy5oCj4+ICshSWRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3ZidF9kZWZz LmgKPj4gICAgICAgIDwvc2VjdDI+Cj4+ICAgICAgPC9zZWN0MT4KPj4gIAo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYmlvcy5jCj4+IGluZGV4IGFhOTBkYzY2MmU3Zi4uMDgzMDAzYjAxNWY1IDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMKPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jCj4+IEBAIC0yOSw3ICsyOSw5IEBACj4+ICAj aW5jbHVkZSA8ZHJtL2RybVAuaD4KPj4gICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KPj4gICNp bmNsdWRlICJpOTE1X2Rydi5oIgo+PiAtI2luY2x1ZGUgImludGVsX2Jpb3MuaCIKPj4gKwo+PiAr I2RlZmluZSBfSU5URUxfQklPU19QUklWQVRFCj4+ICsjaW5jbHVkZSAiaW50ZWxfdmJ0X2RlZnMu aCIKPj4gIAo+PiAgLyoqCj4+ICAgKiBET0M6IFZpZGVvIEJJT1MgVGFibGUgKFZCVCkKPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Jpb3MuaAo+PiBpbmRleCAzNTBkNGUwZjc1YTQuLmFiMGVhMzE1ZWRk YiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5oCj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuaAo+PiBAQCAtMSw1ICsxLDUgQEAK Pj4gIC8qCj4+IC0gKiBDb3B5cmlnaHQgwqkgMjAwNiBJbnRlbCBDb3Jwb3JhdGlvbgo+PiArICog Q29weXJpZ2h0IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KPj4gICAqCj4+ICAgKiBQZXJtaXNz aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh aW5pbmcgYQo+PiAgICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPj4gQEAgLTE5LDU0MyArMTksMTYgQEAK Pj4gICAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg T1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCj4+ICAgKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElP TiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQo+ PiAgICogU09GVFdBUkUuCj4+IC0gKgo+PiAtICogQXV0aG9yczoKPj4gLSAqICAgIEVyaWMgQW5o b2x0IDxlcmljQGFuaG9sdC5uZXQ+Cj4+IC0gKgo+PiAtICovCj4+IC0KPj4gLSNpZm5kZWYgX0lO VEVMX0JJT1NfSF8KPj4gLSNkZWZpbmUgX0lOVEVMX0JJT1NfSF8KPj4gLQo+PiAtLyoqCj4+IC0g KiBzdHJ1Y3QgdmJ0X2hlYWRlciAtIFZCVCBIZWFkZXIgc3RydWN0dXJlCj4+IC0gKiBAc2lnbmF0 dXJlOgkJVkJUIHNpZ25hdHVyZSwgYWx3YXlzIHN0YXJ0cyB3aXRoICIkVkJUIgo+PiAtICogQHZl cnNpb246CQlWZXJzaW9uIG9mIHRoaXMgc3RydWN0dXJlCj4+IC0gKiBAaGVhZGVyX3NpemU6CVNp emUgb2YgdGhpcyBzdHJ1Y3R1cmUKPj4gLSAqIEB2YnRfc2l6ZToJCVNpemUgb2YgVkJUIChWQlQg SGVhZGVyLCBCREIgSGVhZGVyIGFuZCBkYXRhIGJsb2NrcykKPj4gLSAqIEB2YnRfY2hlY2tzdW06 CUNoZWNrc3VtCj4+IC0gKiBAcmVzZXJ2ZWQwOgkJUmVzZXJ2ZWQKPj4gLSAqIEBiZGJfb2Zmc2V0 OgkJT2Zmc2V0IG9mICZzdHJ1Y3QgYmRiX2hlYWRlciBmcm9tIGJlZ2lubmluZyBvZiBWQlQKPj4g LSAqIEBhaW1fb2Zmc2V0OgkJT2Zmc2V0cyBvZiBhZGQtaW4gZGF0YSBibG9ja3MgZnJvbSBiZWdp bm5pbmcgb2YgVkJUCj4+IC0gKi8KPj4gLXN0cnVjdCB2YnRfaGVhZGVyIHsKPj4gLQl1OCBzaWdu YXR1cmVbMjBdOwo+PiAtCXUxNiB2ZXJzaW9uOwo+PiAtCXUxNiBoZWFkZXJfc2l6ZTsKPj4gLQl1 MTYgdmJ0X3NpemU7Cj4+IC0JdTggdmJ0X2NoZWNrc3VtOwo+PiAtCXU4IHJlc2VydmVkMDsKPj4g LQl1MzIgYmRiX29mZnNldDsKPj4gLQl1MzIgYWltX29mZnNldFs0XTsKPj4gLX0gX19wYWNrZWQ7 Cj4+IC0KPj4gLS8qKgo+PiAtICogc3RydWN0IGJkYl9oZWFkZXIgLSBCREIgSGVhZGVyIHN0cnVj dHVyZQo+PiAtICogQHNpZ25hdHVyZToJCUJEQiBzaWduYXR1cmUgIkJJT1NfREFUQV9CTE9DSyIK Pj4gLSAqIEB2ZXJzaW9uOgkJVmVyc2lvbiBvZiB0aGUgZGF0YSBibG9jayBkZWZpbml0aW9ucwo+ PiAtICogQGhlYWRlcl9zaXplOglTaXplIG9mIHRoaXMgc3RydWN0dXJlCj4+IC0gKiBAYmRiX3Np emU6CQlTaXplIG9mIEJEQiAoQkRCIEhlYWRlciBhbmQgZGF0YSBibG9ja3MpCj4+IC0gKi8KPj4g LXN0cnVjdCBiZGJfaGVhZGVyIHsKPj4gLQl1OCBzaWduYXR1cmVbMTZdOwo+PiAtCXUxNiB2ZXJz aW9uOwo+PiAtCXUxNiBoZWFkZXJfc2l6ZTsKPj4gLQl1MTYgYmRiX3NpemU7Cj4+IC19IF9fcGFj a2VkOwo+PiAtCj4+IC0vKiBzdHJpY3RseSBzcGVha2luZywgdGhpcyBpcyBhICJza2lwIiBibG9j aywgYnV0IGl0IGhhcyBpbnRlcmVzdGluZyBpbmZvICovCj4+IC1zdHJ1Y3QgdmJpb3NfZGF0YSB7 Cj4+IC0JdTggdHlwZTsgLyogMCA9PSBkZXNrdG9wLCAxID09IG1vYmlsZSAqLwo+PiAtCXU4IHJl bHN0YWdlOwo+PiAtCXU4IGNoaXBzZXQ7Cj4+IC0JdTggbHZkc19wcmVzZW50OjE7Cj4+IC0JdTgg dHZfcHJlc2VudDoxOwo+PiAtCXU4IHJzdmQyOjY7IC8qIGZpbmlzaCBieXRlICovCj4+IC0JdTgg cnN2ZDNbNF07Cj4+IC0JdTggc2lnbm9uWzE1NV07Cj4+IC0JdTggY29weXJpZ2h0WzYxXTsKPj4g LQl1MTYgY29kZV9zZWdtZW50Owo+PiAtCXU4IGRvc19ib290X21vZGU7Cj4+IC0JdTggYmFuZHdp ZHRoX3BlcmNlbnQ7Cj4+IC0JdTggcnN2ZDQ7IC8qIHBvcHVwIG1lbW9yeSBzaXplICovCj4+IC0J dTggcmVzaXplX3BjaV9iaW9zOwo+PiAtCXU4IHJzdmQ1OyAvKiBpcyBjcnQgYWxyZWFkeSBvbiBk ZGMyICovCj4+IC19IF9fcGFja2VkOwo+PiAtCj4+IC0vKgo+PiAtICogVGhlcmUgYXJlIHNldmVy YWwgdHlwZXMgb2YgQklPUyBkYXRhIGJsb2NrcyAoQkRCcyksIGVhY2ggYmxvY2sgaGFzCj4+IC0g KiBhbiBJRCBhbmQgc2l6ZSBpbiB0aGUgZmlyc3QgMyBieXRlcyAoSUQgaW4gZmlyc3QsIHNpemUg aW4gbmV4dCAyKS4KPj4gLSAqIEtub3duIHR5cGVzIGFyZSBsaXN0ZWQgYmVsb3cuCj4+ICAgKi8K Pj4gLSNkZWZpbmUgQkRCX0dFTkVSQUxfRkVBVFVSRVMJICAxCj4+IC0jZGVmaW5lIEJEQl9HRU5F UkFMX0RFRklOSVRJT05TCSAgMgo+PiAtI2RlZmluZSBCREJfT0xEX1RPR0dMRV9MSVNUCSAgMwo+ PiAtI2RlZmluZSBCREJfTU9ERV9TVVBQT1JUX0xJU1QJICA0Cj4+IC0jZGVmaW5lIEJEQl9HRU5F UklDX01PREVfVEFCTEUJICA1Cj4+IC0jZGVmaW5lIEJEQl9FWFRfTU1JT19SRUdTCSAgNgo+PiAt I2RlZmluZSBCREJfU1dGX0lPCQkgIDcKPj4gLSNkZWZpbmUgQkRCX1NXRl9NTUlPCQkgIDgKPj4g LSNkZWZpbmUgQkRCX1BTUgkJCSAgOQo+PiAtI2RlZmluZSBCREJfTU9ERV9SRU1PVkFMX1RBQkxF CSAxMAo+PiAtI2RlZmluZSBCREJfQ0hJTERfREVWSUNFX1RBQkxFCSAxMQo+PiAtI2RlZmluZSBC REJfRFJJVkVSX0ZFQVRVUkVTCSAxMgo+PiAtI2RlZmluZSBCREJfRFJJVkVSX1BFUlNJU1RFTkNF CSAxMwo+PiAtI2RlZmluZSBCREJfRVhUX1RBQkxFX1BUUlMJIDE0Cj4+IC0jZGVmaW5lIEJEQl9E T1RfQ0xPQ0tfT1ZFUlJJREUJIDE1Cj4+IC0jZGVmaW5lIEJEQl9ESVNQTEFZX1NFTEVDVAkgMTYK Pj4gLS8qIDE3IHJzdmQgKi8KPj4gLSNkZWZpbmUgQkRCX0RSSVZFUl9ST1RBVElPTgkgMTgKPj4g LSNkZWZpbmUgQkRCX0RJU1BMQVlfUkVNT1ZFCSAxOQo+PiAtI2RlZmluZSBCREJfT0VNX0NVU1RP TQkJIDIwCj4+IC0jZGVmaW5lIEJEQl9FRlBfTElTVAkJIDIxIC8qIHdvcmthcm91bmRzIGZvciBW R0EgaHN5bmMvdnN5bmMgKi8KPj4gLSNkZWZpbmUgQkRCX1NEVk9fTFZEU19PUFRJT05TCSAyMgo+ PiAtI2RlZmluZSBCREJfU0RWT19QQU5FTF9EVERTCSAyMwo+PiAtI2RlZmluZSBCREJfU0RWT19M VkRTX1BOUF9JRFMJIDI0Cj4+IC0jZGVmaW5lIEJEQl9TRFZPX0xWRFNfUE9XRVJfU0VRCSAyNQo+ PiAtI2RlZmluZSBCREJfVFZfT1BUSU9OUwkJIDI2Cj4+IC0jZGVmaW5lIEJEQl9FRFAJCQkgMjcK Pj4gLSNkZWZpbmUgQkRCX0xWRFNfT1BUSU9OUwkgNDAKPj4gLSNkZWZpbmUgQkRCX0xWRFNfTEZQ X0RBVEFfUFRSUwkgNDEKPj4gLSNkZWZpbmUgQkRCX0xWRFNfTEZQX0RBVEEJIDQyCj4+IC0jZGVm aW5lIEJEQl9MVkRTX0JBQ0tMSUdIVAkgNDMKPj4gLSNkZWZpbmUgQkRCX0xWRFNfUE9XRVIJCSA0 NAo+PiAtI2RlZmluZSBCREJfTUlQSV9DT05GSUcJCSA1Mgo+PiAtI2RlZmluZSBCREJfTUlQSV9T RVFVRU5DRQkgNTMKPj4gLSNkZWZpbmUgQkRCX1NLSVAJCTI1NCAvKiBWQklPUyBwcml2YXRlIGJs b2NrLCBpZ25vcmUgKi8KPj4gLQo+PiAtc3RydWN0IGJkYl9nZW5lcmFsX2ZlYXR1cmVzIHsKPj4g LSAgICAgICAgLyogYml0cyAxICovCj4+IC0JdTggcGFuZWxfZml0dGluZzoyOwo+PiAtCXU4IGZs ZXhhaW06MTsKPj4gLQl1OCBtc2dfZW5hYmxlOjE7Cj4+IC0JdTggY2xlYXJfc2NyZWVuOjM7Cj4+ IC0JdTggY29sb3JfZmxpcDoxOwo+PiAtCj4+IC0gICAgICAgIC8qIGJpdHMgMiAqLwo+PiAtCXU4 IGRvd25sb2FkX2V4dF92YnQ6MTsKPj4gLQl1OCBlbmFibGVfc3NjOjE7Cj4+IC0JdTggc3NjX2Zy ZXE6MTsKPj4gLQl1OCBlbmFibGVfbGZwX29uX292ZXJyaWRlOjE7Cj4+IC0JdTggZGlzYWJsZV9z c2NfZGR0OjE7Cj4+IC0JdTggcnN2ZDc6MTsKPj4gLQl1OCBkaXNwbGF5X2Nsb2NrX21vZGU6MTsK Pj4gLQl1OCByc3ZkODoxOyAvKiBmaW5pc2ggYnl0ZSAqLwo+PiAtCj4+IC0gICAgICAgIC8qIGJp dHMgMyAqLwo+PiAtCXU4IGRpc2FibGVfc21vb3RoX3Zpc2lvbjoxOwo+PiAtCXU4IHNpbmdsZV9k dmk6MTsKPj4gLQl1OCByc3ZkOToxOwo+PiAtCXU4IGZkaV9yeF9wb2xhcml0eV9pbnZlcnRlZDox Owo+PiAtCXU4IHJzdmQxMDo0OyAvKiBmaW5pc2ggYnl0ZSAqLwo+PiAtCj4+IC0gICAgICAgIC8q IGJpdHMgNCAqLwo+PiAtCXU4IGxlZ2FjeV9tb25pdG9yX2RldGVjdDsKPj4gLQo+PiAtICAgICAg ICAvKiBiaXRzIDUgKi8KPj4gLQl1OCBpbnRfY3J0X3N1cHBvcnQ6MTsKPj4gLQl1OCBpbnRfdHZf c3VwcG9ydDoxOwo+PiAtCXU4IGludF9lZnBfc3VwcG9ydDoxOwo+PiAtCXU4IGRwX3NzY19lbmI6 MTsJLyogUENIIGF0dGFjaGVkIGVEUCBzdXBwb3J0cyBTU0MgKi8KPj4gLQl1OCBkcF9zc2NfZnJl cToxOwkvKiBTU0MgZnJlcSBmb3IgUENIIGF0dGFjaGVkIGVEUCAqLwo+PiAtCXU4IHJzdmQxMToz OyAvKiBmaW5pc2ggYnl0ZSAqLwo+PiAtfSBfX3BhY2tlZDsKPj4gLQo+PiAtLyogcHJlLTkxNSAq Lwo+PiAtI2RlZmluZSBHUElPX1BJTl9EVklfTFZEUwkweDAzIC8qICJEVkkvTFZEUyBEREMgR1BJ TyBwaW5zIiAqLwo+PiAtI2RlZmluZSBHUElPX1BJTl9BRERfSTJDCTB4MDUgLyogIkFERENBUkQg STJDIEdQSU8gcGlucyIgKi8KPj4gLSNkZWZpbmUgR1BJT19QSU5fQUREX0REQwkweDA0IC8qICJB RERDQVJEIEREQyBHUElPIHBpbnMiICovCj4+IC0jZGVmaW5lIEdQSU9fUElOX0FERF9ERENfSTJD CTB4MDYgLyogIkFERENBUkQgRERDL0kyQyBHUElPIHBpbnMiICovCj4+IC0KPj4gLS8qIFByZSA5 MTUgKi8KPj4gLSNkZWZpbmUgREVWSUNFX1RZUEVfTk9ORQkweDAwCj4+IC0jZGVmaW5lIERFVklD RV9UWVBFX0NSVAkJMHgwMQo+PiAtI2RlZmluZSBERVZJQ0VfVFlQRV9UVgkJMHgwOQo+PiAtI2Rl ZmluZSBERVZJQ0VfVFlQRV9FRlAJCTB4MTIKPj4gLSNkZWZpbmUgREVWSUNFX1RZUEVfTEZQCQkw eDIyCj4+IC0vKiBPbiA5MTUrICovCj4+IC0jZGVmaW5lIERFVklDRV9UWVBFX0NSVF9EUE1TCQkw eDYwMDEKPj4gLSNkZWZpbmUgREVWSUNFX1RZUEVfQ1JUX0RQTVNfSE9UUExVRwkweDQwMDEKPj4g LSNkZWZpbmUgREVWSUNFX1RZUEVfVFZfQ09NUE9TSVRFCTB4MDIwOQo+PiAtI2RlZmluZSBERVZJ Q0VfVFlQRV9UVl9NQUNST1ZJU0lPTgkweDAyODkKPj4gLSNkZWZpbmUgREVWSUNFX1RZUEVfVFZf UkZfQ09NUE9TSVRFCTB4MDIwYwo+PiAtI2RlZmluZSBERVZJQ0VfVFlQRV9UVl9TVklERU9fQ09N UE9TSVRFCTB4MDYwOQo+PiAtI2RlZmluZSBERVZJQ0VfVFlQRV9UVl9TQ0FSVAkJMHgwMjA5Cj4+ IC0jZGVmaW5lIERFVklDRV9UWVBFX1RWX0NPREVDX0hPVFBMVUdfUFdSIDB4NjAwOQo+PiAtI2Rl ZmluZSBERVZJQ0VfVFlQRV9FRlBfSE9UUExVR19QV1IJMHg2MDEyCj4+IC0jZGVmaW5lIERFVklD RV9UWVBFX0VGUF9EVklfSE9UUExVR19QV1IJMHg2MDUyCj4+IC0jZGVmaW5lIERFVklDRV9UWVBF X0VGUF9EVklfSQkJMHg2MDUzCj4+IC0jZGVmaW5lIERFVklDRV9UWVBFX0VGUF9EVklfRF9EVUFM CTB4NjE1Mgo+PiAtI2RlZmluZSBERVZJQ0VfVFlQRV9FRlBfRFZJX0RfSERDUAkweDYwZDIKPj4g LSNkZWZpbmUgREVWSUNFX1RZUEVfT1BFTkxESV9IT1RQTFVHX1BXUgkweDYwNjIKPj4gLSNkZWZp bmUgREVWSUNFX1RZUEVfT1BFTkxESV9EVUFMUElYCTB4NjE2Mgo+PiAtI2RlZmluZSBERVZJQ0Vf VFlQRV9MRlBfUEFORUxMSU5LCTB4NTAxMgo+PiAtI2RlZmluZSBERVZJQ0VfVFlQRV9MRlBfQ01P U19QV1IJMHg1MDQyCj4+IC0jZGVmaW5lIERFVklDRV9UWVBFX0xGUF9MVkRTX1BXUgkweDUwNjIK Pj4gLSNkZWZpbmUgREVWSUNFX1RZUEVfTEZQX0xWRFNfRFVBTAkweDUxNjIKPj4gLSNkZWZpbmUg REVWSUNFX1RZUEVfTEZQX0xWRFNfRFVBTF9IRENQCTB4NTFlMgo+PiAtCj4+IC0jZGVmaW5lIERF VklDRV9DRkdfTk9ORQkJMHgwMAo+PiAtI2RlZmluZSBERVZJQ0VfQ0ZHXzEyQklUX0RWT0IJMHgw MQo+PiAtI2RlZmluZSBERVZJQ0VfQ0ZHXzEyQklUX0RWT0MJMHgwMgo+PiAtI2RlZmluZSBERVZJ Q0VfQ0ZHXzI0QklUX0RWT0JDCTB4MDkKPj4gLSNkZWZpbmUgREVWSUNFX0NGR18yNEJJVF9EVk9D QgkweDBhCj4+IC0jZGVmaW5lIERFVklDRV9DRkdfRFVBTF9EVk9CCTB4MTEKPj4gLSNkZWZpbmUg REVWSUNFX0NGR19EVUFMX0RWT0MJMHgxMgo+PiAtI2RlZmluZSBERVZJQ0VfQ0ZHX0RVQUxfRFZP QkMJMHgxMwo+PiAtI2RlZmluZSBERVZJQ0VfQ0ZHX0RVQUxfTElOS19EVk9CQwkweDE5Cj4+IC0j ZGVmaW5lIERFVklDRV9DRkdfRFVBTF9MSU5LX0RWT0NCCTB4MWEKPj4gLQo+PiAtI2RlZmluZSBE RVZJQ0VfV0lSRV9OT05FCTB4MDAKPj4gLSNkZWZpbmUgREVWSUNFX1dJUkVfRFZPQgkweDAxCj4+ IC0jZGVmaW5lIERFVklDRV9XSVJFX0RWT0MJMHgwMgo+PiAtI2RlZmluZSBERVZJQ0VfV0lSRV9E Vk9CQwkweDAzCj4+IC0jZGVmaW5lIERFVklDRV9XSVJFX0RWT0JCCTB4MDUKPj4gLSNkZWZpbmUg REVWSUNFX1dJUkVfRFZPQ0MJMHgwNgo+PiAtI2RlZmluZSBERVZJQ0VfV0lSRV9EVk9CX01BU1RF UiAweDBkCj4+IC0jZGVmaW5lIERFVklDRV9XSVJFX0RWT0NfTUFTVEVSIDB4MGUKPj4gLQo+PiAt I2RlZmluZSBERVZJQ0VfUE9SVF9EVk9BCTB4MDAgLyogbm9uZSBvbiA4NDUrICovCj4+IC0jZGVm aW5lIERFVklDRV9QT1JUX0RWT0IJMHgwMQo+PiAtI2RlZmluZSBERVZJQ0VfUE9SVF9EVk9DCTB4 MDIKPj4gIAo+PiAgLyoKPj4gLSAqIFdlIHVzZWQgdG8ga2VlcCB0aGlzIHN0cnVjdCBidXQgd2l0 aG91dCBhbnkgdmVyc2lvbiBjb250cm9sLiBXZSBzaG91bGQgYXZvaWQKPj4gLSAqIHVzaW5nIGl0 IGluIHRoZSBmdXR1cmUsIGJ1dCBpdCBzaG91bGQgYmUgc2FmZSB0byBrZWVwIHVzaW5nIGl0IGlu IHRoZSBvbGQKPj4gLSAqIGNvZGUuIERvIG5vdCBjaGFuZ2U7IHdlIHJlbHkgb24gaXRzIHNpemUu Cj4+ICsgKiBQbGVhc2UgdXNlIGludGVsX3ZidF9kZWZzLmggZm9yIFZCVCBwcml2YXRlIGRhdGEs IHRvIGhpZGUgYW5kIGFic3RyYWN0IGF3YXkKPj4gKyAqIHRoZSBWQlQgZnJvbSB0aGUgcmVzdCBv ZiB0aGUgZHJpdmVyLiBBZGQgdGhlIHBhcnNlZCwgY2xlYW4gZGF0YSB0byBzdHJ1Y3QKPj4gKyAq IGludGVsX3ZidF9kYXRhIHdpdGhpbiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZS4KPj4gICAqLwo+ PiAtc3RydWN0IG9sZF9jaGlsZF9kZXZfY29uZmlnIHsKPj4gLQl1MTYgaGFuZGxlOwo+PiAtCXUx NiBkZXZpY2VfdHlwZTsKPj4gLQl1OCAgZGV2aWNlX2lkWzEwXTsgLyogYXNjaWkgc3RyaW5nICov Cj4+IC0JdTE2IGFkZGluX29mZnNldDsKPj4gLQl1OCAgZHZvX3BvcnQ7IC8qIFNlZSBEZXZpY2Vf UE9SVF8qIGFib3ZlICovCj4+IC0JdTggIGkyY19waW47Cj4+IC0JdTggIHNsYXZlX2FkZHI7Cj4+ IC0JdTggIGRkY19waW47Cj4+IC0JdTE2IGVkaWRfcHRyOwo+PiAtCXU4ICBkdm9fY2ZnOyAvKiBT ZWUgREVWSUNFX0NGR18qIGFib3ZlICovCj4+IC0JdTggIGR2bzJfcG9ydDsKPj4gLQl1OCAgaTJj Ml9waW47Cj4+IC0JdTggIHNsYXZlMl9hZGRyOwo+PiAtCXU4ICBkZGMyX3BpbjsKPj4gLQl1OCAg Y2FwYWJpbGl0aWVzOwo+PiAtCXU4ICBkdm9fd2lyaW5nOy8qIFNlZSBERVZJQ0VfV0lSRV8qIGFi b3ZlICovCj4+IC0JdTggIGR2bzJfd2lyaW5nOwo+PiAtCXUxNiBleHRlbmRlZF90eXBlOwo+PiAt CXU4ICBkdm9fZnVuY3Rpb247Cj4+IC19IF9fcGFja2VkOwo+PiAtCj4+IC0vKiBUaGlzIG9uZSBj b250YWlucyBmaWVsZCBvZmZzZXRzIHRoYXQgYXJlIGtub3duIHRvIGJlIGNvbW1vbiBmb3IgYWxs IEJEQgo+PiAtICogdmVyc2lvbnMuIE5vdGljZSB0aGF0IHRoZSBtZWFuaW5nIG9mIHRoZSBjb250 ZW50cyBjb250ZW50cyBtYXkgc3RpbGwgY2hhbmdlLAo+PiAtICogYnV0IGF0IGxlYXN0IHRoZSBv ZmZzZXRzIGFyZSBjb25zaXN0ZW50LiAqLwo+PiAtCj4+IC0vKiBEZWZpbml0aW9ucyBmb3IgZmxh Z3NfMSAqLwo+PiAtI2RlZmluZSBJQk9PU1RfRU5BQkxFICgxPDwzKQo+PiAtCj4+IC1zdHJ1Y3Qg Y29tbW9uX2NoaWxkX2Rldl9jb25maWcgewo+PiAtCXUxNiBoYW5kbGU7Cj4+IC0JdTE2IGRldmlj ZV90eXBlOwo+PiAtCXU4IG5vdF9jb21tb24xWzEyXTsKPj4gLQl1OCBkdm9fcG9ydDsKPj4gLQl1 OCBub3RfY29tbW9uMlsyXTsKPj4gLQl1OCBkZGNfcGluOwo+PiAtCXUxNiBlZGlkX3B0cjsKPj4g LQl1OCBvYnNvbGV0ZTsKPj4gLQl1OCBmbGFnc18xOwo+PiAtCXU4IG5vdF9jb21tb24zWzEzXTsK Pj4gLQl1OCBpYm9vc3RfbGV2ZWw7Cj4+IC19IF9fcGFja2VkOwo+PiAtCj4+IC0KPj4gLS8qIFRo aXMgZmllbGQgY2hhbmdlcyBkZXBlbmRpbmcgb24gdGhlIEJEQiB2ZXJzaW9uLCBzbyB0aGUgbW9z dCByZWxpYWJsZSB3YXkgdG8KPj4gLSAqIHJlYWQgaXQgaXMgYnkgY2hlY2tpbmcgdGhlIEJEQiB2 ZXJzaW9uIGFuZCByZWFkaW5nIHRoZSByYXcgcG9pbnRlci4gKi8KPj4gLXVuaW9uIGNoaWxkX2Rl dmljZV9jb25maWcgewo+PiAtCS8qIFRoaXMgb25lIGlzIHNhZmUgdG8gYmUgdXNlZCBhbnl3aGVy ZSwgYnV0IHRoZSBjb2RlIHNob3VsZCBzdGlsbCBjaGVjawo+PiAtCSAqIHRoZSBCREIgdmVyc2lv bi4gKi8KPj4gLQl1OCByYXdbMzNdOwo+PiAtCS8qIFRoaXMgb25lIHNob3VsZCBvbmx5IGJlIGtl cHQgZm9yIGxlZ2FjeSBjb2RlLiAqLwo+PiAtCXN0cnVjdCBvbGRfY2hpbGRfZGV2X2NvbmZpZyBv bGQ7Cj4+IC0JLyogVGhpcyBvbmUgc2hvdWxkIGFsc28gYmUgc2FmZSB0byB1c2UgYW55d2hlcmUs IGV2ZW4gd2l0aG91dCB2ZXJzaW9uCj4+IC0JICogY2hlY2tzLiAqLwo+PiAtCXN0cnVjdCBjb21t b25fY2hpbGRfZGV2X2NvbmZpZyBjb21tb247Cj4+IC19IF9fcGFja2VkOwo+PiAtCj4+IC1zdHJ1 Y3QgYmRiX2dlbmVyYWxfZGVmaW5pdGlvbnMgewo+PiAtCS8qIEREQyBHUElPICovCj4+IC0JdTgg Y3J0X2RkY19nbWJ1c19waW47Cj4+IC0KPj4gLQkvKiBEUE1TIGJpdHMgKi8KPj4gLQl1OCBkcG1z X2FjcGk6MTsKPj4gLQl1OCBza2lwX2Jvb3RfY3J0X2RldGVjdDoxOwo+PiAtCXU4IGRwbXNfYWlt OjE7Cj4+IC0JdTggcnN2ZDE6NTsgLyogZmluaXNoIGJ5dGUgKi8KPj4gLQo+PiAtCS8qIGJvb3Qg ZGV2aWNlIGJpdHMgKi8KPj4gLQl1OCBib290X2Rpc3BsYXlbMl07Cj4+IC0JdTggY2hpbGRfZGV2 X3NpemU7Cj4+IC0KPj4gLQkvKgo+PiAtCSAqIERldmljZSBpbmZvOgo+PiAtCSAqIElmIFRWIGlz IHByZXNlbnQsIGl0J2xsIGJlIGF0IGRldmljZXNbMF0uCj4+IC0JICogTFZEUyB3aWxsIGJlIG5l eHQsIGVpdGhlciBkZXZpY2VzWzBdIG9yIFsxXSwgaWYgcHJlc2VudC4KPj4gLQkgKiBPbiBzb21l IHBsYXRmb3JtcyB0aGUgbnVtYmVyIG9mIGRldmljZSBpcyA2LiBCdXQgY291bGQgYmUgYXMgZmV3 IGFzCj4+IC0JICogNCBpZiBib3RoIFRWIGFuZCBMVkRTIGFyZSBtaXNzaW5nLgo+PiAtCSAqIEFu ZCB0aGUgZGV2aWNlIG51bSBpcyByZWxhdGVkIHdpdGggdGhlIHNpemUgb2YgZ2VuZXJhbCBkZWZp bml0aW9uCj4+IC0JICogYmxvY2suIEl0IGlzIG9idGFpbmVkIGJ5IHVzaW5nIHRoZSBmb2xsb3dp bmcgZm9ybXVsYToKPj4gLQkgKiBudW1iZXIgPSAoYmxvY2tfc2l6ZSAtIHNpemVvZihiZGJfZ2Vu ZXJhbF9kZWZpbml0aW9ucykpLwo+PiAtCSAqCSAgICAgZGVmcy0+Y2hpbGRfZGV2X3NpemU7Cj4+ IC0JICovCj4+IC0JdWludDhfdCBkZXZpY2VzWzBdOwo+PiAtfSBfX3BhY2tlZDsKPj4gLQo+PiAt LyogTWFzayBmb3IgRFJSUyAvIFBhbmVsIENoYW5uZWwgLyBTU0MgLyBCTFQgY29udHJvbCBiaXRz IGV4dHJhY3Rpb24gKi8KPj4gLSNkZWZpbmUgTU9ERV9NQVNLCQkweDMKPj4gLQo+PiAtc3RydWN0 IGJkYl9sdmRzX29wdGlvbnMgewo+PiAtCXU4IHBhbmVsX3R5cGU7Cj4+IC0JdTggcnN2ZDE7Cj4+ IC0JLyogTFZEUyBjYXBhYmlsaXRpZXMsIHN0b3JlZCBpbiBhIGR3b3JkICovCj4+IC0JdTggcGZp dF9tb2RlOjI7Cj4+IC0JdTggcGZpdF90ZXh0X21vZGVfZW5oYW5jZWQ6MTsKPj4gLQl1OCBwZml0 X2dmeF9tb2RlX2VuaGFuY2VkOjE7Cj4+IC0JdTggcGZpdF9yYXRpb19hdXRvOjE7Cj4+IC0JdTgg cGl4ZWxfZGl0aGVyOjE7Cj4+IC0JdTggbHZkc19lZGlkOjE7Cj4+IC0JdTggcnN2ZDI6MTsKPj4g LQl1OCByc3ZkNDsKPj4gLQkvKiBMVkRTIFBhbmVsIGNoYW5uZWwgYml0cyBzdG9yZWQgaGVyZSAq Lwo+PiAtCXUzMiBsdmRzX3BhbmVsX2NoYW5uZWxfYml0czsKPj4gLQkvKiBMVkRTIFNTQyAoU3By ZWFkIFNwZWN0cnVtIENsb2NrKSBiaXRzIHN0b3JlZCBoZXJlLiAqLwo+PiAtCXUxNiBzc2NfYml0 czsKPj4gLQl1MTYgc3NjX2ZyZXE7Cj4+IC0JdTE2IHNzY19kZHQ7Cj4+IC0JLyogUGFuZWwgY29s b3IgZGVwdGggZGVmaW5lZCBoZXJlICovCj4+IC0JdTE2IHBhbmVsX2NvbG9yX2RlcHRoOwo+PiAt CS8qIExWRFMgcGFuZWwgdHlwZSBiaXRzIHN0b3JlZCBoZXJlICovCj4+IC0JdTMyIGRwc19wYW5l bF90eXBlX2JpdHM7Cj4+IC0JLyogTFZEUyBiYWNrbGlnaHQgY29udHJvbCB0eXBlIGJpdHMgc3Rv cmVkIGhlcmUgKi8KPj4gLQl1MzIgYmx0X2NvbnRyb2xfdHlwZV9iaXRzOwo+PiAtfSBfX3BhY2tl ZDsKPj4gLQo+PiAtLyogTEZQIHBvaW50ZXIgdGFibGUgY29udGFpbnMgZW50cmllcyB0byB0aGUg c3RydWN0IGJlbG93ICovCj4+IC1zdHJ1Y3QgYmRiX2x2ZHNfbGZwX2RhdGFfcHRyIHsKPj4gLQl1 MTYgZnBfdGltaW5nX29mZnNldDsgLyogb2Zmc2V0cyBhcmUgZnJvbSBzdGFydCBvZiBiZGIgKi8K Pj4gLQl1OCBmcF90YWJsZV9zaXplOwo+PiAtCXUxNiBkdm9fdGltaW5nX29mZnNldDsKPj4gLQl1 OCBkdm9fdGFibGVfc2l6ZTsKPj4gLQl1MTYgcGFuZWxfcG5wX2lkX29mZnNldDsKPj4gLQl1OCBw bnBfdGFibGVfc2l6ZTsKPj4gLX0gX19wYWNrZWQ7Cj4+IC0KPj4gLXN0cnVjdCBiZGJfbHZkc19s ZnBfZGF0YV9wdHJzIHsKPj4gLQl1OCBsdmRzX2VudHJpZXM7IC8qIGZvbGxvd2VkIGJ5IG9uZSBv ciBtb3JlIGx2ZHNfZGF0YV9wdHIgc3RydWN0cyAqLwo+PiAtCXN0cnVjdCBiZGJfbHZkc19sZnBf ZGF0YV9wdHIgcHRyWzE2XTsKPj4gLX0gX19wYWNrZWQ7Cj4+IC0KPj4gLS8qIExGUCBkYXRhIGhh cyAzIGJsb2NrcyBwZXIgZW50cnkgKi8KPj4gLXN0cnVjdCBsdmRzX2ZwX3RpbWluZyB7Cj4+IC0J dTE2IHhfcmVzOwo+PiAtCXUxNiB5X3JlczsKPj4gLQl1MzIgbHZkc19yZWc7Cj4+IC0JdTMyIGx2 ZHNfcmVnX3ZhbDsKPj4gLQl1MzIgcHBfb25fcmVnOwo+PiAtCXUzMiBwcF9vbl9yZWdfdmFsOwo+ PiAtCXUzMiBwcF9vZmZfcmVnOwo+PiAtCXUzMiBwcF9vZmZfcmVnX3ZhbDsKPj4gLQl1MzIgcHBf Y3ljbGVfcmVnOwo+PiAtCXUzMiBwcF9jeWNsZV9yZWdfdmFsOwo+PiAtCXUzMiBwZml0X3JlZzsK Pj4gLQl1MzIgcGZpdF9yZWdfdmFsOwo+PiAtCXUxNiB0ZXJtaW5hdG9yOwo+PiAtfSBfX3BhY2tl ZDsKPj4gLQo+PiAtc3RydWN0IGx2ZHNfZHZvX3RpbWluZyB7Cj4+IC0JdTE2IGNsb2NrOwkJLyoq PCBJbiAxMGtoeiAqLwo+PiAtCXU4IGhhY3RpdmVfbG87Cj4+IC0JdTggaGJsYW5rX2xvOwo+PiAt CXU4IGhibGFua19oaTo0Owo+PiAtCXU4IGhhY3RpdmVfaGk6NDsKPj4gLQl1OCB2YWN0aXZlX2xv Owo+PiAtCXU4IHZibGFua19sbzsKPj4gLQl1OCB2YmxhbmtfaGk6NDsKPj4gLQl1OCB2YWN0aXZl X2hpOjQ7Cj4+IC0JdTggaHN5bmNfb2ZmX2xvOwo+PiAtCXU4IGhzeW5jX3B1bHNlX3dpZHRoOwo+ PiAtCXU4IHZzeW5jX3B1bHNlX3dpZHRoOjQ7Cj4+IC0JdTggdnN5bmNfb2ZmOjQ7Cj4+IC0JdTgg cnN2ZDA6NjsKPj4gLQl1OCBoc3luY19vZmZfaGk6MjsKPj4gLQl1OCBoX2ltYWdlOwo+PiAtCXU4 IHZfaW1hZ2U7Cj4+IC0JdTggbWF4X2h2Owo+PiAtCXU4IGhfYm9yZGVyOwo+PiAtCXU4IHZfYm9y ZGVyOwo+PiAtCXU4IHJzdmQxOjM7Cj4+IC0JdTggZGlnaXRhbDoyOwo+PiAtCXU4IHZzeW5jX3Bv c2l0aXZlOjE7Cj4+IC0JdTggaHN5bmNfcG9zaXRpdmU6MTsKPj4gLQl1OCByc3ZkMjoxOwo+PiAt fSBfX3BhY2tlZDsKPj4gLQo+PiAtc3RydWN0IGx2ZHNfcG5wX2lkIHsKPj4gLQl1MTYgbWZnX25h bWU7Cj4+IC0JdTE2IHByb2R1Y3RfY29kZTsKPj4gLQl1MzIgc2VyaWFsOwo+PiAtCXU4IG1mZ193 ZWVrOwo+PiAtCXU4IG1mZ195ZWFyOwo+PiAtfSBfX3BhY2tlZDsKPj4gLQo+PiAtc3RydWN0IGJk Yl9sdmRzX2xmcF9kYXRhX2VudHJ5IHsKPj4gLQlzdHJ1Y3QgbHZkc19mcF90aW1pbmcgZnBfdGlt aW5nOwo+PiAtCXN0cnVjdCBsdmRzX2R2b190aW1pbmcgZHZvX3RpbWluZzsKPj4gLQlzdHJ1Y3Qg bHZkc19wbnBfaWQgcG5wX2lkOwo+PiAtfSBfX3BhY2tlZDsKPj4gLQo+PiAtc3RydWN0IGJkYl9s dmRzX2xmcF9kYXRhIHsKPj4gLQlzdHJ1Y3QgYmRiX2x2ZHNfbGZwX2RhdGFfZW50cnkgZGF0YVsx Nl07Cj4+IC19IF9fcGFja2VkOwo+PiAtCj4+IC0jZGVmaW5lIEJEQl9CQUNLTElHSFRfVFlQRV9O T05FCTAKPj4gLSNkZWZpbmUgQkRCX0JBQ0tMSUdIVF9UWVBFX1BXTQkyCj4+IC0KPj4gLXN0cnVj dCBiZGJfbGZwX2JhY2tsaWdodF9kYXRhX2VudHJ5IHsKPj4gLQl1OCB0eXBlOjI7Cj4+IC0JdTgg YWN0aXZlX2xvd19wd206MTsKPj4gLQl1OCBvYnNvbGV0ZTE6NTsKPj4gLQl1MTYgcHdtX2ZyZXFf aHo7Cj4+IC0JdTggbWluX2JyaWdodG5lc3M7Cj4+IC0JdTggb2Jzb2xldGUyOwo+PiAtCXU4IG9i c29sZXRlMzsKPj4gLX0gX19wYWNrZWQ7Cj4+IC0KPj4gLXN0cnVjdCBiZGJfbGZwX2JhY2tsaWdo dF9kYXRhIHsKPj4gLQl1OCBlbnRyeV9zaXplOwo+PiAtCXN0cnVjdCBiZGJfbGZwX2JhY2tsaWdo dF9kYXRhX2VudHJ5IGRhdGFbMTZdOwo+PiAtCXU4IGxldmVsWzE2XTsKPj4gLX0gX19wYWNrZWQ7 Cj4+IC0KPj4gLXN0cnVjdCBhaW1kYl9oZWFkZXIgewo+PiAtCWNoYXIgc2lnbmF0dXJlWzE2XTsK Pj4gLQljaGFyIG9lbV9kZXZpY2VbMjBdOwo+PiAtCXUxNiBhaW1kYl92ZXJzaW9uOwo+PiAtCXUx NiBhaW1kYl9oZWFkZXJfc2l6ZTsKPj4gLQl1MTYgYWltZGJfc2l6ZTsKPj4gLX0gX19wYWNrZWQ7 Cj4+IC0KPj4gLXN0cnVjdCBhaW1kYl9ibG9jayB7Cj4+IC0JdTggYWltZGJfaWQ7Cj4+IC0JdTE2 IGFpbWRiX3NpemU7Cj4+IC19IF9fcGFja2VkOwo+PiAgCj4+IC1zdHJ1Y3QgdmNoX3BhbmVsX2Rh dGEgewo+PiAtCXUxNiBmcF90aW1pbmdfb2Zmc2V0Owo+PiAtCXU4IGZwX3RpbWluZ19zaXplOwo+ PiAtCXUxNiBkdm9fdGltaW5nX29mZnNldDsKPj4gLQl1OCBkdm9fdGltaW5nX3NpemU7Cj4+IC0J dTE2IHRleHRfZml0dGluZ19vZmZzZXQ7Cj4+IC0JdTggdGV4dF9maXR0aW5nX3NpemU7Cj4+IC0J dTE2IGdyYXBoaWNzX2ZpdHRpbmdfb2Zmc2V0Owo+PiAtCXU4IGdyYXBoaWNzX2ZpdHRpbmdfc2l6 ZTsKPj4gLX0gX19wYWNrZWQ7Cj4+IC0KPj4gLXN0cnVjdCB2Y2hfYmRiXzIyIHsKPj4gLQlzdHJ1 Y3QgYWltZGJfYmxvY2sgYWltZGJfYmxvY2s7Cj4+IC0Jc3RydWN0IHZjaF9wYW5lbF9kYXRhIHBh bmVsc1sxNl07Cj4+IC19IF9fcGFja2VkOwo+PiAtCj4+IC1zdHJ1Y3QgYmRiX3Nkdm9fbHZkc19v cHRpb25zIHsKPj4gLQl1OCBwYW5lbF9iYWNrbGlnaHQ7Cj4+IC0JdTggaDQwX3NldF9wYW5lbF90 eXBlOwo+PiAtCXU4IHBhbmVsX3R5cGU7Cj4+IC0JdTggc3NjX2Nsa19mcmVxOwo+PiAtCXUxNiBh bHNfbG93X3RyaXA7Cj4+IC0JdTE2IGFsc19oaWdoX3RyaXA7Cj4+IC0JdTggc2NsYWxhcmNvZWZm X3RhYl9yb3dfbnVtOwo+PiAtCXU4IHNjbGFsYXJjb2VmZl90YWJfcm93X3NpemU7Cj4+IC0JdTgg Y29lZmZpY2llbnRbOF07Cj4+IC0JdTggcGFuZWxfbWlzY19iaXRzXzE7Cj4+IC0JdTggcGFuZWxf bWlzY19iaXRzXzI7Cj4+IC0JdTggcGFuZWxfbWlzY19iaXRzXzM7Cj4+IC0JdTggcGFuZWxfbWlz Y19iaXRzXzQ7Cj4+IC19IF9fcGFja2VkOwo+PiAtCj4+IC0KPj4gLSNkZWZpbmUgQkRCX0RSSVZF Ul9GRUFUVVJFX05PX0xWRFMJCTAKPj4gLSNkZWZpbmUgQkRCX0RSSVZFUl9GRUFUVVJFX0lOVF9M VkRTCQkxCj4+IC0jZGVmaW5lIEJEQl9EUklWRVJfRkVBVFVSRV9TRFZPX0xWRFMJCTIKPj4gLSNk ZWZpbmUgQkRCX0RSSVZFUl9GRUFUVVJFX0VEUAkJCTMKPj4gLQo+PiAtc3RydWN0IGJkYl9kcml2 ZXJfZmVhdHVyZXMgewo+PiAtCXU4IGJvb3RfZGV2X2FsZ29yaXRobToxOwo+PiAtCXU4IGJsb2Nr X2Rpc3BsYXlfc3dpdGNoOjE7Cj4+IC0JdTggYWxsb3dfZGlzcGxheV9zd2l0Y2g6MTsKPj4gLQl1 OCBob3RwbHVnX2R2bzoxOwo+PiAtCXU4IGR1YWxfdmlld196b29tOjE7Cj4+IC0JdTggaW50MTVo X2hvb2s6MTsKPj4gLQl1OCBzcHJpdGVfaW5fY2xvbmU6MTsKPj4gLQl1OCBwcmltYXJ5X2xmcF9p ZDoxOwo+PiAtCj4+IC0JdTE2IGJvb3RfbW9kZV94Owo+PiAtCXUxNiBib290X21vZGVfeTsKPj4g LQl1OCBib290X21vZGVfYnBwOwo+PiAtCXU4IGJvb3RfbW9kZV9yZWZyZXNoOwo+PiAtCj4+IC0J dTE2IGVuYWJsZV9sZnBfcHJpbWFyeToxOwo+PiAtCXUxNiBzZWxlY3RpdmVfbW9kZV9wcnVuaW5n OjE7Cj4+IC0JdTE2IGR1YWxfZnJlcXVlbmN5OjE7Cj4+IC0JdTE2IHJlbmRlcl9jbG9ja19mcmVx OjE7IC8qIDA6IGhpZ2ggZnJlcTsgMTogbG93IGZyZXEgKi8KPj4gLQl1MTYgbnRfY2xvbmVfc3Vw cG9ydDoxOwo+PiAtCXUxNiBwb3dlcl9zY2hlbWVfdWk6MTsgLyogMDogQ1VJOyAxOiAzcmQgcGFy dHkgKi8KPj4gLQl1MTYgc3ByaXRlX2Rpc3BsYXlfYXNzaWduOjE7IC8qIDA6IHNlY29uZGFyeTsg MTogcHJpbWFyeSAqLwo+PiAtCXUxNiBjdWlfYXNwZWN0X3NjYWxpbmc6MTsKPj4gLQl1MTYgcHJl c2VydmVfYXNwZWN0X3JhdGlvOjE7Cj4+IC0JdTE2IHNkdm9fZGV2aWNlX3Bvd2VyX2Rvd246MTsK Pj4gLQl1MTYgY3J0X2hvdHBsdWc6MTsKPj4gLQl1MTYgbHZkc19jb25maWc6MjsKPj4gLQl1MTYg dHZfaG90cGx1ZzoxOwo+PiAtCXUxNiBoZG1pX2NvbmZpZzoyOwo+PiAtCj4+IC0JdTggc3RhdGlj X2Rpc3BsYXk6MTsKPj4gLQl1OCByZXNlcnZlZDI6NzsKPj4gLQl1MTYgbGVnYWN5X2NydF9tYXhf eDsKPj4gLQl1MTYgbGVnYWN5X2NydF9tYXhfeTsKPj4gLQl1OCBsZWdhY3lfY3J0X21heF9yZWZy ZXNoOwo+PiAtCj4+IC0JdTggaGRtaV90ZXJtaW5hdGlvbjsKPj4gLQl1OCBjdXN0b21fdmJ0X3Zl cnNpb247Cj4+IC0JLyogRHJpdmVyIGZlYXR1cmVzIGRhdGEgYmxvY2sgKi8KPj4gLQl1MTYgcm1w bV9lbmFibGVkOjE7Cj4+IC0JdTE2IHMyZGR0X2VuYWJsZWQ6MTsKPj4gLQl1MTYgZHBzdF9lbmFi bGVkOjE7Cj4+IC0JdTE2IGJsdGNsdF9lbmFibGVkOjE7Cj4+IC0JdTE2IGFkYl9lbmFibGVkOjE7 Cj4+IC0JdTE2IGRycnNfZW5hYmxlZDoxOwo+PiAtCXUxNiBncnNfZW5hYmxlZDoxOwo+PiAtCXUx NiBncG10X2VuYWJsZWQ6MTsKPj4gLQl1MTYgdGJ0X2VuYWJsZWQ6MTsKPj4gLQl1MTYgcHNyX2Vu YWJsZWQ6MTsKPj4gLQl1MTYgaXBzX2VuYWJsZWQ6MTsKPj4gLQl1MTYgcmVzZXJ2ZWQzOjQ7Cj4+ IC0JdTE2IHBjX2ZlYXR1cmVfdmFsaWQ6MTsKPj4gLX0gX19wYWNrZWQ7Cj4+IC0KPj4gLSNkZWZp bmUgRURQXzE4QlBQCTAKPj4gLSNkZWZpbmUgRURQXzI0QlBQCTEKPj4gLSNkZWZpbmUgRURQXzMw QlBQCTIKPj4gLSNkZWZpbmUgRURQX1JBVEVfMV82MgkwCj4+IC0jZGVmaW5lIEVEUF9SQVRFXzJf NwkxCj4+IC0jZGVmaW5lIEVEUF9MQU5FXzEJMAo+PiAtI2RlZmluZSBFRFBfTEFORV8yCTEKPj4g LSNkZWZpbmUgRURQX0xBTkVfNAkzCj4+IC0jZGVmaW5lIEVEUF9QUkVFTVBIQVNJU19OT05FCTAK Pj4gLSNkZWZpbmUgRURQX1BSRUVNUEhBU0lTXzNfNWRCCTEKPj4gLSNkZWZpbmUgRURQX1BSRUVN UEhBU0lTXzZkQgkyCj4+IC0jZGVmaW5lIEVEUF9QUkVFTVBIQVNJU185XzVkQgkzCj4+IC0jZGVm aW5lIEVEUF9WU1dJTkdfMF80VgkJMAo+PiAtI2RlZmluZSBFRFBfVlNXSU5HXzBfNlYJCTEKPj4g LSNkZWZpbmUgRURQX1ZTV0lOR18wXzhWCQkyCj4+IC0jZGVmaW5lIEVEUF9WU1dJTkdfMV8yVgkJ Mwo+PiArI2lmbmRlZiBfSU5URUxfQklPU19IXwo+PiArI2RlZmluZSBfSU5URUxfQklPU19IXwo+ PiAgCj4+ICBzdHJ1Y3QgZWRwX3Bvd2VyX3NlcSB7Cj4+ICAJdTE2IHQxX3QzOwo+PiBAQCAtNTY1 LDI0NSArMzgsMzcgQEAgc3RydWN0IGVkcF9wb3dlcl9zZXEgewo+PiAgCXUxNiB0MTFfdDEyOwo+ PiAgfSBfX3BhY2tlZDsKPj4gIAo+PiAtc3RydWN0IGVkcF9saW5rX3BhcmFtcyB7Cj4+IC0JdTgg cmF0ZTo0Owo+PiAtCXU4IGxhbmVzOjQ7Cj4+IC0JdTggcHJlZW1waGFzaXM6NDsKPj4gLQl1OCB2 c3dpbmc6NDsKPj4gLX0gX19wYWNrZWQ7Cj4+IC0KPj4gLXN0cnVjdCBiZGJfZWRwIHsKPj4gLQlz dHJ1Y3QgZWRwX3Bvd2VyX3NlcSBwb3dlcl9zZXFzWzE2XTsKPj4gLQl1MzIgY29sb3JfZGVwdGg7 Cj4+IC0Jc3RydWN0IGVkcF9saW5rX3BhcmFtcyBsaW5rX3BhcmFtc1sxNl07Cj4+IC0JdTMyIHNk cnJzX21zYV90aW1pbmdfZGVsYXk7Cj4+IC0KPj4gLQkvKiBpdGggYml0IGluZGljYXRlcyBlbmFi bGVkL2Rpc2FibGVkIGZvciAoaSsxKXRoIHBhbmVsICovCj4+IC0JdTE2IGVkcF9zM2RfZmVhdHVy ZTsKPj4gLQl1MTYgZWRwX3QzX29wdGltaXphdGlvbjsKPj4gLQl1NjQgZWRwX3Zzd2luZ19wcmVl bXBoOwkJLyogdjE3MyAqLwo+PiAtfSBfX3BhY2tlZDsKPj4gLQo+PiAtc3RydWN0IHBzcl90YWJs ZSB7Cj4+IC0JLyogRmVhdHVyZSBiaXRzICovCj4+IC0JdTggZnVsbF9saW5rOjE7Cj4+IC0JdTgg cmVxdWlyZV9hdXhfdG9fd2FrZXVwOjE7Cj4+IC0JdTggZmVhdHVyZV9iaXRzX3JzdmQ6NjsKPj4g LQo+PiAtCS8qIFdhaXQgdGltZXMgKi8KPj4gLQl1OCBpZGxlX2ZyYW1lczo0Owo+PiAtCXU4IGxp bmVzX3RvX3dhaXQ6MzsKPj4gLQl1OCB3YWl0X3RpbWVzX3JzdmQ6MTsKPj4gLQo+PiAtCS8qIFRQ IHdha2UgdXAgdGltZSBpbiBtdWx0aXBsZSBvZiAxMDAgKi8KPj4gLQl1MTYgdHAxX3dha2V1cF90 aW1lOwo+PiAtCXUxNiB0cDJfdHAzX3dha2V1cF90aW1lOwo+PiAtfSBfX3BhY2tlZDsKPj4gLQo+ PiAtc3RydWN0IGJkYl9wc3Igewo+PiAtCXN0cnVjdCBwc3JfdGFibGUgcHNyX3RhYmxlWzE2XTsK Pj4gLX0gX19wYWNrZWQ7Cj4+IC0KPj4gLS8qCj4+IC0gKiBEcml2ZXI8LT5WQklPUyBpbnRlcmFj dGlvbiBvY2N1cnMgdGhyb3VnaCBzY3JhdGNoIGJpdHMgaW4KPj4gLSAqIEdSMTggJiBTV0YqLgo+ PiAtICovCj4+IC0KPj4gLS8qIEdSMTggYml0cyBhcmUgc2V0IG9uIGRpc3BsYXkgc3dpdGNoIGFu ZCBob3RrZXkgZXZlbnRzICovCj4+IC0jZGVmaW5lIEdSMThfRFJJVkVSX1NXSVRDSF9FTgkoMTw8 NykgLyogMDogVkJJT1MgY29udHJvbCwgMTogZHJpdmVyIGNvbnRyb2wgKi8KPj4gLSNkZWZpbmUg R1IxOF9IT1RLRVlfTUFTSwkweDc4IC8qIFNlZSBhbHNvIFNXRjQgMTU6MCAqLwo+PiAtI2RlZmlu ZSAgIEdSMThfSEtfTk9ORQkJKDB4MDw8MykKPj4gLSNkZWZpbmUgICBHUjE4X0hLX0xGUF9TVFJF VENICSgweDE8PDMpCj4+IC0jZGVmaW5lICAgR1IxOF9IS19UT0dHTEVfRElTUAkoMHgyPDwzKQo+ PiAtI2RlZmluZSAgIEdSMThfSEtfRElTUF9TV0lUQ0gJKDB4NDw8MykgLyogc2VlIFNXRjE0IDE1 OjAgZm9yIHdoYXQgdG8gZW5hYmxlICovCj4+IC0jZGVmaW5lICAgR1IxOF9IS19QT1BVUF9ESVNB QkxFRCAoMHg2PDwzKQo+PiAtI2RlZmluZSAgIEdSMThfSEtfUE9QVVBfRU5BQkxFRAkoMHg3PDwz KQo+PiAtI2RlZmluZSAgIEdSMThfSEtfUEZJVAkJKDB4ODw8MykKPj4gLSNkZWZpbmUgICBHUjE4 X0hLX0FQTV9DSEFOR0UJKDB4YTw8MykKPj4gLSNkZWZpbmUgICBHUjE4X0hLX01VTFRJUExFCSgw eGM8PDMpCj4+IC0jZGVmaW5lIEdSMThfVVNFUl9JTlRfRU4JKDE8PDIpCj4+IC0jZGVmaW5lIEdS MThfQTAwMDBfRkxVU0hfRU4JKDE8PDEpCj4+IC0jZGVmaW5lIEdSMThfU01NX0VOCQkoMTw8MCkK Pj4gLQo+PiAtLyogU2V0IGJ5IGRyaXZlciwgY2xlYXJlZCBieSBWQklPUyAqLwo+PiAtI2RlZmlu ZSBTV0YwMF9ZUkVTX1NISUZUCTE2Cj4+IC0jZGVmaW5lIFNXRjAwX1hSRVNfU0hJRlQJMAo+PiAt I2RlZmluZSBTV0YwMF9SRVNfTUFTSwkJMHhmZmZmCj4+IC0KPj4gLS8qIFNldCBieSBWQklPUyBh dCBib290IHRpbWUgYW5kIGRyaXZlciBhdCBydW50aW1lICovCj4+IC0jZGVmaW5lIFNXRjAxX1RW Ml9GT1JNQVRfU0hJRlQJOAo+PiAtI2RlZmluZSBTV0YwMV9UVjFfRk9STUFUX1NISUZUCTAKPj4g LSNkZWZpbmUgU1dGMDFfVFZfRk9STUFUX01BU0sJMHhmZmZmCj4+IC0KPj4gLSNkZWZpbmUgU1dG MTBfVkJJT1NfQkxDX0kyQ19FTgkoMTw8MjkpCj4+IC0jZGVmaW5lIFNXRjEwX0dUVF9PVkVSUklE RV9FTgkoMTw8MjgpCj4+IC0jZGVmaW5lIFNXRjEwX0xGUF9EUE1TX09WUgkoMTw8MjcpIC8qIG92 ZXJyaWRlIERQTVMgb24gZGlzcGxheSBzd2l0Y2ggKi8KPj4gLSNkZWZpbmUgU1dGMTBfQUNUSVZF X1RPR0dMRV9MSVNUX01BU0sgKDc8PDI0KQo+PiAtI2RlZmluZSAgIFNXRjEwX09MRF9UT0dHTEUJ MHgwCj4+IC0jZGVmaW5lICAgU1dGMTBfVE9HR0xFX0xJU1RfMQkweDEKPj4gLSNkZWZpbmUgICBT V0YxMF9UT0dHTEVfTElTVF8yCTB4Mgo+PiAtI2RlZmluZSAgIFNXRjEwX1RPR0dMRV9MSVNUXzMJ MHgzCj4+IC0jZGVmaW5lICAgU1dGMTBfVE9HR0xFX0xJU1RfNAkweDQKPj4gLSNkZWZpbmUgU1dG MTBfUEFOTklOR19FTgkoMTw8MjMpCj4+IC0jZGVmaW5lIFNXRjEwX0RSSVZFUl9MT0FERUQJKDE8 PDIyKQo+PiAtI2RlZmluZSBTV0YxMF9FWFRFTkRFRF9ERVNLVE9QCSgxPDwyMSkKPj4gLSNkZWZp bmUgU1dGMTBfRVhDTFVTSVZFX01PREUJKDE8PDIwKQo+PiAtI2RlZmluZSBTV0YxMF9PVkVSTEFZ X0VOCSgxPDwxOSkKPj4gLSNkZWZpbmUgU1dGMTBfUExBTkVCX0hPTERPRkYJKDE8PDE4KQo+PiAt I2RlZmluZSBTV0YxMF9QTEFORUFfSE9MRE9GRgkoMTw8MTcpCj4+IC0jZGVmaW5lIFNXRjEwX1ZH QV9IT0xET0ZGCSgxPDwxNikKPj4gLSNkZWZpbmUgU1dGMTBfQUNUSVZFX0RJU1BfTUFTSwkweGZm ZmYKPj4gLSNkZWZpbmUgICBTV0YxMF9QSVBFQl9MRlAyCSgxPDwxNSkKPj4gLSNkZWZpbmUgICBT V0YxMF9QSVBFQl9FRlAyCSgxPDwxNCkKPj4gLSNkZWZpbmUgICBTV0YxMF9QSVBFQl9UVjIJKDE8 PDEzKQo+PiAtI2RlZmluZSAgIFNXRjEwX1BJUEVCX0NSVDIJKDE8PDEyKQo+PiAtI2RlZmluZSAg IFNXRjEwX1BJUEVCX0xGUAkoMTw8MTEpCj4+IC0jZGVmaW5lICAgU1dGMTBfUElQRUJfRUZQCSgx PDwxMCkKPj4gLSNkZWZpbmUgICBTV0YxMF9QSVBFQl9UVgkoMTw8OSkKPj4gLSNkZWZpbmUgICBT V0YxMF9QSVBFQl9DUlQJKDE8PDgpCj4+IC0jZGVmaW5lICAgU1dGMTBfUElQRUFfTEZQMgkoMTw8 NykKPj4gLSNkZWZpbmUgICBTV0YxMF9QSVBFQV9FRlAyCSgxPDw2KQo+PiAtI2RlZmluZSAgIFNX RjEwX1BJUEVBX1RWMgkoMTw8NSkKPj4gLSNkZWZpbmUgICBTV0YxMF9QSVBFQV9DUlQyCSgxPDw0 KQo+PiAtI2RlZmluZSAgIFNXRjEwX1BJUEVBX0xGUAkoMTw8MykKPj4gLSNkZWZpbmUgICBTV0Yx MF9QSVBFQV9FRlAJKDE8PDIpCj4+IC0jZGVmaW5lICAgU1dGMTBfUElQRUFfVFYJKDE8PDEpCj4+ IC0jZGVmaW5lICAgU1dGMTBfUElQRUFfQ1JUCSgxPDwwKQo+PiAtCj4+IC0jZGVmaW5lIFNXRjEx X01FTU9SWV9TSVpFX1NISUZUCTE2Cj4+IC0jZGVmaW5lIFNXRjExX1NWX1RFU1RfRU4JKDE8PDE1 KQo+PiAtI2RlZmluZSBTV0YxMV9JU19BR1AJCSgxPDwxNCkKPj4gLSNkZWZpbmUgU1dGMTFfRElT UExBWV9IT0xET0ZGCSgxPDwxMykKPj4gLSNkZWZpbmUgU1dGMTFfRFBNU19SRURVQ0VECSgxPDwx MikKPj4gLSNkZWZpbmUgU1dGMTFfSVNfVkJFX01PREUJKDE8PDExKQo+PiAtI2RlZmluZSBTV0Yx MV9QSVBFQl9BQ0NFU1MJKDE8PDEwKSAvKiAwIGhlcmUgbWVhbnMgcGlwZSBhICovCj4+IC0jZGVm aW5lIFNXRjExX0RQTVNfTUFTSwkJMHgwNwo+PiAtI2RlZmluZSAgIFNXRjExX0RQTVNfT0ZGCSgx PDwyKQo+PiAtI2RlZmluZSAgIFNXRjExX0RQTVNfU1VTUEVORAkoMTw8MSkKPj4gLSNkZWZpbmUg ICBTV0YxMV9EUE1TX1NUQU5EQlkJKDE8PDApCj4+IC0jZGVmaW5lICAgU1dGMTFfRFBNU19PTgkJ MAo+PiAtCj4+IC0jZGVmaW5lIFNXRjE0X0dGWF9QRklUX0VOCSgxPDwzMSkKPj4gLSNkZWZpbmUg U1dGMTRfVEVYVF9QRklUX0VOCSgxPDwzMCkKPj4gLSNkZWZpbmUgU1dGMTRfTElEX1NUQVRVU19D TE9TRUQJKDE8PDI5KSAvKiAwIGhlcmUgbWVhbnMgb3BlbiAqLwo+PiAtI2RlZmluZSBTV0YxNF9Q T1BVUF9FTgkJKDE8PDI4KQo+PiAtI2RlZmluZSBTV0YxNF9ESVNQTEFZX0hPTERPRkYJKDE8PDI3 KQo+PiAtI2RlZmluZSBTV0YxNF9ESVNQX0RFVEVDVF9FTgkoMTw8MjYpCj4+IC0jZGVmaW5lIFNX RjE0X0RPQ0tJTkdfU1RBVFVTX0RPQ0tFRCAoMTw8MjUpIC8qIDAgaGVyZSBtZWFucyB1bmRvY2tl ZCAqLwo+PiAtI2RlZmluZSBTV0YxNF9EUklWRVJfU1RBVFVTCSgxPDwyNCkKPj4gLSNkZWZpbmUg U1dGMTRfT1NfVFlQRV9XSU45WAkoMTw8MjMpCj4+IC0jZGVmaW5lIFNXRjE0X09TX1RZUEVfV0lO TlQJKDE8PDIyKQo+PiAtLyogMjE6MTkgcnN2ZCAqLwo+PiAtI2RlZmluZSBTV0YxNF9QTV9UWVBF X01BU0sJMHgwMDA3MDAwMAo+PiAtI2RlZmluZSAgIFNXRjE0X1BNX0FDUElfVklERU8JKDB4NCA8 PCAxNikKPj4gLSNkZWZpbmUgICBTV0YxNF9QTV9BQ1BJCQkoMHgzIDw8IDE2KQo+PiAtI2RlZmlu ZSAgIFNXRjE0X1BNX0FQTV8xMgkoMHgyIDw8IDE2KQo+PiAtI2RlZmluZSAgIFNXRjE0X1BNX0FQ TV8xMQkoMHgxIDw8IDE2KQo+PiAtI2RlZmluZSBTV0YxNF9IS19SRVFVRVNUX01BU0sJMHgwMDAw ZmZmZiAvKiBzZWUgR1IxOCA2OjMgZm9yIGV2ZW50IHR5cGUgKi8KPj4gLSAgICAgICAgICAvKiBp ZiBHUjE4IGluZGljYXRlcyBhIGRpc3BsYXkgc3dpdGNoICovCj4+IC0jZGVmaW5lICAgU1dGMTRf RFNfUElQRUJfTEZQMl9FTiAoMTw8MTUpCj4+IC0jZGVmaW5lICAgU1dGMTRfRFNfUElQRUJfRUZQ Ml9FTiAoMTw8MTQpCj4+IC0jZGVmaW5lICAgU1dGMTRfRFNfUElQRUJfVFYyX0VOICAoMTw8MTMp Cj4+IC0jZGVmaW5lICAgU1dGMTRfRFNfUElQRUJfQ1JUMl9FTiAoMTw8MTIpCj4+IC0jZGVmaW5l ICAgU1dGMTRfRFNfUElQRUJfTEZQX0VOICAoMTw8MTEpCj4+IC0jZGVmaW5lICAgU1dGMTRfRFNf UElQRUJfRUZQX0VOICAoMTw8MTApCj4+IC0jZGVmaW5lICAgU1dGMTRfRFNfUElQRUJfVFZfRU4g ICAoMTw8OSkKPj4gLSNkZWZpbmUgICBTV0YxNF9EU19QSVBFQl9DUlRfRU4gICgxPDw4KQo+PiAt I2RlZmluZSAgIFNXRjE0X0RTX1BJUEVBX0xGUDJfRU4gKDE8PDcpCj4+IC0jZGVmaW5lICAgU1dG MTRfRFNfUElQRUFfRUZQMl9FTiAoMTw8NikKPj4gLSNkZWZpbmUgICBTV0YxNF9EU19QSVBFQV9U VjJfRU4gICgxPDw1KQo+PiAtI2RlZmluZSAgIFNXRjE0X0RTX1BJUEVBX0NSVDJfRU4gKDE8PDQp Cj4+IC0jZGVmaW5lICAgU1dGMTRfRFNfUElQRUFfTEZQX0VOICAoMTw8MykKPj4gLSNkZWZpbmUg ICBTV0YxNF9EU19QSVBFQV9FRlBfRU4gICgxPDwyKQo+PiAtI2RlZmluZSAgIFNXRjE0X0RTX1BJ UEVBX1RWX0VOICAgKDE8PDEpCj4+IC0jZGVmaW5lICAgU1dGMTRfRFNfUElQRUFfQ1JUX0VOICAo MTw8MCkKPj4gLSAgICAgICAgICAvKiBpZiBHUjE4IGluZGljYXRlcyBhIHBhbmVsIGZpdHRpbmcg cmVxdWVzdCAqLwo+PiAtI2RlZmluZSAgIFNXRjE0X1BGSVRfRU4JCSgxPDwwKSAvKiAwIG1lYW5z IGRpc2FibGUgKi8KPj4gLSAgICAgICAgICAvKiBpZiBHUjE4IGluZGljYXRlcyBhbiBBUE0gY2hh bmdlIHJlcXVlc3QgKi8KPj4gLSNkZWZpbmUgICBTV0YxNF9BUE1fSElCRVJOQVRFCTB4NAo+PiAt I2RlZmluZSAgIFNXRjE0X0FQTV9TVVNQRU5ECTB4Mwo+PiAtI2RlZmluZSAgIFNXRjE0X0FQTV9T VEFOREJZCTB4MQo+PiAtI2RlZmluZSAgIFNXRjE0X0FQTV9SRVNUT1JFCTB4MAo+PiAtCj4+IC0v KiBBZGQgdGhlIGRldmljZSBjbGFzcyBmb3IgTEZQLCBUViwgSERNSSAqLwo+PiAtI2RlZmluZQkg REVWSUNFX1RZUEVfSU5UX0xGUAkweDEwMjIKPj4gLSNkZWZpbmUJIERFVklDRV9UWVBFX0lOVF9U VgkweDEwMDkKPj4gLSNkZWZpbmUJIERFVklDRV9UWVBFX0hETUkJMHg2MEQyCj4+IC0jZGVmaW5l CSBERVZJQ0VfVFlQRV9EUAkJMHg2OEM2Cj4+IC0jZGVmaW5lCSBERVZJQ0VfVFlQRV9lRFAJMHg3 OEM2Cj4+IC0KPj4gLSNkZWZpbmUgIERFVklDRV9UWVBFX0NMQVNTX0VYVEVOU0lPTgkoMSA8PCAx NSkKPj4gLSNkZWZpbmUgIERFVklDRV9UWVBFX1BPV0VSX01BTkFHRU1FTlQJKDEgPDwgMTQpCj4+ IC0jZGVmaW5lICBERVZJQ0VfVFlQRV9IT1RQTFVHX1NJR05BTElORwkoMSA8PCAxMykKPj4gLSNk ZWZpbmUgIERFVklDRV9UWVBFX0lOVEVSTkFMX0NPTk5FQ1RPUgkoMSA8PCAxMikKPj4gLSNkZWZp bmUgIERFVklDRV9UWVBFX05PVF9IRE1JX09VVFBVVAkoMSA8PCAxMSkKPj4gLSNkZWZpbmUgIERF VklDRV9UWVBFX01JUElfT1VUUFVUCSgxIDw8IDEwKQo+PiAtI2RlZmluZSAgREVWSUNFX1RZUEVf Q09NUE9TSVRFX09VVFBVVAkoMSA8PCA5KQo+PiAtI2RlZmluZSAgREVWSUNFX1RZUEVfRFVBTF9D SEFOTkVMCSgxIDw8IDgpCj4+IC0jZGVmaW5lICBERVZJQ0VfVFlQRV9ISUdIX1NQRUVEX0xJTksJ KDEgPDwgNikKPj4gLSNkZWZpbmUgIERFVklDRV9UWVBFX0xWRFNfU0lOR0FMSU5HCSgxIDw8IDUp Cj4+IC0jZGVmaW5lICBERVZJQ0VfVFlQRV9UTURTX0RWSV9TSUdOQUxJTkcJKDEgPDwgNCkKPj4g LSNkZWZpbmUgIERFVklDRV9UWVBFX1ZJREVPX1NJR05BTElORwkoMSA8PCAzKQo+PiAtI2RlZmlu ZSAgREVWSUNFX1RZUEVfRElTUExBWVBPUlRfT1VUUFVUCSgxIDw8IDIpCj4+IC0jZGVmaW5lICBE RVZJQ0VfVFlQRV9ESUdJVEFMX09VVFBVVAkoMSA8PCAxKQo+PiAtI2RlZmluZSAgREVWSUNFX1RZ UEVfQU5BTE9HX09VVFBVVAkoMSA8PCAwKQo+PiAtCj4+IC0vKgo+PiAtICogQml0cyB3ZSBjYXJl IGFib3V0IHdoZW4gY2hlY2tpbmcgZm9yIERFVklDRV9UWVBFX2VEUAo+PiAtICogRGVwZW5kaW5n IG9uIHRoZSBzeXN0ZW0sIHRoZSBvdGhlciBiaXRzIG1heSBvciBtYXkgbm90Cj4+IC0gKiBiZSBz ZXQgZm9yIGVEUCBvdXRwdXRzLgo+PiAtICovCj4+IC0jZGVmaW5lIERFVklDRV9UWVBFX2VEUF9C SVRTIFwKPj4gLQkoREVWSUNFX1RZUEVfSU5URVJOQUxfQ09OTkVDVE9SIHwgXAo+PiAtCSBERVZJ Q0VfVFlQRV9NSVBJX09VVFBVVCB8IFwKPj4gLQkgREVWSUNFX1RZUEVfQ09NUE9TSVRFX09VVFBV VCB8IFwKPj4gLQkgREVWSUNFX1RZUEVfRFVBTF9DSEFOTkVMIHwgXAo+PiAtCSBERVZJQ0VfVFlQ RV9MVkRTX1NJTkdBTElORyB8IFwKPj4gLQkgREVWSUNFX1RZUEVfVE1EU19EVklfU0lHTkFMSU5H IHwgXAo+PiAtCSBERVZJQ0VfVFlQRV9WSURFT19TSUdOQUxJTkcgfCBcCj4+IC0JIERFVklDRV9U WVBFX0RJU1BMQVlQT1JUX09VVFBVVCB8IFwKPj4gLQkgREVWSUNFX1RZUEVfQU5BTE9HX09VVFBV VCkKPj4gLQo+PiAtLyogZGVmaW5lIHRoZSBEVk8gcG9ydCBmb3IgSERNSSBvdXRwdXQgdHlwZSAq Lwo+PiAtI2RlZmluZQkJRFZPX0IJCTEKPj4gLSNkZWZpbmUJCURWT19DCQkyCj4+IC0jZGVmaW5l CQlEVk9fRAkJMwo+PiAtCj4+IC0vKiBQb3NzaWJsZSB2YWx1ZXMgZm9yIHRoZSAiRFZPIFBvcnQi IGZpZWxkIGZvciB2ZXJzaW9ucyA+PSAxNTU6ICovCj4+IC0jZGVmaW5lIERWT19QT1JUX0hETUlB CTAKPj4gLSNkZWZpbmUgRFZPX1BPUlRfSERNSUIJMQo+PiAtI2RlZmluZSBEVk9fUE9SVF9IRE1J QwkyCj4+IC0jZGVmaW5lIERWT19QT1JUX0hETUlECTMKPj4gLSNkZWZpbmUgRFZPX1BPUlRfTFZE Uwk0Cj4+IC0jZGVmaW5lIERWT19QT1JUX1RWCTUKPj4gLSNkZWZpbmUgRFZPX1BPUlRfQ1JUCTYK Pj4gLSNkZWZpbmUgRFZPX1BPUlRfRFBCCTcKPj4gLSNkZWZpbmUgRFZPX1BPUlRfRFBDCTgKPj4g LSNkZWZpbmUgRFZPX1BPUlRfRFBECTkKPj4gLSNkZWZpbmUgRFZPX1BPUlRfRFBBCTEwCj4+IC0j ZGVmaW5lIERWT19QT1JUX0RQRQkxMQo+PiAtI2RlZmluZSBEVk9fUE9SVF9IRE1JRQkxMgo+PiAt I2RlZmluZSBEVk9fUE9SVF9NSVBJQQkyMQo+PiAtI2RlZmluZSBEVk9fUE9SVF9NSVBJQgkyMgo+ PiAtI2RlZmluZSBEVk9fUE9SVF9NSVBJQwkyMwo+PiAtI2RlZmluZSBEVk9fUE9SVF9NSVBJRAky NAo+PiArLyogTUlQSSBTZXF1ZW5jZSBCbG9jayBkZWZpbml0aW9ucyAqLwo+PiArZW51bSBtaXBp X3NlcSB7Cj4+ICsJTUlQSV9TRVFfRU5EID0gMCwKPj4gKwlNSVBJX1NFUV9BU1NFUlRfUkVTRVQs Cj4+ICsJTUlQSV9TRVFfSU5JVF9PVFAsCj4+ICsJTUlQSV9TRVFfRElTUExBWV9PTiwKPj4gKwlN SVBJX1NFUV9ESVNQTEFZX09GRiwKPj4gKwlNSVBJX1NFUV9ERUFTU0VSVF9SRVNFVCwKPj4gKwlN SVBJX1NFUV9CQUNLTElHSFRfT04sCQkvKiBzZXF1ZW5jZSBibG9jayB2MisgKi8KPj4gKwlNSVBJ X1NFUV9CQUNLTElHSFRfT0ZGLAkJLyogc2VxdWVuY2UgYmxvY2sgdjIrICovCj4+ICsJTUlQSV9T RVFfVEVBUl9PTiwJCS8qIHNlcXVlbmNlIGJsb2NrIHYyKyAqLwo+PiArCU1JUElfU0VRX1RFQVJf T0ZGLAkJLyogc2VxdWVuY2UgYmxvY2sgdjMrICovCj4+ICsJTUlQSV9TRVFfUE9XRVJfT04sCQkv KiBzZXF1ZW5jZSBibG9jayB2MysgKi8KPj4gKwlNSVBJX1NFUV9QT1dFUl9PRkYsCQkvKiBzZXF1 ZW5jZSBibG9jayB2MysgKi8KPj4gKwlNSVBJX1NFUV9NQVgKPj4gK307Cj4+ICAKPj4gLS8qIEJs b2NrIDUyIGNvbnRhaW5zIE1JUEkgUGFuZWwgaW5mbwo+PiAtICogNiBzdWNoIGVudGVyaWVzIHdp bGwgdGhlcmUuIEluZGV4IGludG8gY29ycmVjdAo+PiAtICogZW50ZXJ5IGlzIGJhc2VkIG9uIHRo ZSBwYW5lbF9pbmRleCBpbiAjNDAgTEZQCj4+IC0gKi8KPj4gLSNkZWZpbmUgTUFYX01JUElfQ09O RklHVVJBVElPTlMJNgo+PiArZW51bSBtaXBpX3NlcV9lbGVtZW50IHsKPj4gKwlNSVBJX1NFUV9F TEVNX0VORCA9IDAsCj4+ICsJTUlQSV9TRVFfRUxFTV9TRU5EX1BLVCwKPj4gKwlNSVBJX1NFUV9F TEVNX0RFTEFZLAo+PiArCU1JUElfU0VRX0VMRU1fR1BJTywKPj4gKwlNSVBJX1NFUV9FTEVNX0ky QywJCS8qIHNlcXVlbmNlIGJsb2NrIHYyKyAqLwo+PiArCU1JUElfU0VRX0VMRU1fU1BJLAkJLyog c2VxdWVuY2UgYmxvY2sgdjMrICovCj4+ICsJTUlQSV9TRVFfRUxFTV9QTUlDLAkJLyogc2VxdWVu Y2UgYmxvY2sgdjMrICovCj4+ICsJTUlQSV9TRVFfRUxFTV9NQVgKPj4gK307Cj4+ICAKPj4gICNk ZWZpbmUgTUlQSV9EU0lfVU5ERUZJTkVEX1BBTkVMX0lECTAKPj4gICNkZWZpbmUgTUlQSV9EU0lf R0VORVJJQ19QQU5FTF9JRAkxCj4+ICAKPj4gLS8qCj4+IC0gKiBQTUlDIHZzIFNvQyBCYWNrbGln aHQgc3VwcG9ydCBzcGVjaWZpZWQgaW4gcHdtX2JsYwo+PiAtICogZmllbGQgaW4gbWlwaV9jb25m aWcgYmxvY2sgYmVsb3cuCj4+IC0qLwo+PiAtI2RlZmluZSBQUFNfQkxDX1BNSUMgICAwCj4+IC0j ZGVmaW5lIFBQU19CTENfU09DICAgIDEKPj4gLQo+PiAgc3RydWN0IG1pcGlfY29uZmlnIHsKPj4g IAl1MTYgcGFuZWxfaWQ7Cj4+ICAKPj4gQEAgLTgyMSw2ICs4Niw4IEBAIHN0cnVjdCBtaXBpX2Nv bmZpZyB7Cj4+ICAJdTMyIHZpZGVvX3RyYW5zZmVyX21vZGU6MjsKPj4gIAo+PiAgCXUzMiBjYWJj X3N1cHBvcnRlZDoxOwo+PiArI2RlZmluZSBQUFNfQkxDX1BNSUMgICAwCj4+ICsjZGVmaW5lIFBQ U19CTENfU09DICAgIDEKPj4gIAl1MzIgcHdtX2JsYzoxOwo+PiAgCj4+ICAJLyogQml0IDEzOjEw ICovCj4+IEBAIC05MjQsMTIgKzE5MSw3IEBAIHN0cnVjdCBtaXBpX2NvbmZpZyB7Cj4+ICAKPj4g IH0gX19wYWNrZWQ7Cj4+ICAKPj4gLS8qIEJsb2NrIDUyIGNvbnRhaW5zIE1JUEkgY29uZmlndXJh dGlvbiBibG9jawo+PiAtICogNiAqIGJkYl9taXBpX2NvbmZpZywgZm9sbG93ZWQgYnkgNiBwcHMg ZGF0YQo+PiAtICogYmxvY2sgYmVsb3cKPj4gLSAqCj4+IC0gKiBhbGwgZGVsYXlzIGhhcyBhIHVu aXQgb2YgMTAwdXMKPj4gLSAqLwo+PiArLyogYWxsIGRlbGF5cyBoYXZlIGEgdW5pdCBvZiAxMDB1 cyAqLwo+PiAgc3RydWN0IG1pcGlfcHBzX2RhdGEgewo+PiAgCXUxNiBwYW5lbF9vbl9kZWxheTsK Pj4gIAl1MTYgYmxfZW5hYmxlX2RlbGF5Owo+PiBAQCAtOTM4LDU3ICsyMDAsNCBAQCBzdHJ1Y3Qg bWlwaV9wcHNfZGF0YSB7Cj4+ICAJdTE2IHBhbmVsX3Bvd2VyX2N5Y2xlX2RlbGF5Owo+PiAgfSBf X3BhY2tlZDsKPj4gIAo+PiAtc3RydWN0IGJkYl9taXBpX2NvbmZpZyB7Cj4+IC0Jc3RydWN0IG1p cGlfY29uZmlnIGNvbmZpZ1tNQVhfTUlQSV9DT05GSUdVUkFUSU9OU107Cj4+IC0Jc3RydWN0IG1p cGlfcHBzX2RhdGEgcHBzW01BWF9NSVBJX0NPTkZJR1VSQVRJT05TXTsKPj4gLX0gX19wYWNrZWQ7 Cj4+IC0KPj4gLS8qIEJsb2NrIDUzIGNvbnRhaW5zIE1JUEkgc2VxdWVuY2VzIGFzIG5lZWRlZCBi eSB0aGUgcGFuZWwKPj4gLSAqIGZvciBlbmFibGluZyBpdC4gVGhpcyBibG9jayBjYW4gYmUgdmFy aWFibGUgaW4gc2l6ZSBhbmQKPj4gLSAqIGNhbiBiZSBtYXhpbXVtIG9mIDYgYmxvY2tzCj4+IC0g Ki8KPj4gLXN0cnVjdCBiZGJfbWlwaV9zZXF1ZW5jZSB7Cj4+IC0JdTggdmVyc2lvbjsKPj4gLQl1 OCBkYXRhWzBdOwo+PiAtfSBfX3BhY2tlZDsKPj4gLQo+PiAtLyogTUlQSSBTZXF1bmVjZSBCbG9j ayBkZWZpbml0aW9ucyAqLwo+PiAtZW51bSBtaXBpX3NlcSB7Cj4+IC0JTUlQSV9TRVFfRU5EID0g MCwKPj4gLQlNSVBJX1NFUV9BU1NFUlRfUkVTRVQsCj4+IC0JTUlQSV9TRVFfSU5JVF9PVFAsCj4+ IC0JTUlQSV9TRVFfRElTUExBWV9PTiwKPj4gLQlNSVBJX1NFUV9ESVNQTEFZX09GRiwKPj4gLQlN SVBJX1NFUV9ERUFTU0VSVF9SRVNFVCwKPj4gLQlNSVBJX1NFUV9CQUNLTElHSFRfT04sCQkvKiBz ZXF1ZW5jZSBibG9jayB2MisgKi8KPj4gLQlNSVBJX1NFUV9CQUNLTElHSFRfT0ZGLAkJLyogc2Vx dWVuY2UgYmxvY2sgdjIrICovCj4+IC0JTUlQSV9TRVFfVEVBUl9PTiwJCS8qIHNlcXVlbmNlIGJs b2NrIHYyKyAqLwo+PiAtCU1JUElfU0VRX1RFQVJfT0ZGLAkJLyogc2VxdWVuY2UgYmxvY2sgdjMr ICovCj4+IC0JTUlQSV9TRVFfUE9XRVJfT04sCQkvKiBzZXF1ZW5jZSBibG9jayB2MysgKi8KPj4g LQlNSVBJX1NFUV9QT1dFUl9PRkYsCQkvKiBzZXF1ZW5jZSBibG9jayB2MysgKi8KPj4gLQlNSVBJ X1NFUV9NQVgKPj4gLX07Cj4+IC0KPj4gLWVudW0gbWlwaV9zZXFfZWxlbWVudCB7Cj4+IC0JTUlQ SV9TRVFfRUxFTV9FTkQgPSAwLAo+PiAtCU1JUElfU0VRX0VMRU1fU0VORF9QS1QsCj4+IC0JTUlQ SV9TRVFfRUxFTV9ERUxBWSwKPj4gLQlNSVBJX1NFUV9FTEVNX0dQSU8sCj4+IC0JTUlQSV9TRVFf RUxFTV9JMkMsCQkvKiBzZXF1ZW5jZSBibG9jayB2MisgKi8KPj4gLQlNSVBJX1NFUV9FTEVNX1NQ SSwJCS8qIHNlcXVlbmNlIGJsb2NrIHYzKyAqLwo+PiAtCU1JUElfU0VRX0VMRU1fUE1JQywJCS8q IHNlcXVlbmNlIGJsb2NrIHYzKyAqLwo+PiAtCU1JUElfU0VRX0VMRU1fTUFYCj4+IC19Owo+PiAt Cj4+IC1lbnVtIG1pcGlfZ3Bpb19waW5faW5kZXggewo+PiAtCU1JUElfR1BJT19VTkRFRklORUQg PSAwLAo+PiAtCU1JUElfR1BJT19QQU5FTF9FTkFCTEUsCj4+IC0JTUlQSV9HUElPX0JMX0VOQUJM RSwKPj4gLQlNSVBJX0dQSU9fUFdNX0VOQUJMRSwKPj4gLQlNSVBJX0dQSU9fUkVTRVRfTiwKPj4g LQlNSVBJX0dQSU9fUFdSX0RPV05fUiwKPj4gLQlNSVBJX0dQSU9fU1REQllfUlNUX04sCj4+IC0J TUlQSV9HUElPX01BWAo+PiAtfTsKPj4gLQo+PiAgI2VuZGlmIC8qIF9JTlRFTF9CSU9TX0hfICov Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF92YnRfZGVmcy5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdmJ0X2RlZnMuaAo+PiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjc0OWRjZWFiN2MwMgo+PiAtLS0gL2Rldi9udWxs Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3ZidF9kZWZzLmgKPj4gQEAgLTAs MCArMSw4MjYgQEAKPj4gKy8qCj4+ICsgKiBDb3B5cmlnaHQgwqkgMjAwNi0yMDE2IEludGVsIENv cnBvcmF0aW9uCj4+ICsgKgo+PiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPj4gKyAqIGNvcHkgb2YgdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3 YXJlIiksCj4+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPj4g KyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZQo+PiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPj4gKyAqCj4+ICsgKiBUaGUgYWJv dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5n IHRoZSBuZXh0Cj4+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4+ICsgKiBTb2Z0d2FyZS4KPj4gKyAq Cj4+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+PiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4+ICsgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4g Tk8gRVZFTlQgU0hBTEwKPj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF IExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4+ICsgKiBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ U0lORyBGUk9NLAo+PiArICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdB UkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKPj4gKyAqIFNPRlRXQVJFLgo+ PiArICoKPj4gKyAqIEF1dGhvcnM6Cj4+ICsgKiAgICBFcmljIEFuaG9sdCA8ZXJpY0BhbmhvbHQu bmV0Pgo+PiArICoKPj4gKyAqLwo+PiArCj4+ICsvKgo+PiArICogVGhpcyBpbmZvcm1hdGlvbiBp cyBwcml2YXRlIHRvIFZCVCBwYXJzaW5nIGluIGludGVsX2Jpb3MuYy4KPj4gKyAqCj4+ICsgKiBQ bGVhc2UgZG8gTk9UIGluY2x1ZGUgYW55d2hlcmUgZWxzZS4KPj4gKyAqLwo+PiArI2lmbmRlZiBf SU5URUxfQklPU19QUklWQVRFCj4+ICsjZXJyb3IgImludGVsX3ZidF9kZWZzLmggaXMgcHJpdmF0 ZSB0byBpbnRlbF9iaW9zLmMiCj4+ICsjZW5kaWYKPj4gKwo+PiArI2lmbmRlZiBfSU5URUxfVkJU X0RFRlNfSF8KPj4gKyNkZWZpbmUgX0lOVEVMX1ZCVF9ERUZTX0hfCj4+ICsKPj4gKyNpbmNsdWRl ICJpbnRlbF9iaW9zLmgiCj4+ICsKPj4gKy8qKgo+PiArICogc3RydWN0IHZidF9oZWFkZXIgLSBW QlQgSGVhZGVyIHN0cnVjdHVyZQo+PiArICogQHNpZ25hdHVyZToJCVZCVCBzaWduYXR1cmUsIGFs d2F5cyBzdGFydHMgd2l0aCAiJFZCVCIKPj4gKyAqIEB2ZXJzaW9uOgkJVmVyc2lvbiBvZiB0aGlz IHN0cnVjdHVyZQo+PiArICogQGhlYWRlcl9zaXplOglTaXplIG9mIHRoaXMgc3RydWN0dXJlCj4+ ICsgKiBAdmJ0X3NpemU6CQlTaXplIG9mIFZCVCAoVkJUIEhlYWRlciwgQkRCIEhlYWRlciBhbmQg ZGF0YSBibG9ja3MpCj4+ICsgKiBAdmJ0X2NoZWNrc3VtOglDaGVja3N1bQo+PiArICogQHJlc2Vy dmVkMDoJCVJlc2VydmVkCj4+ICsgKiBAYmRiX29mZnNldDoJCU9mZnNldCBvZiAmc3RydWN0IGJk Yl9oZWFkZXIgZnJvbSBiZWdpbm5pbmcgb2YgVkJUCj4+ICsgKiBAYWltX29mZnNldDoJCU9mZnNl dHMgb2YgYWRkLWluIGRhdGEgYmxvY2tzIGZyb20gYmVnaW5uaW5nIG9mIFZCVAo+PiArICovCj4+ ICtzdHJ1Y3QgdmJ0X2hlYWRlciB7Cj4+ICsJdTggc2lnbmF0dXJlWzIwXTsKPj4gKwl1MTYgdmVy c2lvbjsKPj4gKwl1MTYgaGVhZGVyX3NpemU7Cj4+ICsJdTE2IHZidF9zaXplOwo+PiArCXU4IHZi dF9jaGVja3N1bTsKPj4gKwl1OCByZXNlcnZlZDA7Cj4+ICsJdTMyIGJkYl9vZmZzZXQ7Cj4+ICsJ dTMyIGFpbV9vZmZzZXRbNF07Cj4+ICt9IF9fcGFja2VkOwo+PiArCj4+ICsvKioKPj4gKyAqIHN0 cnVjdCBiZGJfaGVhZGVyIC0gQkRCIEhlYWRlciBzdHJ1Y3R1cmUKPj4gKyAqIEBzaWduYXR1cmU6 CQlCREIgc2lnbmF0dXJlICJCSU9TX0RBVEFfQkxPQ0siCj4+ICsgKiBAdmVyc2lvbjoJCVZlcnNp b24gb2YgdGhlIGRhdGEgYmxvY2sgZGVmaW5pdGlvbnMKPj4gKyAqIEBoZWFkZXJfc2l6ZToJU2l6 ZSBvZiB0aGlzIHN0cnVjdHVyZQo+PiArICogQGJkYl9zaXplOgkJU2l6ZSBvZiBCREIgKEJEQiBI ZWFkZXIgYW5kIGRhdGEgYmxvY2tzKQo+PiArICovCj4+ICtzdHJ1Y3QgYmRiX2hlYWRlciB7Cj4+ ICsJdTggc2lnbmF0dXJlWzE2XTsKPj4gKwl1MTYgdmVyc2lvbjsKPj4gKwl1MTYgaGVhZGVyX3Np emU7Cj4+ICsJdTE2IGJkYl9zaXplOwo+PiArfSBfX3BhY2tlZDsKPj4gKwo+PiArLyogc3RyaWN0 bHkgc3BlYWtpbmcsIHRoaXMgaXMgYSAic2tpcCIgYmxvY2ssIGJ1dCBpdCBoYXMgaW50ZXJlc3Rp bmcgaW5mbyAqLwo+PiArc3RydWN0IHZiaW9zX2RhdGEgewo+PiArCXU4IHR5cGU7IC8qIDAgPT0g ZGVza3RvcCwgMSA9PSBtb2JpbGUgKi8KPj4gKwl1OCByZWxzdGFnZTsKPj4gKwl1OCBjaGlwc2V0 Owo+PiArCXU4IGx2ZHNfcHJlc2VudDoxOwo+PiArCXU4IHR2X3ByZXNlbnQ6MTsKPj4gKwl1OCBy c3ZkMjo2OyAvKiBmaW5pc2ggYnl0ZSAqLwo+PiArCXU4IHJzdmQzWzRdOwo+PiArCXU4IHNpZ25v blsxNTVdOwo+PiArCXU4IGNvcHlyaWdodFs2MV07Cj4+ICsJdTE2IGNvZGVfc2VnbWVudDsKPj4g Kwl1OCBkb3NfYm9vdF9tb2RlOwo+PiArCXU4IGJhbmR3aWR0aF9wZXJjZW50Owo+PiArCXU4IHJz dmQ0OyAvKiBwb3B1cCBtZW1vcnkgc2l6ZSAqLwo+PiArCXU4IHJlc2l6ZV9wY2lfYmlvczsKPj4g Kwl1OCByc3ZkNTsgLyogaXMgY3J0IGFscmVhZHkgb24gZGRjMiAqLwo+PiArfSBfX3BhY2tlZDsK Pj4gKwo+PiArLyoKPj4gKyAqIFRoZXJlIGFyZSBzZXZlcmFsIHR5cGVzIG9mIEJJT1MgZGF0YSBi bG9ja3MgKEJEQnMpLCBlYWNoIGJsb2NrIGhhcwo+PiArICogYW4gSUQgYW5kIHNpemUgaW4gdGhl IGZpcnN0IDMgYnl0ZXMgKElEIGluIGZpcnN0LCBzaXplIGluIG5leHQgMikuCj4+ICsgKiBLbm93 biB0eXBlcyBhcmUgbGlzdGVkIGJlbG93Lgo+PiArICovCj4+ICsjZGVmaW5lIEJEQl9HRU5FUkFM X0ZFQVRVUkVTCSAgMQo+PiArI2RlZmluZSBCREJfR0VORVJBTF9ERUZJTklUSU9OUwkgIDIKPj4g KyNkZWZpbmUgQkRCX09MRF9UT0dHTEVfTElTVAkgIDMKPj4gKyNkZWZpbmUgQkRCX01PREVfU1VQ UE9SVF9MSVNUCSAgNAo+PiArI2RlZmluZSBCREJfR0VORVJJQ19NT0RFX1RBQkxFCSAgNQo+PiAr I2RlZmluZSBCREJfRVhUX01NSU9fUkVHUwkgIDYKPj4gKyNkZWZpbmUgQkRCX1NXRl9JTwkJICA3 Cj4+ICsjZGVmaW5lIEJEQl9TV0ZfTU1JTwkJICA4Cj4+ICsjZGVmaW5lIEJEQl9QU1IJCQkgIDkK Pj4gKyNkZWZpbmUgQkRCX01PREVfUkVNT1ZBTF9UQUJMRQkgMTAKPj4gKyNkZWZpbmUgQkRCX0NI SUxEX0RFVklDRV9UQUJMRQkgMTEKPj4gKyNkZWZpbmUgQkRCX0RSSVZFUl9GRUFUVVJFUwkgMTIK Pj4gKyNkZWZpbmUgQkRCX0RSSVZFUl9QRVJTSVNURU5DRQkgMTMKPj4gKyNkZWZpbmUgQkRCX0VY VF9UQUJMRV9QVFJTCSAxNAo+PiArI2RlZmluZSBCREJfRE9UX0NMT0NLX09WRVJSSURFCSAxNQo+ PiArI2RlZmluZSBCREJfRElTUExBWV9TRUxFQ1QJIDE2Cj4+ICsvKiAxNyByc3ZkICovCj4+ICsj ZGVmaW5lIEJEQl9EUklWRVJfUk9UQVRJT04JIDE4Cj4+ICsjZGVmaW5lIEJEQl9ESVNQTEFZX1JF TU9WRQkgMTkKPj4gKyNkZWZpbmUgQkRCX09FTV9DVVNUT00JCSAyMAo+PiArI2RlZmluZSBCREJf RUZQX0xJU1QJCSAyMSAvKiB3b3JrYXJvdW5kcyBmb3IgVkdBIGhzeW5jL3ZzeW5jICovCj4+ICsj ZGVmaW5lIEJEQl9TRFZPX0xWRFNfT1BUSU9OUwkgMjIKPj4gKyNkZWZpbmUgQkRCX1NEVk9fUEFO RUxfRFREUwkgMjMKPj4gKyNkZWZpbmUgQkRCX1NEVk9fTFZEU19QTlBfSURTCSAyNAo+PiArI2Rl ZmluZSBCREJfU0RWT19MVkRTX1BPV0VSX1NFUQkgMjUKPj4gKyNkZWZpbmUgQkRCX1RWX09QVElP TlMJCSAyNgo+PiArI2RlZmluZSBCREJfRURQCQkJIDI3Cj4+ICsjZGVmaW5lIEJEQl9MVkRTX09Q VElPTlMJIDQwCj4+ICsjZGVmaW5lIEJEQl9MVkRTX0xGUF9EQVRBX1BUUlMJIDQxCj4+ICsjZGVm aW5lIEJEQl9MVkRTX0xGUF9EQVRBCSA0Mgo+PiArI2RlZmluZSBCREJfTFZEU19CQUNLTElHSFQJ IDQzCj4+ICsjZGVmaW5lIEJEQl9MVkRTX1BPV0VSCQkgNDQKPj4gKyNkZWZpbmUgQkRCX01JUElf Q09ORklHCQkgNTIKPj4gKyNkZWZpbmUgQkRCX01JUElfU0VRVUVOQ0UJIDUzCj4+ICsjZGVmaW5l IEJEQl9TS0lQCQkyNTQgLyogVkJJT1MgcHJpdmF0ZSBibG9jaywgaWdub3JlICovCj4+ICsKPj4g K3N0cnVjdCBiZGJfZ2VuZXJhbF9mZWF0dXJlcyB7Cj4+ICsgICAgICAgIC8qIGJpdHMgMSAqLwo+ PiArCXU4IHBhbmVsX2ZpdHRpbmc6MjsKPj4gKwl1OCBmbGV4YWltOjE7Cj4+ICsJdTggbXNnX2Vu YWJsZToxOwo+PiArCXU4IGNsZWFyX3NjcmVlbjozOwo+PiArCXU4IGNvbG9yX2ZsaXA6MTsKPj4g Kwo+PiArICAgICAgICAvKiBiaXRzIDIgKi8KPj4gKwl1OCBkb3dubG9hZF9leHRfdmJ0OjE7Cj4+ ICsJdTggZW5hYmxlX3NzYzoxOwo+PiArCXU4IHNzY19mcmVxOjE7Cj4+ICsJdTggZW5hYmxlX2xm cF9vbl9vdmVycmlkZToxOwo+PiArCXU4IGRpc2FibGVfc3NjX2RkdDoxOwo+PiArCXU4IHJzdmQ3 OjE7Cj4+ICsJdTggZGlzcGxheV9jbG9ja19tb2RlOjE7Cj4+ICsJdTggcnN2ZDg6MTsgLyogZmlu aXNoIGJ5dGUgKi8KPj4gKwo+PiArICAgICAgICAvKiBiaXRzIDMgKi8KPj4gKwl1OCBkaXNhYmxl X3Ntb290aF92aXNpb246MTsKPj4gKwl1OCBzaW5nbGVfZHZpOjE7Cj4+ICsJdTggcnN2ZDk6MTsK Pj4gKwl1OCBmZGlfcnhfcG9sYXJpdHlfaW52ZXJ0ZWQ6MTsKPj4gKwl1OCByc3ZkMTA6NDsgLyog ZmluaXNoIGJ5dGUgKi8KPj4gKwo+PiArICAgICAgICAvKiBiaXRzIDQgKi8KPj4gKwl1OCBsZWdh Y3lfbW9uaXRvcl9kZXRlY3Q7Cj4+ICsKPj4gKyAgICAgICAgLyogYml0cyA1ICovCj4+ICsJdTgg aW50X2NydF9zdXBwb3J0OjE7Cj4+ICsJdTggaW50X3R2X3N1cHBvcnQ6MTsKPj4gKwl1OCBpbnRf ZWZwX3N1cHBvcnQ6MTsKPj4gKwl1OCBkcF9zc2NfZW5iOjE7CS8qIFBDSCBhdHRhY2hlZCBlRFAg c3VwcG9ydHMgU1NDICovCj4+ICsJdTggZHBfc3NjX2ZyZXE6MTsJLyogU1NDIGZyZXEgZm9yIFBD SCBhdHRhY2hlZCBlRFAgKi8KPj4gKwl1OCByc3ZkMTE6MzsgLyogZmluaXNoIGJ5dGUgKi8KPj4g K30gX19wYWNrZWQ7Cj4+ICsKPj4gKy8qIHByZS05MTUgKi8KPj4gKyNkZWZpbmUgR1BJT19QSU5f RFZJX0xWRFMJMHgwMyAvKiAiRFZJL0xWRFMgRERDIEdQSU8gcGlucyIgKi8KPj4gKyNkZWZpbmUg R1BJT19QSU5fQUREX0kyQwkweDA1IC8qICJBRERDQVJEIEkyQyBHUElPIHBpbnMiICovCj4+ICsj ZGVmaW5lIEdQSU9fUElOX0FERF9EREMJMHgwNCAvKiAiQUREQ0FSRCBEREMgR1BJTyBwaW5zIiAq Lwo+PiArI2RlZmluZSBHUElPX1BJTl9BRERfRERDX0kyQwkweDA2IC8qICJBRERDQVJEIEREQy9J MkMgR1BJTyBwaW5zIiAqLwo+PiArCj4+ICsvKiBQcmUgOTE1ICovCj4+ICsjZGVmaW5lIERFVklD RV9UWVBFX05PTkUJMHgwMAo+PiArI2RlZmluZSBERVZJQ0VfVFlQRV9DUlQJCTB4MDEKPj4gKyNk ZWZpbmUgREVWSUNFX1RZUEVfVFYJCTB4MDkKPj4gKyNkZWZpbmUgREVWSUNFX1RZUEVfRUZQCQkw eDEyCj4+ICsjZGVmaW5lIERFVklDRV9UWVBFX0xGUAkJMHgyMgo+PiArLyogT24gOTE1KyAqLwo+ PiArI2RlZmluZSBERVZJQ0VfVFlQRV9DUlRfRFBNUwkJMHg2MDAxCj4+ICsjZGVmaW5lIERFVklD RV9UWVBFX0NSVF9EUE1TX0hPVFBMVUcJMHg0MDAxCj4+ICsjZGVmaW5lIERFVklDRV9UWVBFX1RW X0NPTVBPU0lURQkweDAyMDkKPj4gKyNkZWZpbmUgREVWSUNFX1RZUEVfVFZfTUFDUk9WSVNJT04J MHgwMjg5Cj4+ICsjZGVmaW5lIERFVklDRV9UWVBFX1RWX1JGX0NPTVBPU0lURQkweDAyMGMKPj4g KyNkZWZpbmUgREVWSUNFX1RZUEVfVFZfU1ZJREVPX0NPTVBPU0lURQkweDA2MDkKPj4gKyNkZWZp bmUgREVWSUNFX1RZUEVfVFZfU0NBUlQJCTB4MDIwOQo+PiArI2RlZmluZSBERVZJQ0VfVFlQRV9U Vl9DT0RFQ19IT1RQTFVHX1BXUiAweDYwMDkKPj4gKyNkZWZpbmUgREVWSUNFX1RZUEVfRUZQX0hP VFBMVUdfUFdSCTB4NjAxMgo+PiArI2RlZmluZSBERVZJQ0VfVFlQRV9FRlBfRFZJX0hPVFBMVUdf UFdSCTB4NjA1Mgo+PiArI2RlZmluZSBERVZJQ0VfVFlQRV9FRlBfRFZJX0kJCTB4NjA1Mwo+PiAr I2RlZmluZSBERVZJQ0VfVFlQRV9FRlBfRFZJX0RfRFVBTAkweDYxNTIKPj4gKyNkZWZpbmUgREVW SUNFX1RZUEVfRUZQX0RWSV9EX0hEQ1AJMHg2MGQyCj4+ICsjZGVmaW5lIERFVklDRV9UWVBFX09Q RU5MRElfSE9UUExVR19QV1IJMHg2MDYyCj4+ICsjZGVmaW5lIERFVklDRV9UWVBFX09QRU5MRElf RFVBTFBJWAkweDYxNjIKPj4gKyNkZWZpbmUgREVWSUNFX1RZUEVfTEZQX1BBTkVMTElOSwkweDUw MTIKPj4gKyNkZWZpbmUgREVWSUNFX1RZUEVfTEZQX0NNT1NfUFdSCTB4NTA0Mgo+PiArI2RlZmlu ZSBERVZJQ0VfVFlQRV9MRlBfTFZEU19QV1IJMHg1MDYyCj4+ICsjZGVmaW5lIERFVklDRV9UWVBF X0xGUF9MVkRTX0RVQUwJMHg1MTYyCj4+ICsjZGVmaW5lIERFVklDRV9UWVBFX0xGUF9MVkRTX0RV QUxfSERDUAkweDUxZTIKPj4gKwo+PiArI2RlZmluZSBERVZJQ0VfQ0ZHX05PTkUJCTB4MDAKPj4g KyNkZWZpbmUgREVWSUNFX0NGR18xMkJJVF9EVk9CCTB4MDEKPj4gKyNkZWZpbmUgREVWSUNFX0NG R18xMkJJVF9EVk9DCTB4MDIKPj4gKyNkZWZpbmUgREVWSUNFX0NGR18yNEJJVF9EVk9CQwkweDA5 Cj4+ICsjZGVmaW5lIERFVklDRV9DRkdfMjRCSVRfRFZPQ0IJMHgwYQo+PiArI2RlZmluZSBERVZJ Q0VfQ0ZHX0RVQUxfRFZPQgkweDExCj4+ICsjZGVmaW5lIERFVklDRV9DRkdfRFVBTF9EVk9DCTB4 MTIKPj4gKyNkZWZpbmUgREVWSUNFX0NGR19EVUFMX0RWT0JDCTB4MTMKPj4gKyNkZWZpbmUgREVW SUNFX0NGR19EVUFMX0xJTktfRFZPQkMJMHgxOQo+PiArI2RlZmluZSBERVZJQ0VfQ0ZHX0RVQUxf TElOS19EVk9DQgkweDFhCj4+ICsKPj4gKyNkZWZpbmUgREVWSUNFX1dJUkVfTk9ORQkweDAwCj4+ ICsjZGVmaW5lIERFVklDRV9XSVJFX0RWT0IJMHgwMQo+PiArI2RlZmluZSBERVZJQ0VfV0lSRV9E Vk9DCTB4MDIKPj4gKyNkZWZpbmUgREVWSUNFX1dJUkVfRFZPQkMJMHgwMwo+PiArI2RlZmluZSBE RVZJQ0VfV0lSRV9EVk9CQgkweDA1Cj4+ICsjZGVmaW5lIERFVklDRV9XSVJFX0RWT0NDCTB4MDYK Pj4gKyNkZWZpbmUgREVWSUNFX1dJUkVfRFZPQl9NQVNURVIgMHgwZAo+PiArI2RlZmluZSBERVZJ Q0VfV0lSRV9EVk9DX01BU1RFUiAweDBlCj4+ICsKPj4gKyNkZWZpbmUgREVWSUNFX1BPUlRfRFZP QQkweDAwIC8qIG5vbmUgb24gODQ1KyAqLwo+PiArI2RlZmluZSBERVZJQ0VfUE9SVF9EVk9CCTB4 MDEKPj4gKyNkZWZpbmUgREVWSUNFX1BPUlRfRFZPQwkweDAyCj4+ICsKPj4gKy8qCj4+ICsgKiBX ZSB1c2VkIHRvIGtlZXAgdGhpcyBzdHJ1Y3QgYnV0IHdpdGhvdXQgYW55IHZlcnNpb24gY29udHJv bC4gV2Ugc2hvdWxkIGF2b2lkCj4+ICsgKiB1c2luZyBpdCBpbiB0aGUgZnV0dXJlLCBidXQgaXQg c2hvdWxkIGJlIHNhZmUgdG8ga2VlcCB1c2luZyBpdCBpbiB0aGUgb2xkCj4+ICsgKiBjb2RlLiBE byBub3QgY2hhbmdlOyB3ZSByZWx5IG9uIGl0cyBzaXplLgo+PiArICovCj4+ICtzdHJ1Y3Qgb2xk X2NoaWxkX2Rldl9jb25maWcgewo+PiArCXUxNiBoYW5kbGU7Cj4+ICsJdTE2IGRldmljZV90eXBl Owo+PiArCXU4ICBkZXZpY2VfaWRbMTBdOyAvKiBhc2NpaSBzdHJpbmcgKi8KPj4gKwl1MTYgYWRk aW5fb2Zmc2V0Owo+PiArCXU4ICBkdm9fcG9ydDsgLyogU2VlIERldmljZV9QT1JUXyogYWJvdmUg Ki8KPj4gKwl1OCAgaTJjX3BpbjsKPj4gKwl1OCAgc2xhdmVfYWRkcjsKPj4gKwl1OCAgZGRjX3Bp bjsKPj4gKwl1MTYgZWRpZF9wdHI7Cj4+ICsJdTggIGR2b19jZmc7IC8qIFNlZSBERVZJQ0VfQ0ZH XyogYWJvdmUgKi8KPj4gKwl1OCAgZHZvMl9wb3J0Owo+PiArCXU4ICBpMmMyX3BpbjsKPj4gKwl1 OCAgc2xhdmUyX2FkZHI7Cj4+ICsJdTggIGRkYzJfcGluOwo+PiArCXU4ICBjYXBhYmlsaXRpZXM7 Cj4+ICsJdTggIGR2b193aXJpbmc7LyogU2VlIERFVklDRV9XSVJFXyogYWJvdmUgKi8KPj4gKwl1 OCAgZHZvMl93aXJpbmc7Cj4+ICsJdTE2IGV4dGVuZGVkX3R5cGU7Cj4+ICsJdTggIGR2b19mdW5j dGlvbjsKPj4gK30gX19wYWNrZWQ7Cj4+ICsKPj4gKy8qIFRoaXMgb25lIGNvbnRhaW5zIGZpZWxk IG9mZnNldHMgdGhhdCBhcmUga25vd24gdG8gYmUgY29tbW9uIGZvciBhbGwgQkRCCj4+ICsgKiB2 ZXJzaW9ucy4gTm90aWNlIHRoYXQgdGhlIG1lYW5pbmcgb2YgdGhlIGNvbnRlbnRzIGNvbnRlbnRz IG1heSBzdGlsbCBjaGFuZ2UsCj4+ICsgKiBidXQgYXQgbGVhc3QgdGhlIG9mZnNldHMgYXJlIGNv bnNpc3RlbnQuICovCj4+ICsKPj4gKy8qIERlZmluaXRpb25zIGZvciBmbGFnc18xICovCj4+ICsj ZGVmaW5lIElCT09TVF9FTkFCTEUgKDE8PDMpCj4+ICsKPj4gK3N0cnVjdCBjb21tb25fY2hpbGRf ZGV2X2NvbmZpZyB7Cj4+ICsJdTE2IGhhbmRsZTsKPj4gKwl1MTYgZGV2aWNlX3R5cGU7Cj4+ICsJ dTggbm90X2NvbW1vbjFbMTJdOwo+PiArCXU4IGR2b19wb3J0Owo+PiArCXU4IG5vdF9jb21tb24y WzJdOwo+PiArCXU4IGRkY19waW47Cj4+ICsJdTE2IGVkaWRfcHRyOwo+PiArCXU4IG9ic29sZXRl Owo+PiArCXU4IGZsYWdzXzE7Cj4+ICsJdTggbm90X2NvbW1vbjNbMTNdOwo+PiArCXU4IGlib29z dF9sZXZlbDsKPj4gK30gX19wYWNrZWQ7Cj4+ICsKPj4gKwo+PiArLyogVGhpcyBmaWVsZCBjaGFu Z2VzIGRlcGVuZGluZyBvbiB0aGUgQkRCIHZlcnNpb24sIHNvIHRoZSBtb3N0IHJlbGlhYmxlIHdh eSB0bwo+PiArICogcmVhZCBpdCBpcyBieSBjaGVja2luZyB0aGUgQkRCIHZlcnNpb24gYW5kIHJl YWRpbmcgdGhlIHJhdyBwb2ludGVyLiAqLwo+PiArdW5pb24gY2hpbGRfZGV2aWNlX2NvbmZpZyB7 Cj4+ICsJLyogVGhpcyBvbmUgaXMgc2FmZSB0byBiZSB1c2VkIGFueXdoZXJlLCBidXQgdGhlIGNv ZGUgc2hvdWxkIHN0aWxsIGNoZWNrCj4+ICsJICogdGhlIEJEQiB2ZXJzaW9uLiAqLwo+PiArCXU4 IHJhd1szM107Cj4+ICsJLyogVGhpcyBvbmUgc2hvdWxkIG9ubHkgYmUga2VwdCBmb3IgbGVnYWN5 IGNvZGUuICovCj4+ICsJc3RydWN0IG9sZF9jaGlsZF9kZXZfY29uZmlnIG9sZDsKPj4gKwkvKiBU aGlzIG9uZSBzaG91bGQgYWxzbyBiZSBzYWZlIHRvIHVzZSBhbnl3aGVyZSwgZXZlbiB3aXRob3V0 IHZlcnNpb24KPj4gKwkgKiBjaGVja3MuICovCj4+ICsJc3RydWN0IGNvbW1vbl9jaGlsZF9kZXZf Y29uZmlnIGNvbW1vbjsKPj4gK30gX19wYWNrZWQ7Cj4+ICsKPj4gK3N0cnVjdCBiZGJfZ2VuZXJh bF9kZWZpbml0aW9ucyB7Cj4+ICsJLyogRERDIEdQSU8gKi8KPj4gKwl1OCBjcnRfZGRjX2dtYnVz X3BpbjsKPj4gKwo+PiArCS8qIERQTVMgYml0cyAqLwo+PiArCXU4IGRwbXNfYWNwaToxOwo+PiAr CXU4IHNraXBfYm9vdF9jcnRfZGV0ZWN0OjE7Cj4+ICsJdTggZHBtc19haW06MTsKPj4gKwl1OCBy c3ZkMTo1OyAvKiBmaW5pc2ggYnl0ZSAqLwo+PiArCj4+ICsJLyogYm9vdCBkZXZpY2UgYml0cyAq Lwo+PiArCXU4IGJvb3RfZGlzcGxheVsyXTsKPj4gKwl1OCBjaGlsZF9kZXZfc2l6ZTsKPj4gKwo+ PiArCS8qCj4+ICsJICogRGV2aWNlIGluZm86Cj4+ICsJICogSWYgVFYgaXMgcHJlc2VudCwgaXQn bGwgYmUgYXQgZGV2aWNlc1swXS4KPj4gKwkgKiBMVkRTIHdpbGwgYmUgbmV4dCwgZWl0aGVyIGRl dmljZXNbMF0gb3IgWzFdLCBpZiBwcmVzZW50Lgo+PiArCSAqIE9uIHNvbWUgcGxhdGZvcm1zIHRo ZSBudW1iZXIgb2YgZGV2aWNlIGlzIDYuIEJ1dCBjb3VsZCBiZSBhcyBmZXcgYXMKPj4gKwkgKiA0 IGlmIGJvdGggVFYgYW5kIExWRFMgYXJlIG1pc3NpbmcuCj4+ICsJICogQW5kIHRoZSBkZXZpY2Ug bnVtIGlzIHJlbGF0ZWQgd2l0aCB0aGUgc2l6ZSBvZiBnZW5lcmFsIGRlZmluaXRpb24KPj4gKwkg KiBibG9jay4gSXQgaXMgb2J0YWluZWQgYnkgdXNpbmcgdGhlIGZvbGxvd2luZyBmb3JtdWxhOgo+ PiArCSAqIG51bWJlciA9IChibG9ja19zaXplIC0gc2l6ZW9mKGJkYl9nZW5lcmFsX2RlZmluaXRp b25zKSkvCj4+ICsJICoJICAgICBkZWZzLT5jaGlsZF9kZXZfc2l6ZTsKPj4gKwkgKi8KPj4gKwl1 aW50OF90IGRldmljZXNbMF07Cj4+ICt9IF9fcGFja2VkOwo+PiArCj4+ICsvKiBNYXNrIGZvciBE UlJTIC8gUGFuZWwgQ2hhbm5lbCAvIFNTQyAvIEJMVCBjb250cm9sIGJpdHMgZXh0cmFjdGlvbiAq Lwo+PiArI2RlZmluZSBNT0RFX01BU0sJCTB4Mwo+PiArCj4+ICtzdHJ1Y3QgYmRiX2x2ZHNfb3B0 aW9ucyB7Cj4+ICsJdTggcGFuZWxfdHlwZTsKPj4gKwl1OCByc3ZkMTsKPj4gKwkvKiBMVkRTIGNh cGFiaWxpdGllcywgc3RvcmVkIGluIGEgZHdvcmQgKi8KPj4gKwl1OCBwZml0X21vZGU6MjsKPj4g Kwl1OCBwZml0X3RleHRfbW9kZV9lbmhhbmNlZDoxOwo+PiArCXU4IHBmaXRfZ2Z4X21vZGVfZW5o YW5jZWQ6MTsKPj4gKwl1OCBwZml0X3JhdGlvX2F1dG86MTsKPj4gKwl1OCBwaXhlbF9kaXRoZXI6 MTsKPj4gKwl1OCBsdmRzX2VkaWQ6MTsKPj4gKwl1OCByc3ZkMjoxOwo+PiArCXU4IHJzdmQ0Owo+ PiArCS8qIExWRFMgUGFuZWwgY2hhbm5lbCBiaXRzIHN0b3JlZCBoZXJlICovCj4+ICsJdTMyIGx2 ZHNfcGFuZWxfY2hhbm5lbF9iaXRzOwo+PiArCS8qIExWRFMgU1NDIChTcHJlYWQgU3BlY3RydW0g Q2xvY2spIGJpdHMgc3RvcmVkIGhlcmUuICovCj4+ICsJdTE2IHNzY19iaXRzOwo+PiArCXUxNiBz c2NfZnJlcTsKPj4gKwl1MTYgc3NjX2RkdDsKPj4gKwkvKiBQYW5lbCBjb2xvciBkZXB0aCBkZWZp bmVkIGhlcmUgKi8KPj4gKwl1MTYgcGFuZWxfY29sb3JfZGVwdGg7Cj4+ICsJLyogTFZEUyBwYW5l bCB0eXBlIGJpdHMgc3RvcmVkIGhlcmUgKi8KPj4gKwl1MzIgZHBzX3BhbmVsX3R5cGVfYml0czsK Pj4gKwkvKiBMVkRTIGJhY2tsaWdodCBjb250cm9sIHR5cGUgYml0cyBzdG9yZWQgaGVyZSAqLwo+ PiArCXUzMiBibHRfY29udHJvbF90eXBlX2JpdHM7Cj4+ICt9IF9fcGFja2VkOwo+PiArCj4+ICsv KiBMRlAgcG9pbnRlciB0YWJsZSBjb250YWlucyBlbnRyaWVzIHRvIHRoZSBzdHJ1Y3QgYmVsb3cg Ki8KPj4gK3N0cnVjdCBiZGJfbHZkc19sZnBfZGF0YV9wdHIgewo+PiArCXUxNiBmcF90aW1pbmdf b2Zmc2V0OyAvKiBvZmZzZXRzIGFyZSBmcm9tIHN0YXJ0IG9mIGJkYiAqLwo+PiArCXU4IGZwX3Rh YmxlX3NpemU7Cj4+ICsJdTE2IGR2b190aW1pbmdfb2Zmc2V0Owo+PiArCXU4IGR2b190YWJsZV9z aXplOwo+PiArCXUxNiBwYW5lbF9wbnBfaWRfb2Zmc2V0Owo+PiArCXU4IHBucF90YWJsZV9zaXpl Owo+PiArfSBfX3BhY2tlZDsKPj4gKwo+PiArc3RydWN0IGJkYl9sdmRzX2xmcF9kYXRhX3B0cnMg ewo+PiArCXU4IGx2ZHNfZW50cmllczsgLyogZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgbHZkc19k YXRhX3B0ciBzdHJ1Y3RzICovCj4+ICsJc3RydWN0IGJkYl9sdmRzX2xmcF9kYXRhX3B0ciBwdHJb MTZdOwo+PiArfSBfX3BhY2tlZDsKPj4gKwo+PiArLyogTEZQIGRhdGEgaGFzIDMgYmxvY2tzIHBl ciBlbnRyeSAqLwo+PiArc3RydWN0IGx2ZHNfZnBfdGltaW5nIHsKPj4gKwl1MTYgeF9yZXM7Cj4+ ICsJdTE2IHlfcmVzOwo+PiArCXUzMiBsdmRzX3JlZzsKPj4gKwl1MzIgbHZkc19yZWdfdmFsOwo+ PiArCXUzMiBwcF9vbl9yZWc7Cj4+ICsJdTMyIHBwX29uX3JlZ192YWw7Cj4+ICsJdTMyIHBwX29m Zl9yZWc7Cj4+ICsJdTMyIHBwX29mZl9yZWdfdmFsOwo+PiArCXUzMiBwcF9jeWNsZV9yZWc7Cj4+ ICsJdTMyIHBwX2N5Y2xlX3JlZ192YWw7Cj4+ICsJdTMyIHBmaXRfcmVnOwo+PiArCXUzMiBwZml0 X3JlZ192YWw7Cj4+ICsJdTE2IHRlcm1pbmF0b3I7Cj4+ICt9IF9fcGFja2VkOwo+PiArCj4+ICtz dHJ1Y3QgbHZkc19kdm9fdGltaW5nIHsKPj4gKwl1MTYgY2xvY2s7CQkvKio8IEluIDEwa2h6ICov Cj4+ICsJdTggaGFjdGl2ZV9sbzsKPj4gKwl1OCBoYmxhbmtfbG87Cj4+ICsJdTggaGJsYW5rX2hp OjQ7Cj4+ICsJdTggaGFjdGl2ZV9oaTo0Owo+PiArCXU4IHZhY3RpdmVfbG87Cj4+ICsJdTggdmJs YW5rX2xvOwo+PiArCXU4IHZibGFua19oaTo0Owo+PiArCXU4IHZhY3RpdmVfaGk6NDsKPj4gKwl1 OCBoc3luY19vZmZfbG87Cj4+ICsJdTggaHN5bmNfcHVsc2Vfd2lkdGg7Cj4+ICsJdTggdnN5bmNf cHVsc2Vfd2lkdGg6NDsKPj4gKwl1OCB2c3luY19vZmY6NDsKPj4gKwl1OCByc3ZkMDo2Owo+PiAr CXU4IGhzeW5jX29mZl9oaToyOwo+PiArCXU4IGhfaW1hZ2U7Cj4+ICsJdTggdl9pbWFnZTsKPj4g Kwl1OCBtYXhfaHY7Cj4+ICsJdTggaF9ib3JkZXI7Cj4+ICsJdTggdl9ib3JkZXI7Cj4+ICsJdTgg cnN2ZDE6MzsKPj4gKwl1OCBkaWdpdGFsOjI7Cj4+ICsJdTggdnN5bmNfcG9zaXRpdmU6MTsKPj4g Kwl1OCBoc3luY19wb3NpdGl2ZToxOwo+PiArCXU4IHJzdmQyOjE7Cj4+ICt9IF9fcGFja2VkOwo+ PiArCj4+ICtzdHJ1Y3QgbHZkc19wbnBfaWQgewo+PiArCXUxNiBtZmdfbmFtZTsKPj4gKwl1MTYg cHJvZHVjdF9jb2RlOwo+PiArCXUzMiBzZXJpYWw7Cj4+ICsJdTggbWZnX3dlZWs7Cj4+ICsJdTgg bWZnX3llYXI7Cj4+ICt9IF9fcGFja2VkOwo+PiArCj4+ICtzdHJ1Y3QgYmRiX2x2ZHNfbGZwX2Rh dGFfZW50cnkgewo+PiArCXN0cnVjdCBsdmRzX2ZwX3RpbWluZyBmcF90aW1pbmc7Cj4+ICsJc3Ry dWN0IGx2ZHNfZHZvX3RpbWluZyBkdm9fdGltaW5nOwo+PiArCXN0cnVjdCBsdmRzX3BucF9pZCBw bnBfaWQ7Cj4+ICt9IF9fcGFja2VkOwo+PiArCj4+ICtzdHJ1Y3QgYmRiX2x2ZHNfbGZwX2RhdGEg ewo+PiArCXN0cnVjdCBiZGJfbHZkc19sZnBfZGF0YV9lbnRyeSBkYXRhWzE2XTsKPj4gK30gX19w YWNrZWQ7Cj4+ICsKPj4gKyNkZWZpbmUgQkRCX0JBQ0tMSUdIVF9UWVBFX05PTkUJMAo+PiArI2Rl ZmluZSBCREJfQkFDS0xJR0hUX1RZUEVfUFdNCTIKPj4gKwo+PiArc3RydWN0IGJkYl9sZnBfYmFj a2xpZ2h0X2RhdGFfZW50cnkgewo+PiArCXU4IHR5cGU6MjsKPj4gKwl1OCBhY3RpdmVfbG93X3B3 bToxOwo+PiArCXU4IG9ic29sZXRlMTo1Owo+PiArCXUxNiBwd21fZnJlcV9oejsKPj4gKwl1OCBt aW5fYnJpZ2h0bmVzczsKPj4gKwl1OCBvYnNvbGV0ZTI7Cj4+ICsJdTggb2Jzb2xldGUzOwo+PiAr fSBfX3BhY2tlZDsKPj4gKwo+PiArc3RydWN0IGJkYl9sZnBfYmFja2xpZ2h0X2RhdGEgewo+PiAr CXU4IGVudHJ5X3NpemU7Cj4+ICsJc3RydWN0IGJkYl9sZnBfYmFja2xpZ2h0X2RhdGFfZW50cnkg ZGF0YVsxNl07Cj4+ICsJdTggbGV2ZWxbMTZdOwo+PiArfSBfX3BhY2tlZDsKPj4gKwo+PiArc3Ry dWN0IGFpbWRiX2hlYWRlciB7Cj4+ICsJY2hhciBzaWduYXR1cmVbMTZdOwo+PiArCWNoYXIgb2Vt X2RldmljZVsyMF07Cj4+ICsJdTE2IGFpbWRiX3ZlcnNpb247Cj4+ICsJdTE2IGFpbWRiX2hlYWRl cl9zaXplOwo+PiArCXUxNiBhaW1kYl9zaXplOwo+PiArfSBfX3BhY2tlZDsKPj4gKwo+PiArc3Ry dWN0IGFpbWRiX2Jsb2NrIHsKPj4gKwl1OCBhaW1kYl9pZDsKPj4gKwl1MTYgYWltZGJfc2l6ZTsK Pj4gK30gX19wYWNrZWQ7Cj4+ICsKPj4gK3N0cnVjdCB2Y2hfcGFuZWxfZGF0YSB7Cj4+ICsJdTE2 IGZwX3RpbWluZ19vZmZzZXQ7Cj4+ICsJdTggZnBfdGltaW5nX3NpemU7Cj4+ICsJdTE2IGR2b190 aW1pbmdfb2Zmc2V0Owo+PiArCXU4IGR2b190aW1pbmdfc2l6ZTsKPj4gKwl1MTYgdGV4dF9maXR0 aW5nX29mZnNldDsKPj4gKwl1OCB0ZXh0X2ZpdHRpbmdfc2l6ZTsKPj4gKwl1MTYgZ3JhcGhpY3Nf Zml0dGluZ19vZmZzZXQ7Cj4+ICsJdTggZ3JhcGhpY3NfZml0dGluZ19zaXplOwo+PiArfSBfX3Bh Y2tlZDsKPj4gKwo+PiArc3RydWN0IHZjaF9iZGJfMjIgewo+PiArCXN0cnVjdCBhaW1kYl9ibG9j ayBhaW1kYl9ibG9jazsKPj4gKwlzdHJ1Y3QgdmNoX3BhbmVsX2RhdGEgcGFuZWxzWzE2XTsKPj4g K30gX19wYWNrZWQ7Cj4+ICsKPj4gK3N0cnVjdCBiZGJfc2R2b19sdmRzX29wdGlvbnMgewo+PiAr CXU4IHBhbmVsX2JhY2tsaWdodDsKPj4gKwl1OCBoNDBfc2V0X3BhbmVsX3R5cGU7Cj4+ICsJdTgg cGFuZWxfdHlwZTsKPj4gKwl1OCBzc2NfY2xrX2ZyZXE7Cj4+ICsJdTE2IGFsc19sb3dfdHJpcDsK Pj4gKwl1MTYgYWxzX2hpZ2hfdHJpcDsKPj4gKwl1OCBzY2xhbGFyY29lZmZfdGFiX3Jvd19udW07 Cj4+ICsJdTggc2NsYWxhcmNvZWZmX3RhYl9yb3dfc2l6ZTsKPj4gKwl1OCBjb2VmZmljaWVudFs4 XTsKPj4gKwl1OCBwYW5lbF9taXNjX2JpdHNfMTsKPj4gKwl1OCBwYW5lbF9taXNjX2JpdHNfMjsK Pj4gKwl1OCBwYW5lbF9taXNjX2JpdHNfMzsKPj4gKwl1OCBwYW5lbF9taXNjX2JpdHNfNDsKPj4g K30gX19wYWNrZWQ7Cj4+ICsKPj4gKwo+PiArI2RlZmluZSBCREJfRFJJVkVSX0ZFQVRVUkVfTk9f TFZEUwkJMAo+PiArI2RlZmluZSBCREJfRFJJVkVSX0ZFQVRVUkVfSU5UX0xWRFMJCTEKPj4gKyNk ZWZpbmUgQkRCX0RSSVZFUl9GRUFUVVJFX1NEVk9fTFZEUwkJMgo+PiArI2RlZmluZSBCREJfRFJJ VkVSX0ZFQVRVUkVfRURQCQkJMwo+PiArCj4+ICtzdHJ1Y3QgYmRiX2RyaXZlcl9mZWF0dXJlcyB7 Cj4+ICsJdTggYm9vdF9kZXZfYWxnb3JpdGhtOjE7Cj4+ICsJdTggYmxvY2tfZGlzcGxheV9zd2l0 Y2g6MTsKPj4gKwl1OCBhbGxvd19kaXNwbGF5X3N3aXRjaDoxOwo+PiArCXU4IGhvdHBsdWdfZHZv OjE7Cj4+ICsJdTggZHVhbF92aWV3X3pvb206MTsKPj4gKwl1OCBpbnQxNWhfaG9vazoxOwo+PiAr CXU4IHNwcml0ZV9pbl9jbG9uZToxOwo+PiArCXU4IHByaW1hcnlfbGZwX2lkOjE7Cj4+ICsKPj4g Kwl1MTYgYm9vdF9tb2RlX3g7Cj4+ICsJdTE2IGJvb3RfbW9kZV95Owo+PiArCXU4IGJvb3RfbW9k ZV9icHA7Cj4+ICsJdTggYm9vdF9tb2RlX3JlZnJlc2g7Cj4+ICsKPj4gKwl1MTYgZW5hYmxlX2xm cF9wcmltYXJ5OjE7Cj4+ICsJdTE2IHNlbGVjdGl2ZV9tb2RlX3BydW5pbmc6MTsKPj4gKwl1MTYg ZHVhbF9mcmVxdWVuY3k6MTsKPj4gKwl1MTYgcmVuZGVyX2Nsb2NrX2ZyZXE6MTsgLyogMDogaGln aCBmcmVxOyAxOiBsb3cgZnJlcSAqLwo+PiArCXUxNiBudF9jbG9uZV9zdXBwb3J0OjE7Cj4+ICsJ dTE2IHBvd2VyX3NjaGVtZV91aToxOyAvKiAwOiBDVUk7IDE6IDNyZCBwYXJ0eSAqLwo+PiArCXUx NiBzcHJpdGVfZGlzcGxheV9hc3NpZ246MTsgLyogMDogc2Vjb25kYXJ5OyAxOiBwcmltYXJ5ICov Cj4+ICsJdTE2IGN1aV9hc3BlY3Rfc2NhbGluZzoxOwo+PiArCXUxNiBwcmVzZXJ2ZV9hc3BlY3Rf cmF0aW86MTsKPj4gKwl1MTYgc2R2b19kZXZpY2VfcG93ZXJfZG93bjoxOwo+PiArCXUxNiBjcnRf aG90cGx1ZzoxOwo+PiArCXUxNiBsdmRzX2NvbmZpZzoyOwo+PiArCXUxNiB0dl9ob3RwbHVnOjE7 Cj4+ICsJdTE2IGhkbWlfY29uZmlnOjI7Cj4+ICsKPj4gKwl1OCBzdGF0aWNfZGlzcGxheToxOwo+ PiArCXU4IHJlc2VydmVkMjo3Owo+PiArCXUxNiBsZWdhY3lfY3J0X21heF94Owo+PiArCXUxNiBs ZWdhY3lfY3J0X21heF95Owo+PiArCXU4IGxlZ2FjeV9jcnRfbWF4X3JlZnJlc2g7Cj4+ICsKPj4g Kwl1OCBoZG1pX3Rlcm1pbmF0aW9uOwo+PiArCXU4IGN1c3RvbV92YnRfdmVyc2lvbjsKPj4gKwkv KiBEcml2ZXIgZmVhdHVyZXMgZGF0YSBibG9jayAqLwo+PiArCXUxNiBybXBtX2VuYWJsZWQ6MTsK Pj4gKwl1MTYgczJkZHRfZW5hYmxlZDoxOwo+PiArCXUxNiBkcHN0X2VuYWJsZWQ6MTsKPj4gKwl1 MTYgYmx0Y2x0X2VuYWJsZWQ6MTsKPj4gKwl1MTYgYWRiX2VuYWJsZWQ6MTsKPj4gKwl1MTYgZHJy c19lbmFibGVkOjE7Cj4+ICsJdTE2IGdyc19lbmFibGVkOjE7Cj4+ICsJdTE2IGdwbXRfZW5hYmxl ZDoxOwo+PiArCXUxNiB0YnRfZW5hYmxlZDoxOwo+PiArCXUxNiBwc3JfZW5hYmxlZDoxOwo+PiAr CXUxNiBpcHNfZW5hYmxlZDoxOwo+PiArCXUxNiByZXNlcnZlZDM6NDsKPj4gKwl1MTYgcGNfZmVh dHVyZV92YWxpZDoxOwo+PiArfSBfX3BhY2tlZDsKPj4gKwo+PiArI2RlZmluZSBFRFBfMThCUFAJ MAo+PiArI2RlZmluZSBFRFBfMjRCUFAJMQo+PiArI2RlZmluZSBFRFBfMzBCUFAJMgo+PiArI2Rl ZmluZSBFRFBfUkFURV8xXzYyCTAKPj4gKyNkZWZpbmUgRURQX1JBVEVfMl83CTEKPj4gKyNkZWZp bmUgRURQX0xBTkVfMQkwCj4+ICsjZGVmaW5lIEVEUF9MQU5FXzIJMQo+PiArI2RlZmluZSBFRFBf TEFORV80CTMKPj4gKyNkZWZpbmUgRURQX1BSRUVNUEhBU0lTX05PTkUJMAo+PiArI2RlZmluZSBF RFBfUFJFRU1QSEFTSVNfM181ZEIJMQo+PiArI2RlZmluZSBFRFBfUFJFRU1QSEFTSVNfNmRCCTIK Pj4gKyNkZWZpbmUgRURQX1BSRUVNUEhBU0lTXzlfNWRCCTMKPj4gKyNkZWZpbmUgRURQX1ZTV0lO R18wXzRWCQkwCj4+ICsjZGVmaW5lIEVEUF9WU1dJTkdfMF82VgkJMQo+PiArI2RlZmluZSBFRFBf VlNXSU5HXzBfOFYJCTIKPj4gKyNkZWZpbmUgRURQX1ZTV0lOR18xXzJWCQkzCj4+ICsKPj4gKwo+ PiArc3RydWN0IGVkcF9saW5rX3BhcmFtcyB7Cj4+ICsJdTggcmF0ZTo0Owo+PiArCXU4IGxhbmVz OjQ7Cj4+ICsJdTggcHJlZW1waGFzaXM6NDsKPj4gKwl1OCB2c3dpbmc6NDsKPj4gK30gX19wYWNr ZWQ7Cj4+ICsKPj4gK3N0cnVjdCBiZGJfZWRwIHsKPj4gKwlzdHJ1Y3QgZWRwX3Bvd2VyX3NlcSBw b3dlcl9zZXFzWzE2XTsKPj4gKwl1MzIgY29sb3JfZGVwdGg7Cj4+ICsJc3RydWN0IGVkcF9saW5r X3BhcmFtcyBsaW5rX3BhcmFtc1sxNl07Cj4+ICsJdTMyIHNkcnJzX21zYV90aW1pbmdfZGVsYXk7 Cj4+ICsKPj4gKwkvKiBpdGggYml0IGluZGljYXRlcyBlbmFibGVkL2Rpc2FibGVkIGZvciAoaSsx KXRoIHBhbmVsICovCj4+ICsJdTE2IGVkcF9zM2RfZmVhdHVyZTsKPj4gKwl1MTYgZWRwX3QzX29w dGltaXphdGlvbjsKPj4gKwl1NjQgZWRwX3Zzd2luZ19wcmVlbXBoOwkJLyogdjE3MyAqLwo+PiAr fSBfX3BhY2tlZDsKPj4gKwo+PiArc3RydWN0IHBzcl90YWJsZSB7Cj4+ICsJLyogRmVhdHVyZSBi aXRzICovCj4+ICsJdTggZnVsbF9saW5rOjE7Cj4+ICsJdTggcmVxdWlyZV9hdXhfdG9fd2FrZXVw OjE7Cj4+ICsJdTggZmVhdHVyZV9iaXRzX3JzdmQ6NjsKPj4gKwo+PiArCS8qIFdhaXQgdGltZXMg Ki8KPj4gKwl1OCBpZGxlX2ZyYW1lczo0Owo+PiArCXU4IGxpbmVzX3RvX3dhaXQ6MzsKPj4gKwl1 OCB3YWl0X3RpbWVzX3JzdmQ6MTsKPj4gKwo+PiArCS8qIFRQIHdha2UgdXAgdGltZSBpbiBtdWx0 aXBsZSBvZiAxMDAgKi8KPj4gKwl1MTYgdHAxX3dha2V1cF90aW1lOwo+PiArCXUxNiB0cDJfdHAz X3dha2V1cF90aW1lOwo+PiArfSBfX3BhY2tlZDsKPj4gKwo+PiArc3RydWN0IGJkYl9wc3Igewo+ PiArCXN0cnVjdCBwc3JfdGFibGUgcHNyX3RhYmxlWzE2XTsKPj4gK30gX19wYWNrZWQ7Cj4+ICsK Pj4gKy8qCj4+ICsgKiBEcml2ZXI8LT5WQklPUyBpbnRlcmFjdGlvbiBvY2N1cnMgdGhyb3VnaCBz Y3JhdGNoIGJpdHMgaW4KPj4gKyAqIEdSMTggJiBTV0YqLgo+PiArICovCj4+ICsKPj4gKy8qIEdS MTggYml0cyBhcmUgc2V0IG9uIGRpc3BsYXkgc3dpdGNoIGFuZCBob3RrZXkgZXZlbnRzICovCj4+ ICsjZGVmaW5lIEdSMThfRFJJVkVSX1NXSVRDSF9FTgkoMTw8NykgLyogMDogVkJJT1MgY29udHJv bCwgMTogZHJpdmVyIGNvbnRyb2wgKi8KPj4gKyNkZWZpbmUgR1IxOF9IT1RLRVlfTUFTSwkweDc4 IC8qIFNlZSBhbHNvIFNXRjQgMTU6MCAqLwo+PiArI2RlZmluZSAgIEdSMThfSEtfTk9ORQkJKDB4 MDw8MykKPj4gKyNkZWZpbmUgICBHUjE4X0hLX0xGUF9TVFJFVENICSgweDE8PDMpCj4+ICsjZGVm aW5lICAgR1IxOF9IS19UT0dHTEVfRElTUAkoMHgyPDwzKQo+PiArI2RlZmluZSAgIEdSMThfSEtf RElTUF9TV0lUQ0gJKDB4NDw8MykgLyogc2VlIFNXRjE0IDE1OjAgZm9yIHdoYXQgdG8gZW5hYmxl ICovCj4+ICsjZGVmaW5lICAgR1IxOF9IS19QT1BVUF9ESVNBQkxFRCAoMHg2PDwzKQo+PiArI2Rl ZmluZSAgIEdSMThfSEtfUE9QVVBfRU5BQkxFRAkoMHg3PDwzKQo+PiArI2RlZmluZSAgIEdSMThf SEtfUEZJVAkJKDB4ODw8MykKPj4gKyNkZWZpbmUgICBHUjE4X0hLX0FQTV9DSEFOR0UJKDB4YTw8 MykKPj4gKyNkZWZpbmUgICBHUjE4X0hLX01VTFRJUExFCSgweGM8PDMpCj4+ICsjZGVmaW5lIEdS MThfVVNFUl9JTlRfRU4JKDE8PDIpCj4+ICsjZGVmaW5lIEdSMThfQTAwMDBfRkxVU0hfRU4JKDE8 PDEpCj4+ICsjZGVmaW5lIEdSMThfU01NX0VOCQkoMTw8MCkKPj4gKwo+PiArLyogU2V0IGJ5IGRy aXZlciwgY2xlYXJlZCBieSBWQklPUyAqLwo+PiArI2RlZmluZSBTV0YwMF9ZUkVTX1NISUZUCTE2 Cj4+ICsjZGVmaW5lIFNXRjAwX1hSRVNfU0hJRlQJMAo+PiArI2RlZmluZSBTV0YwMF9SRVNfTUFT SwkJMHhmZmZmCj4+ICsKPj4gKy8qIFNldCBieSBWQklPUyBhdCBib290IHRpbWUgYW5kIGRyaXZl ciBhdCBydW50aW1lICovCj4+ICsjZGVmaW5lIFNXRjAxX1RWMl9GT1JNQVRfU0hJRlQJOAo+PiAr I2RlZmluZSBTV0YwMV9UVjFfRk9STUFUX1NISUZUCTAKPj4gKyNkZWZpbmUgU1dGMDFfVFZfRk9S TUFUX01BU0sJMHhmZmZmCj4+ICsKPj4gKyNkZWZpbmUgU1dGMTBfVkJJT1NfQkxDX0kyQ19FTgko MTw8MjkpCj4+ICsjZGVmaW5lIFNXRjEwX0dUVF9PVkVSUklERV9FTgkoMTw8MjgpCj4+ICsjZGVm aW5lIFNXRjEwX0xGUF9EUE1TX09WUgkoMTw8MjcpIC8qIG92ZXJyaWRlIERQTVMgb24gZGlzcGxh eSBzd2l0Y2ggKi8KPj4gKyNkZWZpbmUgU1dGMTBfQUNUSVZFX1RPR0dMRV9MSVNUX01BU0sgKDc8 PDI0KQo+PiArI2RlZmluZSAgIFNXRjEwX09MRF9UT0dHTEUJMHgwCj4+ICsjZGVmaW5lICAgU1dG MTBfVE9HR0xFX0xJU1RfMQkweDEKPj4gKyNkZWZpbmUgICBTV0YxMF9UT0dHTEVfTElTVF8yCTB4 Mgo+PiArI2RlZmluZSAgIFNXRjEwX1RPR0dMRV9MSVNUXzMJMHgzCj4+ICsjZGVmaW5lICAgU1dG MTBfVE9HR0xFX0xJU1RfNAkweDQKPj4gKyNkZWZpbmUgU1dGMTBfUEFOTklOR19FTgkoMTw8MjMp Cj4+ICsjZGVmaW5lIFNXRjEwX0RSSVZFUl9MT0FERUQJKDE8PDIyKQo+PiArI2RlZmluZSBTV0Yx MF9FWFRFTkRFRF9ERVNLVE9QCSgxPDwyMSkKPj4gKyNkZWZpbmUgU1dGMTBfRVhDTFVTSVZFX01P REUJKDE8PDIwKQo+PiArI2RlZmluZSBTV0YxMF9PVkVSTEFZX0VOCSgxPDwxOSkKPj4gKyNkZWZp bmUgU1dGMTBfUExBTkVCX0hPTERPRkYJKDE8PDE4KQo+PiArI2RlZmluZSBTV0YxMF9QTEFORUFf SE9MRE9GRgkoMTw8MTcpCj4+ICsjZGVmaW5lIFNXRjEwX1ZHQV9IT0xET0ZGCSgxPDwxNikKPj4g KyNkZWZpbmUgU1dGMTBfQUNUSVZFX0RJU1BfTUFTSwkweGZmZmYKPj4gKyNkZWZpbmUgICBTV0Yx MF9QSVBFQl9MRlAyCSgxPDwxNSkKPj4gKyNkZWZpbmUgICBTV0YxMF9QSVBFQl9FRlAyCSgxPDwx NCkKPj4gKyNkZWZpbmUgICBTV0YxMF9QSVBFQl9UVjIJKDE8PDEzKQo+PiArI2RlZmluZSAgIFNX RjEwX1BJUEVCX0NSVDIJKDE8PDEyKQo+PiArI2RlZmluZSAgIFNXRjEwX1BJUEVCX0xGUAkoMTw8 MTEpCj4+ICsjZGVmaW5lICAgU1dGMTBfUElQRUJfRUZQCSgxPDwxMCkKPj4gKyNkZWZpbmUgICBT V0YxMF9QSVBFQl9UVgkoMTw8OSkKPj4gKyNkZWZpbmUgICBTV0YxMF9QSVBFQl9DUlQJKDE8PDgp Cj4+ICsjZGVmaW5lICAgU1dGMTBfUElQRUFfTEZQMgkoMTw8NykKPj4gKyNkZWZpbmUgICBTV0Yx MF9QSVBFQV9FRlAyCSgxPDw2KQo+PiArI2RlZmluZSAgIFNXRjEwX1BJUEVBX1RWMgkoMTw8NSkK Pj4gKyNkZWZpbmUgICBTV0YxMF9QSVBFQV9DUlQyCSgxPDw0KQo+PiArI2RlZmluZSAgIFNXRjEw X1BJUEVBX0xGUAkoMTw8MykKPj4gKyNkZWZpbmUgICBTV0YxMF9QSVBFQV9FRlAJKDE8PDIpCj4+ ICsjZGVmaW5lICAgU1dGMTBfUElQRUFfVFYJKDE8PDEpCj4+ICsjZGVmaW5lICAgU1dGMTBfUElQ RUFfQ1JUCSgxPDwwKQo+PiArCj4+ICsjZGVmaW5lIFNXRjExX01FTU9SWV9TSVpFX1NISUZUCTE2 Cj4+ICsjZGVmaW5lIFNXRjExX1NWX1RFU1RfRU4JKDE8PDE1KQo+PiArI2RlZmluZSBTV0YxMV9J U19BR1AJCSgxPDwxNCkKPj4gKyNkZWZpbmUgU1dGMTFfRElTUExBWV9IT0xET0ZGCSgxPDwxMykK Pj4gKyNkZWZpbmUgU1dGMTFfRFBNU19SRURVQ0VECSgxPDwxMikKPj4gKyNkZWZpbmUgU1dGMTFf SVNfVkJFX01PREUJKDE8PDExKQo+PiArI2RlZmluZSBTV0YxMV9QSVBFQl9BQ0NFU1MJKDE8PDEw KSAvKiAwIGhlcmUgbWVhbnMgcGlwZSBhICovCj4+ICsjZGVmaW5lIFNXRjExX0RQTVNfTUFTSwkJ MHgwNwo+PiArI2RlZmluZSAgIFNXRjExX0RQTVNfT0ZGCSgxPDwyKQo+PiArI2RlZmluZSAgIFNX RjExX0RQTVNfU1VTUEVORAkoMTw8MSkKPj4gKyNkZWZpbmUgICBTV0YxMV9EUE1TX1NUQU5EQlkJ KDE8PDApCj4+ICsjZGVmaW5lICAgU1dGMTFfRFBNU19PTgkJMAo+PiArCj4+ICsjZGVmaW5lIFNX RjE0X0dGWF9QRklUX0VOCSgxPDwzMSkKPj4gKyNkZWZpbmUgU1dGMTRfVEVYVF9QRklUX0VOCSgx PDwzMCkKPj4gKyNkZWZpbmUgU1dGMTRfTElEX1NUQVRVU19DTE9TRUQJKDE8PDI5KSAvKiAwIGhl cmUgbWVhbnMgb3BlbiAqLwo+PiArI2RlZmluZSBTV0YxNF9QT1BVUF9FTgkJKDE8PDI4KQo+PiAr I2RlZmluZSBTV0YxNF9ESVNQTEFZX0hPTERPRkYJKDE8PDI3KQo+PiArI2RlZmluZSBTV0YxNF9E SVNQX0RFVEVDVF9FTgkoMTw8MjYpCj4+ICsjZGVmaW5lIFNXRjE0X0RPQ0tJTkdfU1RBVFVTX0RP Q0tFRCAoMTw8MjUpIC8qIDAgaGVyZSBtZWFucyB1bmRvY2tlZCAqLwo+PiArI2RlZmluZSBTV0Yx NF9EUklWRVJfU1RBVFVTCSgxPDwyNCkKPj4gKyNkZWZpbmUgU1dGMTRfT1NfVFlQRV9XSU45WAko MTw8MjMpCj4+ICsjZGVmaW5lIFNXRjE0X09TX1RZUEVfV0lOTlQJKDE8PDIyKQo+PiArLyogMjE6 MTkgcnN2ZCAqLwo+PiArI2RlZmluZSBTV0YxNF9QTV9UWVBFX01BU0sJMHgwMDA3MDAwMAo+PiAr I2RlZmluZSAgIFNXRjE0X1BNX0FDUElfVklERU8JKDB4NCA8PCAxNikKPj4gKyNkZWZpbmUgICBT V0YxNF9QTV9BQ1BJCQkoMHgzIDw8IDE2KQo+PiArI2RlZmluZSAgIFNXRjE0X1BNX0FQTV8xMgko MHgyIDw8IDE2KQo+PiArI2RlZmluZSAgIFNXRjE0X1BNX0FQTV8xMQkoMHgxIDw8IDE2KQo+PiAr I2RlZmluZSBTV0YxNF9IS19SRVFVRVNUX01BU0sJMHgwMDAwZmZmZiAvKiBzZWUgR1IxOCA2OjMg Zm9yIGV2ZW50IHR5cGUgKi8KPj4gKyAgICAgICAgICAvKiBpZiBHUjE4IGluZGljYXRlcyBhIGRp c3BsYXkgc3dpdGNoICovCj4+ICsjZGVmaW5lICAgU1dGMTRfRFNfUElQRUJfTEZQMl9FTiAoMTw8 MTUpCj4+ICsjZGVmaW5lICAgU1dGMTRfRFNfUElQRUJfRUZQMl9FTiAoMTw8MTQpCj4+ICsjZGVm aW5lICAgU1dGMTRfRFNfUElQRUJfVFYyX0VOICAoMTw8MTMpCj4+ICsjZGVmaW5lICAgU1dGMTRf RFNfUElQRUJfQ1JUMl9FTiAoMTw8MTIpCj4+ICsjZGVmaW5lICAgU1dGMTRfRFNfUElQRUJfTEZQ X0VOICAoMTw8MTEpCj4+ICsjZGVmaW5lICAgU1dGMTRfRFNfUElQRUJfRUZQX0VOICAoMTw8MTAp Cj4+ICsjZGVmaW5lICAgU1dGMTRfRFNfUElQRUJfVFZfRU4gICAoMTw8OSkKPj4gKyNkZWZpbmUg ICBTV0YxNF9EU19QSVBFQl9DUlRfRU4gICgxPDw4KQo+PiArI2RlZmluZSAgIFNXRjE0X0RTX1BJ UEVBX0xGUDJfRU4gKDE8PDcpCj4+ICsjZGVmaW5lICAgU1dGMTRfRFNfUElQRUFfRUZQMl9FTiAo MTw8NikKPj4gKyNkZWZpbmUgICBTV0YxNF9EU19QSVBFQV9UVjJfRU4gICgxPDw1KQo+PiArI2Rl ZmluZSAgIFNXRjE0X0RTX1BJUEVBX0NSVDJfRU4gKDE8PDQpCj4+ICsjZGVmaW5lICAgU1dGMTRf RFNfUElQRUFfTEZQX0VOICAoMTw8MykKPj4gKyNkZWZpbmUgICBTV0YxNF9EU19QSVBFQV9FRlBf RU4gICgxPDwyKQo+PiArI2RlZmluZSAgIFNXRjE0X0RTX1BJUEVBX1RWX0VOICAgKDE8PDEpCj4+ ICsjZGVmaW5lICAgU1dGMTRfRFNfUElQRUFfQ1JUX0VOICAoMTw8MCkKPj4gKyAgICAgICAgICAv KiBpZiBHUjE4IGluZGljYXRlcyBhIHBhbmVsIGZpdHRpbmcgcmVxdWVzdCAqLwo+PiArI2RlZmlu ZSAgIFNXRjE0X1BGSVRfRU4JCSgxPDwwKSAvKiAwIG1lYW5zIGRpc2FibGUgKi8KPj4gKyAgICAg ICAgICAvKiBpZiBHUjE4IGluZGljYXRlcyBhbiBBUE0gY2hhbmdlIHJlcXVlc3QgKi8KPj4gKyNk ZWZpbmUgICBTV0YxNF9BUE1fSElCRVJOQVRFCTB4NAo+PiArI2RlZmluZSAgIFNXRjE0X0FQTV9T VVNQRU5ECTB4Mwo+PiArI2RlZmluZSAgIFNXRjE0X0FQTV9TVEFOREJZCTB4MQo+PiArI2RlZmlu ZSAgIFNXRjE0X0FQTV9SRVNUT1JFCTB4MAo+PiArCj4+ICsvKiBBZGQgdGhlIGRldmljZSBjbGFz cyBmb3IgTEZQLCBUViwgSERNSSAqLwo+PiArI2RlZmluZQkgREVWSUNFX1RZUEVfSU5UX0xGUAkw eDEwMjIKPj4gKyNkZWZpbmUJIERFVklDRV9UWVBFX0lOVF9UVgkweDEwMDkKPj4gKyNkZWZpbmUJ IERFVklDRV9UWVBFX0hETUkJMHg2MEQyCj4+ICsjZGVmaW5lCSBERVZJQ0VfVFlQRV9EUAkJMHg2 OEM2Cj4+ICsjZGVmaW5lCSBERVZJQ0VfVFlQRV9lRFAJMHg3OEM2Cj4+ICsKPj4gKyNkZWZpbmUg IERFVklDRV9UWVBFX0NMQVNTX0VYVEVOU0lPTgkoMSA8PCAxNSkKPj4gKyNkZWZpbmUgIERFVklD RV9UWVBFX1BPV0VSX01BTkFHRU1FTlQJKDEgPDwgMTQpCj4+ICsjZGVmaW5lICBERVZJQ0VfVFlQ RV9IT1RQTFVHX1NJR05BTElORwkoMSA8PCAxMykKPj4gKyNkZWZpbmUgIERFVklDRV9UWVBFX0lO VEVSTkFMX0NPTk5FQ1RPUgkoMSA8PCAxMikKPj4gKyNkZWZpbmUgIERFVklDRV9UWVBFX05PVF9I RE1JX09VVFBVVAkoMSA8PCAxMSkKPj4gKyNkZWZpbmUgIERFVklDRV9UWVBFX01JUElfT1VUUFVU CSgxIDw8IDEwKQo+PiArI2RlZmluZSAgREVWSUNFX1RZUEVfQ09NUE9TSVRFX09VVFBVVAkoMSA8 PCA5KQo+PiArI2RlZmluZSAgREVWSUNFX1RZUEVfRFVBTF9DSEFOTkVMCSgxIDw8IDgpCj4+ICsj ZGVmaW5lICBERVZJQ0VfVFlQRV9ISUdIX1NQRUVEX0xJTksJKDEgPDwgNikKPj4gKyNkZWZpbmUg IERFVklDRV9UWVBFX0xWRFNfU0lOR0FMSU5HCSgxIDw8IDUpCj4+ICsjZGVmaW5lICBERVZJQ0Vf VFlQRV9UTURTX0RWSV9TSUdOQUxJTkcJKDEgPDwgNCkKPj4gKyNkZWZpbmUgIERFVklDRV9UWVBF X1ZJREVPX1NJR05BTElORwkoMSA8PCAzKQo+PiArI2RlZmluZSAgREVWSUNFX1RZUEVfRElTUExB WVBPUlRfT1VUUFVUCSgxIDw8IDIpCj4+ICsjZGVmaW5lICBERVZJQ0VfVFlQRV9ESUdJVEFMX09V VFBVVAkoMSA8PCAxKQo+PiArI2RlZmluZSAgREVWSUNFX1RZUEVfQU5BTE9HX09VVFBVVAkoMSA8 PCAwKQo+PiArCj4+ICsvKgo+PiArICogQml0cyB3ZSBjYXJlIGFib3V0IHdoZW4gY2hlY2tpbmcg Zm9yIERFVklDRV9UWVBFX2VEUAo+PiArICogRGVwZW5kaW5nIG9uIHRoZSBzeXN0ZW0sIHRoZSBv dGhlciBiaXRzIG1heSBvciBtYXkgbm90Cj4+ICsgKiBiZSBzZXQgZm9yIGVEUCBvdXRwdXRzLgo+ PiArICovCj4+ICsjZGVmaW5lIERFVklDRV9UWVBFX2VEUF9CSVRTIFwKPj4gKwkoREVWSUNFX1RZ UEVfSU5URVJOQUxfQ09OTkVDVE9SIHwgXAo+PiArCSBERVZJQ0VfVFlQRV9NSVBJX09VVFBVVCB8 IFwKPj4gKwkgREVWSUNFX1RZUEVfQ09NUE9TSVRFX09VVFBVVCB8IFwKPj4gKwkgREVWSUNFX1RZ UEVfRFVBTF9DSEFOTkVMIHwgXAo+PiArCSBERVZJQ0VfVFlQRV9MVkRTX1NJTkdBTElORyB8IFwK Pj4gKwkgREVWSUNFX1RZUEVfVE1EU19EVklfU0lHTkFMSU5HIHwgXAo+PiArCSBERVZJQ0VfVFlQ RV9WSURFT19TSUdOQUxJTkcgfCBcCj4+ICsJIERFVklDRV9UWVBFX0RJU1BMQVlQT1JUX09VVFBV VCB8IFwKPj4gKwkgREVWSUNFX1RZUEVfQU5BTE9HX09VVFBVVCkKPj4gKwo+PiArLyogZGVmaW5l IHRoZSBEVk8gcG9ydCBmb3IgSERNSSBvdXRwdXQgdHlwZSAqLwo+PiArI2RlZmluZQkJRFZPX0IJ CTEKPj4gKyNkZWZpbmUJCURWT19DCQkyCj4+ICsjZGVmaW5lCQlEVk9fRAkJMwo+PiArCj4+ICsv KiBQb3NzaWJsZSB2YWx1ZXMgZm9yIHRoZSAiRFZPIFBvcnQiIGZpZWxkIGZvciB2ZXJzaW9ucyA+ PSAxNTU6ICovCj4+ICsjZGVmaW5lIERWT19QT1JUX0hETUlBCTAKPj4gKyNkZWZpbmUgRFZPX1BP UlRfSERNSUIJMQo+PiArI2RlZmluZSBEVk9fUE9SVF9IRE1JQwkyCj4+ICsjZGVmaW5lIERWT19Q T1JUX0hETUlECTMKPj4gKyNkZWZpbmUgRFZPX1BPUlRfTFZEUwk0Cj4+ICsjZGVmaW5lIERWT19Q T1JUX1RWCTUKPj4gKyNkZWZpbmUgRFZPX1BPUlRfQ1JUCTYKPj4gKyNkZWZpbmUgRFZPX1BPUlRf RFBCCTcKPj4gKyNkZWZpbmUgRFZPX1BPUlRfRFBDCTgKPj4gKyNkZWZpbmUgRFZPX1BPUlRfRFBE CTkKPj4gKyNkZWZpbmUgRFZPX1BPUlRfRFBBCTEwCj4+ICsjZGVmaW5lIERWT19QT1JUX0RQRQkx MQo+PiArI2RlZmluZSBEVk9fUE9SVF9IRE1JRQkxMgo+PiArI2RlZmluZSBEVk9fUE9SVF9NSVBJ QQkyMQo+PiArI2RlZmluZSBEVk9fUE9SVF9NSVBJQgkyMgo+PiArI2RlZmluZSBEVk9fUE9SVF9N SVBJQwkyMwo+PiArI2RlZmluZSBEVk9fUE9SVF9NSVBJRAkyNAo+PiArCj4+ICsvKiBCbG9jayA1 MiBjb250YWlucyBNSVBJIGNvbmZpZ3VyYXRpb24gYmxvY2sKPj4gKyAqIDYgKiBiZGJfbWlwaV9j b25maWcsIGZvbGxvd2VkIGJ5IDYgcHBzIGRhdGEgYmxvY2sKPj4gKyAqIGJsb2NrIGJlbG93Cj4+ ICsgKi8KPj4gKyNkZWZpbmUgTUFYX01JUElfQ09ORklHVVJBVElPTlMJNgo+PiArCj4+ICtzdHJ1 Y3QgYmRiX21pcGlfY29uZmlnIHsKPj4gKwlzdHJ1Y3QgbWlwaV9jb25maWcgY29uZmlnW01BWF9N SVBJX0NPTkZJR1VSQVRJT05TXTsKPj4gKwlzdHJ1Y3QgbWlwaV9wcHNfZGF0YSBwcHNbTUFYX01J UElfQ09ORklHVVJBVElPTlNdOwo+PiArfSBfX3BhY2tlZDsKPj4gKwo+PiArLyogQmxvY2sgNTMg Y29udGFpbnMgTUlQSSBzZXF1ZW5jZXMgYXMgbmVlZGVkIGJ5IHRoZSBwYW5lbAo+PiArICogZm9y IGVuYWJsaW5nIGl0LiBUaGlzIGJsb2NrIGNhbiBiZSB2YXJpYWJsZSBpbiBzaXplIGFuZAo+PiAr ICogY2FuIGJlIG1heGltdW0gb2YgNiBibG9ja3MKPj4gKyAqLwo+PiArc3RydWN0IGJkYl9taXBp X3NlcXVlbmNlIHsKPj4gKwl1OCB2ZXJzaW9uOwo+PiArCXU4IGRhdGFbMF07Cj4+ICt9IF9fcGFj a2VkOwo+PiArCj4+ICtlbnVtIG1pcGlfZ3Bpb19waW5faW5kZXggewo+PiArCU1JUElfR1BJT19V TkRFRklORUQgPSAwLAo+PiArCU1JUElfR1BJT19QQU5FTF9FTkFCTEUsCj4+ICsJTUlQSV9HUElP X0JMX0VOQUJMRSwKPj4gKwlNSVBJX0dQSU9fUFdNX0VOQUJMRSwKPj4gKwlNSVBJX0dQSU9fUkVT RVRfTiwKPj4gKwlNSVBJX0dQSU9fUFdSX0RPV05fUiwKPj4gKwlNSVBJX0dQSU9fU1REQllfUlNU X04sCj4+ICsJTUlQSV9HUElPX01BWAo+PiArfTsKPj4gKwo+PiArI2VuZGlmIC8qIF9JTlRFTF9W QlRfREVGU19IXyAqLwo+PiAtLSAKPj4gMi4xLjQKPj4gCj4+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPj4g SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkphbmkgTmlrdWxhLCBJbnRl bCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK