From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id F391A65EF25; Sun, 8 Oct 2023 17:58:36 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org F391A65EF25 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1696777117; bh=sACHTpgvlmt8nGcBFAUfvtCvhcRIfqWTg9/DsulpLh0=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=pqP/TIBvUR9ZtYNYXaxVA2BU1K/X0MN0DDbe6/Pdq1j7Mn9Me7YDapWAggi0zJ8qV /78vgn0j5+Hyz6tvggIQfBgCu4T0gho+gkQbNQaEgPb3ctFaXgkbV3rPrVQD1KjfEE TOpACMoWOamvZRpUSQTzytJjcBi3lHhsScRCi+QI= Received: from f178.i.mail.ru (f178.i.mail.ru [45.84.128.83]) (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 0E8115BF44C for ; Sun, 8 Oct 2023 17:58:35 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 0E8115BF44C Received: by f178.i.mail.ru with local (envelope-from ) id 1qpVEn-0006BR-RP; Sun, 08 Oct 2023 17:58:34 +0300 Received: by e.mail.ru with HTTP; Sun, 08 Oct 2023 17:58:33 +0300 To: =?UTF-8?B?U2VyZ2V5IEJyb25uaWtvdg==?= MIME-Version: 1.0 X-Mailer: Mail.Ru Mailer 1.0 X-SenderField-ReMsg: 16966017921179153011 X-SenderField-Remind: 0 Date: Sun, 08 Oct 2023 17:58:33 +0300 Message-ID: <1696777113.821964613@f333.i.mail.ru> X-Priority: 3 (Normal) Content-Type: multipart/alternative; boundary="--ALT--c4Ba7F9d4eD7C64075C7Ee2D867bD0e81696777113" In-Reply-To: References: X-4EC0790: 10 X-7564579A: B8F34718100C35BD X-77F55803: 119C1F4DF6A9251CB3F2B3760F780D93593CE56811B56ED0A365836F4C8B7D3D8FD872164937FA4C6743FC6A604CCC1B5C2AEFF236360ADCC239F4B4D35398BF9C5D93CA10E0303E X-7FA49CB5: 70AAF3C13DB70168C09775C1D3CA48CF4BCF058D1169A26BB2086D80B0504778CF19DD082D7633A0ACBFF42033827DA764CD17681C2FEB7A23F8577A6DFFEA7CAF9A919BEF855D66C4224003CC836476ABE134FDCE4E2725BFD28B28ED4578739E625A9149C048EE26055571C92BF10F5644E22E05AA81AEB287FD4696A6DC2FA8DF7F3B2552694A4E2F5AFA99E116B42401471946AA11AF0E30A4C9C8E338DA62F001A90027CA0C8F08D7030A58E5AD1A62830130A00468AEEEE3FBA3A834EE7353EFBB5533756669808959842B204F01FCACF536251714DB6E9997A3568D19A471835C12D1D9774AD6D5ED66289B5278DA827A17800CE7A6779F98BF527B7A9FA2833FD35BB23D2EF20D2F80756B5F868A13BD56FB6657A471835C12D1D977725E5C173C3A84C3A333A05395E4745B117882F4460429728AD0CFFFB425014E868A13BD56FB6657E2021AF6380DFAD1A18204E546F3947CB11811A4A51E3B096D1867E19FE1407959CC434672EE6371089D37D7C0E48F6C8AA50765F7900637F765F39FA4E70FFE43847C11F186F3C59DAA53EE0834AAEE X-C1DE0DAB: 0D63561A33F958A5B3B7BF77021C7F37504AC446D24E0F6F2EA0F950E5CAFE4AF87CCE6106E1FC07E67D4AC08A07B9B0F254576263B31EA9CB5012B2E24CD356 X-C8649E89: 1C3962B70DF3F0ADE2815F1F17DA7190F22D334B9B612B432CCB5A6D6581D03D0776B5B2C279835F17BCBE6708A5A68D02015372BE9702A22EE0136635F059E23559B52FB82315AFD85C579B7128CE960B45958481BC457742068798EAF579769B815B7972F6FBBE825B3182C5941EEF704CD97B8E125EB5C7CEAA0681F5848F4C41F94D744909CED78ACA237E033A03E5771FB83DCB4455B2E44A6A118E769B33F2C28C22F508233FCF178C6DD14203 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5+wYjsrrSY/u8Y3PrTqANeitKFiSd6Yd7yPpbiiZ/d5BsxIjK0jGQgCHUM3Ry2Lt2G3MDkMauH3h0dBdQGj+BB/iPzQYh7XS329fgu+/vnDhvUrVOXLIlg9H1uxvmTOicw== X-Mailru-MI: 10000000000400800 X-Mailru-Sender: 93642D1811B5528825EC92B346307B14B8151AFAB2F591F0DA3679D8A1692F9F3CD14ABA6B1516CA90F690EABC921FE22CBAB8DCC5673082D51284F0FE6F529ABC7555A253F5B200024ACE5D9AEE25D4E7B7573491FBF26DB0DAF586E7D11B3E67EA787935ED9F1B X-Mras: Ok X-Spam: undefined Subject: Re: [Tarantool-patches] =?utf-8?b?W1BBVENIIGx1YWppdF1bdjJdIExKX0dD?= =?utf-8?b?NjQ6IEZpeCBsdWFfY29uY2F0KCku?= X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Maxim Kokryashkin via Tarantool-patches Reply-To: =?UTF-8?B?TWF4aW0gS29rcnlhc2hraW4=?= Cc: max.kokryashkin@gmail.com, tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" ----ALT--c4Ba7F9d4eD7C64075C7Ee2D867bD0e81696777113 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpLCBTZXJnZXkhClRoYW5rcyBmb3IgdGhlIHBhdGNoIQpMR1RNCsKgCsKgCi0tCkJlc3QgcmVn YXJkcywKTWF4aW0gS29rcnlhc2hraW4KwqAKwqAgCj7Qn9GP0YLQvdC40YbQsCwgNiDQvtC60YLR j9Cx0YDRjyAyMDIzLCAxNzoxNiArMDM6MDAg0L7RgiBTZXJnZXkgQnJvbm5pa292IHZpYSBUYXJh bnRvb2wtcGF0Y2hlcyA8dGFyYW50b29sLXBhdGNoZXNAZGV2LnRhcmFudG9vbC5vcmc+Ogo+wqAK PkZyb206IFNlcmdleSBCcm9ubmlrb3YgPCBzZXJnZXliQHRhcmFudG9vbC5vcmcgPgo+Cj5SZXBv cnRlZCBieSBNYXRoaWFzIFdlc3RlcmRhaGwuCj4KPihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0 IDYzM2YyNjVmNjdmMzIyY2JlMmM1ZmQxMWQzZTQ2ZDk2OGFjMjIwZjcpCj4KPkx1YSA1LjEgUmVm ZXJlbmNlIE1hbnVhbCBbMV0gZGVmaW5lcyBhIGZ1bmN0aW9uIGBsdWFfY29uY2F0YCwgdGhhdDoK PsKgCj4+IHZvaWQgbHVhX2NvbmNhdCAobHVhX1N0YXRlICpMLCBpbnQgbik7Cj4+Cj4+IENvbmNh dGVuYXRlcyB0aGUgbiB2YWx1ZXMgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2ssIHBvcHMgdGhlbSwg YW5kIGxlYXZlcwo+PiB0aGUgcmVzdWx0IGF0IHRoZSB0b3AuCj5XaXRob3V0IHRoZSBwYXRjaCBg bHVhX2NvbmNhdCgpYCBiZWhhdmVkIGluY29ycmVjdGx5IHdpdGggdXNlcmRhdGEgd2l0aAo+ZGVm aW5lZCBgX19jb25jYXRgIG1ldGFtZXRob2QuIFRoZSBwcm9ibGVtIGlzIEdDNjQtc3BlY2lmaWMu Cj4KPkFzc3VtaW5nIHdlIGhhdmUgdGhyZWUgbGl0ZXJhbHMgYW5kIGEgdXNlcmRhdGEgd2l0aCBk ZWZpbmVkICJfX2NvbmNhdCIKPm1ldGFtZXRob2Qgb24gdG9wIG9mIHRoZSBMdWEgc3RhY2s6Cj4K PjEgW3N0cmluZ10KPjIgW3N0cmluZ10KPjMgW3N0cmluZ10KPjQgW3N0cmluZ10KPjUgW3VzZXJk YXRhXSA8LS0tIHRvcAo+Cj5PbiBhdHRlbXB0IHRvIGNvbmNhdGVuYXRlICp0d28qIGl0ZW1zIG9u IHRvcCBvZiB0aGUgTHVhIHN0YWNrLAo+YGx1YV9jb25jYXQoKWAgY29uY2F0ZW5hdGVzICpmb3Vy KiBpdGVtcyBhbmQgbGVhdmVzIHJlc3VsdCBvbiB0aGUgdG9wOgo+Cj4xIFtzdHJpbmddCj4yIFtz dHJpbmddW3N0cmluZ11bc3RyaW5nXVt1c2VyZGF0YV0gPC0tLSB0b3AKPgo+VGhlIHByb2JsZW0g aXMgaW4gaW5jb3JyZWN0IGNhbGN1bGF0aW9uIG9mIGBuYCBjb3VudGVyIGluIHRoZSBsb29wIGlu Cj5pbXBsZW1lbnRhdGlvbiBvZiBmdW5jdGlvbiBgbHVhX2NvbmNhdGAuIFdpdGhvdXQgdGhlIGZp eCBgbmAgaXMgZXF1YWwgdG8KPjMgYXQgdGhlIGVuZCBvZiB0aGUgZmlyc3QgaXRlcmF0aW9uIGFu ZCB0aGVyZWZvcmUgaXQgZ29lcyB0byB0aGUgbmV4dAo+aXRlcmF0aW9uIG9mIGNvbmNhdGVuYXRp b24uIEluIHRoZSBmaXhlZCBpbXBsZW1lbnRhdGlvbiBvZgo+YGx1YV9jb25jYXQoKWAgYG5gIGlz IGVxdWFsIHRvIDEgYXQgdGhlIGVuZCBvZiB0aGUgZmlyc3QgbG9vcCBpdGVyYXRpb24sCj5kZWNy ZW1lbnRlZCBpbiBhIGxvb3AgcG9zdGNvbmRpdGlvbiBhbmQgYnJlYWtzIHRoZSBsb29wLgo+Cj5U aGUgcGF0Y2ggZml4ZXMgaW5jb3JyZWN0IGJlaGF2aW91ci4KPgo+MS4gIGh0dHBzOi8vd3d3Lmx1 YS5vcmcvbWFudWFsLzUuMS9tYW51YWwuaHRtbAo+Cj5TZXJnZXkgQnJvbm5pa292Ogo+KiBhZGRl ZCB0aGUgZGVzY3JpcHRpb24gYW5kIHRoZSB0ZXN0IGZvciB0aGUgcHJvYmxlbQo+Cj5QYXJ0IG9m IHRhcmFudG9vbC90YXJhbnRvb2wjODgyNQo+LS0tCj5QUjogIGh0dHBzOi8vZ2l0aHViLmNvbS90 YXJhbnRvb2wvdGFyYW50b29sL3B1bGwvOTE3Ngo+QnJhbmNoOiAgaHR0cHM6Ly9naXRodWIuY29t L3RhcmFudG9vbC9sdWFqaXQvY29tbWl0cy9saWd1cmlvL2xqLTg4MS1maXgtY29uY2F0Cj5Jc3N1 ZXM6Cj4tICBodHRwczovL2dpdGh1Yi5jb20vTHVhSklUL0x1YUpJVC9pc3N1ZXMvODgxCj4tICBo dHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9pc3N1ZXMvODgyNQo+Cj5DaGFu Z2VzOgo+LSBmaXhlZCB0eXBvcwo+LSB1cGRhdGVkIGFzc2VydGlvbnMgKGJvb2wgYXNzZXJ0cyBy ZXBsYWNlZCB3aXRoIGludCBhc3NlcnRpb25zKQo+LSByZXBsYWNlZCB1c2VyZGF0YSB3aXRoIHN0 cnVjdCB3aXRoIHVzZXJkYXRhIHdpdGggaW50ZWdlciBwZXIgTWF4J3MgcmVxdWVzdAo+dGhhdCdz IGFsbCwgZm9sa3MKPgo+wqBzcmMvbGpfYXBpLmMgfCAyICstCj7CoC4uLi9sai04ODEtZml4LWx1 YS1jb25jYXQudGVzdC5jIHwgOTUgKysrKysrKysrKysrKysrKysrKwo+wqAyIGZpbGVzIGNoYW5n ZWQsIDk2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPsKgY3JlYXRlIG1vZGUgMTAwNjQ0 IHRlc3QvdGFyYW50b29sLWMtdGVzdHMvbGotODgxLWZpeC1sdWEtY29uY2F0LnRlc3QuYwo+Cj5k aWZmIC0tZ2l0IGEvc3JjL2xqX2FwaS5jIGIvc3JjL2xqX2FwaS5jCj5pbmRleCAwNWUwMjAyOS4u M2JhY2FkMzMgMTAwNjQ0Cj4tLS0gYS9zcmMvbGpfYXBpLmMKPisrKyBiL3NyYy9sal9hcGkuYwo+ QEAgLTgwMSw3ICs4MDEsNyBAQCBMVUFfQVBJIHZvaWQgbHVhX2NvbmNhdChsdWFfU3RhdGUgKkws IGludCBuKQo+wqAgTC0+dG9wIC09IG47Cj7CoCBicmVhazsKPsKgwqDCoMKgwqDCoMKgfQo+LSBu IC09IChpbnQpKEwtPnRvcCAtIHRvcCk7Cj4rIG4gLT0gKGludCkoTC0+dG9wIC0gKHRvcCAtIDIq TEpfRlIyKSk7Cj7CoMKgwqDCoMKgwqDCoEwtPnRvcCA9IHRvcCsyOwo+wqDCoMKgwqDCoMKgwqBq aXRfc2VjdXJlX2NhbGwoTCwgdG9wLCAxKzEpOwo+wqDCoMKgwqDCoMKgwqBMLT50b3AgLT0gMStM Sl9GUjI7Cj5kaWZmIC0tZ2l0IGEvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9sai04ODEtZml4LWx1 YS1jb25jYXQudGVzdC5jIGIvdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9sai04ODEtZml4LWx1YS1j b25jYXQudGVzdC5jCj5uZXcgZmlsZSBtb2RlIDEwMDY0NAo+aW5kZXggMDAwMDAwMDAuLjFiMWYx NDZmCj4tLS0gL2Rldi9udWxsCj4rKysgYi90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL2xqLTg4MS1m aXgtbHVhLWNvbmNhdC50ZXN0LmMKPkBAIC0wLDAgKzEsOTUgQEAKPisjaW5jbHVkZSA8c3RyaW5n Lmg+Cj4rCj4rI2luY2x1ZGUgImx1YS5oIgo+KyNpbmNsdWRlICJsYXV4bGliLmgiCj4rCj4rI2lu Y2x1ZGUgInRlc3QuaCIKPisjaW5jbHVkZSAidXRpbHMuaCIKPisKPisvKgo+KyAqIFRoaXMgdGVz dCBkZW1vbnN0cmF0ZXMgTHVhSklUJ3MgaW5jb3JyZWN0IGJlaGF2aW91ciwgd2hlbgo+KyAqIGNh bGxpbmcgYGx1YV9jb25jYXQoKWAgd2l0aCB1c2VyZGF0YSB3aXRoIF9fY29uY2F0IG1ldGFtZXRo b2QuCj4rICogU2VlICBodHRwczovL2dpdGh1Yi5jb20vTHVhSklUL0x1YUpJVC9pc3N1ZXMvODgx IGZvciBkZXRhaWxzLgo+KyAqLwo+Kwo+KyNkZWZpbmUgTVRfTkFNRSAiaW50Igo+Kwo+K3N0YXRp YyBpbnQgSU5GT19jb25jYXQobHVhX1N0YXRlICpMKQo+K3sKPisgY29uc3QgY2hhciAqcyA9IGx1 YUxfY2hlY2tzdHJpbmcoTCwgMSk7Cj4rIGludCAqbiA9IChpbnQgKilsdWFMX2NoZWNrdWRhdGEo TCwgMiwgTVRfTkFNRSk7Cj4rIC8qIERvIG5vbi1kZWZhdWx0IGNvbmNhdGVuYXRpb24uICovCj4r IGx1YV9wdXNoZnN0cmluZyhMLCAiJXMgKyAlZCIsIHMsICpuKTsKPisgcmV0dXJuIDE7Cj4rfQo+ Kwo+K3N0YXRpYyBjb25zdCBsdWFMX1JlZyBtdFtdID0KPit7Cj4rIHsiX19jb25jYXQiLCBJTkZP X2NvbmNhdH0sCj4rIHtOVUxMLCBOVUxMfQo+K307Cj4rCj4rc3RhdGljIGludCBsdWFfY29uY2F0 X3Rlc3RjYXNlKHZvaWQgKnRlc3Rfc3RhdGUpCj4rewo+KyAvKiBTZXR1cC4gKi8KPisgbHVhX1N0 YXRlICpMID0gdGVzdF9zdGF0ZTsKPisgY29uc3QgaW50IHRvcCA9IDQ7Cj4rCj4rIC8qIENyZWF0 ZSBtZXRhdGFibGUgYW5kIHB1dCBpdCB0byB0aGUgTHVhIHJlZ2lzdHJ5LiAqLwo+KyBsdWFMX25l d21ldGF0YWJsZShMLCBNVF9OQU1FKTsKPisgLyogRmlsbCBtZXRhdGFibGUuICovCj4rIGx1YUxf cmVnaXN0ZXIoTCwgMCwgbXQpOwo+KyBsdWFfcG9wKEwsIDEpOwo+Kwo+KyBhc3NlcnRfaW50X2Vx dWFsKGx1YV9nZXR0b3AoTCksIDApOwo+Kwo+KyBsdWFfcHVzaGxpdGVyYWwoTCwgIkMiKTsKPisg bHVhX3B1c2hsaXRlcmFsKEwsICJCIik7Cj4rIGx1YV9wdXNobGl0ZXJhbChMLCAiQSIpOwo+Kwo+ KyBpbnQgKm4gPSAoaW50ICopbHVhX25ld3VzZXJkYXRhKEwsIHNpemVvZihpbnQpKTsKPisgKm4g PSAxMDA7Cj4rCj4rIGx1YUxfZ2V0bWV0YXRhYmxlKEwsIE1UX05BTUUpOwo+KyBsdWFfc2V0bWV0 YXRhYmxlKEwsIC0yKTsKPisKPisgYXNzZXJ0X2ludF9lcXVhbChsdWFfZ2V0dG9wKEwpLCB0b3Ap Owo+Kwo+KyAvKiBUZXN0IGJvZHkuICovCj4rCj4rIC8qCj4rICogdm9pZCBsdWFfY29uY2F0IChs dWFfU3RhdGUgKkwsIGludCBuKTsKPisgKgo+KyAqIENvbmNhdGVuYXRlcyB0aGUgbiB2YWx1ZXMg YXQgdGhlIHRvcCBvZiB0aGUgc3RhY2ssCj4rICogcG9wcyB0aGVtLCBhbmQgbGVhdmVzIHRoZSBy ZXN1bHQgYXQgdGhlIHRvcC4gSWYgbiBpcyAxLAo+KyAqIHRoZSByZXN1bHQgaXMgdGhlIHNpbmds ZSB2YWx1ZSBvbiB0aGUgc3RhY2s7IGlmIG4gaXMgMCwKPisgKiB0aGUgcmVzdWx0IGlzIHRoZSBl bXB0eSBzdHJpbmcgWzFdLgo+KyAqCj4rICogMS4gIGh0dHBzOi8vd3d3Lmx1YS5vcmcvbWFudWFs LzUuMS9tYW51YWwuaHRtbAo+KyAqLwo+Kwo+KyAvKiBDb25jYXRlbmF0ZSB0d28gZWxlbWVudHMg b24gdG9wLiAqLwo+KyBsdWFfY29uY2F0KEwsIDIpOwo+Kwo+KyBjb25zdCBjaGFyICpzdHIgPSBs dWFfdG9zdHJpbmcoTCwgLTEpOwo+KyBhc3NlcnRfaW50X2VxdWFsKGx1YV9nZXR0b3AoTCksIHRv cCAtIDIgKyAxKTsKPisgY29uc3QgY2hhciBleHBlY3RlZF9zdHJbXSA9ICJBICsgMTAwIjsKPisg YXNzZXJ0X3N0cl9lcXVhbChzdHIsIGV4cGVjdGVkX3N0ciwgc3RybGVuKGV4cGVjdGVkX3N0cikp Owo+Kwo+KyAvKiBUZWFyZG93bi4gKi8KPisgbHVhX3NldHRvcChMLCAwKTsKPisKPisgcmV0dXJu IFRFU1RfRVhJVF9TVUNDRVNTOwo+K30KPisKPitpbnQgbWFpbih2b2lkKQo+K3sKPisgbHVhX1N0 YXRlICpMID0gdXRpbHNfbHVhX2luaXQoKTsKPisgY29uc3Qgc3RydWN0IHRlc3RfdW5pdCB0Z3Jv dXBbXSA9IHsKPisgdGVzdF91bml0X2RlZihsdWFfY29uY2F0X3Rlc3RjYXNlKSwKPisgfTsKPisg Y29uc3QgaW50IHRlc3RfcmVzdWx0ID0gdGVzdF9ydW5fZ3JvdXAodGdyb3VwLCBMKTsKPisgdXRp bHNfbHVhX2Nsb3NlKEwpOwo+Kwo+KyByZXR1cm4gdGVzdF9yZXN1bHQ7Cj4rfQo+LS0KPjIuMzQu MQrCoA== ----ALT--c4Ba7F9d4eD7C64075C7Ee2D867bD0e81696777113 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+SGksIFNlcmdleSE8L2Rpdj48ZGl2PlRoYW5rcyBmb3IgdGhlIHBh dGNoITwvZGl2PjxkaXY+TEdUTTwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+PGRpdj4mbmJzcDs8L2Rp dj48ZGl2IGRhdGEtc2lnbmF0dXJlLXdpZGdldD0iY29udGFpbmVyIj48ZGl2IGRhdGEtc2lnbmF0 dXJlLXdpZGdldD0iY29udGVudCI+PGRpdj4tLTxicj5CZXN0IHJlZ2FyZHMsPC9kaXY+PGRpdj5N YXhpbSBLb2tyeWFzaGtpbjwvZGl2PjwvZGl2PjwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+PGRpdj4m bmJzcDs8L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3 QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij7Qn9GP0YLQvdC40YbQsCwgNiDQ vtC60YLRj9Cx0YDRjyAyMDIzLCAxNzoxNiArMDM6MDAg0L7RgiBTZXJnZXkgQnJvbm5pa292IHZp YSBUYXJhbnRvb2wtcGF0Y2hlcyAmbHQ7dGFyYW50b29sLXBhdGNoZXNAZGV2LnRhcmFudG9vbC5v cmcmZ3Q7Ojxicj4mbmJzcDs8ZGl2IGlkPSIiPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFk bXNnLW1zZyI+PGRpdj48ZGl2IGlkPSJzdHlsZV8xNjk2NjAxNzkyMTE3OTE1MzAxMV9CT0RZIj5G cm9tOiBTZXJnZXkgQnJvbm5pa292ICZsdDs8YSBocmVmPSIvY29tcG9zZT9Ubz1zZXJnZXliQHRh cmFudG9vbC5vcmciPnNlcmdleWJAdGFyYW50b29sLm9yZzwvYT4mZ3Q7PGJyPjxicj5SZXBvcnRl ZCBieSBNYXRoaWFzIFdlc3RlcmRhaGwuPGJyPjxicj4oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1p dCA2MzNmMjY1ZjY3ZjMyMmNiZTJjNWZkMTFkM2U0NmQ5NjhhYzIyMGY3KTxicj48YnI+THVhIDUu MSBSZWZlcmVuY2UgTWFudWFsIFsxXSBkZWZpbmVzIGEgZnVuY3Rpb24gYGx1YV9jb25jYXRgLCB0 aGF0Ojxicj4mbmJzcDs8ZGl2IGNsYXNzPSJtYWlsLXF1b3RlLWNvbGxhcHNlIj4mZ3Q7IHZvaWQg bHVhX2NvbmNhdCAobHVhX1N0YXRlICpMLCBpbnQgbik7PGJyPiZndDs8YnI+Jmd0OyBDb25jYXRl bmF0ZXMgdGhlIG4gdmFsdWVzIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLCBwb3BzIHRoZW0sIGFu ZCBsZWF2ZXM8YnI+Jmd0OyB0aGUgcmVzdWx0IGF0IHRoZSB0b3AuPC9kaXY+PGJyPldpdGhvdXQg dGhlIHBhdGNoIGBsdWFfY29uY2F0KClgIGJlaGF2ZWQgaW5jb3JyZWN0bHkgd2l0aCB1c2VyZGF0 YSB3aXRoPGJyPmRlZmluZWQgYF9fY29uY2F0YCBtZXRhbWV0aG9kLiBUaGUgcHJvYmxlbSBpcyBH QzY0LXNwZWNpZmljLjxicj48YnI+QXNzdW1pbmcgd2UgaGF2ZSB0aHJlZSBsaXRlcmFscyBhbmQg YSB1c2VyZGF0YSB3aXRoIGRlZmluZWQgIl9fY29uY2F0Ijxicj5tZXRhbWV0aG9kIG9uIHRvcCBv ZiB0aGUgTHVhIHN0YWNrOjxicj48YnI+MSBbc3RyaW5nXTxicj4yIFtzdHJpbmddPGJyPjMgW3N0 cmluZ108YnI+NCBbc3RyaW5nXTxicj41IFt1c2VyZGF0YV0gJmx0Oy0tLSB0b3A8YnI+PGJyPk9u IGF0dGVtcHQgdG8gY29uY2F0ZW5hdGUgKnR3byogaXRlbXMgb24gdG9wIG9mIHRoZSBMdWEgc3Rh Y2ssPGJyPmBsdWFfY29uY2F0KClgIGNvbmNhdGVuYXRlcyAqZm91ciogaXRlbXMgYW5kIGxlYXZl cyByZXN1bHQgb24gdGhlIHRvcDo8YnI+PGJyPjEgW3N0cmluZ108YnI+MiBbc3RyaW5nXVtzdHJp bmddW3N0cmluZ11bdXNlcmRhdGFdICZsdDstLS0gdG9wPGJyPjxicj5UaGUgcHJvYmxlbSBpcyBp biBpbmNvcnJlY3QgY2FsY3VsYXRpb24gb2YgYG5gIGNvdW50ZXIgaW4gdGhlIGxvb3AgaW48YnI+ aW1wbGVtZW50YXRpb24gb2YgZnVuY3Rpb24gYGx1YV9jb25jYXRgLiBXaXRob3V0IHRoZSBmaXgg YG5gIGlzIGVxdWFsIHRvPGJyPjMgYXQgdGhlIGVuZCBvZiB0aGUgZmlyc3QgaXRlcmF0aW9uIGFu ZCB0aGVyZWZvcmUgaXQgZ29lcyB0byB0aGUgbmV4dDxicj5pdGVyYXRpb24gb2YgY29uY2F0ZW5h dGlvbi4gSW4gdGhlIGZpeGVkIGltcGxlbWVudGF0aW9uIG9mPGJyPmBsdWFfY29uY2F0KClgIGBu YCBpcyBlcXVhbCB0byAxIGF0IHRoZSBlbmQgb2YgdGhlIGZpcnN0IGxvb3AgaXRlcmF0aW9uLDxi cj5kZWNyZW1lbnRlZCBpbiBhIGxvb3AgcG9zdGNvbmRpdGlvbiBhbmQgYnJlYWtzIHRoZSBsb29w Ljxicj48YnI+VGhlIHBhdGNoIGZpeGVzIGluY29ycmVjdCBiZWhhdmlvdXIuPGJyPjxicj4xLiA8 YSBocmVmPSJodHRwczovL3d3dy5sdWEub3JnL21hbnVhbC81LjEvbWFudWFsLmh0bWwiIHRhcmdl dD0iX2JsYW5rIj5odHRwczovL3d3dy5sdWEub3JnL21hbnVhbC81LjEvbWFudWFsLmh0bWw8L2E+ PGJyPjxicj5TZXJnZXkgQnJvbm5pa292Ojxicj4qIGFkZGVkIHRoZSBkZXNjcmlwdGlvbiBhbmQg dGhlIHRlc3QgZm9yIHRoZSBwcm9ibGVtPGJyPjxicj5QYXJ0IG9mIHRhcmFudG9vbC90YXJhbnRv b2wjODgyNTxicj4tLS08YnI+UFI6IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRv b2wvdGFyYW50b29sL3B1bGwvOTE3NiIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNv bS90YXJhbnRvb2wvdGFyYW50b29sL3B1bGwvOTE3NjwvYT48YnI+QnJhbmNoOiA8YSBocmVmPSJo dHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL2x1YWppdC9jb21taXRzL2xpZ3VyaW8vbGotODgx LWZpeC1jb25jYXQiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29s L2x1YWppdC9jb21taXRzL2xpZ3VyaW8vbGotODgxLWZpeC1jb25jYXQ8L2E+PGJyPklzc3Vlczo8 YnI+LSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vTHVhSklUL0x1YUpJVC9pc3N1ZXMvODgx IiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29tL0x1YUpJVC9MdWFKSVQvaXNzdWVz Lzg4MTwvYT48YnI+LSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFu dG9vbC9pc3N1ZXMvODgyNSIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS90YXJh bnRvb2wvdGFyYW50b29sL2lzc3Vlcy84ODI1PC9hPjxicj48YnI+Q2hhbmdlczo8YnI+LSBmaXhl ZCB0eXBvczxicj4tIHVwZGF0ZWQgYXNzZXJ0aW9ucyAoYm9vbCBhc3NlcnRzIHJlcGxhY2VkIHdp dGggaW50IGFzc2VydGlvbnMpPGJyPi0gcmVwbGFjZWQgdXNlcmRhdGEgd2l0aCBzdHJ1Y3Qgd2l0 aCB1c2VyZGF0YSB3aXRoIGludGVnZXIgcGVyIE1heCdzIHJlcXVlc3Q8YnI+dGhhdCdzIGFsbCwg Zm9sa3M8YnI+PGJyPiZuYnNwO3NyYy9sal9hcGkuYyB8IDIgKy08YnI+Jm5ic3A7Li4uL2xqLTg4 MS1maXgtbHVhLWNvbmNhdC50ZXN0LmMgfCA5NSArKysrKysrKysrKysrKysrKysrPGJyPiZuYnNw OzIgZmlsZXMgY2hhbmdlZCwgOTYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKTxicj4mbmJz cDtjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC90YXJhbnRvb2wtYy10ZXN0cy9sai04ODEtZml4LWx1 YS1jb25jYXQudGVzdC5jPGJyPjxicj5kaWZmIC0tZ2l0IGEvc3JjL2xqX2FwaS5jIGIvc3JjL2xq X2FwaS5jPGJyPmluZGV4IDA1ZTAyMDI5Li4zYmFjYWQzMyAxMDA2NDQ8YnI+LS0tIGEvc3JjL2xq X2FwaS5jPGJyPisrKyBiL3NyYy9sal9hcGkuYzxicj5AQCAtODAxLDcgKzgwMSw3IEBAIExVQV9B UEkgdm9pZCBsdWFfY29uY2F0KGx1YV9TdGF0ZSAqTCwgaW50IG4pPGJyPiZuYnNwOyBMLSZndDt0 b3AgLT0gbjs8YnI+Jm5ic3A7IGJyZWFrOzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDt9PGJyPi0gbiAtPSAoaW50KShMLSZndDt0b3AgLSB0b3ApOzxicj4rIG4g LT0gKGludCkoTC0mZ3Q7dG9wIC0gKHRvcCAtIDIqTEpfRlIyKSk7PGJyPiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0wtJmd0O3RvcCA9IHRvcCsyOzxicj4mbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtqaXRfc2VjdXJlX2NhbGwoTCwgdG9w LCAxKzEpOzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMLSZn dDt0b3AgLT0gMStMSl9GUjI7PGJyPmRpZmYgLS1naXQgYS90ZXN0L3RhcmFudG9vbC1jLXRlc3Rz L2xqLTg4MS1maXgtbHVhLWNvbmNhdC50ZXN0LmMgYi90ZXN0L3RhcmFudG9vbC1jLXRlc3RzL2xq LTg4MS1maXgtbHVhLWNvbmNhdC50ZXN0LmM8YnI+bmV3IGZpbGUgbW9kZSAxMDA2NDQ8YnI+aW5k ZXggMDAwMDAwMDAuLjFiMWYxNDZmPGJyPi0tLSAvZGV2L251bGw8YnI+KysrIGIvdGVzdC90YXJh bnRvb2wtYy10ZXN0cy9sai04ODEtZml4LWx1YS1jb25jYXQudGVzdC5jPGJyPkBAIC0wLDAgKzEs OTUgQEA8YnI+KyNpbmNsdWRlICZsdDtzdHJpbmcuaCZndDs8YnI+Kzxicj4rI2luY2x1ZGUgImx1 YS5oIjxicj4rI2luY2x1ZGUgImxhdXhsaWIuaCI8YnI+Kzxicj4rI2luY2x1ZGUgInRlc3QuaCI8 YnI+KyNpbmNsdWRlICJ1dGlscy5oIjxicj4rPGJyPisvKjxicj4rICogVGhpcyB0ZXN0IGRlbW9u c3RyYXRlcyBMdWFKSVQncyBpbmNvcnJlY3QgYmVoYXZpb3VyLCB3aGVuPGJyPisgKiBjYWxsaW5n IGBsdWFfY29uY2F0KClgIHdpdGggdXNlcmRhdGEgd2l0aCBfX2NvbmNhdCBtZXRhbWV0aG9kLjxi cj4rICogU2VlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9MdWFKSVQvTHVhSklUL2lzc3Vl cy84ODEiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20vTHVhSklUL0x1YUpJVC9p c3N1ZXMvODgxPC9hPiBmb3IgZGV0YWlscy48YnI+KyAqLzxicj4rPGJyPisjZGVmaW5lIE1UX05B TUUgImludCI8YnI+Kzxicj4rc3RhdGljIGludCBJTkZPX2NvbmNhdChsdWFfU3RhdGUgKkwpPGJy Pit7PGJyPisgY29uc3QgY2hhciAqcyA9IGx1YUxfY2hlY2tzdHJpbmcoTCwgMSk7PGJyPisgaW50 ICpuID0gKGludCAqKWx1YUxfY2hlY2t1ZGF0YShMLCAyLCBNVF9OQU1FKTs8YnI+KyAvKiBEbyBu b24tZGVmYXVsdCBjb25jYXRlbmF0aW9uLiAqLzxicj4rIGx1YV9wdXNoZnN0cmluZyhMLCAiJXMg KyAlZCIsIHMsICpuKTs8YnI+KyByZXR1cm4gMTs8YnI+K308YnI+Kzxicj4rc3RhdGljIGNvbnN0 IGx1YUxfUmVnIG10W10gPTxicj4rezxicj4rIHsiX19jb25jYXQiLCBJTkZPX2NvbmNhdH0sPGJy Pisge05VTEwsIE5VTEx9PGJyPit9Ozxicj4rPGJyPitzdGF0aWMgaW50IGx1YV9jb25jYXRfdGVz dGNhc2Uodm9pZCAqdGVzdF9zdGF0ZSk8YnI+K3s8YnI+KyAvKiBTZXR1cC4gKi88YnI+KyBsdWFf U3RhdGUgKkwgPSB0ZXN0X3N0YXRlOzxicj4rIGNvbnN0IGludCB0b3AgPSA0Ozxicj4rPGJyPisg LyogQ3JlYXRlIG1ldGF0YWJsZSBhbmQgcHV0IGl0IHRvIHRoZSBMdWEgcmVnaXN0cnkuICovPGJy PisgbHVhTF9uZXdtZXRhdGFibGUoTCwgTVRfTkFNRSk7PGJyPisgLyogRmlsbCBtZXRhdGFibGUu ICovPGJyPisgbHVhTF9yZWdpc3RlcihMLCAwLCBtdCk7PGJyPisgbHVhX3BvcChMLCAxKTs8YnI+ Kzxicj4rIGFzc2VydF9pbnRfZXF1YWwobHVhX2dldHRvcChMKSwgMCk7PGJyPis8YnI+KyBsdWFf cHVzaGxpdGVyYWwoTCwgIkMiKTs8YnI+KyBsdWFfcHVzaGxpdGVyYWwoTCwgIkIiKTs8YnI+KyBs dWFfcHVzaGxpdGVyYWwoTCwgIkEiKTs8YnI+Kzxicj4rIGludCAqbiA9IChpbnQgKilsdWFfbmV3 dXNlcmRhdGEoTCwgc2l6ZW9mKGludCkpOzxicj4rICpuID0gMTAwOzxicj4rPGJyPisgbHVhTF9n ZXRtZXRhdGFibGUoTCwgTVRfTkFNRSk7PGJyPisgbHVhX3NldG1ldGF0YWJsZShMLCAtMik7PGJy Pis8YnI+KyBhc3NlcnRfaW50X2VxdWFsKGx1YV9nZXR0b3AoTCksIHRvcCk7PGJyPis8YnI+KyAv KiBUZXN0IGJvZHkuICovPGJyPis8YnI+KyAvKjxicj4rICogdm9pZCBsdWFfY29uY2F0IChsdWFf U3RhdGUgKkwsIGludCBuKTs8YnI+KyAqPGJyPisgKiBDb25jYXRlbmF0ZXMgdGhlIG4gdmFsdWVz IGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLDxicj4rICogcG9wcyB0aGVtLCBhbmQgbGVhdmVzIHRo ZSByZXN1bHQgYXQgdGhlIHRvcC4gSWYgbiBpcyAxLDxicj4rICogdGhlIHJlc3VsdCBpcyB0aGUg c2luZ2xlIHZhbHVlIG9uIHRoZSBzdGFjazsgaWYgbiBpcyAwLDxicj4rICogdGhlIHJlc3VsdCBp cyB0aGUgZW1wdHkgc3RyaW5nIFsxXS48YnI+KyAqPGJyPisgKiAxLiA8YSBocmVmPSJodHRwczov L3d3dy5sdWEub3JnL21hbnVhbC81LjEvbWFudWFsLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5odHRw czovL3d3dy5sdWEub3JnL21hbnVhbC81LjEvbWFudWFsLmh0bWw8L2E+PGJyPisgKi88YnI+Kzxi cj4rIC8qIENvbmNhdGVuYXRlIHR3byBlbGVtZW50cyBvbiB0b3AuICovPGJyPisgbHVhX2NvbmNh dChMLCAyKTs8YnI+Kzxicj4rIGNvbnN0IGNoYXIgKnN0ciA9IGx1YV90b3N0cmluZyhMLCAtMSk7 PGJyPisgYXNzZXJ0X2ludF9lcXVhbChsdWFfZ2V0dG9wKEwpLCB0b3AgLSAyICsgMSk7PGJyPisg Y29uc3QgY2hhciBleHBlY3RlZF9zdHJbXSA9ICJBICsgMTAwIjs8YnI+KyBhc3NlcnRfc3RyX2Vx dWFsKHN0ciwgZXhwZWN0ZWRfc3RyLCBzdHJsZW4oZXhwZWN0ZWRfc3RyKSk7PGJyPis8YnI+KyAv KiBUZWFyZG93bi4gKi88YnI+KyBsdWFfc2V0dG9wKEwsIDApOzxicj4rPGJyPisgcmV0dXJuIFRF U1RfRVhJVF9TVUNDRVNTOzxicj4rfTxicj4rPGJyPitpbnQgbWFpbih2b2lkKTxicj4rezxicj4r IGx1YV9TdGF0ZSAqTCA9IHV0aWxzX2x1YV9pbml0KCk7PGJyPisgY29uc3Qgc3RydWN0IHRlc3Rf dW5pdCB0Z3JvdXBbXSA9IHs8YnI+KyB0ZXN0X3VuaXRfZGVmKGx1YV9jb25jYXRfdGVzdGNhc2Up LDxicj4rIH07PGJyPisgY29uc3QgaW50IHRlc3RfcmVzdWx0ID0gdGVzdF9ydW5fZ3JvdXAodGdy b3VwLCBMKTs8YnI+KyB1dGlsc19sdWFfY2xvc2UoTCk7PGJyPis8YnI+KyByZXR1cm4gdGVzdF9y ZXN1bHQ7PGJyPit9PGJyPi0tPGJyPjIuMzQuMTwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxv Y2txdW90ZT48ZGl2PiZuYnNwOzwvZGl2PjwvQk9EWT48L0hUTUw+Cg== ----ALT--c4Ba7F9d4eD7C64075C7Ee2D867bD0e81696777113--