From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v6 13/28] drm/i915/dp: Compute DSC pipe config in atomic check Date: Mon, 29 Oct 2018 22:30:39 +0200 Message-ID: <20181029203039.GO9144@intel.com> References: <20181024222840.25683-1-manasi.d.navare@intel.com> <20181024222840.25683-14-manasi.d.navare@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: <20181024222840.25683-14-manasi.d.navare@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: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMjQsIDIwMTggYXQgMDM6Mjg6MjVQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBEU0MgcGFyYW1zIGxpa2UgdGhlIGVuYWJsZSwgY29tcHJlc3NlZCBicHAsIHNsaWNl IGNvdW50IGFuZAo+IGRzY19zcGxpdCBhcmUgYWRkZWQgdG8gdGhlIGludGVsX2NydGNfc3RhdGUu IFRoZXNlIHBhcmFtZXRlcnMKPiBhcmUgc2V0IGJhc2VkIG9uIHRoZSByZXF1ZXN0ZWQgbW9kZSBh bmQgYXZhaWxhYmxlIGxpbmsgcGFyYW1ldGVycwo+IGR1cmluZyB0aGUgcGlwZSBjb25maWd1cmF0 aW9uIGluIGF0b21pYyBjaGVjayBwaGFzZS4KPiBUaGVzZSB2YWx1ZXMgYXJlIHRoZW4gbGF0ZXIg dXNlZCB0byBwb3B1bGF0ZSB0aGUgcmVtYWluaW5nIERTQwo+IGFuZCBSQyBwYXJhbWV0ZXJzIGJl Zm9yZSBlbmJhbGluZyBEU0MgaW4gYXRvbWljIGNvbW1pdC4KPiAKPiB2OToKPiAqIFJlYmFzZSBv biB0b3Agb2YgZHJtLXRpcCB0aGF0IG5vdyB1c2VzIGZhc3RfbmFycm93IGNvbmZpZwo+IGZvciBl ZHAgKE1hbmFzaSkKPiB2ODoKPiAqIENoZWNrIGZvciBEU0MgYnBjIG5vdCAwIChtYW5hc2kpCj4g Cj4gdjc6Cj4gKiBGaXggaW5kZW50YXRpb24gaW4gY29tcHV0ZV9tX24gKE1hbmFzaSkKPiAKPiB2 NiAoRnJvbSBHYXVyYXYpOgo+ICogUmVtb3ZlIGZ1bmN0aW9uIGNhbGwgb2YgaW50ZWxfZHBfY29t cHV0ZV9kc2NfcGFyYW1zKCkgYW5kCj4gaW52b2tlIGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFt cygpIGluIHRoZSBwYXRjaCB3aGVyZQo+IGl0IGlzIGRlZmluZWQgdG8gZml4IGNvbXBpbGF0aW9u IHdhcm5pbmcgKEdhdXJhdikKPiAKPiB2NToKPiBBZGQgZHJtX2RzY19jZmcgaW4gaW50ZWxfY3J0 Y19zdGF0ZSAoTWFuYXNpKQo+IAo+IHY0Ogo+ICogUmViYXNlIG9uIHJlZmFjdG9yaW5nIG9mIGlu dGVsX2RwX2NvbXB1dGVfY29uZmlnIG9uIHRpcCAoTWFuYXNpKQo+ICogQWRkIGEgY29tbWVudCB3 aHkgd2UgbmVlZCB0byBjaGVjayBQU1Igd2hpbGUgZW5hYmxpbmcgRFNDIChHYXVyYXYpCj4gCj4g djM6Cj4gKiBDaGVjayBQUFIgPiBtYXhfY2RjbG9jayB0byB1c2UgMiBWRFNDIGluc3RhbmNlcyAo VmlsbGUpCj4gCj4gdjI6Cj4gKiBBZGQgaWYtZWxzZSBmb3IgZURQL0RQIChHYXVyYXYpCj4gCj4g Q2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IFZpbGxl IFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IENjOiBBbnVzaGEgU3Jp dmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4gQ2M6IEdhdXJhdiBLIFNpbmdoIDxn YXVyYXYuay5zaW5naEBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8 bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiBSZXZpZXdlZC1ieTogQW51c2hhIFNyaXZhdHNh IDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgo+IEFja2VkLWJ5OiBKYW5pIE5pa3VsYSA8amFu aS5uaWt1bGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgfCAgMjAgKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmggfCAgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAg IHwgMTcwICsrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcF9tc3QuYyAgfCAgIDIgKy0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAxNTUgaW5zZXJ0 aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+IGluZGV4IGZlMDQ1YWJiNjQ3Mi4uMTg3MzdiZDgyYjY4IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC02NDM0LDcgKzY0MzQsNyBAQCBzdGF0aWMgaW50 IGlyb25sYWtlX2ZkaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YywKPiAgCj4gIAlwaXBlX2NvbmZpZy0+ZmRpX2xhbmVzID0gbGFuZTsKPiAgCj4gLQlpbnRlbF9s aW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwgbGFuZSwgZmRpX2RvdGNsb2Nr LAo+ICsJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsIDAsIGxh bmUsIGZkaV9kb3RjbG9jaywKPiAgCQkJICAgICAgIGxpbmtfYncsICZwaXBlX2NvbmZpZy0+ZmRp X21fbiwgZmFsc2UpOwo+ICAKPiAgCXJldCA9IGlyb25sYWtlX2NoZWNrX2ZkaV9sYW5lcyhkZXYs IGludGVsX2NydGMtPnBpcGUsIHBpcGVfY29uZmlnKTsKPiBAQCAtNjY3MSwxNyArNjY3MSwyNSBA QCBzdGF0aWMgdm9pZCBjb21wdXRlX21fbih1bnNpZ25lZCBpbnQgbSwgdW5zaWduZWQgaW50IG4s Cj4gIH0KPiAgCj4gIHZvaWQKPiAtaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYml0c19wZXJf cGl4ZWwsIGludCBubGFuZXMsCj4gK2ludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJpdHNfcGVy X3BpeGVsLCB1aW50MTZfdCBjb21wcmVzc2VkX2JwcCwKPiArCQkgICAgICAgaW50IG5sYW5lcywK PiAgCQkgICAgICAgaW50IHBpeGVsX2Nsb2NrLCBpbnQgbGlua19jbG9jaywKPiAgCQkgICAgICAg c3RydWN0IGludGVsX2xpbmtfbV9uICptX24sCj4gIAkJICAgICAgIGJvb2wgY29uc3RhbnRfbikK PiAgewo+ICAJbV9uLT50dSA9IDY0Owo+ICAKPiAtCWNvbXB1dGVfbV9uKGJpdHNfcGVyX3BpeGVs ICogcGl4ZWxfY2xvY2ssCj4gLQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAo+IC0JCSAg ICAmbV9uLT5nbWNoX20sICZtX24tPmdtY2hfbiwKPiAtCQkgICAgY29uc3RhbnRfbik7Cj4gKwkv KiBGb3IgRFNDLCBEYXRhIE0vTiBjYWxjdWxhdGlvbiB1c2VzIGNvbXByZXNzZWQgQlBQICovCj4g KwlpZiAoY29tcHJlc3NlZF9icHApCj4gKwkJY29tcHV0ZV9tX24oY29tcHJlc3NlZF9icHAgKiBw aXhlbF9jbG9jaywKPiArCQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAo+ICsJCQkgICAg Jm1fbi0+Z21jaF9tLCAmbV9uLT5nbWNoX24sCj4gKwkJCSAgICBjb25zdGFudF9uKTsKPiArCWVs c2UKPiArCQljb21wdXRlX21fbihiaXRzX3Blcl9waXhlbCAqIHBpeGVsX2Nsb2NrLAo+ICsJCQkg ICAgbGlua19jbG9jayAqIG5sYW5lcyAqIDgsCj4gKwkJCSAgICAmbV9uLT5nbWNoX20sICZtX24t PmdtY2hfbiwKPiArCQkJICAgIGNvbnN0YW50X24pOwo+ICAKPiAgCWNvbXB1dGVfbV9uKHBpeGVs X2Nsb2NrLCBsaW5rX2Nsb2NrLAo+ICAJCSAgICAmbV9uLT5saW5rX20sICZtX24tPmxpbmtfbiwK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCj4gaW5kZXggNWQ1MGRlY2JjYmI1Li5i MGIyM2UxZTkzOTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCj4gQEAg LTQwNyw3ICs0MDcsOCBAQCBzdHJ1Y3QgaW50ZWxfbGlua19tX24gewo+ICAJICAgICAoX19pKSsr KSBcCj4gIAkJZm9yX2VhY2hfaWYocGxhbmUpCj4gIAo+IC12b2lkIGludGVsX2xpbmtfY29tcHV0 ZV9tX24oaW50IGJwcCwgaW50IG5sYW5lcywKPiArdm9pZCBpbnRlbF9saW5rX2NvbXB1dGVfbV9u KGludCBicHAsIHVpbnQxNl90IGNvbXByZXNzZWRfYnBwLAo+ICsJCQkgICAgaW50IG5sYW5lcywK PiAgCQkJICAgIGludCBwaXhlbF9jbG9jaywgaW50IGxpbmtfY2xvY2ssCj4gIAkJCSAgICBzdHJ1 Y3QgaW50ZWxfbGlua19tX24gKm1fbiwKPiAgCQkJICAgIGJvb2wgY29uc3RhbnRfbik7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggNmY2NmEzOGJhMGIyLi5hODhmOTM3MWRkMzIgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtNDcsNiArNDcsOCBAQAo+ICAKPiAgLyog RFAgRFNDIHNtYWxsIGpvaW5lciBoYXMgMiBGSUZPcyBlYWNoIG9mIDY0MCB4IDYgYnl0ZXMgKi8K PiAgI2RlZmluZSBEUF9EU0NfTUFYX1NNQUxMX0pPSU5FUl9SQU1fQlVGRkVSCTYxNDQwCj4gKyNk ZWZpbmUgRFBfRFNDX01JTl9TVVBQT1JURURfQlBDCQk4Cj4gKyNkZWZpbmUgRFBfRFNDX01BWF9T VVBQT1JURURfQlBDCQkxMAo+ICAKPiAgLyogRFAgRFNDIHRocm91Z2hwdXQgdmFsdWVzIHVzZWQg Zm9yIHNsaWNlIGNvdW50IGNhbGN1bGF0aW9ucyBLUGl4ZWxzL3MgKi8KPiAgI2RlZmluZSBEUF9E U0NfUEVBS19QSVhFTF9SQVRFCQkJMjcyMDAwMAo+IEBAIC0xOTI0LDYgKzE5MjYsMTYgQEAgc3Rh dGljIGludCBpbnRlbF9kcF9jb21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ ICAJCX0KPiAgCX0KPiAgCj4gKwkvKiBJZiBEU0MgaXMgc3VwcG9ydGVkLCB1c2UgdGhlIG1heCB2 YWx1ZSByZXBvcnRlZCBieSBwYW5lbCAqLwo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0g MTAgJiYKPiArCSAgICBkcm1fZHBfc2lua19zdXBwb3J0c19kc2MoaW50ZWxfZHAtPmRzY19kcGNk KSkgewo+ICsJCWJwYyA9IG1pbl90KHU4LAo+ICsJCQkgICAgZHJtX2RwX2RzY19zaW5rX21heF9j b2xvcl9kZXB0aChpbnRlbF9kcC0+ZHNjX2RwY2QpLAo+ICsJCQkgICAgRFBfRFNDX01BWF9TVVBQ T1JURURfQlBDKTsKPiArCQlpZiAoYnBjKQo+ICsJCQlicHAgPSAzICogYnBjOwoKVGhpcyBzZWVt cyBsaWtlIGl0IHNob3VsZCBiZSAnYnBwID0gbWluKGJwcCwgMypicGMpJy4gCk90aGVyd2lzZSB3 ZSBtYXkgYnVtcCB0aGUgYnBwIGFib3ZlIGEgbGltaXQgd2UgYWxyZWFkeSBlc3RhYmxpc2hlZCBl YXJsaWVyLgoKPiArCX0KPiArCj4gIAlyZXR1cm4gYnBwOwo+ICB9Cj4gIAo+IEBAIC0xOTg0LDE0 ICsxOTk2LDExIEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfd2lkZShzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLAo+ICAJCQkJbGlua19jbG9jayA9IGludGVsX2RwLT5jb21tb25fcmF0 ZXNbY2xvY2tdOwo+ICAJCQkJbGlua19hdmFpbCA9IGludGVsX2RwX21heF9kYXRhX3JhdGUobGlu a19jbG9jaywKPiAgCQkJCQkJCQkgICAgbGFuZV9jb3VudCk7Cj4gLQo+IC0JCQkJaWYgKG1vZGVf cmF0ZSA8PSBsaW5rX2F2YWlsKSB7Cj4gLQkJCQkJcGlwZV9jb25maWctPmxhbmVfY291bnQgPSBs YW5lX2NvdW50Owo+IC0JCQkJCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IGJwcDsKPiAtCQkJCQlw aXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGxpbmtfY2xvY2s7Cj4gLQo+ICsJCQkJcGlwZV9jb25m aWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50Owo+ICsJCQkJcGlwZV9jb25maWctPnBpcGVfYnBw ID0gYnBwOwo+ICsJCQkJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBsaW5rX2Nsb2NrOwo+ICsJ CQkJaWYgKG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKQo+ICAJCQkJCXJldHVybiB0cnVlOwoKV2h5 IGRvIHdlIG5lZWQgdG8gYXNzaWduIHRoZXNlIGlmIHdlIGRvbid0IGFjY2VwdCB0aGUgY29uZmln dXJhdGlvbj8KCj4gLQkJCQl9Cj4gIAkJCX0KPiAgCQl9Cj4gIAl9Cj4gQEAgLTIwMjAsMTQgKzIw MjksMTEgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsCj4gIAkJCQlsaW5rX2Nsb2NrID0gaW50ZWxfZHAtPmNvbW1vbl9yYXRlc1tj bG9ja107Cj4gIAkJCQlsaW5rX2F2YWlsID0gaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShsaW5rX2Ns b2NrLAo+ICAJCQkJCQkJCSAgICBsYW5lX2NvdW50KTsKPiAtCj4gLQkJCQlpZiAobW9kZV9yYXRl IDw9IGxpbmtfYXZhaWwpIHsKPiAtCQkJCQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IGxhbmVf Y291bnQ7Cj4gLQkJCQkJcGlwZV9jb25maWctPnBpcGVfYnBwID0gYnBwOwo+IC0JCQkJCXBpcGVf Y29uZmlnLT5wb3J0X2Nsb2NrID0gbGlua19jbG9jazsKPiAtCj4gKwkJCQlwaXBlX2NvbmZpZy0+ bGFuZV9jb3VudCA9IGxhbmVfY291bnQ7Cj4gKwkJCQlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPSBi cHA7Cj4gKwkJCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGxpbmtfY2xvY2s7Cj4gKwkJCQlp ZiAobW9kZV9yYXRlIDw9IGxpbmtfYXZhaWwpCj4gIAkJCQkJcmV0dXJuIHRydWU7Cj4gLQkJCQl9 Cj4gIAkJCX0KPiAgCQl9Cj4gIAl9Cj4gQEAgLTIwMzUsMTQgKzIwNDEsODggQEAgaW50ZWxfZHBf Y29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAly ZXR1cm4gZmFsc2U7Cj4gIH0KPiAgCj4gK3N0YXRpYyBib29sIGludGVsX2RwX2RzY19jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICsJCQkJCXN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiArCQkJCQlzdHJ1Y3QgbGlua19jb25maWdfbGltaXRz ICpsaW1pdHMpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0g ZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Cj4gKwlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlOwo+ICsJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5i YXNlLmNydGMpLT5waXBlOwo+ICsJdTE2IGRzY19tYXhfb3V0cHV0X2JwcCA9IDA7Cj4gKwl1OCBk c2NfZHBfc2xpY2VfY291bnQgPSAwOwo+ICsKPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwg MTAgfHwKPiArCSAgICAhZHJtX2RwX3Npbmtfc3VwcG9ydHNfZHNjKGludGVsX2RwLT5kc2NfZHBj ZCkpCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsKPiArCS8qIERQIERTQyBvbmx5IHN1cHBvcnRlZCBv biBQaXBlIEIgYW5kIEMgKi8KPiArCWlmIChwaXBlID09IFBJUEVfQSAmJiAhaW50ZWxfZHBfaXNf ZWRwKGludGVsX2RwKSkKPiArCQlyZXR1cm4gZmFsc2U7CgpEbyB3ZSBtZWFuICd0cmFuc2NvZGVy ID09IEVEUCB8fCB0cmFuc2NvZGVyID09IEIgfHwgdHJhbnNjb2RlciA9PSBDJyA/Ck9yIG1heWJl ICd0cmFuc2NvZGVyICE9IEEnIGZvciBzaG9ydC4gSSBndWVzcyB0aGlzIHdpbGwgbmVlZCB0byBh ZGp1c3RlZApmb3IgdGhlIG5leHQgcGxhdGZvcm0gYW55d2F5IHNvIG1ha2luZyB0aGUgYXNzdW1w dGlvbiB0aGF0IHRyYW5zY29kZXIgQQppcyB0aGUgb25seSBvbmUgdGhhdCBjYW4ndCBkbyBEU0Mg aXMgZmluZS4KClRoaXMgd2hvbGUgdGhpbmcgc2VlbXMgbGlrZSBhIGdvb2QgaGVscGVyIGZ1bmN0 aW9uLgppbnRlbF9kcF9zb3VyY2Vfc3VwcG9ydHNfZHNjKCkgb3Igc29tZXRoaW5nIGxpa2UgdGhh dC4gQW5kIHRoZW4gd2UKY291bGQgaGF2ZSBpbnRlbF9kcF9zdXBwb3J0c19kc2MoKSB3aGljaCBq dXN0IGNhbGxzIHRoYXQgKwpkcm1fZHBfc2lua19zdXBwb3J0c19kc2MoKS4KCmludGVsX2RwX2Nv bXB1dGVfYnBwKCkgc2hvdWxkIHVzZSB0aGlzIGF0IGxlYXN0LCBhbmQgcHJvYmFibHkgYSBmZXcK b3RoZXIgcGxhY2VzIGFzIHdlbGwuCgo+ICsKPiArCS8qIERTQyBub3Qgc3VwcG9ydGVkIGZvciBE U0Mgc2luayBCUEMgPCA4ICovCj4gKwlpZiAobGltaXRzLT5tYXhfYnBwIDwgMyAqIERQX0RTQ19N SU5fU1VQUE9SVEVEX0JQQykgewo+ICsJCURSTV9ERUJVR19LTVMoIk5vIERTQyBzdXBwb3J0IGZv ciBsZXNzIHRoYW4gOGJwY1xuIik7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICsKPiArCWlm IChpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKSB7Cj4gKwkJcGlwZV9jb25maWctPmRzY19wYXJh bXMuY29tcHJlc3NlZF9icHAgPQo+ICsJCQlkcm1fZWRwX2RzY19zaW5rX291dHB1dF9icHAoaW50 ZWxfZHAtPmRzY19kcGNkKSA+PiA0Owo+ICsJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLnNsaWNl X2NvdW50ID0KPiArCQkJZHJtX2RwX2RzY19zaW5rX21heF9zbGljZV9jb3VudChpbnRlbF9kcC0+ ZHNjX2RwY2QsCj4gKwkJCQkJCQl0cnVlKTsKPiArCX0gZWxzZSB7Cj4gKwkJZHNjX21heF9vdXRw dXRfYnBwID0KPiArCQkJaW50ZWxfZHBfZHNjX2dldF9vdXRwdXRfYnBwKHBpcGVfY29uZmlnLT5w b3J0X2Nsb2NrLAo+ICsJCQkJCQkgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQsCj4gKwkJCQkJ CSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ICsJCQkJCQkgICAgYWRqdXN0ZWRfbW9k ZS0+Y3J0Y19oZGlzcGxheSk7Cj4gKwkJZHNjX2RwX3NsaWNlX2NvdW50ID0KPiArCQkJaW50ZWxf ZHBfZHNjX2dldF9zbGljZV9jb3VudChpbnRlbF9kcCwKPiArCQkJCQkJICAgICBhZGp1c3RlZF9t b2RlLT5jcnRjX2Nsb2NrLAo+ICsJCQkJCQkgICAgIGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3Bs YXkpOwo+ICsJCWlmICghKGRzY19tYXhfb3V0cHV0X2JwcCAmJiBkc2NfZHBfc2xpY2VfY291bnQp KSB7Cj4gKwkJCURSTV9ERUJVR19LTVMoIkNvbXByZXNzZWQgQlBQL1NsaWNlIENvdW50IG5vdCBz dXBwb3J0ZWRcbiIpOwo+ICsJCQlyZXR1cm4gZmFsc2U7Cj4gKwkJfQo+ICsJCXBpcGVfY29uZmln LT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwID0gZHNjX21heF9vdXRwdXRfYnBwID4+IDQ7Cj4g KwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQgPSBkc2NfZHBfc2xpY2VfY291 bnQ7Cj4gKwl9Cj4gKwkvKgo+ICsJICogVkRTQyBlbmdpbmUgb3BlcmF0ZXMgYXQgMSBQaXhlbCBw ZXIgY2xvY2ssIHNvIGlmIHBlYWsgcGl4ZWwgcmF0ZQo+ICsJICogaXMgZ3JlYXRlciB0aGFuIHRo ZSBtYXhpbXVtIENkY2xvY2sgYW5kIGlmIHNsaWNlIGNvdW50IGlzIGV2ZW4KPiArCSAqIHRoZW4g d2UgbmVlZCB0byB1c2UgMiBWRFNDIGluc3RhbmNlcy4KPiArCSAqLwo+ICsJcGlwZV9jb25maWct PmRzY19wYXJhbXMuZHNjX3NwbGl0ID0gZmFsc2U7Cj4gKwlpZiAoYWRqdXN0ZWRfbW9kZS0+Y3J0 Y19jbG9jayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSkgewo+ICsJCWlmIChwaXBlX2NvbmZp Zy0+ZHNjX3BhcmFtcy5zbGljZV9jb3VudCA+IDEpIHsKPiArCQkJcGlwZV9jb25maWctPmRzY19w YXJhbXMuZHNjX3NwbGl0ID0gdHJ1ZTsKPiArCQl9IGVsc2Ugewo+ICsJCQlEUk1fREVCVUdfS01T KCJDYW5ub3Qgc3BsaXQgc3RyZWFtIHRvIHVzZSAyIFZEU0MgaW5zdGFuY2VzXG4iKTsKPiArCQkJ cmV0dXJuIGZhbHNlOwo+ICsJCX0KPiArCX0KPiArCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNv bXByZXNzaW9uX2VuYWJsZSA9IHRydWU7Cj4gKwlEUk1fREVCVUdfS01TKCJEUCBEU0MgY29tcHV0 ZWQgd2l0aCBJbnB1dCBCcHAgPSAlZCAiCj4gKwkJICAgICAgIkNvbXByZXNzZWQgQnBwID0gJWQg U2xpY2UgQ291bnQgPSAlZFxuIiwKPiArCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHAsCj4g KwkJICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAsCj4gKwkJICAg ICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQpOwo+ICsKPiArCXJldHVybiB0 cnVlOwo+ICt9Cj4gKwo+ICBzdGF0aWMgYm9vbAo+ICBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29u ZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICAgIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlOwo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgm ZW5jb2Rlci0+YmFzZSk7Cj4gIAlzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzIGxpbWl0czsKPiAg CWludCBjb21tb25fbGVuOwo+ICsJYm9vbCByZXQgPSBmYWxzZTsKPiAgCj4gIAljb21tb25fbGVu ID0gaW50ZWxfZHBfY29tbW9uX2xlbl9yYXRlX2xpbWl0KGludGVsX2RwLAo+ICAJCQkJCQkgICAg aW50ZWxfZHAtPm1heF9saW5rX3JhdGUpOwo+IEBAIC0yMDU2LDcgKzIxMzYsOSBAQCBpbnRlbF9k cF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJ bGltaXRzLm1pbl9sYW5lX2NvdW50ID0gMTsKPiAgCWxpbWl0cy5tYXhfbGFuZV9jb3VudCA9IGlu dGVsX2RwX21heF9sYW5lX2NvdW50KGludGVsX2RwKTsKPiAgCj4gLQlsaW1pdHMubWluX2JwcCA9 IDYgKiAzOwo+ICsJbGltaXRzLm1pbl9icHAgPSAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCAm Jgo+ICsJCQkgIGRybV9kcF9zaW5rX3N1cHBvcnRzX2RzYyhpbnRlbF9kcC0+ZHNjX2RwY2QpKSA/ Cj4gKwkJRFBfRFNDX01JTl9TVVBQT1JURURfQlBDICogMyA6IDYgKiAzOwo+ICAJbGltaXRzLm1h eF9icHAgPSBpbnRlbF9kcF9jb21wdXRlX2JwcChpbnRlbF9kcCwgcGlwZV9jb25maWcpOwoKSG1t LiBUaGlzIG5vdyBhc3N1bWVzIHRoYXQgd2Ugd2lsbCBpbiBmYWN0IHVzZSBEU0MuIEkgZ3Vlc3Mg d2UgY2FuIG9ubHkKbWFrZSB0aGF0IGFzc3VtcHRpb24gd2hlbiB3ZSd2ZSBkZXRlcm1pbmVkIHRo YXQgRFNDIGlzIHN1cHBvcnRlZCBhbmQgdGhlCm1heF9icHAgYWxzbyBhbGxvd3MgRFNDLgoKU28g c29tZXRoaW5nIGxpa2U6CgptYXhfYnBwID0gaW50ZWxfZHBfY29tcHV0ZV9icHAoKTsKaWYgKHN1 cHBvcnRzX2RzYygpICYmIG1heF9icHAgPj0gRFBfRFNDX01JTl9TVVBQT1JURURfQlBDKjMpCglt aW5fYnBwID0gRFBfRFNDX01JTl9TVVBQT1JURURfQlBDICogMzsKZWxzZQoJbWluX2JwcCA9IDYg KiAzCgo+ICAKPiAgCWlmIChpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApICYmIGludGVsX2RwLT5l ZHBfZHBjZFswXSA8IERQX0VEUF8xNCkgewo+IEBAIC0yMDgxLDcgKzIxNjMsNyBAQCBpbnRlbF9k cF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJ CSAgICAgIGludGVsX2RwLT5jb21tb25fcmF0ZXNbbGltaXRzLm1heF9jbG9ja10sCj4gIAkJICAg ICAgbGltaXRzLm1heF9icHAsIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2spOwo+ICAKPiAtCWlm IChpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKSB7Cj4gKwlpZiAoaW50ZWxfZHBfaXNfZWRwKGlu dGVsX2RwKSkKPiAgCQkvKgo+ICAJCSAqIE9wdGltaXplIGZvciBmYXN0IGFuZCBuYXJyb3cuIGVE UCAxLjMgc2VjdGlvbiAzLjMgYW5kIGVEUCAxLjQKPiAgCQkgKiBzZWN0aW9uIEEuMTogIkl0IGlz IHJlY29tbWVuZGVkIHRoYXQgdGhlIG1pbmltdW0gbnVtYmVyIG9mCj4gQEAgLTIwOTEsMjYgKzIx NzMsNDggQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiAgCQkgKiBOb3RlIHRoYXQgd2UgdXNlIHRoZSBtYXggY2xvY2sgYW5kIGxh bmUgY291bnQgZm9yIGVEUCAxLjMgYW5kCj4gIAkJICogZWFybGllciwgYW5kIGZhc3QgdnMuIHdp ZGUgaXMgaXJyZWxldmFudC4KPiAgCQkgKi8KPiAtCQlpZiAoIWludGVsX2RwX2NvbXB1dGVfbGlu a19jb25maWdfZmFzdChpbnRlbF9kcCwgcGlwZV9jb25maWcsCj4gLQkJCQkJCSAgICAgICAmbGlt aXRzKSkKPiAtCQkJcmV0dXJuIGZhbHNlOwo+IC0JfSBlbHNlIHsKPiArCQlyZXQgPSBpbnRlbF9k cF9jb21wdXRlX2xpbmtfY29uZmlnX2Zhc3QoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAo+ICsJCQkJ CQkJJmxpbWl0cyk7Cj4gKwllbHNlCj4gIAkJLyogT3B0aW1pemUgZm9yIHNsb3cgYW5kIHdpZGUu ICovCj4gLQkJaWYgKCFpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoaW50ZWxfZHAs IHBpcGVfY29uZmlnLAo+IC0JCQkJCQkgICAgICAgJmxpbWl0cykpCj4gKwkJcmV0ID0gaW50ZWxf ZHBfY29tcHV0ZV9saW5rX2NvbmZpZ193aWRlKGludGVsX2RwLCBwaXBlX2NvbmZpZywKPiArCQkJ CQkJCSZsaW1pdHMpOwo+ICsKPiArCS8qIGVuYWJsZSBjb21wcmVzc2lvbiBpZiB0aGUgbW9kZSBk b2Vzbid0IGZpdCBhdmFpbGFibGUgQlcgKi8KPiArCWlmICghcmV0KSB7Cj4gKwkJRFJNX0RFQlVH X0tNUygiRFAgcmVxdWlyZWQgTGluayByYXRlICVpIGRvZXMgbm90IGZpdCBhdmFpbGFibGUgJWlc biIsCj4gKwkJCSAgICAgIGludGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRqdXN0ZWRfbW9kZS0+Y3J0 Y19jbG9jaywKPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApLAo+ICsJCQkgICAg ICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ICsJCQkJ CQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7Cj4gKwo+ICsJCWlmICghaW50ZWxfZHBf ZHNjX2NvbXB1dGVfY29uZmlnKGludGVsX2RwLCBwaXBlX2NvbmZpZywKPiArCQkJCQkJICZsaW1p dHMpKQo+ICAJCQlyZXR1cm4gZmFsc2U7Cj4gIAl9Cj4gIAo+IC0JRFJNX0RFQlVHX0tNUygiRFAg bGFuZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRcbiIsCj4gLQkJICAgICAgcGlwZV9jb25maWct PmxhbmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+IC0JCSAgICAgIHBpcGVfY29u ZmlnLT5waXBlX2JwcCk7Cj4gKwlpZiAocGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3Np b25fZW5hYmxlKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAlZCBjbG9jayAl ZCBJbnB1dCBicHAgJWQgQ29tcHJlc3NlZCBicHAgJWRcbiIsCj4gKwkJCSAgICAgIHBpcGVfY29u ZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiArCQkJICAgICAgcGlw ZV9jb25maWctPnBpcGVfYnBwLAo+ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5j b21wcmVzc2VkX2JwcCk7Cj4gIAo+IC0JRFJNX0RFQlVHX0tNUygiRFAgbGluayByYXRlIHJlcXVp cmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKPiAtCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVk KGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCj4gLQkJCQkJICAgICBwaXBlX2NvbmZpZy0+cGlw ZV9icHApLAo+IC0JCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBv cnRfY2xvY2ssCj4gLQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOwo+ICsJCURS TV9ERUJVR19LTVMoIkRQIGxpbmsgcmF0ZSByZXF1aXJlZCAlaSBhdmFpbGFibGUgJWlcbiIsCj4g KwkJCSAgICAgIGludGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9j aywKPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCks Cj4gKwkJCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBvcnRfY2xv Y2ssCj4gKwkJCQkJCSAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKPiArCX0gZWxzZSB7 Cj4gKwkJRFJNX0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRcbiIs Cj4gKwkJCSAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9j bG9jaywKPiArCQkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKTsKPiAgCj4gKwkJRFJNX0RF QlVHX0tNUygiRFAgbGluayByYXRlIHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKPiArCQkJ ICAgICAgaW50ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ ICsJCQkJCQkgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCksCj4gKwkJCSAgICAgIGludGVsX2Rw X21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gKwkJCQkJCSAgICAgcGlw ZV9jb25maWctPmxhbmVfY291bnQpKTsKPiArCX0KPiAgCXJldHVybiB0cnVlOwo+ICB9Cj4gIAo+ IEBAIC0yMTk0LDcgKzIyOTgsOSBAQCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJaW50ZWxfY29ubl9zdGF0ZS0+YnJvYWRjYXN0X3Jn YiA9PSBJTlRFTF9CUk9BRENBU1RfUkdCX0xJTUlURUQ7Cj4gIAl9Cj4gIAo+IC0JaW50ZWxfbGlu a19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsIHBpcGVfY29uZmlnLT5sYW5lX2Nv dW50LAo+ICsJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsCj4g KwkJCSAgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCwKPiArCQkJ ICAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAo+ICAJCQkgICAgICAgYWRqdXN0ZWRfbW9k ZS0+Y3J0Y19jbG9jaywKPiAgCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ICAJ CQkgICAgICAgJnBpcGVfY29uZmlnLT5kcF9tX24sCj4gQEAgLTIyMDMsNyArMjMwOSw3IEBAIGlu dGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJ aWYgKGludGVsX2Nvbm5lY3Rvci0+cGFuZWwuZG93bmNsb2NrX21vZGUgIT0gTlVMTCAmJgo+ICAJ CWRldl9wcml2LT5kcnJzLnR5cGUgPT0gU0VBTUxFU1NfRFJSU19TVVBQT1JUKSB7Cj4gIAkJCXBp cGVfY29uZmlnLT5oYXNfZHJycyA9IHRydWU7Cj4gLQkJCWludGVsX2xpbmtfY29tcHV0ZV9tX24o cGlwZV9jb25maWctPnBpcGVfYnBwLAo+ICsJCQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVf Y29uZmlnLT5waXBlX2JwcCwgMCwKPiAgCQkJCQkgICAgICAgcGlwZV9jb25maWctPmxhbmVfY291 bnQsCj4gIAkJCQkJICAgICAgIGludGVsX2Nvbm5lY3Rvci0+cGFuZWwuZG93bmNsb2NrX21vZGUt PmNsb2NrLAo+ICAJCQkJCSAgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+IGluZGV4IDhiNzFkNjRlYmQ5ZC4uZTAyY2FlZGQ0NDNj IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiBAQCAtOTAsNyArOTAsNyBA QCBzdGF0aWMgYm9vbCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gIAkJfQo+ICAJfQo+ICAKPiAtCWludGVsX2xpbmtfY29tcHV0ZV9t X24oYnBwLCBsYW5lX2NvdW50LAo+ICsJaW50ZWxfbGlua19jb21wdXRlX21fbihicHAsIDAsIGxh bmVfY291bnQsCj4gIAkJCSAgICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ICAJCQkg ICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gIAkJCSAgICAgICAmcGlwZV9jb25maWct PmRwX21fbiwKPiAtLSAKPiAyLjE4LjAKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==