From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/7] drm/i915/gen11: Link nv12 Y and UV planes in the atomic state, v3. Date: Tue, 25 Sep 2018 15:44:15 +0300 Message-ID: <20180925124415.GG9144@intel.com> References: <20180921173945.6276-1-maarten.lankhorst@linux.intel.com> <20180921173945.6276-3-maarten.lankhorst@linux.intel.com> <20180921183552.GH5565@intel.com> <20180921193122.GL5565@intel.com> <83d03c1c-1c2c-1fdf-4a60-f681e253a1ce@linux.intel.com> <20180924131810.GP5565@intel.com> <10c4351d-afd9-7c41-a711-4187f0e3b3b3@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8EFCF6E100 for ; Tue, 25 Sep 2018 12:44:18 +0000 (UTC) Content-Disposition: inline In-Reply-To: <10c4351d-afd9-7c41-a711-4187f0e3b3b3@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBTZXAgMjUsIDIwMTggYXQgMTI6MDM6NDdQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMjQtMDktMTggb20gMTU6MTggc2NocmVlZiBWaWxsZSBTeXJqw6Rsw6Q6 Cj4gPiBPbiBNb24sIFNlcCAyNCwgMjAxOCBhdCAwMjozNToxM1BNICswMjAwLCBNYWFydGVuIExh bmtob3JzdCB3cm90ZToKPiA+PiBPcCAyMS0wOS0xOCBvbSAyMTozMSBzY2hyZWVmIFZpbGxlIFN5 cmrDpGzDpDoKPiA+Pj4gT24gRnJpLCBTZXAgMjEsIDIwMTggYXQgMDk6MzU6NTJQTSArMDMwMCwg VmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4+Pj4gT24gRnJpLCBTZXAgMjEsIDIwMTggYXQgMDc6 Mzk6NDBQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6Cj4gPj4+Pj4gVG8gbWFrZSBO VjEyIHdvcmtpbmcgb24gaWNsLCB3ZSBuZWVkIHRvIHVwZGF0ZSAyIHBsYW5lcyBzaW11bHRhbmVv dXNseS4KPiA+Pj4+PiBJJ3ZlIGNob3NlbiB0byBkbyB0aGlzIGluIHRoZSBDUlRDIHN0ZXAgYWZ0 ZXIgcGxhbmUgdmFsaWRhdGlvbiBpcyBkb25lLAo+ID4+Pj4+IHNvIHdlIGtub3cgd2hhdCBwbGFu ZXMgYXJlIChpbil2aXNpYmxlLiBUaGUgbGlua2VkIFkgcGxhbmUgd2lsbCBnZXQKPiA+Pj4+PiB1 cGRhdGVkIGluIGludGVsX3BsYW5lX3VwZGF0ZV9wbGFuZXNfb25fY3J0YygpLCBieSB0aGUgY2Fs bCB0bwo+ID4+Pj4+IHVwZGF0ZV9zbGF2ZSwgd2hpY2ggZ2V0cyB0aGUgbWFzdGVyJ3MgcGxhbmVf c3RhdGUgYXMgYXJndW1lbnQuCj4gPj4+Pj4KPiA+Pj4+PiBUaGUgbGluayByZXF1aXJlcyBib3Ro IHBsYW5lcyBmb3IgYXRvbWljX3VwZGF0ZSB0byB3b3JrLAo+ID4+Pj4+IHNvIG1ha2Ugc3VyZSBz a2xfZGRiX2FkZF9hZmZlY3RlZF9wbGFuZXMoKSBhZGRzIGJvdGggc3RhdGVzLgo+ID4+Pj4+Cj4g Pj4+Pj4gQ2hhbmdlcyBzaW5jZSB2MToKPiA+Pj4+PiAtIEludHJvZHVjZSBpY2xfaXNfbnYxMl95 X3BsYW5lKCksIGluc3RlYWQgb2YgaGFyZGNvZGluZyBzcHJpdGUgbnVtYmVycy4KPiA+Pj4+PiAt IFB1dCBhbGwgdGhlIHN0YXRlIHVwZGF0aW5nIGxvZ2luIGluIGludGVsX3BsYW5lX2F0b21pY19j aGVja193aXRoX3N0YXRlKCkuCj4gPj4+Pj4gLSBDbGVhbiB1cCBjaGFuZ2VzIGluIGludGVsX3Bs YW5lX2F0b21pY19jaGVjaygpLgo+ID4+Pj4+IENoYW5nZXMgc2luY2UgdjI6Cj4gPj4+Pj4gLSBG aXggaW50ZWxfYXRvbWljX2dldF9vbGRfcGxhbmVfc3RhdGUoKSB0byBhY3R1YWxseSByZXR1cm4g b2xkIHN0YXRlLgo+ID4+Pj4+IC0gTW92ZSB2aXNpYmlsaXR5IGNoYW5nZXMgdG8gcHJlcGFyYXRp b24gcGF0Y2guCj4gPj4+Pj4gLSBPbmx5IHRyeSB0byBmaW5kIGEgWSBwbGFuZSBvbiBnZW4xMSwg ZWFybGllciBwbGF0Zm9ybXMgb25seSByZXF1aXJlIGEgc2luZ2xlIHBsYW5lLgo+ID4+Pj4+Cj4g Pj4+Pj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0 QGxpbnV4LmludGVsLmNvbT4KPiA+Pj4+Pgo+ID4+Pj4+IGZpeHVwIFkvVVYgTGlua2FnZQo+ID4+ Pj4+Cj4gPj4+Pj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFu a2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiA+Pj4+PiAtLS0KPiA+Pj4+PiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMgfCAxMDYgKysrKysrKysrKysrKysrKysrLS0t LQo+ID4+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICB8ICA1 NyArKysrKysrKysrKysKPiA+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg ICAgICAgICAgfCAgNTMgKysrKysrKysrKysKPiA+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYyAgICAgICAgICAgfCAgMTIgKystCj4gPj4+Pj4gIDQgZmlsZXMgY2hhbmdlZCwg MjEwIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQo+ID4+Pj4+Cj4gPj4+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiA+Pj4+PiBpbmRleCA5ODRiYzFm MjY2MjUuLjUyMjY5OTA4NWE1OSAxMDA2NDQKPiA+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+ID4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pY19wbGFuZS5jCj4gPj4+Pj4gQEAgLTEyMSw3ICsxMjEsMTEgQEAgaW50 IGludGVsX3BsYW5lX2F0b21pY19jaGVja193aXRoX3N0YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpvbGRfY3J0Y18KPiA+Pj4+PiAgCWNydGNfc3RhdGUtPm52MTJfcGxhbmVzICY9 IH5CSVQoaW50ZWxfcGxhbmUtPmlkKTsKPiA+Pj4+PiAgCWludGVsX3N0YXRlLT5iYXNlLnZpc2li bGUgPSBmYWxzZTsKPiA+Pj4+PiAgCj4gPj4+Pj4gLQkvKiBJZiB0aGlzIGlzIGEgY3Vyc29yIHBs YW5lLCBubyBmdXJ0aGVyIGNoZWNrcyBhcmUgbmVlZGVkLiAqLwo+ID4+Pj4+ICsJLyogRGVzdHJv eSB0aGUgbGluayAqLwo+ID4+Pj4+ICsJaW50ZWxfc3RhdGUtPmxpbmtlZF9wbGFuZSA9IE5VTEw7 Cj4gPj4+Pj4gKwlpbnRlbF9zdGF0ZS0+c2xhdmUgPSBmYWxzZTsKPiA+Pj4+PiArCj4gPj4+Pj4g KwkvKiBJZiB0aGlzIGlzIGEgY3Vyc29yIG9yIFkgcGxhbmUsIG5vIGZ1cnRoZXIgY2hlY2tzIGFy ZSBuZWVkZWQuICovCj4gPj4+Pj4gIAlpZiAoIWludGVsX3N0YXRlLT5iYXNlLmNydGMgJiYgIW9s ZF9wbGFuZV9zdGF0ZS0+YmFzZS5jcnRjKQo+ID4+Pj4+ICAJCXJldHVybiAwOwo+ID4+Pj4+ICAK PiA+Pj4+PiBAQCAtMTQyLDI3ICsxNDYsNzYgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVj a193aXRoX3N0YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y18KPiA+ Pj4+PiAgCQkJCQkgICAgICAgc3RhdGUpOwo+ID4+Pj4+ICB9Cj4gPj4+Pj4gIAo+ID4+Pj4+IC1z dGF0aWMgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKPiA+Pj4+PiAtCQkJCSAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3Rh dGUpCj4gPj4+Pj4gK3N0YXRpYyBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBk cm1fcGxhbmUgKmRybV9wbGFuZSwKPiA+Pj4+PiArCQkJCSAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0 YXRlICpuZXdfZHJtX3BsYW5lX3N0YXRlKQo+ID4+Pj4+ICB7Cj4gPj4+Pj4gLQlzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUgPSBuZXdfcGxhbmVfc3RhdGUtPnN0YXRlOwo+ID4+Pj4+IC0J Y29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlID0KPiA+Pj4+PiAt CQlkcm1fYXRvbWljX2dldF9vbGRfcGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5lKTsKPiA+Pj4+PiAt CXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG5ld19wbGFuZV9zdGF0ZS0+Y3J0YyA/OiBvbGRfcGxh bmVfc3RhdGUtPmNydGM7Cj4gPj4+Pj4gLQljb25zdCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9s ZF9jcnRjX3N0YXRlOwo+ID4+Pj4+IC0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19z dGF0ZTsKPiA+Pj4+PiAtCj4gPj4+Pj4gLQluZXdfcGxhbmVfc3RhdGUtPnZpc2libGUgPSBmYWxz ZTsKPiA+Pj4+PiArCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KPiA+Pj4+PiAr CQl0b19pbnRlbF9hdG9taWNfc3RhdGUobmV3X2RybV9wbGFuZV9zdGF0ZS0+c3RhdGUpOwo+ID4+ Pj4+ICsJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKGRybV9wbGFu ZSk7Cj4gPj4+Pj4gKwljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9z dGF0ZSA9Cj4gPj4+Pj4gKwkJaW50ZWxfYXRvbWljX2dldF9vbGRfcGxhbmVfc3RhdGUoc3RhdGUs IHBsYW5lKTsKPiA+Pj4+PiArCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0 YXRlID0KPiA+Pj4+PiArCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShuZXdfZHJtX3BsYW5lX3N0YXRl KTsKPiA+Pj4+PiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YygKPiA+ Pj4+PiArCQluZXdfcGxhbmVfc3RhdGUtPmJhc2UuY3J0YyA/Ogo+ID4+Pj4+ICsJCW9sZF9wbGFu ZV9zdGF0ZS0+YmFzZS5jcnRjKTsKPiA+Pj4+PiArCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpvbGRfY3J0Y19zdGF0ZTsKPiA+Pj4+PiArCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpu ZXdfY3J0Y19zdGF0ZTsKPiA+Pj4+PiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqbGlua2VkID0gb2xk X3BsYW5lX3N0YXRlLT5saW5rZWRfcGxhbmU7Cj4gPj4+Pj4gKwlpbnQgcmV0Owo+ID4+Pj4+ICsJ Y29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpvbGRfbGlua2VkX3N0YXRlOwo+ID4+Pj4+ ICsJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpuZXdfbGlua2VkX3N0YXRlID0gTlVMTDsKPiA+ Pj4+PiArCj4gPj4+Pj4gKwlpZiAobGlua2VkKSB7Cj4gPj4+Pj4gKwkJLyoKPiA+Pj4+PiArCQkq IE1ha2Ugc3VyZSBhIHByZXZpb3VzbHkgbGlua2VkIHBsYW5lIChhbmQgaW1wbGljaXRseSwgdGhl IENSVEMpCj4gPj4+Pj4gKwkJKiBpcyBwYXJ0IG9mIHRoZSBhdG9taWMgY29tbWl0Lgo+ID4+Pj4+ ICsJCSovCj4gPj4+Pj4gKwkJaWYgKCFpbnRlbF9hdG9taWNfZ2V0X25ld19wbGFuZV9zdGF0ZShz dGF0ZSwgbGlua2VkKSkgewo+ID4+Pj4+ICsJCQluZXdfbGlua2VkX3N0YXRlID0gaW50ZWxfYXRv bWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgbGlua2VkKTsKPiA+Pj4+PiArCQkJaWYgKElTX0VS UihuZXdfbGlua2VkX3N0YXRlKSkKPiA+Pj4+PiArCQkJCXJldHVybiBQVFJfRVJSKG5ld19saW5r ZWRfc3RhdGUpOwo+ID4+Pj4+ICsJCX0KPiA+Pj4+PiArCj4gPj4+Pj4gKwkJb2xkX2xpbmtlZF9z dGF0ZSA9Cj4gPj4+Pj4gKwkJCWludGVsX2F0b21pY19nZXRfb2xkX3BsYW5lX3N0YXRlKHN0YXRl LCBsaW5rZWQpOwo+ID4+Pj4+ICsKPiA+Pj4+PiArCQkvKgo+ID4+Pj4+ICsJCSAqIFRoaXMgd2ls bCBoYXBwZW4gd2hlbiB3ZSdyZSB0aGUgWSBwbGFuZS4gSW4gd2hpY2ggY2FzZQo+ID4+Pj4+ICsJ CSAqIG9sZC9uZXdfc3RhdGUtPmNydGMgYXJlIGJvdGggTlVMTC4gV2Ugc3RpbGwgbmVlZCB0byBw ZXJmb3JtCj4gPj4+Pj4gKwkJICogdXBkYXRlcyBvbiB0aGUgbGlua2VkIHBsYW5lLgo+ID4+Pj4+ ICsJCSAqLwo+ID4+Pj4+ICsJCWlmICghY3J0YykKPiA+Pj4+PiArCQkJY3J0YyA9IHRvX2ludGVs X2NydGMob2xkX2xpbmtlZF9zdGF0ZS0+YmFzZS5jcnRjKTsKPiA+Pj4+PiArCj4gPj4+Pj4gKwkJ V0FSTl9PTighY3J0Yyk7Cj4gPj4+Pj4gKwl9Cj4gPj4+Pj4gKwo+ID4+Pj4+ICsJbmV3X3BsYW5l X3N0YXRlLT5iYXNlLnZpc2libGUgPSBmYWxzZTsKPiA+Pj4+PiAgCWlmICghY3J0YykKPiA+Pj4+ PiAgCQlyZXR1cm4gMDsKPiA+Pj4+PiAgCj4gPj4+Pj4gLQlvbGRfY3J0Y19zdGF0ZSA9IGRybV9h dG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiA+Pj4+PiAtCW5ld19jcnRj X3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ID4+ Pj4+ICsJb2xkX2NydGNfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0 YXRlLCBjcnRjKTsKPiA+Pj4+PiArCW5ld19jcnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9u ZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gPj4+Pj4gKwo+ID4+Pj4+ICsJaWYgKG5ld19s aW5rZWRfc3RhdGUgJiYKPiA+Pj4+PiArCSAgICBkcm1fcGxhbmVfaW5kZXgoJmxpbmtlZC0+YmFz ZSkgPCBkcm1fcGxhbmVfaW5kZXgoJnBsYW5lLT5iYXNlKSkgewo+ID4+Pj4+ICsJCS8qCj4gPj4+ Pj4gKwkJICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBkcm1fYXRvbWljX2hlbHBlcl9j aGVja19wbGFuZXMoKSwgd2hpY2gKPiA+Pj4+PiArCQkgKiB3aWxsIG5vcm1hbGx5IGNoZWNrIHRo ZSBuZXdseSBhZGRlZCBwbGFuZSBmb3IgdXMsIGJ1dCBzaW5jZSB3ZSdyZQo+ID4+Pj4+ICsJCSAq IGFscmVhZHkgaW4gdGhhdCBmdW5jdGlvbiwgaXQgd29uJ3QgY2hlY2sgdGhlIHBsYW5lIGlmIG91 ciBpbmRleAo+ID4+Pj4+ICsJCSAqIGlzIGJpZ2dlciB0aGFuIHRoZSBsaW5rZWQgaW5kZXggYmVj YXVzZSBvZiB0aGUKPiA+Pj4+PiArCQkgKiBmb3JfZWFjaF9vbGRuZXdfcGxhbmVfaW5fc3RhdGUo KSBjYWxsLgo+ID4+Pj4+ICsJCSAqLwo+ID4+Pj4+ICsJCW5ld19jcnRjX3N0YXRlLT5iYXNlLnBs YW5lc19jaGFuZ2VkID0gdHJ1ZTsKPiA+Pj4+PiArCQlyZXQgPSBpbnRlbF9wbGFuZV9hdG9taWNf Y2hlY2tfd2l0aF9zdGF0ZShvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3RhdGUsCj4gPj4+Pj4g KwkJCQkJCQkgIG9sZF9saW5rZWRfc3RhdGUsIG5ld19saW5rZWRfc3RhdGUpOwo+ID4+Pj4+ICsJ CWlmIChyZXQpCj4gPj4+Pj4gKwkJCXJldHVybiByZXQ7Cj4gPj4+Pj4gKwl9Cj4gPj4+PiBUaGlz IGlzIGFsbCByYXRoZXIgY29uZnVzaW5nLiBDYW4ndCB3ZSBqdXN0IGRvIGEgcHJlcHJvY2Vzc2lu ZyBzdGVwCj4gPj4+PiBiZWZvcmUgY2hlY2tfcGxhbmVzKCkgdG8gYWRkIHRoZSBsaW5rZWQgcGxh bmVzIGFzIG5lZWRlZCwgYW5kIHRoZW4KPiA+Pj4+IGxldCB0aGUgbm9ybWFsIGNoZWNrX3BsYW5l cygpIGRvIGl0cyB0aGluZz8KPiA+Pj4gQWxzbyBvbmUgdGhpbmcgdGhhdCBzbGlnaHRseSB3b3Jy aWVzIG1lIGlzIHdoYXQgaGFwcGVucyBpZiBzb21lb25lIGFkZHMKPiA+Pj4gbW9yZSBwbGFuZXMg dG8gdGhlIHN0YXRlIGFmdGVyIHRoaXMgaGFzIGFsbCBiZWVuIGRvbmUuIEkgZ3Vlc3MKPiA+Pj4g Y3VycmVudGx5IHRob3NlIGNhc2VzIHdvdWxkIGVpdGhlciBjb21lIGZyb20gdGhlIHRhaWwgZW5k IG9mCj4gPj4+IGludGVsX2F0b21pY19jaGVjaygpIG9yIGZyb20gaW50ZWxfY3J0Y19hdG9taWNf Y2hlY2soKS4gQ3VycmVudGx5IGl0Cj4gPj4+IHdvdWxkIGFwcGVhciB0aGF0IHdtL2RkYiBpcyB0 aGUgb25seSBwaWVjZSBvZiBjb2RlIHRoYXQgY2FuIGRvIHRoaXMKPiA+Pj4gc29ydCBvZiB0aGlu Zy4KPiA+PiBJIHRoaW5rIHRoaXMgc2hvdWxkbid0IGhhcHBlbiwgYW5kIFdNIGlzIHNwZWNpYWwu IFRoZSBvbmx5IHRpbWUgd2hlcmUgeW91IHdhbnQgdG8gYWRkIG1vcmUgcGxhbmVzIGlzIGJlZm9y ZSBjaGVja19wbGFuZXMoKS4KPiA+PiBPdGhlcndpc2UgeW91IGNhbid0IHJlcnVuIGFueSB2YWxp ZGF0aW9uIGFzIHJlcXVpcmVkLgo+ID4gWW91IHNob3VsZG4ndCBuZWVkIHZhbGlkYXRpb24gZm9y IGVnLiBkcG1zIG9uL29mZi4gSSBndWVzcyB3ZSBjdXJyZW50bHkKPiA+IGRvIHRoYXQgYWx0aG91 Z2ggd2Ugc2hvdWxkbid0IGhhdmUgdG8uCj4gV2Ugc2hvdWxkLCBpZiB3ZSBldmVyIGhhdmUgMiBj cnRjJ3MgYWN0aXZlIGFuZCBkaXNhYmxlIDEuIFdhdGVybWFya3Mgc2hvdWxkIGJlCj4gZGlzdHJp YnV0ZWQgb3ZlciBhY3RpdmUgcGxhbmVzIG9ubHksIHdoaWNoIGRwbXMgdG9nZ2xlIGFmZmVjdHMu CgpJIHRoaW5rIHRoZSBydWxlIHdlIHdhbnQgYWltIGZvciBpcyAuZW5hYmxlIGNvbnRyb2xzIHdh dGVybWFya3MsCi5hY3RpdmUgZG9lcyBub3QgbWF0dGVyLiBUaGF0IHdpbGwgZ3VhcmFudGVlIHRo YXQgZHBtcyBvbiB3aWxsIG5ldmVyCmZhaWwgb24gYWNjb3VudCBvZiB3YXRlcm1hcmtzLiBUaGUg Y3VycmVudCB3YXkgb2YgZG9pbmcgdGhpbmdzIGlzCklNTyBqdXN0IHdyb25nIGFuZCB3ZSBzaG91 bGQgZXZlbnR1YWxseSBmaXggaXQuCgo+IE9ubHkgd2F5IGFyb3VuZCBzZXR0aW5nCj4gcGxhbmVf c3RhdGUtPnZpc2libGUgd2hlbiBwbGFuZSBpcyBpbmFjdGl2ZSBhbmQgY2FsY3VsYXRlIG1pbmlt dW0gcmVxdWlyZW1lbnRzLCB0aGVuCj4gY2FsY3VsYXRlIG1heCByZXF1aXJlbWVudHMuCj4gCj4g V2Ugd291bGQgaGF2ZSB0byBmaXggdXAgYWxsIG9mIHdtIHByb2dyYW1taW5nIGFuZCBwbGFuZSBw cm9ncmFtbWluZyB0byBtYWtlIGl0IHdvcmsuCj4gCj4gSSBkb24ndCB0aGluayB0aGUgZXh0cmEg Y29tcGxleGl0eSBpcyB3b3J0aCB0aGUgZWZmb3J0LCB0YmguLgo+ID4+IEkndmUgbm93IGFkZGVk IGEgZnVuY3Rpb24gaWNsX2FkZF9saW5rZWRfcGxhbmVzIGhlbHBlciB0aGF0IGl0ZXJhdGVzIG92 ZXIgYWxsIHBsYW5lcyBpbgo+ID4+IHRoZSBzdGF0ZSwgYW5kIGFkZHMgYW55IGxpbmtlZCBwbGFu ZXMgdG8gdGhlIHRyYW5zYWN0aW9uLgo+ID4+Cj4gPj4gVGhpcyBpcyBydW4gcmlnaHQgYmVmb3Jl IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lcygpLCBzbyB3ZSdyZSBzdXJlIHRoYXQgYWxs IGxpbmtlZAo+ID4+IHBsYW5lcyBhcmUgYWRkZWQsIHdpdGhvdXQgZG9pbmcgaXQgZnJvbSBpbnRl bF9wbGFuZV9hdG9taWNfY2hlY2soKQo+ID4+Cj4gPj4gV00gd2lsbCBjb250aW51ZSB0byBkbyBp dHMgb3duIHRoaW5nLCBzaW5jZSBpdCdzIGEgZGVzaWduIGVycm9yIElNTyB0aGF0IGl0IGV2ZW4g YWRkcwo+ID4+IHBsYW5lcyB0byB0aGUgc3RhdGUgdG8gYmVnaW4gd2l0aC4gOikKPiA+IEl0IHBy ZXR0eSBtdWNoIGhhcyB0by4gVGhlIGRlc2lnbiBlcnJvciB3ZSBoYXZlIGF0IHRoZSBtb21lbnQg aXMgbm90Cj4gPiBwcm9ncmFtbWluZyB0aGUgd2F0ZXJtYXJrcyBmcm9tIHRoZSB1cGRhdGVfcGxh bmUoKS9kaXNhYmxlX3BsYW5lKCkuCj4gPiBUaGF0IG9uZSBJJ3ZlIGF0dGVtcHRlZCB0byBmaXgg aW46Cj4gPiBnaXQ6Ly9naXRodWIuY29tL3ZzeXJqYWxhL2xpbnV4LmdpdCBza2xfcGxhbmVfdXBk YXRlX2RkYl9zZXF1ZW5jZQo+ID4KPiA+IEFuZCBzdXBwb3NlZGx5IHRoYXQgb25lIGRvZXMgZml4 IGJ1Z3MgcmVsYXRlZCB0byB3YXRlcm1hcmtzIHZzLgo+ID4gcGxhbmUgdXBkYXRlcy4KPiAKPiBZ ZWFoLCBmb3J0dW5hdGVseSBpdCBzaG91bGRuJ3QgYWZmZWN0IHRoaXMgY29kZSBtdWNoLCBzaG91 bGQgYmUgZWFzeSB0byByZWJhc2UuIDopCj4gVGhvdWdoIEkgd291bGQgbGlrZSB0byBnZXQgcmlk IG9mIHNrbF9uZXh0X3BsYW5lX3RvX2NvbW1pdCwgdWdoLi4KClRoYXQgdGhpbmcgaXMgcHJldHR5 IG11Y2ggd2hvbGUgcG9pbnQgb2YgdGhlIHNlcmllcy4gSXQgY291bGQgb2YKY291cnNlIGJlIHdy aXR0ZW4gaW4gYSBkaWZmZXJlbnQgd2F5LCBidXQgdGhlIGlkZWEgb2YgZGRiCmFsbG9jYXRpb25z IGRyaXZpbmcgdGhlIHBsYW5lIGNvbW1pdCBvcmRlciBpcyBrZXkuCgo+IAo+IFdoaWNoIGlzIHBy b2JhYmx5IGEgY29uZmlybWF0aW9uIHRoYXQgdGhlIG52MTIgZ2VuMTEgc2VyaWVzIGlzbid0IG1h a2luZyBwbGFuZSBwcm9ncmFtbWluZwo+IHRoYXQgbXVjaCBtb3JlIGNvbXBsaWNhdGVkLCBmb3J0 dW5hdGVseS4KPiAKPiBJIHdvdWxkIHJlYWxseSBsaWtlIHRvIHNpbXBsaWZ5IHRoZSBsb2NraW5n IGZpcnN0IGF0IHNvbWUgcG9pbnQuIEl0IGNhbid0IGJlIGdvb2QgdG8gc3luYyB3cml0ZSBldmVy eXRoaW5nLgo+IAo+IGVhY2ggcGxhbmUgdXBkYXRlIG5vdyBkb2VzOgo+IAo+IHNwaW5fbG9jaygp Cj4gSTkxNV9XUklURV9GVyguLi4pCj4gCj4gUE9TVElOR19SRUFEKCkKClBvc3RpbmcgcmVhZHMg d2Ugc2hvdWxkIGp1c3QgbnVrZSBJIHRoaW5rLgoKPiBzcGluX3VubG9jaygpCj4gCj4gV291bGQg YmUgbmljZSBpZiB3ZSAKCkN1dCBvZmYsIGJ1dCBJJ2xsIGFzc3VtZSB5b3Ugd2FudGVkIHRvIHN1 Z2dlc3QgZ3JhYmJpbmcgdGhlIGxvY2sganVzdApvbmNlIGZvciB0aGUgZW50aXJlIHBpcGUgY29t bWl0LiBJIGRvIGFncmVlIHRoYXQgaXQgd291bGQgcHJvYmFibHkgYmUKbmljZXIuIEJ1dCBJIHN0 aWxsIG1haW50YWluIHRoYXQgc3BsaXR0aW5nIHRoZSBsb2NrIHRvIGRpc3BsYXkgZW5naW5lCnZz LiAidGhlIHJlc3QiIGlzIHByb2JhYmx5IHNvbWV0aGluZyB3ZSB3YW50IHRvIGRvIGFzIHdlbGwu IFRoZQphbm5veWluZyB0aGluZyB3aXRoIHRoYXQgd2FzIHRoYXQgSSBjb3VsZG4ndCB0cmljayB0 aGUgY29tcGlsZXIgc2VsZWN0CnRoZSByaWdodCBsb2NrIGF0IGNvbXBpbGUgdGltZSwgc28gSSB0 aGluayB0aGlzIHdvdWxkIGludm9sdmUgc3BsaXR0aW5nCkk5MTVfUkVBRC9XUklURSAmIGNvLiBm b3IgZGlzcGxheSBlbmdpbmUgdnMuIHRoZSByZXN0IGFzIHdlbGwuIEkgaGF2ZQphIGZlZWxpbmcg SSBldmVuIHR5cGVkIHVwIHNvbWV0aGluZyBsaWtlIHRoYXQgYXQgb25lIHBvaW50LCBqdXN0IG5l dmVyCmhhZCB0aGUgdGltZSB0byB0ZXN0IGl0LgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK