From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6D00710E47E for ; Tue, 31 Oct 2023 12:03:04 +0000 (UTC) From: "Hogander, Jouni" To: "Joshi, Kunal1" , "igt-dev@lists.freedesktop.org" Date: Tue, 31 Oct 2023 12:02:49 +0000 Message-ID: References: <20231031080949.1145422-1-kunal1.joshi@intel.com> <20231031080949.1145422-3-kunal1.joshi@intel.com> <092f55b945b50ae4634f2b8792f0190eef2859f9.camel@intel.com> In-Reply-To: <092f55b945b50ae4634f2b8792f0190eef2859f9.camel@intel.com> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Murthy, Arun R" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: T24gVHVlLCAyMDIzLTEwLTMxIGF0IDEyOjM5ICswMjAwLCBIb2dhbmRlciwgSm91bmkgd3JvdGU6 Cj4gT24gVHVlLCAyMDIzLTEwLTMxIGF0IDEzOjM5ICswNTMwLCBLdW5hbCBKb3NoaSB3cm90ZToK PiA+IE5ldyBkZWJ1Z2ZzIGRpcmVjdG9yeSBmb3IgYWxsIERQIGNvbm5lY3RvcnMgd2lsbCBiZSBh ZGRlZAo+ID4gd2l0aCBiZWxvdyBwYXRjaCBzZXJpZXMKPiA+IGh0dHBzOi8vcGF0Y2h3b3JrLmZy ZWVkZXNrdG9wLm9yZy9zZXJpZXMvOTQ0NzAvCj4gPiAKPiA+IEZvciBEUCBDb25uZWN0b3JzCj4g PiDCoMKgwqDCoMKgwqDCoMKgL3N5cy9rZXJuZWwvZGVidWcvZHJpLzAvRFAteC9pOTE1X3Bzcl9z dGF0dXMKPiA+IAo+ID4gRm9yIGVEUCBDb25uZWN0b3JzCj4gPiDCoMKgwqDCoMKgwqDCoMKgL3N5 cy9rZXJuZWwvZGVidWcvZHJpLzAvaTkxNV9lZHBfcHNyX3N0YXR1cwo+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgb3IKPiA+IMKgwqDCoMKgwqDCoMKg wqAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvMC9lRFAteC9pOTE1X3Bzcl9zdGF0dXMKPiA+IAo+ID4g djI6IHJldXNlIHBzcl9zaW5rX3N1cHBvcnQgKEpvdW5pKQo+ID4gCj4gPiBDYzogSm91bmkgSMO2 Z2FuZGVyIDxqb3VuaS5ob2dhbmRlckBpbnRlbC5jb20+Cj4gPiBDYzogQW5pbWVzaCBNYW5uYSA8 YW5pbWVzaC5tYW5uYUBpbnRlbC5jb20+Cj4gPiBDYzogQXJ1biBSIE11cnRoeSA8YXJ1bi5yLm11 cnRoeUBpbnRlbC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBLdW5hbCBKb3NoaSA8a3VuYWwxLmpv c2hpQGludGVsLmNvbT4KPiA+IC0tLQo+ID4gwqBsaWIvaWd0X3Bzci5jwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCA1NCArKysrKysrKysrKysrKysr KystLS0tCj4gPiAtLQo+ID4gLS0KPiA+IMKgbGliL2lndF9wc3IuaMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAzICstCj4gPiDCoHRlc3RzL2lu dGVsL2ttc19kaXJ0eWZiLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMiArLQo+ID4g wqB0ZXN0cy9pbnRlbC9rbXNfZmJjb25fZmJ0LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA0 ICstCj4gPiDCoHRlc3RzL2ludGVsL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jIHzCoCAyICst Cj4gPiDCoHRlc3RzL2ludGVsL2ttc19wbV9kYy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHzCoCA5ICsrKy0tCj4gPiDCoHRlc3RzL2ludGVsL2ttc19wc3IuY8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDIgKy0KPiA+IMKgdGVzdHMvaW50ZWwva21zX3BzcjJf c2YuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAzICstCj4gPiDCoHRlc3RzL2ludGVs L2ttc19wc3IyX3N1LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMyArLQo+ID4gwqB0 ZXN0cy9pbnRlbC9rbXNfcHNyX3N0cmVzc190ZXN0LmPCoMKgwqDCoMKgIHzCoCAyICstCj4gPiDC oHRlc3RzL2ttc19mZWF0dXJlX2Rpc2NvdmVyeS5jwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA0ICst Cj4gPiDCoDExIGZpbGVzIGNoYW5nZWQsIDU3IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygt KQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9wc3IuYyBiL2xpYi9pZ3RfcHNyLmMKPiA+ IGluZGV4IDEzZjdjNTY3ZC4uYWEzY2E5ZGRiIDEwMDY0NAo+ID4gLS0tIGEvbGliL2lndF9wc3Iu Ywo+ID4gKysrIGIvbGliL2lndF9wc3IuYwo+ID4gQEAgLTE5MiwzMSArMTkyLDUxIEBAIGJvb2wg cHNyX2Rpc2FibGUoaW50IGRldmljZSwgaW50IGRlYnVnZnNfZmQpCj4gPiDCoMKgwqDCoMKgwqDC oMKgcmV0dXJuIHBzcl9zZXQoZGV2aWNlLCBkZWJ1Z2ZzX2ZkLCAtMSk7Cj4gPiDCoH0KPiA+IMKg Cj4gPiAtYm9vbCBwc3Jfc2lua19zdXBwb3J0KGludCBkZXZpY2UsIGludCBkZWJ1Z2ZzX2ZkLCBl bnVtIHBzcl9tb2RlCj4gPiBtb2RlKQo+ID4gK2Jvb2wgcHNyX3Npbmtfc3VwcG9ydChpbnQgZGV2 aWNlLCBpbnQgZGVidWdmc19mZCwgZW51bSBwc3JfbW9kZQo+ID4gbW9kZSwgaWd0X291dHB1dF90 ICpvdXRwdXQpCj4gPiDCoHsKPiA+ICvCoMKgwqDCoMKgwqDCoGNoYXIgKmxpbmU7Cj4gPiArwqDC oMKgwqDCoMKgwqBjaGFyIGRlYnVnZnNfZmlsZVsxMjhdID0gezB9Owo+ID4gwqDCoMKgwqDCoMKg wqDCoGNoYXIgYnVmW1BTUl9TVEFUVVNfTUFYX0xFTl07Cj4gPiDCoMKgwqDCoMKgwqDCoMKgaW50 IHJldDsKPiA+IMKgCj4gPiAtwqDCoMKgwqDCoMKgwqByZXQgPSBpZ3RfZGVidWdmc19zaW1wbGVf cmVhZChkZWJ1Z2ZzX2ZkLAo+ID4gImk5MTVfZWRwX3Bzcl9zdGF0dXMiLCBidWYsCj4gPiArwqDC oMKgwqDCoMKgwqBpZiAob3V0cHV0KQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHNwcmludGYoZGVidWdmc19maWxlLCAiJXMvaTkxNV9wc3Jfc3RhdHVzIiwgb3V0cHV0LQo+ID4g PiBuYW1lKTsKPiA+ICvCoMKgwqDCoMKgwqDCoGVsc2UKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBzcHJpbnRmKGRlYnVnZnNfZmlsZSwgIiVzIiwgImk5MTVfZWRwX3Bzcl9zdGF0 dXMiKTsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoHJldCA9IGlndF9kZWJ1Z2ZzX3NpbXBsZV9y ZWFkKGRlYnVnZnNfZmQsIGRlYnVnZnNfZmlsZSwKPiA+IGJ1ZiwKPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHNpemVvZihidWYpKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqBpZiAocmV0IDwgMSkKPiA+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGZhbHNlOwo+ID4gwqAKPiA+IC3C oMKgwqDCoMKgwqDCoGlmIChtb2RlID09IFBTUl9NT0RFXzEpCj4gPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgcmV0dXJuIHN0cnN0cihidWYsICJTaW5rX1N1cHBvcnQ6IHllc1xuIikg fHwKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3Ryc3Ry KGJ1ZiwgIlNpbmsgc3VwcG9ydDogeWVzIik7Cj4gPiAtwqDCoMKgwqDCoMKgwqBlbHNlCj4gPiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyoKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKiBpOTE1IHJlcXVpcmVzIFBTUiB2ZXJzaW9uIDB4MDMgdGhhdCBpcyBQU1Iy ICsgU1UKPiA+IHdpdGgKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBZLWNv b3JkaW5hdGUgdG8gc3VwcG9ydCBQU1IyCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICoKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBvcgo+ID4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICogUFNSIHZlcnNpb24gMHg0IHRoYXQgaXMgUFNSMiArIFNVIHcvIFktCj4gPiBjb29y ZGluYXRlCj4gPiBhbmQgU1UKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBS ZWdpb24gRWFybHkgVHJhbnNwb3J0IHRvIHN1cHBvcnQgUFNSMiAoZURQIDEuNSkKPiA+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKi8KPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqByZXR1cm4gc3Ryc3RyKGJ1ZiwgIlNpbmsgc3VwcG9ydDogeWVzIFsweDAzXSIpIHx8 Cj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnN0cihi dWYsICJTaW5rIHN1cHBvcnQ6IHllcyBbMHgwNF0iKTsKPiA+ICvCoMKgwqDCoMKgwqDCoGxpbmUg PSBzdHJzdHIoYnVmLCAiU2luayBzdXBwb3J0OiAiKTsKPiA+ICvCoMKgwqDCoMKgwqDCoGlmICgh bGluZSkKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7Cj4g PiArCj4gPiArwqDCoMKgwqDCoMKgwqBzd2l0Y2ggKG1vZGUpIHsKPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBjYXNlIFBTUl9NT0RFXzE6Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBzdHJzdHIobGluZSwgIlBTUiA9IHll cyIpOwoKSSB0aGluayB0aGlzIGlzIGJyZWFraW5nIGN1cnJlbnQgdGVzdHMgYXMgdGhlIHNpbmsg c3VwcG9ydCBsaW5lIGlzIGxpa2UKdGhpczoKClNpbmsgc3VwcG9ydDogeWVzIFsweDAxXQoKSSB0 aGluayB3ZSBjb3VsZCBrZWVwIHRoZW0gYXMgdGhleSBhcmUgY3VycmVudGx5LCBqdXN0IGFkZCBQ YW5lbCByZXBsYXkKdmFyaWFudHM6CgpQUjoKU2luayBzdXBwb3J0OiBQYW5lbCBSZXBsYXkKClBS IFNlbGVjdGl2ZSB1cGRhdGU6ClNpbmsgc3VwcG9ydDogUGFuZWwgUmVwbGF5IFNlbGVjdGl2ZSB1 cGRhdGUKClBTUjEgKyBQUiAobm90IHN1cmUgaWYgc3VjaCBlZHAgcGFuZWwgd2lsbCBldmVyIGV4 aXN0KToKU2luayBzdXBwb3J0OiB5ZXMgWzB4MDFdLCBQYW5lbCBSZXBsYXkKCmFuZCBzbyBvbi4K CkJSLAoKSm91bmkgSMO2Z2FuZGVyCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg Y2FzZSBQU1JfTU9ERV8yOgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNhc2Ug UFNSX01PREVfMl9TRUxfRkVUQ0g6Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoC8qCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAqIGk5MTUgcmVxdWlyZXMgUFNSIHZlcnNpb24gMHgwMyB0aGF0IGlzCj4g PiBQU1IyICsgU1Ugd2l0aAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKiBZLWNvb3JkaW5hdGUgdG8gc3VwcG9ydCBQU1IyCj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIG9yCj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqCj4gPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIFBTUiB2ZXJzaW9uIDB4NCB0aGF0 IGlzIFBTUjIgKyBTVSB3LyBZLQo+ID4gY29vcmRpbmF0ZSBhbmQgU1UKPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogUmVnaW9uIEVhcmx5IFRyYW5z cG9ydCB0byBzdXBwb3J0IFBTUjIKPiA+IChlRFAgMS41KQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKi8KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHN0cnN0cihsaW5lLCAiUFNSID0geWVz IikgJiYKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIChzdHJzdHIobGluZSwgIlsweDAzXSIpIHx8Cj4gPiBzdHJzdHIobGluZSwg IlsweDA0XSIpKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjYXNlIFBSX01P REU6Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJl dHVybiBzdHJzdHIobGluZSwgIlBhbmVsIFJlcGxheSA9IHllcyIpOwo+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGNhc2UgUFJfTU9ERV9TRUxfRkVUQ0g6Cj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBzdHJzdHIobGluZSwg IlBhbmVsIFJlcGxheSA9IHllcyIpCj4gPiAmJgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3Ryc3RyKGJ1ZiwgIlBTUjIgc2Vs ZWN0aXZlIGZldGNoOgo+ID4gZW5hYmxlZCIpOwo+IAo+IEkgdGhpbmsgdGhpcyBpc24ndCB5ZXQg aW1wbGVtZW50ZWQgb24ga2VybmVsIHNpZGUsIGJ1dCBJIHdvdWxkIGFzc3VtZQo+IHdlIHVzZSAi c2VsZWN0aXZlIHVwZGF0ZSIgYW5kIG5vdCBQU1IyLiBTZWxlY3RpdmUgZmV0Y2ggaXMgZmVhdHVy ZSBpbgo+IG91ciBIVyB3aGljaCBjYW4gYmUgdXNlZCB3aGVuIGRvaW5nIHNlbGVjdGl2ZSB1cGRh dGVzLiBQYW5lbCBpc24ndAo+IGF3YXJlIG9mIHNlbGVjdGl2ZSBmZXRjaCBkb25lIG9uIHNvdXJj ZSBzaWRlLgo+IAo+IEJSLAo+IEpvdW5pIEjDtmdhbmRlcgo+IAo+IMKgCj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgZGVmYXVsdDoKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2Fzc2VydF9mKGZhbHNlLCAiSW52YWxpZCBwc3Ig bW9kZVxuIik7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHJldHVybiBmYWxzZTsKPiA+ICvCoMKgwqDCoMKgwqDCoH0KPiA+IMKgfQo+ID4gwqAKPiA+ IMKgI2RlZmluZSBQU1IyX1NVX0JMT0NLX1NUUl9MT09LVVAgIlBTUjIgU1UgYmxvY2tzOlxuMFx0 Igo+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfcHNyLmggYi9saWIvaWd0X3Bzci5oCj4gPiBpbmRl eCAyNDMxNTQ4OTcuLmUyMTNiMDVlOSAxMDA2NDQKPiA+IC0tLSBhL2xpYi9pZ3RfcHNyLmgKPiA+ ICsrKyBiL2xpYi9pZ3RfcHNyLmgKPiA+IEBAIC0yNyw2ICsyNyw3IEBACj4gPiDCoCNpbmNsdWRl ICJpZ3RfZGVidWdmcy5oIgo+ID4gwqAjaW5jbHVkZSAiaWd0X2NvcmUuaCIKPiA+IMKgI2luY2x1 ZGUgImlndF9hdXguaCIKPiA+ICsjaW5jbHVkZSAiaWd0X2ttcy5oIgo+ID4gwqAKPiA+IMKgI2Rl ZmluZSBQU1JfU1RBVFVTX01BWF9MRU4gNTEyCj4gPiDCoAo+ID4gQEAgLTQ2LDcgKzQ3LDcgQEAg Ym9vbCBwc3Jfd2FpdF91cGRhdGUoaW50IGRlYnVnZnNfZmQsIGVudW0KPiA+IHBzcl9tb2RlCj4g PiBtb2RlKTsKPiA+IMKgYm9vbCBwc3JfbG9uZ193YWl0X3VwZGF0ZShpbnQgZGVidWdmc19mZCwg ZW51bSBwc3JfbW9kZSBtb2RlKTsKPiA+IMKgYm9vbCBwc3JfZW5hYmxlKGludCBkZXZpY2UsIGlu dCBkZWJ1Z2ZzX2ZkLCBlbnVtIHBzcl9tb2RlKTsKPiA+IMKgYm9vbCBwc3JfZGlzYWJsZShpbnQg ZGV2aWNlLCBpbnQgZGVidWdmc19mZCk7Cj4gPiAtYm9vbCBwc3Jfc2lua19zdXBwb3J0KGludCBk ZXZpY2UsIGludCBkZWJ1Z2ZzX2ZkLCBlbnVtIHBzcl9tb2RlCj4gPiBtb2RlKTsKPiA+ICtib29s IHBzcl9zaW5rX3N1cHBvcnQoaW50IGRldmljZSwgaW50IGRlYnVnZnNfZmQsIGVudW0gcHNyX21v ZGUKPiA+IG1vZGUsIGlndF9vdXRwdXRfdCAqb3V0cHV0KTsKPiA+IMKgYm9vbCBwc3IyX3dhaXRf c3UoaW50IGRlYnVnZnNfZmQsIHVpbnQxNl90ICpudW1fc3VfYmxvY2tzKTsKPiA+IMKgdm9pZCBw c3JfcHJpbnRfZGVidWdmcyhpbnQgZGVidWdmc19mZCk7Cj4gPiDCoGVudW0gcHNyX21vZGUgcHNy X2dldF9tb2RlKGludCBkZWJ1Z2ZzX2ZkKTsKPiA+IGRpZmYgLS1naXQgYS90ZXN0cy9pbnRlbC9r bXNfZGlydHlmYi5jIGIvdGVzdHMvaW50ZWwva21zX2RpcnR5ZmIuYwo+ID4gaW5kZXggY2M5NTI5 MTc4Li5mN2ZmMWFjMGIgMTAwNjQ0Cj4gPiAtLS0gYS90ZXN0cy9pbnRlbC9rbXNfZGlydHlmYi5j Cj4gPiArKysgYi90ZXN0cy9pbnRlbC9rbXNfZGlydHlmYi5jCj4gPiBAQCAtOTIsNyArOTIsNyBA QCBzdGF0aWMgYm9vbCBjaGVja19zdXBwb3J0KGRhdGFfdCAqZGF0YSkKPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIERSTV9NT0RFX0NPTk5FQ1RPUl9lRFApCj4gPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFs c2U7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBwc3Jfc2lua19z dXBwb3J0KGRhdGEtPmRybV9mZCwgZGF0YS0KPiA+ID4gZGVidWdmc19mZCwKPiA+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBQU1JfTU9ERV8xKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBQU1Jf TU9ERV8xLCBOVUxMKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqBjYXNlIEZFQVRVUkVfRFJSUzoKPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGludGVsX2lzX2RycnNfc3Vw cG9ydGVkKGRhdGEtPmRybV9mZCwgZGF0YS0KPiA+ID4gcGlwZSkgJiYKPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGludGVsX291dHB1dF9oYXNfZHJy cyhkYXRhLT5kcm1fZmQsIGRhdGEtCj4gPiA+IG91dHB1dCk7Cj4gPiBkaWZmIC0tZ2l0IGEvdGVz dHMvaW50ZWwva21zX2ZiY29uX2ZidC5jCj4gPiBiL3Rlc3RzL2ludGVsL2ttc19mYmNvbl9mYnQu Ywo+ID4gaW5kZXggOGQ2YmIzY2I2Li5hN2YyNGU2NjkgMTAwNjQ0Cj4gPiAtLS0gYS90ZXN0cy9p bnRlbC9rbXNfZmJjb25fZmJ0LmMKPiA+ICsrKyBiL3Rlc3RzL2ludGVsL2ttc19mYmNvbl9mYnQu Ywo+ID4gQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0aWMgYm9vbCBwc3JfaXNfZGlzYWJsZWQoaW50 IGRlYnVnZnNfZmQpCj4gPiDCoAo+ID4gwqBzdGF0aWMgYm9vbCBwc3Jfc3VwcG9ydGVkX29uX2No aXBzZXQoaW50IGRldmljZSwgaW50IGRlYnVnZnNfZmQpCj4gPiDCoHsKPiA+IC3CoMKgwqDCoMKg wqDCoHJldHVybiBwc3Jfc2lua19zdXBwb3J0KGRldmljZSwgZGVidWdmc19mZCwgUFNSX01PREVf MSk7Cj4gPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gcHNyX3Npbmtfc3VwcG9ydChkZXZpY2UsIGRl YnVnZnNfZmQsIFBTUl9NT0RFXzEsCj4gPiBOVUxMKTsKPiA+IMKgfQo+ID4gwqAKPiA+IMKgc3Rh dGljIGJvb2wgcHNyX3dhaXRfdW50aWxfdXBkYXRlKHN0cnVjdCBkcm1faW5mbyAqZHJtKQo+ID4g QEAgLTI4MCw3ICsyODAsNyBAQCBzdGF0aWMgYm9vbCBwc3Jfd2FpdF91bnRpbF91cGRhdGUoc3Ry dWN0Cj4gPiBkcm1faW5mbwo+ID4gKmRybSkKPiA+IMKgc3RhdGljIHZvaWQgZGlzYWJsZV9mZWF0 dXJlcyhpbnQgZGV2aWNlLCBpbnQgZGVidWdmc19mZCkKPiA+IMKgewo+ID4gwqDCoMKgwqDCoMKg wqDCoGlndF9zZXRfbW9kdWxlX3BhcmFtX2ludChkZXZpY2UsICJlbmFibGVfZmJjIiwgMCk7Cj4g PiAtwqDCoMKgwqDCoMKgwqBpZiAocHNyX3Npbmtfc3VwcG9ydChkZXZpY2UsIGRlYnVnZnNfZmQs IFBTUl9NT0RFXzEpKQo+ID4gK8KgwqDCoMKgwqDCoMKgaWYgKHBzcl9zaW5rX3N1cHBvcnQoZGV2 aWNlLCBkZWJ1Z2ZzX2ZkLCBQU1JfTU9ERV8xLCBOVUxMKSkKPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgcHNyX2Rpc2FibGUoZGV2aWNlLCBkZWJ1Z2ZzX2ZkKTsKPiA+IMKgfQo+ ID4gwqAKPiA+IGRpZmYgLS1naXQgYS90ZXN0cy9pbnRlbC9rbXNfZnJvbnRidWZmZXJfdHJhY2tp bmcuYwo+ID4gYi90ZXN0cy9pbnRlbC9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+ID4gaW5k ZXggZjkwZDA5ZjlmLi4yZDU4OGU4MzYgMTAwNjQ0Cj4gPiAtLS0gYS90ZXN0cy9pbnRlbC9rbXNf ZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+ID4gKysrIGIvdGVzdHMvaW50ZWwva21zX2Zyb250YnVm ZmVyX3RyYWNraW5nLmMKPiA+IEBAIC0xMzYyLDcgKzEzNjIsNyBAQCBzdGF0aWMgdm9pZCBzZXR1 cF9wc3Iodm9pZCkKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuOwo+ ID4gwqDCoMKgwqDCoMKgwqDCoH0KPiA+IMKgCj4gPiAtwqDCoMKgwqDCoMKgwqBpZiAoIXBzcl9z aW5rX3N1cHBvcnQoZHJtLmZkLCBkcm0uZGVidWdmcywgUFNSX01PREVfMSkpIHsKPiA+ICvCoMKg wqDCoMKgwqDCoGlmICghcHNyX3Npbmtfc3VwcG9ydChkcm0uZmQsIGRybS5kZWJ1Z2ZzLCBQU1Jf TU9ERV8xLAo+ID4gTlVMTCkpCj4gPiB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGlndF9pbmZvKCJDYW4ndCB0ZXN0IFBTUjogbm90IHN1cHBvcnRlZCBieQo+ID4gc2luay5c biIpOwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47Cj4gPiDCoMKg wqDCoMKgwqDCoMKgfQo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ludGVsL2ttc19wbV9kYy5jIGIv dGVzdHMvaW50ZWwva21zX3BtX2RjLmMKPiA+IGluZGV4IDFlOWNhNWQ2Yy4uZTVkYWFjYjg0IDEw MDY0NAo+ID4gLS0tIGEvdGVzdHMvaW50ZWwva21zX3BtX2RjLmMKPiA+ICsrKyBiL3Rlc3RzL2lu dGVsL2ttc19wbV9kYy5jCj4gPiBAQCAtNjczLDE0ICs2NzMsMTYgQEAgaWd0X21haW4KPiA+IMKg wqDCoMKgwqDCoMKgwqBpZ3RfZGVzY3JpYmUoIkluIHRoaXMgdGVzdCB3ZSBtYWtlIHN1cmUgdGhh dCBzeXN0ZW0gZW50ZXJzCj4gPiBEQzNDTyAiCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICJ3aGVuIFBTUjIgaXMgYWN0aXZlIGFuZCBzeXN0ZW0gaXMgaW4gU0xF RVAKPiA+IHN0YXRlIik7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgaWd0X3N1YnRlc3QoImRjM2NvLXZw Yi1zaW11bGF0aW9uIikgewo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9y ZXF1aXJlKHBzcl9zaW5rX3N1cHBvcnQoZGF0YS5kcm1fZmQsCj4gPiBkYXRhLmRlYnVnZnNfZmQs IFBTUl9NT0RFXzIpKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfcmVx dWlyZShwc3Jfc2lua19zdXBwb3J0KGRhdGEuZHJtX2ZkLAo+ID4gZGF0YS5kZWJ1Z2ZzX2ZkLAo+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFBTUl9NT0RFXzIsIE5VTEwpKTsKPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVzdF9kYzNjb192cGJfc2ltdWxhdGlv bigmZGF0YSk7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgfQo+ID4gwqAKPiA+IMKgwqDCoMKgwqDCoMKg wqBpZ3RfZGVzY3JpYmUoIlRoaXMgdGVzdCB2YWxpZGF0ZXMgZGlzcGxheSBlbmdpbmUgZW50cnkg dG8KPiA+IERDNQo+ID4gc3RhdGUgIgo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAid2hpbGUgUFNSIGlzIGFjdGl2ZSIpOwo+ID4gwqDCoMKgwqDCoMKgwqDCoGln dF9zdWJ0ZXN0KCJkYzUtcHNyIikgewo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGlndF9yZXF1aXJlKHBzcl9zaW5rX3N1cHBvcnQoZGF0YS5kcm1fZmQsCj4gPiBkYXRhLmRlYnVn ZnNfZmQsIFBTUl9NT0RFXzEpKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBp Z3RfcmVxdWlyZShwc3Jfc2lua19zdXBwb3J0KGRhdGEuZHJtX2ZkLAo+ID4gZGF0YS5kZWJ1Z2Zz X2ZkLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFBTUl9NT0RFXzEsIE5VTEwp KTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGF0YS5vcF9wc3JfbW9kZSA9 IFBTUl9NT0RFXzE7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHBzcl9lbmFi bGUoZGF0YS5kcm1fZmQsIGRhdGEuZGVidWdmc19mZCwKPiA+IGRhdGEub3BfcHNyX21vZGUpOwo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0ZXN0X2RjX3N0YXRlX3BzcigmZGF0 YSwgQ0hFQ0tfREM1KTsKPiA+IEBAIC02ODksNyArNjkxLDggQEAgaWd0X21haW4KPiA+IMKgwqDC oMKgwqDCoMKgwqBpZ3RfZGVzY3JpYmUoIlRoaXMgdGVzdCB2YWxpZGF0ZXMgZGlzcGxheSBlbmdp bmUgZW50cnkgdG8KPiA+IERDNgo+ID4gc3RhdGUgIgo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAid2hpbGUgUFNSIGlzIGFjdGl2ZSIpOwo+ID4gwqDCoMKgwqDC oMKgwqDCoGlndF9zdWJ0ZXN0KCJkYzYtcHNyIikgewo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGlndF9yZXF1aXJlKHBzcl9zaW5rX3N1cHBvcnQoZGF0YS5kcm1fZmQsCj4gPiBk YXRhLmRlYnVnZnNfZmQsIFBTUl9NT0RFXzEpKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpZ3RfcmVxdWlyZShwc3Jfc2lua19zdXBwb3J0KGRhdGEuZHJtX2ZkLAo+ID4gZGF0 YS5kZWJ1Z2ZzX2ZkLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFBTUl9NT0RF XzEsIE5VTEwpKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGF0YS5vcF9w c3JfbW9kZSA9IFBTUl9NT0RFXzE7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHBzcl9lbmFibGUoZGF0YS5kcm1fZmQsIGRhdGEuZGVidWdmc19mZCwKPiA+IGRhdGEub3BfcHNy X21vZGUpOwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfcmVxdWlyZV9m KGlndF9wbV9wYzhfcGx1c19yZXNpZGVuY2llc19lbmFibGVkKGQKPiA+IGF0Cj4gPiBhLm1zcl9m ZCksCj4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMvaW50ZWwva21zX3Bzci5jIGIvdGVzdHMvaW50ZWwv a21zX3Bzci5jCj4gPiBpbmRleCBmZmVjYzUyMjIuLjI2MDA5NWFlYyAxMDA2NDQKPiA+IC0tLSBh L3Rlc3RzL2ludGVsL2ttc19wc3IuYwo+ID4gKysrIGIvdGVzdHMvaW50ZWwva21zX3Bzci5jCj4g PiBAQCAtNDMzLDcgKzQzMyw3IEBAIHN0YXRpYyB2b2lkIGZpbGxfcmVuZGVyKGRhdGFfdCAqZGF0 YSwgY29uc3QKPiA+IHN0cnVjdCBpZ3RfZmIgKmZiLAo+ID4gwqBzdGF0aWMgYm9vbCBzaW5rX3N1 cHBvcnQoZGF0YV90ICpkYXRhLCBlbnVtIHBzcl9tb2RlIG1vZGUpCj4gPiDCoHsKPiA+IMKgwqDC oMKgwqDCoMKgwqByZXR1cm4gZGF0YS0+d2l0aF9wc3JfZGlzYWJsZWQgfHwKPiA+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBwc3Jfc2lua19zdXBwb3J0KGRhdGEtPmRybV9mZCwgZGF0YS0+ ZGVidWdmc19mZCwKPiA+IG1vZGUpOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBz cl9zaW5rX3N1cHBvcnQoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5kZWJ1Z2ZzX2ZkLAo+ID4gbW9kZSwK PiA+IE5VTEwpOwo+ID4gwqB9Cj4gPiDCoAo+ID4gwqBzdGF0aWMgYm9vbCBwc3Jfd2FpdF9lbnRy eV9pZl9lbmFibGVkKGRhdGFfdCAqZGF0YSkKPiA+IGRpZmYgLS1naXQgYS90ZXN0cy9pbnRlbC9r bXNfcHNyMl9zZi5jIGIvdGVzdHMvaW50ZWwva21zX3BzcjJfc2YuYwo+ID4gaW5kZXggZDdhNzQ2 MjExLi4yZDA1ZjExMTAgMTAwNjQ0Cj4gPiAtLS0gYS90ZXN0cy9pbnRlbC9rbXNfcHNyMl9zZi5j Cj4gPiArKysgYi90ZXN0cy9pbnRlbC9rbXNfcHNyMl9zZi5jCj4gPiBAQCAtOTgwLDcgKzk4MCw4 IEBAIGlndF9tYWluCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGttc3Rlc3Rf c2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKPiA+IMKgCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGlndF9yZXF1aXJlX2YocHNyX3Npbmtfc3VwcG9ydChkYXRhLmRybV9mZCwKPiA+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGF0YS5kZWJ1Z2ZzX2ZkLAo+ID4g UFNSX01PREVfMiksCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRhdGEu ZGVidWdmc19mZCwKPiA+IFBTUl9NT0RFXzIsCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIE5VTEwpLAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiU2luayBkb2VzIG5vdCBzdXBwb3J0IFBTUjJcbiIpOwo+ ID4gwqAKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGlzcGxheV9pbml0KCZk YXRhKTsKPiA+IGRpZmYgLS1naXQgYS90ZXN0cy9pbnRlbC9rbXNfcHNyMl9zdS5jIGIvdGVzdHMv aW50ZWwva21zX3BzcjJfc3UuYwo+ID4gaW5kZXggODM0ZmVjMWVjLi4yZjg5ZGU0MzUgMTAwNjQ0 Cj4gPiAtLS0gYS90ZXN0cy9pbnRlbC9rbXNfcHNyMl9zdS5jCj4gPiArKysgYi90ZXN0cy9pbnRl bC9rbXNfcHNyMl9zdS5jCj4gPiBAQCAtMzI3LDcgKzMyNyw4IEBAIGlndF9tYWluCj4gPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUo KTsKPiA+IMKgCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9yZXF1aXJl X2YocHNyX3Npbmtfc3VwcG9ydChkYXRhLmRybV9mZCwKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgZGF0YS5kZWJ1Z2ZzX2ZkLAo+ID4gUFNSX01PREVfMiksCj4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRhdGEuZGVidWdmc19mZCwKPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUFNSX01PREVfMiwgTlVMTCksCj4gPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJT aW5rIGRvZXMgbm90IHN1cHBvcnQgUFNSMlxuIik7Cj4gPiDCoAo+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBpZ3RfcmVxdWlyZV9mKGludGVsX2Rpc3BsYXlfdmVyKGludGVsX2dl dF9kcm1fZGV2aWQKPiA+IChkCj4gPiBhdGEuZHJtX2ZkKSkgPCAxMywKPiA+IGRpZmYgLS1naXQg YS90ZXN0cy9pbnRlbC9rbXNfcHNyX3N0cmVzc190ZXN0LmMKPiA+IGIvdGVzdHMvaW50ZWwva21z X3Bzcl9zdHJlc3NfdGVzdC5jCj4gPiBpbmRleCBiNjc1OWVlY2UuLmJlZGVkM2I5NCAxMDA2NDQK PiA+IC0tLSBhL3Rlc3RzL2ludGVsL2ttc19wc3Jfc3RyZXNzX3Rlc3QuYwo+ID4gKysrIGIvdGVz dHMvaW50ZWwva21zX3Bzcl9zdHJlc3NfdGVzdC5jCj4gPiBAQCAtMzU3LDcgKzM1Nyw3IEBAIGln dF9tYWluCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGttc3Rlc3Rfc2V0X3Z0 X2dyYXBoaWNzX21vZGUoKTsKPiA+IMKgCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGlndF9yZXF1aXJlX2YocHNyX3Npbmtfc3VwcG9ydChkYXRhLmRybV9mZCwKPiA+IGRhdGEu ZGVidWdmc19mZCwKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUFNSX01P REVfMSksCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFBTUl9NT0RFXzEs IE5VTEwpLAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAiU2luayBkb2VzIG5vdCBzdXBwb3J0IFBTUlxuIik7Cj4gPiDCoAo+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzZXR1cF9vdXRwdXQoJmRhdGEpOwo+ID4g ZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19mZWF0dXJlX2Rpc2NvdmVyeS5jCj4gPiBiL3Rlc3RzL2tt c19mZWF0dXJlX2Rpc2NvdmVyeS5jCj4gPiBpbmRleCAzYTFmNmQyMWQuLjQyOGY5N2ZmZSAxMDA2 NDQKPiA+IC0tLSBhL3Rlc3RzL2ttc19mZWF0dXJlX2Rpc2NvdmVyeS5jCj4gPiArKysgYi90ZXN0 cy9rbXNfZmVhdHVyZV9kaXNjb3ZlcnkuYwo+ID4gQEAgLTE1OSwxMiArMTU5LDEyIEBAIGlndF9t YWluIHsKPiA+IMKgCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9kZXNj cmliZSgiTWFrZSBzdXJlIHRoYXQgd2UgaGF2ZSBlRFAgcGFuZWwgd2l0aAo+ID4gUFNSMSBzdXBw b3J0LiIpOwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3Rfc3VidGVzdCgi cHNyMSIpIHsKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgaWd0X3JlcXVpcmUocHNyX3Npbmtfc3VwcG9ydChmZCwKPiA+IGRlYnVnZnNfZmQsCj4gPiBQ U1JfTU9ERV8xKSk7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGlndF9yZXF1aXJlKHBzcl9zaW5rX3N1cHBvcnQoZmQsCj4gPiBkZWJ1Z2ZzX2ZkLAo+ ID4gUFNSX01PREVfMSwgTlVMTCkpOwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB9Cj4gPiDCoAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfZGVzY3Jp YmUoIk1ha2Ugc3VyZSB0aGF0IHdlIGhhdmUgZURQIHBhbmVsIHdpdGgKPiA+IFBTUjIgc3VwcG9y dC4iKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X3N1YnRlc3QoInBz cjIiKSB7Cj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGlndF9yZXF1aXJlKHBzcl9zaW5rX3N1cHBvcnQoZmQsCj4gPiBkZWJ1Z2ZzX2ZkLAo+ID4gUFNS X01PREVfMikpOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpZ3RfcmVxdWlyZShwc3Jfc2lua19zdXBwb3J0KGZkLAo+ID4gZGVidWdmc19mZCwKPiA+ IFBTUl9NT0RFXzIsIE5VTEwpKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg fQo+ID4gwqAKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2Rlc2NyaWJl KCJNYWtlIHN1cmUgdGhhdCB3ZSBoYXZlIERQLU1TVAo+ID4gY29uZmlndXJhdGlvbi4iKTsKPiAK Cg==