From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 1/4] drm/i915/icl: Assign Master slave crtc links for Transcoder Port Sync Date: Thu, 13 Jun 2019 12:10:57 +0300 Message-ID: <20190613091057.GS5942@intel.com> References: <20190423154901.15222-1-manasi.d.navare@intel.com> <20190423154901.15222-2-manasi.d.navare@intel.com> <22e58e8c-53be-3fa6-46b8-8ed6c5a446da@linux.intel.com> <20190612190426.GQ5942@intel.com> <20190612191101.GB5765@intel.com> <20190612193055.GR5942@intel.com> <20190612205951.GC5765@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 76E19895C3 for ; Thu, 13 Jun 2019 09:11:01 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190612205951.GC5765@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Manasi Navare Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKdW4gMTIsIDIwMTkgYXQgMDE6NTk6NTJQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBPbiBXZWQsIEp1biAxMiwgMjAxOSBhdCAxMDozMDo1NVBNICswMzAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBXZWQsIEp1biAxMiwgMjAxOSBhdCAxMjoxMTowMlBNIC0w NzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+ID4gPiBPbiBXZWQsIEp1biAxMiwgMjAxOSBhdCAx MDowNDoyNlBNICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+ID4gT24gV2VkLCBK dW4gMTIsIDIwMTkgYXQgMTE6Mzk6MDNBTSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6 Cj4gPiA+ID4gPiBPcCAyMy0wNC0yMDE5IG9tIDE3OjQ4IHNjaHJlZWYgTWFuYXNpIE5hdmFyZToK PiA+ID4gPiA+ID4gSW4gY2FzZSBvZiB0aWxlZCBkaXNwbGF5cyB3aGVuIHRoZSB0d28gdGlsZXMg YXJlIHNlbnQgYWNyb3NzIHR3byBDUlRDcwo+ID4gPiA+ID4gPiBvdmVyIHR3byBzZXBhcmF0ZSBE UCBTU1QgY29ubmVjdG9ycywgd2UgbmVlZCBhIG1lY2hhbmlzbSB0byBzeW5jaHJvbml6ZQo+ID4g PiA+ID4gPiB0aGUgdHdvIENSVENzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHRyYW5zY29kZXJz Lgo+ID4gPiA+ID4gPiBTbyB1c2UgdGhlIG1hc3Rlci1zbGF2ZSBtb2RlIHdoZXJlIHRoZXJlIGlz IG9uZSBtYXN0ZXIgY29ycmVzcG9uZGluZwo+ID4gPiA+ID4gPiB0byBsYXN0IGhvcml6b250YWwg YW5kIHZlcnRpY2FsIHRpbGUgdGhhdCBuZWVkcyB0byBiZSBnZW5sb2NrZWQgd2l0aAo+ID4gPiA+ ID4gPiBhbGwgb3RoZXIgc2xhdmUgdGlsZXMuCj4gPiA+ID4gPiA+IFRoaXMgcGF0Y2ggaWRlbnRp ZmllcyBzYXZlcyB0aGUgbWFzdGVyIENSVEMgcG9pbnRlciBpbiBhbGwgdGhlIHNsYXZlCj4gPiA+ ID4gPiA+IENSVEMgc3RhdGVzLiBUaGlzIHBvaW50ZXIgaXMgbmVlZGVkIHRvIHNlbGVjdCB0aGUg bWFzdGVyIENSVEMvdHJhbnNjb2Rlcgo+ID4gPiA+ID4gPiB3aGlsZSBjb25maWd1cmluZyB0cmFu c2NvZGVyIHBvcnQgc3luYyBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc2xhdmVzLgo+ID4gPiA+ID4g Pgo+ID4gPiA+ID4gPiB2MjoKPiA+ID4gPiA+ID4gKiBNb3ZlIHRoaXMgdG8gaW50ZWxfbW9kZV9z ZXRfcGlwZV9jb25maWcoSmFuaSBOLCBWaWxsZSkKPiA+ID4gPiA+ID4gKiBVc2Ugc2xhdmVfYml0 bWFzayB0byBzYXZlIGFzc29jaWF0ZWQgc2xhdmVzIGluIG1hc3RlciBjcnRjIHN0YXRlIChWaWxs ZSkKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0 ZXJAZmZ3bGwuY2g+Cj4gPiA+ID4gPiA+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgo+ID4gPiA+ID4gPiBDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1h YXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiA+ID4gQ2M6IE1hdHQgUm9w ZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Cj4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6 IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPiA+ID4gPiA+IC0t LQo+ID4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgODkg KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDYgKysKPiA+ID4gPiA+ID4gIDIgZmlsZXMgY2hhbmdl ZCwgOTUgaW5zZXJ0aW9ucygrKQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ID4gPiA+IGluZGV4IGIyNzYzNDU3NzllNi4uOTJkZWEy MjMxNDk5IDEwMDY0NAo+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gPiA+ID4gPiA+IEBAIC0xMTMxNiw2ICsxMTMxNiw4NiBAQCBzdGF0aWMgaW50 IGljbF9jaGVja19udjEyX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKPiA+ID4gPiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ID4gIAo+ ID4gPiA+ID4gPiArc3RhdGljIGludCBpY2xfYWRkX2dlbmxvY2tfY3J0Y3Moc3RydWN0IGRybV9j cnRjICpjcnRjLAo+ID4gPiA+ID4gPiArCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKPiA+ID4gPiA+ID4gKwkJCQkgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl KQo+ID4gPiA+ID4gPiArewo+ID4gPiA+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwo+ID4gPiA+ID4g PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICptYXN0ZXJfY29ubmVjdG9yLCAqY29ubmVjdG9yOwo+ ID4gPiA+ID4gPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7 Cj4gPiA+ID4gPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGNvbm5faXRlcjsK PiA+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2NydGMgKm1hc3Rlcl9jcnRjID0gTlVMTDsKPiA+ID4g PiA+ID4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm1hc3Rlcl9jcnRjX3N0YXRlOwo+ID4gPiA+ ID4gPiArCWludCBpLCB0aWxlX2dyb3VwX2lkOwo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsJ aWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMSkKPiA+ID4gPiA+ID4gKwkJcmV0dXJuIDA7Cj4g PiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKwkvKgo+ID4gPiA+ID4gPiArCSAqIEluIGNhc2Ugb2Yg dGlsZWQgZGlzcGxheXMgdGhlcmUgY291bGQgYmUgb25lIG9yIG1vcmUgc2xhdmVzIGJ1dCB0aGVy ZSBpcwo+ID4gPiA+ID4gPiArCSAqIG9ubHkgb25lIG1hc3Rlci4gTGV0cyBtYWtlIHRoZSBDUlRD IHVzZWQgYnkgdGhlIGNvbm5lY3RvciBjb3JyZXNwb25kaW5nCj4gPiA+ID4gPiA+ICsJICogdG8g dGhlIGxhc3QgaG9yaXpvbmFsIGFuZCBsYXN0IHZlcnRpY2FsIHRpbGUgYSBtYXN0ZXIvZ2VubG9j ayBDUlRDLgo+ID4gPiA+ID4gPiArCSAqIEFsbCB0aGUgb3RoZXIgQ1JUQ3MgY29ycmVzcG9uZGlu ZyB0byBvdGhlciB0aWxlcyBvZiB0aGUgc2FtZSBUaWxlIGdyb3VwCj4gPiA+ID4gPiA+ICsJICog YXJlIHRoZSBzbGF2ZSBDUlRDcyBhbmQgaG9sZCBhIHBvaW50ZXIgdG8gdGhlaXIgZ2VubG9jayBD UlRDLgo+ID4gPiA+ID4gPiArCSAqLwo+ID4gPiA+ID4gPiArCWZvcl9lYWNoX25ld19jb25uZWN0 b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7Cj4gPiA+ ID4gPiA+ICsJCWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gY3J0YykKPiA+ID4gPiA+ID4g KwkJCWNvbnRpbnVlOwo+ID4gPiA+ID4gPiArCQlpZiAoIWNvbm5lY3Rvci0+aGFzX3RpbGUpCj4g PiA+ID4gPiA+ICsJCQljb250aW51ZTsKPiA+ID4gPiA+ID4gKwkJaWYgKGNvbm5lY3Rvci0+dGls ZV9oX2xvYyA9PSBjb25uZWN0b3ItPm51bV9oX3RpbGUgLSAxICYmCj4gPiA+ID4gPiA+ICsJCSAg ICBjb25uZWN0b3ItPnRpbGVfdl9sb2MgPT0gY29ubmVjdG9yLT5udW1fdl90aWxlIC0gMSkKPiA+ ID4gPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiA+ID4gPiArCQljcnRjX3N0YXRlLT5tYXN0ZXJf Y3J0YyA9IE5VTEw7Cj4gPiA+ID4gPiA+ICsJCXRpbGVfZ3JvdXBfaWQgPSBjb25uZWN0b3ItPnRp bGVfZ3JvdXAtPmlkOwo+ID4gPiA+ID4gPiArCQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdp bigmZGV2X3ByaXYtPmRybSwgJmNvbm5faXRlcik7Cj4gPiA+ID4gPiA+ICsJCWRybV9mb3JfZWFj aF9jb25uZWN0b3JfaXRlcihtYXN0ZXJfY29ubmVjdG9yLCAmY29ubl9pdGVyKSB7Cj4gPiA+ID4g PiA+ICsJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbWFzdGVyX2Nvbm5fc3RhdGUgPSBO VUxMOwo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsJCQlpZiAoIW1hc3Rlcl9jb25uZWN0b3It Pmhhc190aWxlKQo+ID4gPiA+ID4gPiArCQkJCWNvbnRpbnVlOwo+ID4gPiA+ID4gPiArCQkJaWYg KG1hc3Rlcl9jb25uZWN0b3ItPnRpbGVfaF9sb2MgIT0gbWFzdGVyX2Nvbm5lY3Rvci0+bnVtX2hf dGlsZSAtIDEgfHwKPiA+ID4gPiA+ID4gKwkJCSAgICBtYXN0ZXJfY29ubmVjdG9yLT50aWxlX3Zf bG9jICE9IG1hc3Rlcl9jb25uZWN0b3ItPm51bV92X3RpbGUgLSAxKQo+ID4gPiA+ID4gPiArCQkJ CWNvbnRpbnVlOwo+ID4gPiA+ID4gPiArCQkJaWYgKG1hc3Rlcl9jb25uZWN0b3ItPnRpbGVfZ3Jv dXAtPmlkICE9IHRpbGVfZ3JvdXBfaWQpCj4gPiA+ID4gPiA+ICsJCQkJY29udGludWU7Cj4gPiA+ ID4gPiA+ICsKPiA+ID4gPiA+ID4gKwkJCW1hc3Rlcl9jb25uX3N0YXRlID0gZHJtX2F0b21pY19n ZXRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLAo+ID4gPiA+ID4gPiArCQkJCQkJCQkJICAgbWFzdGVy X2Nvbm5lY3Rvcik7Cj4gPiA+ID4gPiA+ICsJCQlpZiAoSVNfRVJSKG1hc3Rlcl9jb25uX3N0YXRl KSkgewo+ID4gPiA+ID4gPiArCQkJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9p dGVyKTsKPiA+ID4gPiA+ID4gKwkJCQlyZXR1cm4gUFRSX0VSUihtYXN0ZXJfY29ubl9zdGF0ZSk7 Cj4gPiA+ID4gPiA+ICsJCQl9Cj4gPiA+ID4gPiA+ICsJCQlpZiAobWFzdGVyX2Nvbm5fc3RhdGUt PmNydGMpIHsKPiA+ID4gPiA+ID4gKwkJCQltYXN0ZXJfY3J0YyA9IG1hc3Rlcl9jb25uX3N0YXRl LT5jcnRjOwo+ID4gPiA+ID4gPiArCQkJCWJyZWFrOwo+ID4gPiA+ID4gPiArCQkJfQo+ID4gPiA+ ID4gPiArCQl9Cj4gPiA+ID4gPiA+ICsJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29u bl9pdGVyKTsKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArCQlpZiAoIW1hc3Rlcl9jcnRjKSB7 Cj4gPiA+ID4gPiA+ICsJCQlEUk1fREVCVUdfS01TKCJDb3VsZCBub3QgYWRkIE1hc3RlciBDUlRD IGZvciBTbGF2ZSBDUlRDICVkXG4iLAo+ID4gPiA+ID4gPiArCQkJCSAgICAgIGNvbm5lY3Rvcl9z dGF0ZS0+Y3J0Yy0+YmFzZS5pZCk7Cj4gPiA+ID4gPiA+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiA+ ID4gPiA+ID4gKwkJfQo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsJCW1hc3Rlcl9jcnRjX3N0 YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwKPiA+ID4gPiA+ID4gKwkJCQkJ CQkgICAgICBtYXN0ZXJfY3J0Yyk7Cj4gPiA+ID4gPiA+ICsJCWlmIChJU19FUlIobWFzdGVyX2Ny dGNfc3RhdGUpKQo+ID4gPiA+ID4gPiArCQkJcmV0dXJuIFBUUl9FUlIobWFzdGVyX2NydGNfc3Rh dGUpOwo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsJCWNydGNfc3RhdGUtPm1hc3Rlcl9jcnRj ID0gdG9faW50ZWxfY3J0YyhtYXN0ZXJfY3J0Yyk7Cj4gPiA+ID4gPiA+ICsJCXRvX2ludGVsX2Ny dGNfc3RhdGUobWFzdGVyX2NydGNfc3RhdGUpLT50cmFuc19wb3J0X3N5bmNfc2xhdmVzIHw9Cj4g PiA+ID4gPiA+ICsJCQlCSVQodG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZSk7Cj4gPiA+ID4gPiA+ ICsJCURSTV9ERUJVR19LTVMoIk1hc3RlciBDUlRDID0gJWQgYWRkZWQgZm9yIFNsYXZlIENSVEMg PSAlZFxuLCBzbGF2ZSBiaXRtYXN0ID0gJWQiLAo+ID4gPiA+ID4gPiArCQkJICAgICAgbWFzdGVy X2NydGMtPmJhc2UuaWQsCj4gPiA+ID4gPiA+ICsJCQkgICAgICBjcnRjX3N0YXRlLT5iYXNlLmNy dGMtPmJhc2UuaWQsCj4gPiA+ID4gPiA+ICsJCQkgICAgICB0b19pbnRlbF9jcnRjX3N0YXRlKG1h c3Rlcl9jcnRjX3N0YXRlKS0+dHJhbnNfcG9ydF9zeW5jX3NsYXZlcyk7Cj4gPiA+ID4gPiA+ICsJ fQo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsJcmV0dXJuIDA7Cj4gPiA+ID4gPiA+ICt9Cj4g PiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19hdG9taWNfY2hl Y2soc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gPiA+ID4gPiAgCQkJCSAgIHN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ID4gQEAgLTEx Nzk1LDYgKzExODc1LDkgQEAgY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+ID4gPiA+ID4gIAlpZiAoSVNfRzRYKGRldl9wcml2KSB8 fAo+ID4gPiA+ID4gPiAgCSAgICBJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllW SUVXKGRldl9wcml2KSkKPiA+ID4gPiA+ID4gIAkJc2F2ZWRfc3RhdGUtPndtID0gY3J0Y19zdGF0 ZS0+d207Cj4gPiA+ID4gPiA+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCj4gPiA+ ID4gPiA+ICsJCXNhdmVkX3N0YXRlLT50cmFuc19wb3J0X3N5bmNfc2xhdmVzID0KPiA+ID4gPiA+ ID4gKwkJCWNydGNfc3RhdGUtPnRyYW5zX3BvcnRfc3luY19zbGF2ZXM7Cj4gPiA+ID4gPiA+ICAK PiA+ID4gPiA+ID4gIAkvKiBLZWVwIGJhc2UgZHJtX2NydGNfc3RhdGUgaW50YWN0LCBvbmx5IGNs ZWFyIG91ciBleHRlbmRlZCBzdHJ1Y3QgKi8KPiA+ID4gPiA+ID4gIAlCVUlMRF9CVUdfT04ob2Zm c2V0b2Yoc3RydWN0IGludGVsX2NydGNfc3RhdGUsIGJhc2UpKTsKPiA+ID4gPiA+ID4gQEAgLTEx ODg4LDYgKzExOTcxLDEyIEBAIGludGVsX21vZGVzZXRfcGlwZV9jb25maWcoc3RydWN0IGRybV9j cnRjICpjcnRjLAo+ID4gPiA+ID4gPiAgCWRybV9tb2RlX3NldF9jcnRjaW5mbygmcGlwZV9jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZSwKPiA+ID4gPiA+ID4gIAkJCSAgICAgIENSVENfU1RFUkVP X0RPVUJMRSk7Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gKwlyZXQgPSBpY2xfYWRkX2dlbmxv Y2tfY3J0Y3MoY3J0YywgcGlwZV9jb25maWcsIHN0YXRlKTsKPiA+ID4gPiA+ID4gKwlpZiAocmV0 KSB7Cj4gPiA+ID4gPiA+ICsJCURSTV9ERUJVR19LTVMoIlxuOEsgRGVidWc6IENhbm5vdCBhc3Np Z24gZ2VubG9jayBjcnRjcyIpOwo+ID4gPiA+ID4gPiArCQlyZXR1cm4gcmV0Owo+ID4gPiA+ID4g PiArCX0KPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiAgCS8qIFBhc3Mgb3VyIG1vZGUgdG8gdGhl IGNvbm5lY3RvcnMgYW5kIHRoZSBDUlRDIHRvIGdpdmUgdGhlbSBhIGNoYW5jZSB0bwo+ID4gPiA+ ID4gPiAgCSAqIGFkanVzdCBpdCBhY2NvcmRpbmcgdG8gbGltaXRhdGlvbnMgb3IgY29ubmVjdG9y IHByb3BlcnRpZXMsIGFuZCBhbHNvCj4gPiA+ID4gPiA+ICAJICogYSBjaGFuY2UgdG8gcmVqZWN0 IHRoZSBtb2RlIGVudGlyZWx5Lgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBJIHRoZ2luayB3ZSBzaG91 bGQgZXh0ZW5kIG9uIHRoaXMgdG8gbWFrZSBtYXN0ZXIvc2xhdmUgbW9kZSB3b3JrIGJ5IGRvaW5n IHdoYXQgbWF0dCByb3BlciB3YXMgd29ya2luZyBvbiwgaW4gY29sbGFib3JhdGlvbiB3aXRoIFZp bGxlPwo+ID4gPiA+ID4gCj4gPiA+ID4gPiBjcnRjLT5zdGF0ZSBwb2ludHMgdG8gZHJtX2NydGNf c3RhdGUsIHdoaWNoIGlzIHRoZSB1YXBpIHN0YXRlLCBidXQgYWxzbyBjb250YWlucyBhIHNoYWRv dyBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSwgd2hpY2ggaXMgdGhlIGFjdHVhbCBodyBzdGF0ZS4g SXQgaGFzIGl0cyBvd24gZHJtX2NydGNfc3RhdGUgb2JqZWN0IGZvciB0aGUgcmVhbCBzdGF0ZSwg d2hpY2ggZ2V0cyBjb3BpZWQgYWZ0ZXIgY2hlY2suCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFRoaXMg c2hvdWxkIHRoZW4gYWxzbyBiZSBkb25lIGZvciBpbnRlbF9wbGFuZV9zdGF0ZSwgd2hpY2ggd2ls bCBhbGxvdyB1cyB0byBjb3JyZWN0bHkgaGFuZGxlIHRoaXMgbW9kZS4KPiA+ID4gPiAKPiA+ID4g PiBJIGRvbid0IHRoaW5rIHRoZXJlJ3MgYW55IGxpbmthZ2UgYmV0d2VlbiB0aGlzIGFuZCB0aGUg Mi1waXBlLTEtcG9ydAo+ID4gPiA+IGNhc2VzIG90aGVyIHRoYW4gd2UgbWlnaHQgd2FudCB0byBo YW5kbGUgdGlsZWQgZGlzcGxheXMgdGhhdCB3YXkgb25lCj4gPiA+ID4gZGF5IHRvIG1ha2UgbGlm ZSBlYXNpZXIgZm9yIHVzZXJzcGFjZS4gQnV0IHRoYXQgaGFzIG90aGVyIGlzc3VlcyBzdWNoCj4g PiA+ID4gYXMgd2UnZCBoYXZlIHRvIGdlbmVyYXRlIGEgbmV3IEVESUQgZm9yIHRoZSB3aG9sZSBk aXNwbGF5IGZyb20gdGhlIEVESURzCj4gPiA+ID4gb2YgdGhlIHRpbGVzLgo+ID4gPiA+IAo+ID4g PiA+IEFsc28gd2UgbWF5YmUgd2FudCBwb3J0IHN5bmMgZm9yIDEwMCUgaW5kZXBlbmRlbnQgZGlz cGxheXMgdG9vLiBTbyBJTU8KPiA+ID4gPiBubyBwb2ludCBpbiB0cnlpbmcgdG8gc2hvZWhvcm4g Ym90aCB0aGluZ3MgaW50byB0aGUgc2FtZSBidWNrZXQuCj4gPiA+IAo+ID4gPiBJIGFncmVlLCBh bHNvIHRoZSB0aWxlZCBkaXNwbGF5IGNhc2UgaXMgc2ltcGxlIGluIHRlcm1zIG9mIHRoZSBzdGF0 ZXMgc2luY2UgaXRzIDIgY29ubmVjdG9ycyBhbmQgMiBjcnRjcyBleHBvc2VkIHRvIHRoZSB1c2Vy c3BhY2UKPiA+ID4gc28gdGhlIHVzZXJzcGFjZSB3aWxsIGNyZWF0ZSB0d28gc3RhdGVzIGFuZCB0 aGV5IGFyZSB1c2VkIGFzIGlzIGZvciB0aGUgdHdvIGNydGNzLCB0aGUgb25seSBkaWZmZXJlbmNl IGlzIHRoYXQgd2UgbmVlZCB0byBwcm9ncmFtCj4gPiA+IG9uZSBhcyBhIHNsYXZlIGFuZCB0aGUg b3RoZXIgYXMgbWFzdGVyIGFuZCBmaW5kIGEgd2F5IHRvIHN0b3JlIGEgcG9pbnRlciB0byBtYXN0 ZXIgZnJvbSB0aGUgc2xhdmUgc2luY2Ugd2UgbmVlZCB0byB1c2UgdGhhdAo+ID4gPiB0byBjb25m aWd1cmUgYW5kIGVuYWJsZSB0cmFuc2NvZGVyIHBvcnQgc3luYyB3aGlsZSBlbmFibGluZyBzbGF2 ZSBDUlRDLgo+ID4gPiAKPiA+ID4gU28gb24gdGhvc2UgbGluZXMsIGlmIGkgc3RvcmUgdGhlIG1h c3RlciB0cmFuc2NvZGVyIGRpcmVjdGx5IGluIHRoZSBzbGF2ZSBjcnRjIHN0YXRlIHRoZW4gdHJh bnMgPSAwIGlzIHZhbGlkIGZvciB0cmFucyBBIHRoZW4gaG93Cj4gPiA+IGRvIEkgaWRlbnRpZnkg d2hpY2ggY3J0YyBpcyBzbGF2ZT8KPiA+ID4gQ3VycmVudGx5IEkgY2hlY2sgZm9yICFtYXN0ZXJf Y3J0YyBhbmQgdGhhdCB0ZWxscyBtZSB0aGF0IGl0IGlzIG5vdCBzbGF2ZS4KPiA+IAo+ID4gSU5W QUxJRF9UUkFOU0NPRERFUiBvciBzb21ldGhpbmc/Cj4gCj4gQWN0dWFsbHkgSSBqdXN0IHJlYWxp emVkIHRoYXQgaW4gdGhlIGh3X3N0YXRlX3JlYWRvdXQgYWZ0ZXIgaSBnZXQgdGhlIHRyYW5zY29k ZXIgd2hpY2ggd291bGQgYmUgc2FtZSBhcyBwaXBlLAo+IGNhbiBJIGp1c3QgdXNlIHRoZSBpbnRl bF9nZXRfY3J0Y19mb3JfcGlwZSgpIGZ1bmN0aW9uIHRvIGdldCB0aGUgaW50ZWxfY3J0Yyogd2hp Y2ggc2hvdWxkIG1hdGNoIHRoZSBtYXN0ZXJfY3J0YyBzYXZlZAo+IGluIHNsYXZlIGNydGNfc3Rh dGUsIHdoYSBkbyB5b3UgdGhpbms/CgpPbmx5IGlmIHlvdSBpZ25vcmUgdGhlIGZhY3QgdGhhdCB0 cmFuc2NvZGVyIEVEUCBjYW4gYmUgdGhlIG1hc3Rlci4KCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50 ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4