From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3 1/8] drm/modes: Introduce drm_mode_match() Date: Wed, 17 Jan 2018 17:21:48 +0200 Message-ID: <20180117152148.GK10981@intel.com> References: <1515738096-16892-1-git-send-email-ankit.k.nautiyal@intel.com> <1515738096-16892-2-git-send-email-ankit.k.nautiyal@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id EB2F789388 for ; Wed, 17 Jan 2018 15:21:51 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Sharma, Shashank" Cc: "Nautiyal, Ankit K" , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBKYW4gMTcsIDIwMTggYXQgMDI6MTE6NTVQTSArMDUzMCwgU2hhcm1hLCBTaGFzaGFu ayB3cm90ZToKPiAKPiAKPiBPbiAxLzEyLzIwMTggMTE6NTEgQU0sIE5hdXRpeWFsLCBBbmtpdCBL IHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KPiA+Cj4gPiBNYWtlIG1vZGUgbWF0Y2hpbmcgbGVzcyBjb25mdXNpbmcgYnkgYWxs b3dpbmcgdGhlIGNhbGxlciB0byBzcGVjaWZ5Cj4gPiB3aGljaCBwYXJ0cyBvZiB0aGUgbW9kZXMg c2hvdWxkIG1hdGNoIHZpYSBzb21lIGZsYWdzLgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxl IFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICAg ZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jIHwgMTM0ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tCj4gPiAgIGluY2x1ZGUvZHJtL2RybV9tb2Rlcy5oICAgICB8 ICAgOSArKysKPiA+ICAgMiBmaWxlcyBjaGFuZ2VkLCAxMTIgaW5zZXJ0aW9ucygrKSwgMzEgZGVs ZXRpb25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYwo+ID4gaW5kZXggNGEzZjY4YS4uODEyOGRi YiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYwo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jCj4gPiBAQCAtOTQwLDE3ICs5NDAsNjggQEAgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmRybV9tb2RlX2R1cGxpY2F0ZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ID4gICB9Cj4gPiAgIEVYUE9SVF9TWU1CT0woZHJtX21vZGVfZHVwbGljYXRlKTsK PiA+ICAgCj4gPiArc3RhdGljIGJvb2wgZHJtX21vZGVfbWF0Y2hfdGltaW5ncyhjb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTEsCj4gPiArCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlMikKPiBTaG91bGRuJ3QgdGhlIHNlY29uZCBwYXJhbWV0ZXIgYmUg YWxpZ25lZCB0byBuZXh0IGNoYXIgYWZ0ZXIgdGhlIG9wZW5pbmcgCj4gYnJhY2tldCBpbiBhYm92 ZSBsaW5lIChpbnN0ZWFkIG9mIGJlaW5nIGFsaWduIHRvIHRoZSBicmFja2V0KSA/CgpJdCBpcy4g VGhlIGV4dHJhIGp1bmsgYXQgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lIGlzIGNhdXNpbmcgdGhlIGFs aWdubWVudAp0byBsb29rIHdyb25nIHdoZW4gaXQncyBub3QgYmVjYXVzZSB0aGUgdGFiIHN0b3Bz IGFyZSBzdGlsbCBhbGlnbmVkIHRvCnRoZSBzdGFydCBvZiB0aGUgbGluZS4gVGhpcyBpcyBvbmUg cmVhc29uIHdoeSBJIHRoaW5rIHRoYXQgdXNpbmcgdGFicwpmb3IgYWxpZ25tZW50IGlzbid0IGEg cGFydGljdWxhcmx5IGdyZWF0IGlkZWEuCgo+IEkgaGF2ZSB0aGlzIHNhbWUgY29tbWVudCBmb3Ig bW9zdCBvZiB0aGUgZnVuY3Rpb25zIGluIHRoaXMgcGF0Y2guCj4gPiArewo+ID4gKwlyZXR1cm4g bW9kZTEtPmhkaXNwbGF5ID09IG1vZGUyLT5oZGlzcGxheSAmJgo+ID4gKwkJbW9kZTEtPmhzeW5j X3N0YXJ0ID09IG1vZGUyLT5oc3luY19zdGFydCAmJgo+ID4gKwkJbW9kZTEtPmhzeW5jX2VuZCA9 PSBtb2RlMi0+aHN5bmNfZW5kICYmCj4gPiArCQltb2RlMS0+aHRvdGFsID09IG1vZGUyLT5odG90 YWwgJiYKPiA+ICsJCW1vZGUxLT5oc2tldyA9PSBtb2RlMi0+aHNrZXcgJiYKPiA+ICsJCW1vZGUx LT52ZGlzcGxheSA9PSBtb2RlMi0+dmRpc3BsYXkgJiYKPiA+ICsJCW1vZGUxLT52c3luY19zdGFy dCA9PSBtb2RlMi0+dnN5bmNfc3RhcnQgJiYKPiA+ICsJCW1vZGUxLT52c3luY19lbmQgPT0gbW9k ZTItPnZzeW5jX2VuZCAmJgo+ID4gKwkJbW9kZTEtPnZ0b3RhbCA9PSBtb2RlMi0+dnRvdGFsICYm Cj4gPiArCQltb2RlMS0+dnNjYW4gPT0gbW9kZTItPnZzY2FuOwo+ID4gK30KPiA+ICsKPiA+ICtz dGF0aWMgYm9vbCBkcm1fbW9kZV9tYXRjaF9jbG9jayhjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZTEsCj4gPiArCQkJCSAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGUyKQo+ID4gK3sKPiA+ICsJLyoKPiA+ICsJICogZG8gY2xvY2sgY2hlY2sgY29udmVydCB0byBQ SUNPUwo+ID4gKwkgKiBzbyBmYiBtb2RlcyBnZXQgbWF0Y2hlZCB0aGUgc2FtZQo+ID4gKwkgKi8K PiA+ICsJaWYgKG1vZGUxLT5jbG9jayAmJiBtb2RlMi0+Y2xvY2spCj4gPiArCQlyZXR1cm4gS0ha MlBJQ09TKG1vZGUxLT5jbG9jaykgPT0gS0haMlBJQ09TKG1vZGUyLT5jbG9jayk7Cj4gPiArCWVs c2UKPiA+ICsJCXJldHVybiBtb2RlMS0+Y2xvY2sgPT0gbW9kZTItPmNsb2NrOwo+ID4gK30KPiA+ ICsKPiA+ICtzdGF0aWMgYm9vbCBkcm1fbW9kZV9tYXRjaF9mbGFncyhjb25zdCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZTEsCj4gU2hvdWxkIHdlIGNhbGwgaXQgZHJtX21vZGVfbWF0Y2hf ZmxhZ19ub19zdGVyZW8gPwoKSXQncyBub3QgcmVhbGx5ICJubyBzdGVyZW8iLCByYXRoZXIgaXQn cyAiY2hlY2sgYWxsIHRoZSBmbGFncyBub3QgYmVpbmcKY2hlY2tlZCBieSBzb21ldGhpbmcgbW9y ZSBzcGVjaWZpYyIuCgo+ID4gKwkJCQkgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGUyKQo+ID4gK3sKPiA+ICsJcmV0dXJuIChtb2RlMS0+ZmxhZ3MgJiB+RFJNX01PREVfRkxBR18z RF9NQVNLKSA9PQo+ID4gKwkJKG1vZGUyLT5mbGFncyAmIH5EUk1fTU9ERV9GTEFHXzNEX01BU0sp Owo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgYm9vbCBkcm1fbW9kZV9tYXRjaF8zZF9mbGFncyhj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTEsCj4gPiArCQkJCSAgICBjb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTIpCj4gPiArewo+ID4gKwlyZXR1cm4gKG1vZGUx LT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfM0RfTUFTSykgPT0KPiA+ICsJCShtb2RlMi0+ZmxhZ3Mg JiBEUk1fTU9ERV9GTEFHXzNEX01BU0spOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgYm9vbCBk cm1fbW9kZV9tYXRjaF9hc3BlY3RfcmF0aW8oY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGUxLAo+ID4gKwkJCQkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUyKQo+ ID4gK3sKPiA+ICsJcmV0dXJuIG1vZGUxLT5waWN0dXJlX2FzcGVjdF9yYXRpbyA9PSBtb2RlMi0+ cGljdHVyZV9hc3BlY3RfcmF0aW87Cj4gPiArfQo+ID4gKwo+ID4gICAvKioKPiA+IC0gKiBkcm1f bW9kZV9lcXVhbCAtIHRlc3QgbW9kZXMgZm9yIGVxdWFsaXR5Cj4gPiArICogZHJtX21vZGVfbWF0 Y2ggLSB0ZXN0IG1vZGVzIGZvciAocGFydGlhbCkgZXF1YWxpdHkKPiA+ICAgICogQG1vZGUxOiBm aXJzdCBtb2RlCj4gPiAgICAqIEBtb2RlMjogc2Vjb25kIG1vZGUKPiA+ICsgKiBAbWF0Y2hfZmxh Z3M6IHdoaWNoIHBhcnRzIG5lZWQgdG8gbWF0Y2ggKERSTV9NT0RFX01BVENIXyopCj4gPiAgICAq Cj4gPiAgICAqIENoZWNrIHRvIHNlZSBpZiBAbW9kZTEgYW5kIEBtb2RlMiBhcmUgZXF1aXZhbGVu dC4KPiA+ICAgICoKPiA+ICAgICogUmV0dXJuczoKPiA+IC0gKiBUcnVlIGlmIHRoZSBtb2RlcyBh cmUgZXF1YWwsIGZhbHNlIG90aGVyd2lzZS4KPiA+ICsgKiBUcnVlIGlmIHRoZSBtb2RlcyBhcmUg KHBhcnRpYWxseSkgZXF1YWwsIGZhbHNlIG90aGVyd2lzZS4KPiA+ICAgICovCj4gPiAtYm9vbCBk cm1fbW9kZV9lcXVhbChjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTEsIGNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlMikKPiA+ICtib29sIGRybV9tb2RlX21hdGNo KGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlMSwKPiA+ICsJCSAgICBjb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTIsCj4gPiArCQkgICAgdW5zaWduZWQgaW50IG1h dGNoX2ZsYWdzKQo+ID4gICB7Cj4gPiAgIAlpZiAoIW1vZGUxICYmICFtb2RlMikKPiA+ICAgCQly ZXR1cm4gdHJ1ZTsKPiA+IEBAIC05NTgsMTUgKzEwMDksNDggQEAgYm9vbCBkcm1fbW9kZV9lcXVh bChjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTEsIGNvbnN0IHN0cnVjdCBkcm1f ZGlzcGwKPiA+ICAgCWlmICghbW9kZTEgfHwgIW1vZGUyKQo+ID4gICAJCXJldHVybiBmYWxzZTsK PiA+ICAgCj4gPiAtCS8qIGRvIGNsb2NrIGNoZWNrIGNvbnZlcnQgdG8gUElDT1Mgc28gZmIgbW9k ZXMgZ2V0IG1hdGNoZWQKPiA+IC0JICogdGhlIHNhbWUgKi8KPiA+IC0JaWYgKG1vZGUxLT5jbG9j ayAmJiBtb2RlMi0+Y2xvY2spIHsKPiA+IC0JCWlmIChLSFoyUElDT1MobW9kZTEtPmNsb2NrKSAh PSBLSFoyUElDT1MobW9kZTItPmNsb2NrKSkKPiA+IC0JCQlyZXR1cm4gZmFsc2U7Cj4gPiAtCX0g ZWxzZSBpZiAobW9kZTEtPmNsb2NrICE9IG1vZGUyLT5jbG9jaykKPiA+ICsJaWYgKG1hdGNoX2Zs YWdzICYgRFJNX01PREVfTUFUQ0hfVElNSU5HUyAmJgo+ID4gKwkgICAgIWRybV9tb2RlX21hdGNo X3RpbWluZ3MobW9kZTEsIG1vZGUyKSkKPiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ICsKPiA+ICsJ aWYgKG1hdGNoX2ZsYWdzICYgRFJNX01PREVfTUFUQ0hfQ0xPQ0sgJiYKPiA+ICsJICAgICFkcm1f bW9kZV9tYXRjaF9jbG9jayhtb2RlMSwgbW9kZTIpKQo+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4g Kwo+ID4gKwlpZiAobWF0Y2hfZmxhZ3MgJiBEUk1fTU9ERV9NQVRDSF9GTEFHUyAmJgo+ID4gKwkg ICAgIWRybV9tb2RlX21hdGNoX2ZsYWdzKG1vZGUxLCBtb2RlMikpCj4gPiArCQlyZXR1cm4gZmFs c2U7Cj4gPiArCj4gPiArCWlmIChtYXRjaF9mbGFncyAmIERSTV9NT0RFX01BVENIXzNEX0ZMQUdT ICYmCj4gPiArCSAgICAhZHJtX21vZGVfbWF0Y2hfM2RfZmxhZ3MobW9kZTEsIG1vZGUyKSkKPiA+ ICAgCQlyZXR1cm4gZmFsc2U7Cj4gPiAgIAo+ID4gLQlyZXR1cm4gZHJtX21vZGVfZXF1YWxfbm9f Y2xvY2tzKG1vZGUxLCBtb2RlMik7Cj4gPiArCWlmIChtYXRjaF9mbGFncyAmIERSTV9NT0RFX01B VENIX0FTUEVDVF9SQVRJTyAmJgo+ID4gKwkgICAgIWRybV9tb2RlX21hdGNoX2FzcGVjdF9yYXRp byhtb2RlMSwgbW9kZTIpKQo+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gKwo+ID4gKwlyZXR1cm4g dHJ1ZTsKPiA+ICt9Cj4gPiArRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9tYXRjaCk7Cj4gPiArCj4g PiArLyoqCj4gPiArICogZHJtX21vZGVfZXF1YWwgLSB0ZXN0IG1vZGVzIGZvciBlcXVhbGl0eQo+ ID4gKyAqIEBtb2RlMTogZmlyc3QgbW9kZQo+ID4gKyAqIEBtb2RlMjogc2Vjb25kIG1vZGUKPiA+ ICsgKgo+ID4gKyAqIENoZWNrIHRvIHNlZSBpZiBAbW9kZTEgYW5kIEBtb2RlMiBhcmUgZXF1aXZh bGVudC4KPiA+ICsgKgo+ID4gKyAqIFJldHVybnM6Cj4gPiArICogVHJ1ZSBpZiB0aGUgbW9kZXMg YXJlIGVxdWFsLCBmYWxzZSBvdGhlcndpc2UuCj4gPiArICovCj4gPiArYm9vbCBkcm1fbW9kZV9l cXVhbChjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTEsCj4gPiArCQkgICAgY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUyKQo+ID4gK3sKPiA+ICsJcmV0dXJuIGRy bV9tb2RlX21hdGNoKG1vZGUxLCBtb2RlMiwKPiA+ICsJCQkgICAgICBEUk1fTU9ERV9NQVRDSF9U SU1JTkdTIHwKPiA+ICsJCQkgICAgICBEUk1fTU9ERV9NQVRDSF9DTE9DSyB8Cj4gPiArCQkJICAg ICAgRFJNX01PREVfTUFUQ0hfRkxBR1MgfAo+ID4gKwkJCSAgICAgIERSTV9NT0RFX01BVENIXzNE X0ZMQUdTKTsKPiA+ICAgfQo+ID4gICBFWFBPUlRfU1lNQk9MKGRybV9tb2RlX2VxdWFsKTsKPiA+ ICAgCj4gPiBAQCAtOTgxLDEzICsxMDY1LDEzIEBAIEVYUE9SVF9TWU1CT0woZHJtX21vZGVfZXF1 YWwpOwo+ID4gICAgKiBSZXR1cm5zOgo+ID4gICAgKiBUcnVlIGlmIHRoZSBtb2RlcyBhcmUgZXF1 YWwsIGZhbHNlIG90aGVyd2lzZS4KPiA+ICAgICovCj4gPiAtYm9vbCBkcm1fbW9kZV9lcXVhbF9u b19jbG9ja3MoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUxLCBjb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTIpCj4gPiArYm9vbCBkcm1fbW9kZV9lcXVhbF9ub19j bG9ja3MoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUxLAo+ID4gKwkJCSAgICAg IGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlMikKPiA+ICAgewo+ID4gLQlpZiAo KG1vZGUxLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfM0RfTUFTSykgIT0KPiA+IC0JICAgIChtb2Rl Mi0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHXzNEX01BU0spKQo+ID4gLQkJcmV0dXJuIGZhbHNlOwo+ ID4gLQo+ID4gLQlyZXR1cm4gZHJtX21vZGVfZXF1YWxfbm9fY2xvY2tzX25vX3N0ZXJlbyhtb2Rl MSwgbW9kZTIpOwo+ID4gKwlyZXR1cm4gZHJtX21vZGVfbWF0Y2gobW9kZTEsIG1vZGUyLAo+ID4g KwkJCSAgICAgIERSTV9NT0RFX01BVENIX1RJTUlOR1MgfAo+ID4gKwkJCSAgICAgIERSTV9NT0RF X01BVENIX0ZMQUdTIHwKPiA+ICsJCQkgICAgICBEUk1fTU9ERV9NQVRDSF8zRF9GTEFHUyk7Cj4g PiAgIH0KPiA+ICAgRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9lcXVhbF9ub19jbG9ja3MpOwo+ID4g ICAKPiA+IEBAIC0xMDA1LDIxICsxMDg5LDkgQEAgRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9lcXVh bF9ub19jbG9ja3MpOwo+ID4gICBib29sIGRybV9tb2RlX2VxdWFsX25vX2Nsb2Nrc19ub19zdGVy ZW8oY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUxLAo+ID4gICAJCQkJCWNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlMikKPiA+ICAgewo+ID4gLQlpZiAobW9kZTEt PmhkaXNwbGF5ID09IG1vZGUyLT5oZGlzcGxheSAmJgo+ID4gLQkgICAgbW9kZTEtPmhzeW5jX3N0 YXJ0ID09IG1vZGUyLT5oc3luY19zdGFydCAmJgo+ID4gLQkgICAgbW9kZTEtPmhzeW5jX2VuZCA9 PSBtb2RlMi0+aHN5bmNfZW5kICYmCj4gPiAtCSAgICBtb2RlMS0+aHRvdGFsID09IG1vZGUyLT5o dG90YWwgJiYKPiA+IC0JICAgIG1vZGUxLT5oc2tldyA9PSBtb2RlMi0+aHNrZXcgJiYKPiA+IC0J ICAgIG1vZGUxLT52ZGlzcGxheSA9PSBtb2RlMi0+dmRpc3BsYXkgJiYKPiA+IC0JICAgIG1vZGUx LT52c3luY19zdGFydCA9PSBtb2RlMi0+dnN5bmNfc3RhcnQgJiYKPiA+IC0JICAgIG1vZGUxLT52 c3luY19lbmQgPT0gbW9kZTItPnZzeW5jX2VuZCAmJgo+ID4gLQkgICAgbW9kZTEtPnZ0b3RhbCA9 PSBtb2RlMi0+dnRvdGFsICYmCj4gPiAtCSAgICBtb2RlMS0+dnNjYW4gPT0gbW9kZTItPnZzY2Fu ICYmCj4gPiAtCSAgICAobW9kZTEtPmZsYWdzICYgfkRSTV9NT0RFX0ZMQUdfM0RfTUFTSykgPT0K PiA+IC0JICAgICAobW9kZTItPmZsYWdzICYgfkRSTV9NT0RFX0ZMQUdfM0RfTUFTSykpCj4gPiAt CQlyZXR1cm4gdHJ1ZTsKPiA+IC0KPiA+IC0JcmV0dXJuIGZhbHNlOwo+ID4gKwlyZXR1cm4gZHJt X21vZGVfbWF0Y2gobW9kZTEsIG1vZGUyLAo+ID4gKwkJCSAgICAgIERSTV9NT0RFX01BVENIX1RJ TUlOR1MgfAo+ID4gKwkJCSAgICAgIERSTV9NT0RFX01BVENIX0ZMQUdTKTsKPiA+ICAgfQo+ID4g ICBFWFBPUlRfU1lNQk9MKGRybV9tb2RlX2VxdWFsX25vX2Nsb2Nrc19ub19zdGVyZW8pOwo+ID4g ICAKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fbW9kZXMuaCBiL2luY2x1ZGUvZHJt L2RybV9tb2Rlcy5oCj4gPiBpbmRleCA5ZjM0MjFjLi44MzllYjljIDEwMDY0NAo+ID4gLS0tIGEv aW5jbHVkZS9kcm0vZHJtX21vZGVzLmgKPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9tb2Rlcy5o Cj4gPiBAQCAtMTUwLDYgKzE1MCwxMiBAQCBlbnVtIGRybV9tb2RlX3N0YXR1cyB7Cj4gPiAgIAo+ ID4gICAjZGVmaW5lIERSTV9NT0RFX0ZMQUdfM0RfTUFYCURSTV9NT0RFX0ZMQUdfM0RfU0lERV9C WV9TSURFX0hBTEYKPiA+ICAgCj4gPiArI2RlZmluZSBEUk1fTU9ERV9NQVRDSF9USU1JTkdTICgx IDw8IDApCj4gPiArI2RlZmluZSBEUk1fTU9ERV9NQVRDSF9DTE9DSyAoMSA8PCAxKQo+ID4gKyNk ZWZpbmUgRFJNX01PREVfTUFUQ0hfRkxBR1MgKDEgPDwgMikKPiA+ICsjZGVmaW5lIERSTV9NT0RF X01BVENIXzNEX0ZMQUdTICgxIDw8IDMpCj4gPiArI2RlZmluZSBEUk1fTU9ERV9NQVRDSF9BU1BF Q1RfUkFUSU8gKDEgPDwgNCkKPiA+ICsKPiA+ICAgLyoqCj4gPiAgICAqIHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlIC0gRFJNIGtlcm5lbC1pbnRlcm5hbCBkaXNwbGF5IG1vZGUgc3RydWN0dXJlCj4g PiAgICAqIEBoZGlzcGxheTogaG9yaXpvbnRhbCBkaXNwbGF5IHNpemUKPiA+IEBAIC00OTMsNiAr NDk5LDkgQEAgdm9pZCBkcm1fbW9kZV9jb3B5KHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpkc3Qs Cj4gPiAgIAkJICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnNyYyk7Cj4gPiAgIHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICpkcm1fbW9kZV9kdXBsaWNhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiA+ICAgCQkJCQkgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGUpOwo+ID4gK2Jvb2wgZHJtX21vZGVfbWF0Y2goY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUxLAo+ID4gKwkJICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl MiwKPiBTYW1lIGhlcmUgZm9yIHRoZSBhbGlnbm1lbnQKPiA+ICsJCSAgICB1bnNpZ25lZCBpbnQg bWF0Y2hfZmxhZ3MpOwo+ID4gICBib29sIGRybV9tb2RlX2VxdWFsKGNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlMSwKPiA+ICAgCQkgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGUyKTsKPiA+ICAgYm9vbCBkcm1fbW9kZV9lcXVhbF9ub19jbG9ja3MoY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUxLAo+IFdpdGggdGhlIG1pbm9yIGNvbW1lbnRz IGFib3ZlLCBwbGVhc2UgZmVlbCBmcmVlIHRvIHVzZQo+IFJldmlld2VkLWJ5OiBTaGFzaGFuayBT aGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+CgotLSAKVmlsbGUgU3lyasOkbMOkCklu dGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK