From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Koenig, Christian" Subject: Re: [PATCH 3/5] drm: add timeline support for syncobj export/import Date: Mon, 5 Nov 2018 12:13:38 +0000 Message-ID: <8e5160e6-9c8a-5da2-13e6-ab8abb94abc5@amd.com> References: <20181102082517.4456-1-david1.zhou@amd.com> <20181102082517.4456-3-david1.zhou@amd.com> <8dcbdee2-0c0a-2b59-b120-d0a3d9fd63b9@gmail.com> <89b77b9a-db9b-4765-0a9d-58c72fc9cab1@amd.com> <085caaf4-399a-1bcf-88fc-80d2158d3e70@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM04-BN3-obe.outbound.protection.outlook.com (mail-bn3nam04on0614.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe4e::614]) by gabe.freedesktop.org (Postfix) with ESMTPS id 40C2E6E1C1 for ; Mon, 5 Nov 2018 12:13:46 +0000 (UTC) In-Reply-To: Content-Language: en-US Content-ID: <264577984AB6EC4F836463303E508F41@namprd12.prod.outlook.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Zhou, David(ChunMing)" "Zhou, David(ChunMing)" , "dri-devel@lists.freedesktop.org" Cc: Dave Airlie , "Rakos, Daniel" , Jason Ekstrand List-Id: dri-devel@lists.freedesktop.org QW0gMDIuMTEuMTggdW0gMTE6MzQgc2NocmllYiB6aG91Y20xOg0KPg0KPiBPbiAyMDE45bm0MTHm nIgwMuaXpSAxNzo1NCwgS29lbmlnLCBDaHJpc3RpYW4gd3JvdGU6DQo+PiBBbSAwMi4xMS4xOCB1 bSAxMDo0MiBzY2hyaWViIHpob3VjbTE6DQo+Pj4NCj4+PiBPbiAyMDE45bm0MTHmnIgwMuaXpSAx Njo0NiwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToNCj4+Pj4gQW0gMDIuMTEuMTggdW0gMDk6MjUg c2NocmllYiBDaHVubWluZyBaaG91Og0KPj4+Pj4gdXNlciBzcGFjZSBjYW4gc3BlY2lmeSB0aW1l bGluZSBwb2ludCBmZW5jZSB0byBleHBvcnQvaW1wb3J0Lg0KPj4+Pj4NCj4+Pj4+IFNpZ25lZC1v ZmYtYnk6IENodW5taW5nIFpob3UgPGRhdmlkMS56aG91QGFtZC5jb20+DQo+Pj4+PiBDYzogRGFu aWVsIFJha29zIDxEYW5pZWwuUmFrb3NAYW1kLmNvbT4NCj4+Pj4+IENjOiBKYXNvbiBFa3N0cmFu ZCA8amFzb25Aamxla3N0cmFuZC5uZXQ+DQo+Pj4+PiBDYzogQmFzIE5pZXV3ZW5odWl6ZW4gPGJh c0BiYXNuaWV1d2VuaHVpemVuLm5sPg0KPj4+Pj4gQ2M6IERhdmUgQWlybGllIDxhaXJsaWVkQHJl ZGhhdC5jb20+DQo+Pj4+PiBDYzogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0Bh bWQuY29tPg0KPj4+Pj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr Pg0KPj4+PiDCoEZyb20gdGhlIGNvZGluZyBpdCBsb29rcyBnb29kIHRvIG1lLCBidXQgSSBjYW4n dCBqdWRnZSBpZiB0aGF0IHJlYWxseQ0KPj4+PiBtYWtlcyBzZW5zZSB0byBleHBvcnQvaW1wb3J0 IGluZGl2aWR1YWwgcG9pbnRzLg0KPj4+Pg0KPj4+PiBJIHdvdWxkIGhhdmUgcmF0aGVyIGV4cGVj dGVkIHRoYXQgYWx3YXlzIHRoZSB3aG9sZSB0aW1lbGluZSBpcw0KPj4+PiBleHBvcnRlZC9pbXBv cnRlZC4gT3RoZXJ3aXNlIHRoZSB3aG9sZSB0aGluZyB3aXRoIHdhaXRpbmcgZm9yIHN5bmMNCj4+ Pj4gcG9pbnRzIHRvIGFwcGVhciBkb2Vzbid0IHJlYWxseSBtYWtlIHNlbnNlIHRvIG1lLg0KPj4+ IFdlIGNhbiBDcHUgd2FpdCBvbiBpbmRpdmlkdWFsIHBvaW50cywgd2h5IGNhbiBub3Qgd2UgZXhw b3J0L2ltcG9ydCANCj4+PiB0aGVtPw0KPj4+IEkgY29uZmlybWVkIHdpdGggRGFuaWVsIGJlZm9y ZSwgaGUgc2FpZCB0aGUgZXh0ZW5zaW9uIG5lZWQgYm90aCB0aGVtLA0KPj4+IGV4cG9ydC9pbXBv cnQgaW5kaXZpZHVhbCBwb2ludHMgYW5kIGV4cG9ydC9pbXBvcnQgdGhlIHdob2xlIHRpbWVsaW5l DQo+Pj4gc2VtYXBob3JlLg0KPj4+IE1vcmUgZGlzY3Vzc2lvbiBpcw0KPj4+IGh0dHBzOi8vZ2l0 bGFiLmtocm9ub3Mub3JnL3Z1bGthbi92dWxrYW4vbWVyZ2VfcmVxdWVzdHMvMjY5Ng0KPj4gQWgh IEl0IGxvb2tlZCBpbml0aWFsbHkgdG8gbWUgdGhhdCB0aGlzIHdhcyB0aGUgb25seSB3YXkgdG8N Cj4+IGV4cG9ydC9pbXBvcnQgdGltZWxpbmUgc3luYyBvYmplY3RzLg0KPj4NCj4+IFRoaW5raW5n IG1vcmUgYWJvdXQgaXQgd291bGRuJ3QgaXQgYmUgYmV0dGVyIHRvIHByb3ZpZGUgYSBmdW5jdGlv biB0bw0KPj4gc2lnbmFsIGEgc3luYyBwb2ludCBmcm9tIGFub3RoZXIgc3luYyBwb2ludD8NCj4+ DQo+PiBUaGF0IHdvdWxkIHByb3ZpZGUgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eSwgd291bGQgYmUg Y2xlYW5lciB0byBpbXBsZW1lbnQNCj4+IGFuZCBtb3JlIGZsZXhpYmxlIG9uIHRvcC4NCj4+DQo+ PiBFLmcuIGlmIHlvdSB3YW50IHRvIGV4cG9ydCBvbmx5IGEgc3BlY2lmaWMgc3luYyBwb2ludCB5 b3UgZmlyc3QgY3JlYXRlIGENCj4+IG5ldyBzeW5jb2JqIGFuZCB0aGUgbW92ZSBvdmVyIHRoaXMg c3luYyBwb2ludCBpbnRvIHRoZSBzeW5jb2JqLg0KPiBTb3JyeSwgSSBkaWRuJ3QgY29tcGxldGVs eSBnZXQgeW91ciBtZWFucy4gQ291bGQgeW91IGRldGFpbCBhIGJpdD8NCj4gYnV0IEkgdGhpbmsg d2UgbmVlZCB0byBtZWV0IGV4cG9ydC9pbXBvcnQgZ29hbHM6DQo+IDEuIGV4cG9ydCBzZXBjaWZp YyBzeW5jIHBvaW50IG9yIGJpbmFyeSBzeW5jb2JqIGZlbmNlIHRvIHN5bmMgZmlsZSBmZCANCj4g b3IgaGFuZGxlLg0KDQpXZWxsIHRoYXQgaXMgbm90IGFuIGV4cG9ydCBub3IgaW1wb3J0IGluIHRo ZSBzZW5zZSBvZiB0aGUgZXhpc3RpbmcgQVBJIA0KYmVjYXVzZSBpdCBjcmVhdGVzIG5ldyBvYmpl Y3RzIHdoaWxlIHRoZSBleGlzdGluZyBleHBvcnQgZnVuY3Rpb24ganVzdCANCnJldHVybiBhIGRp ZmZlcmVudCB0eXBlIG9mIGhhbmRsZSBmb3IgdGhlIHNhbWUgb2JqZWN0Lg0KDQo+IDIuIGltcG9y dCBmZW5jZSBmcm9tIGZkL2hhbmRsZSB0byB0aW1lbGluZSBzeW5jIHBvaW50IG9yIGJhbm9yeSBz eW5jb2JqLg0KDQpNeSBpZGVhIGlzIHRvIGhhdmUgYSAidHJhbnNmZXIiIGZ1bmN0aW9uIHdoaWNo IHNheXMgc2lnbmFsIHRoaXMgc3luY29iaiANCmZyb20gdGhpcyBvdGhlciBzeW5jb2JqIChib3Ro IGNhbiBlaXRoZXIgYmUgdGltZWxpbmUgb3IgYmluYXJ5KS4NCg0KVGhpcyB3YXkgeW91IGNhbiBo YW5kbGUgcXVpdGUgYSBidW5jaCBvZiB1c2UgY2FzZXMgd2l0aCBqdXN0IGEgc2luZ2xlIA0KZnVu Y3Rpb24uDQoNCkUuZy4gZXhwb3J0IGEgc3BlY2lmaWMgdGltZWxpbmUgcG9pbnQgaW50byBhbiBm ZDogQ3JlYXRlIGEgbmV3IHN5bmNvYmosIA0KdHJhbnNmZXIgeW91ciBzeW5jIHBvaW50ZXIgZnJv bSB0aGUgZXhpc3Rpbmcgb2JqZWN0IHRvIHRoYXQgb25lLCBleHBvcnQgDQppdCBhcyBmZC4NCg0K Q29udmVydGluZyBhIHRpbWVsaW5lIHN5bm9iaiBpbnRvIGEgYmluYXJ5OiBDcmVhdGUgYSBuZXcg YmluYXJ5IHN5bmNvYmosIA0KdHJhbnNmZXIgdGhlIGxhc3Qgc3luYyBwb2ludCBmcm9tIHRoZSBl eGlzdGluZyB0byB0aGF0IG5ldyBvbmUuDQoNCmV0YyBldGMuLi4NCg0KUmVnYXJkcywNCkNocmlz dGlhbi4NCg0KPiAzLiBleHBvcnQvaW1wb3J0IHRoZSB3aG9sZSB0aW1lbGluZSBzZWFtcGhvcmUu DQo+DQo+IEknbSBzdGlsbCBub3Qgc3VyZSBob3cgeW91IG1lbnRpb25lZCBjYW4gYWNoaWV2ZSB0 aGVzZS4NCj4NCj4gVGhhbmtzLA0KPiBEYXZpZA0KPj4NCj4+IE90aGVyd2lzZSB5b3UgbWl4IG11 bHRpcGxlIG9wZXJhdGlvbnMgaW50byBvbmUgSU9DVEwgYW5kIHRoYXQgaXMgdXN1YWxseQ0KPj4g bm90IGEgZ29vZCBpZGVhLg0KPj4NCj4+IFJlZ2FyZHMsDQo+PiBDaHJpc3RpYW4uDQo+Pg0KPj4+ IFRoYW5rcywNCj4+PiBEYXZpZCBaaG91DQo+Pj4+IENocmlzdGlhbi4NCj4+Pj4NCj4+Pj4+IC0t LQ0KPj4+Pj4gwqDCoCBkcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggfMKgIDQgKysNCj4+ Pj4+IMKgwqAgZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jwqDCoMKgIHzCoCA0ICsrDQo+Pj4+ PiDCoMKgIGRyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jwqAgfCA3Ng0KPj4+Pj4gKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLQ0KPj4+Pj4gwqDCoCBpbmNsdWRlL3VhcGkvZHJt L2RybS5owqDCoMKgwqDCoMKgwqDCoCB8IDExICsrKysrDQo+Pj4+PiDCoMKgIDQgZmlsZXMgY2hh bmdlZCwgODggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkNCj4+Pj4+DQo+Pj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oDQo+Pj4+PiBiL2RyaXZlcnMv Z3B1L2RybS9kcm1faW50ZXJuYWwuaA0KPj4+Pj4gaW5kZXggOWM0ODI2NDExYTNjLi41YWQ2Y2Jk YjY4YWIgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgN Cj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaA0KPj4+Pj4gQEAgLTE4 MSw2ICsxODEsMTAgQEAgaW50IGRybV9zeW5jb2JqX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QN Cj4+Pj4+IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwNCj4+Pj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0 ZSk7DQo+Pj4+PiDCoMKgIGludCBkcm1fc3luY29ial9mZF90b19oYW5kbGVfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZA0KPj4+Pj4gKmRhdGEsDQo+Pj4+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZh dGUpOw0KPj4+Pj4gK2ludCBkcm1fc3luY29ial9oYW5kbGVfdG9fZmRfaW9jdGwyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHZvaWQNCj4+Pj4+ICpkYXRhLA0KPj4+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsN Cj4+Pj4+ICtpbnQgZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3RsMihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkDQo+Pj4+PiAqZGF0YSwNCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7DQo+Pj4+ PiDCoMKgIGludCBkcm1fc3luY29ial93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsDQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsNCj4+Pj4+IMKgwqAgaW50IGRybV9zeW5jb2Jq X3RpbWVsaW5lX3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZA0KPj4+Pj4g KmRhdGEsDQo+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jIA0K Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMNCj4+Pj4+IGluZGV4IDc1NzhlZjZk YzFkMS4uMzY0ZDI2ZTk0OWNmIDEwMDY0NA0KPj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9pb2N0bC5jDQo+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMNCj4+Pj4+ IEBAIC02NzMsNiArNjczLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2Mg ZHJtX2lvY3Rsc1tdDQo+Pj4+PiA9IHsNCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwNCj4+Pj4+IMKgwqDCoMKgwqDC oCBEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JKX0ZEX1RPX0hBTkRMRSwNCj4+Pj4+IGRy bV9zeW5jb2JqX2ZkX3RvX2hhbmRsZV9pb2N0bCwNCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwNCj4+Pj4+ICvCoMKg wqAgRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9IQU5ETEVfVE9fRkQyLA0KPj4+Pj4g ZHJtX3N5bmNvYmpfaGFuZGxlX3RvX2ZkX2lvY3RsMiwNCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksDQo+Pj4+PiArwqDCoMKg IERSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfRkRfVE9fSEFORExFMiwNCj4+Pj4+IGRy bV9zeW5jb2JqX2ZkX3RvX2hhbmRsZV9pb2N0bDIsDQo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgRFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLA0KPj4+Pj4gwqDCoMKgwqDC oMKgIERSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfV0FJVCwgZHJtX3N5bmNvYmpfd2Fp dF9pb2N0bCwNCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIERSTV9VTkxP Q0tFRHxEUk1fUkVOREVSX0FMTE9XKSwNCj4+Pj4+IMKgwqDCoMKgwqDCoCBEUk1fSU9DVExfREVG KERSTV9JT0NUTF9TWU5DT0JKX1RJTUVMSU5FX1dBSVQsDQo+Pj4+PiBkcm1fc3luY29ial90aW1l bGluZV93YWl0X2lvY3RsLA0KPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f c3luY29iai5jDQo+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jDQo+Pj4+PiBp bmRleCA5YWQ1OGQwZDIxY2QuLmRmZmM0MmJhMmY5MSAxMDA2NDQNCj4+Pj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fc3luY29iai5jDQo+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X3N5bmNvYmouYw0KPj4+Pj4gQEAgLTY3Nyw3ICs2NzcsNyBAQCBzdGF0aWMgaW50IGRybV9zeW5j b2JqX2ZkX3RvX2hhbmRsZShzdHJ1Y3QNCj4+Pj4+IGRybV9maWxlICpmaWxlX3ByaXZhdGUsDQo+ Pj4+PiDCoMKgIH0NCj4+Pj4+IMKgwqAgwqAgc3RhdGljIGludCBkcm1fc3luY29ial9pbXBvcnRf c3luY19maWxlX2ZlbmNlKHN0cnVjdCBkcm1fZmlsZQ0KPj4+Pj4gKmZpbGVfcHJpdmF0ZSwNCj4+ Pj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp bnQgZmQsIGludCBoYW5kbGUpDQo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IGZkLCBpbnQgaGFuZGxlLCB1aW50NjRfdCBwb2ludCkN Cj4+Pj4+IMKgwqAgew0KPj4+Pj4gwqDCoMKgwqDCoMKgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl ID0gc3luY19maWxlX2dldF9mZW5jZShmZCk7DQo+Pj4+PiDCoMKgwqDCoMKgwqAgc3RydWN0IGRy bV9zeW5jb2JqICpzeW5jb2JqOw0KPj4+Pj4gQEAgLTY5MSwxNCArNjkxLDE0IEBAIHN0YXRpYyBp bnQNCj4+Pj4+IGRybV9zeW5jb2JqX2ltcG9ydF9zeW5jX2ZpbGVfZmVuY2Uoc3RydWN0IGRybV9m aWxlICpmaWxlX3ByaXZhdGUsDQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVO T0VOVDsNCj4+Pj4+IMKgwqDCoMKgwqDCoCB9DQo+Pj4+PiDCoMKgIC3CoMKgwqAgZHJtX3N5bmNv YmpfcmVwbGFjZV9mZW5jZShzeW5jb2JqLCAwLCBmZW5jZSk7DQo+Pj4+PiArwqDCoMKgIGRybV9z eW5jb2JqX3JlcGxhY2VfZmVuY2Uoc3luY29iaiwgcG9pbnQsIGZlbmNlKTsNCj4+Pj4+IMKgwqDC oMKgwqDCoCBkbWFfZmVuY2VfcHV0KGZlbmNlKTsNCj4+Pj4+IMKgwqDCoMKgwqDCoCBkcm1fc3lu Y29ial9wdXQoc3luY29iaik7DQo+Pj4+PiDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7DQo+Pj4+PiDC oMKgIH0NCj4+Pj4+IMKgwqAgwqAgc3RhdGljIGludCBkcm1fc3luY29ial9leHBvcnRfc3luY19m aWxlKHN0cnVjdCBkcm1fZmlsZQ0KPj4+Pj4gKmZpbGVfcHJpdmF0ZSwNCj4+Pj4+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgaGFuZGxlLCBpbnQgKnBfZmQpDQo+ Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IGhhbmRsZSwg dWludDY0X3QgcG9pbnQsIGludCAqcF9mZCkNCj4+Pj4+IMKgwqAgew0KPj4+Pj4gwqDCoMKgwqDC oMKgIGludCByZXQ7DQo+Pj4+PiDCoMKgwqDCoMKgwqAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7 DQo+Pj4+PiBAQCAtNzA4LDcgKzcwOCw3IEBAIHN0YXRpYyBpbnQgZHJtX3N5bmNvYmpfZXhwb3J0 X3N5bmNfZmlsZShzdHJ1Y3QNCj4+Pj4+IGRybV9maWxlICpmaWxlX3ByaXZhdGUsDQo+Pj4+PiDC oMKgwqDCoMKgwqAgaWYgKGZkIDwgMCkNCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVy biBmZDsNCj4+Pj4+IMKgwqAgLcKgwqDCoCByZXQgPSBkcm1fc3luY29ial9maW5kX2ZlbmNlKGZp bGVfcHJpdmF0ZSwgaGFuZGxlLCAwLCAwLA0KPj4+Pj4gJmZlbmNlKTsNCj4+Pj4+ICvCoMKgwqAg cmV0ID0gZHJtX3N5bmNvYmpfZmluZF9mZW5jZShmaWxlX3ByaXZhdGUsIGhhbmRsZSwgcG9pbnQs IDAsDQo+Pj4+PiAmZmVuY2UpOw0KPj4+Pj4gwqDCoMKgwqDCoMKgIGlmIChyZXQpDQo+Pj4+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVycl9wdXRfZmQ7DQo+Pj4+PiDCoMKgIEBAIC04MTcs OSArODE3LDE0IEBAIGRybV9zeW5jb2JqX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QNCj4+Pj4+ IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwNCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg IGFyZ3MtPmZsYWdzICE9DQo+Pj4+PiBEUk1fU1lOQ09CSl9IQU5ETEVfVE9fRkRfRkxBR1NfRVhQ T1JUX1NZTkNfRklMRSkNCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFM Ow0KPj4+Pj4gwqDCoCAtwqDCoMKgIGlmIChhcmdzLT5mbGFncyAmDQo+Pj4+PiBEUk1fU1lOQ09C Sl9IQU5ETEVfVE9fRkRfRkxBR1NfRVhQT1JUX1NZTkNfRklMRSkNCj4+Pj4+ICvCoMKgwqAgaWYg KGFyZ3MtPmZsYWdzICYNCj4+Pj4+IERSTV9TWU5DT0JKX0hBTkRMRV9UT19GRF9GTEFHU19FWFBP UlRfU1lOQ19GSUxFKSB7DQo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9zeW5jb2Jq ICpzeW5jb2JqID0gZHJtX3N5bmNvYmpfZmluZChmaWxlX3ByaXZhdGUsDQo+Pj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgYXJncy0+aGFuZGxlKTsNCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIXN5bmNvYmog fHwgc3luY29iai0+dHlwZSAhPSBEUk1fU1lOQ09CSl9UWVBFX0JJTkFSWSkNCj4+Pj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOw0KPj4+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgwqAgcmV0dXJuIGRybV9zeW5jb2JqX2V4cG9ydF9zeW5jX2ZpbGUoZmlsZV9wcml2YXRlLA0K Pj4+Pj4gYXJncy0+aGFuZGxlLA0KPj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmYXJncy0+ZmQpOw0KPj4+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwLCAmYXJncy0+ZmQp Ow0KPj4+Pj4gK8KgwqDCoCB9DQo+Pj4+PiDCoMKgIMKgwqDCoMKgwqAgcmV0dXJuIGRybV9zeW5j b2JqX2hhbmRsZV90b19mZChmaWxlX3ByaXZhdGUsIGFyZ3MtPmhhbmRsZSwNCj4+Pj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZhcmdzLT5mZCk7DQo+Pj4+ PiBAQCAtODQxLDE1ICs4NDYsNzIgQEAgZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3RsKHN0 cnVjdA0KPj4+Pj4gZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLA0KPj4+Pj4gwqDCoMKgwqDC oMKgwqDCoMKgwqAgYXJncy0+ZmxhZ3MgIT0NCj4+Pj4+IERSTV9TWU5DT0JKX0ZEX1RPX0hBTkRM RV9GTEFHU19JTVBPUlRfU1lOQ19GSUxFKQ0KPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0 dXJuIC1FSU5WQUw7DQo+Pj4+PiDCoMKgICvCoMKgwqAgaWYgKGFyZ3MtPmZsYWdzICYNCj4+Pj4+ IERSTV9TWU5DT0JKX0ZEX1RPX0hBTkRMRV9GTEFHU19JTVBPUlRfU1lOQ19GSUxFKSB7DQo+Pj4+ PiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9zeW5jb2JqICpzeW5jb2JqID0gZHJtX3N5bmNv YmpfZmluZChmaWxlX3ByaXZhdGUsDQo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXJncy0+aGFuZGxlKTsN Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIXN5bmNvYmogfHwgc3luY29iai0+dHlwZSAhPSBE Uk1fU1lOQ09CSl9UWVBFX0JJTkFSWSkNCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJl dHVybiAtRUlOVkFMOw0KPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBkcm1fc3luY29ial9p bXBvcnRfc3luY19maWxlX2ZlbmNlKGZpbGVfcHJpdmF0ZSwNCj4+Pj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFyZ3MtPmZkLA0K Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgYXJncy0+aGFuZGxlLA0KPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMCk7DQo+Pj4+PiArwqDCoMKgIH0NCj4+ Pj4+ICsNCj4+Pj4+ICvCoMKgwqAgcmV0dXJuIGRybV9zeW5jb2JqX2ZkX3RvX2hhbmRsZShmaWxl X3ByaXZhdGUsIGFyZ3MtPmZkLA0KPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICZhcmdzLT5oYW5kbGUpOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICtpbnQN Cj4+Pj4+ICtkcm1fc3luY29ial9oYW5kbGVfdG9fZmRfaW9jdGwyKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsDQo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKQ0KPj4+Pj4gK3sNCj4+Pj4+ICvC oMKgwqAgc3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZTIgKmFyZ3MgPSBkYXRhOw0KPj4+Pj4gKw0K Pj4+Pj4gK8KgwqDCoCBpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lO Q09CSikpDQo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9ERVY7DQo+Pj4+PiArDQo+ Pj4+PiArwqDCoMKgIGlmIChhcmdzLT5wYWQpDQo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJu IC1FSU5WQUw7DQo+Pj4+PiArDQo+Pj4+PiArwqDCoMKgIGlmIChhcmdzLT5mbGFncyAhPSAwICYm DQo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgYXJncy0+ZmxhZ3MgIT0NCj4+Pj4+IERSTV9TWU5DT0JK X0hBTkRMRV9UT19GRF9GTEFHU19FWFBPUlRfU1lOQ19GSUxFKQ0KPj4+Pj4gK8KgwqDCoMKgwqDC oMKgIHJldHVybiAtRUlOVkFMOw0KPj4+Pj4gKw0KPj4+Pj4gK8KgwqDCoCBpZiAoYXJncy0+Zmxh Z3MgJiANCj4+Pj4+IERSTV9TWU5DT0JKX0hBTkRMRV9UT19GRF9GTEFHU19FWFBPUlRfU1lOQ19G SUxFKQ0KPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBkcm1fc3luY29ial9leHBvcnRfc3lu Y19maWxlKGZpbGVfcHJpdmF0ZSwNCj4+Pj4+IGFyZ3MtPmhhbmRsZSwNCj4+Pj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXJncy0+cG9p bnQsICZhcmdzLT5mZCk7DQo+Pj4+PiArDQo+Pj4+PiArwqDCoMKgIHJldHVybiBkcm1fc3luY29i al9oYW5kbGVfdG9fZmQoZmlsZV9wcml2YXRlLCBhcmdzLT5oYW5kbGUsDQo+Pj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJmFyZ3MtPmZkKTsNCj4+Pj4+ICt9DQo+ Pj4+PiArDQo+Pj4+PiAraW50DQo+Pj4+PiArZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3Rs MihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLA0KPj4+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSkN Cj4+Pj4+ICt7DQo+Pj4+PiArwqDCoMKgIHN0cnVjdCBkcm1fc3luY29ial9oYW5kbGUyICphcmdz ID0gZGF0YTsNCj4+Pj4+ICsNCj4+Pj4+ICvCoMKgwqAgaWYgKCFkcm1fY29yZV9jaGVja19mZWF0 dXJlKGRldiwgRFJJVkVSX1NZTkNPQkopKQ0KPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAt RU5PREVWOw0KPj4+Pj4gKw0KPj4+Pj4gK8KgwqDCoCBpZiAoYXJncy0+cGFkKQ0KPj4+Pj4gK8Kg wqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOw0KPj4+Pj4gKw0KPj4+Pj4gK8KgwqDCoCBpZiAo YXJncy0+ZmxhZ3MgIT0gMCAmJg0KPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGFyZ3MtPmZsYWdzICE9 DQo+Pj4+PiBEUk1fU1lOQ09CSl9GRF9UT19IQU5ETEVfRkxBR1NfSU1QT1JUX1NZTkNfRklMRSkN Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsNCj4+Pj4+ICsNCj4+Pj4+IMKg wqDCoMKgwqDCoCBpZiAoYXJncy0+ZmxhZ3MgJg0KPj4+Pj4gRFJNX1NZTkNPQkpfRkRfVE9fSEFO RExFX0ZMQUdTX0lNUE9SVF9TWU5DX0ZJTEUpDQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBy ZXR1cm4gZHJtX3N5bmNvYmpfaW1wb3J0X3N5bmNfZmlsZV9mZW5jZShmaWxlX3ByaXZhdGUsDQo+ Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGFyZ3MtPmZkLA0KPj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXJncy0+aGFuZGxlKTsNCj4+Pj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGFyZ3MtPmhhbmRsZSwNCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFyZ3MtPnBvaW50KTsNCj4+Pj4+IMKgwqAgwqDCoMKg wqDCoCByZXR1cm4gZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlKGZpbGVfcHJpdmF0ZSwgYXJncy0+ ZmQsDQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAm YXJncy0+aGFuZGxlKTsNCj4+Pj4+IMKgwqAgfQ0KPj4+Pj4gwqDCoCArDQo+Pj4+PiDCoMKgIHN0 cnVjdCBzeW5jb2JqX3dhaXRfZW50cnkgew0KPj4+Pj4gwqDCoMKgwqDCoMKgIHN0cnVjdCB0YXNr X3N0cnVjdCAqdGFzazsNCj4+Pj4+IMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZTsNCj4+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIGIvaW5jbHVkZS91 YXBpL2RybS9kcm0uaA0KPj4+Pj4gaW5kZXggMjNjNDk3OWQ4YTFjLi5kYTVkZjJhNDJmYzMgMTAw NjQ0DQo+Pj4+PiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oDQo+Pj4+PiArKysgYi9pbmNs dWRlL3VhcGkvZHJtL2RybS5oDQo+Pj4+PiBAQCAtNzM1LDYgKzczNSwxNSBAQCBzdHJ1Y3QgZHJt X3N5bmNvYmpfaGFuZGxlIHsNCj4+Pj4+IMKgwqDCoMKgwqDCoCBfX3MzMiBmZDsNCj4+Pj4+IMKg wqDCoMKgwqDCoCBfX3UzMiBwYWQ7DQo+Pj4+PiDCoMKgIH07DQo+Pj4+PiArc3RydWN0IGRybV9z eW5jb2JqX2hhbmRsZTIgew0KPj4+Pj4gK8KgwqDCoCBfX3UzMiBoYW5kbGU7DQo+Pj4+PiArwqDC oMKgIF9fdTMyIGZsYWdzOw0KPj4+Pj4gK8KgwqDCoCBfX3U2NCBwb2ludDsNCj4+Pj4+ICsNCj4+ Pj4+ICvCoMKgwqAgX19zMzIgZmQ7DQo+Pj4+PiArwqDCoMKgIF9fdTMyIHBhZDsNCj4+Pj4+ICt9 Ow0KPj4+Pj4gKw0KPj4+Pj4gwqDCoCDCoCAjZGVmaW5lIERSTV9TWU5DT0JKX1dBSVRfRkxBR1Nf V0FJVF9BTEwgKDEgPDwgMCkNCj4+Pj4+IMKgwqAgI2RlZmluZSBEUk1fU1lOQ09CSl9XQUlUX0ZM QUdTX1dBSVRfRk9SX1NVQk1JVCAoMSA8PCAxKQ0KPj4+Pj4gQEAgLTkzOCw2ICs5NDcsOCBAQCBl eHRlcm4gIkMiIHsNCj4+Pj4+IMKgwqAgwqAgI2RlZmluZSBEUk1fSU9DVExfU1lOQ09CSl9USU1F TElORV9XQUlUIERSTV9JT1dSKDB4Q0EsIHN0cnVjdA0KPj4+Pj4gZHJtX3N5bmNvYmpfdGltZWxp bmVfd2FpdCkNCj4+Pj4+IMKgwqAgI2RlZmluZSBEUk1fSU9DVExfU1lOQ09CSl9RVUVSWcKgwqDC oMKgwqDCoMKgIERSTV9JT1dSKDB4Q0IsIHN0cnVjdA0KPj4+Pj4gZHJtX3N5bmNvYmpfdGltZWxp bmVfcXVlcnkpDQo+Pj4+PiArI2RlZmluZSBEUk1fSU9DVExfU1lOQ09CSl9IQU5ETEVfVE9fRkQy wqDCoMKgIERSTV9JT1dSKDB4Q0MsIHN0cnVjdA0KPj4+Pj4gZHJtX3N5bmNvYmpfaGFuZGxlMikN Cj4+Pj4+ICsjZGVmaW5lIERSTV9JT0NUTF9TWU5DT0JKX0ZEX1RPX0hBTkRMRTLCoMKgwqAgRFJN X0lPV1IoMHhDRCwgc3RydWN0DQo+Pj4+PiBkcm1fc3luY29ial9oYW5kbGUyKQ0KPj4+Pj4gwqDC oCDCoCAvKioNCj4+Pj4+IMKgwqDCoCAqIERldmljZSBzcGVjaWZpYyBpb2N0bHMgc2hvdWxkIG9u bHkgYmUgaW4gdGhlaXIgcmVzcGVjdGl2ZSANCj4+Pj4+IGhlYWRlcnMNCj4NCg0KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==