From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [Intel-gfx] [PATCH v2 02/20] drm: Don't update plane properties for atomic planes if it stays the same Date: Mon, 13 Jul 2015 11:45:28 +0200 Message-ID: <20150713094528.GE3736@phenom.ffwll.local> References: <20150707164352.GZ7568@phenom.ffwll.local> <559CD896.8040301@linux.intel.com> <20150708085508.GD7568@phenom.ffwll.local> <559D5163.7060204@linux.intel.com> <20150708175151.GA21858@phenom.ffwll.local> <559D6B03.2060804@linux.intel.com> <20150708201241.GB21858@phenom.ffwll.local> <55A37DF4.80804@linux.intel.com> <20150713091346.GV3736@phenom.ffwll.local> <55A383A1.6080606@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by gabe.freedesktop.org (Postfix) with ESMTPS id B84546E296 for ; Mon, 13 Jul 2015 02:42:44 -0700 (PDT) Received: by widjy10 with SMTP id jy10so63941163wid.1 for ; Mon, 13 Jul 2015 02:42:43 -0700 (PDT) Content-Disposition: inline In-Reply-To: <55A383A1.6080606@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBKdWwgMTMsIDIwMTUgYXQgMTE6MjM6NDVBTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMTMtMDctMTUgb20gMTE6MTMgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+ ID4gT24gTW9uLCBKdWwgMTMsIDIwMTUgYXQgMTA6NTk6MzJBTSArMDIwMCwgTWFhcnRlbiBMYW5r aG9yc3Qgd3JvdGU6Cj4gPj4gT3AgMDgtMDctMTUgb20gMjI6MTIgc2NocmVlZiBEYW5pZWwgVmV0 dGVyOgo+ID4+PiBPbiBXZWQsIEp1bCAwOCwgMjAxNSBhdCAwODoyNTowN1BNICswMjAwLCBNYWFy dGVuIExhbmtob3JzdCB3cm90ZToKPiA+Pj4+IE9wIDA4LTA3LTE1IG9tIDE5OjUyIHNjaHJlZWYg RGFuaWVsIFZldHRlcjoKPiA+Pj4+PiBPbiBXZWQsIEp1bCAwOCwgMjAxNSBhdCAwNjozNTo0N1BN ICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90ZToKPiA+Pj4+Pj4gT3AgMDgtMDctMTUgb20g MTA6NTUgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+ID4+Pj4+Pj4gT24gV2VkLCBKdWwgMDgsIDIw MTUgYXQgMTA6MDA6MjJBTSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6Cj4gPj4+Pj4+ Pj4gT3AgMDctMDctMTUgb20gMTg6NDMgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+ID4+Pj4+Pj4+ PiBPbiBUdWUsIEp1bCAwNywgMjAxNSBhdCAwNTowODozNFBNICswMjAwLCBNYWFydGVuIExhbmto b3JzdCB3cm90ZToKPiA+Pj4+Pj4+Pj4+IE9wIDA3LTA3LTE1IG9tIDE0OjEwIHNjaHJlZWYgRGFu aWVsIFZldHRlcjoKPiA+Pj4+Pj4+Pj4+PiBPbiBUdWUsIEp1bCAwNywgMjAxNSBhdCAxMjoyMDox MFBNICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4gT3AgMDct MDctMTUgb20gMTE6MTggc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+ID4+Pj4+Pj4+Pj4+Pj4gT24g VHVlLCBKdWwgMDcsIDIwMTUgYXQgMDk6MDg6MTNBTSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3Qg d3JvdGU6Cj4gPj4+Pj4+Pj4+Pj4+Pj4gVGhpcyBhbGxvd3MgdGhlIGZpcnN0IGF0b21pYyBjYWxs IGR1cmluZyBodyBpbml0IHRvIGJlIGEgcmVhbCBtb2Rlc2V0LAo+ID4+Pj4+Pj4+Pj4+Pj4+IHdo aWNoIGlzIHVzZWZ1bCBmb3IgZm9yY2luZyBhIHJlY2FsY3VsYXRpb24uCj4gPj4+Pj4+Pj4+Pj4+ PiBmYmNvbiBpcyBvcHRpb25hbCwgeW91IGNhbid0IHJlbHkgb24gYW55dGhpbmcgYmVpbmcgZG9u ZSBpbiBhbnkgc3BlY2lmaWMKPiA+Pj4+Pj4+Pj4+Pj4+IHdheS4gV2hhdCBleGFjdGx5IGRvIHlv dSBuZWVkIHRoaXMgZm9yLCB3aGF0J3MgdGhlIGltcGxpY2F0aW9ucz8KPiA+Pj4+Pj4+Pj4+Pj4g SW4gdGhlIGh3IHJlYWRvdXQgSSBub3RpY2VkIHNvbWUgd2FybmluZ3Mgd2hlbiBJIHdhc24ndCBz ZXR0aW5nIGFueSBtb2RlIHByb3BlcnR5IGluIHRoZSByZWFkb3V0Lgo+ID4+Pj4+Pj4+Pj4+PiBJ IHdhbnQgdGhlIGZpcnN0IGZ1bmN0aW9uIHRvIGJlIHRoZSBtb2Rlc2V0LCBzbyB3ZSBoYXZlIGEg c2FuZSBiYXNlIHRvIGNvbW1pdCBjaGFuZ2VzIG9uLgo+ID4+Pj4+Pj4+Pj4+PiBJZGVhbGx5IHRo aXMgd2hvbGUgZnVuY3Rpb24gd291bGQgaGF2ZSBhIGF0b21pYyBjb3VudGVycGFydCB3aGljaCBk b2VzIGl0IGluIG9uZSBnby4gOikKPiA+Pj4+Pj4+Pj4+PiBZZWFoLiBPdG9oIGFzIHNvb24gYXMg d2UgaGF2ZSBhdG9taWMgbW9kZXNldCB3b3JraW5nIHdlIGNhbiByZXBsYWNlIGFsbAo+ID4+Pj4+ Pj4+Pj4+IHRoZSBsZWdhY3kgZW50cnkgcG9pbnRzIHdpdGggYXRvbWljIGhlbHBlcnMsIGFuZCB0 aGVuIGV2ZW4gcGxhbmVfZGlzYWJsZQo+ID4+Pj4+Pj4+Pj4+IHdpbGwgYmUgYSBmdWxsIGF0b21p YyBtb2Rlc2V0Lgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gV2hhdCBkaWQgZmFsbCBhcGFy dCB3aXRoIGp1c3QgdG91Y2hpbmcgcHJvcGVydGllcy9wbGFuZXMgbm93Pwo+ID4+Pj4+Pj4+Pj4g QWxzbyB3aGVuIGk5MTUgaXMgZnVsbHkgYXRvbWljIGl0IGNhbGN1bGF0ZXMgaW4gaW50ZWxfbW9k ZXNldF9jb21wdXRlX2NvbmZpZwo+ID4+Pj4+Pj4+Pj4gaWYgYSBtb2Rlc2V0IGlzIG5lZWRlZCBh ZnRlciB0aGUgZmlyc3QgYXRvbWljIGNhbGwuIFJpZ2h0IG5vdyBiZWNhdXNlCj4gPj4+Pj4+Pj4+ PiBpbnRlbF9tb2Rlc2V0X2NvbXB1dGVfY29uZmlnIGlzIG9ubHkgY2FsbGVkIGluIHNldF9jb25m aWcgc28gdGhpcyB3b3JrcyBhcyBleHBlY3RlZC4KPiA+Pj4+Pj4+Pj4+IE90aGVyd2lzZSBkcm1f cGxhbmVfZm9yY2VfZGlzYWJsZSBvciByb3RhdGVfMCB3aWxsIGZvcmNlIGEgbW9kZXNldCwKPiA+ Pj4+Pj4+Pj4+IGFuZCBpZiB0aGUgZmluYWwgbW9kZSBpcyBkaWZmZXJlbnQgdGhpcyB3aWxsIGlu dHJvZHVjZSBhIGRvdWJsZSBtb2Rlc2V0Lgo+ID4+Pj4+Pj4+PiBGb3IgZXhwZW5zaXZlIHByb3Bl cnRpZXMgKGkuZS4gYSBuby1vcCBjaGFuZ2VzIGNhdXNlcyBzb21ldGhpbmcgdGhhdCB0YWtlcwo+ ID4+Pj4+Pj4+PiB0aW1lIGxpa2UgbW9kZXNldCBvciB2Ymxhbmsgd2FpdCkgd2UgbmVlZCB0byBt YWtlIHN1cmUgd2UgZmlsdGVyIHRoZW0gb3V0Cj4gPj4+Pj4+Pj4+IGluIGF0b21pY19jaGVjay4g WWVhaCBub3QgcXVpdGUgdGhlcmUgeWV0IHdpdGggcHVyZSBhdG9taWMsIGJ1dCBtZWFud2hpbGUK PiA+Pj4+Pj4+Pj4gdGhlIGV4aXN0aW5nIGxlZ2FjeSBzZXRfcHJvcCBmdW5jdGlvbnMgc2hvdWxk IGFsbCBmaWx0ZXIgb3V0IG5vLW9wIGNoYW5nZXMKPiA+Pj4+Pj4+Pj4gdGhlbXNlbHZlcy4gSWYg d2UgZG9uJ3QgZG8gdGhhdCBmb3Igcm90YXRpb24gdGhlbiB0aGF0J3MgYSBidWcuCj4gPj4+Pj4+ Pj4+Cj4gPj4+Pj4+Pj4+IFNhbWUgZm9yIGRpc2FibGluZyBwbGFuZXMgaGFyZGVyLCB0aGF0IHNo b3VsZG4ndCB0YWtlIHRpbWUuIEVzcGVjaWFsbHkKPiA+Pj4+Pj4+Pj4gc2luY2UgZmJjb24gb25s eSBmb3JjZS1kaXNhYmxlIG5vbi1wcmltYXJ5IHBsYW5lLCBhbmQgZm9yIGRyaXZlciBsb2FkCj4g Pj4+Pj4+Pj4+IHRoYXQncyB0aGUgZXhhY3QgdGhpbmcgd2UgYWxyZWFkeSBkbyBpbiB0aGUgZHJp dmVyIGFueXdheS4KPiA+Pj4+Pj4+PiBTb21ldGhpbmcgbGlrZSB0aGlzPwo+ID4+Pj4+Pj4+IC0t LQo+ID4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gPj4+Pj4+Pj4gaW5k ZXggYTFkNGUxM2YzOTA4Li4yOTg5MjMyZjQ5OTYgMTAwNjQ0Cj4gPj4+Pj4+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiA+Pj4+Pj4+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4+Pj4+Pj4+IEBAIC0zMCw2ICszMCw3IEBA Cj4gPj4+Pj4+Pj4gICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgo+ID4+Pj4+Pj4+ ICAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+ID4+Pj4+Pj4+ICAjaW5jbHVkZSA8 ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Cj4gPj4+Pj4+Pj4gKyNpbmNsdWRlICJkcm1fY3J0Y19p bnRlcm5hbC5oIgo+ID4+Pj4+Pj4+ICAjaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KPiA+Pj4+Pj4+ PiAgCj4gPj4+Pj4+Pj4gIC8qKgo+ID4+Pj4+Pj4+IEBAIC0xNzE2LDcgKzE3MTcsMTIgQEAgZHJt X2F0b21pY19oZWxwZXJfY3J0Y19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ ID4+Pj4+Pj4+ICB7Cj4gPj4+Pj4+Pj4gIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7 Cj4gPj4+Pj4+Pj4gIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gPj4+Pj4+ Pj4gLQlpbnQgcmV0ID0gMDsKPiA+Pj4+Pj4+PiArCXVpbnQ2NF90IHJldHZhbDsKPiA+Pj4+Pj4+ PiArCWludCByZXQ7Cj4gPj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+ICsJcmV0ID0gZHJtX2F0b21pY19n ZXRfcHJvcGVydHkoJmNydGMtPmJhc2UsIHByb3BlcnR5LCAmcmV0dmFsKTsKPiA+Pj4+Pj4+PiAr CWlmICghcmV0ICYmIHZhbCA9PSByZXR2YWwpCj4gPj4+Pj4+Pj4gKwkJcmV0dXJuIDA7Cj4gPj4+ Pj4+Pj4gIAo+ID4+Pj4+Pj4+ICAJc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGNydGMt PmRldik7Cj4gPj4+Pj4+Pj4gIAlpZiAoIXN0YXRlKQo+ID4+Pj4+Pj4+IEBAIC0xNzc2LDcgKzE3 ODIsMTIgQEAgZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAo+ID4+Pj4+Pj4+ICB7Cj4gPj4+Pj4+Pj4gIAlzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGU7Cj4gPj4+Pj4+Pj4gIAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZTsKPiA+Pj4+Pj4+PiAtCWludCByZXQgPSAwOwo+ID4+Pj4+Pj4+ICsJdWludDY0X3Qg cmV0dmFsOwo+ID4+Pj4+Pj4+ICsJaW50IHJldDsKPiA+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4gKwly ZXQgPSBkcm1fYXRvbWljX2dldF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIHByb3BlcnR5LCAmcmV0 dmFsKTsKPiA+Pj4+Pj4+PiArCWlmICghcmV0ICYmIHZhbCA9PSByZXR2YWwpCj4gPj4+Pj4+Pj4g KwkJcmV0dXJuIDA7Cj4gPj4+Pj4+Pj4gIAo+ID4+Pj4+Pj4+ICAJc3RhdGUgPSBkcm1fYXRvbWlj X3N0YXRlX2FsbG9jKHBsYW5lLT5kZXYpOwo+ID4+Pj4+Pj4+ICAJaWYgKCFzdGF0ZSkKPiA+Pj4+ Pj4+PiBAQCAtMTgzNiw3ICsxODQ3LDEyIEBAIGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9z ZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+Pj4+Pj4+PiAg ewo+ID4+Pj4+Pj4+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+ID4+Pj4+Pj4+ ICAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiA+Pj4+Pj4+ PiAtCWludCByZXQgPSAwOwo+ID4+Pj4+Pj4+ICsJdWludDY0X3QgcmV0dmFsOwo+ID4+Pj4+Pj4+ ICsJaW50IHJldDsKPiA+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4gKwlyZXQgPSBkcm1fYXRvbWljX2dl dF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLCBwcm9wZXJ0eSwgJnJldHZhbCk7Cj4gPj4+Pj4+ Pj4gKwlpZiAoIXJldCAmJiB2YWwgPT0gcmV0dmFsKQo+ID4+Pj4+Pj4+ICsJCXJldHVybiAwOwo+ ID4+Pj4+Pj4+ICAKPiA+Pj4+Pj4+PiAgCXN0YXRlID0gZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhj b25uZWN0b3ItPmRldik7Cj4gPj4+Pj4+Pj4gIAlpZiAoIXN0YXRlKQo+ID4+Pj4+Pj4gVGhlIHJl YXNvbiBJIGRpZG4ndCBkbyB0aGlzIGlzIHRoYXQgYSBwcm9wIGNoYW5nZSBtaWdodCBzdGlsbCBy ZXN1bHQgaW4gbm8KPiA+Pj4+Pj4+IGh3IHN0YXRlIGNoYW5nZSAoZS5nLiBpZiB5b3UgZ28gYXV0 b21pdGljLT5leHBsaWNpdCBzZXR0aW5nIG1hdGNoaW5nCj4gPj4+Pj4+PiBhdXRvbWF0aWMgb25l KS4gSGVuY2UgSSB0aGluayB3ZSBuZWVkIHRvIHNvbHZlIHRoaXMgaW4gbG93ZXIgbGV2ZWxzCj4g Pj4+Pj4+PiBhbnl3YXksIGkuZS4gaW4gd2hlbiBjb21wdXRpbmcgdGhlIGNvbmZpZy4gQnV0IGl0 IHNob3VsZG4ndCBjYXVzZSB0cm91YmxlCj4gPj4+Pj4+PiB5ZXQuCj4gPj4+Pj4+IElzIHRoYXQg YSBhY2sgb3IgbmFjaz8KPiA+Pj4+PiBJIHRoaW5rIHdlIHNob3VsZG4ndCBuZWVkIHRoaXMgcmVh bGx5IGZvciBpOTE1LCBhbmQgaXQgbWlnaHQgY292ZXIgdXAKPiA+Pj4+PiBidWdzLiBJIHByZWZl ciB3ZSBqdXN0IGRvIHRoZSBldmFkZSBtb2Rlc2V0IGxvZ2ljIHlvdSd2ZSBpbXBsZW1lbnRlZCBv bmNlCj4gPj4+Pj4gd2Ugc3dpdGNoIG92ZXIgdG8gYXRvbWljIHByb3BzLiBTaW5jZSBhdG0gd2Ug b25seSBoYXZlIGF0b21pYyBwcm9wcyB3aGljaAo+ID4+Pj4+IGdldCB1cGRhdGVkIGluIHBhZ2Vm bGlwcyB3ZSBzaG91bGRuJ3QgaGF2ZSBzZXJpb3VzIHByb2JsZW1zIGhlcmUgeWV0IChmb3IKPiA+ Pj4+PiBzZXR0aW5nIHRoZSByb3RhdGlvbiBwcm9wIHRvIDDCsCBhZ2FpbiB3aGVuIGZiZGV2IHN0 YXJ0cyB1cCkuCj4gPj4+Pj4KPiA+Pj4+PiBPciBkbyBJIG1pc3Mgc29tZXRoaW5nIHN0aWxsIGhl cmU/Cj4gPj4+PiBZZXMsIGlmIHRoZSBoYXJkd2FyZSBtb2RlIGlzIGluY29tcGF0aWJsZSB3aXRo IGl0cyBjYWxjdWxhdGVkIHN3IG1vZGUsCj4gPj4+PiBhbmQgd2Ugc2V0IGEgZGlmZmVyZW50IG1v ZGUgZnJvbSBmYmRldiB5b3UgZ2V0IDIgbW9kZXNldHMgaW5zdGVhZCBvZiAxLgo+ID4+PiBIb3cg ZG9lcyB0aGF0IGhhcHBlbj8gRm9yIHNldHRpbmcgdGhlIHJvdGF0aW9uIHByb3BlcnR5IHdlIHNo b3VsZCBqdXN0Cj4gPj4+IGR1cGxpY2F0ZSB0aGUgY3VycmVudCBjcnRjIHN0YXRlLiBTaW5jZSB0 aGVyZSdzIG5vIG1vZGUgY2hhbmdpbmcgKHRoZXkKPiA+Pj4gc2hvdWxkIG1hdGNoIHBlcmZlY3Rs eSBubyBtYXR0ZXIgaG93IGJvdGNoZWQgdGhlIHJlY29uc3RydWN0aW9uIGlzKSB0aGVyZQo+ID4+ PiBzaG91bGRuJ3QgYmUgYW55IG5lZWQgdG8gcmVjb21wdXRlIHRoZSBjb25maWcgY29tcGxldGVs eSBhbmQgZGlzY292ZXIgdGhhdAo+ID4+PiB0aGVyZSdzIGEgbWlzbWF0Y2guIFdoaWNoIG1lYW5z IHdlJ2xsIGp1c3QgZG8gdGhlIHBsYW5lIHVwZGF0ZSAod2hpY2gKPiA+Pj4gbWlnaHQgZG8gYSBm ZXcgc2lsbHkgbW1pb3MgYnV0IHNob3VsZG4ndCBibG9jaykgYW5kIHRoYXQncyBpdC4KPiA+Pj4K PiA+Pj4gQXQgbGVhc3QgdGhhdCdzIHdoYXQgSSdkIGV4cGVjdCAtIHdoZXJlIGRvZXMgdGhpcyBm YWxsIGFwYXJ0Pwo+ID4+IElmIGNydGMgaXMgYWN0aXZlIGFuZCBwcmltYXJ5IGZiIHZpc2libGUs IGFuZCBjb252ZXJ0ZWQgdG8gYXRvbWljOgo+ID4+Cj4gPj4gcmVzdG9yZV9mYmRldl9tb2RlKCkg LT4KPiA+PiAJZHJtX21vZGVfcGxhbmVfc2V0X29ial9wcm9wKCkgLT4KPiA+PiAJCWRybV9hdG9t aWNfaGVscGVyX3BsYW5lX3NldF9wcm9wZXJ0eSgpIC0+Cj4gPj4gCQkJZHJtX2F0b21pY19nZXRf cGxhbmVfc3RhdGUoKSAtPgo+ID4+IAkJCQlkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKCkKPiA+ PiBjcnRjIHN0YXRlIGlzIHBhcnQgb2YgdGhlIHN0YXRlLCBpbnRlbF9tb2Rlc2V0X3BpcGVfY29u ZmlnIHBlcmZvcm1zCj4gPj4gdGhlIGluaXRpYWwgY2hlY2sgaWYgbW9kZXNldCdzIG5lZWRlZC4g TGV0cyBhc3N1bWUgeWVzOgo+ID4gIkxldCdzIGFzc3VtZSB5ZXMiIC0+IHRoYXQncyBpbW8gYSBi dWcsIHNvIHdoZXJlIGRvZXMgdGhpcyBoYXBwZW4gc28gdGhhdAo+ID4gd2UgY2FuIGZpeCBpdD8g RGlzYWJsaW5nIGEgcGxhbmUgb3Igc2V0dGluZyBhIHBsYW5lIHByb3AgcmVhbGx5IHNob3VsZG4n dAo+ID4gcmVzdWx0IGluIGEgbW9kZXNldC4gV2VsbCBhdCBsZWFzdCBpZiBpdCdzIG5vdCBhIHBs YW5lIHByb3AgdGhhdCBkb2VzCj4gPiByZXF1aXJlZCBhIG1vZGVzZXQgKGJ1dCBJIGRvbid0IHRo aW5rIHdlIGhhdmUgYW55IG9mIHRob3NlKS4KPiBGcm9tIGEgZHJpdmVyIHBvaW50IG9mIHZpZXcg eW91IHdvdWxkbid0IGJlIGFibGUgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbSBhIHJlYWwgbW9kZXNl dCB0byB0aGUgc2FtZSBtb2RlLiA6KAo+IEluIGJvdGggY2FzZXMgeW91IGhhdmUgYWxsIHBsYW5l cyBhZGRlZCBhbmQgdGhlIGNydGMuCj4gCj4gVGhpbmtpbmcgYWJvdXQgaXQgbW9yZSB0aGVyZSB3 aWxsIGJlIDEgdGhpbmcgc2F2aW5nIHVzIGZyb20gYSBtb2Rlc2V0LAo+IGRybV9hdG9taWNfY3J0 Y19jaGVjayB3aWxsIHJlamVjdCBlbmFibGUgd2l0aG91dCBtb2RlX2Jsb2IgZm9yIGF0b21pYyBk cml2ZXJzLAo+IHNvIHVudGlsIHRoZSBmaXJzdCBtb2RlIGlzIHNldCBhbGwgYXRvbWljIHVwZGF0 ZXMgdG8gdGhlIGNydGMgd2lsbCBiZSByZWplY3RlZC4KPiAKPiBVbmZvcnR1bmF0ZWx5IHlvdSB3 aWxsIHN0aWxsIGdldCBXQVJOX09OJ3MgZm9yIHRoaXMsIHNvIGEgYmV0dGVyIHNvbHV0aW9uJ3Mg bmVlZGVkLgoKT2sgSSB0aGluayBJIHN0YXJ0IHRvIGdyYXNwIHdoYXQncyB3cm9uZywgdGhlIHRy b3VibGUgaXMgdGhhdCB3ZSBkb24ndApoYXZlIHRoZSBtb2RlIHN0dWZmIGZ1bGx5IHNldCB1cCB5 ZXQgKHdoaWNoIGlzIHBhcnQgb2YgZmFzdGJvb3QpLCB3aGljaAptZWFucyB3ZSdsbCBnZXQgYSBi b2d1cyBjcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgZGVzcGl0ZSB0aGF0IG5vdGhpbmcKcmVhbGx5 IGNoYW5nZWQuIFVnbHkuCgpDb3VsZCB3ZSBpbnNlcnQgYSBkdW1teSBtb2RlX2Jsb2IgdG8gYXZv aWQgdGhlIFdBUk5zIGFuZCB0aGUgYm9ndXMKbW9kZV9jaGFuZ2VkIGluc3RlYWQ/IFRoZSBwcm9i bGVtIHJlYWxseSBpcyB0aGF0IGRvaW5nIHRoaXMgaGVyZSBpcyBqdXN0CnBsdWdnaW5nIHRoZSBv bmUgc291cmNlIG9mIHRyb3VibGVzIHlvdSdyZSBzZWVpbmcgcmlnaHQgbm93IChmYmNvbiksIHRo ZQppbml0aWFsIHNldF8qIGNhbGxzIGNvdWxkIGNvbWUgZnJvbSBhbnl0aGluZyByZWFsbHkgaW4g YW55IG9yZGVyLiBTbyB3ZQpyZWFsbHkgYmV0dGVyIGJlIGFibGUgdG8gY29wZS4KCkV2ZW4gY29u dmVydGluZyBmYmRldiB0byBoYXZlIGFuIG9wdGlvbmFsIGF0b21pYyBwYXRjaCBmb3IgRFJJVkVS X0FUT01JQwoodW5zYWZlIGk5MTUgb3B0aW9ucyBhcmVuJ3QgYSBjb25jZXJuIGhlcmUgZm9yIG1l KSB3b24ndCBmaXggdGhpcy4KLURhbmllbAotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdp bmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK