From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 3684E4DDAA for <ffmpegdev@gitmailbox.com>; Fri, 25 Apr 2025 12:26:22 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C877A68813B; Fri, 25 Apr 2025 15:26:17 +0300 (EEST) Received: from nef.ens.fr (nef2.ens.fr [129.199.96.40]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DFE9F687D43 for <ffmpeg-devel@ffmpeg.org>; Fri, 25 Apr 2025 15:26:10 +0300 (EEST) X-ENS-nef-client: 129.199.129.80 ( name = phare.normalesup.org ) Received: from phare.normalesup.org (phare.normalesup.org [129.199.129.80]) by nef.ens.fr (8.14.4/1.01.28121999) with ESMTP id 53PCQAbG027679 for <ffmpeg-devel@ffmpeg.org>; Fri, 25 Apr 2025 14:26:10 +0200 Received: by phare.normalesup.org (Postfix, from userid 1001) id 2130A2EFE7; Fri, 25 Apr 2025 14:26:10 +0200 (CEST) Date: Fri, 25 Apr 2025 14:26:10 +0200 From: Nicolas George <george@nsup.org> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Message-ID: <aAt_YokCDjTocZ6_@phare.normalesup.org> References: <MEYP282MB18784DCA03D764E54E08FC8D88BB2@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <MEYP282MB18784DCA03D764E54E08FC8D88BB2@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (nef.ens.fr [129.199.96.32]); Fri, 25 Apr 2025 14:26:10 +0200 (CEST) Subject: Re: [FFmpeg-devel] [PATCH] avfilter: add PCM dumping between filters for audio debugging X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <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" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/aAt_YokCDjTocZ6_@phare.normalesup.org/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> 5LiA5Y+q5aSnIOiCpeeMqyAoSEUxMjAyNS0wNC0yMyk6Cj4gVGhpcyBwYXRjaCBpbnRyb2R1Y2Vz IFBDTSBkdW1waW5nIHN1cHBvcnQgYmV0d2VlbiBBVkZpbHRlciBsaW5rcywgaW50ZW5kZWQgZm9y IGF1ZGlvIGRlYnVnZ2luZy4KClRoYW5rcyBmb3IgdGhlIHBhdGNoLiBTZWUgYSBmZXcgcmVtYXJr cyBiZWxvdy4KCj4gSXQgYWRkcyBhIGNvbmZpZ3VyZS10aW1lIG9wdGlvbiBgLS1kdW1wZGlyPVBB VEhgIHRvIHNwZWNpZnkgdGhlIG91dHB1dCBkaXJlY3RvcnkgZm9yIHJhdyBQQ00gZGF0YSAoZGVm YXVsdDogL3RtcC8pLgo+IAo+IFR3byBjb21tYW5kcyBhcmUgZXhwb3NlZCB0byBjb250cm9sIGR1 bXBpbmc6Cj4gICAtIGR1bXBfcmF3X3N0YXJ0IDxkc3RfZmlsdGVyX25hbWU+Cj4gICAtIGR1bXBf cmF3X3N0b3AgPGRzdF9maWx0ZXJfbmFtZT4KPiAKPiBEdW1wIGZpbGVzIGFyZSB3cml0dGVuIGFz OiBzcmNuYW1lLWRzdG5hbWUtY2hhbm5lbC5wY20KCkkgZG8gbm90IGxpa2UgdGhlIGZhY3QgdGhh dCBpdCByZWxpZXMgb24gYSBoYXJkLWNvZGVkIG91dHB1dCBwYXRoLiBJCnRoaW5rIGl0IHdvdWxk IGJlIGJldHRlciB0byB0YWtlIHRoZSBvdXRwdXQgZmlsZSBuYW1lIGZyb20gdGhlIGNvbW1hbmQK YXJndW1lbnQsIGV2ZW4gaWYgaXQgbWVhbnMgc3BsaXR0aW5nIGl0LgoKPiBTdXBwb3J0cyBwYWNr ZWQgYW5kIHBsYW5hciBmb3JtYXRzLiBGaWxlIGRlc2NyaXB0b3JzIGFyZSBtYW5hZ2VkIGF1dG9t YXRpY2FsbHkgYW5kIHdvcmsgb25seSBvbiBhdWRpbyBsaW5rcy4KPiAKPiBFeGFtcGxlIHVzYWdl Ogo+ICAgICBhdmZpbHRlcl9wcm9jZXNzX2NvbW1hbmQoZmlsdGVyLCAiZHVtcF9yYXdfc3RhcnQi LCAidm9sdW1lIiwgTlVMTCwgMCwgMCk7CgoKWW91IG5lZWQgdG8gYWRkIHRoYXQgaW50byB0aGUg ZG9jdW1lbnRhdGlvbi4gQW5kIHBsZWFzZSBhZGQgYW4gZXhhbXBsZQpmb3IgdGhlIGNvbW1hbmQt bGluZSB0b29sLgoKPiBUaGlzIGZlYXR1cmUgaGVscHMgZGV2ZWxvcGVycyBkZWJ1ZyBmaWx0ZXIg YmVoYXZpb3IgYnkgaW5zcGVjdGluZyBpbnRlcm1lZGlhdGUgYXVkaW8gZGF0YS4KPiAtLS0KPiA+ RnJvbSA2YTMxYzg1YWZkMjgwMGMwOTA3NmMxZTJiN2M3MzRjN2I3MTlmNzNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQo+IEZyb206IFlpYm8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4K PiBEYXRlOiBXZWQsIDIzIEFwciAyMDI1IDA5OjE3OjUxICswODAwCj4gU3ViamVjdDogW1BBVENI IDEvMV0gYXZmaWx0ZXI6IGFkZCBQQ00gZHVtcGluZyBiZXR3ZWVuIGZpbHRlcnMgZm9yIGF1ZGlv Cj4gIGRlYnVnZ2luZwo+IAo+IFRoaXMgcGF0Y2ggYWRkcyB0aGUgYWJpbGl0eSB0byBkdW1wIHJh dyBQQ00gYXVkaW8gZGF0YSBiZXR3ZWVuIEFWRmlsdGVyIGxpbmtzLgo+IEl0IGludHJvZHVjZXMg YSBjb25maWd1cmUtdGltZSBvcHRpb24gYC0tZHVtcGRpcj1QQVRIYCB0byBjb250cm9sIHRoZSBv dXRwdXQKPiBkaXJlY3Rvcnkgb2YgZHVtcCBmaWxlcyAoZGVmYXVsdDogL3RtcC8pLiBUaGlzIGZl YXR1cmUgaXMgaGVscGZ1bCBmb3IgZGVidWdnaW5nCj4gZmlsdGVyIGJlaGF2aW9yIGFuZCB2ZXJp ZnlpbmcgYXVkaW8gcHJvY2Vzc2luZy4KPiAKPiBUd28gZmlsdGVyIGNvbW1hbmRzIGFyZSBhZGRl ZDoKPiAgIC0gZHVtcF9yYXdfc3RhcnQgPGRzdF9maWx0ZXJfbmFtZT4KPiAgIC0gZHVtcF9yYXdf c3RvcCA8ZHN0X2ZpbHRlcl9uYW1lPgo+IAo+IFRoZSBQQ00gZmlsZXMgYXJlIHdyaXR0ZW4gaW4g dGhlIGZvcm1hdDogc3JjbmFtZS1kc3RuYW1lLTxjaGFubmVsPi5wY20uCj4gCj4gU3VwcG9ydHMg Ym90aCBwYWNrZWQgYW5kIHBsYW5hciBmb3JtYXRzLiBGaWxlIGRlc2NyaXB0b3JzIGFyZSBhdXRv bWF0aWNhbGx5Cj4gbWFuYWdlZC4gV29ya3Mgb25seSBvbiBhdWRpbyBsaW5rcy4KPiAKPiBFeGFt cGxlIHVzYWdlOgo+ICAgYXZmaWx0ZXJfcHJvY2Vzc19jb21tYW5kKGZpbHRlciwgImR1bXBfcmF3 X3N0YXJ0IiwgInZvbHVtZSIsIE5VTEwsIDAsIDApOwo+IAo+IFNpZ25lZC1vZmYtYnk6IFlpYm8g RmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4KPiAtLS0KPiAgY29uZmlndXJlICAgICAgICAg ICAgICB8ICAgNyArKysKPiAgbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYyB8IDExMCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBsaWJhdmZpbHRlci9hdmZpbHRlci5o IHwgICA0ICsrCj4gIDMgZmlsZXMgY2hhbmdlZCwgMTIxIGluc2VydGlvbnMoKykKPiAKPiBkaWZm IC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCj4gaW5kZXggYzk0YjhlYWM0My4uMzgxNjMz NzQ5ZCAxMDA3NTUKPiAtLS0gYS9jb25maWd1cmUKPiArKysgYi9jb25maWd1cmUKPiBAQCAtNTI0 LDYgKzUyNCw3IEBAIERldmVsb3BlciBvcHRpb25zICh1c2VmdWwgd2hlbiB3b3JraW5nIG9uIEZG bXBlZyBpdHNlbGYpOgo+ICAgIC0tZGlzYWJsZS1sYXJnZS10ZXN0cyAgICBkaXNhYmxlIHRlc3Rz IHRoYXQgdXNlIGEgbGFyZ2UgYW1vdW50IG9mIG1lbW9yeQo+ICAgIC0tZGlzYWJsZS1wdHgtY29t cHJlc3Npb24gZG9uJ3QgY29tcHJlc3MgQ1VEQSBQVFggY29kZSBldmVuIHdoZW4gcG9zc2libGUK PiAgICAtLWRpc2FibGUtdmVyc2lvbi10cmFja2luZyBkb24ndCBpbmNsdWRlIHRoZSBnaXQvcmVs ZWFzZSB2ZXJzaW9uIGluIHRoZSBidWlsZAo+ICsgIC0tZHVtcGRpcj1QQVRIICAgICAgICAgICBs b2NhdGlvbiBvZiBwY20gZHVtcCBmaWxlcyB0byBzYXZlLgo+IAo+ICBOT1RFOiBPYmplY3QgZmls ZXMgYXJlIGJ1aWx0IGF0IHRoZSBwbGFjZSB3aGVyZSBjb25maWd1cmUgaXMgbGF1bmNoZWQuCj4g IEVPRgo+IEBAIC0yNjkwLDYgKzI2OTEsNyBAQCBQQVRIU19MSVNUPSIKPiAgICAgIHByZWZpeAo+ ICAgICAgc2hsaWJkaXIKPiAgICAgIGluc3RhbGxfbmFtZV9kaXIKPiArICAgIGR1bXBkaXIKPiAg Igo+IAo+ICBDTURMSU5FX1NFVD0iCj4gQEAgLTQxMjMsNiArNDEyNSw5IEBAIGluY2Rpcl9kZWZh dWx0PScke3ByZWZpeH0vaW5jbHVkZScKPiAgbGliZGlyX2RlZmF1bHQ9JyR7cHJlZml4fS9saWIn Cj4gIG1hbmRpcl9kZWZhdWx0PScke3ByZWZpeH0vc2hhcmUvbWFuJwo+IAo+ICsjIHJ1bnRpbWUg cGF0aAo+ICtkdW1wZGlyX2RlZmF1bHQ9Jy90bXAvJwo+ICsKPiAgIyB0b29sY2hhaW4KPiAgYXJf ZGVmYXVsdD0iYXIiCj4gIGNjX2RlZmF1bHQ9ImdjYyIKPiBAQCAtODExOCw2ICs4MTIzLDcgQEAg RE9DRElSPVwkKERFU1RESVIpJGRvY2Rpcgo+ICBNQU5ESVI9XCQoREVTVERJUikkbWFuZGlyCj4g IFBLR0NPTkZJR0RJUj1cJChERVNURElSKSRwa2djb25maWdkaXIKPiAgSU5TVEFMTF9OQU1FX0RJ Uj0kaW5zdGFsbF9uYW1lX2Rpcgo+ICtEVU1QRElSPSRkdW1wZGlyCj4gIFNSQ19QQVRIPSRzb3Vy Y2VfcGF0aAo+ICBTUkNfTElOSz0kc291cmNlX2xpbmsKPiAgaWZuZGVmIE1BSU5fTUFLRUZJTEUK PiBAQCAtODI2Nyw2ICs4MjczLDcgQEAgY2F0ID4gJFRNUEggPDxFT0YKPiAgI2RlZmluZSBDT05G SUdfVEhJU19ZRUFSIDIwMjUKPiAgI2RlZmluZSBGRk1QRUdfREFUQURJUiAiJChldmFsIGNfZXNj YXBlICRkYXRhZGlyKSIKPiAgI2RlZmluZSBBVkNPTlZfREFUQURJUiAiJChldmFsIGNfZXNjYXBl ICRkYXRhZGlyKSIKPiArI2RlZmluZSBGRk1QRUdfRFVNUERJUiAiJChldmFsIGNfZXNjYXBlICRk dW1wZGlyKSIKPiAgI2RlZmluZSBDQ19JREVOVCAiJChjX2VzY2FwZSAke2NjX2lkZW50Oi1Vbmtu b3duIGNvbXBpbGVyfSkiCj4gICNkZWZpbmUgT1NfTkFNRSAkdGFyZ2V0X29zCj4gICNkZWZpbmUg RVhURVJOX1BSRUZJWCAiJHtleHRlcm5fcHJlZml4fSIKPiBkaWZmIC0tZ2l0IGEvbGliYXZmaWx0 ZXIvYXZmaWx0ZXIuYyBiL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMKPiBpbmRleCA2NGMxMDc1YzQw Li45ZmM2MzA4NTQ0IDEwMDY0NAo+IC0tLSBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMKPiArKysg Yi9saWJhdmZpbHRlci9hdmZpbHRlci5jCj4gQEAgLTE5LDYgKzE5LDkgQEAKPiAgICogRm91bmRh dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAw MjExMC0xMzAxIFVTQQo+ICAgKi8KPiAKPiArI2luY2x1ZGUgPGZjbnRsLmg+Cj4gKyNpbmNsdWRl IDx1bmlzdGQuaD4KPiArCj4gICNpbmNsdWRlICJsaWJhdnV0aWwvYXZhc3NlcnQuaCIKPiAgI2lu Y2x1ZGUgImxpYmF2dXRpbC9hdnN0cmluZy5oIgo+ICAjaW5jbHVkZSAibGliYXZ1dGlsL2Jwcmlu dC5oIgo+IEBAIC0xOTUsNiArMTk4LDY2IEBAIGludCBhdmZpbHRlcl9saW5rKEFWRmlsdGVyQ29u dGV4dCAqc3JjLCB1bnNpZ25lZCBzcmNwYWQsCj4gICAgICByZXR1cm4gMDsKPiAgfQo+IAoKPiAr c3RhdGljIGF2X2NvbGQgdm9pZCBsaW5rX3VuaW5pdF9kdW1wX3BjbShBVkZpbHRlckxpbmsgKmxp bmssIGludCBzdG9wKQoKWW91IG5ldmVyIGNhbGwgaXQgdGhpcyBmdW5jdGlvbiB3aXRoIHN0b3Ag IT0gMS4KCj4gK3sKPiArICAgIGlmIChsaW5rLT5kdW1wX3BjbV9mZHMpIHsKPiArICAgICAgICBp bnQgaTsKPiArICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGluay0+bmJfZHVtcF9wY21fZmRzOyBp KyspIHsKCj4gKyAgICAgICAgICAgIGlmIChsaW5rLT5kdW1wX3BjbV9mZHNbaV0pCj4gKyAgICAg ICAgICAgICAgICBjbG9zZShsaW5rLT5kdW1wX3BjbV9mZHNbaV0pOwoKMCBpcyBhIHZhbGlkIGZk LCAtMSBpcyB1c3VhbGx5IHVzZWQgZm9yIGludmFsaWQuCgo+ICsgICAgICAgIH0KCj4gKyAgICAg ICAgYXZfZnJlZShsaW5rLT5kdW1wX3BjbV9mZHMpOwo+ICsgICAgICAgIGxpbmstPmR1bXBfcGNt X2ZkcyAgICA9IE5VTEw7Cgphdl9mcmVlcCgpCgo+ICsgICAgICAgIGxpbmstPm5iX2R1bXBfcGNt X2ZkcyA9IDA7Cj4gKyAgICB9Cj4gKwoKPiArICAgIGlmIChzdG9wKQo+ICsgICAgICAgIGxpbmst PmR1bXBfcGNtID0gMDsKClNlZW1zIHJlZHVuZGFudCB3aXRoIGR1bXBfcGNtX2ZkcyBiZWluZyBO VUxMIG9yIG5vdC4gVGhlIGZhY3QgdGhhdCBzdG9wCmlzIGFsd2F5cyAxIG1ha2VzIGl0IGNvbmZ1 c2luZy4KCj4gK30KPiArCj4gK3N0YXRpYyBhdl9jb2xkIGludCBsaW5rX2luaXRfZHVtcF9wY20o QVZGaWx0ZXJMaW5rICpsaW5rKQo+ICt7Cj4gKyAgICBjaGFyIHBhdGhbNDA5Nl07Cj4gKyAgICBp bnQgZmQsIGk7Cj4gKwoKPiArICAgIGxpbmstPm5iX2R1bXBfcGNtX2ZkcyA9IGF2X3NhbXBsZV9m bXRfaXNfcGxhbmFyKGxpbmstPmZvcm1hdCk/IGxpbmstPmNoX2xheW91dC5uYl9jaGFubmVscyA6 IDE7Cj4gKyAgICBsaW5rLT5kdW1wX3BjbV9mZHMgPSBhdl9tYWxsb2NfYXJyYXkobGluay0+bmJf ZHVtcF9wY21fZmRzLCBzaXplb2YoaW50KSk7CgpJIHRoaW5rIHR1cm5pbmcgcGxhbmFyIGludG8g cGFja2V0IHdoZW4gZHVtcGluZyB3b3VsZCBiZSBtdWNoIG1vcmUKY29udmVuaWVudCBhbmQgc2lt cGxlciB0byBpbXBsZW1lbnQuCgo+ICsgICAgaWYgKCFsaW5rLT5kdW1wX3BjbV9mZHMpCj4gKyAg ICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPiArCj4gKyAgICBmb3IgKGkgPSAwOyBpIDwg bGluay0+bmJfZHVtcF9wY21fZmRzOyBpKyspIHsKPiArICAgICAgICBzbnByaW50ZihwYXRoLCBz aXplb2YocGF0aCksIEZGTVBFR19EVU1QRElSIiUuMTZzLSUuOHMtJWQucGNtIiwgbGluay0+c3Jj LT5uYW1lLCBsaW5rLT5kc3QtPm5hbWUsIGkpOwoKPiArICAgICAgICBmZCA9IG9wZW4ocGF0aCwg T19XUk9OTFkgfCBPX0NSRUFUIHwgT19UUlVOQywgMDY0NCk7CgpJIHdvdWxkIGJlIG1vcmUgY29t Zm9ydGFibGUgd2l0aCBPX0VYQ0wgdGhlcmUgdG9vLgoKPiArICAgICAgICBpZiAoZmQgPCAwKSB7 Cj4gKyAgICAgICAgICAgIGxpbmtfdW5pbml0X2R1bXBfcGNtKGxpbmssIDEpOwo+ICsgICAgICAg ICAgICByZXR1cm4gQVZFUlJPUihlcnJubyk7Cj4gKyAgICAgICAgfQo+ICsgICAgICAgIGxpbmst PmR1bXBfcGNtX2Zkc1tpXSA9IGZkOwoKTG9nZ2luZyB0aGUgZmlsZSBuYW1lIHdvdWxkIGJlIGEg Z29vZCBpZGVhLgoKPiArICAgIH0KPiArCj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3Rh dGljIGludCBmaWx0ZXJfc2V0X2R1bXBfcGNtKEFWRmlsdGVyQ29udGV4dCAqZmlsdGVyLCBjb25z dCBjaGFyICp0YXJnZXQsIGludCBzZXQpCj4gK3sKPiArICAgIGludCBpOwo+ICsKPiArICAgIGZv ciAoaSA9IDA7IGkgPCBmaWx0ZXItPm5iX291dHB1dHM7IGkrKykgewo+ICsgICAgICAgIEFWRmls dGVyTGluayAqbGluayA9IGZpbHRlci0+b3V0cHV0c1tpXTsKPiArICAgICAgICBpZiAoIXRhcmdl dCB8fCAhc3RyY21wKGxpbmstPmRzdC0+bmFtZSwgdGFyZ2V0KSkgewoKPiArICAgICAgICAgICAg aWYgKHNldCkgewoKPiArICAgICAgICAgICAgICAgIGxpbmstPmR1bXBfcGNtID0gMTsKCldoeSBu b3QgaW5pdCBpdCBpbW1lZGlhdGVseT8KCj4gKyAgICAgICAgICAgIH0gZWxzZQo+ICsgICAgICAg ICAgICAgICAgbGlua191bmluaXRfZHVtcF9wY20obGluaywgMSk7CgpJIGRvIG5vdCByZW1lbWJl ciB3aGF0IHdlIGRlY2lkZWQsIGJ1dCBtaXhpbmcgYnJhY2VzIGFuZCBubyBicmFjZXMgaXMKbm90 IGl0LiBTYW1lIGJlbG93LgoKPiArCj4gKyAgICAgICAgICAgIGlmICh0YXJnZXQpCj4gKyAgICAg ICAgICAgICAgICByZXR1cm4gMDsKPiArICAgICAgICB9Cj4gKyAgICB9Cj4gKwo+ICsgICAgcmV0 dXJuIHRhcmdldCA/IEFWRVJST1IoRUlOVkFMKSA6IDA7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lk IGxpbmtfZnJlZShBVkZpbHRlckxpbmsgKipsaW5rKQo+ICB7Cj4gICAgICBGaWx0ZXJMaW5rSW50 ZXJuYWwgKmxpOwo+IEBAIC0yMDgsNiArMjcxLDggQEAgc3RhdGljIHZvaWQgbGlua19mcmVlKEFW RmlsdGVyTGluayAqKmxpbmspCj4gICAgICBhdl9jaGFubmVsX2xheW91dF91bmluaXQoJigqbGlu ayktPmNoX2xheW91dCk7Cj4gICAgICBhdl9mcmFtZV9zaWRlX2RhdGFfZnJlZSgmKCpsaW5rKS0+ c2lkZV9kYXRhLCAmKCpsaW5rKS0+bmJfc2lkZV9kYXRhKTsKPiAKPiArICAgIGxpbmtfdW5pbml0 X2R1bXBfcGNtKCpsaW5rLCAxKTsKPiArCj4gICAgICBhdl9idWZmZXJfdW5yZWYoJmxpLT5sLmh3 X2ZyYW1lc19jdHgpOwo+IAo+ICAgICAgYXZfZnJlZXAobGluayk7Cj4gQEAgLTYxNyw2ICs2ODIs MTAgQEAgaW50IGF2ZmlsdGVyX3Byb2Nlc3NfY29tbWFuZChBVkZpbHRlckNvbnRleHQgKmZpbHRl ciwgY29uc3QgY2hhciAqY21kLCBjb25zdCBjaGEKPiAgICAgICAgICBpZiAocmVzID09IGxvY2Fs X3JlcykKPiAgICAgICAgICAgICAgYXZfbG9nKGZpbHRlciwgQVZfTE9HX0lORk8sICIlcyIsIHJl cyk7Cj4gICAgICAgICAgcmV0dXJuIDA7Cj4gKyAgICB9ZWxzZSBpZighc3RyY21wKGNtZCwgImR1 bXBfcmF3X3N0YXJ0IikpIHsKPiArICAgICAgICByZXR1cm4gZmlsdGVyX3NldF9kdW1wX3BjbShm aWx0ZXIsIGFyZywgMSk7Cj4gKyAgICB9ZWxzZSBpZighc3RyY21wKGNtZCwgImR1bXBfcmF3X3N0 b3AiKSkgewo+ICsgICAgICAgIHJldHVybiBmaWx0ZXJfc2V0X2R1bXBfcGNtKGZpbHRlciwgYXJn LCAwKTsKPiAgICAgIH1lbHNlIGlmKCFzdHJjbXAoY21kLCAiZW5hYmxlIikpIHsKPiAgICAgICAg ICByZXR1cm4gc2V0X2VuYWJsZV9leHByKGZmZmlsdGVyY3R4KGZpbHRlciksIGFyZyk7Cj4gICAg ICB9ZWxzZSBpZiAoZmZmaWx0ZXIoZmlsdGVyLT5maWx0ZXIpLT5wcm9jZXNzX2NvbW1hbmQpIHsK PiBAQCAtMTA1MCw2ICsxMTE5LDQxIEBAIGZhaWw6Cj4gICAgICByZXR1cm4gcmV0Owo+ICB9Cj4g Cj4gK3N0YXRpYyBpbnQgbGlua19kdW1wX2ZyYW1lKEFWRmlsdGVyTGluayAqbGluaywgQVZGcmFt ZSAqZnJhbWUpCj4gK3sKPiArICAgIGludCBzYW1wbGVzX3NpemUsIHJldDsKPiArCj4gKyAgICBp ZiAoIWxpbmstPmR1bXBfcGNtX2Zkcykgewo+ICsgICAgICAgIHJldCA9IGxpbmtfaW5pdF9kdW1w X3BjbShsaW5rKTsKPiArICAgICAgICBpZiAocmV0IDwgMCkKPiArICAgICAgICAgICAgcmV0dXJu IHJldDsKPiArICAgIH0KPiArCj4gKyAgICBzYW1wbGVzX3NpemUgPSBhdl9nZXRfYnl0ZXNfcGVy X3NhbXBsZShmcmFtZS0+Zm9ybWF0KSAqIGZyYW1lLT5uYl9zYW1wbGVzOwo+ICsgICAgaWYgKGF2 X3NhbXBsZV9mbXRfaXNfcGxhbmFyKGZyYW1lLT5mb3JtYXQpKSB7Cj4gKyAgICAgICAgaW50IGk7 Cj4gKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGxpbmstPm5iX2R1bXBfcGNtX2ZkcyAmJiBpIDwg ZnJhbWUtPmNoX2xheW91dC5uYl9jaGFubmVsczsgaSsrKSB7Cgo+ICsgICAgICAgICAgICBpZiAo aSA8IEFWX05VTV9EQVRBX1BPSU5URVJTKSB7Cj4gKyAgICAgICAgICAgICAgICByZXQgPSB3cml0 ZShsaW5rLT5kdW1wX3BjbV9mZHNbaV0sIGZyYW1lLT5kYXRhW2ldLCBzYW1wbGVzX3NpemUpOwo+ ICsgICAgICAgICAgICB9IGVsc2UKPiArICAgICAgICAgICAgICAgIHJldCA9IHdyaXRlKGxpbmst PmR1bXBfcGNtX2Zkc1tpXSwgZnJhbWUtPmV4dGVuZGVkX2RhdGFbaSAtIEFWX05VTV9EQVRBX1BP SU5URVJTXSwgc2FtcGxlc19zaXplKTsKClRoaXMgaXMgbm90IGhvdyBleHRlbmRlZF9kYXRhIHdv cmtzLgoKWW91IG5lZWQgdG8gbG9vcCBpbiBjYXNlIG9mIHNob3J0IHdyaXRlcy4gT3IgbWF5YmUs IHNpbXBsZXI6IHVzZSBzdGRpby4KU2FtZSBiZWxvdy4KCj4gKwo+ICsgICAgICAgICAgICBpZiAo cmV0IDwgMCkKPiArICAgICAgICAgICAgICAgIGdvdG8gZXJyOwo+ICsgICAgICAgIH0KPiArICAg IH0gZWxzZSB7Cj4gKyAgICAgICAgcmV0ID0gd3JpdGUobGluay0+ZHVtcF9wY21fZmRzWzBdLCBm cmFtZS0+ZGF0YVswXSwgc2FtcGxlc19zaXplICogZnJhbWUtPmNoX2xheW91dC5uYl9jaGFubmVs cyk7Cj4gKyAgICAgICAgaWYgKHJldCA8IDApCj4gKyAgICAgICAgICAgIGdvdG8gZXJyOwo+ICsK PiArICAgIH0KPiArCj4gKyAgICByZXR1cm4gMDsKPiArZXJyOgo+ICsgICAgbGlua191bmluaXRf ZHVtcF9wY20obGluaywgMSk7Cj4gKyAgICByZXR1cm4gQVZFUlJPUihlcnJubyk7Cj4gK30KPiAr Cj4gIGludCBmZl9maWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5rICpsaW5rLCBBVkZyYW1lICpmcmFt ZSkKPiAgewo+ICAgICAgRmlsdGVyTGlua0ludGVybmFsICogY29uc3QgbGkgPSBmZl9saW5rX2lu dGVybmFsKGxpbmspOwo+IEBAIC0xMDg3LDYgKzExOTEsMTIgQEAgaW50IGZmX2ZpbHRlcl9mcmFt ZShBVkZpbHRlckxpbmsgKmxpbmssIEFWRnJhbWUgKmZyYW1lKQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaW5rLT50aW1lX2Jhc2UpOwo+ICAgICAgfQo+IAo+ICsg ICAgaWYgKGxpbmstPmR1bXBfcGNtICYmIGxpbmstPnR5cGUgPT0gQVZNRURJQV9UWVBFX0FVRElP KSB7Cj4gKyAgICAgICAgcmV0ID0gbGlua19kdW1wX2ZyYW1lKGxpbmssIGZyYW1lKTsKPiArICAg ICAgICBpZiAocmV0IDwgMCkKPiArICAgICAgICAgICAgYXZfbG9nKGxpbmstPmRzdCwgQVZfTE9H X0VSUk9SLCAiRHVtcCBwY20gZmlsZXMgZmFpbGVkIHdpdGggJWRcbiIsIHJldCk7Cj4gKyAgICB9 Cj4gKwo+ICAgICAgbGktPmZyYW1lX2Jsb2NrZWRfaW4gPSBsaS0+ZnJhbWVfd2FudGVkX291dCA9 IDA7Cj4gICAgICBsaS0+bC5mcmFtZV9jb3VudF9pbisrOwo+ICAgICAgbGktPmwuc2FtcGxlX2Nv dW50X2luICs9IGZyYW1lLT5uYl9zYW1wbGVzOwo+IGRpZmYgLS1naXQgYS9saWJhdmZpbHRlci9h dmZpbHRlci5oIGIvbGliYXZmaWx0ZXIvYXZmaWx0ZXIuaAo+IGluZGV4IGE4OWQzY2Y2NTguLjZk MDRiOWRhNzcgMTAwNjQ0Cj4gLS0tIGEvbGliYXZmaWx0ZXIvYXZmaWx0ZXIuaAo+ICsrKyBiL2xp YmF2ZmlsdGVyL2F2ZmlsdGVyLmgKPiBAQCAtNDA0LDYgKzQwNCwxMCBAQCBzdHJ1Y3QgQVZGaWx0 ZXJMaW5rIHsKPiAgICAgIGludCBzYW1wbGVfcmF0ZTsgICAgICAgICAgICAvLy88IHNhbXBsZXMg cGVyIHNlY29uZAo+ICAgICAgQVZDaGFubmVsTGF5b3V0IGNoX2xheW91dDsgIC8vLzwgY2hhbm5l bCBsYXlvdXQgb2YgY3VycmVudCBidWZmZXIgKHNlZSBsaWJhdnV0aWwvY2hhbm5lbF9sYXlvdXQu aCkKPiAKPiArICAgIGludCAgICAgICAgZHVtcF9wY207ICAgICAgIC8vLzwgZmxhZyB0byBkdW1w IHBjbQo+ICsgICAgaW50ICAgICAgICAqZHVtcF9wY21fZmRzOyAgIC8vLzwgZHVtcCBmaWxlcwo+ ICsgICAgdW5zaWduZWQgbmJfZHVtcF9wY21fZmRzOyAgIC8vLzwgbnVtYmVyIG9mIGR1bXAgZmls ZQo+ICsKPiAgICAgIC8qKgo+ICAgICAgICogRGVmaW5lIHRoZSB0aW1lIGJhc2UgdXNlZCBieSB0 aGUgUFRTIG9mIHRoZSBmcmFtZXMvc2FtcGxlcwo+ICAgICAgICogd2hpY2ggd2lsbCBwYXNzIHRo cm91Z2ggdGhpcyBsaW5rLgoKUmVnYXJkcywKCi0tIAogIE5pY29sYXMgR2VvcmdlCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWls aW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxt YW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92 ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3Qg InVuc3Vic2NyaWJlIi4K