From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 903774C876 for ; Wed, 6 Aug 2025 06:54:25 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id E68D868BA68; Wed, 6 Aug 2025 09:54:20 +0300 (EEST) Received: from 264e01bdf0e5 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id A2644687B78 for ; Wed, 6 Aug 2025 09:54:19 +0300 (EEST) MIME-Version: 1.0 From: Daniel Stadelmann To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] =?utf-8?q?=5BPATCH=5D_avcodec/libmpeghdec=3A_Add_?= =?utf-8?q?MPEG-H_3DA_Fraunhofer_IIS_mpeghdec_decoder_=28PR_=2320129=29?= 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" Message-Id: <20250806065420.E68D868BA68@ffbox0-bg.ffmpeg.org> Date: Wed, 6 Aug 2025 09:54:20 +0300 (EEST) Archived-At: List-Archive: List-Post: UFIgIzIwMTI5IG9wZW5lZCBieSBEYW5pZWwgU3RhZGVsbWFubiAoZHN0YWRlbG1hbm4taWlzKQpV Ukw6IGh0dHBzOi8vY29kZS5mZm1wZWcub3JnL0ZGbXBlZy9GRm1wZWcvcHVsbHMvMjAxMjkKUGF0 Y2ggVVJMOiBodHRwczovL2NvZGUuZmZtcGVnLm9yZy9GRm1wZWcvRkZtcGVnL3B1bGxzLzIwMTI5 LnBhdGNoCgpBZGRzIGEgd3JhcHBlciBhcm91bmQgdGhlIEZyYXVuaG9mZXIgSUlTIE1QRUctSCAz RCBBdWRpbyBtcGVnaGRlYyBbMV0NCmRlY29kZXIgc2hhcmVkIGxpYnJhcnkuDQoNClsxXSBodHRw czovL2dpdGh1Yi5jb20vRnJhdW5ob2Zlci1JSVMvbXBlZ2hkZWMNCg0KU2lnbmVkLW9mZi1ieTog U3RhZGVsbWFubiwgRGFuaWVsIDxkYW5pZWwuc3RhZGVsbWFubkBpaXMuZnJhdW5ob2Zlci5kZT4K CgpGcm9tIDEzN2Y0YWM1MGVmYjg2OGYwZjc0MTljMDg0MmM1YmY2OTEzZDI3YjkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206ICJTdGFkZWxtYW5uLCBEYW5pZWwiIDxkYW5pZWwuc3RhZGVs bWFubkBpaXMuZnJhdW5ob2Zlci5kZT4KRGF0ZTogRnJpLCAxIEF1ZyAyMDI1IDA3OjE1OjM3ICsw MjAwClN1YmplY3Q6IFtQQVRDSF0gYXZjb2RlYy9saWJtcGVnaGRlYzogQWRkIE1QRUctSCAzREEg RnJhdW5ob2ZlciBJSVMgbXBlZ2hkZWMKIGRlY29kZXIKCkFkZHMgYSB3cmFwcGVyIGFyb3VuZCB0 aGUgRnJhdW5ob2ZlciBJSVMgTVBFRy1IIDNEIEF1ZGlvIG1wZWdoZGVjIFsxXQpkZWNvZGVyIHNo YXJlZCBsaWJyYXJ5LgoKWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9GcmF1bmhvZmVyLUlJUy9tcGVn aGRlYwoKU2lnbmVkLW9mZi1ieTogU3RhZGVsbWFubiwgRGFuaWVsIDxkYW5pZWwuc3RhZGVsbWFu bkBpaXMuZnJhdW5ob2Zlci5kZT4KLS0tCiBDaGFuZ2Vsb2cgICAgICAgICAgICAgICAgIHwgICAx ICsKIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgfCAgIDEgKwogY29uZmlndXJlICAgICAgICAg ICAgICAgICB8ICAgNCArCiBkb2MvZGVjb2RlcnMudGV4aSAgICAgICAgIHwgIDIxICsrKwogZG9j L2dlbmVyYWxfY29udGVudHMudGV4aSB8ICAxMCArKwogbGliYXZjb2RlYy9NYWtlZmlsZSAgICAg ICB8ICAgMSArCiBsaWJhdmNvZGVjL2FsbGNvZGVjcy5jICAgIHwgICAxICsKIGxpYmF2Y29kZWMv bGlibXBlZ2hkZWMuYyAgfCAzMDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIGxpYmF2Y29kZWMvdmVyc2lvbi5oICAgICAgfCAgIDQgKy0KIDkgZmlsZXMgY2hhbmdlZCwg MzQ3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGli YXZjb2RlYy9saWJtcGVnaGRlYy5jCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlbG9nIGIvQ2hhbmdlbG9n CmluZGV4IDA0ZGI4ZTE1YjIuLjQyMzA0YzQwOTggMTAwNjQ0Ci0tLSBhL0NoYW5nZWxvZworKysg Yi9DaGFuZ2Vsb2cKQEAgLTI2LDYgKzI2LDcgQEAgdmVyc2lvbiA8bmV4dD46CiAtIE9wZW5IYXJt b255IGhhcmR3YXJlIGRlY29kZXIvZW5jb2RlcgogLSBDb2xvcmRldGVjdCBmaWx0ZXIKIC0gQWRk IHZmX3NjYWxlX2QzZDExIGZpbHRlcgorLSBNUEVHLUggM0QgQXVkaW8gZGVjb2RpbmcgdmlhIG1w ZWdoZGVjCiAKIAogdmVyc2lvbiA3LjE6CmRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5U QUlORVJTCmluZGV4IDY1MDMwMGRhZGMuLmNjZjQxYjYwOTkgMTAwNjQ0Ci0tLSBhL01BSU5UQUlO RVJTCisrKyBiL01BSU5UQUlORVJTCkBAIC0yMDgsNiArMjA4LDcgQEAgQ29kZWNzOgogICBsaWJq eGwqLmMsIGxpYmp4bC5oICAgICAgICAgICAgICAgICAgIExlbyBJemVuCiAgIGxpYmdzbS5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTWljaGVsIEJhcmRpYXV4CiAgIGxpYmt2YXphYXIu YyAgICAgICAgICAgICAgICAgICAgICAgICAgQXJ0dHUgWWzDpC1PdXRpbmVuCisgIGxpYm1wZWdo ZGVjLmMgICAgICAgICAgICAgICAgICAgICAgICAgRnJhdW5ob2ZlciBJSVMgKENDIG1wZWctaC10 ZWNoc3VwcG9ydEBpaXMuZnJhdW5ob2Zlci5kZSkgKEIgaHR0cHM6Ly9naXRodWIuY29tL0ZyYXVu aG9mZXItSUlTL21wZWdoZGVjL2lzc3VlcykKICAgbGlib3BlbmgyNjRlbmMuYyAgICAgICAgICAg ICAgICAgICAgICBNYXJ0aW4gU3RvcnNqbywgTGluamllIEZ1CiAgIGxpYm9wZW5qcGVnZW5jLmMg ICAgICAgICAgICAgICAgICAgICAgTWljaGFlbCBCcmFkc2hhdwogICBsaWJ0aGVvcmFlbmMuYyAg ICAgICAgICAgICAgICAgICAgICAgIERhdmlkIENvbnJhZApkaWZmIC0tZ2l0IGEvY29uZmlndXJl IGIvY29uZmlndXJlCmluZGV4IDAwOTM0YjAwYmUuLjFkYmFkZDAxYjAgMTAwNzU1Ci0tLSBhL2Nv bmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAgLTI0OSw2ICsyNDksNyBAQCBFeHRlcm5hbCBsaWJy YXJ5IHN1cHBvcnQ6CiAgIC0tZW5hYmxlLWxpYmxlbnNmdW4gICAgICBlbmFibGUgbGVuc2Z1biBs ZW5zIGNvcnJlY3Rpb24gW25vXQogICAtLWVuYWJsZS1saWJtb2RwbHVnICAgICAgZW5hYmxlIE1v ZFBsdWcgdmlhIGxpYm1vZHBsdWcgW25vXQogICAtLWVuYWJsZS1saWJtcDNsYW1lICAgICAgZW5h YmxlIE1QMyBlbmNvZGluZyB2aWEgbGlibXAzbGFtZSBbbm9dCisgIC0tZW5hYmxlLWxpYm1wZWdo ZGVjICAgICBlbmFibGUgTVBFRy1IIDNEQSBkZWNvZGluZyB2aWEgbGlibXBlZ2hkZWMgW25vXQog ICAtLWVuYWJsZS1saWJvYXB2ICAgICAgICAgZW5hYmxlIEFQViBlbmNvZGluZyB2aWEgbGlib2Fw diBbbm9dCiAgIC0tZW5hYmxlLWxpYm9wZW5jb3JlLWFtcm5iIGVuYWJsZSBBTVItTkIgZGUvZW5j b2RpbmcgdmlhIGxpYm9wZW5jb3JlLWFtcm5iIFtub10KICAgLS1lbmFibGUtbGlib3BlbmNvcmUt YW1yd2IgZW5hYmxlIEFNUi1XQiBkZWNvZGluZyB2aWEgbGlib3BlbmNvcmUtYW1yd2IgW25vXQpA QCAtMTk1Miw2ICsxOTUzLDcgQEAgRVhURVJOQUxfTElCUkFSWV9MSVNUPSIKICAgICBsaWJsY2V2 Y19kZWMKICAgICBsaWJtb2RwbHVnCiAgICAgbGlibXAzbGFtZQorICAgIGxpYm1wZWdoZGVjCiAg ICAgbGlibXlzb2ZhCiAgICAgbGlib2FwdgogICAgIGxpYm9wZW5jdgpAQCAtMzYxMSw2ICszNjEz LDcgQEAgbGlibGMzX2VuY29kZXJfc2VsZWN0PSJhdWRpb19mcmFtZV9xdWV1ZSIKIGxpYm1vZHBs dWdfZGVtdXhlcl9kZXBzPSJsaWJtb2RwbHVnIgogbGlibXAzbGFtZV9lbmNvZGVyX2RlcHM9Imxp Ym1wM2xhbWUiCiBsaWJtcDNsYW1lX2VuY29kZXJfc2VsZWN0PSJhdWRpb19mcmFtZV9xdWV1ZSBt cGVnYXVkaW9oZWFkZXIiCitsaWJtcGVnaGRlY19kZWNvZGVyX2RlcHM9ImxpYm1wZWdoZGVjIgog bGlib2Fwdl9lbmNvZGVyX2RlcHM9ImxpYm9hcHYiCiBsaWJvcGVuY29yZV9hbXJuYl9kZWNvZGVy X2RlcHM9ImxpYm9wZW5jb3JlX2Ftcm5iIgogbGlib3BlbmNvcmVfYW1ybmJfZW5jb2Rlcl9kZXBz PSJsaWJvcGVuY29yZV9hbXJuYiIKQEAgLTcwODUsNiArNzA4OCw3IEBAIGZpCiAKIGVuYWJsZWQg bGlibW9kcGx1ZyAgICAgICAgJiYgcmVxdWlyZV9wa2dfY29uZmlnIGxpYm1vZHBsdWcgbGlibW9k cGx1ZyBsaWJtb2RwbHVnL21vZHBsdWcuaCBNb2RQbHVnX0xvYWQKIGVuYWJsZWQgbGlibXAzbGFt ZSAgICAgICAgJiYgcmVxdWlyZSAibGlibXAzbGFtZSA+PSAzLjk4LjMiIGxhbWUvbGFtZS5oIGxh bWVfc2V0X1ZCUl9xdWFsaXR5IC1sbXAzbGFtZSAkbGlibV9leHRyYWxpYnMKK2VuYWJsZWQgbGli bXBlZ2hkZWMgICAgICAgJiYgcmVxdWlyZV9wa2dfY29uZmlnIGxpYm1wZWdoZGVjICJtcGVnaGRl YyA+PSAzLjAuMCIgbXBlZ2hkZWMvbXBlZ2hkZWNvZGVyLmggbXBlZ2hkZWNvZGVyX2luaXQKIGVu YWJsZWQgbGlibXlzb2ZhICAgICAgICAgJiYgeyBjaGVja19wa2dfY29uZmlnIGxpYm15c29mYSBs aWJteXNvZmEgbXlzb2ZhLmggbXlzb2ZhX25laWdoYm9yaG9vZF9pbml0X3dpdGhzdGVwZGVmaW5l IHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZSBsaWJteXNvZmEgbXlz b2ZhLmggbXlzb2ZhX25laWdoYm9yaG9vZF9pbml0X3dpdGhzdGVwZGVmaW5lIC1sbXlzb2ZhICR6 bGliX2V4dHJhbGliczsgfQogZW5hYmxlZCBsaWJucHAgICAgICAgICAgICAmJiB7IGNoZWNrX2xp YiBsaWJucHAgbnBwLmggbnBwR2V0TGliVmVyc2lvbiAtbG5wcGlnIC1sbnBwaWNjIC1sbnBwYyAt bG5wcGlkZWkgLWxucHBpZiB8fApkaWZmIC0tZ2l0IGEvZG9jL2RlY29kZXJzLnRleGkgYi9kb2Mv ZGVjb2RlcnMudGV4aQppbmRleCAxM2ViNDBmNGRkLi42ODA4ODI0NmFiIDEwMDY0NAotLS0gYS9k b2MvZGVjb2RlcnMudGV4aQorKysgYi9kb2MvZGVjb2RlcnMudGV4aQpAQCAtMzU2LDYgKzM1Niwy NyBAQCB2YWx1ZSBpcyAwIChkaXNhYmxlZCkuCiAKIEBlbmQgdGFibGUKIAorQHNlY3Rpb24gbGli bXBlZ2hkZWMKKworbGlibXBlZ2hkZWMgZGVjb2RlciB3cmFwcGVyLgorCitsaWJtcGVnaGRlYyBh bGxvd3MgbGlibXBlZ2hkZWMgdG8gZGVjb2RlIHRoZSBNUEVHLUggM0QgYXVkaW8gY29kZWMuCitS ZXF1aXJlcyB0aGUgcHJlc2VuY2Ugb2YgdGhlIGxpYm1wZWdoZGVjIGhlYWRlcnMgYW5kIGxpYnJh cnkgZHVyaW5nCitjb25maWd1cmF0aW9uLiBZb3UgbmVlZCB0byBleHBsaWNpdGx5IGNvbmZpZ3Vy ZSB0aGUgYnVpbGQgd2l0aAorQGNvZGV7LS1lbmFibGUtbGlibXBlZ2hkZWN9LgorCitAc3Vic2Vj dGlvbiBPcHRpb25zCisKK1RoZSBmb2xsb3dpbmcgb3B0aW9uIGlzIHN1cHBvcnRlZCBieSB0aGUg bGlibXBlZ2hkZWMgd3JhcHBlci4KKworQHRhYmxlIEBvcHRpb24KK0BpdGVtIGNpY3AgQHZhcntu dW1iZXJ9ICgxIC0gMTkpCisKK0VuYWJsZXMgZGVjb2RpbmcgaW50byB0aGUgZ2l2ZW4gQ0lDUCAo Y2hhbm5lbCBsYXlvdXQpLiBUaGUgZGVmYXVsdAordmFsdWUgaXMgMiAoU3RlcmVvKS4KKworQGVu ZCB0YWJsZQorCiBAc2VjdGlvbiBsaWJvcGVuY29yZS1hbXJuYgogCiBsaWJvcGVuY29yZS1hbXJu YiBkZWNvZGVyIHdyYXBwZXIuCmRpZmYgLS1naXQgYS9kb2MvZ2VuZXJhbF9jb250ZW50cy50ZXhp IGIvZG9jL2dlbmVyYWxfY29udGVudHMudGV4aQppbmRleCBiOWRhYjU4MGYxLi45NjA4Y2UyMTlh IDEwMDY0NAotLS0gYS9kb2MvZ2VuZXJhbF9jb250ZW50cy50ZXhpCisrKyBiL2RvYy9nZW5lcmFs X2NvbnRlbnRzLnRleGkKQEAgLTI1MCw2ICsyNTAsMTQgQEAgR28gdG8gQHVybHtodHRwOi8vc291 cmNlZm9yZ2UubmV0L3Byb2plY3RzL29wZW5jb3JlLWFtci99IGFuZCBmb2xsb3cgdGhlCiBpbnN0 cnVjdGlvbnMgZm9yIGluc3RhbGxpbmcgdGhlIGxpYnJhcnkuCiBUaGVuIHBhc3MgQGNvZGV7LS1l bmFibGUtbGliZmRrLWFhY30gdG8gY29uZmlndXJlIHRvIGVuYWJsZSBpdC4KIAorQHN1YnNlY3Rp b24gRnJhdW5ob2ZlciBNUEVHLUggM0QgQXVkaW8gZGVjb2RlciBsaWJyYXJ5CisKK0ZGbXBlZyBj YW4gbWFrZSB1c2Ugb2YgdGhlIEZyYXVuaG9mZXIgTVBFRy1IIGRlY29kZXIgbGlicmFyeSBmb3Ig TVBFRy1IIDNEQSBkZWNvZGluZy4KKworR28gdG8gQHVybHtodHRwczovL2dpdGh1Yi5jb20vRnJh dW5ob2Zlci1JSVMvbXBlZ2hkZWN9IGFuZCBmb2xsb3cgdGhlCitpbnN0cnVjdGlvbnMgZm9yIGlu c3RhbGxpbmcgdGhlIGxpYnJhcnkuCitUaGVuIHBhc3MgQGNvZGV7LS1lbmFibGUtbGlibXBlZ2hk ZWN9IHRvIGNvbmZpZ3VyZSB0byBlbmFibGUgaXQuCisKIEBzdWJzZWN0aW9uIExDMyBsaWJyYXJ5 CiAKIEZGbXBlZyBjYW4gbWFrZSB1c2Ugb2YgdGhlIEdvb2dsZSBMQzMgbGlicmFyeSBmb3IgTEMz IGRlY29kaW5nICYgZW5jb2RpbmcuCkBAIC0xMzQ0LDYgKzEzNTIsOCBAQCBmb2xsb3dpbmcgaW1h Z2UgZm9ybWF0cyBhcmUgc3VwcG9ydGVkOgogQGl0ZW0gTVAzIChNUEVHIGF1ZGlvIGxheWVyIDMp ICBAdGFiICBFICBAdGFiIElYCiAgICAgQHRhYiBlbmNvZGluZyBzdXBwb3J0ZWQgdGhyb3VnaCBl eHRlcm5hbCBsaWJyYXJ5IExBTUUsIEFEVSBNUDMgYW5kIE1QM29uTVA0IGFsc28gc3VwcG9ydGVk CiBAaXRlbSBNUEVHLTQgQXVkaW8gTG9zc2xlc3MgQ29kaW5nIChBTFMpICBAdGFiICAgICBAdGFi ICBYCitAaXRlbSBNUEVHLUggM0QgQXVkaW8gICAgICAgIEB0YWIgICAgIEB0YWIgIEUKKyAgICBA dGFiIGRlY29kaW5nIHN1cHBvcnRlZCB0aHJvdWdoIGV4dGVybmFsIGxpYnJhcnkgbGlibXBlZ2hk ZWMKIEBpdGVtIE1vYmlDbGlwIEZhc3RBdWRpbyAgICAgQHRhYiAgICAgQHRhYiAgWAogQGl0ZW0g TXVzZXBhY2sgU1Y3ICAgICAgICAgICBAdGFiICAgICBAdGFiICBYCiBAaXRlbSBNdXNlcGFjayBT VjggICAgICAgICAgIEB0YWIgICAgIEB0YWIgIFgKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvTWFr ZWZpbGUgYi9saWJhdmNvZGVjL01ha2VmaWxlCmluZGV4IGY5MzVjZmJlMGQuLmExNzA1Y2RkN2Ig MTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvTWFrZWZpbGUKKysrIGIvbGliYXZjb2RlYy9NYWtlZmls ZQpAQCAtMTE2MCw2ICsxMTYwLDcgQEAgT0JKUy0kKENPTkZJR19MSUJLVkFaQUFSX0VOQ09ERVIp ICAgICAgICAgKz0gbGlia3ZhemFhci5vCiBPQkpTLSQoQ09ORklHX0xJQkxDM19FTkNPREVSKSAg ICAgICAgICAgICArPSBsaWJsYzNlbmMubwogT0JKUy0kKENPTkZJR19MSUJMQzNfREVDT0RFUikg ICAgICAgICAgICAgKz0gbGlibGMzZGVjLm8KIE9CSlMtJChDT05GSUdfTElCTVAzTEFNRV9FTkNP REVSKSAgICAgICAgICs9IGxpYm1wM2xhbWUubworT0JKUy0kKENPTkZJR19MSUJNUEVHSERFQ19E RUNPREVSKSAgICAgICAgKz0gbGlibXBlZ2hkZWMubwogT0JKUy0kKENPTkZJR19MSUJPQVBWX0VO Q09ERVIpICAgICAgICAgICAgKz0gbGlib2FwdmVuYy5vCiBPQkpTLSQoQ09ORklHX0xJQk9QRU5D T1JFX0FNUk5CX0RFQ09ERVIpICArPSBsaWJvcGVuY29yZS1hbXIubwogT0JKUy0kKENPTkZJR19M SUJPUEVOQ09SRV9BTVJOQl9FTkNPREVSKSAgKz0gbGlib3BlbmNvcmUtYW1yLm8KZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMgYi9saWJhdmNvZGVjL2FsbGNvZGVjcy5jCmluZGV4 IDNhYWEzNTExNTcuLjIyMjM5YjM1MjEgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvYWxsY29kZWNz LmMKKysrIGIvbGliYXZjb2RlYy9hbGxjb2RlY3MuYwpAQCAtNzg5LDYgKzc4OSw3IEBAIGV4dGVy biBjb25zdCBGRkNvZGVjIGZmX2xpYmp4bF9lbmNvZGVyOwogZXh0ZXJuIGNvbnN0IEZGQ29kZWMg ZmZfbGlibGMzX2VuY29kZXI7CiBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9saWJsYzNfZGVjb2Rl cjsKIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2xpYm1wM2xhbWVfZW5jb2RlcjsKK2V4dGVybiBj b25zdCBGRkNvZGVjIGZmX2xpYm1wZWdoZGVjX2RlY29kZXI7CiBleHRlcm4gY29uc3QgRkZDb2Rl YyBmZl9saWJvYXB2X2VuY29kZXI7CiBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9saWJvcGVuY29y ZV9hbXJuYl9lbmNvZGVyOwogZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfbGlib3BlbmNvcmVfYW1y bmJfZGVjb2RlcjsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbGlibXBlZ2hkZWMuYyBiL2xpYmF2 Y29kZWMvbGlibXBlZ2hkZWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw Li5iNWQ5ZTYyM2VkCi0tLSAvZGV2L251bGwKKysrIGIvbGliYXZjb2RlYy9saWJtcGVnaGRlYy5j CkBAIC0wLDAgKzEsMzA2IEBACisvKgorICogTVBFRy1IIDNEIEF1ZGlvIERlY29kZXIgV3JhcHBl cgorICogQ29weXJpZ2h0IChDKSAyMDI1IEZyYXVuaG9mZXIgSW5zdGl0dXRlIGZvciBJbnRlZ3Jh dGVkIENpcmN1aXRzIElJUworICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAq CisgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwg d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLwor CisvKgorICogUGxlYXNlIG5vdGUgdGhhdCB0aGlzIEZGbXBlZyBTb2Z0d2FyZSBpcyBsaWNlbnNl ZCB1bmRlciB0aGUgTEdQTC0yLjEKKyAqIGJ1dCBpcyBjb21iaW5lZCB3aXRoIHNvZnR3YXJlIHRo YXQgaXMgbGljZW5zZWQgdW5kZXIgZGlmZmVyZW50IHRlcm1zLCBuYW1lbHkKKyAqIHRoZSAiU29m dHdhcmUgTGljZW5zZSBmb3IgVGhlIEZyYXVuaG9mZXIgRkRLIE1QRUctSCBTb2Z0d2FyZSIuIEZy YXVuaG9mZXIKKyAqIGFzIHRoZSBpbml0aWFsIGxpY2Vuc29yIGRvZXMgbm90IGludGVycHJldCB0 aGUgTEdQTC0yLjEgYXMgcmVxdWlyaW5nCisgKiBkaXN0cmlidXRpb24gb2YgdGhlIE1QRUctSCBT b2Z0d2FyZSB1bmRlciB0aGUgTEdQTC0yLjEgaWYgYmVpbmcgZGlzdHJpYnV0ZWQKKyAqIHRvZ2V0 aGVyIHdpdGggdGhpcyBGRm1wZWcgU29mdHdhcmUuIFRoZXJlZm9yZSwgZG93bnN0cmVhbSBkaXN0 cmlidXRpb24gb2YKKyAqIEZGbXBlZ2cgU29mdHdhcmUgZG9lcyBub3QgaW1wbHkgYW55IHJpZ2h0 IHRvIHJlZGlzdHJpYnV0ZSB0aGUgTVBFRy1IIFNvZnR3YXJlCisgKiB1bmRlciB0aGUgTEdQTC0y LjEuCisgKi8KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxtcGVnaGRlYy9tcGVnaGRl Y29kZXIuaD4KKworI2luY2x1ZGUgImxpYmF2dXRpbC9jaGFubmVsX2xheW91dC5oIgorI2luY2x1 ZGUgImxpYmF2dXRpbC9mcmFtZS5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKKyNpbmNs dWRlICJsaWJhdnV0aWwvb3B0LmgiCisKKyNpbmNsdWRlICJjb2RlY19pbnRlcm5hbC5oIgorI2lu Y2x1ZGUgImRlY29kZS5oIgorCisjZGVmaW5lIE1BWF9MT1NUX0ZSQU1FUyAyCisvLyAzMi1iaXQg aW50ICogMjIuMiAqIG1heCBmcmFtZXNpemUgKiAobWF4IGRlbGF5IGZyYW1lcyArIDEpCisjZGVm aW5lIE1BWF9PVVRCVUZfU0laRSAoc2l6ZW9mKGludDMyX3QpICogMjQgKiAzMDcyICogKE1BWF9M T1NUX0ZSQU1FUyArIDEpKQorCit0eXBlZGVmIHN0cnVjdCBNUEVHSDNEQURlY0NvbnRleHQgewor ICAgIEFWQ2xhc3MgKmF2X2NsYXNzOworICAgIC8vIHBvaW50ZXIgdG8gdGhlIGRlY29kZXIKKyAg ICBIQU5ETEVfTVBFR0hfREVDT0RFUl9DT05URVhUIGRlY29kZXI7CisKKyAgICAvLyBDb21tYW5k LWxpbmUgb3B0aW9ucworICAgIGludCBjaWNwOworCisgICAgLy8gSW50ZXJuYWwgdmFsdWVzCisg ICAgaW50MzJfdCAqZGVjb2Rlcl9idWZmZXI7CisgICAgaW50IGRlY29kZXJfYnVmZmVyX3NpemU7 Cit9IE1QRUdIM0RBRGVjQ29udGV4dDsKKworc3RhdGljIGNvbnN0IEFWT3B0aW9uIG1wZWdoM2Rh X29wdGlvbnNbXSA9IHsKKyAgICB7ICJjaWNwIiwKKyAgICAgICJUYXJnZXQgY2hhbm5lbCBsYXlv dXQgKENJQ1AgaW5kZXgpIiwKKyAgICAgIG9mZnNldG9mKE1QRUdIM0RBRGVjQ29udGV4dCwgY2lj cCksCisgICAgICBBVl9PUFRfVFlQRV9JTlQsCisgICAgICB7IC5pNjQgPSAyIH0sCisgICAgICAx LAorICAgICAgMTksCisgICAgICBBVl9PUFRfRkxBR19BVURJT19QQVJBTSB8IEFWX09QVF9GTEFH X0RFQ09ESU5HX1BBUkFNLAorICAgICAgImNpY3AiIH0sCisgICAgeyBOVUxMIH0KK307CisKKy8v IHByaXZhdGUgY2xhc3MgZGVmaW5pdGlvbiBmb3IgZmZtcGVnCitzdGF0aWMgY29uc3QgQVZDbGFz cyBtcGVnaDNkYV9jbGFzcyA9IHsKKyAgICAuY2xhc3NfbmFtZSA9ICJNUEVHLUggM0QgQXVkaW8g RGVjb2RlciIsCisgICAgLml0ZW1fbmFtZSA9IGF2X2RlZmF1bHRfaXRlbV9uYW1lLAorICAgIC5v cHRpb24gPSBtcGVnaDNkYV9vcHRpb25zLAorICAgIC52ZXJzaW9uID0gTElCQVZVVElMX1ZFUlNJ T05fSU5ULAorfTsKKworc3RhdGljIGF2X2NvbGQgaW50IG1wZWdoM2RhZGVjX2Nsb3NlKEFWQ29k ZWNDb250ZXh0ICphdmN0eCkKK3sKKyAgICBNUEVHSDNEQURlY0NvbnRleHQgKnMgPSBhdmN0eC0+ cHJpdl9kYXRhOworCisgICAgaWYgKHMtPmRlY29kZXIpCisgICAgICAgIG1wZWdoZGVjb2Rlcl9k ZXN0cm95KHMtPmRlY29kZXIpOworICAgIHMtPmRlY29kZXIgPSBOVUxMOworICAgIGF2X2ZyZWVw KCZzLT5kZWNvZGVyX2J1ZmZlcik7CisKKyAgICByZXR1cm4gMDsKK30KKworLy8gbG9va3VwIGZv ciBmZm1wZWcgY2hhbm5lbCBsYXlvdXQgZm9yIGdpdmVuIGNpY3AsIHNlZToKKy8vIGh0dHBzOi8v Z2l0aHViLmNvbS9GcmF1bmhvZmVyLUlJUy9tcGVnaGRlYy93aWtpL01QRUctSC1kZWNvZGVyLXRh cmdldC1sYXlvdXRzCitzdGF0aWMgYXZfY29sZCBpbnQgc2V0X2NoYW5uZWxfbGF5b3V0KEFWQ2hh bm5lbExheW91dCAqb3V0TGF5b3V0LCBpbnQgY2ljcCkKK3sKKyAgICBzd2l0Y2ggKGNpY3ApIHsK KyAgICBjYXNlIDA6CisgICAgICAgIC8vIGRlZmF1bHQgY2hhbm5lbCBsYXlvdXQKKyAgICAgICAg cmV0dXJuIGF2X2NoYW5uZWxfbGF5b3V0X2NvcHkoCisgICAgICAgICAgICBvdXRMYXlvdXQsICYo QVZDaGFubmVsTGF5b3V0KSBBVl9DSEFOTkVMX0xBWU9VVF9TVEVSRU8pOworICAgIGNhc2UgMToK KyAgICAgICAgcmV0dXJuIGF2X2NoYW5uZWxfbGF5b3V0X2NvcHkoCisgICAgICAgICAgICBvdXRM YXlvdXQsICYoQVZDaGFubmVsTGF5b3V0KSBBVl9DSEFOTkVMX0xBWU9VVF9NT05PKTsKKyAgICBj YXNlIDI6CisgICAgICAgIHJldHVybiBhdl9jaGFubmVsX2xheW91dF9jb3B5KAorICAgICAgICAg ICAgb3V0TGF5b3V0LCAmKEFWQ2hhbm5lbExheW91dCkgQVZfQ0hBTk5FTF9MQVlPVVRfU1RFUkVP KTsKKyAgICBjYXNlIDM6CisgICAgICAgIHJldHVybiBhdl9jaGFubmVsX2xheW91dF9jb3B5KAor ICAgICAgICAgICAgb3V0TGF5b3V0LCAmKEFWQ2hhbm5lbExheW91dCkgQVZfQ0hBTk5FTF9MQVlP VVRfU1VSUk9VTkQpOworICAgIGNhc2UgNDoKKyAgICAgICAgcmV0dXJuIGF2X2NoYW5uZWxfbGF5 b3V0X2NvcHkoCisgICAgICAgICAgICBvdXRMYXlvdXQsICYoQVZDaGFubmVsTGF5b3V0KSBBVl9D SEFOTkVMX0xBWU9VVF80UE9JTlQwKTsKKyAgICBjYXNlIDU6CisgICAgICAgIHJldHVybiBhdl9j aGFubmVsX2xheW91dF9jb3B5KAorICAgICAgICAgICAgb3V0TGF5b3V0LCAmKEFWQ2hhbm5lbExh eW91dCkgQVZfQ0hBTk5FTF9MQVlPVVRfNVBPSU5UMCk7CisgICAgY2FzZSA2OgorICAgICAgICBy ZXR1cm4gYXZfY2hhbm5lbF9sYXlvdXRfY29weSgKKyAgICAgICAgICAgIG91dExheW91dCwgJihB VkNoYW5uZWxMYXlvdXQpIEFWX0NIQU5ORUxfTEFZT1VUXzVQT0lOVDEpOworICAgIGNhc2UgNzoK KyAgICAgICAgcmV0dXJuIGF2X2NoYW5uZWxfbGF5b3V0X2NvcHkoCisgICAgICAgICAgICBvdXRM YXlvdXQsICYoQVZDaGFubmVsTGF5b3V0KSBBVl9DSEFOTkVMX0xBWU9VVF83UE9JTlQxX1dJREUp OworICAgIGNhc2UgOToKKyAgICAgICAgcmV0dXJuIGF2X2NoYW5uZWxfbGF5b3V0X2NvcHkob3V0 TGF5b3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmKEFWQ2hhbm5l bExheW91dCkgQVZfQ0hBTk5FTF9MQVlPVVRfMl8xKTsKKyAgICBjYXNlIDEwOgorICAgICAgICBy ZXR1cm4gYXZfY2hhbm5lbF9sYXlvdXRfY29weShvdXRMYXlvdXQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICYoQVZDaGFubmVsTGF5b3V0KSBBVl9DSEFOTkVMX0xBWU9V VF8yXzIpOworICAgIGNhc2UgMTE6CisgICAgICAgIHJldHVybiBhdl9jaGFubmVsX2xheW91dF9j b3B5KAorICAgICAgICAgICAgb3V0TGF5b3V0LCAmKEFWQ2hhbm5lbExheW91dCkgQVZfQ0hBTk5F TF9MQVlPVVRfNlBPSU5UMSk7CisgICAgY2FzZSAxMjoKKyAgICAgICAgcmV0dXJuIGF2X2NoYW5u ZWxfbGF5b3V0X2NvcHkoCisgICAgICAgICAgICBvdXRMYXlvdXQsICYoQVZDaGFubmVsTGF5b3V0 KSBBVl9DSEFOTkVMX0xBWU9VVF83UE9JTlQxKTsKKyAgICBjYXNlIDEzOgorICAgICAgICByZXR1 cm4gYXZfY2hhbm5lbF9sYXlvdXRfY29weSgKKyAgICAgICAgICAgIG91dExheW91dCwgJihBVkNo YW5uZWxMYXlvdXQpIEFWX0NIQU5ORUxfTEFZT1VUXzIyUE9JTlQyKTsKKyAgICBjYXNlIDE0Ogor ICAgICAgICByZXR1cm4gYXZfY2hhbm5lbF9sYXlvdXRfY29weSgKKyAgICAgICAgICAgIG91dExh eW91dCwgJihBVkNoYW5uZWxMYXlvdXQpIEFWX0NIQU5ORUxfTEFZT1VUXzVQT0lOVDFQT0lOVDIp OworICAgIGNhc2UgMTU6CisgICAgICAgIHJldHVybiBhdl9jaGFubmVsX2xheW91dF9jb3B5KAor ICAgICAgICAgICAgb3V0TGF5b3V0LAorICAgICAgICAgICAgJihBVkNoYW5uZWxMYXlvdXQpIEFW X0NIQU5ORUxfTEFZT1VUX01BU0soCisgICAgICAgICAgICAgICAgMTIsIChBVl9DSF9MQVlPVVRf NVBPSU5UMVBPSU5UMiB8IEFWX0NIX1NJREVfU1VSUk9VTkRfTEVGVCB8CisgICAgICAgICAgICAg ICAgICAgICBBVl9DSF9TSURFX1NVUlJPVU5EX1JJR0hUIHwgQVZfQ0hfVE9QX0JBQ0tfQ0VOVEVS IHwKKyAgICAgICAgICAgICAgICAgICAgIEFWX0NIX0xPV19GUkVRVUVOQ1lfMikpKTsKKyAgICBj YXNlIDE2OgorICAgICAgICByZXR1cm4gYXZfY2hhbm5lbF9sYXlvdXRfY29weSgKKyAgICAgICAg ICAgIG91dExheW91dCwgJihBVkNoYW5uZWxMYXlvdXQpIEFWX0NIQU5ORUxfTEFZT1VUXzVQT0lO VDFQT0lOVDRfQkFDSyk7CisgICAgY2FzZSAxNzoKKyAgICAgICAgcmV0dXJuIGF2X2NoYW5uZWxf bGF5b3V0X2NvcHkoCisgICAgICAgICAgICBvdXRMYXlvdXQsICYoQVZDaGFubmVsTGF5b3V0KSBB Vl9DSEFOTkVMX0xBWU9VVF9NQVNLKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIsIChB Vl9DSF9MQVlPVVRfNVBPSU5UMVBPSU5UNF9CQUNLIHwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQVZfQ0hfVE9QX0ZST05UX0NFTlRFUiB8IEFWX0NIX1RPUF9DRU5URVIpKSk7Cisg ICAgY2FzZSAxODoKKyAgICAgICAgcmV0dXJuIGF2X2NoYW5uZWxfbGF5b3V0X2NvcHkoCisgICAg ICAgICAgICBvdXRMYXlvdXQsICYoQVZDaGFubmVsTGF5b3V0KSBBVl9DSEFOTkVMX0xBWU9VVF9N QVNLKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQsIChBVl9DSF9MQVlPVVRfN1BPSU5U MVBPSU5UNF9CQUNLIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZfQ0hfVE9Q X0ZST05UX0NFTlRFUiB8IEFWX0NIX1RPUF9DRU5URVIpKSk7CisgICAgY2FzZSAxOToKKyAgICAg ICAgcmV0dXJuIGF2X2NoYW5uZWxfbGF5b3V0X2NvcHkoCisgICAgICAgICAgICBvdXRMYXlvdXQs ICYoQVZDaGFubmVsTGF5b3V0KSBBVl9DSEFOTkVMX0xBWU9VVF83UE9JTlQxUE9JTlQ0X0JBQ0sp OworICAgIH0KKyAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOworfQorCitzdGF0aWMgYXZfY29s ZCBpbnQgbXBlZ2gzZGFkZWNfaW5pdChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCit7CisgICAgTVBF R0gzREFEZWNDb250ZXh0ICpzID0gYXZjdHgtPnByaXZfZGF0YTsKKworICAgIGlmICghcy0+Y2lj cCkgeworICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwKKyAgICAgICAgICAgICAg ICJUYXJnZXQgbGF5b3V0IENJQ1AgbmVlZHMgdG8gYmUgc3BlY2lmaWVkXG4iKTsKKyAgICAgICAg cmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKKyAgICB9CisKKyAgICBzLT5kZWNvZGVyID0gTlVMTDsK KworICAgIGF2Y3R4LT5kZWxheSA9IDA7CisgICAgYXZjdHgtPnNhbXBsZV9mbXQgPSBBVl9TQU1Q TEVfRk1UX1MzMjsKKyAgICBhdmN0eC0+c2FtcGxlX3JhdGUgPSA0ODAwMDsKKyAgICBpZiAoc2V0 X2NoYW5uZWxfbGF5b3V0KCZhdmN0eC0+Y2hfbGF5b3V0LCBzLT5jaWNwKSB8fAorICAgICAgICBh dmN0eC0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzID09IDApIHsKKyAgICAgICAgYXZfbG9nKGF2Y3R4 LCBBVl9MT0dfRVJST1IsICJVbnN1cHBvcnRlZCBDSUNQIGluZGV4OiAldS5cbiIsIHMtPmNpY3Ap OworICAgICAgICBtcGVnaDNkYWRlY19jbG9zZShhdmN0eCk7CisgICAgICAgIHJldHVybiBBVkVS Uk9SKEVJTlZBTCk7CisgICAgfQorCisgICAgcy0+ZGVjb2Rlcl9idWZmZXJfc2l6ZSA9IE1BWF9P VVRCVUZfU0laRTsKKyAgICBzLT5kZWNvZGVyX2J1ZmZlciA9IGF2X21hbGxvYyhzLT5kZWNvZGVy X2J1ZmZlcl9zaXplKTsKKyAgICBpZiAoIXMtPmRlY29kZXJfYnVmZmVyKSB7CisgICAgICAgIG1w ZWdoM2RhZGVjX2Nsb3NlKGF2Y3R4KTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsK KyAgICB9CisKKyAgICAvLyBpbml0aWFsaXplIHRoZSBkZWNvZGVyCisgICAgcy0+ZGVjb2RlciA9 IG1wZWdoZGVjb2Rlcl9pbml0KHMtPmNpY3ApOworICAgIGlmIChzLT5kZWNvZGVyID09IE5VTEwp IHsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJNUEVHLUggZGVjb2RlciBs aWJyYXJ5IGluaXQgZmFpbGVkLlxuIik7CisgICAgICAgIG1wZWdoM2RhZGVjX2Nsb3NlKGF2Y3R4 KTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfRVhURVJOQUw7CisgICAgfQorCisgICAgaWYgKGF2 Y3R4LT5leHRyYWRhdGFfc2l6ZSkgeworICAgICAgICBpZiAobXBlZ2hkZWNvZGVyX3NldE1oYUNv bmZpZyhzLT5kZWNvZGVyLCBhdmN0eC0+ZXh0cmFkYXRhLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhdmN0eC0+ZXh0cmFkYXRhX3NpemUpKSB7CisgICAgICAgICAgICBh dl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIlVuYWJsZSB0byBzZXQgTUhBIGNvbmZpZ3VyYXRp b25cbiIpOworICAgICAgICAgICAgbXBlZ2gzZGFkZWNfY2xvc2UoYXZjdHgpOworICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBy ZXR1cm4gMDsKK30KKworc3RhdGljIGludCBtcGVnaDNkYWRlY19kZWNvZGVfZnJhbWUoQVZDb2Rl Y0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCAqZ290X2ZyYW1lX3B0ciwgQVZQYWNrZXQgKmF2cGt0KQoreworICAg IE1QRUdIM0RBRGVjQ29udGV4dCAqcyA9IGF2Y3R4LT5wcml2X2RhdGE7CisgICAgaW50IHJldDsK KyAgICBNUEVHSF9ERUNPREVSX0VSUk9SIGVycjsKKyAgICBNUEVHSF9ERUNPREVSX09VVFBVVF9J TkZPIG91dF9pbmZvOworCisgICAgaWYgKCFhdmN0eC0+c2FtcGxlX3JhdGUpIHsKKyAgICAgICAg YXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJBdWRpbyBzYW1wbGUgcmF0ZSBpcyBub3Qgc2V0 Iik7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOworICAgIH0KKworICAgIGlm IChhdnBrdC0+ZGF0YSAhPSBOVUxMICYmIGF2cGt0LT5zaXplID4gMCkgeworICAgICAgICBpZiAo KGVyciA9IG1wZWdoZGVjb2Rlcl9wcm9jZXNzVGltZXNjYWxlKHMtPmRlY29kZXIsIGF2cGt0LT5k YXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2 cGt0LT5zaXplLCBhdnBrdC0+cHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGF2Y3R4LT5zYW1wbGVfcmF0ZSkpKSB7CisgICAgICAgICAgICBhdl9s b2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIm1wZWdoZGVjb2Rlcl9wcm9jZXNzKCkgZmFpbGVkOiAl eFxuIiwKKyAgICAgICAgICAgICAgICAgICBlcnIpOworICAgICAgICAgICAgcmV0dXJuIEFWRVJS T1JfSU5WQUxJRERBVEE7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyB3ZSBh cmUgZmx1c2hpbmcKKyAgICAgICAgZXJyID0gbXBlZ2hkZWNvZGVyX2ZsdXNoQW5kR2V0KHMtPmRl Y29kZXIpOworCisgICAgICAgIGlmIChlcnIgIT0gTVBFR0hfREVDX09LICYmIGVyciAhPSBNUEVH SF9ERUNfRkVFRF9EQVRBKQorICAgICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfV0FSTklO RywKKyAgICAgICAgICAgICAgICAgICAibXBlZ2hkZWNvZGVyX2ZsdXNoQW5kR2V0KCkgZmFpbGVk OiAlZFxuIiwgZXJyKTsKKyAgICB9CisKKyAgICBlcnIgPSBtcGVnaGRlY29kZXJfZ2V0U2FtcGxl cyhzLT5kZWNvZGVyLCBzLT5kZWNvZGVyX2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzLT5kZWNvZGVyX2J1ZmZlcl9zaXplIC8gc2l6ZW9mKGludDMyX3QpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfaW5mbyk7CisgICAgaWYgKGVyciA9 PSBNUEVHSF9ERUNfRkVFRF9EQVRBKSB7CisgICAgICAgIC8vIG5vIGZyYW1lcyB0byBwcm9kdWNl IGF0IHRoZSBtb21lbnQKKyAgICAgICAgcmV0dXJuIGF2cGt0LT5zaXplOworICAgIH0gZWxzZSBp ZiAoZXJyKSB7CisgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAibXBlZ2hkZWNv ZGVyX2dldFNhbXBsZXMoKSBmYWlsZWQ6ICV4XG4iLAorICAgICAgICAgICAgICAgZXJyKTsKKyAg ICAgICAgcmV0dXJuIEFWRVJST1JfVU5LTk9XTjsKKyAgICB9CisKKyAgICBmcmFtZS0+bmJfc2Ft cGxlcyA9IGF2Y3R4LT5mcmFtZV9zaXplID0gb3V0X2luZm8ubnVtU2FtcGxlc1BlckNoYW5uZWw7 CisgICAgZnJhbWUtPnNhbXBsZV9yYXRlID0gYXZjdHgtPnNhbXBsZV9yYXRlID0gb3V0X2luZm8u c2FtcGxlUmF0ZTsKKyAgICBmcmFtZS0+cHRzID0gb3V0X2luZm8udGlja3M7CisgICAgZnJhbWUt PnRpbWVfYmFzZS5udW0gPSAxOworICAgIGZyYW1lLT50aW1lX2Jhc2UuZGVuID0gb3V0X2luZm8u c2FtcGxlUmF0ZTsKKworICAgIGlmICgocmV0ID0gZmZfZ2V0X2J1ZmZlcihhdmN0eCwgZnJhbWUs IDApKSA8IDApCisgICAgICAgIHJldHVybiByZXQ7CisKKyAgICBtZW1jcHkoZnJhbWUtPmV4dGVu ZGVkX2RhdGFbMF0sIHMtPmRlY29kZXJfYnVmZmVyLAorICAgICAgICAgICBhdmN0eC0+Y2hfbGF5 b3V0Lm5iX2NoYW5uZWxzICogYXZjdHgtPmZyYW1lX3NpemUgKgorICAgICAgICAgICAgICAgYXZf Z2V0X2J5dGVzX3Blcl9zYW1wbGUoYXZjdHgtPnNhbXBsZV9mbXQpKTsKKworICAgICpnb3RfZnJh bWVfcHRyID0gMTsKKyAgICByZXR1cm4gcmV0ID0gYXZwa3QtPnNpemU7Cit9CisKK3N0YXRpYyBh dl9jb2xkIHZvaWQgbXBlZ2gzZGFkZWNfZmx1c2goQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQorewor ICAgIE1QRUdIX0RFQ09ERVJfRVJST1IgZXJyOworICAgIE1QRUdIM0RBRGVjQ29udGV4dCAqcyA9 IGF2Y3R4LT5wcml2X2RhdGE7CisKKyAgICBpZiAoIXMtPmRlY29kZXIpCisgICAgICAgIHJldHVy bjsKKworICAgIGVyciA9IG1wZWdoZGVjb2Rlcl9mbHVzaChzLT5kZWNvZGVyKTsKKworICAgIGlm IChlcnIgIT0gTVBFR0hfREVDX09LICYmIGVyciAhPSBNUEVHSF9ERUNfRkVFRF9EQVRBKQorICAg ICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19XQVJOSU5HLCAibXBlZ2hkZWNvZGVyX2ZsdXNoIGZh aWxlZDogJWRcbiIsIGVycik7Cit9CisKK2NvbnN0IEZGQ29kZWMgZmZfbGlibXBlZ2hkZWNfZGVj b2RlciA9IHsKKyAgICAucC5uYW1lID0gImxpYm1wZWdoZGVjIiwKKyAgICBDT0RFQ19MT05HX05B TUUoImxpYm1wZWdoZGVjIChNUEVHLUggM0QgQXVkaW8pIiksCisgICAgLnAucHJpdl9jbGFzcyA9 ICZtcGVnaDNkYV9jbGFzcywKKyAgICAucC50eXBlID0gQVZNRURJQV9UWVBFX0FVRElPLAorICAg IC5wLmlkID0gQVZfQ09ERUNfSURfTVBFR0hfM0RfQVVESU8sCisgICAgLnAuY2FwYWJpbGl0aWVz ID0KKyAgICAgICAgQVZfQ09ERUNfQ0FQX0RSMSB8IEFWX0NPREVDX0NBUF9ERUxBWSB8IEFWX0NP REVDX0NBUF9DSEFOTkVMX0NPTkYsCisgICAgLnByaXZfZGF0YV9zaXplID0gc2l6ZW9mKE1QRUdI M0RBRGVjQ29udGV4dCksCisgICAgLmluaXQgPSBtcGVnaDNkYWRlY19pbml0LAorICAgIEZGX0NP REVDX0RFQ09ERV9DQihtcGVnaDNkYWRlY19kZWNvZGVfZnJhbWUpLAorICAgIC5jbG9zZSA9IG1w ZWdoM2RhZGVjX2Nsb3NlLAorICAgIC5mbHVzaCA9IG1wZWdoM2RhZGVjX2ZsdXNoLAorICAgIENP REVDX1NBTVBMRUZNVFMoQVZfU0FNUExFX0ZNVF9TMzIpLAorICAgIC5jYXBzX2ludGVybmFsID0g MCwKKyAgICAucC53cmFwcGVyX25hbWUgPSAibGlibXBlZ2hkZWMiLAorfTsKZGlmZiAtLWdpdCBh L2xpYmF2Y29kZWMvdmVyc2lvbi5oIGIvbGliYXZjb2RlYy92ZXJzaW9uLmgKaW5kZXggZmI0Y2I2 Yzg2Yi4uMjMwZDVmYTEzZSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92ZXJzaW9uLmgKKysrIGIv bGliYXZjb2RlYy92ZXJzaW9uLmgKQEAgLTI5LDggKzI5LDggQEAKIAogI2luY2x1ZGUgInZlcnNp b25fbWFqb3IuaCIKIAotI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUlOT1IgICA4Ci0jZGVm aW5lIExJQkFWQ09ERUNfVkVSU0lPTl9NSUNSTyAxMDEKKyNkZWZpbmUgTElCQVZDT0RFQ19WRVJT SU9OX01JTk9SICAgOQorI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUlDUk8gMTAwCiAKICNk ZWZpbmUgTElCQVZDT0RFQ19WRVJTSU9OX0lOVCAgQVZfVkVSU0lPTl9JTlQoTElCQVZDT0RFQ19W RVJTSU9OX01BSk9SLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExJQkFWQ09ERUNfVkVSU0lPTl9NSU5PUiwgXAotLSAKMi40OS4xCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGlu ZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUs IG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1 bnN1YnNjcmliZSIuCg==