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 512FB4DFAF
	for <ffmpegdev@gitmailbox.com>; Sun, 27 Apr 2025 02:43:01 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8099768B5A9;
	Sun, 27 Apr 2025 05:42:57 +0300 (EEST)
Received: from mail-vk1-f182.google.com (mail-vk1-f182.google.com
 [209.85.221.182])
 by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 40EF868807C
 for <ffmpeg-devel@ffmpeg.org>; Sun, 27 Apr 2025 05:42:50 +0300 (EEST)
Received: by mail-vk1-f182.google.com with SMTP id
 71dfb90a1353d-51eb1818d4fso5093821e0c.1
 for <ffmpeg-devel@ffmpeg.org>; Sat, 26 Apr 2025 19:42:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1745721768; x=1746326568; darn=ffmpeg.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=jsd0td6LjN1u1eIt7LDjr4Q1LHBBZ3jXzcPa84KDT1I=;
 b=WYq9aDKB9pdKBq+af4anYg0gBd/woZCnzN3nNS8/yJwYDjX9HxoD2Hc1nO2yagRc3J
 7rOGSX2kTB0tcccFC9KnsRNwQ5Vxnyx3mOqoxMbvNIe4wlWPXq658r3biUoPJe0XjZAX
 5uVLjK9FoOPdxfKlG4gNCRsBZGraZYdRT68rOJN5Isxe84QepgsMqLuiUWYnbZlHdRG6
 1L35//Fu1TEM4oxcQ0zs1xJzZslNrFQxiV07HsQuDnn1yTQC1CERlVRUWCqCsa89Mq4q
 SL7wZhfxQqp4FNNC35F7MhBNP1XpGxwsSE6vvlXyp3P1rRzJiHY7HhFwCvt7O7N0MIbw
 NIVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1745721768; x=1746326568;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=jsd0td6LjN1u1eIt7LDjr4Q1LHBBZ3jXzcPa84KDT1I=;
 b=bk92sBu0P/ne/wCSlHiY9cNizdAE1vRxetOQ26IL9vU5DRBcyzB/Fcg8vY+fsiRX8j
 EoKpDLsOwqFDIUIDjTH1Tl5F2IgkCKcYTJzrhY9i296EuVAppU+VVxRqQosRk2d+K6Ui
 l6m+km1MctY1ORBeISWMIT2Gio6AhAU6uHIuOBKazeLAIIwOccSIrPFKVRTwK8BMmsBL
 nNclpZeKc4IFEL0PDMQATHqWIip8dg5eKvEIsXgfwrzlXUrrxI4P8CnWm1Rn+YCRAC7B
 ee2O96pywS3vQ6TgOVd7tJgVhklYRfoKHKsgOZLqjWr19kyJ4UeJCxM5/7XnwqnNYNo0
 GPeg==
X-Gm-Message-State: AOJu0YxezPhLSTsMP3JXf6JfxyncnT586bYl/76D3rHqUKtoPqH564vX
 zzSFdPauE2L/Kyl6wQ72M85hx2ScgbOpWKv48hh0s0UCL2ZtdKNRhTy9aE50yhANrYj3UuTXADd
 EY2btXu/9DzYwL5SfCjD/pzhSRi3yIFK4
X-Gm-Gg: ASbGncsStcxUSdpNCEMJZR7cK/XgndID5pMyPxjhVijkXOLtlWroc/a0xd+/IShMrUp
 TFR756m3zLVg7TOhjtyao22zuylebl0EQf9dtPWdqdv7+j3lTJQZtRb0yba22U5kHLJiwsAp2aA
 EMYTFKpwIOQHFq/3z+egUK
X-Google-Smtp-Source: AGHT+IFG0FqxCaO3lqC3cPd4jzRUib8VdkD/bLY1nEKdUP2bqC0+HveUQIkMBeRf4SgjJEhBirV74TuNCry2/KEbjEY=
X-Received: by 2002:a05:6122:30a7:b0:526:2356:f3fb with SMTP id
 71dfb90a1353d-52a89f43194mr5173400e0c.11.1745721768555; Sat, 26 Apr 2025
 19:42:48 -0700 (PDT)
