From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f509.i.mail.ru (f509.i.mail.ru [217.69.138.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 53E6F45C308 for ; Sun, 13 Dec 2020 02:38:58 +0300 (MSK) From: =?UTF-8?B?SWx5YSBLb3NhcmV2?= MIME-Version: 1.0 Date: Sun, 13 Dec 2020 02:38:57 +0300 Reply-To: =?UTF-8?B?SWx5YSBLb3NhcmV2?= Message-ID: <1607816337.936758050@f509.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--fA83410d33429FbDB26b70bB12129e2C1607816337" In-Reply-To: <91f4ad0b-f645-a701-ef98-96b99828c287@tarantool.org> References: <20201208220902.3614-1-i.kosarev@tarantool.org> <91f4ad0b-f645-a701-ef98-96b99828c287@tarantool.org> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_v5=5D_iproto=3A_move_greet?= =?utf-8?q?ing_from_tx_thread_to_iproto?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?VmxhZGlzbGF2IFNocGlsZXZveQ==?= Cc: tarantool-patches@dev.tarantool.org ----ALT--fA83410d33429FbDB26b70bB12129e2C1607816337 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpLApUaGFua3MgZm9yIHlvdXIgcmV2aWV3IQrCoApTZW50IHY2IG9mIHRoZSBwYXRjaCAocGF0 Y2hzZXQpIGNvbnNpZGVyaW5nIHlvdXIgY29tbWVudHMuIFNvbWUgYW5zd2VycyBiZWxvdy4gCj7Q n9GP0YLQvdC40YbQsCwgMTEg0LTQtdC60LDQsdGA0Y8gMjAyMCwgMDo1MiArMDM6MDAg0L7RgiBW bGFkaXNsYXYgU2hwaWxldm95IDx2LnNocGlsZXZveUB0YXJhbnRvb2wub3JnPjoKPsKgCj5IaSEg VGhhbmtzIGZvciB0aGUgcGF0Y2ghCj4KPkkgc3VnZ2VzdCB5b3UgdG8gaW52aXRlIEFsZXhhbmRl ciBMLiB0byBzdGFydCBhIHNlY29uZCByZXZpZXcuIFdlCj5kb24ndCBoYXZlIG11Y2ggdGltZSB1 bnRpbCByZWxlYXNlLgo+Cj5TZWUgMTMgY29tbWVudHMgYmVsb3cuCj4KPk9uIDA4LjEyLjIwMjAg MjM6MDksIElseWEgS29zYXJldiB3cm90ZToKPj4gT24gY29ubmVjdGlvbiwgYW4gZXZpbyBzZXJ2 aWNlIGNhbGxiYWNrIGlzIGludm9rZWQgdG8gYWNjZXB0IGl0LlRoZQo+PiBuZXh0IHN0ZXAgYWZ0 ZXIgYWNjZXB0aW9uIHdhcyB0byBwcm9jZXNzIGNvbm5lY3Rpb24gdG8gdHggdGhyZWFkCj4KPjEu IGFjY2VwdGlvbiAtPiBhY2NlcHRhbmNlLgpPaywgcmlnaHQsIGZpeGVkIGluIHY2IG9mIHRoZSBw YXRjaC4KPgo+QWxzbyBtaXNzaW5nIHdoaXRlc3BhY2UgaW4gdGhlIGZpcnN0IGxpbmUgYWZ0ZXIg J2l0LicuCj4KPj4gdGhyb3VnaCBjYnVzLiBUaGlzIG1lYW50IHRoYXQgYW55IGNvbm5lY3Rpb24g aW50ZXJhY3Rpb24gaW52b2x2ZXMKPj4gdHggdGhyZWFkIGV2ZW4gYmVmb3JlIHdlIGdldCB0byBk ZWNvZGUgd2hhdCBkb2VzIHRoZSBjbGllbnQgd2FudAo+PiBmcm9tIHVzLiBDb25zZXF1ZW50bHks IGEgbnVtYmVyIG9mIHByb2JsZW1zIGFwcGVhcnMuIFRoZSBtYWluIG9uZQo+PiBpcyB0aGF0IHdl IG1pZ2h0IGdldCBkZXNjcmlwdG9yIGxlYWsgaW4gY2FzZSBvZiB1bnJlc3BvbnNpdmUKPj4gdHgg dGhyZWFkIChmb3IgZXhhbXBsZSwgd2hlbiBidWlsZGluZyBzZWNvbmRhcnkgaW5kZXgpLgo+Cj4y LiBJdCB3YXNuJ3QgYSBsZWFrLiBTb2NrZXQgY2xvc2UgZXZlbnRzIHdlcmUgcXVldWVkIGluZmlu aXRlbHkgdW50aWwKPnR4IGZpbmlzaGVkIGJvb3RzdHJhcC4gUGxlYXNlLCBwcm92aWRlIG1vcmUg aW5mbyBoZXJlLiBOb3cgaXQgaXMKPmp1c3QgbWlzbGVhZGluZy4KPgo+T24gdGhlIHdob2xlLCB0 aGUgY29tbWl0IG1lc3NhZ2UgaXMgc3VwZXIgbWlzZXIuIEltYWdpbmUgaG93IHdpbGwgaXQKPmxv b2sgdG8gc29tZWJvZHkgd2hvIGRpZG4ndCBkbyBhbnkgcmV2aWV3cyBhbmQgZGlkbid0IGRpc2N1 c3MgaXQgYmVmb3JlLgo+VGhlIHByb2JsZW0gaXMgZmFyIGZyb20gdHJpdmlhbCwgYnV0IGZyb20g dGhlIGNvbW1pdCBtZXNzYWdlIGl0IGxvb2tzCj5saWtlIHNvbWVib2R5IGp1c3QgZm9yZ290IGEg Y2xvc2UoKSBzb21ld2hlcmUuCk9rLCB0aGUgY29tbWl0IG1lc3NhZ2UgaXMgcmV3cml0dGVuIGlu IHY2Lgo+Cj4+IFRoaXMgcGF0Y2ggYWxsb3dzIGlwcm90byB0byBhY2NlcHQgY29ubmVjdGlvbiBh bmQgc2VuZCBncmVldGluZyBieQo+PiBpdHNlbGYuIFRodXMgdGhlIGNvbm5lY3Rpb24gaXMgYmVp bmcgZXN0YWJsaXNoZWQgYW5kIHN0YXlzIGluCj4+IGZldGNoX3NjaGVtYSBzdGF0ZSB3aGlsZSB0 eCB0aHJlYWQgaXMgdW5yZXNwb25zaXZlLiBJdCBzb2x2ZXMKPj4gZGVzY3JpcHRvcnMgbGVha2Fn ZSBwcm9ibGVtLgo+Pgo+PiBDbG9zZXMgIzM3NzYKPj4gLS0tCj4+IHNyYy9ib3gvaXByb3RvLmNj IHwgMTQ3ICsrKysrKysrKysrKysrLS0tLQo+PiB0ZXN0L2FwcC9naC00Nzg3LW5ldGJveC1lbXB0 eS1lcnJtc2cucmVzdWx0IHwgMTggLS0tCj4+IHRlc3QvYXBwL2doLTQ3ODctbmV0Ym94LWVtcHR5 LWVycm1zZy50ZXN0Lmx1YSB8IDggLQo+PiAzIGZpbGVzIGNoYW5nZWQsIDExMyBpbnNlcnRpb25z KCspLCA2MCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL3NyYy9ib3gvaXByb3RvLmNj IGIvc3JjL2JveC9pcHJvdG8uY2MKPj4gaW5kZXggYjhmNjVlNWVjYS4uOGMxMjJkYzU4ZCAxMDA2 NDQKPj4gLS0tIGEvc3JjL2JveC9pcHJvdG8uY2MKPj4gKysrIGIvc3JjL2JveC9pcHJvdG8uY2MK Pj4gQEAgLTI1Niw2ICsyNTYsOSBAQCBpcHJvdG9fbXNnX2RlbGV0ZShzdHJ1Y3QgaXByb3RvX21z ZyAqbXNnKQo+PiBpcHJvdG9fcmVzdW1lKCk7Cj4+IH0KPj4KPj4gK3N0YXRpYyBpbmxpbmUgdm9p ZAo+PiAraXByb3RvX2Nvbm5lY3Rpb25fZGVsZXRlKHN0cnVjdCBpcHJvdG9fY29ubmVjdGlvbiAq Y29uKTsKPgo+My4gVGhpcyBhZGRpdGlvbmFsIGRlY2xhcmF0aW9uIGlzIG5vdCBuZWNlc3Nhcnku ClJpZ2h0LCBpdCB3YXMgZXh0cmEgY2hhbmdlLCByZW1vdmVkIGluIHY2Lgo+Cj4+ICsKPj4gLyoq Cj4+ICogQSBzaW5nbGUgZ2xvYmFsIHF1ZXVlIGZvciBhbGwgcmVxdWVzdHMgaW4gYWxsIGNvbm5l Y3Rpb25zLiBBbGwKPj4gKiByZXF1ZXN0cyBmcm9tIGFsbCBjb25uZWN0aW9ucyBhcmUgcHJvY2Vz c2VkIGNvbmN1cnJlbnRseS4KPj4gQEAgLTQ1Myw2ICs0NTYsOCBAQCBzdHJ1Y3QgaXByb3RvX2Nv bm5lY3Rpb24KPj4gKiBtZWFuaW5nbGVzcy4KPj4gKi8KPj4gc2l6ZV90IHBhcnNlX3NpemU7Cj4+ ICsgLyoqIElwcm90byBidWZmZXIgdXNlZCB0byBzZW5kIGdyZWV0aW5nLiAqLwo+PiArIHN0cnVj dCBpb3ZlYyBpcHJvdG9fb3V0cHV0X2J1ZjsKPj4gLyoqCj4+ICogTnVibWVyIG9mIGFjdGl2ZSBs b25nIHBvbGxpbmcgcmVxdWVzdHMgdGhhdCBoYXZlIGFscmVhZHkKPj4gKiBkaXNjYXJkZWQgdGhl aXIgYXJndW1lbnRzIGluIG9yZGVyIG5vdCB0byBzdGFsbCBvdGhlcgo+PiBAQCAtNTY2LDYgKzU3 MSw3IEBAIGlwcm90b19tc2dfbmV3KHN0cnVjdCBpcHJvdG9fY29ubmVjdGlvbiAqY29uKQo+PiBy ZXR1cm4gTlVMTDsKPj4gfQo+PiBtc2ctPmNvbm5lY3Rpb24gPSBjb247Cj4+ICsgbXNnLT5jbG9z ZV9jb25uZWN0aW9uID0gZmFsc2U7Cj4KPjQuIFlvdSBkb24ndCBuZWVkIHRoaXMgY2hhbmdlIG5v dy4gSG93ZXZlciBzdGlsbCBsb29rcyBkYW5nZXJvdXMuIFNvIEkgd291bGQKPm1vdmUgaXQgdG8g YSBzZXBhcmF0ZSBjb21taXQuCk9rLCBtb3ZlZCB0byBzZXBhcmF0ZSBjb21taXQuCsKgCj4KPj4g cm1lYW5fY29sbGVjdChybWVhbl9uZXQsIElQUk9UT19SRVFVRVNUUywgMSk7Cj4+IHJldHVybiBt c2c7Cj4+IH0KPj4gQEAgLTEwOTAsNiArMTA5Niw1MSBAQCBpcHJvdG9fY29ubmVjdGlvbl9vbl9v dXRwdXQoZXZfbG9vcCAqbG9vcCwgc3RydWN0IGV2X2lvICp3YXRjaGVyLAo+PiB9Cj4+IH0KPj4K Pj4gK3N0YXRpYyBpbnQKPj4gK2lwcm90b19idWZfZmx1c2goc3RydWN0IGlwcm90b19jb25uZWN0 aW9uICpjb24pCj4+ICt7Cj4+ICsgaW50IGZkID0gY29uLT5vdXRwdXQuZmQ7Cj4+ICsgc3NpemVf dCBud3IgPSBzaW9fd3JpdGV2KGZkLCAmY29uLT5pcHJvdG9fb3V0cHV0X2J1ZiwgMSk7Cj4+ICsK Pj4gKyBpZiAobndyID4gMCkgewo+PiArIC8qIENvdW50IHN0YXRpc3RpY3MgKi8KPj4gKyBybWVh bl9jb2xsZWN0KHJtZWFuX25ldCwgSVBST1RPX1NFTlQsIG53cik7Cj4+ICsgcmV0dXJuIDE7Cj4+ ICsgfSBlbHNlIGlmIChud3IgPCAwICYmICEgc2lvX3dvdWxkYmxvY2soZXJybm8pKSB7Cj4KPjUu IFdlIGRvbid0IHVzZSB3aGl0ZXNwYWNlcyBhZnRlciB1bmFyeSBvcGVyYXRvcnMuIFRoZSBzYW1l IGluIHNvbWUKPm90aGVyIHBsYWNlcy4gUGxlYXNlLCBmaXggYWxsIG9mIHRoZW0uClJpZ2h0LCBj b3BpZWQgb2xkIGNvZGVzdHlsZSwgZml4ZWQgaW4gdjYuCj4KPj4gKyBkaWFnX3JhaXNlKCk7Cj4K PjYuIFBsZWFzZSwgZG9uJ3QgdXNlIGV4Y2VwdGlvbnMgaW4gdGhlIG5ldyBjb2RlLiBJIGtub3cg eW91Cj5jb3B5LXBhc3RlZCBpdCBmcm9tIGlwcm90b19mbHVzaCwgYnV0IGl0IGRvZXMgbm90IG1l YW4gaXQgaXMgZ29vZC4KPgo+PiArIH0KPj4gKwo+PiArIHJldHVybiBud3I7Cj4+ICt9Cj4+ICsK Pj4gK3N0YXRpYyB2b2lkCj4+ICtpcHJvdG9fY29ubmVjdGlvbl9vbl9ncmVldGluZyhldl9sb29w ICpsb29wLCBzdHJ1Y3QgZXZfaW8gKndhdGNoZXIsCj4+ICsgaW50IC8qIHJldmVudHMgKi8pCj4+ ICt7Cj4+ICsgc3RydWN0IGlwcm90b19jb25uZWN0aW9uICpjb24gPSAoc3RydWN0IGlwcm90b19j b25uZWN0aW9uICopIHdhdGNoZXItPmRhdGE7Cj4KPjcuIFRoaXMgaXMgb3V0IG9mIDgwIHN5bWJv bHMuClJpZ2h0LCBmaXhlZCBpbiB2Ni4KPgo+PiArIHRyeSB7Cj4+ICsgaW50IHJjOwo+PiArIHdo aWxlICgocmMgPSBpcHJvdG9fYnVmX2ZsdXNoKGNvbikpIDw9IDApIHsKPj4gKyBpZiAocmMgIT0g MCkgewo+PiArIGV2X2lvX3N0YXJ0KGxvb3AsICZjb24tPm91dHB1dCk7Cj4+ICsgcmV0dXJuOwo+ PiArIH0KPj4gKyB9Cj4+ICsgaWYgKGV2X2lzX2FjdGl2ZSgmY29uLT5vdXRwdXQpKQo+PiArIGV2 X2lvX3N0b3AoY29uLT5sb29wLCAmY29uLT5vdXRwdXQpOwo+Cj44LiBldl9pb19zdG9wKCkgaXMg c2FmZSB0byBjYWxsIG9uIGEgbm9uLWFjdGl2ZSBldl93YXRjaGVyLiBZb3UgZG9uJ3QKPm5lZWQg dGhpcyAnaWYnLgpSaWdodCwgZml4ZWQgaW4gdjYuCj4KPj4gKyBldl9pb19pbml0KCZjb24tPm91 dHB1dCwgaXByb3RvX2Nvbm5lY3Rpb25fb25fb3V0cHV0LAo+PiArIGNvbi0+b3V0cHV0LmZkLCBF Vl9XUklURSk7Cj4+ICsgaWYgKGNvbi0+aW5wdXQuY2IgIT0gaXByb3RvX2Nvbm5lY3Rpb25fb25f aW5wdXQpCj4+ICsgZXZfaW9faW5pdCgmY29uLT5pbnB1dCwgaXByb3RvX2Nvbm5lY3Rpb25fb25f aW5wdXQsCj4+ICsgY29uLT5pbnB1dC5mZCwgRVZfUkVBRCk7Cj4+ICsgZWxzZQo+PiArIGV2X2Zl ZWRfZXZlbnQobG9vcCwgJmNvbi0+aW5wdXQsIEVWX1JFQUQpOwo+Cj45LiBUaGlzIGNvZGUgYmxv Y2sgYWJvdmUgSSBkb24ndCB1bmRlcnN0YW5kLiBXaHkgaXMgaXQgY29uZGl0aW9uYWw/IFdoeQo+ Y2IgaXMgbm90IGVxdWFsIHRvIGlwcm90b19jb25uZWN0aW9uX29uX2lucHV0IGFsd2F5cz8gQW5k IHdoeSBkbyB5b3UgdXNlCj5hIGNhbGxiYWNrIGFzIGEgZmxhZyB0aGF0IGl0IGlzIHRpbWUgdG8g c3RhcnQgcmVhZGluZy4gSSB0aG91Z2h0Cj55b3UgYXJlIHN1cHBvc2VkIHRvIHVzZSB0aGUgY29u bmVjdGlvbiBzdGF0ZSBmb3IgdGhhdC4KUmlnaHQsIGl0IGlzIG5vdCByZWFsbHkgbmVlZGVkLsKg Rml4ZWQgaW4gdjYuCj4KPj4gKyB9IGNhdGNoIChFeGNlcHRpb24gKmUpIHsKPj4gKyBlLT5sb2co KTsKPj4gKyBjb24tPnN0YXRlID0gSVBST1RPX0NPTk5FQ1RJT05fQ0xPU0VEOwo+PiArIH0KPj4g K30KPj4gKwo+PiBzdGF0aWMgc3RydWN0IGlwcm90b19jb25uZWN0aW9uICoKPj4gaXByb3RvX2Nv bm5lY3Rpb25fbmV3KGludCBmZCkKPj4gewo+PiBAQCAtMTEwMSw4ICsxMTUyLDggQEAgaXByb3Rv X2Nvbm5lY3Rpb25fbmV3KGludCBmZCkKPj4gfQo+PiBjb24tPmlucHV0LmRhdGEgPSBjb24tPm91 dHB1dC5kYXRhID0gY29uOwo+PiBjb24tPmxvb3AgPSBsb29wKCk7Cj4+IC0gZXZfaW9faW5pdCgm Y29uLT5pbnB1dCwgaXByb3RvX2Nvbm5lY3Rpb25fb25faW5wdXQsIGZkLCBFVl9SRUFEKTsKPj4g LSBldl9pb19pbml0KCZjb24tPm91dHB1dCwgaXByb3RvX2Nvbm5lY3Rpb25fb25fb3V0cHV0LCBm ZCwgRVZfV1JJVEUpOwo+PiArIGV2X2lvX2luaXQoJmNvbi0+aW5wdXQsIE5VTEwsIGZkLCBFVl9S RUFEKTsKPgo+MTAuIFdoeSBkaWQgeW91IG51bGxpZnkgdGhlIGNhbGxiYWNrPyBFdl9pb19pbml0 IGRvZXMgbm90IGxlYWQgdG8gZXZlbnQKPmxpc3RlbiBzdGFydC4gSXQgb25seSBpbml0aWFsaXpl cyB0aGUgc3RydWN0LgpXZWxsLMKgSSB3YXMgdXNpbmcgaXQgYXMgYSBmbGFnLiBCdXQgaXQgaXMg bmVpdGhlcsKgZ29vZCBub3IgcmVhbGx5IG5lZWRlZCwgZml4ZWQgaW4gdjYuCj4KPj4gKyBldl9p b19pbml0KCZjb24tPm91dHB1dCwgaXByb3RvX2Nvbm5lY3Rpb25fb25fZ3JlZXRpbmcsIGZkLCBF Vl9XUklURSk7Cj4+IGlidWZfY3JlYXRlKCZjb24tPmlidWZbMF0sIGNvcmRfc2xhYl9jYWNoZSgp LCBpcHJvdG9fcmVhZGFoZWFkKTsKPj4gaWJ1Zl9jcmVhdGUoJmNvbi0+aWJ1ZlsxXSwgY29yZF9z bGFiX2NhY2hlKCksIGlwcm90b19yZWFkYWhlYWQpOwo+PiBvYnVmX2NyZWF0ZSgmY29uLT5vYnVm WzBdLCAmbmV0X3NsYWJjLCBpcHJvdG9fcmVhZGFoZWFkKTsKPj4gQEAgLTEzNzgsMTMgKzE0Mjks MTQgQEAgdHhfcHJvY2Vzc19kZXN0cm95KHN0cnVjdCBjbXNnICptKQo+PiB7Cj4+IHN0cnVjdCBp cHJvdG9fY29ubmVjdGlvbiAqY29uID0KPj4gY29udGFpbmVyX29mKG0sIHN0cnVjdCBpcHJvdG9f Y29ubmVjdGlvbiwgZGVzdHJveV9tc2cpOwo+PiArIGFzc2VydChjb24tPnN0YXRlID09IElQUk9U T19DT05ORUNUSU9OX0RFU1RST1lFRCk7Cj4KPjExLiBQbGVhc2UsIGludHJvZHVjZSB0aGUgc3Rh dGVzIGluIGEgc2VwYXJhdGUgY29tbWl0LiBJIHRoaW5rIEkKPmFscmVhZHkgYXNrZWQgZm9yIHRo YXQgd2hlbiB3ZSBkaXNjdXNzZWQgdGhlIHByZXZpb3VzIHZlcnNpb24sCj5idXQgbm90IHN1cmUu Ck5vdGhpbmcgaXMgaW50cm9kdWNlZCwgaXQgaXMganVzdCBhIGNvbW1lbnQgZml4ZWQgYW5kIGFz c2VydGlvbsKgYWRkZWQuCk1vdmVkIHRvIHNlcGFyYXRlIGNvbW1pdC4KPgo+PiBpZiAoY29uLT5z ZXNzaW9uKSB7Cj4+IHNlc3Npb25fZGVzdHJveShjb24tPnNlc3Npb24pOwo+PiBjb24tPnNlc3Np b24gPSBOVUxMOyAvKiBzYWZldHkgKi8KPj4gfQo+PiAvKgo+PiAtICogR290IHRvIGJlIGRvbmUg aW4gaXByb3RvIHRocmVhZCBzaW5jZQo+PiAtICogdGhhdCdzIHdoZXJlIHRoZSBtZW1vcnkgaXMg YWxsb2NhdGVkLgo+PiArICogb2J1ZiBpcyBiZWluZyBkZXN0cm95ZWQgaW4gdHggdGhyZWFkIGNh dXNlIGl0IGlzIHdoZXJlCj4+ICsgKiBpdCB3YXMgYWxsb2NhdGVkLgo+PiAqLwo+PiBvYnVmX2Rl c3Ryb3koJmNvbi0+b2J1ZlswXSk7Cj4+IG9idWZfZGVzdHJveSgmY29uLT5vYnVmWzFdKTsKPj4g QEAgLTE5MzYsNTAgKzE5ODgsNzIgQEAgbmV0X2VuZF9zdWJzY3JpYmUoc3RydWN0IGNtc2cgKm0p Cj4+IH0KPj4KPj4gLyoqCj4+IC0gKiBIYW5kc2hha2UgYSBjb25uZWN0aW9uOiBpbnZva2UgdGhl IG9uLWNvbm5lY3QgdHJpZ2dlcgo+PiAtICogYW5kIHBvc3NpYmx5IGF1dGhlbnRpY2F0ZS4gVHJ5 IHRvIHNlbmQgdGhlIGNsaWVudCBhbiBlcnJvcgo+PiAtICogdXBvbiBhIGZhaWx1cmUuCj4+ICsg KiBIYW5kc2hha2UgYSBjb25uZWN0aW9uOiBzZW5kIGdyZWV0aW5nIGZvciBpdC4KPj4gKyAqLwo+ PiArc3RhdGljIHZvaWQKPj4gK2lwcm90b19wcm9jZXNzX2Nvbm5lY3Qoc3RydWN0IGlwcm90b19t c2cgKm1zZykKPj4gK3sKPj4gKyBzdHJ1Y3QgaXByb3RvX2Nvbm5lY3Rpb24gKmNvbiA9IG1zZy0+ Y29ubmVjdGlvbjsKPj4gKyBjb24tPmlwcm90b19vdXRwdXRfYnVmLmlvdl9iYXNlID0gc3RhdGlj X2FsbG9jKElQUk9UT19HUkVFVElOR19TSVpFKTsKPgo+MTIuIFRoZXJlIGlzIGEgc2VyaW91cyBw cm9ibGVtIGluIHRoYXQgYWxsb2NhdGlvbi4gU3RhdGljIGFsbG9jYXRvciBpcwo+dmVyeSB2b2xh dGlsZS4gV2hhdCBpcyByZXR1cm5lZCBmcm9tIHN0YXRpY19hbGxvYygpLCBkb2VzIG5vdCBiZWxv bmcgdG8KPnlvdS4gVGhpcyBtZW1vcnkgaXMgaGVhdmlseSByZXVzZWQsIGFuZCBjYW4gYmUgaGFy bmVzc2VkIG9ubHkgZm9yIHZlcnkKPnNob3J0IGxpdmluZyBtZW1vcnkgaWYgeW91IGFyZSBzdXJl IHRoZXJlIGFyZSBubyBvdGhlciBzdGF0aWMgYWxsb2NzCj5hcm91bmQuCj4KPkhlcmUgeW91IGFs bG9jYXRlIGEgbG9uZy1saXZpbmcgb2JqZWN0IG9uIGl0LiBTbyBpdCB3aWxsIGJlIGp1c3Qgb3Zl cnJpZGRlbgo+aW4gY2FzZSBvZiBhbnkgc2VyaW91cyBsb2FkLCBiZWNhdXNlIGFsbCBuZXcgY29u bmVjdGlvbnMgd2lsbCBjYWxsIHRoaXMKPmFsbG9jLCBhbmQgdGhlIHN0YXRpYyBidWZmZXIgd2ls bCBiZSByZWN5Y2xlZCBhbmQgdHVybmVkIGludG8gYSBwaWxlIG9mCj5nYXJiYWdlLgpBbGwgcmln aHQsIG15IGJhZCwgSSBkZWNpZGVkIHRvIHB1dCBpdCBpbnRvIHN0cnVjdCBpcHJvdG9fY29ubmVj dGlvbiBhcyBjaGFyCmJ1ZmZlcsKgYXMgbG9uZyBhcyBpdCBpcyBhbHJlYWR5IDIxNzYsIGFuZCB0 aHVzwqB3aXRoIGdyZWV0aW5nIGJ1ZiBpdCBpcyAyMzA0LgpzdHJ1Y3QgaXByb3RvIGNvbm5lY3Rp b24gaXRzZWxmwqBpcyBhbGxvY2F0ZWQgd2l0aCBtZW1wb29sIG9uIGNvcmQgc2xhYsKgY2FjaGUu Cj4KPj4gKyBjb24tPmlwcm90b19vdXRwdXRfYnVmLmlvdl9sZW4gPSBJUFJPVE9fR1JFRVRJTkdf U0laRTsKPj4gKyAvKgo+PiArICogSU5TVEFOQ0VfVVVJRCBpcyBndWFyYW50ZWVkIHRvIGJlIGlu aXRlZCBiZWZvcmUgdGhpcyBtb21lbnQuCj4+ICsgKiBXZSBzdGFydCBsaXN0ZW5pbmcgZWl0aGVy IGluIGxvY2FsX3JlY292ZXJ5KCkgb3IgYm9vdHN0cmFwKCkuCj4+ICsgKiBUaGUgSU5TVEFOQ0Vf VVVJRCBpcyBlbnN1cmVkIHRvIGJlIGluaXRlZCBpbiB0aGUgYmVnaW5uaW5nIG9mCj4+ICsgKiBi b3RoIG1ldGhvZHMuIEluIGNhc2Ugb2YgbG9jYWxfcmVjb3ZlcnkoKSBpdCBpcyB2ZXJpZmllZCB0 aGF0Cj4+ICsgKiBJTlNUQU5DRV9VVUlEIHdhcyByZWFkIGZyb20gdGhlIHNuYXBzaG90IGluIG1l bXR4X2VuZ2luZV9uZXcoKS4KPj4gKyAqIEluIGJvb3RzdHJhcCgpIElOU1RBTkNFX1VVSUQgaXMg ZWl0aGVyIHRha2VuIGZyb20gdGhlCj4+ICsgKiBpbnN0YW5jZV91dWlkIGJveC5jZmd7fSBwYXJh bSBvciBjcmVhdGVkIG9uIHRoZSBzcG90Lgo+PiArICovCj4+ICsgc3RydWN0IHR0X3V1aWQgdXVp ZCA9IElOU1RBTkNFX1VVSUQ7Cj4KPjEzLiBXaHkgZG8geW91IG5lZWQgdG8gY29weSBpdCBvbiB0 aGUgc3RhY2s/IFdoeSBjYW4ndCB5b3UgdXNlIHBvaW50ZXIKPmF0IElOU1RBTkNFX1VVSUQgdmFy aWFibGU/ClJpZ2h0LCBmaXhlZCBpbiB2Ni4KPgo+PiArIHJhbmRvbV9ieXRlcyhjb24tPnNhbHQs IElQUk9UT19TQUxUX1NJWkUpOwo+PiArIGdyZWV0aW5nX2VuY29kZSgoY2hhciAqKWNvbi0+aXBy b3RvX291dHB1dF9idWYuaW92X2Jhc2UsCj4+ICsgdGFyYW50b29sX3ZlcnNpb25faWQoKSwgJnV1 aWQsCj4+ICsgY29uLT5zYWx0LCBJUFJPVE9fU0FMVF9TSVpFKTsKPj4gKyBhc3NlcnQoZXZpb19o YXNfZmQoJmNvbi0+b3V0cHV0KSk7Cj4+ICsgZXZfZmVlZF9ldmVudChjb24tPmxvb3AsICZjb24t Pm91dHB1dCwgRVZfV1JJVEUpOwo+PiArfQrCoAotLQpJbHlhIEtvc2FyZXYKwqA= ----ALT--fA83410d33429FbDB26b70bB12129e2C1607816337 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+PGRpdj5IaSw8L2Rpdj48ZGl2PlRoYW5rcyBmb3IgeW91ciByZXZp ZXchPGJyPiZuYnNwOzwvZGl2PjxkaXY+U2VudCB2NiBvZiB0aGUgcGF0Y2ggKHBhdGNoc2V0KSBj b25zaWRlcmluZyB5b3VyIGNvbW1lbnRzLiBTb21lIGFuc3dlcnMgYmVsb3cuPC9kaXY+PGJsb2Nr cXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsg cGFkZGluZzowIDAgMCAxMHB4OyI+0J/Rj9GC0L3QuNGG0LAsIDExINC00LXQutCw0LHRgNGPIDIw MjAsIDA6NTIgKzAzOjAwINC+0YIgVmxhZGlzbGF2IFNocGlsZXZveSAmbHQ7di5zaHBpbGV2b3lA dGFyYW50b29sLm9yZyZndDs6PGJyPiZuYnNwOzxkaXYgaWQ9IiI+PGRpdiBjbGFzcz0ianMtaGVs cGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXYgaWQ9InN0eWxlXzE2MDc2MzcxNjExNDY2MTE5 MDcwX0JPRFkiPkhpISBUaGFua3MgZm9yIHRoZSBwYXRjaCE8YnI+PGJyPkkgc3VnZ2VzdCB5b3Ug dG8gaW52aXRlIEFsZXhhbmRlciBMLiB0byBzdGFydCBhIHNlY29uZCByZXZpZXcuIFdlPGJyPmRv bid0IGhhdmUgbXVjaCB0aW1lIHVudGlsIHJlbGVhc2UuPGJyPjxicj5TZWUgMTMgY29tbWVudHMg YmVsb3cuPGJyPjxicj5PbiAwOC4xMi4yMDIwIDIzOjA5LCBJbHlhIEtvc2FyZXYgd3JvdGU6PGJy PiZndDsgT24gY29ubmVjdGlvbiwgYW4gZXZpbyBzZXJ2aWNlIGNhbGxiYWNrIGlzIGludm9rZWQg dG8gYWNjZXB0IGl0LlRoZTxicj4mZ3Q7IG5leHQgc3RlcCBhZnRlciBhY2NlcHRpb24gd2FzIHRv IHByb2Nlc3MgY29ubmVjdGlvbiB0byB0eCB0aHJlYWQ8YnI+PGJyPjEuIGFjY2VwdGlvbiAtJmd0 OyBhY2NlcHRhbmNlLjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48 ZGl2Pk9rLCByaWdodCwgZml4ZWQgaW4gdjYgb2YgdGhlIHBhdGNoLjwvZGl2PjxkaXY+PGJsb2Nr cXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsg cGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1z Zy1tc2ciPjxkaXY+PGRpdj48YnI+QWxzbyBtaXNzaW5nIHdoaXRlc3BhY2UgaW4gdGhlIGZpcnN0 IGxpbmUgYWZ0ZXIgJ2l0LicuPGJyPjxicj4mZ3Q7IHRocm91Z2ggY2J1cy4gVGhpcyBtZWFudCB0 aGF0IGFueSBjb25uZWN0aW9uIGludGVyYWN0aW9uIGludm9sdmVzPGJyPiZndDsgdHggdGhyZWFk IGV2ZW4gYmVmb3JlIHdlIGdldCB0byBkZWNvZGUgd2hhdCBkb2VzIHRoZSBjbGllbnQgd2FudDxi cj4mZ3Q7IGZyb20gdXMuIENvbnNlcXVlbnRseSwgYSBudW1iZXIgb2YgcHJvYmxlbXMgYXBwZWFy cy4gVGhlIG1haW4gb25lPGJyPiZndDsgaXMgdGhhdCB3ZSBtaWdodCBnZXQgZGVzY3JpcHRvciBs ZWFrIGluIGNhc2Ugb2YgdW5yZXNwb25zaXZlPGJyPiZndDsgdHggdGhyZWFkIChmb3IgZXhhbXBs ZSwgd2hlbiBidWlsZGluZyBzZWNvbmRhcnkgaW5kZXgpLjxicj48YnI+Mi4gSXQgd2Fzbid0IGEg bGVhay4gU29ja2V0IGNsb3NlIGV2ZW50cyB3ZXJlIHF1ZXVlZCBpbmZpbml0ZWx5IHVudGlsPGJy PnR4IGZpbmlzaGVkIGJvb3RzdHJhcC4gUGxlYXNlLCBwcm92aWRlIG1vcmUgaW5mbyBoZXJlLiBO b3cgaXQgaXM8YnI+anVzdCBtaXNsZWFkaW5nLjxicj48YnI+T24gdGhlIHdob2xlLCB0aGUgY29t bWl0IG1lc3NhZ2UgaXMgc3VwZXIgbWlzZXIuIEltYWdpbmUgaG93IHdpbGwgaXQ8YnI+bG9vayB0 byBzb21lYm9keSB3aG8gZGlkbid0IGRvIGFueSByZXZpZXdzIGFuZCBkaWRuJ3QgZGlzY3VzcyBp dCBiZWZvcmUuPGJyPlRoZSBwcm9ibGVtIGlzIGZhciBmcm9tIHRyaXZpYWwsIGJ1dCBmcm9tIHRo ZSBjb21taXQgbWVzc2FnZSBpdCBsb29rczxicj5saWtlIHNvbWVib2R5IGp1c3QgZm9yZ290IGEg Y2xvc2UoKSBzb21ld2hlcmUuPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjwv ZGl2PjxkaXY+T2ssIHRoZSBjb21taXQgbWVzc2FnZSBpcyByZXdyaXR0ZW4gaW4gdjYuPC9kaXY+ PGRpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1h cmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBl ciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2Pjxicj4mZ3Q7IFRoaXMgcGF0Y2ggYWxsb3dzIGlw cm90byB0byBhY2NlcHQgY29ubmVjdGlvbiBhbmQgc2VuZCBncmVldGluZyBieTxicj4mZ3Q7IGl0 c2VsZi4gVGh1cyB0aGUgY29ubmVjdGlvbiBpcyBiZWluZyBlc3RhYmxpc2hlZCBhbmQgc3RheXMg aW48YnI+Jmd0OyBmZXRjaF9zY2hlbWEgc3RhdGUgd2hpbGUgdHggdGhyZWFkIGlzIHVucmVzcG9u c2l2ZS4gSXQgc29sdmVzPGJyPiZndDsgZGVzY3JpcHRvcnMgbGVha2FnZSBwcm9ibGVtLjxicj4m Z3Q7PGJyPiZndDsgQ2xvc2VzICMzNzc2PGJyPiZndDsgLS0tPGJyPiZndDsgc3JjL2JveC9pcHJv dG8uY2MgfCAxNDcgKysrKysrKysrKysrKystLS0tPGJyPiZndDsgdGVzdC9hcHAvZ2gtNDc4Ny1u ZXRib3gtZW1wdHktZXJybXNnLnJlc3VsdCB8IDE4IC0tLTxicj4mZ3Q7IHRlc3QvYXBwL2doLTQ3 ODctbmV0Ym94LWVtcHR5LWVycm1zZy50ZXN0Lmx1YSB8IDggLTxicj4mZ3Q7IDMgZmlsZXMgY2hh bmdlZCwgMTEzIGluc2VydGlvbnMoKyksIDYwIGRlbGV0aW9ucygtKTxicj4mZ3Q7PGJyPiZndDsg ZGlmZiAtLWdpdCBhL3NyYy9ib3gvaXByb3RvLmNjIGIvc3JjL2JveC9pcHJvdG8uY2M8YnI+Jmd0 OyBpbmRleCBiOGY2NWU1ZWNhLi44YzEyMmRjNThkIDEwMDY0NDxicj4mZ3Q7IC0tLSBhL3NyYy9i b3gvaXByb3RvLmNjPGJyPiZndDsgKysrIGIvc3JjL2JveC9pcHJvdG8uY2M8YnI+Jmd0OyBAQCAt MjU2LDYgKzI1Niw5IEBAIGlwcm90b19tc2dfZGVsZXRlKHN0cnVjdCBpcHJvdG9fbXNnICptc2cp PGJyPiZndDsgaXByb3RvX3Jlc3VtZSgpOzxicj4mZ3Q7IH08YnI+Jmd0Ozxicj4mZ3Q7ICtzdGF0 aWMgaW5saW5lIHZvaWQ8YnI+Jmd0OyAraXByb3RvX2Nvbm5lY3Rpb25fZGVsZXRlKHN0cnVjdCBp cHJvdG9fY29ubmVjdGlvbiAqY29uKTs8YnI+PGJyPjMuIFRoaXMgYWRkaXRpb25hbCBkZWNsYXJh dGlvbiBpcyBub3QgbmVjZXNzYXJ5LjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90 ZT48L2Rpdj48ZGl2PlJpZ2h0LCBpdCB3YXMgZXh0cmEgY2hhbmdlLCByZW1vdmVkIGluIHY2Ljwv ZGl2PjxkaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2 OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1o ZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj48YnI+Jmd0OyArPGJyPiZndDsgLyoqPGJy PiZndDsgKiBBIHNpbmdsZSBnbG9iYWwgcXVldWUgZm9yIGFsbCByZXF1ZXN0cyBpbiBhbGwgY29u bmVjdGlvbnMuIEFsbDxicj4mZ3Q7ICogcmVxdWVzdHMgZnJvbSBhbGwgY29ubmVjdGlvbnMgYXJl IHByb2Nlc3NlZCBjb25jdXJyZW50bHkuPGJyPiZndDsgQEAgLTQ1Myw2ICs0NTYsOCBAQCBzdHJ1 Y3QgaXByb3RvX2Nvbm5lY3Rpb248YnI+Jmd0OyAqIG1lYW5pbmdsZXNzLjxicj4mZ3Q7ICovPGJy PiZndDsgc2l6ZV90IHBhcnNlX3NpemU7PGJyPiZndDsgKyAvKiogSXByb3RvIGJ1ZmZlciB1c2Vk IHRvIHNlbmQgZ3JlZXRpbmcuICovPGJyPiZndDsgKyBzdHJ1Y3QgaW92ZWMgaXByb3RvX291dHB1 dF9idWY7PGJyPiZndDsgLyoqPGJyPiZndDsgKiBOdWJtZXIgb2YgYWN0aXZlIGxvbmcgcG9sbGlu ZyByZXF1ZXN0cyB0aGF0IGhhdmUgYWxyZWFkeTxicj4mZ3Q7ICogZGlzY2FyZGVkIHRoZWlyIGFy Z3VtZW50cyBpbiBvcmRlciBub3QgdG8gc3RhbGwgb3RoZXI8YnI+Jmd0OyBAQCAtNTY2LDYgKzU3 MSw3IEBAIGlwcm90b19tc2dfbmV3KHN0cnVjdCBpcHJvdG9fY29ubmVjdGlvbiAqY29uKTxicj4m Z3Q7IHJldHVybiBOVUxMOzxicj4mZ3Q7IH08YnI+Jmd0OyBtc2ctJmd0O2Nvbm5lY3Rpb24gPSBj b247PGJyPiZndDsgKyBtc2ctJmd0O2Nsb3NlX2Nvbm5lY3Rpb24gPSBmYWxzZTs8YnI+PGJyPjQu IFlvdSBkb24ndCBuZWVkIHRoaXMgY2hhbmdlIG5vdy4gSG93ZXZlciBzdGlsbCBsb29rcyBkYW5n ZXJvdXMuIFNvIEkgd291bGQ8YnI+bW92ZSBpdCB0byBhIHNlcGFyYXRlIGNvbW1pdC48L2Rpdj48 L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PGRpdj5PaywgbW92ZWQgdG8gc2Vw YXJhdGUgY29tbWl0LjwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+PGRpdj48YmxvY2txdW90ZSBzdHls ZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAg MCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRp dj48ZGl2Pjxicj4mZ3Q7IHJtZWFuX2NvbGxlY3Qocm1lYW5fbmV0LCBJUFJPVE9fUkVRVUVTVFMs IDEpOzxicj4mZ3Q7IHJldHVybiBtc2c7PGJyPiZndDsgfTxicj4mZ3Q7IEBAIC0xMDkwLDYgKzEw OTYsNTEgQEAgaXByb3RvX2Nvbm5lY3Rpb25fb25fb3V0cHV0KGV2X2xvb3AgKmxvb3AsIHN0cnVj dCBldl9pbyAqd2F0Y2hlciw8YnI+Jmd0OyB9PGJyPiZndDsgfTxicj4mZ3Q7PGJyPiZndDsgK3N0 YXRpYyBpbnQ8YnI+Jmd0OyAraXByb3RvX2J1Zl9mbHVzaChzdHJ1Y3QgaXByb3RvX2Nvbm5lY3Rp b24gKmNvbik8YnI+Jmd0OyArezxicj4mZ3Q7ICsgaW50IGZkID0gY29uLSZndDtvdXRwdXQuZmQ7 PGJyPiZndDsgKyBzc2l6ZV90IG53ciA9IHNpb193cml0ZXYoZmQsICZhbXA7Y29uLSZndDtpcHJv dG9fb3V0cHV0X2J1ZiwgMSk7PGJyPiZndDsgKzxicj4mZ3Q7ICsgaWYgKG53ciAmZ3Q7IDApIHs8 YnI+Jmd0OyArIC8qIENvdW50IHN0YXRpc3RpY3MgKi88YnI+Jmd0OyArIHJtZWFuX2NvbGxlY3Qo cm1lYW5fbmV0LCBJUFJPVE9fU0VOVCwgbndyKTs8YnI+Jmd0OyArIHJldHVybiAxOzxicj4mZ3Q7 ICsgfSBlbHNlIGlmIChud3IgJmx0OyAwICZhbXA7JmFtcDsgISBzaW9fd291bGRibG9jayhlcnJu bykpIHs8YnI+PGJyPjUuIFdlIGRvbid0IHVzZSB3aGl0ZXNwYWNlcyBhZnRlciB1bmFyeSBvcGVy YXRvcnMuIFRoZSBzYW1lIGluIHNvbWU8YnI+b3RoZXIgcGxhY2VzLiBQbGVhc2UsIGZpeCBhbGwg b2YgdGhlbS48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PGRpdj5S aWdodCwgY29waWVkIG9sZCBjb2Rlc3R5bGUsIGZpeGVkIGluIHY2LjwvZGl2PjxkaXY+PGJsb2Nr cXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsg cGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1z Zy1tc2ciPjxkaXY+PGRpdj48YnI+Jmd0OyArIGRpYWdfcmFpc2UoKTs8YnI+PGJyPjYuIFBsZWFz ZSwgZG9uJ3QgdXNlIGV4Y2VwdGlvbnMgaW4gdGhlIG5ldyBjb2RlLiBJIGtub3cgeW91PGJyPmNv cHktcGFzdGVkIGl0IGZyb20gaXByb3RvX2ZsdXNoLCBidXQgaXQgZG9lcyBub3QgbWVhbiBpdCBp cyBnb29kLjxicj48YnI+Jmd0OyArIH08YnI+Jmd0OyArPGJyPiZndDsgKyByZXR1cm4gbndyOzxi cj4mZ3Q7ICt9PGJyPiZndDsgKzxicj4mZ3Q7ICtzdGF0aWMgdm9pZDxicj4mZ3Q7ICtpcHJvdG9f Y29ubmVjdGlvbl9vbl9ncmVldGluZyhldl9sb29wICpsb29wLCBzdHJ1Y3QgZXZfaW8gKndhdGNo ZXIsPGJyPiZndDsgKyBpbnQgLyogcmV2ZW50cyAqLyk8YnI+Jmd0OyArezxicj4mZ3Q7ICsgc3Ry dWN0IGlwcm90b19jb25uZWN0aW9uICpjb24gPSAoc3RydWN0IGlwcm90b19jb25uZWN0aW9uICop IHdhdGNoZXItJmd0O2RhdGE7PGJyPjxicj43LiBUaGlzIGlzIG91dCBvZiA4MCBzeW1ib2xzLjwv ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48ZGl2PlJpZ2h0LCBmaXhl ZCBpbiB2Ni48L2Rpdj48ZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29s aWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBj bGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+PGJyPiZndDsgKyB0cnkg ezxicj4mZ3Q7ICsgaW50IHJjOzxicj4mZ3Q7ICsgd2hpbGUgKChyYyA9IGlwcm90b19idWZfZmx1 c2goY29uKSkgJmx0Oz0gMCkgezxicj4mZ3Q7ICsgaWYgKHJjICE9IDApIHs8YnI+Jmd0OyArIGV2 X2lvX3N0YXJ0KGxvb3AsICZhbXA7Y29uLSZndDtvdXRwdXQpOzxicj4mZ3Q7ICsgcmV0dXJuOzxi cj4mZ3Q7ICsgfTxicj4mZ3Q7ICsgfTxicj4mZ3Q7ICsgaWYgKGV2X2lzX2FjdGl2ZSgmYW1wO2Nv bi0mZ3Q7b3V0cHV0KSk8YnI+Jmd0OyArIGV2X2lvX3N0b3AoY29uLSZndDtsb29wLCAmYW1wO2Nv bi0mZ3Q7b3V0cHV0KTs8YnI+PGJyPjguIGV2X2lvX3N0b3AoKSBpcyBzYWZlIHRvIGNhbGwgb24g YSBub24tYWN0aXZlIGV2X3dhdGNoZXIuIFlvdSBkb24ndDxicj5uZWVkIHRoaXMgJ2lmJy48L2Rp dj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PGRpdj5SaWdodCwgZml4ZWQg aW4gdjYuPC9kaXY+PGRpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlk ICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xh c3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2Pjxicj4mZ3Q7ICsgZXZfaW9f aW5pdCgmYW1wO2Nvbi0mZ3Q7b3V0cHV0LCBpcHJvdG9fY29ubmVjdGlvbl9vbl9vdXRwdXQsPGJy PiZndDsgKyBjb24tJmd0O291dHB1dC5mZCwgRVZfV1JJVEUpOzxicj4mZ3Q7ICsgaWYgKGNvbi0m Z3Q7aW5wdXQuY2IgIT0gaXByb3RvX2Nvbm5lY3Rpb25fb25faW5wdXQpPGJyPiZndDsgKyBldl9p b19pbml0KCZhbXA7Y29uLSZndDtpbnB1dCwgaXByb3RvX2Nvbm5lY3Rpb25fb25faW5wdXQsPGJy PiZndDsgKyBjb24tJmd0O2lucHV0LmZkLCBFVl9SRUFEKTs8YnI+Jmd0OyArIGVsc2U8YnI+Jmd0 OyArIGV2X2ZlZWRfZXZlbnQobG9vcCwgJmFtcDtjb24tJmd0O2lucHV0LCBFVl9SRUFEKTs8YnI+ PGJyPjkuIFRoaXMgY29kZSBibG9jayBhYm92ZSBJIGRvbid0IHVuZGVyc3RhbmQuIFdoeSBpcyBp dCBjb25kaXRpb25hbD8gV2h5PGJyPmNiIGlzIG5vdCBlcXVhbCB0byBpcHJvdG9fY29ubmVjdGlv bl9vbl9pbnB1dCBhbHdheXM/IEFuZCB3aHkgZG8geW91IHVzZTxicj5hIGNhbGxiYWNrIGFzIGEg ZmxhZyB0aGF0IGl0IGlzIHRpbWUgdG8gc3RhcnQgcmVhZGluZy4gSSB0aG91Z2h0PGJyPnlvdSBh cmUgc3VwcG9zZWQgdG8gdXNlIHRoZSBjb25uZWN0aW9uIHN0YXRlIGZvciB0aGF0LjwvZGl2Pjwv ZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48ZGl2PlJpZ2h0LCBpdCBpcyBub3Qg cmVhbGx5IG5lZWRlZC4mbmJzcDtGaXhlZCBpbiB2Ni48L2Rpdj48ZGl2PjxibG9ja3F1b3RlIHN0 eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6 MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48 ZGl2PjxkaXY+PGJyPiZndDsgKyB9IGNhdGNoIChFeGNlcHRpb24gKmUpIHs8YnI+Jmd0OyArIGUt Jmd0O2xvZygpOzxicj4mZ3Q7ICsgY29uLSZndDtzdGF0ZSA9IElQUk9UT19DT05ORUNUSU9OX0NM T1NFRDs8YnI+Jmd0OyArIH08YnI+Jmd0OyArfTxicj4mZ3Q7ICs8YnI+Jmd0OyBzdGF0aWMgc3Ry dWN0IGlwcm90b19jb25uZWN0aW9uICo8YnI+Jmd0OyBpcHJvdG9fY29ubmVjdGlvbl9uZXcoaW50 IGZkKTxicj4mZ3Q7IHs8YnI+Jmd0OyBAQCAtMTEwMSw4ICsxMTUyLDggQEAgaXByb3RvX2Nvbm5l Y3Rpb25fbmV3KGludCBmZCk8YnI+Jmd0OyB9PGJyPiZndDsgY29uLSZndDtpbnB1dC5kYXRhID0g Y29uLSZndDtvdXRwdXQuZGF0YSA9IGNvbjs8YnI+Jmd0OyBjb24tJmd0O2xvb3AgPSBsb29wKCk7 PGJyPiZndDsgLSBldl9pb19pbml0KCZhbXA7Y29uLSZndDtpbnB1dCwgaXByb3RvX2Nvbm5lY3Rp b25fb25faW5wdXQsIGZkLCBFVl9SRUFEKTs8YnI+Jmd0OyAtIGV2X2lvX2luaXQoJmFtcDtjb24t Jmd0O291dHB1dCwgaXByb3RvX2Nvbm5lY3Rpb25fb25fb3V0cHV0LCBmZCwgRVZfV1JJVEUpOzxi cj4mZ3Q7ICsgZXZfaW9faW5pdCgmYW1wO2Nvbi0mZ3Q7aW5wdXQsIE5VTEwsIGZkLCBFVl9SRUFE KTs8YnI+PGJyPjEwLiBXaHkgZGlkIHlvdSBudWxsaWZ5IHRoZSBjYWxsYmFjaz8gRXZfaW9faW5p dCBkb2VzIG5vdCBsZWFkIHRvIGV2ZW50PGJyPmxpc3RlbiBzdGFydC4gSXQgb25seSBpbml0aWFs aXplcyB0aGUgc3RydWN0LjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rp dj48ZGl2PldlbGwsJm5ic3A7SSB3YXMgdXNpbmcgaXQgYXMgYSBmbGFnLiBCdXQgaXQgaXMgbmVp dGhlciZuYnNwO2dvb2Qgbm9yIHJlYWxseSBuZWVkZWQsIGZpeGVkIGluIHY2LjwvZGl2PjxkaXY+ PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46 MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMt cmVhZG1zZy1tc2ciPjxkaXY+PGRpdj48YnI+Jmd0OyArIGV2X2lvX2luaXQoJmFtcDtjb24tJmd0 O291dHB1dCwgaXByb3RvX2Nvbm5lY3Rpb25fb25fZ3JlZXRpbmcsIGZkLCBFVl9XUklURSk7PGJy PiZndDsgaWJ1Zl9jcmVhdGUoJmFtcDtjb24tJmd0O2lidWZbMF0sIGNvcmRfc2xhYl9jYWNoZSgp LCBpcHJvdG9fcmVhZGFoZWFkKTs8YnI+Jmd0OyBpYnVmX2NyZWF0ZSgmYW1wO2Nvbi0mZ3Q7aWJ1 ZlsxXSwgY29yZF9zbGFiX2NhY2hlKCksIGlwcm90b19yZWFkYWhlYWQpOzxicj4mZ3Q7IG9idWZf Y3JlYXRlKCZhbXA7Y29uLSZndDtvYnVmWzBdLCAmYW1wO25ldF9zbGFiYywgaXByb3RvX3JlYWRh aGVhZCk7PGJyPiZndDsgQEAgLTEzNzgsMTMgKzE0MjksMTQgQEAgdHhfcHJvY2Vzc19kZXN0cm95 KHN0cnVjdCBjbXNnICptKTxicj4mZ3Q7IHs8YnI+Jmd0OyBzdHJ1Y3QgaXByb3RvX2Nvbm5lY3Rp b24gKmNvbiA9PGJyPiZndDsgY29udGFpbmVyX29mKG0sIHN0cnVjdCBpcHJvdG9fY29ubmVjdGlv biwgZGVzdHJveV9tc2cpOzxicj4mZ3Q7ICsgYXNzZXJ0KGNvbi0mZ3Q7c3RhdGUgPT0gSVBST1RP X0NPTk5FQ1RJT05fREVTVFJPWUVEKTs8YnI+PGJyPjExLiBQbGVhc2UsIGludHJvZHVjZSB0aGUg c3RhdGVzIGluIGEgc2VwYXJhdGUgY29tbWl0LiBJIHRoaW5rIEk8YnI+YWxyZWFkeSBhc2tlZCBm b3IgdGhhdCB3aGVuIHdlIGRpc2N1c3NlZCB0aGUgcHJldmlvdXMgdmVyc2lvbiw8YnI+YnV0IG5v dCBzdXJlLjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48ZGl2Pk5v dGhpbmcgaXMgaW50cm9kdWNlZCwgaXQgaXMganVzdCBhIGNvbW1lbnQgZml4ZWQgYW5kIGFzc2Vy dGlvbiZuYnNwO2FkZGVkLjwvZGl2PjxkaXY+TW92ZWQgdG8gc2VwYXJhdGUgY29tbWl0LjwvZGl2 PjxkaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBt YXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxw ZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj48YnI+Jmd0OyBpZiAoY29uLSZndDtzZXNzaW9u KSB7PGJyPiZndDsgc2Vzc2lvbl9kZXN0cm95KGNvbi0mZ3Q7c2Vzc2lvbik7PGJyPiZndDsgY29u LSZndDtzZXNzaW9uID0gTlVMTDsgLyogc2FmZXR5ICovPGJyPiZndDsgfTxicj4mZ3Q7IC8qPGJy PiZndDsgLSAqIEdvdCB0byBiZSBkb25lIGluIGlwcm90byB0aHJlYWQgc2luY2U8YnI+Jmd0OyAt ICogdGhhdCdzIHdoZXJlIHRoZSBtZW1vcnkgaXMgYWxsb2NhdGVkLjxicj4mZ3Q7ICsgKiBvYnVm IGlzIGJlaW5nIGRlc3Ryb3llZCBpbiB0eCB0aHJlYWQgY2F1c2UgaXQgaXMgd2hlcmU8YnI+Jmd0 OyArICogaXQgd2FzIGFsbG9jYXRlZC48YnI+Jmd0OyAqLzxicj4mZ3Q7IG9idWZfZGVzdHJveSgm YW1wO2Nvbi0mZ3Q7b2J1ZlswXSk7PGJyPiZndDsgb2J1Zl9kZXN0cm95KCZhbXA7Y29uLSZndDtv YnVmWzFdKTs8YnI+Jmd0OyBAQCAtMTkzNiw1MCArMTk4OCw3MiBAQCBuZXRfZW5kX3N1YnNjcmli ZShzdHJ1Y3QgY21zZyAqbSk8YnI+Jmd0OyB9PGJyPiZndDs8YnI+Jmd0OyAvKio8YnI+Jmd0OyAt ICogSGFuZHNoYWtlIGEgY29ubmVjdGlvbjogaW52b2tlIHRoZSBvbi1jb25uZWN0IHRyaWdnZXI8 YnI+Jmd0OyAtICogYW5kIHBvc3NpYmx5IGF1dGhlbnRpY2F0ZS4gVHJ5IHRvIHNlbmQgdGhlIGNs aWVudCBhbiBlcnJvcjxicj4mZ3Q7IC0gKiB1cG9uIGEgZmFpbHVyZS48YnI+Jmd0OyArICogSGFu ZHNoYWtlIGEgY29ubmVjdGlvbjogc2VuZCBncmVldGluZyBmb3IgaXQuPGJyPiZndDsgKyAqLzxi cj4mZ3Q7ICtzdGF0aWMgdm9pZDxicj4mZ3Q7ICtpcHJvdG9fcHJvY2Vzc19jb25uZWN0KHN0cnVj dCBpcHJvdG9fbXNnICptc2cpPGJyPiZndDsgK3s8YnI+Jmd0OyArIHN0cnVjdCBpcHJvdG9fY29u bmVjdGlvbiAqY29uID0gbXNnLSZndDtjb25uZWN0aW9uOzxicj4mZ3Q7ICsgY29uLSZndDtpcHJv dG9fb3V0cHV0X2J1Zi5pb3ZfYmFzZSA9IHN0YXRpY19hbGxvYyhJUFJPVE9fR1JFRVRJTkdfU0la RSk7PGJyPjxicj4xMi4gVGhlcmUgaXMgYSBzZXJpb3VzIHByb2JsZW0gaW4gdGhhdCBhbGxvY2F0 aW9uLiBTdGF0aWMgYWxsb2NhdG9yIGlzPGJyPnZlcnkgdm9sYXRpbGUuIFdoYXQgaXMgcmV0dXJu ZWQgZnJvbSBzdGF0aWNfYWxsb2MoKSwgZG9lcyBub3QgYmVsb25nIHRvPGJyPnlvdS4gVGhpcyBt ZW1vcnkgaXMgaGVhdmlseSByZXVzZWQsIGFuZCBjYW4gYmUgaGFybmVzc2VkIG9ubHkgZm9yIHZl cnk8YnI+c2hvcnQgbGl2aW5nIG1lbW9yeSBpZiB5b3UgYXJlIHN1cmUgdGhlcmUgYXJlIG5vIG90 aGVyIHN0YXRpYyBhbGxvY3M8YnI+YXJvdW5kLjxicj48YnI+SGVyZSB5b3UgYWxsb2NhdGUgYSBs b25nLWxpdmluZyBvYmplY3Qgb24gaXQuIFNvIGl0IHdpbGwgYmUganVzdCBvdmVycmlkZGVuPGJy PmluIGNhc2Ugb2YgYW55IHNlcmlvdXMgbG9hZCwgYmVjYXVzZSBhbGwgbmV3IGNvbm5lY3Rpb25z IHdpbGwgY2FsbCB0aGlzPGJyPmFsbG9jLCBhbmQgdGhlIHN0YXRpYyBidWZmZXIgd2lsbCBiZSBy ZWN5Y2xlZCBhbmQgdHVybmVkIGludG8gYSBwaWxlIG9mPGJyPmdhcmJhZ2UuPC9kaXY+PC9kaXY+ PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjwvZGl2PjxkaXY+QWxsIHJpZ2h0LCBteSBiYWQsIEkg ZGVjaWRlZCB0byBwdXQgaXQgaW50byBzdHJ1Y3QgaXByb3RvX2Nvbm5lY3Rpb24gYXMgY2hhcjwv ZGl2PjxkaXY+YnVmZmVyJm5ic3A7YXMgbG9uZyBhcyBpdCBpcyBhbHJlYWR5IDIxNzYsIGFuZCB0 aHVzJm5ic3A7d2l0aCBncmVldGluZyBidWYgaXQgaXMgMjMwNC48L2Rpdj48ZGl2PnN0cnVjdCBp cHJvdG8gY29ubmVjdGlvbiBpdHNlbGYmbmJzcDtpcyBhbGxvY2F0ZWQgd2l0aCBtZW1wb29sIG9u IGNvcmQgc2xhYiZuYnNwO2NhY2hlLjwvZGl2PjxkaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRl ci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4 OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj48 YnI+Jmd0OyArIGNvbi0mZ3Q7aXByb3RvX291dHB1dF9idWYuaW92X2xlbiA9IElQUk9UT19HUkVF VElOR19TSVpFOzxicj4mZ3Q7ICsgLyo8YnI+Jmd0OyArICogSU5TVEFOQ0VfVVVJRCBpcyBndWFy YW50ZWVkIHRvIGJlIGluaXRlZCBiZWZvcmUgdGhpcyBtb21lbnQuPGJyPiZndDsgKyAqIFdlIHN0 YXJ0IGxpc3RlbmluZyBlaXRoZXIgaW4gbG9jYWxfcmVjb3ZlcnkoKSBvciBib290c3RyYXAoKS48 YnI+Jmd0OyArICogVGhlIElOU1RBTkNFX1VVSUQgaXMgZW5zdXJlZCB0byBiZSBpbml0ZWQgaW4g dGhlIGJlZ2lubmluZyBvZjxicj4mZ3Q7ICsgKiBib3RoIG1ldGhvZHMuIEluIGNhc2Ugb2YgbG9j YWxfcmVjb3ZlcnkoKSBpdCBpcyB2ZXJpZmllZCB0aGF0PGJyPiZndDsgKyAqIElOU1RBTkNFX1VV SUQgd2FzIHJlYWQgZnJvbSB0aGUgc25hcHNob3QgaW4gbWVtdHhfZW5naW5lX25ldygpLjxicj4m Z3Q7ICsgKiBJbiBib290c3RyYXAoKSBJTlNUQU5DRV9VVUlEIGlzIGVpdGhlciB0YWtlbiBmcm9t IHRoZTxicj4mZ3Q7ICsgKiBpbnN0YW5jZV91dWlkIGJveC5jZmd7fSBwYXJhbSBvciBjcmVhdGVk IG9uIHRoZSBzcG90Ljxicj4mZ3Q7ICsgKi88YnI+Jmd0OyArIHN0cnVjdCB0dF91dWlkIHV1aWQg PSBJTlNUQU5DRV9VVUlEOzxicj48YnI+MTMuIFdoeSBkbyB5b3UgbmVlZCB0byBjb3B5IGl0IG9u IHRoZSBzdGFjaz8gV2h5IGNhbid0IHlvdSB1c2UgcG9pbnRlcjxicj5hdCBJTlNUQU5DRV9VVUlE IHZhcmlhYmxlPzwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48ZGl2 PlJpZ2h0LCBmaXhlZCBpbiB2Ni48L2Rpdj48ZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXIt bGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsi PjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+PGJy PiZndDsgKyByYW5kb21fYnl0ZXMoY29uLSZndDtzYWx0LCBJUFJPVE9fU0FMVF9TSVpFKTs8YnI+ Jmd0OyArIGdyZWV0aW5nX2VuY29kZSgoY2hhciAqKWNvbi0mZ3Q7aXByb3RvX291dHB1dF9idWYu aW92X2Jhc2UsPGJyPiZndDsgKyB0YXJhbnRvb2xfdmVyc2lvbl9pZCgpLCAmYW1wO3V1aWQsPGJy PiZndDsgKyBjb24tJmd0O3NhbHQsIElQUk9UT19TQUxUX1NJWkUpOzxicj4mZ3Q7ICsgYXNzZXJ0 KGV2aW9faGFzX2ZkKCZhbXA7Y29uLSZndDtvdXRwdXQpKTs8YnI+Jmd0OyArIGV2X2ZlZWRfZXZl bnQoY29uLSZndDtsb29wLCAmYW1wO2Nvbi0mZ3Q7b3V0cHV0LCBFVl9XUklURSk7PGJyPiZndDsg K308L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj4mbmJzcDs8L2Rpdj48 ZGl2IGRhdGEtc2lnbmF0dXJlLXdpZGdldD0iY29udGFpbmVyIj48ZGl2IGRhdGEtc2lnbmF0dXJl LXdpZGdldD0iY29udGVudCI+PGRpdj4tLTxicj5JbHlhIEtvc2FyZXY8L2Rpdj48L2Rpdj48L2Rp dj48ZGl2PiZuYnNwOzwvZGl2PjwvZGl2PjwvQk9EWT48L0hUTUw+Cg== ----ALT--fA83410d33429FbDB26b70bB12129e2C1607816337--