From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 09/12] drm/i915: wait for a vblank instead of 50ms when enabling FBC Date: Tue, 17 Nov 2015 21:29:58 +0200 Message-ID: <20151117192958.GX4437@intel.com> References: <1447444424-17168-1-git-send-email-paulo.r.zanoni@intel.com> <1447444424-17168-10-git-send-email-paulo.r.zanoni@intel.com> <20151113210343.GB569@nuc-i3427.alporthouse.com> <20151113212019.GG4437@intel.com> <20151113212638.GH4437@intel.com> <1447450727.2734.97.camel@intel.com> <20151113231738.GI4437@intel.com> <1447786992.2913.26.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 70EAF6E481 for ; Tue, 17 Nov 2015 11:30:02 -0800 (PST) Content-Disposition: inline In-Reply-To: <1447786992.2913.26.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Zanoni, Paulo R" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBOb3YgMTcsIDIwMTUgYXQgMDc6MDM6MTNQTSArMDAwMCwgWmFub25pLCBQYXVsbyBS IHdyb3RlOgo+IEVtIFPDoWIsIDIwMTUtMTEtMTQgw6BzIDAxOjE3ICswMjAwLCBWaWxsZSBTeXJq w6Rsw6QgZXNjcmV2ZXU6Cj4gPiBPbiBGcmksIE5vdiAxMywgMjAxNSBhdCAwOTozODo1MFBNICsw MDAwLCBaYW5vbmksIFBhdWxvIFIgd3JvdGU6Cj4gPiA+IEVtIFNleCwgMjAxNS0xMS0xMyDDoHMg MjM6MjYgKzAyMDAsIFZpbGxlIFN5cmrDpGzDpCBlc2NyZXZldToKPiA+ID4gPiBPbiBGcmksIE5v diAxMywgMjAxNSBhdCAxMToyMDoxOVBNICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4g PiA+ID4gPiBPbiBGcmksIE5vdiAxMywgMjAxNSBhdCAwOTowMzo0M1BNICswMDAwLCBDaHJpcyBX aWxzb24gd3JvdGU6Cj4gPiA+ID4gPiA+IE9uIEZyaSwgTm92IDEzLCAyMDE1IGF0IDA1OjUzOjQx UE0gLTAyMDAsIFBhdWxvIFphbm9uaSB3cm90ZToKPiA+ID4gPiA+ID4gPiBJbnN0ZWFkIG9mIHdh aXRpbmcgZm9yIDUwbXMsIGp1c3Qgd2FpdCB1bnRpbCB0aGUgbmV4dAo+ID4gPiA+ID4gPiA+IHZi bGFuaywKPiA+ID4gPiA+ID4gPiBzaW5jZQo+ID4gPiA+ID4gPiA+IGl0J3MgdGhlIG1pbmltdW0g cmVxdWlyZW1lbnQuCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gVGhpcyBtb3ZlcyBQQzcg cmVzaWRlbmN5IG9uIG15IHNwZWNpZmljIEJEVyBtYWNoaW5lIHJ1bm5pbmcKPiA+ID4gPiA+ID4g PiBDaW5uYW1vbgo+ID4gPiA+ID4gPiA+IGZyb20gNjAtNzAlIHRvIDg0LTg5JS4gV2l0aG91dCBG QkMsIEkgZ2V0IDIwLTI1JS4gSSdtIHVzaW5nCj4gPiA+ID4gPiA+ID4gYQo+ID4gPiA+ID4gPiA+ IDMyMDB4MTgwMCBlRFAgcGFuZWwuIE5vdGljZTogdGhpcyB3YXMgdGhlIGNhc2Ugd2hlbiB0aGUK PiA+ID4gPiA+ID4gPiBwYXRjaAo+ID4gPiA+ID4gPiA+IHdhcwo+ID4gPiA+ID4gPiA+IG9yaWdp bmFsbHkgcHJvcG9zZWQsIHRoZSBvcmRlciBvZiB0aGUgRkJDIHBhdGNoZXMgY2hhbmdlZAo+ID4g PiA+ID4gPiA+IHNpbmNlCj4gPiA+ID4gPiA+ID4gdGhlbiwKPiA+ID4gPiA+ID4gPiBzbyB0aGUg YWN0dWFsIG51bWJlcnMgbWlnaHQgYmUgc2xpZ2h0bHkgZGlmZmVyZW50IG5vdy4KPiA+ID4gPiA+ ID4gPiAKPiA+ID4gPiA+ID4gPiB2MjoKPiA+ID4gPiA+ID4gPiDCoCAtIFJlYmFzZSBhZnRlciBj aGFuZ2luZyB0aGUgcGF0Y2ggb3JkZXIuCj4gPiA+ID4gPiA+ID4gwqAgLSBVcGRhdGUgdGhlIGNv bW1pdCBtZXNzYWdlLgo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6 IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+ID4gPiA+ID4gPiA+IC0t LQo+ID4gPiA+ID4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaMKgwqB8wqDC oDIgKy0KPiA+ID4gPiA+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jIHwg MTIgKysrLS0tLS0tLS0tCj4gPiA+ID4gPiA+ID4gwqAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0 aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gPiA+ID4gPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gPiA+ID4gPiBpbmRleCA5NDE4 YmQ1Li5lYTA4NzE0IDEwMDY0NAo+ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiA+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gPiA+ID4gPiA+ID4gQEAgLTkxOSw5ICs5MTksOSBAQCBzdHJ1Y3QgaTkxNV9m YmMgewo+ID4gPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiA+ID4gwqAJc3RydWN0IGludGVsX2ZiY193 b3JrIHsKPiA+ID4gPiA+ID4gPiDCoAkJYm9vbCBzY2hlZHVsZWQ7Cj4gPiA+ID4gPiA+ID4gKwkJ dTMyIHNjaGVkdWxlZF92Ymxhbms7Cj4gPiA+ID4gPiA+ID4gwqAJCXN0cnVjdCB3b3JrX3N0cnVj dCB3b3JrOwo+ID4gPiA+ID4gPiA+IMKgCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKPiA+ ID4gPiA+ID4gPiAtCQl1bnNpZ25lZCBsb25nIGVuYWJsZV9qaWZmaWVzOwo+ID4gPiA+ID4gPiA+ IMKgCX0gd29yazsKPiA+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gPiA+IMKgCWNvbnN0IGNoYXIg Km5vX2ZiY19yZWFzb247Cj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2ZiYy5jCj4gPiA+ID4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9mYmMuYwo+ID4gPiA+ID4gPiA+IGluZGV4IGFhODIwNzUuLjcyZGU4YTEgMTAwNjQ0Cj4g PiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiA+ID4g PiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gPiA+ID4g PiA+IEBAIC0zOTEsNyArMzkxLDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX3dvcmtfZm4oc3Ry dWN0Cj4gPiA+ID4gPiA+ID4gd29ya19zdHJ1Y3QgKl9fd29yaykKPiA+ID4gPiA+ID4gPiDCoAkJ Y29udGFpbmVyX29mKF9fd29yaywgc3RydWN0Cj4gPiA+ID4gPiA+ID4gZHJtX2k5MTVfcHJpdmF0 ZSwKPiA+ID4gPiA+ID4gPiBmYmMud29yay53b3JrKTsKPiA+ID4gPiA+ID4gPiDCoAlzdHJ1Y3Qg aW50ZWxfZmJjX3dvcmsgKndvcmsgPSAmZGV2X3ByaXYtPmZiYy53b3JrOwo+ID4gPiA+ID4gPiA+ IMKgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gZGV2X3ByaXYtPmZiYy5jcnRjOwo+ID4gPiA+ ID4gPiA+IC0JdW5zaWduZWQgbG9uZyBkZWxheV9qaWZmaWVzID0KPiA+ID4gPiA+ID4gPiBtc2Vj c190b19qaWZmaWVzKDUwKTsKPiA+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gPiA+IMKgcmV0cnk6 Cj4gPiA+ID4gPiA+ID4gwqAJLyogRGVsYXkgdGhlIGFjdHVhbCBlbmFibGluZyB0byBsZXQgcGFn ZWZsaXBwaW5nCj4gPiA+ID4gPiA+ID4gY2Vhc2UKPiA+ID4gPiA+ID4gPiBhbmQgdGhlCj4gPiA+ ID4gPiA+ID4gQEAgLTQwMCwxNCArMzk5LDkgQEAgcmV0cnk6Cj4gPiA+ID4gPiA+ID4gwqAJwqAq IHZibGFuayB0byBwYXNzIGFmdGVyIGRpc2FibGluZyB0aGUgRkJDIGJlZm9yZQo+ID4gPiA+ID4g PiA+IHdlCj4gPiA+ID4gPiA+ID4gYXR0ZW1wdAo+ID4gPiA+ID4gPiA+IMKgCcKgKiB0byBtb2Rp ZnkgdGhlIGNvbnRyb2wgcmVnaXN0ZXJzLgo+ID4gPiA+ID4gPiA+IMKgCcKgKgo+ID4gPiA+ID4g PiA+IC0JwqAqIEEgbW9yZSBjb21wbGljYXRlZCBzb2x1dGlvbiB3b3VsZCBpbnZvbHZlCj4gPiA+ ID4gPiA+ID4gdHJhY2tpbmcKPiA+ID4gPiA+ID4gPiB2YmxhbmtzCj4gPiA+ID4gPiA+ID4gLQnC oCogZm9sbG93aW5nIHRoZSB0ZXJtaW5hdGlvbiBvZiB0aGUgcGFnZS1mbGlwcGluZwo+ID4gPiA+ ID4gPiA+IHNlcXVlbmNlCj4gPiA+ID4gPiA+ID4gLQnCoCogYW5kIGluZGVlZCBwZXJmb3JtaW5n IHRoZSBlbmFibGUgYXMgYSBjby0KPiA+ID4gPiA+ID4gPiByb3V0aW5lCj4gPiA+ID4gPiA+ID4g YW5kIG5vdAo+ID4gPiA+ID4gPiA+IC0JwqAqIHdhaXRpbmcgc3luY2hyb25vdXNseSB1cG9uIHRo ZSB2YmxhbmsuCj4gPiA+ID4gPiA+ID4gLQnCoCoKPiA+ID4gPiA+ID4gPiDCoAnCoCogV2FGYmNX YWl0Rm9yVkJsYW5rQmVmb3JlRW5hYmxlOmlsayxzbmIKPiA+ID4gPiA+ID4gPiDCoAnCoCovCj4g PiA+ID4gPiA+ID4gLQl3YWl0X3JlbWFpbmluZ19tc19mcm9tX2ppZmZpZXMod29yay0KPiA+ID4g PiA+ID4gPiA+ZW5hYmxlX2ppZmZpZXMsCj4gPiA+ID4gPiA+ID4gZGVsYXlfamlmZmllcyk7Cj4g PiA+ID4gPiA+ID4gKwlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYtPmRldiwgY3J0Yy0+ cGlwZSk7Cj4gPiA+ID4gPiA+ID4gwqAKPiA+ID4gPiA+ID4gPiDCoAltdXRleF9sb2NrKCZkZXZf cHJpdi0+ZmJjLmxvY2spOwo+ID4gPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiA+ID4gQEAgLTQxNiw3 ICs0MTAsNyBAQCByZXRyeToKPiA+ID4gPiA+ID4gPiDCoAkJZ290byBvdXQ7Cj4gPiA+ID4gPiA+ ID4gwqAKPiA+ID4gPiA+ID4gPiDCoAkvKiBXZXJlIHdlIGRlbGF5ZWQgYWdhaW4gd2hpbGUgdGhp cyBmdW5jdGlvbiB3YXMKPiA+ID4gPiA+ID4gPiBzbGVlcGluZz8gKi8KPiA+ID4gPiA+ID4gPiAt CWlmICh0aW1lX2FmdGVyKHdvcmstPmVuYWJsZV9qaWZmaWVzICsKPiA+ID4gPiA+ID4gPiBkZWxh eV9qaWZmaWVzLAo+ID4gPiA+ID4gPiA+IGppZmZpZXMpKSB7Cj4gPiA+ID4gPiA+ID4gKwlpZiAo ZHJtX2NydGNfdmJsYW5rX2dldCgmY3J0Yy0+YmFzZSkgPT0gd29yay0KPiA+ID4gPiA+ID4gPiA+ IHNjaGVkdWxlZF92YmxhbmspIHsKPiA+ID4gPiA+ID4gPiDCoAkJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+ZmJjLmxvY2spOwo+ID4gPiA+ID4gPiA+IMKgCQlnb3RvIHJldHJ5Owo+ID4gPiA+ID4g PiA+IMKgCX0KPiA+ID4gPiA+ID4gPiBAQCAtNDQ5LDcgKzQ0Myw3IEBAIHN0YXRpYyB2b2lkCj4g PiA+ID4gPiA+ID4gaW50ZWxfZmJjX3NjaGVkdWxlX2FjdGl2YXRpb24oc3RydWN0IGludGVsX2Ny dGMgKmNydGMpCj4gPiA+ID4gPiA+ID4gwqAJwqAqIGppZmZ5IGNvdW50LiAqLwo+ID4gPiA+ID4g PiA+IMKgCXdvcmstPmZiID0gY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsKPiA+ID4gPiA+ID4gPiDC oAl3b3JrLT5zY2hlZHVsZWQgPSB0cnVlOwo+ID4gPiA+ID4gPiA+IC0Jd29yay0+ZW5hYmxlX2pp ZmZpZXMgPSBqaWZmaWVzOwo+ID4gPiA+ID4gPiA+ICsJd29yay0+c2NoZWR1bGVkX3ZibGFuayA9 Cj4gPiA+ID4gPiA+ID4gZHJtX2NydGNfdmJsYW5rX2NvdW50KCZjcnRjLQo+ID4gPiA+ID4gPiA+ ID4gYmFzZSk7Cj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBJc24ndCB0aGUgZnJhbWUgY291bnRl ciBvbmx5IGluY3JlbWVudGluZyB3aGlsc3QgdGhlIHZibGFuawo+ID4gPiA+ID4gPiBJUlEKPiA+ ID4gPiA+ID4gaXMKPiA+ID4gPiA+ID4gZW5hYmxlZD8gVmlsbGU/Cj4gPiA+ID4gPiAKPiA+ID4g PiA+IEkgc2VlIGEgIisgaWYgKGRybV9jcnRjX3ZibGFua19nZXQoIiBlYXJsaWVyLgo+ID4gPiA+ IAo+ID4gPiA+IEhtbS4gQWN0dWFsbHkgaXQncyBkb2luZwo+ID4gPiA+ICJkcm1fY3J0Y192Ymxh bmtfZ2V0KCZjcnRjLT5iYXNlKSA9PSB3b3JrLT5zY2hlZHVsZWRfdmJsYW5rKSIKPiA+ID4gPiB3 aGljaCBsb29rcyByYXRoZXIgbGlrZSBub25zZW5zZS4KPiA+ID4gPiAKPiA+ID4gPiBOb3Qgc3Vy ZSB3aGF0IHRoZSBpbnRlbnRpb24gaGVyZSB3YXMuLi4KPiA+ID4gCj4gPiA+IE91Y2guIFRoZSBp bnRlbnQgd2FzIGZvciB0aGF0IHRvIGJlIGFub3RoZXIgY2FsbCBmb3IKPiA+ID4gZHJtX2NydGNf dmJsYW5rX2NvdW50KCkuCj4gPiA+IAo+ID4gPiBUaGUgY29kZSBpbiBkaXNjdXNzaW9uIGlzIGNv bXBsZXRlbHkgYmFzZWQgb24gdGhlCj4gPiA+IGRybV93YWl0X29uZV92YmxhbmsoKQo+ID4gPiBj b2RlOiBjYWxsIGRybV92YmxhbmtfY291bnQoKSwgdGhlbiBjYWxsIGl0IGFnYWluIHVudGlsIGl0 IHJldHVybnMKPiA+ID4gc29tZXRoaW5nIGRpZmZlcmVudC4gVGhlIGRpZmZlcmVuY2UgaXMgdGhh dCB3ZSBhY3R1YWxseSBjYWxsCj4gPiA+IGRybV93YWl0X29uZV92YmxhbmsoKSBpbiB0aGUgbWlk ZGxlIG9mIHRoZSBwcm9jZXNzLCBhbmQgdGhhdAo+ID4gPiBzY2hlZHVsZWRfdmJsYW5rIG1heSBh bHNvIGJlIHVwZGF0ZWQgaW4gdGhlIG1lYW50aW1lLCBzbyBzbyBtYXkKPiA+ID4gaGF2ZSB0bwo+ ID4gPiBjYWxsIGRybV93YWl0X29uZV92YmxhbmsoKSBhZ2Fpbi4KPiA+IAo+ID4gWW91IGhhdmUg bm8gZ3VhcmFudGVlcyB0aGF0IGRybV9jcnRjX3ZibGFua19jb3VudCgpIHdvbid0IGdpdmUgeW91 Cj4gPiBzb21ldGhpbmcgdG90YWxseSBzdGFsZSB1bmxlc3MgeW91IGhhdmUgYSB2YmxhbmsgcmVm ZXJlbmNlIHdoZW4KPiA+IGNhbGxpbmcKPiA+IGl0LiBJZiB5b3UgaGF2ZSBhIHJlZmVyZW5jZSBp dCdzIGd1YXJhbnRlZWQgdG8gZ2l2ZSB5b3Ugc29tZXRoaW5nCj4gPiBmYWlybHkKPiA+IHJlY2Vu dCwKPiAKPiBBbGwgdGhlIHBvaW50cyBtZW50aW9uZWQgYWJvdmUgYXJlIGVhc2lseSBmaXhhYmxl Lgo+IAo+ID4gYnV0IHRoZSByYWNlIEkgb3V0bGluZWQgaW4gdGhlIGVhcmxpZXIgbWFpbCBzdGls bCBleGlzdHMuCj4gCj4gSSd2ZSBiZWVuIHRyeWluZyB0byB1bmRlcnN0YW5kIHRoaXMsIGFuZCBp dCBzZWVtcwo+IGk5MTVfZ2V0X3ZibGFua19jb3VudGVyKCkgdHJpZXMgdG8gd29yayBhcm91bmQg dGhhdCBwcm9ibGVtIHdpdGggdGhlCj4gbG9naWMgYmVoaW5kIHRoZSAicGl4ZWwiIGFuZCAidmJs X3N0YXJ0IiB2YXJpYWJsZXMuIElzbid0IHRoYXQgZW5vdWdoPwo+IElmIG5vLCB3aHk/CgpObyBp OTE1X2dldF92YmxhbmtfY291bnRlcigpIGlzIHRoZXJlIGZvciBhbm90aGVyIHJlYXNvbjsgT24g Z2VuMy80CnRoZSBodyBjb3VudGVyIGluY3JlbWVudHMgYXQgdGhlIHdyb25nIHRpbWUsIHNvIHdl IGhhdmUgdG8gY29udmVydAppdCB0byBsb29rIGxpa2UgaXQgaW5jcmVtZW50ZWQgYXQgdGhlIHJp Z2h0IHRpbWUuIEZvcnR1bmF0ZWx5IHdlCmNhbiByZWFkIG91dCB0aGUgaHcgY291bnRlciBhbmQg dGhlIHBpeGVsIGNvdW50ZXIgYXRvbWljYWxseSwgc28KdGhlcmUncyBubyByYWNlIG9yIGFueXRo aW5nIGR1ZSB0byB0aGUgY29udmVyc2lvbi4KCj4gPiAgQW5kIHllcywKPiA+IGRybV93YWl0X29u ZV92YmxhbmsoKSBpcyBubyBnb29kIGR1ZSB0byB0aGF0IHNhbWUgcmFjZS4KPiAKPiBTbyBzaG91 bGRuJ3Qgd2Ugc3RvcCB1c2luZyBpbnRlbF93YWl0X2Zvcl92YmxhbmsoKSBvbiB0aGUgYWZmZWN0 ZWQKPiBwbGF0Zm9ybXM/CgpBbGwgcGxhdGZvcm1zIGFyZSBhZmZlY3RlZCwganVzdCBzb21lIGFy ZSBtb3JlIHN1c2NlcHRpYmxlIHRoYW4gb3RoZXJzLgpXZSBzaG91bGQgZml4IGludGVsX3dhaXRf Zm9yX3ZibGFuaygpIHRvIGRvIHRoZSByaWdodCB0aGluZy4KCj4gT3IgYXQgbGVhc3QgYWRkIGEg YmlnIGNvbW1lbnQgZXhwbGFpbmluZyB0aGUgcHJvYmxlbSwgb3IgYWRkCj4gYSBXQVJOKGdlbiA9 PSAzIHx8IGdlbiA9PSA0ICYmICFpc19nNHgpLCBvciBzb21ldGhpbmcgZWxzZS4gSSBnb3QgYQo+ IGxpdHRsZSBzdXJwcmlzZWQgd2hlbiB5b3Ugc2FpZCB0aGUgZnVuY3Rpb24gaXMgdW5yZWxpYWJs ZSAod2FzIHRoZQo+IHByZXZpb3VzIGltcGxlbWVudGF0aW9uIGJhc2VkIG9uIEk5MTVfUkVBRCBh bHNvIGVxdWFsbHkgdW5yZWxpYWJsZT8pLgoKT24gZzR4KyB0aGUgcG9sbGluZyBpbXBsZW1lbnRh dGlvbiBkaWRuJ3Qgc3VmZmVyIGZyb20gdGhpcyBpc3N1ZSBzaW5jZQppdCB3YXMgcG9sbGluZyB0 aGUgaHcgZnJhbWUgY291bnRlci4gQnV0IHRoZSBmYWN0IHRoYXQgaXQgd2FzIHBvbGxpbmcKd2Fz IHN1Yi1vcHRpbWFsLgoKT24gb2xkZXIgcGxhdGZvcm1zIGEgc2ltaWxhciByYWNlIHdhcyB0aGVy ZSBzaW5jZSBpdCB3YXMgcG9sbGluZyB0aGUKImZyYW1lIHN0YXJ0IiBiaXQgYW5kIG5vdCB0aGUg InN0YXJ0IG9mIHZibGFuayIgYml0LiBJbiBhZGRpdGlvbgppdCBjb3VsZCBhbHNvIGVmZmVjdGl2 ZWx5IGVhdCB0aGUgaW50ZXJydXB0IHRoYXQgc29tZW9uZSB3YXMgd2FpdGluZwpmb3IgKG9uIGdl bjIvMyBzaW5jZSB0aGV5IHVzZSB0aGUgImZyYW1lIHN0YXJ0IiBhcyB0aGUgaW50ZXJydXB0IGFz CndlbGwpLgoKPiBBbHNvLCBzaW5jZSB3ZSBhcmUgYWxyZWFkeSBydW5uaW5nIHRoaXMgcmlzayBp biBvdGhlciBwYXJ0cyBvZiB0aGUKPiBjb2RlLCBJJ20gbm90IHN1cmUgd2hhdCBhcmUgdGhlIGNv bmRpdGlvbnMgZm9yIG15IHBhdGNoIHRvIGJlCj4gYWNjZXB0YWJsZS4KClRoZSBtYWluIHByb2Js ZW0gaW4geW91ciBwYXRjaCBpcyB1c2luZyBkcm1fdmJsYW5rX2NvdW50KCkgdy9vIGEKZHJtX3Zi bGFua19nZXQvcHV0KCkuIFNvIHRoYXQgc2hvdWxkIGJlIGZpeGVkIHNvbWVob3cuCgpJIGd1ZXNz IHdlIGNhbiBpZ25vcmUgdGhlIHJhY2Ugd2l0aCB0aGUgdmJsYW5rIGludGVycnVwdCBoYW5kbGVy CmZvciBub3cgc2luY2UgdGhlIHNhbWUgcHJvYmxlbSBleGlzdHMgZXZlcnl3aGVyZSBlbHNlIGFs cmVhZHkuCgo+IEp1c3QgZml4aW5nIHRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiwgd2hpbGUg a2VlcGluZyBpdAo+IGJhc2VkIG9uIGRybV93YWl0X29uZV92YmxhbmsoKSBhbmQgbWF5YmUgYWRk aW5nIHNvbWUgVE9ETyBjb21tZW50IHdvdWxkCj4gZG8/IE9yIGRvIHlvdSBzZWUgYW4gYWN0dWFs IHNpbXBsZSBzb2x1dGlvbiBmb3IgdGhlIHJhY2UgeW91IG1lbnRpb25lZD8KPiAKPiBUaGFua3Ms Cj4gUGF1bG8KPiAKPiA+IAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK