From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 7056A4BCA4 for <ffmpegdev@gitmailbox.com>; Mon, 31 Mar 2025 02:38:20 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2AF9C687CC7; Mon, 31 Mar 2025 05:38:04 +0300 (EEST) Received: from vidala.pars.ee (vidala.pars.ee [116.203.72.101]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C439E687B0C for <ffmpeg-devel@ffmpeg.org>; Mon, 31 Mar 2025 05:37:56 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; s=202405r; d=lynne.ee; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1743388675; bh=hVm+6n6Jvb7475pJI+VwvaL zhEY9dw58TROIh9o5IZ0=; b=CjbHReL8OWobM/MRdiCPJoEM6ZjhKBFqT0a0CmZw5Ms11Hfsu0 dun36BSMzm+zyDBIx3h2Xld3dPehfl44E4OTiDBqdGl4etAkjZ6oqP8eZ2ld4NBb+Uri933pVe3 PKu7VPAUiO/Q1D6iZQ32L9nJKp1vV0TxRdsgfWB5qzddTS8WQiIHzSzKg0opo4dmpQ+3xcQRvUt i5u989uAK8KQ2M7DIrMlHkKKrN3PVkLFrRkarjgde/OlZF5UD767veaVRtrPmpE8Itc8vLeP5YA 1LPDVF2e1gmet1VdG6eVE7qi1LBrLJ39Oqe8Q8zXCWixk8qGjAnt8s5+f/v7ftFvsaA==; DKIM-Signature: v=1; a=ed25519-sha256; s=202405e; d=lynne.ee; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1743388675; bh=hVm+6n6Jvb7475pJI+VwvaL zhEY9dw58TROIh9o5IZ0=; b=xr0VYlMmiFvjm5HddTRW4HdyVEBJKyHZQ6oqgiDK2Ih6sPM/hi eV5bVVk+3n9uxUjSBWq3D9+1uNPxfsKkQJBA==; From: Lynne <dev@lynne.ee> To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Mar 2025 04:37:41 +0200 Message-ID: <20250331023753.285499-5-dev@lynne.ee> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250331023753.285499-1-dev@lynne.ee> References: <20250331023753.285499-1-dev@lynne.ee> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/6] vulkan_h264: make all temporary structs temporary X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Cc: Lynne <dev@lynne.ee> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/20250331023753.285499-5-dev@lynne.ee/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> VGhpcyBjb21taXQgbW92ZXMgYWxsIHRlbXBvcmFyeSBzdHJ1Y3RzIHVzZWQgZm9yIGRlY29kaW5n IG91dApvZiB0aGUgY29tbW9uIHBpY3R1cmUgaGVhZGVyIGFuZCBvbnRvIHN0YWNrLgotLS0KIGxp YmF2Y29kZWMvdnVsa2FuX2RlY29kZS5jIHwgICAxICsKIGxpYmF2Y29kZWMvdnVsa2FuX2RlY29k ZS5oIHwgICAzICsKIGxpYmF2Y29kZWMvdnVsa2FuX2gyNjQuYyAgIHwgMzIyICsrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTY4IGluc2VydGlv bnMoKyksIDE1OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbl9k ZWNvZGUuYyBiL2xpYmF2Y29kZWMvdnVsa2FuX2RlY29kZS5jCmluZGV4IDg5M2Y4ZmNhM2QuLjU1 MDVmYmRhMjggMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdnVsa2FuX2RlY29kZS5jCisrKyBiL2xp YmF2Y29kZWMvdnVsa2FuX2RlY29kZS5jCkBAIC0yNTMsNiArMjUzLDcgQEAgaW50IGZmX3ZrX2Rl Y29kZV9zdGFydF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEZGVnVsa2FuRGVjb2RlUGlj dHVyZSAqdnAsCiAKICAgICB2cC0+bmJfc2xpY2VzID0gMDsKICAgICB2cC0+c2xpY2VzX3NpemUg PSAwOworICAgIHZwLT5pbnRyYV9waWNfZmxhZyA9IDE7CiAKICAgICAvKiBIb3N0IG1hcCB0aGUg aW5wdXQgc2xpY2VzIGRhdGEgaWYgc3VwcG9ydGVkICovCiAgICAgaWYgKGNvbXBsZXRlICYmIGN0 eC0+cy5leHRlbnNpb25zICYgRkZfVktfRVhUX0VYVEVSTkFMX0hPU1RfTUVNT1JZKSB7CmRpZmYg LS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbl9kZWNvZGUuaCBiL2xpYmF2Y29kZWMvdnVsa2FuX2Rl Y29kZS5oCmluZGV4IDEwM2JlMDk5NDMuLjViMTRkOTYyZjIgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29k ZWMvdnVsa2FuX2RlY29kZS5oCisrKyBiL2xpYmF2Y29kZWMvdnVsa2FuX2RlY29kZS5oCkBAIC0x MDUsNiArMTA1LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgRkZWdWxrYW5EZWNvZGVQaWN0dXJlIHsKICAg ICAvKiBWdWxrYW4gZnVuY3Rpb25zIG5lZWRlZCBmb3IgZGVzdHJ1Y3Rpb24sIGFzIG5vIG90aGVy IGNvbnRleHQgaXMgZ3VhcmFudGVlZCB0byBleGlzdCAqLwogICAgIFBGTl92a1dhaXRTZW1hcGhv cmVzICAgICAgICAgICAgd2FpdF9zZW1hcGhvcmVzOwogICAgIFBGTl92a0Rlc3Ryb3lJbWFnZVZp ZXcgICAgICAgICAgZGVzdHJveV9pbWFnZV92aWV3OworCisgICAgLyogQ29kZWMgc3BlY2lmaWMg Ki8KKyAgICBpbnQgaW50cmFfcGljX2ZsYWc7IC8qIE9ubHkgdXNlZCBieSBIMjY0ICovCiB9IEZG VnVsa2FuRGVjb2RlUGljdHVyZTsKIAogLyoqCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGth bl9oMjY0LmMgYi9saWJhdmNvZGVjL3Z1bGthbl9oMjY0LmMKaW5kZXggNzFhOWMwNjgwMS4uZTY5 NzU4M2JhOSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92dWxrYW5faDI2NC5jCisrKyBiL2xpYmF2 Y29kZWMvdnVsa2FuX2gyNjQuYwpAQCAtMzIsOTkgKzMyLDggQEAgY29uc3QgRkZWdWxrYW5EZWNv ZGVEZXNjcmlwdG9yIGZmX3ZrX2RlY19oMjY0X2Rlc2MgPSB7CiAgICAgfSwKIH07CiAKLXR5cGVk ZWYgc3RydWN0IEgyNjRWdWxrYW5EZWNvZGVQaWN0dXJlIHsKLSAgICBGRlZ1bGthbkRlY29kZVBp Y3R1cmUgICAgICAgICAgIHZwOwotCi0gICAgLyogQ3VycmVudCBwaWN0dXJlICovCi0gICAgU3Rk VmlkZW9EZWNvZGVIMjY0UmVmZXJlbmNlSW5mbyBoMjY0X3JlZjsKLSAgICBWa1ZpZGVvRGVjb2Rl SDI2NERwYlNsb3RJbmZvS0hSIHZraDI2NF9yZWY7Ci0KLSAgICAvKiBQaWN0dXJlIHJlZnMgKi8K LSAgICBIMjY0UGljdHVyZSAgICAgICAgICAgICAgICAgICAgKnJlZl9zcmMgICAgW0gyNjRfTUFY X1BJQ1RVUkVfQ09VTlRdOwotICAgIFN0ZFZpZGVvRGVjb2RlSDI2NFJlZmVyZW5jZUluZm8gaDI2 NF9yZWZzICBbSDI2NF9NQVhfUElDVFVSRV9DT1VOVF07Ci0gICAgVmtWaWRlb0RlY29kZUgyNjRE cGJTbG90SW5mb0tIUiB2a2gyNjRfcmVmc1tIMjY0X01BWF9QSUNUVVJFX0NPVU5UXTsKLQotICAg IC8qIEN1cnJlbnQgcGljdHVyZSAoY29udGQuKSAqLwotICAgIFN0ZFZpZGVvRGVjb2RlSDI2NFBp Y3R1cmVJbmZvICAgaDI2NHBpYzsKLSAgICBWa1ZpZGVvRGVjb2RlSDI2NFBpY3R1cmVJbmZvS0hS IGgyNjRfcGljX2luZm87Ci0KLSAgICAvKiBDdXJyZW50IHBpY3R1cmUgKi8KLSAgICBWa1ZpZGVv UGljdHVyZVJlc291cmNlSW5mb0tIUiAgIHJlZjsKLSAgICBWa1ZpZGVvUmVmZXJlbmNlU2xvdElu Zm9LSFIgICAgIHJlZl9zbG90OwotCi0gICAgLyogUGljdHVyZSByZWZzLiBIMjY0IGhhcyB0aGUg bWF4aW11bSBudW1iZXIgb2YgcmVmcyAoMzYpIG9mIGFueSBzdXBwb3J0ZWQgY29kZWMuICovCi0g ICAgVmtWaWRlb1BpY3R1cmVSZXNvdXJjZUluZm9LSFIgICByZWZzICAgICBbMzZdOwotICAgIFZr VmlkZW9SZWZlcmVuY2VTbG90SW5mb0tIUiAgICAgcmVmX3Nsb3RzWzM2XTsKLQotICAgIC8qIE1h aW4gZGVjb2Rpbmcgc3RydWN0ICovCi0gICAgVmtWaWRlb0RlY29kZUluZm9LSFIgICAgICAgICAg ICBkZWNvZGVfaW5mbzsKLX0gSDI2NFZ1bGthbkRlY29kZVBpY3R1cmU7Ci0KIGNvbnN0IHN0YXRp YyBpbnQgaDI2NF9zY2FsaW5nX2xpc3Q4X29yZGVyW10gPSB7IDAsIDMsIDEsIDQsIDIsIDUgfTsK IAotc3RhdGljIGludCB2a19oMjY0X2ZpbGxfcGljdChBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEgy NjRQaWN0dXJlICoqcmVmX3NyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmtWaWRl b1JlZmVyZW5jZVNsb3RJbmZvS0hSICpyZWZfc2xvdCwgICAgICAgLyogTWFpbiBzdHJ1Y3R1cmUg Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmtWaWRlb1BpY3R1cmVSZXNvdXJjZUlu Zm9LSFIgKnJlZiwgICAgICAgICAgLyogR29lcyBpbiBeICovCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFZrVmlkZW9EZWNvZGVIMjY0RHBiU2xvdEluZm9LSFIgKnZraDI2NF9yZWYsIC8q IEdvZXMgaW4gXiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGRWaWRlb0RlY29k ZUgyNjRSZWZlcmVuY2VJbmZvICpoMjY0X3JlZiwgICAvKiBHb2VzIGluIF4gKi8KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSDI2NFBpY3R1cmUgKnBpYywgaW50IGlzX2N1cnJlbnQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpc19maWVsZCwgaW50IHBpY3R1cmVfc3Ry dWN0dXJlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHBiX3Nsb3RfaW5kZXgp Ci17Ci0gICAgRkZWdWxrYW5EZWNvZGVDb250ZXh0ICpkZWMgPSBhdmN0eC0+aW50ZXJuYWwtPmh3 YWNjZWxfcHJpdl9kYXRhOwotICAgIEZGVnVsa2FuRGVjb2RlU2hhcmVkICpjdHggPSBkZWMtPnNo YXJlZF9jdHg7Ci0gICAgSDI2NFZ1bGthbkRlY29kZVBpY3R1cmUgKmhwID0gcGljLT5od2FjY2Vs X3BpY3R1cmVfcHJpdmF0ZTsKLSAgICBGRlZ1bGthbkRlY29kZVBpY3R1cmUgKnZrcGljID0gJmhw LT52cDsKLQotICAgIGludCBlcnIgPSBmZl92a19kZWNvZGVfcHJlcGFyZV9mcmFtZShkZWMsIHBp Yy0+ZiwgdmtwaWMsIGlzX2N1cnJlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRlYy0+ZGVkaWNhdGVkX2RwYik7Ci0gICAgaWYgKGVyciA8IDApCi0gICAgICAg IHJldHVybiBlcnI7Ci0KLSAgICAqaDI2NF9yZWYgPSAoU3RkVmlkZW9EZWNvZGVIMjY0UmVmZXJl bmNlSW5mbykgewotICAgICAgICAuRnJhbWVOdW0gPSBwaWMtPmxvbmdfcmVmID8gcGljLT5waWNf aWQgOiBwaWMtPmZyYW1lX251bSwKLSAgICAgICAgLlBpY09yZGVyQ250ID0geyBwaWMtPmZpZWxk X3BvY1swXSwgcGljLT5maWVsZF9wb2NbMV0gfSwKLSAgICAgICAgLmZsYWdzID0gKFN0ZFZpZGVv RGVjb2RlSDI2NFJlZmVyZW5jZUluZm9GbGFncykgewotICAgICAgICAgICAgLnRvcF9maWVsZF9m bGFnICAgID0gaXNfZmllbGQgPyAhIShwaWN0dXJlX3N0cnVjdHVyZSAmIFBJQ1RfVE9QX0ZJRUxE KSAgICA6IDAsCi0gICAgICAgICAgICAuYm90dG9tX2ZpZWxkX2ZsYWcgPSBpc19maWVsZCA/ICEh KHBpY3R1cmVfc3RydWN0dXJlICYgUElDVF9CT1RUT01fRklFTEQpIDogMCwKLSAgICAgICAgICAg IC51c2VkX2Zvcl9sb25nX3Rlcm1fcmVmZXJlbmNlID0gcGljLT5yZWZlcmVuY2UgJiYgcGljLT5s b25nX3JlZiwKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBmbGFncy5pc19ub25fZXhp c3RpbmcgaXMgdXNlZCB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBwaWN0dXJlIGlzIG1hcmtlZCBh cwotICAgICAgICAgICAgICog4oCcbm9uLWV4aXN0aW5n4oCdIGFzIGRlZmluZWQgaW4gc2VjdGlv biA4LjIuNS4yIG9mIHRoZSBJVFUtVCBILjI2NCBTcGVjaWZpY2F0aW9uOwotICAgICAgICAgICAg ICogOC4yLjUuMiBEZWNvZGluZyBwcm9jZXNzIGZvciBnYXBzIGluIGZyYW1lX251bQotICAgICAg ICAgICAgICogY29ycmVzcG9uZHMgdG8gdGhlIGNvZGUgaW4gaDI2NF9zbGljZS5jOmgyNjRfZmll bGRfc3RhcnQsCi0gICAgICAgICAgICAgKiB3aGljaCBzZXRzIHRoZSBpbnZhbGlkX2dhcCBmbGFn IHdoZW4gZGVjb2RpbmcuCi0gICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIC5pc19ub25fZXhp c3RpbmcgPSBwaWMtPmludmFsaWRfZ2FwLAotICAgICAgICB9LAotICAgIH07Ci0KLSAgICAqdmto MjY0X3JlZiA9IChWa1ZpZGVvRGVjb2RlSDI2NERwYlNsb3RJbmZvS0hSKSB7Ci0gICAgICAgIC5z VHlwZSA9IFZLX1NUUlVDVFVSRV9UWVBFX1ZJREVPX0RFQ09ERV9IMjY0X0RQQl9TTE9UX0lORk9f S0hSLAotICAgICAgICAucFN0ZFJlZmVyZW5jZUluZm8gPSBoMjY0X3JlZiwKLSAgICB9OwotCi0g ICAgKnJlZiA9IChWa1ZpZGVvUGljdHVyZVJlc291cmNlSW5mb0tIUikgewotICAgICAgICAuc1R5 cGUgPSBWS19TVFJVQ1RVUkVfVFlQRV9WSURFT19QSUNUVVJFX1JFU09VUkNFX0lORk9fS0hSLAot ICAgICAgICAuY29kZWRPZmZzZXQgPSAoVmtPZmZzZXQyRCl7IDAsIDAgfSwKLSAgICAgICAgLmNv ZGVkRXh0ZW50ID0gKFZrRXh0ZW50MkQpeyBwaWMtPmYtPndpZHRoLCBwaWMtPmYtPmhlaWdodCB9 LAotICAgICAgICAuYmFzZUFycmF5TGF5ZXIgPSBjdHgtPmNvbW1vbi5sYXllcmVkX2RwYiA/IGRw Yl9zbG90X2luZGV4IDogMCwKLSAgICAgICAgLmltYWdlVmlld0JpbmRpbmcgPSB2a3BpYy0+dmll dy5yZWZbMF0sCi0gICAgfTsKLQotICAgICpyZWZfc2xvdCA9IChWa1ZpZGVvUmVmZXJlbmNlU2xv dEluZm9LSFIpIHsKLSAgICAgICAgLnNUeXBlID0gVktfU1RSVUNUVVJFX1RZUEVfVklERU9fUkVG RVJFTkNFX1NMT1RfSU5GT19LSFIsCi0gICAgICAgIC5wTmV4dCA9IHZraDI2NF9yZWYsCi0gICAg ICAgIC5zbG90SW5kZXggPSBkcGJfc2xvdF9pbmRleCwKLSAgICAgICAgLnBQaWN0dXJlUmVzb3Vy Y2UgPSByZWYsCi0gICAgfTsKLQotICAgIGlmIChyZWZfc3JjKQotICAgICAgICAqcmVmX3NyYyA9 IHBpYzsKLQotICAgIHJldHVybiAwOwotfQotCiBzdGF0aWMgU3RkVmlkZW9IMjY0TGV2ZWxJZGMg Y29udmVydF90b192a19sZXZlbF9pZGMoaW50IGxldmVsX2lkYykKIHsKICAgICBzd2l0Y2ggKGxl dmVsX2lkYykgewpAQCAtMzY5LDE4ICsyNzgsMTI0IEBAIHN0YXRpYyBpbnQgdmtfaDI2NF9jcmVh dGVfcGFyYW1zKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZCdWZmZXJSZWYgKipidWYpCiAgICAg cmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgdmtfaDI2NF9maWxsX3BpY3QoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4LCBIMjY0UGljdHVyZSAqKnJlZl9zcmMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFZrVmlkZW9SZWZlcmVuY2VTbG90SW5mb0tIUiAqcmVmX3Nsb3QsICAgICAgIC8qIE1h aW4gc3RydWN0dXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZrVmlkZW9QaWN0 dXJlUmVzb3VyY2VJbmZvS0hSICpyZWYsICAgICAgICAgIC8qIEdvZXMgaW4gXiAqLworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBWa1ZpZGVvRGVjb2RlSDI2NERwYlNsb3RJbmZvS0hSICp2 a2gyNjRfcmVmLCAvKiBHb2VzIGluIF4gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RkVmlkZW9EZWNvZGVIMjY0UmVmZXJlbmNlSW5mbyAqaDI2NF9yZWYsICAgLyogR29lcyBpbiBe ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEgyNjRQaWN0dXJlICpwaWMsIGludCBp c19jdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXNfZmllbGQsIGlu dCBwaWN0dXJlX3N0cnVjdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRw Yl9zbG90X2luZGV4KQoreworICAgIEZGVnVsa2FuRGVjb2RlQ29udGV4dCAqZGVjID0gYXZjdHgt PmludGVybmFsLT5od2FjY2VsX3ByaXZfZGF0YTsKKyAgICBGRlZ1bGthbkRlY29kZVNoYXJlZCAq Y3R4ID0gZGVjLT5zaGFyZWRfY3R4OworICAgIEZGVnVsa2FuRGVjb2RlUGljdHVyZSAqdmtwaWMg PSBwaWMtPmh3YWNjZWxfcGljdHVyZV9wcml2YXRlOworCisgICAgaW50IGVyciA9IGZmX3ZrX2Rl Y29kZV9wcmVwYXJlX2ZyYW1lKGRlYywgcGljLT5mLCB2a3BpYywgaXNfY3VycmVudCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjLT5kZWRpY2F0ZWRfZHBiKTsK KyAgICBpZiAoZXJyIDwgMCkKKyAgICAgICAgcmV0dXJuIGVycjsKKworICAgICpoMjY0X3JlZiA9 IChTdGRWaWRlb0RlY29kZUgyNjRSZWZlcmVuY2VJbmZvKSB7CisgICAgICAgIC5GcmFtZU51bSA9 IHBpYy0+bG9uZ19yZWYgPyBwaWMtPnBpY19pZCA6IHBpYy0+ZnJhbWVfbnVtLAorICAgICAgICAu UGljT3JkZXJDbnQgPSB7IHBpYy0+ZmllbGRfcG9jWzBdLCBwaWMtPmZpZWxkX3BvY1sxXSB9LAor ICAgICAgICAuZmxhZ3MgPSAoU3RkVmlkZW9EZWNvZGVIMjY0UmVmZXJlbmNlSW5mb0ZsYWdzKSB7 CisgICAgICAgICAgICAudG9wX2ZpZWxkX2ZsYWcgICAgPSBpc19maWVsZCA/ICEhKHBpY3R1cmVf c3RydWN0dXJlICYgUElDVF9UT1BfRklFTEQpICAgIDogMCwKKyAgICAgICAgICAgIC5ib3R0b21f ZmllbGRfZmxhZyA9IGlzX2ZpZWxkID8gISEocGljdHVyZV9zdHJ1Y3R1cmUgJiBQSUNUX0JPVFRP TV9GSUVMRCkgOiAwLAorICAgICAgICAgICAgLnVzZWRfZm9yX2xvbmdfdGVybV9yZWZlcmVuY2Ug PSBwaWMtPnJlZmVyZW5jZSAmJiBwaWMtPmxvbmdfcmVmLAorICAgICAgICAgICAgLyoKKyAgICAg ICAgICAgICAqIGZsYWdzLmlzX25vbl9leGlzdGluZyBpcyB1c2VkIHRvIGluZGljYXRlIHdoZXRo ZXIgdGhlIHBpY3R1cmUgaXMgbWFya2VkIGFzCisgICAgICAgICAgICAgKiDigJxub24tZXhpc3Rp bmfigJ0gYXMgZGVmaW5lZCBpbiBzZWN0aW9uIDguMi41LjIgb2YgdGhlIElUVS1UIEguMjY0IFNw ZWNpZmljYXRpb247CisgICAgICAgICAgICAgKiA4LjIuNS4yIERlY29kaW5nIHByb2Nlc3MgZm9y IGdhcHMgaW4gZnJhbWVfbnVtCisgICAgICAgICAgICAgKiBjb3JyZXNwb25kcyB0byB0aGUgY29k ZSBpbiBoMjY0X3NsaWNlLmM6aDI2NF9maWVsZF9zdGFydCwKKyAgICAgICAgICAgICAqIHdoaWNo IHNldHMgdGhlIGludmFsaWRfZ2FwIGZsYWcgd2hlbiBkZWNvZGluZy4KKyAgICAgICAgICAgICAq LworICAgICAgICAgICAgLmlzX25vbl9leGlzdGluZyA9IHBpYy0+aW52YWxpZF9nYXAsCisgICAg ICAgIH0sCisgICAgfTsKKworICAgICp2a2gyNjRfcmVmID0gKFZrVmlkZW9EZWNvZGVIMjY0RHBi U2xvdEluZm9LSFIpIHsKKyAgICAgICAgLnNUeXBlID0gVktfU1RSVUNUVVJFX1RZUEVfVklERU9f REVDT0RFX0gyNjRfRFBCX1NMT1RfSU5GT19LSFIsCisgICAgICAgIC5wU3RkUmVmZXJlbmNlSW5m byA9IGgyNjRfcmVmLAorICAgIH07CisKKyAgICAqcmVmID0gKFZrVmlkZW9QaWN0dXJlUmVzb3Vy Y2VJbmZvS0hSKSB7CisgICAgICAgIC5zVHlwZSA9IFZLX1NUUlVDVFVSRV9UWVBFX1ZJREVPX1BJ Q1RVUkVfUkVTT1VSQ0VfSU5GT19LSFIsCisgICAgICAgIC5jb2RlZE9mZnNldCA9IChWa09mZnNl dDJEKXsgMCwgMCB9LAorICAgICAgICAuY29kZWRFeHRlbnQgPSAoVmtFeHRlbnQyRCl7IHBpYy0+ Zi0+d2lkdGgsIHBpYy0+Zi0+aGVpZ2h0IH0sCisgICAgICAgIC5iYXNlQXJyYXlMYXllciA9IGN0 eC0+Y29tbW9uLmxheWVyZWRfZHBiID8gZHBiX3Nsb3RfaW5kZXggOiAwLAorICAgICAgICAuaW1h Z2VWaWV3QmluZGluZyA9IHZrcGljLT52aWV3LnJlZlswXSwKKyAgICB9OworCisgICAgKnJlZl9z bG90ID0gKFZrVmlkZW9SZWZlcmVuY2VTbG90SW5mb0tIUikgeworICAgICAgICAuc1R5cGUgPSBW S19TVFJVQ1RVUkVfVFlQRV9WSURFT19SRUZFUkVOQ0VfU0xPVF9JTkZPX0tIUiwKKyAgICAgICAg LnBOZXh0ID0gdmtoMjY0X3JlZiwKKyAgICAgICAgLnNsb3RJbmRleCA9IGRwYl9zbG90X2luZGV4 LAorICAgICAgICAucFBpY3R1cmVSZXNvdXJjZSA9IHJlZiwKKyAgICB9OworCisgICAgaWYgKHJl Zl9zcmMpCisgICAgICAgICpyZWZfc3JjID0gcGljOworCisgICAgcmV0dXJuIDA7Cit9CisKIHN0 YXRpYyBpbnQgdmtfaDI2NF9zdGFydF9mcmFtZShBVkNvZGVjQ29udGV4dCAgICAgICAgICAqYXZj dHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZfdW51c2VkIGNvbnN0IEFWQnVm ZmVyUmVmICpidWZmZXJfcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2X3Vu dXNlZCBjb25zdCB1aW50OF90ICpidWZmZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXZfdW51c2VkIHVpbnQzMl90ICAgICAgIHNpemUpCit7CisgICAgY29uc3QgSDI2NENvbnRl eHQgKmggPSBhdmN0eC0+cHJpdl9kYXRhOworICAgIEgyNjRQaWN0dXJlICpwaWMgPSBoLT5jdXJf cGljX3B0cjsKKyAgICBGRlZ1bGthbkRlY29kZVBpY3R1cmUgKnZwID0gcGljLT5od2FjY2VsX3Bp Y3R1cmVfcHJpdmF0ZTsKKworICAgIHJldHVybiBmZl92a19kZWNvZGVfc3RhcnRfZnJhbWUoYXZj dHgsIHZwLCBidWZmZXJfcmVmLCAwKTsKK30KKwordHlwZWRlZiBzdHJ1Y3QgSDI2NFZ1bGthbkRl Y29kZVBhcmFtcyB7CisgICAgLyogQ3VycmVudCBwaWN0dXJlICovCisgICAgU3RkVmlkZW9EZWNv ZGVIMjY0UmVmZXJlbmNlSW5mbyBoMjY0X3JlZjsKKyAgICBWa1ZpZGVvRGVjb2RlSDI2NERwYlNs b3RJbmZvS0hSIHZraDI2NF9yZWY7CisKKyAgICAvKiBQaWN0dXJlIHJlZnMgKi8KKyAgICBIMjY0 UGljdHVyZSAgICAgICAgICAgICAgICAgICAgKnJlZl9zcmMgICAgW0gyNjRfTUFYX1BJQ1RVUkVf Q09VTlRdOworICAgIFN0ZFZpZGVvRGVjb2RlSDI2NFJlZmVyZW5jZUluZm8gaDI2NF9yZWZzICBb SDI2NF9NQVhfUElDVFVSRV9DT1VOVF07CisgICAgVmtWaWRlb0RlY29kZUgyNjREcGJTbG90SW5m b0tIUiB2a2gyNjRfcmVmc1tIMjY0X01BWF9QSUNUVVJFX0NPVU5UXTsKKworICAgIC8qIEN1cnJl bnQgcGljdHVyZSAoY29udGQuKSAqLworICAgIFN0ZFZpZGVvRGVjb2RlSDI2NFBpY3R1cmVJbmZv ICAgaDI2NHBpYzsKKyAgICBWa1ZpZGVvRGVjb2RlSDI2NFBpY3R1cmVJbmZvS0hSIGgyNjRfcGlj X2luZm87CisKKyAgICAvKiBDdXJyZW50IHBpY3R1cmUgKi8KKyAgICBWa1ZpZGVvUGljdHVyZVJl c291cmNlSW5mb0tIUiAgIHJlZjsKKyAgICBWa1ZpZGVvUmVmZXJlbmNlU2xvdEluZm9LSFIgICAg IHJlZl9zbG90OworCisgICAgLyogUGljdHVyZSByZWZzLiBIMjY0IGhhcyB0aGUgbWF4aW11bSBu dW1iZXIgb2YgcmVmcyAoMzYpIG9mIGFueSBzdXBwb3J0ZWQgY29kZWMuICovCisgICAgVmtWaWRl b1BpY3R1cmVSZXNvdXJjZUluZm9LSFIgICByZWZzICAgICBbMzZdOworICAgIFZrVmlkZW9SZWZl cmVuY2VTbG90SW5mb0tIUiAgICAgcmVmX3Nsb3RzWzM2XTsKKworICAgIC8qIE1haW50ZW5hbmNl IDIgKi8KKyNpZmRlZiBWS19LSFJfdmlkZW9fbWFpbnRlbmFuY2UyCisgICAgU3RkVmlkZW9IMjY0 U2NhbGluZ0xpc3RzIHZrc3BzX3NjYWxpbmc7CisgICAgU3RkVmlkZW9IMjY0SHJkUGFyYW1ldGVy cyB2a3Nwc192dWlfaGVhZGVyOworICAgIFN0ZFZpZGVvSDI2NFNlcXVlbmNlUGFyYW1ldGVyU2V0 VnVpIHZrc3BzX3Z1aTsKKyAgICBTdGRWaWRlb0gyNjRTZXF1ZW5jZVBhcmFtZXRlclNldCB2a3Nw czsKKyAgICBTdGRWaWRlb0gyNjRTY2FsaW5nTGlzdHMgdmtwcHNfc2NhbGluZzsKKyAgICBTdGRW aWRlb0gyNjRQaWN0dXJlUGFyYW1ldGVyU2V0IHZrcHBzOworICAgIFZrVmlkZW9EZWNvZGVIMjY0 SW5saW5lU2Vzc2lvblBhcmFtZXRlcnNJbmZvS0hSIGgyNjRfcGFyYW1zOworI2VuZGlmCisKKyAg ICAvKiBNYWluIGRlY29kaW5nIHN0cnVjdCAqLworICAgIFZrVmlkZW9EZWNvZGVJbmZvS0hSICAg ICAgICAgICAgZGVjb2RlX2luZm87Cit9IEgyNjRWdWxrYW5EZWNvZGVQYXJhbXM7CisKK3N0YXRp YyBpbnQgdmtfaDI2NF9maWxsX3BhcmFtcyhBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEZGVnVsa2Fu RGVjb2RlUGljdHVyZSAqdnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSDI2NFZ1 bGthbkRlY29kZVBhcmFtcyAqaHApCiB7CiAgICAgaW50IGVycjsKICAgICBpbnQgZHBiX3Nsb3Rf aW5kZXggPSAwOwogICAgIEgyNjRDb250ZXh0ICpoID0gYXZjdHgtPnByaXZfZGF0YTsKLQogICAg IEgyNjRQaWN0dXJlICpwaWMgPSBoLT5jdXJfcGljX3B0cjsKLSAgICBIMjY0VnVsa2FuRGVjb2Rl UGljdHVyZSAqaHAgPSBwaWMtPmh3YWNjZWxfcGljdHVyZV9wcml2YXRlOwotICAgIEZGVnVsa2Fu RGVjb2RlUGljdHVyZSAqdnAgPSAmaHAtPnZwOwogCiAgICAgLyogRmlsbCBpbiBtYWluIHNsb3Qg Ki8KICAgICBkcGJfc2xvdF9pbmRleCA9IDA7CkBAIC00NDUsMTMgKzQ2MCwxMyBAQCBzdGF0aWMg aW50IHZrX2gyNjRfc3RhcnRfZnJhbWUoQVZDb2RlY0NvbnRleHQgICAgICAgICAgKmF2Y3R4LAog ICAgIGhwLT5oMjY0cGljID0gKFN0ZFZpZGVvRGVjb2RlSDI2NFBpY3R1cmVJbmZvKSB7CiAgICAg ICAgIC5zZXFfcGFyYW1ldGVyX3NldF9pZCA9IHBpYy0+cHBzLT5zcHNfaWQsCiAgICAgICAgIC5w aWNfcGFyYW1ldGVyX3NldF9pZCA9IHBpYy0+cHBzLT5wcHNfaWQsCi0gICAgICAgIC5mcmFtZV9u dW0gPSAwLCAgLyogU2V0IGxhdGVyICovCi0gICAgICAgIC5pZHJfcGljX2lkID0gMCwgLyogU2V0 IGxhdGVyICovCisgICAgICAgIC5mcmFtZV9udW0gPSBoLT5zbGljZV9jdHhbMF0uZnJhbWVfbnVt LAorICAgICAgICAuaWRyX3BpY19pZCA9IGgtPnNsaWNlX2N0eFswXS5pZHJfcGljX2lkLAogICAg ICAgICAuUGljT3JkZXJDbnRbMF0gPSBwaWMtPmZpZWxkX3BvY1swXSwKICAgICAgICAgLlBpY09y ZGVyQ250WzFdID0gcGljLT5maWVsZF9wb2NbMV0sCiAgICAgICAgIC5mbGFncyA9IChTdGRWaWRl b0RlY29kZUgyNjRQaWN0dXJlSW5mb0ZsYWdzKSB7CisgICAgICAgICAgICAuaXNfaW50cmEgPSB2 cC0+aW50cmFfcGljX2ZsYWcsCiAgICAgICAgICAgICAuZmllbGRfcGljX2ZsYWcgPSBGSUVMRF9Q SUNUVVJFKGgpLAotICAgICAgICAgICAgLmlzX2ludHJhID0gMSwgLyogU2V0IGxhdGVyICovCiAg ICAgICAgICAgICAuSWRyUGljRmxhZyA9IGgtPnBpY3R1cmVfaWRyLAogICAgICAgICAgICAgLmJv dHRvbV9maWVsZF9mbGFnID0gaC0+cGljdHVyZV9zdHJ1Y3R1cmUgIT0gUElDVF9GUkFNRSAmJgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaC0+cGljdHVyZV9zdHJ1Y3R1cmUgJiBQ SUNUX0JPVFRPTV9GSUVMRCwKQEAgLTQ2Myw2ICs0NzgsOCBAQCBzdGF0aWMgaW50IHZrX2gyNjRf c3RhcnRfZnJhbWUoQVZDb2RlY0NvbnRleHQgICAgICAgICAgKmF2Y3R4LAogICAgIGhwLT5oMjY0 X3BpY19pbmZvID0gKFZrVmlkZW9EZWNvZGVIMjY0UGljdHVyZUluZm9LSFIpIHsKICAgICAgICAg LnNUeXBlID0gVktfU1RSVUNUVVJFX1RZUEVfVklERU9fREVDT0RFX0gyNjRfUElDVFVSRV9JTkZP X0tIUiwKICAgICAgICAgLnBTdGRQaWN0dXJlSW5mbyA9ICZocC0+aDI2NHBpYywKKyAgICAgICAg LnBTbGljZU9mZnNldHMgPSB2cC0+c2xpY2Vfb2Zmc2V0cywKKyAgICAgICAgLnNsaWNlQ291bnQg PSB2cC0+bmJfc2xpY2VzLAogICAgIH07CiAKICAgICBocC0+ZGVjb2RlX2luZm8gPSAoVmtWaWRl b0RlY29kZUluZm9LSFIpIHsKQEAgLTQ4NCwxMDAgKzUwMSw4OSBAQCBzdGF0aWMgaW50IHZrX2gy NjRfc3RhcnRfZnJhbWUoQVZDb2RlY0NvbnRleHQgICAgICAgICAgKmF2Y3R4LAogICAgIHJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IHZrX2gyNjRfZGVjb2RlX3NsaWNlKEFWQ29kZWNDb250ZXh0 ICphdmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAg KmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgICBz aXplKQotewotICAgIGNvbnN0IEgyNjRDb250ZXh0ICpoID0gYXZjdHgtPnByaXZfZGF0YTsKLSAg ICBjb25zdCBIMjY0U2xpY2VDb250ZXh0ICpzbCAgPSAmaC0+c2xpY2VfY3R4WzBdOwotICAgIEgy NjRWdWxrYW5EZWNvZGVQaWN0dXJlICpocCA9IGgtPmN1cl9waWNfcHRyLT5od2FjY2VsX3BpY3R1 cmVfcHJpdmF0ZTsKLSAgICBGRlZ1bGthbkRlY29kZVBpY3R1cmUgKnZwID0gJmhwLT52cDsKLQot ICAgIGludCBlcnIgPSBmZl92a19kZWNvZGVfYWRkX3NsaWNlKGF2Y3R4LCB2cCwgZGF0YSwgc2l6 ZSwgMSk7Ci0gICAgaWYgKGVyciA8IDApCi0gICAgICAgIHJldHVybiBlcnI7Ci0KLSAgICBocC0+ aDI2NHBpYy5mcmFtZV9udW0gPSBzbC0+ZnJhbWVfbnVtOwotICAgIGhwLT5oMjY0cGljLmlkcl9w aWNfaWQgPSBzbC0+aWRyX3BpY19pZDsKLQotICAgIC8qIEZyYW1lIGlzIG9ubHkgaW50cmEgb2Yg YWxsIHNsaWNlcyBhcmUgbWFya2VkIGFzIGludHJhICovCi0gICAgaWYgKHNsLT5zbGljZV90eXBl ICE9IEFWX1BJQ1RVUkVfVFlQRV9JICYmIHNsLT5zbGljZV90eXBlICE9IEFWX1BJQ1RVUkVfVFlQ RV9TSSkKLSAgICAgICAgaHAtPmgyNjRwaWMuZmxhZ3MuaXNfaW50cmEgPSAwOwotCi0gICAgcmV0 dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbnQgdmtfaDI2NF9lbmRfZnJhbWUoQVZDb2RlY0NvbnRleHQg KmF2Y3R4KQogeworICAgIGludCBlcnI7CiAgICAgY29uc3QgSDI2NENvbnRleHQgKmggPSBhdmN0 eC0+cHJpdl9kYXRhOwogICAgIEZGVnVsa2FuRGVjb2RlQ29udGV4dCAqZGVjID0gYXZjdHgtPmlu dGVybmFsLT5od2FjY2VsX3ByaXZfZGF0YTsKICAgICBGRlZ1bGthbkRlY29kZVNoYXJlZCAqY3R4 ID0gZGVjLT5zaGFyZWRfY3R4OwogCiAgICAgSDI2NFBpY3R1cmUgKnBpYyA9IGgtPmN1cl9waWNf cHRyOwotICAgIEgyNjRWdWxrYW5EZWNvZGVQaWN0dXJlICpocCA9IHBpYy0+aHdhY2NlbF9waWN0 dXJlX3ByaXZhdGU7Ci0gICAgRkZWdWxrYW5EZWNvZGVQaWN0dXJlICp2cCA9ICZocC0+dnA7Cisg ICAgRkZWdWxrYW5EZWNvZGVQaWN0dXJlICp2cCA9IHBpYy0+aHdhY2NlbF9waWN0dXJlX3ByaXZh dGU7CiAgICAgRkZWdWxrYW5EZWNvZGVQaWN0dXJlICpydnBbSDI2NF9NQVhfUElDVFVSRV9DT1VO VF0gPSB7IDAgfTsKICAgICBBVkZyYW1lICpyYXZbSDI2NF9NQVhfUElDVFVSRV9DT1VOVF0gPSB7 IDAgfTsKIAotI2lmZGVmIFZLX0tIUl92aWRlb19tYWludGVuYW5jZTIKLSAgICBTdGRWaWRlb0gy NjRTY2FsaW5nTGlzdHMgdmtzcHNfc2NhbGluZzsKLSAgICBTdGRWaWRlb0gyNjRIcmRQYXJhbWV0 ZXJzIHZrc3BzX3Z1aV9oZWFkZXI7Ci0gICAgU3RkVmlkZW9IMjY0U2VxdWVuY2VQYXJhbWV0ZXJT ZXRWdWkgdmtzcHNfdnVpOwotICAgIFN0ZFZpZGVvSDI2NFNlcXVlbmNlUGFyYW1ldGVyU2V0IHZr c3BzOwotICAgIFN0ZFZpZGVvSDI2NFNjYWxpbmdMaXN0cyB2a3Bwc19zY2FsaW5nOwotICAgIFN0 ZFZpZGVvSDI2NFBpY3R1cmVQYXJhbWV0ZXJTZXQgdmtwcHM7Ci0gICAgVmtWaWRlb0RlY29kZUgy NjRJbmxpbmVTZXNzaW9uUGFyYW1ldGVyc0luZm9LSFIgaDI2NF9wYXJhbXM7CisgICAgSDI2NFZ1 bGthbkRlY29kZVBhcmFtcyBocCA9IHsgMCB9OworCisgICAgaWYgKCF2cC0+bmJfc2xpY2VzKQor ICAgICAgICByZXR1cm4gMDsKKworICAgIGVyciA9IHZrX2gyNjRfZmlsbF9wYXJhbXMoYXZjdHgs IHZwLCAmaHApOworICAgIGlmIChlcnIgPCAwKQorICAgICAgICByZXR1cm4gZXJyOwogCisjaWZk ZWYgVktfS0hSX3ZpZGVvX21haW50ZW5hbmNlMgogICAgIGlmIChjdHgtPnMuZXh0ZW5zaW9ucyAm IEZGX1ZLX0VYVF9WSURFT19NQUlOVEVOQU5DRV8yKSB7Ci0gICAgICAgIHNldF9zcHMoaC0+cHMu c3BzLCAmdmtzcHNfc2NhbGluZywKLSAgICAgICAgICAgICAgICAmdmtzcHNfdnVpX2hlYWRlciwg JnZrc3BzX3Z1aSwgJnZrc3BzKTsKLSAgICAgICAgc2V0X3BwcyhoLT5wcy5wcHMsIGgtPnBzLnNw cywgJnZrcHBzX3NjYWxpbmcsICZ2a3Bwcyk7Ci0gICAgICAgIGgyNjRfcGFyYW1zID0gKFZrVmlk ZW9EZWNvZGVIMjY0SW5saW5lU2Vzc2lvblBhcmFtZXRlcnNJbmZvS0hSKSB7CisgICAgICAgIHNl dF9zcHMoaC0+cHMuc3BzLCAmaHAudmtzcHNfc2NhbGluZywKKyAgICAgICAgICAgICAgICAmaHAu dmtzcHNfdnVpX2hlYWRlciwgJmhwLnZrc3BzX3Z1aSwgJmhwLnZrc3BzKTsKKyAgICAgICAgc2V0 X3BwcyhoLT5wcy5wcHMsIGgtPnBzLnNwcywgJmhwLnZrcHBzX3NjYWxpbmcsICZocC52a3Bwcyk7 CisgICAgICAgIGhwLmgyNjRfcGFyYW1zID0gKFZrVmlkZW9EZWNvZGVIMjY0SW5saW5lU2Vzc2lv blBhcmFtZXRlcnNJbmZvS0hSKSB7CiAgICAgICAgICAgICAuc1R5cGUgPSBWS19TVFJVQ1RVUkVf VFlQRV9WSURFT19ERUNPREVfSDI2NF9JTkxJTkVfU0VTU0lPTl9QQVJBTUVURVJTX0lORk9fS0hS LAotICAgICAgICAgICAgLnBTdGRTUFMgPSAmdmtzcHMsCi0gICAgICAgICAgICAucFN0ZFBQUyA9 ICZ2a3BwcywKKyAgICAgICAgICAgIC5wU3RkU1BTID0gJmhwLnZrc3BzLAorICAgICAgICAgICAg LnBTdGRQUFMgPSAmaHAudmtwcHMsCiAgICAgICAgIH07Ci0gICAgICAgIGhwLT5oMjY0X3BpY19p bmZvLnBOZXh0ID0gJmgyNjRfcGFyYW1zOwotICAgIH0KKyAgICAgICAgaHAuaDI2NF9waWNfaW5m by5wTmV4dCA9ICZocC5oMjY0X3BhcmFtczsKKyAgICB9IGVsc2UKICNlbmRpZgogCi0gICAgaHAt PmgyNjRfcGljX2luZm8ucFNsaWNlT2Zmc2V0cyA9IHZwLT5zbGljZV9vZmZzZXRzOwotICAgIGhw LT5oMjY0X3BpY19pbmZvLnNsaWNlQ291bnQgPSB2cC0+bmJfc2xpY2VzOwotICAgIGlmICghaHAt PmgyNjRfcGljX2luZm8uc2xpY2VDb3VudCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAo IWRlYy0+c2Vzc2lvbl9wYXJhbXMgJiYKLSAgICAgICAgIShjdHgtPnMuZXh0ZW5zaW9ucyAmIEZG X1ZLX0VYVF9WSURFT19NQUlOVEVOQU5DRV8yKSkgeworICAgIGlmICghZGVjLT5zZXNzaW9uX3Bh cmFtcykgewogICAgICAgICBpbnQgZXJyID0gdmtfaDI2NF9jcmVhdGVfcGFyYW1zKGF2Y3R4LCAm ZGVjLT5zZXNzaW9uX3BhcmFtcyk7CiAgICAgICAgIGlmIChlcnIgPCAwKQogICAgICAgICAgICAg cmV0dXJuIGVycjsKIAotICAgICAgICBocC0+aDI2NHBpYy5zZXFfcGFyYW1ldGVyX3NldF9pZCA9 IHBpYy0+cHBzLT5zcHNfaWQ7Ci0gICAgICAgIGhwLT5oMjY0cGljLnBpY19wYXJhbWV0ZXJfc2V0 X2lkID0gcGljLT5wcHMtPnBwc19pZDsKKyAgICAgICAgaHAuaDI2NHBpYy5zZXFfcGFyYW1ldGVy X3NldF9pZCA9IHBpYy0+cHBzLT5zcHNfaWQ7CisgICAgICAgIGhwLmgyNjRwaWMucGljX3BhcmFt ZXRlcl9zZXRfaWQgPSBwaWMtPnBwcy0+cHBzX2lkOwogICAgIH0KIAotICAgIGZvciAoaW50IGkg PSAwOyBpIDwgaHAtPmRlY29kZV9pbmZvLnJlZmVyZW5jZVNsb3RDb3VudDsgaSsrKSB7Ci0gICAg ICAgIEgyNjRQaWN0dXJlICpycCA9IGhwLT5yZWZfc3JjW2ldOwotICAgICAgICBIMjY0VnVsa2Fu RGVjb2RlUGljdHVyZSAqcmhwID0gcnAtPmh3YWNjZWxfcGljdHVyZV9wcml2YXRlOwotCi0gICAg ICAgIHJ2cFtpXSA9ICZyaHAtPnZwOwotICAgICAgICByYXZbaV0gPSBocC0+cmVmX3NyY1tpXS0+ ZjsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGhwLmRlY29kZV9pbmZvLnJlZmVyZW5jZVNsb3RD b3VudDsgaSsrKSB7CisgICAgICAgIEgyNjRQaWN0dXJlICpycCA9IGhwLnJlZl9zcmNbaV07Cisg ICAgICAgIHJ2cFtpXSA9IHJwLT5od2FjY2VsX3BpY3R1cmVfcHJpdmF0ZTsKKyAgICAgICAgcmF2 W2ldID0gaHAucmVmX3NyY1tpXS0+ZjsKICAgICB9CiAKICAgICBhdl9sb2coYXZjdHgsIEFWX0xP R19WRVJCT1NFLCAiRGVjb2RpbmcgZnJhbWUsICUiU0laRV9TUEVDSUZJRVIiIGJ5dGVzLCAlaSBz bGljZXNcbiIsCi0gICAgICAgICAgIHZwLT5zbGljZXNfc2l6ZSwgaHAtPmgyNjRfcGljX2luZm8u c2xpY2VDb3VudCk7CisgICAgICAgICAgIHZwLT5zbGljZXNfc2l6ZSwgaHAuaDI2NF9waWNfaW5m by5zbGljZUNvdW50KTsKIAotICAgIHJldHVybiBmZl92a19kZWNvZGVfZnJhbWUoYXZjdHgsICZo cC0+ZGVjb2RlX2luZm8sCisgICAgcmV0dXJuIGZmX3ZrX2RlY29kZV9mcmFtZShhdmN0eCwgJmhw LmRlY29kZV9pbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljLT5mLCB2cCwg cmF2LCBydnApOwogfQogCitzdGF0aWMgaW50IHZrX2gyNjRfZGVjb2RlX3NsaWNlKEFWQ29kZWND b250ZXh0ICphdmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWlu dDhfdCAgKmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAg ICAgICBzaXplKQoreworICAgIGNvbnN0IEgyNjRDb250ZXh0ICpoID0gYXZjdHgtPnByaXZfZGF0 YTsKKyAgICBjb25zdCBIMjY0U2xpY2VDb250ZXh0ICpzbCAgPSAmaC0+c2xpY2VfY3R4WzBdOwor ICAgIEZGVnVsa2FuRGVjb2RlUGljdHVyZSAqdnAgPSBoLT5jdXJfcGljX3B0ci0+aHdhY2NlbF9w aWN0dXJlX3ByaXZhdGU7CisKKyAgICBpbnQgZXJyID0gZmZfdmtfZGVjb2RlX2FkZF9zbGljZShh dmN0eCwgdnAsIGRhdGEsIHNpemUsIDEpOworICAgIGlmIChlcnIgPCAwKQorICAgICAgICByZXR1 cm4gZXJyOworCisgICAgLyogRnJhbWUgaXMgb25seSBpbnRyYSBvZiBhbGwgc2xpY2VzIGFyZSBt YXJrZWQgYXMgaW50cmEgKi8KKyAgICBpZiAoc2wtPnNsaWNlX3R5cGUgIT0gQVZfUElDVFVSRV9U WVBFX0kgJiYgc2wtPnNsaWNlX3R5cGUgIT0gQVZfUElDVFVSRV9UWVBFX1NJKQorICAgICAgICB2 cC0+aW50cmFfcGljX2ZsYWcgPSAwOworCisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyB2b2lk IHZrX2gyNjRfZnJlZV9mcmFtZV9wcml2KEFWUmVmU3RydWN0T3BhcXVlIF9od2N0eCwgdm9pZCAq ZGF0YSkKIHsKICAgICBBVkhXRGV2aWNlQ29udGV4dCAqaHdjdHggPSBfaHdjdHgubmM7Ci0gICAg SDI2NFZ1bGthbkRlY29kZVBpY3R1cmUgKmhwID0gZGF0YTsKKyAgICBGRlZ1bGthbkRlY29kZVBp Y3R1cmUgKnZwID0gZGF0YTsKIAogICAgIC8qIEZyZWUgZnJhbWUgcmVzb3VyY2VzLCB0aGlzIGFs c28gZGVzdHJveXMgdGhlIHNlc3Npb24gcGFyYW1ldGVycy4gKi8KLSAgICBmZl92a19kZWNvZGVf ZnJlZV9mcmFtZShod2N0eCwgJmhwLT52cCk7CisgICAgZmZfdmtfZGVjb2RlX2ZyZWVfZnJhbWUo aHdjdHgsIHZwKTsKIH0KIAogY29uc3QgRkZIV0FjY2VsIGZmX2gyNjRfdnVsa2FuX2h3YWNjZWwg PSB7CkBAIC01ODksNyArNTk1LDcgQEAgY29uc3QgRkZIV0FjY2VsIGZmX2gyNjRfdnVsa2FuX2h3 YWNjZWwgPSB7CiAgICAgLmRlY29kZV9zbGljZSAgICAgICAgICA9ICZ2a19oMjY0X2RlY29kZV9z bGljZSwKICAgICAuZW5kX2ZyYW1lICAgICAgICAgICAgID0gJnZrX2gyNjRfZW5kX2ZyYW1lLAog ICAgIC5mcmVlX2ZyYW1lX3ByaXYgICAgICAgPSAmdmtfaDI2NF9mcmVlX2ZyYW1lX3ByaXYsCi0g ICAgLmZyYW1lX3ByaXZfZGF0YV9zaXplICA9IHNpemVvZihIMjY0VnVsa2FuRGVjb2RlUGljdHVy ZSksCisgICAgLmZyYW1lX3ByaXZfZGF0YV9zaXplICA9IHNpemVvZihGRlZ1bGthbkRlY29kZVBp Y3R1cmUpLAogICAgIC5pbml0ICAgICAgICAgICAgICAgICAgPSAmZmZfdmtfZGVjb2RlX2luaXQs CiAgICAgLnVwZGF0ZV90aHJlYWRfY29udGV4dCA9ICZmZl92a191cGRhdGVfdGhyZWFkX2NvbnRl eHQsCiAgICAgLmRlY29kZV9wYXJhbXMgICAgICAgICA9ICZmZl92a19wYXJhbXNfaW52YWxpZGF0 ZSwKLS0gCjIuNDkuMApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0 dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJz Y3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZm bXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==