From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id E2C9A434DD for ; Mon, 12 Sep 2022 21:43:18 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AA3A068BAFA; Tue, 13 Sep 2022 00:43:16 +0300 (EEST) Received: from mail-ot1-f49.google.com (mail-ot1-f49.google.com [209.85.210.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A82F968B813 for ; Tue, 13 Sep 2022 00:43:10 +0300 (EEST) Received: by mail-ot1-f49.google.com with SMTP id w22-20020a056830061600b006546deda3f9so6794312oti.4 for ; Mon, 12 Sep 2022 14:43:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:references:to:from :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date; bh=09IA827vM7Kh9H63n9NJ9VSo+BNXHlf/vBqLkr6k5oo=; b=Hvqp7rqsLH7aPLETJ4xNh4pBWKTRXKjZt5YRGXDAB6vz/Boqcca9xqyNicuPlJqfhR m9CpWDMSQ8gxDVnViaH2IamdK4542gatFgONl3OiRK4EDC0rjfv8sSoAwlsznHS60IWP 2sGi4KN6ehlaOUbTW4uSjCV1VC51X1nqKVN7e4P2lVBgVGv/tRAKOsABKRE6nsp9kXzu Xp21n8kwapiahMb7aeJrGFhw6qHYWqU7d/El01zlhB9ON9vva5Kre0Gc8z6V75eiBIoa Ghwv0X/lRYfbfTStKXG+0RnWg4PHcFjZ+gXn57P+mb8D96L+dwUeSqZi+4rMvw2vQ1tc 3vYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:references:to:from :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date; bh=09IA827vM7Kh9H63n9NJ9VSo+BNXHlf/vBqLkr6k5oo=; b=nL6CEfZqhBjF2ZMw1JFxsdU5BRsZO+yCRseY0hZxOjLtgceV5UOd99zxkpL/y+WYK6 psqyIJre4oIKpu8x3poQGMQmsLEm/lFeeJVJDXERIr836xfYBthigQV81htQv+TocT1Y DhSLtLjcgs4OcBThzlYhmoUVLF8Gg4KNoUsHkDeKLqQiiH1ydYyJiE3SA5U0R9/5t9wh oRhy1+op/0kVdDnKAS+7WYW/S4vXzQwDlov8zUJTFxxgmsURzxMAVmvTx+Panu8o6YxZ kwDChWiETDtOe79SReu8Bf9Dxywpxs8e/xPSgzztMGumD+jj6wziWlpjJQuWh3JXYdmj ERiA== X-Gm-Message-State: ACgBeo3PEoyI/7AJo5FLsM7OFMlGUdBOSvBy6NptRr34MP7EkwKqAAzM je8qTUQ1UqteUQZefMbr8Dy+WEnRSfE= X-Google-Smtp-Source: AA6agR69VlFoSqiKdviXSVq2osnSqou5B+jUCHlFGnKwL/HWdxBUDNcSR9911QYv70245RsxP2+iDw== X-Received: by 2002:a05:6830:4c7:b0:655:b6af:7273 with SMTP id s7-20020a05683004c700b00655b6af7273mr6719739otd.236.1663018988546; Mon, 12 Sep 2022 14:43:08 -0700 (PDT) Received: from [192.168.0.13] ([191.97.187.183]) by smtp.gmail.com with ESMTPSA id j16-20020a056870169000b0011e73536301sm6132021oae.52.2022.09.12.14.43.07 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 12 Sep 2022 14:43:08 -0700 (PDT) Message-ID: <31e594d6-0cb5-eceb-2679-40ea83ca6d3b@gmail.com> Date: Mon, 12 Sep 2022 18:43:07 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.13.0 Content-Language: en-US From: James Almer To: ffmpeg-devel@ffmpeg.org References: <20220908224303.3729-1-jamrial@gmail.com> <370b688d-0a2b-1065-d6c1-18ca54572dff@gmail.com> In-Reply-To: <370b688d-0a2b-1065-d6c1-18ca54572dff@gmail.com> Subject: Re: [FFmpeg-devel] [PATCH] swsresample/swresample: abort on invalid layouts X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gOS84LzIwMjIgODowMCBQTSwgSmFtZXMgQWxtZXIgd3JvdGU6Cj4gT24gOS84LzIwMjIgNzo0 NyBQTSwgQW5kcmVhcyBSaGVpbmhhcmR0IHdyb3RlOgo+PiBKYW1lcyBBbG1lcjoKPj4+IElmIGl0 J3MgdW5zdXBwb3J0ZWQgb3IgaW52YWxpZCwgdGhlbiB0aGVyZSdzIG5vIHBvaW50IHRyeWluZyB0 byAKPj4+IHJlYnVpbGQgaXQKPj4+IHVzaW5nIGEgdmFsdWUgdGhhdCBtYXkgaGF2ZSBiZWVuIGRl cml2ZWQgZnJvbSB0aGUgc2FtZSBsYXlvdXQgdG8gCj4+PiBiZWdpbiB3aXRoLgo+Pj4KPj4+IE1v dmUgdGhlIGNoZWNrcyBiZWZvcmUgdGhlIGF0dGVtcHRzIGF0IGNvcHlpbmcgdGhlIGxheW91dCB3 aGlsZSBhdCBpdC4KPj4+Cj4+PiBGaXhlcyB0aWNrZXQgIzk5MDguCj4+Pgo+Pj4gU2lnbmVkLW9m Zi1ieTogSmFtZXMgQWxtZXIgPGphbXJpYWxAZ21haWwuY29tPgo+Pj4gLS0tCj4+PiDCoCBsaWJz d3Jlc2FtcGxlL3N3cmVzYW1wbGUuYyB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tCj4+PiDCoCAxIGZpbGUgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMTYgZGVs ZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2xpYnN3cmVzYW1wbGUvc3dyZXNhbXBsZS5j IGIvbGlic3dyZXNhbXBsZS9zd3Jlc2FtcGxlLmMKPj4+IGluZGV4IDZmMDRkMTMwZDMuLjU4ODRm OGQ1MzMgMTAwNjQ0Cj4+PiAtLS0gYS9saWJzd3Jlc2FtcGxlL3N3cmVzYW1wbGUuYwo+Pj4gKysr IGIvbGlic3dyZXNhbXBsZS9zd3Jlc2FtcGxlLmMKPj4+IEBAIC0yMjcsNyArMjI3LDcgQEAgYXZf Y29sZCBpbnQgc3dyX2luaXQoc3RydWN0IFN3ckNvbnRleHQgKnMpewo+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgcy0+aW5fY2hfbGF5b3V0Lm9yZGVywqDCoMKgwqDCoMKgID0gQVZfQ0hB Tk5FTF9PUkRFUl9VTlNQRUM7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5pbl9j aF9sYXlvdXQubmJfY2hhbm5lbHMgPSBzLT51c2VyX2luX2NoX2NvdW50Owo+Pj4gwqDCoMKgwqDC oMKgwqDCoMKgIH0KPj4+IC3CoMKgwqAgfSBlbHNlCj4+PiArwqDCoMKgIH0gZWxzZSBpZiAoYXZf Y2hhbm5lbF9sYXlvdXRfY2hlY2soJnMtPnVzZXJfaW5fY2hsYXlvdXQpKQo+Pj4gwqDCoMKgwqDC oMKgwqDCoMKgIGF2X2NoYW5uZWxfbGF5b3V0X2NvcHkoJnMtPmluX2NoX2xheW91dCwgCj4+PiAm cy0+dXNlcl9pbl9jaGxheW91dCk7Cj4+PiDCoMKgwqDCoMKgIGlmICgocy0+dXNlcl9vdXRfY2hf Y291bnQgJiYgcy0+dXNlcl9vdXRfY2hfY291bnQgIT0gCj4+PiBzLT51c2VyX291dF9jaGxheW91 dC5uYl9jaGFubmVscykgfHwKPj4+IEBAIC0yNDAsMTcgKzI0MCw0NSBAQCBhdl9jb2xkIGludCBz d3JfaW5pdChzdHJ1Y3QgU3dyQ29udGV4dCAqcyl7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBzLT5vdXRfY2hfbGF5b3V0Lm9yZGVywqDCoMKgwqDCoMKgID0gQVZfQ0hBTk5FTF9PUkRF Ul9VTlNQRUM7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5vdXRfY2hfbGF5b3V0 Lm5iX2NoYW5uZWxzID0gcy0+dXNlcl9vdXRfY2hfY291bnQ7Cj4+PiDCoMKgwqDCoMKgwqDCoMKg wqAgfQo+Pj4gLcKgwqDCoCB9IGVsc2UKPj4+ICvCoMKgwqAgfSBlbHNlIGlmIChhdl9jaGFubmVs X2xheW91dF9jaGVjaygmcy0+dXNlcl9vdXRfY2hsYXlvdXQpKQo+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgIGF2X2NoYW5uZWxfbGF5b3V0X2NvcHkoJnMtPm91dF9jaF9sYXlvdXQsIAo+Pj4gJnMtPnVz ZXJfb3V0X2NobGF5b3V0KTsKPj4+IMKgwqDCoMKgwqAgaWYgKCFzLT5vdXQuY2hfY291bnQgJiYg IXMtPnVzZXJfb3V0X2NoX2xheW91dCkKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5vdXQuY2hf Y291bnTCoCA9IHMtPm91dF9jaF9sYXlvdXQubmJfY2hhbm5lbHM7Cj4+PiDCoMKgwqDCoMKgIGlm ICghcy0+IGluLmNoX2NvdW50ICYmICFzLT4gdXNlcl9pbl9jaF9sYXlvdXQpCj4+PiDCoMKgwqDC oMKgwqDCoMKgwqAgcy0+IGluLmNoX2NvdW50wqAgPSBzLT5pbl9jaF9sYXlvdXQubmJfY2hhbm5l bHM7Cj4+PiArCj4+PiArwqDCoMKgIGlmICghKHJldCA9IGF2X2NoYW5uZWxfbGF5b3V0X2NoZWNr KCZzLT5pbl9jaF9sYXlvdXQpKSB8fCAKPj4+IHMtPmluX2NoX2xheW91dC5uYl9jaGFubmVscyA+ IFNXUl9DSF9NQVgpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAocmV0KQo+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgYXZfY2hhbm5lbF9sYXlvdXRfZGVzY3JpYmUoJnMtPmluX2NoX2xheW91 dCwgbDEsIAo+Pj4gc2l6ZW9mKGwxKSk7Cj4+PiArwqDCoMKgwqDCoMKgwqAgYXZfbG9nKHMsIEFW X0xPR19XQVJOSU5HLCAiSW5wdXQgY2hhbm5lbCBsYXlvdXQgXCIlc1wiIGlzIAo+Pj4gaW52YWxp ZCBvciB1bnN1cHBvcnRlZC5cbiIsIHJldCA/IGwxIDogIiIpOwo+Pj4gK8KgwqDCoMKgwqDCoMKg IHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4+PiArwqDCoMKgIH0KPj4+ICsKPj4+ICvCoMKgwqAg aWYgKCEocmV0ID0gYXZfY2hhbm5lbF9sYXlvdXRfY2hlY2soJnMtPm91dF9jaF9sYXlvdXQpKSB8 fCAKPj4+IHMtPm91dF9jaF9sYXlvdXQubmJfY2hhbm5lbHMgPiBTV1JfQ0hfTUFYKSB7Cj4+PiAr wqDCoMKgwqDCoMKgwqAgaWYgKHJldCkKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF2X2No YW5uZWxfbGF5b3V0X2Rlc2NyaWJlKCZzLT5vdXRfY2hfbGF5b3V0LCBsMiwgCj4+PiBzaXplb2Yo bDIpKTsKPj4+ICvCoMKgwqDCoMKgwqDCoCBhdl9sb2cocywgQVZfTE9HX1dBUk5JTkcsICJPdXRw dXQgY2hhbm5lbCBsYXlvdXQgXCIlc1wiIGlzIAo+Pj4gaW52YWxpZCBvciB1bnN1cHBvcnRlZC5c biIsIHJldCA/IGwyIDogIiIpOwo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBBVkVSUk9SKEVJ TlZBTCk7Cj4+PiArwqDCoMKgIH0KPj4+IMKgICNlbHNlCj4+PiDCoMKgwqDCoMKgIHMtPm91dC5j aF9jb3VudMKgID0gcy0+IHVzZXJfb3V0X2NobGF5b3V0Lm5iX2NoYW5uZWxzOwo+Pj4gwqDCoMKg wqDCoCBzLT4gaW4uY2hfY291bnTCoCA9IHMtPsKgIHVzZXJfaW5fY2hsYXlvdXQubmJfY2hhbm5l bHM7Cj4+PiArwqDCoMKgIGlmICghKHJldCA9IGF2X2NoYW5uZWxfbGF5b3V0X2NoZWNrKCZzLT51 c2VyX2luX2NobGF5b3V0KSkgfHwgCj4+PiBzLT51c2VyX2luX2NobGF5b3V0Lm5iX2NoYW5uZWxz ID4gU1dSX0NIX01BWCkgewo+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmIChyZXQpCj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBhdl9jaGFubmVsX2xheW91dF9kZXNjcmliZSgmcy0+dXNlcl9pbl9j aGxheW91dCwgbDEsIAo+Pj4gc2l6ZW9mKGwxKSk7Cj4+PiArwqDCoMKgwqDCoMKgwqAgYXZfbG9n KHMsIEFWX0xPR19XQVJOSU5HLCAiSW5wdXQgY2hhbm5lbCBsYXlvdXQgXCIlc1wiIGlzIAo+Pj4g aW52YWxpZCBvciB1bnN1cHBvcnRlZC5cbiIsIHJldCA/IGwxIDogIiIpOwo+Pj4gK8KgwqDCoMKg wqDCoMKgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4+PiArwqDCoMKgIH0KPj4+ICsKPj4+ICvC oMKgwqAgaWYgKCEocmV0ID0gYXZfY2hhbm5lbF9sYXlvdXRfY2hlY2soJnMtPnVzZXJfb3V0X2No bGF5b3V0KSkgfHwgCj4+PiBzLT51c2VyX291dF9jaGxheW91dC5uYl9jaGFubmVscyA+IFNXUl9D SF9NQVgpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAocmV0KQo+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgYXZfY2hhbm5lbF9sYXlvdXRfZGVzY3JpYmUoJnMtPnVzZXJfb3V0X2NobGF5b3V0 LCBsMiwgCj4+PiBzaXplb2YobDIpKTsKPj4+ICvCoMKgwqDCoMKgwqDCoCBhdl9sb2cocywgQVZf TE9HX1dBUk5JTkcsICJPdXRwdXQgY2hhbm5lbCBsYXlvdXQgXCIlc1wiIGlzIAo+Pj4gaW52YWxp ZCBvciB1bnN1cHBvcnRlZC5cbiIsIHJldCA/IGwyIDogIiIpOwo+Pgo+PiBXaHkgYXJlIHlvdSB1 c2luZ8KgIEFWX0xPR19XQVJOSU5HIHdoZW4geW91IGFyZSBlcnJvcmluZyBvdXQ/Cj4+Cj4+PiAr wqDCoMKgwqDCoMKgwqAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKPj4+ICvCoMKgwqAgfQo+Pj4g Kwo+Pj4gwqDCoMKgwqDCoCByZXTCoCA9IGF2X2NoYW5uZWxfbGF5b3V0X2NvcHkoJnMtPmluX2No X2xheW91dCwgCj4+PiAmcy0+dXNlcl9pbl9jaGxheW91dCk7Cj4+PiDCoMKgwqDCoMKgIHJldCB8 PSBhdl9jaGFubmVsX2xheW91dF9jb3B5KCZzLT5vdXRfY2hfbGF5b3V0LCAKPj4+ICZzLT51c2Vy X291dF9jaGxheW91dCk7Cj4+PiDCoMKgwqDCoMKgIGlmIChyZXQgPCAwKQo+Pj4gQEAgLTI2MSwx OCArMjg5LDYgQEAgYXZfY29sZCBpbnQgc3dyX2luaXQoc3RydWN0IFN3ckNvbnRleHQgKnMpewo+ Pj4gwqDCoMKgwqDCoCBzLT5kaXRoZXIubWV0aG9kID0gcy0+dXNlcl9kaXRoZXJfbWV0aG9kOwo+ Pj4gLcKgwqDCoCBpZiAoIWF2X2NoYW5uZWxfbGF5b3V0X2NoZWNrKCZzLT5pbl9jaF9sYXlvdXQp IHx8IAo+Pj4gcy0+aW5fY2hfbGF5b3V0Lm5iX2NoYW5uZWxzID4gU1dSX0NIX01BWCkgewo+Pj4g LcKgwqDCoMKgwqDCoMKgIGF2X2NoYW5uZWxfbGF5b3V0X2Rlc2NyaWJlKCZzLT5pbl9jaF9sYXlv dXQsIGwxLCBzaXplb2YobDEpKTsKPj4+IC3CoMKgwqDCoMKgwqDCoCBhdl9sb2cocywgQVZfTE9H X1dBUk5JTkcsICJJbnB1dCBjaGFubmVsIGxheW91dCBcIiVzXCIgaXMgCj4+PiBpbnZhbGlkIG9y IHVuc3VwcG9ydGVkLlxuIiwgbDEpOwo+Pj4gLcKgwqDCoMKgwqDCoMKgIGF2X2NoYW5uZWxfbGF5 b3V0X3VuaW5pdCgmcy0+aW5fY2hfbGF5b3V0KTsKPj4+IC3CoMKgwqAgfQo+Pj4gLQo+Pj4gLcKg wqDCoCBpZiAoIWF2X2NoYW5uZWxfbGF5b3V0X2NoZWNrKCZzLT5vdXRfY2hfbGF5b3V0KSB8fCAK Pj4+IHMtPm91dF9jaF9sYXlvdXQubmJfY2hhbm5lbHMgPiBTV1JfQ0hfTUFYKSB7Cj4+PiAtwqDC oMKgwqDCoMKgwqAgYXZfY2hhbm5lbF9sYXlvdXRfZGVzY3JpYmUoJnMtPm91dF9jaF9sYXlvdXQs IGwyLCBzaXplb2YobDIpKTsKPj4+IC3CoMKgwqDCoMKgwqDCoCBhdl9sb2cocywgQVZfTE9HX1dB Uk5JTkcsICJPdXRwdXQgY2hhbm5lbCBsYXlvdXQgXCIlc1wiIGlzIAo+Pj4gaW52YWxpZCBvciB1 bnN1cHBvcnRlZC5cbiIsIGwyKTsKPj4+IC3CoMKgwqDCoMKgwqDCoCBhdl9jaGFubmVsX2xheW91 dF91bmluaXQoJnMtPm91dF9jaF9sYXlvdXQpOwo+Pj4gLcKgwqDCoCB9Cj4+PiAtCj4+PiDCoMKg wqDCoMKgIHN3aXRjaChzLT5lbmdpbmUpewo+Pj4gwqAgI2lmIENPTkZJR19MSUJTT1hSCj4+PiDC oMKgwqDCoMKgwqDCoMKgwqAgY2FzZSBTV1JfRU5HSU5FX1NPWFI6IHMtPnJlc2FtcGxlciA9ICZz d3JpX3NveHJfcmVzYW1wbGVyOyAKPj4+IGJyZWFrOwo+Pj4gQEAgLTI5MSw5ICszMDcsOSBAQCBh dl9jb2xkIGludCBzd3JfaW5pdChzdHJ1Y3QgU3dyQ29udGV4dCAqcyl7Cj4+PiDCoMKgwqDCoMKg wqDCoMKgwqAgYXZfY2hhbm5lbF9sYXlvdXRfdW5pbml0KCZzLT5pbl9jaF9sYXlvdXQpOwo+Pj4g wqDCoMKgwqDCoCB9Cj4+PiAtwqDCoMKgIGlmICghcy0+aW5fY2hfbGF5b3V0Lm5iX2NoYW5uZWxz IHx8IHMtPmluX2NoX2xheW91dC5vcmRlciA9PSAKPj4+IEFWX0NIQU5ORUxfT1JERVJfVU5TUEVD KQo+Pj4gK8KgwqDCoCBpZiAocy0+aW5fY2hfbGF5b3V0Lm9yZGVyID09IEFWX0NIQU5ORUxfT1JE RVJfVU5TUEVDKQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGF2X2NoYW5uZWxfbGF5b3V0X2RlZmF1 bHQoJnMtPmluX2NoX2xheW91dCwgcy0+dXNlZF9jaF9jb3VudCk7Cj4+PiAtwqDCoMKgIGlmICgh cy0+b3V0X2NoX2xheW91dC5uYl9jaGFubmVscyB8fCBzLT5vdXRfY2hfbGF5b3V0Lm9yZGVyID09 IAo+Pj4gQVZfQ0hBTk5FTF9PUkRFUl9VTlNQRUMpCj4+PiArwqDCoMKgIGlmIChzLT5vdXRfY2hf bGF5b3V0Lm9yZGVyID09IEFWX0NIQU5ORUxfT1JERVJfVU5TUEVDKQo+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgIGF2X2NoYW5uZWxfbGF5b3V0X2RlZmF1bHQoJnMtPm91dF9jaF9sYXlvdXQsIHMtPm91 dC5jaF9jb3VudCk7Cj4+PiDCoMKgwqDCoMKgIHMtPnJlbWF0cml4ID0gYXZfY2hhbm5lbF9sYXlv dXRfY29tcGFyZSgmcy0+b3V0X2NoX2xheW91dCwgCj4+PiAmcy0+aW5fY2hfbGF5b3V0KSB8fAo+ Pgo+PiBJdCBzZWVtcyB0aGF0IHlvdSBhcmUgbm90IGFib3J0aW5nOyB5b3UgYXJlIGluc3RlYWQg ZXJyb3Jpbmcgb3V0Lgo+IAo+IEknbGwgYW1lbmQgdGhlIGNvbW1pdCBtZXNzYWdlLgoKV2lsbCBh cHBseS4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZt cGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2Zm bXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2 aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3Jn IHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=