From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Agner Subject: Re: [RFC][PATCH 04/11] drm: Split the display info into static and dynamic parts Date: Wed, 28 Feb 2018 10:17:19 +0100 Message-ID: <9f039d0e2460cfc232f2929f0e7610e3@agner.ch> References: <20180227125700.6527-1-ville.syrjala@linux.intel.com> <20180227125700.6527-5-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.kmu-office.ch (mail.kmu-office.ch [IPv6:2a02:418:6a02::a2]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7715C6E90C for ; Wed, 28 Feb 2018 09:17:23 +0000 (UTC) In-Reply-To: <20180227125700.6527-5-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville Syrjala Cc: Marek Vasut , linux-renesas-soc@vger.kernel.org, Keith Packard , Boris Brezillon , Daniel Vetter , intel-gfx@lists.freedesktop.org, Alison Wang , dri-devel@lists.freedesktop.org, Hans de Goede , Thierry Reding , Laurent Pinchart , Maxime Ripard List-Id: dri-devel@lists.freedesktop.org T24gMjcuMDIuMjAxOCAxMzo1NiwgVmlsbGUgU3lyamFsYSB3cm90ZToKPiBGcm9tOiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IAo+IEN1cnJlbnRseSB3 ZSBoYXZlIGEgbWl4IG9mIHN0YXRpYyBhbmQgZHluYW1pYyBpbmZvcm1hdGlvbiBzdG9yZWQgaW4K PiB0aGUgZGlzcGxheSBpbmZvIHN0cnVjdHVyZS4gVGhhdCBtYWtlcyBpdCByYXRoZXIgZGlmZmlj dWx0IHRvIHJlcG9wdWxhdGUKPiB0aGUgZHluYW1pYyBwYXJ0cyB3aGVuIGEgbmV3IEVESUQgYXBw ZWFycy4gTGV0J3MgbWFrZSBsaWZlIGVhc2llciBieQo+IHNwbGl0dGluZyB0aGUgc3RydWN0dXJl IHVwIGludG8gc3RhdGljIGFuZCBkeW5hbWljIHBhcnRzLgo+IAo+IFRoZSBzdGF0aWMgcGFydCB3 aWxsIGNvbnNpc3Qgb2Ygc3VicGl4ZWxfb3JkZXIsIHBhbmVsX29yaWVudGF0aW9uLAo+IGFuZCBi dXNfZm9ybWF0cy4KPiAKPiBBY3R1YWxseSBJJ20gbm90IHN1cmUgd2hlcmUgYnVzX2Zvcm1hdHMg JiBjby4gZml0IGluIGFsbCB0aGlzLiBGb3Igc29tZQo+IGRyaXZlcnMgdGhvc2Ugc2VlbSB0byBi ZSBzdGF0aWMsIGV2ZW4gdGhvdWdoIHRoZXkgbWlnaHQgZmlsbCB0aGVtIG91dAo+IGZyb20gLmdl dF9tb2RlcygpLiBGb3Igb3RoZXIgZHJpdmVycyB0aGlzIHN0dWZmIGV2ZW4gZ2V0cyBmcm9iYmVk IGF0Cj4gcnVudGltZSwgbWFraW5nIGl0IG1vcmUgc29tZSBraW5kIG9mIGEgYmFzdGFyZCBlbmNv ZGVyL2Nvbm5lY3RvciBzdGF0ZS4KPiBJJ2xsIGp1c3Qgc3RpY2sgaXQgaW50byB0aGUgc3RhdGlj IHNpZGUgc28gdGhhdCB0aGUgYmVoYXZpb3VyIGRvZXNuJ3QKPiBjaGFuZ2Ugd2hlbiBJIHN0YXJ0 IGNsZWFyIG91dCB0aGUgZW50aXJlIGR5bmFtaWMgc3RhdGUgd2l0aCBtZW1zZXQoKS4KCkJhY2sg d2hlbiBJIGludHJvZHVjZWQgYnVzIGZsYWdzIGl0IHdhcyBtZWFudCB0byBiZSBhIHN0YXRpYwpp bmZvcm1hdGlvbi4KClNvIGZvciB0aGUgZ2VuZXJhbCBpZGVhL2RybV9jb25uZWN0b3IuaDoKClJl dmlld2VkLWJ5OiBTdGVmYW4gQWduZXIgPHN0ZWZhbkBhZ25lci5jaD4KClsuLi5dIAoKPiAgZHJp dmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fY3J0Yy5jICAgICAgICAgfCAgIDIgKy0K CkZvciBmc2wtZGN1OgoKQWNrZWQtYnk6IFN0ZWZhbiBBZ25lciA8c3RlZmFuQGFnbmVyLmNoPgoK LS0KU3RlZmFuCgo+ICBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRlbF9oZG1pLmMgICAg ICAgICAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRlbF9sdmRz LmMgICAgICAgICAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL21kZmxkX2Rz aV9vdXRwdXQuYyAgICAgICAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29h a3RyYWlsX2hkbWkuYyAgICAgICAgICAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vZ21h NTAwL29ha3RyYWlsX2x2ZHMuYyAgICAgICAgICAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9k cm0vZ21hNTAwL3BzYl9pbnRlbF9sdmRzLmMgICAgICAgICAgICB8ICAgMiArLQo+ICBkcml2ZXJz L2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9zZHZvLmMgICAgICAgICAgICB8ICAgMiArLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgICAgICAgICB8ICAgMiAr LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyAgICAgICAgICAgICAgICAgICB8 ICAgNCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYyAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMgICAgICAg ICAgICAgICAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMg ICAgICAgICAgICAgICAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaW14L2lteC1sZGIu YyAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaW14L3Bh cmFsbGVsLWRpc3BsYXkuYyAgICAgICAgICAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0v bXhzZmIvbXhzZmJfY3J0Yy5jICAgICAgICAgICAgICAgICB8ICAgNiArLQo+ICBkcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtYXJtLXZlcnNhdGlsZS5jICAgICAgICB8ICAgMiArLQo+ICBkcml2 ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYyAgICAgICB8ICAgOCArLQo+ ICBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZkcy5jICAgICAgICAgICAgICAgICB8ICAg NCArLQo+ICAuLi4vZ3B1L2RybS9wYW5lbC9wYW5lbC1yYXNwYmVycnlwaS10b3VjaHNjcmVlbi5j ICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vpa28tNDN3dmYxZy5j ICAgICAgICB8ICAgNCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2ltcGxlLmMg ICAgICAgICAgICAgICB8ICAgNCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfZGlz cGxheS5jICAgICAgICAgICAgICB8ICAgNCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9jb25uZWN0b3JzLmMgICAgICAgICB8ICAgNCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vcmNh ci1kdS9yY2FyX2R1X2VuY29kZXIuYyAgICAgICAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9k cm0vc3VuNGkvc3VuNGlfdGNvbi5jICAgICAgICAgICAgICAgICB8ICAgNCArLQo+ICBkcml2ZXJz L2dwdS9kcm0vdHZlMjAwL3R2ZTIwMF9kaXNwbGF5LmMgICAgICAgICAgICB8ICAgMiArLQo+ICBk cml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcGkuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgNCAr LQo+ICBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggICAgICAgICAgICAgICAgICAgICAgICB8 IDEyMyArKysrKysrKysrKystLS0tLS0tLS0KPiAgMzYgZmlsZXMgY2hhbmdlZCwgMTI1IGluc2Vy dGlvbnMoKyksIDEwNiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nvbm5lY3RvcnMuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2Nvbm5lY3RvcnMuYwo+IGluZGV4IDc0ZDJlZmFlYzUyZi4uMWJhNzJk YzJhODViIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9j b25uZWN0b3JzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY29u bmVjdG9ycy5jCj4gQEAgLTE5MjcsNyArMTkyNyw3IEBAIGFtZGdwdV9jb25uZWN0b3JfYWRkKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAJfSBlbHNlCj4gIAkJY29ubmVjdG9yLT5wb2xs ZWQgPSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEOwo+ICAKPiAtCWNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLnN1YnBpeGVsX29yZGVyID0gc3VicGl4ZWxfb3JkZXI7Cj4gKwljb25uZWN0b3ItPnN0YXRp Y19kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBzdWJwaXhlbF9vcmRlcjsKPiAgCWRybV9j b25uZWN0b3JfcmVnaXN0ZXIoY29ubmVjdG9yKTsKPiAgCj4gIAlpZiAoaGFzX2F1eCkKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3ZpcnR1YWwuYwo+IGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3ZpcnR1YWwuYwo+IGluZGV4IDEyMGRkM2IyNmZj Mi4uN2U5ZjdmMWFiMWIxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2RjZV92aXJ0dWFsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2Vfdmly dHVhbC5jCj4gQEAgLTYzOSw3ICs2MzksNyBAQCBzdGF0aWMgaW50Cj4gZGNlX3ZpcnR1YWxfY29u bmVjdG9yX2VuY29kZXJfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiAgCWRybV9j b25uZWN0b3JfaW5pdChhZGV2LT5kZGV2LCBjb25uZWN0b3IsICZkY2VfdmlydHVhbF9jb25uZWN0 b3JfZnVuY3MsCj4gIAkJCSAgIERSTV9NT0RFX0NPTk5FQ1RPUl9WSVJUVUFMKTsKPiAgCWRybV9j b25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3IsICZkY2VfdmlydHVhbF9jb25uZWN0b3JfaGVs cGVyX2Z1bmNzKTsKPiAtCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0g U3ViUGl4ZWxIb3Jpem9udGFsUkdCOwo+ICsJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZv LnN1YnBpeGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFsUkdCOwo+ICAJY29ubmVjdG9yLT5p bnRlcmxhY2VfYWxsb3dlZCA9IGZhbHNlOwo+ICAJY29ubmVjdG9yLT5kb3VibGVzY2FuX2FsbG93 ZWQgPSBmYWxzZTsKPiAgCWRybV9jb25uZWN0b3JfcmVnaXN0ZXIoY29ubmVjdG9yKTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2NydGMuYwo+ IGIvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2NydGMuYwo+IGluZGV4 IGQ3MzI4MTA5NWZhYy4uMmQxOGM4ZWYyMmEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfY3J0Yy5jCj4gQEAgLTIzOCw3ICsyMzgsNyBAQCBzdGF0 aWMgaW50Cj4gYXRtZWxfaGxjZGNfY3J0Y19zZWxlY3Rfb3V0cHV0X21vZGUoc3RydWN0IGRybV9j cnRjX3N0YXRlICpzdGF0ZSkKPiAgCWNydGMgPSBkcm1fY3J0Y190b19hdG1lbF9obGNkY19jcnRj KHN0YXRlLT5jcnRjKTsKPiAgCj4gIAlmb3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0 YXRlLT5zdGF0ZSwgY29ubmVjdG9yLCBjc3RhdGUsIGkpIHsKPiAtCQlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfaW5mbyAqaW5mbyA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbzsKPiArCQlzdHJ1Y3QgZHJt X3N0YXRpY19kaXNwbGF5X2luZm8gKmluZm8gPSAmY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9p bmZvOwo+ICAJCXVuc2lnbmVkIGludCBzdXBwb3J0ZWRfZm10cyA9IDA7Cj4gIAkJaW50IGo7Cj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpaTkwMnguYyBiL2RyaXZl cnMvZ3B1L2RybS9icmlkZ2Uvc2lpOTAyeC5jCj4gaW5kZXggYjFhYjRhYjA5NTMyLi5hYmQwYmNl OWMzMWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWk5MDJ4LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpaTkwMnguYwo+IEBAIC0xNzQsNyArMTc0LDcg QEAgc3RhdGljIGludCBzaWk5MDJ4X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgo+ICpj b25uZWN0b3IpCj4gIAkJa2ZyZWUoZWRpZCk7Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gZHJtX2Rpc3Bs YXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLAo+ICsJcmV0 ID0gZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoJmNvbm5lY3Rvci0+c3RhdGljX2Rp c3BsYXlfaW5mbywKPiAgCQkJCQkgICAgICAgJmJ1c19mb3JtYXQsIDEpOwo+ICAJaWYgKHJldCkK PiAgCQlyZXR1cm4gcmV0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3Rj MzU4NzY3LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjcuYwo+IGluZGV4IDA4 YWI3ZDZhZWE2NS4uMDQyZGVkOWNhNzQ5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9i cmlkZ2UvdGMzNTg3NjcuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3Njcu Ywo+IEBAIC0xMTkzLDcgKzExOTMsNyBAQCBzdGF0aWMgaW50IHRjX2JyaWRnZV9hdHRhY2goc3Ry dWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAgCWlmICh0Yy0+cGFuZWwpCj4gIAkJZHJtX3BhbmVs X2F0dGFjaCh0Yy0+cGFuZWwsICZ0Yy0+Y29ubmVjdG9yKTsKPiAgCj4gLQlkcm1fZGlzcGxheV9p bmZvX3NldF9idXNfZm9ybWF0cygmdGMtPmNvbm5lY3Rvci5kaXNwbGF5X2luZm8sCj4gKwlkcm1f ZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cygmdGMtPmNvbm5lY3Rvci5zdGF0aWNfZGlzcGxh eV9pbmZvLAo+ICAJCQkJCSAmYnVzX2Zvcm1hdCwgMSk7Cj4gIAlkcm1fbW9kZV9jb25uZWN0b3Jf YXR0YWNoX2VuY29kZXIoJnRjLT5jb25uZWN0b3IsIHRjLT5icmlkZ2UuZW5jb2Rlcik7Cj4gIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9jb25uZWN0b3IuYwo+IGluZGV4IGIzY2RlODk3Y2Q4MC4uZDczZTk3ZWQ3ZGZm IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gQEAgLTIzNyw3ICsyMzcsNyBAQCBpbnQg ZHJtX2Nvbm5lY3Rvcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAltdXRleF9pbml0 KCZjb25uZWN0b3ItPm11dGV4KTsKPiAgCWNvbm5lY3Rvci0+ZWRpZF9ibG9iX3B0ciA9IE5VTEw7 Cj4gIAljb25uZWN0b3ItPnN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNfdW5rbm93bjsKPiAtCWNv bm5lY3Rvci0+ZGlzcGxheV9pbmZvLnBhbmVsX29yaWVudGF0aW9uID0KPiArCWNvbm5lY3Rvci0+ c3RhdGljX2Rpc3BsYXlfaW5mby5wYW5lbF9vcmllbnRhdGlvbiA9Cj4gIAkJRFJNX01PREVfUEFO RUxfT1JJRU5UQVRJT05fVU5LTk9XTjsKPiAgCj4gIAlkcm1fY29ubmVjdG9yX2dldF9jbWRsaW5l X21vZGUoY29ubmVjdG9yKTsKPiBAQCAtMzY2LDcgKzM2Niw3IEBAIHZvaWQgZHJtX2Nvbm5lY3Rv cl9jbGVhbnVwKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAlpZGFfc2ltcGxl X3JlbW92ZSgmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfaWRhLAo+ICAJCQkgIGNvbm5lY3Rv ci0+aW5kZXgpOwo+ICAKPiAtCWtmcmVlKGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mb3Jt YXRzKTsKPiArCWtmcmVlKGNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mby5idXNfZm9ybWF0 cyk7Cj4gIAlkcm1fbW9kZV9vYmplY3RfdW5yZWdpc3RlcihkZXYsICZjb25uZWN0b3ItPmJhc2Up Owo+ICAJa2ZyZWUoY29ubmVjdG9yLT5uYW1lKTsKPiAgCWNvbm5lY3Rvci0+bmFtZSA9IE5VTEw7 Cj4gQEAgLTY3NCw3ICs2NzQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1f bGlzdAo+IGRybV9saW5rX3N0YXR1c19lbnVtX2xpc3RbXSA9IHsKPiAgCj4gIC8qKgo+ICAgKiBk cm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cyAtIHNldCB0aGUgc3VwcG9ydGVkIGJ1cyBm b3JtYXRzCj4gLSAqIEBpbmZvOiBkaXNwbGF5IGluZm8gdG8gc3RvcmUgYnVzIGZvcm1hdHMgaW4K PiArICogQGluZm86IGZpeGVkIGRpc3BsYXkgaW5mbyB0byBzdG9yZSBidXMgZm9ybWF0cyBpbgo+ ICAgKiBAZm9ybWF0czogYXJyYXkgY29udGFpbmluZyB0aGUgc3VwcG9ydGVkIGJ1cyBmb3JtYXRz Cj4gICAqIEBudW1fZm9ybWF0czogdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBmbXRzIGFy cmF5Cj4gICAqCj4gQEAgLTY4Miw3ICs2ODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9w cm9wX2VudW1fbGlzdAo+IGRybV9saW5rX3N0YXR1c19lbnVtX2xpc3RbXSA9IHsKPiAgICogU2Vl IE1FRElBX0JVU19GTVRfKiBkZWZpbml0aW9ucyBpbiBpbmNsdWRlL3VhcGkvbGludXgvbWVkaWEt YnVzLWZvcm1hdC5oIGZvcgo+ICAgKiBhIGZ1bGwgbGlzdCBvZiBhdmFpbGFibGUgZm9ybWF0cy4K PiAgICovCj4gLWludCBkcm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cyhzdHJ1Y3QgZHJt X2Rpc3BsYXlfaW5mbyAqaW5mbywKPiAraW50IGRybV9kaXNwbGF5X2luZm9fc2V0X2J1c19mb3Jt YXRzKHN0cnVjdCBkcm1fc3RhdGljX2Rpc3BsYXlfaW5mbyAqaW5mbywKPiAgCQkJCSAgICAgY29u c3QgdTMyICpmb3JtYXRzLAo+ICAJCQkJICAgICB1bnNpZ25lZCBpbnQgbnVtX2Zvcm1hdHMpCj4g IHsKPiBAQCAtMTQ2MCw3ICsxNDYwLDcgQEAgaW50IGRybV9jb25uZWN0b3JfaW5pdF9wYW5lbF9v cmllbnRhdGlvbl9wcm9wZXJ0eSgKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is IGludCB3aWR0aCwgaW50IGhlaWdodCkKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNvbm5lY3Rvci0+ZGV2Owo+IC0Jc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmluZm8gPSAmY29u bmVjdG9yLT5kaXNwbGF5X2luZm87Cj4gKwlzdHJ1Y3QgZHJtX3N0YXRpY19kaXNwbGF5X2luZm8g KmluZm8gPSAmY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvOwo+ICAJc3RydWN0IGRybV9w cm9wZXJ0eSAqcHJvcDsKPiAgCWludCBvcmllbnRhdGlvbl9xdWlyazsKPiAgCj4gQEAgLTE2MDIs NyArMTYwMiw3IEBAIGludCBkcm1fbW9kZV9nZXRjb25uZWN0b3Ioc3RydWN0IGRybV9kZXZpY2UK PiAqZGV2LCB2b2lkICpkYXRhLAo+ICAKPiAgCW91dF9yZXNwLT5tbV93aWR0aCA9IGNvbm5lY3Rv ci0+ZGlzcGxheV9pbmZvLndpZHRoX21tOwo+ICAJb3V0X3Jlc3AtPm1tX2hlaWdodCA9IGNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbTsKPiAtCW91dF9yZXNwLT5zdWJwaXhlbCA9IGNv bm5lY3Rvci0+ZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyOwo+ICsJb3V0X3Jlc3AtPnN1YnBp eGVsID0gY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyOwo+ICAJ b3V0X3Jlc3AtPmNvbm5lY3Rpb24gPSBjb25uZWN0b3ItPnN0YXR1czsKPiAgCj4gIAkvKiBkZWxh eWVkIHNvIHdlIGdldCBtb2RlcyByZWdhcmRsZXNzIG9mIHByZS1maWxsX21vZGVzIHN0YXRlICov Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4gaW5kZXggMDM1Nzg0ZGRkMTMzLi4xOGNiNjNiMzBl MzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiBAQCAtMjQzMyw3ICsyNDMzLDcgQEAg c3RhdGljIHZvaWQgZHJtX3NldHVwX2NydGNfcm90YXRpb24oc3RydWN0Cj4gZHJtX2ZiX2hlbHBl ciAqZmJfaGVscGVyLAo+ICAKPiAgCWZiX2NydGMtPnJvdGF0aW9uID0gRFJNX01PREVfUk9UQVRF XzA7Cj4gIAo+IC0Jc3dpdGNoIChjb25uZWN0b3ItPmRpc3BsYXlfaW5mby5wYW5lbF9vcmllbnRh dGlvbikgewo+ICsJc3dpdGNoIChjb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8ucGFuZWxf b3JpZW50YXRpb24pIHsKPiAgCWNhc2UgRFJNX01PREVfUEFORUxfT1JJRU5UQVRJT05fQk9UVE9N X1VQOgo+ICAJCXJvdGF0aW9uID0gRFJNX01PREVfUk9UQVRFXzE4MDsKPiAgCQlicmVhazsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fY3J0Yy5jCj4g Yi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9jcnRjLmMKPiBpbmRleCAwZTM3 NTI0MzdlNDQuLjI0NDRjMTQ2MzllZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZnNs LWRjdS9mc2xfZGN1X2RybV9jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9m c2xfZGN1X2RybV9jcnRjLmMKPiBAQCAtOTksNyArOTksNyBAQCBzdGF0aWMgdm9pZCBmc2xfZGN1 X2RybV9jcnRjX21vZGVfc2V0X25vZmIoc3RydWN0Cj4gZHJtX2NydGMgKmNydGMpCj4gIAl2c3cg PSBtb2RlLT52c3luY19lbmQgLSBtb2RlLT52c3luY19zdGFydDsKPiAgCj4gIAkvKiBJTlZfUFhD SyBhcyBkZWZhdWx0IChtb3N0IGRpc3BsYXkgc2FtcGxlIGRhdGEgb24gcmlzaW5nIGVkZ2UpICov Cj4gLQlpZiAoIShjb24tPmRpc3BsYXlfaW5mby5idXNfZmxhZ3MgJiBEUk1fQlVTX0ZMQUdfUElY REFUQV9QT1NFREdFKSkKPiArCWlmICghKGNvbi0+c3RhdGljX2Rpc3BsYXlfaW5mby5idXNfZmxh Z3MgJiBEUk1fQlVTX0ZMQUdfUElYREFUQV9QT1NFREdFKSkKPiAgCQlwb2wgfD0gRENVX1NZTl9Q T0xfSU5WX1BYQ0s7Cj4gIAo+ICAJaWYgKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19OSFNZ TkMpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvY2R2X2ludGVsX2hkbWku Ywo+IGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9jZHZfaW50ZWxfaGRtaS5jCj4gaW5kZXggNTYz ZjE5M2ZjZmFjLi42ZDYwOGNlMjYwNzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2dt YTUwMC9jZHZfaW50ZWxfaGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9jZHZf aW50ZWxfaGRtaS5jCj4gQEAgLTMyMiw3ICszMjIsNyBAQCB2b2lkIGNkdl9oZG1pX2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCWRybV9lbmNvZGVyX2hlbHBlcl9hZGQoZW5jb2Rlciwg JmNkdl9oZG1pX2hlbHBlcl9mdW5jcyk7Cj4gIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29u bmVjdG9yLAo+ICAJCQkJICZjZHZfaGRtaV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKPiAtCWNv bm5lY3Rvci0+ZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFs UkdCOwo+ICsJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0g U3ViUGl4ZWxIb3Jpem9udGFsUkdCOwo+ICAJY29ubmVjdG9yLT5pbnRlcmxhY2VfYWxsb3dlZCA9 IGZhbHNlOwo+ICAJY29ubmVjdG9yLT5kb3VibGVzY2FuX2FsbG93ZWQgPSBmYWxzZTsKPiAgCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvY2R2X2ludGVsX2x2ZHMuYwo+IGIv ZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9jZHZfaW50ZWxfbHZkcy5jCj4gaW5kZXggZTY0OTYwZGIz MjI0Li4yOTAyMjFmNzNjYmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9j ZHZfaW50ZWxfbHZkcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9jZHZfaW50ZWxf bHZkcy5jCj4gQEAgLTYzNyw3ICs2MzcsNyBAQCB2b2lkIGNkdl9pbnRlbF9sdmRzX2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCWRybV9lbmNvZGVyX2hlbHBlcl9hZGQoZW5jb2Rlciwg JmNkdl9pbnRlbF9sdmRzX2hlbHBlcl9mdW5jcyk7Cj4gIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9h ZGQoY29ubmVjdG9yLAo+ICAJCQkJICZjZHZfaW50ZWxfbHZkc19jb25uZWN0b3JfaGVscGVyX2Z1 bmNzKTsKPiAtCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4 ZWxIb3Jpem9udGFsUkdCOwo+ICsJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBp eGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFsUkdCOwo+ICAJY29ubmVjdG9yLT5pbnRlcmxh Y2VfYWxsb3dlZCA9IGZhbHNlOwo+ICAJY29ubmVjdG9yLT5kb3VibGVzY2FuX2FsbG93ZWQgPSBm YWxzZTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvbWRmbGRfZHNp X291dHB1dC5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL21kZmxkX2RzaV9vdXRwdXQuYwo+ IGluZGV4IDQxZTdmMjViYTdlMC4uNjA1Yzg2ZGVkMTRmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9nbWE1MDAvbWRmbGRfZHNpX291dHB1dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2dtYTUwMC9tZGZsZF9kc2lfb3V0cHV0LmMKPiBAQCAtNTU1LDcgKzU1NSw3IEBAIHZvaWQgbWRm bGRfZHNpX291dHB1dF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkJCURSTV9N T0RFX0NPTk5FQ1RPUl9MVkRTKTsKPiAgCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0 b3IsICZtZGZsZF9kc2lfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Cj4gIAo+IC0JY29ubmVjdG9y LT5kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7Cj4g Kwljb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhl bEhvcml6b250YWxSR0I7Cj4gIAljb25uZWN0b3ItPmludGVybGFjZV9hbGxvd2VkID0gZmFsc2U7 Cj4gIAljb25uZWN0b3ItPmRvdWJsZXNjYW5fYWxsb3dlZCA9IGZhbHNlOwo+ICAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9vYWt0cmFpbF9oZG1pLmMKPiBiL2RyaXZlcnMv Z3B1L2RybS9nbWE1MDAvb2FrdHJhaWxfaGRtaS5jCj4gaW5kZXggOGIyZWIzMmVlOTg4Li5jNGUx NmFiMjVkMWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9vYWt0cmFpbF9o ZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2hkbWkuYwo+IEBA IC02NjEsNyArNjYxLDcgQEAgdm9pZCBvYWt0cmFpbF9oZG1pX2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiAgCWRybV9lbmNvZGVyX2hlbHBlcl9hZGQoZW5jb2RlciwgJm9ha3RyYWlsX2hk bWlfaGVscGVyX2Z1bmNzKTsKPiAgCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3Is ICZvYWt0cmFpbF9oZG1pX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwo+ICAKPiAtCWNvbm5lY3Rv ci0+ZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jpem9udGFsUkdCOwo+ ICsJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4 ZWxIb3Jpem9udGFsUkdCOwo+ICAJY29ubmVjdG9yLT5pbnRlcmxhY2VfYWxsb3dlZCA9IGZhbHNl Owo+ICAJY29ubmVjdG9yLT5kb3VibGVzY2FuX2FsbG93ZWQgPSBmYWxzZTsKPiAgCWRybV9jb25u ZWN0b3JfcmVnaXN0ZXIoY29ubmVjdG9yKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2dtYTUwMC9vYWt0cmFpbF9sdmRzLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvb2FrdHJh aWxfbHZkcy5jCj4gaW5kZXggZTY5NDNmZWYwNjExLi40YjhkMmI2ZTcyMDIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9vYWt0cmFpbF9sdmRzLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2x2ZHMuYwo+IEBAIC0zMzEsNyArMzMxLDcgQEAgdm9p ZCBvYWt0cmFpbF9sdmRzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCWRybV9lbmNv ZGVyX2hlbHBlcl9hZGQoZW5jb2RlciwgJm9ha3RyYWlsX2x2ZHNfaGVscGVyX2Z1bmNzKTsKPiAg CWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3IsCj4gIAkJCQkgJnBzYl9pbnRlbF9s dmRzX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwo+IC0JY29ubmVjdG9yLT5kaXNwbGF5X2luZm8u c3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7Cj4gKwljb25uZWN0b3ItPnN0 YXRpY19kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7 Cj4gIAljb25uZWN0b3ItPmludGVybGFjZV9hbGxvd2VkID0gZmFsc2U7Cj4gIAljb25uZWN0b3It PmRvdWJsZXNjYW5fYWxsb3dlZCA9IGZhbHNlOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxfbHZkcy5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAw L3BzYl9pbnRlbF9sdmRzLmMKPiBpbmRleCBiZTNlZWZlYzUxNTIuLmZlNDY2N2ViYTg1ZiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9sdmRzLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9sdmRzLmMKPiBAQCAtNzA2LDcgKzcw Niw3IEBAIHZvaWQgcHNiX2ludGVsX2x2ZHNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICAJZHJtX2VuY29kZXJfaGVscGVyX2FkZChlbmNvZGVyLCAmcHNiX2ludGVsX2x2ZHNfaGVscGVy X2Z1bmNzKTsKPiAgCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3IsCj4gIAkJCQkg JnBzYl9pbnRlbF9sdmRzX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwo+IC0JY29ubmVjdG9yLT5k aXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7Cj4gKwlj b25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhv cml6b250YWxSR0I7Cj4gIAljb25uZWN0b3ItPmludGVybGFjZV9hbGxvd2VkID0gZmFsc2U7Cj4g IAljb25uZWN0b3ItPmRvdWJsZXNjYW5fYWxsb3dlZCA9IGZhbHNlOwo+ICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxfc2R2by5jCj4gYi9kcml2ZXJzL2dw dS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9zZHZvLmMKPiBpbmRleCA4NDUwNzkxMmJlODQuLjNiMzFk ZGU0YzA1YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9z ZHZvLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9zZHZvLmMKPiBA QCAtMjAxNiw3ICsyMDE2LDcgQEAgcHNiX2ludGVsX3Nkdm9fY29ubmVjdG9yX2luaXQoc3RydWN0 Cj4gcHNiX2ludGVsX3Nkdm9fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAo+ICAJY29ubmVjdG9y LT5iYXNlLmJhc2UuaW50ZXJsYWNlX2FsbG93ZWQgPSAwOwo+ICAJY29ubmVjdG9yLT5iYXNlLmJh c2UuZG91Ymxlc2Nhbl9hbGxvd2VkID0gMDsKPiAtCWNvbm5lY3Rvci0+YmFzZS5iYXNlLmRpc3Bs YXlfaW5mby5zdWJwaXhlbF9vcmRlciA9IFN1YlBpeGVsSG9yaXpvbnRhbFJHQjsKPiArCWNvbm5l Y3Rvci0+YmFzZS5iYXNlLnN0YXRpY19kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPQo+IFN1 YlBpeGVsSG9yaXpvbnRhbFJHQjsKPiAgCj4gIAljb25uZWN0b3ItPmJhc2Uuc2F2ZSA9IHBzYl9p bnRlbF9zZHZvX3NhdmU7Cj4gIAljb25uZWN0b3ItPmJhc2UucmVzdG9yZSA9IHBzYl9pbnRlbF9z ZHZvX3Jlc3RvcmU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4IDMz ZmJmMzk2NTMwOS4uZWQzNmI0ZTZlNGFlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKPiBAQCAtMjk3Miw3ICsyOTcyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY29ubmVjdG9y X2luZm8oc3RydWN0IHNlcV9maWxlICptLAo+ICAJCQkgICBjb25uZWN0b3ItPmRpc3BsYXlfaW5m by53aWR0aF9tbSwKPiAgCQkJICAgY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tKTsK PiAgCQlzZXFfcHJpbnRmKG0sICJcdHN1YnBpeGVsIG9yZGVyOiAlc1xuIiwKPiAtCQkJICAgZHJt X2dldF9zdWJwaXhlbF9vcmRlcl9uYW1lKGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLnN1YnBpeGVs X29yZGVyKSk7Cj4gKwkJCSAgCj4gZHJtX2dldF9zdWJwaXhlbF9vcmRlcl9uYW1lKGNvbm5lY3Rv ci0+c3RhdGljX2Rpc3BsYXlfaW5mby5zdWJwaXhlbF9vcmRlcikpOwo+ICAJCXNlcV9wcmludGYo bSwgIlx0Q0VBIHJldjogJWRcbiIsCj4gIAkJCSAgIGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmNl YV9yZXYpOwo+ICAJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k c2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4gaW5kZXggYzhjZjNkNWM3 NzgzLi4zZWFmOWJiODQ5OGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHNpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+IEBAIC0x NzAyLDcgKzE3MDIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfYWRkX3Byb3BlcnRpZXMoc3Ry dWN0Cj4gaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAo+ICAJCWNvbm5lY3Rvci0+YmFz ZS5zdGF0ZS0+c2NhbGluZ19tb2RlID0gRFJNX01PREVfU0NBTEVfQVNQRUNUOwo+ICAKPiAtCQlj b25uZWN0b3ItPmJhc2UuZGlzcGxheV9pbmZvLnBhbmVsX29yaWVudGF0aW9uID0KPiArCQljb25u ZWN0b3ItPmJhc2Uuc3RhdGljX2Rpc3BsYXlfaW5mby5wYW5lbF9vcmllbnRhdGlvbiA9Cj4gIAkJ CWludGVsX2RzaV9nZXRfcGFuZWxfb3JpZW50YXRpb24oY29ubmVjdG9yKTsKPiAgCQlkcm1fY29u bmVjdG9yX2luaXRfcGFuZWxfb3JpZW50YXRpb25fcHJvcGVydHkoCj4gIAkJCQkmY29ubmVjdG9y LT5iYXNlLAo+IEBAIC0xODI2LDcgKzE4MjYsNyBAQCB2b2lkIGludGVsX2RzaV9pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCj4gIAlkcm1fY29ubmVjdG9yX2hlbHBl cl9hZGQoY29ubmVjdG9yLCAmaW50ZWxfZHNpX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwo+ICAK PiAtCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gU3ViUGl4ZWxIb3Jp em9udGFsUkdCOyAvKlhYWCovCj4gKwljb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uc3Vi cGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7IC8qWFhYKi8KPiAgCWNvbm5lY3Rv ci0+aW50ZXJsYWNlX2FsbG93ZWQgPSBmYWxzZTsKPiAgCWNvbm5lY3Rvci0+ZG91Ymxlc2Nhbl9h bGxvd2VkID0gZmFsc2U7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jCj4gaW5kZXggZWIw YzU1OWIyNzE1Li42OGZlNDU4NzQ0MWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHZvLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYwo+ IEBAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBpbnRlbF9kdm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAo+ICAJCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25u ZWN0b3IsCj4gIAkJCQkJICZpbnRlbF9kdm9fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Cj4gLQkJ Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250 YWxSR0I7Cj4gKwkJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVy ID0gU3ViUGl4ZWxIb3Jpem9udGFsUkdCOwo+ICAJCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93 ZWQgPSBmYWxzZTsKPiAgCQljb25uZWN0b3ItPmRvdWJsZXNjYW5fYWxsb3dlZCA9IGZhbHNlOwo+ ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKPiBpbmRleCBjZGFlNDkzNGI4ODUuLmMz NWY4NDY0MmM3OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRz LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKPiBAQCAtMTA1MCw3 ICsxMDUwLDcgQEAgdm9pZCBpbnRlbF9sdmRzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ICAJCWludGVsX2VuY29kZXItPmNydGNfbWFzayA9ICgxIDw8IDEpOwo+ICAK PiAgCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3IsICZpbnRlbF9sdmRzX2Nvbm5l Y3Rvcl9oZWxwZXJfZnVuY3MpOwo+IC0JY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uc3VicGl4ZWxf b3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7Cj4gKwljb25uZWN0b3ItPnN0YXRpY19kaXNw bGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7Cj4gIAljb25u ZWN0b3ItPmludGVybGFjZV9hbGxvd2VkID0gZmFsc2U7Cj4gIAljb25uZWN0b3ItPmRvdWJsZXNj YW5fYWxsb3dlZCA9IGZhbHNlOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfc2R2by5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMKPiBp bmRleCAwYzE0ZDFjMDRjYmQuLjYzMDlhMWQ5Zjg3ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zZHZvLmMKPiBAQCAtMjQ0MCw3ICsyNDQwLDcgQEAgaW50ZWxfc2R2b19jb25uZWN0b3JfaW5p dChzdHJ1Y3QKPiBpbnRlbF9zZHZvX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAKPiAgCWNvbm5l Y3Rvci0+YmFzZS5iYXNlLmludGVybGFjZV9hbGxvd2VkID0gMTsKPiAgCWNvbm5lY3Rvci0+YmFz ZS5iYXNlLmRvdWJsZXNjYW5fYWxsb3dlZCA9IDA7Cj4gLQljb25uZWN0b3ItPmJhc2UuYmFzZS5k aXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBTdWJQaXhlbEhvcml6b250YWxSR0I7Cj4gKwlj b25uZWN0b3ItPmJhc2UuYmFzZS5zdGF0aWNfZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0K PiBTdWJQaXhlbEhvcml6b250YWxSR0I7Cj4gIAljb25uZWN0b3ItPmJhc2UuZ2V0X2h3X3N0YXRl ID0gaW50ZWxfc2R2b19jb25uZWN0b3JfZ2V0X2h3X3N0YXRlOwo+ICAKPiAgCWludGVsX2Nvbm5l Y3Rvcl9hdHRhY2hfZW5jb2RlcigmY29ubmVjdG9yLT5iYXNlLCAmZW5jb2Rlci0+YmFzZSk7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jIGIvZHJpdmVycy9ncHUv ZHJtL2lteC9pbXgtbGRiLmMKPiBpbmRleCA1NmRkN2E5YThlMjUuLjQ5MDlmZTg5ZTE2NyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC1sZGIuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pbXgvaW14LWxkYi5jCj4gQEAgLTI5OSw3ICsyOTksNyBAQCBpbXhfbGRiX2VuY29k ZXJfYXRvbWljX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCj4gIAlp ZiAoIWJ1c19mb3JtYXQpIHsKPiAgCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0g Y29ubmVjdG9yX3N0YXRlLT5jb25uZWN0b3I7Cj4gLQkJc3RydWN0IGRybV9kaXNwbGF5X2luZm8g KmRpID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwo+ICsJCXN0cnVjdCBkcm1fc3RhdGljX2Rp c3BsYXlfaW5mbyAqZGkgPSAmY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvOwo+ICAKPiAg CQlpZiAoZGktPm51bV9idXNfZm9ybWF0cykKPiAgCQkJYnVzX2Zvcm1hdCA9IGRpLT5idXNfZm9y bWF0c1swXTsKPiBAQCAtMzU4LDcgKzM1OCw3IEBAIHN0YXRpYyBpbnQgaW14X2xkYl9lbmNvZGVy X2F0b21pY19jaGVjayhzdHJ1Y3QKPiBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgewo+ICAJc3Ry dWN0IGlteF9jcnRjX3N0YXRlICppbXhfY3J0Y19zdGF0ZSA9IHRvX2lteF9jcnRjX3N0YXRlKGNy dGNfc3RhdGUpOwo+ICAJc3RydWN0IGlteF9sZGJfY2hhbm5lbCAqaW14X2xkYl9jaCA9IGVuY190 b19pbXhfbGRiX2NoKGVuY29kZXIpOwo+IC0Jc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmRpID0g JmNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwo+ICsJc3RydWN0IGRybV9zdGF0 aWNfZGlzcGxheV9pbmZvICpkaSA9Cj4gJmNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+c3RhdGljX2Rp c3BsYXlfaW5mbzsKPiAgCXUzMiBidXNfZm9ybWF0ID0gaW14X2xkYl9jaC0+YnVzX2Zvcm1hdDsK PiAgCj4gIAkvKiBCdXMgZm9ybWF0IGRlc2NyaXB0aW9uIGluIERUIG92ZXJyaWRlcyBjb25uZWN0 b3IgZGlzcGxheSBpbmZvLiAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L3Bh cmFsbGVsLWRpc3BsYXkuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2lteC9wYXJhbGxlbC1kaXNwbGF5 LmMKPiBpbmRleCBhZWRlY2RhOTcyOGEuLjJhYTgwNDg0YTM5ZCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pbXgvcGFyYWxsZWwtZGlzcGxheS5jCj4gQEAgLTExOCw3ICsxMTgsNyBAQCBzdGF0aWMgaW50 IGlteF9wZF9lbmNvZGVyX2F0b21pY19jaGVjayhzdHJ1Y3QKPiBkcm1fZW5jb2RlciAqZW5jb2Rl ciwKPiAgCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkK PiAgewo+ICAJc3RydWN0IGlteF9jcnRjX3N0YXRlICppbXhfY3J0Y19zdGF0ZSA9IHRvX2lteF9j cnRjX3N0YXRlKGNydGNfc3RhdGUpOwo+IC0Jc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmRpID0g JmNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwo+ICsJc3RydWN0IGRybV9zdGF0 aWNfZGlzcGxheV9pbmZvICpkaSA9Cj4gJmNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+c3RhdGljX2Rp c3BsYXlfaW5mbzsKPiAgCXN0cnVjdCBpbXhfcGFyYWxsZWxfZGlzcGxheSAqaW14cGQgPSBlbmNf dG9faW14cGQoZW5jb2Rlcik7Cj4gIAo+ICAJaWYgKCFpbXhwZC0+YnVzX2Zvcm1hdCAmJiBkaS0+ bnVtX2J1c19mb3JtYXRzKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9t eHNmYl9jcnRjLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9jcnRjLmMKPiBpbmRl eCAwYWJlNzc2NzViNzYuLjA0MjkwMDYyODhkNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXhzZmIvbXhzZmJfY3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2Zi X2NydGMuYwo+IEBAIC0xMDEsOCArMTAxLDggQEAgc3RhdGljIHZvaWQgbXhzZmJfc2V0X2J1c19m bXQoc3RydWN0Cj4gbXhzZmJfZHJtX3ByaXZhdGUgKm14c2ZiKQo+ICAKPiAgCXJlZyA9IHJlYWRs KG14c2ZiLT5iYXNlICsgTENEQ19DVFJMKTsKPiAgCj4gLQlpZiAobXhzZmItPmNvbm5lY3Rvci5k aXNwbGF5X2luZm8ubnVtX2J1c19mb3JtYXRzKQo+IC0JCWJ1c19mb3JtYXQgPSBteHNmYi0+Y29u bmVjdG9yLmRpc3BsYXlfaW5mby5idXNfZm9ybWF0c1swXTsKPiArCWlmIChteHNmYi0+Y29ubmVj dG9yLnN0YXRpY19kaXNwbGF5X2luZm8ubnVtX2J1c19mb3JtYXRzKQo+ICsJCWJ1c19mb3JtYXQg PSBteHNmYi0+Y29ubmVjdG9yLnN0YXRpY19kaXNwbGF5X2luZm8uYnVzX2Zvcm1hdHNbMF07Cj4g IAo+ICAJcmVnICY9IH5DVFJMX0JVU19XSURUSF9NQVNLOwo+ICAJc3dpdGNoIChidXNfZm9ybWF0 KSB7Cj4gQEAgLTE5OSw3ICsxOTksNyBAQCBzdGF0aWMgaW50IG14c2ZiX3Jlc2V0X2Jsb2NrKHZv aWQgX19pb21lbSAqcmVzZXRfYWRkcikKPiAgc3RhdGljIHZvaWQgbXhzZmJfY3J0Y19tb2RlX3Nl dF9ub2ZiKHN0cnVjdCBteHNmYl9kcm1fcHJpdmF0ZSAqbXhzZmIpCj4gIHsKPiAgCXN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptID0gJm14c2ZiLT5waXBlLmNydGMuc3RhdGUtPmFkanVzdGVkX21v ZGU7Cj4gLQljb25zdCB1MzIgYnVzX2ZsYWdzID0gbXhzZmItPmNvbm5lY3Rvci5kaXNwbGF5X2lu Zm8uYnVzX2ZsYWdzOwo+ICsJY29uc3QgdTMyIGJ1c19mbGFncyA9IG14c2ZiLT5jb25uZWN0b3Iu c3RhdGljX2Rpc3BsYXlfaW5mby5idXNfZmxhZ3M7Cj4gIAl1MzIgdmRjdHJsMCwgdnN5bmNfcHVs c2VfbGVuLCBoc3luY19wdWxzZV9sZW47Cj4gIAlpbnQgZXJyOwo+ICAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWFybS12ZXJzYXRpbGUuYwo+IGIvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWFybS12ZXJzYXRpbGUuYwo+IGluZGV4IGI0MjhjNDY3ODEwNi4u MjU5NThiYzRjNWNhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1h cm0tdmVyc2F0aWxlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtYXJtLXZl cnNhdGlsZS5jCj4gQEAgLTI2OCw3ICsyNjgsNyBAQCBzdGF0aWMgaW50IHZlcnNhdGlsZV9wYW5l bF9nZXRfbW9kZXMoc3RydWN0Cj4gZHJtX3BhbmVsICpwYW5lbCkKPiAgCQlEUk1fRElTUExBWV9J TkZPX0xFTik7Cj4gIAljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IHZwYW5lbC0+ cGFuZWxfdHlwZS0+d2lkdGhfbW07Cj4gIAljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRf bW0gPSB2cGFuZWwtPnBhbmVsX3R5cGUtPmhlaWdodF9tbTsKPiAtCWNvbm5lY3Rvci0+ZGlzcGxh eV9pbmZvLmJ1c19mbGFncyA9IHZwYW5lbC0+cGFuZWxfdHlwZS0+YnVzX2ZsYWdzOwo+ICsJY29u bmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLmJ1c19mbGFncyA9IHZwYW5lbC0+cGFuZWxfdHlw ZS0+YnVzX2ZsYWdzOwo+ICAKPiAgCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwtPmRy bSwgJnZwYW5lbC0+cGFuZWxfdHlwZS0+bW9kZSk7Cj4gIAlkcm1fbW9kZV9zZXRfbmFtZShtb2Rl KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5 MzIyLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTMyMi5jCj4g aW5kZXggYjRlYzBlY2ZmODA3Li4xYmE4OTM5NDJhMmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5MzIyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYwo+IEBAIC00MTEsMTkgKzQxMSwxOSBAQCBz dGF0aWMgaW50IGlsaTkzMjJfaW5pdChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKPiBzdHJ1Y3Qg aWxpOTMyMiAqaWxpKQo+ICAJICovCj4gIAlpZiAoaWxpLT5jb25mLT5kY2xrX2FjdGl2ZV9oaWdo KSB7Cj4gIAkJcmVnID0gSUxJOTMyMl9QT0xfRENMSzsKPiAtCQljb25uZWN0b3ItPmRpc3BsYXlf aW5mby5idXNfZmxhZ3MgfD0KPiArCQljb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uYnVz X2ZsYWdzIHw9Cj4gIAkJCURSTV9CVVNfRkxBR19QSVhEQVRBX1BPU0VER0U7Cj4gIAl9IGVsc2Ug ewo+ICAJCXJlZyA9IDA7Cj4gLQkJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzIHw9 Cj4gKwkJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLmJ1c19mbGFncyB8PQo+ICAJCQlE Uk1fQlVTX0ZMQUdfUElYREFUQV9ORUdFREdFOwo+ICAJfQo+ICAJaWYgKGlsaS0+Y29uZi0+ZGVf YWN0aXZlX2hpZ2gpIHsKPiAgCQlyZWcgfD0gSUxJOTMyMl9QT0xfREU7Cj4gLQkJY29ubmVjdG9y LT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzIHw9Cj4gKwkJY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxh eV9pbmZvLmJ1c19mbGFncyB8PQo+ICAJCQlEUk1fQlVTX0ZMQUdfREVfSElHSDsKPiAgCX0gZWxz ZSB7Cj4gLQkJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzIHw9Cj4gKwkJY29ubmVj dG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLmJ1c19mbGFncyB8PQo+ICAJCQlEUk1fQlVTX0ZMQUdf REVfTE9XOwo+ICAJfQo+ICAJaWYgKGlsaS0+Y29uZi0+aHN5bmNfYWN0aXZlX2hpZ2gpCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1sdmRzLmMKPiBiL2RyaXZlcnMv Z3B1L2RybS9wYW5lbC9wYW5lbC1sdmRzLmMKPiBpbmRleCBiNWUzOTk0ZjBhYTguLmI1MjA5NTY2 NmJkYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtbHZkcy5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWx2ZHMuYwo+IEBAIC0xMjcsOSArMTI3 LDkgQEAgc3RhdGljIGludCBwYW5lbF9sdmRzX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKPiAgCj4gIAljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IGx2ZHMtPndp ZHRoOwo+ICAJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gbHZkcy0+aGVpZ2h0 Owo+IC0JZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoJmNvbm5lY3Rvci0+ZGlzcGxh eV9pbmZvLAo+ICsJZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoJmNvbm5lY3Rvci0+ c3RhdGljX2Rpc3BsYXlfaW5mbywKPiAgCQkJCQkgJmx2ZHMtPmJ1c19mb3JtYXQsIDEpOwo+IC0J Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzID0gbHZkcy0+ZGF0YV9taXJyb3IKPiAr CWNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mby5idXNfZmxhZ3MgPSBsdmRzLT5kYXRhX21p cnJvcgo+ICAJCQkJCSAgPyBEUk1fQlVTX0ZMQUdfREFUQV9MU0JfVE9fTVNCCj4gIAkJCQkJICA6 IERSTV9CVVNfRkxBR19EQVRBX01TQl9UT19MU0I7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvcGFuZWwtcmFzcGJlcnJ5cGktdG91Y2hzY3JlZW4uYwo+IGIvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL3BhbmVsLXJhc3BiZXJyeXBpLXRvdWNoc2NyZWVuLmMKPiBpbmRleCBk OTY0ZDQ1NGU0YWUuLjk1MjY0NjFjMGViMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvcGFuZWwtcmFzcGJlcnJ5cGktdG91Y2hzY3JlZW4uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1yYXNwYmVycnlwaS10b3VjaHNjcmVlbi5jCj4gQEAgLTM1Niw3ICsz NTYsNyBAQCBzdGF0aWMgaW50IHJwaV90b3VjaHNjcmVlbl9nZXRfbW9kZXMoc3RydWN0Cj4gZHJt X3BhbmVsICpwYW5lbCkKPiAgCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJwYyA9IDg7Cj4gIAlj b25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IDE1NDsKPiAgCWNvbm5lY3Rvci0+ZGlz cGxheV9pbmZvLmhlaWdodF9tbSA9IDg2Owo+IC0JZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zv cm1hdHMoJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLAo+ICsJZHJtX2Rpc3BsYXlfaW5mb19zZXRf YnVzX2Zvcm1hdHMoJmNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mbywKPiAgCQkJCQkgJmJ1 c19mb3JtYXQsIDEpOwo+ICAKPiAgCXJldHVybiBudW07Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9wYW5lbC9wYW5lbC1zZWlrby00M3d2ZjFnLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1zZWlrby00M3d2ZjFnLmMKPiBpbmRleCA3MWMwOWVkNDM2YWUuLmZmYTlkMWI2 Zjg2MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2Vpa28tNDN3 dmYxZy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNlaWtvLTQzd3ZmMWcu Ywo+IEBAIC0xMTUsOSArMTE1LDkgQEAgc3RhdGljIGludCBzZWlrb19wYW5lbF9nZXRfZml4ZWRf bW9kZXMoc3RydWN0Cj4gc2Vpa29fcGFuZWwgKnBhbmVsKQo+ICAJY29ubmVjdG9yLT5kaXNwbGF5 X2luZm8ud2lkdGhfbW0gPSBwYW5lbC0+ZGVzYy0+c2l6ZS53aWR0aDsKPiAgCWNvbm5lY3Rvci0+ ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9IHBhbmVsLT5kZXNjLT5zaXplLmhlaWdodDsKPiAgCWlm IChwYW5lbC0+ZGVzYy0+YnVzX2Zvcm1hdCkKPiAtCQlkcm1fZGlzcGxheV9pbmZvX3NldF9idXNf Zm9ybWF0cygmY29ubmVjdG9yLT5kaXNwbGF5X2luZm8sCj4gKwkJZHJtX2Rpc3BsYXlfaW5mb19z ZXRfYnVzX2Zvcm1hdHMoJmNvbm5lY3Rvci0+c3RhdGljX2Rpc3BsYXlfaW5mbywKPiAgCQkJCQkJ ICZwYW5lbC0+ZGVzYy0+YnVzX2Zvcm1hdCwgMSk7Cj4gLQljb25uZWN0b3ItPmRpc3BsYXlfaW5m by5idXNfZmxhZ3MgPSBwYW5lbC0+ZGVzYy0+YnVzX2ZsYWdzOwo+ICsJY29ubmVjdG9yLT5zdGF0 aWNfZGlzcGxheV9pbmZvLmJ1c19mbGFncyA9IHBhbmVsLT5kZXNjLT5idXNfZmxhZ3M7Cj4gIAo+ ICAJcmV0dXJuIG51bTsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtc2ltcGxlLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwo+ IGluZGV4IDU1OTE5ODRhMzkyYi4uYmEzZjg1YjczMzhmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1zaW1wbGUuYwo+IEBAIC0xNTIsOSArMTUyLDkgQEAgc3RhdGljIGludCBwYW5lbF9z aW1wbGVfZ2V0X2ZpeGVkX21vZGVzKHN0cnVjdAo+IHBhbmVsX3NpbXBsZSAqcGFuZWwpCj4gIAlj b25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0aF9tbSA9IHBhbmVsLT5kZXNjLT5zaXplLndpZHRo Owo+ICAJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gcGFuZWwtPmRlc2MtPnNp emUuaGVpZ2h0Owo+ICAJaWYgKHBhbmVsLT5kZXNjLT5idXNfZm9ybWF0KQo+IC0JCWRybV9kaXNw bGF5X2luZm9fc2V0X2J1c19mb3JtYXRzKCZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbywKPiArCQlk cm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cygmY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxh eV9pbmZvLAo+ICAJCQkJCQkgJnBhbmVsLT5kZXNjLT5idXNfZm9ybWF0LCAxKTsKPiAtCWNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mbGFncyA9IHBhbmVsLT5kZXNjLT5idXNfZmxhZ3M7Cj4g Kwljb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uYnVzX2ZsYWdzID0gcGFuZWwtPmRlc2Mt PmJ1c19mbGFnczsKPiAgCj4gIAlyZXR1cm4gbnVtOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9wbDExMS9wbDExMV9kaXNwbGF5LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9wbDEx MS9wbDExMV9kaXNwbGF5LmMKPiBpbmRleCA1YjgzNjhjNzY3MzQuLmFmZmQwNTBlZTQwOSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGwxMTEvcGwxMTFfZGlzcGxheS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3BsMTExL3BsMTExX2Rpc3BsYXkuYwo+IEBAIC0xNDgsMTAgKzE0OCwx MCBAQCBzdGF0aWMgdm9pZCBwbDExMV9kaXNwbGF5X2VuYWJsZShzdHJ1Y3QKPiBkcm1fc2ltcGxl X2Rpc3BsYXlfcGlwZSAqcGlwZSwKPiAgCQl0aW0yIHw9IFRJTTJfSVZTOwo+ICAKPiAgCWlmIChj b25uZWN0b3IpIHsKPiAtCQlpZiAoY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzICYg RFJNX0JVU19GTEFHX0RFX0xPVykKPiArCQlpZiAoY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9p bmZvLmJ1c19mbGFncyAmIERSTV9CVVNfRkxBR19ERV9MT1cpCj4gIAkJCXRpbTIgfD0gVElNMl9J T0U7Cj4gIAo+IC0JCWlmIChjb25uZWN0b3ItPmRpc3BsYXlfaW5mby5idXNfZmxhZ3MgJgo+ICsJ CWlmIChjb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uYnVzX2ZsYWdzICYKPiAgCQkgICAg RFJNX0JVU19GTEFHX1BJWERBVEFfTkVHRURHRSkKPiAgCQkJdGltMiB8PSBUSU0yX0lQQzsKPiAg CX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29ubmVjdG9y cy5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb25uZWN0b3JzLmMKPiBpbmRl eCAyZTJjYTNjNmI0N2QuLmM4YTBmODU2Zjg0ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9jb25uZWN0b3JzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9jb25uZWN0b3JzLmMKPiBAQCAtMjM2Myw3ICsyMzYzLDcgQEAgcmFkZW9uX2Fk ZF9hdG9tX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJfSBlbHNlCj4gIAkJ Y29ubmVjdG9yLT5wb2xsZWQgPSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEOwo+ICAKPiAtCWNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvLnN1YnBpeGVsX29yZGVyID0gc3VicGl4ZWxfb3JkZXI7Cj4gKwlj b25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBzdWJwaXhlbF9v cmRlcjsKPiAgCWRybV9jb25uZWN0b3JfcmVnaXN0ZXIoY29ubmVjdG9yKTsKPiAgCj4gIAlpZiAo aGFzX2F1eCkKPiBAQCAtMjUyNiw3ICsyNTI2LDcgQEAgcmFkZW9uX2FkZF9sZWdhY3lfY29ubmVj dG9yKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAl9IGVsc2UKPiAgCQljb25uZWN0b3ItPnBv bGxlZCA9IERSTV9DT05ORUNUT1JfUE9MTF9IUEQ7Cj4gIAo+IC0JY29ubmVjdG9yLT5kaXNwbGF5 X2luZm8uc3VicGl4ZWxfb3JkZXIgPSBzdWJwaXhlbF9vcmRlcjsKPiArCWNvbm5lY3Rvci0+c3Rh dGljX2Rpc3BsYXlfaW5mby5zdWJwaXhlbF9vcmRlciA9IHN1YnBpeGVsX29yZGVyOwo+ICAJZHJt X2Nvbm5lY3Rvcl9yZWdpc3Rlcihjb25uZWN0b3IpOwo+ICB9Cj4gIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2VuY29kZXIuYwo+IGIvZHJpdmVycy9ncHUv ZHJtL3JjYXItZHUvcmNhcl9kdV9lbmNvZGVyLmMKPiBpbmRleCBiYThkMjgwNGMxZDEuLjcyNzIz YTgwYjFlMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2Vu Y29kZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZW5jb2Rlci5j Cj4gQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgdm9pZCByY2FyX2R1X2VuY29kZXJfbW9kZV9z ZXQoc3RydWN0Cj4gZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgICAgIHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgcmNhcl9kdV9lbmNv ZGVyICpyZW5jID0gdG9fcmNhcl9lbmNvZGVyKGVuY29kZXIpOwo+IC0Jc3RydWN0IGRybV9kaXNw bGF5X2luZm8gKmluZm8gPSAmY29ubl9zdGF0ZS0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm87Cj4g KwlzdHJ1Y3QgZHJtX3N0YXRpY19kaXNwbGF5X2luZm8gKmluZm8gPQo+ICZjb25uX3N0YXRlLT5j b25uZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm87Cj4gIAllbnVtIHJjYXJfbHZkc19tb2RlIG1v ZGU7Cj4gIAo+ICAJcmNhcl9kdV9jcnRjX3JvdXRlX291dHB1dChjcnRjX3N0YXRlLT5jcnRjLCBy ZW5jLT5vdXRwdXQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlf dGNvbi5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfdGNvbi5jCj4gaW5kZXggMWQ3 MTRjMDZlYzlkLi5kMjBhODc2YmE0YzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1 bjRpL3N1bjRpX3Rjb24uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV90Y29u LmMKPiBAQCAtNTUsMTMgKzU1LDEzIEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgo+ICpz dW40aV90Y29uX2dldF9jb25uZWN0b3IoY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyICoKPiAgc3Rh dGljIGludCBzdW40aV90Y29uX2dldF9waXhlbF9kZXB0aChjb25zdCBzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIpCj4gIHsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4g LQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbzsKPiArCXN0cnVjdCBkcm1fc3RhdGljX2Rp c3BsYXlfaW5mbyAqaW5mbzsKPiAgCj4gIAljb25uZWN0b3IgPSBzdW40aV90Y29uX2dldF9jb25u ZWN0b3IoZW5jb2Rlcik7Cj4gIAlpZiAoIWNvbm5lY3RvcikKPiAgCQlyZXR1cm4gLUVJTlZBTDsK PiAgCj4gLQlpbmZvID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwo+ICsJaW5mbyA9ICZjb25u ZWN0b3ItPnN0YXRpY19kaXNwbGF5X2luZm87Cj4gIAlpZiAoaW5mby0+bnVtX2J1c19mb3JtYXRz ICE9IDEpCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdHZlMjAwL3R2ZTIwMF9kaXNwbGF5LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS90dmUyMDAv dHZlMjAwX2Rpc3BsYXkuYwo+IGluZGV4IGRiMzk3ZmNiMzQ1YS4uYWE4MDVlMmJjMGZlIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dmUyMDAvdHZlMjAwX2Rpc3BsYXkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS90dmUyMDAvdHZlMjAwX2Rpc3BsYXkuYwo+IEBAIC0xNDgsNyArMTQ4 LDcgQEAgc3RhdGljIHZvaWQgdHZlMjAwX2Rpc3BsYXlfZW5hYmxlKHN0cnVjdAo+IGRybV9zaW1w bGVfZGlzcGxheV9waXBlICpwaXBlLAo+ICAJLyogVnN5bmMgSVJRIGF0IHN0YXJ0IG9mIFZzeW5j IGF0IGZpcnN0ICovCj4gIAljdHJsMSB8PSBUVkUyMDBfVlNUU1RZUEVfVlNZTkM7Cj4gIAo+IC0J aWYgKGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mbGFncyAmIERSTV9CVVNfRkxBR19QSVhE QVRBX05FR0VER0UpCj4gKwlpZiAoY29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLmJ1c19m bGFncyAmIERSTV9CVVNfRkxBR19QSVhEQVRBX05FR0VER0UpCj4gIAkJY3RybDEgfD0gVFZFMjAw X0NUUkxfVFZDTEtQOwo+ICAKPiAgCWlmICgobW9kZS0+aGRpc3BsYXkgPT0gMzUyICYmIG1vZGUt PnZkaXNwbGF5ID09IDI0MCkgfHwgLyogU0lGKDUyNSkgKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3ZjNC92YzRfZHBpLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcGkuYwo+ IGluZGV4IDcyYzlkYmQ4MWQ3Zi4uYTc1N2EyNjcwMzUzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS92YzQvdmM0X2RwaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHBp LmMKPiBAQCAtMTcwLDggKzE3MCw4IEBAIHN0YXRpYyB2b2lkIHZjNF9kcGlfZW5jb2Rlcl9lbmFi bGUoc3RydWN0Cj4gZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gIAl1MzIgZHBpX2MgPSBEUElfRU5B QkxFIHwgRFBJX09VVFBVVF9FTkFCTEVfTU9ERTsKPiAgCWludCByZXQ7Cj4gIAo+IC0JaWYgKGRw aS0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8ubnVtX2J1c19mb3JtYXRzKSB7Cj4gLQkJdTMyIGJ1 c19mb3JtYXQgPSBkcGktPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mb3JtYXRzWzBdOwo+ ICsJaWYgKGRwaS0+Y29ubmVjdG9yLT5zdGF0aWNfZGlzcGxheV9pbmZvLm51bV9idXNfZm9ybWF0 cykgewo+ICsJCXUzMiBidXNfZm9ybWF0ID0gZHBpLT5jb25uZWN0b3ItPnN0YXRpY19kaXNwbGF5 X2luZm8uYnVzX2Zvcm1hdHNbMF07Cj4gIAo+ICAJCXN3aXRjaCAoYnVzX2Zvcm1hdCkgewo+ICAJ CWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDoKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gaW5kZXgg Njc1Y2MzZjhjZjg1Li5hYWQzMjU4ZmFjZjIgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJt X2Nvbm5lY3Rvci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gQEAgLTE3 Nyw3ICsxNzcsNyBAQCBlbnVtIGRybV9saW5rX3N0YXR1cyB7Cj4gIH07Cj4gIAo+ICAvKioKPiAt ICogZW51bSBkcm1fcGFuZWxfb3JpZW50YXRpb24gLSBwYW5lbF9vcmllbnRhdGlvbiBpbmZvIGZv ciAmZHJtX2Rpc3BsYXlfaW5mbwo+ICsgKiBlbnVtIGRybV9wYW5lbF9vcmllbnRhdGlvbiAtIHBh bmVsX29yaWVudGF0aW9uIGluZm8gZm9yCj4gJmRybV9zdGF0aWNfZGlzcGxheV9pbmZvCj4gICAq Cj4gICAqIFRoaXMgZW51bSBpcyB1c2VkIHRvIHRyYWNrIHRoZSAoTENEKSBwYW5lbCBvcmllbnRh dGlvbi4gVGhlcmUgYXJlIG5vCj4gICAqIHNlcGFyYXRlICNkZWZpbmVzIGZvciB0aGUgdWFwaSEK PiBAQCAtMjA2LDE0ICsyMDYsNjcgQEAgZW51bSBkcm1fcGFuZWxfb3JpZW50YXRpb24gewo+ICB9 Owo+ICAKPiAgLyoqCj4gLSAqIHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvIC0gcnVudGltZSBkYXRh IGFib3V0IHRoZSBjb25uZWN0ZWQgc2luawo+ICsgKiBzdHJ1Y3QgZHJtX3N0YXRpY19kaXNwbGF5 X2luZm8gLSBkYXRhIGFib3V0IHRoZSBjb25uZWN0ZWQgc2luawo+ICsgKgo+ICsgKiBTdGF0aWMg ZGF0YSAoYXMgaW4gbm90IHBhcnNlZCBmcm9tIEVESUQpIGFib3V0IHRoZSBjb25uZWN0ZWQgc2lu ay4KPiArICogVGhpcyB3aWxsIG5vdCBiZSByZXNldCBvbmNlIHNldCwgc28gZHJpdmVycyBjYW4g c2FmZWx5IHBvcHVsYXRlIHRoaXMKPiArICogYXQgY29ubmVjdG9yIGluaXQgdGltZS4gVGhleSBj YW4gYWxzbyBhZGp1c3QgaXQgZHluYW1pY2FsbHkgYXMgbG9uZwo+ICsgKiBhcyB0aGUgZG9uJ3Qg bGVhdmUgc3RhbGUgZ2FyYmFnZSBiZWhpbmQuCj4gKyAqLwo+ICtzdHJ1Y3QgZHJtX3N0YXRpY19k aXNwbGF5X2luZm8gewo+ICsJLyoqCj4gKwkgKiBAc3VicGl4ZWxfb3JkZXI6IFN1YnBpeGVsIG9y ZGVyIG9mIExDRCBwYW5lbHMuCj4gKwkgKi8KPiArCWVudW0gc3VicGl4ZWxfb3JkZXIgc3VicGl4 ZWxfb3JkZXI7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAcGFuZWxfb3JpZW50YXRpb246IFJlYWQgb25s eSBjb25uZWN0b3IgcHJvcGVydHkgZm9yIGJ1aWx0LWluIHBhbmVscywKPiArCSAqIGluZGljYXRp bmcgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBwYW5lbCB2cyB0aGUgZGV2aWNlJ3MgY2FzaW5nLgo+ ICsJICogZHJtX2Nvbm5lY3Rvcl9pbml0KCkgc2V0cyB0aGlzIHRvIERSTV9NT0RFX1BBTkVMX09S SUVOVEFUSU9OX1VOS05PV04uCj4gKwkgKiBXaGVuIG5vdCBVTktOT1dOIHRoaXMgZ2V0cyB1c2Vk IGJ5IHRoZSBkcm1fZmJfaGVscGVycyB0byByb3RhdGUgdGhlCj4gKwkgKiBmYiB0byBjb21wZW5z YXRlIGFuZCBnZXRzIGV4cG9ydGVkIGFzIHByb3AgdG8gdXNlcnNwYWNlLgo+ICsJICovCj4gKwlp bnQgcGFuZWxfb3JpZW50YXRpb247Cj4gKwo+ICsJLyoqCj4gKwkgKiBAYnVzX2Zvcm1hdHM6IFBp eGVsIGRhdGEgZm9ybWF0IG9uIHRoZSB3aXJlLCBzb21ld2hhdCByZWR1bmRhbnQgd2l0aAo+ICsJ ICogQGNvbG9yX2Zvcm1hdHMuIEFycmF5IG9mIHNpemUgQG51bV9idXNfZm9ybWF0cyBlbmNvZGVk IHVzaW5nCj4gKwkgKiBNRURJQV9CVVNfRk1UXF8gZGVmaW5lcyBzaGFyZWQgd2l0aCB2NGwgYW5k IG1lZGlhIGRyaXZlcnMuCj4gKwkgKi8KPiArCWNvbnN0IHUzMiAqYnVzX2Zvcm1hdHM7Cj4gKwkv KioKPiArCSAqIEBudW1fYnVzX2Zvcm1hdHM6IFNpemUgb2YgQGJ1c19mb3JtYXRzIGFycmF5Lgo+ ICsJICovCj4gKwl1bnNpZ25lZCBpbnQgbnVtX2J1c19mb3JtYXRzOwo+ICsKPiArI2RlZmluZSBE Uk1fQlVTX0ZMQUdfREVfTE9XCQkoMTw8MCkKPiArI2RlZmluZSBEUk1fQlVTX0ZMQUdfREVfSElH SAkJKDE8PDEpCj4gKy8qIGRyaXZlIGRhdGEgb24gcG9zLiBlZGdlICovCj4gKyNkZWZpbmUgRFJN X0JVU19GTEFHX1BJWERBVEFfUE9TRURHRQkoMTw8MikKPiArLyogZHJpdmUgZGF0YSBvbiBuZWcu IGVkZ2UgKi8KPiArI2RlZmluZSBEUk1fQlVTX0ZMQUdfUElYREFUQV9ORUdFREdFCSgxPDwzKQo+ ICsvKiBkYXRhIGlzIHRyYW5zbWl0dGVkIE1TQiB0byBMU0Igb24gdGhlIGJ1cyAqLwo+ICsjZGVm aW5lIERSTV9CVVNfRkxBR19EQVRBX01TQl9UT19MU0IJKDE8PDQpCj4gKy8qIGRhdGEgaXMgdHJh bnNtaXR0ZWQgTFNCIHRvIE1TQiBvbiB0aGUgYnVzICovCj4gKyNkZWZpbmUgRFJNX0JVU19GTEFH X0RBVEFfTFNCX1RPX01TQgkoMTw8NSkKPiArCj4gKwkvKioKPiArCSAqIEBidXNfZmxhZ3M6IEFk ZGl0aW9uYWwgaW5mb3JtYXRpb24gKGxpa2UgcGl4ZWwgc2lnbmFsIHBvbGFyaXR5KSBmb3IKPiAr CSAqIHRoZSBwaXhlbCBkYXRhIG9uIHRoZSBidXMsIHVzaW5nIERSTV9CVVNfRkxBR1NcXyBkZWZp bmVzLgo+ICsJICovCj4gKwl1MzIgYnVzX2ZsYWdzOwo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIHN0 cnVjdCBkcm1fZGlzcGxheV9pbmZvIC0gRHluYW1pYyBkYXRhIGFib3V0IHRoZSBjb25uZWN0ZWQg c2luawo+ICAgKgo+ICAgKiBEZXNjcmliZXMgYSBnaXZlbiBkaXNwbGF5IChlLmcuIENSVCBvciBm bGF0IHBhbmVsKSBhbmQgaXRzIGxpbWl0YXRpb25zLiBGb3IKPiAgICogZml4ZWQgZGlzcGxheSBz aW5rcyBsaWtlIGJ1aWx0LWluIHBhbmVscyB0aGVyZSdzIG5vdCBtdWNoIGRpZmZlcmVuY2UgYmV0 d2Vlbgo+ICAgKiB0aGlzIGFuZCAmc3RydWN0IGRybV9jb25uZWN0b3IuIEJ1dCBmb3Igc2lua3Mg d2l0aCBhIHJlYWwgY2FibGUgdGhpcwo+ICAgKiBzdHJ1Y3R1cmUgaXMgbWVhbnQgdG8gZGVzY3Jp YmUgYWxsIHRoZSB0aGluZ3MgYXQgdGhlIG90aGVyIGVuZCBvZiB0aGUgY2FibGUuCj4gICAqCj4g LSAqIEZvciBzaW5rcyB3aGljaCBwcm92aWRlIGFuIEVESUQgdGhpcyBjYW4gYmUgZmlsbGVkIG91 dCBieSBjYWxsaW5nCj4gKyAqIFRoaXMgc2hvdWxkIGJlIGZpbGxlZCBvdXQgYnkgdGhlIGNvbm5l Y3RvciAuZmlsbF9tb2RlcygpLy5nZXRfbW9kZXMoKQo+ICsgKiBob29rcy4gRm9yIHNpbmtzIHdo aWNoIHByb3ZpZGUgYW4gRURJRCB0aGlzIGNhbiBiZSBmaWxsZWQgb3V0IGJ5IGNhbGxpbmcKPiAg ICogZHJtX2FkZF9lZGlkX21vZGVzKCkuCj4gICAqLwo+ICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5m byB7Cj4gQEAgLTIyNSw3ICsyNzgsNyBAQCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyB7Cj4gIAkv KioKPiAgCSAqIEB3aWR0aF9tbTogUGh5c2ljYWwgd2lkdGggaW4gbW0uCj4gIAkgKi8KPiAtICAg ICAgICB1bnNpZ25lZCBpbnQgd2lkdGhfbW07Cj4gKwl1bnNpZ25lZCBpbnQgd2lkdGhfbW07Cj4g IAkvKioKPiAgCSAqIEBoZWlnaHRfbW06IFBoeXNpY2FsIGhlaWdodCBpbiBtbS4KPiAgCSAqLwo+ IEBAIC0yNDIsMjYgKzI5NSwxMiBAQCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyB7Cj4gIAkgKi8K PiAgCXVuc2lnbmVkIGludCBicGM7Cj4gIAo+IC0JLyoqCj4gLQkgKiBAc3VicGl4ZWxfb3JkZXI6 IFN1YnBpeGVsIG9yZGVyIG9mIExDRCBwYW5lbHMuCj4gLQkgKi8KPiAtCWVudW0gc3VicGl4ZWxf b3JkZXIgc3VicGl4ZWxfb3JkZXI7Cj4gLQo+ICAjZGVmaW5lIERSTV9DT0xPUl9GT1JNQVRfUkdC NDQ0CQkoMTw8MCkKPiAgI2RlZmluZSBEUk1fQ09MT1JfRk9STUFUX1lDUkNCNDQ0CSgxPDwxKQo+ ICAjZGVmaW5lIERSTV9DT0xPUl9GT1JNQVRfWUNSQ0I0MjIJKDE8PDIpCj4gICNkZWZpbmUgRFJN X0NPTE9SX0ZPUk1BVF9ZQ1JDQjQyMAkoMTw8MykKPiAgCj4gIAkvKioKPiAtCSAqIEBwYW5lbF9v cmllbnRhdGlvbjogUmVhZCBvbmx5IGNvbm5lY3RvciBwcm9wZXJ0eSBmb3IgYnVpbHQtaW4gcGFu ZWxzLAo+IC0JICogaW5kaWNhdGluZyB0aGUgb3JpZW50YXRpb24gb2YgdGhlIHBhbmVsIHZzIHRo ZSBkZXZpY2UncyBjYXNpbmcuCj4gLQkgKiBkcm1fY29ubmVjdG9yX2luaXQoKSBzZXRzIHRoaXMg dG8gRFJNX01PREVfUEFORUxfT1JJRU5UQVRJT05fVU5LTk9XTi4KPiAtCSAqIFdoZW4gbm90IFVO S05PV04gdGhpcyBnZXRzIHVzZWQgYnkgdGhlIGRybV9mYl9oZWxwZXJzIHRvIHJvdGF0ZSB0aGUK PiAtCSAqIGZiIHRvIGNvbXBlbnNhdGUgYW5kIGdldHMgZXhwb3J0ZWQgYXMgcHJvcCB0byB1c2Vy c3BhY2UuCj4gLQkgKi8KPiAtCWludCBwYW5lbF9vcmllbnRhdGlvbjsKPiAtCj4gLQkvKioKPiAg CSAqIEBjb2xvcl9mb3JtYXRzOiBIRE1JIENvbG9yIGZvcm1hdHMsIHNlbGVjdHMgYmV0d2VlbiBS R0IgYW5kIFlDckNiCj4gIAkgKiBtb2Rlcy4gVXNlZCBEUk1fQ09MT1JfRk9STUFUXF8gZGVmaW5l cywgd2hpY2ggYXJlIF9ub3RfIHRoZSBzYW1lIG9uZXMKPiAgCSAqIGFzIHVzZWQgdG8gZGVzY3Jp YmUgdGhlIHBpeGVsIGZvcm1hdCBpbiBmcmFtZWJ1ZmZlcnMsIGFuZCBhbHNvIGRvbid0Cj4gQEAg LTI3MCwzNCArMzA5LDYgQEAgc3RydWN0IGRybV9kaXNwbGF5X2luZm8gewo+ICAJdTMyIGNvbG9y X2Zvcm1hdHM7Cj4gIAo+ICAJLyoqCj4gLQkgKiBAYnVzX2Zvcm1hdHM6IFBpeGVsIGRhdGEgZm9y bWF0IG9uIHRoZSB3aXJlLCBzb21ld2hhdCByZWR1bmRhbnQgd2l0aAo+IC0JICogQGNvbG9yX2Zv cm1hdHMuIEFycmF5IG9mIHNpemUgQG51bV9idXNfZm9ybWF0cyBlbmNvZGVkIHVzaW5nCj4gLQkg KiBNRURJQV9CVVNfRk1UXF8gZGVmaW5lcyBzaGFyZWQgd2l0aCB2NGwgYW5kIG1lZGlhIGRyaXZl cnMuCj4gLQkgKi8KPiAtCWNvbnN0IHUzMiAqYnVzX2Zvcm1hdHM7Cj4gLQkvKioKPiAtCSAqIEBu dW1fYnVzX2Zvcm1hdHM6IFNpemUgb2YgQGJ1c19mb3JtYXRzIGFycmF5Lgo+IC0JICovCj4gLQl1 bnNpZ25lZCBpbnQgbnVtX2J1c19mb3JtYXRzOwo+IC0KPiAtI2RlZmluZSBEUk1fQlVTX0ZMQUdf REVfTE9XCQkoMTw8MCkKPiAtI2RlZmluZSBEUk1fQlVTX0ZMQUdfREVfSElHSAkJKDE8PDEpCj4g LS8qIGRyaXZlIGRhdGEgb24gcG9zLiBlZGdlICovCj4gLSNkZWZpbmUgRFJNX0JVU19GTEFHX1BJ WERBVEFfUE9TRURHRQkoMTw8MikKPiAtLyogZHJpdmUgZGF0YSBvbiBuZWcuIGVkZ2UgKi8KPiAt I2RlZmluZSBEUk1fQlVTX0ZMQUdfUElYREFUQV9ORUdFREdFCSgxPDwzKQo+IC0vKiBkYXRhIGlz IHRyYW5zbWl0dGVkIE1TQiB0byBMU0Igb24gdGhlIGJ1cyAqLwo+IC0jZGVmaW5lIERSTV9CVVNf RkxBR19EQVRBX01TQl9UT19MU0IJKDE8PDQpCj4gLS8qIGRhdGEgaXMgdHJhbnNtaXR0ZWQgTFNC IHRvIE1TQiBvbiB0aGUgYnVzICovCj4gLSNkZWZpbmUgRFJNX0JVU19GTEFHX0RBVEFfTFNCX1RP X01TQgkoMTw8NSkKPiAtCj4gLQkvKioKPiAtCSAqIEBidXNfZmxhZ3M6IEFkZGl0aW9uYWwgaW5m b3JtYXRpb24gKGxpa2UgcGl4ZWwgc2lnbmFsIHBvbGFyaXR5KSBmb3IKPiAtCSAqIHRoZSBwaXhl bCBkYXRhIG9uIHRoZSBidXMsIHVzaW5nIERSTV9CVVNfRkxBR1NcXyBkZWZpbmVzLgo+IC0JICov Cj4gLQl1MzIgYnVzX2ZsYWdzOwo+IC0KPiAtCS8qKgo+ICAJICogQG1heF90bWRzX2Nsb2NrOiBN YXhpbXVtIFRNRFMgY2xvY2sgcmF0ZSBzdXBwb3J0ZWQgYnkgdGhlCj4gIAkgKiBzaW5rIGluIGtI ei4gMCBtZWFucyB1bmRlZmluZWQuCj4gIAkgKi8KPiBAQCAtMzM1LDcgKzM0Niw3IEBAIHN0cnVj dCBkcm1fZGlzcGxheV9pbmZvIHsKPiAgCWJvb2wgbm9uX2Rlc2t0b3A7Cj4gIH07Cj4gIAo+IC1p bnQgZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoc3RydWN0IGRybV9kaXNwbGF5X2lu Zm8gKmluZm8sCj4gK2ludCBkcm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cyhzdHJ1Y3Qg ZHJtX3N0YXRpY19kaXNwbGF5X2luZm8gKmluZm8sCj4gIAkJCQkgICAgIGNvbnN0IHUzMiAqZm9y bWF0cywKPiAgCQkJCSAgICAgdW5zaWduZWQgaW50IG51bV9mb3JtYXRzKTsKPiAgCj4gQEAgLTg1 MSwxNSArODYyLDIzIEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yIHsKPiAgCXN0cnVjdCBsaXN0X2hl YWQgcHJvYmVkX21vZGVzOwo+ICAKPiAgCS8qKgo+IC0JICogQGRpc3BsYXlfaW5mbzogRGlzcGxh eSBpbmZvcm1hdGlvbiBpcyBmaWxsZWQgZnJvbSBFRElEIGluZm9ybWF0aW9uCj4gLQkgKiB3aGVu IGEgZGlzcGxheSBpcyBkZXRlY3RlZC4gRm9yIG5vbiBob3QtcGx1Z2dhYmxlIGRpc3BsYXlzIHN1 Y2ggYXMKPiAtCSAqIGZsYXQgcGFuZWxzIGluIGVtYmVkZGVkIHN5c3RlbXMsIHRoZSBkcml2ZXIg c2hvdWxkIGluaXRpYWxpemUgdGhlCj4gLQkgKiAmZHJtX2Rpc3BsYXlfaW5mby53aWR0aF9tbSBh bmQgJmRybV9kaXNwbGF5X2luZm8uaGVpZ2h0X21tIGZpZWxkcwo+IC0JICogd2l0aCB0aGUgcGh5 c2ljYWwgc2l6ZSBvZiB0aGUgZGlzcGxheS4KPiArCSAqIEBzdGF0aWNfZGlzcGxheV9pbmZvOiBE aXNwbGF5IGluZm9ybWF0aW9uIGlzIGZpbGxlZCBieSB0aGUgZHJpdmVyCj4gKwkgKgo+ICsJICog UHJvdGVjdGVkIGJ5ICZkcm1fbW9kZV9jb25maWcubXV0ZXguCj4gKwkgKi8KPiArCXN0cnVjdCBk cm1fc3RhdGljX2Rpc3BsYXlfaW5mbyBzdGF0aWNfZGlzcGxheV9pbmZvOwo+ICsJLyoqCj4gKwkg KiBAZGlzcGxheV9pbmZvOiBEeW5hbWljIGRpc3BsYXkgaW5mb3JtYXRpb24gaXMgZmlsbGVkIGZy b20gRURJRAo+ICsJICogaW5mb3JtYXRpb24gd2hlbiBhIGRpc3BsYXkgaXMgZGV0ZWN0ZWQuIEZv ciBub24gaG90LXBsdWdnYWJsZQo+ICsJICogZGlzcGxheXMgc3VjaCBhcyBmbGF0IHBhbmVscyBp biBlbWJlZGRlZCBzeXN0ZW1zLCB0aGUgZHJpdmVyCj4gKwkgKiBzaG91bGQgaW5pdGlhbGl6ZSB0 aGUgJmRybV9kaXNwbGF5X2luZm8ud2lkdGhfbW0gYW5kCj4gKwkgKiAmZHJtX2Rpc3BsYXlfaW5m by5oZWlnaHRfbW0gZmllbGRzIHdpdGggdGhlIHBoeXNpY2FsIHNpemUgb2YKPiArCSAqIHRoZSBk aXNwbGF5Lgo+ICAJICoKPiAgCSAqIFByb3RlY3RlZCBieSAmZHJtX21vZGVfY29uZmlnLm11dGV4 Lgo+ICAJICovCj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyBkaXNwbGF5X2luZm87Cj4gKwo+ ICAJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgKmZ1bmNzOwo+ICAKPiAgCXN0cnVj dCBkcm1fcHJvcGVydHlfYmxvYiAqZWRpZF9ibG9iX3B0cjsKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==