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 32F9A4D0AA for ; Sun, 16 Feb 2025 15:19:49 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6869568B6F8; Sun, 16 Feb 2025 17:19:45 +0200 (EET) Received: from mail-vs1-f44.google.com (mail-vs1-f44.google.com [209.85.217.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D107268B6F8 for ; Sun, 16 Feb 2025 17:19:38 +0200 (EET) Received: by mail-vs1-f44.google.com with SMTP id ada2fe7eead31-4be5033a2cbso285177137.1 for ; Sun, 16 Feb 2025 07:19:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739719173; x=1740323973; darn=ffmpeg.org; h=cc:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=AbcPz89XqtzWely1ydYZh/5hGCS7IhW/fyVZou7pzs4=; b=TuEphgf/eXOOSEppSaAEbcgLTE7tPQq4GkCM1fZD44g4IbpujSk7zROFbTU3MIejg5 MIsg3wRRLmiOTY7T1hETeWAFtFGpIbLY6q7wNscEXxhMM9fBoKTMj81VlJ00iP71m3d+ 2FyWbPVemA8UteLVEOhVDhnUJRa+H3BKg5rfmYg4TQ0mC609TiHeozVanhGkgteo5ZxF Ed20sUBDsKWbo3BBsPWk0HjoRCjn/qy3xV2wLqnUobKRpD5ohI699JwbChKhDjyl+ehB ueADoUn3KWEYGSGU8/bBJXQiDn6rgZopzHuGHHSutNeua/d+qXXQP6h2s8wsvSDvrpmW pFWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739719173; x=1740323973; h=cc: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=AbcPz89XqtzWely1ydYZh/5hGCS7IhW/fyVZou7pzs4=; b=MXjoaqlYZV6UjZCWVRXC0urSKt4YQBDmDd+Q/HvqOjRC0187M1K92SEOQFVj3FczLn tTsxN70jvXHriIp9DI8xZ1XhWCauufYKk6XImiOMoWxuGB13RedODKfZXk5vRSAB56zA qcmqv/qYN4d26DtVQBSO/zUq01kyZnBoQdK+NDc+lL2InQ7CpEa8i+n56NRtZY1oZQhr wOddt87Jrpp6QJRGQjV45bBCRX4SAnaVzQWsvOn3xZVH4lM5OaPnQZ15FDOw+v4aA5of uQW/WIwr+RwxH4AArYUrD5ouGTGkiTbOKMnHFlQqVkZyCqe10O0JdhXThJW8Y6+PHL/x hdvA== X-Gm-Message-State: AOJu0YwdDcm2QBNxTXFP8Xit4BbBm8ZkzZeqkWdo9fSFm+Z3ucE9/iOl SMvilRgfQh67qJEtgPSZMNQN78PELJOLGiZMYw/dLzJcMdz4AdwaSnXatv2Lz+/GMX3d4gq+NGd 0M0ip1GqaYQoLClnZhQgjHj1hCs9Wk/3K X-Gm-Gg: ASbGncvafQraZbtPvUSWCxE056e/gwOfZkeLwKjEEFkI9714itkGLGMu3PrLTn071tz Ngwz5FazrUJ7HwcVlG4E7QTvzUMvn95Hfn861YNGrs6NhBn8uMsHRrc2yYIDE5ub5Kakc4qg= X-Received: by 2002:a05:6102:442b:b0:4bb:cf25:c5a7 with SMTP id ada2fe7eead31-4bd3fd4882amt2710353137.7.1739719172928; Sun, 16 Feb 2025 07:19:32 -0800 (PST) MIME-Version: 1.0 References: <20250209154505.69704-1-post@frankplowman.com> <20250209154505.69704-2-post@frankplowman.com> In-Reply-To: <20250209154505.69704-2-post@frankplowman.com> From: Nuo Mi Date: Sun, 16 Feb 2025 23:19:20 +0800 X-Gm-Features: AWEUYZmFsvfSgMGvzvBJTQm5e4UDIZVAMpP_84ADOZnVRC86ASxxxcx_3UDCcBg Message-ID: X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH 2/2] lavc/vvc: Ensure subpictures don't overlap 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: Frank Plowman , 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: SGkgRnJhbmssClRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoLgoKT24gU3VuLCBGZWIgOSwgMjAyNSBh dCAxMTo0NeKAr1BNIEZyYW5rIFBsb3dtYW4gPHBvc3RAZnJhbmtwbG93bWFuLmNvbT4gd3JvdGU6 Cgo+IFRoaXMgaXMgZXNzZW50aWFsbHkgYSByZS1pbXBsZW1lbnRhdGlvbiBvZgo+Cj4gaHR0cHM6 Ly9wYXRjaHdvcmsuZmZtcGVnLm9yZy9wcm9qZWN0L2ZmbXBlZy9wYXRjaC8yMDI0MTAwNTIyMzk1 NS41NDE1OC0xLXBvc3RAZnJhbmtwbG93bWFuLmNvbS8KPgo+IFRoYXQgcGF0Y2ggd2FzIG5vdCBh cHBsaWVkIGxhc3QgdGltZS4gIEluc3RlYWQgd2Ugb3B0ZWQgdG8gaWRlbnRpZnkKPiBpc3N1ZXMg d2hpY2ggY291bGQgYmUgY2F1c2VkIGJ5IGludmFsaWQgc3VicGljdHVyZSBsYXlvdXRzIGFuZCBy ZW1lZHkKPiB0aG9zZSBpc3N1ZXMgd2hlcmUgdGhleSBtYW5pZmVzdCwgZWl0aGVyIHRocm91Z2gg ZXJyb3IgZGV0ZWN0aW9uIG9yIGNvZGUKPiBoYXJkZW5pbmcuICBUaGlzIHdhcyBwcmltYXJpbHkg aW1wbGVtZW50ZWQgaW4gdGhlIHNldAo+IGh0dHBzOi8vcGF0Y2h3b3JrLmZmbXBlZy5vcmcvcHJv amVjdC9mZm1wZWcvbGlzdC8/c2VyaWVzPTEzMzgxLgo+Cj4gVGhpcyBoYXMgd29ya2VkIHRvIHNv bWUgZGVncmVlLCBob3dldmVyIGlzc3VlcyB3aXRoIHN1YnBpY3R1cmUgbGF5b3V0cwo+IGNvbnRp bnVlIHRvIGNyb3AgdXAgZnJvbSB0aGUgZnV6emVyIGFuZCBJJ3ZlIGZpeGVkIGEgbnVtYmVyIG9m IGJ1Z3MKPiByZWxhdGVkIHRvIHN1YnBpY3R1cmUgbGF5b3V0cyBzaW5jZSB0aGVuLiAgSSB0aGlu ayBpdCdzIGJlc3QgdG8gcmV0dXJuCj4gdG8gdGhlIGluaXRpYWwgcGxhbiBhbmQgc2ltcGx5IGNo ZWNrIGlmIHRoZSBzdWJwaWN0dXJlIGxheW91dCBpcyB2YWxpZAo+IGluaXRpYWxseS4KPgo+IFRo aXMgaW1wbGVtZW50YXRpb24gaXMgYWxzbyBsaWdodGVyIHRoYW4gdGhlIGZpcnN0IHRpbWUgLS0g YnkgZG9pbmcgYQo+IGJpdCBtb3JlIGxvZ2ljIGluIHBwc19zdWJwaWNfbGVzc190aGFuX29uZV90 aWxlX3NsaWNlLCB3ZSBhcmUgYWJsZSB0bwo+IHN0b3JlIGEgdGlsZV9pbl9zdWJwaWMgbWFwIHJh dGhlciB0aGFuIGEgY3R1X2luX3N1YnBpYyBtYXAuICBUaGlzCj4gcmVkdWNlcyB0aGUgc2l6ZSBv ZiB0aGUgbWFwIHRvIHRoZSBwb2ludCBpdCBiZWNvbWVzIHBvc3NpYmxlIHRvIGFsbG9jYXRlCj4g aXQgb24gdGhlIHN0YWNrLiAgU2ltaWxhciB0byA4YmQ2NmE4Yzk1ODdhZjYxYzdiNDY1NThiZTNj NGVlMzE3YzFhZjVhLAo+IHRoZSBsYXlvdXQgaXMgYWxzbyB2YWxpZGF0ZWQgaW4gdGhlIHNsaWNl IG1hcCBjb25zdHJ1Y3Rpb24gY29kZSwgcmF0aGVyCj4gdGhhbiBpbiB0aGUgQ0JTLCB3aGljaCBh dm9pZHMgZHVwbGljYXRpbmcgc29tZSBsb2dpYy4KPgo+IFNpZ25lZC1vZmYtYnk6IEZyYW5rIFBs b3dtYW4gPHBvc3RAZnJhbmtwbG93bWFuLmNvbT4KPiAtLS0KPiAgbGliYXZjb2RlYy92dmMvcHMu YyB8IDUyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ICAx IGZpbGUgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCj4KPiBkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy92dmMvcHMuYyBiL2xpYmF2Y29kZWMvdnZjL3BzLmMKPiBpbmRl eCA5NDgwNTQwZTAzLi45YWY1ZTEyNTBiIDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvdnZjL3Bz LmMKPiArKysgYi9saWJhdmNvZGVjL3Z2Yy9wcy5jCj4gQEAgLTQwMSwyNSArNDAxLDQ3IEBAIHN0 YXRpYyB2b2lkIHN1YnBpY190aWxlcyhpbnQgKnRpbGVfeCwgaW50ICp0aWxlX3ksCj4gaW50ICp0 aWxlX3hfZW5kLCBpbnQgKnRpbGVfeV8KPiAgICAgICAgICAoKnRpbGVfeV9lbmQpKys7Cj4gIH0K Pgo+IC1zdGF0aWMgdm9pZCBwcHNfc3VicGljX2xlc3NfdGhhbl9vbmVfdGlsZV9zbGljZShWVkNQ UFMgKnBwcywgY29uc3QgVlZDU1BTCj4gKnNwcywgY29uc3QgaW50IGksIGNvbnN0IGludCB0eCwg Y29uc3QgaW50IHR5LCBpbnQgKm9mZikKPiArc3RhdGljIGludCBwcHNfc3VicGljX2xlc3NfdGhh bl9vbmVfdGlsZV9zbGljZShWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTCj4gKnNwcywgY29uc3Qg aW50IGksIGNvbnN0IGludCB0eCwgY29uc3QgaW50IHR5LCBpbnQgKm9mZiwgYm9vbAo+ICp0aWxl X2luX3N1YnBpYykKPiAgewo+ICsgICAgY29uc3QgaW50IHN1YnBpY19yaWdodCA9IHNwcy0+ci0+ c3BzX3N1YnBpY19jdHVfdG9wX2xlZnRfeFtpXSArCj4gc3BzLT5yLT5zcHNfc3VicGljX3dpZHRo X21pbnVzMVtpXTsKPiArICAgIGNvbnN0IGludCBzdWJwaWNfYm90dG9tID0gc3BzLT5yLT5zcHNf c3VicGljX2N0dV90b3BfbGVmdF95W2ldICsKPiBzcHMtPnItPnNwc19zdWJwaWNfaGVpZ2h0X21p bnVzMVtpXTsKPiArICAgIGNvbnN0IGludCB0aWxlX3JpZ2h0ID0gcHBzLT5jb2xfYmRbdHhdICsg cHBzLT5yLT5jb2xfd2lkdGhfdmFsW3R4XSAtCj4gMTsKPiArICAgIGNvbnN0IGludCB0aWxlX2Jv dHRvbSA9IHBwcy0+cm93X2JkW3R5XSArIHBwcy0+ci0+cm93X2hlaWdodF92YWxbdHldCj4gLSAx Owo+ICsgICAgY29uc3QgYm9vbCBpc19maW5hbF9zdWJwaWNfaW5fdGlsZSA9IHN1YnBpY19yaWdo dCA9PSB0aWxlX3JpZ2h0ICYmCj4gc3VicGljX2JvdHRvbSA9PSB0aWxlX2JvdHRvbTsKPiArCj4g KyAgICBpZiAoaXNfZmluYWxfc3VicGljX2luX3RpbGUpIHsKPiArICAgICAgICBjb25zdCBzaXpl X3QgdGlsZV9pZHggPSB0eSAqIFZWQ19NQVhfVElMRV9DT0xVTU5TICsgdHg7CgpJZiB3ZSBoYXZl ICBWVkNfTUFYX1RJTEVTX1BFUl9BVSByb3dzLiB0aGlzIHdpbGwgb3ZlcndyaXRlLgpIb3cgYWJv dXQgdGlsZV9pZHggPSB0eSAqIHBwcy0+ci0+bnVtX3RpbGVfY29sdW1ucyArIHR4PwoKPgoKKyAg ICAgICAgaWYgKHRpbGVfaW5fc3VicGljW3RpbGVfaWR4XSkKPiArICAgICAgICAgICAgcmV0dXJu IEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gKyAgICAgICAgdGlsZV9pbl9zdWJwaWNbdGlsZV9pZHhd ID0gdHJ1ZTsKPiArICAgIH0KPiArCj4gICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldID0g cHBzX2FkZF9jdHVzKHBwcywgb2ZmLAo+ICAgICAgICAgIHNwcy0+ci0+c3BzX3N1YnBpY19jdHVf dG9wX2xlZnRfeFtpXSwKPiBzcHMtPnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0X3lbaV0sCj4g ICAgICAgICAgc3BzLT5yLT5zcHNfc3VicGljX3dpZHRoX21pbnVzMVtpXSArIDEsCj4gc3BzLT5y LT5zcHNfc3VicGljX2hlaWdodF9taW51czFbaV0gKyAxKTsKPiArCj4gKyAgICByZXR1cm4gMDsK PiAgfQo+Cj4gLXN0YXRpYyB2b2lkIHBwc19zdWJwaWNfb25lX29yX21vcmVfdGlsZXNfc2xpY2Uo VlZDUFBTICpwcHMsIGNvbnN0IGludAo+IHRpbGVfeCwgY29uc3QgaW50IHRpbGVfeSwgY29uc3Qg aW50IHhfZW5kLCBjb25zdCBpbnQgeV9lbmQsIGNvbnN0IGludCBpLAo+IGludCAqb2ZmKQo+ICtz dGF0aWMgaW50IHBwc19zdWJwaWNfb25lX29yX21vcmVfdGlsZXNfc2xpY2UoVlZDUFBTICpwcHMs IGNvbnN0IGludAo+IHRpbGVfeCwgY29uc3QgaW50IHRpbGVfeSwgY29uc3QgaW50IHhfZW5kLCBj b25zdCBpbnQgeV9lbmQsCj4gKyAgICBjb25zdCBpbnQgaSwgaW50ICpvZmYsIGJvb2wgKnRpbGVf aW5fc3VicGljKQo+ICB7Cj4gICAgICBmb3IgKGludCB0eSA9IHRpbGVfeTsgdHkgPCB5X2VuZDsg dHkrKykgewo+ICAgICAgICAgIGZvciAoaW50IHR4ID0gdGlsZV94OyB0eCA8IHhfZW5kOyB0eCsr KSB7Cj4gKyAgICAgICAgICAgIGNvbnN0IHNpemVfdCB0aWxlX2lkeCA9IHR5ICogVlZDX01BWF9U SUxFX0NPTFVNTlMgKyB0eDsKPiArICAgICAgICAgICAgaWYgKHRpbGVfaW5fc3VicGljW3RpbGVf aWR4XSkKPiArICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ICsg ICAgICAgICAgICB0aWxlX2luX3N1YnBpY1t0aWxlX2lkeF0gPSB0cnVlOwo+ICsKPiAgICAgICAg ICAgICAgcHBzLT5udW1fY3R1c19pbl9zbGljZVtpXSArPSBwcHNfYWRkX2N0dXMocHBzLCBvZmYs Cj4gICAgICAgICAgICAgICAgICBwcHMtPmNvbF9iZFt0eF0sIHBwcy0+cm93X2JkW3R5XSwKPiAg ICAgICAgICAgICAgICAgIHBwcy0+ci0+Y29sX3dpZHRoX3ZhbFt0eF0sIHBwcy0+ci0+cm93X2hl aWdodF92YWxbdHldKTsKPiAgICAgICAgICB9Cj4gICAgICB9Cj4gKyAgICByZXR1cm4gMDsKPiAg fQo+Cj4gLXN0YXRpYyB2b2lkIHBwc19zdWJwaWNfc2xpY2UoVlZDUFBTICpwcHMsIGNvbnN0IFZW Q1NQUyAqc3BzLCBjb25zdCBpbnQgaSwKPiBpbnQgKm9mZikKPiArc3RhdGljIGludCBwcHNfc3Vi cGljX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMgKnNwcywgY29uc3QgaW50IGksCj4g aW50ICpvZmYsIGJvb2wgKnRpbGVfaW5fc3VicGljKQo+ICB7Cj4gICAgICBpbnQgdHgsIHR5LCB4 X2VuZCwgeV9lbmQ7Cj4KPiBAQCAtNDI4LDE5ICs0NTAsMzAgQEAgc3RhdGljIHZvaWQgcHBzX3N1 YnBpY19zbGljZShWVkNQUFMgKnBwcywgY29uc3QKPiBWVkNTUFMgKnNwcywgY29uc3QgaW50IGks IGludCAqbwo+Cj4gICAgICBzdWJwaWNfdGlsZXMoJnR4LCAmdHksICZ4X2VuZCwgJnlfZW5kLCBz cHMsIHBwcywgaSk7Cj4KQ2FsY3VsYXRpbmcgdGlsZXMgZm9yIGVhY2ggc2xpY2Ugc21hbGxlciB0 aGFuIG9uZSB0aWxlIGlzIGluZWZmaWNpZW50LgpNYXliZSB3ZSBjYW4gbW92ZSBzdWJwaWNfdGls ZXMoKSB0byBwcHNfc2luZ2xlX3NsaWNlX3Blcl9zdWJwaWMoKTsgdGhpcwptaWdodCBzaW1wbGlm eSB0aGUgcGF0Y2guCgogICAgIGlmICh0eSArIDEgPT0geV9lbmQgJiYgc3BzLT5yLT5zcHNfc3Vi cGljX2hlaWdodF9taW51czFbaV0gKyAxIDwKPiBwcHMtPnItPnJvd19oZWlnaHRfdmFsW3R5XSkK PiAtICAgICAgICBwcHNfc3VicGljX2xlc3NfdGhhbl9vbmVfdGlsZV9zbGljZShwcHMsIHNwcywg aSwgdHgsIHR5LCBvZmYpOwo+ICsgICAgICAgIHJldHVybiBwcHNfc3VicGljX2xlc3NfdGhhbl9v bmVfdGlsZV9zbGljZShwcHMsIHNwcywgaSwgdHgsIHR5LAo+IG9mZiwgdGlsZV9pbl9zdWJwaWMp Owo+ICAgICAgZWxzZQo+IC0gICAgICAgIHBwc19zdWJwaWNfb25lX29yX21vcmVfdGlsZXNfc2xp Y2UocHBzLCB0eCwgdHksIHhfZW5kLCB5X2VuZCwgaSwKPiBvZmYpOwo+ICsgICAgICAgIHJldHVy biBwcHNfc3VicGljX29uZV9vcl9tb3JlX3RpbGVzX3NsaWNlKHBwcywgdHgsIHR5LCB4X2VuZCwK PiB5X2VuZCwgaSwgb2ZmLCB0aWxlX2luX3N1YnBpYyk7Cj4gIH0KPgo+IC1zdGF0aWMgdm9pZCBw cHNfc2luZ2xlX3NsaWNlX3Blcl9zdWJwaWMoVlZDUFBTICpwcHMsIGNvbnN0IFZWQ1NQUyAqc3Bz LAo+IGludCAqb2ZmKQo+ICtzdGF0aWMgaW50IHBwc19zaW5nbGVfc2xpY2VfcGVyX3N1YnBpYyhW VkNQUFMgKnBwcywgY29uc3QgVlZDU1BTICpzcHMsCj4gaW50ICpvZmYpCj4gIHsKPiAgICAgIGlm ICghc3BzLT5yLT5zcHNfc3VicGljX2luZm9fcHJlc2VudF9mbGFnKSB7Cj4gICAgICAgICAgcHBz X3NpbmdsZV9zbGljZV9waWN0dXJlKHBwcywgb2ZmKTsKPiAgICAgIH0gZWxzZSB7Cj4gLSAgICAg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwcHMtPnItPnBwc19udW1fc2xpY2VzX2luX3BpY19taW51 czEgKyAxOyBpKyspCj4gLSAgICAgICAgICAgIHBwc19zdWJwaWNfc2xpY2UocHBzLCBzcHMsIGks IG9mZik7Cj4gKyAgICAgICAgYm9vbCB0aWxlX2luX3N1YnBpY1tWVkNfTUFYX1RJTEVTX1BFUl9B VV0gPSB7MH07Cj4gKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwcHMtPnItPnBwc19udW1f c2xpY2VzX2luX3BpY19taW51czEgKyAxOwo+IGkrKykgewo+ICsgICAgICAgICAgICBjb25zdCBp bnQgcmV0ID0gcHBzX3N1YnBpY19zbGljZShwcHMsIHNwcywgaSwgb2ZmLAo+IHRpbGVfaW5fc3Vi cGljKTsKPiArICAgICAgICAgICAgaWYgKHJldCA8IDApCj4gKyAgICAgICAgICAgICAgICByZXR1 cm4gcmV0Owo+ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAgLy8gV2Ugb25seSB1c2UgdGlsZV9p bl9zdWJwaWMgdG8gY2hlY2sgdGhhdCB0aGUgc3VicGljdHVyZXMgZG9uJ3QKPiBvdmVybGFwCj4g KyAgICAgICAgLy8gaGVyZTsgd2UgZG9uJ3QgdXNlIHRpbGVfaW5fc3VicGljIHRvIGNoZWNrIHRo YXQgdGhlCj4gc3VicGljdHVyZXMgY292ZXIKPiArICAgICAgICAvLyBldmVyeSB0aWxlLiAgSXQg aXMgcG9zc2libGUgdG8gYXZvaWQgZG9pbmcgdGhpcyB3b3JrIGhlcmUKPiBiZWNhdXNlIHRoZQo+ ICsgICAgICAgIC8vIGNvdmVyaW5nIHByb3BlcnR5IG9mIHN1YnBpY3R1cmVzIGlzIGFscmVhZHkg Z3VhcmFudGVlZCBieSB0aGUKPiBtZWNoYW5pc21zCj4gKyAgICAgICAgLy8gd2hpY2ggY2hlY2sg ZXZlcnkgQ1RVIGJlbG9uZ3MgdG8gYSBzbGljZS4KPiAgICAgIH0KPiArICAgIHJldHVybiAwOwo+ ICB9Cj4KPiAgc3RhdGljIGludCBwcHNfb25lX3RpbGVfc2xpY2VzKFZWQ1BQUyAqcHBzLCBjb25z dCBpbnQgdGlsZV9pZHgsIGludCBpLAo+IGludCAqb2ZmKQo+IEBAIC00OTEsOCArNTI0LDcgQEAg c3RhdGljIGludCBwcHNfcmVjdF9zbGljZShWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTCj4gKnNw cykKPiAgICAgIGludCB0aWxlX2lkeCA9IDAsIG9mZiA9IDA7Cj4KPiAgICAgIGlmIChyLT5wcHNf c2luZ2xlX3NsaWNlX3Blcl9zdWJwaWNfZmxhZykgewo+IC0gICAgICAgIHBwc19zaW5nbGVfc2xp Y2VfcGVyX3N1YnBpYyhwcHMsIHNwcywgJm9mZik7Cj4gLSAgICAgICAgcmV0dXJuIDA7Cj4gKyAg ICAgICAgcmV0dXJuIHBwc19zaW5nbGVfc2xpY2VfcGVyX3N1YnBpYyhwcHMsIHNwcywgJm9mZik7 Cj4gICAgICB9Cj4KPiAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgci0+cHBzX251bV9zbGljZXNf aW5fcGljX21pbnVzMSArIDE7IGkrKykgewo+IC0tCj4gMi40Ny4wCj4KPgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBs aXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9y IGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1 YnNjcmliZSIuCg==