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 ESMTPS id E1A994E127 for ; Mon, 28 Apr 2025 13:34:13 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B55F8687DD1; Mon, 28 Apr 2025 16:34:09 +0300 (EEST) Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C4A54687D47 for ; Mon, 28 Apr 2025 16:34:02 +0300 (EEST) Received: by mail-qt1-f180.google.com with SMTP id d75a77b69052e-477296dce8dso56231221cf.3 for ; Mon, 28 Apr 2025 06:34:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745847241; x=1746452041; 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=OBN6cXtwY7ZrRxMnf4KoUzybmOzR+iqH9su5V8U4AgU=; b=kc7wQmidra3kpD0wxUM//UPPUzzl3t3oLcdSkSyxX5j4dC6BOMjJo0WAvBanU8k5g7 m3joEwvRUwSz8XugLZBwTOcgzIGDmV7AN+Bw/rINoQ9Lvmg6JSCYyKBopQWPdhc9+niA f8hUH4frIZNGw6xaTGODpNQ6SYrPyZamTg/gb5TCTuDuZi6JQBLeR0qU59e+5U77VIAw 8234+6qbrWtS1iV3eZUsqT5jOBYnbj7a8ogr0jbrANWqteDGdcNTVFpeIil+M0ABQElo gponsZcMO5ysyjCplf180Up25/Q2krpTbFK/swUlYYz8t403XfNJBieuw/HuMEiW5HaP vQmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745847241; x=1746452041; 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=OBN6cXtwY7ZrRxMnf4KoUzybmOzR+iqH9su5V8U4AgU=; b=tD6tyltEeLjP5rRUpqYlIQvAdxMB6Dhyxh94lLqIgUKbX/7yHj8Fz7133ZScx1ZE4X 6aMWEUb7swtHl9snzQljkLSvHyoDDppEmzO1a2jK/MuFPLKUG2n1bTyis3bczq1oHNXC W0GK8HkYjx7dOtScLpr7c1/0dihOWv9VGPs03cy7xtpecZ8tPAw8B3W+cEgkMMwlEsXd vCugaNVKhn323oSM+3A8oNngNFhkQeC9Q3EbRMvkINM+lwwPCIeaZVz8JFtfZ8Z1NmKD ltDyRmLCZR2iz01j7HeYcWEKlsdOj87ryjUtOyu07tU71gtGUMVrJeMnxsiYT4VxU4ha d5xg== X-Gm-Message-State: AOJu0Yx6oKjn09Crf3NmWbnnaAQBvvytkaQJQatcTfeUJkCHje9THDHM PfLiZtiLMqPX/U4NcuCLBfMWdsLOrjRZhxMp51PMaD3xL+0ALXIbgjG1h5QoWvzvijxALxk0nvj BboVYyFztikcRVPJW+ahDS2yflws= X-Gm-Gg: ASbGncuTTwBqALnBhVE6yfxaB3wBeorushLmfbPooXm7MxaZE43LsVR1BdKpr69eL/B t4O9VhgzVYYdEJo4GfPBMEicxooR4Td9N6EExJWzlDbf4bLfusr1woPHbmXPj/zMq6QdoZSDMke lGSrOdHLl4swWv+4TznNZW X-Google-Smtp-Source: AGHT+IHoorEWKBgSLWg+ezcy2PKALiQF8EqdGZvIVeda1qnUbdVJMsE30XBGWhqr8BUH7laSHDkl2gquN+2GhpvxtPg= X-Received: by 2002:a05:622a:1805:b0:476:701b:d814 with SMTP id d75a77b69052e-48022c3127dmr200928551cf.11.1745847240899; Mon, 28 Apr 2025 06:34:00 -0700 (PDT) MIME-Version: 1.0 References: <20250427084843.39670-1-post@frankplowman.com> In-Reply-To: <20250427084843.39670-1-post@frankplowman.com> From: Nuo Mi Date: Mon, 28 Apr 2025 21:33:49 +0800 X-Gm-Features: ATxdqUHQbPBz8Gcrj749Uod7drxj0FfhxfgK2jS8AQi07sClro5IPCsBQhsobYQ Message-ID: To: Frank Plowman X-Content-Filtered-By: Mailman/MimeDel 2.1.29 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 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" Archived-At: List-Archive: List-Post: SGkgRnJhbmssClRoYW5rIHlvdSBmb3IgdGhlIHYyLgpDb3VsZCB3ZSByZW1vdmUgYWxsIGFzc2Vy dHM/CkFzc2VydHMgY2FuIGNhdXNlIHRoZSBhcHBsaWNhdGlvbiB0byBjcmFzaCBhdCBydW50aW1l LgoKT24gU3VuLCBBcHIgMjcsIDIwMjUgYXQgNDo0OOKAr1BNIEZyYW5rIFBsb3dtYW4gPHBvc3RA ZnJhbmtwbG93bWFuLmNvbT4gd3JvdGU6Cgo+IEluIGQ1ZGJjYzAwZDg4OWZiMTc5NDhiMDI1YTQ2 OGIwMGRkYmVhOWUwNTgsIGl0IHdhcyBob3BlZCB0aGF0IGRldGVjdGlvbgo+IG9mIHN1YnBpY3R1 cmUgb3ZlcmxhcHMgY291bGQgYmUgcGVyZm9ybWVkIGF0IHRoZSB0aWxlIGxldmVsLCBzbyBhcyB0 bwo+IGF2b2lkIGludHJvZHVjaW5nIHBlci1DVFUgY2hlY2tzLiBVbmZvcnR1bmF0ZWx5IHNpbmNl IHRoYXQgcGF0Y2gsCj4gZnV6emluZyBoYXMgaW5kaWNhdGVkIHRoZXJlIGFyZSBzb21lIHN0cnVj dHVyZXMgaW52b2x2aW5nCj4gcHBzX3N1YnBpY19vbmVfb3JfbW9yZV90aWxlc19zbGljZSB3aGVy ZSB0aWxlLWxldmVsIGNoZWNraW5nIGlzIG5vdAo+IHN1ZmZpY2llbnQuICBQZXJmb3JtaW5nIHRo ZSBjaGVjayBhdCB0aGUgQ1RVIGxldmVsIHNob3VsZCAodG91Y2ggd29vZCkKPiBiZSB0aGUgYmUt YWxsIGFuZCBhbmQtYWxsIG9mIHRoaXMsIGFzIENUVXMgYXJlIHRoZSBsb3dlc3QgY29tbW9uCj4g ZGVub21pbmF0b3Igb2YgdGhlIHBpY3R1cmUgcGFydGl0aW9uaW5nLgo+Cj4gU2lnbmVkLW9mZi1i eTogRnJhbmsgUGxvd21hbiA8cG9zdEBmcmFua3Bsb3dtYW4uY29tPgo+IC0tLQo+IENoYW5nZXMg c2luY2UgdjE6Cj4gKiBNZXJnZSBwcHNfYWRkX2N0dXMgYW5kIHBwc19hZGRfY3R1c19jaGVjawo+ ICogQ2hhbmdlIGlmL2Vsc2UgZm9yIGVhcmx5LWV4aXQgd2hlcmUgcG9zc2libGUKPgo+IC0tLQo+ ICBsaWJhdmNvZGVjL3Z2Yy9wcy5jIHwgNzEgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCA0MCBk ZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z2Yy9wcy5jIGIvbGliYXZj b2RlYy92dmMvcHMuYwo+IGluZGV4IGU4YzMxMmQ4YWMuLmVkOTYyNjhiYWUgMTAwNjQ0Cj4gLS0t IGEvbGliYXZjb2RlYy92dmMvcHMuYwo+ICsrKyBiL2xpYmF2Y29kZWMvdnZjL3BzLmMKPiBAQCAt NDA4LDYgKzQwOCw4IEBAIHN0YXRpYyBpbnQgcHBzX2FkZF9jdHVzKFZWQ1BQUyAqcHBzLCBpbnQg Km9mZiwgY29uc3QKPiBpbnQgcngsIGNvbnN0IGludCByeSwKPiAgICAgIGludCBzdGFydCA9ICpv ZmY7Cj4gICAgICBmb3IgKGludCB5ID0gMDsgeSA8IGg7IHkrKykgewo+ICAgICAgICAgIGZvciAo aW50IHggPSAwOyB4IDwgdzsgeCsrKSB7Cj4gKyAgICAgICAgICAgIGlmICgqb2ZmID49IHBwcy0+ Y3RiX2NvdW50KQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7 Cj4gICAgICAgICAgICAgIHBwcy0+Y3RiX2FkZHJfaW5fc2xpY2VbKm9mZl0gPSBjdHVfcnMocngg KyB4LCByeSArIHksIHBwcyk7Cj4gICAgICAgICAgICAgICgqb2ZmKSsrOwo+ICAgICAgICAgIH0K PiBAQCAtNDIwLDkgKzQyMiwxMSBAQCBzdGF0aWMgdm9pZCBwcHNfc2luZ2xlX3NsaWNlX3BpY3R1 cmUoVlZDUFBTICpwcHMsIGludAo+ICpvZmYpCj4gICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNl WzBdID0gMDsKPiAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgcHBzLT5yLT5udW1fdGlsZV9yb3dz OyBqKyspIHsKPiAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBwcy0+ci0+bnVtX3RpbGVf Y29sdW1uczsgaSsrKSB7Cj4gLSAgICAgICAgICAgIHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbMF0g Kz0gcHBzX2FkZF9jdHVzKHBwcywgb2ZmLAo+ICsgICAgICAgICAgICBjb25zdCBpbnQgcmV0ID0g cHBzX2FkZF9jdHVzKHBwcywgb2ZmLAo+ICAgICAgICAgICAgICAgICAgcHBzLT5jb2xfYmRbaV0s IHBwcy0+cm93X2JkW2pdLAo+ICAgICAgICAgICAgICAgICAgcHBzLT5yLT5jb2xfd2lkdGhfdmFs W2ldLCBwcHMtPnItPnJvd19oZWlnaHRfdmFsW2pdKTsKPiArICAgICAgICAgICAgYXZfYXNzZXJ0 MihyZXQgPj0gMCk7Cj4gKyAgICAgICAgICAgIHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbMF0gKz0g cmV0Owo+ICAgICAgICAgIH0KPiAgICAgIH0KPiAgfQo+IEBAIC00NTEsNTAgKzQ1NSwzNiBAQCBz dGF0aWMgdm9pZCBzdWJwaWNfdGlsZXMoaW50ICp0aWxlX3gsIGludCAqdGlsZV95LAo+IGludCAq dGlsZV94X2VuZCwgaW50ICp0aWxlX3lfCj4gICAgICAgICAgKCp0aWxlX3lfZW5kKSsrOwo+ICB9 Cj4KPiAtc3RhdGljIGJvb2wgbWFya190aWxlX2FzX3VzZWQoYm9vbCAqdGlsZV9pbl9zdWJwaWMs IGNvbnN0IGludCB0eCwgY29uc3QKPiBpbnQgdHksIGNvbnN0IGludCB0aWxlX2NvbHVtbnMpCj4g LXsKPiAtICAgIGNvbnN0IHNpemVfdCB0aWxlX2lkeCA9IHR5ICogdGlsZV9jb2x1bW5zICsgdHg7 Cj4gLSAgICBpZiAodGlsZV9pbl9zdWJwaWNbdGlsZV9pZHhdKSB7Cj4gLSAgICAgICAgLyogdGhl IHRpbGUgaXMgY292ZXJlZCBieSBvdGhlciBzdWJwaWN0dXJlcyAqLwo+IC0gICAgICAgIHJldHVy biBmYWxzZTsKPiAtICAgIH0KPiAtICAgIHRpbGVfaW5fc3VicGljW3RpbGVfaWR4XSA9IHRydWU7 Cj4gLSAgICByZXR1cm4gdHJ1ZTsKPiAtfQo+IC0KPiAtc3RhdGljIGludCBwcHNfc3VicGljX2xl c3NfdGhhbl9vbmVfdGlsZV9zbGljZShWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTCj4gKnNwcywg Y29uc3QgaW50IGksIGNvbnN0IGludCB0eCwgY29uc3QgaW50IHR5LCBpbnQgKm9mZiwgYm9vbAo+ ICp0aWxlX2luX3N1YnBpYykKPiArc3RhdGljIGludCBwcHNfc3VicGljX2xlc3NfdGhhbl9vbmVf dGlsZV9zbGljZShWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTCj4gKnNwcywgY29uc3QgaW50IGks IGNvbnN0IGludCB0eCwgY29uc3QgaW50IHR5LCBpbnQgKm9mZikKPiAgewo+IC0gICAgY29uc3Qg aW50IHN1YnBpY19ib3R0b20gPSBzcHMtPnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0X3lbaV0g Kwo+IHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRfbWludXMxW2ldOwo+IC0gICAgY29uc3QgaW50 IHRpbGVfYm90dG9tID0gcHBzLT5yb3dfYmRbdHldICsgcHBzLT5yLT5yb3dfaGVpZ2h0X3ZhbFt0 eV0KPiAtIDE7Cj4gLSAgICBjb25zdCBib29sIGlzX2ZpbmFsX3N1YnBpY19pbl90aWxlID0gc3Vi cGljX2JvdHRvbSA9PSB0aWxlX2JvdHRvbTsKPiAtCj4gLSAgICBpZiAoaXNfZmluYWxfc3VicGlj X2luX3RpbGUgJiYgIW1hcmtfdGlsZV9hc191c2VkKHRpbGVfaW5fc3VicGljLCB0eCwKPiB0eSwg cHBzLT5yLT5udW1fdGlsZV9jb2x1bW5zKSkKPiAtICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZB TElEREFUQTsKPiAtCj4gLSAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldID0gcHBzX2FkZF9j dHVzKHBwcywgb2ZmLAo+ICsgICAgY29uc3QgaW50IHJldCA9IHBwc19hZGRfY3R1cyhwcHMsIG9m ZiwKPiAgICAgICAgICBzcHMtPnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0X3hbaV0sCj4gc3Bz LT5yLT5zcHNfc3VicGljX2N0dV90b3BfbGVmdF95W2ldLAo+ICAgICAgICAgIHNwcy0+ci0+c3Bz X3N1YnBpY193aWR0aF9taW51czFbaV0gKyAxLAo+IHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRf bWludXMxW2ldICsgMSk7Cj4gKyAgICBpZiAocmV0IDwgMCkKPiArICAgICAgICByZXR1cm4gcmV0 Owo+Cj4gKyAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldID0gcmV0Owo+ICAgICAgcmV0dXJu IDA7Cj4gIH0KPgo+ICBzdGF0aWMgaW50IHBwc19zdWJwaWNfb25lX29yX21vcmVfdGlsZXNfc2xp Y2UoVlZDUFBTICpwcHMsIGNvbnN0IGludAo+IHRpbGVfeCwgY29uc3QgaW50IHRpbGVfeSwgY29u c3QgaW50IHhfZW5kLCBjb25zdCBpbnQgeV9lbmQsCj4gLSAgICBjb25zdCBpbnQgaSwgaW50ICpv ZmYsIGJvb2wgKnRpbGVfaW5fc3VicGljKQo+ICsgICAgY29uc3QgaW50IGksIGludCAqb2ZmKQo+ ICB7Cj4gICAgICBmb3IgKGludCB0eSA9IHRpbGVfeTsgdHkgPCB5X2VuZDsgdHkrKykgewo+ICAg ICAgICAgIGZvciAoaW50IHR4ID0gdGlsZV94OyB0eCA8IHhfZW5kOyB0eCsrKSB7Cj4gLSAgICAg ICAgICAgIGlmICghbWFya190aWxlX2FzX3VzZWQodGlsZV9pbl9zdWJwaWMsIHR4LCB0eSwKPiBw cHMtPnItPm51bV90aWxlX2NvbHVtbnMpKQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJS T1JfSU5WQUxJRERBVEE7Cj4gLQo+IC0gICAgICAgICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNl W2ldICs9IHBwc19hZGRfY3R1cyhwcHMsIG9mZiwKPiArICAgICAgICAgICAgY29uc3QgaW50IHJl dCA9IHBwc19hZGRfY3R1cyhwcHMsIG9mZiwKPiAgICAgICAgICAgICAgICAgIHBwcy0+Y29sX2Jk W3R4XSwgcHBzLT5yb3dfYmRbdHldLAo+ICAgICAgICAgICAgICAgICAgcHBzLT5yLT5jb2xfd2lk dGhfdmFsW3R4XSwgcHBzLT5yLT5yb3dfaGVpZ2h0X3ZhbFt0eV0pOwo+ICsgICAgICAgICAgICBp ZiAocmV0IDwgMCkKPiArICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gKwo+ICsgICAgICAg ICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldICs9IHJldDsKPiAgICAgICAgICB9Cj4gICAg ICB9Cj4gICAgICByZXR1cm4gMDsKPiAgfQo+Cj4gLXN0YXRpYyBpbnQgcHBzX3N1YnBpY19zbGlj ZShWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTICpzcHMsIGNvbnN0IGludCBpLAo+IGludCAqb2Zm LCBib29sICp0aWxlX2luX3N1YnBpYykKPiArc3RhdGljIGludCBwcHNfc3VicGljX3NsaWNlKFZW Q1BQUyAqcHBzLCBjb25zdCBWVkNTUFMgKnNwcywgY29uc3QgaW50IGksCj4gaW50ICpvZmYpCj4g IHsKPiAgICAgIGludCB0eCwgdHksIHhfZW5kLCB5X2VuZDsKPgo+IEBAIC01MDMsOSArNDkzLDkg QEAgc3RhdGljIGludCBwcHNfc3VicGljX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMK PiAqc3BzLCBjb25zdCBpbnQgaSwgaW50ICpvZgo+Cj4gICAgICBzdWJwaWNfdGlsZXMoJnR4LCAm dHksICZ4X2VuZCwgJnlfZW5kLCBzcHMsIHBwcywgaSk7Cj4gICAgICBpZiAodHkgKyAxID09IHlf ZW5kICYmIHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRfbWludXMxW2ldICsgMSA8Cj4gcHBzLT5y LT5yb3dfaGVpZ2h0X3ZhbFt0eV0pCj4gLSAgICAgICAgcmV0dXJuIHBwc19zdWJwaWNfbGVzc190 aGFuX29uZV90aWxlX3NsaWNlKHBwcywgc3BzLCBpLCB0eCwgdHksCj4gb2ZmLCB0aWxlX2luX3N1 YnBpYyk7Cj4gKyAgICAgICAgcmV0dXJuIHBwc19zdWJwaWNfbGVzc190aGFuX29uZV90aWxlX3Ns aWNlKHBwcywgc3BzLCBpLCB0eCwgdHksCj4gb2ZmKTsKPiAgICAgIGVsc2UKPiAtICAgICAgICBy ZXR1cm4gcHBzX3N1YnBpY19vbmVfb3JfbW9yZV90aWxlc19zbGljZShwcHMsIHR4LCB0eSwgeF9l bmQsCj4geV9lbmQsIGksIG9mZiwgdGlsZV9pbl9zdWJwaWMpOwo+ICsgICAgICAgIHJldHVybiBw cHNfc3VicGljX29uZV9vcl9tb3JlX3RpbGVzX3NsaWNlKHBwcywgdHgsIHR5LCB4X2VuZCwKPiB5 X2VuZCwgaSwgb2ZmKTsKPiAgfQo+Cj4gIHN0YXRpYyBpbnQgcHBzX3NpbmdsZV9zbGljZV9wZXJf c3VicGljKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMgKnNwcywKPiBpbnQgKm9mZikKPiBAQCAt NTEzLDE4ICs1MDMsMTEgQEAgc3RhdGljIGludCBwcHNfc2luZ2xlX3NsaWNlX3Blcl9zdWJwaWMo VlZDUFBTICpwcHMsCj4gY29uc3QgVlZDU1BTICpzcHMsIGludCAqb2ZmKQo+ICAgICAgaWYgKCFz cHMtPnItPnNwc19zdWJwaWNfaW5mb19wcmVzZW50X2ZsYWcpIHsKPiAgICAgICAgICBwcHNfc2lu Z2xlX3NsaWNlX3BpY3R1cmUocHBzLCBvZmYpOwo+ICAgICAgfSBlbHNlIHsKPiAtICAgICAgICBi b29sIHRpbGVfaW5fc3VicGljW1ZWQ19NQVhfVElMRVNfUEVSX0FVXSA9IHswfTsKPiAgICAgICAg ICBmb3IgKGludCBpID0gMDsgaSA8IHBwcy0+ci0+cHBzX251bV9zbGljZXNfaW5fcGljX21pbnVz MSArIDE7Cj4gaSsrKSB7Cj4gLSAgICAgICAgICAgIGNvbnN0IGludCByZXQgPSBwcHNfc3VicGlj X3NsaWNlKHBwcywgc3BzLCBpLCBvZmYsCj4gdGlsZV9pbl9zdWJwaWMpOwo+ICsgICAgICAgICAg ICBjb25zdCBpbnQgcmV0ID0gcHBzX3N1YnBpY19zbGljZShwcHMsIHNwcywgaSwgb2ZmKTsKPiAg ICAgICAgICAgICAgaWYgKHJldCA8IDApCj4gICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ ICAgICAgICAgIH0KPiAtCj4gLSAgICAgICAgLy8gV2Ugb25seSB1c2UgdGlsZV9pbl9zdWJwaWMg dG8gY2hlY2sgdGhhdCB0aGUgc3VicGljdHVyZXMgZG9uJ3QKPiBvdmVybGFwCj4gLSAgICAgICAg Ly8gaGVyZTsgd2UgZG9uJ3QgdXNlIHRpbGVfaW5fc3VicGljIHRvIGNoZWNrIHRoYXQgdGhlCj4g c3VicGljdHVyZXMgY292ZXIKPiAtICAgICAgICAvLyBldmVyeSB0aWxlLiAgSXQgaXMgcG9zc2li bGUgdG8gYXZvaWQgZG9pbmcgdGhpcyB3b3JrIGhlcmUKPiBiZWNhdXNlIHRoZQo+IC0gICAgICAg IC8vIGNvdmVyaW5nIHByb3BlcnR5IG9mIHN1YnBpY3R1cmVzIGlzIGFscmVhZHkgZ3VhcmFudGVl ZCBieSB0aGUKPiBtZWNoYW5pc21zCj4gLSAgICAgICAgLy8gd2hpY2ggY2hlY2sgZXZlcnkgQ1RV IGJlbG9uZ3MgdG8gYSBzbGljZS4KPiAgICAgIH0KPiAgICAgIHJldHVybiAwOwo+ICB9Cj4gQEAg LTUzOCw5ICs1MjEsMTIgQEAgc3RhdGljIGludCBwcHNfb25lX3RpbGVfc2xpY2VzKFZWQ1BQUyAq cHBzLCBjb25zdCBpbnQKPiB0aWxlX2lkeCwgaW50IGksIGludCAqb2ZmKQo+ICAgICAgY3R1X3h5 KCZyeCwgJnJ5LCB0aWxlX3gsIHRpbGVfeSwgcHBzKTsKPiAgICAgIGN0dV95X2VuZCA9IHJ5ICsg ci0+cm93X2hlaWdodF92YWxbdGlsZV95XTsKPiAgICAgIHdoaWxlIChyeSA8IGN0dV95X2VuZCkg ewo+ICsgICAgICAgIGludCByZXQ7Cj4gICAgICAgICAgcHBzLT5zbGljZV9zdGFydF9vZmZzZXRb aV0gPSAqb2ZmOwo+IC0gICAgICAgIHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbaV0gPSBwcHNfYWRk X2N0dXMocHBzLCBvZmYsIHJ4LCByeSwKPiArICAgICAgICByZXQgPSBwcHNfYWRkX2N0dXMocHBz LCBvZmYsIHJ4LCByeSwKPiAgICAgICAgICAgICAgci0+Y29sX3dpZHRoX3ZhbFt0aWxlX3hdLCBy LT5zbGljZV9oZWlnaHRfaW5fY3R1c1tpXSk7Cj4gKyAgICAgICAgYXZfYXNzZXJ0MihyZXQgPj0g MCk7Cj4gKyAgICAgICAgcHBzLT5udW1fY3R1c19pbl9zbGljZVtpXSA9IHJldDsKPiAgICAgICAg ICByeSArPSByLT5zbGljZV9oZWlnaHRfaW5fY3R1c1tpKytdOwo+ICAgICAgfQo+ICAgICAgaS0t Owo+IEBAIC01NTcsMTMgKzU0MywxNiBAQCBzdGF0aWMgaW50IHBwc19tdWx0aV90aWxlc19zbGlj ZShWVkNQUFMgKnBwcywgY29uc3QKPiBpbnQgdGlsZV9pZHgsIGNvbnN0IGludCBpLCBpCj4gICAg ICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldID0gMDsKPiAgICAgIGZvciAoaW50IHR5ID0gdGls ZV95OyB0eSA8PSB0aWxlX3kgKwo+IHItPnBwc19zbGljZV9oZWlnaHRfaW5fdGlsZXNfbWludXMx W2ldOyB0eSsrKSB7Cj4gICAgICAgICAgZm9yIChpbnQgdHggPSB0aWxlX3g7IHR4IDw9IHRpbGVf eCArCj4gci0+cHBzX3NsaWNlX3dpZHRoX2luX3RpbGVzX21pbnVzMVtpXTsgdHgrKykgewo+ICsg ICAgICAgICAgICBpbnQgcmV0Owo+ICAgICAgICAgICAgICBjb25zdCBpbnQgaWR4ID0gdHkgKiBy LT5udW1fdGlsZV9jb2x1bW5zICsgdHg7Cj4gICAgICAgICAgICAgIGlmICh0aWxlX2luX3NsaWNl W2lkeF0pCj4gICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiAg ICAgICAgICAgICAgdGlsZV9pbl9zbGljZVtpZHhdID0gdHJ1ZTsKPiAgICAgICAgICAgICAgY3R1 X3h5KCZyeCwgJnJ5LCB0eCwgdHksIHBwcyk7Cj4gLSAgICAgICAgICAgIHBwcy0+bnVtX2N0dXNf aW5fc2xpY2VbaV0gKz0gcHBzX2FkZF9jdHVzKHBwcywgb2ZmLCByeCwgcnksCj4gKyAgICAgICAg ICAgIHJldCA9IHBwc19hZGRfY3R1cyhwcHMsIG9mZiwgcngsIHJ5LAo+ICAgICAgICAgICAgICAg ICAgci0+Y29sX3dpZHRoX3ZhbFt0eF0sIHItPnJvd19oZWlnaHRfdmFsW3R5XSk7Cj4gKyAgICAg ICAgICAgIGF2X2Fzc2VydDIocmV0ID49IDApOwo+ICsgICAgICAgICAgICBwcHMtPm51bV9jdHVz X2luX3NsaWNlW2ldICs9IHJldDsKPiAgICAgICAgICB9Cj4gICAgICB9Cj4KPiBAQCAtNjEwLDgg KzU5OSwxMCBAQCBzdGF0aWMgdm9pZCBwcHNfbm9fcmVjdF9zbGljZShWVkNQUFMqIHBwcykKPgo+ ICAgICAgZm9yIChpbnQgdGlsZV95ID0gMDsgdGlsZV95IDwgci0+bnVtX3RpbGVfcm93czsgdGls ZV95KyspIHsKPiAgICAgICAgICBmb3IgKGludCB0aWxlX3ggPSAwOyB0aWxlX3ggPCByLT5udW1f dGlsZV9jb2x1bW5zOyB0aWxlX3grKykgewo+ICsgICAgICAgICAgICBpbnQgcmV0Owo+ICAgICAg ICAgICAgICBjdHVfeHkoJnJ4LCAmcnksIHRpbGVfeCwgdGlsZV95LCBwcHMpOwo+IC0gICAgICAg ICAgICBwcHNfYWRkX2N0dXMocHBzLCAmb2ZmLCByeCwgcnksIHItPmNvbF93aWR0aF92YWxbdGls ZV94XSwKPiByLT5yb3dfaGVpZ2h0X3ZhbFt0aWxlX3ldKTsKPiArICAgICAgICAgICAgcmV0ID0g cHBzX2FkZF9jdHVzKHBwcywgJm9mZiwgcngsIHJ5LAo+IHItPmNvbF93aWR0aF92YWxbdGlsZV94 XSwgci0+cm93X2hlaWdodF92YWxbdGlsZV95XSk7Cj4gKyAgICAgICAgICAgIGF2X2Fzc2VydDIo cmV0ID49IDApOwo+ICAgICAgICAgIH0KPiAgICAgIH0KPiAgfQo+IC0tCj4gMi40Ny4wCj4KPgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2 ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxp bmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBz dWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==