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 B5A1D4705B for ; Sat, 26 Aug 2023 08:29:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7D86568041B; Sat, 26 Aug 2023 11:29:02 +0300 (EEST) Received: from mail-ua1-f50.google.com (mail-ua1-f50.google.com [209.85.222.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0470368041B for ; Sat, 26 Aug 2023 11:28:55 +0300 (EEST) Received: by mail-ua1-f50.google.com with SMTP id a1e0cc1a2514c-796d78b3f68so589463241.0 for ; Sat, 26 Aug 2023 01:28:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693038534; x=1693643334; 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=8oJqk2jy4sux617cISLUd206rzSOovIBSIgCgbGozUQ=; b=RI0zwgX+DASL4+ob2epiJz5Z6bgr53xkmdc4PUlNePpOHAZKir8X6ZgeVhVVuxMC/l IhiXO2BY/Y7RMynmQM5dcEMnJptGECmjguqVwTRqWKJxoDuxDZ7oXHJhbJrupfc95EHO EU6ZTxGhoVNLKMmPm/BOJAXh/hWltYfEg4bTwIcgBSP+8mKRDyPwUIJYlLekiDyMMGzh kZ3UzAa538H3FdXWcWR4v9Xq3FgPYIi562SZpCQJ2q6CE8HmV7VjQP0/d+JARM+1RlyE LP3NsT7yfKjUAy3TpaoPiiB9JGOI2jgBy9tG2OGzvLT8uAC968DHY+VnKV1xVtMsQLcg 2BLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693038534; x=1693643334; 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=8oJqk2jy4sux617cISLUd206rzSOovIBSIgCgbGozUQ=; b=YvDD7B91D5m7verE1PmuwRaXXpnc3RH+W/rf59fmjG7UgBjTJtOiouTB84cXZi5X2T NxPugRCf0si1KLkjs7yBWFpF/00H8p/CIu4hkGvH2089WmYpDYofyUpiE/1KzUmwzZZW aBPuojQd72cMEtoilNYHNwP9EYJj+Vt4N9CX6L9ZONHcybjeS6r1x0qRBCIx+SnTNyNW 1v267UbQ5db1D1iD8utqQPrFFTcYYXuf0yEisyFnMJtEcdvQ3r+JkWeE+M8VSQ8Y2oAw sNv6ipRewv9lAh1AAbg8qVHCKjs4UtaOZ2sDZ+bFmjrB4n73kKAgo7Qpb/J61rVREIvG PwVA== X-Gm-Message-State: AOJu0YxL0kf7VkRy2Z0mIBDfZfoSz0KBIKwD8QB0DfGPMfINO9kMiIWO 69Bpa/mjwBYUsmxb2Dz+7Ln3cI1XdosKJiWcpYnu+nLGSAHZIw== X-Google-Smtp-Source: AGHT+IGgBs2q1QAHuKBgKzDJYKzc8IQIqr0vP4vmrgC+0VDuu4AJUq/rV9foU1perxB3suGec50D+MUhQnrxLNY51Mc= X-Received: by 2002:a05:6102:c46:b0:44e:afb0:f45c with SMTP id y6-20020a0561020c4600b0044eafb0f45cmr2373060vss.28.1693038533861; Sat, 26 Aug 2023 01:28:53 -0700 (PDT) MIME-Version: 1.0 References: <49a65bba-634c-1afb-6c52-94565bd7cc9@martin.st> <20230825100527.71471-1-lq@chinaffmpeg.org> <20230825100527.71471-2-lq@chinaffmpeg.org> <82e7702d-59ef-168a-d73b-d0324b5b2cb7@passwd.hu> In-Reply-To: <82e7702d-59ef-168a-d73b-d0324b5b2cb7@passwd.hu> From: Steven Liu Date: Sat, 26 Aug 2023 16:28:42 +0800 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH v3 2/2] avformat/rtmpproto: support enhanced rtmp 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: TWFydG9uIEJhbGludCA8Y3VzQHBhc3N3ZC5odT4g5LqOMjAyM+W5tDjmnIgyNuaXpeWRqOWFrSAx NTo1MuWGmemBk++8mgpIaSBNYXJ0b24sCj4KPgo+Cj4gT24gRnJpLCAyNSBBdWcgMjAyMywgU3Rl dmVuIExpdSB3cm90ZToKPgo+ID4gU3RldmVuIExpdSA8bHFAY2hpbmFmZm1wZWcub3JnPiDkuo4y MDIz5bm0OOaciDI15pel5ZGo5LqUIDE4OjA15YaZ6YGT77yaCj4gPj4KPiA+PiBBZGQgb3B0aW9u IG5hbWVkIHJ0bXBfZW5oYW5jZWRfY29kZWMsCj4gPj4gaXQgd291bGQgc3VwcG9ydCBodmMxLGF2 MDEsdnAwOSBub3csCj4gPj4gdGhlIGZvdXJjYyBpcyB1c2luZyBBcnJheSBvZiBzdHJpbmdzLgo+ ID4+Cj4gPj4gU2lnbmVkLW9mZi1ieTogU3RldmVuIExpdSA8bHFAY2hpbmFmZm1wZWcub3JnPgo+ ID4+IC0tLQo+ID4+ICBkb2MvcHJvdG9jb2xzLnRleGkgICAgICB8ICA2ICsrKysrKwo+ID4+ICBs aWJhdmZvcm1hdC9ydG1wcHJvdG8uYyB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKPiA+PiAgMiBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspCj4gPj4KPiA+ PiBkaWZmIC0tZ2l0IGEvZG9jL3Byb3RvY29scy50ZXhpIGIvZG9jL3Byb3RvY29scy50ZXhpCj4g Pj4gaW5kZXggYjNmYWQ1NTU5MS4uYmQyYjI1ZTUwMiAxMDA2NDQKPiA+PiAtLS0gYS9kb2MvcHJv dG9jb2xzLnRleGkKPiA+PiArKysgYi9kb2MvcHJvdG9jb2xzLnRleGkKPiA+PiBAQCAtODk2LDYg Kzg5NiwxMiBAQCBiZSBuYW1lZCwgYnkgcHJlZml4aW5nIHRoZSB0eXBlIHdpdGggJ04nIGFuZCBz cGVjaWZ5aW5nIHRoZSBuYW1lIGJlZm9yZQo+ID4+ICB0aGUgdmFsdWUgKGkuZS4gQGNvZGV7TkI6 bXlGbGFnOjF9KS4gVGhpcyBvcHRpb24gbWF5IGJlIHVzZWQgbXVsdGlwbGUKPiA+PiAgdGltZXMg dG8gY29uc3RydWN0IGFyYml0cmFyeSBBTUYgc2VxdWVuY2VzLgo+ID4+Cj4gPj4gK0BpdGVtIHJ0 bXBfZW5oYW5jZWRfY29kZWNzCj4gPj4gK1NwZWNpZnkgdGhlIGxpc3Qgb2YgY29kZWNzIHRoZSBj bGllbnQgYWR2ZXJ0aXNlcyB0byBzdXBwb3J0IGluIGFuCj4gPj4gK2VuaGFuY2VkIFJUTVAgc3Ry ZWFtLgo+Cj4gPj4gVGhpcyBvcHRpb24gc2hvdWxkIHNldCBhIHN0cmluZyBsaWtlIEBjb2Rle2h2 YzEsYXYwMSx2cDA5fQo+ID4+ICtmb3IgbXVsdGlwbGUgY29kZWNzLCBvciBAY29kZXtodmMxfSBm b3Igb25seSBvbmUgY29kZWMsCj4gPj4gK3NldCBjb2RlYyBmb3VyY2MgaW50byBmb3VyQ2NMaXZl IHByb3BlcnR5IGludG8gQ29ubmVjdCBDb21tYW5kIE1lc3NhZ2UsCj4KPiBUaGlzIG9wdGlvbiBz aG91bGQgYmUgc2V0IHRvIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZm91cmNjIHZhbHVlcywg bGlrZQo+IEBjb2Rle2h2YzEsYXYwMSx2cDA5fSBmb3IgbXVsdGlwbGUgY29kZWNzIG9yIEBjb2Rl e2h2YzF9IGZvciBvbmx5IG9uZQo+IGNvZGVjLiBUaGUgc3BlY2lmaWVkIGxpc3Qgd2lsbCBiZSBw cmVzZW50ZWQgaW4gdGhlICJmb3VyQ2NMaXZlIiBwcm9wZXJ0eQo+IG9mIHRoZSBDb25uZWN0IENv bW1hbmQgTWVzc2FnZS4Kb2sKPgo+Cj4gPj4gKwo+ID4+ICBAaXRlbSBydG1wX2ZsYXNodmVyCj4g Pj4gIFZlcnNpb24gb2YgdGhlIEZsYXNoIHBsdWdpbiB1c2VkIHRvIHJ1biB0aGUgU1dGIHBsYXll ci4gVGhlIGRlZmF1bHQKPiA+PiAgaXMgTE5YIDksMCwxMjQsMi4gKFdoZW4gcHVibGlzaGluZywg dGhlIGRlZmF1bHQgaXMgRk1MRS8zLjAgKGNvbXBhdGlibGU7Cj4gPj4gZGlmZiAtLWdpdCBhL2xp YmF2Zm9ybWF0L3J0bXBwcm90by5jIGIvbGliYXZmb3JtYXQvcnRtcHByb3RvLmMKPiA+PiBpbmRl eCBmMGVmMjIzZjA1Li4xMGUwYWVkNTM5IDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2Zm9ybWF0L3J0 bXBwcm90by5jCj4gPj4gKysrIGIvbGliYXZmb3JtYXQvcnRtcHByb3RvLmMKPiA+PiBAQCAtMTI3 LDYgKzEyNyw3IEBAIHR5cGVkZWYgc3RydWN0IFJUTVBDb250ZXh0IHsKPiA+PiAgICAgIGludCAg ICAgICAgICAgbmJfc3RyZWFtaWQ7ICAgICAgICAgICAgICAgIC8vLzwgVGhlIG5leHQgc3RyZWFt IGlkIHRvIHJldHVybiBvbiBjcmVhdGVTdHJlYW0gY2FsbHMKPiA+PiAgICAgIGRvdWJsZSAgICAg ICAgZHVyYXRpb247ICAgICAgICAgICAgICAgICAgIC8vLzwgRHVyYXRpb24gb2YgdGhlIHN0cmVh bSBpbiBzZWNvbmRzIGFzIHJldHVybmVkIGJ5IHRoZSBzZXJ2ZXIgKG9ubHkgdmFsaWQgaWYgbm9u LXplcm8pCj4gPj4gICAgICBpbnQgICAgICAgICAgIHRjcF9ub2RlbGF5OyAgICAgICAgICAgICAg ICAvLy88IFVzZSBUQ1BfTk9ERUxBWSB0byBkaXNhYmxlIE5hZ2xlJ3MgYWxnb3JpdGhtIGlmIHNl dCB0byAxCj4gPj4gKyAgICBjaGFyICAgICAgICAgICplbmhhbmNlZF9jb2RlY3M7ICAgICAgICAg ICAvLy88IGNvZGVjIGxpc3QgaW4gZW5oYW5jZWQgcnRtcAo+ID4+ICAgICAgY2hhciAgICAgICAg ICB1c2VybmFtZVs1MF07Cj4gPj4gICAgICBjaGFyICAgICAgICAgIHBhc3N3b3JkWzUwXTsKPiA+ PiAgICAgIGNoYXIgICAgICAgICAgYXV0aF9wYXJhbXNbNTAwXTsKPiA+PiBAQCAtMzM2LDYgKzMz Nyw0MSBAQCBzdGF0aWMgaW50IGdlbl9jb25uZWN0KFVSTENvbnRleHQgKnMsIFJUTVBDb250ZXh0 ICpydCkKPiA+PiAgICAgIGZmX2FtZl93cml0ZV9maWVsZF9uYW1lKCZwLCAiYXBwIik7Cj4gPj4g ICAgICBmZl9hbWZfd3JpdGVfc3RyaW5nMigmcCwgcnQtPmFwcCwgcnQtPmF1dGhfcGFyYW1zKTsK PiA+Pgo+ID4+ICsgICAgaWYgKHJ0LT5lbmhhbmNlZF9jb2RlY3MpIHsKPiA+PiArICAgICAgICB1 aW50MzJfdCBsaXN0X2xlbiA9IDA7Cj4gPj4gKyAgICAgICAgY2hhciAqZm91cmNjX2RhdGEgPSBy dC0+ZW5oYW5jZWRfY29kZWNzOwo+ID4+ICsgICAgICAgIGludCBmb3VyY2Nfc3RyX2xlbiA9IHN0 cmxlbihmb3VyY2NfZGF0YSk7Cj4gPj4gKwo+ID4+ICsgICAgICAgIC8vIGNoZWNrIHRoZSBzdHJp bmcsIGZvdXJjYyArICcsJyArIC4uLiAgKyBlbmQgZm91cmNjIGNvcnJlY3QgbGVuZ3RoIHNob3Vs ZCBiZSAoNCsxKSpuKzQKPiA+PiArICAgICAgICBpZiAoKGZvdXJjY19zdHJfbGVuICsgMSkgJSA1 ICE9IDApIHsKPiA+PiArICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIk1hbGZv cm1lZCBydG1wX2VuaGFuY2hlZF9jb2RlY3MsICIKPiA+PiArICAgICAgICAgICAgICAgICAgICJz aG91bGQgYmUgb2YgdGhlIGZvcm0gaHZjMVssYXYwMV1bLHZwMDldWywuLi5dXG4iKTsKPiA+PiAr ICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKPiA+PiArICAgICAgICB9Cj4gPj4g Kwo+ID4+ICsgICAgICAgIGxpc3RfbGVuID0gKGZvdXJjY19zdHJfbGVuICsgMSkgLyA1Owo+ID4+ ICsgICAgICAgIC8vIHdyaXRlIHRoZSBmb3VyQ2NMaXN0IGZpZWxkIG5hbWUKPgo+IFVzZWxlc3Mg Y29tbWVudApvawo+Cj4gPj4gKyAgICAgICAgZmZfYW1mX3dyaXRlX2ZpZWxkX25hbWUoJnAsICJm b3VyQ2NMaXN0Iik7Cj4gPj4gKwo+ID4+ICsgICAgICAgIC8vIHdyaXRlIHRoZSBmb3VyY2MgYXJy YXkgbGVuZ3RoCj4KPiBVc2VsZXNzIGNvbW1lbnQKb2sKPgo+ID4+ICsgICAgICAgIGZmX2FtZl93 cml0ZV9hcnJheV9zdGFydCgmcCwgbGlzdF9sZW4pOwo+ID4+ICsKPiA+PiArICAgICAgICB3aGls ZShmb3VyY2NfZGF0YSAtIHJ0LT5lbmhhbmNlZF9jb2RlY3MgPCBmb3VyY2Nfc3RyX2xlbikgewo+ ID4+ICsgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGZvdXJjY1s1XTsKPiA+PiArICAgICAgICAg ICAgaWYgKCFzdHJuY2FzZWNtcChmb3VyY2NfZGF0YSwgImh2YzEiLCA0KSB8fAo+ID4+ICsgICAg ICAgICAgICAgICAgIXN0cm5jYXNlY21wKGZvdXJjY19kYXRhLCAiYXYwMSIsIDQpIHx8Cj4gPj4g KyAgICAgICAgICAgICAgICAhc3RybmNhc2VjbXAoZm91cmNjX2RhdGEsICJ2cDA5IiwgNCkpIHsK PiA+Cj4gPiBzL3N0cm5jYXNlY21wL2F2X3N0cm5jYXNlY21wL2cgZml4IGxvY2FsLgo+Cj4gV2h5 IHlvdSB3YW50IHRoaXMgdG8gYmUgY2FzZSBpbnNlbnNpdGl2ZT8gVGhlIHNwZWNzIG9ubHkgY29u dGFpbnMgdGhlCj4gbG93ZXJjYXNlIHZhcmlhbnRzIGFzIGV4YW1wbGVzLiBTbyBJJ2QgcmF0aGVy IHVzZSBzaW1wbHkgc3RybmNtcC4Kb2sKPgo+ID4KPiA+PiArICAgICAgICAgICAgICAgICAgICBh dl9zdHJsY3B5KGZvdXJjYywgZm91cmNjX2RhdGEsIHNpemVvZihmb3VyY2MpKTsKPiA+PiArICAg ICAgICAgICAgICAgICAgICBmZl9hbWZfd3JpdGVfc3RyaW5nKCZwLCBmb3VyY2MpOwo+ID4+ICsg ICAgICAgICAgICB9IGVsc2Ugewo+ID4+ICsgICAgICAgICAgICAgICAgICAgIGF2X2xvZyhzLCBB Vl9MT0dfRVJST1IsICJVbnN1cHBvcnRlZCBjb2RlYyBmb3VyY2MsICUuKnNcbiIsIDQsIGZvdXJj Y19kYXRhKTsKPiA+PiArICAgICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9QQVRDSFdF TENPTUU7Cj4KPiBBcyBmYXIgYXMgSSBzYXcgdGhlIHNwZWNzIGRvZXMgbm90IHByb3ZpZGUgYW4g ZXhwbGljaXQgbGlzdCBvZiBmb3VyY2MKPiB0aGF0IGNhbiBiZSB1c2VkLCBzbyB3ZSBzaG91bGQg bm90IGxpbWl0IGl0IGVpdGhlciwgaXQgbWFrZXMgdGhlIGNvZGUgbW9yZQo+IGZ1dHVyZS1wcm9v Zi4gVGhlcmVmb3JlIEkgc3VnZ2VzdCB3ZSBhY2NlcHQgdW5rbm93biBmb3VyY2NzLCBidXQgd2Fy biB0aGUKPiB1c2VyIGFib3V0IHRoZW0uCkkgc2V0IHVuc3VwcG9ydGVkIGNvZGVjIGZvdXJjYywg YW5kIHJldHVybiBhIHBhdGNod2VsY29tZSBpcyBiZWNhdXNlCnRoZXJlIGp1c3QgYWRkIGhldmMs YXYxLHZwOSBjb2RlYyBzdXBwb3J0ZWQgaW4gZmx2ZW5jIGFuZCBmbHZkZWMsCmRvc2Ugbm90IGFk ZCB0aGUgb3RoZXJzIGluIHRoZSBmbHYgcmlnaHQsIHNvIGlmIHVzZXIgd2FudCB1c2UgYW5vdGhl cgpjb2RlY3MsIGl0IHNob3VsZCBnaXZlIGEgZXJyb3IgYW5kIHBhdGNoIHdlbGNvbWUuCj4KPiA+ PiArICAgICAgICAgICAgfQo+ID4+ICsKPiA+PiArICAgICAgICAgICAgZm91cmNjX2RhdGEgKz0g NTsKPiA+PiArICAgICAgICB9Cj4gPj4gKyAgICB9Cj4gPj4gKwo+ID4+ICAgICAgaWYgKCFydC0+ aXNfaW5wdXQpIHsKPiA+PiAgICAgICAgICBmZl9hbWZfd3JpdGVfZmllbGRfbmFtZSgmcCwgInR5 cGUiKTsKPiA+PiAgICAgICAgICBmZl9hbWZfd3JpdGVfc3RyaW5nKCZwLCAibm9ucHJpdmF0ZSIp Owo+ID4+IEBAIC0zMTA0LDYgKzMxNDAsNyBAQCBzdGF0aWMgY29uc3QgQVZPcHRpb24gcnRtcF9v cHRpb25zW10gPSB7Cj4gPj4gICAgICB7InJ0bXBfY29ubiIsICJBcHBlbmQgYXJiaXRyYXJ5IEFN RiBkYXRhIHRvIHRoZSBDb25uZWN0IG1lc3NhZ2UiLCBPRkZTRVQoY29ubiksIEFWX09QVF9UWVBF X1NUUklORywgey5zdHIgPSBOVUxMIH0sIDAsIDAsIERFQ3xFTkN9LAo+ID4+ICAgICAgeyJydG1w X2ZsYXNodmVyIiwgIlZlcnNpb24gb2YgdGhlIEZsYXNoIHBsdWdpbiB1c2VkIHRvIHJ1biB0aGUg U1dGIHBsYXllci4iLCBPRkZTRVQoZmxhc2h2ZXIpLCBBVl9PUFRfVFlQRV9TVFJJTkcsIHsuc3Ry ID0gTlVMTCB9LCAwLCAwLCBERUN8RU5DfSwKPiA+PiAgICAgIHsicnRtcF9mbHVzaF9pbnRlcnZh bCIsICJOdW1iZXIgb2YgcGFja2V0cyBmbHVzaGVkIGluIHRoZSBzYW1lIHJlcXVlc3QgKFJUTVBU IG9ubHkpLiIsIE9GRlNFVChmbHVzaF9pbnRlcnZhbCksIEFWX09QVF9UWVBFX0lOVCwgey5pNjQg PSAxMH0sIDAsIElOVF9NQVgsIEVOQ30sCj4gPj4gKyAgICB7InJ0bXBfZW5oYW5jZWRfY29kZWNz IiwgIlNwZWNpZnkgdGhlIGNvZGVjKHMpIHRvIHVzZSBpbiBhbiBlbmhhbmNlZCBydG1wIGxpdmUg c3RyZWFtIiwgT0ZGU0VUKGVuaGFuY2VkX2NvZGVjcyksIEFWX09QVF9UWVBFX1NUUklORywgey5z dHIgPSBOVUxMIH0sIDAsIDAsIEVOQ30sCj4KPiBNYXliZSBtYWtlIHRoZSBkZWZhdWx0ICJhdjAx LHZwMDksaGV2YyI/IFRoaXMgaXMgYSBsaXN0IG9mIGNvZGVjcyB0aGUKSSB0aGluayBtYWtlIGl0 IG51bGwgc2hvdWxkIGJldHRlciwgYmVjYXVzZSBub3Qgc2hvdWxkIGV2ZXJ5IGJvZHkncwpmZm1w ZWcgaGFzIGJlZW4gc3VwcG9ydCBoZXZjL2F2MS92cDkgY29kZWMsCnNvIEkgc2V0IGl0IG51bGwg ZGVmYXVsdCwgYW5kIHRoZSBvdGhlciByZWFzb24gaXMgbm90IHN1cmUgYWxsIHJ0bXAKc2VydmVy IGhhcyBiZWVkIHN1cHBvcnQgZW5oYW5jZWQgcnRtcCwgc28gbWFrZSBpdCBudWxsIGRlZmF1bHQK d2hlbiB1c2VyIG5vdCB1c2UgY29kZWMgaGV2Yy9hdjEvdnA5LgoKPiBjbGllbnQgYWR2ZXRpc2Vz IHRvIHN1cHBvcnQsIGFuZCBmb3IgdGhlIGxlZ2FjeSBjb3VudGVycGFydCBvZiB0aGlzLAo+ICJh dWRpb0NvZGVjcyIgYW5kICJ2aWRlb0NvZGVjcyIsIHdlIGFsc28gYWR2ZXJ0aXNlIHRvIHN1cHBv cnQgYWxtb3N0Cj4gZXZlcnl0aGluZy4gU28gZm9yIGNvbnNpc3RlbmN5IHdlIHNob3VsZCBmb2xs b3cgdGhlIHNhbWUgcm91dGUsIHJlcG9ydCB0bwo+IHN1cHBvcnQgZXZlcnkgY29kZWMgdGhhdCBp cyBpbiB0aGUgc3BlY3MsIHVubGVzcyB0aGlzIGNhdXNlcyBzb21lCj4gY29tcGF0aWJpbGl0eSBp c3N1ZSBJIGRvbid0IHNlZS4KPgo+IFRoYW5rcywKPiBNYXJ0b24KPgo+ID4+ICAgICAgeyJydG1w X2xpdmUiLCAiU3BlY2lmeSB0aGF0IHRoZSBtZWRpYSBpcyBhIGxpdmUgc3RyZWFtLiIsIE9GRlNF VChsaXZlKSwgQVZfT1BUX1RZUEVfSU5ULCB7Lmk2NCA9IC0yfSwgSU5UX01JTiwgSU5UX01BWCwg REVDLCAicnRtcF9saXZlIn0sCj4gPj4gICAgICB7ImFueSIsICJib3RoIiwgMCwgQVZfT1BUX1RZ UEVfQ09OU1QsIHsuaTY0ID0gLTJ9LCAwLCAwLCBERUMsICJydG1wX2xpdmUifSwKPiA+PiAgICAg IHsibGl2ZSIsICJsaXZlIHN0cmVhbSIsIDAsIEFWX09QVF9UWVBFX0NPTlNULCB7Lmk2NCA9IC0x fSwgMCwgMCwgREVDLCAicnRtcF9saXZlIn0sCj4gPj4gLS0KPiA+PiAyLjQwLjAKPiA+Pgo+ID4+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPj4gZmZt cGVnLWRldmVsIG1haWxpbmcgbGlzdAo+ID4+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gPj4g aHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4gPj4KPiA+ PiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPiA+PiBmZm1wZWct ZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo+ID4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IGZmbXBl Zy1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gPiBodHRw czovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPiA+Cj4gPiBUbyB1 bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPiA+IGZmbXBlZy1kZXZlbC1y ZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFp bGluZyBsaXN0Cj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcv bWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPgo+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBs aW5rIGFib3ZlLCBvciBlbWFpbAo+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0 aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCgpUaGFua3MgTWFydG9uLApTdGV2ZW4KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxp bmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1h bi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3Zl LCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAi dW5zdWJzY3JpYmUiLgo=