From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 2/2] dma-buf: cleanup shared fence removal Date: Thu, 27 Jun 2019 15:19:08 +0200 Message-ID: References: <20190627101813.61430-1-christian.koenig@amd.com> <20190627101813.61430-2-christian.koenig@amd.com> Reply-To: christian.koenig@amd.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: dri-devel , amd-gfx list List-Id: amd-gfx.lists.freedesktop.org QW0gMjcuMDYuMTkgdW0gMTI6NDMgc2NocmllYiBEYW5pZWwgVmV0dGVyOgo+IE9uIFRodSwgSnVu IDI3LCAyMDE5IGF0IDEyOjE4IFBNIENocmlzdGlhbiBLw7ZuaWcKPiA8Y2tvZW5pZy5sZWljaHR6 dW1lcmtlbkBnbWFpbC5jb20+IHdyb3RlOgo+PiBXaGlsZSBmcmVlaW5nIHVwIG1lbW9yeSBpdCBp cyBlYXNpZXIgdG8gcmVtb3ZlIGEgZmVuY2UgZnJvbSBhIHJlc2VydmF0aW9uCj4+IG9iamVjdCBp bnN0ZWFkIG9mIHNpZ25hbGluZyBpdCBhbmQgaW5zdGFsbGluZyBhIG5ldyBvbmUgaW4gYWxsIG90 aGVyIG9iamVjdHMuCj4+Cj4+IENsZWFuIHRoaXMgdXAgYnkgYWRkaW5nIHRoZSByZW1vdmFsIGZ1 bmN0aW9uIHRvIHRoZSBjb3JlIHJlc2VydmF0aW9uIG9iamVjdAo+PiBjb2RlIGluc3RlYWQgb2Yg bWVzc2luZyB3aXRoIHRoZSBpbnRlcm5hbCBpbiBhbWRncHUuCj4+Cj4+IE5vIGZ1bmN0aW9uYWwg Y2hhbmdlLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4u a29lbmlnQGFtZC5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvZG1hLWJ1Zi9yZXNlcnZhdGlvbi5j ICAgICAgICAgICAgICAgICB8IDYyICsrKysrKysrKysrKysrKysrKysKPj4gICAuLi4vZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYyAgfCA0NSArLS0tLS0tLS0tLS0tLQo+ PiAgIGluY2x1ZGUvbGludXgvcmVzZXJ2YXRpb24uaCAgICAgICAgICAgICAgICAgICB8ICAzICst Cj4+ICAgMyBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkK Pj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9yZXNlcnZhdGlvbi5jIGIvZHJpdmVy cy9kbWEtYnVmL3Jlc2VydmF0aW9uLmMKPj4gaW5kZXggZWY3MTBlZmZlZGZhLi5lNDNhMzE2YTAw NWQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9yZXNlcnZhdGlvbi5jCj4+ICsrKyBi L2RyaXZlcnMvZG1hLWJ1Zi9yZXNlcnZhdGlvbi5jCj4+IEBAIC0yMzEsNiArMjMxLDY4IEBAIHZv aWQgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2Uoc3RydWN0IHJlc2VydmF0aW9u X29iamVjdCAqb2JqLAo+PiAgIH0KPj4gICBFWFBPUlRfU1lNQk9MKHJlc2VydmF0aW9uX29iamVj dF9hZGRfc2hhcmVkX2ZlbmNlKTsKPj4KPj4gKy8qKgo+PiArICogcmVzZXJ2YXRpb25fb2JqZWN0 X3JlbW92ZV9zaGFyZWRfZmVuY2UgLSByZW1vdmUgc2hhcmVkIGZlbmNlcwo+PiArICogQG9iajog dGhlIHJlc2VydmF0aW9uIG9iamVjdAo+PiArICogQGNvbnRleHQ6IHRoZSBjb250ZXh0IG9mIHRo ZSBmZW5jZXMgdG8gcmVtb3ZlCj4+ICsgKgo+PiArICogUmVtb3ZlIHNoYXJlZCBmZW5jZXMgYmFz ZWQgb24gdGhlaXIgZmVuY2UgY29udGV4dC4KPj4gKyAqLwo+IFRoaXMgbmVlZHMgYSBzZXJpb3Vz IGV4cGxhbmF0aW9uIG9mICJ3aHk/Ii4gUmVtb3ZpbmcgZmVuY2VzIHdpdGhvdXQKPiBndWFyYW50 ZWVpbmcgdGhleSdyZSBhbGwgc2lnbmFsZWQgaXMgYSBnb29kIHdheSB0byBjcmVhdGUgaGF2b2Mu IFlvdXIKPiBjb21taXQgbWVzc2FnZSBoYXMgYSBmZXcgd29yZHMgYWJvdXQgd2hhdCB5b3UncmUg ZG9pbmcgaGVyZSwgYnV0IGl0Cj4gc3RpbGwgZG9lc24ndCBleHBsYWluIHdoeSB0aGlzIGlzIHNh ZmUgYW5kIHdoZW4gZXhhY3RseSBpdCBzaG91bGQgYmUKPiB1c2VkLgoKWWVhaCwgSSdtIG5vdCB2 ZXJ5IGtlZW4gYWJvdXQgdGhpcyBlaXRoZXIuCgpUaGUga2V5IHBvaW50IGlzIHRoZSBtZW1vcnkg aXMgbm90IGFjY2Vzc2libGUgYnkgdGhlIGhhcmR3YXJlIGFueSBtb3JlIApiZWNhdXNlIGl0IGlz IGZyZWVkIGFuZCByZW1vdmVkIGZyb20gdGhlIHBhZ2UgdGFibGVzLgoKU28gZnVydGhlciBhY2Nl c3MgaXMgcHJldmVudGVkIGFuZCBpbiB0aGlzIHNwZWNpYWwgY2FzZSBpdCBpcyBhY3R1YWxseSAK dmFsaWQgdG8gZG8gdGhpcyBldmVuIGlmIHRoZSBvcGVyYXRpb24gcmVwcmVzZW50ZWQgYnkgdGhl IGZlbmNlIGlzIHN0aWxsIApvbmdvaW5nLgoKSG93IHNob3VsZCB3ZSB3b3JkIHRoaXM/IFNvbWV0 aGluZyBsaWtlOgoKIMKgKiBSZW1vdmUgc2hhcmVkIGZlbmNlcyBiYXNlZCBvbiB0aGVpciBmZW5j ZSBjb250ZXh0LiBSZW1vdmluZyBhIGZlbmNlIApiZWZvcmUgaXQgaXMgc2lnbmFsZWQgaXMgb25s eSB2YWxpZCBpZiBoYXJkd2FyZSBhY2Nlc3MgaXMgcHJldmVudGVkIGJ5IApzb21lIG90aGVyIG1l YW5zIGxpa2UgSU9NTVUgb3Igc2ltaWxhciB2aXJ0dWFsIG1lbW9yeSBwcm90ZWN0aW9uLgoKPiBB bHNvIEknbSBub3Qgc3VyZSAoZGVwZW5kaW5nIHVwb24gd2hhdCB5b3UgdXNlIHRoaXMgZm9yKSB0 aGlzIGlzCj4gYWN0dWFsbHkgY29ycmVjdCBvdXRzaWRlIG9mIGFtZGdwdSBhbmQgaXQncyBpZ25v cmFuY2Ugb2YgdGhlIGV4Y2x1c2l2ZQo+IGZlbmNlLgoKTm8sIHRoYXQgaXMgY29tcGxldGVseSB1 bnJlbGF0ZWQuIEJ1dCBJIHRob3VnaHQgdGhhdCBJIGNsZWFuIHRoaXMgdXAgCmJlZm9yZSBJIHN0 YXJ0IHRvIHRhY2tsZSB0aGUgZXhjbHVzaXZlIGZlbmNlIGlzc3VlLgoKQ2hyaXN0aWFuLgoKPiAt RGFuaWVsCj4KPj4gK2ludCByZXNlcnZhdGlvbl9vYmplY3RfcmVtb3ZlX3NoYXJlZF9mZW5jZShz dHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjb250ZXh0KQo+PiArewo+PiArICAgICAgIHN0 cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqb2xkLCAqbmV3Owo+PiArICAgICAgIHVuc2ln bmVkIGludCBpLCBqLCBrOwo+PiArCj4+ICsgICAgICAgcmVzZXJ2YXRpb25fb2JqZWN0X2Fzc2Vy dF9oZWxkKG9iaik7Cj4+ICsKPj4gKyAgICAgICBvbGQgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0 X2xpc3Qob2JqKTsKPj4gKyAgICAgICBpZiAoIW9sZCkKPj4gKyAgICAgICAgICAgICAgIHJldHVy biAwOwo+PiArCj4+ICsgICAgICAgbmV3ID0ga21hbGxvYyhvZmZzZXRvZih0eXBlb2YoKm5ldyks IHNoYXJlZFtvbGQtPnNoYXJlZF9tYXhdKSwKPj4gKyAgICAgICAgICAgICAgICAgICAgIEdGUF9L RVJORUwpOwo+PiArICAgICAgIGlmICghbmV3KQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIC1F Tk9NRU07Cj4+ICsKPj4gKyAgICAgICAvKiBHbyB0aHJvdWdoIGFsbCB0aGUgc2hhcmVkIGZlbmNl cyBpbiB0aGUgcmVzZXZhdGlvbiBvYmplY3QgYW5kIHNvcnQKPj4gKyAgICAgICAgKiB0aGUgaW50 ZXJlc3Rpbmcgb25lcyB0byB0aGUgZW5kIG9mIHRoZSBuZXcgbGlzdC4KPj4gKyAgICAgICAgKi8K Pj4gKyAgICAgICBmb3IgKGkgPSAwLCBqID0gb2xkLT5zaGFyZWRfY291bnQsIGsgPSAwOyBpIDwg b2xkLT5zaGFyZWRfY291bnQ7ICsraSkgewo+PiArICAgICAgICAgICAgICAgc3RydWN0IGRtYV9m ZW5jZSAqZjsKPj4gKwo+PiArICAgICAgICAgICAgICAgZiA9IHJjdV9kZXJlZmVyZW5jZV9wcm90 ZWN0ZWQob2xkLT5zaGFyZWRbaV0sCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXNlcnZhdGlvbl9vYmplY3RfaGVsZChvYmopKTsKPj4gKwo+PiArICAg ICAgICAgICAgICAgaWYgKGYtPmNvbnRleHQgPT0gY29udGV4dCkKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgUkNVX0lOSVRfUE9JTlRFUihuZXctPnNoYXJlZFstLWpdLCBmKTsKPj4gKyAgICAg ICAgICAgICAgIGVsc2UKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgUkNVX0lOSVRfUE9JTlRF UihuZXctPnNoYXJlZFtrKytdLCBmKTsKPj4gKyAgICAgICB9Cj4+ICsgICAgICAgbmV3LT5zaGFy ZWRfbWF4ID0gb2xkLT5zaGFyZWRfbWF4Owo+PiArICAgICAgIG5ldy0+c2hhcmVkX2NvdW50ID0g azsKPj4gKwo+PiArICAgICAgIC8qIEluc3RhbGwgdGhlIG5ldyBmZW5jZSBsaXN0LCBzZXFjb3Vu dCBwcm92aWRlcyB0aGUgYmFycmllcnMgKi8KPj4gKyAgICAgICBwcmVlbXB0X2Rpc2FibGUoKTsK Pj4gKyAgICAgICB3cml0ZV9zZXFjb3VudF9iZWdpbigmb2JqLT5zZXEpOwo+PiArICAgICAgIFJD VV9JTklUX1BPSU5URVIob2JqLT5mZW5jZSwgbmV3KTsKPj4gKyAgICAgICB3cml0ZV9zZXFjb3Vu dF9lbmQoJm9iai0+c2VxKTsKPj4gKyAgICAgICBwcmVlbXB0X2VuYWJsZSgpOwo+PiArCj4+ICsg ICAgICAgLyogRHJvcCB0aGUgcmVmZXJlbmNlcyB0byB0aGUgcmVtb3ZlZCBmZW5jZXMgKi8KPj4g KyAgICAgICBmb3IgKGkgPSBqLCBrID0gMDsgaSA8IG9sZC0+c2hhcmVkX2NvdW50OyArK2kpIHsK Pj4gKyAgICAgICAgICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmY7Cj4+ICsKPj4gKyAgICAgICAg ICAgICAgIGYgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG5ldy0+c2hhcmVkW2ldLAo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2YXRpb25f b2JqZWN0X2hlbGQob2JqKSk7Cj4+ICsgICAgICAgICAgICAgICBkbWFfZmVuY2VfcHV0KGYpOwo+ PiArICAgICAgIH0KPj4gKyAgICAgICBrZnJlZV9yY3Uob2xkLCByY3UpOwo+PiArCj4+ICsgICAg ICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICtFWFBPUlRfU1lNQk9MKHJlc2VydmF0aW9uX29iamVjdF9y ZW1vdmVfc2hhcmVkX2ZlbmNlKTsKPj4gKwo+PiAgIC8qKgo+PiAgICAqIHJlc2VydmF0aW9uX29i amVjdF9hZGRfZXhjbF9mZW5jZSAtIEFkZCBhbiBleGNsdXNpdmUgZmVuY2UuCj4+ICAgICogQG9i ajogdGhlIHJlc2VydmF0aW9uIG9iamVjdAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jCj4+IGluZGV4IDEwYWJhZTM5OGU1MS4uOWIyNWFk M2QwMDNlIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf YW1ka2ZkX2dwdXZtLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2FtZGtmZF9ncHV2bS5jCj4+IEBAIC0yMjQsNTAgKzIyNCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1 X2FtZGtmZF9yZW1vdmVfZXZpY3Rpb25fZmVuY2Uoc3RydWN0IGFtZGdwdV9ibyAqYm8sCj4+ICAg ICAgICAgIGlmICghZWYpCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+Cj4+ IC0gICAgICAgb2xkID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0KHJlc3YpOwo+PiAtICAg ICAgIGlmICghb2xkKQo+PiAtICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4+IC0KPj4gLSAgICAg ICBuZXcgPSBrbWFsbG9jKG9mZnNldG9mKHR5cGVvZigqbmV3KSwgc2hhcmVkW29sZC0+c2hhcmVk X21heF0pLAo+PiAtICAgICAgICAgICAgICAgICAgICAgR0ZQX0tFUk5FTCk7Cj4+IC0gICAgICAg aWYgKCFuZXcpCj4+IC0gICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4gLQo+PiAtICAg ICAgIC8qIEdvIHRocm91Z2ggYWxsIHRoZSBzaGFyZWQgZmVuY2VzIGluIHRoZSByZXNldmF0aW9u IG9iamVjdCBhbmQgc29ydAo+PiAtICAgICAgICAqIHRoZSBpbnRlcmVzdGluZyBvbmVzIHRvIHRo ZSBlbmQgb2YgdGhlIGxpc3QuCj4+IC0gICAgICAgICovCj4+IC0gICAgICAgZm9yIChpID0gMCwg aiA9IG9sZC0+c2hhcmVkX2NvdW50LCBrID0gMDsgaSA8IG9sZC0+c2hhcmVkX2NvdW50OyArK2kp IHsKPj4gLSAgICAgICAgICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmY7Cj4+IC0KPj4gLSAgICAg ICAgICAgICAgIGYgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9sZC0+c2hhcmVkW2ldLAo+ PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2YXRp b25fb2JqZWN0X2hlbGQocmVzdikpOwo+PiAtCj4+IC0gICAgICAgICAgICAgICBpZiAoZi0+Y29u dGV4dCA9PSBlZi0+YmFzZS5jb250ZXh0KQo+PiAtICAgICAgICAgICAgICAgICAgICAgICBSQ1Vf SU5JVF9QT0lOVEVSKG5ldy0+c2hhcmVkWy0tal0sIGYpOwo+PiAtICAgICAgICAgICAgICAgZWxz ZQo+PiAtICAgICAgICAgICAgICAgICAgICAgICBSQ1VfSU5JVF9QT0lOVEVSKG5ldy0+c2hhcmVk W2srK10sIGYpOwo+PiAtICAgICAgIH0KPj4gLSAgICAgICBuZXctPnNoYXJlZF9tYXggPSBvbGQt PnNoYXJlZF9tYXg7Cj4+IC0gICAgICAgbmV3LT5zaGFyZWRfY291bnQgPSBrOwo+PiAtCj4+IC0g ICAgICAgLyogSW5zdGFsbCB0aGUgbmV3IGZlbmNlIGxpc3QsIHNlcWNvdW50IHByb3ZpZGVzIHRo ZSBiYXJyaWVycyAqLwo+PiAtICAgICAgIHByZWVtcHRfZGlzYWJsZSgpOwo+PiAtICAgICAgIHdy aXRlX3NlcWNvdW50X2JlZ2luKCZyZXN2LT5zZXEpOwo+PiAtICAgICAgIFJDVV9JTklUX1BPSU5U RVIocmVzdi0+ZmVuY2UsIG5ldyk7Cj4+IC0gICAgICAgd3JpdGVfc2VxY291bnRfZW5kKCZyZXN2 LT5zZXEpOwo+PiAtICAgICAgIHByZWVtcHRfZW5hYmxlKCk7Cj4+IC0KPj4gLSAgICAgICAvKiBE cm9wIHRoZSByZWZlcmVuY2VzIHRvIHRoZSByZW1vdmVkIGZlbmNlcyBvciBtb3ZlIHRoZW0gdG8g ZWZfbGlzdCAqLwo+PiAtICAgICAgIGZvciAoaSA9IGosIGsgPSAwOyBpIDwgb2xkLT5zaGFyZWRf Y291bnQ7ICsraSkgewo+PiAtICAgICAgICAgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZjsKPj4g LQo+PiAtICAgICAgICAgICAgICAgZiA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQobmV3LT5z aGFyZWRbaV0sCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXNlcnZhdGlvbl9vYmplY3RfaGVsZChyZXN2KSk7Cj4+IC0gICAgICAgICAgICAgICBkbWFf ZmVuY2VfcHV0KGYpOwo+PiAtICAgICAgIH0KPj4gLSAgICAgICBrZnJlZV9yY3Uob2xkLCByY3Up Owo+PiAtCj4+IC0gICAgICAgcmV0dXJuIDA7Cj4+ICsgICAgICAgcmV0dXJuIHJlc2VydmF0aW9u X29iamVjdF9yZW1vdmVfc2hhcmVkX2ZlbmNlKHJlc3YsIGVmLT5iYXNlLmNvbnRleHQpOwo+PiAg IH0KPj4KPj4gICBzdGF0aWMgaW50IGFtZGdwdV9hbWRrZmRfYm9fdmFsaWRhdGUoc3RydWN0IGFt ZGdwdV9ibyAqYm8sIHVpbnQzMl90IGRvbWFpbiwKPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvcmVzZXJ2YXRpb24uaCBiL2luY2x1ZGUvbGludXgvcmVzZXJ2YXRpb24uaAo+PiBpbmRleCBm NDdlODE5NmQwMzkuLjFjODMzYTU2YjY3OCAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS9saW51eC9y ZXNlcnZhdGlvbi5oCj4+ICsrKyBiL2luY2x1ZGUvbGludXgvcmVzZXJ2YXRpb24uaAo+PiBAQCAt MjI5LDcgKzIyOSw4IEBAIGludCByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQoc3Ry dWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX2ZlbmNlcyk7Cj4+ICAgdm9pZCByZXNlcnZh dGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpv YmosCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlKTsKPj4gLQo+PiAraW50IHJlc2VydmF0aW9uX29iamVjdF9yZW1vdmVf c2hhcmVkX2ZlbmNlKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGNvbnRleHQpOwo+PiAg IHZvaWQgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHN0cnVjdCByZXNlcnZhdGlv bl9vYmplY3QgKm9iaiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKPj4KPj4gLS0KPj4gMi4xNy4xCj4+Cj4+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKPj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo+Cj4KCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==