From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Nautiyal, Ankit K" Subject: Re: [PATCH] drm/i915: Prune 2560x2880 mode for 5K tiled dual DP monitors Date: Thu, 5 Sep 2019 11:03:12 +0530 Message-ID: <2defc1a1-58fe-75ef-f759-e79a181ada5a@intel.com> References: <1566887370-21780-1-git-send-email-ankit.k.nautiyal@intel.com> <87o90a99so.fsf@intel.com> <20190827165926.GA4122@intel.com> <871rx591gb.fsf@intel.com> <20190828195330.GG701@intel.com> <877e6weahp.fsf@intel.com> <0c877805-2417-b54d-7ca4-67985b76b03b@intel.com> <87d0go6w5p.fsf@intel.com> <20190829183646.GA6073@intel.com> <4a3f437f-8f60-6b76-3c49-134f761f4a1c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 72B4089CCB for ; Thu, 5 Sep 2019 05:33:15 +0000 (UTC) In-Reply-To: <4a3f437f-8f60-6b76-3c49-134f761f4a1c@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Navare, Manasi D" , Jani Nikula Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org SGksCgpJIHdhcyBhYmxlIHRvIGdldCA1SyBIUHoyN3EgMzE3YiBtb25pdG9yIGZvciBzb21lIHRp bWUuIEJlbG93IGFyZSB0aGUgCm9ic2VydmF0aW9uIG9uIEhQejI3cSBNb25pdG9yIHdpdGggdHdv IERQIGNhYmxlcyBjb25uZWN0ZWQgdG8gYSBLQkwgbWFjaGluZS4KCioqKioqR2VuZXJhbCBPYnNl cnZhdGlvbioqKioqClRoZSBtb25pdG9yIHNldHRpbmdzIGhhcyB0d28gbW9kZXMsIERQMS4wIGFu ZCBEUDEuMi4KT25lIG9mIHRoZSBjb25uZWN0b3IgaXMgZW51bWVyYXRlZCBhcyAndGlsZWQnIGFu ZCB0aGUgb3RoZXIgYXMgbm9uIHRpbGVkLgoKVGhlIG5vbi10aWxlZCBjb25uZWN0b3IgaGFzIG1v ZGVzIHN0YXJ0aW5nIGZyb20gMksgYW5kIGJlbG93LCBhbmQgdGhlIAp0aWxlZCBjb25uZWN0b3Ig aGFzIGp1c3Qgb25lIG1vZGUgMjU2MHgyODgwLgpObyBjb3JydXB0aW9uIG9ic2VydmVkIGluIHRo aXMgY2FzZS4KCkluIGNhc2Ugb2YgRFAyLjAgdHdvIGNvbm5lY3RvcnMgYXJlIGVudW1lcmF0ZWQs IGJvdGggdGlsZWQuCk9uZSBjb25uZWN0b3IgaGFzIG1vZGVzIGZyb20gMzg0OXgyMTYwIGFuZCBi ZWxvdy4gMjU2MHgyODgwIGJlaW5nIApwcmVmZXJyZWQgbW9kZS4KVGhlIG90aGVyIGhhcyAyNTYw eDI4ODAgbW9kZSwgYWxzbyBwcmVmZXJyZWQuCgpUaGUgaXNzdWUgaXMgc2VlbiB3aGVuIGJvdGgg dGhlIG1vZGVzIHNlbGVjdGVkIGFyZSAyNTYweDI4ODAuIFRoaXMgCnJlc3VsdHMgbGlrZSB0d28g aGFsdmVzIG9mIHNjcmVlbnMgbm90IGluIHN5bmMuCgoqKioqKkV4cGVyaW1lbnQgd2l0aCBkaWZm ZXJlbnQgcGF0Y2hlcyoqKioqCgpBcyBkaXNjdXNzZWQgSSBjb2xsZWN0ZWQgbG9ncyBpbiAzIGNh c2VzOgoxLiBXaXRob3V0IGFueSBwYXRjaCAodmFuaWxsYSkKMi4gV2l0aCBwYXRjaCB0byBwcnVu ZSB0aGUgMjU2MHgyODgwIG1vZGUsIG9ubHkgZm9yIHRpbGUgd2l0aCBITE9DIGFuZCAKVkxPQyBh cyAwLgozLiBXaXRoIGEgcGF0Y2ggdG8gZm9yY2UgdGhlIGNvbm5lY3RvciBwcm9wZXJ0eSBhcyAn ZmFsc2UnCgpMb2dzIGZvciB3aGljaCBhcmUgYXR0YWNoZWQgaW4gZmRvIGJ1ZyAjOTcyNDQgCmh0 dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MjQ0Cmh0dHBzOi8v YnVncy5mcmVlZGVza3RvcC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9MTQ1MjY3CgpOb3RlIDE6IEkg aGFkIGNoYW5nZWQgdGhlIGRpc3BsYXkgaW5mbyB0byBwcm92aWRlIHRoZSBUaWxlIGluZm9ybWF0 aW9uLCAKaW4gY2FzZSB0aGUgY29ubmVjdG9yICdoYXNfdGlsZScgaXMgdHJ1ZS4KTm90ZSAyOiBJ IGhhZCBjaGVja2VkIGFuZCBjb2xsZWN0ZWQgbG9ncyB3aXRoIHNpbmdsZSBkaXNwbGF5IGFuZCBh bHNvIAp3aXRoIGR1YWwgZGlzcGxheSBjb25maWd1cmF0aW9uIHdpdGggRFAxLjIgbW9uaXRvciBz ZXR0aW5ncy4KTm90ZSAzOiBUaGUgbW9kZSBpcyBjaGFuZ2VkIHVzaW5nIHhyYW5kci4KCmNhc2Ux OgotV2l0aG91dCBhbnkgcGF0Y2ggOiAyNTYweDI4ODAgbW9kZXNldCBvbiBib3RoIGNvbm5lY3Rv cnMgY2F1c2VzIGNvcnJ1cHRpb24uCgpjYXNlMjoKLVdpdGggMjU2MHgyODgwIG1vZGUgcHJ1bmVk IGZvciBvbmUgb2YgdGhlIHRpbGUgOiBPbmx5IG9uZSBvZiB0aGUgCmNvbm5lY3RvciBzaG93cyAy NTYweDI4ODAgbW9kZS4KMjU2MHgyODgwIG1vZGVzZXQgb24gYW55IHRoZSByZW1haW5pbmcgY29u bmVjdG9yIHJlc3VsdGVkIGluIGJsYW5rIHNjcmVlbi4KQW55IG90aGVyIG1vZGVzZXQgd29ya3Mu CgpjYXNlMzoKLVdpdGggaGFzX3RpbGUgY29ubmVjdG9yIHByb3BlcnR5IGZvcmNpYmx5IHJlc2V0 IDogVGhlIGNvbm5lY3RvciBhcmUgCmxpc3RlZCBhcyBub3QgdGlsZWQgYnV0IHN0aWxsLCAyNTYw eDI4ODAgbW9kZXNldCBvbiBhbnkgdGhlIGNvbm5lY3RvcnMgCmNhdXNlcyBibGFuayBzY3JlZW4u CkFueSBvdGhlciBtb2Rlc2V0IHdvcmtzLgoKVG8gc3VtbWFyaXplLCBwcnVuaW5nIG9uIGp1c3Qg b25lIHRpbGVkIGNvbm5lY3RvciBkb2VzIG5vdCBzb2x2ZSB0aGUgCmlzc3VlLCBpZiB3ZSBuZWVk IHRvIHBydW5lLCB3ZSBuZWVkIHRvIGRvIGl0IGZvciBib3RoIHRoZSBjb25uZWN0b3JzLgpTZWNv bmRseSwgdGhlIGZvcmNpYmxlIHNldHRpbmcgb2YgaGFzX3RpbGUgPSAnZmFsc2UnIGFsc28sIGRv ZXMgbm90IApoZWxwLCBhbmQgcmVzdWx0ZWQgaW4gYmxhbmsgc2NyZWVuIHdoZW4gMjU2MHgyODgw IG1vZGUgaXMgYXBwbGllZC4KU28gSU1ITyBpZiB3ZSBuZWVkIHRvIHBydW5lIHRoZSBtb2RlIDI1 NjB4Mjg4MCwgd2UgbmVlZCB0byBwcnVuZSBpdCBmb3IgCmJvdGggdGhlIGNvbm5lY3RvcnMuCgpS ZWdhcmRzLApBbmtpdAoKCk9uIDgvMzAvMjAxOSA5OjQ4IEFNLCBOYXV0aXlhbCwgQW5raXQgSyB3 cm90ZToKPgo+Cj4gT24gOC8zMC8yMDE5IDEyOjA2IEFNLCBOYXZhcmUsIE1hbmFzaSBEIHdyb3Rl Ogo+PiBPbiBUaHUsIEF1ZyAyOSwgMjAxOSBhdCAwMjozNjoxOFBNICswMzAwLCBKYW5pIE5pa3Vs YSB3cm90ZToKPj4+IE9uIFRodSwgMjkgQXVnIDIwMTksICJOYXV0aXlhbCwgQW5raXQgSyIgPGFu a2l0LmsubmF1dGl5YWxAaW50ZWwuY29tPgo+Pj4gd3JvdGU6Cj4+Pj4gSGkgSmFuaSwgTWFuYXNp LAo+Pj4+Cj4+Pj4gVGhhbmtzIGZvciB0aGUgY29tbWVudHMgYW5kIHN1Z2dlc3Rpb25zLiBQbGVh c2UgZmluZCBteSByZXNwb25zZQo+Pj4+IGlubGluZS4KPj4+Pgo+Pj4+IE9uIDgvMjkvMjAxOSAx MjoxNCBQTSwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4+Pj4+IE9uIFdlZCwgMjggQXVnIDIwMTksIE1h bmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+IHdyb3RlOgo+Pj4+Pj4gVGhh bmtzIEphbmkgZm9yIHlvdXIgZmVlZGJhY2ssIHBsZWFzZSBzZWUgbXkgY29tbWVudHMgaW5saW5l Cj4+Pj4+Pgo+Pj4+Pj4gT24gV2VkLCBBdWcgMjgsIDIwMTkgYXQgMTA6NDY6NDRBTSArMDMwMCwg SmFuaSBOaWt1bGEgd3JvdGU6Cj4+Pj4+Pj4gT24gVHVlLCAyNyBBdWcgMjAxOSwgTWFuYXNpIE5h dmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4g T24gVHVlLCBBdWcgMjcsIDIwMTkgYXQgMDE6MzQ6MTVQTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4+Pj4+Pj4+PiBPbiBUdWUsIDI3IEF1ZyAyMDE5LCAiTmF1dGl5YWwsIEFua2l0IEsiCj4+ Pj4+Pj4+PiA8YW5raXQuay5uYXV0aXlhbEBpbnRlbC5jb20+IHdyb3RlOgo+Pj4+Pj4+Pj4+IEZy b206IEFua2l0IE5hdXRpeWFsIDxhbmtpdC5rLm5hdXRpeWFsQGludGVsLmNvbT4KPj4+Pj4+Pj4+ Pgo+Pj4+Pj4+Pj4+IEN1cnJlbnRseSwgdGhlIHRyYW5zY29kZXIgcG9ydCBzeW5jIGZlYXR1cmUg aXMgbm90IGF2YWlsYWJsZSwKPj4+Pj4+Pj4+PiBkdWUgdG8KPj4+Pj4+Pj4+PiB3aGljaCB0aGUg NUstdGlsZWQgZHVhbCBEUCBtb25pdG9ycyBleHBlcmllbmNlIGNvcnJ1cHRpb24gd2hlbgo+Pj4+ Pj4+Pj4+IDI1NjB4Mjg4MCBtb2RlIGlzIGFwcGxpZWQgZm9yIGJvdGggb2YgdGhlIHRpbGVkIERQ IGNvbm5lY3RvcnMuCj4+Pj4+Pj4+Pj4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3Rv cC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MjQ0Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBUaGVyZSBp cyBhIHBhdGNoIHNlcmllcyB0byBlbmFibGUgdHJhbnNjb2RlIHBvcnQgc3luYyBmZWF0dXJlIGZv cgo+Pj4+Pj4+Pj4+IHRpbGVkIGRpc3BsYXkgZm9yIElDTCssIHdoaWNoIGlzIHVuZGVyIHJldmll dzoKPj4+Pj4+Pj4+PiBodHRwczovL3BhdGNod29yay5rZXJuZWwub3JnL3Byb2plY3QvaW50ZWwt Z2Z4L2xpc3QvP3Nlcmllcz0xMzczMzkKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4g Rm9yIHRoZSBvbGRlciBwbGF0Zm9ybXMsIHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSAyNTYweDI4ODAg bW9kZQo+Pj4+Pj4+Pj4+IHRvIGF2b2lkCj4+Pj4+Pj4+Pj4gYSBwb3NzaWJpbGl0eSBvZiB1c2Vy c3BhY2UgY2hvb3NpbmcgMjU2MHgyODgwIG1vZGUgZm9yIGJvdGggdGlsZWQKPj4+Pj4+Pj4+PiBk aXNwbGF5cywgcmVzdWx0aW5nIGluIGNvcnJ1cHRpb24uCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBU aGlzIHBhdGNoIHBydW5lcyAyNTYweDI4ODAgbW9kZSBmb3Igb25lIG9mIHRoZSB0aWxlZCBEUAo+ Pj4+Pj4+Pj4+IGNvbm5lY3Rvci4KPj4+Pj4+Pj4+PiBTaW5jZSBib3RoIHRoZSB0aWxlZCBEUCBj b25uZWN0b3JzIGhhdmUgZGlmZmVyZW50IHRpbGVfaF9sb2MgYW5kCj4+Pj4+Pj4+Pj4gdGlsZV92 X2xvYywgdGhlIHRpbGVkIGNvbm5lY3RvciB3aXRoIHRpbGVfaF9sb2MgYW5kIHRpbGVfdl9sb2MK Pj4+Pj4+Pj4+PiBhcyAnMCcsCj4+Pj4+Pj4+Pj4gaXMgY2hvc2VuLCBmb3Igd2hpY2ggdGhlIGdp dmVuIHJlc29sdXRpb24gaXMgcmVtb3ZlZC4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IFNpZ25lZC1v ZmYtYnk6IEFua2l0IE5hdXRpeWFsIDxhbmtpdC5rLm5hdXRpeWFsQGludGVsLmNvbT4KPj4+Pj4+ Pj4+PiBDQzogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPj4+Pj4+ Pj4+PiAtLS0KPj4+Pj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k cC5jIHwgMTEgKysrKysrKysrKysKPj4+Pj4+Pj4+PiAgMSBmaWxlIGNoYW5nZWQsIDExIGluc2Vy dGlvbnMoKykKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPj4+Pj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwo+Pj4+Pj4+Pj4+IGluZGV4IDVjNDVhM2IuLmFhNDNhM2Ig MTAwNjQ0Cj4+Pj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kcC5jCj4+Pj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kcC5jCj4+Pj4+Pj4+Pj4gQEAgLTU2NCw2ICs1NjQsMTcgQEAgaW50ZWxfZHBfbW9kZV92YWxp ZChzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgo+Pj4+Pj4+Pj4+ICpjb25uZWN0b3IsCj4+Pj4+Pj4+Pj4g ICAgICBpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTENMSykKPj4+Pj4+Pj4+PiAg ICAgICAgICByZXR1cm4gTU9ERV9IX0lMTEVHQUw7Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiArICAg IC8qCj4+Pj4+Pj4+Pj4gKyAgICAgKiBGb3IgNUsgdGlsZWQgZHVhbCBEUCBtb25pdG9ycywgZHVh bC1EUCBzeW5jIGlzIG5vdCB5ZXQKPj4+Pj4+Pj4+PiBzdXBwb3J0ZWQuCj4+Pj4+Pj4+Pj4gKyAg ICAgKiBUaGlzIHJlc3VsdHMgaW4gZGlzcGxheSBzeW5jIGlzc3Vlcywgd2hlbiBib3RoIHRpbGVk Cj4+Pj4+Pj4+Pj4gY29ubmVjdG9ycyBydW4KPj4+Pj4+Pj4+PiArICAgICAqIG9uIDI1NjB4Mjg4 MCByZXNvbHV0aW9uLiBUaGVyZWZvcmUgcHJ1bmUgdGhlIDI1NjB4Mjg4MAo+Pj4+Pj4+Pj4+IG1v ZGUgb24gb25lCj4+Pj4+Pj4+Pj4gKyAgICAgKiBvZiB0aGUgdGlsZWQgY29ubmVjdG9yLCB0byBh dm9pZCBzdWNoIGEgY2FzZS4KPj4+Pj4+Pj4+PiArICAgICAqLwo+Pj4+Pj4+Pj4+ICsgICAgaWYg KGNvbm5lY3Rvci0+aGFzX3RpbGUgJiYKPj4+Pj4+Pj4+PiArICAgICAgICAoY29ubmVjdG9yLT50 aWxlX2hfbG9jID09IDAgJiYgY29ubmVjdG9yLT50aWxlX3ZfbG9jCj4+Pj4+Pj4+Pj4gPT0gMCkg JiYKPj4+Pj4+Pj4+PiArICAgICAgICAobW9kZS0+aGRpc3BsYXkgPT0gMjU2MCAmJiBtb2RlLT52 ZGlzcGxheSA9PSAyODgwKSkKPj4+Pj4+Pj4+PiArICAgICAgICByZXR1cm4gTU9ERV9QQU5FTDsK Pj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gVGhpcyBhc3N1bWVzIGFsbCB0aWxlZCBj YXNlcyB3aXRoIHNwZWNpZmljIHJlc29sdXRpb25zIGZhaWwuCj4+Pj4+Pj4+PiBZb3UgZG9uJ3QK Pj4+Pj4+Pj4+IGtub3cgdGhhdC4gWW91IG9ubHkga25vdyB0aGlzIGZhaWxzIG9uIGEgc3BlY2lm aWMgZGlzcGxheS4KPj4+Pj4+Pj4+IEluc3RlYWQgb2YKPj4+Pj4+Pj4+IGNvbWluZyB1cCB3aXRo IHZhcmlvdXMgcnVsZXMgb24gdGlsZXMgYW5kIHJlc29sdXRpb25zIHRoYXQKPj4+Pj4+Pj4+IG1h dGNoIHRoZQo+Pj4+Pj4+Pj4gZGlzcGxheSAoYnV0IG1pZ2h0ICphbHNvKiBtYXRjaCBhbnkgbnVt YmVyIG9mICpvdGhlcioKPj4+Pj4+Pj4+IGRpc3BsYXlzISksIHlvdQo+Pj4+Pj4+Pj4gbmVlZCB0 byBhY3R1YWxseSBpZGVudGlmeSBhbmQgbWF0Y2ggdGhhdCBzcGVjaWZpYyBkaXNwbGF5IGluc3Rl YWQuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBBY3R1YWxseSB3aXRob3V0IHRoZSB0cmFu c2NvZGVyIHBvcnQgc3luYyBmZWF0dXJlLCB3ZSBkbyBub3QgZXhwZWN0Cj4+Pj4+Pj4+IGFueSB0 aWxlZCBkaXNwbGF5IG92ZXIgdHdvIHNlcGFyYXRlIHBvcnRzIHRvIHdvcmsgY29ycmVjdGx5LCBz bwo+Pj4+Pj4+PiBpZiBpdAo+Pj4+Pj4+PiBpcyB0d28gY29ubmVjdG9ycyBpbiBzdGF0ZSB3aXRo IHRpbGUgcHJvcHMgc2V0IHRoZW4gd2Ugc2hvdWxkCj4+Pj4+Pj4+IHJlamVjdAo+Pj4+Pj4+PiB0 aGUgdGlsZWQgbW9kZSBvbiBib3RoIHRob3NlIGNvbm5lY3RvcnMgc2luY2UgdGhhdCBtaWdodCBj YXVzZSB0aGUKPj4+Pj4+Pj4gYXJ0aWZhY3RzIHdpdGhvdXQgcHJvcGVyIHN5bmMgYmV0d2VlbiB0 d28gcG9ydHMgd2hpY2ggaXMgc3VwcG9ydGVkCj4+Pj4+Pj4+IG9ubHkgb24gSUNMKwo+Pj4+Pj4+ Cj4+Pj4+Pj4gQ29uc2lkZXIgYSBtdWx0aS1zY3JlZW4gZGlzcGxheSB3aXRoIGluZGVwZW5kZW50 IHBhbmVscyBtb3VudGVkCj4+Pj4+Pj4gdG9nZXRoZXIsIGFuZCBFRElEcyBzZXQgdXAgdG8gZGVz Y3JpYmUgdGhlIHBoeXNpY2FsIHRpbGluZwo+Pj4+Pj4+IGxheW91dC4gU2hvdWxkIHdlIHJlamVj dCB0aGVtIGFsbCBiZWNhdXNlIHRoZSBjYXNlcyB5b3Uga25vdwo+Pj4+Pj4+IGFib3V0IGZhaWw/ Cj4+Pj4+Pj4KPj4+Pj4+PiBZb3Uga25vdyBhYm91dCB0aGUgaXNzdWVzIHdpdGggdGhlIHNwZWNp ZmljIDVrIGRpc3BsYXlzIHByZWNpc2VseQo+Pj4+Pj4+IGJlY2F1c2UgdGhleSBmYWlsLiBZb3Ug bmV2ZXIgaGVhciBhYm91dCB0aGUgb25lcyB0aGF0IHdvcmsuIEV2ZXIuCj4+Pj4+Pj4gVW50aWwK Pj4+Pj4+PiB0aGV5IHN0b3Agd29ya2luZywgdGhhdCBpcy4KPj4+Pj4+Cj4+Pj4+PiBIbW0gSSB0 aGluayBldmVuIHdpdGggc2VwYXJhdGUgcGFuZWxzIHRvIHdvcmsgd2l0aG91dCBhcnRpZmFjdHMg d2UKPj4+Pj4+IHdvdWxkIG5lZWQgc29tZSBraW5kIG9mCj4+Pj4+PiBzeW5jaHJvbml6YXRpb24u IEJ1dCB5ZXMgSSBhZ3JlZSB0aGF0IGl0IG1pZ2h0IGp1c3QgYmUgd29ya2luZwo+Pj4+Pj4gd2Vs bCBhbmQgd2UgY2FudCBhc3N1bWUKPj4+Pj4+IHRoYXQgdGhleSBhcmUgZmFpbGluZy4KPj4+Pj4+ Cj4+Pj4+PiBTbyBmb3Igbm93IHRoZSBFRElEIHF1aXJrIHNvdW5kcyBsaWtlIHRoZSBiZXN0IHdh eSB0byBmaXggdGhpcyBGRE8KPj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRoZXJlIGFyZSB0d28g d2F5cyB0byBhZGQgZGlzcGxheSBzcGVjaWZpYyBxdWlya3M6IGJhc2VkIG9uIEVESUQKPj4+Pj4+ Pj4+IChlZGlkX3F1aXJrX2xpc3QgaW4gZHJtX2VkaWQuYykgYW5kIGJhc2VkIG9uIERQQ0QKPj4+ Pj4+Pj4+IChkcGNkX3F1aXJrX2xpc3QgaW4KPj4+Pj4+Pj4+IGRybV9kcF9oZWxwZXIuYykuIFlv dSBpZGVudGlmeSB0aGUgZGlzcGxheSwgYW5kIHRoZW4gcHJ1bmUgdGhlCj4+Pj4+Pj4+PiBtb2Rl cwo+Pj4+Pj4+Pj4gdGhhdCByZXF1aXJlIHBvcnQgc3luYyB0byB3b3JrLCBmb3IgKnRoYXQqIGRp c3BsYXkuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFdlIGhhdmUgc2VlbiB0aGlzIGlzc3VlIG9uIG11bHRp cGxlIDVLIHRpbGVkIGRpc3BsYXlzIElNSCwgc28ganVzdAo+Pj4+Pj4+PiBhZGRpbmcgYSBxdWly ayBmb3Igc3BlY2lmaWMgbW9uaXRvcnMgd2lsbCBub3Qgc3VmZmljZS4KPj4+Pj4+Pgo+Pj4+Pj4+ IEFkZGluZyBvbmUgcXVpcmsgcGVyIGZhaWxpbmcgZGlzcGxheSBxdWl0ZSBvYnZpb3VzbHkgd2ls bCBzdWZmaWNlLgo+Pj4+Pj4+Cj4+Pj4+Pj4+IEJ1dCB3ZSB3b3VsZCBuZWVkIHRvIG1ha2Ugc3Vy ZSB0aGF0IHRoZSBtb2RlIGdldHMgcmVqZWN0ZWQgb25seSBpZgo+Pj4+Pj4+PiB0aGVyZSBhcmUg bXVsdGlwbGUgU1NUIGNvbm5lY3RvcnMgd2l0aCB0aWxlIHByb3Agb3IKPj4+Pj4+Pj4gY29ubmVj dG9yLT5oYXNfdGlsZSBzZXQgYmVjYXVzZSBNU1QgdGlsZWQgZGlzcGxheXMgc3RpbGwgd29yawo+ Pj4+Pj4+PiBjb3JyZWN0bHkuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFZpbGxlLCB5b3UgaGFkIHBsYXll ZCBhIGxpdHRsZSBiaXQgd2l0aCB0aGlzIDVLIGRpc3BsYXkgSQo+Pj4+Pj4+PiBiZWxpZXZlLCBk bwo+Pj4+Pj4+PiB5b3UgdGhpbmsgcHJ1bmluZyB0aGUgdGlsZWQgbW9kZSBpZiB0aGVyZSBhcmUg dGlsZWQgU1NUCj4+Pj4+Pj4+IGNvbm5lY3RvcnMgYW5kCj4+Pj4+Pj4+IHBsYXRmb3JtIDwgSUNM IGlzIGEgZ29vZCBzb2x1dGlvbj8KPj4+Pj4+Pgo+Pj4+Pj4+IENvbWUgdG8gdGhpbmsgb2YgaXQs IGNhbiB5b3UgdXNlIHRoZSB0aWxlZCBtb2RlICp1bnRpbGVkKiBvbiBvbmUKPj4+Pj4+PiBwb3J0 LAo+Pj4+Pj4+IGFuZCBoYXZlIGl0IHN0cmVjaCB0aGUgZW50aXJlIGRpc3BsYXk/IFRoZXJlIGFy ZSBwbGVudHkgb2Ygb3RoZXIKPj4+Pj4+PiBtb2Rlcwo+Pj4+Pj4+IHlvdSBjYW4gdXNlIGxpa2Ug dGhpcy4gSSBkb24ndCB0aGluayB3ZSBzaG91bGQgcmVqZWN0IHRoYXQgdXNlIGNhc2UKPj4+Pj4+ PiBlaXRoZXIuCj4+Pj4+Pgo+Pj4+Pj4gWWVzIHNvIGluIHRoYXQgY2FzZSB0aGUgcXVpcmsgd291 bGQgYmUgdG8gc2V0IHRoZSBoYXNfdGlsZSB0bwo+Pj4+Pj4gZmFsc2Ugc28gdGhhdAo+Pj4+Pj4g dGhlIGRyaXZlciB3aWxsIGFjdHVhbGx5IHNlZSBpdCBhcyBub24gdGlsZWQgYW5kIHNjYWxlIGl0 IHRvIHRoZQo+Pj4+Pj4gZW50aXJlIGRpc3BsYXkKPj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiBJJ2xs IHJlcGVhdCwgeW91IGhhdmUgaXNzdWVzIHdpdGggYSB2ZXJ5IHNwZWNpZmljIGNhc2UuIFlvdSBu ZWVkCj4+Pj4+Pj4gdG8gaGF2ZQo+Pj4+Pj4+ICp2ZXJ5KiBzcGVjaWZpYyBydWxlcyB0byBmaWx0 ZXIgdGhlbSBvdXQgaW4gb3JkZXIgdG8gbm90Cj4+Pj4+Pj4gaW5hZHZlcnRlbnRseQo+Pj4+Pj4+ IGZpbHRlciBvdXQgdmFsaWQgdXNlIGNhc2VzLiBSZW1lbWJlciwgaWYgdGhlcmUncyBqdXN0ICpv bmUqIHZhbGlkCj4+Pj4+Pj4gdXNlCj4+Pj4+Pj4gY2FzZSB0aGF0IHlvdSBlbmQgdXAgcmVqZWN0 aW5nIGhlcmUsIGl0J3MgYSByZWdyZXNzaW9uIGFuZCB5b3UKPj4+Pj4+PiBuZWVkIHRvCj4+Pj4+ Pj4gcmV2ZXJ0IGFuZCBnZXQgYmFjayB0byB0aGUgZHJhd2luZyBib2FyZC4KPj4+Pj4+Pgo+Pj4+ Pj4+IC0tLQo+Pj4+Pj4+Cj4+Pj4+Pj4gRmluYWxseSwgYW5kIHBlcmhhcHMgbW9zdCBpbXBvcnRh bnRseSwgdGhlcmUgYXJlIHBlb3BsZSBvbiB0aGUKPj4+Pj4+PiBidWcgdGhhdAo+Pj4+Pj4+IGFy ZSBnb2luZyB0byBiZSByYXRoZXIgdW5kZXJ3aGVsbWVkIHRoYXQgYWZ0ZXIgdGhyZWUgeWVhcnMg dGhleQo+Pj4+Pj4+IGdldCBhCj4+Pj4+Pj4gcGF0Y2ggdGhhdCBzaW1wbHkgcmVqZWN0cyB0aGUg dmVyeSBtb2RlIHRoYXQgd2FzIHRoZSByZWFzb24gZm9yCj4+Pj4+Pj4gYnV5aW5nCj4+Pj4+Pj4g dGhlIGRpc3BsYXkgdGhleSBoYXZlLiBJbnN1bHQgdG8gaW5qdXJ5LCB0aGUgcmVhbCBmaXggaXMg Zm9yIGEKPj4+Pj4+PiBwbGF0Zm9ybQo+Pj4+Pj4+IHRoYXQgZGlkbid0IGV4aXN0IHdoZW4gdGhl eSBib3VnaHQgdGhlIGRpc3BsYXlzLgo+Pj4+Pj4KPj4+Pj4+IEkgYWdyZWUgY29tcGxldGVseS4g QW5raXQgY291bGQgeW91IHRlc3QgaXQgb24gdGhlIDVLIHNjcmVlbiB3aGF0Cj4+Pj4+PiBoYXBw ZW5zIGlmCj4+Pj4+PiB5b3Ugc2V0IHRoZSBoYXNfdGlsZSB0byBmYWxzZSBhbmQgYWxsb3cgaXQg dG8gc3RyZXRjaCBvdXQgaW4KPj4+Pj4+IHVudGlsZWQgZmFzaGlvbj8KPj4+Pj4+IElmIHRoYXQg d29ya3Mgd2UgY2FuIGFkZCB0aGF0IHRvIHRoZSBxdWlyay4KPj4+Pj4KPj4+Pj4gSSdtIHByb2Jh Ymx5IG1pc3Npbmcgc29tZXRoaW5nIGhlcmUuCj4+Pj4+Cj4+Pj4+IEFua2l0IGxpc3RzIHRoZSBt b2RlcyBmb3IgRFAtMiBpbiBbMV0sIGFuZCBhbW9uZyB0aGVtIGlzCj4+Pj4+IDI1NjB4Mjg4MC4g SG93J3MgdGhhdCBkaWZmZXJlbnQgZnJvbSB1c2luZywgc2F5LCAzODQweDIxNjA/Cj4+Pj4+Cj4+ Pj4+IEJSLAo+Pj4+PiBKYW5pLgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBbMV0KPj4+Pj4gaHR0cDovL21p ZC5tYWlsLWFyY2hpdmUuY29tLzU0YzZjMmMxLWQ5NWUtM2JiNC01MGRkLTFlZmZmNmJlZDdkZEBp bnRlbC5jb20KPj4+Pj4KPj4+Pj4KPj4+Pj4KPj4+Pgo+Pj4+IFRoZSBpc3N1ZSBpcyBzZWVuIG9u bHkgd2hlbiB0aGUgbW9kZSAyNTYweDI4ODAgaXMgc2V0IGZvciBib3RoIG9mIHRoZQo+Pj4+IGNv bm5lY3RvcnMuIFNvIGlmIHdlIHNlZSBhbnkgb3RoZXIgY29tYmluYXRpb24sIHNheSAyNTYweDI4 ODAgb24gRFAtMSwKPj4+PiAzODQweDIxNjAgb24gRFAtMiwgb25lIG9mIHRoZSBtb2RlIHdpbGwg Y292ZXIgdGhlIGVudGlyZSBzY3JlZW4gYW5kCj4+Pj4gdGhlcmUgaXMgbm8gY29ycnVwdGlvbiBv YnNlcnZlZC4gVGhpcyBpcyB0cnVlIGZvciBhbGwgY29tYmluYXRpb25zCj4+Pj4gb3RoZXIKPj4+ PiB0aGFuIHRoZSAoMjU2MHgyODgwLDI1NjB4Mjg4MCkgY29tYmluYXRpb24uCj4+Pgo+Pj4gUmln aHQsIHNvIG15IHBvaW50IHdhcywgaWYgMjU2MHgyODgwIGlzIHVzYWJsZSB3aGVuIHVzZWQgb24g b25lCj4+PiBjb25uZWN0b3Igb25seSwgaXQncyBub3QgcmVhbGx5IHByb3BlciB0byBmaWx0ZXIg dGhhdCBvdXQgZnJvbSB0aGUKPj4+IG1vZGVzLgo+Pgo+PiBIaSBKYW5pLAo+Pgo+PiBTbyB0aGUg aGFzX3RpbGUgb3IgdGhlIFRJTEUgcHJvcGVydHkgaXMgc2V0IHBlciBjb25uZWN0b3IgaXJyZXNw ZWN0aXZlCj4+IG9mIHRoZSBtb2RlLgo+PiBCdXQgdGhlIHdheSB1c2Vyc3BhY2UgaGFuZGxlcyBp dCBJTU8gaXMgdGhhdCBpZiBUSUxFIHByb3AgaXMgc2V0IGFuZAo+PiB0aGUgbW9kZSBtYXRjaGVz Cj4+IHRoZSB0aWxlX2hfc2l6ZSBhbmQgdGlsZV92X3NpemUgb25seSB0aGVuIGl0IHdpbGwgZG8g dHdvIGF0b21pYwo+PiBtb2Rlc2V0cyBvbiB0d28gY29ubmVjdG9ycwo+PiBPdGhlcndpc2UgaXQg d2lsbCBqdXN0IGJlIG9uZSBjb25uZWN0b3IgbW9kZXNldC4KPj4KPj4gU28gZm9yIGVnOiAyNTYw IHggMjg4MCB3b3VsZCBiZSB0aGUgc2l6ZSBvZiBlYWNoIHRpbGUgc28gZm9yIHRoYXQgaXQKPj4g aXMgZG9pbmcgbW9kZXNldHMKPj4gb24gdHdvIHRpbGVzIGFuZCB0aGF0cyB3aGVyZSB3ZSBzZWUg dGhlIGNvcnJ1cHRpb24gaXNzdWUgZm9yIHRoZQo+PiBjb21wbGV0ZSB0b3RhbCBmYgo+PiBvZiA1 MTIwIHggMjg4MC4KPj4gQnV0IGZvciAzODQwIHggMjE2MCwgdGhhdCBtb2Rlc2V0IGp1c3QgaGFw cGVucyBvbiBhIHNpbmdsZSBjb25uZWN0b3IKPj4gYW5kIHdlIGRvbnQgc2VlCj4+IGFueSBpc3N1 ZS4KPj4KPj4gU28gaSB0aGluayB3aGF0IHRoZSBxdWlyayBzaGQgZG8gaXMgZm9yIHRoaXMgc3Bl Y2lmaWMgcGFuZWwsIHdlIHdvdWxkCj4+IG5vdCBiZSBhYmxlIHRvCj4+IGRpc3BsYXkgdGlsZWQg bW9kZSB0b2dldGhlciBvZiA1MTIwIHggMjg4MCBjb3JyZWN0bHkgZHVlIHRvCj4+IGNvcnJ1cHRp b24sIHNvIHRoZSByZXNvbHV0aW9uCj4+IG9mIDI1NjAgeCAyODgwIHNob3VsZCBub3QgYXBwZWFy IGluIHRoZSBtb2RlbGlzdCBmb3IgdGhhdCBjb25uZWN0b3Igb3IKPj4gd2UganVzdCBzZXQgaGFz X3RpbGUKPj4gdG8gZmFsc2Ugc28gdXNlcnNwYWNlIHdpbGwgbm90IHRyeSB0byBkbyB0aGUgdGls ZWQgZGlzcGxheSBtYWdpYyBhbmQKPj4gZG8gYSBtb2Rlc2V0IG9uCj4+IHNpbmdsZSBjb25uZWN0 b3IuCj4+Cj4+IEFua2l0LCBjb3VsZCB5b3UgcGxlYXNlIGVtYWlsIG1lIHRoZSBkbWVzZyBsb2dz IGluOgo+PiAxLiBDYXNlIHdoZXJlIHlvdSBkb250IGFwcGx5IHRoaXMgcGF0Y2gsIHdoYXQgaGFw cGVucyB3aXRoIDIKPj4gY29ubmVjdG9ycyBpbiA1SyB0aWxlZCBtb2RlCj4+IDIuIFlvdSBmb3Jj ZSBoYXNfdGlsZSB0byBmYWxzZSBpbiB0aGUgY29kZSB0byBzZWUgdGhlIGJlaGF2aW91ciBhbmQK Pj4gbG9ncyBpbiBub24gdGlsZWQgY2FzZQo+PiAzLiBQcnVuZSB0aGUgMjU2MCB4IDI4ODAgbW9k ZSBhbmQgY29sbGVjdCBsb2dzLgo+Pgo+PiBJIHRoaW5rIGxvb2tpbmcgYXQgdGhlc2UgbG9ncyB3 aWxsIGdpdmUgdXMgYSBjbGVhciBwaWN0dXJlIGFuZCB3ZSBjYW4KPj4gZmluYWxpemUgdGhlIHBy b3BlciBmaXgKPj4KPj4gUmVnYXJkcwo+PiBNYW5hc2kKPj4KPgo+IFN1cmUgTWFuYXNpLCBJJ2xs IHRyeSB0aGlzIGFuZCBzaGFyZSB0aGUgbG9ncy4KPgo+IFJlZ2FyZHMsCj4gQW5raXQKPgoKCgoK CgoKCgo+Pgo+Pj4KPj4+IEJSLAo+Pj4gSmFuaS4KPj4+Cj4+Pgo+Pj4+Cj4+Pj4gSSBhbSBub3Qg c3VyZSBidXQgaXQgc2VlbXMgbGlrZSwgdGhlIG1vbml0b3Igd2hlbiByZWNlaXZlcyB0aGUKPj4+ PiAyNTYweDI4ODAKPj4+PiBtb2RlcyBvbiBib3RoIGNvbm5lY3RvcnMsIGF0IHRoYXQgdGltZSB0 aGUgZHVhbC1kcCBjb21lcyB0byBwbGF5IGFuZAo+Pj4+IHRoZQo+Pj4+IGNvcnJ1cHRpb24gb2Nj dXJzLiAoSSBoYWQgdHJpZWQgdG8gc2V0IHRoZSBtb2RlIHVzaW5nIHRoZSBVYnVudHUKPj4+PiBE aXNwbGF5Cj4+Pj4gc2V0dGluZ3MuKQo+Pj4+Cj4+Pj4gSSBoYWQgdHJpZWQgd2l0aCBEZWxsIFVQ MjcxNUsgbW9uaXRvciwgSSBjYW4gdHJ5IHRvIGdldCBvdGhlciB0aWxlZCA1awo+Pj4+IG1vbml0 b3JzIGFuZCBjaGVjayB0aGUgaXNzdWUgd2l0aG91dCBYLXNlcnZlciBvbi4KPj4+Pgo+Pj4+IElm IGl0cyBQYW5lbCBzcGVjaWZpYyBpc3N1ZSwgaXRzIGJldHRlciB0byBhZGQgcXVpcmsgYXMgc3Vn Z2VzdGVkLgo+Pj4+Cj4+Pj4gVGhhbmtzICYgUmVnYXJkcywKPj4+PiBBbmtpdAo+Pj4+Cj4+Pj4+ Cj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gTWFuYXNpCj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+ PiBCUiwKPj4+Pj4+PiBKYW5pLgo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+ Pj4+PiBSZWdhcmRzCj4+Pj4+Pj4+IE1hbmFzaQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IEJsYW5rZXQg ZmlsdGVycyBsaWtlIHRoaXMgYXJlIGEgbm8tZ28uCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gQlIsCj4+ Pj4+Pj4+PiBKYW5pLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gICAgICByZXR1cm4g TU9ERV9PSzsKPj4+Pj4+Pj4+PiAgfQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IC0tCj4+Pj4+Pj4+PiBK YW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2VudGVyCj4+Pj4+Pj4+PiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+Pj4+Pj4g SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+Pj4+Pj4+Pj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwo+Pj4+Pj4+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngKPj4+Pj4+Pgo+Pj4+Pj4+IC0tCj4+Pj4+Pj4gSmFuaSBOaWt1bGEs IEludGVsIE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgo+Pj4+Pgo+Pj4KPj4+IC0tCj4+PiBK YW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2VudGVyCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==