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 86C1349CA7 for ; Wed, 6 Mar 2024 16:46:56 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 91EA968CB56; Wed, 6 Mar 2024 18:46:53 +0200 (EET) Received: from out162-62-58-211.mail.qq.com (out162-62-58-211.mail.qq.com [162.62.58.211]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 63EC168BE6F for ; Wed, 6 Mar 2024 18:46:45 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1709743600; bh=7Uzxll5us41Re+ZsWa4oxVzHzqWzqjK46CJD4+BvQck=; h=From:To:References:In-Reply-To:Subject:Date; b=vfTwMHmB8wRCCGWdarRlRcre2Iggf2yRyvy7zbGZ9SFEsOukrjwDx6StqXAi4EPcy mJ7Ip52mPeA75LWNNuGX7V3VAm98chjrWYHXjfFbS5Epo+b425Y0HwDf3AzpKx7M7m n+c2v5KTWGCNqVAoe7nb2TOjU7N1792qDNdZQXCI= Received: from homepc ([121.35.184.23]) by newxmesmtplogicsvrszb9-0.qq.com (NewEsmtp) with SMTP id BA7B2E5B; Thu, 07 Mar 2024 00:46:39 +0800 X-QQ-mid: xmsmtpt1709743599tk7feumjc Message-ID: X-QQ-XMAILINFO: MyIXMys/8kCtTZQ6lp9hqMP+T7rk+sMd7wvIwT5SeV762oOFEK5Y8zajx32ACT n9U/FZ8kh9wlAdAGa5xl8Lc8AUVe7/qQNLRZQQJ57SnSIOba5HairSW8uTtDgM2VYhjg8SeRAsmb u67AQSWPB0zRLiHy9VHJZI6mcEzRfFwL01ZUF8+Ywv+WOjap/c5j+ovGKmgCNwybEZILTnN9EIw2 LA4yvdPja9tO//55UQMg8JnHOgMmne7GRkqBEjvPQgSU0PVL49zMgmgw799qxb0brYZ1MKv0Vlbh wDWN1X1EpKyKk4lGi69pLh2qcYgOCoyC56NTF62ZpNg5h+OPSY4te+eGnROWAtZ7xzTBeuIyw/og ShqsWB/6dcPciUxGuRRuOqgFP8UMs9GCSdqCxwg2VCtBrMLMaFGcRexeLTwT0LG/QsCgBSyu1sqk +gkZrMb/et3e/FhUfxvBc/5HA2JloWnxoe+3vXX1i8iK0ZGL+zRt7/0rYDuZvQkiusgroV+1lAOS hMUnpIy8lg5gxLRhY/YyBIDYZBHR71wBopDzuzbnL9/VDEzq5DD6HFJOcubwSDoJ3mbHfl0LvYOp 0gRMn9BLX6hbr0+bsRoZY6v36jqkFu62Yzcj+C9n/znB8fKuHCZim3ADnhNs3fzCbjrkPJpU721B lbyrD+jT6tlI5tCZ5EMURRKpJ5aTncC5KfBAtPRgp32mryMByxitftTpXLJIp8/TtRDKXTck3dOa /Br845Nn4gHeHL24oYOBaN5vFCnYyj/TB0/eue8jxY+YO22mgqk2YCbmXnLDA7jgHQdF+O6SNjRc SZhf3/J+KRQrKtIh1ClxSd2KJ0mdp0zmSvNrBOXDQcMzFtehJoEP9mVTNEY33BYXjfB1nMrrqGl3 qptjNlhOEnyejSQ7SplVfAu8ywamDlqKBCE2i5RT5yzia8B6TEkD6Ig9pz7SgQFxRu5PEpfsixs9 obmScCr3CXxHxbto4Qx2ViqqgamXf9YfpN4sts+8wuL7kAc9KcYQ== X-QQ-XMRINFO: MSVp+SPm3vtS1Vd6Y4Mggwc= From: "Zhao Zhili" To: "'FFmpeg development discussions and patches'" References: In-Reply-To: Date: Thu, 7 Mar 2024 00:46:39 +0800 X-OQ-MSGID: <004301da6fe5$dcc56990$96503cb0$@foxmail.com> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Content-Language: zh-cn Thread-Index: AQHekSnDg6Lu6xCX40qquV04l3BGPwK1jAJgAewdJLYApyOGcbD4Xjow 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 cmR0Cj4gU2VudDogMjAyNOW5tDPmnIg35pelIDA6MjQKPiBUbzogZmZtcGVnLWRldmVsQGZmbXBl Zy5vcmcKPiBTdWJqZWN0OiBSZTogW0ZGbXBlZy1kZXZlbF0gW1BBVENIXSBhdmNvZGVjL2xpYngy NjQ6IGZpeCBleHRyYWRhdGEgd2hlbiBjb25maWcgYW5uZXhiPTAKPiAKPiBaaGFvIFpoaWxpOgo+ ID4KPiA+Cj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+PiBGcm9tOiBmZm1wZWct ZGV2ZWwgPGZmbXBlZy1kZXZlbC1ib3VuY2VzQGZmbXBlZy5vcmc+IE9uIEJlaGFsZiBPZiBBbmRy ZWFzIFJoZWluaGFyZHQKPiA+PiBTZW50OiAyMDI05bm0M+aciDbml6UgMjI6MTkKPiA+PiBUbzog ZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPiA+PiBTdWJqZWN0OiBSZTogW0ZGbXBlZy1kZXZlbF0g W1BBVENIXSBhdmNvZGVjL2xpYngyNjQ6IGZpeCBleHRyYWRhdGEgd2hlbiBjb25maWcgYW5uZXhi PTAKPiA+Pgo+ID4+IFpoYW8gWmhpbGk6Cj4gPj4+IEZyb206IFpoYW8gWmhpbGkgPHpoaWxpemhh b0B0ZW5jZW50LmNvbT4KPiA+Pj4KPiA+Pj4gLS0tCj4gPj4+ICBjb25maWd1cmUgICAgICAgICAg ICB8ICAgMiArLQo+ID4+PiAgbGliYXZjb2RlYy9saWJ4MjY0LmMgfCAxNDggKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQo+ID4+PiAgMiBmaWxlcyBjaGFuZ2VkLCAx MjUgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCj4gPj4+Cj4gPj4+IGRpZmYgLS1naXQg YS9jb25maWd1cmUgYi9jb25maWd1cmUKPiA+Pj4gaW5kZXggYmJmMWE3MDczMS4uZWY1OGMzZmU5 NyAxMDA3NTUKPiA+Pj4gLS0tIGEvY29uZmlndXJlCj4gPj4+ICsrKyBiL2NvbmZpZ3VyZQo+ID4+ PiBAQCAtMzQ5MSw3ICszNDkxLDcgQEAgbGlid2VicF9lbmNvZGVyX2RlcHM9ImxpYndlYnAiCj4g Pj4+ICBsaWJ3ZWJwX2FuaW1fZW5jb2Rlcl9kZXBzPSJsaWJ3ZWJwIgo+ID4+PiAgbGlieDI2Ml9l bmNvZGVyX2RlcHM9ImxpYngyNjIiCj4gPj4+ICBsaWJ4MjY0X2VuY29kZXJfZGVwcz0ibGlieDI2 NCIKPiA+Pj4gLWxpYngyNjRfZW5jb2Rlcl9zZWxlY3Q9ImF0c2NfYTUzIgo+ID4+PiArbGlieDI2 NF9lbmNvZGVyX3NlbGVjdD0iYXRzY19hNTMgaDI2NHBhcnNlIgo+ID4+PiAgbGlieDI2NHJnYl9l bmNvZGVyX2RlcHM9ImxpYngyNjQiCj4gPj4+ICBsaWJ4MjY0cmdiX2VuY29kZXJfc2VsZWN0PSJs aWJ4MjY0X2VuY29kZXIiCj4gPj4+ICBsaWJ4MjY1X2VuY29kZXJfZGVwcz0ibGlieDI2NSIKPiA+ Pj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbGlieDI2NC5jIGIvbGliYXZjb2RlYy9saWJ4MjY0 LmMKPiA+Pj4gaW5kZXggMTBkNjQ2YmQ3Ni4uMTBkZmRhMTI1ZCAxMDA2NDQKPiA+Pj4gLS0tIGEv bGliYXZjb2RlYy9saWJ4MjY0LmMKPiA+Pj4gKysrIGIvbGliYXZjb2RlYy9saWJ4MjY0LmMKPiA+ Pj4gQEAgLTM0LDkgKzM0LDEyIEBACj4gPj4+ICAjaW5jbHVkZSAiYXZjb2RlYy5oIgo+ID4+PiAg I2luY2x1ZGUgImNvZGVjX2ludGVybmFsLmgiCj4gPj4+ICAjaW5jbHVkZSAiZW5jb2RlLmgiCj4g Pj4+ICsjaW5jbHVkZSAiZ2V0X2JpdHMuaCIKPiA+Pj4gKyNpbmNsdWRlICJoMjY0X3BzLmgiCj4g Pj4+ICAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKPiA+Pj4gICNpbmNsdWRlICJwYWNrZXRfaW50ZXJu YWwuaCIKPiA+Pj4gICNpbmNsdWRlICJhdHNjX2E1My5oIgo+ID4+PiArI2luY2x1ZGUgInB1dF9i aXRzLmgiCj4gPj4+ICAjaW5jbHVkZSAic2VpLmgiCj4gPj4+Cj4gPj4+ICAjaW5jbHVkZSA8eDI2 NC5oPgo+ID4+PiBAQCAtODY1LDYgKzg2OCwxMjQgQEAgc3RhdGljIGludCBjb252ZXJ0X3BpeF9m bXQoZW51bSBBVlBpeGVsRm9ybWF0IHBpeF9mbXQpCj4gPj4+ICAgICAgcmV0dXJuIDA7Cj4gPj4+ ICB9Cj4gPj4+Cj4gPj4+ICtzdGF0aWMgaW50IHNldF9hdmNjX2V4dHJhZGF0YShBVkNvZGVjQ29u dGV4dCAqYXZjdHgsIHgyNjRfbmFsX3QgKm5hbCwgaW50IG5uYWwpCj4gPj4+ICt7Cj4gPj4+ICsg ICAgeDI2NF9uYWxfdCAqc3BzX25hbCA9IE5VTEw7Cj4gPj4+ICsgICAgeDI2NF9uYWxfdCAqcHBz X25hbCA9IE5VTEw7Cj4gPj4+ICsgICAgR2V0Qml0Q29udGV4dCBnYmM7Cj4gPj4+ICsgICAgUHV0 Qml0Q29udGV4dCBwYmM7Cj4gPj4+ICsgICAgSDI2NFBhcmFtU2V0cyBwcyA9IHsgMCB9Owo+ID4+ PiArICAgIHVpbnQ4X3QgKnA7Cj4gPj4+ICsgICAgaW50IHJldCwgcHJvZmlsZTsKPiA+Pj4gKwo+ ID4+PiArICAgIC8qIFdlIGtub3cgaXQncyBpbiB0aGUgb3JkZXIgb2YgU1BTL1BQUy9TRUksIGJ1 dCBpdCdzIG5vdCBkb2N1bWVudGVkIGluIHgyNjQgQVBJLgo+ID4+PiArICAgICAqIFRoZSB4MjY0 IHBhcmFtIGlfc3BzX2lkIGltcGxpZXMgdGhlcmUgaXMgYSBzaW5nbGUgcGFpciBvZiBTUFMvUFBT Lgo+ID4+PiArICAgICAqLwo+ID4+PiArICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbm5hbDsgaSsr KSB7Cj4gPj4+ICsgICAgICAgIGlmIChuYWxbaV0uaV90eXBlID09IE5BTF9TUFMpCj4gPj4+ICsg ICAgICAgICAgICBzcHNfbmFsID0gJm5hbFtpXTsKPiA+Pj4gKyAgICAgICAgZWxzZSBpZiAobmFs W2ldLmlfdHlwZSA9PSBOQUxfUFBTKQo+ID4+PiArICAgICAgICAgICAgcHBzX25hbCA9ICZuYWxb aV07Cj4gPj4+ICsgICAgfQo+ID4+PiArICAgIGF2X2Fzc2VydDAoc3BzX25hbCk7Cj4gPj4+ICsg ICAgYXZfYXNzZXJ0MChwcHNfbmFsKTsKPiA+Pgo+ID4+IFdlIHNob3VsZCBuZXZlciBhc3NlcnQg b24gdGhlIG91dHB1dCBvZiBleHRlcm5hbCBsaWJyYXJpZXMuCj4gPgo+ID4gT2ssIHdpbGwganVz dCByZW1vdmUgdGhlIGFzc2VydC4gSSBkb24ndCB0aGluayBhIGNoZWNrIGlzIG5lZWRlZC4KPiA+ Cj4gPj4KPiA+Pj4gKwo+ID4+PiArICAgIC8vICsxMSBmb3IgQVZDRGVjb2RlckNvbmZpZ3VyYXRp b25SZWNvcmQsIHdpbGwgc2hyaW5rIHRvIHRoZSByZWFsIHNpemUgZmluYWxseQo+ID4+PiArICAg IGF2Y3R4LT5leHRyYWRhdGFfc2l6ZSA9IHNwc19uYWwtPmlfcGF5bG9hZCArIHBwc19uYWwtPmlf cGF5bG9hZCArIDExOwo+ID4+PiArICAgIGF2Y3R4LT5leHRyYWRhdGEgPSBhdl9tYWxsb2N6KGF2 Y3R4LT5leHRyYWRhdGFfc2l6ZSArIEFWX0lOUFVUX0JVRkZFUl9NSU5fU0laRSk7Cj4gPj4KPiA+ PiBBVl9JTlBVVF9CVUZGRVJfUEFERElOR19TSVpFCj4gPgo+ID4gT29wcy4KPiA+Cj4gPj4KPiA+ Pj4gKyAgICBpZiAoIWF2Y3R4LT5leHRyYWRhdGEpCj4gPj4+ICsgICAgICAgIHJldHVybiBBVkVS Uk9SKEVOT01FTSk7Cj4gPj4+ICsKPiA+Pj4gKyAgICAvLyBTa2lwIHNpemUgcGFydAo+ID4+PiAr ICAgIHAgPSBzcHNfbmFsLT5wX3BheWxvYWQgKyA0Owo+ID4+PiArICAgIGluaXRfZ2V0X2JpdHM4 KCZnYmMsIHAsIHNwc19uYWwtPmlfcGF5bG9hZCAtIDQpOwo+ID4+PiArICAgIHNraXBfYml0cygm Z2JjLCA4KTsKPiA+Pj4gKyAgICByZXQgPSBmZl9oMjY0X2RlY29kZV9zZXFfcGFyYW1ldGVyX3Nl dCgmZ2JjLCBhdmN0eCwgJnBzLCAwKTsKPiA+Pgo+ID4+IFRoaXMgaXMgY29tcGxldGVseSBvdmVy Ymxvd24uIFlvdSBvbmx5IHJlYWQgdGhyZWUgZmllbGRzOiBwcm9maWxlX2lkYywKPiA+PiB0aGUg Y29uc3RyYWludCBmaWVsZHMgYW5kIGxldmVsX2lkYy4gQWxsIHRocmVlIGFyZSBhdCB0aGUgc3Rh cnQgb2YgdGhlCj4gPj4gU1BTIGFuZCBvY2N1cHkgYSB3aG9sZSBieXRlLCBzbyB0aGVyZSBpcyBu byBuZWVkIGZvciBhIEdldEJpdENvbnRleHQgYXQgYWxsLgo+ID4+IChZZXMsIEkgYW0gYXdhcmUg b2YgdGhlIGh5cG90aGV0aWNhbCBzY2VuYXJpbyBpbiB3aGljaCB3ZSBjb3VsZCBoYXZlIGEKPiA+ PiAweDAzIGVzY2FwZSBieXRlIGJlZm9yZSBsZXZlbF9pZGMgKGluIGNhc2Ugb2YgYSBoeXBvdGhl dGljYWwgZnV0dXJlCj4gPj4gcHJvZmlsZSB6ZXJvKSwgYnV0IGV2ZW4gdGhlbiB1c2luZyBmZl9o MjY0X2RlY29kZV9zZXFfcGFyYW1ldGVyX3NldCgpIGlzCj4gPj4gb3ZlcmJsb3duLikKPiA+Cj4g PiBZb3UgbWlzc2VkIGNocm9tYV9mb3JtYXRfaWRjLCBiaXRfZGVwdGhfbHVtYS9iaXRfZGVwdGhf Y2hyb21hLgo+ID4gSSBjYW4gZ2V0IHRoYXQgZnJvbSBwaXhlbCBmb3JtYXQsIGJ1dCB0aGVyZSBh cmUgYSBsb3Qgb2YgdGhlbS4KPiA+Cj4gCj4gT2ssIGJ1dCBldmVuIHRoZW4gSSBmYWlsIHRvIHNl ZSBhIGNvbnZlbmllbmNlIGFkdmFudGFnZSBoZXJlLiBBZnRlciBhbGwsCj4gdXNpbmcgaXQgZS5n LiBmb3JjZXMgdGhlIGZvbGxvd2luZyBsb29wIG9udG8geW91LiBBbmQgaXQgZm9yY2VzIGNsZWFu dXAKPiBjb2RlIGhlcmUuIEFsc28sIHRoZXJlIGlzIGEgZ290Y2hhIGhlcmUuIFNlZSBiZWxvdy4K CkkgZGlkbid0IHVzZSBmZl9oMjY0X2RlY29kZV9zZXFfcGFyYW1ldGVyX3NldCBhdCBmaXJzdCwg dW50aWwgbWV0CmNocm9tYV9mb3JtYXRfaWRjLiBHZXQgaXQgZnJvbSBtdWx0aXBsZSBwaXhlbCBm b3JtYXQgZG9lc24ndCBsaWtlCnRoZSByaWdodCB3YXkgdG8gZ28uIE1hbnVhbGx5IGRlY29kZSBn b2xvbWIgaXMgY29kZSBkdXBsaWNhdGlvbi4KClRoZSBmb2xsb3dpbmcgbG9vcCBjYW4gYmUgcmVt b3ZlZCBieSB1c2luZyBpX3Nwc19pZCBmcm9tIHgyNjQKcGFyYW1zLiBMb29wIG92ZXIgc3BzX2xp c3QgaXMgbW9yZSBzZWxmLWNvbnRhaW5lZC4KCkZvciBoZXZjLCBpdCB3aWxsIGJlIG1vcmUgY29t cGxleCBhbmQgdW5saWtlbHkgdG8gYXZvaWQgZmZfaGV2Y19kZWNvZGVfbmFsXy4KCj4gCj4gPj4K PiA+Pj4gKyAgICBpZiAocmV0IDwgMCkKPiA+Pj4gKyAgICAgICAgcmV0dXJuIHJldDsKPiA+Pj4g Kwo+ID4+PiArICAgIGZvciAoaW50IGkgPSAwOyBpIDwgRkZfQVJSQVlfRUxFTVMocHMuc3BzX2xp c3QpOyBpKyspIHsKPiA+Pj4gKyAgICAgICAgaWYgKHBzLnNwc19saXN0W2ldKSB7Cj4gPj4+ICsg ICAgICAgICAgICBwcy5zcHMgPSBwcy5zcHNfbGlzdFtpXTsKPiA+Pj4gKyAgICAgICAgICAgIGJy ZWFrOwo+ID4+PiArICAgICAgICB9Cj4gPj4+ICsgICAgfQo+ID4+PiArCj4gPj4+ICsgICAgLy8g Tm93IGNyZWF0ZSBBVkNEZWNvZGVyQ29uZmlndXJhdGlvblJlY29yZAo+ID4+PiArICAgIGluaXRf cHV0X2JpdHMoJnBiYywgYXZjdHgtPmV4dHJhZGF0YSwgYXZjdHgtPmV4dHJhZGF0YV9zaXplKTsK PiA+Pj4gKyAgICBwdXRfYml0cygmcGJjLCA4LCAxKTsgLy8gdmVyc2lvbgo+ID4+PiArICAgIHB1 dF9iaXRzKCZwYmMsIDgsIHBzLnNwcy0+cHJvZmlsZV9pZGMpOyAvLyBBVkNQcm9maWxlSW5kaWNh dGlvbgo+ID4+PiArICAgIHB1dF9iaXRzKCZwYmMsIDgsIHBzLnNwcy0+Y29uc3RyYWludF9zZXRf ZmxhZ3MpOyAvLyBwcm9maWxlX2NvbXBhdGliaWxpdHkKPiAKPiBTdXJlIHRoaXMgaXMgY29ycmVj dCBhdCBhbGw/IEl0IHNlZW1zIHRvIG1lIHRoYXQgaDI2NF9wcy5jIHJldmVyc2VzIHRoZQo+IG9y ZGVyIG9mIHRoZSBjb25zdHJhaW50X3NldF9mbGFncyAoY29uc3RyYWludF9zZXQwX2ZsYWcgKHdo aWNoIGlzIHRoZQo+IDB4ODAgYml0IGluIGEgZmlsZSkgd2lsbCBiZSBtYXBwZWQgdG8gMHgwMSBl dGMuKSBhbmQgaXQgZGlzY2FyZHMKPiByZXNlcnZlZF96ZXJvXzJiaXRzLiBZb3Ugc2hvdWxkIGlu c3RlYWQgc2ltcGx5IGNvcHkgdGhlIHJlbGV2YW50IGJ5dGUKPiBmcm9tIHRoZSBTUFMuCj4gCj4g Pj4+ICsgICAgcHV0X2JpdHMoJnBiYywgOCwgcHMuc3BzLT5sZXZlbF9pZGMpOyAvLyBBVkNMZXZl bEluZGljYXRpb24KPiA+Pj4gKyAgICBwdXRfYml0cygmcGJjLCAxMSwgMHg3RkYpOwo+ID4+PiAr Cj4gPj4+ICsgICAgcCA9IHNwc19uYWwtPnBfcGF5bG9hZCArIDQ7Cj4gPj4+ICsgICAgcHV0X2Jp dHMoJnBiYywgNSwgMSk7IC8vIG51bU9mU2VxdWVuY2VQYXJhbWV0ZXJTZXRzCj4gPj4+ICsgICAg cHV0X2JpdHMoJnBiYywgMTYsIHNwc19uYWwtPmlfcGF5bG9hZCAtIDQpOyAvLyBzZXF1ZW5jZVBh cmFtZXRlclNldExlbmd0aAo+ID4+Cj4gPj4gSSBhbHNvIHRoaW5rIHRoYXQgdXNpbmcgYSBQdXRC aXRDb250ZXh0IGlzIG92ZXJibG93biBoZXJlIChtb3N0IGZpZWxkcwo+ID4+IGRvbid0IGNyb3Nz IGEgYnl0ZS1ib3VuZGFyeSwgdGhlIGJpdC1hbGlnbm1lbnQgb2YgZXZlcnkgZmllbGQgaXMgZml4 ZWQpLAo+ID4+IGluIHBhcnRpY3VsYXIgaWYgeW91IGNvcHkgdGhlIE5BTFVzIGVpZ2h0IGJpdHMg YXQgYSB0aW1lOgo+ID4KPiA+IEl0J3MgcmVhZGFibGUsIGNsb3NlIHJlbGF0ZWQgdG8gdGhlIHNw ZWMsIGFuZCBpdCBjb3VudHMgaG93IG1hbnkgYnl0ZXMgYWN0dWFsbHkgdXNlZAo+ID4gYXV0b21h dGljYWxseS4gSSBjaG9vc2UgaXQgZm9yIHRoZXNlIGNvbnZlbmllbmNlIG92ZXIgcGVyZm9ybWFu Y2UuCj4gPgo+IAo+IEkgcmVnYXJkIGEgc2ltcGxlIG1lbWNweSgpIGFzIG1vcmUgY29udmVuaWVu dCB0aGFuIHRoZSBmb2xsb3dpbmcgbG9vcDoKPiAKPiA+Pgo+ID4+PiArICAgIGZvciAoaW50IGkg PSAwOyBpIDwgc3BzX25hbC0+aV9wYXlsb2FkIC0gNDsgaSsrKQo+ID4+PiArICAgICAgICBwdXRf Yml0cygmcGJjLCA4LCBwW2ldKTsKPiA+Pj4gKwo+ID4+PiArICAgIHAgPSBwcHNfbmFsLT5wX3Bh eWxvYWQgKyA0Owo+ID4+PiArICAgIHB1dF9iaXRzKCZwYmMsIDgsIDEpOyAvLyBudW1PZlBpY3R1 cmVQYXJhbWV0ZXJTZXRzCj4gPj4+ICsgICAgcHV0X2JpdHMoJnBiYywgMTYsIHBwc19uYWwtPmlf cGF5bG9hZCAtIDQpOyAvLyBwaWN0dXJlUGFyYW1ldGVyU2V0TGVuZ3RoCj4gPj4+ICsgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBwcHNfbmFsLT5pX3BheWxvYWQgLSA0OyBpKyspCj4gPj4+ICsgICAg ICAgIHB1dF9iaXRzKCZwYmMsIDgsIHBbaV0pOwo+ID4+PiArCj4gPj4+ICsgICAgcHJvZmlsZSA9 IHBzLnNwcy0+cHJvZmlsZV9pZGM7Cj4gPj4+ICsgICAgaWYgKHByb2ZpbGUgIT0gNjYgJiYgcHJv ZmlsZSAhPSA3NyAmJiBwcm9maWxlICE9IDg4KSB7Cj4gPj4+ICsgICAgICAgIHB1dF9iaXRzKCZw YmMsIDYsIDB4M0YpOwo+ID4+PiArICAgICAgICBwdXRfYml0cygmcGJjLCAyLCBwcy5zcHMtPmNo cm9tYV9mb3JtYXRfaWRjKTsKPiA+Pj4gKyAgICAgICAgcHV0X2JpdHMoJnBiYywgNSwgMHgxRik7 Cj4gPj4+ICsgICAgICAgIHB1dF9iaXRzKCZwYmMsIDMsIHBzLnNwcy0+Yml0X2RlcHRoX2x1bWEg LSA4KTsKPiA+Pj4gKyAgICAgICAgcHV0X2JpdHMoJnBiYywgNSwgMHgxRik7Cj4gPj4+ICsgICAg ICAgIHB1dF9iaXRzKCZwYmMsIDMsIHBzLnNwcy0+Yml0X2RlcHRoX2Nocm9tYSAtIDgpOwo+ID4+ PiArICAgICAgICBwdXRfYml0cygmcGJjLCA4LCAwKTsKPiA+Pj4gKyAgICB9Cj4gPj4+ICsgICAg Zmx1c2hfcHV0X2JpdHMoJnBiYyk7Cj4gPj4+ICsgICAgYXZjdHgtPmV4dHJhZGF0YV9zaXplID0g cHV0X2J5dGVzX291dHB1dCgmcGJjKTsKPiA+Pj4gKwo+ID4+PiArICAgIGZmX2gyNjRfcHNfdW5p bml0KCZwcyk7Cj4gPj4+ICsKPiA+Pj4gKyAgICByZXR1cm4gMDsKPiA+Pj4gK30KPiA+Pj4gKwo+ ID4+PiArc3RhdGljIGludCBzZXRfZXh0cmFkYXRhKEFWQ29kZWNDb250ZXh0ICphdmN0eCkKPiA+ Pj4gK3sKPiA+Pj4gKyAgICBYMjY0Q29udGV4dCAqeDQgPSBhdmN0eC0+cHJpdl9kYXRhOwo+ID4+ PiArICAgIHgyNjRfbmFsX3QgKm5hbDsKPiA+Pj4gKyAgICB1aW50OF90ICpwOwo+ID4+PiArICAg IGludCBubmFsLCBzOwo+ID4+PiArCj4gPj4+ICsgICAgcyA9IHgyNjRfZW5jb2Rlcl9oZWFkZXJz KHg0LT5lbmMsICZuYWwsICZubmFsKTsKPiA+Pj4gKyAgICBpZiAocyA8IDApCj4gPj4+ICsgICAg ICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOwo+ID4+PiArCj4gPj4+ICsgICAgaWYgKCF4NC0+ cGFyYW1zLmJfYW5uZXhiKQo+ID4+PiArICAgICAgICByZXR1cm4gc2V0X2F2Y2NfZXh0cmFkYXRh KGF2Y3R4LCBuYWwsIG5uYWwpOwo+ID4+PiArCj4gPj4+ICsgICAgYXZjdHgtPmV4dHJhZGF0YSA9 IHAgPSBhdl9tYWxsb2N6KHMgKyBBVl9JTlBVVF9CVUZGRVJfUEFERElOR19TSVpFKTsKPiA+Pj4g KyAgICBpZiAoIXApCj4gPj4+ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gPj4+ ICsKPiA+Pj4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG5uYWw7IGkrKykgewo+ID4+PiArICAg ICAgICAvKiBEb24ndCBwdXQgdGhlIFNFSSBpbiBleHRyYWRhdGEuICovCj4gPj4+ICsgICAgICAg IGlmIChuYWxbaV0uaV90eXBlID09IE5BTF9TRUkpIHsKPiA+Pj4gKyAgICAgICAgICAgIGF2X2xv ZyhhdmN0eCwgQVZfTE9HX0lORk8sICIlc1xuIiwgbmFsW2ldLnBfcGF5bG9hZCArIDI1KTsKPiA+ Pj4gKyAgICAgICAgICAgIHg0LT5zZWlfc2l6ZSA9IG5hbFtpXS5pX3BheWxvYWQ7Cj4gPj4+ICsg ICAgICAgICAgICB4NC0+c2VpID0gYXZfbWFsbG9jKHg0LT5zZWlfc2l6ZSk7Cj4gPj4+ICsgICAg ICAgICAgICBpZiAoIXg0LT5zZWkpCj4gPj4+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJS T1IoRU5PTUVNKTsKPiA+Pj4gKyAgICAgICAgICAgIG1lbWNweSh4NC0+c2VpLCBuYWxbaV0ucF9w YXlsb2FkLCBuYWxbaV0uaV9wYXlsb2FkKTsKPiA+Pj4gKyAgICAgICAgICAgIGNvbnRpbnVlOwo+ ID4+PiArICAgICAgICB9Cj4gPj4+ICsgICAgICAgIG1lbWNweShwLCBuYWxbaV0ucF9wYXlsb2Fk LCBuYWxbaV0uaV9wYXlsb2FkKTsKPiA+Pj4gKyAgICAgICAgcCArPSBuYWxbaV0uaV9wYXlsb2Fk Owo+ID4+PiArICAgIH0KPiA+Pj4gKyAgICBhdmN0eC0+ZXh0cmFkYXRhX3NpemUgPSBwIC0gYXZj dHgtPmV4dHJhZGF0YTsKPiA+Pj4gKwo+ID4+PiArICAgIHJldHVybiAwOwo+ID4+PiArfQo+ID4+ PiArCj4gPj4+ICAjZGVmaW5lIFBBUlNFX1gyNjRfT1BUKG5hbWUsIHZhcilcCj4gPj4+ICAgICAg aWYgKHg0LT52YXIgJiYgeDI2NF9wYXJhbV9wYXJzZSgmeDQtPnBhcmFtcywgbmFtZSwgeDQtPnZh cikgPCAwKSB7XAo+ID4+PiAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkVy cm9yIHBhcnNpbmcgb3B0aW9uICclcycgd2l0aCB2YWx1ZSAnJXMnLlxuIiwgbmFtZSwgeDQtPnZh cik7XAo+ID4+PiBAQCAtMTIzMywzMCArMTM1NCw5IEBAIEZGX0VOQUJMRV9ERVBSRUNBVElPTl9X QVJOSU5HUwo+ID4+PiAgICAgICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsKPiA+Pj4KPiA+ Pj4gICAgICBpZiAoYXZjdHgtPmZsYWdzICYgQVZfQ09ERUNfRkxBR19HTE9CQUxfSEVBREVSKSB7 Cj4gPj4+IC0gICAgICAgIHgyNjRfbmFsX3QgKm5hbDsKPiA+Pj4gLSAgICAgICAgdWludDhfdCAq cDsKPiA+Pj4gLSAgICAgICAgaW50IG5uYWwsIHMsIGk7Cj4gPj4+IC0KPiA+Pj4gLSAgICAgICAg cyA9IHgyNjRfZW5jb2Rlcl9oZWFkZXJzKHg0LT5lbmMsICZuYWwsICZubmFsKTsKPiA+Pj4gLSAg ICAgICAgYXZjdHgtPmV4dHJhZGF0YSA9IHAgPSBhdl9tYWxsb2N6KHMgKyBBVl9JTlBVVF9CVUZG RVJfUEFERElOR19TSVpFKTsKPiA+Pj4gLSAgICAgICAgaWYgKCFwKQo+ID4+PiAtICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPiA+Pj4gLQo+ID4+PiAtICAgICAgICBmb3IgKGkg PSAwOyBpIDwgbm5hbDsgaSsrKSB7Cj4gPj4+IC0gICAgICAgICAgICAvKiBEb24ndCBwdXQgdGhl IFNFSSBpbiBleHRyYWRhdGEuICovCj4gPj4+IC0gICAgICAgICAgICBpZiAobmFsW2ldLmlfdHlw ZSA9PSBOQUxfU0VJKSB7Cj4gPj4+IC0gICAgICAgICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9M T0dfSU5GTywgIiVzXG4iLCBuYWxbaV0ucF9wYXlsb2FkKzI1KTsKPiA+Pj4gLSAgICAgICAgICAg ICAgICB4NC0+c2VpX3NpemUgPSBuYWxbaV0uaV9wYXlsb2FkOwo+ID4+PiAtICAgICAgICAgICAg ICAgIHg0LT5zZWkgICAgICA9IGF2X21hbGxvYyh4NC0+c2VpX3NpemUpOwo+ID4+PiAtICAgICAg ICAgICAgICAgIGlmICgheDQtPnNlaSkKPiA+Pj4gLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu IEFWRVJST1IoRU5PTUVNKTsKPiA+Pj4gLSAgICAgICAgICAgICAgICBtZW1jcHkoeDQtPnNlaSwg bmFsW2ldLnBfcGF5bG9hZCwgbmFsW2ldLmlfcGF5bG9hZCk7Cj4gPj4+IC0gICAgICAgICAgICAg ICAgY29udGludWU7Cj4gPj4+IC0gICAgICAgICAgICB9Cj4gPj4+IC0gICAgICAgICAgICBtZW1j cHkocCwgbmFsW2ldLnBfcGF5bG9hZCwgbmFsW2ldLmlfcGF5bG9hZCk7Cj4gPj4+IC0gICAgICAg ICAgICBwICs9IG5hbFtpXS5pX3BheWxvYWQ7Cj4gPj4+IC0gICAgICAgIH0KPiA+Pj4gLSAgICAg ICAgYXZjdHgtPmV4dHJhZGF0YV9zaXplID0gcCAtIGF2Y3R4LT5leHRyYWRhdGE7Cj4gPj4+ICsg ICAgICAgIHJldCA9IHNldF9leHRyYWRhdGEoYXZjdHgpOwo+ID4+PiArICAgICAgICBpZiAocmV0 IDwgMCkKPiA+Pj4gKyAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPj4+ICAgICAgfQo+ID4+Pgo+ ID4+PiAgICAgIGNwYl9wcm9wcyA9IGZmX2VuY29kZV9hZGRfY3BiX3NpZGVfZGF0YShhdmN0eCk7 Cj4gPj4KPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+ IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+IAo+IFRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+IGZmbXBlZy1kZXZlbC1y ZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGlu ZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUs IG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1 bnN1YnNjcmliZSIuCg==