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 EB79549AC6 for ; Thu, 28 Mar 2024 22:38:31 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2F1EF68CD43; Fri, 29 Mar 2024 00:38:29 +0200 (EET) Received: from mail-vk1-f170.google.com (mail-vk1-f170.google.com [209.85.221.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 84F1D68BD7E for ; Fri, 29 Mar 2024 00:38:22 +0200 (EET) Received: by mail-vk1-f170.google.com with SMTP id 71dfb90a1353d-4d8881c4668so491424e0c.2 for ; Thu, 28 Mar 2024 15:38:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711665501; x=1712270301; 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=mhh6vpJ0Fsk4aBcDFZRBpRA2M/303dAa68GbJH8X32o=; b=gSefXMJMQDsmFj/0ipuXJfFDKXwIQi8HFHHpY3WgiEIQrC3JuhiRvOXXcptLMjNK0I GcLDhVl8mPyY/s7DFYIVesGQ+9nlKFV/KLx4klowgfF+wjrOQje5hMH2uQtYT9FIbKar 9NTFIGhCoBtNOzK7xzex3vjG57mWa0Gv8JZhRxjD5+CfrMZcwoxQ4v4Z9p27Kj9islP9 Jd6HHfUL7ecU75urNunP0IF1xUU48ZVkt7vh8iXkW8K76RNlth964H7EM0W9DZKjslSV 2e4pdvSApzsGPSy79P7fJ0D+qOJKVzi3bewtZBnFvmQVxRFaa34LoGo9ses6invm92px tmbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711665501; x=1712270301; 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=mhh6vpJ0Fsk4aBcDFZRBpRA2M/303dAa68GbJH8X32o=; b=k34T5TtJkgv/p2V0vDwBQe1sKfOZt99mPgvcOvba9h0inqkrI9AepuDIFWaJjjCS3U 64WyXfqeY2T1wEcPvAzGoPLWf/CFj6hhyaUXjNd2c+GeyjRPcr7dO+33ELNu8wMGahNA 20l6vmDvFxd25ZUhI5W0Nxz4vSLfcxiwJcb4Ja+7qlVKXEBVRyjLw5XEIL3XmmO3toXa pWAzjLbk7kJhQnSSwF0E+fXLGWoAcxH3V1K5M7zqCpBa6w5fAM6HJXeW2mRd4DQx1WbL 8YrToUzgd4FxdU2NXWyD0Nu8qTtUabJQkSPQeifA2P783sFWOyWWiVJoP6TtRWN7YwX+ tB4A== X-Gm-Message-State: AOJu0YwHft+6jXtvLO8hZQKDXjLn0SkCK/Z2C6Olne+dYNSZjVee1jeN vGiE/3IgUq7l09jmpe8NlUOLMPH6+enoX5n+YQYsC53VzywzajlZYrxUlpL6r2eyJ82WLFYs43x gsXfkX5b7pg14fWgdkVWAA0ewz5U= X-Google-Smtp-Source: AGHT+IEXQwgiKLMkIc5dy9Y/iwGG/m1YPH8SCfDTPaYDqs/72/2ScCn3GJIiBUkpncR0ZaWcLLo8+iQk5w+er621sbk= X-Received: by 2002:a05:6122:251c:b0:4d8:72fa:6723 with SMTP id cl28-20020a056122251c00b004d872fa6723mr725796vkb.15.1711665500690; Thu, 28 Mar 2024 15:38:20 -0700 (PDT) MIME-Version: 1.0 References: <20240327222145.601148-1-asoulier@google.com> <20240327222145.601148-3-asoulier@google.com> In-Reply-To: From: Paul B Mahol Date: Thu, 28 Mar 2024 23:37:43 +0100 Message-ID: To: Antoine Soulier 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: , Reply-To: FFmpeg development discussions and patches Cc: 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: T24gVGh1LCBNYXIgMjgsIDIwMjQgYXQgNTo0MOKAr1BNIEFudG9pbmUgU291bGllciA8YXNvdWxp ZXJAZ29vZ2xlLmNvbT4gd3JvdGU6Cgo+IEkgZG9uJ3QgdGhpbmsgaXQncyAiZWFzeSIgc2Vla2Fi bGUuCj4gV2UgY2Fubm90IG1vdmUgdG8gYW4gYXJiaXRyYXJ5IHBvc2l0aW9uOgo+IC0gVGhlcmUg aXMgbm8gc3RhcnQtY29kZQo+CgpOb3QgcmVsZXZhbnQuCgoKPiAtIFRoZSBmcmFtZSBzaXplIGNh biBiZSB2YXJpYWJsZSAobm90IGdlbmVyYXRlZCBieSB0aGUgcHJvcG9zZWQgZW5jb2Rlcgo+IGlt cGxlbWVudGF0aW9uLCBidXQgYWxsb3dlZCkuCj4KCk5vdCByZWxldmFudC4KCgo+Cj4gVGhlIG9u bHkgcG9zc2liaWxpdHkgSSBzZWUgaXMgY2hlY2tpbmcgdGhhdCB0aGUgZnJhbWUgc2l6ZSBsb29r cyB2YWxpZCBmb3IKPiBtdWx0aXBsZSBmcmFtZXMuCj4KCk5vdCByZWxldmFudCwgdGhlIG9ubHkg bmVlZGVkIGZlYXR1cmUgaXMga25vd24gc3RvcmVkIG51bWJlciBvZiBzYW1wbGVzIGluCmVhY2gg cGFja2V0IGZvciBwcm9wZXIgcHRzL3RpbWVzdGFtcCBnZW5lcmF0aW9uLgoKVGhlIHJhbmdlIG9m IHZhbGlkIGZyYW1lIHNpemVzIGlzIGxhcmdlICgyMCB0byA2MjUgQnl0ZXMpLCBzbyBJIGNhbiBv bmx5Cj4gdmFsaWRhdGUgNiBiaXRzIGZvciBlYWNoIDE2IGJpdHMgcGFja2V0IHNpemUgcmVhZC4K Pgo+IFRoaXMgZm9ybWF0IGlzIG5vdCByZWFsbHkgZGVzaWduZWQgdG8gYmUgc2Vla2FibGUuCj4g RG8geW91IHRoaW5rIHdlIHdpbGwgbmVlZCBpdD8KPgoKSSBjYW50IGZvcmNlIHlvdSBkbyB0byBj b3JyZWN0IGltcGxlbWVudGF0aW9uLgoKU2Vla2luZyBpcyBwb3NzaWJsZSwganVzdCB5b3UgYXJl IG5vdCBhd2FyZSBvZiBhY3R1YWwgc29sdXRpb24uCkhpbnQ6IHNlZSBvdGhlciBkZW11eGVycy4K Cgo+Cj4KPiBPbiBUaHUsIE1hciAyOCwgMjAyNCBhdCAyOjMz4oCvQU0gUGF1bCBCIE1haG9sIDxv bmVtZGFAZ21haWwuY29tPiB3cm90ZToKPgo+PiBUaGlzIGZvcm1hdCBhY3R1YWxseSBzdXBwb3J0 cyBzZWVraW5nLgo+Pgo+PiBUaGUgcHJvcG9zZWQgc29sdXRpb24gaGVyZSBpcyBzdWItb3B0aW1h bC4KPj4KPj4gT24gV2VkLCBNYXIgMjcsIDIwMjQgYXQgMTE6MjLigK9QTSBBbnRvaW5lIFNvdWxp ZXIgdmlhIGZmbXBlZy1kZXZlbCA8Cj4+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnPiB3cm90ZToK Pj4KPj4+IEEgZmlsZSBmb3JtYXQgaXMgZGVzY3JpYmVkIGluIEJsdWV0b290aCBTSUcgTEMzIGFu ZCBFVFNJIFRTIDEwMyA2MzQsIGZvcgo+Pj4gdGVzdCBwdXJwb3NlLiBUaGlzIGlzIHRoZSBmb3Jt YXQgaW1wbGVtZW50ZWQgaGVyZS4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBBbnRvaW5lIFNvdWxp ZXIgPGFzb3VsaWVyQGdvb2dsZS5jb20+Cj4+PiAtLS0KPj4+ICBkb2MvbXV4ZXJzLnRleGkgICAg ICAgICAgfCAgIDYgKysKPj4+ICBsaWJhdmZvcm1hdC9NYWtlZmlsZSAgICAgfCAgIDIgKwo+Pj4g IGxpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYyB8ICAgMiArCj4+PiAgbGliYXZmb3JtYXQvbGMzZGVj LmMgICAgIHwgMTM1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4g IGxpYmF2Zm9ybWF0L2xjM2VuYy5jICAgICB8IDEwMiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+Pj4gIDUgZmlsZXMgY2hhbmdlZCwgMjQ3IGluc2VydGlvbnMoKykKPj4+ICBjcmVhdGUg bW9kZSAxMDA2NDQgbGliYXZmb3JtYXQvbGMzZGVjLmMKPj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQg bGliYXZmb3JtYXQvbGMzZW5jLmMKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZG9jL211eGVycy50ZXhp IGIvZG9jL211eGVycy50ZXhpCj4+PiBpbmRleCBhMTBhOGUyMTZmLi45Njg3NzQ2YzMwIDEwMDY0 NAo+Pj4gLS0tIGEvZG9jL211eGVycy50ZXhpCj4+PiArKysgYi9kb2MvbXV4ZXJzLnRleGkKPj4+ IEBAIC0yNjEyLDYgKzI2MTIsMTIgQEAgV2ViREFWIHNlcnZlciBldmVyeSBzZWNvbmQ6Cj4+PiAg ZmZtcGVnIC1mIHgxMWdyYWIgLWZyYW1lcmF0ZSAxIC1pIDowLjAgLXE6diA2IC11cGRhdGUgMSAt cHJvdG9jb2xfb3B0cwo+Pj4gbWV0aG9kPVBVVCBodHRwOi8vZXhhbXBsZS5jb20vZGVza3RvcC5q cGcKPj4+ICBAZW5kIGV4YW1wbGUKPj4+Cj4+PiArQHNlY3Rpb24gbGMzCj4+PiArQmx1ZXRvb3Ro IFNJRyBMb3cgQ29tcGxleGl0eSBDb21tdW5pY2F0aW9uIENvZGVjIGF1ZGlvIChMQzMpLCBvcgo+ Pj4gK0VUU0kgVFMgMTAzIDYzNCBMb3cgQ29tcGxleGl0eSBDb21tdW5pY2F0aW9uIENvZGVjIHBs dXMgKExDM3BsdXMpLgo+Pj4gKwo+Pj4gK1RoaXMgbXV4ZXIgYWNjZXB0cyBhIHNpbmdsZSBAY29k ZXtsYzN9IGF1ZGlvIHN0cmVhbS4KPj4+ICsKPj4+ICBAc2VjdGlvbiBtYXRyb3NrYQo+Pj4KPj4+ ICBNYXRyb3NrYSBjb250YWluZXIgbXV4ZXIuCj4+PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQv TWFrZWZpbGUgYi9saWJhdmZvcm1hdC9NYWtlZmlsZQo+Pj4gaW5kZXggNDRhYTQ4NTAyOS4uNDk2 MWM0Mjg1MiAxMDA2NDQKPj4+IC0tLSBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlCj4+PiArKysgYi9s aWJhdmZvcm1hdC9NYWtlZmlsZQo+Pj4gQEAgLTMzMiw2ICszMzIsOCBAQCBPQkpTLSQoQ09ORklH X0tWQUdfREVNVVhFUikgICAgICAgICAgICAgICs9IGt2YWcubwo+Pj4gIE9CSlMtJChDT05GSUdf S1ZBR19NVVhFUikgICAgICAgICAgICAgICAgKz0ga3ZhZy5vIHJhd2VuYy5vCj4+PiAgT0JKUy0k KENPTkZJR19MQUZfREVNVVhFUikgICAgICAgICAgICAgICArPSBsYWZkZWMubwo+Pj4gIE9CSlMt JChDT05GSUdfTEFUTV9NVVhFUikgICAgICAgICAgICAgICAgKz0gbGF0bWVuYy5vIHJhd2VuYy5v Cj4+PiArT0JKUy0kKENPTkZJR19MQzNfREVNVVhFUikgICAgICAgICAgICAgICArPSBsYzNkZWMu bwo+Pj4gK09CSlMtJChDT05GSUdfTEMzX01VWEVSKSAgICAgICAgICAgICAgICAgKz0gbGMzZW5j Lm8KPj4+ICBPQkpTLSQoQ09ORklHX0xNTE00X0RFTVVYRVIpICAgICAgICAgICAgICs9IGxtbG00 Lm8KPj4+ICBPQkpTLSQoQ09ORklHX0xPQVNfREVNVVhFUikgICAgICAgICAgICAgICs9IGxvYXNk ZWMubyByYXdkZWMubwo+Pj4gIE9CSlMtJChDT05GSUdfTFVPREFUX0RFTVVYRVIpICAgICAgICAg ICAgKz0gbHVvZGF0ZGVjLm8KPj4+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9hbGxmb3JtYXRz LmMgYi9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMKPj4+IGluZGV4IGUxNWQwZmE2ZDcuLmUyMjUz NTRmYWYgMTAwNjQ0Cj4+PiAtLS0gYS9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMKPj4+ICsrKyBi L2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYwo+Pj4gQEAgLTI1Miw2ICsyNTIsOCBAQCBleHRlcm4g Y29uc3QgRkZJbnB1dEZvcm1hdCAgZmZfa3ZhZ19kZW11eGVyOwo+Pj4gIGV4dGVybiBjb25zdCBG Rk91dHB1dEZvcm1hdCBmZl9rdmFnX211eGVyOwo+Pj4gIGV4dGVybiBjb25zdCBGRklucHV0Rm9y bWF0ICBmZl9sYWZfZGVtdXhlcjsKPj4+ICBleHRlcm4gY29uc3QgRkZPdXRwdXRGb3JtYXQgZmZf bGF0bV9tdXhlcjsKPj4+ICtleHRlcm4gY29uc3QgRkZJbnB1dEZvcm1hdCAgZmZfbGMzX2RlbXV4 ZXI7Cj4+PiArZXh0ZXJuIGNvbnN0IEZGT3V0cHV0Rm9ybWF0IGZmX2xjM19tdXhlcjsKPj4+ICBl eHRlcm4gY29uc3QgRkZJbnB1dEZvcm1hdCAgZmZfbG1sbTRfZGVtdXhlcjsKPj4+ICBleHRlcm4g Y29uc3QgRkZJbnB1dEZvcm1hdCAgZmZfbG9hc19kZW11eGVyOwo+Pj4gIGV4dGVybiBjb25zdCBG RklucHV0Rm9ybWF0ICBmZl9sdW9kYXRfZGVtdXhlcjsKPj4+IGRpZmYgLS1naXQgYS9saWJhdmZv cm1hdC9sYzNkZWMuYyBiL2xpYmF2Zm9ybWF0L2xjM2RlYy5jCj4+PiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+Pj4gaW5kZXggMDAwMDAwMDAwMC4uOWNhOTgyNWYxYgo+Pj4gLS0tIC9kZXYvbnVsbAo+ Pj4gKysrIGIvbGliYXZmb3JtYXQvbGMzZGVjLmMKPj4+IEBAIC0wLDAgKzEsMTM1IEBACj4+PiAr LyoKPj4+ICsgKiBMQzMgZGVtdXhlcgo+Pj4gKyAqIENvcHlyaWdodCAoQykgMjAyNCAgQW50b2lu ZSBTb3VsaWVyIDxhc291bGllckBnb29nbGUuY29tPgo+Pj4gKyAqCj4+PiArICogVGhpcyBmaWxl IGlzIHBhcnQgb2YgRkZtcGVnLgo+Pj4gKyAqCj4+PiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+Pj4gKyAqIG1vZGlmeSBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPj4+ICsgKiBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK Pj4+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KPj4+ICsgKgo+Pj4gKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+Pj4gKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4+PiArICog TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZSBHTlUKPj4+ICsgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgo+Pj4gKyAqCj4+PiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+Pj4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0 aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKPj4+ICsgKiBGb3Vu ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B Cj4+PiAwMjExMC0xMzAxIFVTQQo+Pj4gKyAqLwo+Pj4gKwo+Pj4gKy8qKgo+Pj4gKyAqIEBmaWxl Cj4+PiArICogQmFzZWQgb24gdGhlIGZpbGUgZm9ybWF0IHNwZWNpZmllZCBieSA6Cj4+PiArICoK Pj4+ICsgKiAtIEJsdWV0b290aCBTSUcgLSBMb3cgQ29tcGxleGl0eSBDb21tdW5pY2F0aW9uIENv ZGVjIFRlc3QgU3VpdGUKPj4+ICsgKgo+Pj4gaHR0cHM6Ly93d3cuYmx1ZXRvb3RoLm9yZy9kb2Nt YW4vaGFuZGxlcnMvZG93bmxvYWRkb2MuYXNoeD9kb2NfaWQ9NTAyMzAxCj4+PiArICogICAzLjIu OC4yIFJlZmVyZW5jZSBMQzMgQ29kZWMgQml0c3RyZWFtIEZvcm1hdAo+Pj4gKyAqCj4+PiArICog LSBFVFNJIFRJIDEwMyA2MzQgVjEuNC4xIC0gTG93IENvbXBsZXhpdHkgQ29tbXVuaWNhdGlvbiBD b2RlYyBwbHVzCj4+PiArICoKPj4+IGh0dHBzOi8vd3d3LmV0c2kub3JnL2RlbGl2ZXIvZXRzaV90 cy8xMDM2MDBfMTAzNjk5LzEwMzYzNC8wMS4wNC4wMV82MC90c18xMDM2MzR2MDEwNDAxcC5wZGYK Pj4+ICsgKiAgIExDM3BsdXMgY29uZm9ybWFuY2Ugc2NyaXB0IHBhY2thZ2UKPj4+ICsgKi8KPj4+ ICsKPj4+ICsjaW5jbHVkZSAibGliYXZjb2RlYy9wYWNrZXQuaCIKPj4+ICsjaW5jbHVkZSAibGli YXZ1dGlsL2ludHJlYWR3cml0ZS5oIgo+Pj4gKwo+Pj4gKyNpbmNsdWRlICJhdmZvcm1hdC5oIgo+ Pj4gKyNpbmNsdWRlICJhdmlvLmgiCj4+PiArI2luY2x1ZGUgImRlbXV4LmgiCj4+PiArI2luY2x1 ZGUgImludGVybmFsLmgiCj4+PiArCj4+PiArdHlwZWRlZiBzdHJ1Y3QgTEMzRGVtdXhDb250ZXh0 IHsKPj4+ICsgICAgaW50IGZyYW1lX3NhbXBsZXM7Cj4+PiArICAgIGludDY0X3QgcG9zaXRpb247 Cj4+PiArICAgIGludDY0X3QgbGVuZ3RoOwo+Pj4gK30gTEMzRGVtdXhDb250ZXh0Owo+Pj4gKwo+ Pj4gK3N0YXRpYyBpbnQgbGMzX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKPj4+ICt7 Cj4+PiArICAgIExDM0RlbXV4Q29udGV4dCAqbGMzID0gcy0+cHJpdl9kYXRhOwo+Pj4gKyAgICBB VlN0cmVhbSAqc3QgPSBOVUxMOwo+Pj4gKyAgICB1aW50MTZfdCB0YWcsIGhkcl9zaXplOwo+Pj4g KyAgICB1aW50MTZfdCBmcmFtZV91czsKPj4+ICsgICAgdWludDMyX3QgbGVuZ3RoOwo+Pj4gKyAg ICBpbnQgZXBfbW9kZSwgaHJfbW9kZTsKPj4+ICsgICAgaW50IHNyYXRlX2h6LCBjaGFubmVscywg Yml0X3JhdGU7Cj4+PiArICAgIGludCBudW1fZXh0cmFfcGFyYW1zLCByZXQ7Cj4+PiArCj4+PiAr ICAgIHRhZyA9IGF2aW9fcmIxNihzLT5wYik7Cj4+PiArICAgIGhkcl9zaXplID0gYXZpb19ybDE2 KHMtPnBiKTsKPj4+ICsKPj4+ICsgICAgaWYgKHRhZyAhPSAweDFjY2MgfHwgaGRyX3NpemUgPCA5 ICogc2l6ZW9mKHVpbnQxNl90KSkKPj4+ICsgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSURE QVRBOwo+Pj4gKwo+Pj4gKyAgICBudW1fZXh0cmFfcGFyYW1zID0gaGRyX3NpemUgLyBzaXplb2Yo dWludDE2X3QpIC0gOTsKPj4+ICsKPj4+ICsgICAgc3JhdGVfaHogPSBhdmlvX3JsMTYocy0+cGIp ICogMTAwOwo+Pj4gKyAgICBiaXRfcmF0ZSA9IGF2aW9fcmwxNihzLT5wYikgKiAxMDA7Cj4+PiAr ICAgIGNoYW5uZWxzID0gYXZpb19ybDE2KHMtPnBiKTsKPj4+ICsgICAgZnJhbWVfdXMgPSBhdmlv X3JsMTYocy0+cGIpICogMTA7Cj4+PiArICAgIGVwX21vZGUgID0gYXZpb19ybDE2KHMtPnBiKSAh PSAwOwo+Pj4gKyAgICBsZW5ndGggICA9IGF2aW9fcmwzMihzLT5wYik7Cj4+PiArICAgIGhyX21v ZGUgID0gbnVtX2V4dHJhX3BhcmFtcyA+PSAxICYmIGF2aW9fcmwxNihzLT5wYik7Cj4+PiArCj4+ PiArICAgIHN0ID0gYXZmb3JtYXRfbmV3X3N0cmVhbShzLCBOVUxMKTsKPj4+ICsgICAgaWYgKCFz dCkKPj4+ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4+PiArCj4+PiArICAgIGF2 cHJpdl9zZXRfcHRzX2luZm8oc3QsIDMyLCAxLCBzcmF0ZV9oeik7Cj4+PiArICAgIHN0LT5kdXJh dGlvbiA9IGxlbmd0aDsKPj4+ICsKPj4+ICsgICAgc3QtPmNvZGVjcGFyLT5jb2RlY190eXBlID0g QVZNRURJQV9UWVBFX0FVRElPOwo+Pj4gKyAgICBzdC0+Y29kZWNwYXItPmNvZGVjX2lkID0gQVZf Q09ERUNfSURfTEMzOwo+Pj4gKyAgICBzdC0+Y29kZWNwYXItPnNhbXBsZV9yYXRlID0gc3JhdGVf aHo7Cj4+PiArICAgIHN0LT5jb2RlY3Bhci0+Yml0X3JhdGUgPSBiaXRfcmF0ZTsKPj4+ICsgICAg c3QtPmNvZGVjcGFyLT5jaF9sYXlvdXQubmJfY2hhbm5lbHMgPSBjaGFubmVsczsKPj4+ICsKPj4+ ICsgICAgaWYgKChyZXQgPSBmZl9hbGxvY19leHRyYWRhdGEoc3QtPmNvZGVjcGFyLCA2KSkgPCAw KSB7Cj4+PiArICAgICAgICBhdl9sb2cocywgQVZfTE9HX0VSUk9SLCAiQ291bGQgbm90IGFsbG9j YXRlIGV4dHJhZGF0YVxuIik7Cj4+PiArICAgICAgICByZXR1cm4gcmV0Owo+Pj4gKyAgICB9Cj4+ PiArCj4+PiArICAgIEFWX1dMMTYoc3QtPmNvZGVjcGFyLT5leHRyYWRhdGEgKyAwLCBmcmFtZV91 cyk7Cj4+PiArICAgIEFWX1dMMTYoc3QtPmNvZGVjcGFyLT5leHRyYWRhdGEgKyAyLCBlcF9tb2Rl KTsKPj4+ICsgICAgQVZfV0wxNihzdC0+Y29kZWNwYXItPmV4dHJhZGF0YSArIDQsIGhyX21vZGUp Owo+Pj4gKwo+Pj4gKyAgICBsYzMtPmZyYW1lX3NhbXBsZXMgPSBhdl9yZXNjYWxlKGZyYW1lX3Vz LCBzcmF0ZV9oeiwgMTAwMCoxMDAwKTsKPj4+ICsKPj4+ICsgICAgbGMzLT5wb3NpdGlvbiA9IDA7 Cj4+PiArICAgIGxjMy0+bGVuZ3RoID0gc3QtPmR1cmF0aW9uICsKPj4+ICsgICAgICAgIGF2X3Jl c2NhbGUoZnJhbWVfdXMgPT0gNzUwMCA/IDQwMDAgOiAyNTAwLCBzcmF0ZV9oeiwgMTAwMCoxMDAw KTsKPj4+ICsKPj4+ICsgICAgcmV0dXJuIDA7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBpbnQg bGMzX3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKPj4+ICt7 Cj4+PiArICAgIExDM0RlbXV4Q29udGV4dCAqbGMzID0gcy0+cHJpdl9kYXRhOwo+Pj4gKyAgICBB VklPQ29udGV4dCAqcGIgPSBzLT5wYjsKPj4+ICsgICAgaW50IHJldDsKPj4+ICsKPj4+ICsgICAg cmV0ID0gYXZfZ2V0X3BhY2tldChzLT5wYiwgcGt0LCBhdmlvX3JsMTYocGIpKTsKPj4+ICsgICAg aWYgKHJldCA8IDApCj4+PiArICAgICAgICByZXR1cm4gcmV0Owo+Pj4gKwo+Pj4gKyAgICBwa3Qt PmR1cmF0aW9uID0gbGMzLT5mcmFtZV9zYW1wbGVzOwo+Pj4gKyAgICBsYzMtPnBvc2l0aW9uICs9 IGxjMy0+ZnJhbWVfc2FtcGxlczsKPj4+ICsgICAgaWYgKGxjMy0+cG9zaXRpb24gPiBsYzMtPmxl bmd0aCkgewo+Pj4gKyAgICAgICAgcGt0LT5kdXJhdGlvbiAtPSBsYzMtPnBvc2l0aW9uIC0gbGMz LT5sZW5ndGg7Cj4+PiArICAgICAgICBsYzMtPnBvc2l0aW9uID0gbGMzLT5sZW5ndGg7Cj4+PiAr ICAgIH0KPj4+ICsKPj4+ICsgICAgcmV0dXJuIDA7Cj4+PiArfQo+Pj4gKwo+Pj4gK2NvbnN0IEZG SW5wdXRGb3JtYXQgZmZfbGMzX2RlbXV4ZXIgPSB7Cj4+PiArICAgIC5wLm5hbWUgICAgICAgICA9 ICJsYzMiLAo+Pj4gKyAgICAucC5sb25nX25hbWUgICAgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgi TEMzIChMb3cgQ29tcGxleGl0eQo+Pj4gQ29tbXVuaWNhdGlvbiBDb2RlYykiKSwKPj4+ICsgICAg LnAuZXh0ZW5zaW9ucyAgID0gImxjMyIsCj4+PiArICAgIC5wLmZsYWdzICAgICAgICA9IEFWRk1U X05PQklOU0VBUkNIIHwgQVZGTVRfTk9HRU5TRUFSQ0ggfAo+Pj4gQVZGTVRfTk9fQllURV9TRUVL IHwgQVZGTVRfTk9USU1FU1RBTVBTLAo+Pj4gKyAgICAucHJpdl9kYXRhX3NpemUgPSBzaXplb2Yo TEMzRGVtdXhDb250ZXh0KSwKPj4+ICsgICAgLnJlYWRfaGVhZGVyICAgID0gbGMzX3JlYWRfaGVh ZGVyLAo+Pj4gKyAgICAucmVhZF9wYWNrZXQgICAgPSBsYzNfcmVhZF9wYWNrZXQsCj4+PiArfTsK Pj4+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9sYzNlbmMuYyBiL2xpYmF2Zm9ybWF0L2xjM2Vu Yy5jCj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+Pj4gaW5kZXggMDAwMDAwMDAwMC4uYTdlM2Uz ZjRmNwo+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4gKysrIGIvbGliYXZmb3JtYXQvbGMzZW5jLmMKPj4+ IEBAIC0wLDAgKzEsMTAyIEBACj4+PiArLyoKPj4+ICsgKiBMQzMgbXV4ZXIKPj4+ICsgKiBDb3B5 cmlnaHQgKEMpIDIwMjQgIEFudG9pbmUgU291bGllciA8YXNvdWxpZXJAZ29vZ2xlLmNvbT4KPj4+ ICsgKgo+Pj4gKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPj4+ICsgKgo+Pj4gKyAq IEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK Pj4+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCj4+PiArICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyCj4+PiArICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2Us IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4+PiArICoKPj4+ICsgKiBG Rm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK Pj4+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgo+Pj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCj4+PiArICogTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPj4+ICsgKgo+Pj4gKyAqIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPj4+ ICsgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl IFNvZnR3YXJlCj4+PiArICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG aWZ0aCBGbG9vciwgQm9zdG9uLCBNQQo+Pj4gMDIxMTAtMTMwMSBVU0EKPj4+ICsgKi8KPj4+ICsK Pj4+ICsvKioKPj4+ICsgKiBAZmlsZQo+Pj4gKyAqIEJhc2VkIG9uIHRoZSBmaWxlIGZvcm1hdCBz cGVjaWZpZWQgYnkgOgo+Pj4gKyAqCj4+PiArICogLSBCbHVldG9vdGggU0lHIC0gTG93IENvbXBs ZXhpdHkgQ29tbXVuaWNhdGlvbiBDb2RlYyBUZXN0IFN1aXRlCj4+PiArICoKPj4+IGh0dHBzOi8v d3d3LmJsdWV0b290aC5vcmcvZG9jbWFuL2hhbmRsZXJzL2Rvd25sb2FkZG9jLmFzaHg/ZG9jX2lk PTUwMjMwMQo+Pj4gKyAqICAgMy4yLjguMiBSZWZlcmVuY2UgTEMzIENvZGVjIEJpdHN0cmVhbSBG b3JtYXQKPj4+ICsgKgo+Pj4gKyAqIC0gRVRTSSBUSSAxMDMgNjM0IFYxLjQuMSAtIExvdyBDb21w bGV4aXR5IENvbW11bmljYXRpb24gQ29kZWMgcGx1cwo+Pj4gKyAqCj4+PiBodHRwczovL3d3dy5l dHNpLm9yZy9kZWxpdmVyL2V0c2lfdHMvMTAzNjAwXzEwMzY5OS8xMDM2MzQvMDEuMDQuMDFfNjAv dHNfMTAzNjM0djAxMDQwMXAucGRmCj4+PiArICogICBMQzNwbHVzIGNvbmZvcm1hbmNlIHNjcmlw dCBwYWNrYWdlCj4+PiArICovCj4+PiArCj4+PiArI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRyZWFk d3JpdGUuaCIKPj4+ICsKPj4+ICsjaW5jbHVkZSAiYXZmb3JtYXQuaCIKPj4+ICsjaW5jbHVkZSAi YXZpby5oIgo+Pj4gKyNpbmNsdWRlICJtdXguaCIKPj4+ICsjaW5jbHVkZSAiaW50ZXJuYWwuaCIK Pj4+ICsKPj4+ICtzdGF0aWMgYXZfY29sZCBpbnQgbGMzX2luaXQoQVZGb3JtYXRDb250ZXh0ICpz KQo+Pj4gK3sKPj4+ICsgICAgaWYgKHMtPm5iX3N0cmVhbXMgIT0gMSkgewo+Pj4gKyAgICAgICAg YXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIlRoaXMgbXV4ZXIgb25seSBzdXBwb3J0cyBhIHNpbmds ZQo+Pj4gc3RyZWFtLlxuIik7Cj4+PiArICAgICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOwo+ Pj4gKyAgICB9Cj4+PiArCj4+PiArICAgIHJldHVybiAwOwo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0 aWMgaW50IGxjM193cml0ZV9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQo+Pj4gK3sKPj4+ICsg ICAgQVZTdHJlYW0gKnN0ID0gcy0+c3RyZWFtc1swXTsKPj4+ICsgICAgaW50IGNoYW5uZWxzID0g c3QtPmNvZGVjcGFyLT5jaF9sYXlvdXQubmJfY2hhbm5lbHM7Cj4+PiArICAgIGludCBzcmF0ZV9o eiA9IHN0LT5jb2RlY3Bhci0+c2FtcGxlX3JhdGU7Cj4+PiArICAgIGludCBiaXRfcmF0ZSA9IHN0 LT5jb2RlY3Bhci0+Yml0X3JhdGU7Cj4+PiArICAgIHVpbnQxNl90IGZyYW1lX3VzID0gMTAwMDA7 Cj4+PiArICAgIGludCBlcF9tb2RlID0gMCwgaHJfbW9kZSA9IDA7Cj4+PiArICAgIHVpbnQzMl90 IG5iX3NhbXBsZXMgPSBhdl9yZXNjYWxlX3EoCj4+PiArICAgICAgICBzdC0+ZHVyYXRpb24sIHN0 LT50aW1lX2Jhc2UsIChBVlJhdGlvbmFsKXsgMSwgc3JhdGVfaHogfSk7Cj4+PiArCj4+PiArICAg IGlmIChzdC0+Y29kZWNwYXItPmV4dHJhZGF0YV9zaXplID49IDIpCj4+PiArICAgICAgICBmcmFt ZV91cyA9IEFWX1JMMTYoc3QtPmNvZGVjcGFyLT5leHRyYWRhdGEgKyAwKTsKPj4+ICsKPj4+ICsg ICAgaWYgKHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhX3NpemUgPj0gNikgewo+Pj4gKyAgICAgICAg ZXBfbW9kZSA9IEFWX1JMMTYoc3QtPmNvZGVjcGFyLT5leHRyYWRhdGEgKyAyKTsKPj4+ICsgICAg ICAgIGhyX21vZGUgPSBBVl9STDE2KHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgNCk7Cj4+PiAr ICAgIH0KPj4+ICsKPj4+ICsgICAgYXZpb193YjE2KHMtPnBiLCAweDFjY2MpOwo+Pj4gKyAgICBh dmlvX3dsMTYocy0+cGIsICg5ICsgaHJfbW9kZSkgKiBzaXplb2YodWludDE2X3QpKTsKPj4+ICsg ICAgYXZpb193bDE2KHMtPnBiLCBzcmF0ZV9oeiAvIDEwMCk7Cj4+PiArICAgIGF2aW9fd2wxNihz LT5wYiwgYml0X3JhdGUgLyAxMDApOwo+Pj4gKyAgICBhdmlvX3dsMTYocy0+cGIsIGNoYW5uZWxz KTsKPj4+ICsgICAgYXZpb193bDE2KHMtPnBiLCBmcmFtZV91cyAvIDEwKTsKPj4+ICsgICAgYXZp b193bDE2KHMtPnBiLCBlcF9tb2RlKTsKPj4+ICsgICAgYXZpb193bDMyKHMtPnBiLCBuYl9zYW1w bGVzKTsKPj4+ICsgICAgaWYgKGhyX21vZGUpCj4+PiArICAgICAgICBhdmlvX3dsMTYocy0+cGIs IGhyX21vZGUpOwo+Pj4gKwo+Pj4gKyAgICByZXR1cm4gMDsKPj4+ICt9Cj4+PiArCj4+PiArc3Rh dGljIGludCBsYzNfd3JpdGVfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBr dCkKPj4+ICt7Cj4+PiArICAgIGF2aW9fd2wxNihzLT5wYiwgcGt0LT5zaXplKTsKPj4+ICsgICAg YXZpb193cml0ZShzLT5wYiwgcGt0LT5kYXRhLCBwa3QtPnNpemUpOwo+Pj4gKyAgICByZXR1cm4g MDsKPj4+ICt9Cj4+PiArCj4+PiArY29uc3QgRkZPdXRwdXRGb3JtYXQgZmZfbGMzX211eGVyID0g ewo+Pj4gKyAgICAucC5uYW1lICAgICAgICA9ICJsYzMiLAo+Pj4gKyAgICAucC5sb25nX25hbWUg ICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJMQzMgKExvdyBDb21wbGV4aXR5Cj4+PiBDb21tdW5p Y2F0aW9uIENvZGVjKSIpLAo+Pj4gKyAgICAucC5leHRlbnNpb25zICA9ICJsYzMiLAo+Pj4gKyAg ICAucC5hdWRpb19jb2RlYyA9IEFWX0NPREVDX0lEX0xDMywKPj4+ICsgICAgLnAudmlkZW9fY29k ZWMgPSBBVl9DT0RFQ19JRF9OT05FLAo+Pj4gKyAgICAucC5mbGFncyAgICAgICA9IEFWRk1UX05P VElNRVNUQU1QUywKPj4+ICsgICAgLmluaXQgICAgICAgICAgPSBsYzNfaW5pdCwKPj4+ICsgICAg LndyaXRlX2hlYWRlciAgPSBsYzNfd3JpdGVfaGVhZGVyLAo+Pj4gKyAgICAud3JpdGVfcGFja2V0 ICA9IGxjM193cml0ZV9wYWNrZXQsCj4+PiArfTsKPj4+IC0tCj4+PiAyLjQ0LjAuNDc4LmdkOTI2 Mzk5ZWY5LWdvb2cKPj4+Cj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+Pj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+Pj4gZmZtcGVnLWRldmVs QGZmbXBlZy5vcmcKPj4+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBl Zy1kZXZlbAo+Pj4KPj4+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFp bAo+Pj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vi c2NyaWJlIi4KPj4+Cj4+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcK aHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1 YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RA ZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K