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 A7E824A07E for ; Thu, 17 Jul 2025 10:10:32 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 03A0868ECE6; Thu, 17 Jul 2025 13:10:29 +0300 (EEST) Received: from mail-ua1-f46.google.com (mail-ua1-f46.google.com [209.85.222.46]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 3965F68E673 for ; Thu, 17 Jul 2025 13:10:22 +0300 (EEST) Received: by mail-ua1-f46.google.com with SMTP id a1e0cc1a2514c-87f36c458afso796689241.1 for ; Thu, 17 Jul 2025 03:10:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752747020; x=1753351820; 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=sbcSN8P1LlXiNlCzFWoewbIw8QZxvVfYb4f2z1so0QI=; b=SX4WxnIvzlK9nWJ+/Ds2LnOcwFRx9Whh6j9e7egRBAqTxtbkbtQy7KjV4ZsMJi7MnN Y5OX9zlSHMQc2CNHgX1+ow8ixEXjRTMhJZBj4c+RRzuKCOQNgjfbbxkCqGokZzqF3Rah R8W/V4Qy40J/HQTQzGlcry3TANXjaMHeCUfo1jJviOe92F6aKYBm7RVO2ZlHmLbf85jp U0LBnjhAa5nQXHVKKjy4grBgLhawwBUoi45cNbsphFuB2euCPYPnGpW4PgUt0gf6pG1C rhJs6X4xwM/4X2UxYFZRLfqFRS5GLEyjENqV6xtS78fPz2dk3AssultvY9G8G10OVT85 CHAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752747020; x=1753351820; 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=sbcSN8P1LlXiNlCzFWoewbIw8QZxvVfYb4f2z1so0QI=; b=d4gTwPp1jh37Cbl3yUtuW3p5iYUhkpm+9JqEQg0XQqkJ6dU4YzgTmYPLMfNVX+MZM/ +aJI3rp6VbYWFKCSbyjBc6axDzOyKmHguSAPvEV7x4iufR9sn2vexBy5r2NKQQIV67wJ 4N2VQy3tKehkRttvZCqXi6/TWdB9GJTol4N9TC+AKxeVVYaLZqtj/W6bpDGtHXYasJD4 tn6qX38ewJLca9r8NWDPQ9FGp2jLQcUlVOox1RnCMqLOHM9zzWCJrq2NBpLJkfpS8mCH qe5475q/pG4z2l/dzB6MoHhvOP7kNIE+DWdP3h29+vlnvl1HoSXgaAlGbVpO1tJ51CQo Z0jw== X-Gm-Message-State: AOJu0YyWIieP1Go9jesWUc23aUEP+kYiRiGum+PeWL4gGy9VNUT/oIib 0+4eSRZmLtGUE+AsidQFQcxtc0WXIaErQCq5vp/hsju3miHwlaYhmkf4dxPBm3vMWuuxmePYLpo oxjEAUdRbnfeAwnh7GckB1QWppLWgwRE= X-Gm-Gg: ASbGncux7d6P0ImymMW8JJ7qyA4beOmY6gObKhrWonFL8Ij8ET9zYk8Y1RLs19RWgl2 C5xHK2H3uGg8m04bUC70p4uDkL4Rt8QO7RKXx/efifCVnN42LlZRhYh5HpiqATZpA1+0VpQ2GeN B8ftFoY1sFgfegvsi0UaP9HZwdS+uil7GSqRJDbVY8Jrrp55duCtanCip1OOjyAl5OPj6P6f+KC 4e1IKh9Kw== X-Google-Smtp-Source: AGHT+IEILQJRtMFr9djAv5e5ltNRLX+OqrLu9E8PKPw8jrDQhxomBx5TAwV6Pi50JIb4yKgld/DUcav1jU6NjXHm7Yw= X-Received: by 2002:a05:6102:6ce:b0:4ec:c548:e57b with SMTP id ada2fe7eead31-4f94ae38688mr3253333137.0.1752747020341; Thu, 17 Jul 2025 03:10:20 -0700 (PDT) MIME-Version: 1.0 References: <20250715184905.25488-1-post@frankplowman.com> <20250715184905.25488-3-post@frankplowman.com> In-Reply-To: <20250715184905.25488-3-post@frankplowman.com> From: Nuo Mi Date: Thu, 17 Jul 2025 18:10:08 +0800 X-Gm-Features: Ac12FXzDFrohL0z0Vtv4OCrgDp-7VXAD26kKoAZm1P5ZBsRX26LMiuBPgoIjdiE Message-ID: To: Frank Plowman X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH v2 2/2] lavc/vvc: Add max parameter to kth_order_egk_decode 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: toqsxw@outlook.com, 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: SGkgRnJhbmssClRoYW5rIHlvdSBmb3IgdjIuCgpPbiBXZWQsIEp1bCAxNiwgMjAyNSBhdCAyOjUw 4oCvQU0gRnJhbmsgUGxvd21hbiA8cG9zdEBmcmFua3Bsb3dtYW4uY29tPiB3cm90ZToKCj4gUHJp b3IgdG8gdGhpcyBwYXRjaCwga3RoX29yZGVyX2Vna19kZWNvZGUgY291bGQgcmVhZCBhcmJpdHJh cmlseQo+IGxhcmdlIHZhbHVlcyB3aGljaCB0aGVuIG92ZXJmbG93ZWQgYW5kIGNhdXNlZCB2YXJp b3VzIGlzc3Vlcy4KPiBQYXRjaCBmaXhlcyB0aGlzIGJ5IG1ha2luZyBrdGhfb3JkZXJfZWdrX2Rl Y29kZSBmYWxsaWFibGUsCj4gcmVxdWlyaW5nIHRoZSBjYWxsZXIgdG8gc3BlY2lmeSBhbiB1cHBl ciBib3VuZCBhbmQgcmV0dXJuaW5nIGFuCj4gZXJyb3IgaWYgdGhlIHJlYWQgdmFsdWUgd291bGQg ZXhjZWVkIHRoYXQgYm91bmQuCj4KPiBUaGlzIHBhdGNoIHJlc29sdmVzIHRoZSBzYW1lIGlzc3Vl IGFzCj4gZWI1MjI1MWMwYWIwMjViNmI0MGIyODk5NGJjOWRjNjE2ODEzYjE5MCwgYnV0IEkgdGhp bmsgdGhpcyBpcyB0aGUgcHJvcGVyCj4gZml4IGFzIGl0IGFsc28gYWRkcmVzc2VzIGlzc3VlcyB3 aXRoIHN5bnRheCBlbGVtZW50cyBiZXNpZGVzCj4gZmZfdnZjX251bV9zaWduYWxsZWRfcGFsZXR0 ZV9lbnRyaWVzLgo+Cj4gUGF0Y2ggYWxzbyBpbmNsdWRlcyBhIG1pbm9yIGZpeCBpbiBobHNfcGFs ZXR0ZV9jb2RpbmcsIHdoZXJlIHRoZQo+IGVycm9yIGNvZGUgcmV0dXJuZWQgYnkgcGFsZXR0ZV9z dWJibG9ja19kYXRhIHdhcyBwcmV2aW91c2x5IHVuY2hlY2tlZC4KPgo+IFNpZ25lZC1vZmYtYnk6 IEZyYW5rIFBsb3dtYW4gPHBvc3RAZnJhbmtwbG93bWFuLmNvbT4KPiAtLS0KPiBDaGFuZ2VzIHNp bmNlIHYxOgo+ICogU3BsaXQgY2hhbmdlIHRvIGhsc19wYWxldHRlX2NvZGluZyB0byBpdHMgb3du IGNvbW1pdC4KPiAqIFJldHVybiB2YWx1ZXMgZnJvbSBzeW50YXggZnVuY3Rpb25zIGluIHJldHVy biB2YWwsIHJhdGhlciB0aGFuIGJ5Cj4gICBtb2RpZnlpbmcgcG9pbnRlciBwYXJhbWV0ZXIuCj4g LS0tCj4gIGxpYmF2Y29kZWMvdnZjL2NhYmFjLmMgfCAxOSArKysrKysrKysrKystLS0tLS0tCj4g IGxpYmF2Y29kZWMvdnZjL2NhYmFjLmggfCAgNiArKystLS0KPiAgbGliYXZjb2RlYy92dmMvY3R1 LmMgICB8IDMwICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ICAzIGZpbGVzIGNoYW5n ZWQsIDMzIGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMvdnZjL2NhYmFjLmMgYi9saWJhdmNvZGVjL3Z2Yy9jYWJhYy5jCj4gaW5kZXggNjg0 N2NlNTlhZi4uYzJkYmQ0NjcwOSAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL3Z2Yy9jYWJhYy5j Cj4gKysrIGIvbGliYXZjb2RlYy92dmMvY2FiYWMuYwo+IEBAIC05MjksNyArOTI5LDcgQEAgc3Rh dGljIGludCB0cnVuY2F0ZWRfYmluYXJ5X2RlY29kZShWVkNMb2NhbENvbnRleHQKPiAqbGMsIGNv bnN0IGludCBjX21heCkKPiAgfQo+Cj4gIC8vIDkuMy4zLjUgay10aCBvcmRlciBFeHAgLSBHb2xv bWIgYmluYXJpemF0aW9uIHByb2Nlc3MKPiAtc3RhdGljIGludCBrdGhfb3JkZXJfZWdrX2RlY29k ZShDQUJBQ0NvbnRleHQgKmMsIGludCBrKQo+ICtzdGF0aWMgaW50IGt0aF9vcmRlcl9lZ2tfZGVj b2RlKENBQkFDQ29udGV4dCAqYywgaW50IGssIGNvbnN0IGludCBtYXgpCj4gIHsKPiAgICAgIGlu dCBiaXQgICAgPSAxOwo+ICAgICAgaW50IHZhbHVlICA9IDA7Cj4gQEAgLTkzNyw2ICs5MzcsOCBA QCBzdGF0aWMgaW50IGt0aF9vcmRlcl9lZ2tfZGVjb2RlKENBQkFDQ29udGV4dCAqYywgaW50IGsp Cj4KPiAgICAgIHdoaWxlIChiaXQpIHsKPiAgICAgICAgICBiaXQgPSBnZXRfY2FiYWNfYnlwYXNz KGMpOwo+ICsgICAgICAgIGlmIChtYXggLSB2YWx1ZSA8IChiaXQgPDwgaykpCj4gKyAgICAgICAg ICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ICAgICAgICAgIHZhbHVlICs9IGJpdCA8 PCBrKys7Cj4gICAgICB9Cj4KPiBAQCAtOTQ2LDYgKzk0OCw5IEBAIHN0YXRpYyBpbnQga3RoX29y ZGVyX2Vna19kZWNvZGUoQ0FCQUNDb250ZXh0ICpjLCBpbnQgaykKPiAgICAgICAgICB2YWx1ZSAr PSBzeW1ib2w7Cj4gICAgICB9Cj4KPiArICAgIGlmICh2YWx1ZSA+IG1heCkKPiArICAgICAgICBy ZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiArCj4gICAgICByZXR1cm4gdmFsdWU7Cj4gIH0K Pgo+IEBAIC0xMzc3LDE0ICsxMzgyLDE0IEBAIGludCBmZl92dmNfaW50cmFfY2hyb21hX3ByZWRf bW9kZShWVkNMb2NhbENvbnRleHQKPiAqbGMpCj4gICAgICByZXR1cm4gKGdldF9jYWJhY19ieXBh c3MoJmxjLT5lcC0+Y2MpIDw8IDEpIHwKPiBnZXRfY2FiYWNfYnlwYXNzKCZsYy0+ZXAtPmNjKTsK PiAgfQo+Cj4gLWludCBmZl92dmNfcGFsZXR0ZV9wcmVkaWN0b3JfcnVuKFZWQ0xvY2FsQ29udGV4 dCAqbGMpCj4gK2ludCBmZl92dmNfcGFsZXR0ZV9wcmVkaWN0b3JfcnVuKFZWQ0xvY2FsQ29udGV4 dCAqbGMsIGNvbnN0IGludCBtYXgpCj4gIHsKPiAtICAgIHJldHVybiBrdGhfb3JkZXJfZWdrX2Rl Y29kZSgmbGMtPmVwLT5jYywgMCk7Cj4gKyAgICByZXR1cm4ga3RoX29yZGVyX2Vna19kZWNvZGUo JmxjLT5lcC0+Y2MsIDAsIG1heCk7Cj4gIH0KPgo+IC1pbnQgZmZfdnZjX251bV9zaWduYWxsZWRf cGFsZXR0ZV9lbnRyaWVzKFZWQ0xvY2FsQ29udGV4dCAqbGMpCj4gK2ludCBmZl92dmNfbnVtX3Np Z25hbGxlZF9wYWxldHRlX2VudHJpZXMoVlZDTG9jYWxDb250ZXh0ICpsYywgY29uc3QgaW50Cj4g bWF4KQo+ICB7Cj4gLSAgICByZXR1cm4ga3RoX29yZGVyX2Vna19kZWNvZGUoJmxjLT5lcC0+Y2Ms IDApOwo+ICsgICAgcmV0dXJuIGt0aF9vcmRlcl9lZ2tfZGVjb2RlKCZsYy0+ZXAtPmNjLCAwLCBt YXgpOwo+ICB9Cj4KPiAgaW50IGZmX3Z2Y19uZXdfcGFsZXR0ZV9lbnRyaWVzKFZWQ0xvY2FsQ29u dGV4dCAqbGMsIGNvbnN0IGludCBiaXRfZGVwdGgpCj4gQEAgLTE0MjQsOSArMTQyOSw5IEBAIGlu dCBmZl92dmNfcGFsZXR0ZV9pZHhfaWRjKFZWQ0xvY2FsQ29udGV4dCAqbGMsCj4gY29uc3QgaW50 IG1heF9wYWxldHRlX2luZGV4LCBjb24KPiAgICAgIHJldHVybiB0cnVuY2F0ZWRfYmluYXJ5X2Rl Y29kZShsYywgbWF4X3BhbGV0dGVfaW5kZXggLSBhZGp1c3QpOwo+ICB9Cj4KPiAtaW50IGZmX3Z2 Y19wYWxldHRlX2VzY2FwZV92YWwoVlZDTG9jYWxDb250ZXh0ICpsYykKPiAraW50IGZmX3Z2Y19w YWxldHRlX2VzY2FwZV92YWwoVlZDTG9jYWxDb250ZXh0ICpsYywgY29uc3QgaW50IG1heCkKPiAg ewo+IC0gICAgcmV0dXJuIGt0aF9vcmRlcl9lZ2tfZGVjb2RlKCZsYy0+ZXAtPmNjLCA1KTsKPiAr ICAgIHJldHVybiBrdGhfb3JkZXJfZWdrX2RlY29kZSgmbGMtPmVwLT5jYywgNSwgbWF4KTsKPiAg fQo+Cj4gIGludCBmZl92dmNfZ2VuZXJhbF9tZXJnZV9mbGFnKFZWQ0xvY2FsQ29udGV4dCAqbGMp Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnZjL2NhYmFjLmggYi9saWJhdmNvZGVjL3Z2Yy9j YWJhYy5oCj4gaW5kZXggOTcyODkwMzE3ZS4uNmEwZTcxM2QxOSAxMDA2NDQKPiAtLS0gYS9saWJh dmNvZGVjL3Z2Yy9jYWJhYy5oCj4gKysrIGIvbGliYXZjb2RlYy92dmMvY2FiYWMuaAo+IEBAIC04 MSwxNSArODEsMTUgQEAgaW50IGZmX3Z2Y19pbnRyYV9sdW1hX21wbV9yZW1haW5kZXIoVlZDTG9j YWxDb250ZXh0Cj4gKmxjKTsKPiAgaW50IGZmX3Z2Y19jY2xtX21vZGVfZmxhZyhWVkNMb2NhbENv bnRleHQgKmxjKTsKPiAgaW50IGZmX3Z2Y19jY2xtX21vZGVfaWR4KFZWQ0xvY2FsQ29udGV4dCAq bGMpOwo+ICBpbnQgZmZfdnZjX2ludHJhX2Nocm9tYV9wcmVkX21vZGUoVlZDTG9jYWxDb250ZXh0 ICpsYyk7Cj4gLWludCBmZl92dmNfcGFsZXR0ZV9wcmVkaWN0b3JfcnVuKFZWQ0xvY2FsQ29udGV4 dCAqbGMpOwo+IC1pbnQgZmZfdnZjX251bV9zaWduYWxsZWRfcGFsZXR0ZV9lbnRyaWVzKFZWQ0xv Y2FsQ29udGV4dCAqbGMpOwo+ICtpbnQgZmZfdnZjX3BhbGV0dGVfcHJlZGljdG9yX3J1bihWVkNM b2NhbENvbnRleHQgKmxjLCBjb25zdCBpbnQgbWF4KTsKPiAraW50IGZmX3Z2Y19udW1fc2lnbmFs bGVkX3BhbGV0dGVfZW50cmllcyhWVkNMb2NhbENvbnRleHQgKmxjLCBjb25zdCBpbnQKPiBtYXgp Owo+ICBpbnQgZmZfdnZjX25ld19wYWxldHRlX2VudHJpZXMoVlZDTG9jYWxDb250ZXh0ICpsYywg aW50IGJpdF9kcGV0aCk7Cj4gIGJvb2wgZmZfdnZjX3BhbGV0dGVfZXNjYXBlX3ZhbF9wcmVzZW50 X2ZsYWcoVlZDTG9jYWxDb250ZXh0ICpsYyk7Cj4gIGJvb2wgZmZfdnZjX3BhbGV0dGVfdHJhbnNw b3NlX2ZsYWcoVlZDTG9jYWxDb250ZXh0ICpsYyk7Cj4gIGJvb2wgZmZfdnZjX3J1bl9jb3B5X2Zs YWcoVlZDTG9jYWxDb250ZXh0ICpsYywgaW50IHByZXZfcnVuX3R5cGUsIGludAo+IHByZXZfcnVu X3Bvc2l0aW9uLCBpbnQgY3VyX3Bvcyk7Cj4gIGJvb2wgZmZfdnZjX2NvcHlfYWJvdmVfcGFsZXR0 ZV9pbmRpY2VzX2ZsYWcoVlZDTG9jYWxDb250ZXh0ICpsYyk7Cj4gIGludCBmZl92dmNfcGFsZXR0 ZV9pZHhfaWRjKFZWQ0xvY2FsQ29udGV4dCAqbGMsIGludCBtYXhfcGFsZXR0ZV9pbmRleCwKPiBi b29sIGFkanVzdCk7Cj4gLWludCBmZl92dmNfcGFsZXR0ZV9lc2NhcGVfdmFsKFZWQ0xvY2FsQ29u dGV4dCAqbGMpOwo+ICtpbnQgZmZfdnZjX3BhbGV0dGVfZXNjYXBlX3ZhbChWVkNMb2NhbENvbnRl eHQgKmxjLCBjb25zdCBpbnQgbWF4KTsKPgo+ICAvL2ludGVyCj4gIGludCBmZl92dmNfZ2VuZXJh bF9tZXJnZV9mbGFnKFZWQ0xvY2FsQ29udGV4dCAqbGMpOwo+IGRpZmYgLS1naXQgYS9saWJhdmNv ZGVjL3Z2Yy9jdHUuYyBiL2xpYmF2Y29kZWMvdnZjL2N0dS5jCj4gaW5kZXggMzVjMThlNzhmNi4u OWY4NzVkMGEyMCAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL3Z2Yy9jdHUuYwo+ICsrKyBiL2xp YmF2Y29kZWMvdnZjL2N0dS5jCj4gQEAgLTE4NTcsMTYgKzE4NTcsMTYgQEAgc3RhdGljIGludCBw YWxldHRlX3ByZWRpY3RlZChWVkNMb2NhbENvbnRleHQgKmxjLAo+IGNvbnN0IGJvb2wgbG9jYWxf ZHVhbF90cmVlLCBpbgo+ICAgICAgfQo+Cj4gICAgICBmb3IgKGludCBpID0gMDsgaSA8IHByZWRp Y3Rvcl9zaXplICYmIG5iX3ByZWRpY3RlZCA8IG1heF9lbnRyaWVzOwo+IGkrKykgewo+IC0gICAg ICAgIGNvbnN0IGludCBydW4gPSBmZl92dmNfcGFsZXR0ZV9wcmVkaWN0b3JfcnVuKGxjKTsKPiAr ICAgICAgICBjb25zdCBpbnQgcnVuID0gZmZfdnZjX3BhbGV0dGVfcHJlZGljdG9yX3J1bihsYywg cHJlZGljdG9yX3NpemUgLQo+IGkpOwo+ICsgICAgICAgIGlmIChydW4gPCAwKQo+ICsgICAgICAg ICAgICByZXR1cm4gcnVuOwo+ICsKPiAgICAgICAgICBpZiAocnVuID09IDEpCj4gICAgICAgICAg ICAgIGJyZWFrOwo+Cj4gICAgICAgICAgaWYgKHJ1biA+IDEpCj4gICAgICAgICAgICAgIGkgKz0g cnVuIC0gMTsKPgo+IC0gICAgICAgIGlmIChpID49IHByZWRpY3Rvcl9zaXplKQo+IC0gICAgICAg ICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiAtCj4gICAgICAgICAgcHJlZGljdG9y X3JldXNlZFtpXSA9IHRydWU7Cj4gICAgICAgICAgZm9yIChpbnQgYyA9IHN0YXJ0OyBjIDwgZW5k OyBjKyspCj4gICAgICAgICAgICAgIGN1LT5wbHRbY10uZW50cmllc1tuYl9wcmVkaWN0ZWRdID0g bGMtPmVwLT5wcFtjXS5lbnRyaWVzW2ldOwo+IEBAIC0xODg1LDEyICsxODg1LDE3IEBAIHN0YXRp YyBpbnQgcGFsZXR0ZV9zaWduYWxlZChWVkNMb2NhbENvbnRleHQgKmxjLAo+IGNvbnN0IGJvb2wg bG9jYWxfZHVhbF90cmVlLAo+ICAgICAgY29uc3QgVlZDU1BTICpzcHMgICAgICAgICA9IGxjLT5m Yy0+cHMuc3BzOwo+ICAgICAgQ29kaW5nVW5pdCAgKmN1ICAgICAgICAgICA9IGxjLT5jdTsKPiAg ICAgIGNvbnN0IGludCBuYl9wcmVkaWN0ZWQgICAgPSBjdS0+cGx0W3N0YXJ0XS5zaXplOwo+IC0g ICAgY29uc3QgaW50IG5iX3NpZ25hbGVkICAgICA9IG5iX3ByZWRpY3RlZCA8IG1heF9lbnRyaWVz ID8KPiBmZl92dmNfbnVtX3NpZ25hbGxlZF9wYWxldHRlX2VudHJpZXMobGMpIDogMDsKPiAtICAg IGNvbnN0IGludCBzaXplICAgICAgICAgICAgPSBuYl9wcmVkaWN0ZWQgKyBuYl9zaWduYWxlZDsK PiAgICAgIGNvbnN0IGJvb2wgZHVhbF90cmVlX2x1bWEgPSBsb2NhbF9kdWFsX3RyZWUgJiYgY3Ut PnRyZWVfdHlwZSA9PQo+IERVQUxfVFJFRV9MVU1BOwo+ICsgICAgaW50IG5iX3NpZ25hbGVkLCBz aXplOwo+Cj4gLSAgICBpZiAoc2l6ZSA+IG1heF9lbnRyaWVzIHx8IG5iX3NpZ25hbGVkIDwgMCkK PiAtICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiArICAgIGlmIChuYl9wcmVk aWN0ZWQgPCBtYXhfZW50cmllcykgewo+ICsgICAgICAgIG5iX3NpZ25hbGVkID0gZmZfdnZjX251 bV9zaWduYWxsZWRfcGFsZXR0ZV9lbnRyaWVzKGxjLAo+IG1heF9lbnRyaWVzIC0gbmJfcHJlZGlj dGVkKTsKPiArICAgICAgICBpZiAobmJfc2lnbmFsZWQgPCAwKQo+ICsgICAgICAgICAgICByZXR1 cm4gbmJfc2lnbmFsZWQ7Cj4gKyAgICB9IGVsc2UKPiArICAgICAgICBuYl9zaWduYWxlZCA9IDA7 Cj4gKwo+ICsgICAgc2l6ZSA9IG5iX3ByZWRpY3RlZCArIG5iX3NpZ25hbGVkOwoKTW9zdCBjaGFu Z2VzIGFyZSBub3QgbmVlZGVkLgpXZSBvbmx5IG5lZWQgIHRvIGNoYW5nZSBvbmUgbGluZToKY29u c3QgaW50IG5iX3NpZ25hbGVkICAgICA9IG5iX3ByZWRpY3RlZCA8IG1heF9lbnRyaWVzID8KZmZf dnZjX251bV9zaWduYWxsZWRfcGFsZXR0ZV9lbnRyaWVzKGxjLCBtYXhfZW50cmllcyAtIG5iX3By ZWRpY3RlZCkgOiAwOwoKPgo+ICAgICAgZm9yIChpbnQgYyA9IHN0YXJ0OyBjIDwgZW5kOyBjKysp IHsKPiAgICAgICAgICBQYWxldHRlICpwbHQgPSBjdS0+cGx0ICsgYzsKPiBAQCAtMjA1MiwxMCAr MjA1NywxMSBAQCBzdGF0aWMgaW50IHBhbGV0dGVfc3ViYmxvY2tfZGF0YShWVkNMb2NhbENvbnRl eHQKPiAqbGMsCj4gICAgICAgICAgICAgIGlmICghKHhjICYgaHMpICYmICEoeWMgJiB2cykpIHsK PiAgICAgICAgICAgICAgICAgIGNvbnN0IGludCB2ID0gUEFMRVRURV9JTkRFWCh4YywgeWMpOwo+ ICAgICAgICAgICAgICAgICAgaWYgKHYgPT0gZXNjKSB7Cj4gLSAgICAgICAgICAgICAgICAgICAg Y29uc3QgaW50IGNvZWZmID0gZmZfdnZjX3BhbGV0dGVfZXNjYXBlX3ZhbChsYyk7Cj4gLSAgICAg ICAgICAgICAgICAgICAgaWYgKGNvZWZmID49ICgxVSA8PCBzcHMtPmJpdF9kZXB0aCkpCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+IC0gICAg ICAgICAgICAgICAgICAgIGNvbnN0IGludCBwaXhlbCA9IGF2X2NsaXBfaW50cDIoUlNISUZUKGNv ZWZmICogc2NhbGUsCj4gNiksIHNwcy0+Yml0X2RlcHRoKTsKPiArICAgICAgICAgICAgICAgICAg ICBpbnQgcGl4ZWw7Cj4gKyAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IGNvZWZmID0gZmZf dnZjX3BhbGV0dGVfZXNjYXBlX3ZhbChsYywgKDEgPDwKPiBzcHMtPmJpdF9kZXB0aCkgLSAxKTsK PiArICAgICAgICAgICAgICAgICAgICBpZiAoY29lZmYgPCAwKQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gY29lZmY7Cj4gKyAgICAgICAgICAgICAgICAgICAgcGl4ZWwgPSBhdl9j bGlwX2ludHAyKFJTSElGVChjb2VmZiAqIHNjYWxlLCA2KSwKPiBzcHMtPmJpdF9kZXB0aCk7Cj4K V2Ugb25seSBuZWVkIHRvIGNoYW5nZSB0d28gbGluZXM6CmZmX3Z2Y19wYWxldHRlX2VzY2FwZV92 YWwobGMsICgxIDw8IHNwcy0+Yml0X2RlcHRoKSAtIDEpCmFuZCBjaGVjayBjb2VmZiA8IDAKCj4g ICAgICAgICAgICAgICAgICAgICAgUEFMRVRURV9TRVRfUElYRUwoeGMsIHljLCBwaXhlbCk7Cj4g ICAgICAgICAgICAgICAgICB9IGVsc2Ugewo+ICAgICAgICAgICAgICAgICAgICAgIFBBTEVUVEVf U0VUX1BJWEVMKHhjLCB5YywgcGx0LT5lbnRyaWVzW3ZdKTsKPiAtLQo+IDIuNDcuMAo+Cj4KX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVs IG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcv bWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5r IGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3Vi amVjdCAidW5zdWJzY3JpYmUiLgo=