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 A40964D01E for ; Fri, 14 Feb 2025 18:08:30 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 455D368BF11; Fri, 14 Feb 2025 20:08:27 +0200 (EET) Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2775968BA50 for ; Fri, 14 Feb 2025 20:08:21 +0200 (EET) Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-ab2b29dfc65so347055466b.1 for ; Fri, 14 Feb 2025 10:08:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739556500; x=1740161300; 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=rH7hUNVaHl3YWml89LyhEFE2ukL7rX61UZf07St/GoY=; b=jPp4+sNcwM11DgPXnD3K8bPp151SHD9mrqkAT6S7e+kRzd2BkJcoz0t+Qj/FqIeQC4 5km3UUpD4Evre5/ReAvCMI+AAqihHkPnrhOytQ9m+8+CSfXsYwnaXuFj9PvNEFoJGDjB iUvyX/PqYIJhuBr/OZdqjq73hM8sp0e/K191mRBtxnjL6v4z9rNOmqSZJtX9gir9sHKs H5ogM4k4MQuYZWiOY4pzwLOW4PcF6LbhRgKIb7gynZBJl0SM/pVVF+YMsRxBl/fbNEGp B9lGeHlpIR2uJtRVJSCwfDYZ1AwfHOT+QTgjizbz/SufRJdnfbc6wfH/KqiojequiopI Agmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739556500; x=1740161300; 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=rH7hUNVaHl3YWml89LyhEFE2ukL7rX61UZf07St/GoY=; b=fM2WhU7/wDZokK1SOnShQqHOIOOor/4vK/ppgmXMmFFxLuPDl3ubFJXND4ptxgs0zx E8cxiqXbDy74q0y7ui8Ngeiz35ziecBaiFJAzbkl95+vg8ttf9KrKqRMxWu3FdkLAsOF Q38t8DM98gjEaQSdBn5H8JIwPHE28etw3dqb0dvXwOXM7Fk/+NBywHo72wpqYmI6OHvu HgpKDET11QT24RU3S85QWKL5HSumayz0bu7qIxtL1RObE9/3PX8I48sDzIICBIVwg64w fB0FDymTttyopQ8X0rugAPYHY8maRiOPpvvAw9Lu+yZ5QYcMjCJU9N7zQAAP8jr4Xunw w5jQ== X-Gm-Message-State: AOJu0Yzyf6hMZllHbBnm8UVhdlGtW/Ci9KY73nfs/g9MQ1NG0pbTfG25 VqVBiefYsQCYnWZphuGfM9+ZJbSC/5dsv8cnAimEU48uE5eWCaaI1N3JYJvya+2057v5B1WJ9n9 0/jk69hgLV3mg+5mjMs+Ytl0mmt4krMB3 X-Gm-Gg: ASbGncs6S6ZJjMuO/pyTAsLuF5McutzJKwlIl9G2UJBBv3OgSwErSzoVew66L5XIAJa gTzSSqkcC3+PdRdzUXxYlnqAQYyBEZ39oMHkatXheiYDF5CD2v47XVxnaAlvB27h6eRmgYUpdWA lE1RxwNCJV1/7jZawtGQ9o8EoZmO8jbA== X-Google-Smtp-Source: AGHT+IGTIQy7B3OAPqYkUopnLN90d8Va2NmRDz4YVhpTLWIj1siHYsiH0U4xi7yihcbkPXDSRtfp5Tndt0bYmkic3X8= X-Received: by 2002:a17:906:3290:b0:aba:f6ff:d38a with SMTP id a640c23a62f3a-abb70dce3bbmr6961766b.29.1739556499598; Fri, 14 Feb 2025 10:08:19 -0800 (PST) MIME-Version: 1.0 References: <20250210192600.42502-1-romain.beauxis@gmail.com> <20250210192600.42502-4-romain.beauxis@gmail.com> <50634697-1610-417d-850f-64b1e2396ddd@lynne.ee> <221482ec-a0c4-4632-b7cc-49ae3ee8f14b@lynne.ee> In-Reply-To: <221482ec-a0c4-4632-b7cc-49ae3ee8f14b@lynne.ee> From: Romain Beauxis Date: Fri, 14 Feb 2025 12:08:06 -0600 X-Gm-Features: AWEUYZm99ChQXb5LInSGaJEDvw11jvJnYvbJ10YqJEgsVnwCYN5NbPAXAibuuls Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH v4 3/6] Pass secondary ogg/opus chained streams metadata. 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: TGUgdmVuLiAxNCBmw6l2ci4gMjAyNSDDoCAxMTo1NSwgTHlubmUgPGRldkBseW5uZS5lZT4gYSDD qWNyaXQgOgo+Cj4gT24gMTQvMDIvMjAyNSAxNzo1MCwgUm9tYWluIEJlYXV4aXMgd3JvdGU6Cj4g PiBMZSB2ZW4uIDE0IGbDqXZyLiAyMDI1IMOgIDEwOjE4LCBMeW5uZSA8ZGV2QGx5bm5lLmVlPiBh IMOpY3JpdCA6Cj4gPj4KPiA+Pgo+ID4+Cj4gPj4gT24gMTQvMDIvMjAyNSAxNjo0OCwgUm9tYWlu IEJlYXV4aXMgd3JvdGU6Cj4gPj4+IExlIGpldS4gMTMgZsOpdnIuIDIwMjUgw6AgMTc6MzcsIEx5 bm5lIDxkZXZAbHlubmUuZWU+IGEgw6ljcml0IDoKPiA+Pj4+Cj4gPj4+Pgo+ID4+Pj4KPiA+Pj4+ IE9uIDE0LzAyLzIwMjUgMDA6MjcsIFJvbWFpbiBCZWF1eGlzIHdyb3RlOgo+ID4+Pj4+IExlIGpl dS4gMTMgZsOpdnIuIDIwMjUgw6AgMTU6NTMsIEx5bm5lIDxkZXZAbHlubmUuZWU+IGEgw6ljcml0 IDoKPiA+Pj4+Pj4KPiA+Pj4+Pj4gT24gMTAvMDIvMjAyNSAyMDoyNSwgUm9tYWluIEJlYXV4aXMg d3JvdGU6Cj4gPj4+Pj4+PiBUaGVzZSBjaGFuZ2VzIHBhcnNlIG9nZy9vcHVzIGNvbW1lbnQgaW4g c2Vjb25kYXJ5IGNoYWluZWQgb2dnL29wdXMKPiA+Pj4+Pj4+IHN0cmVhbXMgYW5kIGF0dGFjaCB0 aGVtIGFzIGV4dHJhZGF0YSB0byB0aGUgY29ycmVzcG9uZGluZyBwYWNrZXQuCj4gPj4+Pj4+Pgo+ ID4+Pj4+Pj4gVGhleSBjYW4gdGhlbiBiZSBkZWNvZGVkIGluIHRoZSBvcHVzIGRlY29kZXIgYW5k IGF0dGFjaGVkIHRvIHRoZSBuZXh0Cj4gPj4+Pj4+PiBkZWNvZGVkIGZyYW1lLgo+ID4+Pj4+Pj4K PiA+Pj4+Pj4+IGxpYmF2Zm9ybWF0L29nZ3BhcnNlb3B1cy5jOiBQYXJzZSBjb21tZW50cyBmcm9t Cj4gPj4+Pj4+PiAgICAgIHNlY29uZGFyeSBjaGFpbmVkIG9nZy9vcHVzIHN0cmVhbXMgYW5kIHBh c3MgdGhlbSBhcyBvZ2cgc3RyZWFtIG5ld19tZXRhZGF0YS4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBs aWJhdmNvZGVjL29wdXMvZGVjLmM6IFVucGFjayBjb21tZW50cyBmcm9tIHNlY29uZGFyeSBjaGFp bmVkIG9nZy9vcHVzCj4gPj4+Pj4+PiBzdHJlYW1zIGFuZCBhdHRhY2ggdGhlbSB0byB0aGUgbmV4 dCBkZWNvZGVkIGZyYW1lLgo+ID4+Pj4+Pj4gLS0tCj4gPj4+Pj4+PiAgICAgIGxpYmF2Y29kZWMv b3B1cy9kZWMuYyAgICAgIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKy0tLQo+ID4+Pj4+Pj4g ICAgICBsaWJhdmZvcm1hdC9vZ2dwYXJzZW9wdXMuYyB8IDE2ICsrKysrKysrKysrKysrKy0KPiA+ Pj4+Pj4+ICAgICAgMiBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL29wdXMvZGVj LmMgYi9saWJhdmNvZGVjL29wdXMvZGVjLmMKPiA+Pj4+Pj4+IGluZGV4IDg4YTY1MGM4MWMuLmNk ZGNlZmNiNWYgMTAwNjQ0Cj4gPj4+Pj4+PiAtLS0gYS9saWJhdmNvZGVjL29wdXMvZGVjLmMKPiA+ Pj4+Pj4+ICsrKyBiL2xpYmF2Y29kZWMvb3B1cy9kZWMuYwo+ID4+Pj4+Pj4gQEAgLTEyNSw2ICsx MjUsOCBAQCB0eXBlZGVmIHN0cnVjdCBPcHVzQ29udGV4dCB7Cj4gPj4+Pj4+PiAgICAgICAgICBB VkZsb2F0RFNQQ29udGV4dCAqZmRzcDsKPiA+Pj4+Pj4+ICAgICAgICAgIGZsb2F0ICAgZ2FpbjsK PiA+Pj4+Pj4+Cj4gPj4+Pj4+PiArICAgIEFWRGljdGlvbmFyeSAqcGVuZGluZ19tZXRhZGF0YTsK PiA+Pj4+Pj4+ICsKPiA+Pj4+Pj4+ICAgICAgICAgIE9wdXNQYXJzZUNvbnRleHQgcDsKPiA+Pj4+ Pj4+ICAgICAgfSBPcHVzQ29udGV4dDsKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBAQCAtNDg1LDEyICs0 ODcsMjQgQEAgc3RhdGljIGludCBvcHVzX2RlY29kZV9wYWNrZXQoQVZDb2RlY0NvbnRleHQgKmF2 Y3R4LCBBVkZyYW1lICpmcmFtZSwKPiA+Pj4+Pj4+ICAgICAgICAgIGludCBkZWNvZGVkX3NhbXBs ZXMgPSBJTlRfTUFYOwo+ID4+Pj4+Pj4gICAgICAgICAgaW50IGRlbGF5ZWRfc2FtcGxlcyA9IDA7 Cj4gPj4+Pj4+PiAgICAgICAgICBpbnQgaSwgcmV0Owo+ID4+Pj4+Pj4gKyAgICBzaXplX3Qgc2l6 ZTsKPiA+Pj4+Pj4+ICsgICAgY29uc3QgdWludDhfdCAqc2lkZV9tZXRhZGF0YTsKPiA+Pj4+Pj4+ Cj4gPj4+Pj4+PiAtICAgIGlmIChidWZfc2l6ZSA+IDggJiYgKAo+ID4+Pj4+Pj4gLSAgICAgICAh bWVtY21wKGJ1ZiwgIk9wdXNIZWFkIiwgOCkgfHwKPiA+Pj4+Pj4+IC0gICAgICAgIW1lbWNtcChi dWYsICJPcHVzVGFncyIsIDgpKSkKPiA+Pj4+Pj4+ICsgICAgaWYgKGJ1Zl9zaXplID4gOCAmJiAh bWVtY21wKGJ1ZiwgIk9wdXNIZWFkIiwgOCkpCj4gPj4+Pj4+PiAgICAgICAgICAgICAgcmV0dXJu IGJ1Zl9zaXplOwo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+ICsgICAgaWYgKGJ1Zl9zaXplID4gOCAmJiAh bWVtY21wKGJ1ZiwgIk9wdXNUYWdzIiwgOCkpIHsKPiA+Pj4+Pj4+ICsgICAgICAgIC8qIE5ldyBt ZXRhZGF0YSAqLwo+ID4+Pj4+Pj4gKyAgICAgICAgc2lkZV9tZXRhZGF0YSA9IGF2X3BhY2tldF9n ZXRfc2lkZV9kYXRhKGF2cGt0LCBBVl9QS1RfREFUQV9NRVRBREFUQV9VUERBVEUsICZzaXplKTsK PiA+Pj4+Pj4+ICsgICAgICAgIGlmIChzaWRlX21ldGFkYXRhKSB7Cj4gPj4+Pj4+PiArICAgICAg ICAgICAgYXZfZGljdF9mcmVlKCZjLT5wZW5kaW5nX21ldGFkYXRhKTsKPiA+Pj4+Pj4+ICsgICAg ICAgICAgICByZXQgPSBhdl9wYWNrZXRfdW5wYWNrX2RpY3Rpb25hcnkoc2lkZV9tZXRhZGF0YSwg c2l6ZSwgJmMtPnBlbmRpbmdfbWV0YWRhdGEpOwo+ID4+Pj4+Pj4gKyAgICAgICAgICAgIGlmIChy ZXQgPCAwKQo+ID4+Pj4+Pj4gKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4+Pj4+Pj4g KyAgICAgICAgfQo+ID4+Pj4+Pj4gKyAgICAgICAgcmV0dXJuIGJ1Zl9zaXplOwo+ID4+Pj4+Pj4g KyAgICB9Cj4gPj4+Pj4+Cj4gPj4+Pj4+IFRoaXMgaXMgZGVmaW5pdGVseSBub3QgdGhlIHJpZ2h0 IHdheSB0byBnbyBhYm91dCBpdC4gWW91J3JlIGNoYW5naW5nIHRoZQo+ID4+Pj4+PiBwYWNrZXQg bGF5b3V0IHRvbywgd2hpY2ggY2FuIHBvdGVudGlhbGx5IGJyZWFrIGV4aXN0aW5nIHVzZXJzLgo+ ID4+Pj4+Cj4gPj4+Pj4gVGhhbmtzIGZvciBsb29raW5nIGludG8gdGhpcyEKPiA+Pj4+Pgo+ID4+ Pj4+PiBXaGF0IHlvdSBzaG91bGQgZG8gaW5zdGVhZCBpcyB0byBlaXRoZXIgY3JlYXRlIGEgbGlu ZWFyaXplZCBkaWN0aW9uYXJ5Cj4gPj4+Pj4+IChlLmcuIDxrZXlsZW5ndGg+PGtleT48dmFsdWVf bGVuPjx2YWx1ZT4gaW4gYSBidWZmZXIpLCBhbmQgcGFzcyB0aGF0IGFzCj4gPj4+Pj4+IGV4dHJh ZGF0YSwgb3IgYWRkIGEgZGljdGlvbmFyeSBmaWVsZCB0byBBVlBhY2tldCwgd2hpY2ggd291bGQg dGhlbiBiZQo+ID4+Pj4+PiBjb3BpZWQgb3ZlciB0byB0aGUgZnJhbWUgYWZ0ZXIgZGVjb2Rpbmcs IHNpbWlsYXIgdG8gaG93IFBUUywgZHVyYXRpb24sCj4gPj4+Pj4+IGV0Yy4gYXJlIGNhcnJpZWQg b3ZlciBmcm9tIHBhY2tldHMuCj4gPj4+Pj4KPiA+Pj4+PiBJJ20gY29uZnVzZWQ6IGlzbid0IGl0 IGV4YWN0bHkgd2hhdCB0aGUgb2dnIGRlbXV4ZXIgaXMgYWxyZWFkeSBkb2luZzoKPiA+Pj4+Pgo+ ID4+Pj4+ICAgICAgICBpZiAob3MtPm5ld19tZXRhZGF0YSkgewo+ID4+Pj4+ICAgICAgICAgICAg cmV0ID0gYXZfcGFja2V0X2FkZF9zaWRlX2RhdGEocGt0LCBBVl9QS1RfREFUQV9NRVRBREFUQV9V UERBVEUsCj4gPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv cy0+bmV3X21ldGFkYXRhLCBvcy0+bmV3X21ldGFkYXRhX3NpemUpOwo+ID4+Pj4+ICAgICAgICAg ICAgaWYgKHJldCA8IDApCj4gPj4+Pj4gICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+Pj4+ Pgo+ID4+Pj4+ICAgICAgICAgICAgb3MtPm5ld19tZXRhZGF0YSAgICAgID0gTlVMTDsKPiA+Pj4+ PiAgICAgICAgICAgIG9zLT5uZXdfbWV0YWRhdGFfc2l6ZSA9IDA7Cj4gPj4+Pj4gICAgICAgIH0K PiA+Pj4+Cj4gPj4+PiBPcHVzSGVhZCBldC4gYWwuIHNob3VsZG4ndCBhcHBlYXIgaW4gdGhlIGRh dGEgb2YgQVZQYWNrZXQgZXZlci4KPiA+Pj4KPiA+Pj4gVGhlc2Ugc3RyaW5ncyBhcmUgcGFydCBv ZiB0aGUgZXhwZWN0ZWQgb2dnIHBhY2tldGluZy4KPiA+Pj4KPiA+Pj4gVGhlIG9nZyBzcGVjIG1h bmRhdGVzIHRoYXQgdGhlIGZpcnN0IHBhY2tldCBpcyBhIGhlYWRlciBwYWNrZXQgdGhlbgo+ID4+ PiB0aGUgZm9sbG93aW5nIHBhY2tldHMgYXJlIGNvbW1lbnQgcGFja2V0cy4KPiA+Pj4KPiA+Pj4g T3B1c0hlYWQgYW5kIE9wdXNUYWdzIGFyZSB0aGUgaGVhZGVycyBpbmRpY2F0aW5nIHN1Y2ggcGFj a2V0cy4gVGhleQo+ID4+PiBhcmUgcGFydCBvZiB0aGUgb3JpZ2luYWwgZm9ybWF0IGVuY2Fwc3Vs YXRpb24sIG9yaWdpbmFsbHkgZGVzaWduZWQgZm9yCj4gPj4+IG9nZyBzdHJlYW1zLgo+ID4+Cj4g Pj4gT2dnIHRhZ3MgYW5kIGRhdGEgaGFzIGV4YWN0bHkgbm8gYnVzaW5lc3MgYmVpbmcgaW4gYW4g T3B1cyBiaXRzdHJlYW0uCj4gPj4gUGFja2V0cyBhcmUgc3VwcG9zZWQgdG8gY29udGFpbiBwdXJl IGNvZGVjIGRhdGEgd2l0aCBubyBjb250YWluZXIKPiA+PiBmZWF0dXJlcyBvciBkYXRhIGluIHRo ZW0uCj4gPj4KPiA+Pj4gUGFydCBvZiB0aGUgY2hhbmdlcyB0aGF0IEkgaW50ZW5kIHRvIGRvIGlz IHRvIHN1cmZhY2UgdGhvc2UgcGFja2V0cyBpbgo+ID4+PiB0aGUgZGVtdXhlci4KPiA+Pj4KPiA+ Pj4gSW4gb2dnL2ZsYWMsIHR5cGljYWxseSwgdGhleSBhcmUgZXhwb3J0ZWQgYnkgdGhlIGRlbXV4 ZXIgYW5kIHZpc2libGUKPiA+Pj4gd2hlbiBvcGVyYXRpbmcgYXQgdGhlIHBhY2tldCBsZXZlbC4K PiA+Pj4KPiA+Pj4gV2l0aCBvcHVzLCBiZWNhdXNlIHRoZSBoZWFkZXIgaXMgcGFyc2VkIGFnYWlu LCB0aGV5IGFyZSBzd2FsbG93ZWQgYnkKPiA+Pj4gdGhlIGRlbXV4ZXIgYW5kIG5ldmVyIHN1cmZh Y2VkLgo+ID4+Pgo+ID4+PiBJdCBpcyBteSB1bmRlcnN0YW5kaW5nIHRoYXQsIGV2ZW50dWFsbHks IHdlIHdhbnQgdG8gYmUgYWJsZSB0bzoKPiA+Pj4gLSBvcGVuIGEgZGVtdXhlciBvbiBhbnkgb2dn IHN0cmVhbQo+ID4+PiAtIG9wZW4gYSBtdXhlciBmb3IgYSBuZXcgb2dnIHN0cmVhbQo+ID4+PiAt IHBhc3MgYWxsIHBhY2tldHMgZnJvbSBkZW11eGVyIHRvIG11eGVyCj4gPj4+Cj4gPj4+IGFuZCBv YnRhaW4gYSB2YWxpZCBvZ2cgc3RyZWFtIG91dHB1dC4KPiA+Pj4KPiA+Pj4gVGhlcmUncyBzdGls bCBzb21lIHdvcmsgdG8gZG8gdG8gYWNoaWV2ZSB0aGF0IHdpdGggY2hhaW5lZCBvZ2cgc3RyZWFt cwo+ID4+PiBiZWNhdXNlIG9mIHRoZSBjdXJyZW50IFBUUy9EVFMgcmVzZXQgYnV0IHN1cmZhY2lu ZyB0aG9zZSBwYWNrZXRzCj4gPj4+IHNob3VsZCBiZSB0aGUgZmlyc3Qgc3RlcC4KPiA+Pgo+ID4+ IFdlICp3YW50KiB0aGVtIHRvIGJlIHN3YWxsb3dlZCBieSB0aGUgZGVtdXhlci4KPiA+PiBZb3Un cmUgY2hhbmdpbmcgdGhlIHBhY2tldCBzdHJ1Y3R1cmUgYnkgbGV0dGluZyB0aGVtIHRocm91Z2gs IGJyZWFraW5nCj4gPj4gdXNlcnMuIEV2ZW4gaWYgeW91IHdlcmVuJ3QsIGFuZCB0aGlzIHdhcyBh IG5ldyBjb2RlYywgeW91J3JlIGxldHRpbmcKPiA+PiBjb250YWluZXIgZGF0YSB0aHJvdWdoIGlu IGEgY29kZWMgcGFja2V0Lgo+ID4+Cj4gPj4gWW91IGRvIG5vdCBuZWVkIHRvIGxldCB0aGVtIHRo cm91Z2gsIHNpbmNlIHlvdSBjYW4gdXNlIHRoZSBwcmVzZW5jZSBvZgo+ID4+IHNpZGUgZGF0YSB0 byBkZXRlY3QgdGhpcy4KPgo+ID4gSnVzdCB0byBtYWtlIGl0IGNsZWFyOiBJIGFtIHRhbGtpbmcg aGVyZSBhYm91dCBzdWJzZXF1ZW50IG9nZyBoZWFkZXIKPiA+IHBhY2tldHMgaW4gY2hhaW5lZCBv Z2cgc3RyZWFtcywgbm90IHRoZSBpbml0aWFsIG9nZyBwYWNrZXRzLgo+ID4KPiA+IFRob3NlIHBh Y2tldHMgYXJlIHJlcXVpcmVkIGJ5IHRoZSBzcGVjIGZvciBjaGFpbmVkIGJpdHN0cmVhbXM6Cj4g PiBodHRwczovL3hpcGgub3JnL29nZy9kb2MvZnJhbWluZy5odG1sCj4KPiBUaGUgbXV4ZXIvZGVt dXhlciBhcmUgcmVzcG9uc2libGUgZm9yIHdyaXRpbmcgYW5kIHBhcnNpbmcgY29udGFpbmVyIHVu aXRzLgo+IERlY29kZXJzIGhhdmUgbm90aGluZyB0byBkbyB3aXRoIHRoZW0uCj4gRW5jb2RlcnMg b25seSBnZW5lcmF0ZSBleHRyYWRhdGEgYW5kIGhhdmUgbm8gY29uY2VwdCBvZiBjb250YWluZXJz Lgo+Cj4gPiBIb3cgYXJlIHlvdSBzdWdnZXN0aW5nIHRoYXQgYSB1c2VyIGNvdWxkIGNvcHkgYSBj aGFpbmVkIG9nZyBiaXRzdHJlYW0KPiA+IGF0IHRoZSBwYWNrZXQgbGV2ZWwgaWYgdGhlIGhlYWRl ciBwYWNrZXRzIG9mIHN1YnNlcXVlbnQgY2hhaW5lZAo+ID4gYml0c3RyZWFtcyBhcmUgbm90IHBy ZXNlbnQ/Cj4KPiBWaWEgdGhlIGV4dHJhZGF0YSB1cGRhdGUgbWVjaGFuaXNtLgo+IEFWX1BLVF9E QVRBX05FV19FWFRSQURBVEEKPgo+ID4gT3B1cyBpcyB0aGUgb25seSBkZW11eGVyIHRoYXQgd2ls bCBub3Qgc3VyZmFjZSB0aG9zZSBwYWNrZXRzIGJlY2F1c2UKPiA+IG9mIGEgc2luZ2xlLCBjb2Rl Yy1zcGVjaWZpYyBsaW5lIG9mIGNvZGU6Cj4gPiBodHRwczovL2NvZGUuZmZtcGVnLm9yZy9GRm1w ZWcvRkZtcGVnL3NyYy9icmFuY2gvbWFzdGVyL2xpYmF2Zm9ybWF0L29nZ2RlYy5jI0wyNDItTDI0 NAo+ID4KPiA+IDwtLS0tPgo+ID4gICAgICAvKiBDaGFpbmVkIGZpbGVzIGhhdmUgZXh0cmFkYXRh IGFzIGEgbmV3IHBhY2tldCAqLwo+ID4gICAgICBpZiAoY29kZWMgPT0gJmZmX29wdXNfY29kZWMp Cj4gPiAgICAgICAgICBvcy0+aGVhZGVyID0gLTE7Cj4gPiA8LS0tLT4KPiA+Cj4gPiBGb3IgYWxs IG90aGVyIGNvZGVjcywgdGhlIGhlYWRlciBpcyBub3QgcGFyc2VkIGFnYWluIG9uIHN1YnNlcXVl bnQKPiA+IGNoYWluZWQgb2dnIGJpdHN0cmVhbXMgYW5kIHRoZSBwYWNrZXRzIGFyZSBwYXNzZWQg ZG93biB0byB0aGUgZGVtdXhlci4KPiA+Cj4gPiBIZXJlJ3MgYW4gZXhhbXBsZSBvdXRwdXQgd2l0 aCB2b3JiaXMuIFRoZSBsb2dzIGFyZSB3aGF0J3MgYmVpbmcKPiA+IHJldHVybmVkIGJ5IHRoZSBk ZW11eGVyIGFuZCBkZWNvZGVyOgo+Cj4gVGhlbiB0aGUgcmVzdCBhcmUgd3JvbmcgdG9vLiBDb250 YWluZXIgZGV0YWlscyBzaG91bGQgbm90IGhhdmUgYmVlbgo+IGxlYWtlZCBvdXQgaW50byBjb2Rl YyBwYWNrZXRzLgo+Cj4gID4gSSBkb24ndCB1bmRlcnN0YW5kIHdoYXQgeW91IGFyZSBzdWdnZXN0 aW5nIGhlcmUuCj4KPiBTd2FsbG93IHRoZSBleHRyYS9tZXRhZGF0YS4gRG8gbm90IGxldCBPcHVz SGVhZCBvciB0aGVpciBlcXVpdmFsZW50cyBpbgo+IG90aGVyIGNvZGVjcyBpbnNpZGUgcGFja2V0 cy4KPiBFbWl0IEFWX1BLVF9EQVRBX05FV19FWFRSQURBVEEgZnJvbSB0aGUgZGVtdXhlciBpbnN0 ZWFkIHdpdGggdGhlIG5ldwo+IGRhdGEsIHdoaWNoIHdvdWxkIGNvbnRhaW4gdGhlIE9wdXNIZWFk IHVuaXQgKGV4dHJhZGF0YSkuCj4gSW4gdGhlIGNvZGVjLCBpZiBhIHBhY2tldCBjb250YWlucyBB Vl9QS1RfREFUQV9ORVdfRVhUUkFEQVRBLCByZWluaXQgdGhlCj4gZGVjb2RlciB3aXRoIGl0ICh3 ZSBzaG91bGQgZG8gdGhpcyBpbiBkZWNvZGUuYywgYnV0IGZvciBub3csIGRvaW5nIGl0IGluCj4g b3B1c2RlYy5jIHdvdWxkIGJlIGdvb2QgZW5vdWdoKS4KPgo+IEluIHRoZSBtdXhlciwgaWYgYSBw YWNrZXQgY29udGFpbnMgQVZfUEtUX0RBVEFfTkVXX0VYVFJBREFUQSwgd3JpdGUgaXQKPiB0byB0 aGUgYml0c3RyZWFtLgo+Cj4gVGhpcyBhbHNvIHJlbW92ZXMgdGhlIG5lZWQgdG8gY2FjaGUgbWV0 YWRhdGEgdXBkYXRlcy4gSWYgYSBwYWNrZXQKPiBjb250YWlucyBtZXRhZGF0YSwgc2ltcGx5IHBh c3MgdGhhdCBpbnRvIHRoZSBBVkZyYW1lLT5tZXRhZGF0YSBvbmNlIHRoZQo+IGZyYW1lIGxlYXZl cyB0aGUgZGVjb2RlciBpbiBkZWNvZGUuYy4gVGhlIHBhY2tldCBpcyBub3QgZGVyZWZlcmVuY2Vk Cj4geWV0LCBzbyB5b3UgZG9uJ3QgZXZlbiBuZWVkIHRvIGNhY2hlIGl0IHdoaWxlIHRoZSBwYWNr ZXQgaXMgYmVpbmcgZGVjb2RlZC4KClRoaXMgc291bmRzIGxpa2UgYSBwbGFuLCB0aGFua3MgSSds bCBnZXQgdG8gaXQuCgo+IFRoZSBPZ2cgY2hhaW5lZCAic3BlYyIgaXMgYmF0c2hpdCBjcmF6eS4g SSB3YXMgdGhlIG9uZSB3aG8gbWVyZ2VkCj4gc3VwcG9ydCBmb3IgaXQgYSBmZXcgeWVhcnMgYWdv LiBFdmVuIHRoZSBhdXRob3JzIGFkbWl0IGl0IHdhcyBhIGh1Z2UKPiBtaXN0YWtlLiBUaGVyZSBp c24ndCBhIHNpbmdsZSB0aGluZyBpdCBkaWQgcHJvcGVybHkgLSBmcm9tIHRpbWVzdGFtcAo+IHJl c2V0cyB0byByZWNvbW1lbmRpbmcgdGhhdCBzdHJlYW0gSURzIHNob3VsZCBiZSBzaHVmZmxlZCB0 byByZXF1aXJpbmcKPiB0aGF0IHVzZXJzIENSQyBlYWNoIHBvdGVudGlhbCBwYWdlIHRvIHJlc3lu Yy4KPiBXZSBzaG91bGRuJ3QgbGV0IG1pc3Rha2VzIG9mIHRoZSBwYXN0IGJyZWFrIGFic3RyYWN0 aW9uIGFuZCB0dXJuCj4gc2VsZi1jb250YWluZWQgY29kZWNzIGludG8gdmlkZW8gZ2FtZSBjb2Rl Y3Mgd2hpY2ggcmVxdWlyZSBleHRlbnNpdmUKPiBrbm93bGVkZ2Ugb2YgY29udGFpbmVyIGRhdGEu CgpPaCBJIGFtIG5vdCBoZXJlIHRvIGFyZ3VlIGluIGZhdm9yIG9mIHRoaXMgc3BlYyBoYWhhLgoK VGhlIG51bWJlciBvZiB0aW1lcyB3ZSBoYWQgdG8gZmFjZSBicm9rZW4gaW1wbGVtZW50YXRpb24g b2YgY2hhaW5lZApvZ2cgYml0c3RyZWFtcyBpbiBsaXF1aWRzb2FwIGlzLi4gaG8gbXkuLgoKVGhh dCB3YXMgYSBtaXN0YWtlIGJ1dCB3ZSBjYW4gdHJ5IHRvIGF0IGxlYXN0IHN1cHBvcnQgaXQgd2Vs bC4KClRoYW5rcyBmb3IgdGhlIHBvaW50ZXJzLCBJJ2xsIGJlIGJhY2sgd2l0aCB3aGF0IG1pZ2h0 IGJlIGEgYmlnZ2VyCmNodW5rIG9mIGNoYW5nZXMgdGhlbi4KCi0tIFJvbWFpbgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGlu ZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUs IG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1 bnN1YnNjcmliZSIuCg==