From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [RFC] drm: rcar-du: Remove i2c slave encoder interface for hdmi encoder Date: Fri, 26 Feb 2016 13:47:00 +0530 Message-ID: <56D009FC.8040001@codeaurora.org> References: <1452358346-6339-1-git-send-email-architt@codeaurora.org> <4483538.E0I7hvUfpU@avalon> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.codeaurora.org (smtp.codeaurora.org [198.145.29.96]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1AA0D6EA29 for ; Fri, 26 Feb 2016 08:17:06 +0000 (UTC) In-Reply-To: <4483538.E0I7hvUfpU@avalon> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Laurent Pinchart , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org CgpPbiAwMi8yNi8yMDE2IDA0OjM0IEFNLCBMYXVyZW50IFBpbmNoYXJ0IHdyb3RlOgo+IEhpIEFy Y2hpdCwKPgo+IFRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoLCBJIGZpbmFsbHkgZ290IGFyb3VuZCB0 byB0ZXN0aW5nIGl0LiBTb3JyeSBmb3IgdGhlCj4gZGVsYXkuCj4KPiBPbiBTYXR1cmRheSAwOSBK YW51YXJ5IDIwMTYgMjI6MjI6MjYgQXJjaGl0IFRhbmVqYSB3cm90ZToKPj4gVGhlIGhkbWkgb3V0 cHV0IGluIHJjYXItZHUgdXNlcyB0aGUgaTJjIHNsYXZlIGVuY29kZXIgaW50ZXJmYWNlIHRvIGxp bmsKPj4gdG8gdGhlIGFkdjc1MTEgZW5jb2RlciBjaGlwLiBUaGUga21zIGRyaXZlciBjcmVhdGVz IGVuY29kZXIgYW5kIGNvbm5lY3Rvcgo+PiBlbnRpdGllcyB0aGF0IGludGVybmFsbHkgdXNlcyB0 aGUgZHJtX2VuY29kZXJfc2xhdmVfZnVuY3Mgb3BzIHByb3ZpZGVkIGJ5Cj4+IHRoZSBzbGF2ZSBl bmNvZGVyIGRyaXZlci4KPj4KPj4gQ2hhbmdlIHRoZSBkcml2ZXIgc3VjaCB0aGF0IGl0IGV4cGVj dHMgYSBicmlkZ2UgZW50aXR5IGluc3RlYWQgb2YgYSBzbGF2ZQo+PiBlbmNvZGVyLiBUaGUgaGRt aSBjb25uZWN0b3IgY29kZSBpc24ndCBuZWVkZWQgYW55bW9yZSBhcyB3ZSBleHBlY3QgdGhlCj4+ IGFkdjc1MTEgYnJpZGdlIGRyaXZlciB0byBjcmVhdGUvbWFuYWdlIHRoZSBjb25uZWN0b3IuCj4+ Cj4+IE5vdGUgdGhhdCB0aGUga21zIGRyaXZlciBzdGlsbCBleHBlY3RzIGEgY29ubmVjdG9yIG5v ZGUgZm9yIGhkbWkgdG8gYmUKPj4gcHJlc2VudCBpbiBEVC4gVGhpcyBub2RlIGhhcyBubyBjb25u ZWN0aW9uIHRvIHRoZSBjb25uZWN0b3IgY3JlYXRlZAo+PiBieSB0aGUgYnJpZGdlIGRyaXZlci4K Pj4KPj4gQ29tcGlsZSB0ZXN0ZWQgb25seS4KPgo+IEFuZCBkb2Vzbid0IGFwcGx5IGFueW1vcmUs IGJ1dCB0aGF0J3MgbXkgZmF1bHQgZm9yIG5vdCByZXZpZXdpbmcgaXQgZmFzdAo+IGVub3VnaCwg c28gSSd2ZSByZWJhc2VkIGl0IChhcyB3ZWxsIGFzIHlvdXIgIltQQVRDSF0gZHJtOiBpMmM6IGFk djc1MTE6Cj4gQ29udmVydCB0byBkcm1fYnJpZGdlIiBwYXRjaCkuIEkndmUgcHVzaGVkIHRoZSBy ZXN1bHQgdG8KPgo+IAlnaXQ6Ly9saW51eHR2Lm9yZy9waW5jaGFydGwvbWVkaWEuZ2l0IGRybS9k dS9icmlkZ2UKPgo+IFRoZSByZWJhc2Ugd2Fzbid0IGRpZmZpY3VsdCwgSSBkb24ndCBoYXZlIG11 Y2ggdG8gc2F5IGFib3V0IHRoYXQuIFdoYXQgSSBtdXN0Cj4gcmVwb3J0LCBob3dldmVyLCBpcyB0 aGF0IGl0IGRvZXNuJ3Qgd29yayA6LS8gSSByZWNlaXZlIHRoZSBmb2xsb3dpbmcga2VybmVsCj4g d2FybmluZzoKPgo+IFsgICAgMi4xNjU1NjldIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0t LS0tLS0tLQo+IFsgICAgMi4xNzAyMDVdIFdBUk5JTkc6IENQVTogMiBQSUQ6IDYgYXQKPiAvaG9t ZS9sYXVyZW50L3NyYy9pb2IvcmVuZXNhcy9saW51eC9saWIva29iamVjdC5jOjI0NAo+IGtvYmpl Y3RfYWRkX2ludGVybmFsKzB4MTM0LzB4MzY0KCkKPiBbICAgIDIuMTgxNjI3XSBrb2JqZWN0X2Fk ZF9pbnRlcm5hbCBmYWlsZWQgZm9yIGNhcmQwLUhETUktQS0xIChlcnJvcjogLTIKPiBwYXJlbnQ6 IGNhcmQwKQo+IFsgICAgMi4xODkzOTRdIE1vZHVsZXMgbGlua2VkIGluOgo+IFsgICAgMi4xOTI0 NjZdIENQVTogMiBQSUQ6IDYgQ29tbToga3dvcmtlci91MTY6MCBOb3QgdGFpbnRlZCA0LjUuMC1y YzUtMDA2NzctCj4gZzZlMmQ3Y2Q3NzQ3MyAjNjQ5Cj4gWyAgICAyLjIwMDkxNF0gSGFyZHdhcmUg bmFtZTogR2VuZXJpYyBSOEE3NzkwIChGbGF0dGVuZWQgRGV2aWNlIFRyZWUpCj4gWyAgICAyLjIw NzEwM10gV29ya3F1ZXVlOiBkZWZlcndxIGRlZmVycmVkX3Byb2JlX3dvcmtfZnVuYwo+IFsgICAg Mi4yMTIzNDFdIEJhY2t0cmFjZToKPiBbICAgIDIuMjE0ODE2XSBbPGMwMDE0Yzk4Pl0gKGR1bXBf YmFja3RyYWNlKSBmcm9tIFs8YzAwMTRmYjA+XQo+IChzaG93X3N0YWNrKzB4MjAvMHgyNCkKPiBb ICAgIDIuMjIyMzk2XSAgcjY6YzA1OTE5MTAgcjU6MDAwMDAwMDAgcjQ6NjAwMDAwMTMgcjM6ZWEw ZTQwMDAKPiBbICAgIDIuMjI4MTA0XSBbPGMwMDE0ZjkwPl0gKHNob3dfc3RhY2spIGZyb20gWzxj MDFmMjU5Yz5dCj4gKGR1bXBfc3RhY2srMHg4Yy8weGFjKQo+IFsgICAgMi4yMzUzMzldIFs8YzAx ZjI1MTA+XSAoZHVtcF9zdGFjaykgZnJvbSBbPGMwMDJhZGI4Pl0KPiAod2Fybl9zbG93cGF0aF9j b21tb24rMHg4OC8weGM0KQo+IFsgICAgMi4yNDM0MzhdICByNTowMDAwMDBmNCByNDplYTBlNWI0 OAo+IFsgICAgMi4yNDcwMzhdIFs8YzAwMmFkMzA+XSAod2Fybl9zbG93cGF0aF9jb21tb24pIGZy b20gWzxjMDAyYWViMD5dCj4gKHdhcm5fc2xvd3BhdGhfZm10KzB4NDAvMHg0OCkKPiBbICAgIDIu MjU1NzQ2XSAgcjg6ZWEzOGFjMDggcjc6ZWEzOGFjMDAgcjY6ZmZmZmZmZmUgcjU6MDAwMDAwMDAg cjQ6ZWEzOGFhMDgKPiBbICAgIDIuMjYyNTAzXSBbPGMwMDJhZTc0Pl0gKHdhcm5fc2xvd3BhdGhf Zm10KSBmcm9tIFs8YzAxZjU0ZjA+XQo+IChrb2JqZWN0X2FkZF9pbnRlcm5hbCsweDEzNC8weDM2 NCkKPiBbICAgIDIuMjcxMzg1XSAgcjM6YzA0NzE1YzggcjI6YzA1OTFiZjQKPiBbICAgIDIuMjc0 OTg2XSBbPGMwMWY1M2JjPl0gKGtvYmplY3RfYWRkX2ludGVybmFsKSBmcm9tIFs8YzAxZjU5MDQ+ XQo+IChrb2JqZWN0X2FkZCsweDU0LzB4OWMpCj4gWyAgICAyLjI4MzE3M10gIHI4OjAwMDAwMDAw IHI3OmVhMzhhYzAwIHI2OmVhMzhhYzA4IHI1OjAwMDAwMDAwIHI0OmVhMzhhYTA4Cj4gWyAgICAy LjI4OTkzOF0gWzxjMDFmNThiND5dIChrb2JqZWN0X2FkZCkgZnJvbSBbPGMwMmM2ZDk4Pl0KPiAo ZGV2aWNlX2FkZCsweGUwLzB4NTU4KQo+IFsgICAgMi4yOTczNDNdICByMzowMDAwMDAwMCByMjow MDAwMDAwMAo+IFsgICAgMi4zMDA5MzhdICByNjplYTM4YWEwOCByNTowMDAwMDAwMCByNDplYTM4 YWEwMAo+IFsgICAgMi4zMDU1OTJdIFs8YzAyYzZjYjg+XSAoZGV2aWNlX2FkZCkgZnJvbSBbPGMw MmM3MmMwPl0KPiAoZGV2aWNlX2NyZWF0ZV9ncm91cHNfdmFyZ3MrMHhiMC8weGUwKQo+IFsgICAg Mi4zMTQyMTNdICByMTA6ZTg3YWY4NmMgcjk6ZTg3YzgyNmMgcjg6MDAwMDAwMDAgcjc6ZWEzOGFj MDAgcjY6ZTlhMWY5NjAKPiByNTplOWExOGE0MAo+IFsgICAgMi4zMjIxMDFdICByNDplYTM4YWEw MAo+IFsgICAgMi4zMjQ2NTFdIFs8YzAyYzcyMTA+XSAoZGV2aWNlX2NyZWF0ZV9ncm91cHNfdmFy Z3MpIGZyb20gWzxjMDJjNzMyND5dCj4gKGRldmljZV9jcmVhdGVfd2l0aF9ncm91cHMrMHgzNC8w eDNjKQo+IFsgICAgMi4zMzQ1NzVdICByODplOWExZjk0MCByNzpjMDY5Y2NlYyByNjpjMDhkNGE1 NCByNTplYTM4OGMwMCByNDpjMDY5Y2NlYwo+IHIzOmU5YTFmOTYwCj4gWyAgICAyLjM0MjM4NV0g WzxjMDJjNzJmMD5dIChkZXZpY2VfY3JlYXRlX3dpdGhfZ3JvdXBzKSBmcm9tIFs8YzAyYTZjZWM+ XQo+IChkcm1fc3lzZnNfY29ubmVjdG9yX2FkZCsweDZjLzB4ZTApCj4gWyAgICAyLjM1MjA0OF0g IHI0OmU5YTFmOTYwCj4gWyAgICAyLjM1NDYwMF0gWzxjMDJhNmM4MD5dIChkcm1fc3lzZnNfY29u bmVjdG9yX2FkZCkgZnJvbSBbPGMwMmFhMWYwPl0KPiAoZHJtX2Nvbm5lY3Rvcl9yZWdpc3Rlcisw eDRjLzB4N2MpCj4gWyAgICAyLjM2NDAwMl0gIHI3OmVhMzg4YzAwIHI2OmVhMzg4ZDcwIHI1OmU5 YTFmOTc0IHI0OmU5YTFmOTYwCj4gWyAgICAyLjM2OTcwOV0gWzxjMDJhYTFhND5dIChkcm1fY29u bmVjdG9yX3JlZ2lzdGVyKSBmcm9tIFs8YzAyYzMyNzA+XQo+IChhZHY3NTExX2JyaWRnZV9hdHRh Y2grMHg1Yy8weGE4KQo+IFsgICAgMi4zNzg5MzhdICByNzplOTlmYTU1MCByNjowMDAwMDAwMCBy NTplOWExZjk2MCByNDplOWExZjk0MAo+IFsgICAgMi4zODQ2NDNdIFs8YzAyYzMyMTQ+XSAoYWR2 NzUxMV9icmlkZ2VfYXR0YWNoKSBmcm9tIFs8YzAyYmQwOTA+XQo+IChkcm1fYnJpZGdlX2F0dGFj aCsweDQ4LzB4NjQpCj4gWyAgICAyLjM5MzQzOF0gIHI2OjAwMDAwMDAwIHI1OmU5ODE0MDEwIHI0 OmU5OWYxYzkwIHIzOmMwMmMzMjE0Cj4gWyAgICAyLjM5OTE0Ml0gWzxjMDJiZDA0OD5dIChkcm1f YnJpZGdlX2F0dGFjaCkgZnJvbSBbPGMwMmMyMmE4Pl0KPiAocmNhcl9kdV9oZG1pZW5jX2luaXQr MHg5NC8weDEwOCkKPiBbICAgIDIuNDA3OTQyXSBbPGMwMmMyMjE0Pl0gKHJjYXJfZHVfaGRtaWVu Y19pbml0KSBmcm9tIFs8YzAyYmY5ZWM+XQo+IChyY2FyX2R1X2VuY29kZXJfaW5pdCsweDE0Yy8w eDE5YykKPiBbICAgIDIuNDE3MDg0XSAgcjg6MDAwMDAwMDIgcjc6MDAwMDAwMDQgcjY6MDAwMDAw MDIgcjU6ZTk4MTQwMTAgcjQ6ZTk5ZjFjOTAKPiBbICAgIDIuNDIzODQwXSBbPGMwMmJmOGEwPl0g KHJjYXJfZHVfZW5jb2Rlcl9pbml0KSBmcm9tIFs8YzAyYzBhNzA+XQo+IChyY2FyX2R1X21vZGVz ZXRfaW5pdCsweDRhNC8weDU3NCkKPiBbICAgIDIuNDMyOTgyXSAgcjEwOjAwMDAwMDAyIHI4OjAw MDAwMDAxIHI3OmMwNGI3ZTEwIHI2OmU4N2FmODZjIHI1OmU4N2I4OGI0Cj4gcjQ6ZTk4MTQwMTAK PiBbICAgIDIuNDQwODczXSBbPGMwMmMwNWNjPl0gKHJjYXJfZHVfbW9kZXNldF9pbml0KSBmcm9t IFs8YzAyYmY2MDA+XQo+IChyY2FyX2R1X3Byb2JlKzB4ZmMvMHgyMzApCj4gWyAgICAyLjQ0OTMx OV0gIHIxMDowMDAwMDAwMSByOTowMDAwMDAwMCByODowMDAwMDAwMCByNzplYTMxNWMxMCByNjpl YTM4OGMwMAo+IHI1OmVhMzE1YzAwCj4gWyAgICAyLjQ1NzIwNl0gIHI0OmU5ODE0MDEwCj4gWyAg ICAyLjQ1OTc1Nl0gWzxjMDJiZjUwND5dIChyY2FyX2R1X3Byb2JlKSBmcm9tIFs8YzAyY2MzNjA+ XQo+IChwbGF0Zm9ybV9kcnZfcHJvYmUrMHg2MC8weGMwKQo+IFsgICAgMi40Njc5NDNdICByMTA6 MDAwMDAwMDUgcjg6YzA2OWQzMWMgcjc6YzA2OWQzMWMgcjY6ZmZmZmZkZmIgcjU6ZWEzMTVjMTAK PiByNDpmZmZmZmZmZQo+IFsgICAgMi40NzU4MzNdIFs8YzAyY2MzMDA+XSAocGxhdGZvcm1fZHJ2 X3Byb2JlKSBmcm9tIFs8YzAyY2ExZDA+XQo+IChkcml2ZXJfcHJvYmVfZGV2aWNlKzB4MjI0LzB4 NDQwKQo+IFsgICAgMi40ODQ3MTVdICByNzpjMDZiNGJkMCByNjpjMDhkNGIwNCByNTpjMDhkNGFm YyByNDplYTMxNWMxMAo+IFsgICAgMi40OTA0MTldIFs8YzAyYzlmYWM+XSAoZHJpdmVyX3Byb2Jl X2RldmljZSkgZnJvbSBbPGMwMmNhNmJjPl0KPiAoX19kZXZpY2VfYXR0YWNoX2RyaXZlcisweDkw LzB4OWMpCj4gWyAgICAyLjQ5OTQ3NF0gIHIxMDowMDAwMDAwMCByOTowMDAwMDAwMCByODplYTJm OWYwMCByNzowMDAwMDAwMSByNjplYTMxNWMxMAo+IHI1OmVhMGU1ZTcwCj4gWyAgICAyLjUwNzM2 MF0gIHI0OmMwNjlkMzFjCj4gWyAgICAyLjUwOTkwN10gWzxjMDJjYTYyYz5dIChfX2RldmljZV9h dHRhY2hfZHJpdmVyKSBmcm9tIFs8YzAyYzdmYzQ+XQo+IChidXNfZm9yX2VhY2hfZHJ2KzB4NTQv MHg5YykKPiBbICAgIDIuNTE4NzAyXSAgcjY6YzAyY2E2MmMgcjU6ZWEwZTVlNzAgcjQ6MDAwMDAw MDAgcjM6ZWEwZTQwMDAKPiBbICAgIDIuNTI0NDA2XSBbPGMwMmM3ZjcwPl0gKGJ1c19mb3JfZWFj aF9kcnYpIGZyb20gWzxjMDJjOWU5ND5dCj4gKF9fZGV2aWNlX2F0dGFjaCsweGFjLzB4MTQwKQo+ IFsgICAgMi41MzI2NzldICByNjpjMDY5ZDZkOCByNTplYTMxNWM0NCByNDplYTMxNWMxMAo+IFsg ICAgMi41MzczMzFdIFs8YzAyYzlkZTg+XSAoX19kZXZpY2VfYXR0YWNoKSBmcm9tIFs8YzAyY2E2 ZTQ+XQo+IChkZXZpY2VfaW5pdGlhbF9wcm9iZSsweDFjLzB4MjApCj4gWyAgICAyLjU0NTg2NV0g IHI3OmMwNmI0YmQwIHI2OmMwNjlkNmQ4IHI1OmVhMzE1YzEwIHI0OmVhMzE1YzEwCj4gWyAgICAy LjU1MTU2OF0gWzxjMDJjYTZjOD5dIChkZXZpY2VfaW5pdGlhbF9wcm9iZSkgZnJvbSBbPGMwMmM5 MWRjPl0KPiAoYnVzX3Byb2JlX2RldmljZSsweDk0LzB4OWMpCj4gWyAgICAyLjU2MDE5Ml0gWzxj MDJjOTE0OD5dIChidXNfcHJvYmVfZGV2aWNlKSBmcm9tIFs8YzAyYzk3Nzg+XQo+IChkZWZlcnJl ZF9wcm9iZV93b3JrX2Z1bmMrMHg4MC8weGNjKQo+IFsgICAgMi41NjkxNjBdICByNjpjMDY5ZDY4 MCByNTpjMDY5ZDY2MCByNDplYTMxNWMxMCByMzowMDAwMDAwMAo+IFsgICAgMi41NzQ4NjldIFs8 YzAyYzk2Zjg+XSAoZGVmZXJyZWRfcHJvYmVfd29ya19mdW5jKSBmcm9tIFs8YzAwNDJjYWM+XQo+ IChwcm9jZXNzX29uZV93b3JrKzB4MTcwLzB4NDk0KQo+IFsgICAgMi41ODQwMTFdICByNzpjMDZi MGEzOCByNjplYTA4OTQwMCByNTpjMDY5ZDY5NCByNDplYTAzZTAwMAo+IFsgICAgMi41ODk3MTZd IFs8YzAwNDJiM2M+XSAocHJvY2Vzc19vbmVfd29yaykgZnJvbSBbPGMwMDQzMDU0Pl0KPiAod29y a2VyX3RocmVhZCsweDNjLzB4NTVjKQo+IFsgICAgMi41OTc4MTVdICByMTA6ZWEwODk0MDAgcjk6 YzA2NmMxMDAgcjg6MDAwMDAwODggcjc6ZWEwM2UwMTggcjY6ZWEwODk0MTgKPiByNTplYTA4OTQw MAo+IFsgICAgMi42MDU3MDFdICByNDplYTAzZTAwMAo+IFsgICAgMi42MDgyNTNdIFs8YzAwNDMw MTg+XSAod29ya2VyX3RocmVhZCkgZnJvbSBbPGMwMDQ5MGUwPl0KPiAoa3RocmVhZCsweGY0LzB4 MTE0KQo+IFsgICAgMi42MTU1NzFdICByMTA6MDAwMDAwMDAgcjk6MDAwMDAwMDAgcjg6MDAwMDAw MDAgcjc6YzAwNDMwMTggcjY6ZWEwM2UwMDAKPiByNTowMDAwMDAwMAo+IFsgICAgMi42MjM0NTdd ICByNDplYTA4YzBjMAo+IFsgICAgMi42MjYwMDZdIFs8YzAwNDhmZWM+XSAoa3RocmVhZCkgZnJv bSBbPGMwMDExOWU4Pl0KPiAocmV0X2Zyb21fZm9yaysweDE0LzB4MmMpCj4gWyAgICAyLjYzMzIz N10gIHI3OjAwMDAwMDAwIHI2OjAwMDAwMDAwIHI1OmMwMDQ4ZmVjIHI0OmVhMDhjMGMwCj4gWyAg ICAyLjYzODk2MV0gLS0tWyBlbmQgdHJhY2UgYTZhMTkwMjI5MTQ5ZGQ0OCBdLS0tCj4gWyAgICAy LjY0MzU5M10gW2RybTpkcm1fc3lzZnNfY29ubmVjdG9yX2FkZF0gKkVSUk9SKiBmYWlsZWQgdG8g cmVnaXN0ZXIKPiBjb25uZWN0b3IgZGV2aWNlOiAtMgo+Cj4gVGhpcyBpcyBjYXVzZWQgYnkgdHJ5 aW5nIHRvIHJlZ2lzdGVyIGEgY29ubmVjdG9yIHRvIHN5c2ZzIGJlZm9yZSB0aGUgRFJNCj4gZGV2 aWNlIGlzIHJlZ2lzdGVyZWQuIFNpbmNlIHRoZSByY2FyLWR1LWRybSBkcml2ZXIgaGFzIHN0b3Bw ZWQgdXNpbmcgdGhlIHJhY2UtCj4gcHJvbmUgLmxvYWQoKSBvcGVyYXRpb24gYW5kIHN3aXRjaGVk IHRvIGNhbGxpbmcgZHJtX2Rldl9yZWdpc3RlcigpIGV4cGxpY2l0bHksCj4gY29ubmVjdG9ycyBu ZWVkIHRvIGJlIHJlZ2lzdGVyZWQgYWZ0ZXIgdGhlIGRybV9kZXZfcmVnaXN0ZXIoKSBjYWxsLCBh bmQgdGh1cwo+IGFmdGVyIGF0dGFjaGluZyB0byB0aGUgYnJpZGdlLgo+Cj4gT25lIHBvc3NpYmxl IGZpeCBoZXJlIGlzIHRvIHJlbW92ZSB0aGUgZHJtX2Nvbm5lY3Rvcl9yZWdpc3RlcigpIGZyb20g dGhlCj4gYWR2NzUxMSBhdHRhY2goKSBoYW5kbGVyLiBUaGlzIGdldHMgcmlkIG9mIHRoZSB3YXJu aW5nLCBhbmQgdGhlIGNvbm5lY3RvciB3aWxsCj4gYmUgcmVnaXN0ZXJlZCBieSB0aGUgcmNhci1k dS1kcm0gZHJpdmVyIGF0IGVuZCBvZiBwcm9iZSBhbG9uZyB3aXRoIGFsbCB0aGUKPiBvdGhlciBj b25uZWN0b3JzLgo+Cj4gVGhpcyB3b3VsZCBvZiBjb3Vyc2UgYnJlYWsgd2l0aCBkcml2ZXJzIHRo YXQgc3RpbGwgcmVseSBvbiB0aGUgLmxvYWQoKQo+IGhhbmRsZXIsIGFzIHRoZSBjb25uZWN0b3Ig d291bGQgdGhlbiBuZXZlciBiZSByZWdpc3RlcmVkLiBJJ20gbm90IHN1cmUgaG93IGJhZAo+IGFu IGlzc3VlIHRoaXMgaXMsIGdpdmVuIHRoYXQgZHJpdmVycyBhcmUgc3VwcG9zZWQgdG8gbW92ZSBh d2F5IGZyb20gLmxvYWQoKS4KPiBJdCBjb3VsZCB0aHVzIGJlIGFyZ3VlZCB0aGF0IG5lZWRpbmcg dGhlIGFkdjc1MTEgYnJpZGdlIGRyaXZlciB3b3VsZCBiZSBhIGdvb2QKPiBpbmNlbnRpdmUuCgpZ ZXMsIHRoYXQncyBzb21ldGhpbmcgdGhhdCB3ZSBjYW4gZ28gd2l0aC4KCj4KPiBBbm90aGVyIHNv bHV0aW9uIGlzIHRvIHJlZ2lzdGVyIHRoZSBjb25uZWN0b3IgaW4gdGhlIERSTSBkcml2ZXIgaW5z dGVhZCBvZiB0aGUKPiBicmlkZ2UgZHJpdmVyLiBJIG1pZ2h0IGhhdmUgbWVudGlvbmVkIHRoYXQg YWxyZWFkeSA7LSkgSSBzdGlsbCBiZWxpZXZlIHRoYXQKPiB3b3VsZCBiZSBhIGdvb2QgaWRlYS4K ClllYWguIFRoYXQncyBwcm9iYWJseSB0aGUgYmV0dGVyLCBsb25nIHRlcm0gc29sdXRpb24uIEkg aGF2ZW4ndCBzdGFydGVkCndvcmtpbmcgb24gdGhhdCB5ZXQuCgo+Cj4gSSd2ZSByZW1vdmVkIHRo ZSBkcm1fY29ubmVjdG9yX3JlZ2lzdGVyKCkgY2FsbCBmcm9tIHRoZSBhZHY3NTExIGRyaXZlciBm b3IKPiB0ZXN0aW5nIHB1cnBvc2UuIFRoZSB3YXJuaW5nIGdvZXMgYXdheSwgYnV0IHVuZm9ydHVu YXRlbHkgdGhlIEhETUkgb3V0cHV0Cj4gcmVtYWlucyBkaXNhYmxlZC4gSSdsbCB0cnkgdG8gaW52 ZXN0aWdhdGUgd2h5LgoKVGhlIGFkdjc1MTEncyBicmlkZ2VfYXR0YWNoIGFsc28gY2FsbHMgZHJt X2hlbHBlcl9ocGRfaXJxX2V2ZW50LCB0aGlzCndvdWxkbid0IGRvIGFueXRoaW5nIGlmIHRoZSBj b25uZWN0b3IgaXNuJ3QgcmVnaXN0ZXJlZC4gWW91J2QgcHJvYmFibHkKbmVlZCB0byBjYWxsIHRo aXMgb25jZSBhZnRlciB5b3UgcmVnaXN0ZXIgdGhlIGNvbm5lY3RvcnMgdG9vLiBXZSBuZWVkCnNv bWVvbmUgdG8gY2FsbCB0aGUgb3V0cHV0X3BvbGxfY2hhbmdlZCBtb2RlX2NvbmZpZyBvcCB0byB0 ZWxsCnRoYXQgd2UndmUgZ290IGEgY29ubmVjdG9yLgoKSSBndWVzcyBpdCB3b3VsZCBiZSBhbnl3 YXkgZGFuZ2Vyb3VzIHRvIGNhbGwgZHJtX2hlbHBlcl9ocGRfaXJxX2V2ZW50CmJlZm9yZSBkcm1f ZGV2X3JlZ2lzdGVyIGlzIGNhbGxlZCBmb3IgdGhlIGttcyBkcml2ZXIuIFNvLCB3ZSdsbCBuZWVk IHRvCmRyb3AgdGhhdCBjYWxsIGZyb20gYnJpZGdlX2F0dGFjaCB0b28uCgpBbm90aGVyIHRoaW5n IHRoYXQgbWlnaHQgYmUgYW4gaXNzdWUgaXMgdGhhdCBJIHBsYWNlZCB0aGUKYWR2NzUxMV9wb3dl cl9uby9vZmYgb3BzIGluIHRoZSBicmlkZ2UncyBwcmVfZW5hYmxlL3Bvc3RfZGlzYWJsZQpjYWxs YmFja3MuIFlvdSBtaWdodCB3YW50IHRvIHRyeSBwdXR0aW5nIHRoZW0gaW4gdGhlIGVuYWJsZS9k aXNhYmxlCm9wcy4gSSd2ZSBhbHJlYWR5IGZpeGVkIHRoYXQgaW4gdGhlIG5leHQgcmV2aXNpb24u CgpUaGFua3MgZm9yIHRlc3RpbmcgdGhpcy4KCkFyY2hpdAoKPgo+PiBTaWduZWQtb2ZmLWJ5OiBB cmNoaXQgVGFuZWphIDxhcmNoaXR0QGNvZGVhdXJvcmEub3JnPgo+PiAtLS0KPj4gICBkcml2ZXJz L2dwdS9kcm0vcmNhci1kdS9NYWtlZmlsZSAgICAgICAgICB8ICAgMyArLQo+PiAgIGRyaXZlcnMv Z3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZW5jb2Rlci5jIHwgICAzICstCj4+ICAgZHJpdmVycy9n cHUvZHJtL3JjYXItZHUvcmNhcl9kdV9lbmNvZGVyLmggfCAgIDcgKy0KPj4gICBkcml2ZXJzL2dw dS9kcm0vcmNhci1kdS9yY2FyX2R1X2hkbWljb24uYyB8IDEyNiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2hkbWljb24uaCB8 ICAzMSAtLS0tLS0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfaGRtaWVu Yy5jIHwgIDYwICsrKystLS0tLS0tLS0tCj4+ICAgNiBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRp b25zKCspLCAyMTAgZGVsZXRpb25zKC0pCj4+ICAgZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Z3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfaGRtaWNvbi5jCj4+ICAgZGVsZXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfaGRtaWNvbi5oCj4+Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9NYWtlZmlsZQo+PiBiL2RyaXZlcnMvZ3B1L2Ry bS9yY2FyLWR1L01ha2VmaWxlIGluZGV4IDA1ZGUxYzQuLmU4Y2Y0NTEgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L01ha2VmaWxlCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yY2FyLWR1L01ha2VmaWxlCj4+IEBAIC03LDggKzcsNyBAQCByY2FyLWR1LWRybS15IDo9IHJj YXJfZHVfY3J0Yy5vIFwKPj4gICAJCSByY2FyX2R1X3BsYW5lLm8gXAo+PiAgIAkJIHJjYXJfZHVf dmdhY29uLm8KPj4KPj4gLXJjYXItZHUtZHJtLSQoQ09ORklHX0RSTV9SQ0FSX0hETUkpCSs9IHJj YXJfZHVfaGRtaWNvbi5vIFwKPj4gLQkJCQkJICAgcmNhcl9kdV9oZG1pZW5jLm8KPj4gK3JjYXIt ZHUtZHJtLSQoQ09ORklHX0RSTV9SQ0FSX0hETUkpCSs9IHJjYXJfZHVfaGRtaWVuYy5vCj4+ICAg cmNhci1kdS1kcm0tJChDT05GSUdfRFJNX1JDQVJfTFZEUykJKz0gcmNhcl9kdV9sdmRzZW5jLm8K Pj4KPj4gICBvYmotJChDT05GSUdfRFJNX1JDQVJfRFUpCQkrPSByY2FyLWR1LWRybS5vCj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2VuY29kZXIuYwo+PiBi L2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZW5jb2Rlci5jIGluZGV4IGQwYWUxZTgu LmVhMDBlMzMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVf ZW5jb2Rlci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZW5jb2Rl ci5jCj4+IEBAIC0xOSw3ICsxOSw2IEBACj4+Cj4+ICAgI2luY2x1ZGUgInJjYXJfZHVfZHJ2Lmgi Cj4+ICAgI2luY2x1ZGUgInJjYXJfZHVfZW5jb2Rlci5oIgo+PiAtI2luY2x1ZGUgInJjYXJfZHVf aGRtaWNvbi5oIgo+PiAgICNpbmNsdWRlICJyY2FyX2R1X2hkbWllbmMuaCIKPj4gICAjaW5jbHVk ZSAicmNhcl9kdV9rbXMuaCIKPj4gICAjaW5jbHVkZSAicmNhcl9kdV9sdmRzY29uLmgiCj4+IEBA IC0xOTAsNyArMTg5LDcgQEAgaW50IHJjYXJfZHVfZW5jb2Rlcl9pbml0KHN0cnVjdCByY2FyX2R1 X2RldmljZSAqcmNkdSwKPj4gICAJCWJyZWFrOwo+Pgo+PiAgIAljYXNlIERSTV9NT0RFX0VOQ09E RVJfVE1EUzoKPj4gLQkJcmV0ID0gcmNhcl9kdV9oZG1pX2Nvbm5lY3Rvcl9pbml0KHJjZHUsIHJl bmMpOwo+PiArCQkvKiBjb25uZWN0b3IgbWFuYWdlZCBieSB0aGUgYnJpZGdlIGRyaXZlciAqLwo+ PiAgIAkJYnJlYWs7Cj4+Cj4+ICAgCWRlZmF1bHQ6Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmNhci1kdS9yY2FyX2R1X2VuY29kZXIuaAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9yY2Fy LWR1L3JjYXJfZHVfZW5jb2Rlci5oIGluZGV4IDcxOWI2ZjJhLi5kZGU1MjNhIDEwMDY0NAo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2VuY29kZXIuaAo+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2VuY29kZXIuaAo+PiBAQCAtMTUsNyArMTUs NiBAQAo+PiAgICNkZWZpbmUgX19SQ0FSX0RVX0VOQ09ERVJfSF9fCj4+Cj4+ICAgI2luY2x1ZGUg PGRybS9kcm1fY3J0Yy5oPgo+PiAtI2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlcl9zbGF2ZS5oPgo+ Pgo+PiAgIHN0cnVjdCByY2FyX2R1X2RldmljZTsKPj4gICBzdHJ1Y3QgcmNhcl9kdV9oZG1pZW5j Owo+PiBAQCAtMzAsMTYgKzI5LDE2IEBAIGVudW0gcmNhcl9kdV9lbmNvZGVyX3R5cGUgewo+PiAg IH07Cj4+Cj4+ICAgc3RydWN0IHJjYXJfZHVfZW5jb2RlciB7Cj4+IC0Jc3RydWN0IGRybV9lbmNv ZGVyX3NsYXZlIHNsYXZlOwo+PiArCXN0cnVjdCBkcm1fZW5jb2RlciBiYXNlOwo+PiAgIAllbnVt IHJjYXJfZHVfb3V0cHV0IG91dHB1dDsKPj4gICAJc3RydWN0IHJjYXJfZHVfaGRtaWVuYyAqaGRt aTsKPj4gICAJc3RydWN0IHJjYXJfZHVfbHZkc2VuYyAqbHZkczsKPj4gICB9Owo+Pgo+PiAgICNk ZWZpbmUgdG9fcmNhcl9lbmNvZGVyKGUpIFwKPj4gLQljb250YWluZXJfb2YoZSwgc3RydWN0IHJj YXJfZHVfZW5jb2Rlciwgc2xhdmUuYmFzZSkKPj4gKwljb250YWluZXJfb2YoZSwgc3RydWN0IHJj YXJfZHVfZW5jb2RlciwgYmFzZSkKPj4KPj4gLSNkZWZpbmUgcmNhcl9lbmNvZGVyX3RvX2RybV9l bmNvZGVyKGUpCSgmKGUpLT5zbGF2ZS5iYXNlKQo+PiArI2RlZmluZSByY2FyX2VuY29kZXJfdG9f ZHJtX2VuY29kZXIoZSkJKCYoZSktPmJhc2UpCj4+Cj4+ICAgc3RydWN0IHJjYXJfZHVfY29ubmVj dG9yIHsKPj4gICAJc3RydWN0IGRybV9jb25uZWN0b3IgY29ubmVjdG9yOwo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9oZG1pY29uLmMKPj4gYi9kcml2ZXJz L2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2hkbWljb24uYyBkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKPj4gaW5kZXggOTZmMmViNC4uMDAwMDAwMAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmNh ci1kdS9yY2FyX2R1X2hkbWljb24uYwo+PiArKysgL2Rldi9udWxsCj4+IEBAIC0xLDEyNiArMCww IEBACj4+IC0vKgo+PiAtICogUi1DYXIgRGlzcGxheSBVbml0IEhETUkgQ29ubmVjdG9yCj4+IC0g Kgo+PiAtICogQ29weXJpZ2h0IChDKSAyMDE0IFJlbmVzYXMgRWxlY3Ryb25pY3MgQ29ycG9yYXRp b24KPj4gLSAqCj4+IC0gKiBDb250YWN0OiBMYXVyZW50IFBpbmNoYXJ0IChsYXVyZW50LnBpbmNo YXJ0QGlkZWFzb25ib2FyZC5jb20pCj4+IC0gKgo+PiAtICogVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPj4gLSAqIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5Cj4+IC0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgo+PiAtICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KPj4gLSAqLwo+PiAtCj4+IC0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KPj4gLSNp bmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPj4gLSNpbmNsdWRlIDxkcm0vZHJtX2Ny dGMuaD4KPj4gLSNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4+IC0jaW5jbHVkZSA8 ZHJtL2RybV9lbmNvZGVyX3NsYXZlLmg+Cj4+IC0KPj4gLSNpbmNsdWRlICJyY2FyX2R1X2Rydi5o Igo+PiAtI2luY2x1ZGUgInJjYXJfZHVfZW5jb2Rlci5oIgo+PiAtI2luY2x1ZGUgInJjYXJfZHVf aGRtaWNvbi5oIgo+PiAtI2luY2x1ZGUgInJjYXJfZHVfa21zLmgiCj4+IC0KPj4gLSNkZWZpbmUg dG9fc2xhdmVfZnVuY3MoZSkJKHRvX3JjYXJfZW5jb2RlcihlKS0+c2xhdmUuc2xhdmVfZnVuY3Mp Cj4+IC0KPj4gLXN0YXRpYyBpbnQgcmNhcl9kdV9oZG1pX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3Ry dWN0IGRybV9jb25uZWN0b3IKPj4gKmNvbm5lY3RvcikgLXsKPj4gLQlzdHJ1Y3QgcmNhcl9kdV9j b25uZWN0b3IgKmNvbiA9IHRvX3JjYXJfY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4+IC0Jc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyID0gcmNhcl9lbmNvZGVyX3RvX2RybV9lbmNvZGVyKGNvbi0+ ZW5jb2Rlcik7Cj4+IC0Jc3RydWN0IGRybV9lbmNvZGVyX3NsYXZlX2Z1bmNzICpzZnVuY3MgPSB0 b19zbGF2ZV9mdW5jcyhlbmNvZGVyKTsKPj4gLQo+PiAtCWlmIChzZnVuY3MtPmdldF9tb2RlcyA9 PSBOVUxMKQo+PiAtCQlyZXR1cm4gMDsKPj4gLQo+PiAtCXJldHVybiBzZnVuY3MtPmdldF9tb2Rl cyhlbmNvZGVyLCBjb25uZWN0b3IpOwo+PiAtfQo+PiAtCj4+IC1zdGF0aWMgaW50IHJjYXJfZHVf aGRtaV9jb25uZWN0b3JfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgo+PiAqY29ubmVj dG9yLCAtCQkJCQkgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+PiAtewo+PiAt CXN0cnVjdCByY2FyX2R1X2Nvbm5lY3RvciAqY29uID0gdG9fcmNhcl9jb25uZWN0b3IoY29ubmVj dG9yKTsKPj4gLQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSByY2FyX2VuY29kZXJfdG9f ZHJtX2VuY29kZXIoY29uLT5lbmNvZGVyKTsKPj4gLQlzdHJ1Y3QgZHJtX2VuY29kZXJfc2xhdmVf ZnVuY3MgKnNmdW5jcyA9IHRvX3NsYXZlX2Z1bmNzKGVuY29kZXIpOwo+PiAtCj4+IC0JaWYgKHNm dW5jcy0+bW9kZV92YWxpZCA9PSBOVUxMKQo+PiAtCQlyZXR1cm4gTU9ERV9PSzsKPj4gLQo+PiAt CXJldHVybiBzZnVuY3MtPm1vZGVfdmFsaWQoZW5jb2RlciwgbW9kZSk7Cj4+IC19Cj4+IC0KPj4g LXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgY29ubmVjdG9y X2hlbHBlcl9mdW5jcyA9IHsKPj4gLQkuZ2V0X21vZGVzID0gcmNhcl9kdV9oZG1pX2Nvbm5lY3Rv cl9nZXRfbW9kZXMsCj4+IC0JLm1vZGVfdmFsaWQgPSByY2FyX2R1X2hkbWlfY29ubmVjdG9yX21v ZGVfdmFsaWQsCj4+IC0JLmJlc3RfZW5jb2RlciA9IHJjYXJfZHVfY29ubmVjdG9yX2Jlc3RfZW5j b2RlciwKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyB2b2lkIHJjYXJfZHVfaGRtaV9jb25uZWN0b3Jf ZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+PiAtewo+PiAtCWRybV9j b25uZWN0b3JfdW5yZWdpc3Rlcihjb25uZWN0b3IpOwo+PiAtCWRybV9jb25uZWN0b3JfY2xlYW51 cChjb25uZWN0b3IpOwo+PiAtfQo+PiAtCj4+IC1zdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0 YXR1cwo+PiAtcmNhcl9kdV9oZG1pX2Nvbm5lY3Rvcl9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPj4gLXsKPj4gLQlzdHJ1Y3QgcmNhcl9kdV9jb25u ZWN0b3IgKmNvbiA9IHRvX3JjYXJfY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4+IC0Jc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyID0gcmNhcl9lbmNvZGVyX3RvX2RybV9lbmNvZGVyKGNvbi0+ZW5j b2Rlcik7Cj4+IC0Jc3RydWN0IGRybV9lbmNvZGVyX3NsYXZlX2Z1bmNzICpzZnVuY3MgPSB0b19z bGF2ZV9mdW5jcyhlbmNvZGVyKTsKPj4gLQo+PiAtCWlmIChzZnVuY3MtPmRldGVjdCA9PSBOVUxM KQo+PiAtCQlyZXR1cm4gY29ubmVjdG9yX3N0YXR1c191bmtub3duOwo+PiAtCj4+IC0JcmV0dXJu IHNmdW5jcy0+ZGV0ZWN0KGVuY29kZXIsIGNvbm5lY3Rvcik7Cj4+IC19Cj4+IC0KPj4gLXN0YXRp YyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBjb25uZWN0b3JfZnVuY3MgPSB7Cj4+ IC0JLmRwbXMgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHBtcywKPj4gLQkucmVzZXQg PSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVzZXQsCj4+IC0JLmRldGVjdCA9IHJjYXJf ZHVfaGRtaV9jb25uZWN0b3JfZGV0ZWN0LAo+PiAtCS5maWxsX21vZGVzID0gZHJtX2hlbHBlcl9w cm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAo+PiAtCS5kZXN0cm95ID0gcmNhcl9kdV9oZG1p X2Nvbm5lY3Rvcl9kZXN0cm95LAo+PiAtCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0 b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSwKPj4gLQkuYXRvbWljX2Rlc3Ry b3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKPj4g LX07Cj4+IC0KPj4gLWludCByY2FyX2R1X2hkbWlfY29ubmVjdG9yX2luaXQoc3RydWN0IHJjYXJf ZHVfZGV2aWNlICpyY2R1LAo+PiAtCQkJCXN0cnVjdCByY2FyX2R1X2VuY29kZXIgKnJlbmMpCj4+ IC17Cj4+IC0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gcmNhcl9lbmNvZGVyX3RvX2Ry bV9lbmNvZGVyKHJlbmMpOwo+PiAtCXN0cnVjdCByY2FyX2R1X2Nvbm5lY3RvciAqcmNvbjsKPj4g LQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+PiAtCWludCByZXQ7Cj4+IC0KPj4g LQlyY29uID0gZGV2bV9remFsbG9jKHJjZHUtPmRldiwgc2l6ZW9mKCpyY29uKSwgR0ZQX0tFUk5F TCk7Cj4+IC0JaWYgKHJjb24gPT0gTlVMTCkKPj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4+IC0KPj4g LQljb25uZWN0b3IgPSAmcmNvbi0+Y29ubmVjdG9yOwo+PiAtCWNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLndpZHRoX21tID0gMDsKPj4gLQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0g PSAwOwo+PiAtCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQgPSB0cnVlOwo+PiAtCWNvbm5l Y3Rvci0+cG9sbGVkID0gRFJNX0NPTk5FQ1RPUl9QT0xMX0hQRDsKPj4gLQo+PiAtCXJldCA9IGRy bV9jb25uZWN0b3JfaW5pdChyY2R1LT5kZGV2LCBjb25uZWN0b3IsICZjb25uZWN0b3JfZnVuY3Ms Cj4+IC0JCQkJIERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQSk7Cj4+IC0JaWYgKHJldCA8IDApCj4+ IC0JCXJldHVybiByZXQ7Cj4+IC0KPj4gLQlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubmVj dG9yLCAmY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Cj4+IC0JcmV0ID0gZHJtX2Nvbm5lY3Rvcl9y ZWdpc3Rlcihjb25uZWN0b3IpOwo+PiAtCWlmIChyZXQgPCAwKQo+PiAtCQlyZXR1cm4gcmV0Owo+ PiAtCj4+IC0JY29ubmVjdG9yLT5kcG1zID0gRFJNX01PREVfRFBNU19PRkY7Cj4+IC0JZHJtX29i amVjdF9wcm9wZXJ0eV9zZXRfdmFsdWUoJmNvbm5lY3Rvci0+YmFzZSwKPj4gLQkJcmNkdS0+ZGRl di0+bW9kZV9jb25maWcuZHBtc19wcm9wZXJ0eSwgRFJNX01PREVfRFBNU19PRkYpOwo+PiAtCj4+ IC0JcmV0ID0gZHJtX21vZGVfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKGNvbm5lY3RvciwgZW5j b2Rlcik7Cj4+IC0JaWYgKHJldCA8IDApCj4+IC0JCXJldHVybiByZXQ7Cj4+IC0KPj4gLQlyY29u LT5lbmNvZGVyID0gcmVuYzsKPj4gLQo+PiAtCXJldHVybiAwOwo+PiAtfQo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9oZG1pY29uLmgKPj4gYi9kcml2ZXJz L2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2hkbWljb24uaCBkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKPj4gaW5kZXggODdkYWE5NC4uMDAwMDAwMAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmNh ci1kdS9yY2FyX2R1X2hkbWljb24uaAo+PiArKysgL2Rldi9udWxsCj4+IEBAIC0xLDMxICswLDAg QEAKPj4gLS8qCj4+IC0gKiBSLUNhciBEaXNwbGF5IFVuaXQgSERNSSBDb25uZWN0b3IKPj4gLSAq Cj4+IC0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgUmVuZXNhcyBFbGVjdHJvbmljcyBDb3Jwb3JhdGlv bgo+PiAtICoKPj4gLSAqIENvbnRhY3Q6IExhdXJlbnQgUGluY2hhcnQgKGxhdXJlbnQucGluY2hh cnRAaWRlYXNvbmJvYXJkLmNvbSkKPj4gLSAqCj4+IC0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+PiAtICogaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKPj4gLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCj4+IC0gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgo+PiAtICovCj4+IC0KPj4gLSNpZm5kZWYgX19SQ0FSX0RVX0hETUlDT05fSF9f Cj4+IC0jZGVmaW5lIF9fUkNBUl9EVV9IRE1JQ09OX0hfXwo+PiAtCj4+IC1zdHJ1Y3QgcmNhcl9k dV9kZXZpY2U7Cj4+IC1zdHJ1Y3QgcmNhcl9kdV9lbmNvZGVyOwo+PiAtCj4+IC0jaWYgSVNfRU5B QkxFRChDT05GSUdfRFJNX1JDQVJfSERNSSkKPj4gLWludCByY2FyX2R1X2hkbWlfY29ubmVjdG9y X2luaXQoc3RydWN0IHJjYXJfZHVfZGV2aWNlICpyY2R1LAo+PiAtCQkJCXN0cnVjdCByY2FyX2R1 X2VuY29kZXIgKnJlbmMpOwo+PiAtI2Vsc2UKPj4gLXN0YXRpYyBpbmxpbmUgaW50IHJjYXJfZHVf aGRtaV9jb25uZWN0b3JfaW5pdChzdHJ1Y3QgcmNhcl9kdV9kZXZpY2UgKnJjZHUsCj4+IC0JCQkJ CSAgICAgIHN0cnVjdCByY2FyX2R1X2VuY29kZXIgKnJlbmMpCj4+IC17Cj4+IC0JcmV0dXJuIC1F Tk9TWVM7Cj4+IC19Cj4+IC0jZW5kaWYKPj4gLQo+PiAtI2VuZGlmIC8qIF9fUkNBUl9EVV9IRE1J Q09OX0hfXyAqLwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9k dV9oZG1pZW5jLmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2hkbWllbmMu YyBpbmRleCA4MWRhODQxLi4xMmVjMWQ4IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v cmNhci1kdS9yY2FyX2R1X2hkbWllbmMuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1k dS9yY2FyX2R1X2hkbWllbmMuYwo+PiBAQCAtMTYsNyArMTYsNiBAQAo+PiAgICNpbmNsdWRlIDxk cm0vZHJtUC5oPgo+PiAgICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KPj4gICAjaW5jbHVkZSA8 ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+PiAtI2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlcl9zbGF2 ZS5oPgo+Pgo+PiAgICNpbmNsdWRlICJyY2FyX2R1X2Rydi5oIgo+PiAgICNpbmNsdWRlICJyY2Fy X2R1X2VuY29kZXIuaCIKPj4gQEAgLTI1LDIwICsyNCwxNCBAQAo+Pgo+PiAgIHN0cnVjdCByY2Fy X2R1X2hkbWllbmMgewo+PiAgIAlzdHJ1Y3QgcmNhcl9kdV9lbmNvZGVyICpyZW5jOwo+PiAtCXN0 cnVjdCBkZXZpY2UgKmRldjsKPj4gICAJYm9vbCBlbmFibGVkOwo+PiAgIH07Cj4+Cj4+ICAgI2Rl ZmluZSB0b19yY2FyX2hkbWllbmMoZSkJKHRvX3JjYXJfZW5jb2RlcihlKS0+aGRtaSkKPj4gLSNk ZWZpbmUgdG9fc2xhdmVfZnVuY3MoZSkJKHRvX3JjYXJfZW5jb2RlcihlKS0+c2xhdmUuc2xhdmVf ZnVuY3MpCj4+Cj4+ICAgc3RhdGljIHZvaWQgcmNhcl9kdV9oZG1pZW5jX2Rpc2FibGUoc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyKQo+PiAgIHsKPj4gICAJc3RydWN0IHJjYXJfZHVfaGRtaWVu YyAqaGRtaWVuYyA9IHRvX3JjYXJfaGRtaWVuYyhlbmNvZGVyKTsKPj4gLQlzdHJ1Y3QgZHJtX2Vu Y29kZXJfc2xhdmVfZnVuY3MgKnNmdW5jcyA9IHRvX3NsYXZlX2Z1bmNzKGVuY29kZXIpOwo+PiAt Cj4+IC0JaWYgKHNmdW5jcy0+ZHBtcykKPj4gLQkJc2Z1bmNzLT5kcG1zKGVuY29kZXIsIERSTV9N T0RFX0RQTVNfT0ZGKTsKPj4KPj4gICAJaWYgKGhkbWllbmMtPnJlbmMtPmx2ZHMpCj4+ICAgCQly Y2FyX2R1X2x2ZHNlbmNfZW5hYmxlKGhkbWllbmMtPnJlbmMtPmx2ZHMsIGVuY29kZXItPmNydGMs Cj4+IEBAIC01MCwxNSArNDMsMTEgQEAgc3RhdGljIHZvaWQgcmNhcl9kdV9oZG1pZW5jX2Rpc2Fi bGUoc3RydWN0IGRybV9lbmNvZGVyCj4+ICplbmNvZGVyKSBzdGF0aWMgdm9pZCByY2FyX2R1X2hk bWllbmNfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPj4gICB7Cj4+ICAgCXN0 cnVjdCByY2FyX2R1X2hkbWllbmMgKmhkbWllbmMgPSB0b19yY2FyX2hkbWllbmMoZW5jb2Rlcik7 Cj4+IC0Jc3RydWN0IGRybV9lbmNvZGVyX3NsYXZlX2Z1bmNzICpzZnVuY3MgPSB0b19zbGF2ZV9m dW5jcyhlbmNvZGVyKTsKPj4KPj4gICAJaWYgKGhkbWllbmMtPnJlbmMtPmx2ZHMpCj4+ICAgCQly Y2FyX2R1X2x2ZHNlbmNfZW5hYmxlKGhkbWllbmMtPnJlbmMtPmx2ZHMsIGVuY29kZXItPmNydGMs Cj4+ICAgCQkJCSAgICAgICB0cnVlKTsKPj4KPj4gLQlpZiAoc2Z1bmNzLT5kcG1zKQo+PiAtCQlz ZnVuY3MtPmRwbXMoZW5jb2RlciwgRFJNX01PREVfRFBNU19PTik7Cj4+IC0KPj4gICAJaGRtaWVu Yy0+ZW5hYmxlZCA9IHRydWU7Cj4+ICAgfQo+Pgo+PiBAQCAtNjcsOSArNTYsNyBAQCBzdGF0aWMg aW50IHJjYXJfZHVfaGRtaWVuY19hdG9taWNfY2hlY2soc3RydWN0IGRybV9lbmNvZGVyCj4+ICpl bmNvZGVyLCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPj4gICB7Cj4+ ICAgCXN0cnVjdCByY2FyX2R1X2hkbWllbmMgKmhkbWllbmMgPSB0b19yY2FyX2hkbWllbmMoZW5j b2Rlcik7Cj4+IC0Jc3RydWN0IGRybV9lbmNvZGVyX3NsYXZlX2Z1bmNzICpzZnVuY3MgPSB0b19z bGF2ZV9mdW5jcyhlbmNvZGVyKTsKPj4gICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZTsKPj4gLQljb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZjcnRjX3N0YXRlLT5tb2RlOwo+Pgo+PiAgIAkvKiBU aGUgaW50ZXJuYWwgTFZEUyBlbmNvZGVyIGhhcyBhIGNsb2NrIGZyZXF1ZW5jeSBvcGVyYXRpbmcg cmFuZ2Ugb2YKPj4gICAJICogMzBNSHogdG8gMTUwTUh6LiBDbGFtcCB0aGUgY2xvY2sgYWNjb3Jk aW5nbHkuCj4+IEBAIC03OCwxMCArNjUsNyBAQCBzdGF0aWMgaW50IHJjYXJfZHVfaGRtaWVuY19h dG9taWNfY2hlY2soc3RydWN0Cj4+IGRybV9lbmNvZGVyICplbmNvZGVyLCBhZGp1c3RlZF9tb2Rl LT5jbG9jayA9IGNsYW1wKGFkanVzdGVkX21vZGUtPmNsb2NrLAo+PiAgIAkJCQkJICAgICAzMDAw MCwgMTUwMDAwKTsKPj4KPj4gLQlpZiAoc2Z1bmNzLT5tb2RlX2ZpeHVwID09IE5VTEwpCj4+IC0J CXJldHVybiAwOwo+PiAtCj4+IC0JcmV0dXJuIHNmdW5jcy0+bW9kZV9maXh1cChlbmNvZGVyLCBt b2RlLCBhZGp1c3RlZF9tb2RlKSA/IDAgOiAtRUlOVkFMOwo+PiArCXJldHVybiAwOwo+PiAgIH0K Pj4KPj4gICBzdGF0aWMgdm9pZCByY2FyX2R1X2hkbWllbmNfbW9kZV9zZXQoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLAo+PiBAQCAtODksMTAgKzczLDYgQEAgc3RhdGljIHZvaWQgcmNhcl9k dV9oZG1pZW5jX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2Rlcgo+PiAqZW5jb2Rlciwgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCj4+ICAgewo+PiAgIAlzdHJ1Y3QgcmNh cl9kdV9oZG1pZW5jICpoZG1pZW5jID0gdG9fcmNhcl9oZG1pZW5jKGVuY29kZXIpOwo+PiAtCXN0 cnVjdCBkcm1fZW5jb2Rlcl9zbGF2ZV9mdW5jcyAqc2Z1bmNzID0gdG9fc2xhdmVfZnVuY3MoZW5j b2Rlcik7Cj4+IC0KPj4gLQlpZiAoc2Z1bmNzLT5tb2RlX3NldCkKPj4gLQkJc2Z1bmNzLT5tb2Rl X3NldChlbmNvZGVyLCBtb2RlLCBhZGp1c3RlZF9tb2RlKTsKPj4KPj4gICAJcmNhcl9kdV9jcnRj X3JvdXRlX291dHB1dChlbmNvZGVyLT5jcnRjLCBoZG1pZW5jLT5yZW5jLT5vdXRwdXQpOwo+PiAg IH0KPj4gQEAgLTExMiw3ICs5Miw2IEBAIHN0YXRpYyB2b2lkIHJjYXJfZHVfaGRtaWVuY19jbGVh bnVwKHN0cnVjdCBkcm1fZW5jb2Rlcgo+PiAqZW5jb2RlcikgcmNhcl9kdV9oZG1pZW5jX2Rpc2Fi bGUoZW5jb2Rlcik7Cj4+Cj4+ICAgCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Cj4+IC0J cHV0X2RldmljZShoZG1pZW5jLT5kZXYpOwo+PiAgIH0KPj4KPj4gICBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9lbmNvZGVyX2Z1bmNzIGVuY29kZXJfZnVuY3MgPSB7Cj4+IEBAIC0xMjMsOCArMTAy LDcgQEAgaW50IHJjYXJfZHVfaGRtaWVuY19pbml0KHN0cnVjdCByY2FyX2R1X2RldmljZSAqcmNk dSwKPj4gICAJCQkgc3RydWN0IHJjYXJfZHVfZW5jb2RlciAqcmVuYywgc3RydWN0IGRldmljZV9u b2RlICpucCkKPj4gICB7Cj4+ICAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9IHJjYXJf ZW5jb2Rlcl90b19kcm1fZW5jb2RlcihyZW5jKTsKPj4gLQlzdHJ1Y3QgZHJtX2kyY19lbmNvZGVy X2RyaXZlciAqZHJpdmVyOwo+PiAtCXN0cnVjdCBpMmNfY2xpZW50ICppMmNfc2xhdmU7Cj4+ICsJ c3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZTsKPj4gICAJc3RydWN0IHJjYXJfZHVfaGRtaWVuYyAq aGRtaWVuYzsKPj4gICAJaW50IHJldDsKPj4KPj4gQEAgLTEzMiwzNyArMTEwLDI5IEBAIGludCBy Y2FyX2R1X2hkbWllbmNfaW5pdChzdHJ1Y3QgcmNhcl9kdV9kZXZpY2UgKnJjZHUsCj4+ICAgCWlm IChoZG1pZW5jID09IE5VTEwpCj4+ICAgCQlyZXR1cm4gLUVOT01FTTsKPj4KPj4gLQkvKiBMb2Nh dGUgdGhlIHNsYXZlIEkyQyBkZXZpY2UgYW5kIGRyaXZlci4gKi8KPj4gLQlpMmNfc2xhdmUgPSBv Zl9maW5kX2kyY19kZXZpY2VfYnlfbm9kZShucCk7Cj4+IC0JaWYgKCFpMmNfc2xhdmUgfHwgIWky Y19nZXRfY2xpZW50ZGF0YShpMmNfc2xhdmUpKQo+PiArCS8qIExvY2F0ZSBkcm0gYnJpZGdlIGZy b20gdGhlIGhkbWkgZW5jb2RlciBEVCBub2RlICovCj4+ICsJYnJpZGdlID0gb2ZfZHJtX2ZpbmRf YnJpZGdlKG5wKTsKPj4gKwlpZiAoIWJyaWRnZSkKPj4gICAJCXJldHVybiAtRVBST0JFX0RFRkVS Owo+Pgo+PiAtCWhkbWllbmMtPmRldiA9ICZpMmNfc2xhdmUtPmRldjsKPj4gLQo+PiAtCWlmICho ZG1pZW5jLT5kZXYtPmRyaXZlciA9PSBOVUxMKSB7Cj4+IC0JCXJldCA9IC1FUFJPQkVfREVGRVI7 Cj4+IC0JCWdvdG8gZXJyb3I7Cj4+IC0JfQo+PiAtCj4+IC0JLyogSW5pdGlhbGl6ZSB0aGUgc2xh dmUgZW5jb2Rlci4gKi8KPj4gLQlkcml2ZXIgPSB0b19kcm1faTJjX2VuY29kZXJfZHJpdmVyKHRv X2kyY19kcml2ZXIoaGRtaWVuYy0+ZGV2LT5kcml2ZXIpKTsKPj4gLQlyZXQgPSBkcml2ZXItPmVu Y29kZXJfaW5pdChpMmNfc2xhdmUsIHJjZHUtPmRkZXYsICZyZW5jLT5zbGF2ZSk7Cj4+IC0JaWYg KHJldCA8IDApCj4+IC0JCWdvdG8gZXJyb3I7Cj4+IC0KPj4gICAJcmV0ID0gZHJtX2VuY29kZXJf aW5pdChyY2R1LT5kZGV2LCBlbmNvZGVyLCAmZW5jb2Rlcl9mdW5jcywKPj4gICAJCQkgICAgICAg RFJNX01PREVfRU5DT0RFUl9UTURTKTsKPj4gICAJaWYgKHJldCA8IDApCj4+IC0JCWdvdG8gZXJy b3I7Cj4+ICsJCXJldHVybiByZXQ7Cj4+Cj4+ICAgCWRybV9lbmNvZGVyX2hlbHBlcl9hZGQoZW5j b2RlciwgJmVuY29kZXJfaGVscGVyX2Z1bmNzKTsKPj4KPj4gICAJcmVuYy0+aGRtaSA9IGhkbWll bmM7Cj4+ICAgCWhkbWllbmMtPnJlbmMgPSByZW5jOwo+Pgo+PiAtCXJldHVybiAwOwo+PiArCS8q IExpbmsgZHJtX2JyaWRnZSB0byBlbmNvZGVyICovCj4+ICsJYnJpZGdlLT5lbmNvZGVyID0gZW5j b2RlcjsKPj4KPj4gLWVycm9yOgo+PiAtCXB1dF9kZXZpY2UoaGRtaWVuYy0+ZGV2KTsKPj4gLQly ZXR1cm4gcmV0Owo+PiArCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKHJjZHUtPmRkZXYsIGJyaWRn ZSk7Cj4+ICsJaWYgKHJldCkgewo+PiArCQlkcm1fZW5jb2Rlcl9jbGVhbnVwKGVuY29kZXIpOwo+ PiArCQlyZXR1cm4gcmV0Owo+PiArCX0KPj4gKwo+PiArCXJldHVybiAwOwo+PiAgIH0KPgoKLS0g ClRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUg Q29kZSBBdXJvcmEgCkZvcnVtLCBob3N0ZWQgYnkgVGhlIExpbnV4IEZvdW5kYXRpb24KX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==