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 2176649CD61; Wed, 7 Jun 2023 16:03:08 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 2176649CD61 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1686142988; bh=jbtowJhHyYBvb7t5zXBSlbih4nTnxmsg5C1Yk20z+gs=; h=To:Cc:Date:In-Reply-To:References:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=mDKom07SjeVAiFAx55xpLO6pMYSR8zEiLtaVwj14sUoEDufu/JOA+XlKtrU17EZQG +1VNsP0dn3TQlOYRiip0AJ1mkq9tXQgy7b858dHFfFggAOPgw943sj5DJNrfynQePR cfeLSISPG0rElKtGSddpUZtDjCiAzEDXiZWU3KOU= Received: from f123.i.mail.ru (f123.i.mail.ru [45.84.128.32]) (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 19D9949CD61 for ; Wed, 7 Jun 2023 16:03:06 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 19D9949CD61 Received: by f123.i.mail.ru with local (envelope-from ) id 1q6soZ-0004v9-Ug; Wed, 07 Jun 2023 16:03:04 +0300 Received: by e.mail.ru with HTTP; Wed, 07 Jun 2023 16:03:03 +0300 To: =?UTF-8?B?U2VyZ2V5IEthcGx1bg==?= Cc: tarantool-patches@dev.tarantool.org, =?UTF-8?B?TWF4aW0gS29rcnlhc2hraW4=?= MIME-Version: 1.0 X-Mailer: Mail.Ru Mailer 1.0 X-SenderField-ReMsg: 16860597800584944851 X-SenderField-Remind: 0 Date: Wed, 07 Jun 2023 16:03:03 +0300 X-Priority: 3 (Normal) Message-ID: <1686142983.790793793@f123.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--bBdC88c3fEd1e195781758403BeF81f61686142983" In-Reply-To: References: <20230531132806.216178-1-m.kokryashkin@tarantool.org> X-7564579A: 78E4E2B564C1792B X-77F55803: 119C1F4DF6A9251CB6B5600FBBA7F86FD2655D27BF5CC61C7F8A01B4B7835A768FD872164937FA4CCCFADB98D2623C965F75CAC93A057F7A43070917ED5FB809C46A7F3F299D0928 X-C1DE0DAB: 0D63561A33F958A5C5BFF198B1CF43698DCD86860043CABC339289B157E3D6E8F87CCE6106E1FC07E67D4AC08A07B9B01F9513A7CA91E555CB5012B2E24CD356 X-C8649E89: 1C3962B70DF3F0ADE00A9FD3E00BEEDF77DD89D51EBB7742DC8270968E61249B1004E42C50DC4CA955A7F0CF078B5EC49A30900B95165D346B1FF97F6D0959A29EC11505C9A63071F673142B5D85C03E822EF32BD47E6B18DC851DF853B031881D7E09C32AA3244C2BDBF7AFEC62A0A1D7FAC0BE7D68B36A7C0C08F7987826B985A42E4C463514DC5DA084F8E80FEBD396F07DFE06A4A8314E894E437E78228B66933FA05BD8EF0CAD958392AE682691 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5+wYjsrrSY/u8Y3PrTqANeitKFiSd6Yd7yPpbiiZ/d5BsxIjK0jGQgCHUM3Ry2Lt2G3MDkMauH3h0dBdQGj+BB/iPzQYh7XS329fgu+/vnDhAND+HPUc8dgeI6gKe1nBzA== X-Mailru-MI: 80000000000000000800 X-Mailru-Sender: 11C2EC085EDE56FA38FD4C59F7EFE4075BA5E8E322B74EF22578FCAD4C4CE9674F3CC9EE66D338FB06CD02445D2D9C8FA2BFD6D8330F0C2D563E610FBBDBB4C842051EA7CBBFB509093DA5C00B83CE8412EB40C6FA10D71EFD657A8799238ED55FEEDEB644C299C0ED14614B50AE0675 X-Mras: OK Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_luajit=5D_Fix_memory_prob?= =?utf-8?q?ing_allocator_to_check_for_valid_end_address=2C_too=2E?= 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=?= Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" ----ALT--bBdC88c3fEd1e195781758403BeF81f61686142983 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpIQpUaGFua3MgZm9yIHRoZSByZXZpZXchCsKgCj7CoAo+PkhpLCBNYXhpbSEKPj5UaGFua3Mg Zm9yIHRoZSBwYXRjaCEKPj5UaGUgcGF0Y2ggaXMgTEdUTSBleGNlcHQgYSBmZXcgaW5zaWdpbmlm aWNhbnQgbml0cyBiZWxvdy4KPj4KPj5CdXQgSSdtIHdvbmRlcmluZzogY2FuIHdlIGV4YW1pbmUg YSB0ZXN0IGNhc2UgbWVudGlvbmVkIGluIHRoZSBbMV0/Cj4+SS5lLiBjcmVhdGUgYSByZWFsbHkg bG9uZyB0cmFjZSwgbmVhciB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIDJHQiwgc28KPj5pdHMgcmVz dWx0cyBiZWNvbWUgbWVhbmluZ2xlc3M/IFlvdSBtYXkgdGFrZSBhIGxvb2sgaW50bwo+Pjx0ZXN0 L3RhcmFudG9vbC10ZXN0cy9naC00MTk5LWdjNjQtZnVzZS50ZXN0Lmx1YT4gb3IKPj48dGVzdC90 YXJhbnRvb2wtdGVzdHMvZ2gtNjA5OC1maXgtc2lkZS1leGl0LXBhdGNoaW5nLW9uLWFybTY0LnRl c3QubHVhPgo+PmZvciB0aGUgaW5zcGlyYXRpb24uCj4+Cj4+VGhpcyBpcyBkZXNpcmVkIHRvIHNo b3cgYWN0dWFsIHByb2JsZW0sIGFuZCBub3QgY2hhbmdlcyBpbiBzb21lCj4+c3ludGhldGljIGJl aGF2aW91ci4KPkFzIHdlIGRpc2N1c3NlZCBvZmZsaW5lLCBJ4oCZdmUgYWRkZWQgdGhlIGZvbGxv d2luZyBjb21tZW50LCBicmFuY2ggaXMgZm9yY2UtcHVzaGVkOgo+PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4rLS0gWFhYOiBUaGlzIHRlc3QgYWxsb2NhdGVz IGBjZGF0YWAgb2JqZWN0cywgYnV0IGluIHJlYWwgd29ybGQKPistLSBzY2VuYXJpb3MgaXQgY2Fu IGJlIGFueSBvYmplY3QgdGhhdCBpcyBhbGxvY2F0ZWQgd2l0aAo+Ky0tIEx1YUpJVCdzIGFsbG9j YXRvciwgaW5jbHVkaW5nLCBmb3IgZXhhbXBsZSwgdHJhY2UsIGlmIGl0Cj4rLS0gaGFzIGJlZW4g YWxsb2NhdGVkIGNsb3NlIGVub3VnaCB0byB0aGUgbWVtb3J5IHJlZ2lvbgo+Ky0tIHVwcGVyIGJv dW5kIGFuZCBpZiBpdCBpcyBsb25nIGVub3VnaC4KPistLQo+Ky0tIFdoZW4gdGhpcyBpc3N1ZSBv Y2N1cnJzIHdpdGggYSB0cmFjZSwgaXQgbWF5IGxlYWQgdG8KPistLSBmYWlsdXJlcyBpbiBjaGVj a3MgdGhhdCByZWx5IG9uIHBvaW50ZXJzIGJlaW5nIDMyLWJpdC4KPistLSBGb3IgZXhhbXBsZSwg eW91IGNhbiBzZWUgb25lIGhlcmU6IHNyYy9sal9hc21feDg2Lmg6MzcwLgo+Ky0tCj4rLS0gQWx0 aG91Z2ggaXQgaXMgbmljZSB0byBoYXZlIGEgcmVwcm9kdWNlciB0aGF0IHNob3dzIGhvdwo+Ky0t IHRoYXQgaXNzdWUgY2FuIGFmZmVjdCBhIG5vbi1zeW50aGV0aWMgZXhlY3V0aW9uLCBpdCBpcyBy ZWFsbHkKPistLSBoYXJkIHRvIGFjaGlldmUgdGhlIGRlc2NyaWJlZCBzaXR1YXRpb24gd2l0aCB0 cmFjZXMgYmVjYXVzZQo+Ky0tIGFsbG9jYXRpb25zIGFyZSBoaW50LWJhc2VkIGFuZCB0aGVyZSBp cyBubyByb2J1c3QgZW5vdWdoCj4rLS0gd2F5IHRvIGNyZWF0ZSBhIGRldGVybWluaXN0aWMgdGVz dCBmb3IgdGhpcyBiZWhhdmlvci4KPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQo+Pgo+Pk9uIDMxLjA1LjIzLCBNYXhpbSBLb2tyeWFzaGtpbiB3cm90ZToKPj4+ IEZyb206IE1pa2UgUGFsbCA8bWlrZT4KPj4+Cj4+PiAoY2hlcnJ5LXBpY2tlZCBmcm9tIGNvbW1p dCA2NDYxNDhlNzQ3NzU5ZjBhZjNiNDdmOWJkMjg3Y2VkZDdlMTc0NjMxKQo+Pj4KPj4+IEJlZm9y ZSB0aGUgcGF0Y2ggYG1tYXBfcHJvYmVgIG9ubHkgY2hlY2tlZCBpZiB0aGUgYWxsb2NhdGVkIGNo dW5rCj4+PiBzdGFydCB3YXMgd2l0aGluIHRoZSAyXkxKX0FMTE9DX01CSVRTIGJ5dGVzIHJlZ2lv bi4gSG93ZXZlciwgaWYgdGhlCj4+PiBjaHVuayBpcyBiaWcgZW5vdWdoLCBpdHMgZW5kIGNhbiBy ZWFjaCBvdXRzaWRlIG9mIHRoYXQgcmVnaW9uLiBUaGlzCj4+PiBwYXRjaCBhZGRzIHRoZSBjb3Jy ZXNwb25kaW5nIGNoZWNrLCB0byBhdm9pZCBzdWNoIHNpdHVhdGlvbnMuCj4+Pgo+Pj4gTWF4aW0g S29rcnlhc2hraW46Cj4+PiAqIGFkZGVkIHRoZSBkZXNjcmlwdGlvbiBhbmQgdGhlIHRlc3QgZm9y IHRoZSBwcm9ibGVtCj4+Pgo+Pj4gUGFydCBvZiB0YXJhbnRvb2wvdGFyYW50b29sIzg1MTYKPj4+ IC0tLQo+Pj4gQnJhbmNoOiAgaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC9sdWFqaXQvdHJl ZS9mY2t4b3JnL2xqLTQ0NS1maXgtbWVtb3J5LXByb2JpbmctYWxsb2NhdG9yCj4+PiBQUjogIGh0 dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL3B1bGwvODcyMAo+Pj4gTHVhSklU IGlzc3VlOiAgaHR0cHM6Ly9naXRodWIuY29tL0x1YUpJVC9MdWFKSVQvaXNzdWVzLzQ0NQo+Pj4K Pj4+IHNyYy9sal9hbGxvYy5jIHwgMyArLQo+Pj4gLi4uLTQ0NS1maXgtbWVtb3J5LXByb2Jpbmct YWxsb2NhdG9yLnRlc3QubHVhIHwgMzIgKysrKysrKysrKysrKysrKysrKwo+Pj4gMiBmaWxlcyBj aGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+PiBjcmVhdGUgbW9kZSAx MDA2NDQgdGVzdC90YXJhbnRvb2wtdGVzdHMvbGotNDQ1LWZpeC1tZW1vcnktcHJvYmluZy1hbGxv Y2F0b3IudGVzdC5sdWEKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvc3JjL2xqX2FsbG9jLmMgYi9zcmMv bGpfYWxsb2MuYwo+Pj4gaW5kZXggZmZjZDAxOWIuLmY3MDM5YjViIDEwMDY0NAo+Pj4gLS0tIGEv c3JjL2xqX2FsbG9jLmMKPj4+ICsrKyBiL3NyYy9sal9hbGxvYy5jCj4+Cj4+PHNuaXBwZWQ+Cj4+ Cj4+PiBkaWZmIC0tZ2l0IGEvdGVzdC90YXJhbnRvb2wtdGVzdHMvbGotNDQ1LWZpeC1tZW1vcnkt cHJvYmluZy1hbGxvY2F0b3IudGVzdC5sdWEgYi90ZXN0L3RhcmFudG9vbC10ZXN0cy9sai00NDUt Zml4LW1lbW9yeS1wcm9iaW5nLWFsbG9jYXRvci50ZXN0Lmx1YQo+Pj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPj4+IGluZGV4IDAwMDAwMDAwLi40NDc2M2UzOAo+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4g KysrIGIvdGVzdC90YXJhbnRvb2wtdGVzdHMvbGotNDQ1LWZpeC1tZW1vcnktcHJvYmluZy1hbGxv Y2F0b3IudGVzdC5sdWEKPj4+IEBAIC0wLDAgKzEsMzIgQEAKPj4+ICtsb2NhbCB0YXAgPSByZXF1 aXJlKCd0YXAnKQo+Pj4gK2xvY2FsIGZmaSA9IHJlcXVpcmUoJ2ZmaScpCj4+PiArbG9jYWwgdGVz dCA9IHRhcC50ZXN0KCdsai00NDUtZml4LW1lbW9yeS1wcm9iaW5nLWFsbG9jYXRvcicpOnNraXBj b25kKHsKPj4+ICsgWydVbmxpa2VseSB0byBoaXQgYmV5b25kIHRoZSB1cHBlciBib3VuZCBmb3Ig R0M2NCddID0gZmZpLmFiaSgnZ2M2NCcpLAo+Pj4gK30pCj4+PiArCj4+PiArbG9jYWwgYml0ID0g cmVxdWlyZSgnYml0JykKPj4+ICtsb2NhbCBzaHIgPSBiaXQucnNoaWZ0Cj4+PiArbG9jYWwgdWlu dHB0cl90ID0gZmZpLnR5cGVvZigndWludHB0cl90JykKPj4+ICsKPj4+ICstLSBEdWUgdG8gbGlt aXRhdGlvbnMgaW4gdGhlIHg2NCBjb21waWxlciBiYWNrZW5kLCBtYXggbWVtb3J5IGxpbWl0IGlz Cj4+Cj4+TWlub3I6IGNvbW1lbnQgbGluZSB3aWR0aCBpcyBtb3JlIHRoYW4gNjYgc3ltYm9scy4K PkZpeGVkLgo+Pgo+Pj4gKy0tIHR3byB0aW1lcyBsb3dlciB3aGVuIEpJVCBpcyBub3QgZGlzYWJs ZWQgZW50aXJlbHkuCj4+PiArbG9jYWwgSEFTX0pJVCA9IGppdC5zdGF0dXMoKQo+Pj4gK2xvY2Fs IExKX0FMTE9DX01CSVRTID0gSEFTX0pJVCBhbmQgMzEgb3IgMzIKPj4+ICtsb2NhbCBNQVhfR0Ig PSBIQVNfSklUIGFuZCAyIG9yIDQKPj4+ICsKPj4+ICt0ZXN0OnBsYW4oTUFYX0dCKQo+Pj4gKwo+ Pj4gKy0tIENob21wIG1lbW9yeSBpbiBjdXJyZW50bHkgYWxsb2NhdGVkIEdDIHNwYWNlLgo+Pj4g K2NvbGxlY3RnYXJiYWdlKCdzdG9wJykKPj4+ICsKPj4+ICstLSBFdmVyeSBhbGxvY2F0aW9uIG11 c3QgZWl0aGVyIHJlc3VsdCBpbiBhIGNodW5rIHRoYXQgZml0cyBpbnRvIHRoZQo+Pgo+PkRpdHRv Lgo+Rml4ZWQuCj4+Cj4+PiArLS0gYE1BWF9HQmAtc2l6ZWQgcmVnaW9uIGVudGlyZWx5IG9yIHJl dHVybiBhbiBPT00gZXJyb3IuCj4+PiArZm9yIF8gPSAxLCBNQVhfR0IgZG8KPj4+ICsgbG9jYWwg c3RhdHVzLCByZXN1bHQgPSBwY2FsbChmZmkubmV3LCAnY2hhcls/XScsIDEwMjQgKiAxMDI0ICog MTAyNCkKPj4+ICsgaWYgc3RhdHVzIHRoZW4KPj4+ICsgbG9jYWwgdXBwZXJfYm91bmQgPSBmZmku Y2FzdCh1aW50cHRyX3QsIHJlc3VsdCkgKyBmZmkuc2l6ZW9mKHJlc3VsdCkKPj4+ICsgdGVzdDpv ayhzaHIodXBwZXJfYm91bmQsIExKX0FMTE9DX01CSVRTKSA9PSAwLCAnbm9uLWV4dGVuZGVkIGFk ZHJlc3MnKQo+Pj4gKyBlbHNlCj4+PiArIHRlc3Q6b2socmVzdWx0ID09ICdub3QgZW5vdWdoIG1l bW9yeScsICdPT00gZW5jb3VudGVyZWQnKQo+Pj4gKyBlbmQKPj4+ICtlbmQKPj4KPj5OaXQ6IE1p c2luZyBgb3MuZXhpdCgpYC4KPj4KPj4+IC0tCj4+PiAyLjQwLjEKPj4+Cj4+Cj4+WzFdOiAgaHR0 cHM6Ly9naXRodWIuY29tL0x1YUpJVC9MdWFKSVQvaXNzdWVzLzQ0NQo+Pgo+Pi0tCj4+QmVzdCBy ZWdhcmRzLAo+PlNlcmdleSBLYXBsdW4KPi0tCj5CZXN0IHJlZ2FyZHMsCj5NYXhpbSBLb2tyeWFz aGtpbgo+wqA= ----ALT--bBdC88c3fEd1e195781758403BeF81f61686142983 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+SGkhPC9kaXY+PGRpdj5UaGFua3MgZm9yIHRoZSByZXZpZXchPC9k aXY+PGRpdj4mbmJzcDs8L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNv bGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PiZuYnNw OzxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2lu OjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXYgaWQ9IiI+PGRpdiBjbGFzcz0ianMtaGVs cGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXYgaWQ9InN0eWxlXzE2ODYwNTk3ODAwNTg0OTQ0 ODUxX0JPRFkiPkhpLCBNYXhpbSE8YnI+VGhhbmtzIGZvciB0aGUgcGF0Y2ghPGJyPlRoZSBwYXRj aCBpcyBMR1RNIGV4Y2VwdCBhIGZldyBpbnNpZ2luaWZpY2FudCBuaXRzIGJlbG93Ljxicj48YnI+ QnV0IEknbSB3b25kZXJpbmc6IGNhbiB3ZSBleGFtaW5lIGEgdGVzdCBjYXNlIG1lbnRpb25lZCBp biB0aGUgWzFdPzxicj5JLmUuIGNyZWF0ZSBhIHJlYWxseSBsb25nIHRyYWNlLCBuZWFyIHRoZSB1 cHBlciBib3VuZCBvZiB0aGUgMkdCLCBzbzxicj5pdHMgcmVzdWx0cyBiZWNvbWUgbWVhbmluZ2xl c3M/IFlvdSBtYXkgdGFrZSBhIGxvb2sgaW50bzxicj4mbHQ7dGVzdC90YXJhbnRvb2wtdGVzdHMv Z2gtNDE5OS1nYzY0LWZ1c2UudGVzdC5sdWEmZ3Q7IG9yPGJyPiZsdDt0ZXN0L3RhcmFudG9vbC10 ZXN0cy9naC02MDk4LWZpeC1zaWRlLWV4aXQtcGF0Y2hpbmctb24tYXJtNjQudGVzdC5sdWEmZ3Q7 PGJyPmZvciB0aGUgaW5zcGlyYXRpb24uPGJyPjxicj5UaGlzIGlzIGRlc2lyZWQgdG8gc2hvdyBh Y3R1YWwgcHJvYmxlbSwgYW5kIG5vdCBjaGFuZ2VzIGluIHNvbWU8YnI+c3ludGhldGljIGJlaGF2 aW91ci48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj5BcyB3ZSBkaXNj dXNzZWQgb2ZmbGluZSwgSeKAmXZlIGFkZGVkIHRoZSBmb2xsb3dpbmcgY29tbWVudCwgYnJhbmNo IGlzIGZvcmNlLXB1c2hlZDo8L2Rpdj48ZGl2Pj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PTwvZGl2PjxkaXY+PGRpdj48ZGl2PistLSBYWFg6IFRoaXMgdGVzdCBh bGxvY2F0ZXMgYGNkYXRhYCBvYmplY3RzLCBidXQgaW4gcmVhbCB3b3JsZDwvZGl2PjxkaXY+Ky0t IHNjZW5hcmlvcyBpdCBjYW4gYmUgYW55IG9iamVjdCB0aGF0IGlzIGFsbG9jYXRlZCB3aXRoPC9k aXY+PGRpdj4rLS0gTHVhSklUJ3MgYWxsb2NhdG9yLCBpbmNsdWRpbmcsIGZvciBleGFtcGxlLCB0 cmFjZSwgaWYgaXQ8L2Rpdj48ZGl2PistLSBoYXMgYmVlbiBhbGxvY2F0ZWQgY2xvc2UgZW5vdWdo IHRvIHRoZSBtZW1vcnkgcmVnaW9uPC9kaXY+PGRpdj4rLS0gdXBwZXIgYm91bmQgYW5kIGlmIGl0 IGlzIGxvbmcgZW5vdWdoLjwvZGl2PjxkaXY+Ky0tPC9kaXY+PGRpdj4rLS0gV2hlbiB0aGlzIGlz c3VlIG9jY3VycnMgd2l0aCBhIHRyYWNlLCBpdCBtYXkgbGVhZCB0bzwvZGl2PjxkaXY+Ky0tIGZh aWx1cmVzIGluIGNoZWNrcyB0aGF0IHJlbHkgb24gcG9pbnRlcnMgYmVpbmcgMzItYml0LjwvZGl2 PjxkaXY+Ky0tIEZvciBleGFtcGxlLCB5b3UgY2FuIHNlZSBvbmUgaGVyZTogc3JjL2xqX2FzbV94 ODYuaDozNzAuPC9kaXY+PGRpdj4rLS08L2Rpdj48ZGl2PistLSBBbHRob3VnaCBpdCBpcyBuaWNl IHRvIGhhdmUgYSByZXByb2R1Y2VyIHRoYXQgc2hvd3MgaG93PC9kaXY+PGRpdj4rLS0gdGhhdCBp c3N1ZSBjYW4gYWZmZWN0IGEgbm9uLXN5bnRoZXRpYyBleGVjdXRpb24sIGl0IGlzIHJlYWxseTwv ZGl2PjxkaXY+Ky0tIGhhcmQgdG8gYWNoaWV2ZSB0aGUgZGVzY3JpYmVkIHNpdHVhdGlvbiB3aXRo IHRyYWNlcyBiZWNhdXNlPC9kaXY+PGRpdj4rLS0gYWxsb2NhdGlvbnMgYXJlIGhpbnQtYmFzZWQg YW5kIHRoZXJlIGlzIG5vIHJvYnVzdCBlbm91Z2g8L2Rpdj48ZGl2PistLSB3YXkgdG8gY3JlYXRl IGEgZGV0ZXJtaW5pc3RpYyB0ZXN0IGZvciB0aGlzIGJlaGF2aW9yLjwvZGl2PjxkaXY+PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PC9kaXY+PC9kaXY+PC9kaXY+ PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46 MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMt cmVhZG1zZy1tc2ciPjxkaXY+PGRpdj48YnI+T24gMzEuMDUuMjMsIE1heGltIEtva3J5YXNoa2lu IHdyb3RlOjxicj4mZ3Q7IEZyb206IE1pa2UgUGFsbCAmbHQ7bWlrZSZndDs8YnI+Jmd0Ozxicj4m Z3Q7IChjaGVycnktcGlja2VkIGZyb20gY29tbWl0IDY0NjE0OGU3NDc3NTlmMGFmM2I0N2Y5YmQy ODdjZWRkN2UxNzQ2MzEpPGJyPiZndDs8YnI+Jmd0OyBCZWZvcmUgdGhlIHBhdGNoIGBtbWFwX3By b2JlYCBvbmx5IGNoZWNrZWQgaWYgdGhlIGFsbG9jYXRlZCBjaHVuazxicj4mZ3Q7IHN0YXJ0IHdh cyB3aXRoaW4gdGhlIDJeTEpfQUxMT0NfTUJJVFMgYnl0ZXMgcmVnaW9uLiBIb3dldmVyLCBpZiB0 aGU8YnI+Jmd0OyBjaHVuayBpcyBiaWcgZW5vdWdoLCBpdHMgZW5kIGNhbiByZWFjaCBvdXRzaWRl IG9mIHRoYXQgcmVnaW9uLiBUaGlzPGJyPiZndDsgcGF0Y2ggYWRkcyB0aGUgY29ycmVzcG9uZGlu ZyBjaGVjaywgdG8gYXZvaWQgc3VjaCBzaXR1YXRpb25zLjxicj4mZ3Q7PGJyPiZndDsgTWF4aW0g S29rcnlhc2hraW46PGJyPiZndDsgKiBhZGRlZCB0aGUgZGVzY3JpcHRpb24gYW5kIHRoZSB0ZXN0 IGZvciB0aGUgcHJvYmxlbTxicj4mZ3Q7PGJyPiZndDsgUGFydCBvZiB0YXJhbnRvb2wvdGFyYW50 b29sIzg1MTY8YnI+Jmd0OyAtLS08YnI+Jmd0OyBCcmFuY2g6IDxhIGhyZWY9Imh0dHBzOi8vZ2l0 aHViLmNvbS90YXJhbnRvb2wvbHVhaml0L3RyZWUvZmNreG9yZy9sai00NDUtZml4LW1lbW9yeS1w cm9iaW5nLWFsbG9jYXRvciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS90YXJh bnRvb2wvbHVhaml0L3RyZWUvZmNreG9yZy9sai00NDUtZml4LW1lbW9yeS1wcm9iaW5nLWFsbG9j YXRvcjwvYT48YnI+Jmd0OyBQUjogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9v bC90YXJhbnRvb2wvcHVsbC84NzIwIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29t L3RhcmFudG9vbC90YXJhbnRvb2wvcHVsbC84NzIwPC9hPjxicj4mZ3Q7IEx1YUpJVCBpc3N1ZTog PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0x1YUpJVC9MdWFKSVQvaXNzdWVzLzQ0NSIgdGFy Z2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS9MdWFKSVQvTHVhSklUL2lzc3Vlcy80NDU8 L2E+PGJyPiZndDs8YnI+Jmd0OyBzcmMvbGpfYWxsb2MuYyB8IDMgKy08YnI+Jmd0OyAuLi4tNDQ1 LWZpeC1tZW1vcnktcHJvYmluZy1hbGxvY2F0b3IudGVzdC5sdWEgfCAzMiArKysrKysrKysrKysr KysrKysrPGJyPiZndDsgMiBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pPGJyPiZndDsgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvdGFyYW50b29sLXRlc3RzL2xq LTQ0NS1maXgtbWVtb3J5LXByb2JpbmctYWxsb2NhdG9yLnRlc3QubHVhPGJyPiZndDs8YnI+Jmd0 OyBkaWZmIC0tZ2l0IGEvc3JjL2xqX2FsbG9jLmMgYi9zcmMvbGpfYWxsb2MuYzxicj4mZ3Q7IGlu ZGV4IGZmY2QwMTliLi5mNzAzOWI1YiAxMDA2NDQ8YnI+Jmd0OyAtLS0gYS9zcmMvbGpfYWxsb2Mu Yzxicj4mZ3Q7ICsrKyBiL3NyYy9sal9hbGxvYy5jPGJyPjxicj4mbHQ7c25pcHBlZCZndDs8YnI+ PGJyPiZndDsgZGlmZiAtLWdpdCBhL3Rlc3QvdGFyYW50b29sLXRlc3RzL2xqLTQ0NS1maXgtbWVt b3J5LXByb2JpbmctYWxsb2NhdG9yLnRlc3QubHVhIGIvdGVzdC90YXJhbnRvb2wtdGVzdHMvbGot NDQ1LWZpeC1tZW1vcnktcHJvYmluZy1hbGxvY2F0b3IudGVzdC5sdWE8YnI+Jmd0OyBuZXcgZmls ZSBtb2RlIDEwMDY0NDxicj4mZ3Q7IGluZGV4IDAwMDAwMDAwLi40NDc2M2UzODxicj4mZ3Q7IC0t LSAvZGV2L251bGw8YnI+Jmd0OyArKysgYi90ZXN0L3RhcmFudG9vbC10ZXN0cy9sai00NDUtZml4 LW1lbW9yeS1wcm9iaW5nLWFsbG9jYXRvci50ZXN0Lmx1YTxicj4mZ3Q7IEBAIC0wLDAgKzEsMzIg QEA8YnI+Jmd0OyArbG9jYWwgdGFwID0gcmVxdWlyZSgndGFwJyk8YnI+Jmd0OyArbG9jYWwgZmZp ID0gcmVxdWlyZSgnZmZpJyk8YnI+Jmd0OyArbG9jYWwgdGVzdCA9IHRhcC50ZXN0KCdsai00NDUt Zml4LW1lbW9yeS1wcm9iaW5nLWFsbG9jYXRvcicpOnNraXBjb25kKHs8YnI+Jmd0OyArIFsnVW5s aWtlbHkgdG8gaGl0IGJleW9uZCB0aGUgdXBwZXIgYm91bmQgZm9yIEdDNjQnXSA9IGZmaS5hYmko J2djNjQnKSw8YnI+Jmd0OyArfSk8YnI+Jmd0OyArPGJyPiZndDsgK2xvY2FsIGJpdCA9IHJlcXVp cmUoJ2JpdCcpPGJyPiZndDsgK2xvY2FsIHNociA9IGJpdC5yc2hpZnQ8YnI+Jmd0OyArbG9jYWwg dWludHB0cl90ID0gZmZpLnR5cGVvZigndWludHB0cl90Jyk8YnI+Jmd0OyArPGJyPiZndDsgKy0t IER1ZSB0byBsaW1pdGF0aW9ucyBpbiB0aGUgeDY0IGNvbXBpbGVyIGJhY2tlbmQsIG1heCBtZW1v cnkgbGltaXQgaXM8YnI+PGJyPk1pbm9yOiBjb21tZW50IGxpbmUgd2lkdGggaXMgbW9yZSB0aGFu IDY2IHN5bWJvbHMuPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+Rml4 ZWQuPC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2 OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1o ZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj48YnI+Jmd0OyArLS0gdHdvIHRpbWVzIGxv d2VyIHdoZW4gSklUIGlzIG5vdCBkaXNhYmxlZCBlbnRpcmVseS48YnI+Jmd0OyArbG9jYWwgSEFT X0pJVCA9IGppdC5zdGF0dXMoKTxicj4mZ3Q7ICtsb2NhbCBMSl9BTExPQ19NQklUUyA9IEhBU19K SVQgYW5kIDMxIG9yIDMyPGJyPiZndDsgK2xvY2FsIE1BWF9HQiA9IEhBU19KSVQgYW5kIDIgb3Ig NDxicj4mZ3Q7ICs8YnI+Jmd0OyArdGVzdDpwbGFuKE1BWF9HQik8YnI+Jmd0OyArPGJyPiZndDsg Ky0tIENob21wIG1lbW9yeSBpbiBjdXJyZW50bHkgYWxsb2NhdGVkIEdDIHNwYWNlLjxicj4mZ3Q7 ICtjb2xsZWN0Z2FyYmFnZSgnc3RvcCcpPGJyPiZndDsgKzxicj4mZ3Q7ICstLSBFdmVyeSBhbGxv Y2F0aW9uIG11c3QgZWl0aGVyIHJlc3VsdCBpbiBhIGNodW5rIHRoYXQgZml0cyBpbnRvIHRoZTxi cj48YnI+RGl0dG8uPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+Rml4 ZWQuPC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2 OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1o ZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj48YnI+Jmd0OyArLS0gYE1BWF9HQmAtc2l6 ZWQgcmVnaW9uIGVudGlyZWx5IG9yIHJldHVybiBhbiBPT00gZXJyb3IuPGJyPiZndDsgK2ZvciBf ID0gMSwgTUFYX0dCIGRvPGJyPiZndDsgKyBsb2NhbCBzdGF0dXMsIHJlc3VsdCA9IHBjYWxsKGZm aS5uZXcsICdjaGFyWz9dJywgMTAyNCAqIDEwMjQgKiAxMDI0KTxicj4mZ3Q7ICsgaWYgc3RhdHVz IHRoZW48YnI+Jmd0OyArIGxvY2FsIHVwcGVyX2JvdW5kID0gZmZpLmNhc3QodWludHB0cl90LCBy ZXN1bHQpICsgZmZpLnNpemVvZihyZXN1bHQpPGJyPiZndDsgKyB0ZXN0Om9rKHNocih1cHBlcl9i b3VuZCwgTEpfQUxMT0NfTUJJVFMpID09IDAsICdub24tZXh0ZW5kZWQgYWRkcmVzcycpPGJyPiZn dDsgKyBlbHNlPGJyPiZndDsgKyB0ZXN0Om9rKHJlc3VsdCA9PSAnbm90IGVub3VnaCBtZW1vcnkn LCAnT09NIGVuY291bnRlcmVkJyk8YnI+Jmd0OyArIGVuZDxicj4mZ3Q7ICtlbmQ8YnI+PGJyPk5p dDogTWlzaW5nIGBvcy5leGl0KClgLjxicj48YnI+Jmd0OyAtLTxicj4mZ3Q7IDIuNDAuMTxicj4m Z3Q7PGJyPjxicj5bMV06IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9MdWFKSVQvTHVhSklU L2lzc3Vlcy80NDUiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20vTHVhSklUL0x1 YUpJVC9pc3N1ZXMvNDQ1PC9hPjxicj48YnI+LS08YnI+QmVzdCByZWdhcmRzLDxicj5TZXJnZXkg S2FwbHVuPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+PGRpdj4tLTxi cj5CZXN0IHJlZ2FyZHMsPC9kaXY+PGRpdj5NYXhpbSBLb2tyeWFzaGtpbjwvZGl2PjwvZGl2Pjxk aXY+Jm5ic3A7PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjwvQk9EWT48L0hUTUw+Cg== ----ALT--bBdC88c3fEd1e195781758403BeF81f61686142983--