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 17AAD491D1 for ; Wed, 6 Mar 2024 16:01:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 541F668CC83; Wed, 6 Mar 2024 18:01:03 +0200 (EET) Received: from out203-205-251-59.mail.qq.com (out203-205-251-59.mail.qq.com [203.205.251.59]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F1E5E68CC35 for ; Wed, 6 Mar 2024 18:00:55 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1709740851; bh=YLPArmyWLxB/oEf+mJmFhkh83fooAReMxuzaxGhnyuw=; h=From:To:References:In-Reply-To:Subject:Date; b=vBNUP/Elk9NZvEXsGjoEURZg6x/UDNyqxoF6M1LXBkog4DUJxadRUlb2sI5p5A53n pHfhvp9Npz99LOQZqqPOHBvVWkCqcAZS9qBuTpzMPWYk7P+/d2xKQ+rdwSIvaccER3 yA9TAywU254ryBl++dskq4uu/fxdpN3Ji0VNuHUQ= Received: from homepc ([121.35.184.23]) by newxmesmtplogicsvrszc5-0.qq.com (NewEsmtp) with SMTP id 3295231; Thu, 07 Mar 2024 00:00:50 +0800 X-QQ-mid: xmsmtpt1709740850trhz1runs Message-ID: X-QQ-XMAILINFO: Nkqq4bFvvULWJARAlH3eDuIM/zYSYUbIPHbIp11s1rRjgpmm4Zf21Be+M/wPV0 BwwBSG0xBVf8ChlU5AjLCARGnOnXYVr50mTKmCwURJhgU2umgc8HgMojtd6Vd5jGXBEyaXGGGSFT 3Lgj/fMHAhH+FRYG43OkGdLFP94dExkhDa56T/iKxszjU5ZVaFg535o/rocOZRJ2CBJQ2Iqm/XcY 1BC91/ckaTcOn0ZKQ40pzcjegUDZncXhCw+3advjx3NDuR5BpVis0RyJvo97g0u/T7/pomgz0PZl bMRGgqvJRJNd9M1JX34RmoOKZNmI2oS1rLhwmSSZSJMWe11xbNRSC83pRi+VIlb7y0XGS98HTimU hbZWHO0RTQ1RgQ5BqlnEeUj0N8+cOmbZXYM4JjtLDLCkBdVAWpUnIdnLOW+0aOHuFDiDPTyArd59 3FRW5UWrRvugLz4o0dNVGjw5aeXLxs1ffyScIVFRmD17Rrg2k3VrcijHwlJOSN4t2IMj/qOWHgrB n173OiAZQmsrRSU/Sxkd1YMjVActsMIZaA8Gcfe8WO1/r6q4xTUTihH1hmkoFMJ1PAXoAEmPuEqX +oySHlBJlFZ3u8gAtiPV4DACUp5qltCWBgzBwx+fpo83N782nE3f54ci/zaKBTaxf6VH8GzHBqDr D3Kv3J2PV4oJNCAiDA+SiMtGXwD6nrzAjqXs7U7KtRO62lXyPk2MDaJPiip5AzyGO/kO491tpaK8 1j77IyaBEu4XmtFpGoHpEtQQlu/Yyapb37yD9sad75lSx8UUSHy0Mx20Z/ZriQmAWLGRmGHtBKK8 HsuRlw6CXzHfO1ZY+ZnpBlpgRk2t9HT0dD0t6+65ltvxzT5OOcpPWfxGF66EgG4MsGGZCahjM3KR uHOAIzRpf7jOLreeiTPgNxHKbIe2pDsMhWNBQIGo2hibaKAiL3jdBo9MLGWvzXckUmY8bqFQFOFD BK5V6sSES4zPgGtfmR7oHPVyxdIC5jr38JcEVVw1E= X-QQ-XMRINFO: Nq+8W0+stu50PRdwbJxPCL0= From: "Zhao Zhili" To: "'FFmpeg development discussions and patches'" References: In-Reply-To: Date: Thu, 7 Mar 2024 00:00:50 +0800 X-OQ-MSGID: <01a701da6fdf$75fdd310$61f97930$@foxmail.com> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQHekSnDg6Lu6xCX40qquV04l3BGPwK1jAJgsQzr6bA= Content-Language: zh-cn Subject: Re: [FFmpeg-devel] [PATCH] avcodec/libx264: fix extradata when config annexb=0 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: Cgo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogZmZtcGVnLWRldmVsIDxmZm1w ZWctZGV2ZWwtYm91bmNlc0BmZm1wZWcub3JnPiBPbiBCZWhhbGYgT2YgQW5kcmVhcyBSaGVpbmhh cmR0Cj4gU2VudDogMjAyNOW5tDPmnIg25pelIDIyOjE5Cj4gVG86IGZmbXBlZy1kZXZlbEBmZm1w ZWcub3JnCj4gU3ViamVjdDogUmU6IFtGRm1wZWctZGV2ZWxdIFtQQVRDSF0gYXZjb2RlYy9saWJ4 MjY0OiBmaXggZXh0cmFkYXRhIHdoZW4gY29uZmlnIGFubmV4Yj0wCj4gCj4gWmhhbyBaaGlsaToK PiA+IEZyb206IFpoYW8gWmhpbGkgPHpoaWxpemhhb0B0ZW5jZW50LmNvbT4KPiA+Cj4gPiAtLS0K PiA+ICBjb25maWd1cmUgICAgICAgICAgICB8ICAgMiArLQo+ID4gIGxpYmF2Y29kZWMvbGlieDI2 NC5jIHwgMTQ4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KPiA+ ICAyIGZpbGVzIGNoYW5nZWQsIDEyNSBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKPiA+ Cj4gPiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCj4gPiBpbmRleCBiYmYxYTcw NzMxLi5lZjU4YzNmZTk3IDEwMDc1NQo+ID4gLS0tIGEvY29uZmlndXJlCj4gPiArKysgYi9jb25m aWd1cmUKPiA+IEBAIC0zNDkxLDcgKzM0OTEsNyBAQCBsaWJ3ZWJwX2VuY29kZXJfZGVwcz0ibGli d2VicCIKPiA+ICBsaWJ3ZWJwX2FuaW1fZW5jb2Rlcl9kZXBzPSJsaWJ3ZWJwIgo+ID4gIGxpYngy NjJfZW5jb2Rlcl9kZXBzPSJsaWJ4MjYyIgo+ID4gIGxpYngyNjRfZW5jb2Rlcl9kZXBzPSJsaWJ4 MjY0Igo+ID4gLWxpYngyNjRfZW5jb2Rlcl9zZWxlY3Q9ImF0c2NfYTUzIgo+ID4gK2xpYngyNjRf ZW5jb2Rlcl9zZWxlY3Q9ImF0c2NfYTUzIGgyNjRwYXJzZSIKPiA+ICBsaWJ4MjY0cmdiX2VuY29k ZXJfZGVwcz0ibGlieDI2NCIKPiA+ICBsaWJ4MjY0cmdiX2VuY29kZXJfc2VsZWN0PSJsaWJ4MjY0 X2VuY29kZXIiCj4gPiAgbGlieDI2NV9lbmNvZGVyX2RlcHM9ImxpYngyNjUiCj4gPiBkaWZmIC0t Z2l0IGEvbGliYXZjb2RlYy9saWJ4MjY0LmMgYi9saWJhdmNvZGVjL2xpYngyNjQuYwo+ID4gaW5k ZXggMTBkNjQ2YmQ3Ni4uMTBkZmRhMTI1ZCAxMDA2NDQKPiA+IC0tLSBhL2xpYmF2Y29kZWMvbGli eDI2NC5jCj4gPiArKysgYi9saWJhdmNvZGVjL2xpYngyNjQuYwo+ID4gQEAgLTM0LDkgKzM0LDEy IEBACj4gPiAgI2luY2x1ZGUgImF2Y29kZWMuaCIKPiA+ICAjaW5jbHVkZSAiY29kZWNfaW50ZXJu YWwuaCIKPiA+ICAjaW5jbHVkZSAiZW5jb2RlLmgiCj4gPiArI2luY2x1ZGUgImdldF9iaXRzLmgi Cj4gPiArI2luY2x1ZGUgImgyNjRfcHMuaCIKPiA+ICAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKPiA+ ICAjaW5jbHVkZSAicGFja2V0X2ludGVybmFsLmgiCj4gPiAgI2luY2x1ZGUgImF0c2NfYTUzLmgi Cj4gPiArI2luY2x1ZGUgInB1dF9iaXRzLmgiCj4gPiAgI2luY2x1ZGUgInNlaS5oIgo+ID4KPiA+ ICAjaW5jbHVkZSA8eDI2NC5oPgo+ID4gQEAgLTg2NSw2ICs4NjgsMTI0IEBAIHN0YXRpYyBpbnQg Y29udmVydF9waXhfZm10KGVudW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10KQo+ID4gICAgICByZXR1 cm4gMDsKPiA+ICB9Cj4gPgo+ID4gK3N0YXRpYyBpbnQgc2V0X2F2Y2NfZXh0cmFkYXRhKEFWQ29k ZWNDb250ZXh0ICphdmN0eCwgeDI2NF9uYWxfdCAqbmFsLCBpbnQgbm5hbCkKPiA+ICt7Cj4gPiAr ICAgIHgyNjRfbmFsX3QgKnNwc19uYWwgPSBOVUxMOwo+ID4gKyAgICB4MjY0X25hbF90ICpwcHNf bmFsID0gTlVMTDsKPiA+ICsgICAgR2V0Qml0Q29udGV4dCBnYmM7Cj4gPiArICAgIFB1dEJpdENv bnRleHQgcGJjOwo+ID4gKyAgICBIMjY0UGFyYW1TZXRzIHBzID0geyAwIH07Cj4gPiArICAgIHVp bnQ4X3QgKnA7Cj4gPiArICAgIGludCByZXQsIHByb2ZpbGU7Cj4gPiArCj4gPiArICAgIC8qIFdl IGtub3cgaXQncyBpbiB0aGUgb3JkZXIgb2YgU1BTL1BQUy9TRUksIGJ1dCBpdCdzIG5vdCBkb2N1 bWVudGVkIGluIHgyNjQgQVBJLgo+ID4gKyAgICAgKiBUaGUgeDI2NCBwYXJhbSBpX3Nwc19pZCBp bXBsaWVzIHRoZXJlIGlzIGEgc2luZ2xlIHBhaXIgb2YgU1BTL1BQUy4KPiA+ICsgICAgICovCj4g PiArICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbm5hbDsgaSsrKSB7Cj4gPiArICAgICAgICBpZiAo bmFsW2ldLmlfdHlwZSA9PSBOQUxfU1BTKQo+ID4gKyAgICAgICAgICAgIHNwc19uYWwgPSAmbmFs W2ldOwo+ID4gKyAgICAgICAgZWxzZSBpZiAobmFsW2ldLmlfdHlwZSA9PSBOQUxfUFBTKQo+ID4g KyAgICAgICAgICAgIHBwc19uYWwgPSAmbmFsW2ldOwo+ID4gKyAgICB9Cj4gPiArICAgIGF2X2Fz c2VydDAoc3BzX25hbCk7Cj4gPiArICAgIGF2X2Fzc2VydDAocHBzX25hbCk7Cj4gCj4gV2Ugc2hv dWxkIG5ldmVyIGFzc2VydCBvbiB0aGUgb3V0cHV0IG9mIGV4dGVybmFsIGxpYnJhcmllcy4KCk9r LCB3aWxsIGp1c3QgcmVtb3ZlIHRoZSBhc3NlcnQuIEkgZG9uJ3QgdGhpbmsgYSBjaGVjayBpcyBu ZWVkZWQuCgo+IAo+ID4gKwo+ID4gKyAgICAvLyArMTEgZm9yIEFWQ0RlY29kZXJDb25maWd1cmF0 aW9uUmVjb3JkLCB3aWxsIHNocmluayB0byB0aGUgcmVhbCBzaXplIGZpbmFsbHkKPiA+ICsgICAg YXZjdHgtPmV4dHJhZGF0YV9zaXplID0gc3BzX25hbC0+aV9wYXlsb2FkICsgcHBzX25hbC0+aV9w YXlsb2FkICsgMTE7Cj4gPiArICAgIGF2Y3R4LT5leHRyYWRhdGEgPSBhdl9tYWxsb2N6KGF2Y3R4 LT5leHRyYWRhdGFfc2l6ZSArIEFWX0lOUFVUX0JVRkZFUl9NSU5fU0laRSk7Cj4gCj4gQVZfSU5Q VVRfQlVGRkVSX1BBRERJTkdfU0laRQoKT29wcy4KCj4gCj4gPiArICAgIGlmICghYXZjdHgtPmV4 dHJhZGF0YSkKPiA+ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gPiArCj4gPiAr ICAgIC8vIFNraXAgc2l6ZSBwYXJ0Cj4gPiArICAgIHAgPSBzcHNfbmFsLT5wX3BheWxvYWQgKyA0 Owo+ID4gKyAgICBpbml0X2dldF9iaXRzOCgmZ2JjLCBwLCBzcHNfbmFsLT5pX3BheWxvYWQgLSA0 KTsKPiA+ICsgICAgc2tpcF9iaXRzKCZnYmMsIDgpOwo+ID4gKyAgICByZXQgPSBmZl9oMjY0X2Rl Y29kZV9zZXFfcGFyYW1ldGVyX3NldCgmZ2JjLCBhdmN0eCwgJnBzLCAwKTsKPiAKPiBUaGlzIGlz IGNvbXBsZXRlbHkgb3ZlcmJsb3duLiBZb3Ugb25seSByZWFkIHRocmVlIGZpZWxkczogcHJvZmls ZV9pZGMsCj4gdGhlIGNvbnN0cmFpbnQgZmllbGRzIGFuZCBsZXZlbF9pZGMuIEFsbCB0aHJlZSBh cmUgYXQgdGhlIHN0YXJ0IG9mIHRoZQo+IFNQUyBhbmQgb2NjdXB5IGEgd2hvbGUgYnl0ZSwgc28g dGhlcmUgaXMgbm8gbmVlZCBmb3IgYSBHZXRCaXRDb250ZXh0IGF0IGFsbC4KPiAoWWVzLCBJIGFt IGF3YXJlIG9mIHRoZSBoeXBvdGhldGljYWwgc2NlbmFyaW8gaW4gd2hpY2ggd2UgY291bGQgaGF2 ZSBhCj4gMHgwMyBlc2NhcGUgYnl0ZSBiZWZvcmUgbGV2ZWxfaWRjIChpbiBjYXNlIG9mIGEgaHlw b3RoZXRpY2FsIGZ1dHVyZQo+IHByb2ZpbGUgemVybyksIGJ1dCBldmVuIHRoZW4gdXNpbmcgZmZf aDI2NF9kZWNvZGVfc2VxX3BhcmFtZXRlcl9zZXQoKSBpcwo+IG92ZXJibG93bi4pCgpZb3UgbWlz c2VkIGNocm9tYV9mb3JtYXRfaWRjLCBiaXRfZGVwdGhfbHVtYS9iaXRfZGVwdGhfY2hyb21hLgpJ IGNhbiBnZXQgdGhhdCBmcm9tIHBpeGVsIGZvcm1hdCwgYnV0IHRoZXJlIGFyZSBhIGxvdCBvZiB0 aGVtLgoKPiAKPiA+ICsgICAgaWYgKHJldCA8IDApCj4gPiArICAgICAgICByZXR1cm4gcmV0Owo+ ID4gKwo+ID4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8IEZGX0FSUkFZX0VMRU1TKHBzLnNwc19s aXN0KTsgaSsrKSB7Cj4gPiArICAgICAgICBpZiAocHMuc3BzX2xpc3RbaV0pIHsKPiA+ICsgICAg ICAgICAgICBwcy5zcHMgPSBwcy5zcHNfbGlzdFtpXTsKPiA+ICsgICAgICAgICAgICBicmVhazsK PiA+ICsgICAgICAgIH0KPiA+ICsgICAgfQo+ID4gKwo+ID4gKyAgICAvLyBOb3cgY3JlYXRlIEFW Q0RlY29kZXJDb25maWd1cmF0aW9uUmVjb3JkCj4gPiArICAgIGluaXRfcHV0X2JpdHMoJnBiYywg YXZjdHgtPmV4dHJhZGF0YSwgYXZjdHgtPmV4dHJhZGF0YV9zaXplKTsKPiA+ICsgICAgcHV0X2Jp dHMoJnBiYywgOCwgMSk7IC8vIHZlcnNpb24KPiA+ICsgICAgcHV0X2JpdHMoJnBiYywgOCwgcHMu c3BzLT5wcm9maWxlX2lkYyk7IC8vIEFWQ1Byb2ZpbGVJbmRpY2F0aW9uCj4gPiArICAgIHB1dF9i aXRzKCZwYmMsIDgsIHBzLnNwcy0+Y29uc3RyYWludF9zZXRfZmxhZ3MpOyAvLyBwcm9maWxlX2Nv bXBhdGliaWxpdHkKPiA+ICsgICAgcHV0X2JpdHMoJnBiYywgOCwgcHMuc3BzLT5sZXZlbF9pZGMp OyAvLyBBVkNMZXZlbEluZGljYXRpb24KPiA+ICsgICAgcHV0X2JpdHMoJnBiYywgMTEsIDB4N0ZG KTsKPiA+ICsKPiA+ICsgICAgcCA9IHNwc19uYWwtPnBfcGF5bG9hZCArIDQ7Cj4gPiArICAgIHB1 dF9iaXRzKCZwYmMsIDUsIDEpOyAvLyBudW1PZlNlcXVlbmNlUGFyYW1ldGVyU2V0cwo+ID4gKyAg ICBwdXRfYml0cygmcGJjLCAxNiwgc3BzX25hbC0+aV9wYXlsb2FkIC0gNCk7IC8vIHNlcXVlbmNl UGFyYW1ldGVyU2V0TGVuZ3RoCj4gCj4gSSBhbHNvIHRoaW5rIHRoYXQgdXNpbmcgYSBQdXRCaXRD b250ZXh0IGlzIG92ZXJibG93biBoZXJlIChtb3N0IGZpZWxkcwo+IGRvbid0IGNyb3NzIGEgYnl0 ZS1ib3VuZGFyeSwgdGhlIGJpdC1hbGlnbm1lbnQgb2YgZXZlcnkgZmllbGQgaXMgZml4ZWQpLAo+ IGluIHBhcnRpY3VsYXIgaWYgeW91IGNvcHkgdGhlIE5BTFVzIGVpZ2h0IGJpdHMgYXQgYSB0aW1l OgoKSXQncyByZWFkYWJsZSwgY2xvc2UgcmVsYXRlZCB0byB0aGUgc3BlYywgYW5kIGl0IGNvdW50 cyBob3cgbWFueSBieXRlcyBhY3R1YWxseSB1c2VkCmF1dG9tYXRpY2FsbHkuIEkgY2hvb3NlIGl0 IGZvciB0aGVzZSBjb252ZW5pZW5jZSBvdmVyIHBlcmZvcm1hbmNlLgoKPiAKPiA+ICsgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBzcHNfbmFsLT5pX3BheWxvYWQgLSA0OyBpKyspCj4gPiArICAgICAg ICBwdXRfYml0cygmcGJjLCA4LCBwW2ldKTsKPiA+ICsKPiA+ICsgICAgcCA9IHBwc19uYWwtPnBf cGF5bG9hZCArIDQ7Cj4gPiArICAgIHB1dF9iaXRzKCZwYmMsIDgsIDEpOyAvLyBudW1PZlBpY3R1 cmVQYXJhbWV0ZXJTZXRzCj4gPiArICAgIHB1dF9iaXRzKCZwYmMsIDE2LCBwcHNfbmFsLT5pX3Bh eWxvYWQgLSA0KTsgLy8gcGljdHVyZVBhcmFtZXRlclNldExlbmd0aAo+ID4gKyAgICBmb3IgKGlu dCBpID0gMDsgaSA8IHBwc19uYWwtPmlfcGF5bG9hZCAtIDQ7IGkrKykKPiA+ICsgICAgICAgIHB1 dF9iaXRzKCZwYmMsIDgsIHBbaV0pOwo+ID4gKwo+ID4gKyAgICBwcm9maWxlID0gcHMuc3BzLT5w cm9maWxlX2lkYzsKPiA+ICsgICAgaWYgKHByb2ZpbGUgIT0gNjYgJiYgcHJvZmlsZSAhPSA3NyAm JiBwcm9maWxlICE9IDg4KSB7Cj4gPiArICAgICAgICBwdXRfYml0cygmcGJjLCA2LCAweDNGKTsK PiA+ICsgICAgICAgIHB1dF9iaXRzKCZwYmMsIDIsIHBzLnNwcy0+Y2hyb21hX2Zvcm1hdF9pZGMp Owo+ID4gKyAgICAgICAgcHV0X2JpdHMoJnBiYywgNSwgMHgxRik7Cj4gPiArICAgICAgICBwdXRf Yml0cygmcGJjLCAzLCBwcy5zcHMtPmJpdF9kZXB0aF9sdW1hIC0gOCk7Cj4gPiArICAgICAgICBw dXRfYml0cygmcGJjLCA1LCAweDFGKTsKPiA+ICsgICAgICAgIHB1dF9iaXRzKCZwYmMsIDMsIHBz LnNwcy0+Yml0X2RlcHRoX2Nocm9tYSAtIDgpOwo+ID4gKyAgICAgICAgcHV0X2JpdHMoJnBiYywg OCwgMCk7Cj4gPiArICAgIH0KPiA+ICsgICAgZmx1c2hfcHV0X2JpdHMoJnBiYyk7Cj4gPiArICAg IGF2Y3R4LT5leHRyYWRhdGFfc2l6ZSA9IHB1dF9ieXRlc19vdXRwdXQoJnBiYyk7Cj4gPiArCj4g PiArICAgIGZmX2gyNjRfcHNfdW5pbml0KCZwcyk7Cj4gPiArCj4gPiArICAgIHJldHVybiAwOwo+ ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IHNldF9leHRyYWRhdGEoQVZDb2RlY0NvbnRleHQg KmF2Y3R4KQo+ID4gK3sKPiA+ICsgICAgWDI2NENvbnRleHQgKng0ID0gYXZjdHgtPnByaXZfZGF0 YTsKPiA+ICsgICAgeDI2NF9uYWxfdCAqbmFsOwo+ID4gKyAgICB1aW50OF90ICpwOwo+ID4gKyAg ICBpbnQgbm5hbCwgczsKPiA+ICsKPiA+ICsgICAgcyA9IHgyNjRfZW5jb2Rlcl9oZWFkZXJzKHg0 LT5lbmMsICZuYWwsICZubmFsKTsKPiA+ICsgICAgaWYgKHMgPCAwKQo+ID4gKyAgICAgICAgcmV0 dXJuIEFWRVJST1JfRVhURVJOQUw7Cj4gPiArCj4gPiArICAgIGlmICgheDQtPnBhcmFtcy5iX2Fu bmV4YikKPiA+ICsgICAgICAgIHJldHVybiBzZXRfYXZjY19leHRyYWRhdGEoYXZjdHgsIG5hbCwg bm5hbCk7Cj4gPiArCj4gPiArICAgIGF2Y3R4LT5leHRyYWRhdGEgPSBwID0gYXZfbWFsbG9jeihz ICsgQVZfSU5QVVRfQlVGRkVSX1BBRERJTkdfU0laRSk7Cj4gPiArICAgIGlmICghcCkKPiA+ICsg ICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gPiArCj4gPiArICAgIGZvciAoaW50IGkg PSAwOyBpIDwgbm5hbDsgaSsrKSB7Cj4gPiArICAgICAgICAvKiBEb24ndCBwdXQgdGhlIFNFSSBp biBleHRyYWRhdGEuICovCj4gPiArICAgICAgICBpZiAobmFsW2ldLmlfdHlwZSA9PSBOQUxfU0VJ KSB7Cj4gPiArICAgICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfSU5GTywgIiVzXG4iLCBu YWxbaV0ucF9wYXlsb2FkICsgMjUpOwo+ID4gKyAgICAgICAgICAgIHg0LT5zZWlfc2l6ZSA9IG5h bFtpXS5pX3BheWxvYWQ7Cj4gPiArICAgICAgICAgICAgeDQtPnNlaSA9IGF2X21hbGxvYyh4NC0+ c2VpX3NpemUpOwo+ID4gKyAgICAgICAgICAgIGlmICgheDQtPnNlaSkKPiA+ICsgICAgICAgICAg ICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPiA+ICsgICAgICAgICAgICBtZW1jcHkoeDQt PnNlaSwgbmFsW2ldLnBfcGF5bG9hZCwgbmFsW2ldLmlfcGF5bG9hZCk7Cj4gPiArICAgICAgICAg ICAgY29udGludWU7Cj4gPiArICAgICAgICB9Cj4gPiArICAgICAgICBtZW1jcHkocCwgbmFsW2ld LnBfcGF5bG9hZCwgbmFsW2ldLmlfcGF5bG9hZCk7Cj4gPiArICAgICAgICBwICs9IG5hbFtpXS5p X3BheWxvYWQ7Cj4gPiArICAgIH0KPiA+ICsgICAgYXZjdHgtPmV4dHJhZGF0YV9zaXplID0gcCAt IGF2Y3R4LT5leHRyYWRhdGE7Cj4gPiArCj4gPiArICAgIHJldHVybiAwOwo+ID4gK30KPiA+ICsK PiA+ICAjZGVmaW5lIFBBUlNFX1gyNjRfT1BUKG5hbWUsIHZhcilcCj4gPiAgICAgIGlmICh4NC0+ dmFyICYmIHgyNjRfcGFyYW1fcGFyc2UoJng0LT5wYXJhbXMsIG5hbWUsIHg0LT52YXIpIDwgMCkg e1wKPiA+ICAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiRXJyb3IgcGFyc2lu ZyBvcHRpb24gJyVzJyB3aXRoIHZhbHVlICclcycuXG4iLCBuYW1lLCB4NC0+dmFyKTtcCj4gPiBA QCAtMTIzMywzMCArMTM1NCw5IEBAIEZGX0VOQUJMRV9ERVBSRUNBVElPTl9XQVJOSU5HUwo+ID4g ICAgICAgICAgcmV0dXJuIEFWRVJST1JfRVhURVJOQUw7Cj4gPgo+ID4gICAgICBpZiAoYXZjdHgt PmZsYWdzICYgQVZfQ09ERUNfRkxBR19HTE9CQUxfSEVBREVSKSB7Cj4gPiAtICAgICAgICB4MjY0 X25hbF90ICpuYWw7Cj4gPiAtICAgICAgICB1aW50OF90ICpwOwo+ID4gLSAgICAgICAgaW50IG5u YWwsIHMsIGk7Cj4gPiAtCj4gPiAtICAgICAgICBzID0geDI2NF9lbmNvZGVyX2hlYWRlcnMoeDQt PmVuYywgJm5hbCwgJm5uYWwpOwo+ID4gLSAgICAgICAgYXZjdHgtPmV4dHJhZGF0YSA9IHAgPSBh dl9tYWxsb2N6KHMgKyBBVl9JTlBVVF9CVUZGRVJfUEFERElOR19TSVpFKTsKPiA+IC0gICAgICAg IGlmICghcCkKPiA+IC0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ID4gLQo+ ID4gLSAgICAgICAgZm9yIChpID0gMDsgaSA8IG5uYWw7IGkrKykgewo+ID4gLSAgICAgICAgICAg IC8qIERvbid0IHB1dCB0aGUgU0VJIGluIGV4dHJhZGF0YS4gKi8KPiA+IC0gICAgICAgICAgICBp ZiAobmFsW2ldLmlfdHlwZSA9PSBOQUxfU0VJKSB7Cj4gPiAtICAgICAgICAgICAgICAgIGF2X2xv ZyhhdmN0eCwgQVZfTE9HX0lORk8sICIlc1xuIiwgbmFsW2ldLnBfcGF5bG9hZCsyNSk7Cj4gPiAt ICAgICAgICAgICAgICAgIHg0LT5zZWlfc2l6ZSA9IG5hbFtpXS5pX3BheWxvYWQ7Cj4gPiAtICAg ICAgICAgICAgICAgIHg0LT5zZWkgICAgICA9IGF2X21hbGxvYyh4NC0+c2VpX3NpemUpOwo+ID4g LSAgICAgICAgICAgICAgICBpZiAoIXg0LT5zZWkpCj4gPiAtICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ID4gLSAgICAgICAgICAgICAgICBtZW1jcHkoeDQtPnNl aSwgbmFsW2ldLnBfcGF5bG9hZCwgbmFsW2ldLmlfcGF5bG9hZCk7Cj4gPiAtICAgICAgICAgICAg ICAgIGNvbnRpbnVlOwo+ID4gLSAgICAgICAgICAgIH0KPiA+IC0gICAgICAgICAgICBtZW1jcHko cCwgbmFsW2ldLnBfcGF5bG9hZCwgbmFsW2ldLmlfcGF5bG9hZCk7Cj4gPiAtICAgICAgICAgICAg cCArPSBuYWxbaV0uaV9wYXlsb2FkOwo+ID4gLSAgICAgICAgfQo+ID4gLSAgICAgICAgYXZjdHgt PmV4dHJhZGF0YV9zaXplID0gcCAtIGF2Y3R4LT5leHRyYWRhdGE7Cj4gPiArICAgICAgICByZXQg PSBzZXRfZXh0cmFkYXRhKGF2Y3R4KTsKPiA+ICsgICAgICAgIGlmIChyZXQgPCAwKQo+ID4gKyAg ICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiAgICAgIH0KPiA+Cj4gPiAgICAgIGNwYl9wcm9wcyA9 IGZmX2VuY29kZV9hZGRfY3BiX3NpZGVfZGF0YShhdmN0eCk7Cj4gCj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBs aXN0Cj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1h bi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPiAKPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBh Ym92ZSwgb3IgZW1haWwKPiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3Vi amVjdCAidW5zdWJzY3JpYmUiLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVn Lm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVx dWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=