From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCHv3/RFC 1/4] drm/arm: Factor out generic afbc helpers Date: Wed, 27 Nov 2019 10:51:27 +0100 Message-ID: <20191127095127.GC29965@phenom.ffwll.local> References: <20191119083429.GA2881@jamwan02-TSP300> <20191121172247.31150-1-andrzej.p@collabora.com> <20191121172247.31150-2-andrzej.p@collabora.com> <20191125085506.GA29965@phenom.ffwll.local> <0ba48306-e625-3850-dc92-221dfd3f1ef3@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by gabe.freedesktop.org (Postfix) with ESMTPS id B656F6E2BD for ; Wed, 27 Nov 2019 09:51:31 +0000 (UTC) Received: by mail-wr1-x441.google.com with SMTP id g7so5187255wrw.4 for ; Wed, 27 Nov 2019 01:51:31 -0800 (PST) Content-Disposition: inline In-Reply-To: <0ba48306-e625-3850-dc92-221dfd3f1ef3@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Andrzej Pietrasiewicz Cc: kernel@collabora.com, Mihail Atanassov , David Airlie , Liviu Dudau , dri-devel@lists.freedesktop.org, James Wang , Ayan Halder , Sean Paul List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBOb3YgMjYsIDIwMTkgYXQgMDk6Mjc6NTlQTSArMDEwMCwgQW5kcnplaiBQaWV0cmFz aWV3aWN6IHdyb3RlOgo+IEhpIERhbmllbCwKPiAKPiBUaGFua3MgZm9yIHRoZSBjb21tZW50cywg cGxlYXNlIHNlZSBpbmxpbmUKPiAKPiBXIGRuaXUgMjUuMTEuMjAxOSBvwqAwOTo1NSwgRGFuaWVs IFZldHRlciBwaXN6ZToKPiA+IE9uIFRodSwgTm92IDIxLCAyMDE5IGF0IDA2OjIyOjQ0UE0gKzAx MDAsIEFuZHJ6ZWogUGlldHJhc2lld2ljeiB3cm90ZToKPiA+ID4gVGhlc2UgYXJlIHVzZWZ1bCBm b3Igb3RoZXIgdXNlcnMgb2YgYWZiYywgZS5nLiByb2NrY2hpcC4KPiA+ID4gCj4gPiA+IFNpZ25l ZC1vZmYtYnk6IEFuZHJ6ZWogUGlldHJhc2lld2ljeiA8YW5kcnplai5wQGNvbGxhYm9yYS5jb20+ Cj4gPiA+IC0tLQo+ID4gPiAgIGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSAgICAgICAgICB8ICAy ICstCj4gPiA+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9hZmJjLmMgICAgICAgIHwgODQgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fZm91 cmNjLmMgICAgICB8IDExICsrKy0KPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVm ZmVyLmMgfCA3MSArKysrKysrKysrKysrKysrKysrKysrKysrLQo+ID4gPiAgIGluY2x1ZGUvZHJt L2RybV9hZmJjLmggICAgICAgICAgICB8IDM1ICsrKysrKysrKysrKysKPiA+ID4gICA1IGZpbGVz IGNoYW5nZWQsIDE5OSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQo+ID4gPiAgIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZHJtX2FmYmMuYwo+ID4gPiAgIGNyZWF0ZSBt b2RlIDEwMDY0NCBpbmNsdWRlL2RybS9kcm1fYWZiYy5oCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCj4g PiA+IGluZGV4IGQ5YmNjOWYyYTBhNC4uM2E1OGYzMGI4M2E2IDEwMDY0NAo+ID4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL01ha2Vm aWxlCj4gPiA+IEBAIC00NCw3ICs0NCw3IEBAIGRybV9rbXNfaGVscGVyLXkgOj0gZHJtX2NydGNf aGVscGVyLm8gZHJtX2RwX2hlbHBlci5vIGRybV9kc2MubyBkcm1fcHJvYmVfaGVscGVyCj4gPiA+ ICAgCQlkcm1fc2ltcGxlX2ttc19oZWxwZXIubyBkcm1fbW9kZXNldF9oZWxwZXIubyBcCj4gPiA+ ICAgCQlkcm1fc2NkY19oZWxwZXIubyBkcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5vIFwKPiA+ ID4gICAJCWRybV9hdG9taWNfc3RhdGVfaGVscGVyLm8gZHJtX2RhbWFnZV9oZWxwZXIubyBcCj4g PiA+IC0JCWRybV9mb3JtYXRfaGVscGVyLm8gZHJtX3NlbGZfcmVmcmVzaF9oZWxwZXIubwo+ID4g PiArCQlkcm1fZm9ybWF0X2hlbHBlci5vIGRybV9zZWxmX3JlZnJlc2hfaGVscGVyLm8gZHJtX2Fm YmMubwo+ID4gCj4gPiBKdXN0IGEgcXVpY2sgZHJpdmUtYnk6Cj4gPiAtIHlvdSBjYW4ndCBwdXQg dGhpcyBpbnRvIGhlbHBlcnMgYW5kIGNhbGwgZnJvbSBjb3JlIGNvZGUuIFRoaXMgc2hvdWxkIGJl Cj4gPiAgICBjb3JlIGNvZGUuIEFsc28sIEknZCBoYXZlIGp1c3Qgc3R1ZmZlZCBpdCBpbnRvIGRy bV9mb3JtYXQuYy4KPiA+IAo+IAo+IGRybV9mb3JtYXQuYyBkb2VzIG5vdCBleGlzdC4gRGlkIHlv dSBtZWFuIGRybV9mb3JtYXRfaGVscGVyLmM/Cgpkcm1fZm91cmNjLmMuIFlvdSBjYW4ndCBwdXQg dGhpcyBpbnRvIGEgaGVscGVyIGFuZCBjYWxsIGl0IGZyb20gY29yZSBjb2RlLAppdCB3b250IGxp bmsgZm9yIG1vZHVsYXIgYnVpbGRzLgoKPiA8c25pcD4KPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJh bWVidWZmZXIuYwo+ID4gPiBpbmRleCA1NzU2NDMxOGNlZWEuLjMwM2VlYTYyNGEwMiAxMDA2NDQK PiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jCj4gPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+ID4gPiBAQCAtMjMsNiArMjMsNyBA QAo+ID4gPiAgICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KPiA+ID4gICAjaW5jbHVkZSA8bGlu dXgvdWFjY2Vzcy5oPgo+ID4gPiArI2luY2x1ZGUgPGRybS9kcm1fYWZiYy5oPgo+ID4gPiAgICNp bmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgo+ID4gPiAgICNpbmNsdWRlIDxkcm0vZHJtX2F0b21p Y191YXBpLmg+Cj4gPiA+ICAgI2luY2x1ZGUgPGRybS9kcm1fYXV0aC5oPgo+ID4gPiBAQCAtMzEs NiArMzIsNyBAQAo+ID4gPiAgICNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KPiA+ID4gICAjaW5j bHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KPiA+ID4gICAjaW5jbHVkZSA8ZHJtL2RybV9mcmFtZWJ1 ZmZlci5oPgo+ID4gPiArI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+Cj4gPiA+ICAgI2luY2x1ZGUg PGRybS9kcm1fcHJpbnQuaD4KPiA+ID4gICAjaW5jbHVkZSA8ZHJtL2RybV91dGlsLmg+Cj4gPiA+ IEBAIC0xNjgsNyArMTcwLDY5IEBAIHN0YXRpYyBpbnQgZmJfcGxhbmVfaGVpZ2h0KGludCBoZWln aHQsCj4gPiA+ICAgCXJldHVybiBESVZfUk9VTkRfVVAoaGVpZ2h0LCBmb3JtYXQtPnZzdWIpOwo+ ID4gPiAgIH0KPiA+ID4gK3N0YXRpYyBpbnQgYWZiY19jaGVjayhzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdiwKPiA+ID4gKwkJICAgICAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKnIs IGludCBpLAo+ID4gPiArCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICppbmZv KQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwo+ID4gPiArCWlu dCBicHAgPSBpbmZvLT5jcHBbMF0gKiA4Owo+ID4gPiArCWludCB0aWxlczsKPiA+ID4gKwl1MzIg dywgaCwgaGVpZ2h0LCB0aWxlX3N6LCBhZmJjX3NpemU7Cj4gPiA+ICsJaW50IHJlc3VsdCA9IDA7 Cj4gPiA+ICsKPiA+ID4gKwlpZiAoaSkgewo+ID4gPiArCQlEUk1fREVCVUdfS01TKCJBRkJDIHN1 cHBvcnRlZCBvbmx5IGZvciBwbGFuZSAwXG4iKTsKPiA+ID4gKwo+ID4gPiArCQlyZXR1cm4gMTsK PiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwkvKiBnZXQgdGlsZSB3L2ggKi8KPiA+ID4gKwlpZiAo IWRybV9hZmJjX2dldF9zdXBlcmJsa193aChyLT5tb2RpZmllclswXSwgJncsICZoKSkKPiA+ID4g KwkJcmV0dXJuIDE7Cj4gPiA+ICsKPiA+ID4gKwkvKiBwaXRjaCBtdXN0IGJlIGRpdmlzaWJsZSBi eSB0aWxlIHdpZHRoICovCj4gPiA+ICsJaWYgKHItPnBpdGNoZXNbMF0gJSB3KSB7Cj4gPiA+ICsJ CURSTV9ERUJVR19LTVMoIkludmFsaWQgcGl0Y2ggZm9yIHBsYW5lICVkXG4iLCBpKTsKPiA+ID4g Kwo+ID4gPiArCQlyZXR1cm4gMTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlvYmogPSBkcm1f Z2VtX29iamVjdF9sb29rdXAoZmlsZV9wcml2LCByLT5oYW5kbGVzWzBdKTsKPiA+IAo+ID4gSSB0 aGluayB0aGlzIGlzIGEgYml0IHVnbHkgLi4uIEknZCBzcGxpdCB0aGlzIGludG8gYSBuZXcKPiA+ IGZyYW1lYnVmZmVyX2NoZWNrX3Bvc3QoKSBmdW5jdGlvbiB3aGljaCBpcyBjYWxsZWQgYWZ0ZXIg ZmJfY3JlYXRlLCBhdCB0aGF0Cj4gPiBwb2ludCB5b3UgZG8gaGF2ZSB0aGUgb2JqZWN0cyBhbHJl YWR5IGxvb2tlZCB1cC4KPiA+IAo+ID4gQWxzbyBJIHN1Z2dlc3RlZCB0aGF0IHRoaXMgY291bGQg YmUgZG9uZSBhcyBhIGhlbHBlciBpbXBsZW1lbnRhdGlvbiBmb3IKPiA+IGZiX2NyZWF0ZSwgd3Jh cHBpbmcgaXQgYXJvdW5kIHRoZSBkZWZhdWx0IGdlbSBpbXBsZW1lbnRhdGlvbi4gVGhhdCB3YXkg eW91Cj4gPiBjb3VsZCBrZWVwIGFsbCB0aGUgYWZiYyBzdHVmZiBpbiBoZWxwZXJzIGVudGlyZWx5 IChidXQgZHJpdmVycyBjb3VsZCBzY3Jldwo+ID4gdGhpbmdzIHVwLCBzbyB0aGVyZSdzIGEgdHJh ZGVvZmYpLgo+ID4gCj4gPiBXaGF0J3MgZGVmaW5pdGVseSBub3Qgb2sgaXMgY2FsbGluZyBkcm1f Z2VtX29iamVjdF9sb29rdXAgdW5jb25kaXRpb25hbGx5Cj4gPiBmcm9tIGNvcmUgY29kZSBoZXJl LiBGb3IgY29uc2lzdGVuY3kgSSB0aGluayB0aGUgaGVscGVyIGFwcHJvYWNoIHdvdWxkIGJlCj4g PiBnb29kLCBzaW5jZSBjdXJyZW50bHkgdGhlIHNpemUgcmVsYXRlZCBjaGVja3MgYXJlIGRvbmUg aW4KPiA+IGRybV9nZW1fZmJfY3JlYXRlKCkgLSBpLmUuIGluIHRoZSBoZWxwZXJzLCBub3QgaW4g Y29yZS4gT3RvaCBoYXZpbmcgY2hlY2tzCj4gPiBzcGxpdCBsaWtlIHRoaXMgaXMgYWxzbyB1Z2x5 LCBzbyBtYXliZSB3ZSBzaG91bGQgaGF2ZSBhCj4gPiBmcmFtZWJ1ZmZlcl9jaGVja19wb3N0IGZv ciBldmVyeW9uZSwgYW5kIG1vdmUgYWxsIHRoZSBzaXplIGNoZWNrcyBpbnRvCj4gPiBjb3JlIChu b3QganVzdCBmb3IgYWZiYykuCj4gPiAtRGFuaWVsCj4gCj4gQXMgZmFyIGFzIEkgdW5kZXJzdGFu ZCB5b3Ugc2VlIG1vcmUgdGhhbiBvbmUgd2F5IGZvcndhcmQuCj4gQ2FuIHlvdSBwbGVhc2UgY29t bWVudCBvbiB0aGUgYmVsb3c/IEFuZCBpbiBwYXJ0aWN1bGFyLCBjYW4geW91IHNheQo+IGlmIEkg dW5kZXJzdG9vZCB5b3UgY29ycmVjdGx5PyBTbywgbXkgdW5kZXJzdGFuZGluZyBvZiB3aGF0IHlv dQo+IHNhaWQgYWJvdmUgaXMgdG8gZWl0aGVyOgo+IAo+IDEpIG1vdmUgdGhlIHBhcnQgb2YgdGhl IGNvZGUgd2hpY2ggcmVxdWlyZXMgb2JqZWN0cyB0byBiZSBsb29rZWQgdXAKPiB0byBhIG5ldyBm cmFtZWJ1ZmZlcl9jaGVja19wb3N0KCkgY2FsbGVkIGFmdGVyIGZiX2NyZWF0ZSwgdGhhdCBpcwo+ IGZyb20gZHJtX2ludGVybmFsX2ZyYW1lYnVmZmVyX2NyZWF0ZSgpIGFmdGVyCj4gCj4gZmIgPSBk ZXYtPm1vZGVfY29uZmlnLmZ1bmNzLT5mYl9jcmVhdGUoZGV2LCBmaWxlX3ByaXYsIHIpOwo+IAo+ IGJlY2F1c2UgYXQgdGhhdCBwb2ludCB0aGUgb2JqZWN0cyBoYXZlIGFscmVhZHkgYmVlbiBsb29r ZWQgdXAuCj4gSG93IGRyaXZlci1zcGVjaWZpYyBjaGVja3MgY2FuIGJlIGRvbmUgaW4gdGhpcyBz Y2hlbWU/CgpZdXAgdGhhdCdzIG9uZSB3YXkgb2YgZG9pbmcgaXQuIFN0aWxsIGZlZWxzIGEgYml0 IGlja3kuCgo+IG9yCj4gCj4gMikgTW92ZSB0aGUgYm9keSBvZiBhZmJjX2NoZWNrKCkgdG8gYSBo ZWxwZXIgaW1wbGVtZW50YXRpb24gdG8gYmUgdXNlZCBieQo+IGRyaXZlci1zcGVjaWZpYyBmYl9j cmVhdGUgaW1wbGVtZW50YXRpb25zLiBTb3JyeSBmb3IgbXkgaWdub3JhbmNlLCBpdCBzZWVtcwo+ IHRoYXQgImhlbHBlcnMiIGFuZCAiY29yZSIgaGF2ZSBwcmVjaXNlIG1lYW5pbmcgaGVyZSBidXQg SSBkb24ndCBxdWl0ZQo+IHVuZGVyc3RhbmQgd2hhdCBpcyB3aGF0IG9mIHdoYXQsIHNvIEkgYWxz byBkb24ndCBxdWl0ZSB1bmRlcnN0YW5kIHdoZXJlCj4gdG8gbW92ZSB0aGUgY29kZSB0byBhbmQg d2h5IHRoaXMgd291bGQgbWVhbiBrZWVwaW5nIGFsbCB0aGUgYWZiYyBzdHVmZgo+IGVudGlyZWx5 IGluIGhlbHBlcnMgOk8gQ2FuIHlvdSBleHBsYWluPwoKVGhhdCdzIHRoZSAybmQgb3B0aW9uLCB3 aGVyZSAyYSB3b3VsZCBiZSBwdXR0aW5nIHRoZSBjaGVja3MgaW50bwpkcm1fZ2VtX2ZiX2NyZWF0 ZV93aXRoX2Z1bmNzKCkuIFRoYXQgd291bGQgYXQgbGVhc3QgYmUgY29uc2lzdGVudCB3aXRoIHRo ZQpleGlzdGluZyBwbGFjZW1lbnQgb2Ygc2l6ZSByZWxhdGVkIGNoZWNrcyB3ZSBoYXZlLgoKRm9y IG1vcmUgY29udGV4dCBvbiBjb3JlIHZzIG1pZGxheWVyOgoKaHR0cHM6Ly9ibG9nLmZmd2xsLmNo LzIwMTYvMTIvbWlkbGF5ZXJzLW9uY2UtbW9yZS13aXRoLWZlZWxpbmcuaHRtbAoKVGhlIGZpcnN0 IGZldyBwYXJhZ3JhcGhzIGhhdmUgYSBwaWxlIG9mIGxpbmtzIHdpdGggd2hhdCB0aGlzIG1lYW5z IGZvcgprZXJuZWwgaGFja2Vycy4KCkluIHRoaXMgY2FzZSBzcGVjaWZpY2FsbHkgdGhlIGNob2lj ZSBvZiB1c2luZyBnZW0gYXMgYmFja2luZyBzdG9yYWdlIGZvcgpkcm1fZnJhbWVidWZmZXIgaXMg dXAgdG8gZHJpdmVycywgYW5kIGhlbmNlIGFueXRoaW5nIGdlbSByZWxhdGVkIHNob3VsZCBiZQpp biBvcHQtaW4gaGVscGVycy4gQWx0aG91Z2ggd2Ugb25seSBoYXZlIDEgZHJpdmVyIG5vdCB1c2lu ZyBnZW0sIHNvIHdlCnN0YW5kYXJkaXplZCB0aGlzIGEgbG90IGFuZCBzb21ld2hhdCBtdWRkaWVk IHRoZSBjb3JlL2hlbHBlciBzZXBhcmF0aW9uCmhlcmUuIFN0aWxsLCB3ZSBzaG91bGQgYXQgbGVh c3QgdHJ5IHRvIGJlIGNvbnNpc3RlbnQgYWNyb3NzIHRoZSBkaWZmZXJlbnQKZm9ybWF0cyBhbmQg Y2hlY2tzLgoKPiBEaWQgeW91IG1lYW4gdGhhdCBhbGwgdGhlIGNoZWNraW5nIGNvZGUgaXMgY2Fs bGVkIGJ5IHNwZWNpZmljIGRyaXZlcnMKPiBvbiBhbiBvcHQtaW4gYmFzaXM/IEkgdGhvdWdodCB5 b3Ugd2VyZSBub3QgaW4gZmF2b3Igb2YgZHJpdmVycyBvcHRpbmctaW4sCj4gYXMgc29tZSBvZiB0 aGVtIG1pZ2h0IG9wdC1pbiB3aGlsZSBzb21lIG90aGVycyBvcHQtb3V0LCBvciB1c2UgZGlmZmVy ZW50Cj4gc3Vic2V0cyBvZiBhdmFpbGFibGUgY2hlY2tzLgo+IAo+IG9yCj4gCj4gMykgZS5nLiBy b2NrY2hpcCBkb2VzIG5vdCB1c2UgZHJtX2dlbV9mYl9jcmVhdGUoKS4gSXQgdXNlcwo+IGRybV9n ZW1fZmJfY3JlYXRlX2hhbmRsZSgpLCB0aG91Z2guIEFueXdheSwgdGhlIHRoaXJkIHdheSBmb3J3 YXJkCj4gaXMgdG8gaGF2ZSBmcmFtZWJ1ZmZlcl9jaGVja19wb3N0KCkgYXMgaW4gMSkgYW5kIG1v dmUgdGhlIHNpemUgY2hlY2tzCj4gdG8gImNvcmUiIC0gd2hpY2ggSSBkb24ndCBxdWl0ZSB1bmRl cnN0YW5kIHdoZXJlIGV4YWN0bHkgaXQgaXMuCj4gV2hhdCBpcyB0aGUgZGlmZmVyZW5jZSB0byAx KT8KCmNyZWF0ZV9oYW5kbGUgaXMgYSBkaWZmZXJlbnQgaW9jdGwsIGl0J3MgY2FsbGVkIGZyb20g dGhlIEdFVEZCIGlvY3RsLiBXZSdkCm5lZWQgdG8gbW92ZSB0aGUgZmJfY3JlYXRlIGhvb2sgb3Zl ciB0byBoZWxwZXJzIGZvciByb2NrY2hpcCwgYW5kIHlvdSdyZQpsdWNreSwgSSBoYXZlIGEgcGF0 Y2ggZm9yIHlvdToKCiJkcm0vcm9ja2NoaXA6IFVzZSBkcm1fZ2VtX2ZiX2NyZWF0ZV93aXRoX2Rp cnR5IgoKQ2FuIHlvdSBwbHMgcmV2aWV3L3Rlc3QgdGhhdCBvbmU/CgpUaGFua3MsIERhbmllbAoK PiAKPiA+IAo+ID4gPiArCWlmICghb2JqKSB7Cj4gPiA+ICsJCURSTV9ERUJVR19LTVMoIkZhaWxl ZCB0byBsb29rdXAgR0VNIG9iamVjdFxuIik7Cj4gPiA+ICsKPiA+ID4gKwkJcmV0dXJuIDE7Cj4g PiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJLyogZXN0aW1hdGUgaGVpZ2h0IGJhc2VkIG9uIHRpbGUg c2l6ZSBhbmQgaGVpZ2h0IGZyb20gdXNlcnNwYWNlICovCj4gPiA+ICsJaGVpZ2h0ID0gRElWX1JP VU5EX1VQKHItPmhlaWdodCwgaCkgKiBoOwo+ID4gPiArCj4gPiA+ICsJdGlsZXMgPSAoci0+cGl0 Y2hlc1swXSAvIHcpICogKGhlaWdodCAvIGgpOwo+ID4gPiArCWFmYmNfc2l6ZSA9IEFMSUdOKHRp bGVzICogQUZCQ19IRUFERVJfU0laRSwgQUZCQ19TVVBFUkJMS19BTElHTk1FTlQpOwo+IAo+IFRo aXMgY29tcHV0YXRpb24gaXMgZm9yIG1hbGlkcC9yb2NrY2hpcCwgYnV0IGZvciBrb21lZGEgdGhl IGFsaWdubWVudAo+IGlzIGRpZmZlcmVudC4gU28gaXQgc2VlbXMgaXQgaXMgZHJpdmVyLXNwZWNp ZmljLiBJZiBzbywgd2UgbmVlZAo+IHNvbWUgd2F5IGZvciBzcGVjaWZpYyBkcml2ZXJzIHRvIHBy b3ZpZGUgdGhlaXIgc3BlY2lmaWMgY2hlY2tzCj4gYW5kL29yIHNwZWNpZmljIGRhdGEgZm9yIGdl bmVyaWMgY2hlY2tpbmcgY29kZSB0byB1c2UuCj4gCj4gVGhhbmtzCj4gCj4gQW5kcnplagoKLS0g CkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6 Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbA==