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 ESMTPS id 2ED034E6F3 for ; Tue, 6 May 2025 14:21:17 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B9C3D68BD02; Tue, 6 May 2025 17:20:58 +0300 (EEST) Received: from mail-yw1-f179.google.com (mail-yw1-f179.google.com [209.85.128.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A516068BD02 for ; Tue, 6 May 2025 17:20:56 +0300 (EEST) Received: by mail-yw1-f179.google.com with SMTP id 00721157ae682-6ff37565232so46384087b3.3 for ; Tue, 06 May 2025 07:20:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746541255; x=1747146055; darn=ffmpeg.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=vcScEzjfLDkIJElZ5P6ZcGLEsff/Wjpxy1yunvcCYx8=; b=ApMKSYFdsPkN3yWzUx3eysVyyLW7b3wJ3q6wxXsxggECH8j3KPak1y0lGvbXbXdzfF K/Q02UwDx2s0n0yatJMo4gtuNnbfyfB5b1B362SqOA0Yt7ZT4M2eeVRB3o7AZnE6Q8sF 6r4DCwsh+sl+Pci0G0JmtznbDIzdTrtzNvV8NxJBi7d2QYO1mE2GUpQGY1TqU2S5zkVI gjCq1X1/b/u7iEJGcLyFGrwqRZo2uiSYDHThR4vBiLg/Q+Bszd+H4T1lPkMeQDRKbjgi YRpdKRGGXStqs6vQEv6EOkWqar+00spEhp+Y5UNBgkXOji/f87AHnHuc/sOGDb5vSuPM EBcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746541255; x=1747146055; h=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=vcScEzjfLDkIJElZ5P6ZcGLEsff/Wjpxy1yunvcCYx8=; b=aXfHLrQo+WgbDrJ2BeZD/ccXDA4wEwcZiWA0tNEi12zNbsxwFytcQ4FDvh3tzEqkc8 zFYoPawTK+GCtKj9HN3tMpm7easy5Z0mzLVI2g7SF1W4VRRdZIBo6zpd1slIpEW0wuVG cG18Kw/SdGXq4XpPwYI7bWcVvTXQu0nOcsVMmmBxPo/8+LdIBI/IIN54LtwMb3YJ53DT wkApYNfycUFe28tpYimqmoQj/x6x7IBaBWW87KCCubgBSGyTUhXEvvqdKuIYvCzEnNRE bmXsH4WBqpiK7gPuTijDKXre1XtbAQSHwZQyylxN7ZelFO88VhVjdsl5nzsLJ2AI9f/f c42A== X-Gm-Message-State: AOJu0YwUx92lpNsEABh86btAv2X5tVAHoaePkC3EmlYuZ1+o0nSjY5Af uzqCkODsBt8Kb7ZOKZKMpp7uX6bGCrdImPPYaXZMK4G1hjVn3L1no9k8cX5/Q+1wu73hXz0Uv8s kSVnTFdtGHWuGTa3mWRZK86489xUuWxDS X-Gm-Gg: ASbGnctkAmeXN0o/dxK/yO/VOWZ2MIR2gMjNhSjQe8Pvl/iV17pIVyWjPqHuBu13y06 sgHO5HrWwGU9mKzLmw8vhNyKUdUstendVxkpnb2K15aQm2GfSbPdGZn9YLM3sT4lU+qxZH7FaAY UQD2pFsd9MyJkg8qWsctgQ4ao= X-Google-Smtp-Source: AGHT+IFvI3gt7vAm7mqJgxOVqh2sJfIBnsBnircZEbDommojk3qHHyTg16bt3ddtY7hdQwat/3NCbg5ZLmhHx/23CR0= X-Received: by 2002:a05:690c:358a:b0:6fb:b907:d965 with SMTP id 00721157ae682-708cf0117dbmr209002237b3.3.1746541254263; Tue, 06 May 2025 07:20:54 -0700 (PDT) MIME-Version: 1.0 References: <20250503170329.46135-1-romain.beauxis@gmail.com> <20250503170329.46135-2-romain.beauxis@gmail.com> <20250504140433.GB29660@pb2> <20250504222324.GC29660@pb2> In-Reply-To: <20250504222324.GC29660@pb2> From: Romain Beauxis Date: Tue, 6 May 2025 09:20:43 -0500 X-Gm-Features: ATxdqUGxPp0rYn28nP0XEVSlETzGSpAhMlELfVtCk1er223_rrLR9Sdj-4gz9AA Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH v3 1/2] libavformat/oggdec.c: Changing the packet() callback API/Return value 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: TGUgZGltLiA0IG1haSAyMDI1IMOgIDE3OjIzLCBNaWNoYWVsIE5pZWRlcm1heWVyCjxtaWNoYWVs QG5pZWRlcm1heWVyLmNjPiBhIMOpY3JpdCA6Cj4KPiBPbiBTdW4sIE1heSAwNCwgMjAyNSBhdCAx MTo0MjoxM0FNIC0wNTAwLCBSb21haW4gQmVhdXhpcyB3cm90ZToKPiA+IExlIGRpbS4gNCBtYWkg MjAyNSDDoCAwOTowNCwgTWljaGFlbCBOaWVkZXJtYXllciA8bWljaGFlbEBuaWVkZXJtYXllci5j Yz4KYQo+ID4gw6ljcml0IDoKPiA+ID4KPiA+ID4gT24gU2F0LCBNYXkgMDMsIDIwMjUgYXQgMTI6 MDM6MjhQTSAtMDUwMCwgUm9tYWluIEJlYXV4aXMgd3JvdGU6Cj4gPiA+ID4gLS0tCj4gPiA+ID4g IGxpYmF2Zm9ybWF0L29nZ2RlYy5jIHwgMjIgKysrKysrKysrKysrKystLS0tLS0tLQo+ID4gPiA+ ICBsaWJhdmZvcm1hdC9vZ2dkZWMuaCB8ICA2ICsrKysrKwo+ID4gPiA+ICAyIGZpbGVzIGNoYW5n ZWQsIDIwIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4gPiA+ID4KPiA+ID4gPiBkaWZm IC0tZ2l0IGEvbGliYXZmb3JtYXQvb2dnZGVjLmMgYi9saWJhdmZvcm1hdC9vZ2dkZWMuYwo+ID4g PiA+IGluZGV4IDUzMzlmZGQzMmMuLjliYWY4MDQwYTkgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvbGli YXZmb3JtYXQvb2dnZGVjLmMKPiA+ID4gPiArKysgYi9saWJhdmZvcm1hdC9vZ2dkZWMuYwo+ID4g PiA+IEBAIC02MDUsMjAgKzYwNSwyNiBAQCBzdGF0aWMgaW50IG9nZ19wYWNrZXQoQVZGb3JtYXRD b250ZXh0ICpzLCBpbnQKPiA+ICpzaWQsIGludCAqZHN0YXJ0LCBpbnQgKmRzaXplLAo+ID4gPiA+ ICAgICAgfSBlbHNlIHsKPiA+ID4gPiAgICAgICAgICBvcy0+cGZsYWdzICAgID0gMDsKPiA+ID4g PiAgICAgICAgICBvcy0+cGR1cmF0aW9uID0gMDsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgICAg cmV0ID0gMDsKPiA+ID4gPiAgICAgICAgICBpZiAob3MtPmNvZGVjICYmIG9zLT5jb2RlYy0+cGFj a2V0KSB7Cj4gPiA+ID4gICAgICAgICAgICAgIGlmICgocmV0ID0gb3MtPmNvZGVjLT5wYWNrZXQo cywgaWR4KSkgPCAwKSB7Cj4gPiA+ID4gICAgICAgICAgICAgICAgICBhdl9sb2cocywgQVZfTE9H X0VSUk9SLCAiUGFja2V0IHByb2Nlc3NpbmcgZmFpbGVkOgo+ID4gJXNcbiIsIGF2X2VycjJzdHIo cmV0KSk7Cj4gPiA+ID4gICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiA+ICAgICAg ICAgICAgICB9Cj4gPiA+ID4gICAgICAgICAgfQo+ID4gPiA+IC0gICAgICAgIGlmIChzaWQpCj4g PiA+ID4gLSAgICAgICAgICAgICpzaWQgPSBpZHg7Cj4gPiA+ID4gLSAgICAgICAgaWYgKGRzdGFy dCkKPiA+ID4gPiAtICAgICAgICAgICAgKmRzdGFydCA9IG9zLT5wc3RhcnQ7Cj4gPiA+ID4gLSAg ICAgICAgaWYgKGRzaXplKQo+ID4gPiA+IC0gICAgICAgICAgICAqZHNpemUgPSBvcy0+cHNpemU7 Cj4gPiA+ID4gLSAgICAgICAgaWYgKGZwb3MpCj4gPiA+ID4gLSAgICAgICAgICAgICpmcG9zID0g b3MtPnN5bmNfcG9zOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgICAgICBpZiAoIXJldCkgewo+ID4g PiA+ICsgICAgICAgICAgICBpZiAoc2lkKQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgKnNpZCA9 IGlkeDsKPiA+ID4gPiArICAgICAgICAgICAgaWYgKGRzdGFydCkKPiA+ID4gPiArICAgICAgICAg ICAgICAgICpkc3RhcnQgPSBvcy0+cHN0YXJ0Owo+ID4gPiA+ICsgICAgICAgICAgICBpZiAoZHNp emUpCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAqZHNpemUgPSBvcy0+cHNpemU7Cj4gPiA+ID4g KyAgICAgICAgICAgIGlmIChmcG9zKQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgKmZwb3MgPSBv cy0+c3luY19wb3M7Cj4gPiA+ID4gKyAgICAgICAgfQo+ID4gPiA+ICsKPiA+ID4gPiAgICAgICAg ICBvcy0+cHN0YXJ0ICArPSBvcy0+cHNpemU7Cj4gPiA+ID4gICAgICAgICAgb3MtPnBzaXplICAg ID0gMDsKPiA+ID4gPiAgICAgICAgICBpZihvcy0+cHN0YXJ0ID09IG9zLT5idWZwb3MpCj4gPiA+ ID4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L29nZ2RlYy5oIGIvbGliYXZmb3JtYXQvb2dnZGVj LmgKPiA+ID4gPiBpbmRleCA0M2RmMjNmNGNiLi4wOWY2OThmOTlhIDEwMDY0NAo+ID4gPiA+IC0t LSBhL2xpYmF2Zm9ybWF0L29nZ2RlYy5oCj4gPiA+ID4gKysrIGIvbGliYXZmb3JtYXQvb2dnZGVj LmgKPiA+ID4gPiBAQCAtMzgsNiArMzgsMTIgQEAgc3RydWN0IG9nZ19jb2RlYyB7Cj4gPiA+ID4g ICAgICAgKiAgICAgICAgIC0xIGlmIGFuIGVycm9yIG9jY3VycmVkIG9yIGZvciB1bnN1cHBvcnRl ZCBzdHJlYW0KPiA+ID4gPiAgICAgICAqLwo+ID4gPiA+ICAgICAgaW50ICgqaGVhZGVyKShBVkZv cm1hdENvbnRleHQgKiwgaW50KTsKPiA+ID4gPiArICAgIC8qKgo+ID4gPiA+ICsgICAgICogQXR0 ZW1wdCB0byBwcm9jZXNzIGEgcGFja2V0IGFzIGEgZGF0YSBwYWNrZXQKPiA+ID4gPiArICAgICAq IEByZXR1cm4gMSBpZiB0aGUgcGFja2V0IHdhcyBhIGhlYWRlciBmcm9tIGEgY2hhaW5lZApiaXRz dHJlYW0uCj4gPiA+ID4gKyAgICAgKiAgICAgICAgIDAgaWYgdGhlIHBhY2tldCB3YXMgYSByZWd1 bGFyIGRhdGEgcGFja2V0Lgo+ID4gPiA+ICsgICAgICogICAgICAgICAtMSBpZiBhbiBlcnJvciBv Y2N1cnJlZCBvciBmb3IgdW5zdXBwb3J0ZWQgc3RyZWFtCj4gPiA+ID4gKyAgICAgKi8KPiA+ID4g PiAgICAgIGludCAoKnBhY2tldCkoQVZGb3JtYXRDb250ZXh0ICosIGludCk7Cj4gPiA+ID4gICAg ICAvKioKPiA+ID4gPiAgICAgICAqIFRyYW5zbGF0ZSBhIGdyYW51bGUgaW50byBhIHRpbWVzdGFt cC4KPiA+ID4KPiA+ID4gSWFtIHN0aWxsIGNvbmZ1c2VkIGJ5IHRoaXMKPiA+ID4KPiA+ID4gSWYg dGhpcyBjaGFuZ2VzIHRoZSBBUEkgZm9yIG9nZ19jb2RlYy5wYWNrZXQoKQo+ID4gPiBhbmQgaW4g dGhlIHNhbWUgcGF0Y2ggdGhlcmVzIGEgY2hhbmdlIHRvIG9nZ19wYWNrZXQoKSB3aGljaCB1c2Vz Cj4gPiA+IG9nZ19jb2RlYy5wYWNrZXQoKQo+ID4gPgo+ID4gPiBidXQgdGhlbiB0aGVyZSBpcyBh IDJuZCBwYXRjaCB0aGF0IGFjdHVhbGx5IGNoYW5nZXMgdGhlCmltcGxlbWVudGF0aW9ucwo+ID4g PiBvZiBvZ2dfY29kZWMucGFja2V0KCkgOgo+ID4gPgo+ID4gPiBzbyBhZnRlciB0aGUgZmlyc3Qg cGF0Y2gsIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBpcyBub3QgY29ycmVjdCwKPiA+ID4gSSB0aG91 Z2h0IHRoYXQgZG9jdW1lbnRhdGlvbiBhbmQgaW1wbGVtZW50YXRpb24gY2hhbmdlIHdvdWxkIGhh cHBlbgo+ID4gPiBpbiB0aGUgc2FtZSBwYXRjaCBhbmQgdGhlIHVzZSBvZiB0aGUgbW9yZSByZWZp bmVkIEFQSSB3b3VsZCB0aGVuIGJlIGluCj4gPiA+IGEgMm5kIHBhdGNoCj4gPiA+IGFtIGkgbWlz c2luZyBzb21ldGhpbmcgaGVyZSA/Cj4gPgo+ID4gSSBtdXN0IGhhdmUgbWlzaW50ZXJwcmV0ZWQg eW91ciBwcmV2aW91cyBtZXNzYWdlOgo+ID4KPiA+ID4gRG8geW91IHRoaW5rIHRoaXMgd291bGQg bWVyaXQgYSBzZXBlcmF0ZSBwYXRjaCA/Cj4gPiA+IEkgbWVhbiBwYXRjaCAjMSBjaGFuZ2luZyB0 aGUgcGFja2V0KCkgcmV0dXJuIHZhbHVlIGFuZCBjbGVhcmx5IHN0YXRpbmcKPiA+ID4gdGhhdCBp biB0aGUgY29tbWl0IG1lc3NhZ2UKPiA+ID4gYW5kIHBhdGNoICMyIHVzaW5nIHRoZSBuZXcgdmFs dWUgPwo+ID4KPiA+IExvb2tzIGxpa2UgeW91IG1lYW50IHRvIGRvIHRoZSByZXZlcnNlIG9mIHdo YXQgSSBzZW50LCBsZXQgbWUgbWFrZSBpdAptb3JlCj4gPiBjbGVhcjoKPiA+Cj4gPiBPcmRlciAj MToKPiA+IDEuIENoYW5nZSB0aGUgb2dnX2NvZGVjLnBhY2tldCgpIGltcGxlbWVudGF0aW9ucyB0 byByZXR1cm4gMSB3aGVuCnNraXBwaW5nCj4gPiBzaG91bGQgb2NjdXIKPiA+IDIuIENvbnN1bWUg dGhhdCB2YWx1ZSBpbiBvZ2dfcGFja2V0IGFuZCBpbXBsZW1lbnQgdGhlIGFjdHVhbCBza2lwIGlu IHRoZQo+ID4gb2dnIGJpdHN0cmVhbQo+ID4KPiA+IE9yZGVyICMyOgo+ID4gMS4gSW50cm9kdWNl IGEgbmV3IEFQSSBmdW5jdGlvbmFsaXR5IGluIG9nZ19wYWNrZXQgdGhhdCBpcyBvcHQtaW4sIGku ZS4KPiA+IHJldHVybmluZyAxIGluIHRoZSBvZ2cgcGFja2V0IGZ1bmN0aW9uIHRvIG9wdGlvbmFs bHkgc2tpcCBhIHBhY2tldCBmcm9tCnRoZQo+ID4gb2dnIGJpdHN0cmVhbS4gQVBJIGlzIGF2YWls YWJsZSBidXQgbm90IHVzZWQgeWV0Lgo+ID4gMi4gSW1wbGVtZW50IHRoZSBmdW5jdGlvbmFsaXR5 IGluIGFsbCB0aGUgZGlmZmVyZW50IG9nZ19jb2RlYy5wYWNrZXQoKQo+ID4gY29kZWMtc3BlY2lm aWMgZmlsZXMgdG8gc2tpcCBoZWFkZXIgcGFja2V0cy4KPiA+Cj4gPiBPcmRlciAjMiBpcyB3aGF0 IEkgc2VudC4gVG8gbWUgaXQgbWFrZXMgbW9yZSBzZW5zZS4gT25lIG9mIHRoZSByZWFzb25zCmZv cgo+ID4gdGhpcyBvcmRlciBpcyB0aGF0LCBhbHNvLCB0aGUgdGVzdCBkaWZmIHdvdWxkIGJlIGNv bG9jYXRlZCB3aXRoIHRoZQpjaGFuZ2UKPiA+IGluIHRoZSBhdHVhbCBjb2RlYy1zcGVjaWZpYyBj b2RlLiBJZiB5b3UgZG8gb3JkZXIgIzEsIHRoZSB0ZXN0IGRpZmYKd291bGQKPiA+IG9jY3VyIGlu IHRoZSBnZW5lcmljIGNoYW5nZXMgdG8gb2dnX3BhY2tldCwgbWFraW5nIGl0IGhhcmRlciB0byB0 cmFjawp3aGVyZQo+ID4gdGhlIGNvZGUgdGhhdCBhY3R1YWxseSBpbXBsZW1lbnRzIHRoZSB0ZXN0 IG91dHB1dCBjaGFuZ2VzIGNvbWVzIGZyb20uCj4KPiBJZiB5b3UgcHJlZmVyIG9yZGVyICMyIHRo ZW4gaSB0aGluaywgaXQgY291bGQgYmUgZG9uZSBsaWtlIHRoaXM6Cj4gKHdoYXQgYm90aGVycyBt ZSBpcyB0aGF0IEFQSSBkb2MgbWlzc21hdGNoaW5nIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24p Cj4KPiBQYXRjaCAjMSBkb2NzIG9ubHkKPiAgICAgLyoqCj4gICAgICAqIEF0dGVtcHQgdG8gcHJv Y2VzcyBhIHBhY2tldCBhcyBhIGRhdGEgcGFja2V0Cj4gICAgICAqIEByZXR1cm4gPCAwIChBVkVS Uk9SKSBjb2RlIG9yIC0xIG9uIGVycm9yCj4gICAgICAqICAgICAgICAgPT0wIGlmIHRoZSBwYWNr ZXQgd2FzIGEgcmVndWxhciBkYXRhIHBhY2tldC4KPiAgICAgICogICAgICAgICA9PTAgb3IgMSAg aWYgdGhlIHBhY2tldCB3YXMgYSBoZWFkZXIgZnJvbSBhIGNoYWluZWQKYml0c3RyZWFtLgo+ICAg ICAgKi8KPgo+IFBhdGNoICMyCj4gICAgIG9nZ19wYWNrZXQoKSBjaGFuZ2VzCj4gICAgIGFuZAo+ ICAgICAgKiBBdHRlbXB0IHRvIHByb2Nlc3MgYSBwYWNrZXQgYXMgYSBkYXRhIHBhY2tldAo+ICAg ICAgKiBAcmV0dXJuIDwgMCAoQVZFUlJPUikgY29kZSBvciAtMSBvbiBlcnJvcgo+ICAgICAgKiAg ICAgICAgID09MCBpZiB0aGUgcGFja2V0IHdhcyBhIHJlZ3VsYXIgZGF0YSBwYWNrZXQuCj4gICAg ICAqICAgICAgICAgPT0wIG9yIDEgIGlmIHRoZSBwYWNrZXQgd2FzIGEgaGVhZGVyIGZyb20gYSBj aGFpbmVkCmJpdHN0cmVhbS4KPiArICAgICogICAgICAgICAgICgxIHdpbGwgY2F1c2UgdGhlIHBh Y2tldCB0byBiZSBza2lwZWQgaW4gY2FsbGluZyBjb2RlCihvZ2dfcGFja2V0KCkpCj4gICAgICAq Lwo+Cj4gUGF0Y2ggIzMKPiBvZ2dwYXJzZW9wdXMuYyBjaGFuZ2VzIGFuZCBjb3JyZXNwb25kaW5n IGZhdGUgY2hhbmdlCj4KPiBQYXRjaCAjNAo+IG9nZ3BhcnNldm9yYmlzLmMgY2hhbmdlcyBhbmQg Y29ycmVzcG9uZGluZyBmYXRlIGNoYW5nZQo+Cj4gLi4uCj4KPiBQYXRjaCAjNgo+ICAgICAgKiAg ICAgICAgID09MCBpZiB0aGUgcGFja2V0IHdhcyBhIHJlZ3VsYXIgZGF0YSBwYWNrZXQuCj4gLSAg ICAqICAgICAgICAgPT0wIG9yIDEgIGlmIHRoZSBwYWNrZXQgd2FzIGEgaGVhZGVyIGZyb20gYSBj aGFpbmVkCmJpdHN0cmVhbS4KPiAtICAgICogICAgICAgICAgICgxIHdpbGwgY2F1c2UgdGhlIHBh Y2tldCB0byBiZSBza2lwZWQgaW4gY2FsbGluZyBjb2RlCihvZ2dfcGFja2V0KCkpCj4gKyAgICAq ICAgICAgICAgPT0xIGlmIHRoZSBwYWNrZXQgd2FzIGEgaGVhZGVyIGZyb20gYSBjaGFpbmVkIGJp dHN0cmVhbS4KPiArICAgICogICAgICAgICAgICAgVGhpcyB3aWxsIGNhdXNlIHRoZSBwYWNrZXQg dG8gYmUgc2tpcGVkIGluIGNhbGxpbmcKY29kZSAob2dnX3BhY2tldCgpCj4gICAgICAqLwo+Cj4K PiA+Cj4gPiBBdCB0aGUgZW5kIG9mIHRoZSBkYXksIEknbSBoYXBweSB0byBjb21taXQgdGhlc2Ug Y2hhbmdlcyBpbiBhbnkgc2hhcGUgb3IKPiA+IGZvcm0gc28gd2UgY2FuIG1vdmUgZm9yd2FyZCB3 aXRoIHRoZSByZXN0IG9mIHRoaXMgd29yay4KPgo+IEkgbGlrZSB0byBlbnN1cmUgdGhlIGNoYW5n ZXMgYXJlIHVuZGVyc3RhbmRhYmxlIG9uIGEgZmlyc3QgZ2xhbmNlLCBhbmQKdGhlIHdob2xlIGxv Z2ljCj4gaW4gb2dnKiBpcyBhIGJpdCBjb25mdXNpbmcgd2l0aCBhbGwgdGhlICpwYWNrZXQgc3R1 ZmYKClNvdW5kcyBnb29kLiBKdXN0IHNlbnQgdGhlIHVwZGF0ZWQgcGF0Y2hzZXQuIEhvcGVmdWxs eSB0aGF0IG9uZSB3aWxsIGJlCmFjY2VwdGFibGUuCgoKTGUgZGltLiA0IG1haSAyMDI1IMOgIDE3 OjIzLCBNaWNoYWVsIE5pZWRlcm1heWVyIDxtaWNoYWVsQG5pZWRlcm1heWVyLmNjPiBhCsOpY3Jp dCA6Cgo+IE9uIFN1biwgTWF5IDA0LCAyMDI1IGF0IDExOjQyOjEzQU0gLTA1MDAsIFJvbWFpbiBC ZWF1eGlzIHdyb3RlOgo+ID4gTGUgZGltLiA0IG1haSAyMDI1IMOgIDA5OjA0LCBNaWNoYWVsIE5p ZWRlcm1heWVyIDxtaWNoYWVsQG5pZWRlcm1heWVyLmNjPgo+IGEKPiA+IMOpY3JpdCA6Cj4gPiA+ Cj4gPiA+IE9uIFNhdCwgTWF5IDAzLCAyMDI1IGF0IDEyOjAzOjI4UE0gLTA1MDAsIFJvbWFpbiBC ZWF1eGlzIHdyb3RlOgo+ID4gPiA+IC0tLQo+ID4gPiA+ICBsaWJhdmZvcm1hdC9vZ2dkZWMuYyB8 IDIyICsrKysrKysrKysrKysrLS0tLS0tLS0KPiA+ID4gPiAgbGliYXZmb3JtYXQvb2dnZGVjLmgg fCAgNiArKysrKysKPiA+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCA4 IGRlbGV0aW9ucygtKQo+ID4gPiA+Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L29n Z2RlYy5jIGIvbGliYXZmb3JtYXQvb2dnZGVjLmMKPiA+ID4gPiBpbmRleCA1MzM5ZmRkMzJjLi45 YmFmODA0MGE5IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2xpYmF2Zm9ybWF0L29nZ2RlYy5jCj4gPiA+ ID4gKysrIGIvbGliYXZmb3JtYXQvb2dnZGVjLmMKPiA+ID4gPiBAQCAtNjA1LDIwICs2MDUsMjYg QEAgc3RhdGljIGludCBvZ2dfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgaW50Cj4gPiAqc2lk LCBpbnQgKmRzdGFydCwgaW50ICpkc2l6ZSwKPiA+ID4gPiAgICAgIH0gZWxzZSB7Cj4gPiA+ID4g ICAgICAgICAgb3MtPnBmbGFncyAgICA9IDA7Cj4gPiA+ID4gICAgICAgICAgb3MtPnBkdXJhdGlv biA9IDA7Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgICAgIHJldCA9IDA7Cj4gPiA+ID4gICAgICAg ICAgaWYgKG9zLT5jb2RlYyAmJiBvcy0+Y29kZWMtPnBhY2tldCkgewo+ID4gPiA+ICAgICAgICAg ICAgICBpZiAoKHJldCA9IG9zLT5jb2RlYy0+cGFja2V0KHMsIGlkeCkpIDwgMCkgewo+ID4gPiA+ ICAgICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIlBhY2tldCBwcm9jZXNz aW5nIGZhaWxlZDoKPiA+ICVzXG4iLCBhdl9lcnIyc3RyKHJldCkpOwo+ID4gPiA+ICAgICAgICAg ICAgICAgICAgcmV0dXJuIHJldDsKPiA+ID4gPiAgICAgICAgICAgICAgfQo+ID4gPiA+ICAgICAg ICAgIH0KPiA+ID4gPiAtICAgICAgICBpZiAoc2lkKQo+ID4gPiA+IC0gICAgICAgICAgICAqc2lk ID0gaWR4Owo+ID4gPiA+IC0gICAgICAgIGlmIChkc3RhcnQpCj4gPiA+ID4gLSAgICAgICAgICAg ICpkc3RhcnQgPSBvcy0+cHN0YXJ0Owo+ID4gPiA+IC0gICAgICAgIGlmIChkc2l6ZSkKPiA+ID4g PiAtICAgICAgICAgICAgKmRzaXplID0gb3MtPnBzaXplOwo+ID4gPiA+IC0gICAgICAgIGlmIChm cG9zKQo+ID4gPiA+IC0gICAgICAgICAgICAqZnBvcyA9IG9zLT5zeW5jX3BvczsKPiA+ID4gPiAr Cj4gPiA+ID4gKyAgICAgICAgaWYgKCFyZXQpIHsKPiA+ID4gPiArICAgICAgICAgICAgaWYgKHNp ZCkKPiA+ID4gPiArICAgICAgICAgICAgICAgICpzaWQgPSBpZHg7Cj4gPiA+ID4gKyAgICAgICAg ICAgIGlmIChkc3RhcnQpCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAqZHN0YXJ0ID0gb3MtPnBz dGFydDsKPiA+ID4gPiArICAgICAgICAgICAgaWYgKGRzaXplKQo+ID4gPiA+ICsgICAgICAgICAg ICAgICAgKmRzaXplID0gb3MtPnBzaXplOwo+ID4gPiA+ICsgICAgICAgICAgICBpZiAoZnBvcykK PiA+ID4gPiArICAgICAgICAgICAgICAgICpmcG9zID0gb3MtPnN5bmNfcG9zOwo+ID4gPiA+ICsg ICAgICAgIH0KPiA+ID4gPiArCj4gPiA+ID4gICAgICAgICAgb3MtPnBzdGFydCAgKz0gb3MtPnBz aXplOwo+ID4gPiA+ICAgICAgICAgIG9zLT5wc2l6ZSAgICA9IDA7Cj4gPiA+ID4gICAgICAgICAg aWYob3MtPnBzdGFydCA9PSBvcy0+YnVmcG9zKQo+ID4gPiA+IGRpZmYgLS1naXQgYS9saWJhdmZv cm1hdC9vZ2dkZWMuaCBiL2xpYmF2Zm9ybWF0L29nZ2RlYy5oCj4gPiA+ID4gaW5kZXggNDNkZjIz ZjRjYi4uMDlmNjk4Zjk5YSAxMDA2NDQKPiA+ID4gPiAtLS0gYS9saWJhdmZvcm1hdC9vZ2dkZWMu aAo+ID4gPiA+ICsrKyBiL2xpYmF2Zm9ybWF0L29nZ2RlYy5oCj4gPiA+ID4gQEAgLTM4LDYgKzM4 LDEyIEBAIHN0cnVjdCBvZ2dfY29kZWMgewo+ID4gPiA+ICAgICAgICogICAgICAgICAtMSBpZiBh biBlcnJvciBvY2N1cnJlZCBvciBmb3IgdW5zdXBwb3J0ZWQgc3RyZWFtCj4gPiA+ID4gICAgICAg Ki8KPiA+ID4gPiAgICAgIGludCAoKmhlYWRlcikoQVZGb3JtYXRDb250ZXh0ICosIGludCk7Cj4g PiA+ID4gKyAgICAvKioKPiA+ID4gPiArICAgICAqIEF0dGVtcHQgdG8gcHJvY2VzcyBhIHBhY2tl dCBhcyBhIGRhdGEgcGFja2V0Cj4gPiA+ID4gKyAgICAgKiBAcmV0dXJuIDEgaWYgdGhlIHBhY2tl dCB3YXMgYSBoZWFkZXIgZnJvbSBhIGNoYWluZWQKPiBiaXRzdHJlYW0uCj4gPiA+ID4gKyAgICAg KiAgICAgICAgIDAgaWYgdGhlIHBhY2tldCB3YXMgYSByZWd1bGFyIGRhdGEgcGFja2V0Lgo+ID4g PiA+ICsgICAgICogICAgICAgICAtMSBpZiBhbiBlcnJvciBvY2N1cnJlZCBvciBmb3IgdW5zdXBw b3J0ZWQgc3RyZWFtCj4gPiA+ID4gKyAgICAgKi8KPiA+ID4gPiAgICAgIGludCAoKnBhY2tldCko QVZGb3JtYXRDb250ZXh0ICosIGludCk7Cj4gPiA+ID4gICAgICAvKioKPiA+ID4gPiAgICAgICAq IFRyYW5zbGF0ZSBhIGdyYW51bGUgaW50byBhIHRpbWVzdGFtcC4KPiA+ID4KPiA+ID4gSWFtIHN0 aWxsIGNvbmZ1c2VkIGJ5IHRoaXMKPiA+ID4KPiA+ID4gSWYgdGhpcyBjaGFuZ2VzIHRoZSBBUEkg Zm9yIG9nZ19jb2RlYy5wYWNrZXQoKQo+ID4gPiBhbmQgaW4gdGhlIHNhbWUgcGF0Y2ggdGhlcmVz IGEgY2hhbmdlIHRvIG9nZ19wYWNrZXQoKSB3aGljaCB1c2VzCj4gPiA+IG9nZ19jb2RlYy5wYWNr ZXQoKQo+ID4gPgo+ID4gPiBidXQgdGhlbiB0aGVyZSBpcyBhIDJuZCBwYXRjaCB0aGF0IGFjdHVh bGx5IGNoYW5nZXMgdGhlIGltcGxlbWVudGF0aW9ucwo+ID4gPiBvZiBvZ2dfY29kZWMucGFja2V0 KCkgOgo+ID4gPgo+ID4gPiBzbyBhZnRlciB0aGUgZmlyc3QgcGF0Y2gsIHRoZSBBUEkgZG9jdW1l bnRhdGlvbiBpcyBub3QgY29ycmVjdCwKPiA+ID4gSSB0aG91Z2h0IHRoYXQgZG9jdW1lbnRhdGlv biBhbmQgaW1wbGVtZW50YXRpb24gY2hhbmdlIHdvdWxkIGhhcHBlbgo+ID4gPiBpbiB0aGUgc2Ft ZSBwYXRjaCBhbmQgdGhlIHVzZSBvZiB0aGUgbW9yZSByZWZpbmVkIEFQSSB3b3VsZCB0aGVuIGJl IGluCj4gPiA+IGEgMm5kIHBhdGNoCj4gPiA+IGFtIGkgbWlzc2luZyBzb21ldGhpbmcgaGVyZSA/ Cj4gPgo+ID4gSSBtdXN0IGhhdmUgbWlzaW50ZXJwcmV0ZWQgeW91ciBwcmV2aW91cyBtZXNzYWdl Ogo+ID4KPiA+ID4gRG8geW91IHRoaW5rIHRoaXMgd291bGQgbWVyaXQgYSBzZXBlcmF0ZSBwYXRj aCA/Cj4gPiA+IEkgbWVhbiBwYXRjaCAjMSBjaGFuZ2luZyB0aGUgcGFja2V0KCkgcmV0dXJuIHZh bHVlIGFuZCBjbGVhcmx5IHN0YXRpbmcKPiA+ID4gdGhhdCBpbiB0aGUgY29tbWl0IG1lc3NhZ2UK PiA+ID4gYW5kIHBhdGNoICMyIHVzaW5nIHRoZSBuZXcgdmFsdWUgPwo+ID4KPiA+IExvb2tzIGxp a2UgeW91IG1lYW50IHRvIGRvIHRoZSByZXZlcnNlIG9mIHdoYXQgSSBzZW50LCBsZXQgbWUgbWFr ZSBpdAo+IG1vcmUKPiA+IGNsZWFyOgo+ID4KPiA+IE9yZGVyICMxOgo+ID4gMS4gQ2hhbmdlIHRo ZSBvZ2dfY29kZWMucGFja2V0KCkgaW1wbGVtZW50YXRpb25zIHRvIHJldHVybiAxIHdoZW4KPiBz a2lwcGluZwo+ID4gc2hvdWxkIG9jY3VyCj4gPiAyLiBDb25zdW1lIHRoYXQgdmFsdWUgaW4gb2dn X3BhY2tldCBhbmQgaW1wbGVtZW50IHRoZSBhY3R1YWwgc2tpcCBpbiB0aGUKPiA+IG9nZyBiaXRz dHJlYW0KPiA+Cj4gPiBPcmRlciAjMjoKPiA+IDEuIEludHJvZHVjZSBhIG5ldyBBUEkgZnVuY3Rp b25hbGl0eSBpbiBvZ2dfcGFja2V0IHRoYXQgaXMgb3B0LWluLCBpLmUuCj4gPiByZXR1cm5pbmcg MSBpbiB0aGUgb2dnIHBhY2tldCBmdW5jdGlvbiB0byBvcHRpb25hbGx5IHNraXAgYSBwYWNrZXQg ZnJvbQo+IHRoZQo+ID4gb2dnIGJpdHN0cmVhbS4gQVBJIGlzIGF2YWlsYWJsZSBidXQgbm90IHVz ZWQgeWV0Lgo+ID4gMi4gSW1wbGVtZW50IHRoZSBmdW5jdGlvbmFsaXR5IGluIGFsbCB0aGUgZGlm ZmVyZW50IG9nZ19jb2RlYy5wYWNrZXQoKQo+ID4gY29kZWMtc3BlY2lmaWMgZmlsZXMgdG8gc2tp cCBoZWFkZXIgcGFja2V0cy4KPiA+Cj4gPiBPcmRlciAjMiBpcyB3aGF0IEkgc2VudC4gVG8gbWUg aXQgbWFrZXMgbW9yZSBzZW5zZS4gT25lIG9mIHRoZSByZWFzb25zCj4gZm9yCj4gPiB0aGlzIG9y ZGVyIGlzIHRoYXQsIGFsc28sIHRoZSB0ZXN0IGRpZmYgd291bGQgYmUgY29sb2NhdGVkIHdpdGgg dGhlCj4gY2hhbmdlCj4gPiBpbiB0aGUgYXR1YWwgY29kZWMtc3BlY2lmaWMgY29kZS4gSWYgeW91 IGRvIG9yZGVyICMxLCB0aGUgdGVzdCBkaWZmIHdvdWxkCj4gPiBvY2N1ciBpbiB0aGUgZ2VuZXJp YyBjaGFuZ2VzIHRvIG9nZ19wYWNrZXQsIG1ha2luZyBpdCBoYXJkZXIgdG8gdHJhY2sKPiB3aGVy ZQo+ID4gdGhlIGNvZGUgdGhhdCBhY3R1YWxseSBpbXBsZW1lbnRzIHRoZSB0ZXN0IG91dHB1dCBj aGFuZ2VzIGNvbWVzIGZyb20uCj4KPiBJZiB5b3UgcHJlZmVyIG9yZGVyICMyIHRoZW4gaSB0aGlu aywgaXQgY291bGQgYmUgZG9uZSBsaWtlIHRoaXM6Cj4gKHdoYXQgYm90aGVycyBtZSBpcyB0aGF0 IEFQSSBkb2MgbWlzc21hdGNoaW5nIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24pCj4KPiBQYXRj aCAjMSBkb2NzIG9ubHkKPiAgICAgLyoqCj4gICAgICAqIEF0dGVtcHQgdG8gcHJvY2VzcyBhIHBh Y2tldCBhcyBhIGRhdGEgcGFja2V0Cj4gICAgICAqIEByZXR1cm4gPCAwIChBVkVSUk9SKSBjb2Rl IG9yIC0xIG9uIGVycm9yCj4gICAgICAqICAgICAgICAgPT0wIGlmIHRoZSBwYWNrZXQgd2FzIGEg cmVndWxhciBkYXRhIHBhY2tldC4KPiAgICAgICogICAgICAgICA9PTAgb3IgMSAgaWYgdGhlIHBh Y2tldCB3YXMgYSBoZWFkZXIgZnJvbSBhIGNoYWluZWQKPiBiaXRzdHJlYW0uCj4gICAgICAqLwo+ Cj4gUGF0Y2ggIzIKPiAgICAgb2dnX3BhY2tldCgpIGNoYW5nZXMKPiAgICAgYW5kCj4gICAgICAq IEF0dGVtcHQgdG8gcHJvY2VzcyBhIHBhY2tldCBhcyBhIGRhdGEgcGFja2V0Cj4gICAgICAqIEBy ZXR1cm4gPCAwIChBVkVSUk9SKSBjb2RlIG9yIC0xIG9uIGVycm9yCj4gICAgICAqICAgICAgICAg PT0wIGlmIHRoZSBwYWNrZXQgd2FzIGEgcmVndWxhciBkYXRhIHBhY2tldC4KPiAgICAgICogICAg ICAgICA9PTAgb3IgMSAgaWYgdGhlIHBhY2tldCB3YXMgYSBoZWFkZXIgZnJvbSBhIGNoYWluZWQK PiBiaXRzdHJlYW0uCj4gKyAgICAqICAgICAgICAgICAoMSB3aWxsIGNhdXNlIHRoZSBwYWNrZXQg dG8gYmUgc2tpcGVkIGluIGNhbGxpbmcgY29kZQo+IChvZ2dfcGFja2V0KCkpCj4gICAgICAqLwo+ Cj4gUGF0Y2ggIzMKPiBvZ2dwYXJzZW9wdXMuYyBjaGFuZ2VzIGFuZCBjb3JyZXNwb25kaW5nIGZh dGUgY2hhbmdlCj4KPiBQYXRjaCAjNAo+IG9nZ3BhcnNldm9yYmlzLmMgY2hhbmdlcyBhbmQgY29y cmVzcG9uZGluZyBmYXRlIGNoYW5nZQo+Cj4gLi4uCj4KPiBQYXRjaCAjNgo+ICAgICAgKiAgICAg ICAgID09MCBpZiB0aGUgcGFja2V0IHdhcyBhIHJlZ3VsYXIgZGF0YSBwYWNrZXQuCj4gLSAgICAq ICAgICAgICAgPT0wIG9yIDEgIGlmIHRoZSBwYWNrZXQgd2FzIGEgaGVhZGVyIGZyb20gYSBjaGFp bmVkCj4gYml0c3RyZWFtLgo+IC0gICAgKiAgICAgICAgICAgKDEgd2lsbCBjYXVzZSB0aGUgcGFj a2V0IHRvIGJlIHNraXBlZCBpbiBjYWxsaW5nIGNvZGUKPiAob2dnX3BhY2tldCgpKQo+ICsgICAg KiAgICAgICAgID09MSBpZiB0aGUgcGFja2V0IHdhcyBhIGhlYWRlciBmcm9tIGEgY2hhaW5lZCBi aXRzdHJlYW0uCj4gKyAgICAqICAgICAgICAgICAgIFRoaXMgd2lsbCBjYXVzZSB0aGUgcGFja2V0 IHRvIGJlIHNraXBlZCBpbiBjYWxsaW5nIGNvZGUKPiAob2dnX3BhY2tldCgpCj4gICAgICAqLwo+ Cj4KPiA+Cj4gPiBBdCB0aGUgZW5kIG9mIHRoZSBkYXksIEknbSBoYXBweSB0byBjb21taXQgdGhl c2UgY2hhbmdlcyBpbiBhbnkgc2hhcGUgb3IKPiA+IGZvcm0gc28gd2UgY2FuIG1vdmUgZm9yd2Fy ZCB3aXRoIHRoZSByZXN0IG9mIHRoaXMgd29yay4KPgo+IEkgbGlrZSB0byBlbnN1cmUgdGhlIGNo YW5nZXMgYXJlIHVuZGVyc3RhbmRhYmxlIG9uIGEgZmlyc3QgZ2xhbmNlLCBhbmQgdGhlCj4gd2hv bGUgbG9naWMKPiBpbiBvZ2cqIGlzIGEgYml0IGNvbmZ1c2luZyB3aXRoIGFsbCB0aGUgKnBhY2tl dCBzdHVmZgo+Cj4gdGh4Cj4KPiBbLi4uXQo+IC0tCj4gTWljaGFlbCAgICAgR251UEcgZmluZ2Vy cHJpbnQ6IDlGRjIxMjhCMTQ3RUY2NzMwQkFERjEzMzYxMUVDNzg3MDQwQjBGQUIKPgo+IER1cmlu ZyB0aW1lcyBvZiB1bml2ZXJzYWwgZGVjZWl0LCB0ZWxsaW5nIHRoZSB0cnV0aCBiZWNvbWVzIGEK PiByZXZvbHV0aW9uYXJ5IGFjdC4gLS0gR2VvcmdlIE9yd2VsbAo+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlz dAo+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4v bGlzdGluZm8vZmZtcGVnLWRldmVsCj4KPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92 ZSwgb3IgZW1haWwKPiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVj dCAidW5zdWJzY3JpYmUiLgo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5v cmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1 bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVl c3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K