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 7FD36451813; Fri, 19 May 2023 17:29:17 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 7FD36451813 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1684506557; bh=M8hShbkOMzcxOUWC+/fn0xr76RFepkQObpqTixZmSYI=; 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=SAzfeHw9M4qGvuaJeor3t/LAEOhnD6TPvLQX2GP6mFrwxkFXhtLNYfY+R8j9rUjl0 au0pxmbhItlDAwRN1lVERQFJEuhz1sk8sdbneJB/cVgKDSS/6oS73qvzbGLAL3pWwl RwbfSVxU+t1pU6fDZOLEDemvx+ZiY0emcBfr44Jw= Received: from f161.i.mail.ru (f161.i.mail.ru [45.84.128.68]) (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 04E9C4405A1 for ; Fri, 19 May 2023 17:29:15 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 04E9C4405A1 Received: by f161.i.mail.ru with local (envelope-from ) id 1q016X-0005jU-VU; Fri, 19 May 2023 17:29:14 +0300 Received: by e.mail.ru with HTTP; Fri, 19 May 2023 17:29:13 +0300 To: =?UTF-8?B?U2VyZ2V5IEthcGx1bg==?= MIME-Version: 1.0 X-Mailer: Mail.Ru Mailer 1.0 X-SenderField-ReMsg: 16844429400281872685 X-SenderField-Remind: 0 Date: Fri, 19 May 2023 17:29:13 +0300 X-Priority: 3 (Normal) Message-ID: <1684506553.475278652@f161.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--40dCcEcc15F2De2bC84412B11254a30D1684506553" In-Reply-To: References: X-7564579A: 646B95376F6C166E X-77F55803: 119C1F4DF6A9251C86B22F0DBD26B6BBCF31FF8A1B89A732A531C76417EF44548FD872164937FA4C4DAB3169833080208C05D183400B3E6EAE2AD2A54E57CF51C03605D347CD68EA X-C1DE0DAB: 0D63561A33F958A59AB6620FC19257AAB4A06F33CEE4F043AC8F61C91CA47F64F87CCE6106E1FC07E67D4AC08A07B9B0DB8A315C1FF4794DBDAD6C7F3747799A X-C8649E89: 1C3962B70DF3F0ADE00A9FD3E00BEEDF77DD89D51EBB7742DC8270968E61249B1004E42C50DC4CA955A7F0CF078B5EC49A30900B95165D343D1F112031EF3D62C3CEC7479221EA404BBF64C87948E9C6E4A05E59E81125800AA62EC7878DBAD61D7E09C32AA3244C481F8E61AC4438EE6D748906B4E36100408A6A02710B7304927AC6DF5659F194 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5+wYjsrrSY/u8Y3PrTqANeitKFiSd6Yd7yPpbiiZ/d5BsxIjK0jGQgCHUM3Ry2Lt2G3MDkMauH3h0dBdQGj+BB/iPzQYh7XS329fgu+/vnDhQx0msxnShGZ5RE0MGVm/Tg== X-Mailru-MI: 80000000000000000800 X-Mailru-Sender: 11C2EC085EDE56FA38FD4C59F7EFE4076C3D23489306BF9FE716271479112F74F0787379D594C72406CD02445D2D9C8FA2BFD6D8330F0C2D563E610FBBDBB4C842051EA7CBBFB509093DA5C00B83CE8412EB40C6FA10D71EFD657A8799238ED55FEEDEB644C299C0ED14614B50AE0675 X-Mras: OK Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_v2_luajit_0/6=5D_Revorkin?= =?utf-8?q?g_C_tests?= 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: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" ----ALT--40dCcEcc15F2De2bC84412B11254a30D1684506553 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpIQpUaGFua3MgZm9yIHRoZSBjb21tZW50cy4KwqAKPsKgCj4+VGhlIHdob2xlIGlkZWEgb2Yg dGhlIHBhdGNoLXNldCBpbnRyb2R1Y2UgbW9kdWxlIGZvciBMdWFKSVQgQyB0ZXN0cy4gSXQKPj5h bHNvLCBjYW4gYmUgdXNlZCBmb3IgdW5pdCB0ZXN0cy4KPj4qIFRoZSBmaXJzdCBwYXRjaCBpcyB0 aGUgcHJlcmVxdWlzaXRlIGZvciB0aGUgcGF0Y2gtc2V0LiBJdCBmaXhlcwo+PsKgwqBMRF9MSUJS QVJZX1BBVEggZGVmaW5pdGlvbi4KPj4qIFRoZSAybmQgYW5kIDNkIHBhdGNoZXMgcHJvdmlkZXMg YW4gQVBJIGFuZCBoZWxwZXIgZm9yIHdyaXRpbmcgdGhlIHRlc3RzLgo+PiogVGhlIGxhc3QgMyBw YXRjaGVzIHJld3JpdGUgZXhpc3RpbmcgdGVzdHMgdGhhdCBzaG91bGQgYmUgd3JpdHRlbiBpbiBD IGluCj4+wqDCoHRoZSBwcm9wZXIgd2F5Lgo+Pgo+PkJyYW5jaDogIGh0dHBzOi8vZ2l0aHViLmNv bS90YXJhbnRvb2wvbHVhaml0L3RyZWUvc2thcGx1bi9naC1ub3RpY2tldC10YXJhbnRvb2wtYy10 ZXN0cwo+PlBSOiAgaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvcHVsbC84 NDQ0Cj4+UmVsYXRlZCBJc3N1ZToKPj4qICBodHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3Rh cmFudG9vbC9pc3N1ZXMvNzkwMAo+PiogIGh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFy YW50b29sL2lzc3Vlcy83ODEKPj4KPj5UaGFua3MgTWF4aW0sIGZvciB0aGUgcmV2aWV3IQo+Pgo+ PkkndmUgZml4ZWQgc29tZSBNYXhpbSBjb21tZW50cyBhbmQgc3VnZ2VzdGlvbnMgZm9yIHRoZSBw cmV2aW91cyBzZXJpZXMuCj4+U29tZSBpZ25vcmFibGUgY29tbWVudHMgYWJvdXQgd29yZGluZyBh cmUgaWdub3JlZDopLgo+Pgo+PkFsc28sIHNlZSBhbnN3ZXJzIGZvciB5b3VyIHF1ZXN0aW9ucyBi ZWxvdzoKPj4KPj4+ID4raWYoTk9UIFBST1ZFKQo+Pj4gPisgbWVzc2FnZShXQVJOSU5HICJgcHJv dmUnIGlzIG5vdCBmb3VuZCwgc28gdGFyYW50b29sLWMtdGVzdHMgdGFyZ2V0IGlzIG5vdCBnZW5l cmF0ZWQiKQo+Pj4gPisgcmV0dXJuKCkKPj4+ID4rZW5kaWYoKQo+Pj4gVGhlcmUgaXMgdGhlIHNh bWUgY2hlY2sgaW4gdGhlIHRlc3QvdGFyYW50b29sLXRlc3RzL0NNYWtlTGlzdHMudHh0LiBNYXli ZQo+Pj4gd2Ugc2hvdWxkIG1vdmUgaXQgdG8gdGhlIGhpZ2hlci1sZXZlbCBDTWFrZSBzbyB0aGUg bG93ZXItbGV2ZWwgQ01ha2VMaXN0cwo+Pj4gaW5oZXJpdCBpdC4KPj4KPj5JIGFncmVlIGl0IG1h eWJlIGRvbmUsIGJ1dCBub3Qgd2l0aGluIHRoaXMgcGFydGljdWxhciBwYXRjaHNldHQsIHNvCj4+ aWdub3JpbmcgZm9yIG5vdy4KPkRvbuKAmXQgc2VlIGFueSByZWFzb24gdG8gcG9zdHBvbmUgaXQs IHRiaC4gTmV3IG1vZHVsZSByZXF1aXJlcyB0aGUgc2FtZQo+Y2hlY2tzIGFzIHRoZSBhbHJlYWR5 IHByZXNlbnQgb25lLiBJdCBzZWVtcyBsb2dpY2FsIHRvIGRvIG5lY2Vzc2FyeSBjaGFuZ2VzCj5p biB0aGlzIHBhdGNoc2V0Lgo+Pgo+Pj4gPisjZGVmaW5lIHRlc3RfcnVuX2dyb3VwKHRfYXJyLCB0 X3N0YXRlKSBcCj4+PiA+KyBfdGVzdF9ydW5fZ3JvdXAoX19mdW5jX18sIHRfYXJyLCBsZW5ndGhv Zih0X2FyciksIHRfc3RhdGUpCj4+PiBJcyB0aGVyZSBhbnkgcmVhc29uIGZvciBpdCB0byBiZSBh IG1hY3JvIGFuZCBub3QgYSBmdW5jdGlvbiB3cmFwcGVyPwo+Pj4gSSBiZWxpZXZlIGl0IGlzIGJl dHRlciB0byB1c2UgdGhlIGZ1bmN0aW9ucyB3aGVuIHBvc3NpYmxlLCBzaW5jZSB0aGV5IGFyZQo+ Pj4gZWFzaWVyIHRvIHN1cHBvcnQgYW5kIGRlYnVnLgo+Pgo+Pkp1c3QgZm9yIHRoZSBjb252ZW5p ZW5jZSBpbiB1c2FnZSBvZiBfX2Z1bmNfXyBtYWNybyBhcyBhIHRlc3QgZ3JvdXAgbmFtZS4KPk9o LCBJIHNlZSwgdGh4Lgo+Pgo+Pj4gPisvKiBOZWVkIGZvciBgc3RyY2hyKClgIGluIGRpYWdub3N0 aWMgcGFyc2luZy4gKi8KPj4+IGBzdHJjaHIoKWAgaXMgbm90IHNhZmUsIGRlc3BpdGUgdGhlIGZh Y3QgaXQgc2VhcmNoZXMgdGlsbCBgXDBgLgo+Pj4gV2Ugc2hvdWxkIGF0IGxlYXN0IHJlcGxhY2Ug aXQgd2l0aCBgbWVtY2hyKClgLCB3aGljaCBoYXMKPj4+IHRoZSBleHBsaWNpdCBjb25zdHJhaW50 IGZvciBidWZmZXIgbGVuZ3RoLgo+Pj4gPisjaW5jbHVkZSA8c3RyaW5nLmg+Cj4+Cj4+WWVzLCBi dXQ6Cj4+MSkgV2UgdXNlIGl0IG9ubHkgZm9yIG91ciB0ZXN0IGNvZGUsIHdoZXJlIHdlIHNldCB0 aGlzIGBcMGAgZGlyZWN0bHkgdG8KPj5tYXJrIEVPTC4KPj4yKSBJdCdzIHNpbXBsaWVyIHRoYW4g dXNlIHNldmVyYWwgbWFya3MgaW4gYnVmZmVyLgo+PlNvLCBpZ25vcmluZyBmb3Igbm93Lgo+T2sK Pj4KPj4+ID4rIyB2aW06IGZ0PWNtYWtlIGV4cGFuZHRhYiBzaGlmdHdpZHRoPTI6IHRhYnN0b3A9 MjoKPj4+IFRoYXQgY2hhbmdlIGlzIG5vdCBuZWNlc3NhcnkuCj4+Cj4+WWVzLCBidXQgbW9yZSBj b252ZW5pZW50IHRvIHVzZSBpbiB2aW0gLS0gc2luY2Ugb3VyIHVzdWFsIGNvZGVzdHlsZSBpc24n dCA0Cj4+dGFicyBhcyBpdHMgZGVmYXVsdCBmb3IgQ01ha2UuIDopCj4+U3RpbGwgd2UgZG9uJ3Qg dXNlIGl0IGFueXdoZXJlICh1bmZvcnR1bmF0ZWx5KSwgc28gcmVtb3ZlZC4KPj4KPj4+ID4rIGJh aWxfb3V0KCJmYWlsZWQgdG8gdHJhbnNsYXRlIEx1YSBjb2RlIHNuaXBwZXQiKTsKPj4+IFdoeSBg YmFpbF9vdXRgIGFuZCBub3QgYW4gYXNzZXJ0aW9uPyBIZXJlIGFuZCBiZWxvdy4KPj4KPj5Bc3Nl cnRpb24gaXMgZm9yIHNvbWUgdGhpbmcgd2Ugd25hdCB0byB0ZXN0IGFuZCBtYXkgZmFpbC4KPj5C YWlsIG91dCB1c2FnZSBpcyBtb3JlIHNwZWNpZmljOgo+PnwgQXMgYW4gZW1lcmdlbmN5IG1lYXN1 cmUgYSB0ZXN0IHNjcmlwdCBjYW4gZGVjaWRlIHRoYXQgZnVydGhlciB0ZXN0cyBhcmUKPj58IHVz ZWxlc3MgKGUuZy4gbWlzc2luZyBkZXBlbmRlbmNpZXMpIGFuZCB0ZXN0aW5nIHNob3VsZCBzdG9w IGltbWVkaWF0ZWx5Lgo+PnwgSW4gdGhhdCBjYXNlIHRoZSB0ZXN0IHNjcmlwdCBwcmludHMgdGhl IG1hZ2ljIHdvcmRzCj4+U2VlIFsxXS4gSSB0aGluayB0aGF0IGxvYWRpbmcgTHVhIHNjcmlwdCBo ZWxwZXIgKGRlcGVuZGVuY3kpIGlzCj4+c29tZXRoaW5nIGxpa2UgdGhhdC4KPlRoYW5rcyBmb3Ig dGhlIGNsYXJpZmljYXRpb24uCj4+Cj4+PiA+KyNpbmNsdWRlICJsal9hcmNoLmgiCj4+PiBTaWRl IG5vdGU6IEkgZG9uJ3QgbGlrZSB0aGUgYXBwcm9hY2ggd2l0aCBwcml2YXRlIGhlYWRlcnMsIGJ1 dAo+Pj4gSSBjb3VsZG4ndCBmaW5kIGFueSBiZXR0ZXIgd2F5IHRvIGNoZWNrIHRoYXQuIE1heWJl IGl0IGlzIGEgZ29vZAo+Pj4gaWRlYSB0byBpbXBsZW1lbnQgYSBwdWJsaWMgQyBBUEkgZnVuY3Rp b24gdG8gZ2V0IHRoZSBpbmZvcm1hdGlvbgo+Pj4gYWJvdXQgT1MgYW5kIEFSQ0gsIHNpbmNlIGl0 IGlzIGEgcmVhbGx5IGNvbW1vbiB0byBjaGVjayB0aGVtPwo+Pgo+PkkgdGhpbmssIHRoYXQgdGhp cyBpcyB0aGUgYmVzdCBvcHRpb24sIGVzcGVzc2lhbHkgaWYgd2Ugd2FudCB0byB3cml0ZQo+PnNv bWUgdW5pdCB0ZXN0IGZvciBzb21lIHNwZWNpZmljIG1vZHVsZSAoSSBtZWFuIDxzcmMvbGpfKj4p Lgo+Pgo+PkNoYW5nZXMgaW4gdjI6Cj4+MSkgdXNlCj4+Cj4+fCBpbnQgX3Rlc3RfcnVuX2dyb3Vw KGNvbnN0IGNoYXIgKmdyb3VwX25hbWUsIGNvbnN0IHN0cnVjdCB0ZXN0X3VuaXQgdGVzdHNbXSwK Pj58IHNpemVfdCBuX3Rlc3RzLCB2b2lkICp0ZXN0X3N0YXRlKTsKPj4KPj5pbnN0ZWFkIG9mCj4+ Cj4+fCBpbnQgX3Rlc3RfcnVuX2dyb3VwKGNvbnN0IGNoYXIgKmdyb3VwX25hbWUsIGNvbnN0IHN0 cnVjdCB0ZXN0X3VuaXQgKnRlc3RzLAo+Pnwgc2l6ZV90IG5fdGVzdHMsIHZvaWQgKnRlc3Rfc3Rh dGUpOwo+Pgo+PjIpIGBza2lwKClgIGBza2lwX2FsbCgpYCBhbmQgYHRvZG8oKWAgaGVscGVycyBu b3cgcmV0dXJuIHZhbHVlcyB0byBiZQo+PnJldHVybiB0byBydW5uZXIuCj4+aS5lLiBjaGFuZ2Ug dXNhZ2UgZnJvbQo+PnwgaWYgKGNvbmQpCj4+fCBza2lwKCJOSVkiKTsKPj50bwo+PnwgaWYgKGNv bmQpCj4+fCByZXR1cm4gc2tpcCgiTklZIik7Cj4+Cj4+YGJhaWxfb3V0KClgIGhlbHBlciBzdGls bCBqdXN0IGV4aXRzIHdpdGggZXJyb3IgY29kZSwgd2hpY2ggY29ycmVzcG9uZGluZwo+Pml0cyBz dGFuZGFyZCBzcGVjaWZpY2F0aW9uLgo+Pgo+PkJ1dCBub3cgc29tZSBwYXJ0cyBvZiB0aGUgY29k ZSBzdGFydCB0byBsb29rICJhbHlhIGNyaW5nZSI6Cj4+fCByZXR1cm4gdG9kbygiTmVlZCB0byBy ZXBsYWNlIGJhY2t0cmFjZSB3aXRoIGxpYnVud2luZCBmaXJzdCIpOwo+PnwgbHVhX1N0YXRlICpM ID0gdGVzdF9zdGF0ZTsKPj58IHV0aWxzX2dldF9hdXhfbGZ1bmMoTCk7Cj4+fCAodm9pZClsdWFK SVRfc2V0bW9kZShMLCAwLCBMVUFKSVRfTU9ERV9FTkdJTkUgfCBMVUFKSVRfTU9ERV9PRkYpOwo+ PnwgKHZvaWQpbHVhSklUX3NldG1vZGUoTCwgMCwgTFVBSklUX01PREVfRU5HSU5FIHwgTFVBSklU X01PREVfRkxVU0gpOwo+PnwgY2hlY2tfcHJvZmlsZV9mdW5jKEwpOwo+PnwgKHZvaWQpbHVhSklU X3NldG1vZGUoTCwgMCwgTFVBSklUX01PREVfRU5HSU5FIHwgTFVBSklUX01PREVfT04pOwo+Pnwg cmV0dXJuIFRFU1RfRVhJVF9TVUNDRVNTOwo+V2VsbCwgd2hhdCBpcyBjcmluZ2UgaGVyZT8gVGhl cmUgYXJlIGEgZmV3IHVucmVhY2hhYmxlIGxpbmVzLCBidXQgbm93IGl0IGlzCj5vYnZpb3VzIHRo YXQgdGhvc2UgYXJlIHNraXBwZWQuCj4+Cj4+KFllcywgd2Ugd2FudCB0byB1c2UgdW5jb25kaXRp b25hbCBgdG9kbygpYCkuCj4+U28gSSBjb21tZW50ZWQgdGhlIHNpbWlsYXIgY29kZSwgaGVscGVy IGBjaGVja19wcm9maWxlX2Z1bmMoKWAsIGV0Yy4KPj53aXRoIGAjaWYgMGAuCj5EbyB3ZSByZWFs bHkgbmVlZCB0byB0aGF0IHRob3VnaD8gQWdhaW4sIGl0IGlzIGNsZWFybHkgdmlzaWJsZSB0aGF0 IHRob3NlIGFyZQo+dW5yZWFjaGFibGUuIENvbW1lbnQgaW4gYHRvZG9gIGlzIHN1ZmZpY2llbnQu Cj4KPjxzbmlwcGVkPgo+LS0KPkJlc3QgcmVnYXJkcywKPk1heGltIEtva3J5YXNoa2luCj7CoA== ----ALT--40dCcEcc15F2De2bC84412B11254a30D1684506553 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+SGkhPC9kaXY+PGRpdj5UaGFua3MgZm9yIHRoZSBjb21tZW50cy48 L2Rpdj48ZGl2PiZuYnNwOzwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHgg c29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+Jm5i c3A7PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJn aW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdiBpZD0iIj48ZGl2IGNsYXNzPSJqcy1o ZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdiBpZD0ic3R5bGVfMTY4NDQ0Mjk0MDAyODE4 NzI2ODVfQk9EWSI+VGhlIHdob2xlIGlkZWEgb2YgdGhlIHBhdGNoLXNldCBpbnRyb2R1Y2UgbW9k dWxlIGZvciBMdWFKSVQgQyB0ZXN0cy4gSXQ8YnI+YWxzbywgY2FuIGJlIHVzZWQgZm9yIHVuaXQg dGVzdHMuPGJyPiogVGhlIGZpcnN0IHBhdGNoIGlzIHRoZSBwcmVyZXF1aXNpdGUgZm9yIHRoZSBw YXRjaC1zZXQuIEl0IGZpeGVzPGJyPiZuYnNwOyZuYnNwO0xEX0xJQlJBUllfUEFUSCBkZWZpbml0 aW9uLjxicj4qIFRoZSAybmQgYW5kIDNkIHBhdGNoZXMgcHJvdmlkZXMgYW4gQVBJIGFuZCBoZWxw ZXIgZm9yIHdyaXRpbmcgdGhlIHRlc3RzLjxicj4qIFRoZSBsYXN0IDMgcGF0Y2hlcyByZXdyaXRl IGV4aXN0aW5nIHRlc3RzIHRoYXQgc2hvdWxkIGJlIHdyaXR0ZW4gaW4gQyBpbjxicj4mbmJzcDsm bmJzcDt0aGUgcHJvcGVyIHdheS48YnI+PGJyPkJyYW5jaDogPGEgaHJlZj0iaHR0cHM6Ly9naXRo dWIuY29tL3RhcmFudG9vbC9sdWFqaXQvdHJlZS9za2FwbHVuL2doLW5vdGlja2V0LXRhcmFudG9v bC1jLXRlc3RzIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC9s dWFqaXQvdHJlZS9za2FwbHVuL2doLW5vdGlja2V0LXRhcmFudG9vbC1jLXRlc3RzPC9hPjxicj5Q UjogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvcHVsbC84 NDQ0IiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRv b2wvcHVsbC84NDQ0PC9hPjxicj5SZWxhdGVkIElzc3VlOjxicj4qIDxhIGhyZWY9Imh0dHBzOi8v Z2l0aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy83OTAwIiB0YXJnZXQ9Il9ibGFu ayI+aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzc5MDA8L2E+ PGJyPiogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNz dWVzLzc4MSIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFy YW50b29sL2lzc3Vlcy83ODE8L2E+PGJyPjxicj5UaGFua3MgTWF4aW0sIGZvciB0aGUgcmV2aWV3 ITxicj48YnI+SSd2ZSBmaXhlZCBzb21lIE1heGltIGNvbW1lbnRzIGFuZCBzdWdnZXN0aW9ucyBm b3IgdGhlIHByZXZpb3VzIHNlcmllcy48YnI+U29tZSBpZ25vcmFibGUgY29tbWVudHMgYWJvdXQg d29yZGluZyBhcmUgaWdub3JlZDopLjxicj48YnI+QWxzbywgc2VlIGFuc3dlcnMgZm9yIHlvdXIg cXVlc3Rpb25zIGJlbG93Ojxicj48YnI+Jmd0OyAmZ3Q7K2lmKE5PVCBQUk9WRSk8YnI+Jmd0OyAm Z3Q7KyBtZXNzYWdlKFdBUk5JTkcgImBwcm92ZScgaXMgbm90IGZvdW5kLCBzbyB0YXJhbnRvb2wt Yy10ZXN0cyB0YXJnZXQgaXMgbm90IGdlbmVyYXRlZCIpPGJyPiZndDsgJmd0OysgcmV0dXJuKCk8 YnI+Jmd0OyAmZ3Q7K2VuZGlmKCk8YnI+Jmd0OyBUaGVyZSBpcyB0aGUgc2FtZSBjaGVjayBpbiB0 aGUgdGVzdC90YXJhbnRvb2wtdGVzdHMvQ01ha2VMaXN0cy50eHQuIE1heWJlPGJyPiZndDsgd2Ug c2hvdWxkIG1vdmUgaXQgdG8gdGhlIGhpZ2hlci1sZXZlbCBDTWFrZSBzbyB0aGUgbG93ZXItbGV2 ZWwgQ01ha2VMaXN0czxicj4mZ3Q7IGluaGVyaXQgaXQuPGJyPjxicj5JIGFncmVlIGl0IG1heWJl IGRvbmUsIGJ1dCBub3Qgd2l0aGluIHRoaXMgcGFydGljdWxhciBwYXRjaHNldHQsIHNvPGJyPmln bm9yaW5nIGZvciBub3cuPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+ RG9u4oCZdCBzZWUgYW55IHJlYXNvbiB0byBwb3N0cG9uZSBpdCwgdGJoLiBOZXcgbW9kdWxlIHJl cXVpcmVzIHRoZSBzYW1lPC9kaXY+PGRpdj5jaGVja3MgYXMgdGhlIGFscmVhZHkgcHJlc2VudCBv bmUuIEl0IHNlZW1zIGxvZ2ljYWwgdG8gZG8gbmVjZXNzYXJ5IGNoYW5nZXM8L2Rpdj48ZGl2Pmlu IHRoaXMgcGF0Y2hzZXQuPC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBz b2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2 IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj48YnI+Jmd0OyAmZ3Q7 KyNkZWZpbmUgdGVzdF9ydW5fZ3JvdXAodF9hcnIsIHRfc3RhdGUpIFw8YnI+Jmd0OyAmZ3Q7KyBf dGVzdF9ydW5fZ3JvdXAoX19mdW5jX18sIHRfYXJyLCBsZW5ndGhvZih0X2FyciksIHRfc3RhdGUp PGJyPiZndDsgSXMgdGhlcmUgYW55IHJlYXNvbiBmb3IgaXQgdG8gYmUgYSBtYWNybyBhbmQgbm90 IGEgZnVuY3Rpb24gd3JhcHBlcj88YnI+Jmd0OyBJIGJlbGlldmUgaXQgaXMgYmV0dGVyIHRvIHVz ZSB0aGUgZnVuY3Rpb25zIHdoZW4gcG9zc2libGUsIHNpbmNlIHRoZXkgYXJlPGJyPiZndDsgZWFz aWVyIHRvIHN1cHBvcnQgYW5kIGRlYnVnLjxicj48YnI+SnVzdCBmb3IgdGhlIGNvbnZlbmllbmNl IGluIHVzYWdlIG9mIF9fZnVuY19fIG1hY3JvIGFzIGEgdGVzdCBncm91cCBuYW1lLjwvZGl2Pjwv ZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2Pk9oLCBJIHNlZSwgdGh4LjwvZGl2Pjxi bG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEw cHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJl YWRtc2ctbXNnIj48ZGl2PjxkaXY+PGJyPiZndDsgJmd0OysvKiBOZWVkIGZvciBgc3RyY2hyKClg IGluIGRpYWdub3N0aWMgcGFyc2luZy4gKi88YnI+Jmd0OyBgc3RyY2hyKClgIGlzIG5vdCBzYWZl LCBkZXNwaXRlIHRoZSBmYWN0IGl0IHNlYXJjaGVzIHRpbGwgYFwwYC48YnI+Jmd0OyBXZSBzaG91 bGQgYXQgbGVhc3QgcmVwbGFjZSBpdCB3aXRoIGBtZW1jaHIoKWAsIHdoaWNoIGhhczxicj4mZ3Q7 IHRoZSBleHBsaWNpdCBjb25zdHJhaW50IGZvciBidWZmZXIgbGVuZ3RoLjxicj4mZ3Q7ICZndDsr I2luY2x1ZGUgJmx0O3N0cmluZy5oJmd0Ozxicj48YnI+WWVzLCBidXQ6PGJyPjEpIFdlIHVzZSBp dCBvbmx5IGZvciBvdXIgdGVzdCBjb2RlLCB3aGVyZSB3ZSBzZXQgdGhpcyBgXDBgIGRpcmVjdGx5 IHRvPGJyPm1hcmsgRU9MLjxicj4yKSBJdCdzIHNpbXBsaWVyIHRoYW4gdXNlIHNldmVyYWwgbWFy a3MgaW4gYnVmZmVyLjxicj5TbywgaWdub3JpbmcgZm9yIG5vdy48L2Rpdj48L2Rpdj48L2Rpdj48 L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj5PazwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXIt bGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsi PjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+PGJy PiZndDsgJmd0OysjIHZpbTogZnQ9Y21ha2UgZXhwYW5kdGFiIHNoaWZ0d2lkdGg9MjogdGFic3Rv cD0yOjxicj4mZ3Q7IFRoYXQgY2hhbmdlIGlzIG5vdCBuZWNlc3NhcnkuPGJyPjxicj5ZZXMsIGJ1 dCBtb3JlIGNvbnZlbmllbnQgdG8gdXNlIGluIHZpbSAtLSBzaW5jZSBvdXIgdXN1YWwgY29kZXN0 eWxlIGlzbid0IDQ8YnI+dGFicyBhcyBpdHMgZGVmYXVsdCBmb3IgQ01ha2UuIDopPGJyPlN0aWxs IHdlIGRvbid0IHVzZSBpdCBhbnl3aGVyZSAodW5mb3J0dW5hdGVseSksIHNvIHJlbW92ZWQuPGJy Pjxicj4mZ3Q7ICZndDsrIGJhaWxfb3V0KCJmYWlsZWQgdG8gdHJhbnNsYXRlIEx1YSBjb2RlIHNu aXBwZXQiKTs8YnI+Jmd0OyBXaHkgYGJhaWxfb3V0YCBhbmQgbm90IGFuIGFzc2VydGlvbj8gSGVy ZSBhbmQgYmVsb3cuPGJyPjxicj5Bc3NlcnRpb24gaXMgZm9yIHNvbWUgdGhpbmcgd2Ugd25hdCB0 byB0ZXN0IGFuZCBtYXkgZmFpbC48YnI+QmFpbCBvdXQgdXNhZ2UgaXMgbW9yZSBzcGVjaWZpYzo8 YnI+fCBBcyBhbiBlbWVyZ2VuY3kgbWVhc3VyZSBhIHRlc3Qgc2NyaXB0IGNhbiBkZWNpZGUgdGhh dCBmdXJ0aGVyIHRlc3RzIGFyZTxicj58IHVzZWxlc3MgKGUuZy4gbWlzc2luZyBkZXBlbmRlbmNp ZXMpIGFuZCB0ZXN0aW5nIHNob3VsZCBzdG9wIGltbWVkaWF0ZWx5Ljxicj58IEluIHRoYXQgY2Fz ZSB0aGUgdGVzdCBzY3JpcHQgcHJpbnRzIHRoZSBtYWdpYyB3b3Jkczxicj5TZWUgWzFdLiBJIHRo aW5rIHRoYXQgbG9hZGluZyBMdWEgc2NyaXB0IGhlbHBlciAoZGVwZW5kZW5jeSkgaXM8YnI+c29t ZXRoaW5nIGxpa2UgdGhhdC48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRp dj5UaGFua3MgZm9yIHRoZSBjbGFyaWZpY2F0aW9uLjwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJi b3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAg MTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2Pjxk aXY+PGJyPiZndDsgJmd0OysjaW5jbHVkZSAibGpfYXJjaC5oIjxicj4mZ3Q7IFNpZGUgbm90ZTog SSBkb24ndCBsaWtlIHRoZSBhcHByb2FjaCB3aXRoIHByaXZhdGUgaGVhZGVycywgYnV0PGJyPiZn dDsgSSBjb3VsZG4ndCBmaW5kIGFueSBiZXR0ZXIgd2F5IHRvIGNoZWNrIHRoYXQuIE1heWJlIGl0 IGlzIGEgZ29vZDxicj4mZ3Q7IGlkZWEgdG8gaW1wbGVtZW50IGEgcHVibGljIEMgQVBJIGZ1bmN0 aW9uIHRvIGdldCB0aGUgaW5mb3JtYXRpb248YnI+Jmd0OyBhYm91dCBPUyBhbmQgQVJDSCwgc2lu Y2UgaXQgaXMgYSByZWFsbHkgY29tbW9uIHRvIGNoZWNrIHRoZW0/PGJyPjxicj5JIHRoaW5rLCB0 aGF0IHRoaXMgaXMgdGhlIGJlc3Qgb3B0aW9uLCBlc3Blc3NpYWx5IGlmIHdlIHdhbnQgdG8gd3Jp dGU8YnI+c29tZSB1bml0IHRlc3QgZm9yIHNvbWUgc3BlY2lmaWMgbW9kdWxlIChJIG1lYW4gJmx0 O3NyYy9sal8qJmd0OykuPGJyPjxicj5DaGFuZ2VzIGluIHYyOjxicj4xKSB1c2U8YnI+PGJyPnwg aW50IF90ZXN0X3J1bl9ncm91cChjb25zdCBjaGFyICpncm91cF9uYW1lLCBjb25zdCBzdHJ1Y3Qg dGVzdF91bml0IHRlc3RzW10sPGJyPnwgc2l6ZV90IG5fdGVzdHMsIHZvaWQgKnRlc3Rfc3RhdGUp Ozxicj48YnI+aW5zdGVhZCBvZjxicj48YnI+fCBpbnQgX3Rlc3RfcnVuX2dyb3VwKGNvbnN0IGNo YXIgKmdyb3VwX25hbWUsIGNvbnN0IHN0cnVjdCB0ZXN0X3VuaXQgKnRlc3RzLDxicj58IHNpemVf dCBuX3Rlc3RzLCB2b2lkICp0ZXN0X3N0YXRlKTs8YnI+PGJyPjIpIGBza2lwKClgIGBza2lwX2Fs bCgpYCBhbmQgYHRvZG8oKWAgaGVscGVycyBub3cgcmV0dXJuIHZhbHVlcyB0byBiZTxicj5yZXR1 cm4gdG8gcnVubmVyLjxicj5pLmUuIGNoYW5nZSB1c2FnZSBmcm9tPGJyPnwgaWYgKGNvbmQpPGJy Pnwgc2tpcCgiTklZIik7PGJyPnRvPGJyPnwgaWYgKGNvbmQpPGJyPnwgcmV0dXJuIHNraXAoIk5J WSIpOzxicj48YnI+YGJhaWxfb3V0KClgIGhlbHBlciBzdGlsbCBqdXN0IGV4aXRzIHdpdGggZXJy b3IgY29kZSwgd2hpY2ggY29ycmVzcG9uZGluZzxicj5pdHMgc3RhbmRhcmQgc3BlY2lmaWNhdGlv bi48YnI+PGJyPkJ1dCBub3cgc29tZSBwYXJ0cyBvZiB0aGUgY29kZSBzdGFydCB0byBsb29rICJh bHlhIGNyaW5nZSI6PGJyPnwgcmV0dXJuIHRvZG8oIk5lZWQgdG8gcmVwbGFjZSBiYWNrdHJhY2Ug d2l0aCBsaWJ1bndpbmQgZmlyc3QiKTs8YnI+fCBsdWFfU3RhdGUgKkwgPSB0ZXN0X3N0YXRlOzxi cj58IHV0aWxzX2dldF9hdXhfbGZ1bmMoTCk7PGJyPnwgKHZvaWQpbHVhSklUX3NldG1vZGUoTCwg MCwgTFVBSklUX01PREVfRU5HSU5FIHwgTFVBSklUX01PREVfT0ZGKTs8YnI+fCAodm9pZClsdWFK SVRfc2V0bW9kZShMLCAwLCBMVUFKSVRfTU9ERV9FTkdJTkUgfCBMVUFKSVRfTU9ERV9GTFVTSCk7 PGJyPnwgY2hlY2tfcHJvZmlsZV9mdW5jKEwpOzxicj58ICh2b2lkKWx1YUpJVF9zZXRtb2RlKEws IDAsIExVQUpJVF9NT0RFX0VOR0lORSB8IExVQUpJVF9NT0RFX09OKTs8YnI+fCByZXR1cm4gVEVT VF9FWElUX1NVQ0NFU1M7PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+ V2VsbCwgd2hhdCBpcyBjcmluZ2UgaGVyZT8gVGhlcmUgYXJlIGEgZmV3IHVucmVhY2hhYmxlIGxp bmVzLCBidXQgbm93IGl0IGlzPC9kaXY+PGRpdj5vYnZpb3VzIHRoYXQgdGhvc2UgYXJlIHNraXBw ZWQuPC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2 OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1o ZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj48YnI+KFllcywgd2Ugd2FudCB0byB1c2Ug dW5jb25kaXRpb25hbCBgdG9kbygpYCkuPGJyPlNvIEkgY29tbWVudGVkIHRoZSBzaW1pbGFyIGNv ZGUsIGhlbHBlciBgY2hlY2tfcHJvZmlsZV9mdW5jKClgLCBldGMuPGJyPndpdGggYCNpZiAwYC48 L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj5EbyB3ZSByZWFsbHkgbmVl ZCB0byB0aGF0IHRob3VnaD8gQWdhaW4sIGl0IGlzIGNsZWFybHkgdmlzaWJsZSB0aGF0IHRob3Nl IGFyZTwvZGl2PjxkaXY+dW5yZWFjaGFibGUuIENvbW1lbnQgaW4gYHRvZG9gIGlzIHN1ZmZpY2ll bnQuPC9kaXY+PGRpdj48YnI+Jmx0O3NuaXBwZWQmZ3Q7PC9kaXY+PGRpdj48ZGl2Pi0tPGJyPkJl c3QgcmVnYXJkcyw8L2Rpdj48ZGl2Pk1heGltIEtva3J5YXNoa2luPC9kaXY+PC9kaXY+PGRpdj4m bmJzcDs8L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9CT0RZPjwvSFRNTD4K ----ALT--40dCcEcc15F2De2bC84412B11254a30D1684506553--