From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 3D5974F287 for ; Sun, 18 May 2025 13:16:37 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 416B168D72E; Sun, 18 May 2025 16:16:35 +0300 (EEST) Received: from sender2-op-o18.zoho.eu (sender2-op-o18.zoho.eu [136.143.171.18]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id D9B3368D6CA for ; Sun, 18 May 2025 16:16:33 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; t=1747574190; cv=none; d=zohomail.eu; s=zohoarc; b=RdqymHUiOIXBxYuz6QCRD7mLLyrdC7eOmaABwanuN/zCtQ5m4cj6EQCblNNKKq1whZ4f65qspg951UOUItuGsX6pvCLFw71ZgYr8oSjEe95w8RJziHAjx1FSU9CwRk2xOIL6SzwnuPGKKJuEc5DIdjxv5Cy/g8vqpTYonSPhCqw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.eu; s=zohoarc; t=1747574190; 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=VXCwNv1rIdyBBzlkW0kL7PTLdAXgaonNxQqGgtzQckU=; b=Gfu/Z9EBl/6MWClN7BTGBUvG5SZfAR0OFK18HJODTxZX9FLTB6rQ/xNjiIBaYqi3NWvfeIJ/20xVrOZajxj5kdSS1Fd7cD9pFEsT8h9K38cdzBct7Lof+mjK3iyGqLa2wB1i0pL94HYukZ7q2ZL7cDlcm63PyPb7MriMg/TAlN4= 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= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1747574190; 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=VXCwNv1rIdyBBzlkW0kL7PTLdAXgaonNxQqGgtzQckU=; b=U/l+AUTrpDGkML84GeAPsuez/xT14HsyX42mw/jd2vabTbBXCh1w5mKJTEHa6NJ4 WksJUfPwbr8f30T+HXWSWovATZOzxNCZLss9Vncx8iIu6jwZyX7IdrInt7/Cueprydu HYA3G0H42vpt0QDyIX+dRH/59ijlj3S/tCn4XRKM= Received: by mx.zoho.eu with SMTPS id 1747574189554704.8000277748921; Sun, 18 May 2025 15:16:29 +0200 (CEST) Message-ID: <9343d2df-20a0-47e4-b388-aa0a2b6ac5d8@frankplowman.com> Date: Sun, 18 May 2025 14:16:29 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-GB To: ffmpeg-devel@ffmpeg.org References: <20250427084843.39670-1-post@frankplowman.com> From: Frank Plowman In-Reply-To: X-ZohoMailClient: External Subject: Re: [FFmpeg-devel] [PATCH v2] 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gMjkvMDQvMjAyNSAxNDoyNCwgTnVvIE1pIHdyb3RlOgo+IEhpIEZyYW5rLAo+IFRoYW5rIHlv dSBmb3IgdGhlIGRldGFpbC4KPiAKPiBPbiBNb24sIEFwciAyOCwgMjAyNSBhdCAxMDozNeKAr1BN IEZyYW5rIFBsb3dtYW4gPHBvc3RAZnJhbmtwbG93bWFuLmNvbT4KPiB3cm90ZToKPiAKPj4gT24g MjgvMDQvMjAyNSAxNDozMywgTnVvIE1pIHdyb3RlOgo+Pj4gSGkgRnJhbmssCj4+PiBUaGFuayB5 b3UgZm9yIHRoZSB2Mi4KPj4+IENvdWxkIHdlIHJlbW92ZSBhbGwgYXNzZXJ0cz8KPj4+IEFzc2Vy dHMgY2FuIGNhdXNlIHRoZSBhcHBsaWNhdGlvbiB0byBjcmFzaCBhdCBydW50aW1lLgo+Pgo+PiBI aSwKPj4KPj4gSSB0aGluayBhdl9hc3NlcnQycyBhcmUgdGhlIHJpZ2h0IHRoaW5nIHRvIHVzZSBo ZXJlLiAgSW4gY2FzZSBpdCB3YXMgbm90Cj4+IGNsZWFyLCB0aGVzZSBhc3NlcnRzIHNob3VsZCBu ZXZlciBiZSB0cmlnZ2VyZWQgYnkgYW55IGJpdHN0cmVhbSAobGVnYWwKPj4gb3IgaWxsZWdhbCku ICBUaGUgYWx0ZXJuYXRpdmVzLCBhcyBJIHNlZSBpdCwgYXJlIGJvdGggbGVzcyBmYXZvdXJhYmxl Ogo+Pgo+PiAqIERvbid0IGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgYXQgYWxsLiAgSWYgdGhlIGFz c3VtcHRpb24gYWJvdmUgdGhhdAo+PiBwcHNfYWRkX2N0dXMgc2hvdWxkbid0IGZhaWwgaW4gdGhl c2UgY2FzZXMgaXMgaW5jb3JyZWN0LCB0aGVuIGFsbCBvZiBhCj4+IHN1ZGRlbiB0aGVyZSBpcyBh IHJhdGhlciB1bnNjcnV0YWJsZSBlcnJvciBhcmlzaW5nIGZyb20gc3VidHJhY3RpbmcgYQo+PiB2 YWx1ZSBmcm9tIG9mZiwgd2hpY2ggbWlnaHQgYmUgcmF0aGVyIGRpZmZpY3VsdCB0byBkZWJ1Zy4g IEFuIGFzc2VydGlvbgo+PiBpcyBiZXR0ZXIgYmVjYXVzZSBpdCBtYWtlcyB0aGUgaXNzdWUgb2J2 aW91cyBieSBjcmFzaGluZywgYW5kCj4+IGltbWVkaWF0ZWx5IHBvaW50cyB0byB0aGUgbG9jYXRp b24gaW4gdGhlIGNvZGUgd2hpY2ggaXMgcHJvYmxlbWF0aWMuCj4+Cj4gRkZtcGVnIHdpbGwgcnVu IG9uIG11bHRpcGxlIGNvbXB1dGVycywgc28gZGV0ZWN0aW5nIGFuZCByZXR1cm5pbmcgYW4gZXJy b3IKPiBpcyBiZXR0ZXIgdGhhbiBjcmFzaGluZyB0aGUgcHJvZ3JhbSDigJQgZXZlbiBpZiBpdCdz IGEgcmFyZSBvY2N1cnJlbmNlLgo+IAo+Pgo+PiAqIEFkZCBhIHJ1bnRpbWUgY2hlY2sgZm9yIHRo ZXNlIGNhc2VzLiAgSWYgdGhlIGFzc3VtcHRpb24gYWJvdmUgaXMKPj4gY29ycmVjdCwgdGhlbiB3 ZSdyZSBpbmN1cnJpbmcgbmVlZGxlc3MgcnVudGltZSBwZW5hbHR5IGNoZWNraW5nIGZvcgo+PiB0 aGluZ3Mgd2hpY2ggYXJlIGFsd2F5cyB0cnVlLiAgQW4gYXZfYXNzZXJ0MiBpcyBiZXR0ZXIgYmVj YXVzZSBpdCBpcwo+PiBvbmx5IGVuYWJsZWQgaW4gZGVidWcgYnVpbGRzLCBhbmQgbm90IHdoZXJl IHBlcmZvcm1hbmNlIGlzIGVzc2VudGlhbC4KPj4KPiBUaGUgZW50aXJlIHByb2Nlc3MgaGFwcGVu cyBhdCB0aGUgUFBTIGxldmVsLCBhbmQgdXN1YWxseSwgd2Ugb25seSBoYXZlIG9uZQo+IHBlciBz dHJlYW0sIHNvIHRoZSBwZXJmb3JtYW5jZSBsb3NzIHNob3VsZCBiZSBtaW5pbWFsLgo+IAoKT2ss IEkndmUgcmVwbGFjZWQgdGhlIGFzc2VydHMgd2l0aCBydW50aW1lIGVycm9ycyBpbiB2My4KCj4+ Cj4+Pgo+Pj4gT24gU3VuLCBBcHIgMjcsIDIwMjUgYXQgNDo0OOKAr1BNIEZyYW5rIFBsb3dtYW4g PHBvc3RAZnJhbmtwbG93bWFuLmNvbT4KPj4gd3JvdGU6Cj4+Pgo+Pj4+IEluIGQ1ZGJjYzAwZDg4 OWZiMTc5NDhiMDI1YTQ2OGIwMGRkYmVhOWUwNTgsIGl0IHdhcyBob3BlZCB0aGF0IGRldGVjdGlv bgo+Pj4+IG9mIHN1YnBpY3R1cmUgb3ZlcmxhcHMgY291bGQgYmUgcGVyZm9ybWVkIGF0IHRoZSB0 aWxlIGxldmVsLCBzbyBhcyB0bwo+Pj4+IGF2b2lkIGludHJvZHVjaW5nIHBlci1DVFUgY2hlY2tz LiBVbmZvcnR1bmF0ZWx5IHNpbmNlIHRoYXQgcGF0Y2gsCj4+Pj4gZnV6emluZyBoYXMgaW5kaWNh dGVkIHRoZXJlIGFyZSBzb21lIHN0cnVjdHVyZXMgaW52b2x2aW5nCj4+Pj4gcHBzX3N1YnBpY19v bmVfb3JfbW9yZV90aWxlc19zbGljZSB3aGVyZSB0aWxlLWxldmVsIGNoZWNraW5nIGlzIG5vdAo+ Pj4+IHN1ZmZpY2llbnQuICBQZXJmb3JtaW5nIHRoZSBjaGVjayBhdCB0aGUgQ1RVIGxldmVsIHNo b3VsZCAodG91Y2ggd29vZCkKPj4+PiBiZSB0aGUgYmUtYWxsIGFuZCBhbmQtYWxsIG9mIHRoaXMs IGFzIENUVXMgYXJlIHRoZSBsb3dlc3QgY29tbW9uCj4+Pj4gZGVub21pbmF0b3Igb2YgdGhlIHBp Y3R1cmUgcGFydGl0aW9uaW5nLgo+Pj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogRnJhbmsgUGxvd21h biA8cG9zdEBmcmFua3Bsb3dtYW4uY29tPgo+Pj4+IC0tLQo+Pj4+IENoYW5nZXMgc2luY2UgdjE6 Cj4+Pj4gKiBNZXJnZSBwcHNfYWRkX2N0dXMgYW5kIHBwc19hZGRfY3R1c19jaGVjawo+Pj4+ICog Q2hhbmdlIGlmL2Vsc2UgZm9yIGVhcmx5LWV4aXQgd2hlcmUgcG9zc2libGUKPj4+Pgo+Pj4+IC0t LQo+Pj4+ICBsaWJhdmNvZGVjL3Z2Yy9wcy5jIHwgNzEgKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCAzMSBpbnNlcnRpb25z KCspLCA0MCBkZWxldGlvbnMoLSkKPj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z2 Yy9wcy5jIGIvbGliYXZjb2RlYy92dmMvcHMuYwo+Pj4+IGluZGV4IGU4YzMxMmQ4YWMuLmVkOTYy NjhiYWUgMTAwNjQ0Cj4+Pj4gLS0tIGEvbGliYXZjb2RlYy92dmMvcHMuYwo+Pj4+ICsrKyBiL2xp YmF2Y29kZWMvdnZjL3BzLmMKPj4+PiBAQCAtNDA4LDYgKzQwOCw4IEBAIHN0YXRpYyBpbnQgcHBz X2FkZF9jdHVzKFZWQ1BQUyAqcHBzLCBpbnQgKm9mZiwgY29uc3QKPj4+PiBpbnQgcngsIGNvbnN0 IGludCByeSwKPj4+PiAgICAgIGludCBzdGFydCA9ICpvZmY7Cj4+Pj4gICAgICBmb3IgKGludCB5 ID0gMDsgeSA8IGg7IHkrKykgewo+Pj4+ICAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgdzsg eCsrKSB7Cj4+Pj4gKyAgICAgICAgICAgIGlmICgqb2ZmID49IHBwcy0+Y3RiX2NvdW50KQo+Pj4+ ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+Pj4gICAgICAg ICAgICAgIHBwcy0+Y3RiX2FkZHJfaW5fc2xpY2VbKm9mZl0gPSBjdHVfcnMocnggKyB4LCByeSAr IHksIHBwcyk7Cj4+Pj4gICAgICAgICAgICAgICgqb2ZmKSsrOwo+Pj4+ICAgICAgICAgIH0KPj4+ PiBAQCAtNDIwLDkgKzQyMiwxMSBAQCBzdGF0aWMgdm9pZCBwcHNfc2luZ2xlX3NsaWNlX3BpY3R1 cmUoVlZDUFBTICpwcHMsCj4+IGludAo+Pj4+ICpvZmYpCj4+Pj4gICAgICBwcHMtPm51bV9jdHVz X2luX3NsaWNlWzBdID0gMDsKPj4+PiAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgcHBzLT5yLT5u dW1fdGlsZV9yb3dzOyBqKyspIHsKPj4+PiAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBw cy0+ci0+bnVtX3RpbGVfY29sdW1uczsgaSsrKSB7Cj4+Pj4gLSAgICAgICAgICAgIHBwcy0+bnVt X2N0dXNfaW5fc2xpY2VbMF0gKz0gcHBzX2FkZF9jdHVzKHBwcywgb2ZmLAo+Pj4+ICsgICAgICAg ICAgICBjb25zdCBpbnQgcmV0ID0gcHBzX2FkZF9jdHVzKHBwcywgb2ZmLAo+Pj4+ICAgICAgICAg ICAgICAgICAgcHBzLT5jb2xfYmRbaV0sIHBwcy0+cm93X2JkW2pdLAo+Pj4+ICAgICAgICAgICAg ICAgICAgcHBzLT5yLT5jb2xfd2lkdGhfdmFsW2ldLCBwcHMtPnItPnJvd19oZWlnaHRfdmFsW2pd KTsKPj4+PiArICAgICAgICAgICAgYXZfYXNzZXJ0MihyZXQgPj0gMCk7Cj4+Pj4gKyAgICAgICAg ICAgIHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbMF0gKz0gcmV0Owo+Pj4+ICAgICAgICAgIH0KPj4+ PiAgICAgIH0KPj4+PiAgfQo+Pj4+IEBAIC00NTEsNTAgKzQ1NSwzNiBAQCBzdGF0aWMgdm9pZCBz dWJwaWNfdGlsZXMoaW50ICp0aWxlX3gsIGludCAqdGlsZV95LAo+Pj4+IGludCAqdGlsZV94X2Vu ZCwgaW50ICp0aWxlX3lfCj4+Pj4gICAgICAgICAgKCp0aWxlX3lfZW5kKSsrOwo+Pj4+ICB9Cj4+ Pj4KPj4+PiAtc3RhdGljIGJvb2wgbWFya190aWxlX2FzX3VzZWQoYm9vbCAqdGlsZV9pbl9zdWJw aWMsIGNvbnN0IGludCB0eCwgY29uc3QKPj4+PiBpbnQgdHksIGNvbnN0IGludCB0aWxlX2NvbHVt bnMpCj4+Pj4gLXsKPj4+PiAtICAgIGNvbnN0IHNpemVfdCB0aWxlX2lkeCA9IHR5ICogdGlsZV9j b2x1bW5zICsgdHg7Cj4+Pj4gLSAgICBpZiAodGlsZV9pbl9zdWJwaWNbdGlsZV9pZHhdKSB7Cj4+ Pj4gLSAgICAgICAgLyogdGhlIHRpbGUgaXMgY292ZXJlZCBieSBvdGhlciBzdWJwaWN0dXJlcyAq Lwo+Pj4+IC0gICAgICAgIHJldHVybiBmYWxzZTsKPj4+PiAtICAgIH0KPj4+PiAtICAgIHRpbGVf aW5fc3VicGljW3RpbGVfaWR4XSA9IHRydWU7Cj4+Pj4gLSAgICByZXR1cm4gdHJ1ZTsKPj4+PiAt fQo+Pj4+IC0KPj4+PiAtc3RhdGljIGludCBwcHNfc3VicGljX2xlc3NfdGhhbl9vbmVfdGlsZV9z bGljZShWVkNQUFMgKnBwcywgY29uc3QKPj4gVlZDU1BTCj4+Pj4gKnNwcywgY29uc3QgaW50IGks IGNvbnN0IGludCB0eCwgY29uc3QgaW50IHR5LCBpbnQgKm9mZiwgYm9vbAo+Pj4+ICp0aWxlX2lu X3N1YnBpYykKPj4+PiArc3RhdGljIGludCBwcHNfc3VicGljX2xlc3NfdGhhbl9vbmVfdGlsZV9z bGljZShWVkNQUFMgKnBwcywgY29uc3QKPj4gVlZDU1BTCj4+Pj4gKnNwcywgY29uc3QgaW50IGks IGNvbnN0IGludCB0eCwgY29uc3QgaW50IHR5LCBpbnQgKm9mZikKPj4+PiAgewo+Pj4+IC0gICAg Y29uc3QgaW50IHN1YnBpY19ib3R0b20gPSBzcHMtPnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0 X3lbaV0gKwo+Pj4+IHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRfbWludXMxW2ldOwo+Pj4+IC0g ICAgY29uc3QgaW50IHRpbGVfYm90dG9tID0gcHBzLT5yb3dfYmRbdHldICsKPj4gcHBzLT5yLT5y b3dfaGVpZ2h0X3ZhbFt0eV0KPj4+PiAtIDE7Cj4+Pj4gLSAgICBjb25zdCBib29sIGlzX2ZpbmFs X3N1YnBpY19pbl90aWxlID0gc3VicGljX2JvdHRvbSA9PSB0aWxlX2JvdHRvbTsKPj4+PiAtCj4+ Pj4gLSAgICBpZiAoaXNfZmluYWxfc3VicGljX2luX3RpbGUgJiYgIW1hcmtfdGlsZV9hc191c2Vk KHRpbGVfaW5fc3VicGljLAo+PiB0eCwKPj4+PiB0eSwgcHBzLT5yLT5udW1fdGlsZV9jb2x1bW5z KSkKPj4+PiAtICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPj4+PiAtCj4+Pj4g LSAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldID0gcHBzX2FkZF9jdHVzKHBwcywgb2ZmLAo+ Pj4+ICsgICAgY29uc3QgaW50IHJldCA9IHBwc19hZGRfY3R1cyhwcHMsIG9mZiwKPj4+PiAgICAg ICAgICBzcHMtPnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0X3hbaV0sCj4+Pj4gc3BzLT5yLT5z cHNfc3VicGljX2N0dV90b3BfbGVmdF95W2ldLAo+Pj4+ICAgICAgICAgIHNwcy0+ci0+c3BzX3N1 YnBpY193aWR0aF9taW51czFbaV0gKyAxLAo+Pj4+IHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRf bWludXMxW2ldICsgMSk7Cj4+Pj4gKyAgICBpZiAocmV0IDwgMCkKPj4+PiArICAgICAgICByZXR1 cm4gcmV0Owo+Pj4+Cj4+Pj4gKyAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldID0gcmV0Owo+ Pj4+ICAgICAgcmV0dXJuIDA7Cj4+Pj4gIH0KPj4+Pgo+Pj4+ICBzdGF0aWMgaW50IHBwc19zdWJw aWNfb25lX29yX21vcmVfdGlsZXNfc2xpY2UoVlZDUFBTICpwcHMsIGNvbnN0IGludAo+Pj4+IHRp bGVfeCwgY29uc3QgaW50IHRpbGVfeSwgY29uc3QgaW50IHhfZW5kLCBjb25zdCBpbnQgeV9lbmQs Cj4+Pj4gLSAgICBjb25zdCBpbnQgaSwgaW50ICpvZmYsIGJvb2wgKnRpbGVfaW5fc3VicGljKQo+ Pj4+ICsgICAgY29uc3QgaW50IGksIGludCAqb2ZmKQo+Pj4+ICB7Cj4+Pj4gICAgICBmb3IgKGlu dCB0eSA9IHRpbGVfeTsgdHkgPCB5X2VuZDsgdHkrKykgewo+Pj4+ICAgICAgICAgIGZvciAoaW50 IHR4ID0gdGlsZV94OyB0eCA8IHhfZW5kOyB0eCsrKSB7Cj4+Pj4gLSAgICAgICAgICAgIGlmICgh bWFya190aWxlX2FzX3VzZWQodGlsZV9pbl9zdWJwaWMsIHR4LCB0eSwKPj4+PiBwcHMtPnItPm51 bV90aWxlX2NvbHVtbnMpKQo+Pj4+IC0gICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5W QUxJRERBVEE7Cj4+Pj4gLQo+Pj4+IC0gICAgICAgICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNl W2ldICs9IHBwc19hZGRfY3R1cyhwcHMsIG9mZiwKPj4+PiArICAgICAgICAgICAgY29uc3QgaW50 IHJldCA9IHBwc19hZGRfY3R1cyhwcHMsIG9mZiwKPj4+PiAgICAgICAgICAgICAgICAgIHBwcy0+ Y29sX2JkW3R4XSwgcHBzLT5yb3dfYmRbdHldLAo+Pj4+ICAgICAgICAgICAgICAgICAgcHBzLT5y LT5jb2xfd2lkdGhfdmFsW3R4XSwgcHBzLT5yLT5yb3dfaGVpZ2h0X3ZhbFt0eV0pOwo+Pj4+ICsg ICAgICAgICAgICBpZiAocmV0IDwgMCkKPj4+PiArICAgICAgICAgICAgICAgIHJldHVybiByZXQ7 Cj4+Pj4gKwo+Pj4+ICsgICAgICAgICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldICs9IHJl dDsKPj4+PiAgICAgICAgICB9Cj4+Pj4gICAgICB9Cj4+Pj4gICAgICByZXR1cm4gMDsKPj4+PiAg fQo+Pj4+Cj4+Pj4gLXN0YXRpYyBpbnQgcHBzX3N1YnBpY19zbGljZShWVkNQUFMgKnBwcywgY29u c3QgVlZDU1BTICpzcHMsIGNvbnN0IGludAo+PiBpLAo+Pj4+IGludCAqb2ZmLCBib29sICp0aWxl X2luX3N1YnBpYykKPj4+PiArc3RhdGljIGludCBwcHNfc3VicGljX3NsaWNlKFZWQ1BQUyAqcHBz LCBjb25zdCBWVkNTUFMgKnNwcywgY29uc3QgaW50Cj4+IGksCj4+Pj4gaW50ICpvZmYpCj4+Pj4g IHsKPj4+PiAgICAgIGludCB0eCwgdHksIHhfZW5kLCB5X2VuZDsKPj4+Pgo+Pj4+IEBAIC01MDMs OSArNDkzLDkgQEAgc3RhdGljIGludCBwcHNfc3VicGljX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25z dAo+PiBWVkNTUFMKPj4+PiAqc3BzLCBjb25zdCBpbnQgaSwgaW50ICpvZgo+Pj4+Cj4+Pj4gICAg ICBzdWJwaWNfdGlsZXMoJnR4LCAmdHksICZ4X2VuZCwgJnlfZW5kLCBzcHMsIHBwcywgaSk7Cj4+ Pj4gICAgICBpZiAodHkgKyAxID09IHlfZW5kICYmIHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRf bWludXMxW2ldICsgMSA8Cj4+Pj4gcHBzLT5yLT5yb3dfaGVpZ2h0X3ZhbFt0eV0pCj4+Pj4gLSAg ICAgICAgcmV0dXJuIHBwc19zdWJwaWNfbGVzc190aGFuX29uZV90aWxlX3NsaWNlKHBwcywgc3Bz LCBpLCB0eCwgdHksCj4+Pj4gb2ZmLCB0aWxlX2luX3N1YnBpYyk7Cj4+Pj4gKyAgICAgICAgcmV0 dXJuIHBwc19zdWJwaWNfbGVzc190aGFuX29uZV90aWxlX3NsaWNlKHBwcywgc3BzLCBpLCB0eCwg dHksCj4+Pj4gb2ZmKTsKPj4+PiAgICAgIGVsc2UKPj4+PiAtICAgICAgICByZXR1cm4gcHBzX3N1 YnBpY19vbmVfb3JfbW9yZV90aWxlc19zbGljZShwcHMsIHR4LCB0eSwgeF9lbmQsCj4+Pj4geV9l bmQsIGksIG9mZiwgdGlsZV9pbl9zdWJwaWMpOwo+Pj4+ICsgICAgICAgIHJldHVybiBwcHNfc3Vi cGljX29uZV9vcl9tb3JlX3RpbGVzX3NsaWNlKHBwcywgdHgsIHR5LCB4X2VuZCwKPj4+PiB5X2Vu ZCwgaSwgb2ZmKTsKPj4+PiAgfQo+Pj4+Cj4+Pj4gIHN0YXRpYyBpbnQgcHBzX3NpbmdsZV9zbGlj ZV9wZXJfc3VicGljKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMgKnNwcywKPj4+PiBpbnQgKm9m ZikKPj4+PiBAQCAtNTEzLDE4ICs1MDMsMTEgQEAgc3RhdGljIGludCBwcHNfc2luZ2xlX3NsaWNl X3Blcl9zdWJwaWMoVlZDUFBTCj4+ICpwcHMsCj4+Pj4gY29uc3QgVlZDU1BTICpzcHMsIGludCAq b2ZmKQo+Pj4+ICAgICAgaWYgKCFzcHMtPnItPnNwc19zdWJwaWNfaW5mb19wcmVzZW50X2ZsYWcp IHsKPj4+PiAgICAgICAgICBwcHNfc2luZ2xlX3NsaWNlX3BpY3R1cmUocHBzLCBvZmYpOwo+Pj4+ ICAgICAgfSBlbHNlIHsKPj4+PiAtICAgICAgICBib29sIHRpbGVfaW5fc3VicGljW1ZWQ19NQVhf VElMRVNfUEVSX0FVXSA9IHswfTsKPj4+PiAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBw cy0+ci0+cHBzX251bV9zbGljZXNfaW5fcGljX21pbnVzMSArIDE7Cj4+Pj4gaSsrKSB7Cj4+Pj4g LSAgICAgICAgICAgIGNvbnN0IGludCByZXQgPSBwcHNfc3VicGljX3NsaWNlKHBwcywgc3BzLCBp LCBvZmYsCj4+Pj4gdGlsZV9pbl9zdWJwaWMpOwo+Pj4+ICsgICAgICAgICAgICBjb25zdCBpbnQg cmV0ID0gcHBzX3N1YnBpY19zbGljZShwcHMsIHNwcywgaSwgb2ZmKTsKPj4+PiAgICAgICAgICAg ICAgaWYgKHJldCA8IDApCj4+Pj4gICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+Pj4+ICAg ICAgICAgIH0KPj4+PiAtCj4+Pj4gLSAgICAgICAgLy8gV2Ugb25seSB1c2UgdGlsZV9pbl9zdWJw aWMgdG8gY2hlY2sgdGhhdCB0aGUgc3VicGljdHVyZXMKPj4gZG9uJ3QKPj4+PiBvdmVybGFwCj4+ Pj4gLSAgICAgICAgLy8gaGVyZTsgd2UgZG9uJ3QgdXNlIHRpbGVfaW5fc3VicGljIHRvIGNoZWNr IHRoYXQgdGhlCj4+Pj4gc3VicGljdHVyZXMgY292ZXIKPj4+PiAtICAgICAgICAvLyBldmVyeSB0 aWxlLiAgSXQgaXMgcG9zc2libGUgdG8gYXZvaWQgZG9pbmcgdGhpcyB3b3JrIGhlcmUKPj4+PiBi ZWNhdXNlIHRoZQo+Pj4+IC0gICAgICAgIC8vIGNvdmVyaW5nIHByb3BlcnR5IG9mIHN1YnBpY3R1 cmVzIGlzIGFscmVhZHkgZ3VhcmFudGVlZCBieQo+PiB0aGUKPj4+PiBtZWNoYW5pc21zCj4+Pj4g LSAgICAgICAgLy8gd2hpY2ggY2hlY2sgZXZlcnkgQ1RVIGJlbG9uZ3MgdG8gYSBzbGljZS4KPj4+ PiAgICAgIH0KPj4+PiAgICAgIHJldHVybiAwOwo+Pj4+ICB9Cj4+Pj4gQEAgLTUzOCw5ICs1MjEs MTIgQEAgc3RhdGljIGludCBwcHNfb25lX3RpbGVfc2xpY2VzKFZWQ1BQUyAqcHBzLCBjb25zdAo+ PiBpbnQKPj4+PiB0aWxlX2lkeCwgaW50IGksIGludCAqb2ZmKQo+Pj4+ICAgICAgY3R1X3h5KCZy eCwgJnJ5LCB0aWxlX3gsIHRpbGVfeSwgcHBzKTsKPj4+PiAgICAgIGN0dV95X2VuZCA9IHJ5ICsg ci0+cm93X2hlaWdodF92YWxbdGlsZV95XTsKPj4+PiAgICAgIHdoaWxlIChyeSA8IGN0dV95X2Vu ZCkgewo+Pj4+ICsgICAgICAgIGludCByZXQ7Cj4+Pj4gICAgICAgICAgcHBzLT5zbGljZV9zdGFy dF9vZmZzZXRbaV0gPSAqb2ZmOwo+Pj4+IC0gICAgICAgIHBwcy0+bnVtX2N0dXNfaW5fc2xpY2Vb aV0gPSBwcHNfYWRkX2N0dXMocHBzLCBvZmYsIHJ4LCByeSwKPj4+PiArICAgICAgICByZXQgPSBw cHNfYWRkX2N0dXMocHBzLCBvZmYsIHJ4LCByeSwKPj4+PiAgICAgICAgICAgICAgci0+Y29sX3dp ZHRoX3ZhbFt0aWxlX3hdLCByLT5zbGljZV9oZWlnaHRfaW5fY3R1c1tpXSk7Cj4+Pj4gKyAgICAg ICAgYXZfYXNzZXJ0MihyZXQgPj0gMCk7Cj4+Pj4gKyAgICAgICAgcHBzLT5udW1fY3R1c19pbl9z bGljZVtpXSA9IHJldDsKPj4+PiAgICAgICAgICByeSArPSByLT5zbGljZV9oZWlnaHRfaW5fY3R1 c1tpKytdOwo+Pj4+ICAgICAgfQo+Pj4+ICAgICAgaS0tOwo+Pj4+IEBAIC01NTcsMTMgKzU0Mywx NiBAQCBzdGF0aWMgaW50IHBwc19tdWx0aV90aWxlc19zbGljZShWVkNQUFMgKnBwcywKPj4gY29u c3QKPj4+PiBpbnQgdGlsZV9pZHgsIGNvbnN0IGludCBpLCBpCj4+Pj4gICAgICBwcHMtPm51bV9j dHVzX2luX3NsaWNlW2ldID0gMDsKPj4+PiAgICAgIGZvciAoaW50IHR5ID0gdGlsZV95OyB0eSA8 PSB0aWxlX3kgKwo+Pj4+IHItPnBwc19zbGljZV9oZWlnaHRfaW5fdGlsZXNfbWludXMxW2ldOyB0 eSsrKSB7Cj4+Pj4gICAgICAgICAgZm9yIChpbnQgdHggPSB0aWxlX3g7IHR4IDw9IHRpbGVfeCAr Cj4+Pj4gci0+cHBzX3NsaWNlX3dpZHRoX2luX3RpbGVzX21pbnVzMVtpXTsgdHgrKykgewo+Pj4+ ICsgICAgICAgICAgICBpbnQgcmV0Owo+Pj4+ICAgICAgICAgICAgICBjb25zdCBpbnQgaWR4ID0g dHkgKiByLT5udW1fdGlsZV9jb2x1bW5zICsgdHg7Cj4+Pj4gICAgICAgICAgICAgIGlmICh0aWxl X2luX3NsaWNlW2lkeF0pCj4+Pj4gICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZB TElEREFUQTsKPj4+PiAgICAgICAgICAgICAgdGlsZV9pbl9zbGljZVtpZHhdID0gdHJ1ZTsKPj4+ PiAgICAgICAgICAgICAgY3R1X3h5KCZyeCwgJnJ5LCB0eCwgdHksIHBwcyk7Cj4+Pj4gLSAgICAg ICAgICAgIHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbaV0gKz0gcHBzX2FkZF9jdHVzKHBwcywgb2Zm LCByeCwgcnksCj4+Pj4gKyAgICAgICAgICAgIHJldCA9IHBwc19hZGRfY3R1cyhwcHMsIG9mZiwg cngsIHJ5LAo+Pj4+ICAgICAgICAgICAgICAgICAgci0+Y29sX3dpZHRoX3ZhbFt0eF0sIHItPnJv d19oZWlnaHRfdmFsW3R5XSk7Cj4+Pj4gKyAgICAgICAgICAgIGF2X2Fzc2VydDIocmV0ID49IDAp Owo+Pj4+ICsgICAgICAgICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldICs9IHJldDsKPj4+ PiAgICAgICAgICB9Cj4+Pj4gICAgICB9Cj4+Pj4KPj4+PiBAQCAtNjEwLDggKzU5OSwxMCBAQCBz dGF0aWMgdm9pZCBwcHNfbm9fcmVjdF9zbGljZShWVkNQUFMqIHBwcykKPj4+Pgo+Pj4+ICAgICAg Zm9yIChpbnQgdGlsZV95ID0gMDsgdGlsZV95IDwgci0+bnVtX3RpbGVfcm93czsgdGlsZV95Kysp IHsKPj4+PiAgICAgICAgICBmb3IgKGludCB0aWxlX3ggPSAwOyB0aWxlX3ggPCByLT5udW1fdGls ZV9jb2x1bW5zOyB0aWxlX3grKykgewo+Pj4+ICsgICAgICAgICAgICBpbnQgcmV0Owo+Pj4+ICAg ICAgICAgICAgICBjdHVfeHkoJnJ4LCAmcnksIHRpbGVfeCwgdGlsZV95LCBwcHMpOwo+Pj4+IC0g ICAgICAgICAgICBwcHNfYWRkX2N0dXMocHBzLCAmb2ZmLCByeCwgcnksIHItPmNvbF93aWR0aF92 YWxbdGlsZV94XSwKPj4+PiByLT5yb3dfaGVpZ2h0X3ZhbFt0aWxlX3ldKTsKPj4+PiArICAgICAg ICAgICAgcmV0ID0gcHBzX2FkZF9jdHVzKHBwcywgJm9mZiwgcngsIHJ5LAo+Pj4+IHItPmNvbF93 aWR0aF92YWxbdGlsZV94XSwgci0+cm93X2hlaWdodF92YWxbdGlsZV95XSk7Cj4+Pj4gKyAgICAg ICAgICAgIGF2X2Fzc2VydDIocmV0ID49IDApOwo+Pj4+ICAgICAgICAgIH0KPj4+PiAgICAgIH0K Pj4+PiAgfQo+Pj4+IC0tCj4+Pj4gMi40Ny4wCj4+Pj4KPj4+Pgo+Pj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+IGZmbXBlZy1kZXZlbCBtYWlsaW5n IGxpc3QKPj4+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4+PiBodHRwczovL2ZmbXBlZy5vcmcv bWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPj4+Cj4+PiBUbyB1bnN1YnNjcmliZSwgdmlz aXQgbGluayBhYm92ZSwgb3IgZW1haWwKPj4+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5v cmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCj4+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4g ZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlz dGluZm8vZmZtcGVnLWRldmVsCj4+Cj4+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3Zl LCBvciBlbWFpbAo+PiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVj dCAidW5zdWJzY3JpYmUiLgo+Pgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+IGZmbXBlZy1kZXZlbEBm Zm1wZWcub3JnCj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRl dmVsCj4gCj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4gZmZt cGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWct ZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVn Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0 IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0 aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==