MIME-Version: 1.0
References: <20250418143949.24285-1-post@frankplowman.com>
In-Reply-To: <20250418143949.24285-1-post@frankplowman.com>
From: Nuo Mi <nuomi2021@gmail.com>
Date: Sun, 27 Apr 2025 10:42:38 +0800
X-Gm-Features: ATxdqUHsScfOL88gzJcjyrMuzFmwzkQ6IyIQU97jSL5WnGoCBGk67sGwzm4QzuM
Message-ID: <CAFXK13eznzQam3KCwdvM9GNA+EsO60-xiwuXS7dxrSRmsxwCyA@mail.gmail.com>
To: Frank Plowman <post@frankplowman.com>
X-Content-Filtered-By: Mailman/MimeDel 2.1.29
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>
Cc: 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/CAFXK13eznzQam3KCwdvM9GNA+EsO60-xiwuXS7dxrSRmsxwCyA@mail.gmail.com/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

T24gRnJpLCBBcHIgMTgsIDIwMjUgYXQgMTA6NDDigK9QTSBGcmFuayBQbG93bWFuIDxwb3N0QGZy
YW5rcGxvd21hbi5jb20+Cndyb3RlOgoKPiBJbiBkNWRiY2MwMGQ4ODlmYjE3OTQ4YjAyNWE0Njhi
MDBkZGJlYTllMDU4LCBpdCB3YXMgaG9wZWQgdGhhdCBkZXRlY3Rpb24KPiBvZiBzdWJwaWN0dXJl
IG92ZXJsYXBzIGNvdWxkIGJlIHBlcmZvcm1lZCBhdCB0aGUgdGlsZSBsZXZlbCwgc28gYXMgdG8K
PiBhdm9pZCBpbnRyb2R1Y2luZyBwZXItQ1RVIGNoZWNrcy4gVW5mb3J0dW5hdGVseSBzaW5jZSB0
aGF0IHBhdGNoLAo+IGZ1enppbmcgaGFzIGluZGljYXRlZCB0aGVyZSBhcmUgc29tZSBzdHJ1Y3R1
cmVzIGludm9sdmluZwo+IHBwc19zdWJwaWNfb25lX29yX21vcmVfdGlsZXNfc2xpY2Ugd2hlcmUg
dGlsZS1sZXZlbCBjaGVja2luZyBpcyBub3QKPiBzdWZmaWNpZW50LiAgUGVyZm9ybWluZyB0aGUg
Y2hlY2sgYXQgdGhlIENUVSBsZXZlbCBzaG91bGQgKHRvdWNoIHdvb2QpCj4gYmUgdGhlIGJlLWFs
bCBhbmQgYW5kLWFsbCBvZiB0aGlzLCBhcyBDVFVzIGFyZSB0aGUgbG93ZXN0IGNvbW1vbgo+IGRl
bm9taW5hdG9yIG9mIHRoZSBwaWN0dXJlIHBhcnRpdGlvbmluZy4KPgpIaSBGcmFuaywKVGhhbmsg
eW91IGZvciB0aGUgcGF0Y2guCgpCZWZvcmUgdGhpcyBwYXRjaCwgd2UgY291bGQgZGV0ZWN0IHRo
ZSAnQ1RVIEEgYWRkZWQgdHdpY2UgKyBDVFUgQiBuZXZlcgphZGRlZCcgY2FzZSwgYnV0IHRoZSBu
ZXcgaW1wbGVtZW50YXRpb24gY2Fubm90LCByaWdodD8KCj4KPiBTaWduZWQtb2ZmLWJ5OiBGcmFu
ayBQbG93bWFuIDxwb3N0QGZyYW5rcGxvd21hbi5jb20+Cj4gLS0tCj4gIGxpYmF2Y29kZWMvdnZj
L3BzLmMgfCA4MSArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
PiAgMSBmaWxlIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQo+Cj4g
ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnZjL3BzLmMgYi9saWJhdmNvZGVjL3Z2Yy9wcy5jCj4g
aW5kZXggZThjMzEyZDhhYy4uNGVkZmU0MDhjMCAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL3Z2
Yy9wcy5jCj4gKysrIGIvbGliYXZjb2RlYy92dmMvcHMuYwo+IEBAIC00MDIsMTQgKzQwMiwzNSBA
QCBzdGF0aWMgaW50IGN0dV9ycyhjb25zdCBpbnQgcngsIGNvbnN0IGludCByeSwgY29uc3QKPiBW
VkNQUFMgKnBwcykKPiAgICAgIHJldHVybiBwcHMtPmN0Yl93aWR0aCAqIHJ5ICsgcng7Cj4gIH0K
Pgo+ICtzdGF0aWMgdm9pZCBwcHNfYWRkX2N0dShWVkNQUFMgKnBwcywgaW50ICpvZmYsIGNvbnN0
IGludCB4LCBjb25zdCBpbnQgeSkKPiArewo+ICsgICAgcHBzLT5jdGJfYWRkcl9pbl9zbGljZVsq
b2ZmXSA9IGN0dV9ycyh4LCB5LCBwcHMpOwo+ICsgICAgKCpvZmYpKys7Cj4gK30KPiArCj4gIHN0
YXRpYyBpbnQgcHBzX2FkZF9jdHVzKFZWQ1BQUyAqcHBzLCBpbnQgKm9mZiwgY29uc3QgaW50IHJ4
LCBjb25zdCBpbnQgcnksCj4gICAgICBjb25zdCBpbnQgdywgY29uc3QgaW50IGgpCj4gIHsKPiAg
ICAgIGludCBzdGFydCA9ICpvZmY7Cj4gICAgICBmb3IgKGludCB5ID0gMDsgeSA8IGg7IHkrKykg
ewo+ICAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgdzsgeCsrKSB7Cj4gLSAgICAgICAgICAg
IHBwcy0+Y3RiX2FkZHJfaW5fc2xpY2VbKm9mZl0gPSBjdHVfcnMocnggKyB4LCByeSArIHksIHBw
cyk7Cj4gLSAgICAgICAgICAgICgqb2ZmKSsrOwo+ICsgICAgICAgICAgICBwcHNfYWRkX2N0dShw
cHMsIG9mZiwgcnggKyB4LCByeSArIHkpOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiArICAgIHJl
dHVybiAqb2ZmIC0gc3RhcnQ7Cj4gK30KPiArCj4gKy8vIFNpbWlsYXIgdG8gcHBzX2FkZF9jdHVz
LCBidXQgd2l0aCBhIGNoZWNrIHRvIGVuc3VyZSBhIGdpdmVuIENUVSBpc24ndAo+IHVzZWQKPiAr
Ly8gbXVsdGlwbGUgdGltZXMsIHRvIGJlIHVzZWQgd2l0aCBzb21lIG9mIHRoZSBtb3JlIGNvbXBs
ZXggcGFydGl0aW9uaW5nCj4gbWVjaGFuaXNtcy4KPiArc3RhdGljIGludCBwcHNfYWRkX2N0dXNf
Y2hlY2soVlZDUFBTICpwcHMsIGludCAqb2ZmLCBjb25zdCBpbnQgcngsIGNvbnN0Cj4gaW50IHJ5
LAo+ICsgICAgY29uc3QgaW50IHcsIGNvbnN0IGludCBoKQo+ICt7Cj4gKyAgICBpbnQgc3RhcnQg
PSAqb2ZmOwo+ICsgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBoOyB5KyspIHsKPiArICAgICAgICBm
b3IgKGludCB4ID0gMDsgeCA8IHc7IHgrKykgewo+ICsgICAgICAgICAgICBpZiAoKm9mZiA+PSBw
cHMtPmN0Yl9jb3VudCkKPiArICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSURE
QVRBOwo+ClRoaXMgY2FuIGJlIGNvbWJpbmVkIHRvIHBzc19hZGRfY3R1LiAgU28gd2UgcmVtdm9l
IHBwc19hZGRfY3R1c19jaGVjayBhbmQKa2VlcCBwcHNfYWRkX2N0dXMgb25seQoKPiArICAgICAg
ICAgICAgcHBzX2FkZF9jdHUocHBzLCBvZmYsIHJ4ICsgeCwgcnkgKyB5KTsKPiAgICAgICAgICB9
Cj4gICAgICB9Cj4gICAgICByZXR1cm4gKm9mZiAtIHN0YXJ0Owo+IEBAIC00NTEsNTAgKzQ3Miwz
OSBAQCBzdGF0aWMgdm9pZCBzdWJwaWNfdGlsZXMoaW50ICp0aWxlX3gsIGludCAqdGlsZV95LAo+
IGludCAqdGlsZV94X2VuZCwgaW50ICp0aWxlX3lfCj4gICAgICAgICAgKCp0aWxlX3lfZW5kKSsr
Owo+ICB9Cj4KPiAtc3RhdGljIGJvb2wgbWFya190aWxlX2FzX3VzZWQoYm9vbCAqdGlsZV9pbl9z
dWJwaWMsIGNvbnN0IGludCB0eCwgY29uc3QKPiBpbnQgdHksIGNvbnN0IGludCB0aWxlX2NvbHVt
bnMpCj4gLXsKPiAtICAgIGNvbnN0IHNpemVfdCB0aWxlX2lkeCA9IHR5ICogdGlsZV9jb2x1bW5z
ICsgdHg7Cj4gLSAgICBpZiAodGlsZV9pbl9zdWJwaWNbdGlsZV9pZHhdKSB7Cj4gLSAgICAgICAg
LyogdGhlIHRpbGUgaXMgY292ZXJlZCBieSBvdGhlciBzdWJwaWN0dXJlcyAqLwo+IC0gICAgICAg
IHJldHVybiBmYWxzZTsKPiAtICAgIH0KPiAtICAgIHRpbGVfaW5fc3VicGljW3RpbGVfaWR4XSA9
IHRydWU7Cj4gLSAgICByZXR1cm4gdHJ1ZTsKPiAtfQo+IC0KPiAtc3RhdGljIGludCBwcHNfc3Vi
cGljX2xlc3NfdGhhbl9vbmVfdGlsZV9zbGljZShWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTCj4g
KnNwcywgY29uc3QgaW50IGksIGNvbnN0IGludCB0eCwgY29uc3QgaW50IHR5LCBpbnQgKm9mZiwg
Ym9vbAo+ICp0aWxlX2luX3N1YnBpYykKPiArc3RhdGljIGludCBwcHNfc3VicGljX2xlc3NfdGhh
bl9vbmVfdGlsZV9zbGljZShWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTCj4gKnNwcywgY29uc3Qg
aW50IGksIGNvbnN0IGludCB0eCwgY29uc3QgaW50IHR5LCBpbnQgKm9mZikKPiAgewo+IC0gICAg
Y29uc3QgaW50IHN1YnBpY19ib3R0b20gPSBzcHMtPnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0
X3lbaV0gKwo+IHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRfbWludXMxW2ldOwo+IC0gICAgY29u
c3QgaW50IHRpbGVfYm90dG9tID0gcHBzLT5yb3dfYmRbdHldICsgcHBzLT5yLT5yb3dfaGVpZ2h0
X3ZhbFt0eV0KPiAtIDE7Cj4gLSAgICBjb25zdCBib29sIGlzX2ZpbmFsX3N1YnBpY19pbl90aWxl
ID0gc3VicGljX2JvdHRvbSA9PSB0aWxlX2JvdHRvbTsKPiAtCj4gLSAgICBpZiAoaXNfZmluYWxf
c3VicGljX2luX3RpbGUgJiYgIW1hcmtfdGlsZV9hc191c2VkKHRpbGVfaW5fc3VicGljLCB0eCwK
PiB0eSwgcHBzLT5yLT5udW1fdGlsZV9jb2x1bW5zKSkKPiAtICAgICAgICByZXR1cm4gQVZFUlJP
Ul9JTlZBTElEREFUQTsKPiAtCj4gLSAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldID0gcHBz
X2FkZF9jdHVzKHBwcywgb2ZmLAo+ICsgICAgY29uc3QgaW50IHJldCA9IHBwc19hZGRfY3R1c19j
aGVjayhwcHMsIG9mZiwKPiAgICAgICAgICBzcHMtPnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0
X3hbaV0sCj4gc3BzLT5yLT5zcHNfc3VicGljX2N0dV90b3BfbGVmdF95W2ldLAo+ICAgICAgICAg
IHNwcy0+ci0+c3BzX3N1YnBpY193aWR0aF9taW51czFbaV0gKyAxLAo+IHNwcy0+ci0+c3BzX3N1
YnBpY19oZWlnaHRfbWludXMxW2ldICsgMSk7Cj4KPiAtICAgIHJldHVybiAwOwo+ICsgICAgaWYg
KHJldCA8IDApCj4gKyAgICAgICAgcmV0dXJuIHJldDsKPiArICAgIGVsc2Ugewo+ICsgICAgICAg
IHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbaV0gPSByZXQ7Cj4gKyAgICAgICAgcmV0dXJuIDA7Cj4g
KyAgICB9Cj4KVGhlIGVsc2UgaXMgbm90IG5lZWRlZDsgaWYgdGhlIGNvbmRpdGlvbiBpcyB0cnVl
LCB0aGUgZnVuY3Rpb24gcmV0dXJucy4KCj4gIH0KPgo+ICBzdGF0aWMgaW50IHBwc19zdWJwaWNf
b25lX29yX21vcmVfdGlsZXNfc2xpY2UoVlZDUFBTICpwcHMsIGNvbnN0IGludAo+IHRpbGVfeCwg
Y29uc3QgaW50IHRpbGVfeSwgY29uc3QgaW50IHhfZW5kLCBjb25zdCBpbnQgeV9lbmQsCj4gLSAg
ICBjb25zdCBpbnQgaSwgaW50ICpvZmYsIGJvb2wgKnRpbGVfaW5fc3VicGljKQo+ICsgICAgY29u
c3QgaW50IGksIGludCAqb2ZmKQo+ICB7Cj4gICAgICBmb3IgKGludCB0eSA9IHRpbGVfeTsgdHkg
PCB5X2VuZDsgdHkrKykgewo+ICAgICAgICAgIGZvciAoaW50IHR4ID0gdGlsZV94OyB0eCA8IHhf
ZW5kOyB0eCsrKSB7Cj4gLSAgICAgICAgICAgIGlmICghbWFya190aWxlX2FzX3VzZWQodGlsZV9p
bl9zdWJwaWMsIHR4LCB0eSwKPiBwcHMtPnItPm51bV90aWxlX2NvbHVtbnMpKQo+IC0gICAgICAg
ICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gLQo+IC0gICAgICAgICAgICBw
cHMtPm51bV9jdHVzX2luX3NsaWNlW2ldICs9IHBwc19hZGRfY3R1cyhwcHMsIG9mZiwKPiArICAg
ICAgICAgICAgY29uc3QgaW50IHJldCA9IHBwc19hZGRfY3R1c19jaGVjayhwcHMsIG9mZiwKPiAg
ICAgICAgICAgICAgICAgIHBwcy0+Y29sX2JkW3R4XSwgcHBzLT5yb3dfYmRbdHldLAo+ICAgICAg
ICAgICAgICAgICAgcHBzLT5yLT5jb2xfd2lkdGhfdmFsW3R4XSwgcHBzLT5yLT5yb3dfaGVpZ2h0
X3ZhbFt0eV0pOwo+ICsKPiArICAgICAgICAgICAgaWYgKHJldCA8IDApCj4gKyAgICAgICAgICAg
ICAgICByZXR1cm4gcmV0Owo+ICsgICAgICAgICAgICBlbHNlCj4gKyAgICAgICAgICAgICAgICBw
cHMtPm51bV9jdHVzX2luX3NsaWNlW2ldICs9IHJldDsKPgplbHNlIGlzIG5vdCBuZWVkZWQgdG9v
LgoKPiAgICAgICAgICB9Cj4gICAgICB9Cj4gICAgICByZXR1cm4gMDsKPiAgfQo+Cj4gLXN0YXRp
YyBpbnQgcHBzX3N1YnBpY19zbGljZShWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTICpzcHMsIGNv
bnN0IGludCBpLAo+IGludCAqb2ZmLCBib29sICp0aWxlX2luX3N1YnBpYykKPiArc3RhdGljIGlu
dCBwcHNfc3VicGljX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMgKnNwcywgY29uc3Qg
aW50IGksCj4gaW50ICpvZmYpCj4gIHsKPiAgICAgIGludCB0eCwgdHksIHhfZW5kLCB5X2VuZDsK
Pgo+IEBAIC01MDMsOSArNTEzLDkgQEAgc3RhdGljIGludCBwcHNfc3VicGljX3NsaWNlKFZWQ1BQ
UyAqcHBzLCBjb25zdCBWVkNTUFMKPiAqc3BzLCBjb25zdCBpbnQgaSwgaW50ICpvZgo+Cj4gICAg
ICBzdWJwaWNfdGlsZXMoJnR4LCAmdHksICZ4X2VuZCwgJnlfZW5kLCBzcHMsIHBwcywgaSk7Cj4g
ICAgICBpZiAodHkgKyAxID09IHlfZW5kICYmIHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRfbWlu
dXMxW2ldICsgMSA8Cj4gcHBzLT5yLT5yb3dfaGVpZ2h0X3ZhbFt0eV0pCj4gLSAgICAgICAgcmV0
dXJuIHBwc19zdWJwaWNfbGVzc190aGFuX29uZV90aWxlX3NsaWNlKHBwcywgc3BzLCBpLCB0eCwg
dHksCj4gb2ZmLCB0aWxlX2luX3N1YnBpYyk7Cj4gKyAgICAgICAgcmV0dXJuIHBwc19zdWJwaWNf
bGVzc190aGFuX29uZV90aWxlX3NsaWNlKHBwcywgc3BzLCBpLCB0eCwgdHksCj4gb2ZmKTsKPiAg
ICAgIGVsc2UKPiAtICAgICAgICByZXR1cm4gcHBzX3N1YnBpY19vbmVfb3JfbW9yZV90aWxlc19z
bGljZShwcHMsIHR4LCB0eSwgeF9lbmQsCj4geV9lbmQsIGksIG9mZiwgdGlsZV9pbl9zdWJwaWMp
Owo+ICsgICAgICAgIHJldHVybiBwcHNfc3VicGljX29uZV9vcl9tb3JlX3RpbGVzX3NsaWNlKHBw
cywgdHgsIHR5LCB4X2VuZCwKPiB5X2VuZCwgaSwgb2ZmKTsKPiAgfQo+Cj4gIHN0YXRpYyBpbnQg
cHBzX3NpbmdsZV9zbGljZV9wZXJfc3VicGljKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMgKnNw
cywKPiBpbnQgKm9mZikKPiBAQCAtNTEzLDE4ICs1MjMsMTEgQEAgc3RhdGljIGludCBwcHNfc2lu
Z2xlX3NsaWNlX3Blcl9zdWJwaWMoVlZDUFBTICpwcHMsCj4gY29uc3QgVlZDU1BTICpzcHMsIGlu
dCAqb2ZmKQo+ICAgICAgaWYgKCFzcHMtPnItPnNwc19zdWJwaWNfaW5mb19wcmVzZW50X2ZsYWcp
IHsKPiAgICAgICAgICBwcHNfc2luZ2xlX3NsaWNlX3BpY3R1cmUocHBzLCBvZmYpOwo+ICAgICAg
fSBlbHNlIHsKPiAtICAgICAgICBib29sIHRpbGVfaW5fc3VicGljW1ZWQ19NQVhfVElMRVNfUEVS
X0FVXSA9IHswfTsKPiAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBwcy0+ci0+cHBzX251
bV9zbGljZXNfaW5fcGljX21pbnVzMSArIDE7Cj4gaSsrKSB7Cj4gLSAgICAgICAgICAgIGNvbnN0
IGludCByZXQgPSBwcHNfc3VicGljX3NsaWNlKHBwcywgc3BzLCBpLCBvZmYsCj4gdGlsZV9pbl9z
dWJwaWMpOwo+ICsgICAgICAgICAgICBjb25zdCBpbnQgcmV0ID0gcHBzX3N1YnBpY19zbGljZShw
cHMsIHNwcywgaSwgb2ZmKTsKPiAgICAgICAgICAgICAgaWYgKHJldCA8IDApCj4gICAgICAgICAg
ICAgICAgICByZXR1cm4gcmV0Owo+ICAgICAgICAgIH0KPiAtCj4gLSAgICAgICAgLy8gV2Ugb25s
eSB1c2UgdGlsZV9pbl9zdWJwaWMgdG8gY2hlY2sgdGhhdCB0aGUgc3VicGljdHVyZXMgZG9uJ3QK
PiBvdmVybGFwCj4gLSAgICAgICAgLy8gaGVyZTsgd2UgZG9uJ3QgdXNlIHRpbGVfaW5fc3VicGlj
IHRvIGNoZWNrIHRoYXQgdGhlCj4gc3VicGljdHVyZXMgY292ZXIKPiAtICAgICAgICAvLyBldmVy
eSB0aWxlLiAgSXQgaXMgcG9zc2libGUgdG8gYXZvaWQgZG9pbmcgdGhpcyB3b3JrIGhlcmUKPiBi
ZWNhdXNlIHRoZQo+IC0gICAgICAgIC8vIGNvdmVyaW5nIHByb3BlcnR5IG9mIHN1YnBpY3R1cmVz
IGlzIGFscmVhZHkgZ3VhcmFudGVlZCBieSB0aGUKPiBtZWNoYW5pc21zCj4gLSAgICAgICAgLy8g
d2hpY2ggY2hlY2sgZXZlcnkgQ1RVIGJlbG9uZ3MgdG8gYSBzbGljZS4KPiAgICAgIH0KPiAgICAg
IHJldHVybiAwOwo+ICB9Cj4gLS0KPiAyLjQ3LjAKPgo+Cl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVn
LWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZt
cGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZt
cGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K