From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <ffmpeg-devel-bounces@ffmpeg.org>
Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100])
	by master.gitmailbox.com (Postfix) with ESMTPS id 47BDB4DFEA
	for <ffmpegdev@gitmailbox.com>; Sun, 27 Apr 2025 08:49:41 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 22FB7687DF1;
	Sun, 27 Apr 2025 11:49:39 +0300 (EEST)
Received: from sender2-op-o19.zoho.eu (sender2-op-o19.zoho.eu [136.143.171.19])
 by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3AC74687BEF
 for <ffmpeg-devel@ffmpeg.org>; Sun, 27 Apr 2025 11:49:32 +0300 (EEST)
ARC-Seal: i=1; a=rsa-sha256; t=1745743768; cv=none; d=zohomail.eu; s=zohoarc; 
 b=Yc2c0GqWgBaiqAxSkZ3qx1GYbnMxvwwn3ul32b6w+7APdJ/l3g5uMBDQADpkR7UL1f0xN8O0Kt0QXRP9tM6kg+mlofD/sRxvHI2KmZFd7uL2LzDjSrp5IZ1yzwLfvB9alkeSo3qJmEuikuPS+1QNHB2AILXYKMGISt47MMjWo0c=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.eu;
 s=zohoarc; t=1745743768;
 h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To:Cc;
 bh=P4flrJ9FKNcArUk9hNNNet4LgFq9FmSi/7q3HK5WGmU=; 
 b=e3L/YyYx6tWBJMe1wMagD5PpY0MDtmyrFJL13zLkcPcg9GDx1iSLZi6fKNefWrl8ymrJ3BQk7rQ8TW/HVjUvz78P+8jdFdzgJpu/3KJaKJRj3DRbR3WEp1fnHsWOD6pLt4Hs3+EgpPSllrMj5fi1DYa3x2aCPUGRK2leROvgy+4=
ARC-Authentication-Results: i=1; mx.zohomail.eu;
 dkim=pass  header.i=frankplowman.com;
 spf=pass  smtp.mailfrom=post@frankplowman.com;
 dmarc=pass header.from=<post@frankplowman.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1745743768; 
 s=zmail; d=frankplowman.com; i=post@frankplowman.com;
 h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To:Cc;
 bh=P4flrJ9FKNcArUk9hNNNet4LgFq9FmSi/7q3HK5WGmU=;
 b=DNFVDsMq7rm33QrpS2grZ3ZROWzWy4PSfPtjAWzqyPnL07CqHL2FqNn2L1bZ8Ur5
 SUCRFKpJg115vrCm0xvky2vmPue+hQ5utfhnRsyT6NGGvYJjeqvT0J9R31qf4I8SVBR
 bJ85qQrFWCWLHwYMKoO2VaQodaYqq8mz7WuVpczI=
Received: by mx.zoho.eu with SMTPS id 1745743767255604.1949438475701;
 Sun, 27 Apr 2025 10:49:27 +0200 (CEST)
Message-ID: <edaa19a2-d5db-43c7-b61f-c3420dc481bd@frankplowman.com>
Date: Sun, 27 Apr 2025 09:49:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-GB
To: ffmpeg-devel@ffmpeg.org
References: <20250418143949.24285-1-post@frankplowman.com>
 <CAFXK13eznzQam3KCwdvM9GNA+EsO60-xiwuXS7dxrSRmsxwCyA@mail.gmail.com>
From: Frank Plowman <post@frankplowman.com>
In-Reply-To: <CAFXK13eznzQam3KCwdvM9GNA+EsO60-xiwuXS7dxrSRmsxwCyA@mail.gmail.com>
X-ZohoMailClient: External
Subject: Re: [FFmpeg-devel] [PATCH] lavc/vvc: Detect subpic overlaps at CTU
 level
X-BeenThere: ffmpeg-devel@ffmpeg.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org>
List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe>
List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel>
List-Post: <mailto:ffmpeg-devel@ffmpeg.org>
List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help>
List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe>
Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: ffmpeg-devel-bounces@ffmpeg.org
Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org>
Archived-At: <https://master.gitmailbox.com/ffmpegdev/edaa19a2-d5db-43c7-b61f-c3420dc481bd@frankplowman.com/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

