From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6F6B610E5A4 for ; Tue, 10 Jan 2023 10:54:47 +0000 (UTC) From: "Hogander, Jouni" To: "igt-dev@lists.freedesktop.org" , "Sharma, Swati2" Date: Tue, 10 Jan 2023 10:54:38 +0000 Message-ID: <7c5c14e5659d6ec7d183340ceee66e3e447ec97e.camel@intel.com> References: <20230109152832.3310-1-swati2.sharma@intel.com> <20230109152832.3310-3-swati2.sharma@intel.com> In-Reply-To: <20230109152832.3310-3-swati2.sharma@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/8] Move wrapper functions from kms_dsc to kms_dsc_helper List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Latvala, Petri" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: T24gTW9uLCAyMDIzLTAxLTA5IGF0IDIwOjU4ICswNTMwLCBTd2F0aSBTaGFybWEgd3JvdGU6Cj4g VG8gYWRkIGRzYyBjb25jdXJyZW50IHRlc3RzLCB0aGVzZSB3cmFwcGVyIGZ1bmN0aW9ucyBjYW4g YmUKPiByZXVzZWQuIExldHMgY3JlYXRlIHNlcGFyYXRlIGhlbHBlciBmaWxlIHRvIGF2b2lkIGNv ZGUgZHVwbGljYXRpb24uCj4gCj4gU2lnbmVkLW9mZi1ieTogU3dhdGkgU2hhcm1hIDxzd2F0aTIu c2hhcm1hQGludGVsLmNvbT4KPiAtLS0KPiDCoHRlc3RzL2k5MTUva21zX2RzYy5jwqDCoMKgwqDC oMKgwqAgfCAxMzAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0KPiDCoHRl c3RzL2k5MTUva21zX2RzY19oZWxwZXIuYyB8IDEzMQo+ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwo+IMKgdGVzdHMvaTkxNS9rbXNfZHNjX2hlbHBlci5oIHzCoCA2NSArKysr KysrKysrKysrKysrKysKPiDCoHRlc3RzL21lc29uLmJ1aWxkwqDCoMKgwqDCoMKgwqDCoMKgwqAg fMKgIDEwICsrLQo+IMKgNCBmaWxlcyBjaGFuZ2VkLCAyMDcgaW5zZXJ0aW9ucygrKSwgMTI5IGRl bGV0aW9ucygtKQo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2k5MTUva21zX2RzY19oZWxw ZXIuYwo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2k5MTUva21zX2RzY19oZWxwZXIuaAo+ IAo+IGRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2ttc19kc2MuYyBiL3Rlc3RzL2k5MTUva21zX2Rz Yy5jCj4gaW5kZXggMzMwZmMwNTBiLi4wZGI2Y2MyZWYgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvaTkx NS9rbXNfZHNjLmMKPiArKysgYi90ZXN0cy9pOTE1L2ttc19kc2MuYwo+IEBAIC0yOSwyMiArMjks OCBAQAo+IMKgICogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiDC oCAqCj4gwqAgKi8KPiAtI2luY2x1ZGUgImlndC5oIgo+IC0jaW5jbHVkZSAiaWd0X3N5c2ZzLmgi Cj4gLSNpbmNsdWRlIDxlcnJuby5oPgo+IC0jaW5jbHVkZSA8Z2V0b3B0Lmg+Cj4gLSNpbmNsdWRl IDxtYXRoLmg+Cj4gLSNpbmNsdWRlIDxzdGRpbnQuaD4KPiAtI2luY2x1ZGUgPHN0ZGJvb2wuaD4K PiAtI2luY2x1ZGUgPHN0cmluZ3MuaD4KPiAtI2luY2x1ZGUgPHVuaXN0ZC5oPgo+IC0jaW5jbHVk ZSA8c3RkbGliLmg+Cj4gLSNpbmNsdWRlIDxzaWduYWwuaD4KPiAtI2luY2x1ZGUgPHRpbWUuaD4K PiAtI2luY2x1ZGUgPGZjbnRsLmg+Cj4gLSNpbmNsdWRlIDx0ZXJtaW9zLmg+Cj4gLQo+IC0jZGVm aW5lIEhESVNQTEFZXzVLwqDCoMKgwqA1MTIwCj4gKwo+ICsjaW5jbHVkZSAia21zX2RzY19oZWxw ZXIuaCIKPiDCoAo+IMKgSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3QgdG8gdmFsaWRhdGUgZGlz cGxheSBzdHJlYW0gY29tcHJlc3Npb24iKTsKPiDCoAo+IEBAIC01MywyMCArMzksNiBAQCBlbnVt IGRzY190ZXN0X3R5cGUgewo+IMKgwqDCoMKgwqDCoMKgwqBURVNUX0RTQ19CUEMKPiDCoH07Cj4g wqAKPiAtdHlwZWRlZiBzdHJ1Y3Qgewo+IC3CoMKgwqDCoMKgwqDCoGludCBkcm1fZmQ7Cj4gLcKg wqDCoMKgwqDCoMKgdWludDMyX3QgZGV2aWQ7Cj4gLcKgwqDCoMKgwqDCoMKgaWd0X2Rpc3BsYXlf dCBkaXNwbGF5Owo+IC3CoMKgwqDCoMKgwqDCoHN0cnVjdCBpZ3RfZmIgZmJfdGVzdF9wYXR0ZXJu Owo+IC3CoMKgwqDCoMKgwqDCoGlndF9vdXRwdXRfdCAqb3V0cHV0Owo+IC3CoMKgwqDCoMKgwqDC oGludCBpbnB1dF9icGM7Cj4gLcKgwqDCoMKgwqDCoMKgaW50IG5fcGlwZXM7Cj4gLcKgwqDCoMKg wqDCoMKgZW51bSBwaXBlIHBpcGU7Cj4gLX0gZGF0YV90Owo+IC0KPiAtYm9vbCBmb3JjZV9kc2Nf ZW5fb3JpZzsKPiAtaW50IGZvcmNlX2RzY19yZXN0b3JlX2ZkID0gLTE7Cj4gLQo+IMKgY29uc3Qg c3RydWN0IHsKPiDCoMKgwqDCoMKgwqDCoMKgY29uc3QgaW50IGZvcm1hdDsKPiDCoMKgwqDCoMKg wqDCoMKgY29uc3QgY2hhciBmb3JtYXRfc3RyWzIwXTsKPiBAQCAtODQsNTYgKzU2LDYgQEAgc3Rh dGljIGlubGluZSB2b2lkIG1hbnVhbChjb25zdCBjaGFyICpleHBlY3RlZCkKPiDCoMKgwqDCoMKg wqDCoMKgaWd0X2RlYnVnX2ludGVyYWN0aXZlX21vZGVfY2hlY2soImFsbCIsIGV4cGVjdGVkKTsK PiDCoH0KPiDCoAo+IC1zdGF0aWMgdm9pZCBmb3JjZV9kc2NfZW5hYmxlKGRhdGFfdCAqZGF0YSkK PiAtewo+IC3CoMKgwqDCoMKgwqDCoGludCByZXQ7Cj4gLQo+IC3CoMKgwqDCoMKgwqDCoGlndF9k ZWJ1ZygiRm9yY2luZyBEU0MgZW5hYmxlIG9uICVzXG4iLCBkYXRhLT5vdXRwdXQtPm5hbWUpOwo+ IC3CoMKgwqDCoMKgwqDCoHJldCA9IGlndF9mb3JjZV9kc2NfZW5hYmxlKGRhdGEtPmRybV9mZCwK PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGRhdGEtPm91dHB1dC0+bmFtZSk7Cj4gLcKgwqDCoMKgwqDCoMKgaWd0X2Fz c2VydF9mKHJldCA+IDAsICJkZWJ1Z2ZzX3dyaXRlIGZhaWxlZCIpOwo+IC19Cj4gLQo+IC1zdGF0 aWMgdm9pZCBmb3JjZV9kc2NfZW5hYmxlX2JwYyhkYXRhX3QgKmRhdGEpCj4gLXsKPiAtwqDCoMKg wqDCoMKgwqBpbnQgcmV0Owo+IC0KPiAtwqDCoMKgwqDCoMKgwqBpZ3RfZGVidWcoIkZvcmNpbmcg aW5wdXQgRFNDIEJQQyB0byAlZCBvbiAlc1xuIiwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgZGF0YS0+aW5wdXRfYnBjLCBkYXRhLT5vdXRwdXQtPm5hbWUpOwo+IC3CoMKgwqDC oMKgwqDCoHJldCA9IGlndF9mb3JjZV9kc2NfZW5hYmxlX2JwYyhkYXRhLT5kcm1fZmQsCj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGRhdGEtPm91dHB1dC0+bmFtZSwKPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg ZGF0YS0+aW5wdXRfYnBjKTsKPiAtwqDCoMKgwqDCoMKgwqBpZ3RfYXNzZXJ0X2YocmV0ID4gMCwg ImRlYnVnZnNfd3JpdGUgZmFpbGVkIik7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIHNhdmVfZm9y Y2VfZHNjX2VuKGRhdGFfdCAqZGF0YSkKPiAtewo+IC3CoMKgwqDCoMKgwqDCoGZvcmNlX2RzY19l bl9vcmlnID0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2lzX2ZvcmNlX2Rz Y19lbmFibGVkKGRhdGEtPmRybV9mZCwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRhdGEtPm91 dHB1dC0+bmFtZSk7Cj4gLcKgwqDCoMKgwqDCoMKgZm9yY2VfZHNjX3Jlc3RvcmVfZmQgPQo+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfZ2V0X2RzY19kZWJ1Z2ZzX2ZkKGRhdGEt PmRybV9mZCwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGF0YS0+b3V0cHV0LT5uYW1lKTsKPiAtwqDC oMKgwqDCoMKgwqBpZ3RfYXNzZXJ0KGZvcmNlX2RzY19yZXN0b3JlX2ZkID49IDApOwo+IC19Cj4g LQo+IC1zdGF0aWMgdm9pZCByZXN0b3JlX2ZvcmNlX2RzY19lbih2b2lkKQo+IC17Cj4gLcKgwqDC oMKgwqDCoMKgaWYgKGZvcmNlX2RzY19yZXN0b3JlX2ZkIDwgMCkKPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgcmV0dXJuOwo+IC0KPiAtwqDCoMKgwqDCoMKgwqBpZ3RfZGVidWcoIlJl c3RvcmluZyBEU0MgZW5hYmxlXG4iKTsKPiAtwqDCoMKgwqDCoMKgwqBpZ3RfYXNzZXJ0KHdyaXRl KGZvcmNlX2RzY19yZXN0b3JlX2ZkLCBmb3JjZV9kc2NfZW5fb3JpZyA/Cj4gIjEiIDogIjAiLCAx KSA9PSAxKTsKPiAtCj4gLcKgwqDCoMKgwqDCoMKgY2xvc2UoZm9yY2VfZHNjX3Jlc3RvcmVfZmQp Owo+IC3CoMKgwqDCoMKgwqDCoGZvcmNlX2RzY19yZXN0b3JlX2ZkID0gLTE7Cj4gLX0KPiAtCj4g LXN0YXRpYyB2b2lkIGttc19kc2NfZXhpdF9oYW5kbGVyKGludCBzaWcpCj4gLXsKPiAtwqDCoMKg wqDCoMKgwqByZXN0b3JlX2ZvcmNlX2RzY19lbigpOwo+IC19Cj4gLQo+IMKgc3RhdGljIGRybU1v ZGVNb2RlSW5mbyAqZ2V0X2hpZ2hyZXNfbW9kZShpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKPiDCoHsK PiDCoMKgwqDCoMKgwqDCoMKgZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yID0gb3V0cHV0LT5j b25maWcuY29ubmVjdG9yOwo+IEBAIC0xNDYsMjYgKzY4LDYgQEAgc3RhdGljIGRybU1vZGVNb2Rl SW5mbwo+ICpnZXRfaGlnaHJlc19tb2RlKGlndF9vdXRwdXRfdCAqb3V0cHV0KQo+IMKgwqDCoMKg wqDCoMKgwqByZXR1cm4gaGlnaGVzdF9tb2RlOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyBib29sIGNo ZWNrX2RzY19vbl9jb25uZWN0b3IoZGF0YV90ICpkYXRhKQo+IC17Cj4gLcKgwqDCoMKgwqDCoMKg aWd0X291dHB1dF90ICpvdXRwdXQgPSBkYXRhLT5vdXRwdXQ7Cj4gLQo+IC3CoMKgwqDCoMKgwqDC oGlmICghaWd0X2lzX2RzY19zdXBwb3J0ZWQoZGF0YS0+ZHJtX2ZkLCBvdXRwdXQtPm5hbWUpKSB7 Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9kZWJ1ZygiRFNDIG5vdCBzdXBw b3J0ZWQgb24gY29ubmVjdG9yICVzXG4iLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgb3V0cHV0LT5uYW1lKTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgcmV0dXJuIGZhbHNlOwo+IC3CoMKgwqDCoMKgwqDCoH0KPiAtCj4gLcKgwqDC oMKgwqDCoMKgaWYgKCFvdXRwdXRfaXNfaW50ZXJuYWxfcGFuZWwob3V0cHV0KSAmJgo+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoCAhaWd0X2lzX2ZlY19zdXBwb3J0ZWQoZGF0YS0+ZHJtX2ZkLCBvdXRw dXQtPm5hbWUpKSB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9kZWJ1Zygi RFNDIGNhbm5vdCBiZSBlbmFibGVkIHdpdGhvdXQgRkVDIG9uCj4gJXNcbiIsCj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBvdXRwdXQtPm5hbWUpOwo+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7Cj4gLcKgwqDCoMKg wqDCoMKgfQo+IC0KPiAtwqDCoMKgwqDCoMKgwqByZXR1cm4gdHJ1ZTsKPiAtfQo+IC0KPiDCoHN0 YXRpYyBib29sIGNoZWNrX2JpZ19qb2luZXJfcGlwZV9jb25zdHJhaW50KGRhdGFfdCAqZGF0YSkK PiDCoHsKPiDCoMKgwqDCoMKgwqDCoMKgaWd0X291dHB1dF90ICpvdXRwdXQgPSBkYXRhLT5vdXRw dXQ7Cj4gQEAgLTE4MSwzNCArODMsNiBAQCBzdGF0aWMgYm9vbAo+IGNoZWNrX2JpZ19qb2luZXJf cGlwZV9jb25zdHJhaW50KGRhdGFfdCAqZGF0YSkKPiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHRy dWU7Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIGJvb2wgY2hlY2tfZ2VuMTFfZHBfY29uc3RyYWludChk YXRhX3QgKmRhdGEpCj4gLXsKPiAtwqDCoMKgwqDCoMKgwqBpZ3Rfb3V0cHV0X3QgKm91dHB1dCA9 IGRhdGEtPm91dHB1dDsKPiAtwqDCoMKgwqDCoMKgwqB1aW50MzJfdCBkZXZpZCA9IGludGVsX2dl dF9kcm1fZGV2aWQoZGF0YS0+ZHJtX2ZkKTsKPiAtwqDCoMKgwqDCoMKgwqBkcm1Nb2RlQ29ubmVj dG9yICpjb25uZWN0b3IgPSBvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3I7Cj4gLQo+IC3CoMKgwqDC oMKgwqDCoGlmICgoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PQo+IERSTV9NT0RFX0NPTk5F Q1RPUl9EaXNwbGF5UG9ydCkgJiYKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGRhdGEtPnBpcGUg PT0gUElQRV9BKSAmJiBJU19HRU4xMShkZXZpZCkpIHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgaWd0X2RlYnVnKCJEU0Mgbm90IHN1cHBvcnRlZCBvbiBwaXBlIEEgb24gZXh0ZXJu YWwgRFAKPiBpbiBnZW4xMSBwbGF0Zm9ybXNcbiIpOwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqByZXR1cm4gZmFsc2U7Cj4gLcKgwqDCoMKgwqDCoMKgfQo+IC0KPiAtwqDCoMKgwqDC oMKgwqByZXR1cm4gdHJ1ZTsKPiAtfQo+IC0KPiAtLyogTWF4IERTQyBJbnB1dCBCUEMgZm9yIElD TCBpcyAxMCBhbmQgZm9yIFRHTCsgaXMgMTIgKi8KPiAtc3RhdGljIGJvb2wgY2hlY2tfZ2VuMTFf YnBjX2NvbnN0cmFpbnQoZGF0YV90ICpkYXRhKQo+IC17Cj4gLcKgwqDCoMKgwqDCoMKgdWludDMy X3QgZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRhdGEtPmRybV9mZCk7Cj4gLQo+IC3CoMKg wqDCoMKgwqDCoGlmIChJU19HRU4xMShkZXZpZCkgJiYgZGF0YS0+aW5wdXRfYnBjID09IDEyKSB7 Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9kZWJ1ZygiSW5wdXQgYnBjIDEy IG5vdCBzdXBwb3J0ZWQgb24gZ2VuMTEKPiBwbGF0Zm9ybXNcbiIpOwo+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7Cj4gLcKgwqDCoMKgwqDCoMKgfQo+IC0KPiAt wqDCoMKgwqDCoMKgwqByZXR1cm4gdHJ1ZTsKPiAtfQo+IC0KPiDCoHN0YXRpYyB2b2lkIHRlc3Rf Y2xlYW51cChkYXRhX3QgKmRhdGEpCj4gwqB7Cj4gwqDCoMKgwqDCoMKgwqDCoGlndF9vdXRwdXRf dCAqb3V0cHV0ID0gZGF0YS0+b3V0cHV0Owo+IGRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2ttc19k c2NfaGVscGVyLmMKPiBiL3Rlc3RzL2k5MTUva21zX2RzY19oZWxwZXIuYwo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwLi4xODNhMzE0NTcKPiAtLS0gL2Rldi9udWxsCj4g KysrIGIvdGVzdHMvaTkxNS9rbXNfZHNjX2hlbHBlci5jCj4gQEAgLTAsMCArMSwxMzEgQEAKPiAr LyoKPiArICogQ29weXJpZ2h0IMKpIDIwMjMgSW50ZWwgQ29ycG9yYXRpb24KPiArICoKPiArICog UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz b24KPiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0 ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCj4gIlNvZnR3YXJlIiksCj4gKyAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0Cj4g bGltaXRhdGlvbgo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg cHVibGlzaCwgZGlzdHJpYnV0ZSwKPiBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3Bp ZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbQo+IHRoZQo+ ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv d2luZwo+IGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcKPiB0aGUgbmV4dAo+ICsgKiBw YXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwK PiBwb3J0aW9ucyBvZiB0aGUKPiArICogU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FS RSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAo+IEVY UFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg V0FSUkFOVElFUyBPRgo+IE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC7CoCBJTiBOTwo+IEVWRU5UIFNIQUxM Cj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z IENMQUlNLCBEQU1BR0VTCj4gT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFO IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCj4gQVJJU0lORwo+ICsgKiBG Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNF IE9SCj4gT1RIRVIgREVBTElOR1MKPiArICogSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBE aXNwbGF5cG9ydCBEaXNwbGF5IFN0cmVhbSBDb21wcmVzc2lvbiB0ZXN0Cj4gKyAqIFVudGlsIHRo ZSBDUkMgc3VwcG9ydCBpcyBhZGRlZCB0aGlzIG5lZWRzIHRvIGJlIGludm9rZWQgd2l0aCAtLQo+ IGludGVyYWN0aXZlCj4gKyAqIHRvIG1hbnVhbGx5IHZlcmlmeSBpZiB0aGUgdGVzdCBwYXR0ZXJu IGlzIHNlZW4gd2l0aG91dCBjb3JydXB0aW9uCj4gZm9yIGVhY2gKPiArICogc3VidGVzdC4KPiAr ICoKPiArICovCj4gKwo+ICsjaW5jbHVkZSAia21zX2RzY19oZWxwZXIuaCIKPiArCj4gK2Jvb2wg Zm9yY2VfZHNjX2VuX29yaWc7Cj4gK2ludCBmb3JjZV9kc2NfcmVzdG9yZV9mZCA9IC0xOwo+ICsK PiArdm9pZCBmb3JjZV9kc2NfZW5hYmxlKGRhdGFfdCAqZGF0YSkKPiArewo+ICvCoMKgwqDCoMKg wqDCoGludCByZXQ7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGlndF9kZWJ1ZygiRm9yY2luZyBEU0Mg ZW5hYmxlIG9uICVzXG4iLCBkYXRhLT5vdXRwdXQtPm5hbWUpOwo+ICvCoMKgwqDCoMKgwqDCoHJl dCA9IGlndF9mb3JjZV9kc2NfZW5hYmxlKGRhdGEtPmRybV9mZCwKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRhdGEt Pm91dHB1dC0+bmFtZSk7Cj4gK8KgwqDCoMKgwqDCoMKgaWd0X2Fzc2VydF9mKHJldCA+IDAsICJk ZWJ1Z2ZzX3dyaXRlIGZhaWxlZCIpOwo+ICt9Cj4gKwo+ICt2b2lkIGZvcmNlX2RzY19lbmFibGVf YnBjKGRhdGFfdCAqZGF0YSkKPiArewo+ICvCoMKgwqDCoMKgwqDCoGludCByZXQ7Cj4gKwo+ICvC oMKgwqDCoMKgwqDCoGlndF9kZWJ1ZygiRm9yY2luZyBpbnB1dCBEU0MgQlBDIHRvICVkIG9uICVz XG4iLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkYXRhLT5pbnB1dF9icGMs IGRhdGEtPm91dHB1dC0+bmFtZSk7Cj4gK8KgwqDCoMKgwqDCoMKgcmV0ID0gaWd0X2ZvcmNlX2Rz Y19lbmFibGVfYnBjKGRhdGEtPmRybV9mZCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGF0YS0+b3V0 cHV0LT5uYW1lLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkYXRhLT5pbnB1dF9icGMpOwo+ICvCoMKg wqDCoMKgwqDCoGlndF9hc3NlcnRfZihyZXQgPiAwLCAiZGVidWdmc193cml0ZSBmYWlsZWQiKTsK PiArfQo+ICsKPiArdm9pZCBzYXZlX2ZvcmNlX2RzY19lbihkYXRhX3QgKmRhdGEpCj4gK3sKPiAr wqDCoMKgwqDCoMKgwqBmb3JjZV9kc2NfZW5fb3JpZyA9Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGlndF9pc19mb3JjZV9kc2NfZW5hYmxlZChkYXRhLT5kcm1fZmQsCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBkYXRhLT5vdXRwdXQtPm5hbWUpOwo+ICvCoMKgwqDCoMKgwqDCoGZv cmNlX2RzY19yZXN0b3JlX2ZkID0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0 X2dldF9kc2NfZGVidWdmc19mZChkYXRhLT5kcm1fZmQsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRh dGEtPm91dHB1dC0+bmFtZSk7Cj4gK8KgwqDCoMKgwqDCoMKgaWd0X2Fzc2VydChmb3JjZV9kc2Nf cmVzdG9yZV9mZCA+PSAwKTsKPiArfQo+ICsKPiArdm9pZCByZXN0b3JlX2ZvcmNlX2RzY19lbih2 b2lkKQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKGZvcmNlX2RzY19yZXN0b3JlX2ZkIDwgMCkK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuOwo+ICsKPiArwqDCoMKgwqDC oMKgwqBpZ3RfZGVidWcoIlJlc3RvcmluZyBEU0MgZW5hYmxlXG4iKTsKPiArwqDCoMKgwqDCoMKg wqBpZ3RfYXNzZXJ0KHdyaXRlKGZvcmNlX2RzY19yZXN0b3JlX2ZkLCBmb3JjZV9kc2NfZW5fb3Jp ZyA/Cj4gIjEiIDogIjAiLCAxKSA9PSAxKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgY2xvc2UoZm9y Y2VfZHNjX3Jlc3RvcmVfZmQpOwo+ICvCoMKgwqDCoMKgwqDCoGZvcmNlX2RzY19yZXN0b3JlX2Zk ID0gLTE7Cj4gK30KPiArCj4gK3ZvaWQga21zX2RzY19leGl0X2hhbmRsZXIoaW50IHNpZykKPiAr ewo+ICvCoMKgwqDCoMKgwqDCoHJlc3RvcmVfZm9yY2VfZHNjX2VuKCk7Cj4gK30KPiArCj4gK2Jv b2wgY2hlY2tfZHNjX29uX2Nvbm5lY3RvcihkYXRhX3QgKmRhdGEpCj4gK3sKPiArwqDCoMKgwqDC oMKgwqBpZ3Rfb3V0cHV0X3QgKm91dHB1dCA9IGRhdGEtPm91dHB1dDsKPiArCj4gK8KgwqDCoMKg wqDCoMKgaWYgKCFpZ3RfaXNfZHNjX3N1cHBvcnRlZChkYXRhLT5kcm1fZmQsIG91dHB1dC0+bmFt ZSkpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2RlYnVnKCJEU0Mgbm90 IHN1cHBvcnRlZCBvbiBjb25uZWN0b3IgJXNcbiIsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBvdXRwdXQtPm5hbWUpOwo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7Cj4gK8KgwqDCoMKgwqDCoMKgfQo+ICsKPiAr wqDCoMKgwqDCoMKgwqBpZiAoIW91dHB1dF9pc19pbnRlcm5hbF9wYW5lbChvdXRwdXQpICYmCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgICFpZ3RfaXNfZmVjX3N1cHBvcnRlZChkYXRhLT5kcm1fZmQs IG91dHB1dC0+bmFtZSkpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2Rl YnVnKCJEU0MgY2Fubm90IGJlIGVuYWJsZWQgd2l0aG91dCBGRUMgb24KPiAlc1xuIiwKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG91dHB1dC0+bmFt ZSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBmYWxzZTsKPiArwqDC oMKgwqDCoMKgwqB9Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoHJldHVybiB0cnVlOwo+ICt9Cj4gKwo+ ICtib29sIGNoZWNrX2dlbjExX2RwX2NvbnN0cmFpbnQoZGF0YV90ICpkYXRhKQo+ICt7Cj4gK8Kg wqDCoMKgwqDCoMKgaWd0X291dHB1dF90ICpvdXRwdXQgPSBkYXRhLT5vdXRwdXQ7Cj4gK8KgwqDC oMKgwqDCoMKgdWludDMyX3QgZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRhdGEtPmRybV9m ZCk7Cj4gK8KgwqDCoMKgwqDCoMKgZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yID0gb3V0cHV0 LT5jb25maWcuY29ubmVjdG9yOwo+ICsKPiArwqDCoMKgwqDCoMKgwqBpZiAoKGNvbm5lY3Rvci0+ Y29ubmVjdG9yX3R5cGUgPT0KPiBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQpICYmCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgIChkYXRhLT5waXBlID09IFBJUEVfQSkgJiYgSVNfR0VOMTEo ZGV2aWQpKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9kZWJ1ZygiRFND IG5vdCBzdXBwb3J0ZWQgb24gcGlwZSBBIG9uIGV4dGVybmFsIERQCj4gaW4gZ2VuMTEgcGxhdGZv cm1zXG4iKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGZhbHNlOwo+ ICvCoMKgwqDCoMKgwqDCoH0KPiArCj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIHRydWU7Cj4gK30K PiArCj4gKy8qIE1heCBEU0MgSW5wdXQgQlBDIGZvciBJQ0wgaXMgMTAgYW5kIGZvciBUR0wrIGlz IDEyICovCj4gK2Jvb2wgY2hlY2tfZ2VuMTFfYnBjX2NvbnN0cmFpbnQoZGF0YV90ICpkYXRhKQo+ ICt7Cj4gK8KgwqDCoMKgwqDCoMKgdWludDMyX3QgZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2Rldmlk KGRhdGEtPmRybV9mZCk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGlmIChJU19HRU4xMShkZXZpZCkg JiYgZGF0YS0+aW5wdXRfYnBjID09IDEyKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGlndF9kZWJ1ZygiSW5wdXQgYnBjIDEyIG5vdCBzdXBwb3J0ZWQgb24gZ2VuMTEKPiBwbGF0 Zm9ybXNcbiIpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7 Cj4gK8KgwqDCoMKgwqDCoMKgfQo+ICsKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gdHJ1ZTsKPiAr fQo+IGRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2ttc19kc2NfaGVscGVyLmgKPiBiL3Rlc3RzL2k5 MTUva21zX2RzY19oZWxwZXIuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAw MDAwLi4wZDkzZjczNjkKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvdGVzdHMvaTkxNS9rbXNfZHNj X2hlbHBlci5oCj4gQEAgLTAsMCArMSw2NSBAQAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAy MyBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgo+IG9idGFpbmluZyBhCj4gKyAqIGNv cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0 aGUKPiAiU29mdHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQKPiBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdo dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLAo+IHN1 YmxpY2Vuc2UsCj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0 byBwZXJtaXQgcGVyc29ucyB0byB3aG9tCj4gdGhlCj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nCj4gY29uZGl0aW9uczoKPiArICoK PiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp Y2UgKGluY2x1ZGluZwo+IHRoZSBuZXh0Cj4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVk ZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbAo+IHBvcnRpb25zIG9mIHRoZQo+ICsgKiBT b2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCj4gRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJ TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCj4gTUVSQ0hBTlRB QklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G UklOR0VNRU5ULsKgIElOIE5PCj4gRVZFTlQgU0hBTEwKPiArICogVEhFIEFVVEhPUlMgT1IgQ09Q WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMKPiBPUiBPVEhF Ugo+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwKPiBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKPiBPVEhFUiBERUFMSU5HUwo+ICsg KiBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBJR1RfS01TX0RT Q19IRUxQRVJfSAo+ICsjZGVmaW5lIElHVF9LTVNfRFNDX0hFTFBFUl9ICj4gKwo+ICsjaW5jbHVk ZSAiaWd0LmgiCj4gKyNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKPiArI2luY2x1ZGUgPGVycm5vLmg+ Cj4gKyNpbmNsdWRlIDxnZXRvcHQuaD4KPiArI2luY2x1ZGUgPG1hdGguaD4KPiArI2luY2x1ZGUg PHN0ZGludC5oPgo+ICsjaW5jbHVkZSA8c3RkYm9vbC5oPgo+ICsjaW5jbHVkZSA8c3RyaW5ncy5o Pgo+ICsjaW5jbHVkZSA8dW5pc3RkLmg+Cj4gKyNpbmNsdWRlIDxzdGRsaWIuaD4KPiArI2luY2x1 ZGUgPHNpZ25hbC5oPgo+ICsjaW5jbHVkZSA8dGltZS5oPgo+ICsjaW5jbHVkZSA8ZmNudGwuaD4K PiArI2luY2x1ZGUgPHRlcm1pb3MuaD4KPiArCj4gKyNkZWZpbmUgSERJU1BMQVlfNUvCoMKgwqDC oDUxMjAKPiArCj4gK3R5cGVkZWYgc3RydWN0IHsKPiArwqDCoMKgwqDCoMKgwqBpbnQgZHJtX2Zk Owo+ICvCoMKgwqDCoMKgwqDCoHVpbnQzMl90IGRldmlkOwo+ICvCoMKgwqDCoMKgwqDCoGlndF9k aXNwbGF5X3QgZGlzcGxheTsKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaWd0X2ZiIGZiX3Rlc3Rf cGF0dGVybjsKPiArwqDCoMKgwqDCoMKgwqBpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKPiArwqDCoMKg wqDCoMKgwqBpbnQgaW5wdXRfYnBjOwo+ICvCoMKgwqDCoMKgwqDCoGludCBuX3BpcGVzOwo+ICvC oMKgwqDCoMKgwqDCoGVudW0gcGlwZSBwaXBlOwo+ICt9IGRhdGFfdDsKCkRlZmluaW5nIHRoaXMg ZGF0YSBzdHJ1Y3R1cmUgaGVyZSBmb3JjZXMgdGVzdGNhc2UgdG8gdXNlIHRoaXMgc3BlY2lmaWMK Zm9ybWF0IGFzIGl0J3MgZGF0YS4gSSdtIHRoaW5raW5nIGttc19wc3IyX3NmIGRzYyBwYXRjaCBm cm9tIG1lIHdoZXJlCmttc19wc3IyX3NmLmMgaXMgcG9zc2libGUgdXNlciBmb3IgdGhpczoKCmh0 dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9zZXJpZXMvMTEyMDk4LwoKSG93IGFib3V0 IGp1c3QgYWRkaW5nIG1vcmUgcGFyYW1ldGVycyB0byBleHBvcnRlZCBmdW5jdGlvbnM/IEUuZy46 Cgp2b2lkIGZvcmNlX2RzY19lbmFibGVfYnBjKGRhdGFfdCAqZGF0YSk7IC0+Cgp2b2lkIGZvcmNl X2RzY19lbmFibGVfYnBjKGRhdGEtPmRybV9mZCwgaWd0X291dHB1dF90ICpvdXRwdXQpOwogCj4g Kwo+ICt2b2lkIGZvcmNlX2RzY19lbmFibGVfYnBjKGRhdGFfdCAqZGF0YSk7Cj4gK3ZvaWQgZm9y Y2VfZHNjX2VuYWJsZShkYXRhX3QgKmRhdGEpOwo+ICt2b2lkIHNhdmVfZm9yY2VfZHNjX2VuKGRh dGFfdCAqZGF0YSk7Cj4gK3ZvaWQgcmVzdG9yZV9mb3JjZV9kc2NfZW4odm9pZCk7Cj4gK3ZvaWQg a21zX2RzY19leGl0X2hhbmRsZXIoaW50IHNpZyk7Cj4gK2Jvb2wgY2hlY2tfZHNjX29uX2Nvbm5l Y3RvcihkYXRhX3QgKmRhdGEpOwo+ICtib29sIGNoZWNrX2dlbjExX2RwX2NvbnN0cmFpbnQoZGF0 YV90ICpkYXRhKTsKPiArYm9vbCBjaGVja19nZW4xMV9icGNfY29uc3RyYWludChkYXRhX3QgKmRh dGEpOwo+ICsKPiArI2VuZGlmCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVz dHMvbWVzb24uYnVpbGQKPiBpbmRleCBjYjQyODk5ODUuLmU2M2Q2MjI0OSAxMDA2NDQKPiAtLS0g YS90ZXN0cy9tZXNvbi5idWlsZAo+ICsrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCj4gQEAgLTIyMSw3 ICsyMjEsNiBAQCBpOTE1X3Byb2dzID0gWwo+IMKgwqDCoMKgwqDCoMKgwqAna21zX2NjcycsCj4g wqDCoMKgwqDCoMKgwqDCoCdrbXNfY2RjbGsnLAo+IMKgwqDCoMKgwqDCoMKgwqAna21zX2RyYXdf Y3JjJywKPiAtwqDCoMKgwqDCoMKgwqAna21zX2RzYycsCj4gwqDCoMKgwqDCoMKgwqDCoCdrbXNf ZmJjb25fZmJ0JywKPiDCoMKgwqDCoMKgwqDCoMKgJ2ttc19mZW5jZV9waW5fbGVhaycsCj4gwqDC oMKgwqDCoMKgwqDCoCdrbXNfZmxpcF9zY2FsZWRfY3JjJywKPiBAQCAtNDI0LDYgKzQyMywxNSBA QCB0ZXN0X2V4ZWN1dGFibGVzICs9IGV4ZWN1dGFibGUoJ2ttc19jb2xvcicsCj4gwqDCoMKgwqDC oMKgwqDCoMKgwqAgaW5zdGFsbCA6IHRydWUpCj4gwqB0ZXN0X2xpc3QgKz0gJ2ttc19jb2xvcicK PiDCoAo+ICt0ZXN0X2V4ZWN1dGFibGVzICs9IGV4ZWN1dGFibGUoJ2ttc19kc2MnLAo+ICvCoMKg wqDCoMKgwqDCoMKgwqAgWyBqb2luX3BhdGhzKCdpOTE1JywgJ2ttc19kc2MuYycpLCBqb2luX3Bh dGhzICgnaTkxNScsCj4gJ2ttc19kc2NfaGVscGVyLmMnKV0sCj4gK8KgwqDCoMKgwqDCoMKgwqDC oCBkZXBlbmRlbmNpZXMgOiB0ZXN0X2RlcHMsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoCBpbnN0YWxs X2RpciA6IGxpYmV4ZWNkaXIsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoCBpbnN0YWxsX3JwYXRoIDog bGliZXhlY2Rpcl9ycGF0aGRpciwKPiArwqDCoMKgwqDCoMKgwqDCoMKgIGluc3RhbGwgOiB0cnVl KQo+ICt0ZXN0X2xpc3QgKz0gJ2ttc19kc2MnCj4gKwo+ICsKPiDCoGlmIGNoYW1lbGl1bS5mb3Vu ZCgpCj4gwqDCoMKgwqDCoMKgwqAgdGVzdF9leGVjdXRhYmxlcyArPSBleGVjdXRhYmxlKCdrbXNf Y29sb3JfY2hhbWVsaXVtJywKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIFsgJ2NoYW1lbGl1bS9rbXNfY29sb3JfY2hhbWVsaXVtLmMn LAo+ICdrbXNfY29sb3JfaGVscGVyLmMnIF0sCgo=