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 B5EBE4D685 for ; Sun, 1 Jun 2025 16:22:16 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 33B8568D4B6; Sun, 1 Jun 2025 19:22:14 +0300 (EEST) Received: from mail-yb1-f173.google.com (mail-yb1-f173.google.com [209.85.219.173]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 91CE068D312 for ; Sun, 1 Jun 2025 19:22:12 +0300 (EEST) Received: by mail-yb1-f173.google.com with SMTP id 3f1490d57ef6-e812ed38d02so740885276.0 for ; Sun, 01 Jun 2025 09:22:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748794930; x=1749399730; darn=ffmpeg.org; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=UEb7O9vecikqAA61pjigH40/3yGJ5nXCqoTL7+jbEnw=; b=CkNea7z+aOXjc1LIRUPsL9WFYE/bzVbPouNCOzoRAgYfrC7hbuNIEnUjsVMIKsrlge cmrfCZ1DHI2BP/trRW60k4PvWsv3uiAi7XfOAf4Ttp1sCw9SG2PsBa3O9DILgqoxL9nw 2XhFqjVbUBhMrC27Cp60wcZKoTZyIcX7QkUIc1CstwErU15L5SgqVhSL+4R44WfcC8aH zlNKhAl/4L7kkff6lEJA2Tni+hLyuTBtyP4xY2Hhfqd3G/3ePGpLQymBKbD6U+vmwNWw Sm8xJPJPwXsvTo8C8RD8JAxQaI/FoMZNNq/R7DLMsa+K0meua29EgTC4qTrjVZoLAhnu ZQUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748794930; x=1749399730; h=content-transfer-encoding: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=UEb7O9vecikqAA61pjigH40/3yGJ5nXCqoTL7+jbEnw=; b=PaFd26Kksh/Z2z8cOt5LRgSYcyPe26MvqKaOHZG0h+Zn6E23ipPGARvvMIXq3TLpz7 Yi/AitgT8J5bQjwVBxzgMoOe4E0C1OfBv5jTg6rlDrNmBjuCNu3Qc93lOYdSus+wQrA1 IXJgKu8cjK0CMVRA4Mb5wYehgfiLg72nfs19XYmIHCkceAOYruhbTrIEqOI9XAwODVg0 9oebPw02om9NY7ASipiiKf3Z29yITBCBHjGt4APx1r7hGcYg79uKykwQtH49Mylrne+d ZDAZtkcJSfiN8UkDLsatOpFyWHjBcoaLV+pbxJjecl6GKza+OOi0lO6QnuT6pfjnQ3Y5 LbdQ== X-Gm-Message-State: AOJu0YxyJ6pA+mvMbNSWcro13Jv1Bw3TT3oFM6FXk6PeHbnxKzh28CJP 2ZWh3E/sNV4+vShafcL0ro+6GDhRV/zaGMGfXCrZq0Ih2fbK9NMLB0CVM8BRXspLk6oxVnxJ36l NjITuNw3ybLWhvwolAxpEWFhvRqs+dcBGG/2t X-Gm-Gg: ASbGncsNVMEK1mshxffdhffE+e3L2ONL4FZQcMQ7Cz74Jl3AymWhwToRuWatX/J0BqK 1cV6mvoeuzi56E9UTxATUVr1XaEKqcLUtxbD4xKZ+Cmy8ewMUrf20nZeULHqajLUgw0bH1Nvcjz va+4PnRp/4J/cErr1YTbBL28BcsxrHSdk3Bg== X-Google-Smtp-Source: AGHT+IH7Q46yxaJhZS25jzKQHWzpzq4CTL6zSNWvoAnZjZ83bDbYZfuT54dE+Mpa02yeVQ1Ko+ngNz+wbR1Cc9LcHvg= X-Received: by 2002:a05:690c:730a:b0:70e:128c:3005 with SMTP id 00721157ae682-71057ceefa7mr118462307b3.21.1748794930300; Sun, 01 Jun 2025 09:22:10 -0700 (PDT) MIME-Version: 1.0 References: <20250524181408.49384-1-romain.beauxis@gmail.com> <20250524181408.49384-5-romain.beauxis@gmail.com> In-Reply-To: From: Romain Beauxis Date: Sun, 1 Jun 2025 11:21:59 -0500 X-Gm-Features: AX0GCFvP4kb2i_mTcrtdHH8oVPKC0Hdd4iSSEmjzr9GE36RjDhvz3BWrUMDjo3Y Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH v8 4/5] ogg/vorbis: implement header packet skip in chained ogg bitstreams. 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: TGUgc2FtLiAzMSBtYWkgMjAyNSDDoCAxNTowOCwgQW5kcmVhcyBSaGVpbmhhcmR0CjxhbmRyZWFz LnJoZWluaGFyZHRAb3V0bG9vay5jb20+IGEgw6ljcml0IDoKPgo+IFJvbWFpbiBCZWF1eGlzOgo+ ID4gTGUgdmVuLiAzMCBtYWkgMjAyNSDDoCAxOTo0NCwgQW5kcmVhcyBSaGVpbmhhcmR0Cj4gPiA8 YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPiBhIMOpY3JpdCA6Cj4gPj4KPiA+PiBSb21h aW4gQmVhdXhpczoKPiA+Pj4gLS0tCj4gPj4+ICBsaWJhdmNvZGVjL3ZvcmJpc19wYXJzZXIuaCAg ICAgICAgICAgICAgICAgfCAxMSArKysrCj4gPj4+ICBsaWJhdmNvZGVjL3ZvcmJpc2RlYy5jICAg ICAgICAgICAgICAgICAgICAgfCA3NSArKysrKysrKysrKysrLS0tLS0tLS0tCj4gPj4+ICBsaWJh dmZvcm1hdC9vZ2dwYXJzZXZvcmJpcy5jICAgICAgICAgICAgICAgfCA2NyArKysrKysrKysrKysr KysrKystCj4gPj4+ICB0ZXN0cy9yZWYvZmF0ZS9vZ2ctdm9yYmlzLWNoYWluZWQtbWV0YS50eHQg fCAgMyAtCj4gPj4+ICB0ZXN0cy9yZWYvZmF0ZS90cmFjLTI3MzkudHh0ICAgICAgICAgICAgICAg fCAgNCArLQo+ID4+PiAgNSBmaWxlcyBjaGFuZ2VkLCAxMjEgaW5zZXJ0aW9ucygrKSwgMzkgZGVs ZXRpb25zKC0pCj4gPj4+Cj4gPj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3ZvcmJpc19wYXJz ZXIuaCBiL2xpYmF2Y29kZWMvdm9yYmlzX3BhcnNlci5oCj4gPj4+IGluZGV4IDc4OTkzMmFjNDku LmIxNzZmZTUzNmMgMTAwNjQ0Cj4gPj4+IC0tLSBhL2xpYmF2Y29kZWMvdm9yYmlzX3BhcnNlci5o Cj4gPj4+ICsrKyBiL2xpYmF2Y29kZWMvdm9yYmlzX3BhcnNlci5oCj4gPj4+IEBAIC0zMCw2ICsz MCwxNyBAQAo+ID4+Pgo+ID4+PiAgdHlwZWRlZiBzdHJ1Y3QgQVZWb3JiaXNQYXJzZUNvbnRleHQg QVZWb3JiaXNQYXJzZUNvbnRleHQ7Cj4gPj4+Cj4gPj4+ICsvKioKPiA+Pj4gKyAqIFVzZWQgYnkg dGhlIHZvcmJpcyBwYXJzZXIgdG8gcGFzcyBuZXcgY2hhaW5lZCBzdHJlYW0gaGVhZGVycwo+ID4+ PiArICogYXMgZXh0cmFkYXRhLgo+ID4+PiArICovCj4gPj4+ICt0eXBlZGVmIHN0cnVjdCB2b3Ji aXNfbmV3X2V4dHJhZGF0YSB7Cj4gPj4+ICsgICAgdWludDhfdCAqaGVhZGVyOwo+ID4+PiArICAg IHNpemVfdCAgIGhlYWRlcl9zaXplOwo+ID4+PiArICAgIHVpbnQ4X3QgKnNldHVwOwo+ID4+PiAr ICAgIHNpemVfdCAgIHNldHVwX3NpemU7Cj4gPj4+ICt9IHZvcmJpc19uZXdfZXh0cmFkYXRhOwo+ ID4+PiArCj4gPj4+ICAvKioKPiA+Pj4gICAqIEFsbG9jYXRlIGFuZCBpbml0aWFsaXplIHRoZSBW b3JiaXMgcGFyc2VyIHVzaW5nIGhlYWRlcnMgaW4gdGhlIGV4dHJhZGF0YS4KPiA+Pj4gICAqLwo+ ID4+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92b3JiaXNkZWMuYyBiL2xpYmF2Y29kZWMvdm9y YmlzZGVjLmMKPiA+Pj4gaW5kZXggYWRiZDcyNjE4My4uYTRiMTU5YmE5YiAxMDA2NDQKPiA+Pj4g LS0tIGEvbGliYXZjb2RlYy92b3JiaXNkZWMuYwo+ID4+PiArKysgYi9saWJhdmNvZGVjL3ZvcmJp c2RlYy5jCj4gPj4+IEBAIC00Myw2ICs0Myw3IEBACj4gPj4+ICAjaW5jbHVkZSAidm9yYmlzLmgi Cj4gPj4+ICAjaW5jbHVkZSAidm9yYmlzZHNwLmgiCj4gPj4+ICAjaW5jbHVkZSAidm9yYmlzX2Rh dGEuaCIKPiA+Pj4gKyNpbmNsdWRlICJ2b3JiaXNfcGFyc2VyLmgiCj4gPj4+ICAjaW5jbHVkZSAi eGlwaC5oIgo+ID4+Pgo+ID4+PiAgI2RlZmluZSBWX05CX0JJVFMgOAo+ID4+PiBAQCAtMTc3OCw0 NyArMTc3OSw1OSBAQCBzdGF0aWMgaW50IHZvcmJpc19kZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4LCBBVkZyYW1lICpmcmFtZSwKPiA+Pj4gICAgICBHZXRCaXRDb250ZXh0ICpnYiA9 ICZ2Yy0+Z2I7Cj4gPj4+ICAgICAgZmxvYXQgKmNoYW5uZWxfcHRyc1syNTVdOwo+ID4+PiAgICAg IGludCBpLCBsZW4sIHJldDsKPiA+Pj4gKyAgICBzaXplX3QgbmV3X2V4dHJhZGF0YV9zaXplOwo+ ID4+PiArICAgIHZvcmJpc19uZXdfZXh0cmFkYXRhICpuZXdfZXh0cmFkYXRhOwo+ID4+PiArICAg IGNvbnN0IHVpbnQ4X3QgKmhlYWRlcjsKPiA+Pj4gKyAgICBjb25zdCB1aW50OF90ICpzZXR1cDsK PiA+Pj4KPiA+Pj4gICAgICBmZl9kbG9nKE5VTEwsICJwYWNrZXQgbGVuZ3RoICVkIFxuIiwgYnVm X3NpemUpOwo+ID4+Pgo+ID4+PiAtICAgIGlmICgqYnVmID09IDEgJiYgYnVmX3NpemUgPiA3KSB7 Cj4gPj4+IC0gICAgICAgIGlmICgocmV0ID0gaW5pdF9nZXRfYml0czgoZ2IsIGJ1ZiArIDEsIGJ1 Zl9zaXplIC0gMSkpIDwgMCkKPiA+Pj4gLSAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPj4+ICsg ICAgbmV3X2V4dHJhZGF0YSA9ICh2b3JiaXNfbmV3X2V4dHJhZGF0YSAqKWF2X3BhY2tldF9nZXRf c2lkZV9kYXRhKAo+ID4+PiArICAgICAgICBhdnBrdCwgQVZfUEtUX0RBVEFfTkVXX0VYVFJBREFU QSwgJm5ld19leHRyYWRhdGFfc2l6ZSk7Cj4gPj4+Cj4gPj4+IC0gICAgICAgIHZvcmJpc19mcmVl KHZjKTsKPiA+Pj4gLSAgICAgICAgaWYgKChyZXQgPSB2b3JiaXNfcGFyc2VfaWRfaGRyKHZjKSkp IHsKPiA+Pj4gLSAgICAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiSWQgaGVh ZGVyIGNvcnJ1cHQuXG4iKTsKPiA+Pj4gLSAgICAgICAgICAgIHZvcmJpc19mcmVlKHZjKTsKPiA+ Pj4gLSAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPj4+IC0gICAgICAgIH0KPiA+Pj4gKyAgICBp ZiAobmV3X2V4dHJhZGF0YSkgewo+ID4+PiArICAgICAgICBoZWFkZXIgPSBuZXdfZXh0cmFkYXRh LT5oZWFkZXI7Cj4gPj4+ICsgICAgICAgIHNldHVwID0gbmV3X2V4dHJhZGF0YS0+c2V0dXA7Cj4g Pj4+Cj4gPj4+IC0gICAgICAgIGF2X2NoYW5uZWxfbGF5b3V0X3VuaW5pdCgmYXZjdHgtPmNoX2xh eW91dCk7Cj4gPj4+IC0gICAgICAgIGlmICh2Yy0+YXVkaW9fY2hhbm5lbHMgPiA4KSB7Cj4gPj4+ IC0gICAgICAgICAgICBhdmN0eC0+Y2hfbGF5b3V0Lm9yZGVyICAgICAgID0gQVZfQ0hBTk5FTF9P UkRFUl9VTlNQRUM7Cj4gPj4+IC0gICAgICAgICAgICBhdmN0eC0+Y2hfbGF5b3V0Lm5iX2NoYW5u ZWxzID0gdmMtPmF1ZGlvX2NoYW5uZWxzOwo+ID4+PiAtICAgICAgICB9IGVsc2Ugewo+ID4+PiAt ICAgICAgICAgICAgYXZfY2hhbm5lbF9sYXlvdXRfY29weSgmYXZjdHgtPmNoX2xheW91dCwgJmZm X3ZvcmJpc19jaF9sYXlvdXRzW3ZjLT5hdWRpb19jaGFubmVscyAtIDFdKTsKPiA+Pj4gLSAgICAg ICAgfQo+ID4+PiArICAgICAgICBpZiAobmV3X2V4dHJhZGF0YS0+aGVhZGVyX3NpemUgPiA3ICYm ICpoZWFkZXIgPT0gMSkgewo+ID4+PiArICAgICAgICAgICAgaWYgKChyZXQgPSBpbml0X2dldF9i aXRzOCgKPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYiwgaGVhZGVyICsgMSwK PiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfZXh0cmFkYXRhLT5oZWFkZXJf c2l6ZSAtIDEpKSA8IDApCj4gPj4+ICsgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+Pj4K PiA+Pj4gLSAgICAgICAgYXZjdHgtPnNhbXBsZV9yYXRlID0gdmMtPmF1ZGlvX3NhbXBsZXJhdGU7 Cj4gPj4+IC0gICAgICAgIHJldHVybiBidWZfc2l6ZTsKPiA+Pj4gLSAgICB9Cj4gPj4+ICsgICAg ICAgICAgICB2b3JiaXNfZnJlZSh2Yyk7Cj4gPj4+ICsgICAgICAgICAgICBpZiAoKHJldCA9IHZv cmJpc19wYXJzZV9pZF9oZHIodmMpKSkgewo+ID4+PiArICAgICAgICAgICAgICAgIGF2X2xvZyhh dmN0eCwgQVZfTE9HX0VSUk9SLCAiSWQgaGVhZGVyIGNvcnJ1cHQuXG4iKTsKPiA+Pj4gKyAgICAg ICAgICAgICAgICB2b3JiaXNfZnJlZSh2Yyk7Cj4gPj4+ICsgICAgICAgICAgICAgICAgcmV0dXJu IHJldDsKPiA+Pj4gKyAgICAgICAgICAgIH0KPiA+Pj4KPiA+Pj4gLSAgICBpZiAoKmJ1ZiA9PSAz ICYmIGJ1Zl9zaXplID4gNykgewo+ID4+PiAtICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19E RUJVRywgIklnbm9yaW5nIGNvbW1lbnQgaGVhZGVyXG4iKTsKPiA+Pj4gLSAgICAgICAgcmV0dXJu IGJ1Zl9zaXplOwo+ID4+PiAtICAgIH0KPiA+Pj4gKyAgICAgICAgICAgIGF2X2NoYW5uZWxfbGF5 b3V0X3VuaW5pdCgmYXZjdHgtPmNoX2xheW91dCk7Cj4gPj4+ICsgICAgICAgICAgICBpZiAodmMt PmF1ZGlvX2NoYW5uZWxzID4gOCkgewo+ID4+PiArICAgICAgICAgICAgICAgIGF2Y3R4LT5jaF9s YXlvdXQub3JkZXIgICAgICAgPSBBVl9DSEFOTkVMX09SREVSX1VOU1BFQzsKPiA+Pj4gKyAgICAg ICAgICAgICAgICBhdmN0eC0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzID0gdmMtPmF1ZGlvX2NoYW5u ZWxzOwo+ID4+PiArICAgICAgICAgICAgfSBlbHNlIHsKPiA+Pj4gKyAgICAgICAgICAgICAgICBh dl9jaGFubmVsX2xheW91dF9jb3B5KAo+ID4+PiArICAgICAgICAgICAgICAgICAgICAmYXZjdHgt PmNoX2xheW91dCwKPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgJmZmX3ZvcmJpc19jaF9sYXlv dXRzW3ZjLT5hdWRpb19jaGFubmVscyAtIDFdKTsKPiA+Pj4gKyAgICAgICAgICAgIH0KPiA+Pj4K PiA+Pj4gLSAgICBpZiAoKmJ1ZiA9PSA1ICYmIGJ1Zl9zaXplID4gNyAmJiB2Yy0+Y2hhbm5lbF9y ZXNpZHVlcyAmJiAhdmMtPm1vZGVzKSB7Cj4gPj4+IC0gICAgICAgIGlmICgocmV0ID0gaW5pdF9n ZXRfYml0czgoZ2IsIGJ1ZiArIDEsIGJ1Zl9zaXplIC0gMSkpIDwgMCkKPiA+Pj4gLSAgICAgICAg ICAgIHJldHVybiByZXQ7Cj4gPj4+ICsgICAgICAgICAgICBhdmN0eC0+c2FtcGxlX3JhdGUgPSB2 Yy0+YXVkaW9fc2FtcGxlcmF0ZTsKPiA+Pj4gKyAgICAgICAgfQo+ID4+Pgo+ID4+PiAtICAgICAg ICBpZiAoKHJldCA9IHZvcmJpc19wYXJzZV9zZXR1cF9oZHIodmMpKSkgewo+ID4+PiAtICAgICAg ICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJTZXR1cCBoZWFkZXIgY29ycnVwdC5c biIpOwo+ID4+PiAtICAgICAgICAgICAgdm9yYmlzX2ZyZWUodmMpOwo+ID4+PiAtICAgICAgICAg ICAgcmV0dXJuIHJldDsKPiA+Pj4gKyAgICAgICAgaWYgKG5ld19leHRyYWRhdGEtPnNldHVwX3Np emUgPiA3ICYmICpzZXR1cCA9PSA1ICYmCj4gPj4+ICsgICAgICAgICAgICB2Yy0+Y2hhbm5lbF9y ZXNpZHVlcyAmJiAhdmMtPm1vZGVzKSB7Cj4gPj4+ICsgICAgICAgICAgICBpZiAoKHJldCA9IGlu aXRfZ2V0X2JpdHM4KAo+ID4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2IsIHNldHVw ICsgMSwKPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19leHRyYWRhdGEtPnNl dHVwX3NpemUgLSAxKSkgPCAwKQo+ID4+PiArICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4g Pj4+ICsKPiA+Pj4gKyAgICAgICAgICAgIGlmICgocmV0ID0gdm9yYmlzX3BhcnNlX3NldHVwX2hk cih2YykpKSB7Cj4gPj4+ICsgICAgICAgICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJS T1IsICJTZXR1cCBoZWFkZXIgY29ycnVwdC5cbiIpOwo+ID4+PiArICAgICAgICAgICAgICAgIHZv cmJpc19mcmVlKHZjKTsKPiA+Pj4gKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4+PiAr ICAgICAgICAgICAgfQo+ID4+PiAgICAgICAgICB9Cj4gPj4+IC0gICAgICAgIHJldHVybiBidWZf c2l6ZTsKPiA+Pj4gICAgICB9Cj4gPj4+Cj4gPj4+ICAgICAgaWYgKCF2Yy0+Y2hhbm5lbF9yZXNp ZHVlcyB8fCAhdmMtPm1vZGVzKSB7Cj4gPj4+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9vZ2dw YXJzZXZvcmJpcy5jIGIvbGliYXZmb3JtYXQvb2dncGFyc2V2b3JiaXMuYwo+ID4+PiBpbmRleCA2 MmNjMmRhNmRlLi5mOGU2NmU4MTI3IDEwMDY0NAo+ID4+PiAtLS0gYS9saWJhdmZvcm1hdC9vZ2dw YXJzZXZvcmJpcy5jCj4gPj4+ICsrKyBiL2xpYmF2Zm9ybWF0L29nZ3BhcnNldm9yYmlzLmMKPiA+ Pj4gQEAgLTI1NSwxMiArMjU1LDE5IEBAIHN0YXRpYyB2b2lkIHZvcmJpc19jbGVhbnVwKEFWRm9y bWF0Q29udGV4dCAqcywgaW50IGlkeCkKPiA+Pj4gICAgICBzdHJ1Y3Qgb2dnICpvZ2cgPSBzLT5w cml2X2RhdGE7Cj4gPj4+ICAgICAgc3RydWN0IG9nZ19zdHJlYW0gKm9zID0gb2dnLT5zdHJlYW1z ICsgaWR4Owo+ID4+PiAgICAgIHN0cnVjdCBvZ2d2b3JiaXNfcHJpdmF0ZSAqcHJpdiA9IG9zLT5w cml2YXRlOwo+ID4+PiArICAgIHZvcmJpc19uZXdfZXh0cmFkYXRhICpuZXdfZXh0cmFkYXRhOwo+ ID4+PiAgICAgIGludCBpOwo+ID4+PiAgICAgIGlmIChvcy0+cHJpdmF0ZSkgewo+ID4+PiAgICAg ICAgICBhdl92b3JiaXNfcGFyc2VfZnJlZSgmcHJpdi0+dnApOwo+ID4+PiAgICAgICAgICBmb3Ig KGkgPSAwOyBpIDwgMzsgaSsrKQo+ID4+PiAgICAgICAgICAgICAgYXZfZnJlZXAoJnByaXYtPnBh Y2tldFtpXSk7Cj4gPj4+ICAgICAgfQo+ID4+PiArCj4gPj4+ICsgICAgaWYgKG9zLT5uZXdfZXh0 cmFkYXRhKSB7Cj4gPj4+ICsgICAgICAgIG5ld19leHRyYWRhdGEgPSAodm9yYmlzX25ld19leHRy YWRhdGEgKilvcy0+bmV3X2V4dHJhZGF0YTsKPiA+Pj4gKyAgICAgICAgYXZfZnJlZXAoJm5ld19l eHRyYWRhdGEtPmhlYWRlcik7Cj4gPj4+ICsgICAgICAgIGF2X2ZyZWVwKCZuZXdfZXh0cmFkYXRh LT5zZXR1cCk7Cj4gPj4+ICsgICAgfQo+ID4+PiAgfQo+ID4+Pgo+ID4+PiAgc3RhdGljIGludCB2 b3JiaXNfdXBkYXRlX21ldGFkYXRhKEFWRm9ybWF0Q29udGV4dCAqcywgaW50IGlkeCkKPiA+Pj4g QEAgLTQzMyw3ICs0NDAsMTAgQEAgc3RhdGljIGludCB2b3JiaXNfcGFja2V0KEFWRm9ybWF0Q29u dGV4dCAqcywgaW50IGlkeCkKPiA+Pj4gICAgICBzdHJ1Y3Qgb2dnICpvZ2cgPSBzLT5wcml2X2Rh dGE7Cj4gPj4+ICAgICAgc3RydWN0IG9nZ19zdHJlYW0gKm9zID0gb2dnLT5zdHJlYW1zICsgaWR4 Owo+ID4+PiAgICAgIHN0cnVjdCBvZ2d2b3JiaXNfcHJpdmF0ZSAqcHJpdiA9IG9zLT5wcml2YXRl Owo+ID4+PiArICAgIHZvcmJpc19uZXdfZXh0cmFkYXRhICpuZXdfZXh0cmFkYXRhOwo+ID4+PiAg ICAgIGludCBkdXJhdGlvbiwgZmxhZ3MgPSAwOwo+ID4+PiArICAgIGludCBza2lwX3BhY2tldCA9 IDA7Cj4gPj4+ICsgICAgaW50IHJldDsKPiA+Pj4KPiA+Pj4gICAgICBpZiAoIXByaXYtPnZwKQo+ ID4+PiAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiA+Pj4gQEAgLTQ5Niwx MCArNTA2LDYxIEBAIHN0YXRpYyBpbnQgdm9yYmlzX3BhY2tldChBVkZvcm1hdENvbnRleHQgKnMs IGludCBpZHgpCj4gPj4+ICAgICAgICAgIGlmIChkdXJhdGlvbiA8IDApIHsKPiA+Pj4gICAgICAg ICAgICAgIG9zLT5wZmxhZ3MgfD0gQVZfUEtUX0ZMQUdfQ09SUlVQVDsKPiA+Pj4gICAgICAgICAg ICAgIHJldHVybiAwOwo+ID4+PiAtICAgICAgICB9IGVsc2UgaWYgKGZsYWdzICYgVk9SQklTX0ZM QUdfQ09NTUVOVCkgewo+ID4+PiAtICAgICAgICAgICAgdm9yYmlzX3VwZGF0ZV9tZXRhZGF0YShz LCBpZHgpOwo+ID4+PiArICAgICAgICB9Cj4gPj4+ICsKPiA+Pj4gKyAgICAgICAgaWYgKGZsYWdz ICYgVk9SQklTX0ZMQUdfSEVBREVSKSB7Cj4gPj4+ICsgICAgICAgICAgICByZXQgPSB2b3JiaXNf cGFyc2VfaGVhZGVyKHMsIHMtPnN0cmVhbXNbaWR4XSwgb3MtPmJ1ZiArIG9zLT5wc3RhcnQsIG9z LT5wc2l6ZSk7Cj4gPj4+ICsgICAgICAgICAgICBpZiAocmV0IDwgMCkKPiA+Pj4gKyAgICAgICAg ICAgICAgICByZXR1cm4gcmV0Owo+ID4+PiArCj4gPj4+ICsgICAgICAgICAgICBpZiAoIW9zLT5u ZXdfZXh0cmFkYXRhKSB7Cj4gPj4+ICsgICAgICAgICAgICAgICAgb3MtPm5ld19leHRyYWRhdGEg PSBhdl9tYWxsb2N6KHNpemVvZih2b3JiaXNfbmV3X2V4dHJhZGF0YSkpOwo+ID4+PiArICAgICAg ICAgICAgICAgIGlmICghb3MtPm5ld19leHRyYWRhdGEpCj4gPj4+ICsgICAgICAgICAgICAgICAg ICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gPj4+ICsgICAgICAgICAgICB9Cj4gPj4+ICsK PiA+Pj4gKyAgICAgICAgICAgIG9zLT5uZXdfZXh0cmFkYXRhX3NpemUgPSBzaXplb2Yodm9yYmlz X25ld19leHRyYWRhdGEpOwo+ID4+PiArICAgICAgICAgICAgbmV3X2V4dHJhZGF0YSA9ICh2b3Ji aXNfbmV3X2V4dHJhZGF0YSAqKW9zLT5uZXdfZXh0cmFkYXRhOwo+ID4+PiArCj4gPj4+ICsgICAg ICAgICAgICByZXQgPSBhdl9yZWFsbG9jcCgmbmV3X2V4dHJhZGF0YS0+aGVhZGVyLCBvcy0+cHNp emUpOwo+ID4+PiArICAgICAgICAgICAgaWYgKHJldCA8IDApCj4gPj4+ICsgICAgICAgICAgICAg ICAgcmV0dXJuIHJldDsKPiA+Pj4gKwo+ID4+PiArICAgICAgICAgICAgbWVtY3B5KG5ld19leHRy YWRhdGEtPmhlYWRlciwgIG9zLT5idWYgKyBvcy0+cHN0YXJ0LCBvcy0+cHNpemUpOwo+ID4+PiAr ICAgICAgICAgICAgbmV3X2V4dHJhZGF0YS0+aGVhZGVyX3NpemUgPSBvcy0+cHNpemU7Cj4gPj4+ ICsKPiA+Pj4gKyAgICAgICAgICAgIHNraXBfcGFja2V0ID0gMTsKPiA+Pj4gKyAgICAgICAgfQo+ ID4+PiArCj4gPj4+ICsgICAgICAgIGlmIChmbGFncyAmIFZPUkJJU19GTEFHX0NPTU1FTlQpIHsK PiA+Pj4gKyAgICAgICAgICAgIHJldCA9IHZvcmJpc191cGRhdGVfbWV0YWRhdGEocywgaWR4KTsK PiA+Pj4gKyAgICAgICAgICAgIGlmIChyZXQgPCAwKQo+ID4+PiArICAgICAgICAgICAgICAgIHJl dHVybiByZXQ7Cj4gPj4+ICsKPiA+Pj4gICAgICAgICAgICAgIGZsYWdzID0gMDsKPiA+Pj4gKyAg ICAgICAgICAgIHNraXBfcGFja2V0ID0gMTsKPiA+Pj4gKyAgICAgICAgfQo+ID4+PiArCj4gPj4+ ICsgICAgICAgIGlmIChmbGFncyAmIFZPUkJJU19GTEFHX1NFVFVQKSB7Cj4gPj4+ICsgICAgICAg ICAgICBpZiAoIW9zLT5uZXdfZXh0cmFkYXRhKSB7Cj4gPj4+ICsgICAgICAgICAgICAgICAgb3Mt Pm5ld19leHRyYWRhdGEgPSBhdl9tYWxsb2N6KHNpemVvZih2b3JiaXNfbmV3X2V4dHJhZGF0YSkp Owo+ID4+PiArICAgICAgICAgICAgICAgIGlmICghb3MtPm5ld19leHRyYWRhdGEpCj4gPj4+ICsg ICAgICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gPj4+ICsgICAgICAg ICAgICB9Cj4gPj4+ICsKPiA+Pj4gKyAgICAgICAgICAgIG9zLT5uZXdfZXh0cmFkYXRhX3NpemUg PSBzaXplb2Yodm9yYmlzX25ld19leHRyYWRhdGEpOwo+ID4+PiArICAgICAgICAgICAgbmV3X2V4 dHJhZGF0YSA9ICh2b3JiaXNfbmV3X2V4dHJhZGF0YSAqKW9zLT5uZXdfZXh0cmFkYXRhOwo+ID4+ PiArCj4gPj4+ICsgICAgICAgICAgICByZXQgPSBhdl9yZWFsbG9jcCgmbmV3X2V4dHJhZGF0YS0+ c2V0dXAsIG9zLT5wc2l6ZSk7Cj4gPj4+ICsgICAgICAgICAgICBpZiAocmV0IDwgMCkKPiA+Pj4g KyAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4+PiArCj4gPj4+ICsgICAgICAgICAgICBt ZW1jcHkobmV3X2V4dHJhZGF0YS0+c2V0dXAsIG9zLT5idWYgKyBvcy0+cHN0YXJ0LCBvcy0+cHNp emUpOwo+ID4+PiArICAgICAgICAgICAgbmV3X2V4dHJhZGF0YS0+c2V0dXBfc2l6ZSA9IG9zLT5w c2l6ZTsKPiA+Pj4gKwo+ID4+PiArICAgICAgICAgICAgc2tpcF9wYWNrZXQgPSAxOwo+ID4+PiAg ICAgICAgICB9Cj4gPj4+ICsKPiA+Pj4gICAgICAgICAgb3MtPnBkdXJhdGlvbiA9IGR1cmF0aW9u Owo+ID4+PiAgICAgIH0KPiA+Pj4KPiA+Pj4gQEAgLTUyMSw3ICs1ODIsNyBAQCBzdGF0aWMgaW50 IHZvcmJpc19wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBpbnQgaWR4KQo+ID4+PiAgICAgICAg ICBwcml2LT5maW5hbF9kdXJhdGlvbiArPSBvcy0+cGR1cmF0aW9uOwo+ID4+PiAgICAgIH0KPiA+ Pj4KPiA+Pj4gLSAgICByZXR1cm4gMDsKPiA+Pj4gKyAgICByZXR1cm4gc2tpcF9wYWNrZXQ7Cj4g Pj4+ICB9Cj4gPj4+Cj4gPj4+ICBjb25zdCBzdHJ1Y3Qgb2dnX2NvZGVjIGZmX3ZvcmJpc19jb2Rl YyA9IHsKPiA+Pgo+ID4+IFRoZXJlIGFyZSBtdWx0aXBsZSBpc3N1ZXMgd2l0aCB0aGlzIHBhdGNo Ogo+ID4KPiA+IFRoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjay4KPiA+Cj4gPj4gMS4gVGhlIHNp ZGUgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBub3QgcGFkZGVkLCBsZWFkaW5nIHRvCj4gPj4gaGVhcC1i dWZmZXItb3ZlcmZsb3dzIGluIHRoZSBmYXRlLW9nZy12b3JiaXMtY2hhaW5lZC1tZXRhIHRlc3Qu Cj4gPgo+ID4gRG8geW91IGhhdmUgYSBwb2ludGVyIHRvIHRoaXMgaXNzdWU/IElzIHRoZXJlIGEg ZmFpbGluZyB0ZXN0IGhlcmU6Cj4gPiBodHRwczovL2ZhdGUuZmZtcGVnLm9yZy8gPwo+ID4KPgo+ IEkgbm90ZWQgaXQgd2hlbiBJIHJhbiBGQVRFIHdpdGggKENsYW5nLSlBU0FOIGxvY2FsbHkuIFNl ZW1zIGxpa2Ugbm9uZSBvZgo+IHRoZSBBU0FOL3ZhbGdyaW5kIGZhdGUgYm94ZXMgdGVzdGVkIHlv dXIgY29tbWl0Lgo+Cj4gPj4gMi4gVGhlIHNpZGUgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBub3QgZmxh dCBhbmQgdGhlcmVmb3JlIG5vdCBzdWl0YWJsZSBmb3IKPiA+PiB1c2UgYXMgQVZQYWNrZXRTaWRl RGF0YS4gKFRoZSBzZXR1cCBhbmQgaGVhZGVyIGFycmF5cyBhcmUgY3VycmVudGx5Cj4gPj4gb3du ZWQgYnkgdGhlIGRlbXV4ZXIsIHlldCBhbiBBVlBhY2tldCBpcyBzdXBwb3NlZCB0byBiZSB2YWxp ZCBvbiBpdHMKPiA+PiBvd24uIEJ1dCB0aGlzIHNpZGUgZGF0YSBiZWNvbWVzIGludmFsaWQgd2hl biB0aGUgZGVtdXhlciBlbmNvdW50ZXJzIGEKPiA+PiBuZXcgc2lkZSBkYXRhIChhbmQgcmVhbGxv Y2F0ZXMgaXRzIGludGVybmFsIGJ1ZmZlcnMpIG9yIHdoZW4gdGhlIGRlbXV4ZXIKPiA+PiBpcyBj bG9zZWQuKQo+ID4KPiA+IEkgY2FuIHdvcmsgb24gdGhhdC4KPgo+IEFjdHVhbGx5LCB0aGlua2lu ZyBhYm91dCB0aGlzIGEgYml0IG1vcmU6IE5ldyBleHRyYWRhdGEgdmlhIHNpZGUgZGF0YQo+IHNo b3VsZCB1c2UgdGhlIHNhbWUgZm9ybWF0IGFzIG9yZGluYXJ5IGV4dHJhZGF0YSwgc28gdGhlcmUg aXMgbm8gbmVlZCB0bwo+IGFkZCBhIG5ldyBzdHJ1Y3QgYW5kIEFQSWNoYW5nZXMgZm9yIHRoYXQu CgpKdXN0IHNlbnQgYW4gdXBkYXRlZCBwYXRjaCwgbGV0IG1lIGtub3cgd2hhdCB5b3UgdGhpbmsh CgpUaGFua3MsCi0tIFJvbWFpbgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcu b3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8g dW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1 ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==