T24gMjcvMDQvMjAyNSAwMzo0MiwgTnVvIE1pIHdyb3RlOgo+IE9uIEZyaSwgQXByIDE4LCAyMDI1
IGF0IDEwOjQw4oCvUE0gRnJhbmsgUGxvd21hbiA8cG9zdEBmcmFua3Bsb3dtYW4uY29tPgo+IHdy
b3RlOgo+IAo+PiBJbiBkNWRiY2MwMGQ4ODlmYjE3OTQ4YjAyNWE0NjhiMDBkZGJlYTllMDU4LCBp
dCB3YXMgaG9wZWQgdGhhdCBkZXRlY3Rpb24KPj4gb2Ygc3VicGljdHVyZSBvdmVybGFwcyBjb3Vs
ZCBiZSBwZXJmb3JtZWQgYXQgdGhlIHRpbGUgbGV2ZWwsIHNvIGFzIHRvCj4+IGF2b2lkIGludHJv
ZHVjaW5nIHBlci1DVFUgY2hlY2tzLiBVbmZvcnR1bmF0ZWx5IHNpbmNlIHRoYXQgcGF0Y2gsCj4+
IGZ1enppbmcgaGFzIGluZGljYXRlZCB0aGVyZSBhcmUgc29tZSBzdHJ1Y3R1cmVzIGludm9sdmlu
Zwo+PiBwcHNfc3VicGljX29uZV9vcl9tb3JlX3RpbGVzX3NsaWNlIHdoZXJlIHRpbGUtbGV2ZWwg
Y2hlY2tpbmcgaXMgbm90Cj4+IHN1ZmZpY2llbnQuICBQZXJmb3JtaW5nIHRoZSBjaGVjayBhdCB0
aGUgQ1RVIGxldmVsIHNob3VsZCAodG91Y2ggd29vZCkKPj4gYmUgdGhlIGJlLWFsbCBhbmQgYW5k
LWFsbCBvZiB0aGlzLCBhcyBDVFVzIGFyZSB0aGUgbG93ZXN0IGNvbW1vbgo+PiBkZW5vbWluYXRv
ciBvZiB0aGUgcGljdHVyZSBwYXJ0aXRpb25pbmcuCj4+Cj4gSGkgRnJhbmssCj4gVGhhbmsgeW91
IGZvciB0aGUgcGF0Y2guCgpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3LgoKPiAKPiBCZWZvcmUg
dGhpcyBwYXRjaCwgd2UgY291bGQgZGV0ZWN0IHRoZSAnQ1RVIEEgYWRkZWQgdHdpY2UgKyBDVFUg
QiBuZXZlcgo+IGFkZGVkJyBjYXNlLCBidXQgdGhlIG5ldyBpbXBsZW1lbnRhdGlvbiBjYW5ub3Qs
IHJpZ2h0Pwo+IAoKSW4gZmZfdnZjX2ZyYW1lX3N1Ym1pdCB3ZSBjaGVjayB0aGF0IGV2ZXJ5IENU
VSBvZiB0aGUgcGljdHVyZSBiZWxvbmdzIHRvCmEgc2xpY2UsIHdoaWNoIGNhdGNoZXMgY2FzZXMg
bGlrZSB0aGlzLiAgVGhpcyBwYXRjaCBkb2VzIG1lYW4gdGhhdApjZXJ0YWluIGludmFsaWQgc3Ry
dWN0dXJlcyBsaWtlIHlvdSBkZXNjcmliZSBhcmUgbm90IGNhdWdodCB1bnRpbCBhCmxpdHRsZSBs
YXRlciwgaW4gZmZfdnZjX2ZyYW1lX3N1Ym1pdC4gIEluIG15IHRlc3RzIHRoaXMgZG9lcyBub3Qg
YXBwZWFyCnRvIGNhdXNlIGlzc3Vlcy4KCkFsdGVybmF0aXZlbHksIHdlIGNvdWxkIHRha2UgYW4g
YXBwcm9hY2ggc2ltaWxhciB0byB3aGF0IGV4aXN0ZWQKcHJldmlvdXNseSBidXQgYXQgdGhlIENU
VSBsZXZlbCwgd2hlcmUgd2UgYWxsb2NhdGUgYSBjdGJfd2lkdGggeApjdGJfaGVpZ2h0IGFycmF5
IGFuZCBtYXJrIGVhY2ggY2VsbCB1c2VkL3VudXNlZCBpbiBwcHNfYWRkX2N0dXMuICBUaGF0CmFy
cmF5IGNvdWxkIGJlIHF1aXRlIGxhcmdlIHRob3VnaCBhbmQgd291bGQgcmVxdWlyZSBhIGR5bmFt
aWMgYWxsb2NhdGlvbi4KCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEZyYW5rIFBsb3dtYW4gPHBvc3RA
ZnJhbmtwbG93bWFuLmNvbT4KPj4gLS0tCj4+ICBsaWJhdmNvZGVjL3Z2Yy9wcy5jIHwgODEgKysr
KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICAxIGZpbGUgY2hh
bmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQg
YS9saWJhdmNvZGVjL3Z2Yy9wcy5jIGIvbGliYXZjb2RlYy92dmMvcHMuYwo+PiBpbmRleCBlOGMz
MTJkOGFjLi40ZWRmZTQwOGMwIDEwMDY0NAo+PiAtLS0gYS9saWJhdmNvZGVjL3Z2Yy9wcy5jCj4+
ICsrKyBiL2xpYmF2Y29kZWMvdnZjL3BzLmMKPj4gQEAgLTQwMiwxNCArNDAyLDM1IEBAIHN0YXRp
YyBpbnQgY3R1X3JzKGNvbnN0IGludCByeCwgY29uc3QgaW50IHJ5LCBjb25zdAo+PiBWVkNQUFMg
KnBwcykKPj4gICAgICByZXR1cm4gcHBzLT5jdGJfd2lkdGggKiByeSArIHJ4Owo+PiAgfQo+Pgo+
PiArc3RhdGljIHZvaWQgcHBzX2FkZF9jdHUoVlZDUFBTICpwcHMsIGludCAqb2ZmLCBjb25zdCBp
bnQgeCwgY29uc3QgaW50IHkpCj4+ICt7Cj4+ICsgICAgcHBzLT5jdGJfYWRkcl9pbl9zbGljZVsq
b2ZmXSA9IGN0dV9ycyh4LCB5LCBwcHMpOwo+PiArICAgICgqb2ZmKSsrOwo+PiArfQo+PiArCj4+
ICBzdGF0aWMgaW50IHBwc19hZGRfY3R1cyhWVkNQUFMgKnBwcywgaW50ICpvZmYsIGNvbnN0IGlu
dCByeCwgY29uc3QgaW50IHJ5LAo+PiAgICAgIGNvbnN0IGludCB3LCBjb25zdCBpbnQgaCkKPj4g
IHsKPj4gICAgICBpbnQgc3RhcnQgPSAqb2ZmOwo+PiAgICAgIGZvciAoaW50IHkgPSAwOyB5IDwg
aDsgeSsrKSB7Cj4+ICAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgdzsgeCsrKSB7Cj4+IC0g
ICAgICAgICAgICBwcHMtPmN0Yl9hZGRyX2luX3NsaWNlWypvZmZdID0gY3R1X3JzKHJ4ICsgeCwg
cnkgKyB5LCBwcHMpOwo+PiAtICAgICAgICAgICAgKCpvZmYpKys7Cj4+ICsgICAgICAgICAgICBw
cHNfYWRkX2N0dShwcHMsIG9mZiwgcnggKyB4LCByeSArIHkpOwo+PiArICAgICAgICB9Cj4+ICsg
ICAgfQo+PiArICAgIHJldHVybiAqb2ZmIC0gc3RhcnQ7Cj4+ICt9Cj4+ICsKPj4gKy8vIFNpbWls
YXIgdG8gcHBzX2FkZF9jdHVzLCBidXQgd2l0aCBhIGNoZWNrIHRvIGVuc3VyZSBhIGdpdmVuIENU
VSBpc24ndAo+PiB1c2VkCj4+ICsvLyBtdWx0aXBsZSB0aW1lcywgdG8gYmUgdXNlZCB3aXRoIHNv
bWUgb2YgdGhlIG1vcmUgY29tcGxleCBwYXJ0aXRpb25pbmcKPj4gbWVjaGFuaXNtcy4KPj4gK3N0
YXRpYyBpbnQgcHBzX2FkZF9jdHVzX2NoZWNrKFZWQ1BQUyAqcHBzLCBpbnQgKm9mZiwgY29uc3Qg
aW50IHJ4LCBjb25zdAo+PiBpbnQgcnksCj4+ICsgICAgY29uc3QgaW50IHcsIGNvbnN0IGludCBo
KQo+PiArewo+PiArICAgIGludCBzdGFydCA9ICpvZmY7Cj4+ICsgICAgZm9yIChpbnQgeSA9IDA7
IHkgPCBoOyB5KyspIHsKPj4gKyAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCB3OyB4KyspIHsK
Pj4gKyAgICAgICAgICAgIGlmICgqb2ZmID49IHBwcy0+Y3RiX2NvdW50KQo+PiArICAgICAgICAg
ICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+Pgo+IFRoaXMgY2FuIGJlIGNvbWJp
bmVkIHRvIHBzc19hZGRfY3R1LiAgU28gd2UgcmVtdm9lIHBwc19hZGRfY3R1c19jaGVjayBhbmQK
PiBrZWVwIHBwc19hZGRfY3R1cyBvbmx5Cj4gCgpUaGlzIGNoZWNrIGNhbiBvbmx5IGZhaWwgaW4g
dGhlIGNhc2UgdGhhdApwcHNfc2luZ2xlX3NsaWNlX3Blcl9zdWJwaWNfZmxhZyBpcyAxLCBzbyBJ
IHdhcyBjb25jZXJuZWQgY2hhbmdpbmcKcHBzX2FkZF9jdHVzIGRpcmVjdGx5IHdvdWxkIGluY3Vy
IHRoZSBjb3N0IG9mIHRoaXMgY2hlY2sgdW5uZWNlc3NhcmlseQp3aGVuIHBwc19zaW5nbGVfc2xp
Y2VfcGVyX3N1YnBpY19mbGFnIGlzIDAuICBUaGF0IGJlaW5nIHNhaWQsIEkganVzdAp0ZXN0ZWQg
YW5kIGFueSBwZXJmb3JtYW5jZSBpbXBhY3Qgc2VlbXMgbmVnbGlnaWJsZSBhbmQgSSB0aGluayB0
aGUKY29tcGlsZXIgbWF5IGJlIGFibGUgdG8gb3B0aW1pc2UgbXVjaCBvZiB0aGlzIGF3YXksIHNv
IEkndmUgZG9uZSBhcyB5b3UKc2FpZCBhbmQgbWVyZ2VkIHRoZW0gaW4gdjIuCgo+PiArICAgICAg
ICAgICAgcHBzX2FkZF9jdHUocHBzLCBvZmYsIHJ4ICsgeCwgcnkgKyB5KTsKPj4gICAgICAgICAg
fQo+PiAgICAgIH0KPj4gICAgICByZXR1cm4gKm9mZiAtIHN0YXJ0Owo+PiBAQCAtNDUxLDUwICs0
NzIsMzkgQEAgc3RhdGljIHZvaWQgc3VicGljX3RpbGVzKGludCAqdGlsZV94LCBpbnQgKnRpbGVf
eSwKPj4gaW50ICp0aWxlX3hfZW5kLCBpbnQgKnRpbGVfeV8KPj4gICAgICAgICAgKCp0aWxlX3lf
ZW5kKSsrOwo+PiAgfQo+Pgo+PiAtc3RhdGljIGJvb2wgbWFya190aWxlX2FzX3VzZWQoYm9vbCAq
dGlsZV9pbl9zdWJwaWMsIGNvbnN0IGludCB0eCwgY29uc3QKPj4gaW50IHR5LCBjb25zdCBpbnQg
dGlsZV9jb2x1bW5zKQo+PiAtewo+PiAtICAgIGNvbnN0IHNpemVfdCB0aWxlX2lkeCA9IHR5ICog
dGlsZV9jb2x1bW5zICsgdHg7Cj4+IC0gICAgaWYgKHRpbGVfaW5fc3VicGljW3RpbGVfaWR4XSkg
ewo+PiAtICAgICAgICAvKiB0aGUgdGlsZSBpcyBjb3ZlcmVkIGJ5IG90aGVyIHN1YnBpY3R1cmVz
ICovCj4+IC0gICAgICAgIHJldHVybiBmYWxzZTsKPj4gLSAgICB9Cj4+IC0gICAgdGlsZV9pbl9z
dWJwaWNbdGlsZV9pZHhdID0gdHJ1ZTsKPj4gLSAgICByZXR1cm4gdHJ1ZTsKPj4gLX0KPj4gLQo+
PiAtc3RhdGljIGludCBwcHNfc3VicGljX2xlc3NfdGhhbl9vbmVfdGlsZV9zbGljZShWVkNQUFMg
KnBwcywgY29uc3QgVlZDU1BTCj4+ICpzcHMsIGNvbnN0IGludCBpLCBjb25zdCBpbnQgdHgsIGNv
bnN0IGludCB0eSwgaW50ICpvZmYsIGJvb2wKPj4gKnRpbGVfaW5fc3VicGljKQo+PiArc3RhdGlj
IGludCBwcHNfc3VicGljX2xlc3NfdGhhbl9vbmVfdGlsZV9zbGljZShWVkNQUFMgKnBwcywgY29u
c3QgVlZDU1BTCj4+ICpzcHMsIGNvbnN0IGludCBpLCBjb25zdCBpbnQgdHgsIGNvbnN0IGludCB0
eSwgaW50ICpvZmYpCj4+ICB7Cj4+IC0gICAgY29uc3QgaW50IHN1YnBpY19ib3R0b20gPSBzcHMt
PnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0X3lbaV0gKwo+PiBzcHMtPnItPnNwc19zdWJwaWNf
aGVpZ2h0X21pbnVzMVtpXTsKPj4gLSAgICBjb25zdCBpbnQgdGlsZV9ib3R0b20gPSBwcHMtPnJv
d19iZFt0eV0gKyBwcHMtPnItPnJvd19oZWlnaHRfdmFsW3R5XQo+PiAtIDE7Cj4+IC0gICAgY29u
c3QgYm9vbCBpc19maW5hbF9zdWJwaWNfaW5fdGlsZSA9IHN1YnBpY19ib3R0b20gPT0gdGlsZV9i
b3R0b207Cj4+IC0KPj4gLSAgICBpZiAoaXNfZmluYWxfc3VicGljX2luX3RpbGUgJiYgIW1hcmtf
dGlsZV9hc191c2VkKHRpbGVfaW5fc3VicGljLCB0eCwKPj4gdHksIHBwcy0+ci0+bnVtX3RpbGVf
Y29sdW1ucykpCj4+IC0gICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+PiAtCj4+
IC0gICAgcHBzLT5udW1fY3R1c19pbl9zbGljZVtpXSA9IHBwc19hZGRfY3R1cyhwcHMsIG9mZiwK
Pj4gKyAgICBjb25zdCBpbnQgcmV0ID0gcHBzX2FkZF9jdHVzX2NoZWNrKHBwcywgb2ZmLAo+PiAg
ICAgICAgICBzcHMtPnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0X3hbaV0sCj4+IHNwcy0+ci0+
c3BzX3N1YnBpY19jdHVfdG9wX2xlZnRfeVtpXSwKPj4gICAgICAgICAgc3BzLT5yLT5zcHNfc3Vi
cGljX3dpZHRoX21pbnVzMVtpXSArIDEsCj4+IHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRfbWlu
dXMxW2ldICsgMSk7Cj4+Cj4+IC0gICAgcmV0dXJuIDA7Cj4+ICsgICAgaWYgKHJldCA8IDApCj4+
ICsgICAgICAgIHJldHVybiByZXQ7Cj4+ICsgICAgZWxzZSB7Cj4+ICsgICAgICAgIHBwcy0+bnVt
X2N0dXNfaW5fc2xpY2VbaV0gPSByZXQ7Cj4+ICsgICAgICAgIHJldHVybiAwOwo+PiArICAgIH0K
Pj4KPiBUaGUgZWxzZSBpcyBub3QgbmVlZGVkOyBpZiB0aGUgY29uZGl0aW9uIGlzIHRydWUsIHRo
ZSBmdW5jdGlvbiByZXR1cm5zLgo+IAoKQ2hhbmdlZCBpbiB2Mi4KCj4+ICB9Cj4+Cj4+ICBzdGF0
aWMgaW50IHBwc19zdWJwaWNfb25lX29yX21vcmVfdGlsZXNfc2xpY2UoVlZDUFBTICpwcHMsIGNv
bnN0IGludAo+PiB0aWxlX3gsIGNvbnN0IGludCB0aWxlX3ksIGNvbnN0IGludCB4X2VuZCwgY29u
c3QgaW50IHlfZW5kLAo+PiAtICAgIGNvbnN0IGludCBpLCBpbnQgKm9mZiwgYm9vbCAqdGlsZV9p
bl9zdWJwaWMpCj4+ICsgICAgY29uc3QgaW50IGksIGludCAqb2ZmKQo+PiAgewo+PiAgICAgIGZv
ciAoaW50IHR5ID0gdGlsZV95OyB0eSA8IHlfZW5kOyB0eSsrKSB7Cj4+ICAgICAgICAgIGZvciAo
aW50IHR4ID0gdGlsZV94OyB0eCA8IHhfZW5kOyB0eCsrKSB7Cj4+IC0gICAgICAgICAgICBpZiAo
IW1hcmtfdGlsZV9hc191c2VkKHRpbGVfaW5fc3VicGljLCB0eCwgdHksCj4+IHBwcy0+ci0+bnVt
X3RpbGVfY29sdW1ucykpCj4+IC0gICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJ
RERBVEE7Cj4+IC0KPj4gLSAgICAgICAgICAgIHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbaV0gKz0g
cHBzX2FkZF9jdHVzKHBwcywgb2ZmLAo+PiArICAgICAgICAgICAgY29uc3QgaW50IHJldCA9IHBw
c19hZGRfY3R1c19jaGVjayhwcHMsIG9mZiwKPj4gICAgICAgICAgICAgICAgICBwcHMtPmNvbF9i
ZFt0eF0sIHBwcy0+cm93X2JkW3R5XSwKPj4gICAgICAgICAgICAgICAgICBwcHMtPnItPmNvbF93
aWR0aF92YWxbdHhdLCBwcHMtPnItPnJvd19oZWlnaHRfdmFsW3R5XSk7Cj4+ICsKPj4gKyAgICAg
ICAgICAgIGlmIChyZXQgPCAwKQo+PiArICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+ICsg
ICAgICAgICAgICBlbHNlCj4+ICsgICAgICAgICAgICAgICAgcHBzLT5udW1fY3R1c19pbl9zbGlj
ZVtpXSArPSByZXQ7Cj4+Cj4gZWxzZSBpcyBub3QgbmVlZGVkIHRvby4KPiAKClNhbWUgYXMgYWJv
dmUuCgo+PiAgICAgICAgICB9Cj4+ICAgICAgfQo+PiAgICAgIHJldHVybiAwOwo+PiAgfQo+Pgo+
PiAtc3RhdGljIGludCBwcHNfc3VicGljX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMg
KnNwcywgY29uc3QgaW50IGksCj4+IGludCAqb2ZmLCBib29sICp0aWxlX2luX3N1YnBpYykKPj4g
K3N0YXRpYyBpbnQgcHBzX3N1YnBpY19zbGljZShWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTICpz
cHMsIGNvbnN0IGludCBpLAo+PiBpbnQgKm9mZikKPj4gIHsKPj4gICAgICBpbnQgdHgsIHR5LCB4
X2VuZCwgeV9lbmQ7Cj4+Cj4+IEBAIC01MDMsOSArNTEzLDkgQEAgc3RhdGljIGludCBwcHNfc3Vi
cGljX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMKPj4gKnNwcywgY29uc3QgaW50IGks
IGludCAqb2YKPj4KPj4gICAgICBzdWJwaWNfdGlsZXMoJnR4LCAmdHksICZ4X2VuZCwgJnlfZW5k
LCBzcHMsIHBwcywgaSk7Cj4+ICAgICAgaWYgKHR5ICsgMSA9PSB5X2VuZCAmJiBzcHMtPnItPnNw
c19zdWJwaWNfaGVpZ2h0X21pbnVzMVtpXSArIDEgPAo+PiBwcHMtPnItPnJvd19oZWlnaHRfdmFs
W3R5XSkKPj4gLSAgICAgICAgcmV0dXJuIHBwc19zdWJwaWNfbGVzc190aGFuX29uZV90aWxlX3Ns
aWNlKHBwcywgc3BzLCBpLCB0eCwgdHksCj4+IG9mZiwgdGlsZV9pbl9zdWJwaWMpOwo+PiArICAg
ICAgICByZXR1cm4gcHBzX3N1YnBpY19sZXNzX3RoYW5fb25lX3RpbGVfc2xpY2UocHBzLCBzcHMs
IGksIHR4LCB0eSwKPj4gb2ZmKTsKPj4gICAgICBlbHNlCj4+IC0gICAgICAgIHJldHVybiBwcHNf
c3VicGljX29uZV9vcl9tb3JlX3RpbGVzX3NsaWNlKHBwcywgdHgsIHR5LCB4X2VuZCwKPj4geV9l
bmQsIGksIG9mZiwgdGlsZV9pbl9zdWJwaWMpOwo+PiArICAgICAgICByZXR1cm4gcHBzX3N1YnBp
Y19vbmVfb3JfbW9yZV90aWxlc19zbGljZShwcHMsIHR4LCB0eSwgeF9lbmQsCj4+IHlfZW5kLCBp
LCBvZmYpOwo+PiAgfQo+Pgo+PiAgc3RhdGljIGludCBwcHNfc2luZ2xlX3NsaWNlX3Blcl9zdWJw
aWMoVlZDUFBTICpwcHMsIGNvbnN0IFZWQ1NQUyAqc3BzLAo+PiBpbnQgKm9mZikKPj4gQEAgLTUx
MywxOCArNTIzLDExIEBAIHN0YXRpYyBpbnQgcHBzX3NpbmdsZV9zbGljZV9wZXJfc3VicGljKFZW
Q1BQUyAqcHBzLAo+PiBjb25zdCBWVkNTUFMgKnNwcywgaW50ICpvZmYpCj4+ICAgICAgaWYgKCFz
cHMtPnItPnNwc19zdWJwaWNfaW5mb19wcmVzZW50X2ZsYWcpIHsKPj4gICAgICAgICAgcHBzX3Np
bmdsZV9zbGljZV9waWN0dXJlKHBwcywgb2ZmKTsKPj4gICAgICB9IGVsc2Ugewo+PiAtICAgICAg
ICBib29sIHRpbGVfaW5fc3VicGljW1ZWQ19NQVhfVElMRVNfUEVSX0FVXSA9IHswfTsKPj4gICAg
ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwcHMtPnItPnBwc19udW1fc2xpY2VzX2luX3BpY19t
aW51czEgKyAxOwo+PiBpKyspIHsKPj4gLSAgICAgICAgICAgIGNvbnN0IGludCByZXQgPSBwcHNf
c3VicGljX3NsaWNlKHBwcywgc3BzLCBpLCBvZmYsCj4+IHRpbGVfaW5fc3VicGljKTsKPj4gKyAg
ICAgICAgICAgIGNvbnN0IGludCByZXQgPSBwcHNfc3VicGljX3NsaWNlKHBwcywgc3BzLCBpLCBv
ZmYpOwo+PiAgICAgICAgICAgICAgaWYgKHJldCA8IDApCj4+ICAgICAgICAgICAgICAgICAgcmV0
dXJuIHJldDsKPj4gICAgICAgICAgfQo+PiAtCj4+IC0gICAgICAgIC8vIFdlIG9ubHkgdXNlIHRp
bGVfaW5fc3VicGljIHRvIGNoZWNrIHRoYXQgdGhlIHN1YnBpY3R1cmVzIGRvbid0Cj4+IG92ZXJs
YXAKPj4gLSAgICAgICAgLy8gaGVyZTsgd2UgZG9uJ3QgdXNlIHRpbGVfaW5fc3VicGljIHRvIGNo
ZWNrIHRoYXQgdGhlCj4+IHN1YnBpY3R1cmVzIGNvdmVyCj4+IC0gICAgICAgIC8vIGV2ZXJ5IHRp
bGUuICBJdCBpcyBwb3NzaWJsZSB0byBhdm9pZCBkb2luZyB0aGlzIHdvcmsgaGVyZQo+PiBiZWNh
dXNlIHRoZQo+PiAtICAgICAgICAvLyBjb3ZlcmluZyBwcm9wZXJ0eSBvZiBzdWJwaWN0dXJlcyBp
cyBhbHJlYWR5IGd1YXJhbnRlZWQgYnkgdGhlCj4+IG1lY2hhbmlzbXMKPj4gLSAgICAgICAgLy8g
d2hpY2ggY2hlY2sgZXZlcnkgQ1RVIGJlbG9uZ3MgdG8gYSBzbGljZS4KPj4gICAgICB9Cj4+ICAg
ICAgcmV0dXJuIDA7Cj4+ICB9Cj4+IC0tCj4+IDIuNDcuMAo+Pgo+PgoKLS0gCkZyYW5rCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwg
bWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9t
YWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsg
YWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJq
ZWN0ICJ1bnN1YnNjcmliZSIuCg==