From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhou, David(ChunMing)" Subject: RE: [PATCH 1/3] [RFC]drm: add syncobj timeline support v4 Date: Fri, 14 Sep 2018 07:46:21 +0000 Message-ID: References: <20180906062523.16542-1-david1.zhou@amd.com> <4374aa17-c659-0c22-a487-c5e236690108@amd.com> <7117b33b-c24f-6cb5-5372-143385f7a7b5@gmail.com> <241f52a9-cb52-c95a-a4ed-d8852bc43980@amd.com> <6879599a-0270-3eae-f8a2-1efc154159bb@amd.com> <54f6a4e6-36e1-fb6d-967a-81a105ea271d@amd.com> <98be0a08-caeb-7f24-1263-9ce55ee25ff2@amd.com> <2c099d65-7a39-94a8-26d0-70bb2f1ccd5f@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <2c099d65-7a39-94a8-26d0-70bb2f1ccd5f@amd.com> 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: "Koenig, Christian" , "dri-devel@lists.freedesktop.org" Cc: Dave Airlie , "Rakos, Daniel" , "amd-gfx@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS29lbmlnLCBDaHJpc3Rp YW4NCj4gU2VudDogRnJpZGF5LCBTZXB0ZW1iZXIgMTQsIDIwMTggMzoyNyBQTQ0KPiBUbzogWmhv dSwgRGF2aWQoQ2h1bk1pbmcpIDxEYXZpZDEuWmhvdUBhbWQuY29tPjsgWmhvdSwNCj4gRGF2aWQo Q2h1bk1pbmcpIDxEYXZpZDEuWmhvdUBhbWQuY29tPjsgZHJpLQ0KPiBkZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcNCj4gQ2M6IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+OyBSYWtv cywgRGFuaWVsDQo+IDxEYW5pZWwuUmFrb3NAYW1kLmNvbT47IGFtZC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnOyBEYW5pZWwgVmV0dGVyDQo+IDxkYW5pZWxAZmZ3bGwuY2g+DQo+IFN1YmplY3Q6 IFJlOiBbUEFUQ0ggMS8zXSBbUkZDXWRybTogYWRkIHN5bmNvYmogdGltZWxpbmUgc3VwcG9ydCB2 NA0KPiANCj4gQW0gMTQuMDkuMjAxOCB1bSAwNTo1OSBzY2hyaWViIHpob3VjbTE6DQo+ID4NCj4g Pg0KPiA+IE9uIDIwMTjlubQwOeaciDE05pelIDExOjE0LCB6aG91Y20xIHdyb3RlOg0KPiA+Pg0K PiA+Pg0KPiA+PiBPbiAyMDE45bm0MDnmnIgxM+aXpSAxODoyMiwgQ2hyaXN0aWFuIEvDtm5pZyB3 cm90ZToNCj4gPj4+IEFtIDEzLjA5LjIwMTggdW0gMTE6MzUgc2NocmllYiBaaG91LCBEYXZpZChD aHVuTWluZyk6DQo+ID4+Pj4NCj4gPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g Pj4+Pj4gRnJvbTogS29lbmlnLCBDaHJpc3RpYW4NCj4gPj4+Pj4gU2VudDogVGh1cnNkYXksIFNl cHRlbWJlciAxMywgMjAxOCA1OjIwIFBNDQo+ID4+Pj4+IFRvOiBaaG91LCBEYXZpZChDaHVuTWlu ZykgPERhdmlkMS5aaG91QGFtZC5jb20+OyBkcmktDQo+ID4+Pj4+IGRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZw0KPiA+Pj4+PiBDYzogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT47 IFJha29zLCBEYW5pZWwNCj4gPj4+Pj4gPERhbmllbC5SYWtvc0BhbWQuY29tPjsgYW1kLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gPj4+Pj4gU3ViamVjdDogUmU6IFtQQVRDSCAxLzNdIFtS RkNdZHJtOiBhZGQgc3luY29iaiB0aW1lbGluZSBzdXBwb3J0IHY0DQo+ID4+Pj4+DQo+ID4+Pj4+ IEFtIDEzLjA5LjIwMTggdW0gMTE6MTEgc2NocmllYiBaaG91LCBEYXZpZChDaHVuTWluZyk6DQo+ ID4+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4+PiBGcm9tOiBDaHJp c3RpYW4gS8O2bmlnIDxja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT4NCj4gPj4+Pj4+ PiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDEzLCAyMDE4IDQ6NTAgUE0NCj4gPj4+Pj4+PiBU bzogWmhvdSwgRGF2aWQoQ2h1bk1pbmcpIDxEYXZpZDEuWmhvdUBhbWQuY29tPjsgS29lbmlnLA0K PiA+Pj4+Pj4+IENocmlzdGlhbiA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPjsNCj4gPj4+Pj4+ PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+ID4+Pj4+Pj4gQ2M6IERhdmUgQWly bGllIDxhaXJsaWVkQHJlZGhhdC5jb20+OyBSYWtvcywgRGFuaWVsDQo+ID4+Pj4+Pj4gPERhbmll bC5SYWtvc0BhbWQuY29tPjsgYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gPj4+Pj4+ PiBTdWJqZWN0OiBSZTogW1BBVENIIDEvM10gW1JGQ11kcm06IGFkZCBzeW5jb2JqIHRpbWVsaW5l IHN1cHBvcnQNCj4gPj4+Pj4+PiB2NA0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQW0gMTMuMDkuMjAx OCB1bSAwOTo0MyBzY2hyaWViIFpob3UsIERhdmlkKENodW5NaW5nKToNCj4gPj4+Pj4+Pj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+Pj4+PiBGcm9tOiBLb2VuaWcsIENocmlz dGlhbg0KPiA+Pj4+Pj4+Pj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAxMywgMjAxOCAyOjU2 IFBNDQo+ID4+Pj4+Pj4+PiBUbzogWmhvdSwgRGF2aWQoQ2h1bk1pbmcpIDxEYXZpZDEuWmhvdUBh bWQuY29tPjsgWmhvdSwNCj4gPj4+Pj4+Pj4+IERhdmlkKENodW5NaW5nKSA8RGF2aWQxLlpob3VA YW1kLmNvbT47IGRyaS0NCj4gPj4+Pj4+Pj4+IGRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0K PiA+Pj4+Pj4+Pj4gQ2M6IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+OyBSYWtvcywg RGFuaWVsDQo+ID4+Pj4+Pj4+PiA8RGFuaWVsLlJha29zQGFtZC5jb20+OyBhbWQtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZw0KPiA+Pj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtQQVRDSCAxLzNdIFtS RkNdZHJtOiBhZGQgc3luY29iaiB0aW1lbGluZQ0KPiA+Pj4+Pj4+Pj4gc3VwcG9ydCB2NA0KPiA+ Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IEFtIDEzLjA5LjIwMTggdW0gMDQ6MTUgc2NocmllYiB6aG91 Y20xOg0KPiA+Pj4+Pj4+Pj4+IE9uIDIwMTjlubQwOeaciDEy5pelIDE5OjA1LCBDaHJpc3RpYW4g S8O2bmlnIHdyb3RlOg0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4gW1NOSVBdDQo+ID4+Pj4+Pj4+Pj4+Pj4+ PiArc3RhdGljIHZvaWQNCj4gPj4+Pj4+Pj4+Pj4+Pj4+ICtkcm1fc3luY29ial9maW5kX3NpZ25h bF9wdF9mb3Jfd2FpdF9wdChzdHJ1Y3QNCj4gPj4+Pj4+Pj4+Pj4+Pj4+IGRybV9zeW5jb2JqICpz eW5jb2JqLA0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9zeW5jb2JqX3dhaXRfcHQNCj4gPj4+ Pj4+Pj4+Pj4+Pj4+ICsqd2FpdF9wdCkgew0KPiA+Pj4+Pj4+Pj4+Pj4+PiBUaGF0IHdob2xlIGFw cHJvYWNoIHN0aWxsIGxvb2tzIGhvcnJpYmxlIGNvbXBsaWNhdGVkIHRvIG1lLg0KPiA+Pj4+Pj4+ Pj4+Pj4gSXQncyBhbHJlYWR5IHZlcnkgY2xvc2UgdG8gd2hhdCB5b3Ugc2FpZCBiZWZvcmUuDQo+ ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBFc3BlY2lhbGx5IHRoZSBzZXBhcmF0aW9u IG9mIHNpZ25hbCBhbmQgd2FpdCBwdCBpcw0KPiA+Pj4+Pj4+Pj4+Pj4+PiBjb21wbGV0ZWx5IHVu bmVjZXNzYXJ5IGFzIGZhciBhcyBJIGNhbiBzZWUuDQo+ID4+Pj4+Pj4+Pj4+Pj4+IFdoZW4gYSB3 YWl0IHB0IGlzIHJlcXVlc3RlZCB3ZSBqdXN0IG5lZWQgdG8gc2VhcmNoIGZvcg0KPiA+Pj4+Pj4+ Pj4+Pj4+PiB0aGUgc2lnbmFsIHBvaW50IHdoaWNoIGl0IHdpbGwgdHJpZ2dlci4NCj4gPj4+Pj4+ Pj4+Pj4+IFllYWgsIEkgdHJpZWQgdGhpcywgYnV0IHdoZW4gSSBpbXBsZW1lbnQgY3B1IHdhaXQg aW9jdGwgb24NCj4gPj4+Pj4+Pj4+Pj4+IHNwZWNpZmljIHBvaW50LCB3ZSBuZWVkIGEgYWR2YW5j ZWQgd2FpdCBwdCBmZW5jZSwNCj4gPj4+Pj4+Pj4+Pj4+IG90aGVyd2lzZSwgd2UgY291bGQgc3Rp bGwgbmVlZCBvbGQgc3luY29iaiBjYi4NCj4gPj4+Pj4+Pj4+Pj4gV2h5PyBJIG1lYW4geW91IGp1 c3QgbmVlZCB0byBjYWxsIGRybV9zeW5jb2JqX2ZpbmRfZmVuY2UoKQ0KPiA+Pj4+Pj4+Pj4+PiBh bmQNCj4gPj4+Pj4+PiB3aGVuDQo+ID4+Pj4+Pj4+Pj4+IHRoYXQgb25lIHJldHVybnMgTlVMTCB5 b3UgdXNlIHdhaXRfZXZlbnRfKigpIHRvIHdhaXQgZm9yIGENCj4gPj4+Pj4+Pj4+Pj4gc2lnbmFs IHBvaW50ID49IHlvdXIgd2FpdCBwb2ludCB0byBhcHBlYXIgYW5kIHRyeSBhZ2Fpbi4NCj4gPj4+ Pj4+Pj4+PiBlLmcuIHdoZW4gdGhlcmUgYXJlIDMgc3luY29ianMoQSxCLEMpIHRvIHdhaXQsIGFs bCBzeW5jb2JqQUJDDQo+ID4+Pj4+Pj4+Pj4gaGF2ZSBubyBmZW5jZSB5ZXQsIGFzIHlvdSBzYWlk LCBkdXJpbmcNCj4gPj4+Pj4+Pj4+PiBkcm1fc3luY29ial9maW5kX2ZlbmNlKEEpIGlzIHdvcmtp bmcgb24gd2FpdF9ldmVudCwNCj4gc3luY29iakINCj4gPj4+Pj4+Pj4+PiBhbmQgc3luY29iakMg Y291bGQgYWxyZWFkeSBiZSBzaWduYWxlZCwgdGhlbiB3ZSBkb24ndCBrbm93DQo+ID4+Pj4+Pj4+ Pj4gd2hpY2ggb25lIGlzIGZpcnN0IHNpZ25hbGVkLCB3aGljaCBpcyBuZWVkIHdoZW4gd2FpdCBp b2N0bA0KPiA+Pj4+Pj4+Pj4+IHJldHVybnMuDQo+ID4+Pj4+Pj4+PiBJIGRvbid0IHJlYWxseSBz ZWUgYSBwcm9ibGVtIHdpdGggdGhhdC4gV2hlbiB5b3Ugd2FpdCBmb3IgdGhlDQo+ID4+Pj4+Pj4+ PiBmaXJzdCBvbmUgeW91IG5lZWQgdG8gd2FpdCBmb3IgQSxCLEMgYXQgdGhlIHNhbWUgdGltZSBh bnl3YXkuDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gU28gd2hhdCB5b3UgZG8gaXMgdG8gcmVn aXN0ZXIgYSBmZW5jZSBjYWxsYmFjayBvbiB0aGUgZmVuY2VzDQo+ID4+Pj4+Pj4+PiB5b3UgYWxy ZWFkeSBoYXZlIGFuZCBmb3IgdGhlIHN5bmNvYmogd2hpY2ggZG9lc24ndCB5ZXQgaGF2ZSBhDQo+ ID4+Pj4+Pj4+PiBmZW5jZSB5b3UgbWFrZSBzdXJlIHRoYXQgdGhleSB3YWtlIHVwIHlvdXIgdGhy ZWFkIHdoZW4gdGhleQ0KPiA+Pj4+Pj4+Pj4gZ2V0IG9uZS4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+ Pj4+PiBTbyBlc3NlbnRpYWxseSBleGFjdGx5IHdoYXQNCj4gPj4+Pj4+Pj4+IGRybV9zeW5jb2Jq X2ZlbmNlX2dldF9vcl9hZGRfY2FsbGJhY2soKQ0KPiA+Pj4+Pj4+Pj4gYWxyZWFkeSBkb2VzIHRv ZGF5Lg0KPiA+Pj4+Pj4+PiBTbyBkbyB5b3UgbWVhbiB3ZSBuZWVkIHN0aWxsIHVzZSBvbGQgc3lu Y29iaiBDQiBmb3IgdGhhdD8NCj4gPj4+Pj4+PiBZZXMsIGFzIGZhciBhcyBJIGNhbiBzZWUgaXQg c2hvdWxkIHdvcmsuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gwqDCoMKgIEFkdmFuY2VkIHdhaXQg cHQgaXMgYmFkPw0KPiA+Pj4+Pj4+IFdlbGwgaXQgaXNuJ3QgYmFkLCBJIGp1c3QgZG9uJ3Qgc2Vl IGFueSBhZHZhbnRhZ2UgaW4gaXQuDQo+ID4+Pj4+PiBUaGUgYWR2YW50YWdlIGlzIHRvIHJlcGxh Y2Ugb2xkIHN5bmNvYmogY2IuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4+IFRoZSBleGlzdGluZyBtZWNo YW5pc20NCj4gPj4+Pj4+PiBzaG91bGQgYWxyZWFkeSBiZSBhYmxlIHRvIGhhbmRsZSB0aGF0Lg0K PiA+Pj4+Pj4gSSB0aG91Z2h0IG1vcmUgYSBiaXQsIHdlIGRvbid0IHRoYXQgbWVjaGFuaXNtIGF0 IGFsbCwgaWYgdXNlDQo+ID4+Pj4+PiBhZHZhbmNlZCB3YWl0DQo+ID4+Pj4+IHB0LCB3ZSBjYW4g ZWFzaWx5IHVzZSBmZW5jZSBhcnJheSB0byBhY2hpZXZlIGl0IGZvciB3YWl0IGlvY3RsLCB3ZQ0K PiA+Pj4+PiBzaG91bGQgdXNlIGtlcm5lbCBleGlzdGluZyBmZWF0dXJlIGFzIG11Y2ggYXMgcG9z c2libGUsIG5vdCBpbnZlbnQNCj4gPj4+Pj4gYW5vdGhlciwgc2hvdWxkbid0IHdlPw0KPiA+Pj4+ PiBJIHJlbWVtYmVywqAgeW91IHNhaWTCoCBpdCBiZWZvcmUuDQo+ID4+Pj4+DQo+ID4+Pj4+IFll YWgsIGJ1dCB0aGUgc3luY29iaiBjYiBpcyBhbiBleGlzdGluZyBmZWF0dXJlLg0KPiA+Pj4+IFRo aXMgaXMgb2J2aW91c2x5IGEgd29ya2Fyb3VuZCB3aGVuIGRvaW5nIGZvciB3YWl0IGlvY3RsLCBE byB5b3UNCj4gPj4+PiBzZWUgaXQgdXNlZCBpbiBvdGhlciBwbGFjZT8NCj4gPj4+Pg0KPiA+Pj4+ PiBBbmQgSSBhYnNvbHV0ZWx5IGRvbid0IHNlZSBhDQo+ID4+Pj4+IG5lZWQgdG8gbW9kaWZ5IHRo YXQgYW5kIHJlcGxhY2UgaXQgd2l0aCBzb21ldGhpbmcgZmFyIG1vcmUgY29tcGxleC4NCj4gPj4+ PiBUaGUgd2FpdCBpb2N0bCBpcyBzaW1wbGlmaWVkIG11Y2ggbW9yZSBieSBmZW5jZSBhcnJheSwg bm90IGNvbXBsZXgsDQo+ID4+Pj4gYW5kIHdlIGp1c3QgbmVlZMKgIHRvIGFsbG9jYXRlIGEgd2Fp dCBwdC7CoCBJZiBrZWVwaW5nIG9sZCBzeW5jb2JqIGNiDQo+ID4+Pj4gd29ya2Fyb3VuZCwgYWxs IHdhaXQgcHQgbG9naWMgc3RpbGwgaXMgdGhlcmUsIGp1c3Qgc2F2ZSBhbGxvY2F0aW9uDQo+ID4+ Pj4gYW5kIHdhaXQgcHQgaGFuZGxpbmcsIGluIGZhY3QsIHdoaWNoIHBhcnQgaXNuJ3QgY29tcGxl eCBhdCBhbGwuIEJ1dA0KPiA+Pj4+IGNvbXBhcmUgd2l0aCB1Z2x5IHN5bmNvYmogY2IsIHdoaWNo IGlzIHNpbXBsZXIuDQo+ID4+Pg0KPiA+Pj4gSSBzdHJvbmdseSBkaXNhZ3JlZSBvbiB0aGF0LiBZ b3UganVzdCBuZWVkIHRvIGV4dGVuZCB0aGUgc3luY29iaiBjYg0KPiA+Pj4gd2l0aCB0aGUgc2Vx dWVuY2UgbnVtYmVyIGFuZCB5b3UgYXJlIGRvbmUuDQo+ID4+Pg0KPiA+Pj4gV2UgY291bGQgY2xl YW4gdGhhdCB1cCBpbiB0aGUgbG9uZyB0ZXJtIGJ5IGFkZGluZyBzb21lIHdhaXRfbXVsdGkNCj4g Pj4+IGV2ZW50IG1hY3JvLCBidXQgZm9yIG5vdyBqdXN0IGFkZGluZyB0aGUgc2VxdWVuY2UgbnVt YmVyIHNob3VsZCBkbw0KPiA+Pj4gdGhlIHRyaWNrLg0KPiA+Pg0KPiA+PiBRdW90ZSBmcm9tIERh bmllbCBWZXR0ZXIgY29tbWVudCB3aGVuIHYxLCAiDQo+ID4+DQo+ID4+IFNwZWNpZmljYWxseSBm b3IgdGhpcyBzdHVmZiBoZXJlIGhhdmluZyB1bmlmaWVkIGZ1dHVyZSBmZW5jZQ0KPiA+PiBzZW1h bnRpY3Mgd2lsbCBhbGxvdyBkcml2ZXJzIHRvIGRvIGNsZXZlciBzdHVmZiB3aXRoIHRoZW0uDQo+ ID4+DQo+ID4+ICINCj4gPj4gSSB0aGluayB0aGUgYWR2YW5jZWQgd2FpdCBwdCBpcyBhIHNpbWls YXIgY29uY2VwdCBhcyAnZnV0dXJlIGZlbmNlJw0KPiA+PiB3aGF0IERhbmllbCBWZXR0ZXIgc2Fp ZCBiZWZvcmUsIHdoaWNoIG9idmlvdXNseSBhIHJpZ2h0IGRpcmVjdGlvbi4NCj4gPj4NCj4gPj4N Cj4gPj4gQW55d2F5LCBJIHdpbGwgY2hhbmdlIHRoZSBwYXRjaCBhcyB5b3UgbGlrZSBpZiBubyBv dGhlciBjb21tZW50LCBzbw0KPiA+PiB0aGF0IHRoZSBwYXRjaCBjYW4gcGFzcyBzb29uLg0KPiA+ IFdoZW4gSSB0cnkgdG8gcmVtb3ZlIHdhaXQgcHQgZnV0dXJlIGZlbmNlLCBJIGVuY291bnRlciBh bm90aGVyDQo+ID4gcHJvYmxlbSwgZHJtX3N5bmNvYmpfZmluZF9mZW5jZSBjYW5ub3QgZ2V0IGEg ZmVuY2UgaWYgc2lnbmFsIHB0DQo+ID4gYWxyZWFkeSBpcyBjb2xsZWN0ZWQgYXMgZ2FyYmFnZSwg dGhlbiBDUyB3aWxsIHJlcG9ydCBlcnJvciwgYW55IGlkZWENCj4gPiBmb3IgdGhhdD8NCj4gDQo+ IFdlbGwgd2hlbiB0aGUgc2lnbmFsIHB0IGlzIGFscmVhZHkgZ2FyYmFnZSBjb2xsZWN0ZWQgeW91 IGtub3cgdGhhdCBpdCBpcw0KPiBhbHJlYWR5IHNpZ25hbGVkLiBTbyB5b3UgY2FuIGp1c3QgcmV0 dXJuIGEgZHVtbXkgZmVuY2UuDQo+IA0KPiBJIGFjdHVhbGx5IHRob3VnaHQgdGhhdCB0aGlzIHdh cyB0aGUgaW50ZW50aW9uIG9mIHRoZSBkdW1teSBmZW5jZSByZW5hbWUgOikNCg0KSW4gZmFjdCwg dGhpcyBpcyBvbmUgb2YgZnV0dXJlIGZlbmNlIGZ1bmN0aW9uYWxpdHksIHRoZW4gd2h5IG5vdCB3 ZSB1bmlmeSB0aGVtPyBEYW5pZWwgVmV0dGVyIGFsc28gY29tbWVudGVkIHRoYXQgYmVmb3JlIHYx Lg0KRnV0dXJlIGZlbmNlIGNhbiB1bmlmeSBib3RoIHlvdXIgZHVtbXkgZmVuY2UgYW5kIG9sZCBz eW5jb2JqIGNiLg0KSWYgeW91IGhhdmUgbm8gb2JqZWN0aW9uLCBJIHdpbGwgcHJlcGFyZSBhIHBh dGNoIHRvIGxldCB1cyAgc2VlIGhvdyBzaW1wbGUgd2FpdF9pb2N0bCB1c2luZyBmZW5jZSBhcnJh eS4NCg0KDQpUaGFua3MsDQpEYXZpZCBaaG91DQo+IA0KPiBDaHJpc3RpYW4uDQo+IA0KPiA+IEkg c3RpbGwgdGhpbmsgdGhlIGZ1dHVyZSBmZW5jZSBpcyByaWdodCB0aGluZywgQ291bGQgeW91IGdp dmUgZnV0aGVyDQo+ID4gdGhvdWdodCBvbiBpdCBhZ2Fpbj8gT3RoZXJ3aXNlLCB3ZSBjb3VsZCBu ZWVkIHZhcmlvdXMgd29ya2Fyb3VuZHMuDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gRGF2aWQgWmhv dQ0KPiA+Pg0KPiA+PiBUaGFua3MsDQo+ID4+IERhdmlkIFpob3UNCj4gPj4+DQo+ID4+PiBSZWdh cmRzLA0KPiA+Pj4gQ2hyaXN0aWFuLg0KPiA+Pj4NCj4gPj4+Pg0KPiA+Pj4+IFRoYW5rcywNCj4g Pj4+PiBEYXZpZCBaaG91DQo+ID4+Pj4+IFJlZ2FyZHMsDQo+ID4+Pj4+IENocmlzdGlhbi4NCj4g Pj4+Pj4NCj4gPj4+Pj4+IFRoYW5rcywNCj4gPj4+Pj4+IERhdmlkIFpob3UNCj4gPj4+Pj4+PiBD aHJpc3RpYW4uDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gVGhhbmtzLA0KPiA+Pj4+Pj4+PiBEYXZp ZCBaaG91DQo+ID4+Pj4+Pj4+PiBSZWdhcmRzLA0KPiA+Pj4+Pj4+Pj4gQ2hyaXN0aWFuLg0KPiA+ Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBCYWNrIHRvIG15IGltcGxlbWVudGF0aW9uLCBpdCBhbHJl YWR5IGZpeGVzIGFsbCB5b3VyIGNvbmNlcm5zDQo+ID4+Pj4+Pj4+Pj4gYmVmb3JlLCBhbmQgY2Fu IGJlIGFibGUgdG8gZWFzaWx5IHVzZWQgaW4gd2FpdF9pb2N0bC4gV2hlbg0KPiA+Pj4+Pj4+Pj4+ IHlvdSBmZWVsIHRoYXQgaXMgY29tcGxpY2F0ZWQsIEkgZ3Vlc3MgdGhhdCBpcyBiZWNhdXNlIHdl DQo+ID4+Pj4+Pj4+Pj4gbWVyZ2VkIGFsbCBsb2dpYyB0byB0aGF0IGFuZCBtdWNoIGNsZWFuIHVw IGluIG9uZSBwYXRjaC4gSW4NCj4gPj4+Pj4+Pj4+PiBmYWN0LCBpdCBhbHJlYWR5IGlzIHZlcnkg c2ltcGxlLCB0aW1lbGluZV9pbml0L2ZpbmksIGNyZWF0ZQ0KPiA+Pj4+Pj4+Pj4+IHNpZ25hbC93 YWl0X3B0LCBmaW5kIHNpZ25hbF9wdCBmb3Igd2FpdF9wdCwgZ2FyYmFnZQ0KPiA+Pj4+Pj4+Pj4+ IGNvbGxlY3Rpb24sIGp1c3QgdGhlbS4NCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IFRoYW5r cywNCj4gPj4+Pj4+Pj4+PiBEYXZpZCBaaG91DQo+ID4+Pj4+Pj4+Pj4+IFJlZ2FyZHMsDQo+ID4+ Pj4+Pj4+Pj4+IENocmlzdGlhbi4NCj4gPj4+Pj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18NCj4gPj4+Pj4+Pj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QN Cj4gPj4+Pj4+Pj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gPj4+Pj4+Pj4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4DQo+ID4+ Pg0KPiA+Pg0KPiA+DQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo=