From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: RFC: Add write flag to reservation object fences Date: Fri, 10 Aug 2018 10:29:31 +0200 Message-ID: References: <20180809113713.48024-1-christian.koenig@amd.com> <20180809133851.GN3008@phenom.ffwll.local> <154cc05d-f2e1-695a-5bd3-a2fd5d40a548@gmail.com> <9731d8b0-238b-d64d-9f80-4f549eb230b9@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <9731d8b0-238b-d64d-9f80-4f549eb230b9-5C7GfCeVMHo@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: =?UTF-8?Q?Christian_K=C3=B6nig?= Cc: intel-gfx , dri-devel , amd-gfx list List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBBdWcgOSwgMjAxOCBhdCA0OjU0IFBNLCBDaHJpc3RpYW4gS8O2bmlnCjxjaHJpc3Rp YW4ua29lbmlnQGFtZC5jb20+IHdyb3RlOgo+IEFtIDA5LjA4LjIwMTggdW0gMTY6MjIgc2Nocmll YiBEYW5pZWwgVmV0dGVyOgo+Pgo+PiBPbiBUaHUsIEF1ZyA5LCAyMDE4IGF0IDM6NTggUE0sIENo cmlzdGlhbiBLw7ZuaWcKPj4gPGNrb2VuaWcubGVpY2h0enVtZXJrZW5AZ21haWwuY29tPiB3cm90 ZToKPj4+Cj4+PiBBbSAwOS4wOC4yMDE4IHVtIDE1OjM4IHNjaHJpZWIgRGFuaWVsIFZldHRlcjoK Pj4+Pgo+Pj4+IE9uIFRodSwgQXVnIDA5LCAyMDE4IGF0IDAxOjM3OjA3UE0gKzAyMDAsIENocmlz dGlhbiBLw7ZuaWcgd3JvdGU6Cj4+Pj4gW1NOSVBdCj4+Pgo+Pj4gU2VlIHRvIG1lIHRoZSBleHBs aWNpdCBmZW5jZSBpbiB0aGUgcmVzZXJ2YXRpb24gb2JqZWN0IGlzIG5vdCBldmVuCj4+PiByZW1v dGVseQo+Pj4gcmVsYXRlZCB0byBpbXBsaWNpdCBvciBleHBsaWNpdCBzeW5jaHJvbml6YXRpb24u Cj4+Cj4+IEhtLCBJIGd1ZXNzIHRoYXQncyB0aGUgY29uZnVzaW9uIHRoZW4uIFRoZSBvbmx5IHJl YXNvbiB3ZSBoYXZlIHRoZQo+PiBleGNsdXNpdmUgZmVuY2UgaXMgdG8gaW1wbGVtZW50IGNyb3Nz LWRyaXZlciBpbXBsaWNpdCBzeW5jaW5nLiBXaGF0Cj4+IGVsc2UgeW91IGRvIGludGVybmFsbHkg aW4geW91ciBkcml2ZXIgZG9lc24ndCBtYXR0ZXIsIGFzIGxvbmcgYXMgeW91Cj4+IGtlZXAgdXAg dGhhdCBjb250cmFjdC4KPj4KPj4gQW5kIGl0J3MgaW50ZW50aW9uYWxseSBub3QgY2FsbGVkIHdy aXRlX2ZlbmNlIG9yIGFueXRoaW5nIGxpa2UgdGhhdCwKPj4gYmVjYXVzZSB0aGF0J3Mgbm90IHdo YXQgaXQgdHJhY2tzLgo+Pgo+PiBPZiBjb3Vyc2UgYW55IGJ1ZmZlciBtb3ZlcyB0aGUga2VybmVs IGRvZXMgYWxzbyBtdXN0IGJlIHRyYWNrZWQgaW4gdGhlCj4+IGV4Y2x1c2l2ZSBmZW5jZSwgYmVj YXVzZSB1c2Vyc3BhY2UgY2Fubm90IGtub3cgYWJvdXQgdGhlc2UuIFNvIHlvdQo+PiBtaWdodCBo YXZlIGFuIGV4Y2x1c2l2ZSBmZW5jZSBzZXQgYW5kIGFsc28gYW4gZXhwbGljaXQgZmVuY2UgcGFz c2VkIGluCj4+IHRocm91Z2ggdGhlIGF0b21pYyBpb2N0bC4gQXNpZGU6IFJpZ2h0IG5vdyBhbGwg ZHJpdmVycyBvbmx5IG9ic2VydmUKPj4gb25lIG9yIHRoZSBvdGhlciwgbm90IGJvdGgsIHNvIHdp bGwgYnJlYWsgYXMgc29vbiBhcyB3ZSBzdGFydCBtb3ZpbmcKPj4gc2hhcmVkIGJ1ZmZlcnMgYXJv dW5kLiBBdCBsZWFzdCBvbiBBbmRyb2lkIG9yIGFueXRoaW5nIGVsc2UgdXNpbmcKPj4gZXhwbGlj aXQgZmVuY2luZy4KPgo+Cj4gQWN0dWFsbHkgYm90aCByYWRlb24gYW5kIG5vdXZlYXUgdXNlIHRo ZSBhcHByb2FjaCB0aGF0IHNoYXJlZCBmZW5jZXMgbmVlZCB0bwo+IHdhaXQgb24gYXMgd2VsbCB3 aGVuIHRoZXkgZG9uJ3QgY29tZSBmcm9tIHRoZSBjdXJyZW50IGRyaXZlci4KPgo+Pgo+PiBTbyBo ZXJlJ3MgbXkgc3VtbWFyeSwgYXMgSSB1bmRlcnN0YW5kaW5nIHRoaW5ncyByaWdodCBub3c6Cj4+ IC0gZm9yIG5vbi1zaGFyZWQgYnVmZmVycyBhdCBsZWFzdCwgYW1kZ3B1IHVzZXMgZXhwbGljaXQg ZmVuY2luZywgYW5kCj4+IGhlbmNlIGFsbCBmZW5jZXMgY2F1c2VkIGJ5IHVzZXJzcGFjZSBlbmQg dXAgYXMgc2hhcmVkIGZlbmNlcywgd2hldGhlcgo+PiB0aGF0J3Mgd3JpdGVzIG9yIHJlYWRzLiBU aGlzIG1lYW5zIHlvdSBlbmQgdXAgd2l0aCBwb3NzaWJseSBtdWx0aXBsZQo+PiB3cml0ZSBmZW5j ZXMsIGJ1dCBuZXZlciBhbnkgZXhjbHVzaXZlIGZlbmNlcy4KPj4gLSBmb3Igbm9uLXNoYXJlZCBi dWZmZXJzIHRoZSBvbmx5IGV4Y2x1c2l2ZSBmZW5jZXMgYW1kZ3B1IHNldHMgYXJlIGZvcgo+PiBi dWZmZXIgbW92ZXMgZG9uZSBieSB0aGUga2VybmVsLgo+PiAtIGFtZ3B1IChrZXJuZWwgKyB1c2Vy c3BhY2UgY29tYm8gaGVyZSkgZG9lcyBub3Qgc2VlbSB0byBoYXZlIGEKPj4gY29uY2VwdC90cmFj a2luZyBmb3Igd2hlbiBhIGJ1ZmZlciBpcyB1c2VkIHdpdGggaW1wbGljaXQgb3IgZXhwbGljaXQK Pj4gZmVuY2luZy4gSXQgZG9lcyBob3dldmVyIHRyYWNrIGFsbCB3cml0ZXMuCj4KPgo+IE5vLCB0 aGF0IGlzIGluY29ycmVjdC4gSXQgdHJhY2tzIGFsbCBhY2Nlc3NlcyB0byBhIGJ1ZmZlciBvYmpl Y3QgaW4gdGhlIGZvcm0KPiBvZiBzaGFyZWQgZmVuY2VzLCB3ZSBkb24ndCBjYXJlIGlmIGl0IGlz IGEgd3JpdGUgb3Igbm90Lgo+Cj4gV2hhdCB3ZSB0cmFjayBhcyB3ZWxsIGlzIHdoaWNoIGNsaWVu dCB1c2VzIGEgQk8gbGFzdCBhbmQgYXMgbG9uZyBhcyB0aGUgc2FtZQo+IGNsaWVudCB1c2VzIHRo ZSBCTyB3ZSBkb24ndCBhZGQgYW55IGltcGxpY2l0IHN5bmNocm9uaXphdGlvbi4KPgo+IE9ubHkg d2hlbiBhIEJPIGlzIHVzZWQgYnkgYW5vdGhlciBjbGllbnQgd2UgaGF2ZSBpbXBsaWNpdCBzeW5j aHJvbml6YXRpb24KPiBmb3IgYWxsIGNvbW1hbmQgc3VibWlzc2lvbnMuIFRoaXMgYmVoYXZpb3Ig Y2FuIGJlIGRpc2FibGUgd2l0aCBhIGZsYWcgZHVyaW5nCj4gQk8gY3JlYXRpb24uCgpJJ20gb25s eSBpbnRlcmVzdGVkIGluIHRoZSBjYXNlIG9mIHNoYXJlZCBidWZmZXJzLiBBbmQgZm9yIHRob3Nl IHlvdQpfZG9fIHBlc3NpbWlzdGljYWxseSBhc3N1bWUgdGhhdCBhbGwgYWNjZXNzIG11c3QgYmUg aW1wbGljaXRseSBzeW5jZWQuCklpcmMgYW1kZ3B1IGRvZXNuJ3Qgc3VwcG9ydCBFR0xfQU5EUk9J RF9uYXRpdmVfZmVuY2Vfc3luYywgc28gdGhpcwptYWtlcyBzZW5zZSB0aGF0IHlvdSBkb24ndCBi b3RoZXIgd2l0aCBpdC4KCj4+IC0gYXMgYSBjb25zZXF1ZW5jZSwgYW1kZ3B1IG5lZWRzIHRvIHBl c3NpbWlzdGljYWxseSBhc3N1bWUgdGhhdCBhbGwKPj4gd3JpdGVzIHRvIHNoYXJlZCBidWZmZXIg bmVlZCB0byBvYmV5IGltcGxpY2l0IGZlbmNpbmcgcnVsZXMuCj4+IC0gZm9yIHNoYXJlZCBidWZm ZXJzIChhY3Jvc3MgcHJvY2VzcyBvciBkcml2ZXJzKSBpbXBsaWNpdCBmZW5jaW5nIGRvZXMKPj4g X25vdF8gYWxsb3cgY29uY3VycmVudCB3cml0ZXJzLiBUaGF0IGxpbWl0YXRpb24gaXMgd2h5IHBl b3BsZSB3YW50IHRvCj4+IGRvIGV4cGxpY2l0IGZlbmNpbmcsIGFuZCBpdCdzIHRoZSByZWFzb24g d2h5IHRoZXJlJ3Mgb25seSAxIHNsb3QgZm9yCj4+IGFuIGV4Y2x1c2l2ZS4gTm90ZSBJIHJlYWxs eSBtZWFuIGNvbmN1cnJlbnQgaGVyZSwgYSBxdWV1ZSBvZiBpbi1mbGlnaHQKPj4gd3JpdGVzIGJ5 IGRpZmZlcmVudCBiYXRjaGVzIGlzIHBlcmZlY3RseSBmaW5lLiBCdXQgaXQncyBhIGZ1bGx5Cj4+ IG9yZGVyZWQgcXVldWUgb2Ygd3JpdGVzLgo+PiAtIGJ1dCBhcyBhIGNvbnNlcXVlbmNlIG9mIGFt ZGdwdSdzIGxhY2sgb2YgaW1wbGljaXQgZmVuY2luZyBhbmQgaGVuY2UKPj4gbmVlZCB0byBwZXNz aW1pc3RpY2FsbHkgYXNzdW1lIHRoZXJlJ3MgbXVsdGlwbGUgd3JpdGUgZmVuY2VzIGFtZGdwdQo+ PiBuZWVkcyB0byBwdXQgbXVsdGlwbGUgZmVuY2VzIGJlaGluZCB0aGUgc2luZ2xlIGV4Y2x1c2l2 ZSBzbG90LiBUaGlzIGlzCj4+IGEgbGltaXRhdGlvbiBpbXBvc2VkIGJ5IGJ5IHRoZSBhbWRncHUg c3RhY2ssIG5vdCBzb21ldGhpbmcgaW5oZXJpdCB0bwo+PiBob3cgaW1wbGljaXQgZmVuY2luZyB3 b3Jrcy4KPj4gLSBDaHJpcyBXaWxzb24ncyBwYXRjaCBpbXBsZW1lbnRzIGFsbCB0aGlzIChhbmQg YWZhaWNzIHdpdGggYSBiaXQgbW9yZQo+PiBjb2ZmZWUsIGNvcnJlY3RseSkuCj4+Cj4+IElmIHlv dSB3YW50IHRvIGJlIGxlc3MgcGVzc2ltaXN0aWMgaW4gYW1kZ3B1IGZvciBzaGFyZWQgYnVmZmVy cywgeW91Cj4+IG5lZWQgdG8gc3RhcnQgdHJhY2tpbmcgd2hpY2ggc2hhcmVkIGJ1ZmZlciBhY2Nl c3MgbmVlZCBpbXBsaWNpdCBhbmQKPj4gd2hpY2ggZXhwbGljaXQgc3luYy4gV2hhdCB5b3UgY2Fu J3QgZG8gaXMgc3VkZGVubHkgY3JlYXRlIG1vcmUgdGhhbiAxCj4+IGV4Y2x1c2l2ZSBmZW5jZSwg dGhhdCdzIG5vdCBob3cgaW1wbGljaXQgZmVuY2luZyB3b3Jrcy4gQW5vdGhlciB0aGluZwo+PiB5 b3UgY2Fubm90IGRvIGlzIGZvcmNlIGV2ZXJ5b25lIGVsc2UgKGluIG5vbi1hbWRncHUgb3IgY29y ZSBjb2RlKSB0bwo+PiBzeW5jIGFnYWluc3QgX2FsbF8gd3JpdGVzLCBiZWNhdXNlIHRoYXQgZm9y Y2VzIGltcGxpY2l0IHN5bmNpbmcuIFdoaWNoCj4+IHBlb3BsZSB2ZXJ5IG11Y2ggZG9uJ3Qgd2Fu dC4KPgo+Cj4gSSBhbHNvIGRvIHNlZSB0aGUgcHJvYmxlbSB0aGF0IG1vc3Qgb3RoZXIgaGFyZHdh cmUgZG9lc24ndCBuZWVkIHRoYXQKPiBmdW5jdGlvbmFsaXR5LCBiZWNhdXNlIGl0IGlzIGRyaXZl biBieSBhIHNpbmdsZSBlbmdpbmUuIFRoYXQncyB3aHkgSSB0cmllZAo+IHRvIGtlZXAgdGhlIG92 ZXJoZWFkIGFzIGxvdyBhcyBwb3NzaWJsZS4KPgo+IEJ1dCBhdCBsZWFzdCBmb3IgYW1kZ3B1IChh bmQgSSBzdHJvbmdseSBzdXNwZWN0IGZvciBub3V2ZWF1IGFzIHdlbGwpIGl0IGlzCj4gYWJzb2x1 dGVseSB2aXRhbCBpbiBhIG51bWJlciBvZiBjYXNlcyB0byBhbGxvdyBjb25jdXJyZW50IGFjY2Vz c2VzIGZyb20gdGhlCj4gc2FtZSBjbGllbnQgZXZlbiB3aGVuIHRoZSBCTyBpcyB0aGVuIGxhdGVy IHVzZWQgd2l0aCBpbXBsaWNpdAo+IHN5bmNocm9uaXphdGlvbi4KPgo+IFRoaXMgaXMgYWxzbyB0 aGUgcmVhc29uIHdoeSB0aGUgY3VycmVudCB3b3JrYXJvdW5kIGlzIHNvIHByb2JsZW1hdGljIGZv ciB1cy4KPiBDYXVzZSBhcyBzb29uIGFzIHRoZSBCTyBpcyBzaGFyZWQgd2l0aCBhbm90aGVyIChu b24tYW1kZ3B1KSBkZXZpY2UgYWxsCj4gY29tbWFuZCBzdWJtaXNzaW9ucyB0byBpdCB3aWxsIGJl IHNlcmlhbGl6ZWQgZXZlbiB3aGVuIHRoZXkgY29tZSBmcm9tIHRoZQo+IHNhbWUgY2xpZW50Lgo+ Cj4gV291bGQgaXQgYmUgYW4gb3B0aW9uIGV4dGVuZCB0aGUgY29uY2VwdCBvZiB0aGUgIm93bmVy IiBvZiB0aGUgQk8gYW1kcGd1Cj4gdXNlcyB0byBvdGhlciBkcml2ZXJzIGFzIHdlbGw/Cj4KPiBX aGVuIHlvdSBhbHJlYWR5IGhhdmUgZXhwbGljaXQgc3luY2hyb25pemF0aW9uIGluc2lkZXIgeW91 ciBjbGllbnQsIGJ1dCBub3QKPiBiZXR3ZWVuIGNsaWVudHMgKGUuZy4gc3RpbGwgdXNlcyBEUkky IG9yIERSSTMpLCB0aGlzIGNvdWxkIGFsc28gYmUgcmF0aGVyCj4gYmVuZWZpY2lhbCBmb3Igb3Ro ZXJzIGFzIHdlbGwuCgpBZ2FpbjogSG93IHlvdSBzeW5jaHJvbml6ZSB5b3VyIGRyaXZlciBpbnRl cm5hbCByZW5kZXJpbmcgaXMgdG90YWxseQp1cCB0byB5b3UuIElmIHlvdSBzZWUgYW4gZXhjbHVz aXZlIGZlbmNlIGJ5IGFtZGdwdSwgYW5kIHN1Ym1pdCBuZXcKcmVuZGVyaW5nIGJ5IGFtZGdwdSwg eW91IGNhbiB0b3RhbGx5IGlnbm9yZSB0aGUgZXhjbHVzaXZlIGZlbmNlLiBUaGUKb25seSBhcGkg Y29udHJhY3RzIGZvciBpbXBsaWNpdCBmZW5jaW5nIGFyZSBiZXR3ZWVuIGRyaXZlcnMgZm9yIHNo YXJlZApidWZmZXJzLiBJZiB5b3Ugc3VibWl0IHJlbmRlcmluZyB0byBhIHNoYXJlZCBidWZmZXIg aW4gcGFyYWxsZWwsIGFsbAp3aXRob3V0IGF0dGFjaGluZyBhbiBleGNsdXNpdmUgZmVuY2UgdGhh dCdzIHBlcmZlY3RseSBmaW5lLCBidXQKc29tZXdoZW4gbGF0ZXIgb24sIGRlcGVuZGluZyB1cG9u IHByb3RvY29sIChnbEZsdXNoIG9yIGdseFN3YXBCdWZmZXJzCm9yIHdoYXRldmVyKSB5b3UgaGF2 ZSB0byBjb2xsZWN0IGFsbCB0aG9zZSBjb25jdXJyZW50IHdyaXRlIGhhemFyZHMKYW5kIGJha2Ug dGhlbSBpbnRvIDEgc2luZ2xlIGV4Y2x1c2l2ZSBmZW5jZSBmb3IgaW1wbGljaXQgZmVuY2luZy4K CkF0bSAoYW5kIENocmlzIHNlZW1zIHRvIGNvbmN1cikgdGhlIGFtZGdwdSB1YXBpIGRvZXNuJ3Qg YWxsb3cgeW91IHRvCmRvIHRoYXQsIHNvIGZvciBhbnl0aGluZyBzaGFyZWQgeW91IGhhdmUgdG8g YmUgc3VwZXIgcGVzc2ltaXN0aWMuCkFkZGluZyBhIEhBTkRfT0ZGX0ZPUl9JTVBMSUNJVF9GRU5D SU5HIGZsYWcvaW9jdGwgd291bGQgcHJvYmFibHkgZml4CnRoYXQuIE9ubHkgd2hlbiB0aGF0IGZs YWcgaXMgc2V0IHdvdWxkIHlvdSB0YWtlIGFsbCBzaGFyZWQgd3JpdGUKaGF6YXJkcyBhbmQgYmFr ZSB0aGVtIGludG8gb25lIGV4Y2x1c2l2ZSBmZW5jZSBmb3IgaGFuZC1vZmYgdG8gdGhlCm5leHQg ZHJpdmVyLiBZb3UnZCBhbHNvIG5lZWQgdGhlIHNhbWUgd2hlbiByZWNlaXZpbmcgYW4gaW1wbGlj aXRseQpmZW5jZWQgYnVmZmVyLCB0byBtYWtlIHN1cmUgdGhhdCB5b3VyIGNvbmN1cnJlbnQgd3Jp dGVzIGRvIHN5bmNocm9uaXplCndpdGggcmVhZGluZyAoYWthIHNoYXJlZCBmZW5jZXMpIGRvbmUg Ynkgb3RoZXIgZHJpdmVycy4gV2l0aCBhIGJ1bmNoCm9mIHRyaWNrZXJ5IGFuZCBoYWNrcyBpdCBt aWdodCBiZSBwb3NzaWJsZSB0byBpbmZlciB0aGlzIGZyb20gY3VycmVudAppb2N0bHMgZXZlbiwg YnV0IHlvdSBuZWVkIHRvIGJlIHJlYWxseSBjYXJlZnVsLgoKQW5kIHlvdSdyZSByaWdodCB0aGF0 IGFtZGdwdSBzZWVtcyB0byBiZSB0aGUgb25seSAob3Igb25lIG9mIHRoZSBvbmx5KQpkcml2ZXJz IHdoaWNoIGRvIHRydWx5IGNvbmN1cnJlbnQgcmVuZGVyaW5nIHRvIHRoZSBzYW1lIGJ1ZmZlciAo bm90Cmp1c3QgY29uY3VycmVudCByZW5kZXJpbmcgdG8gbXVsdGlwbGUgYnVmZmVycyBhbGwgc3Vi YWxsb2NhdGVkIGZyb20KdGhlIHNhbWUgYm8pLiBCdXQgd2UgY2FuJ3QgZml4IHRoaXMgaW4gdGhl IGtlcm5lbCB3aXRoIHRoZSB0cmlja3MgeW91CnByb3Bvc2UsIGJlY2F1c2Ugd2l0aG91dCBzdWNo IGFuIHVhcGkgZXh0ZW5zaW9uIChvciBpbmZlcmVuY2UpIHdlCmNhbid0IHRlbGwgdGhlIGltcGxp Y2l0IGZlbmNpbmcgZnJvbSB0aGUgZXhwbGljaXQgZmVuY2luZyBjYXNlLiBBbmQKZm9yIHNoYXJl ZCBidWZmZXJzIHdpdGggZXhwbGljaXQgZmVuY2luZyB3ZSBfbXVzdF8gX25vdF8gc3luYyBhZ2Fp bnN0CmFsbCB3cml0ZXMuIG93bmVyIHdvbid0IGhlbHAgaGVyZSwgYmVjYXVzZSBpdCdzIHN0aWxs IG5vdCB0cmFja2luZwp3aGV0aGVyIHNvbWV0aGluZyBpcyBleHBsaWNpdCBvciBpbXBsaWNpdCBz eW5jZWQuCgpXZSd2ZSBjaGVhdGVkIGEgYml0IHdpdGggbW9zdCBvdGhlciBkcml2ZXJzIGluIHRo aXMgYXJlYSwgYWxzbyBiZWNhdXNlCndlIGRvbid0IGhhdmUgdG8gZGVhbCB3aXRoIHRydWx5IGNv bmN1cnJlbnQgcmVuZGVyaW5nLiBTbyBpdCdzIG5vdApvYnZpb3VzIHRoYXQgd2UncmUgbm90IHRy YWNraW5nIHdyaXRlcy9yZWFkcywgYnV0IGltcGxpY2l0L2V4cGxpY2l0CmZlbmNpbmcuIEJ1dCBz ZW1hbnRpY2FsbHkgd2UgdHJhY2sgdGhlIGxhdGVyIGZvciBzaGFyZWQgYnVmZmVycy4KCkNoZWVy cywgRGFuaWVsCgpQUzogT25lIGlkZWEgSSBoYXZlIGZvciBpbmZlcmVuY2U6IEV2ZXJ5IHRpbWUg eW91IHNlZSBhIHNoYXJlZCBidWZmZXIKaW4gYW4gYW1kZ3B1IENTOgoxLiBHcmFiIHJlc2VydmF0 aW9uIGxvY2sKMi4gQ2hlY2sgYWxsIHRoZSBmZW5jZXMnIGNyZWF0b3JzLiBJZiBhbnkgb2YgdGhl bSBhcmUgZm9yZWlnbiAobm90IGJ5CmFtZGdwdSksIHRoZW4gcnVuIHRoZSBjdXJyZW50IHBlc3Np bWlzdGljIGNvZGUuCjMuIElmIGFsbCBmZW5jZXMgYXJlIGJ5IGFtZGdwdQotIExvb2sgYXQgdGhl IGV4Y2x1c2l2ZSBmZW5jZS4gSWYgaXQncyBhIHR0bSBibyBtb3ZlIGtlZXAgaXQsIGlmIGl0J3MK bWFya2VkIGFzIGEgc3BlY2lhbCBpbXBsaWNpdCBzeW5jaW5nIGZlbmNlLCBpZ25vcmUgaXQuCi0g UnVuIGFsbCBDUyBjb25jdXJyZW50bHkgYnkgc3RvcmluZyBhbGwgdGhlaXIgd3JpdGUgZmVuY2Vz IGluIHRoZSBzaGFyZWQgc2xvdHMuCi0gQ3JlYXRlIGEgZmFrZSBleGNsdXNpdmUgZmVuY2Ugd2hp Y2ggdGllcyBhbGwgdGhlIHdyaXRlIGhhemFyZHMgaW50bwpvbmUgZmVuY2UuIE1hcmsgdGhlbSBh cyBzcGVjaWFsIGltcGxpY2l0IHN5bmNpbmcgZmVuY2VzIGluIHlvdXIKYW1kZ3B1X2ZlbmNlIHN0 cnVjdC4gVGhpcyB3aWxsIG1ha2Ugc3VyZSBvdGhlciBkcml2ZXJzIHN5bmMgcHJvcGVybHksCmJ1 dCBzaW5jZSB5b3UgaWdub3JlIHRoZXNlIHNwZWNpYWwgaXQgd29uJ3QgcmVkdWNlIGFtZGdwdS1p bnRlcm5hbApjb25jdXJyZW5jeS4KLSBNYWtlIHN1cmUgeW91IGRvbid0IGRyb3AgdGhlIHR0bSBi byBtb3ZlIGZlbmNlcyBhY2NpZGVudGFsbHksIHdpbGwKYmUgc29tZSB0cmlja3kgYWNjb3VudGlu Zy4KNC4gU3VibWl0IENTIGFuZCBkcm9wIHJlc2VydmF0aW9uIGxvY2suCgpJIHRoaW5rIHRoaXMg d291bGQgd29yaywgYnV0IG11Y2ggY2xlYW5lciBpZiB5b3UgbWFrZSB0aGlzIGFuIGV4cGxpY2l0 CnBhcnQgb2YgdGhlIGFtZ3B1IHVhcGkuCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2lu ZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgorNDEgKDApIDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9n LmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=