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 ESMTP id E621F4A4B0 for ; Thu, 28 Mar 2024 16:40:24 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 983A568D60C; Thu, 28 Mar 2024 18:40:21 +0200 (EET) Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 76F9A68D293 for ; Thu, 28 Mar 2024 18:40:15 +0200 (EET) Received: by mail-qt1-f170.google.com with SMTP id d75a77b69052e-431347c6c99so5571cf.0 for ; Thu, 28 Mar 2024 09:40:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711644014; x=1712248814; 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=NNMJOJfHV6vcaxowoP5WVTnilERjqaj3Bh1GkwG+O2g=; b=JbnOV0veO0KEK+NUchXuE9v90degICiJi3VodtXNKL39MNGv5VhkYUYSqoVETpD9cA qDt8uADinqoUgtz1PVxAE/CWxdxafAsZFOuPu3jhu4s+nhI/fegMmYSlSyhLQxcWvy1g zeawxHucn/RFRQoHEPU+skGKGgsW1tBdcCYg04p51OoyWIf+YJCORd3VYeMQdXtJjDIo Q5VlcmUlfRnJHSAnyU3NEQ9u23qUyGspbepXad8dUXEIAZeuvNCpGf+yrhKh4hBiiANC 3NUcC9tiwRepqGgi/Q35bxLO1CbOsLUVthMjul6MdRXBXm6aAF0ydOS/pMX9hY1+FG2+ JHPw== X-Gm-Message-State: AOJu0Yy0Pr/PKy/+ZPtYoVEoMVlq8nWSUfHqgRD1H2Xv+JpzqjtbfRye 1P3ZacwsfL/7YOqRR1vx790gF13mkv1wccSYVzLFgv6FDPRm0p2OA+XjsnxxhW+BaVHLp573sK2 93pz8dpd6ERC4uDHH72jJxpHLTe07bmK7w9Yz X-Google-Smtp-Source: AGHT+IHUfGpGpjFeVknrUvm6sN6v+FEc9jyuSCWqXOefHqdMROYRcJIMJalWfVko089SgoNdylF6BuqlWfZSTuWjt/8= X-Received: by 2002:a05:622a:4809:b0:42f:3b05:dc8f with SMTP id fb9-20020a05622a480900b0042f3b05dc8fmr351339qtb.8.1711644013886; Thu, 28 Mar 2024 09:40:13 -0700 (PDT) MIME-Version: 1.0 References: <20240327222145.601148-1-asoulier@google.com> <20240327222145.601148-3-asoulier@google.com> In-Reply-To: Date: Thu, 28 Mar 2024 09:40:02 -0700 Message-ID: To: Paul B Mahol X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH 3/4] avformat/lc3: Add file format for LC3/LC3plus transport 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: , From: Antoine Soulier via ffmpeg-devel Reply-To: FFmpeg development discussions and patches Cc: Antoine Soulier , 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: SSBkb24ndCB0aGluayBpdCdzICJlYXN5IiBzZWVrYWJsZS4KV2UgY2Fubm90IG1vdmUgdG8gYW4g YXJiaXRyYXJ5IHBvc2l0aW9uOgotIFRoZXJlIGlzIG5vIHN0YXJ0LWNvZGUKLSBUaGUgZnJhbWUg c2l6ZSBjYW4gYmUgdmFyaWFibGUgKG5vdCBnZW5lcmF0ZWQgYnkgdGhlIHByb3Bvc2VkIGVuY29k ZXIKaW1wbGVtZW50YXRpb24sIGJ1dCBhbGxvd2VkKS4KClRoZSBvbmx5IHBvc3NpYmlsaXR5IEkg c2VlIGlzIGNoZWNraW5nIHRoYXQgdGhlIGZyYW1lIHNpemUgbG9va3MgdmFsaWQgZm9yCm11bHRp cGxlIGZyYW1lcy4KVGhlIHJhbmdlIG9mIHZhbGlkIGZyYW1lIHNpemVzIGlzIGxhcmdlICgyMCB0 byA2MjUgQnl0ZXMpLCBzbyBJIGNhbiBvbmx5CnZhbGlkYXRlIDYgYml0cyBmb3IgZWFjaCAxNiBi aXRzIHBhY2tldCBzaXplIHJlYWQuCgpUaGlzIGZvcm1hdCBpcyBub3QgcmVhbGx5IGRlc2lnbmVk IHRvIGJlIHNlZWthYmxlLgpEbyB5b3UgdGhpbmsgd2Ugd2lsbCBuZWVkIGl0PwoKCk9uIFRodSwg TWFyIDI4LCAyMDI0IGF0IDI6MzPigK9BTSBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+ IHdyb3RlOgoKPiBUaGlzIGZvcm1hdCBhY3R1YWxseSBzdXBwb3J0cyBzZWVraW5nLgo+Cj4gVGhl IHByb3Bvc2VkIHNvbHV0aW9uIGhlcmUgaXMgc3ViLW9wdGltYWwuCj4KPiBPbiBXZWQsIE1hciAy NywgMjAyNCBhdCAxMToyMuKAr1BNIEFudG9pbmUgU291bGllciB2aWEgZmZtcGVnLWRldmVsIDwK PiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZz4gd3JvdGU6Cj4KPj4gQSBmaWxlIGZvcm1hdCBpcyBk ZXNjcmliZWQgaW4gQmx1ZXRvb3RoIFNJRyBMQzMgYW5kIEVUU0kgVFMgMTAzIDYzNCwgZm9yCj4+ IHRlc3QgcHVycG9zZS4gVGhpcyBpcyB0aGUgZm9ybWF0IGltcGxlbWVudGVkIGhlcmUuCj4+Cj4+ IFNpZ25lZC1vZmYtYnk6IEFudG9pbmUgU291bGllciA8YXNvdWxpZXJAZ29vZ2xlLmNvbT4KPj4g LS0tCj4+ICBkb2MvbXV4ZXJzLnRleGkgICAgICAgICAgfCAgIDYgKysKPj4gIGxpYmF2Zm9ybWF0 L01ha2VmaWxlICAgICB8ICAgMiArCj4+ICBsaWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMgfCAgIDIg Kwo+PiAgbGliYXZmb3JtYXQvbGMzZGVjLmMgICAgIHwgMTM1ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+PiAgbGliYXZmb3JtYXQvbGMzZW5jLmMgICAgIHwgMTAyICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICA1IGZpbGVzIGNoYW5nZWQsIDI0NyBpbnNl cnRpb25zKCspCj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZmb3JtYXQvbGMzZGVjLmMKPj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmZvcm1hdC9sYzNlbmMuYwo+Pgo+PiBkaWZmIC0tZ2l0 IGEvZG9jL211eGVycy50ZXhpIGIvZG9jL211eGVycy50ZXhpCj4+IGluZGV4IGExMGE4ZTIxNmYu Ljk2ODc3NDZjMzAgMTAwNjQ0Cj4+IC0tLSBhL2RvYy9tdXhlcnMudGV4aQo+PiArKysgYi9kb2Mv bXV4ZXJzLnRleGkKPj4gQEAgLTI2MTIsNiArMjYxMiwxMiBAQCBXZWJEQVYgc2VydmVyIGV2ZXJ5 IHNlY29uZDoKPj4gIGZmbXBlZyAtZiB4MTFncmFiIC1mcmFtZXJhdGUgMSAtaSA6MC4wIC1xOnYg NiAtdXBkYXRlIDEgLXByb3RvY29sX29wdHMKPj4gbWV0aG9kPVBVVCBodHRwOi8vZXhhbXBsZS5j b20vZGVza3RvcC5qcGcKPj4gIEBlbmQgZXhhbXBsZQo+Pgo+PiArQHNlY3Rpb24gbGMzCj4+ICtC bHVldG9vdGggU0lHIExvdyBDb21wbGV4aXR5IENvbW11bmljYXRpb24gQ29kZWMgYXVkaW8gKExD MyksIG9yCj4+ICtFVFNJIFRTIDEwMyA2MzQgTG93IENvbXBsZXhpdHkgQ29tbXVuaWNhdGlvbiBD b2RlYyBwbHVzIChMQzNwbHVzKS4KPj4gKwo+PiArVGhpcyBtdXhlciBhY2NlcHRzIGEgc2luZ2xl IEBjb2Rle2xjM30gYXVkaW8gc3RyZWFtLgo+PiArCj4+ICBAc2VjdGlvbiBtYXRyb3NrYQo+Pgo+ PiAgTWF0cm9za2EgY29udGFpbmVyIG11eGVyLgo+PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQv TWFrZWZpbGUgYi9saWJhdmZvcm1hdC9NYWtlZmlsZQo+PiBpbmRleCA0NGFhNDg1MDI5Li40OTYx YzQyODUyIDEwMDY0NAo+PiAtLS0gYS9saWJhdmZvcm1hdC9NYWtlZmlsZQo+PiArKysgYi9saWJh dmZvcm1hdC9NYWtlZmlsZQo+PiBAQCAtMzMyLDYgKzMzMiw4IEBAIE9CSlMtJChDT05GSUdfS1ZB R19ERU1VWEVSKSAgICAgICAgICAgICAgKz0ga3ZhZy5vCj4+ICBPQkpTLSQoQ09ORklHX0tWQUdf TVVYRVIpICAgICAgICAgICAgICAgICs9IGt2YWcubyByYXdlbmMubwo+PiAgT0JKUy0kKENPTkZJ R19MQUZfREVNVVhFUikgICAgICAgICAgICAgICArPSBsYWZkZWMubwo+PiAgT0JKUy0kKENPTkZJ R19MQVRNX01VWEVSKSAgICAgICAgICAgICAgICArPSBsYXRtZW5jLm8gcmF3ZW5jLm8KPj4gK09C SlMtJChDT05GSUdfTEMzX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gbGMzZGVjLm8KPj4gK09C SlMtJChDT05GSUdfTEMzX01VWEVSKSAgICAgICAgICAgICAgICAgKz0gbGMzZW5jLm8KPj4gIE9C SlMtJChDT05GSUdfTE1MTTRfREVNVVhFUikgICAgICAgICAgICAgKz0gbG1sbTQubwo+PiAgT0JK Uy0kKENPTkZJR19MT0FTX0RFTVVYRVIpICAgICAgICAgICAgICArPSBsb2FzZGVjLm8gcmF3ZGVj Lm8KPj4gIE9CSlMtJChDT05GSUdfTFVPREFUX0RFTVVYRVIpICAgICAgICAgICAgKz0gbHVvZGF0 ZGVjLm8KPj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYyBiL2xpYmF2Zm9y bWF0L2FsbGZvcm1hdHMuYwo+PiBpbmRleCBlMTVkMGZhNmQ3Li5lMjI1MzU0ZmFmIDEwMDY0NAo+ PiAtLS0gYS9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMKPj4gKysrIGIvbGliYXZmb3JtYXQvYWxs Zm9ybWF0cy5jCj4+IEBAIC0yNTIsNiArMjUyLDggQEAgZXh0ZXJuIGNvbnN0IEZGSW5wdXRGb3Jt YXQgIGZmX2t2YWdfZGVtdXhlcjsKPj4gIGV4dGVybiBjb25zdCBGRk91dHB1dEZvcm1hdCBmZl9r dmFnX211eGVyOwo+PiAgZXh0ZXJuIGNvbnN0IEZGSW5wdXRGb3JtYXQgIGZmX2xhZl9kZW11eGVy Owo+PiAgZXh0ZXJuIGNvbnN0IEZGT3V0cHV0Rm9ybWF0IGZmX2xhdG1fbXV4ZXI7Cj4+ICtleHRl cm4gY29uc3QgRkZJbnB1dEZvcm1hdCAgZmZfbGMzX2RlbXV4ZXI7Cj4+ICtleHRlcm4gY29uc3Qg RkZPdXRwdXRGb3JtYXQgZmZfbGMzX211eGVyOwo+PiAgZXh0ZXJuIGNvbnN0IEZGSW5wdXRGb3Jt YXQgIGZmX2xtbG00X2RlbXV4ZXI7Cj4+ICBleHRlcm4gY29uc3QgRkZJbnB1dEZvcm1hdCAgZmZf bG9hc19kZW11eGVyOwo+PiAgZXh0ZXJuIGNvbnN0IEZGSW5wdXRGb3JtYXQgIGZmX2x1b2RhdF9k ZW11eGVyOwo+PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvbGMzZGVjLmMgYi9saWJhdmZvcm1h dC9sYzNkZWMuYwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwLi45 Y2E5ODI1ZjFiCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvbGliYXZmb3JtYXQvbGMzZGVjLmMK Pj4gQEAgLTAsMCArMSwxMzUgQEAKPj4gKy8qCj4+ICsgKiBMQzMgZGVtdXhlcgo+PiArICogQ29w eXJpZ2h0IChDKSAyMDI0ICBBbnRvaW5lIFNvdWxpZXIgPGFzb3VsaWVyQGdvb2dsZS5jb20+Cj4+ ICsgKgo+PiArICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgo+PiArICoKPj4gKyAqIEZG bXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKPj4g KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKPj4gKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlcgo+PiArICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4+ICsgKgo+PiArICogRkZtcGVnIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4+ICsgKiBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgo+PiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKPj4gKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCj4+ICsgKgo+PiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+PiArICogTGljZW5zZSBh bG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+PiAr ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z dG9uLCBNQQo+PiAwMjExMC0xMzAxIFVTQQo+PiArICovCj4+ICsKPj4gKy8qKgo+PiArICogQGZp bGUKPj4gKyAqIEJhc2VkIG9uIHRoZSBmaWxlIGZvcm1hdCBzcGVjaWZpZWQgYnkgOgo+PiArICoK Pj4gKyAqIC0gQmx1ZXRvb3RoIFNJRyAtIExvdyBDb21wbGV4aXR5IENvbW11bmljYXRpb24gQ29k ZWMgVGVzdCBTdWl0ZQo+PiArICoKPj4gaHR0cHM6Ly93d3cuYmx1ZXRvb3RoLm9yZy9kb2NtYW4v aGFuZGxlcnMvZG93bmxvYWRkb2MuYXNoeD9kb2NfaWQ9NTAyMzAxCj4+ICsgKiAgIDMuMi44LjIg UmVmZXJlbmNlIExDMyBDb2RlYyBCaXRzdHJlYW0gRm9ybWF0Cj4+ICsgKgo+PiArICogLSBFVFNJ IFRJIDEwMyA2MzQgVjEuNC4xIC0gTG93IENvbXBsZXhpdHkgQ29tbXVuaWNhdGlvbiBDb2RlYyBw bHVzCj4+ICsgKgo+PiBodHRwczovL3d3dy5ldHNpLm9yZy9kZWxpdmVyL2V0c2lfdHMvMTAzNjAw XzEwMzY5OS8xMDM2MzQvMDEuMDQuMDFfNjAvdHNfMTAzNjM0djAxMDQwMXAucGRmCj4+ICsgKiAg IExDM3BsdXMgY29uZm9ybWFuY2Ugc2NyaXB0IHBhY2thZ2UKPj4gKyAqLwo+PiArCj4+ICsjaW5j bHVkZSAibGliYXZjb2RlYy9wYWNrZXQuaCIKPj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvaW50cmVh ZHdyaXRlLmgiCj4+ICsKPj4gKyNpbmNsdWRlICJhdmZvcm1hdC5oIgo+PiArI2luY2x1ZGUgImF2 aW8uaCIKPj4gKyNpbmNsdWRlICJkZW11eC5oIgo+PiArI2luY2x1ZGUgImludGVybmFsLmgiCj4+ ICsKPj4gK3R5cGVkZWYgc3RydWN0IExDM0RlbXV4Q29udGV4dCB7Cj4+ICsgICAgaW50IGZyYW1l X3NhbXBsZXM7Cj4+ICsgICAgaW50NjRfdCBwb3NpdGlvbjsKPj4gKyAgICBpbnQ2NF90IGxlbmd0 aDsKPj4gK30gTEMzRGVtdXhDb250ZXh0Owo+PiArCj4+ICtzdGF0aWMgaW50IGxjM19yZWFkX2hl YWRlcihBVkZvcm1hdENvbnRleHQgKnMpCj4+ICt7Cj4+ICsgICAgTEMzRGVtdXhDb250ZXh0ICps YzMgPSBzLT5wcml2X2RhdGE7Cj4+ICsgICAgQVZTdHJlYW0gKnN0ID0gTlVMTDsKPj4gKyAgICB1 aW50MTZfdCB0YWcsIGhkcl9zaXplOwo+PiArICAgIHVpbnQxNl90IGZyYW1lX3VzOwo+PiArICAg IHVpbnQzMl90IGxlbmd0aDsKPj4gKyAgICBpbnQgZXBfbW9kZSwgaHJfbW9kZTsKPj4gKyAgICBp bnQgc3JhdGVfaHosIGNoYW5uZWxzLCBiaXRfcmF0ZTsKPj4gKyAgICBpbnQgbnVtX2V4dHJhX3Bh cmFtcywgcmV0Owo+PiArCj4+ICsgICAgdGFnID0gYXZpb19yYjE2KHMtPnBiKTsKPj4gKyAgICBo ZHJfc2l6ZSA9IGF2aW9fcmwxNihzLT5wYik7Cj4+ICsKPj4gKyAgICBpZiAodGFnICE9IDB4MWNj YyB8fCBoZHJfc2l6ZSA8IDkgKiBzaXplb2YodWludDE2X3QpKQo+PiArICAgICAgICByZXR1cm4g QVZFUlJPUl9JTlZBTElEREFUQTsKPj4gKwo+PiArICAgIG51bV9leHRyYV9wYXJhbXMgPSBoZHJf c2l6ZSAvIHNpemVvZih1aW50MTZfdCkgLSA5Owo+PiArCj4+ICsgICAgc3JhdGVfaHogPSBhdmlv X3JsMTYocy0+cGIpICogMTAwOwo+PiArICAgIGJpdF9yYXRlID0gYXZpb19ybDE2KHMtPnBiKSAq IDEwMDsKPj4gKyAgICBjaGFubmVscyA9IGF2aW9fcmwxNihzLT5wYik7Cj4+ICsgICAgZnJhbWVf dXMgPSBhdmlvX3JsMTYocy0+cGIpICogMTA7Cj4+ICsgICAgZXBfbW9kZSAgPSBhdmlvX3JsMTYo cy0+cGIpICE9IDA7Cj4+ICsgICAgbGVuZ3RoICAgPSBhdmlvX3JsMzIocy0+cGIpOwo+PiArICAg IGhyX21vZGUgID0gbnVtX2V4dHJhX3BhcmFtcyA+PSAxICYmIGF2aW9fcmwxNihzLT5wYik7Cj4+ ICsKPj4gKyAgICBzdCA9IGF2Zm9ybWF0X25ld19zdHJlYW0ocywgTlVMTCk7Cj4+ICsgICAgaWYg KCFzdCkKPj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPj4gKwo+PiArICAgIGF2 cHJpdl9zZXRfcHRzX2luZm8oc3QsIDMyLCAxLCBzcmF0ZV9oeik7Cj4+ICsgICAgc3QtPmR1cmF0 aW9uID0gbGVuZ3RoOwo+PiArCj4+ICsgICAgc3QtPmNvZGVjcGFyLT5jb2RlY190eXBlID0gQVZN RURJQV9UWVBFX0FVRElPOwo+PiArICAgIHN0LT5jb2RlY3Bhci0+Y29kZWNfaWQgPSBBVl9DT0RF Q19JRF9MQzM7Cj4+ICsgICAgc3QtPmNvZGVjcGFyLT5zYW1wbGVfcmF0ZSA9IHNyYXRlX2h6Owo+ PiArICAgIHN0LT5jb2RlY3Bhci0+Yml0X3JhdGUgPSBiaXRfcmF0ZTsKPj4gKyAgICBzdC0+Y29k ZWNwYXItPmNoX2xheW91dC5uYl9jaGFubmVscyA9IGNoYW5uZWxzOwo+PiArCj4+ICsgICAgaWYg KChyZXQgPSBmZl9hbGxvY19leHRyYWRhdGEoc3QtPmNvZGVjcGFyLCA2KSkgPCAwKSB7Cj4+ICsg ICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJDb3VsZCBub3QgYWxsb2NhdGUgZXh0cmFk YXRhXG4iKTsKPj4gKyAgICAgICAgcmV0dXJuIHJldDsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgICBB Vl9XTDE2KHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgMCwgZnJhbWVfdXMpOwo+PiArICAgIEFW X1dMMTYoc3QtPmNvZGVjcGFyLT5leHRyYWRhdGEgKyAyLCBlcF9tb2RlKTsKPj4gKyAgICBBVl9X TDE2KHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgNCwgaHJfbW9kZSk7Cj4+ICsKPj4gKyAgICBs YzMtPmZyYW1lX3NhbXBsZXMgPSBhdl9yZXNjYWxlKGZyYW1lX3VzLCBzcmF0ZV9oeiwgMTAwMCox MDAwKTsKPj4gKwo+PiArICAgIGxjMy0+cG9zaXRpb24gPSAwOwo+PiArICAgIGxjMy0+bGVuZ3Ro ID0gc3QtPmR1cmF0aW9uICsKPj4gKyAgICAgICAgYXZfcmVzY2FsZShmcmFtZV91cyA9PSA3NTAw ID8gNDAwMCA6IDI1MDAsIHNyYXRlX2h6LCAxMDAwKjEwMDApOwo+PiArCj4+ICsgICAgcmV0dXJu IDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgbGMzX3JlYWRfcGFja2V0KEFWRm9ybWF0Q29u dGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKPj4gK3sKPj4gKyAgICBMQzNEZW11eENvbnRleHQgKmxj MyA9IHMtPnByaXZfZGF0YTsKPj4gKyAgICBBVklPQ29udGV4dCAqcGIgPSBzLT5wYjsKPj4gKyAg ICBpbnQgcmV0Owo+PiArCj4+ICsgICAgcmV0ID0gYXZfZ2V0X3BhY2tldChzLT5wYiwgcGt0LCBh dmlvX3JsMTYocGIpKTsKPj4gKyAgICBpZiAocmV0IDwgMCkKPj4gKyAgICAgICAgcmV0dXJuIHJl dDsKPj4gKwo+PiArICAgIHBrdC0+ZHVyYXRpb24gPSBsYzMtPmZyYW1lX3NhbXBsZXM7Cj4+ICsg ICAgbGMzLT5wb3NpdGlvbiArPSBsYzMtPmZyYW1lX3NhbXBsZXM7Cj4+ICsgICAgaWYgKGxjMy0+ cG9zaXRpb24gPiBsYzMtPmxlbmd0aCkgewo+PiArICAgICAgICBwa3QtPmR1cmF0aW9uIC09IGxj My0+cG9zaXRpb24gLSBsYzMtPmxlbmd0aDsKPj4gKyAgICAgICAgbGMzLT5wb3NpdGlvbiA9IGxj My0+bGVuZ3RoOwo+PiArICAgIH0KPj4gKwo+PiArICAgIHJldHVybiAwOwo+PiArfQo+PiArCj4+ ICtjb25zdCBGRklucHV0Rm9ybWF0IGZmX2xjM19kZW11eGVyID0gewo+PiArICAgIC5wLm5hbWUg ICAgICAgICA9ICJsYzMiLAo+PiArICAgIC5wLmxvbmdfbmFtZSAgICA9IE5VTExfSUZfQ09ORklH X1NNQUxMKCJMQzMgKExvdyBDb21wbGV4aXR5Cj4+IENvbW11bmljYXRpb24gQ29kZWMpIiksCj4+ ICsgICAgLnAuZXh0ZW5zaW9ucyAgID0gImxjMyIsCj4+ICsgICAgLnAuZmxhZ3MgICAgICAgID0g QVZGTVRfTk9CSU5TRUFSQ0ggfCBBVkZNVF9OT0dFTlNFQVJDSCB8Cj4+IEFWRk1UX05PX0JZVEVf U0VFSyB8IEFWRk1UX05PVElNRVNUQU1QUywKPj4gKyAgICAucHJpdl9kYXRhX3NpemUgPSBzaXpl b2YoTEMzRGVtdXhDb250ZXh0KSwKPj4gKyAgICAucmVhZF9oZWFkZXIgICAgPSBsYzNfcmVhZF9o ZWFkZXIsCj4+ICsgICAgLnJlYWRfcGFja2V0ICAgID0gbGMzX3JlYWRfcGFja2V0LAo+PiArfTsK Pj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2xjM2VuYy5jIGIvbGliYXZmb3JtYXQvbGMzZW5j LmMKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMDAwMC4uYTdlM2UzZjRm Nwo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2xpYmF2Zm9ybWF0L2xjM2VuYy5jCj4+IEBAIC0w LDAgKzEsMTAyIEBACj4+ICsvKgo+PiArICogTEMzIG11eGVyCj4+ICsgKiBDb3B5cmlnaHQgKEMp IDIwMjQgIEFudG9pbmUgU291bGllciA8YXNvdWxpZXJAZ29vZ2xlLmNvbT4KPj4gKyAqCj4+ICsg KiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCj4+ICsgKgo+PiArICogRkZtcGVnIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+PiArICogbW9kaWZ5 IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+PiAr ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyCj4+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPj4gKyAqCj4+ICsgKiBGRm1wZWcgaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPj4gKyAqIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4+ICsg KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlIEdOVQo+PiArICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KPj4gKyAqCj4+ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4+ICsgKiBMaWNlbnNlIGFsb25nIHdpdGgg RkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCj4+ICsgKiBGb3VuZGF0 aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCj4+ IDAyMTEwLTEzMDEgVVNBCj4+ICsgKi8KPj4gKwo+PiArLyoqCj4+ICsgKiBAZmlsZQo+PiArICog QmFzZWQgb24gdGhlIGZpbGUgZm9ybWF0IHNwZWNpZmllZCBieSA6Cj4+ICsgKgo+PiArICogLSBC bHVldG9vdGggU0lHIC0gTG93IENvbXBsZXhpdHkgQ29tbXVuaWNhdGlvbiBDb2RlYyBUZXN0IFN1 aXRlCj4+ICsgKgo+PiBodHRwczovL3d3dy5ibHVldG9vdGgub3JnL2RvY21hbi9oYW5kbGVycy9k b3dubG9hZGRvYy5hc2h4P2RvY19pZD01MDIzMDEKPj4gKyAqICAgMy4yLjguMiBSZWZlcmVuY2Ug TEMzIENvZGVjIEJpdHN0cmVhbSBGb3JtYXQKPj4gKyAqCj4+ICsgKiAtIEVUU0kgVEkgMTAzIDYz NCBWMS40LjEgLSBMb3cgQ29tcGxleGl0eSBDb21tdW5pY2F0aW9uIENvZGVjIHBsdXMKPj4gKyAq Cj4+IGh0dHBzOi8vd3d3LmV0c2kub3JnL2RlbGl2ZXIvZXRzaV90cy8xMDM2MDBfMTAzNjk5LzEw MzYzNC8wMS4wNC4wMV82MC90c18xMDM2MzR2MDEwNDAxcC5wZGYKPj4gKyAqICAgTEMzcGx1cyBj b25mb3JtYW5jZSBzY3JpcHQgcGFja2FnZQo+PiArICovCj4+ICsKPj4gKyNpbmNsdWRlICJsaWJh dnV0aWwvaW50cmVhZHdyaXRlLmgiCj4+ICsKPj4gKyNpbmNsdWRlICJhdmZvcm1hdC5oIgo+PiAr I2luY2x1ZGUgImF2aW8uaCIKPj4gKyNpbmNsdWRlICJtdXguaCIKPj4gKyNpbmNsdWRlICJpbnRl cm5hbC5oIgo+PiArCj4+ICtzdGF0aWMgYXZfY29sZCBpbnQgbGMzX2luaXQoQVZGb3JtYXRDb250 ZXh0ICpzKQo+PiArewo+PiArICAgIGlmIChzLT5uYl9zdHJlYW1zICE9IDEpIHsKPj4gKyAgICAg ICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIlRoaXMgbXV4ZXIgb25seSBzdXBwb3J0cyBhIHNp bmdsZQo+PiBzdHJlYW0uXG4iKTsKPj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsK Pj4gKyAgICB9Cj4+ICsKPj4gKyAgICByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGlu dCBsYzNfd3JpdGVfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKPj4gK3sKPj4gKyAgICBBVlN0 cmVhbSAqc3QgPSBzLT5zdHJlYW1zWzBdOwo+PiArICAgIGludCBjaGFubmVscyA9IHN0LT5jb2Rl Y3Bhci0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOwo+PiArICAgIGludCBzcmF0ZV9oeiA9IHN0LT5j b2RlY3Bhci0+c2FtcGxlX3JhdGU7Cj4+ICsgICAgaW50IGJpdF9yYXRlID0gc3QtPmNvZGVjcGFy LT5iaXRfcmF0ZTsKPj4gKyAgICB1aW50MTZfdCBmcmFtZV91cyA9IDEwMDAwOwo+PiArICAgIGlu dCBlcF9tb2RlID0gMCwgaHJfbW9kZSA9IDA7Cj4+ICsgICAgdWludDMyX3QgbmJfc2FtcGxlcyA9 IGF2X3Jlc2NhbGVfcSgKPj4gKyAgICAgICAgc3QtPmR1cmF0aW9uLCBzdC0+dGltZV9iYXNlLCAo QVZSYXRpb25hbCl7IDEsIHNyYXRlX2h6IH0pOwo+PiArCj4+ICsgICAgaWYgKHN0LT5jb2RlY3Bh ci0+ZXh0cmFkYXRhX3NpemUgPj0gMikKPj4gKyAgICAgICAgZnJhbWVfdXMgPSBBVl9STDE2KHN0 LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgMCk7Cj4+ICsKPj4gKyAgICBpZiAoc3QtPmNvZGVjcGFy LT5leHRyYWRhdGFfc2l6ZSA+PSA2KSB7Cj4+ICsgICAgICAgIGVwX21vZGUgPSBBVl9STDE2KHN0 LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgMik7Cj4+ICsgICAgICAgIGhyX21vZGUgPSBBVl9STDE2 KHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgNCk7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgYXZp b193YjE2KHMtPnBiLCAweDFjY2MpOwo+PiArICAgIGF2aW9fd2wxNihzLT5wYiwgKDkgKyBocl9t b2RlKSAqIHNpemVvZih1aW50MTZfdCkpOwo+PiArICAgIGF2aW9fd2wxNihzLT5wYiwgc3JhdGVf aHogLyAxMDApOwo+PiArICAgIGF2aW9fd2wxNihzLT5wYiwgYml0X3JhdGUgLyAxMDApOwo+PiAr ICAgIGF2aW9fd2wxNihzLT5wYiwgY2hhbm5lbHMpOwo+PiArICAgIGF2aW9fd2wxNihzLT5wYiwg ZnJhbWVfdXMgLyAxMCk7Cj4+ICsgICAgYXZpb193bDE2KHMtPnBiLCBlcF9tb2RlKTsKPj4gKyAg ICBhdmlvX3dsMzIocy0+cGIsIG5iX3NhbXBsZXMpOwo+PiArICAgIGlmIChocl9tb2RlKQo+PiAr ICAgICAgICBhdmlvX3dsMTYocy0+cGIsIGhyX21vZGUpOwo+PiArCj4+ICsgICAgcmV0dXJuIDA7 Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgbGMzX3dyaXRlX3BhY2tldChBVkZvcm1hdENvbnRl eHQgKnMsIEFWUGFja2V0ICpwa3QpCj4+ICt7Cj4+ICsgICAgYXZpb193bDE2KHMtPnBiLCBwa3Qt PnNpemUpOwo+PiArICAgIGF2aW9fd3JpdGUocy0+cGIsIHBrdC0+ZGF0YSwgcGt0LT5zaXplKTsK Pj4gKyAgICByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArY29uc3QgRkZPdXRwdXRGb3JtYXQgZmZf bGMzX211eGVyID0gewo+PiArICAgIC5wLm5hbWUgICAgICAgID0gImxjMyIsCj4+ICsgICAgLnAu bG9uZ19uYW1lICAgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgiTEMzIChMb3cgQ29tcGxleGl0eQo+ PiBDb21tdW5pY2F0aW9uIENvZGVjKSIpLAo+PiArICAgIC5wLmV4dGVuc2lvbnMgID0gImxjMyIs Cj4+ICsgICAgLnAuYXVkaW9fY29kZWMgPSBBVl9DT0RFQ19JRF9MQzMsCj4+ICsgICAgLnAudmlk ZW9fY29kZWMgPSBBVl9DT0RFQ19JRF9OT05FLAo+PiArICAgIC5wLmZsYWdzICAgICAgID0gQVZG TVRfTk9USU1FU1RBTVBTLAo+PiArICAgIC5pbml0ICAgICAgICAgID0gbGMzX2luaXQsCj4+ICsg ICAgLndyaXRlX2hlYWRlciAgPSBsYzNfd3JpdGVfaGVhZGVyLAo+PiArICAgIC53cml0ZV9wYWNr ZXQgID0gbGMzX3dyaXRlX3BhY2tldCwKPj4gK307Cj4+IC0tCj4+IDIuNDQuMC40NzguZ2Q5MjYz OTllZjktZ29vZwo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+PiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IGZmbXBlZy1kZXZlbEBmZm1w ZWcub3JnCj4+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZl bAo+Pgo+PiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPj4gZmZt cGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K Pj4KPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1w ZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZt cGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZp c2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcg d2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==