From mboxrd@z Thu Jan 1 00:00:00 1970 From: Liviu Dudau Subject: Re: [RFC 1/4] drm: Add writeback connector type Date: Fri, 23 Feb 2018 14:00:18 +0000 Message-ID: <20180223140018.GV9111@e110455-lin.cambridge.arm.com> References: <20180223131758.18362-1-robdclark@gmail.com> <20180223131758.18362-2-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180223131758.18362-2-robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Rob Clark Cc: Jonathan Corbet , David Airlie , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Maarten Lankhorst , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Sean Paul , Gustavo Padovan , Mihail Atanassov , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Brian Starkey List-Id: linux-arm-msm@vger.kernel.org SGkgUm9iLAoKT24gRnJpLCBGZWIgMjMsIDIwMTggYXQgMDg6MTc6NTFBTSAtMDUwMCwgUm9iIENs YXJrIHdyb3RlOgo+IEZyb206IEJyaWFuIFN0YXJrZXkgPGJyaWFuLnN0YXJrZXlAYXJtLmNvbT4K PiAKPiBXcml0ZWJhY2sgY29ubmVjdG9ycyByZXByZXNlbnQgd3JpdGViYWNrIGVuZ2luZXMgd2hp Y2ggY2FuIHdyaXRlIHRoZQo+IENSVEMgb3V0cHV0IHRvIGEgbWVtb3J5IGZyYW1lYnVmZmVyLiBB ZGQgYSB3cml0ZWJhY2sgY29ubmVjdG9yIHR5cGUgYW5kCj4gcmVsYXRlZCBzdXBwb3J0IGZ1bmN0 aW9ucy4KPiAKPiBEcml2ZXJzIHNob3VsZCBpbml0aWFsaXplIGEgd3JpdGViYWNrIGNvbm5lY3Rv ciB3aXRoCj4gZHJtX3dyaXRlYmFja19jb25uZWN0b3JfaW5pdCgpIHdoaWNoIHRha2VzIGNhcmUg b2Ygc2V0dGluZyB1cCBhbGwgdGhlCj4gd3JpdGViYWNrLXNwZWNpZmljIGRldGFpbHMgb24gdG9w IG9mIHRoZSBub3JtYWwgZnVuY3Rpb25hbGl0eSBvZgo+IGRybV9jb25uZWN0b3JfaW5pdCgpLgo+ IAo+IFdyaXRlYmFjayBjb25uZWN0b3JzIGhhdmUgYSBXUklURUJBQ0tfRkJfSUQgcHJvcGVydHks IHVzZWQgdG8gc2V0IHRoZQo+IG91dHB1dCBmcmFtZWJ1ZmZlciwgYW5kIGEgV1JJVEVCQUNLX1BJ WEVMX0ZPUk1BVFMgYmxvYiB1c2VkIHRvIGV4cG9zZSB0aGUKPiBzdXBwb3J0ZWQgd3JpdGViYWNr IGZvcm1hdHMgdG8gdXNlcnNwYWNlLgo+IAo+IFdoZW4gYSBmcmFtZWJ1ZmZlciBpcyBhdHRhY2hl ZCB0byBhIHdyaXRlYmFjayBjb25uZWN0b3Igd2l0aCB0aGUKPiBXUklURUJBQ0tfRkJfSUQgcHJv cGVydHksIGl0IGlzIHVzZWQgb25seSBvbmNlIChmb3IgdGhlIGNvbW1pdCBpbiB3aGljaAo+IGl0 IHdhcyBpbmNsdWRlZCksIGFuZCB1c2Vyc3BhY2UgY2FuIG5ldmVyIHJlYWQgYmFjayB0aGUgdmFs dWUgb2YKPiBXUklURUJBQ0tfRkJfSUQuIFdSSVRFQkFDS19GQl9JRCBjYW4gb25seSBiZSBzZXQg aWYgdGhlIGNvbm5lY3RvciBpcwo+IGF0dGFjaGVkIHRvIGEgQ1JUQy4KCltzbmlwXQoKPiArc3Rh dGljIGJvb2wgY3JlYXRlX3dyaXRlYmFja19wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gK3sKPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3A7Cj4gKwo+ICsJaWYgKCFkZXYt Pm1vZGVfY29uZmlnLndyaXRlYmFja19mYl9pZF9wcm9wZXJ0eSkgewo+ICsJCXByb3AgPSBkcm1f cHJvcGVydHlfY3JlYXRlX29iamVjdChkZXYsIERSTV9NT0RFX1BST1BfQVRPTUlDLAo+ICsJCQkJ CQkgICJXUklURUJBQ0tfRkJfSUQiLAo+ICsJCQkJCQkgIERSTV9NT0RFX09CSkVDVF9GQik7Cj4g KwkJaWYgKCFwcm9wKQo+ICsJCQlyZXR1cm4gZmFsc2U7Cj4gKwkJZGV2LT5tb2RlX2NvbmZpZy53 cml0ZWJhY2tfZmJfaWRfcHJvcGVydHkgPSBwcm9wOwo+ICsJfQo+ICsKPiArCWlmICghZGV2LT5t b2RlX2NvbmZpZy53cml0ZWJhY2tfcGl4ZWxfZm9ybWF0c19wcm9wZXJ0eSkgewo+ICsJCXByb3Ag PSBkcm1fcHJvcGVydHlfY3JlYXRlKGRldiwgRFJNX01PREVfUFJPUF9CTE9CIHwgRFJNX01PREVf UFJPUF9JTU1VVEFCTEUsCj4gKwkJCQkJICAgIldSSVRFQkFDS19QSVhFTF9GT1JNQVRTIiwgMCk7 Cj4gKwkJaWYgKCFwcm9wKQo+ICsJCQlyZXR1cm4gZmFsc2U7Cj4gKwkJZGV2LT5tb2RlX2NvbmZp Zy53cml0ZWJhY2tfcGl4ZWxfZm9ybWF0c19wcm9wZXJ0eSA9IHByb3A7Cj4gKwl9Cj4gKwo+ICsJ cmV0dXJuIHRydWU7Cj4gK30KCmJhc2VkIG9uIGEgYnVpbGRib3Qgd2FybmluZyBhbmQgdGhlIGZh Y3QgdGhhdCB0aGUgbmV4dCBwYXRjaCBzdGFydHMKcmV0dXJuaW5nIC1FTk9NRU0gaW5zaWRlIHRo ZSBhYm92ZSBmdW5jdGlvbiwgSSBoYXZlIHRoaXMgdmFyaWFudCBpbiBteQppbnRlcm5hbCB0cmVl IHRoYXQgSSB3YXMgcHJlcGFyaW5nIHRvIHNlbmQgb3V0IG9uY2UgSSd2ZSBnb3QgbXkgaS1nLXQK dGVzdHMgaW4gYmV0dGVyIHNoYXBlOgoKK3N0YXRpYyBpbnQgY3JlYXRlX3dyaXRlYmFja19wcm9w ZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisgICAgICAgc3RydWN0IGRybV9wcm9w ZXJ0eSAqcHJvcDsKKworICAgICAgIGlmICghZGV2LT5tb2RlX2NvbmZpZy53cml0ZWJhY2tfZmJf aWRfcHJvcGVydHkpIHsKKyAgICAgICAgICAgICAgIHByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRl X29iamVjdChkZXYsIERSTV9NT0RFX1BST1BfQVRPTUlDLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXUklURUJBQ0tfRkJfSUQiLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERSTV9NT0RFX09CSkVDVF9G Qik7CisgICAgICAgICAgICAgICBpZiAoIXByb3ApCisgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAtRU5PTUVNOworICAgICAgICAgICAgICAgZGV2LT5tb2RlX2NvbmZpZy53cml0ZWJhY2tf ZmJfaWRfcHJvcGVydHkgPSBwcm9wOworICAgICAgIH0KKworICAgICAgIGlmICghZGV2LT5tb2Rl X2NvbmZpZy53cml0ZWJhY2tfcGl4ZWxfZm9ybWF0c19wcm9wZXJ0eSkgeworICAgICAgICAgICAg ICAgcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGUoZGV2LCBEUk1fTU9ERV9QUk9QX0JMT0IgfCBE Uk1fTU9ERV9QUk9QX0lNTVVUQUJMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJXUklURUJBQ0tfUElYRUxfRk9STUFUUyIsIDApOworICAgICAgICAgICAgICAg aWYgKCFwcm9wKQorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKKyAgICAg ICAgICAgICAgIGRldi0+bW9kZV9jb25maWcud3JpdGViYWNrX3BpeGVsX2Zvcm1hdHNfcHJvcGVy dHkgPSBwcm9wOworICAgICAgIH0KKworICAgICAgIHJldHVybiAwOworfQoKCkZlZWwgZnJlZSB0 byB1c2UgdGhpcyB2ZXJzaW9uIGluIHRoZSBuZXh0IHVwZGF0ZSBpZiB5b3UncmUgZ29pbmcgdG8g c2VuZApvbmUsIG90aGVyd2lzZSBJIGd1ZXNzIHdlIGNvdWxkIGJlIHBhdGNoaW5nIGl0IGxhdGVy LgoKQmVzdCByZWdhcmRzLApMaXZpdQoKCj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9l bmNvZGVyX2Z1bmNzIGRybV93cml0ZWJhY2tfZW5jb2Rlcl9mdW5jcyA9IHsKPiArCS5kZXN0cm95 ID0gZHJtX2VuY29kZXJfY2xlYW51cCwKPiArfTsKPiArCj4gKy8qKgo+ICsgKiBkcm1fd3JpdGVi YWNrX2Nvbm5lY3Rvcl9pbml0IC0gSW5pdGlhbGl6ZSBhIHdyaXRlYmFjayBjb25uZWN0b3IgYW5k IGl0cyBwcm9wZXJ0aWVzCj4gKyAqIEBkZXY6IERSTSBkZXZpY2UKPiArICogQHdiX2Nvbm5lY3Rv cjogV3JpdGViYWNrIGNvbm5lY3RvciB0byBpbml0aWFsaXplCj4gKyAqIEBjb25fZnVuY3M6IENv bm5lY3RvciBmdW5jcyB2dGFibGUKPiArICogQGVuY19oZWxwZXJfZnVuY3M6IEVuY29kZXIgaGVs cGVyIGZ1bmNzIHZ0YWJsZSB0byBiZSB1c2VkIGJ5IHRoZSBpbnRlcm5hbCBlbmNvZGVyCj4gKyAq IEBmb3JtYXRzOiBBcnJheSBvZiBzdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0cyBmb3IgdGhlIHdyaXRl YmFjayBlbmdpbmUKPiArICogQG5fZm9ybWF0czogTGVuZ3RoIG9mIHRoZSBmb3JtYXRzIGFycmF5 Cj4gKyAqCj4gKyAqIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyB0aGUgd3JpdGViYWNrLWNvbm5lY3Rv ci1zcGVjaWZpYyBwcm9wZXJ0aWVzIGlmIHRoZXkKPiArICogaGF2ZSBub3QgYmVlbiBhbHJlYWR5 IGNyZWF0ZWQsIGluaXRpYWxpemVzIHRoZSBjb25uZWN0b3IgYXMKPiArICogdHlwZSBEUk1fTU9E RV9DT05ORUNUT1JfV1JJVEVCQUNLLCBhbmQgY29ycmVjdGx5IGluaXRpYWxpemVzIHRoZSBwcm9w ZXJ0eQo+ICsgKiB2YWx1ZXMuIEl0IHdpbGwgYWxzbyBjcmVhdGUgYW4gaW50ZXJuYWwgZW5jb2Rl ciBhc3NvY2lhdGVkIHdpdGggdGhlCj4gKyAqIGRybV93cml0ZWJhY2tfY29ubmVjdG9yIGFuZCBz ZXQgaXQgdG8gdXNlIHRoZSBAZW5jX2hlbHBlcl9mdW5jcyB2dGFibGUgZm9yCj4gKyAqIHRoZSBl bmNvZGVyIGhlbHBlci4KPiArICoKPiArICogRHJpdmVycyBzaG91bGQgYWx3YXlzIHVzZSB0aGlz IGZ1bmN0aW9uIGluc3RlYWQgb2YgZHJtX2Nvbm5lY3Rvcl9pbml0KCkgdG8KPiArICogc2V0IHVw IHdyaXRlYmFjayBjb25uZWN0b3JzLgo+ICsgKgo+ICsgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3Ms IG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZQo+ICsgKi8KPiAraW50IGRybV93cml0ZWJhY2tfY29u bmVjdG9yX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJCSBzdHJ1Y3QgZHJtX3dy aXRlYmFja19jb25uZWN0b3IgKndiX2Nvbm5lY3RvciwKPiArCQkJCSBjb25zdCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9mdW5jcyAqY29uX2Z1bmNzLAo+ICsJCQkJIGNvbnN0IHN0cnVjdCBkcm1fZW5j b2Rlcl9oZWxwZXJfZnVuY3MgKmVuY19oZWxwZXJfZnVuY3MsCj4gKwkJCQkgY29uc3QgdTMyICpm b3JtYXRzLCBpbnQgbl9mb3JtYXRzKQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsJc3RydWN0IGRybV9w cm9wZXJ0eV9ibG9iICpibG9iOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9 ICZ3Yl9jb25uZWN0b3ItPmJhc2U7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWcg PSAmZGV2LT5tb2RlX2NvbmZpZzsKPiArCj4gKwlpZiAoIWNyZWF0ZV93cml0ZWJhY2tfcHJvcGVy dGllcyhkZXYpKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCWJsb2IgPSBkcm1fcHJvcGVy dHlfY3JlYXRlX2Jsb2IoZGV2LCBuX2Zvcm1hdHMgKiBzaXplb2YoKmZvcm1hdHMpLAo+ICsJCQkJ CWZvcm1hdHMpOwo+ICsJaWYgKElTX0VSUihibG9iKSkKPiArCQlyZXR1cm4gUFRSX0VSUihibG9i KTsKPiArCj4gKwlkcm1fZW5jb2Rlcl9oZWxwZXJfYWRkKCZ3Yl9jb25uZWN0b3ItPmVuY29kZXIs IGVuY19oZWxwZXJfZnVuY3MpOwo+ICsJcmV0ID0gZHJtX2VuY29kZXJfaW5pdChkZXYsICZ3Yl9j b25uZWN0b3ItPmVuY29kZXIsCj4gKwkJCSAgICAgICAmZHJtX3dyaXRlYmFja19lbmNvZGVyX2Z1 bmNzLAo+ICsJCQkgICAgICAgRFJNX01PREVfRU5DT0RFUl9WSVJUVUFMLCBOVUxMKTsKPiArCWlm IChyZXQpCj4gKwkJZ290byBmYWlsOwo+ICsKPiArCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93 ZWQgPSAwOwo+ICsKPiArCXJldCA9IGRybV9jb25uZWN0b3JfaW5pdChkZXYsIGNvbm5lY3Rvciwg Y29uX2Z1bmNzLAo+ICsJCQkJIERSTV9NT0RFX0NPTk5FQ1RPUl9XUklURUJBQ0spOwo+ICsJaWYg KHJldCkKPiArCQlnb3RvIGNvbm5lY3Rvcl9mYWlsOwo+ICsKPiArCXJldCA9IGRybV9tb2RlX2Nv bm5lY3Rvcl9hdHRhY2hfZW5jb2Rlcihjb25uZWN0b3IsCj4gKwkJCQkJCSZ3Yl9jb25uZWN0b3It PmVuY29kZXIpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGF0dGFjaF9mYWlsOwo+ICsKPiArCUlO SVRfTElTVF9IRUFEKCZ3Yl9jb25uZWN0b3ItPmpvYl9xdWV1ZSk7Cj4gKwlzcGluX2xvY2tfaW5p dCgmd2JfY29ubmVjdG9yLT5qb2JfbG9jayk7Cj4gKwo+ICsJZHJtX29iamVjdF9hdHRhY2hfcHJv cGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKPiArCQkJCSAgIGNvbmZpZy0+d3JpdGViYWNrX2ZiX2lk X3Byb3BlcnR5LCAwKTsKPiArCj4gKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVj dG9yLT5iYXNlLAo+ICsJCQkJICAgY29uZmlnLT53cml0ZWJhY2tfcGl4ZWxfZm9ybWF0c19wcm9w ZXJ0eSwKPiArCQkJCSAgIGJsb2ItPmJhc2UuaWQpOwo+ICsJd2JfY29ubmVjdG9yLT5waXhlbF9m b3JtYXRzX2Jsb2JfcHRyID0gYmxvYjsKPiArCj4gKwlyZXR1cm4gMDsKPiArCj4gK2F0dGFjaF9m YWlsOgo+ICsJZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7Cj4gK2Nvbm5lY3Rvcl9m YWlsOgo+ICsJZHJtX2VuY29kZXJfY2xlYW51cCgmd2JfY29ubmVjdG9yLT5lbmNvZGVyKTsKPiAr ZmFpbDoKPiArCWRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKGJsb2IpOwo+ICsJcmV0dXJu IHJldDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV93cml0ZWJhY2tfY29ubmVjdG9yX2luaXQp Owo+ICsKPiArLyoqCj4gKyAqIGRybV93cml0ZWJhY2tfcXVldWVfam9iIC0gUXVldWUgYSB3cml0 ZWJhY2sgam9iIGZvciBsYXRlciBzaWduYWxsaW5nCj4gKyAqIEB3Yl9jb25uZWN0b3I6IFRoZSB3 cml0ZWJhY2sgY29ubmVjdG9yIHRvIHF1ZXVlIGEgam9iIG9uCj4gKyAqIEBqb2I6IFRoZSBqb2Ig dG8gcXVldWUKPiArICoKPiArICogVGhpcyBmdW5jdGlvbiBhZGRzIGEgam9iIHRvIHRoZSBqb2Jf cXVldWUgZm9yIGEgd3JpdGViYWNrIGNvbm5lY3Rvci4gSXQKPiArICogc2hvdWxkIGJlIGNvbnNp ZGVyZWQgdG8gdGFrZSBvd25lcnNoaXAgb2YgdGhlIHdyaXRlYmFjayBqb2IsIGFuZCBzbyBhbnkg b3RoZXIKPiArICogcmVmZXJlbmNlcyB0byB0aGUgam9iIG11c3QgYmUgY2xlYXJlZCBhZnRlciBj YWxsaW5nIHRoaXMgZnVuY3Rpb24uCj4gKyAqCj4gKyAqIERyaXZlcnMgbXVzdCBlbnN1cmUgdGhh dCBmb3IgYSBnaXZlbiB3cml0ZWJhY2sgY29ubmVjdG9yLCBqb2JzIGFyZSBxdWV1ZWQgaW4KPiAr ICogZXhhY3RseSB0aGUgc2FtZSBvcmRlciBhcyB0aGV5IHdpbGwgYmUgY29tcGxldGVkIGJ5IHRo ZSBoYXJkd2FyZSAoYW5kCj4gKyAqIHNpZ25hbGVkIHZpYSBkcm1fd3JpdGViYWNrX3NpZ25hbF9j b21wbGV0aW9uKS4KPiArICoKPiArICogRm9yIGV2ZXJ5IGNhbGwgdG8gZHJtX3dyaXRlYmFja19x dWV1ZV9qb2IoKSB0aGVyZSBtdXN0IGJlIGV4YWN0bHkgb25lIGNhbGwgdG8KPiArICogZHJtX3dy aXRlYmFja19zaWduYWxfY29tcGxldGlvbigpCj4gKyAqCj4gKyAqIFNlZSBhbHNvOiBkcm1fd3Jp dGViYWNrX3NpZ25hbF9jb21wbGV0aW9uKCkKPiArICovCj4gK3ZvaWQgZHJtX3dyaXRlYmFja19x dWV1ZV9qb2Ioc3RydWN0IGRybV93cml0ZWJhY2tfY29ubmVjdG9yICp3Yl9jb25uZWN0b3IsCj4g KwkJCSAgICAgc3RydWN0IGRybV93cml0ZWJhY2tfam9iICpqb2IpCj4gK3sKPiArCXVuc2lnbmVk IGxvbmcgZmxhZ3M7Cj4gKwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJndiX2Nvbm5lY3Rvci0+am9i X2xvY2ssIGZsYWdzKTsKPiArCWxpc3RfYWRkX3RhaWwoJmpvYi0+bGlzdF9lbnRyeSwgJndiX2Nv bm5lY3Rvci0+am9iX3F1ZXVlKTsKPiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJndiX2Nvbm5l Y3Rvci0+am9iX2xvY2ssIGZsYWdzKTsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV93cml0ZWJh Y2tfcXVldWVfam9iKTsKPiArCj4gKy8qKgo+ICsgKiBkcm1fd3JpdGViYWNrX2NsZWFudXBfam9i IC0gQ2xlYW51cCBhbmQgZnJlZSBhIHdyaXRlYmFjayBqb2IKPiArICogQGpvYjogVGhlIHdyaXRl YmFjayBqb2IgdG8gZnJlZQo+ICsgKgo+ICsgKiBEcm9wcyBhbnkgcmVmZXJlbmNlcyBoZWxkIGJ5 IHRoZSB3cml0ZWJhY2sgam9iLCBhbmQgZnJlZXMgdGhlIHN0cnVjdHVyZS4KPiArICovCj4gK3Zv aWQgZHJtX3dyaXRlYmFja19jbGVhbnVwX2pvYihzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2IgKmpv YikKPiArewo+ICsJaWYgKCFqb2IpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWlmIChqb2ItPmZiKQo+ ICsJCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShqb2ItPmZiKTsKPiArCWtmcmVlKGpvYik7 Cj4gK30KPiArRVhQT1JUX1NZTUJPTChkcm1fd3JpdGViYWNrX2NsZWFudXBfam9iKTsKPiArCj4g Ky8qCj4gKyAqIEBjbGVhbnVwX3dvcms6IGRlZmVycmVkIGNsZWFudXAgb2YgYSB3cml0ZWJhY2sg am9iCj4gKyAqCj4gKyAqIFRoZSBqb2IgY2Fubm90IGJlIGNsZWFuZWQgdXAgZGlyZWN0bHkgaW4g ZHJtX3dyaXRlYmFja19zaWduYWxfY29tcGxldGlvbiwKPiArICogYmVjYXVzZSBpdCBtYXkgYmUg Y2FsbGVkIGluIGludGVycnVwdCBjb250ZXh0LiBEcm9wcGluZyB0aGUgZnJhbWVidWZmZXIKPiAr ICogcmVmZXJlbmNlIGNhbiBzbGVlcCwgYW5kIHNvIHRoZSBjbGVhbnVwIGlzIGRlZmVycmVkIHRv IGEgd29ya3F1ZXVlLgo+ICsgKi8KPiArc3RhdGljIHZvaWQgY2xlYW51cF93b3JrKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKPiArewo+ICsJc3RydWN0IGRybV93cml0ZWJhY2tfam9iICpqb2Ig PSBjb250YWluZXJfb2Yod29yaywKPiArCQkJCQkJICAgICBzdHJ1Y3QgZHJtX3dyaXRlYmFja19q b2IsCj4gKwkJCQkJCSAgICAgY2xlYW51cF93b3JrKTsKPiArCWRybV93cml0ZWJhY2tfY2xlYW51 cF9qb2Ioam9iKTsKPiArfQo+ICsKPiArLyoqCj4gKyAqIGRybV93cml0ZWJhY2tfc2lnbmFsX2Nv bXBsZXRpb24gLSBTaWduYWwgdGhlIGNvbXBsZXRpb24gb2YgYSB3cml0ZWJhY2sgam9iCj4gKyAq IEB3Yl9jb25uZWN0b3I6IFRoZSB3cml0ZWJhY2sgY29ubmVjdG9yIHdob3NlIGpvYiBpcyBjb21w bGV0ZQo+ICsgKgo+ICsgKiBEcml2ZXJzIHNob3VsZCBjYWxsIHRoaXMgdG8gc2lnbmFsIHRoZSBj b21wbGV0aW9uIG9mIGEgcHJldmlvdXNseSBxdWV1ZWQKPiArICogd3JpdGViYWNrIGpvYi4gSXQg c2hvdWxkIGJlIGNhbGxlZCBhcyBzb29uIGFzIHBvc3NpYmxlIGFmdGVyIHRoZSBoYXJkd2FyZQo+ ICsgKiBoYXMgZmluaXNoZWQgd3JpdGluZywgYW5kIG1heSBiZSBjYWxsZWQgZnJvbSBpbnRlcnJ1 cHQgY29udGV4dC4KPiArICogSXQgaXMgdGhlIGRyaXZlcidzIHJlc3BvbnNpYmlsaXR5IHRvIGVu c3VyZSB0aGF0IGZvciBhIGdpdmVuIGNvbm5lY3RvciwgdGhlCj4gKyAqIGhhcmR3YXJlIGNvbXBs ZXRlcyB3cml0ZWJhY2sgam9icyBpbiB0aGUgc2FtZSBvcmRlciBhcyB0aGV5IGFyZSBxdWV1ZWQu Cj4gKyAqCj4gKyAqIFVubGVzcyB0aGUgZHJpdmVyIGlzIGhvbGRpbmcgaXRzIG93biByZWZlcmVu Y2UgdG8gdGhlIGZyYW1lYnVmZmVyLCBpdCBtdXN0Cj4gKyAqIG5vdCBiZSBhY2Nlc3NlZCBhZnRl ciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCj4gKyAqCj4gKyAqIFNlZSBhbHNvOiBkcm1fd3JpdGVi YWNrX3F1ZXVlX2pvYigpCj4gKyAqLwo+ICt2b2lkCj4gK2RybV93cml0ZWJhY2tfc2lnbmFsX2Nv bXBsZXRpb24oc3RydWN0IGRybV93cml0ZWJhY2tfY29ubmVjdG9yICp3Yl9jb25uZWN0b3IpCj4g K3sKPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gKwlzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2Ig KmpvYjsKPiArCj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgmd2JfY29ubmVjdG9yLT5qb2JfbG9jaywg ZmxhZ3MpOwo+ICsJam9iID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKCZ3Yl9jb25uZWN0b3It PmpvYl9xdWV1ZSwKPiArCQkJCSAgICAgICBzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2IsCj4gKwkJ CQkgICAgICAgbGlzdF9lbnRyeSk7Cj4gKwlpZiAoam9iKQo+ICsJCWxpc3RfZGVsKCZqb2ItPmxp c3RfZW50cnkpOwo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmd2JfY29ubmVjdG9yLT5qb2Jf bG9jaywgZmxhZ3MpOwo+ICsKPiArCWlmIChXQVJOX09OKCFqb2IpKQo+ICsJCXJldHVybjsKPiAr Cj4gKwlJTklUX1dPUksoJmpvYi0+Y2xlYW51cF93b3JrLCBjbGVhbnVwX3dvcmspOwo+ICsJcXVl dWVfd29yayhzeXN0ZW1fbG9uZ193cSwgJmpvYi0+Y2xlYW51cF93b3JrKTsKPiArfQo+ICtFWFBP UlRfU1lNQk9MKGRybV93cml0ZWJhY2tfc2lnbmFsX2NvbXBsZXRpb24pOwo+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmggYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKPiBp bmRleCBjZjEzODQyYTZkYmQuLmQ3YjAyNjNjYzVjZiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2Ry bS9kcm1fYXRvbWljLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKPiBAQCAtNTk0 LDYgKzU5NCw5IEBAIHZvaWQgZHJtX2F0b21pY19zZXRfZmVuY2VfZm9yX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLAo+ICBpbnQgX19tdXN0X2NoZWNrCj4gIGRybV9h dG9taWNfc2V0X2NydGNfZm9yX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq Y29ubl9zdGF0ZSwKPiAgCQkJCSAgc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPiAraW50IGRybV9h dG9taWNfc2V0X3dyaXRlYmFja19mYl9mb3JfY29ubmVjdG9yKAo+ICsJCXN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAo+ICsJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi KTsKPiAgaW50IF9fbXVzdF9jaGVjawo+ICBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25uZWN0 b3JzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCQkJCSAgIHN0cnVjdCBkcm1f Y3J0YyAqY3J0Yyk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBi L2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+IGluZGV4IDc1OGExNzZlN2I1Ny4uODcwMWVi Y2M2OGIzIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ICsrKyBi L2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+IEBAIC00MjUsNiArNDI1LDE5IEBAIHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlIHsKPiAgCSAqIHByb3RlY3Rpb24uIFRoaXMgaXMgbW9zdCBj b21tb25seSB1c2VkIGZvciBIRENQLgo+ICAJICovCj4gIAl1bnNpZ25lZCBpbnQgY29udGVudF9w cm90ZWN0aW9uOwo+ICsKPiArCS8qKgo+ICsJICogQHdyaXRlYmFja19qb2I6IFdyaXRlYmFjayBq b2IgZm9yIHdyaXRlYmFjayBjb25uZWN0b3JzCj4gKwkgKgo+ICsJICogSG9sZHMgdGhlIGZyYW1l YnVmZmVyIGZvciBhIHdyaXRlYmFjayBjb25uZWN0b3IuIEFzIHRoZSB3cml0ZWJhY2sKPiArCSAq IGNvbXBsZXRpb24gbWF5IGJlIGFzeW5jaHJvbm91cyB0byB0aGUgbm9ybWFsIGNvbW1pdCBjeWNs ZSwgdGhlCj4gKwkgKiB3cml0ZWJhY2sgam9iIGxpZmV0aW1lIGlzIG1hbmFnZWQgc2VwYXJhdGVs eSBmcm9tIHRoZSBub3JtYWwgYXRvbWljCj4gKwkgKiBzdGF0ZSBieSB0aGlzIG9iamVjdC4KPiAr CSAqCj4gKwkgKiBTZWUgYWxzbzogZHJtX3dyaXRlYmFja19xdWV1ZV9qb2IoKSBhbmQKPiArCSAq IGRybV93cml0ZWJhY2tfc2lnbmFsX2NvbXBsZXRpb24oKQo+ICsJICovCj4gKwlzdHJ1Y3QgZHJt X3dyaXRlYmFja19qb2IgKndyaXRlYmFja19qb2I7Cj4gIH07Cj4gIAo+ICAvKioKPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmggYi9pbmNsdWRlL2RybS9kcm1fbW9k ZV9jb25maWcuaAo+IGluZGV4IDc1NjlmMjJmZmVmNi4uYzAxMmUxMTQ4ZWMwIDEwMDY0NAo+IC0t LSBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJt X21vZGVfY29uZmlnLmgKPiBAQCAtNzc5LDYgKzc3OSwyMCBAQCBzdHJ1Y3QgZHJtX21vZGVfY29u ZmlnIHsKPiAgCSAqLwo+ICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqcGFuZWxfb3JpZW50YXRpb25f cHJvcGVydHk7Cj4gIAo+ICsJLyoqCj4gKwkgKiBAd3JpdGViYWNrX2ZiX2lkX3Byb3BlcnR5OiBQ cm9wZXJ0eSBmb3Igd3JpdGViYWNrIGNvbm5lY3RvcnMsIHN0b3JpbmcKPiArCSAqIHRoZSBJRCBv ZiB0aGUgb3V0cHV0IGZyYW1lYnVmZmVyLgo+ICsJICogU2VlIGFsc286IGRybV93cml0ZWJhY2tf Y29ubmVjdG9yX2luaXQoKQo+ICsJICovCj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICp3cml0ZWJh Y2tfZmJfaWRfcHJvcGVydHk7Cj4gKwkvKioKPiArCSAqIEB3cml0ZWJhY2tfcGl4ZWxfZm9ybWF0 c19wcm9wZXJ0eTogUHJvcGVydHkgZm9yIHdyaXRlYmFjayBjb25uZWN0b3JzLAo+ICsJICogc3Rv cmluZyBhbiBhcnJheSBvZiB0aGUgc3VwcG9ydGVkIHBpeGVsIGZvcm1hdHMgZm9yIHRoZSB3cml0 ZWJhY2sKPiArCSAqIGVuZ2luZSAocmVhZC1vbmx5KS4KPiArCSAqIFNlZSBhbHNvOiBkcm1fd3Jp dGViYWNrX2Nvbm5lY3Rvcl9pbml0KCkKPiArCSAqLwo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAq d3JpdGViYWNrX3BpeGVsX2Zvcm1hdHNfcHJvcGVydHk7Cj4gKwo+ICAJLyogZHVtYiBpb2N0bCBw YXJhbWV0ZXJzICovCj4gIAl1aW50MzJfdCBwcmVmZXJyZWRfZGVwdGgsIHByZWZlcl9zaGFkb3c7 Cj4gIAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxl cy5oIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaAo+IGluZGV4IDNl NzZjYTgwNWIwZi4uOTdkM2E4MTBiYzg1IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9t b2Rlc2V0X2hlbHBlcl92dGFibGVzLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fbW9kZXNldF9o ZWxwZXJfdnRhYmxlcy5oCj4gQEAgLTk3NCw2ICs5NzQsMTcgQEAgc3RydWN0IGRybV9jb25uZWN0 b3JfaGVscGVyX2Z1bmNzIHsKPiAgCSAqLwo+ICAJaW50ICgqYXRvbWljX2NoZWNrKShzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKnN0YXRlKTsKPiArCj4gKwkvKioKPiArCSAqIEBhdG9taWNfY29tbWl0Ogo+ICsJICoK PiArCSAqIEZvciB3cml0ZS1iYWNrIGNvbm5lY3RvcnMsIHRoaXMgaXMgdGhlIHBvaW50IHRvIGNv bW1pdCB0aGUgd3JpdGUtCj4gKwkgKiBiYWNrIGpvYiB0byBody4KPiArCSAqCj4gKwkgKiBUaGlz IGNhbGxiYWNrIGlzIHVzZWQgYnkgdGhlIGF0b21pYyBtb2Rlc2V0IGhlbHBlcnMuCj4gKwkgKi8K PiArCXZvaWQgKCphdG9taWNfY29tbWl0KShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAo+ICsJCQkgICAgICBzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2IgKndyaXRlYmFja19qb2IpOwo+ ICB9Owo+ICAKPiAgLyoqCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV93cml0ZWJhY2su aCBiL2luY2x1ZGUvZHJtL2RybV93cml0ZWJhY2suaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4g aW5kZXggMDAwMDAwMDAwMDAwLi4wYmI5NWZkNDkwN2QKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIv aW5jbHVkZS9kcm0vZHJtX3dyaXRlYmFjay5oCj4gQEAgLTAsMCArMSw4OSBAQAo+ICsvKgo+ICsg KiAoQykgQ09QWVJJR0hUIDIwMTYgQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCj4g KyAqIEF1dGhvcjogQnJpYW4gU3RhcmtleSA8YnJpYW4uc3RhcmtleUBhcm0uY29tPgo+ICsgKgo+ ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZSBhbmQgaXMgcHJvdmlkZWQgdG8geW91 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKPiArICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug dmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQo+ICsgKiBGb3VuZGF0 aW9uLCBhbmQgYW55IHVzZSBieSB5b3Ugb2YgdGhpcyBwcm9ncmFtIGlzIHN1YmplY3QgdG8gdGhl IHRlcm1zCj4gKyAqIG9mIHN1Y2ggR05VIGxpY2VuY2UuCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBf X0RSTV9XUklURUJBQ0tfSF9fCj4gKyNkZWZpbmUgX19EUk1fV1JJVEVCQUNLX0hfXwo+ICsjaW5j bHVkZSA8ZHJtL2RybV9jb25uZWN0b3IuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlci5o Pgo+ICsjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+Cj4gKwo+ICtzdHJ1Y3QgZHJtX3dyaXRl YmFja19jb25uZWN0b3Igewo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgYmFzZTsKPiArCj4gKwkv KioKPiArCSAqIEBlbmNvZGVyOiBJbnRlcm5hbCBlbmNvZGVyIHVzZWQgYnkgdGhlIGNvbm5lY3Rv ciB0byBmdWxmaWxsCj4gKwkgKiB0aGUgRFJNIGZyYW1ld29yayByZXF1aXJlbWVudHMuIFRoZSB1 c2VycyBvZiB0aGUKPiArCSAqIEBkcm1fd3JpdGViYWNrX2Nvbm5lY3RvciBjb250cm9sIHRoZSBi ZWhhdmlvdXIgb2YgdGhlIEBlbmNvZGVyCj4gKwkgKiBieSBwYXNzaW5nIHRoZSBAZW5jX2Z1bmNz IHBhcmFtZXRlciB0byBkcm1fd3JpdGViYWNrX2Nvbm5lY3Rvcl9pbml0KCkKPiArCSAqIGZ1bmN0 aW9uLgo+ICsJICovCj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgZW5jb2RlcjsKPiArCj4gKwkvKioK PiArCSAqIEBwaXhlbF9mb3JtYXRzX2Jsb2JfcHRyOgo+ICsJICoKPiArCSAqIERSTSBibG9iIHBy b3BlcnR5IGRhdGEgZm9yIHRoZSBwaXhlbCBmb3JtYXRzIGxpc3Qgb24gd3JpdGViYWNrCj4gKwkg KiBjb25uZWN0b3JzCj4gKwkgKiBTZWUgYWxzbyBkcm1fd3JpdGViYWNrX2Nvbm5lY3Rvcl9pbml0 KCkKPiArCSAqLwo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpwaXhlbF9mb3JtYXRzX2Js b2JfcHRyOwo+ICsKPiArCS8qKiBAam9iX2xvY2s6IFByb3RlY3RzIGpvYl9xdWV1ZSAqLwo+ICsJ c3BpbmxvY2tfdCBqb2JfbG9jazsKPiArCj4gKwkvKioKPiArCSAqIEBqb2JfcXVldWU6Cj4gKwkg Kgo+ICsJICogSG9sZHMgYSBsaXN0IG9mIGEgY29ubmVjdG9yJ3Mgd3JpdGViYWNrIGpvYnM7IHRo ZSBsYXN0IGl0ZW0gaXMgdGhlCj4gKwkgKiBtb3N0IHJlY2VudC4gVGhlIGZpcnN0IGl0ZW0gbWF5 IGJlIGVpdGhlciB3YWl0aW5nIGZvciB0aGUgaGFyZHdhcmUKPiArCSAqIHRvIGJlZ2luIHdyaXRp bmcsIG9yIGN1cnJlbnRseSBiZWluZyB3cml0dGVuLgo+ICsJICoKPiArCSAqIFNlZSBhbHNvOiBk cm1fd3JpdGViYWNrX3F1ZXVlX2pvYigpIGFuZAo+ICsJICogZHJtX3dyaXRlYmFja19zaWduYWxf Y29tcGxldGlvbigpCj4gKwkgKi8KPiArCXN0cnVjdCBsaXN0X2hlYWQgam9iX3F1ZXVlOwo+ICt9 Owo+ICsjZGVmaW5lIHRvX3diX2Nvbm5lY3Rvcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGRy bV93cml0ZWJhY2tfY29ubmVjdG9yLCBiYXNlKQo+ICsKPiArc3RydWN0IGRybV93cml0ZWJhY2tf am9iIHsKPiArCS8qKgo+ICsJICogQGNsZWFudXBfd29yazoKPiArCSAqCj4gKwkgKiBVc2VkIHRv IGFsbG93IGRybV93cml0ZWJhY2tfc2lnbmFsX2NvbXBsZXRpb24gdG8gZGVmZXIgZHJvcHBpbmcg dGhlCj4gKwkgKiBmcmFtZWJ1ZmZlciByZWZlcmVuY2UgdG8gYSB3b3JrcXVldWUuCj4gKwkgKi8K PiArCXN0cnVjdCB3b3JrX3N0cnVjdCBjbGVhbnVwX3dvcms7Cj4gKwkvKioKPiArCSAqIEBsaXN0 X2VudHJ5Ogo+ICsJICoKPiArCSAqIExpc3QgaXRlbSBmb3IgdGhlIGNvbm5lY3RvcidzIEBqb2Jf cXVldWUKPiArCSAqLwo+ICsJc3RydWN0IGxpc3RfaGVhZCBsaXN0X2VudHJ5Owo+ICsJLyoqCj4g KwkgKiBAZmI6Cj4gKwkgKgo+ICsJICogRnJhbWVidWZmZXIgdG8gYmUgd3JpdHRlbiB0byBieSB0 aGUgd3JpdGViYWNrIGNvbm5lY3Rvci4gRG8gbm90IHNldAo+ICsJICogZGlyZWN0bHksIHVzZSBk cm1fYXRvbWljX3NldF93cml0ZWJhY2tfZmJfZm9yX2Nvbm5lY3RvcigpCj4gKwkgKi8KPiArCXN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwo+ICt9Owo+ICsKPiAraW50IGRybV93cml0ZWJhY2tf Y29ubmVjdG9yX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJCSBzdHJ1Y3QgZHJt X3dyaXRlYmFja19jb25uZWN0b3IgKndiX2Nvbm5lY3RvciwKPiArCQkJCSBjb25zdCBzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9mdW5jcyAqY29uX2Z1bmNzLAo+ICsJCQkJIGNvbnN0IHN0cnVjdCBkcm1f ZW5jb2Rlcl9oZWxwZXJfZnVuY3MgKmVuY19oZWxwZXJfZnVuY3MsCj4gKwkJCQkgY29uc3QgdTMy ICpmb3JtYXRzLCBpbnQgbl9mb3JtYXRzKTsKPiArCj4gK3ZvaWQgZHJtX3dyaXRlYmFja19xdWV1 ZV9qb2Ioc3RydWN0IGRybV93cml0ZWJhY2tfY29ubmVjdG9yICp3Yl9jb25uZWN0b3IsCj4gKwkJ CSAgICAgc3RydWN0IGRybV93cml0ZWJhY2tfam9iICpqb2IpOwo+ICsKPiArdm9pZCBkcm1fd3Jp dGViYWNrX2NsZWFudXBfam9iKHN0cnVjdCBkcm1fd3JpdGViYWNrX2pvYiAqam9iKTsKPiArdm9p ZCBkcm1fd3JpdGViYWNrX3NpZ25hbF9jb21wbGV0aW9uKHN0cnVjdCBkcm1fd3JpdGViYWNrX2Nv bm5lY3RvciAqd2JfY29ubmVjdG9yKTsKPiArI2VuZGlmCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv dWFwaS9kcm0vZHJtX21vZGUuaCBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAo+IGluZGV4 IDJjNTc1Nzk0ZmI1Mi4uN2I0N2UxODRlOTVlIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9k cm0vZHJtX21vZGUuaAo+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAo+IEBAIC0z MzgsNiArMzM4LDcgQEAgZW51bSBkcm1fbW9kZV9zdWJjb25uZWN0b3Igewo+ICAjZGVmaW5lIERS TV9NT0RFX0NPTk5FQ1RPUl9WSVJUVUFMICAgICAgMTUKPiAgI2RlZmluZSBEUk1fTU9ERV9DT05O RUNUT1JfRFNJCQkxNgo+ICAjZGVmaW5lIERSTV9NT0RFX0NPTk5FQ1RPUl9EUEkJCTE3Cj4gKyNk ZWZpbmUgRFJNX01PREVfQ09OTkVDVE9SX1dSSVRFQkFDSwkxOAo+ICAKPiAgc3RydWN0IGRybV9t b2RlX2dldF9jb25uZWN0b3Igewo+ICAKPiAtLSAKPiAyLjE0LjMKPiAKCi0tIAo9PT09PT09PT09 PT09PT09PT09PQp8IEkgd291bGQgbGlrZSB0byB8CnwgZml4IHRoZSB3b3JsZCwgIHwKfCBidXQg dGhleSdyZSBub3QgfAp8IGdpdmluZyBtZSB0aGUgICB8CiBcIHNvdXJjZSBjb2RlISAgLwogIC0t LS0tLS0tLS0tLS0tLQogICAgwq9cXyjjg4QpXy/CrwpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0Bs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9mcmVlZHJlbm8K