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 12:06:08 +0200 Message-ID: <20150713100608.GI3736@phenom.ffwll.local> References: <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> <20150713094528.GE3736@phenom.ffwll.local> <55A3898D.3000500@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <55A3898D.3000500@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: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdWwgMTMsIDIwMTUgYXQgMTE6NDk6MDFBTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMTMtMDctMTUgb20gMTE6NDUgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+ ID4gT24gTW9uLCBKdWwgMTMsIDIwMTUgYXQgMTE6MjM6NDVBTSArMDIwMCwgTWFhcnRlbiBMYW5r aG9yc3Qgd3JvdGU6Cj4gPj4gT3AgMTMtMDctMTUgb20gMTE6MTMgc2NocmVlZiBEYW5pZWwgVmV0 dGVyOgo+ID4+PiBPbiBNb24sIEp1bCAxMywgMjAxNSBhdCAxMDo1OTozMkFNICswMjAwLCBNYWFy dGVuIExhbmtob3JzdCB3cm90ZToKPiA+Pj4+IE9wIDA4LTA3LTE1IG9tIDIyOjEyIHNjaHJlZWYg RGFuaWVsIFZldHRlcjoKPiA+Pj4+PiBPbiBXZWQsIEp1bCAwOCwgMjAxNSBhdCAwODoyNTowN1BN ICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90ZToKPiA+Pj4+Pj4gT3AgMDgtMDctMTUgb20g MTk6NTIgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+ID4+Pj4+Pj4gT24gV2VkLCBKdWwgMDgsIDIw MTUgYXQgMDY6MzU6NDdQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6Cj4gPj4+Pj4+ Pj4gT3AgMDgtMDctMTUgb20gMTA6NTUgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+ID4+Pj4+Pj4+ PiBPbiBXZWQsIEp1bCAwOCwgMjAxNSBhdCAxMDowMDoyMkFNICswMjAwLCBNYWFydGVuIExhbmto b3JzdCB3cm90ZToKPiA+Pj4+Pj4+Pj4+IE9wIDA3LTA3LTE1IG9tIDE4OjQzIHNjaHJlZWYgRGFu aWVsIFZldHRlcjoKPiA+Pj4+Pj4+Pj4+PiBPbiBUdWUsIEp1bCAwNywgMjAxNSBhdCAwNTowODoz NFBNICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4gT3AgMDct MDctMTUgb20gMTQ6MTAgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+ID4+Pj4+Pj4+Pj4+Pj4gT24g VHVlLCBKdWwgMDcsIDIwMTUgYXQgMTI6MjA6MTBQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3Qg d3JvdGU6Cj4gPj4+Pj4+Pj4+Pj4+Pj4gT3AgMDctMDctMTUgb20gMTE6MTggc2NocmVlZiBEYW5p ZWwgVmV0dGVyOgo+ID4+Pj4+Pj4+Pj4+Pj4+PiBPbiBUdWUsIEp1bCAwNywgMjAxNSBhdCAwOTow ODoxM0FNICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ IFRoaXMgYWxsb3dzIHRoZSBmaXJzdCBhdG9taWMgY2FsbCBkdXJpbmcgaHcgaW5pdCB0byBiZSBh IHJlYWwgbW9kZXNldCwKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IHdoaWNoIGlzIHVzZWZ1bCBmb3IgZm9y Y2luZyBhIHJlY2FsY3VsYXRpb24uCj4gPj4+Pj4+Pj4+Pj4+Pj4+IGZiY29uIGlzIG9wdGlvbmFs LCB5b3UgY2FuJ3QgcmVseSBvbiBhbnl0aGluZyBiZWluZyBkb25lIGluIGFueSBzcGVjaWZpYwo+ ID4+Pj4+Pj4+Pj4+Pj4+PiB3YXkuIFdoYXQgZXhhY3RseSBkbyB5b3UgbmVlZCB0aGlzIGZvciwg d2hhdCdzIHRoZSBpbXBsaWNhdGlvbnM/Cj4gPj4+Pj4+Pj4+Pj4+Pj4gSW4gdGhlIGh3IHJlYWRv dXQgSSBub3RpY2VkIHNvbWUgd2FybmluZ3Mgd2hlbiBJIHdhc24ndCBzZXR0aW5nIGFueSBtb2Rl IHByb3BlcnR5IGluIHRoZSByZWFkb3V0Lgo+ID4+Pj4+Pj4+Pj4+Pj4+IEkgd2FudCB0aGUgZmly c3QgZnVuY3Rpb24gdG8gYmUgdGhlIG1vZGVzZXQsIHNvIHdlIGhhdmUgYSBzYW5lIGJhc2UgdG8g Y29tbWl0IGNoYW5nZXMgb24uCj4gPj4+Pj4+Pj4+Pj4+Pj4gSWRlYWxseSB0aGlzIHdob2xlIGZ1 bmN0aW9uIHdvdWxkIGhhdmUgYSBhdG9taWMgY291bnRlcnBhcnQgd2hpY2ggZG9lcyBpdCBpbiBv bmUgZ28uIDopCj4gPj4+Pj4+Pj4+Pj4+PiBZZWFoLiBPdG9oIGFzIHNvb24gYXMgd2UgaGF2ZSBh dG9taWMgbW9kZXNldCB3b3JraW5nIHdlIGNhbiByZXBsYWNlIGFsbAo+ID4+Pj4+Pj4+Pj4+Pj4g dGhlIGxlZ2FjeSBlbnRyeSBwb2ludHMgd2l0aCBhdG9taWMgaGVscGVycywgYW5kIHRoZW4gZXZl biBwbGFuZV9kaXNhYmxlCj4gPj4+Pj4+Pj4+Pj4+PiB3aWxsIGJlIGEgZnVsbCBhdG9taWMgbW9k ZXNldC4KPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBXaGF0IGRpZCBmYWxsIGFwYXJ0 IHdpdGgganVzdCB0b3VjaGluZyBwcm9wZXJ0aWVzL3BsYW5lcyBub3c/Cj4gPj4+Pj4+Pj4+Pj4+ IEFsc28gd2hlbiBpOTE1IGlzIGZ1bGx5IGF0b21pYyBpdCBjYWxjdWxhdGVzIGluIGludGVsX21v ZGVzZXRfY29tcHV0ZV9jb25maWcKPiA+Pj4+Pj4+Pj4+Pj4gaWYgYSBtb2Rlc2V0IGlzIG5lZWRl ZCBhZnRlciB0aGUgZmlyc3QgYXRvbWljIGNhbGwuIFJpZ2h0IG5vdyBiZWNhdXNlCj4gPj4+Pj4+ Pj4+Pj4+IGludGVsX21vZGVzZXRfY29tcHV0ZV9jb25maWcgaXMgb25seSBjYWxsZWQgaW4gc2V0 X2NvbmZpZyBzbyB0aGlzIHdvcmtzIGFzIGV4cGVjdGVkLgo+ID4+Pj4+Pj4+Pj4+PiBPdGhlcndp c2UgZHJtX3BsYW5lX2ZvcmNlX2Rpc2FibGUgb3Igcm90YXRlXzAgd2lsbCBmb3JjZSBhIG1vZGVz ZXQsCj4gPj4+Pj4+Pj4+Pj4+IGFuZCBpZiB0aGUgZmluYWwgbW9kZSBpcyBkaWZmZXJlbnQgdGhp cyB3aWxsIGludHJvZHVjZSBhIGRvdWJsZSBtb2Rlc2V0Lgo+ID4+Pj4+Pj4+Pj4+IEZvciBleHBl bnNpdmUgcHJvcGVydGllcyAoaS5lLiBhIG5vLW9wIGNoYW5nZXMgY2F1c2VzIHNvbWV0aGluZyB0 aGF0IHRha2VzCj4gPj4+Pj4+Pj4+Pj4gdGltZSBsaWtlIG1vZGVzZXQgb3IgdmJsYW5rIHdhaXQp IHdlIG5lZWQgdG8gbWFrZSBzdXJlIHdlIGZpbHRlciB0aGVtIG91dAo+ID4+Pj4+Pj4+Pj4+IGlu IGF0b21pY19jaGVjay4gWWVhaCBub3QgcXVpdGUgdGhlcmUgeWV0IHdpdGggcHVyZSBhdG9taWMs IGJ1dCBtZWFud2hpbGUKPiA+Pj4+Pj4+Pj4+PiB0aGUgZXhpc3RpbmcgbGVnYWN5IHNldF9wcm9w IGZ1bmN0aW9ucyBzaG91bGQgYWxsIGZpbHRlciBvdXQgbm8tb3AgY2hhbmdlcwo+ID4+Pj4+Pj4+ Pj4+IHRoZW1zZWx2ZXMuIElmIHdlIGRvbid0IGRvIHRoYXQgZm9yIHJvdGF0aW9uIHRoZW4gdGhh dCdzIGEgYnVnLgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gU2FtZSBmb3IgZGlzYWJsaW5n IHBsYW5lcyBoYXJkZXIsIHRoYXQgc2hvdWxkbid0IHRha2UgdGltZS4gRXNwZWNpYWxseQo+ID4+ Pj4+Pj4+Pj4+IHNpbmNlIGZiY29uIG9ubHkgZm9yY2UtZGlzYWJsZSBub24tcHJpbWFyeSBwbGFu ZSwgYW5kIGZvciBkcml2ZXIgbG9hZAo+ID4+Pj4+Pj4+Pj4+IHRoYXQncyB0aGUgZXhhY3QgdGhp bmcgd2UgYWxyZWFkeSBkbyBpbiB0aGUgZHJpdmVyIGFueXdheS4KPiA+Pj4+Pj4+Pj4+IFNvbWV0 aGluZyBsaWtlIHRoaXM/Cj4gPj4+Pj4+Pj4+PiAtLS0KPiA+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX2hlbHBlci5jCj4gPj4+Pj4+Pj4+PiBpbmRleCBhMWQ0ZTEzZjM5MDguLjI5ODky MzJmNDk5NiAxMDA2NDQKPiA+Pj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljX2hlbHBlci5jCj4gPj4+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYwo+ID4+Pj4+Pj4+Pj4gQEAgLTMwLDYgKzMwLDcgQEAKPiA+Pj4+Pj4+Pj4+ICAj aW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KPiA+Pj4+Pj4+Pj4+ICAjaW5jbHVkZSA8 ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+ID4+Pj4+Pj4+Pj4gICNpbmNsdWRlIDxkcm0vZHJtX2F0 b21pY19oZWxwZXIuaD4KPiA+Pj4+Pj4+Pj4+ICsjaW5jbHVkZSAiZHJtX2NydGNfaW50ZXJuYWwu aCIKPiA+Pj4+Pj4+Pj4+ICAjaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KPiA+Pj4+Pj4+Pj4+ICAK PiA+Pj4+Pj4+Pj4+ICAvKioKPiA+Pj4+Pj4+Pj4+IEBAIC0xNzE2LDcgKzE3MTcsMTIgQEAgZHJt X2F0b21pY19oZWxwZXJfY3J0Y19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ ID4+Pj4+Pj4+Pj4gIHsKPiA+Pj4+Pj4+Pj4+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlOwo+ID4+Pj4+Pj4+Pj4gIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4g Pj4+Pj4+Pj4+PiAtCWludCByZXQgPSAwOwo+ID4+Pj4+Pj4+Pj4gKwl1aW50NjRfdCByZXR2YWw7 Cj4gPj4+Pj4+Pj4+PiArCWludCByZXQ7Cj4gPj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+PiArCXJl dCA9IGRybV9hdG9taWNfZ2V0X3Byb3BlcnR5KCZjcnRjLT5iYXNlLCBwcm9wZXJ0eSwgJnJldHZh bCk7Cj4gPj4+Pj4+Pj4+PiArCWlmICghcmV0ICYmIHZhbCA9PSByZXR2YWwpCj4gPj4+Pj4+Pj4+ PiArCQlyZXR1cm4gMDsKPiA+Pj4+Pj4+Pj4+ICAKPiA+Pj4+Pj4+Pj4+ICAJc3RhdGUgPSBkcm1f YXRvbWljX3N0YXRlX2FsbG9jKGNydGMtPmRldik7Cj4gPj4+Pj4+Pj4+PiAgCWlmICghc3RhdGUp Cj4gPj4+Pj4+Pj4+PiBAQCAtMTc3Niw3ICsxNzgyLDEyIEBAIGRybV9hdG9taWNfaGVscGVyX3Bs YW5lX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+Pj4+Pj4+Pj4+ICB7 Cj4gPj4+Pj4+Pj4+PiAgCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiA+Pj4+Pj4+ Pj4+ICAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4gPj4+Pj4+Pj4+PiAt CWludCByZXQgPSAwOwo+ID4+Pj4+Pj4+Pj4gKwl1aW50NjRfdCByZXR2YWw7Cj4gPj4+Pj4+Pj4+ PiArCWludCByZXQ7Cj4gPj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+PiArCXJldCA9IGRybV9hdG9t aWNfZ2V0X3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcHJvcGVydHksICZyZXR2YWwpOwo+ID4+Pj4+ Pj4+Pj4gKwlpZiAoIXJldCAmJiB2YWwgPT0gcmV0dmFsKQo+ID4+Pj4+Pj4+Pj4gKwkJcmV0dXJu IDA7Cj4gPj4+Pj4+Pj4+PiAgCj4gPj4+Pj4+Pj4+PiAgCXN0YXRlID0gZHJtX2F0b21pY19zdGF0 ZV9hbGxvYyhwbGFuZS0+ZGV2KTsKPiA+Pj4+Pj4+Pj4+ICAJaWYgKCFzdGF0ZSkKPiA+Pj4+Pj4+ Pj4+IEBAIC0xODM2LDcgKzE4NDcsMTIgQEAgZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3Nl dF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4+Pj4+Pj4+Pj4g IHsKPiA+Pj4+Pj4+Pj4+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+ID4+Pj4+ Pj4+Pj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwo+ID4+ Pj4+Pj4+Pj4gLQlpbnQgcmV0ID0gMDsKPiA+Pj4+Pj4+Pj4+ICsJdWludDY0X3QgcmV0dmFsOwo+ ID4+Pj4+Pj4+Pj4gKwlpbnQgcmV0Owo+ID4+Pj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+Pj4gKwlyZXQg PSBkcm1fYXRvbWljX2dldF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLCBwcm9wZXJ0eSwgJnJl dHZhbCk7Cj4gPj4+Pj4+Pj4+PiArCWlmICghcmV0ICYmIHZhbCA9PSByZXR2YWwpCj4gPj4+Pj4+ Pj4+PiArCQlyZXR1cm4gMDsKPiA+Pj4+Pj4+Pj4+ICAKPiA+Pj4+Pj4+Pj4+ICAJc3RhdGUgPSBk cm1fYXRvbWljX3N0YXRlX2FsbG9jKGNvbm5lY3Rvci0+ZGV2KTsKPiA+Pj4+Pj4+Pj4+ICAJaWYg KCFzdGF0ZSkKPiA+Pj4+Pj4+Pj4gVGhlIHJlYXNvbiBJIGRpZG4ndCBkbyB0aGlzIGlzIHRoYXQg YSBwcm9wIGNoYW5nZSBtaWdodCBzdGlsbCByZXN1bHQgaW4gbm8KPiA+Pj4+Pj4+Pj4gaHcgc3Rh dGUgY2hhbmdlIChlLmcuIGlmIHlvdSBnbyBhdXRvbWl0aWMtPmV4cGxpY2l0IHNldHRpbmcgbWF0 Y2hpbmcKPiA+Pj4+Pj4+Pj4gYXV0b21hdGljIG9uZSkuIEhlbmNlIEkgdGhpbmsgd2UgbmVlZCB0 byBzb2x2ZSB0aGlzIGluIGxvd2VyIGxldmVscwo+ID4+Pj4+Pj4+PiBhbnl3YXksIGkuZS4gaW4g d2hlbiBjb21wdXRpbmcgdGhlIGNvbmZpZy4gQnV0IGl0IHNob3VsZG4ndCBjYXVzZSB0cm91Ymxl Cj4gPj4+Pj4+Pj4+IHlldC4KPiA+Pj4+Pj4+PiBJcyB0aGF0IGEgYWNrIG9yIG5hY2s/Cj4gPj4+ Pj4+PiBJIHRoaW5rIHdlIHNob3VsZG4ndCBuZWVkIHRoaXMgcmVhbGx5IGZvciBpOTE1LCBhbmQg aXQgbWlnaHQgY292ZXIgdXAKPiA+Pj4+Pj4+IGJ1Z3MuIEkgcHJlZmVyIHdlIGp1c3QgZG8gdGhl IGV2YWRlIG1vZGVzZXQgbG9naWMgeW91J3ZlIGltcGxlbWVudGVkIG9uY2UKPiA+Pj4+Pj4+IHdl IHN3aXRjaCBvdmVyIHRvIGF0b21pYyBwcm9wcy4gU2luY2UgYXRtIHdlIG9ubHkgaGF2ZSBhdG9t aWMgcHJvcHMgd2hpY2gKPiA+Pj4+Pj4+IGdldCB1cGRhdGVkIGluIHBhZ2VmbGlwcyB3ZSBzaG91 bGRuJ3QgaGF2ZSBzZXJpb3VzIHByb2JsZW1zIGhlcmUgeWV0IChmb3IKPiA+Pj4+Pj4+IHNldHRp bmcgdGhlIHJvdGF0aW9uIHByb3AgdG8gMMKwIGFnYWluIHdoZW4gZmJkZXYgc3RhcnRzIHVwKS4K PiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBPciBkbyBJIG1pc3Mgc29tZXRoaW5nIHN0aWxsIGhlcmU/Cj4g Pj4+Pj4+IFllcywgaWYgdGhlIGhhcmR3YXJlIG1vZGUgaXMgaW5jb21wYXRpYmxlIHdpdGggaXRz IGNhbGN1bGF0ZWQgc3cgbW9kZSwKPiA+Pj4+Pj4gYW5kIHdlIHNldCBhIGRpZmZlcmVudCBtb2Rl IGZyb20gZmJkZXYgeW91IGdldCAyIG1vZGVzZXRzIGluc3RlYWQgb2YgMS4KPiA+Pj4+PiBIb3cg ZG9lcyB0aGF0IGhhcHBlbj8gRm9yIHNldHRpbmcgdGhlIHJvdGF0aW9uIHByb3BlcnR5IHdlIHNo b3VsZCBqdXN0Cj4gPj4+Pj4gZHVwbGljYXRlIHRoZSBjdXJyZW50IGNydGMgc3RhdGUuIFNpbmNl IHRoZXJlJ3Mgbm8gbW9kZSBjaGFuZ2luZyAodGhleQo+ID4+Pj4+IHNob3VsZCBtYXRjaCBwZXJm ZWN0bHkgbm8gbWF0dGVyIGhvdyBib3RjaGVkIHRoZSByZWNvbnN0cnVjdGlvbiBpcykgdGhlcmUK PiA+Pj4+PiBzaG91bGRuJ3QgYmUgYW55IG5lZWQgdG8gcmVjb21wdXRlIHRoZSBjb25maWcgY29t cGxldGVseSBhbmQgZGlzY292ZXIgdGhhdAo+ID4+Pj4+IHRoZXJlJ3MgYSBtaXNtYXRjaC4gV2hp Y2ggbWVhbnMgd2UnbGwganVzdCBkbyB0aGUgcGxhbmUgdXBkYXRlICh3aGljaAo+ID4+Pj4+IG1p Z2h0IGRvIGEgZmV3IHNpbGx5IG1taW9zIGJ1dCBzaG91bGRuJ3QgYmxvY2spIGFuZCB0aGF0J3Mg aXQuCj4gPj4+Pj4KPiA+Pj4+PiBBdCBsZWFzdCB0aGF0J3Mgd2hhdCBJJ2QgZXhwZWN0IC0gd2hl cmUgZG9lcyB0aGlzIGZhbGwgYXBhcnQ/Cj4gPj4+PiBJZiBjcnRjIGlzIGFjdGl2ZSBhbmQgcHJp bWFyeSBmYiB2aXNpYmxlLCBhbmQgY29udmVydGVkIHRvIGF0b21pYzoKPiA+Pj4+Cj4gPj4+PiBy ZXN0b3JlX2ZiZGV2X21vZGUoKSAtPgo+ID4+Pj4gCWRybV9tb2RlX3BsYW5lX3NldF9vYmpfcHJv cCgpIC0+Cj4gPj4+PiAJCWRybV9hdG9taWNfaGVscGVyX3BsYW5lX3NldF9wcm9wZXJ0eSgpIC0+ Cj4gPj4+PiAJCQlkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZSgpIC0+Cj4gPj4+PiAJCQkJZHJt X2F0b21pY19nZXRfY3J0Y19zdGF0ZSgpCj4gPj4+PiBjcnRjIHN0YXRlIGlzIHBhcnQgb2YgdGhl IHN0YXRlLCBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnIHBlcmZvcm1zCj4gPj4+PiB0aGUgaW5p dGlhbCBjaGVjayBpZiBtb2Rlc2V0J3MgbmVlZGVkLiBMZXRzIGFzc3VtZSB5ZXM6Cj4gPj4+ICJM ZXQncyBhc3N1bWUgeWVzIiAtPiB0aGF0J3MgaW1vIGEgYnVnLCBzbyB3aGVyZSBkb2VzIHRoaXMg aGFwcGVuIHNvIHRoYXQKPiA+Pj4gd2UgY2FuIGZpeCBpdD8gRGlzYWJsaW5nIGEgcGxhbmUgb3Ig c2V0dGluZyBhIHBsYW5lIHByb3AgcmVhbGx5IHNob3VsZG4ndAo+ID4+PiByZXN1bHQgaW4gYSBt b2Rlc2V0LiBXZWxsIGF0IGxlYXN0IGlmIGl0J3Mgbm90IGEgcGxhbmUgcHJvcCB0aGF0IGRvZXMK PiA+Pj4gcmVxdWlyZWQgYSBtb2Rlc2V0IChidXQgSSBkb24ndCB0aGluayB3ZSBoYXZlIGFueSBv ZiB0aG9zZSkuCj4gPj4gRnJvbSBhIGRyaXZlciBwb2ludCBvZiB2aWV3IHlvdSB3b3VsZG4ndCBi ZSBhYmxlIHRvIGRpc3Rpbmd1aXNoIGl0IGZyb20gYSByZWFsIG1vZGVzZXQgdG8gdGhlIHNhbWUg bW9kZS4gOigKPiA+PiBJbiBib3RoIGNhc2VzIHlvdSBoYXZlIGFsbCBwbGFuZXMgYWRkZWQgYW5k IHRoZSBjcnRjLgo+ID4+Cj4gPj4gVGhpbmtpbmcgYWJvdXQgaXQgbW9yZSB0aGVyZSB3aWxsIGJl IDEgdGhpbmcgc2F2aW5nIHVzIGZyb20gYSBtb2Rlc2V0LAo+ID4+IGRybV9hdG9taWNfY3J0Y19j aGVjayB3aWxsIHJlamVjdCBlbmFibGUgd2l0aG91dCBtb2RlX2Jsb2IgZm9yIGF0b21pYyBkcml2 ZXJzLAo+ID4+IHNvIHVudGlsIHRoZSBmaXJzdCBtb2RlIGlzIHNldCBhbGwgYXRvbWljIHVwZGF0 ZXMgdG8gdGhlIGNydGMgd2lsbCBiZSByZWplY3RlZC4KPiA+Pgo+ID4+IFVuZm9ydHVuYXRlbHkg eW91IHdpbGwgc3RpbGwgZ2V0IFdBUk5fT04ncyBmb3IgdGhpcywgc28gYSBiZXR0ZXIgc29sdXRp b24ncyBuZWVkZWQuCj4gPiBPayBJIHRoaW5rIEkgc3RhcnQgdG8gZ3Jhc3Agd2hhdCdzIHdyb25n LCB0aGUgdHJvdWJsZSBpcyB0aGF0IHdlIGRvbid0Cj4gPiBoYXZlIHRoZSBtb2RlIHN0dWZmIGZ1 bGx5IHNldCB1cCB5ZXQgKHdoaWNoIGlzIHBhcnQgb2YgZmFzdGJvb3QpLCB3aGljaAo+ID4gbWVh bnMgd2UnbGwgZ2V0IGEgYm9ndXMgY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkIGRlc3BpdGUgdGhh dCBub3RoaW5nCj4gPiByZWFsbHkgY2hhbmdlZC4gVWdseS4KPiBObywgbW9kZV9jaGFuZ2VkIHdv dWxkIGJlIGhhcm1sZXNzLCB3aXRoIHByb3BlciBza2lwIG1vZGVzZXQgc3VwcG9ydCBpdCBjYW4g YmUgY29udmVydGVkIHRvIGEgbm9vcC4KPiA+IENvdWxkIHdlIGluc2VydCBhIGR1bW15IG1vZGVf YmxvYiB0byBhdm9pZCB0aGUgV0FSTnMgYW5kIHRoZSBib2d1cwo+ID4gbW9kZV9jaGFuZ2VkIGlu c3RlYWQ/IFRoZSBwcm9ibGVtIHJlYWxseSBpcyB0aGF0IGRvaW5nIHRoaXMgaGVyZSBpcyBqdXN0 Cj4gPiBwbHVnZ2luZyB0aGUgb25lIHNvdXJjZSBvZiB0cm91YmxlcyB5b3UncmUgc2VlaW5nIHJp Z2h0IG5vdyAoZmJjb24pLCB0aGUKPiA+IGluaXRpYWwgc2V0XyogY2FsbHMgY291bGQgY29tZSBm cm9tIGFueXRoaW5nIHJlYWxseSBpbiBhbnkgb3JkZXIuIFNvIHdlCj4gPiByZWFsbHkgYmV0dGVy IGJlIGFibGUgdG8gY29wZS4KPiBEb2Vzbid0IHRoaXMgbWVhbiB3ZSBzaG91bGQgc2V0IGEgcmVh bCBtb2RlIHJlYWQgb3V0IGZyb20gaHcgc3RhdGUgaW5zdGVhZD8KClllYWggSSBndWVzcyBzby4g V2Ugc2ltcGx5IG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgd2UgaGF2ZSBhIG1pc21hdGNoLgpZb3Vy IERSSVZFUl9NT0RFIGFwcHJvYWNoIHNlZW1zIGxpa2UgaXQgc2hvdWxkIHdvcmsgb3V0LgotRGFu aWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=