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 BC7234BA2D for ; Wed, 10 Jul 2024 09:10:00 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 52CB468DACA; Wed, 10 Jul 2024 12:09:57 +0300 (EEST) Received: from relay.aitek.it (dns1.aitek.it [194.244.35.21]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4EFEB68DA77 for ; Wed, 10 Jul 2024 12:09:51 +0300 (EEST) Received: from mail-server.aitek.it (mail-server.aitek.it [172.30.0.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by relay.aitek.it (Postfix) with ESMTPS id BB44918008F6 for ; Wed, 10 Jul 2024 11:09:50 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.aitek.it BB44918008F6 Message-ID: <23df1ebd-77e2-4f60-a6ac-5d368750c074@aitek.it> Date: Wed, 10 Jul 2024 11:09:44 +0200 MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org References: Content-Language: en-US, it In-Reply-To: X-Aitek-Mail-Server-MailScanner-Information: Please contact the ISP for more information X-Aitek-Mail-Server-MailScanner-ID: 493B183E1EB.A6AF5 X-Aitek-Mail-Server-MailScanner: Found to be clean X-Aitek-Mail-Server-MailScanner-From: bernardo.pilarz@aitek.it X-Spam-Status: No Subject: Re: [FFmpeg-devel] [PATCH] avcodec/avformat: Store SDP attributes from RTSP stream into AVStream side data. 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: Bernardo Pilarz via ffmpeg-devel Reply-To: FFmpeg development discussions and patches Cc: Bernardo Pilarz Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: SGksCgpJJ3ZlIHRyaWVkIHRvIHB1c2ggdGhpcyBwYXRjaCBzZXZlcmFsIHRpbWVzLCBidXQgaXQg bG9va3MgbGlrZSBteSBlbWFpbCBjbGllbnQgaXMgbWVzc2luZyB1cCB0aGUgZGlmZiwgYW5kIHBh dGNod29yayBpc24ndCBhYmxlIHRvIGFwcGx5IGl0LgoKT24gMDkvMDcvMjAyNCAxMjowMiwgQmVy bmFyZG8gUGlsYXJ6IHZpYSBmZm1wZWctZGV2ZWwgd3JvdGU6Cj4gQ29ubmVjdGluZyB0byBhbiBS VFNQIHN0cmVhbSB3aWxsIG5vdyBjYXVzZSB0aGUgU0RQIGF0dHJpYnV0ZXMgb2YgZWFjaCBtZWRp YQo+IHN0cmVhbSB0byBiZSBzdG9yZWQgaW4gdGhlIGNvZGVjcGFyIG9mIHRoZSByZWxhdGl2ZSBB VlN0cmVhbS4KPiBUaGUgU0RQIGF0dHJpYnV0ZXMgYXJlIHN0b3JlZCBpbiB0aGUgY29kZWRfc2lk ZV9kYXRhIHVzaW5nIHRoZSAobmV3KSB0eXBlCj4gQVZfUEtUX0RBVEFfU0RQX0FUVFJJQlVURVMg KEFWUGFja2V0U2lkZURhdGFUeXBlIGVudW0pLgo+Cj4gU2lnbmVkLW9mZi1ieTogYnBpbGFyeiA8 YmVybmFyZG8ucGlsYXJ6QGFpdGVrLml0Pgo+IC0tLQo+IMKgbGliYXZjb2RlYy9wYWNrZXQuaCB8 wqAgNyArKysrCj4gwqBsaWJhdmZvcm1hdC9ydHNwLmPCoCB8IDk3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+IMKgMiBmaWxlcyBjaGFuZ2VkLCAxMDQgaW5z ZXJ0aW9ucygrKQo+Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvcGFja2V0LmggYi9saWJhdmNv ZGVjL3BhY2tldC5oCj4gaW5kZXggMTM2NjdmZmEzNi4uMzA5MWMzY2U1Ngo+IC0tLSBhL2xpYmF2 Y29kZWMvcGFja2V0LmgKPiArKysgYi9saWJhdmNvZGVjL3BhY2tldC5oCj4gQEAgLTMzOSw2ICsz MzksMTMgQEAgZW51bSBBVlBhY2tldFNpZGVEYXRhVHlwZSB7Cj4gwqDCoMKgwqDCoCAqLwo+IMKg wqDCoMKgIEFWX1BLVF9EQVRBX0ZSQU1FX0NST1BQSU5HLAo+Cj4gK8KgwqDCoCAvKioKPiArwqDC oMKgwqAgKiBBdHRyaWJ1dGVzIGZvdW5kIGluIHRoZSBTRFAsIGFzc29jaWF0ZWQgd2l0aCB0aGUg c3RyZWFtLiBUaGlzIGlzIGEKPiArwqDCoMKgwqAgKiBsaXN0IG9mIHplcm8gdGVybWluYXRlZCBr ZXkvdmFsdWUgc3RyaW5ncy4gVGhlcmUgaXMgbm8gZW5kIG1hcmtlciBmb3IKPiArwqDCoMKgwqAg KiB0aGUgbGlzdCwgc28gaXQgaXMgcmVxdWlyZWQgdG8gcmVseSBvbiB0aGUgc2lkZSBkYXRhIHNp emUgdG8gc3RvcC4KPiArwqDCoMKgwqAgKi8KPiArwqDCoMKgIEFWX1BLVF9EQVRBX1NEUF9BVFRS SUJVVEVTLAo+ICsKPiDCoMKgwqDCoCAvKioKPiDCoMKgwqDCoMKgICogVGhlIG51bWJlciBvZiBz aWRlIGRhdGEgdHlwZXMuCj4gwqDCoMKgwqDCoCAqIFRoaXMgaXMgbm90IHBhcnQgb2YgdGhlIHB1 YmxpYyBBUEkvQUJJIGluIHRoZSBzZW5zZSB0aGF0IGl0IG1heQo+IGRpZmYgLS1naXQgYS9saWJh dmZvcm1hdC9ydHNwLmMgYi9saWJhdmZvcm1hdC9ydHNwLmMKPiBpbmRleCAxOWI5M2RmODM5Li4x MDU5NGU1MDFhCj4gLS0tIGEvbGliYXZmb3JtYXQvcnRzcC5jCj4gKysrIGIvbGliYXZmb3JtYXQv cnRzcC5jCj4gQEAgLTI4Myw2ICsyODMsOTEgQEAgc3RhdGljIGludCBpbml0X3NhdGlwX3N0cmVh bShBVkZvcm1hdENvbnRleHQgKnMpCj4gwqB9Cj4gwqAjZW5kaWYKPgo+ICtzdGF0aWMgaW50IHNk cF9hZGRfYXR0cmlidXRlX3RvX3N0cmVhbV9zaWRlX2RhdGEoQVZGb3JtYXRDb250ZXh0ICpzLAo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQVZTdHJlYW0gKnN0LAo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgY2hhciAqcCkK PiArewo+ICvCoMKgwqAgQVZQYWNrZXRTaWRlRGF0YSAqc2lkZV9kYXRhID0gTlVMTDsKPiArwqDC oMKgIEFWRGljdGlvbmFyeSogYXR0cmlidXRlc19kaWN0ID0gTlVMTDsKPiArwqDCoMKgIGNoYXIg KmtleSA9IE5VTEwsICp2YWx1ZSA9IE5VTEw7Cj4gK8KgwqDCoCBpbnQgcmV0ID0gMDsKPiArCj4g K8KgwqDCoCAvKiBHZXQgdGhlIHN0cmVhbSdzIGF0dHJpYnV0ZXMgZGljdGlvbmFyeS4KPiArwqDC oMKgwqAgKiBJZiB0aGUgc3RyZWFtIGhhcyBubyBhdHRyaWJ1dGVzIGRpY3Rpb25hcnksIGl0IHdp bGwgYmUgYXV0b21hdGljYWxseQo+ICvCoMKgwqDCoCAqIGNyZWF0ZWQgYnkgYXZfZGljdF9zZXQu ICovCj4gK8KgwqDCoCBzaWRlX2RhdGEgPSBhdl9wYWNrZXRfc2lkZV9kYXRhX2dldChzdC0+Y29k ZWNwYXItPmNvZGVkX3NpZGVfZGF0YSwKPiArIHN0LT5jb2RlY3Bhci0+bmJfY29kZWRfc2lkZV9k YXRhLAo+ICsgQVZfUEtUX0RBVEFfU0RQX0FUVFJJQlVURVMpOwo+ICvCoMKgwqAgaWYgKHNpZGVf ZGF0YSkgewo+ICvCoMKgwqDCoMKgwqDCoCByZXQgPSBhdl9wYWNrZXRfdW5wYWNrX2RpY3Rpb25h cnkoc2lkZV9kYXRhLT5kYXRhLCBzaWRlX2RhdGEtPnNpemUsCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgJmF0dHJpYnV0ZXNfZGljdCk7Cj4gK8KgwqDCoMKgwqDCoMKgIGlmIChyZXQpIHsK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2cocywgQVZfTE9HX1dBUk5JTkcsCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiVW5hYmxlIHRvIHVucGFjayBTRFAg YXR0cmlidXRlcyBkaWN0aW9uYXJ5LlxuIik7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0 dXJuIC0xOwo+ICvCoMKgwqDCoMKgwqDCoCB9Cj4gK8KgwqDCoCB9Cj4gKwo+ICvCoMKgwqAgLyog VGhlIGF0dHJpYnV0ZSBjYW4gZWl0aGVyIGJlIGEgdmFsdWUgYXR0cmlidXRlIChrZXk6dmFsdWUp IG9yCj4gK8KgwqDCoMKgICogcHJvcGVydHkgYXR0cmlidXRlIChqdXN0IHRoZSBrZXkpLgo+ICvC oMKgwqDCoCAqIExvb2sgZm9yIHRoZSAnOicgc2VwYXJhdG9yLCBhbmQgY3JlYXRlIHRoZSAna2V5 JyBhbmQgJ3ZhbHVlJwo+ICvCoMKgwqDCoCAqIGFwcHJvcHJpYXRlbHkuICovCj4gK8KgwqDCoCBj b25zdCBjaGFyICpzZXBhcmF0b3IgPSBzdHJjaHIocCwgJzonKTsKPiArwqDCoMKgIGlmIChzZXBh cmF0b3IpIHsKPiArwqDCoMKgwqDCoMKgwqAgLyogTWFrZSBhIGNvcHkgb2YgdGhlIGtleSBhbmQg dmFsdWUuICovCj4gK8KgwqDCoMKgwqDCoMKgIGtleSA9IGF2X3N0cm5kdXAocCwgc2VwYXJhdG9y IC0gcCk7Cj4gK8KgwqDCoMKgwqDCoMKgIHZhbHVlID0gYXZfc3RyZHVwKHNlcGFyYXRvciArIDEp Owo+ICvCoMKgwqAgfSBlbHNlIHsKPiArwqDCoMKgwqDCoMKgwqAgLyogQ29weSB0aGUga2V5IGFu ZCBjcmVhdGUgYW4gZW1wdHkgdmFsdWUuICovCj4gK8KgwqDCoMKgwqDCoMKgIGtleSA9IGF2X3N0 cmR1cChwKTsKPiArwqDCoMKgwqDCoMKgwqAgdmFsdWUgPSBhdl9tYWxsb2N6KDEpOwo+ICvCoMKg wqAgfQo+ICvCoMKgwqAgaWYgKCFrZXkgfHwgIXZhbHVlKSB7Cj4gK8KgwqDCoMKgwqDCoMKgIGF2 X2RpY3RfZnJlZSgmYXR0cmlidXRlc19kaWN0KTsKPiArwqDCoMKgwqDCoMKgwqAgYXZfZnJlZSh2 YWx1ZSk7Cj4gK8KgwqDCoMKgwqDCoMKgIGF2X2ZyZWUoa2V5KTsKPiArwqDCoMKgwqDCoMKgwqAg cmV0dXJuIC0xOwo+ICvCoMKgwqAgfQo+ICsKPiArwqDCoMKgIC8qIEFkZCB0aGUgYXR0cmlidXRl LCB0aGVuIHBhY2sgdGhlIGRpY3Rpb25hcnkgYWdhaW4uICovCj4gK8KgwqDCoCByZXQgPSBhdl9k aWN0X3NldCgmYXR0cmlidXRlc19kaWN0LCBrZXksIHZhbHVlLAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQVZfRElDVF9ET05UX1NUUkRVUF9LRVkgfAo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQVZfRElDVF9ET05UX1NU UkRVUF9WQUwgfAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg QVZfRElDVF9NVUxUSUtFWSk7Cj4gK8KgwqDCoCBpZiAocmV0KSB7Cj4gK8KgwqDCoMKgwqDCoMKg IGF2X2xvZyhzLCBBVl9MT0dfV0FSTklORywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAiVW5hYmxlIHRvIGFkZCBTREwgYXR0cmlidXRlIHRvIGRpY3Rpb25hcnkuXG4iKTsKPiArwqDC oMKgwqDCoMKgwqAgYXZfZGljdF9mcmVlKCZhdHRyaWJ1dGVzX2RpY3QpOwo+ICvCoMKgwqDCoMKg wqDCoCByZXR1cm4gLTE7Cj4gK8KgwqDCoCB9Cj4gK8KgwqDCoCBzaXplX3QgcGFja2VkX2RpY3Rf c2l6ZSA9IDB1Owo+ICvCoMKgwqAgdWludDhfdCAqcGFja2VkX2RpY3QgPSBhdl9wYWNrZXRfcGFj a19kaWN0aW9uYXJ5KGF0dHJpYnV0ZXNfZGljdCwKPiArICZwYWNrZWRfZGljdF9zaXplKTsKPiAr Cj4gK8KgwqDCoCAvKiBGcmVlIHRoZSBkaWN0aW9uYXJ5LCB3aGljaCBpcyBub3QgbmVlZGVkIGFu eSBsb25nZXIuICovCj4gK8KgwqDCoCBhdl9kaWN0X2ZyZWUoJmF0dHJpYnV0ZXNfZGljdCk7Cj4g Kwo+ICvCoMKgwqAgLyogTWFrZSBzdXJlIHRoZSBkaWN0aW9uYXJ5IHdhcyBwYWNrZXQgc3VjY2Vz c2Z1bGx5LCB0aGVuIGFkZCBpdAo+ICvCoMKgwqDCoCAqIGJhY2sgdG8gdGhlIHN0cmVhbSdzIHNp ZGUgZGF0YS4gKi8KPiArwqDCoMKgIGlmICghcGFja2VkX2RpY3QpIHsKPiArwqDCoMKgwqDCoMKg wqAgYXZfbG9nKHMsIEFWX0xPR19XQVJOSU5HLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICJVbmFibGUgdG8gcGFjayBTRFAgYXR0cmlidXRlcyBkaWN0aW9uYXJ5LlxuIik7Cj4gK8Kg wqDCoMKgwqDCoMKgIHJldHVybiAtMTsKPiArwqDCoMKgIH0KPiArwqDCoMKgIHNpZGVfZGF0YSA9 IGF2X3BhY2tldF9zaWRlX2RhdGFfYWRkKCZzdC0+Y29kZWNwYXItPmNvZGVkX3NpZGVfZGF0YSwK PiArICZzdC0+Y29kZWNwYXItPm5iX2NvZGVkX3NpZGVfZGF0YSwKPiArIEFWX1BLVF9EQVRBX1NE UF9BVFRSSUJVVEVTLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGFja2VkX2RpY3QsIHBhY2tl ZF9kaWN0X3NpemUsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwKTsKPiArwqDCoMKgIGlmICgh c2lkZV9kYXRhKSB7Cj4gK8KgwqDCoMKgwqDCoMKgIGF2X2xvZyhzLCBBVl9MT0dfV0FSTklORywK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiVW5hYmxlIHRvIGFkZCBTRFAgYXR0cmli dXRlcyBzaWRlIGRhdGEgdG8gc3RyZWFtLlxuIik7Cj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAt MTsKPiArwqDCoMKgIH0KPiArCj4gK8KgwqDCoCByZXR1cm4gMDsKPiArfQo+ICsKPiDCoC8qIHBh cnNlIHRoZSBydHBtYXAgZGVzY3JpcHRpb246IDxjb2RlY19uYW1lPi88Y2xvY2tfcmF0ZT5bLzxv dGhlciBwYXJhbXM+XSAqLwo+IMKgc3RhdGljIGludCBzZHBfcGFyc2VfcnRwbWFwKEFWRm9ybWF0 Q29udGV4dCAqcywKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBBVlN0cmVhbSAqc3QsIFJUU1BTdHJlYW0gKnJ0c3Bfc3QsCj4gQEAgLTU3 MCw2ICs2NTUsMTggQEAgc3RhdGljIHZvaWQgc2RwX3BhcnNlX2xpbmUoQVZGb3JtYXRDb250ZXh0 ICpzLCBTRFBQYXJzZVN0YXRlICpzMSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBzaXplb2YocnRzcF9zdC0+Y29udHJvbF91cmwpKTsKPiDCoMKgwqDCoMKgwqDCoMKg IGJyZWFrOwo+IMKgwqDCoMKgIGNhc2UgJ2EnOgo+ICvCoMKgwqDCoMKgwqDCoCAvKiBhZGQgYWxs IFNEUCBhdHRyaWJ1dGVzIHRvIHRoZSBzdHJlYW0ncyBzaWRlIGRhdGEgKi8KPiArwqDCoMKgwqDC oMKgwqAgaWYgKHJ0LT5uYl9ydHNwX3N0cmVhbXMgPiAwKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgcnRzcF9zdCA9IHJ0LT5ydHNwX3N0cmVhbXNbcnQtPm5iX3J0c3Bfc3RyZWFtcyAtIDFd Owo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChydHNwX3N0LT5zdHJlYW1faW5kZXggPj0g MCkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3QgPSBzLT5zdHJlYW1zW3J0 c3Bfc3QtPnN0cmVhbV9pbmRleF07Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp ZiAoc2RwX2FkZF9hdHRyaWJ1dGVfdG9fc3RyZWFtX3NpZGVfZGF0YShzLCBzdCwgcCkpIHsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfbG9nKHMsIEFWX0xPR19X QVJOSU5HLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICJGYWlsZWQgdG8gYWRkIFNEUCBhdHRyaWJ1dGUgdG8gc3RyZWFtIik7Cj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ ICvCoMKgwqDCoMKgwqDCoCB9Cj4gK8KgwqDCoMKgwqDCoMKgIC8qIG5vdyBwYXJzZSB0aGUgU0RQ IGF0dHJpYnV0ZSBsaW5lICovCj4gwqDCoMKgwqDCoMKgwqDCoCBpZiAoYXZfc3Ryc3RhcnQocCwg ImNvbnRyb2w6IiwgJnApKSB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChydC0+bmJf cnRzcF9zdHJlYW1zID09IDApIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp ZiAoIXN0cm5jbXAocCwgInJ0c3A6Ly8iLCA3KSkKCi0tIApUaGlzIG1lc3NhZ2UgaGFzIGJlZW4g c2Nhbm5lZCBmb3IgdmlydXNlcyBhbmQKZGFuZ2Vyb3VzIGNvbnRlbnQgYnkgTWFpbFNjYW5uZXIs IGFuZCBpcwpiZWxpZXZlZCB0byBiZSBjbGVhbi4KCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRl dmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVn LWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVn LWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K