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 7BEE144895 for ; Mon, 26 Sep 2022 14:44:39 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3A06B68B9CD; Mon, 26 Sep 2022 17:44:36 +0300 (EEST) Received: from mail.frobbit.se (mail.frobbit.se [85.30.129.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AD3E768AF9F for ; Mon, 26 Sep 2022 17:44:29 +0300 (EEST) Received: from [10.10.150.19] (unknown [134.65.164.34]) by mail.frobbit.se (Postfix) with ESMTPSA id 257F6200F6 for ; Mon, 26 Sep 2022 16:44:29 +0200 (CEST) Message-ID: <5c298456be5d96b60060601ff103ab428d3ee9d7.camel@haerdin.se> From: Tomas =?ISO-8859-1?Q?H=E4rdin?= To: FFmpeg development discussions and patches Date: Mon, 26 Sep 2022 16:44:28 +0200 In-Reply-To: References: <99afc63012bcb654bba64f2cadc2d1404316c027.camel@haerdin.se> <8339c7e82920315daba7ab10b879e76a2545b89d.camel@haerdin.se> Content-Type: multipart/mixed; boundary="=-qhigiXL4I2fTSKY+i43+" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH v3] Add avpriv_slicethread_create2() and avpriv_slicethread_execute2(), make execute() and execute2() return FFMIN() of thread return codes 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --=-qhigiXL4I2fTSKY+i43+ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit mån 2022-09-26 klockan 16:28 +0200 skrev Andreas Rheinhardt: > Tomas Härdin: > > mån 2022-09-26 klockan 15:58 +0200 skrev Andreas Rheinhardt: > > > Tomas Härdin: > > > > diff --git a/libswscale/swscale_internal.h > > > > b/libswscale/swscale_internal.h > > > > index abeebbb002..50e73c86fa 100644 > > > > --- a/libswscale/swscale_internal.h > > > > +++ b/libswscale/swscale_internal.h > > > > @@ -306,7 +306,7 @@ typedef struct SwsContext { > > > >   > > > >      AVSliceThread      *slicethread; > > > >      struct SwsContext **slice_ctx; > > > > -    int                *slice_err; > > > > +    attribute_deprecated int *slice_err; ///< @deprecated Not > > > > used > > > > any more. Removing it would require a bunch of asm to be > > > > rewritten. > > > >      int              nb_slice_ctx; > > > >   > > > >      // values passed to current sws_receive_slice() call > > > > > > What asm would need to be rewritten? > > > > swscale.c: > >         /* yuv2gbrp uses the SwsContext for yuv coefficients > >            if struct offsets change the asm needs to be updated too > > */ > >         av_assert0(offsetof(SwsContext, yuv2rgb_y_offset) == > > 40292); > > > > > > > Anyway, we don't deprecate internal fields; if we have to keep > > > them > > > around for ABI compatibility, we wrap them in #if > > > LIBFOO_VERSION_MAJOR < > > > BAR. > > > > It's not actually an API/ABI issue but an asm issue > > > > It seems to me that this is the only such issue that affects this > patch. > If you modified line 583 of libswscale/x86/output.asm as well as the > assert, you could remove slice_err. (But let James confirm this.) Here's a yet further updated patch with this change implemented. Passes FATE. /Tomas --=-qhigiXL4I2fTSKY+i43+ Content-Disposition: attachment; filename*0=0001-Add-avpriv_slicethread_create2-and-avpriv_slicethrea.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-Add-avpriv_slicethread_create2-and-avpriv_slicethrea.patch"; charset="UTF-8" RnJvbSAwM2JjMzhlNjU3NWYyZjc0MjE1N2VkMjM2MDg4NDhiMzhiMDRiZjZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9tYXM9MjBIPUMzPUE0cmRpbj89IDxnaXRA aGFlcmRpbi5zZT4KRGF0ZTogVGh1LCAxNiBKdW4gMjAyMiAxMjoxNjo0NCArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIEFkZCBhdnByaXZfc2xpY2V0aHJlYWRfY3JlYXRlMigpIGFuZAogYXZwcml2X3Ns aWNldGhyZWFkX2V4ZWN1dGUyKCksIG1ha2UgZXhlY3V0ZSgpIGFuZCBleGVjdXRlMigpIHJldHVy biBGRk1JTigpCiBvZiB0aHJlYWQgcmV0dXJuIGNvZGVzCgpVcGRhdGVzIGFsbCBpbnRlcm5hbCB1 c2VzIG9mIHJlbGF0ZWQgQVBJcy4KQXQgdGhlIG1vbWVudCBvbmx5IGZpYy5jIGFjdHVhbGx5IGNo ZWNrcyByZXR1cm4gY29kZSBvZiBleGVjdXRlKCkgaGVuY2UgdGhlIGNoYW5nZSB0byBpdHMgRkFU RSByZWZlcmVuY2UuCi0tLQogbGliYXZjb2RlYy9hdmNvZGVjLmMgICAgICAgICAgfCAxMCArKyst LQogbGliYXZjb2RlYy9wdGhyZWFkX3NsaWNlLmMgICAgfCAxNCArKystLS0tCiBsaWJhdmZpbHRl ci9wdGhyZWFkLmMgICAgICAgICB8ICA4ICsrLS0KIGxpYmF2dXRpbC9zbGljZXRocmVhZC5jICAg ICAgIHwgNzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIGxpYmF2dXRpbC9z bGljZXRocmVhZC5oICAgICAgIHwgMjcgKysrKysrKysrKysrKwogbGliYXZ1dGlsL3ZlcnNpb24u aCAgICAgICAgICAgfCAgMiArLQogbGlic3dzY2FsZS9zd3NjYWxlLmMgICAgICAgICAgfCAyMCAr Ky0tLS0tLS0tCiBsaWJzd3NjYWxlL3N3c2NhbGVfaW50ZXJuYWwuaCB8ICA1ICstLQogbGlic3dz Y2FsZS91dGlscy5jICAgICAgICAgICAgfCAgOCArKy0tCiBsaWJzd3NjYWxlL3g4Ni9vdXRwdXQu YXNtICAgICB8ICAyICstCiBsaWJzd3NjYWxlL3g4Ni9zd3NjYWxlLmMgICAgICB8ICAyICstCiB0 ZXN0cy9mYXRlL3NjcmVlbi5tYWsgICAgICAgICB8ICAxICsKIHRlc3RzL3JlZi9mYXRlL2ZpYy1h dmkgICAgICAgIHwgMzAgKysrKysrLS0tLS0tLS0KIDEzIGZpbGVzIGNoYW5nZWQsIDEzOCBpbnNl cnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2F2Y29k ZWMuYyBiL2xpYmF2Y29kZWMvYXZjb2RlYy5jCmluZGV4IGE4NWQzYzIzMDkuLmVlNzViM2FiZTcg MTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvYXZjb2RlYy5jCisrKyBiL2xpYmF2Y29kZWMvYXZjb2Rl Yy5jCkBAIC00NCwyOCArNDQsMzAgQEAKIAogaW50IGF2Y29kZWNfZGVmYXVsdF9leGVjdXRlKEFW Q29kZWNDb250ZXh0ICpjLCBpbnQgKCpmdW5jKShBVkNvZGVjQ29udGV4dCAqYzIsIHZvaWQgKmFy ZzIpLCB2b2lkICphcmcsIGludCAqcmV0LCBpbnQgY291bnQsIGludCBzaXplKQogewotICAgIGlu dCBpOworICAgIGludCBpLCByciA9IDA7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkr KykgewogICAgICAgICBpbnQgciA9IGZ1bmMoYywgKGNoYXIgKilhcmcgKyBpICogc2l6ZSk7Cisg ICAgICAgIHJyID0gRkZNSU4ocnIsIHIpOwogICAgICAgICBpZiAocmV0KQogICAgICAgICAgICAg cmV0W2ldID0gcjsKICAgICB9CiAgICAgZW1tc19jKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0 dXJuIHJyOwogfQogCiBpbnQgYXZjb2RlY19kZWZhdWx0X2V4ZWN1dGUyKEFWQ29kZWNDb250ZXh0 ICpjLCBpbnQgKCpmdW5jKShBVkNvZGVjQ29udGV4dCAqYzIsIHZvaWQgKmFyZzIsIGludCBqb2Ju ciwgaW50IHRocmVhZG5yKSwgdm9pZCAqYXJnLCBpbnQgKnJldCwgaW50IGNvdW50KQogewotICAg IGludCBpOworICAgIGludCBpLCByciA9IDA7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7 IGkrKykgewogICAgICAgICBpbnQgciA9IGZ1bmMoYywgYXJnLCBpLCAwKTsKKyAgICAgICAgcnIg PSBGRk1JTihyciwgcik7CiAgICAgICAgIGlmIChyZXQpCiAgICAgICAgICAgICByZXRbaV0gPSBy OwogICAgIH0KICAgICBlbW1zX2MoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gcnI7CiB9 CiAKIHN0YXRpYyBBVk11dGV4IGNvZGVjX211dGV4ID0gQVZfTVVURVhfSU5JVElBTElaRVI7CmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL3B0aHJlYWRfc2xpY2UuYyBiL2xpYmF2Y29kZWMvcHRocmVh ZF9zbGljZS5jCmluZGV4IGE0ZDMxYzZmNGQuLjc5NWQwYzljNWEgMTAwNjQ0Ci0tLSBhL2xpYmF2 Y29kZWMvcHRocmVhZF9zbGljZS5jCisrKyBiL2xpYmF2Y29kZWMvcHRocmVhZF9zbGljZS5jCkBA IC02MSwxMyArNjEsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgU2xpY2VUaHJlYWRDb250ZXh0IHsKICAg ICBQcm9ncmVzcyAqcHJvZ3Jlc3M7CiB9IFNsaWNlVGhyZWFkQ29udGV4dDsKIAotc3RhdGljIHZv aWQgbWFpbl9mdW5jdGlvbih2b2lkICpwcml2KSB7CitzdGF0aWMgaW50IG1haW5fZnVuY3Rpb24o dm9pZCAqcHJpdikgewogICAgIEFWQ29kZWNDb250ZXh0ICphdmN0eCA9IHByaXY7CiAgICAgU2xp Y2VUaHJlYWRDb250ZXh0ICpjID0gYXZjdHgtPmludGVybmFsLT50aHJlYWRfY3R4OwotICAgIGMt Pm1haW5mdW5jKGF2Y3R4KTsKKyAgICByZXR1cm4gYy0+bWFpbmZ1bmMoYXZjdHgpOwogfQogCi1z dGF0aWMgdm9pZCB3b3JrZXJfZnVuYyh2b2lkICpwcml2LCBpbnQgam9ibnIsIGludCB0aHJlYWRu ciwgaW50IG5iX2pvYnMsIGludCBuYl90aHJlYWRzKQorc3RhdGljIGludCB3b3JrZXJfZnVuYyh2 b2lkICpwcml2LCBpbnQgam9ibnIsIGludCB0aHJlYWRuciwgaW50IG5iX2pvYnMsIGludCBuYl90 aHJlYWRzKQogewogICAgIEFWQ29kZWNDb250ZXh0ICphdmN0eCA9IHByaXY7CiAgICAgU2xpY2VU aHJlYWRDb250ZXh0ICpjID0gYXZjdHgtPmludGVybmFsLT50aHJlYWRfY3R4OwpAQCAtNzcsNiAr NzcsNyBAQCBzdGF0aWMgdm9pZCB3b3JrZXJfZnVuYyh2b2lkICpwcml2LCBpbnQgam9ibnIsIGlu dCB0aHJlYWRuciwgaW50IG5iX2pvYnMsIGludCBuYgogICAgICAgICAgICAgICAgICAgOiBjLT5m dW5jMihhdmN0eCwgYy0+YXJncywgam9ibnIsIHRocmVhZG5yKTsKICAgICBpZiAoYy0+cmV0cykK ICAgICAgICAgYy0+cmV0c1tqb2Jucl0gPSByZXQ7CisgICAgcmV0dXJuIHJldDsKIH0KIAogdm9p ZCBmZl9zbGljZV90aHJlYWRfZnJlZShBVkNvZGVjQ29udGV4dCAqYXZjdHgpCkBAIC0xMTIsOCAr MTEzLDcgQEAgc3RhdGljIGludCB0aHJlYWRfZXhlY3V0ZShBVkNvZGVjQ29udGV4dCAqYXZjdHgs IGFjdGlvbl9mdW5jKiBmdW5jLCB2b2lkICphcmcsIGkKICAgICBjLT5mdW5jID0gZnVuYzsKICAg ICBjLT5yZXRzID0gcmV0OwogCi0gICAgYXZwcml2X3NsaWNldGhyZWFkX2V4ZWN1dGUoYy0+dGhy ZWFkLCBqb2JfY291bnQsICEhYy0+bWFpbmZ1bmMgICk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0 dXJuIGF2cHJpdl9zbGljZXRocmVhZF9leGVjdXRlMihjLT50aHJlYWQsIGpvYl9jb3VudCwgISFj LT5tYWluZnVuYyk7CiB9CiAKIHN0YXRpYyBpbnQgdGhyZWFkX2V4ZWN1dGUyKEFWQ29kZWNDb250 ZXh0ICphdmN0eCwgYWN0aW9uX2Z1bmMyKiBmdW5jMiwgdm9pZCAqYXJnLCBpbnQgKnJldCwgaW50 IGpvYl9jb3VudCkKQEAgLTEzNSw3ICsxMzUsNyBAQCBpbnQgZmZfc2xpY2VfdGhyZWFkX2luaXQo QVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogewogICAgIFNsaWNlVGhyZWFkQ29udGV4dCAqYzsKICAg ICBpbnQgdGhyZWFkX2NvdW50ID0gYXZjdHgtPnRocmVhZF9jb3VudDsKLSAgICB2b2lkICgqbWFp bmZ1bmMpKHZvaWQgKik7CisgICAgaW50ICgqbWFpbmZ1bmMpKHZvaWQgKik7CiAKICAgICAvLyBX ZSBjYW5ub3QgZG8gdGhpcyBpbiB0aGUgZW5jb2RlciBpbml0IGFzIHRoZSB0aHJlYWRzIGFyZSBj cmVhdGVkIGJlZm9yZQogICAgIGlmIChhdl9jb2RlY19pc19lbmNvZGVyKGF2Y3R4LT5jb2RlYykg JiYKQEAgLTE2MSw3ICsxNjEsNyBAQCBpbnQgZmZfc2xpY2VfdGhyZWFkX2luaXQoQVZDb2RlY0Nv bnRleHQgKmF2Y3R4KQogCiAgICAgYXZjdHgtPmludGVybmFsLT50aHJlYWRfY3R4ID0gYyA9IGF2 X21hbGxvY3ooc2l6ZW9mKCpjKSk7CiAgICAgbWFpbmZ1bmMgPSBmZmNvZGVjKGF2Y3R4LT5jb2Rl YyktPmNhcHNfaW50ZXJuYWwgJiBGRl9DT0RFQ19DQVBfU0xJQ0VfVEhSRUFEX0hBU19NRiA/ICZt YWluX2Z1bmN0aW9uIDogTlVMTDsKLSAgICBpZiAoIWMgfHwgKHRocmVhZF9jb3VudCA9IGF2cHJp dl9zbGljZXRocmVhZF9jcmVhdGUoJmMtPnRocmVhZCwgYXZjdHgsIHdvcmtlcl9mdW5jLCBtYWlu ZnVuYywgdGhyZWFkX2NvdW50KSkgPD0gMSkgeworICAgIGlmICghYyB8fCAodGhyZWFkX2NvdW50 ID0gYXZwcml2X3NsaWNldGhyZWFkX2NyZWF0ZTIoJmMtPnRocmVhZCwgYXZjdHgsIHdvcmtlcl9m dW5jLCBtYWluZnVuYywgdGhyZWFkX2NvdW50KSkgPD0gMSkgewogICAgICAgICBpZiAoYykKICAg ICAgICAgICAgIGF2cHJpdl9zbGljZXRocmVhZF9mcmVlKCZjLT50aHJlYWQpOwogICAgICAgICBh dl9mcmVlcCgmYXZjdHgtPmludGVybmFsLT50aHJlYWRfY3R4KTsKZGlmZiAtLWdpdCBhL2xpYmF2 ZmlsdGVyL3B0aHJlYWQuYyBiL2xpYmF2ZmlsdGVyL3B0aHJlYWQuYwppbmRleCAxYTA2M2QzY2Mw Li44NTVjODQyZGY5IDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci9wdGhyZWFkLmMKKysrIGIvbGli YXZmaWx0ZXIvcHRocmVhZC5jCkBAIC00MywxMiArNDMsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgVGhy ZWFkQ29udGV4dCB7CiAgICAgaW50ICAgKnJldHM7CiB9IFRocmVhZENvbnRleHQ7CiAKLXN0YXRp YyB2b2lkIHdvcmtlcl9mdW5jKHZvaWQgKnByaXYsIGludCBqb2JuciwgaW50IHRocmVhZG5yLCBp bnQgbmJfam9icywgaW50IG5iX3RocmVhZHMpCitzdGF0aWMgaW50IHdvcmtlcl9mdW5jKHZvaWQg KnByaXYsIGludCBqb2JuciwgaW50IHRocmVhZG5yLCBpbnQgbmJfam9icywgaW50IG5iX3RocmVh ZHMpCiB7CiAgICAgVGhyZWFkQ29udGV4dCAqYyA9IHByaXY7CiAgICAgaW50IHJldCA9IGMtPmZ1 bmMoYy0+Y3R4LCBjLT5hcmcsIGpvYm5yLCBuYl9qb2JzKTsKICAgICBpZiAoYy0+cmV0cykKICAg ICAgICAgYy0+cmV0c1tqb2Jucl0gPSByZXQ7CisgICAgcmV0dXJuIHJldDsKIH0KIAogc3RhdGlj IHZvaWQgc2xpY2VfdGhyZWFkX3VuaW5pdChUaHJlYWRDb250ZXh0ICpjKQpAQCAtNjgsMTMgKzY5 LDEyIEBAIHN0YXRpYyBpbnQgdGhyZWFkX2V4ZWN1dGUoQVZGaWx0ZXJDb250ZXh0ICpjdHgsIGF2 ZmlsdGVyX2FjdGlvbl9mdW5jICpmdW5jLAogICAgIGMtPmZ1bmMgICAgICAgID0gZnVuYzsKICAg ICBjLT5yZXRzICAgICAgICA9IHJldDsKIAotICAgIGF2cHJpdl9zbGljZXRocmVhZF9leGVjdXRl KGMtPnRocmVhZCwgbmJfam9icywgMCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGF2cHJp dl9zbGljZXRocmVhZF9leGVjdXRlMihjLT50aHJlYWQsIG5iX2pvYnMsIDApOwogfQogCiBzdGF0 aWMgaW50IHRocmVhZF9pbml0X2ludGVybmFsKFRocmVhZENvbnRleHQgKmMsIGludCBuYl90aHJl YWRzKQogewotICAgIG5iX3RocmVhZHMgPSBhdnByaXZfc2xpY2V0aHJlYWRfY3JlYXRlKCZjLT50 aHJlYWQsIGMsIHdvcmtlcl9mdW5jLCBOVUxMLCBuYl90aHJlYWRzKTsKKyAgICBuYl90aHJlYWRz ID0gYXZwcml2X3NsaWNldGhyZWFkX2NyZWF0ZTIoJmMtPnRocmVhZCwgYywgd29ya2VyX2Z1bmMs IE5VTEwsIG5iX3RocmVhZHMpOwogICAgIGlmIChuYl90aHJlYWRzIDw9IDEpCiAgICAgICAgIGF2 cHJpdl9zbGljZXRocmVhZF9mcmVlKCZjLT50aHJlYWQpOwogICAgIHJldHVybiBGRk1BWChuYl90 aHJlYWRzLCAxKTsKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9zbGljZXRocmVhZC5jIGIvbGliYXZ1 dGlsL3NsaWNldGhyZWFkLmMKaW5kZXggMTE1YjA5OTczNi4uOWNlNThmZmE2NCAxMDA2NDQKLS0t IGEvbGliYXZ1dGlsL3NsaWNldGhyZWFkLmMKKysrIGIvbGliYXZ1dGlsL3NsaWNldGhyZWFkLmMK QEAgLTM0LDYgKzM0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgV29ya2VyQ29udGV4dCB7CiAgICAgcHRo cmVhZF9jb25kX3QgIGNvbmQ7CiAgICAgcHRocmVhZF90ICAgICAgIHRocmVhZDsKICAgICBpbnQg ICAgICAgICAgICAgZG9uZTsKKyAgICBpbnQgICAgICAgICAgICAgcmV0OwogfSBXb3JrZXJDb250 ZXh0OwogCiBzdHJ1Y3QgQVZTbGljZVRocmVhZCB7CkBAIC01MCwxMSArNTEsMTUgQEAgc3RydWN0 IEFWU2xpY2VUaHJlYWQgewogICAgIGludCAgICAgICAgICAgICBmaW5pc2hlZDsKIAogICAgIHZv aWQgICAgICAgICAgICAqcHJpdjsKKyAgICAvLyBlaXRoZXIgd29ya2VyX2Z1bmMgYW5kIG1haW5f ZnVuYyBhcmUgbm9uLU5VTEwgb3Igd29ya2VyX2Z1bmMyIGFuZCBtYWluX2Z1bmMyIGFyZQorICAg IC8vIGFsbCBmb3VyIGFyZSBuZXZlciBub24tTlVMTCBhdCB0aGUgc2FtZSB0aW1lCiAgICAgdm9p ZCAgICAgICAgICAgICgqd29ya2VyX2Z1bmMpKHZvaWQgKnByaXYsIGludCBqb2JuciwgaW50IHRo cmVhZG5yLCBpbnQgbmJfam9icywgaW50IG5iX3RocmVhZHMpOwogICAgIHZvaWQgICAgICAgICAg ICAoKm1haW5fZnVuYykodm9pZCAqcHJpdik7CisgICAgaW50ICAgICAgICAgICAgICgqd29ya2Vy X2Z1bmMyKSh2b2lkICpwcml2LCBpbnQgam9ibnIsIGludCB0aHJlYWRuciwgaW50IG5iX2pvYnMs IGludCBuYl90aHJlYWRzKTsKKyAgICBpbnQgICAgICAgICAgICAgKCptYWluX2Z1bmMyKSh2b2lk ICpwcml2KTsKIH07CiAKLXN0YXRpYyBpbnQgcnVuX2pvYnMoQVZTbGljZVRocmVhZCAqY3R4KQor c3RhdGljIGludCBydW5fam9icyhBVlNsaWNlVGhyZWFkICpjdHgsIGludCAqcmV0X291dCkKIHsK ICAgICB1bnNpZ25lZCBuYl9qb2JzICAgID0gY3R4LT5uYl9qb2JzOwogICAgIHVuc2lnbmVkIG5i X2FjdGl2ZV90aHJlYWRzID0gY3R4LT5uYl9hY3RpdmVfdGhyZWFkczsKQEAgLTYyLDcgKzY3LDEy IEBAIHN0YXRpYyBpbnQgcnVuX2pvYnMoQVZTbGljZVRocmVhZCAqY3R4KQogICAgIHVuc2lnbmVk IGN1cnJlbnRfam9iICA9IGZpcnN0X2pvYjsKIAogICAgIGRvIHsKLSAgICAgICAgY3R4LT53b3Jr ZXJfZnVuYyhjdHgtPnByaXYsIGN1cnJlbnRfam9iLCBmaXJzdF9qb2IsIG5iX2pvYnMsIG5iX2Fj dGl2ZV90aHJlYWRzKTsKKyAgICAgICAgaWYgKGN0eC0+d29ya2VyX2Z1bmMyKSB7CisgICAgICAg ICAgICBpbnQgcmV0ID0gY3R4LT53b3JrZXJfZnVuYzIoY3R4LT5wcml2LCBjdXJyZW50X2pvYiwg Zmlyc3Rfam9iLCBuYl9qb2JzLCBuYl9hY3RpdmVfdGhyZWFkcyk7CisgICAgICAgICAgICAqcmV0 X291dCA9IEZGTUlOKCpyZXRfb3V0LCByZXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg ICAgY3R4LT53b3JrZXJfZnVuYyhjdHgtPnByaXYsIGN1cnJlbnRfam9iLCBmaXJzdF9qb2IsIG5i X2pvYnMsIG5iX2FjdGl2ZV90aHJlYWRzKTsKKyAgICAgICAgfQogICAgIH0gd2hpbGUgKChjdXJy ZW50X2pvYiA9IGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQoJmN0eC0+Y3VycmVudF9qb2IsIDEs IG1lbW9yeV9vcmRlcl9hY3FfcmVsKSkgPCBuYl9qb2JzKTsKIAogICAgIHJldHVybiBjdXJyZW50 X2pvYiA9PSBuYl9qb2JzICsgbmJfYWN0aXZlX3RocmVhZHMgLSAxOwpAQCAtODYsNyArOTYsNyBA QCBzdGF0aWMgdm9pZCAqYXR0cmlidXRlX2FsaWduX2FyZyB0aHJlYWRfd29ya2VyKHZvaWQgKnYp CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChydW5f am9icyhjdHgpKSB7CisgICAgICAgIGlmIChydW5fam9icyhjdHgsICZ3LT5yZXQpKSB7CiAgICAg ICAgICAgICBwdGhyZWFkX211dGV4X2xvY2soJmN0eC0+ZG9uZV9tdXRleCk7CiAgICAgICAgICAg ICBjdHgtPmRvbmUgPSAxOwogICAgICAgICAgICAgcHRocmVhZF9jb25kX3NpZ25hbCgmY3R4LT5k b25lX2NvbmQpOwpAQCAtOTUsOSArMTA1LDExIEBAIHN0YXRpYyB2b2lkICphdHRyaWJ1dGVfYWxp Z25fYXJnIHRocmVhZF93b3JrZXIodm9pZCAqdikKICAgICB9CiB9CiAKLWludCBhdnByaXZfc2xp Y2V0aHJlYWRfY3JlYXRlKEFWU2xpY2VUaHJlYWQgKipwY3R4LCB2b2lkICpwcml2LAorc3RhdGlj IGludCBzbGljZXRocmVhZF9jcmVhdGUoQVZTbGljZVRocmVhZCAqKnBjdHgsIHZvaWQgKnByaXYs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqd29ya2VyX2Z1bmMpKHZvaWQg KnByaXYsIGludCBqb2JuciwgaW50IHRocmVhZG5yLCBpbnQgbmJfam9icywgaW50IG5iX3RocmVh ZHMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKm1haW5fZnVuYykodm9p ZCAqcHJpdiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCp3b3JrZXJfZnVu YzIpKHZvaWQgKnByaXYsIGludCBqb2JuciwgaW50IHRocmVhZG5yLCBpbnQgbmJfam9icywgaW50 IG5iX3RocmVhZHMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqbWFpbl9m dW5jMikodm9pZCAqcHJpdiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmJf dGhyZWFkcykKIHsKICAgICBBVlNsaWNlVGhyZWFkICpjdHg7CkBAIC0xMjgsNiArMTQwLDggQEAg aW50IGF2cHJpdl9zbGljZXRocmVhZF9jcmVhdGUoQVZTbGljZVRocmVhZCAqKnBjdHgsIHZvaWQg KnByaXYsCiAgICAgY3R4LT5wcml2ICAgICAgICA9IHByaXY7CiAgICAgY3R4LT53b3JrZXJfZnVu YyA9IHdvcmtlcl9mdW5jOwogICAgIGN0eC0+bWFpbl9mdW5jICAgPSBtYWluX2Z1bmM7CisgICAg Y3R4LT53b3JrZXJfZnVuYzI9IHdvcmtlcl9mdW5jMjsKKyAgICBjdHgtPm1haW5fZnVuYzIgID0g bWFpbl9mdW5jMjsKICAgICBjdHgtPm5iX3RocmVhZHMgID0gbmJfdGhyZWFkczsKICAgICBjdHgt Pm5iX2FjdGl2ZV90aHJlYWRzID0gMDsKICAgICBjdHgtPm5iX2pvYnMgICAgID0gMDsKQEAgLTE2 NSw5ICsxNzksMzQgQEAgaW50IGF2cHJpdl9zbGljZXRocmVhZF9jcmVhdGUoQVZTbGljZVRocmVh ZCAqKnBjdHgsIHZvaWQgKnByaXYsCiAgICAgcmV0dXJuIG5iX3RocmVhZHM7CiB9CiAKKyNpZiBM SUJBVlVUSUxfVkVSU0lPTl9NQUpPUiA8IDU4CitpbnQgYXZwcml2X3NsaWNldGhyZWFkX2NyZWF0 ZShBVlNsaWNlVGhyZWFkICoqcGN0eCwgdm9pZCAqcHJpdiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZvaWQgKCp3b3JrZXJfZnVuYykodm9pZCAqcHJpdiwgaW50IGpvYm5yLCBpbnQg dGhyZWFkbnIsIGludCBuYl9qb2JzLCBpbnQgbmJfdGhyZWFkcyksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2b2lkICgqbWFpbl9mdW5jKSh2b2lkICpwcml2KSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCBuYl90aHJlYWRzKQoreworICAgIHJldHVybiBzbGljZXRo cmVhZF9jcmVhdGUocGN0eCwgcHJpdiwgd29ya2VyX2Z1bmMsIG1haW5fZnVuYywgTlVMTCwgTlVM TCwgbmJfdGhyZWFkcyk7Cit9CisjZW5kaWYgLy8gTElCQVZVVElMX1ZFUlNJT05fTUFKT1IKKwor aW50IGF2cHJpdl9zbGljZXRocmVhZF9jcmVhdGUyKEFWU2xpY2VUaHJlYWQgKipwY3R4LCB2b2lk ICpwcml2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKndvcmtlcl9mdW5j KSh2b2lkICpwcml2LCBpbnQgam9ibnIsIGludCB0aHJlYWRuciwgaW50IG5iX2pvYnMsIGludCBu Yl90aHJlYWRzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCptYWluX2Z1 bmMpKHZvaWQgKnByaXYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYl90 aHJlYWRzKQoreworICAgIHJldHVybiBzbGljZXRocmVhZF9jcmVhdGUocGN0eCwgcHJpdiwgTlVM TCwgTlVMTCwgd29ya2VyX2Z1bmMsIG1haW5fZnVuYywgbmJfdGhyZWFkcyk7Cit9CisKKyNpZiBM SUJBVlVUSUxfVkVSU0lPTl9NQUpPUiA8IDU4CiB2b2lkIGF2cHJpdl9zbGljZXRocmVhZF9leGVj dXRlKEFWU2xpY2VUaHJlYWQgKmN0eCwgaW50IG5iX2pvYnMsIGludCBleGVjdXRlX21haW4pCiB7 Ci0gICAgaW50IG5iX3dvcmtlcnMsIGksIGlzX2xhc3QgPSAwOworICAgICh2b2lkKWF2cHJpdl9z bGljZXRocmVhZF9leGVjdXRlMihjdHgsIG5iX2pvYnMsIGV4ZWN1dGVfbWFpbik7Cit9CisjZW5k aWYgLy8gTElCQVZVVElMX1ZFUlNJT05fTUFKT1IKKworaW50IGF2cHJpdl9zbGljZXRocmVhZF9l eGVjdXRlMihBVlNsaWNlVGhyZWFkICpjdHgsIGludCBuYl9qb2JzLCBpbnQgZXhlY3V0ZV9tYWlu KQoreworICAgIGludCBuYl93b3JrZXJzLCBpLCBpc19sYXN0ID0gMCwgcmV0ID0gMDsKIAogICAg IGF2X2Fzc2VydDAobmJfam9icyA+IDApOwogICAgIGN0eC0+bmJfam9icyAgICAgICAgICAgPSBu Yl9qb2JzOwpAQCAtMTgyLDE0ICsyMjEsMTcgQEAgdm9pZCBhdnByaXZfc2xpY2V0aHJlYWRfZXhl Y3V0ZShBVlNsaWNlVGhyZWFkICpjdHgsIGludCBuYl9qb2JzLCBpbnQgZXhlY3V0ZV9tYWkKICAg ICAgICAgV29ya2VyQ29udGV4dCAqdyA9ICZjdHgtPndvcmtlcnNbaV07CiAgICAgICAgIHB0aHJl YWRfbXV0ZXhfbG9jaygmdy0+bXV0ZXgpOwogICAgICAgICB3LT5kb25lID0gMDsKKyAgICAgICAg dy0+cmV0ID0gMDsKICAgICAgICAgcHRocmVhZF9jb25kX3NpZ25hbCgmdy0+Y29uZCk7CiAgICAg ICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ3LT5tdXRleCk7CiAgICAgfQogCiAgICAgaWYgKGN0 eC0+bWFpbl9mdW5jICYmIGV4ZWN1dGVfbWFpbikKICAgICAgICAgY3R4LT5tYWluX2Z1bmMoY3R4 LT5wcml2KTsKKyAgICBlbHNlIGlmIChjdHgtPm1haW5fZnVuYzIgJiYgZXhlY3V0ZV9tYWluKQor ICAgICAgICByZXQgPSBjdHgtPm1haW5fZnVuYzIoY3R4LT5wcml2KTsKICAgICBlbHNlCi0gICAg ICAgIGlzX2xhc3QgPSBydW5fam9icyhjdHgpOworICAgICAgICBpc19sYXN0ID0gcnVuX2pvYnMo Y3R4LCAmcmV0KTsKIAogICAgIGlmICghaXNfbGFzdCkgewogICAgICAgICBwdGhyZWFkX211dGV4 X2xvY2soJmN0eC0+ZG9uZV9tdXRleCk7CkBAIC0xOTgsNiArMjQwLDExIEBAIHZvaWQgYXZwcml2 X3NsaWNldGhyZWFkX2V4ZWN1dGUoQVZTbGljZVRocmVhZCAqY3R4LCBpbnQgbmJfam9icywgaW50 IGV4ZWN1dGVfbWFpCiAgICAgICAgIGN0eC0+ZG9uZSA9IDA7CiAgICAgICAgIHB0aHJlYWRfbXV0 ZXhfdW5sb2NrKCZjdHgtPmRvbmVfbXV0ZXgpOwogICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkg PCBuYl93b3JrZXJzOyBpKyspCisgICAgICAgIHJldCA9IEZGTUlOKHJldCwgY3R4LT53b3JrZXJz W2ldLnJldCk7CisKKyAgICByZXR1cm4gcmV0OwogfQogCiB2b2lkIGF2cHJpdl9zbGljZXRocmVh ZF9mcmVlKEFWU2xpY2VUaHJlYWQgKipwY3R4KQpAQCAtMjQ2LDExICsyOTMsMjYgQEAgaW50IGF2 cHJpdl9zbGljZXRocmVhZF9jcmVhdGUoQVZTbGljZVRocmVhZCAqKnBjdHgsIHZvaWQgKnByaXYs CiAgICAgcmV0dXJuIEFWRVJST1IoRU5PU1lTKTsKIH0KIAoraW50IGF2cHJpdl9zbGljZXRocmVh ZF9jcmVhdGUyKEFWU2xpY2VUaHJlYWQgKipwY3R4LCB2b2lkICpwcml2LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCAoKndvcmtlcl9mdW5jKSh2b2lkICpwcml2LCBpbnQgam9i bnIsIGludCB0aHJlYWRuciwgaW50IG5iX2pvYnMsIGludCBuYl90aHJlYWRzKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCptYWluX2Z1bmMpKHZvaWQgKnByaXYpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYl90aHJlYWRzKQoreworICAgICpwY3R4 ID0gTlVMTDsKKyAgICByZXR1cm4gQVZFUlJPUihFTk9TWVMpOworfQorCiB2b2lkIGF2cHJpdl9z bGljZXRocmVhZF9leGVjdXRlKEFWU2xpY2VUaHJlYWQgKmN0eCwgaW50IG5iX2pvYnMsIGludCBl eGVjdXRlX21haW4pCiB7CiAgICAgYXZfYXNzZXJ0MCgwKTsKIH0KIAoraW50IGF2cHJpdl9zbGlj ZXRocmVhZF9leGVjdXRlMihBVlNsaWNlVGhyZWFkICpjdHgsIGludCBuYl9qb2JzLCBpbnQgZXhl Y3V0ZV9tYWluKQoreworICAgIGF2X2Fzc2VydDAoMCk7CisgICAgcmV0dXJuIEFWRVJST1IoRU5P U1lTKTsKK30KKwogdm9pZCBhdnByaXZfc2xpY2V0aHJlYWRfZnJlZShBVlNsaWNlVGhyZWFkICoq cGN0eCkKIHsKICAgICBhdl9hc3NlcnQwKCFwY3R4IHx8ICEqcGN0eCk7CmRpZmYgLS1naXQgYS9s aWJhdnV0aWwvc2xpY2V0aHJlYWQuaCBiL2xpYmF2dXRpbC9zbGljZXRocmVhZC5oCmluZGV4IGY2 ZjZmMzAyYzQuLjkxMmVhMTNjZTAgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC9zbGljZXRocmVhZC5o CisrKyBiL2xpYmF2dXRpbC9zbGljZXRocmVhZC5oCkBAIC0yMSw2ICsyMSw3IEBACiAKIHR5cGVk ZWYgc3RydWN0IEFWU2xpY2VUaHJlYWQgQVZTbGljZVRocmVhZDsKIAorI2lmIExJQkFWVVRJTF9W RVJTSU9OX01BSk9SIDwgNTgKIC8qKgogICogQ3JlYXRlIHNsaWNlIHRocmVhZGluZyBjb250ZXh0 LgogICogQHBhcmFtIHBjdHggc2xpY2UgdGhyZWFkaW5nIGNvbnRleHQgcmV0dXJuZWQgaGVyZQpA QCAtMzQsNyArMzUsMjMgQEAgaW50IGF2cHJpdl9zbGljZXRocmVhZF9jcmVhdGUoQVZTbGljZVRo cmVhZCAqKnBjdHgsIHZvaWQgKnByaXYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 b2lkICgqd29ya2VyX2Z1bmMpKHZvaWQgKnByaXYsIGludCBqb2JuciwgaW50IHRocmVhZG5yLCBp bnQgbmJfam9icywgaW50IG5iX3RocmVhZHMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdm9pZCAoKm1haW5fZnVuYykodm9pZCAqcHJpdiksCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgbmJfdGhyZWFkcyk7CisjZW5kaWYgLy8gTElCQVZVVElMX1ZFUlNJT05fTUFK T1IKIAorLyoqCisgKiBMaWtlIGF2cHJpdl9zbGljZXRocmVhZF9jcmVhdGUoKSBleGNlcHQgd29y a2VyX2Z1bmMgYW5kIG1haW5fZnVuYyByZXR1cm4gaW50LgorICogQHBhcmFtIHBjdHggc2xpY2Ug dGhyZWFkaW5nIGNvbnRleHQgcmV0dXJuZWQgaGVyZQorICogQHBhcmFtIHByaXYgcHJpdmF0ZSBw b2ludGVyIHRvIGJlIHBhc3NlZCB0byBjYWxsYmFjayBmdW5jdGlvbgorICogQHBhcmFtIHdvcmtl cl9mdW5jIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkCisgKiBAcGFyYW0gbWFpbl9m dW5jIHNwZWNpYWwgY2FsbGJhY2sgZnVuY3Rpb24sIGNhbGxlZCBmcm9tIG1haW4gdGhyZWFkLCBt YXkgYmUgTlVMTAorICogQHBhcmFtIG5iX3RocmVhZHMgbnVtYmVyIG9mIHRocmVhZHMsIDAgZm9y IGF1dG9tYXRpYywgbXVzdCBiZSA+PSAwCisgKiBAcmV0dXJuIHJldHVybiBudW1iZXIgb2YgdGhy ZWFkcyBvciBuZWdhdGl2ZSBBVkVSUk9SIG9uIGZhaWx1cmUKKyAqLworaW50IGF2cHJpdl9zbGlj ZXRocmVhZF9jcmVhdGUyKEFWU2xpY2VUaHJlYWQgKipwY3R4LCB2b2lkICpwcml2LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKndvcmtlcl9mdW5jKSh2b2lkICpwcml2LCBp bnQgam9ibnIsIGludCB0aHJlYWRuciwgaW50IG5iX2pvYnMsIGludCBuYl90aHJlYWRzKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCptYWluX2Z1bmMpKHZvaWQgKnByaXYp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYl90aHJlYWRzKTsKKworI2lm IExJQkFWVVRJTF9WRVJTSU9OX01BSk9SIDwgNTgKIC8qKgogICogRXhlY3V0ZSBzbGljZSB0aHJl YWRpbmcuCiAgKiBAcGFyYW0gY3R4IHNsaWNlIHRocmVhZGluZyBjb250ZXh0CkBAIC00Miw2ICs1 OSwxNiBAQCBpbnQgYXZwcml2X3NsaWNldGhyZWFkX2NyZWF0ZShBVlNsaWNlVGhyZWFkICoqcGN0 eCwgdm9pZCAqcHJpdiwKICAqIEBwYXJhbSBleGVjdXRlX21haW4gYWxzbyBleGVjdXRlIG1haW5f ZnVuYwogICovCiB2b2lkIGF2cHJpdl9zbGljZXRocmVhZF9leGVjdXRlKEFWU2xpY2VUaHJlYWQg KmN0eCwgaW50IG5iX2pvYnMsIGludCBleGVjdXRlX21haW4pOworI2VuZGlmIC8vIExJQkFWVVRJ TF9WRVJTSU9OX01BSk9SCisKKy8qKgorICogTGlrZSBhdnByaXZfc2xpY2V0aHJlYWRfZXhlY3V0 ZSgpIGV4Y2VwdCByZXR1cm5zIEZGTUlOKDAsIG1haW5fZnVuYygpLCB3b3JrZXJfZnVuYygpKS4K KyAqIEBwYXJhbSBjdHggc2xpY2UgdGhyZWFkaW5nIGNvbnRleHQKKyAqIEBwYXJhbSBuYl9qb2Jz IG51bWJlciBvZiBqb2JzLCBtdXN0IGJlID4gMAorICogQHBhcmFtIGV4ZWN1dGVfbWFpbiBhbHNv IGV4ZWN1dGUgbWFpbl9mdW5jCisgKiBAcmV0dXJuIEFWRVJST1Igb24gZXJyb3IuCisgKi8KK2lu dCBhdnByaXZfc2xpY2V0aHJlYWRfZXhlY3V0ZTIoQVZTbGljZVRocmVhZCAqY3R4LCBpbnQgbmJf am9icywgaW50IGV4ZWN1dGVfbWFpbik7CiAKIC8qKgogICogRGVzdHJveSBzbGljZSB0aHJlYWRp bmcgY29udGV4dC4KZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC92ZXJzaW9uLmggYi9saWJhdnV0aWwv dmVyc2lvbi5oCmluZGV4IDljNDRjZWY2YWEuLjVhY2E1NTBmNDUgMTAwNjQ0Ci0tLSBhL2xpYmF2 dXRpbC92ZXJzaW9uLmgKKysrIGIvbGliYXZ1dGlsL3ZlcnNpb24uaApAQCAtNzksNyArNzksNyBA QAogICovCiAKICNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUFKT1IgIDU3Ci0jZGVmaW5lIExJ QkFWVVRJTF9WRVJTSU9OX01JTk9SICAzNworI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NSU5P UiAgMzgKICNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUlDUk8gMTAwCiAKICNkZWZpbmUgTElC QVZVVElMX1ZFUlNJT05fSU5UICAgQVZfVkVSU0lPTl9JTlQoTElCQVZVVElMX1ZFUlNJT05fTUFK T1IsIFwKZGlmZiAtLWdpdCBhL2xpYnN3c2NhbGUvc3dzY2FsZS5jIGIvbGlic3dzY2FsZS9zd3Nj YWxlLmMKaW5kZXggMzY3ZDA0NWEwMi4uNTAwYjc0YzA5OSAxMDA2NDQKLS0tIGEvbGlic3dzY2Fs ZS9zd3NjYWxlLmMKKysrIGIvbGlic3dzY2FsZS9zd3NjYWxlLmMKQEAgLTExNTAsMjMgKzExNTAs MTEgQEAgaW50IHN3c19yZWNlaXZlX3NsaWNlKHN0cnVjdCBTd3NDb250ZXh0ICpjLCB1bnNpZ25l ZCBpbnQgc2xpY2Vfc3RhcnQsCiAKICAgICBpZiAoYy0+c2xpY2V0aHJlYWQpIHsKICAgICAgICAg aW50IG5iX2pvYnMgPSBjLT5zbGljZV9jdHhbMF0tPmRpdGhlciA9PSBTV1NfRElUSEVSX0VEID8g MSA6IGMtPm5iX3NsaWNlX2N0eDsKLSAgICAgICAgaW50IHJldCA9IDA7CiAKICAgICAgICAgYy0+ ZHN0X3NsaWNlX3N0YXJ0ICA9IHNsaWNlX3N0YXJ0OwogICAgICAgICBjLT5kc3Rfc2xpY2VfaGVp Z2h0ID0gc2xpY2VfaGVpZ2h0OwogCi0gICAgICAgIGF2cHJpdl9zbGljZXRocmVhZF9leGVjdXRl KGMtPnNsaWNldGhyZWFkLCBuYl9qb2JzLCAwKTsKLQotICAgICAgICBmb3IgKGludCBpID0gMDsg aSA8IGMtPm5iX3NsaWNlX2N0eDsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAoYy0+c2xpY2VfZXJy W2ldIDwgMCkgewotICAgICAgICAgICAgICAgIHJldCA9IGMtPnNsaWNlX2VycltpXTsKLSAgICAg ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIG1l bXNldChjLT5zbGljZV9lcnIsIDAsIGMtPm5iX3NsaWNlX2N0eCAqIHNpemVvZigqYy0+c2xpY2Vf ZXJyKSk7Ci0KLSAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgcmV0dXJuIGF2cHJpdl9zbGlj ZXRocmVhZF9leGVjdXRlMihjLT5zbGljZXRocmVhZCwgbmJfam9icywgMCk7CiAgICAgfQogCiAg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBGRl9BUlJBWV9FTEVNUyhkc3QpOyBpKyspIHsKQEAgLTEy MTMsOCArMTIwMSw4IEBAIGludCBhdHRyaWJ1dGVfYWxpZ25fYXJnIHN3c19zY2FsZShzdHJ1Y3Qg U3dzQ29udGV4dCAqYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0LCBkc3RTdHJpZGUs IDAsIGMtPmRzdEgpOwogfQogCi12b2lkIGZmX3N3c19zbGljZV93b3JrZXIodm9pZCAqcHJpdiwg aW50IGpvYm5yLCBpbnQgdGhyZWFkbnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5i X2pvYnMsIGludCBuYl90aHJlYWRzKQoraW50IGZmX3N3c19zbGljZV93b3JrZXIodm9pZCAqcHJp diwgaW50IGpvYm5yLCBpbnQgdGhyZWFkbnIsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQg bmJfam9icywgaW50IG5iX3RocmVhZHMpCiB7CiAgICAgU3dzQ29udGV4dCAqcGFyZW50ID0gcHJp djsKICAgICBTd3NDb250ZXh0ICAgICAgKmMgPSBwYXJlbnQtPnNsaWNlX2N0eFt0aHJlYWRucl07 CkBAIC0xMjQyLDUgKzEyMzAsNSBAQCB2b2lkIGZmX3N3c19zbGljZV93b3JrZXIodm9pZCAqcHJp diwgaW50IGpvYm5yLCBpbnQgdGhyZWFkbnIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBhcmVudC0+ZHN0X3NsaWNlX3N0YXJ0ICsgc2xpY2Vfc3RhcnQsIHNsaWNlX2VuZCAtIHNsaWNl X3N0YXJ0KTsKICAgICB9CiAKLSAgICBwYXJlbnQtPnNsaWNlX2Vyclt0aHJlYWRucl0gPSBlcnI7 CisgICAgcmV0dXJuIGVycjsKIH0KZGlmZiAtLWdpdCBhL2xpYnN3c2NhbGUvc3dzY2FsZV9pbnRl cm5hbC5oIGIvbGlic3dzY2FsZS9zd3NjYWxlX2ludGVybmFsLmgKaW5kZXggYWJlZWJiYjAwMi4u MjA0YmFmYjZmNCAxMDA2NDQKLS0tIGEvbGlic3dzY2FsZS9zd3NjYWxlX2ludGVybmFsLmgKKysr IGIvbGlic3dzY2FsZS9zd3NjYWxlX2ludGVybmFsLmgKQEAgLTMwNiw3ICszMDYsNiBAQCB0eXBl ZGVmIHN0cnVjdCBTd3NDb250ZXh0IHsKIAogICAgIEFWU2xpY2VUaHJlYWQgICAgICAqc2xpY2V0 aHJlYWQ7CiAgICAgc3RydWN0IFN3c0NvbnRleHQgKipzbGljZV9jdHg7Ci0gICAgaW50ICAgICAg ICAgICAgICAgICpzbGljZV9lcnI7CiAgICAgaW50ICAgICAgICAgICAgICBuYl9zbGljZV9jdHg7 CiAKICAgICAvLyB2YWx1ZXMgcGFzc2VkIHRvIGN1cnJlbnQgc3dzX3JlY2VpdmVfc2xpY2UoKSBj YWxsCkBAIC0xMTUyLDggKzExNTEsOCBAQCB2b2lkIGZmX2luaXRfdnNjYWxlX3BmbihTd3NDb250 ZXh0ICpjLCB5dXYycGxhbmFyMV9mbiB5dXYycGxhbmUxLCB5dXYycGxhbmFyWF9mbgogICAgIHl1 djJpbnRlcmxlYXZlZFhfZm4geXV2Mm52MTJjWCwgeXV2MnBhY2tlZDFfZm4geXV2MnBhY2tlZDEs IHl1djJwYWNrZWQyX2ZuIHl1djJwYWNrZWQyLAogICAgIHl1djJwYWNrZWRYX2ZuIHl1djJwYWNr ZWRYLCB5dXYyYW55WF9mbiB5dXYyYW55WCwgaW50IHVzZV9tbXgpOwogCi12b2lkIGZmX3N3c19z bGljZV93b3JrZXIodm9pZCAqcHJpdiwgaW50IGpvYm5yLCBpbnQgdGhyZWFkbnIsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgaW50IG5iX2pvYnMsIGludCBuYl90aHJlYWRzKTsKK2ludCBmZl9z d3Nfc2xpY2Vfd29ya2VyKHZvaWQgKnByaXYsIGludCBqb2JuciwgaW50IHRocmVhZG5yLAorICAg ICAgICAgICAgICAgICAgICAgICAgaW50IG5iX2pvYnMsIGludCBuYl90aHJlYWRzKTsKIAogLy9u dW1iZXIgb2YgZXh0cmEgbGluZXMgdG8gcHJvY2VzcwogI2RlZmluZSBNQVhfTElORVNfQUhFQUQg NApkaWZmIC0tZ2l0IGEvbGlic3dzY2FsZS91dGlscy5jIGIvbGlic3dzY2FsZS91dGlscy5jCmlu ZGV4IDQ1YmFhMjJiMjMuLjhiZmQzYTY0YWMgMTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUvdXRpbHMu YworKysgYi9saWJzd3NjYWxlL3V0aWxzLmMKQEAgLTEyNzMsOCArMTI3Myw4IEBAIHN0YXRpYyBp bnQgY29udGV4dF9pbml0X3RocmVhZGVkKFN3c0NvbnRleHQgKmMsCiB7CiAgICAgaW50IHJldDsK IAotICAgIHJldCA9IGF2cHJpdl9zbGljZXRocmVhZF9jcmVhdGUoJmMtPnNsaWNldGhyZWFkLCAo dm9pZCopYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZmX3N3c19zbGlj ZV93b3JrZXIsIE5VTEwsIGMtPm5iX3RocmVhZHMpOworICAgIHJldCA9IGF2cHJpdl9zbGljZXRo cmVhZF9jcmVhdGUyKCZjLT5zbGljZXRocmVhZCwgKHZvaWQqKWMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZmZfc3dzX3NsaWNlX3dvcmtlciwgTlVMTCwgYy0+bmJfdGhy ZWFkcyk7CiAgICAgaWYgKHJldCA9PSBBVkVSUk9SKEVOT1NZUykpIHsKICAgICAgICAgYy0+bmJf dGhyZWFkcyA9IDE7CiAgICAgICAgIHJldHVybiAwOwpAQCAtMTI4NCw4ICsxMjg0LDcgQEAgc3Rh dGljIGludCBjb250ZXh0X2luaXRfdGhyZWFkZWQoU3dzQ29udGV4dCAqYywKICAgICBjLT5uYl90 aHJlYWRzID0gcmV0OwogCiAgICAgYy0+c2xpY2VfY3R4ID0gYXZfY2FsbG9jKGMtPm5iX3RocmVh ZHMsIHNpemVvZigqYy0+c2xpY2VfY3R4KSk7Ci0gICAgYy0+c2xpY2VfZXJyID0gYXZfY2FsbG9j KGMtPm5iX3RocmVhZHMsIHNpemVvZigqYy0+c2xpY2VfZXJyKSk7Ci0gICAgaWYgKCFjLT5zbGlj ZV9jdHggfHwgIWMtPnNsaWNlX2VycikKKyAgICBpZiAoIWMtPnNsaWNlX2N0eCkKICAgICAgICAg cmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYy0+bmJf dGhyZWFkczsgaSsrKSB7CkBAIC0yNDIxLDcgKzI0MjAsNiBAQCB2b2lkIHN3c19mcmVlQ29udGV4 dChTd3NDb250ZXh0ICpjKQogICAgIGZvciAoaSA9IDA7IGkgPCBjLT5uYl9zbGljZV9jdHg7IGkr KykKICAgICAgICAgc3dzX2ZyZWVDb250ZXh0KGMtPnNsaWNlX2N0eFtpXSk7CiAgICAgYXZfZnJl ZXAoJmMtPnNsaWNlX2N0eCk7Ci0gICAgYXZfZnJlZXAoJmMtPnNsaWNlX2Vycik7CiAKICAgICBh dnByaXZfc2xpY2V0aHJlYWRfZnJlZSgmYy0+c2xpY2V0aHJlYWQpOwogCmRpZmYgLS1naXQgYS9s aWJzd3NjYWxlL3g4Ni9vdXRwdXQuYXNtIGIvbGlic3dzY2FsZS94ODYvb3V0cHV0LmFzbQppbmRl eCA4NGU5NGJhYWY2Li5iNDY4YzBmMjY0IDEwMDY0NAotLS0gYS9saWJzd3NjYWxlL3g4Ni9vdXRw dXQuYXNtCisrKyBiL2xpYnN3c2NhbGUveDg2L291dHB1dC5hc20KQEAgLTU4MCw3ICs1ODAsNyBA QCB5dXYybnYxMmNYX2ZuIHl1djJudjIxCiAKICVpZiBBUkNIX1g4Nl82NAogc3RydWMgU3dzQ29u dGV4dAotICAgIC5wYWRkaW5nOiAgICAgICAgICAgcmVzYiA0MDI5MiA7IG9mZnNldG9mKFN3c0Nv bnRleHQsIHl1djJyZ2JfeV9vZmZzZXQpCisgICAgLnBhZGRpbmc6ICAgICAgICAgICByZXNiIDQw Mjc2IDsgb2Zmc2V0b2YoU3dzQ29udGV4dCwgeXV2MnJnYl95X29mZnNldCkKICAgICAueXV2MnJn Yl95X29mZnNldDogIHJlc2QgMQogICAgIC55dXYycmdiX3lfY29lZmY6ICAgcmVzZCAxCiAgICAg Lnl1djJyZ2JfdjJyX2NvZWZmOiByZXNkIDEKZGlmZiAtLWdpdCBhL2xpYnN3c2NhbGUveDg2L3N3 c2NhbGUuYyBiL2xpYnN3c2NhbGUveDg2L3N3c2NhbGUuYwppbmRleCBmZjE2Mzk4OTg4Li45ZDFm NTM5YmJhIDEwMDY0NAotLS0gYS9saWJzd3NjYWxlL3g4Ni9zd3NjYWxlLmMKKysrIGIvbGlic3dz Y2FsZS94ODYvc3dzY2FsZS5jCkBAIC03NDgsNyArNzQ4LDcgQEAgc3dpdGNoKGMtPmRzdEJwYyl7 IFwKIAogICAgICAgICAvKiB5dXYyZ2JycCB1c2VzIHRoZSBTd3NDb250ZXh0IGZvciB5dXYgY29l ZmZpY2llbnRzCiAgICAgICAgICAgIGlmIHN0cnVjdCBvZmZzZXRzIGNoYW5nZSB0aGUgYXNtIG5l ZWRzIHRvIGJlIHVwZGF0ZWQgdG9vICovCi0gICAgICAgIGF2X2Fzc2VydDAob2Zmc2V0b2YoU3dz Q29udGV4dCwgeXV2MnJnYl95X29mZnNldCkgPT0gNDAyOTIpOworICAgICAgICBhdl9hc3NlcnQw KG9mZnNldG9mKFN3c0NvbnRleHQsIHl1djJyZ2JfeV9vZmZzZXQpID09IDQwMjc2KTsKIAogI2Rl ZmluZSBZVVYyQU5ZWF9GVU5DX0NBU0UoZm10LCBuYW1lLCBvcHQpICAgICAgICAgICAgICBcCiAg ICAgICAgIGNhc2UgZm10OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK ZGlmZiAtLWdpdCBhL3Rlc3RzL2ZhdGUvc2NyZWVuLm1hayBiL3Rlc3RzL2ZhdGUvc2NyZWVuLm1h awppbmRleCBiZDZkMjI4NTQ0Li5iNTcyZjY3YjU1IDEwMDY0NAotLS0gYS90ZXN0cy9mYXRlL3Nj cmVlbi5tYWsKKysrIGIvdGVzdHMvZmF0ZS9zY3JlZW4ubWFrCkBAIC01LDYgKzUsNyBAQCBmYXRl LWNzY2Q6IENNRCA9IGZyYW1lY3JjIC1pICQoVEFSR0VUX1NBTVBMRVMpL0NTQ0Qvc2FtcGxlX3Zp ZGVvLmF2aSAtYW4gLXBpeF9mbQogRkFURV9TQ1JFRU4tJChjYWxsIEZSQU1FQ1JDLCBBVkksIERY VE9SWSkgKz0gZmF0ZS1keHRvcnkKIGZhdGUtZHh0b3J5OiBDTUQgPSBmcmFtZWNyYyAtaSAkKFRB UkdFVF9TQU1QTEVTKS9keHRvcnkvZHh0b3J5X21pYy5hdmkgLWFuCiAKKyMgZmljIHNhbXBsZSBp cyBicm9rZW4uIHNvbWUgcGFja2V0cyBhcmUgdHJ1bmNhdGVkIGFuZCBvbmUgcGFja2V0IGhhcyBs ZW5ndGggemVybwogRkFURV9TQ1JFRU4tJChjYWxsIEZSQU1FQ1JDLCBBVkksIEZJQykgKz0gZmF0 ZS1maWMtYXZpCiBmYXRlLWZpYy1hdmk6IENNRCA9IGZyYW1lY3JjIC1pICQoVEFSR0VUX1NBTVBM RVMpL2ZpYy9maWMtcGFydGlhbC0yTUIuYXZpIC1hbgogCmRpZmYgLS1naXQgYS90ZXN0cy9yZWYv ZmF0ZS9maWMtYXZpIGIvdGVzdHMvcmVmL2ZhdGUvZmljLWF2aQppbmRleCBkZjU1Nzg5ZDU0Li40 NTQ2ZjIzMGIxIDEwMDY0NAotLS0gYS90ZXN0cy9yZWYvZmF0ZS9maWMtYXZpCisrKyBiL3Rlc3Rz L3JlZi9mYXRlL2ZpYy1hdmkKQEAgLTc2LDE5ICs3NiwxOCBAQAogMCwgICAgICAgICA3MCwgICAg ICAgICA3MCwgICAgICAgIDEsICAxNTY2NzIwLCAweDQwZjdkMzlhCiAwLCAgICAgICAgIDcxLCAg ICAgICAgIDcxLCAgICAgICAgMSwgIDE1NjY3MjAsIDB4NDBmN2QzOWEKIDAsICAgICAgICAgNzIs ICAgICAgICAgNzIsICAgICAgICAxLCAgMTU2NjcyMCwgMHg0MGY3ZDM5YQotMCwgICAgICAgICA3 MywgICAgICAgICA3MywgICAgICAgIDEsICAxNTY2NzIwLCAweGE3ZDZlMjVmCi0wLCAgICAgICAg IDc0LCAgICAgICAgIDc0LCAgICAgICAgMSwgIDE1NjY3MjAsIDB4YTdkNmUyNWYKLTAsICAgICAg ICAgNzUsICAgICAgICAgNzUsICAgICAgICAxLCAgMTU2NjcyMCwgMHhhN2Q2ZTI1ZgotMCwgICAg ICAgICA3NiwgICAgICAgICA3NiwgICAgICAgIDEsICAxNTY2NzIwLCAweGE3ZDZlMjVmCi0wLCAg ICAgICAgIDc3LCAgICAgICAgIDc3LCAgICAgICAgMSwgIDE1NjY3MjAsIDB4YTdkNmUyNWYKLTAs ICAgICAgICAgNzgsICAgICAgICAgNzgsICAgICAgICAxLCAgMTU2NjcyMCwgMHhhN2Q2ZTI1Zgot MCwgICAgICAgICA3OSwgICAgICAgICA3OSwgICAgICAgIDEsICAxNTY2NzIwLCAweGE3ZDZlMjVm Ci0wLCAgICAgICAgIDgwLCAgICAgICAgIDgwLCAgICAgICAgMSwgIDE1NjY3MjAsIDB4YTdkNmUy NWYKLTAsICAgICAgICAgODEsICAgICAgICAgODEsICAgICAgICAxLCAgMTU2NjcyMCwgMHhhN2Q2 ZTI1ZgotMCwgICAgICAgICA4MiwgICAgICAgICA4MiwgICAgICAgIDEsICAxNTY2NzIwLCAweGE3 ZDZlMjVmCi0wLCAgICAgICAgIDgzLCAgICAgICAgIDgzLCAgICAgICAgMSwgIDE1NjY3MjAsIDB4 YTdkNmUyNWYKLTAsICAgICAgICAgODQsICAgICAgICAgODQsICAgICAgICAxLCAgMTU2NjcyMCwg MHhhN2Q2ZTI1ZgotMCwgICAgICAgICA4NSwgICAgICAgICA4NSwgICAgICAgIDEsICAxNTY2NzIw LCAweGE3ZDZlMjVmCiswLCAgICAgICAgIDc0LCAgICAgICAgIDc0LCAgICAgICAgMSwgIDE1NjY3 MjAsIDB4NDBmN2QzOWEKKzAsICAgICAgICAgNzUsICAgICAgICAgNzUsICAgICAgICAxLCAgMTU2 NjcyMCwgMHg0MGY3ZDM5YQorMCwgICAgICAgICA3NiwgICAgICAgICA3NiwgICAgICAgIDEsICAx NTY2NzIwLCAweDQwZjdkMzlhCiswLCAgICAgICAgIDc3LCAgICAgICAgIDc3LCAgICAgICAgMSwg IDE1NjY3MjAsIDB4NDBmN2QzOWEKKzAsICAgICAgICAgNzgsICAgICAgICAgNzgsICAgICAgICAx LCAgMTU2NjcyMCwgMHg0MGY3ZDM5YQorMCwgICAgICAgICA3OSwgICAgICAgICA3OSwgICAgICAg IDEsICAxNTY2NzIwLCAweDQwZjdkMzlhCiswLCAgICAgICAgIDgwLCAgICAgICAgIDgwLCAgICAg ICAgMSwgIDE1NjY3MjAsIDB4NDBmN2QzOWEKKzAsICAgICAgICAgODEsICAgICAgICAgODEsICAg ICAgICAxLCAgMTU2NjcyMCwgMHg0MGY3ZDM5YQorMCwgICAgICAgICA4MiwgICAgICAgICA4Miwg ICAgICAgIDEsICAxNTY2NzIwLCAweDQwZjdkMzlhCiswLCAgICAgICAgIDgzLCAgICAgICAgIDgz LCAgICAgICAgMSwgIDE1NjY3MjAsIDB4NDBmN2QzOWEKKzAsICAgICAgICAgODQsICAgICAgICAg ODQsICAgICAgICAxLCAgMTU2NjcyMCwgMHg0MGY3ZDM5YQorMCwgICAgICAgICA4NSwgICAgICAg ICA4NSwgICAgICAgIDEsICAxNTY2NzIwLCAweDQwZjdkMzlhCiAwLCAgICAgICAgIDg2LCAgICAg ICAgIDg2LCAgICAgICAgMSwgIDE1NjY3MjAsIDB4YTdkNmUyNWYKIDAsICAgICAgICAgODcsICAg ICAgICAgODcsICAgICAgICAxLCAgMTU2NjcyMCwgMHhhN2Q2ZTI1ZgogMCwgICAgICAgICA4OCwg ICAgICAgICA4OCwgICAgICAgIDEsICAxNTY2NzIwLCAweGE3ZDZlMjVmCkBAIC0xMDQsNyArMTAz LDYgQEAKIDAsICAgICAgICAgOTgsICAgICAgICAgOTgsICAgICAgICAxLCAgMTU2NjcyMCwgMHhh N2Q2ZTI1ZgogMCwgICAgICAgICA5OSwgICAgICAgICA5OSwgICAgICAgIDEsICAxNTY2NzIwLCAw eGE3ZDZlMjVmCiAwLCAgICAgICAgMTAwLCAgICAgICAgMTAwLCAgICAgICAgMSwgIDE1NjY3MjAs IDB4ZWFmOGQyMDcKLTAsICAgICAgICAxMDEsICAgICAgICAxMDEsICAgICAgICAxLCAgMTU2Njcy MCwgMHg2NzI0OTgzZQogMCwgICAgICAgIDEwMiwgICAgICAgIDEwMiwgICAgICAgIDEsICAxNTY2 NzIwLCAweDBlOTVkMjA5CiAwLCAgICAgICAgMTAzLCAgICAgICAgMTAzLCAgICAgICAgMSwgIDE1 NjY3MjAsIDB4MGU5NWQyMDkKIDAsICAgICAgICAxMDQsICAgICAgICAxMDQsICAgICAgICAxLCAg MTU2NjcyMCwgMHgwZTk1ZDIwOQpAQCAtMTIxLDYgKzExOSw0IEBACiAwLCAgICAgICAgMTE1LCAg ICAgICAgMTE1LCAgICAgICAgMSwgIDE1NjY3MjAsIDB4ZmU4M2I5NjQKIDAsICAgICAgICAxMTYs ICAgICAgICAxMTYsICAgICAgICAxLCAgMTU2NjcyMCwgMHhmZTgzYjk2NAogMCwgICAgICAgIDEx NywgICAgICAgIDExNywgICAgICAgIDEsICAxNTY2NzIwLCAweGZlODNiOTY0Ci0wLCAgICAgICAg MTE4LCAgICAgICAgMTE4LCAgICAgICAgMSwgIDE1NjY3MjAsIDB4MjVkYzMwYTYKLTAsICAgICAg ICAxMTksICAgICAgICAxMTksICAgICAgICAxLCAgMTU2NjcyMCwgMHgyNWRjMzBhNgotMCwgICAg ICAgIDEyMCwgICAgICAgIDEyMCwgICAgICAgIDEsICAxNTY2NzIwLCAweDI1ZGMzMGE2CiswLCAg ICAgICAgMTE5LCAgICAgICAgMTE5LCAgICAgICAgMSwgIDE1NjY3MjAsIDB4ZmU4M2I5NjQKLS0g CjIuMzAuMgoK --=-qhigiXL4I2fTSKY+i43+ Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". --=-qhigiXL4I2fTSKY+i43+--