From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id eErqB/6OjGiuhwEAWB0awg (envelope-from ) for ; Fri, 01 Aug 2025 05:55:10 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=EengxJd9; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 1B4471E0C2; Fri, 1 Aug 2025 05:55:10 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-10.1 required=5.0 tests=ARC_SIGNED,ARC_VALID, BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED, RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE autolearn=ham autolearn_force=no version=4.0.1 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 3B6D51E102 for ; Fri, 1 Aug 2025 05:55:04 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C2E513858C31 for ; Fri, 1 Aug 2025 09:55:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C2E513858C31 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=EengxJd9 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) by sourceware.org (Postfix) with ESMTPS id BD41B385840E for ; Fri, 1 Aug 2025 09:39:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BD41B385840E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org BD41B385840E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=192.198.163.14 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1754041169; cv=none; b=kJ4IDnSPOtg3vSBqT13cE8UeP6QEv+zZjjyQLoT+AqEjTe40eRcENmG7yorn9YrJl+APmV5LFSBFeQ//YwOK+heLkSt78N0R4NMwEX49e6ym4raeHfb3iQgfwGETeCNlXNhR8PEs3brrZdke4Q7uik32Y+vk+GLqL1wlIpAqRdw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1754041169; c=relaxed/simple; bh=czSEOZLu1QR/9BT3I0DFiolvsSjcpRtSs+8byy2XiUU=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=GNw7FJusttG+iNTTvOHBClDV2lxFjdGO+rBy6K7Jlm9X3kZ/kTHEC0XmNvJ+hIAkYC7y3DRrXWjS2CkS1D6iX3BhnfL9cdB3hwrwSf9vc0ZDGH9moVsPXcGL49cMoO990VgyRJ2RYcvuMDQp224zJjrZ4xWpuvIuONAvk8A0ruE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BD41B385840E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754041168; x=1785577168; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=czSEOZLu1QR/9BT3I0DFiolvsSjcpRtSs+8byy2XiUU=; b=EengxJd9LRD5ekjznegnrja4cHj4NaHTaefQ7TGJ/ENtTc4VfiWdAWlA NPbGBADmXa0nGZ69ImEUIzV8jhOXEWGyjfwWYkHVKGVropxhz6E+9dGYq sDP315E0akbMiL1+Jv7Ovm1unP9draJ6ltFY8BlW3eOVHezNjXzWENiSj y7TQw5JVDfRS3RaxUCEP8RPH6DFP/hES5kKz/FIJ98mM8SRi7XkbfyjoF 3L1xdxoVx7ObM3+EfYQt5Bl6j0n0A3TATkw8mQwZVTYAwqKCha9rtZJ/u VXXed/hzHmLFom33iBMCBdu4pPGxruDcGscYAPtdnaYzrfZ/DLKnMAl8M g==; X-CSE-ConnectionGUID: 2N53uBCvRgyq2lB5Pum2kQ== X-CSE-MsgGUID: RcRfILkVRUSaJ73+acnGKw== X-IronPort-AV: E=McAfee;i="6800,10657,11508"; a="56465237" X-IronPort-AV: E=Sophos;i="6.17,255,1747724400"; d="scan'208";a="56465237" Received: from fmviesa002.fm.intel.com ([10.60.135.142]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Aug 2025 02:39:28 -0700 X-CSE-ConnectionGUID: 3T73LAsXSIOFil0cK57RxQ== X-CSE-MsgGUID: So53/9b7RyKg5xiMpV0F0g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,255,1747724400"; d="scan'208";a="187196785" Received: from gkldtt-dev-004.igk.intel.com (HELO localhost) ([10.123.221.202]) by fmviesa002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Aug 2025 02:39:27 -0700 From: Tankut Baris Aktemur To: gdb-patches@sourceware.org, Markus Metzger Subject: [PATCH v3 08/44] gdb, intelgt: add disassemble feature for the Intel GT architecture. Date: Fri, 1 Aug 2025 11:37:10 +0200 Message-Id: <20250801-upstream-intelgt-mvp-v3-8-59ce0f87075b@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250801-upstream-intelgt-mvp-v3-0-59ce0f87075b@intel.com> References: <20250801-upstream-intelgt-mvp-v3-0-59ce0f87075b@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 Content-Transfer-Encoding: base64 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org RnJvbTogQWxiZXJ0YW5vIENhcnVzbyA8YWxiZXJ0YW5vLmNhcnVzb0BpbnRlbC5jb20+CgpEaXNh c3NlbWJseSBvZiBJbnRlbCBHVCBwcm9ncmFtcyBpcyBkb25lIHZpYSB0aGUgSW50ZWwgR2VuIEFz c2VtYmxlcgpsaWJyYXJ5LiAgQWRkIHRoaXMgbGlicmFyeSBhcyBhbiBvcHRpb25hbCBkZXBlbmRl bmN5LiAgSWYgdGhlIGxpYnJhcnkKaXMgbm90IGZvdW5kLCBkaXNhc3NlbWJseSBpcyBkaXNhYmxl ZC4KLS0tCiBnZGIvTWFrZWZpbGUuaW4gICAgICAgIHwgICA2ICstCiBnZGIvUkVBRE1FICAgICAg ICAgICAgIHwgICA4ICsKIGdkYi9jb25maWcuaW4gICAgICAgICAgfCAgIDMgKwogZ2RiL2NvbmZp Z3VyZSAgICAgICAgICB8IDU1OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystCiBnZGIvY29uZmlndXJlLmFjICAgICAgIHwgIDUyICsrKysrCiBnZGIvZGlz YXNtLXNlbGZ0ZXN0cy5jIHwgIDEyICsrCiBnZGIvZG9jL2dkYi50ZXhpbmZvICAgIHwgICA1ICsK IGdkYi9pbnRlbGd0LXRkZXAuYyAgICAgfCAxMTMgKysrKysrKysrLQogZ2RiL3RvcC5jICAgICAg ICAgICAgICB8ICAxMCArCiA5IGZpbGVzIGNoYW5nZWQsIDc2NCBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5p bgppbmRleCBhNmYzMmI1YzAyODc3NTkyZmYzMDcyYTQzMWI3ZTIyOWUwMzFlYmRlLi44OWU2MTNl NzA1OTYzMjYxOTA2ZmIzYmRhYTVhMzQwMGIyZTYxOGU2IDEwMDY0NAotLS0gYS9nZGIvTWFrZWZp bGUuaW4KKysrIGIvZ2RiL01ha2VmaWxlLmluCkBAIC0yNTAsNiArMjUwLDEwIEBAIENPREVTSUdO X0NFUlQgPSBAQ09ERVNJR05fQ0VSVEAKICMgRmxhZ3MgdG8gcGFzcyB0byBnZGIgd2hlbiBpbnZv a2VkIHdpdGggIm1ha2UgcnVuIi4KIEdEQkZMQUdTID0KIAorIyBXaGVyZSBpcyBsaWJpZ2EgKGku ZS4gIHRoZSBkaXNhc3NlbWJsZXIgbGliIGZvciB0aGUgaW50ZWxndCB0YXJnZXQpPworIyBUaGlz IHdpbGwgYmUgZW1wdHkgaWYgbGliaWdhIHdhcyBub3QgYXZhaWxhYmxlLgorTElCSUdBID0gQExJ QklHQTY0QAorCiAjIEhlbHBlciBjb2RlIGZyb20gZ251bGliLgogR05VTElCX1BBUkVOVF9ESVIg PSAuLgogaW5jbHVkZSAkKEdOVUxJQl9QQVJFTlRfRElSKS9nbnVsaWIvTWFrZWZpbGUuZ251bGli LmluYwpAQCAtNjg0LDcgKzY4OCw3IEBAIENMSUJTID0gJChTSU0pICQoUkVBRExJTkUpICQoT1BD T0RFUykgJChMSUJDVEYpICQoQkZEKSAkKFpMSUIpICQoWlNURF9MSUJTKSBcCiAJJChMSUJFWFBB VCkgJChMSUJMWk1BKSAkKExJQkJBQkVMVFJBQ0UpICQoTElCSVBUKSBcCiAJJChXSU4zMkxJQlMp ICQoTElCR05VKSAkKExJQkdOVV9FWFRSQV9MSUJTKSAkKExJQklDT05WKSBcCiAJJChHTVBMSUJT KSAkKFNSQ0hJR0hfTElCUykgJChMSUJYWEhBU0gpICQoUFRIUkVBRF9MSUJTKSBcCi0JJChERUJV R0lORk9EX0xJQlMpICQoTElCQkFCRUxUUkFDRV9MSUIpCisJJChERUJVR0lORk9EX0xJQlMpICQo TElCQkFCRUxUUkFDRV9MSUIpICQoTElCSUdBKQogQ0RFUFMgPSAkKE5BVF9DREVQUykgJChTSU0p ICQoQkZEKSAkKFJFQURMSU5FX0RFUFMpICQoQ1RGX0RFUFMpIFwKIAkkKE9QQ09ERVMpICQoSU5U TF9ERVBTKSAkKExJQklCRVJUWSkgJChDT05GSUdfREVQUykgJChMSUJHTlUpIFwKIAkkKExJQlNV UFBPUlQpCmRpZmYgLS1naXQgYS9nZGIvUkVBRE1FIGIvZ2RiL1JFQURNRQppbmRleCBlY2E0MTgx Yzc1MWViM2ZmNzRkYWU1MDVlOThlZDI4MjZlYmYyZjI3Li45ZjExOTJmNTkxOTY3ZTgxYTdkYzE1 NWY1YTRjZWMxZThhODljYjlmIDEwMDY0NAotLS0gYS9nZGIvUkVBRE1FCisrKyBiL2dkYi9SRUFE TUUKQEAgLTUwMCw2ICs1MDAsMTQgQEAgbW9yZSBvYnNjdXJlIEdEQiBgY29uZmlndXJlJyBvcHRp b25zIGFyZSBub3QgbGlzdGVkIGhlcmUuCiAgICAgIHRoZSBvdmVyYWxsIGJ1aWxkLiAgU2VlIHRo ZSBHREIgbWFudWFsIGluc3RydWN0aW9ucyBvbiBob3cgdG8gZG8KICAgICAgdGhpcy4KIAorYC0t d2l0aC1saWJpZ2E2NGAKKyAgICAgQnVpbGQgR0RCIHdpdGggSW50ZWwgR2VuIEFzc2VtYmxlciAo SUdBKSBsaWJyYXJ5LiAgSWYgcmVxdWVzdGVkIGFuZAorICAgICB0aGUgSW50ZWxHVCB0YXJnZXQg aXMgZW5hYmxlZCBidXQgdGhlIGxpYnJhcnkgY2Fubm90IGJlIGZvdW5kLAorICAgICBjb25maWd1 cmUgZ2l2ZXMgYW4gZXJyb3IuICBJZiBub3QgcmVxdWVzdGVkIGV4cGxpY2l0bHkgYW5kIGNhbm5v dAorICAgICBiZSBmb3VuZCwgZGlzYXNzZW1ibHkgZmVhdHVyZSBmb3IgdGhlIEludGVsR1QgdGFy Z2V0IHdpbGwgbm90IGJlCisgICAgIGF2YWlsYWJsZSBpbiBHREIuICBJR0EgaXMgYXZhaWxhYmxl IGFzIHBhcnQgb2YgdGhlIEludGVsIEdyYXBoaWNzCisgICAgIENvbXBpbGVyOiBgaHR0cHM6Ly9n aXRodWIuY29tL2ludGVsL2ludGVsLWdyYXBoaWNzLWNvbXBpbGVyYAorCiBgLS13aXRoLWx6bWEn CiAgICAgIEJ1aWxkIEdEQiB3aXRoIExaTUEsIGEgY29tcHJlc3Npb24gbGlicmFyeS4gIChEb25l IGJ5IGRlZmF1bHQgaWYKICAgICAgbGlibHptYSBpcyBpbnN0YWxsZWQgYW5kIGZvdW5kIGF0IGNv bmZpZ3VyZSB0aW1lLikgIExaTUEgaXMgdXNlZApkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZy5pbiBi L2dkYi9jb25maWcuaW4KaW5kZXggMTQ5YWVhZjk3OWJhZmU0ZWI4MjQ4ZDliYTBiZGVmZTEzYTc2 MWRlOC4uMTAzZmNmOGU4YmMwNDRlNGM3MmFlMzA0NmEwZDg0NDkxZjc4ODQ1ZiAxMDA2NDQKLS0t IGEvZ2RiL2NvbmZpZy5pbgorKysgYi9nZGIvY29uZmlnLmluCkBAIC0yODMsNiArMjgzLDkgQEAK IC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbGliaWNvbnZsaXN0JyBmdW5jdGlvbi4g Ki8KICN1bmRlZiBIQVZFX0xJQklDT05WTElTVAogCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhl IGlnYTY0IGxpYnJhcnkuICovCisjdW5kZWYgSEFWRV9MSUJJR0E2NAorCiAvKiBEZWZpbmUgaWYg eW91IGhhdmUgdGhlIGlwdCBsaWJyYXJ5LiAqLwogI3VuZGVmIEhBVkVfTElCSVBUCiAKZGlmZiAt LWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCmluZGV4IDhmYzNiMDRlZmJmYzIz MjNjMWJjOTY5MGE5ZWM3YjEwNDQyZWQ1YjEuLmI0MTIwZjRlZWZiZTUyN2MxYjhkMmFjMDk3ODMy N2UyYmI5YTY4NTEgMTAwNzU1Ci0tLSBhL2dkYi9jb25maWd1cmUKKysrIGIvZ2RiL2NvbmZpZ3Vy ZQpAQCAtNzE0LDYgKzcxNCw5IEBAIFNZU1RFTV9HREJJTklUCiBUQVJHRVRfU1lTVEVNX1JPT1QK IENPTkZJR19MREZMQUdTCiBSRFlOQU1JQworTFRMSUJJR0E2NAorTElCSUdBNjQKK0hBVkVfTElC SUdBNjQKIFNSQ0hJR0hfQ0ZMQUdTCiBTUkNISUdIX0xJQlMKIEhBVkVfR1VJTEVfRkFMU0UKQEAg LTk1Nyw2ICs5NjAsOSBAQCB3aXRoX3B5dGhvbl9saWJkaXIKIHdpdGhfZ3VpbGUKIGVuYWJsZV9n ZGJfY29tcGlsZQogZW5hYmxlX3NvdXJjZV9oaWdobGlnaHQKK3dpdGhfbGliaWdhNjQKK3dpdGhf bGliaWdhNjRfcHJlZml4Cit3aXRoX2xpYmlnYTY0X3R5cGUKIHdpdGhfc3lzcm9vdAogd2l0aF9z eXN0ZW1fZ2RiaW5pdAogd2l0aF9zeXN0ZW1fZ2RiaW5pdF9kaXIKQEAgLTE3MzYsNiArMTc0Miwx MCBAQCBPcHRpb25hbCBQYWNrYWdlczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNo IGZvciBweXRob24ncyBsaWJyYXJpZXMgaW4gRElSCiAgIC0td2l0aC1ndWlsZVs9R1VJTEVdICAg IGluY2x1ZGUgZ3VpbGUgc3VwcG9ydAogICAgICAgICAgICAgICAgICAgICAgICAgICAoYXV0by95 ZXMvbm8vPGd1aWxlLXZlcnNpb24+Lzxwa2ctY29uZmlnLXByb2dyYW0+KQorICAtLXdpdGgtbGli aWdhNjQgICAgICAgICBpbmNsdWRlIEludGVsR1QgZGlzYXNzZW1ibHkgc3VwcG9ydCAoYXV0by95 ZXMvbm8pCisgIC0td2l0aC1saWJpZ2E2NC1wcmVmaXhbPURJUl0gIHNlYXJjaCBmb3IgbGliaWdh NjQgaW4gRElSL2luY2x1ZGUgYW5kIERJUi9saWIKKyAgLS13aXRob3V0LWxpYmlnYTY0LXByZWZp eCAgICAgZG9uJ3Qgc2VhcmNoIGZvciBsaWJpZ2E2NCBpbiBpbmNsdWRlZGlyIGFuZCBsaWJkaXIK KyAgLS13aXRoLWxpYmlnYTY0LXR5cGU9VFlQRSAgICAgdHlwZSBvZiBsaWJyYXJ5IHRvIHNlYXJj aCBmb3IgKGF1dG8vc3RhdGljL3NoYXJlZCkKICAgLS13aXRoLXN5c3Jvb3RbPURJUl0gICAgc2Vh cmNoIGZvciB1c3IvbGliIGV0IGFsIHdpdGhpbiBESVIKICAgLS13aXRoLXN5c3RlbS1nZGJpbml0 PVBBVEgKICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b21hdGljYWxseSBsb2FkIGEgc3lz dGVtLXdpZGUgZ2RiaW5pdCBmaWxlCkBAIC0xMTUwNyw3ICsxMTUxNyw3IEBAIGVsc2UKICAgbHRf ZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgogICBsdF9z dGF0dXM9JGx0X2RsdW5rbm93bgogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgot I2xpbmUgMTE1MTAgImNvbmZpZ3VyZSIKKyNsaW5lIDExNTIwICJjb25maWd1cmUiCiAjaW5jbHVk ZSAiY29uZmRlZnMuaCIKIAogI2lmIEhBVkVfRExGQ05fSApAQCAtMTE2MTMsNyArMTE2MjMsNyBA QCBlbHNlCiAgIGx0X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29yZT0xOyBsdF9kbG5lZWRfdXNj b3JlPTIKICAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4 dCA8PF9MVF9FT0YKLSNsaW5lIDExNjE2ICJjb25maWd1cmUiCisjbGluZSAxMTYyNiAiY29uZmln dXJlIgogI2luY2x1ZGUgImNvbmZkZWZzLmgiCiAKICNpZiBIQVZFX0RMRkNOX0gKQEAgLTI5MTQ2 LDYgKzI5MTU2LDU1MSBAQCBmaQogCiAKIAorIyBDaGVjayBmb3IgSW50ZWwoUikgR3JhcGhpY3Mg VGVjaG5vbG9neSBhc3NlbWJsZXIgbGlicmFyeQoraW50ZWxndF90YXJnZXQ9ZmFsc2UKKworZm9y IHRhcmdfYWxpYXMgaW4gYGVjaG8gJHRhcmdldF9hbGlhcyAkZW5hYmxlX3RhcmdldHMgfCBzZWQg J3MvLC8gL2cnYAorZG8KKyAgaWYgdGVzdCAiJHRhcmdfYWxpYXMiID0gImFsbCI7IHRoZW4KKyAg ICBpbnRlbGd0X3RhcmdldD10cnVlCisgIGVsc2UKKyAgICBjYXNlICIkdGFyZ19hbGlhcyIgaW4K KyAgICAgIGludGVsZ3QtKikKKyAgICAgICAgaW50ZWxndF90YXJnZXQ9dHJ1ZQorICAgICAgICA7 OworICAgIGVzYWMKKyAgZmkKK2RvbmUKKworY2FzZSAiJHt0YXJnZXR9IiBpbgorICBpbnRlbGd0 LSopCisgICAgaW50ZWxndF90YXJnZXQ9dHJ1ZQorICAgIDs7Citlc2FjCisKK2lmIHRlc3QgIiR7 aW50ZWxndF90YXJnZXR9IiAhPSB0cnVlOyB0aGVuCisgIEhBVkVfTElCSUdBNjQ9bm8KK2Vsc2UK KworIyBDaGVjayB3aGV0aGVyIC0td2l0aC1saWJpZ2E2NCB3YXMgZ2l2ZW4uCitpZiB0ZXN0ICIk e3dpdGhfbGliaWdhNjQrc2V0fSIgPSBzZXQ7IHRoZW4gOgorICB3aXRodmFsPSR3aXRoX2xpYmln YTY0OworZWxzZQorICB3aXRoX2xpYmlnYTY0PWF1dG8KK2ZpCisKKyAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRvIHVzZSBsaWJpZ2E2 NCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRvIHVzZSBsaWJpZ2E2NC4uLiAi ID4mNjsgfQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogJHdpdGhfbGliaWdhNjQiID4mNQorJGFzX2VjaG8gIiR3aXRoX2xpYmlnYTY0IiA+JjY7IH0K KworICBpZiB0ZXN0ICIke3dpdGhfbGliaWdhNjR9IiA9IG5vOyB0aGVuCisgICAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBJbnRlbEdUIGRpc2Fzc2Vt Ymx5IHN1cHBvcnQgZGlzYWJsZWQ7IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLiIg PiY1CiskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBJbnRlbEdUIGRpc2Fzc2VtYmx5IHN1cHBv cnQgZGlzYWJsZWQ7IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLiIgPiYyO30KKyAg ICBIQVZFX0xJQklHQTY0PW5vCisgIGVsc2UKKyAgICBhY19leHQ9Y3BwCithY19jcHA9JyRDWFhD UFAgJENQUEZMQUdTJworYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JworYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQg JENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK K2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorCisKKworCisKKworCisK KworICAgIHVzZV9hZGRpdGlvbmFsPXllcworCisgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIK KyAgcHJlZml4PSIkYWNsX2ZpbmFsX3ByZWZpeCIKKyAgYWNsX3NhdmVfZXhlY19wcmVmaXg9IiRl eGVjX3ByZWZpeCIKKyAgZXhlY19wcmVmaXg9IiRhY2xfZmluYWxfZXhlY19wcmVmaXgiCisKKyAg ICBldmFsIGFkZGl0aW9uYWxfaW5jbHVkZWRpcj1cIiRpbmNsdWRlZGlyXCIKKyAgICBldmFsIGFk ZGl0aW9uYWxfbGliZGlyPVwiJGxpYmRpclwiCisKKyAgZXhlY19wcmVmaXg9IiRhY2xfc2F2ZV9l eGVjX3ByZWZpeCIKKyAgcHJlZml4PSIkYWNsX3NhdmVfcHJlZml4IgorCisKKyMgQ2hlY2sgd2hl dGhlciAtLXdpdGgtbGliaWdhNjQtcHJlZml4IHdhcyBnaXZlbi4KK2lmIHRlc3QgIiR7d2l0aF9s aWJpZ2E2NF9wcmVmaXgrc2V0fSIgPSBzZXQ7IHRoZW4gOgorICB3aXRodmFsPSR3aXRoX2xpYmln YTY0X3ByZWZpeDsKKyAgICBpZiB0ZXN0ICJYJHdpdGh2YWwiID0gIlhubyI7IHRoZW4KKyAgICAg IHVzZV9hZGRpdGlvbmFsPW5vCisgICAgZWxzZQorICAgICAgaWYgdGVzdCAiWCR3aXRodmFsIiA9 ICJYIjsgdGhlbgorCisgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKKyAgcHJlZml4PSIkYWNs X2ZpbmFsX3ByZWZpeCIKKyAgYWNsX3NhdmVfZXhlY19wcmVmaXg9IiRleGVjX3ByZWZpeCIKKyAg ZXhlY19wcmVmaXg9IiRhY2xfZmluYWxfZXhlY19wcmVmaXgiCisKKyAgICAgICAgICBldmFsIGFk ZGl0aW9uYWxfaW5jbHVkZWRpcj1cIiRpbmNsdWRlZGlyXCIKKyAgICAgICAgICBldmFsIGFkZGl0 aW9uYWxfbGliZGlyPVwiJGxpYmRpclwiCisKKyAgZXhlY19wcmVmaXg9IiRhY2xfc2F2ZV9leGVj X3ByZWZpeCIKKyAgcHJlZml4PSIkYWNsX3NhdmVfcHJlZml4IgorCisgICAgICBlbHNlCisgICAg ICAgIGFkZGl0aW9uYWxfaW5jbHVkZWRpcj0iJHdpdGh2YWwvaW5jbHVkZSIKKyAgICAgICAgYWRk aXRpb25hbF9saWJkaXI9IiR3aXRodmFsL2xpYiIKKyAgICAgIGZpCisgICAgZmkKKworZmkKKwor CisjIENoZWNrIHdoZXRoZXIgLS13aXRoLWxpYmlnYTY0LXR5cGUgd2FzIGdpdmVuLgoraWYgdGVz dCAiJHt3aXRoX2xpYmlnYTY0X3R5cGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgorICB3aXRodmFsPSR3 aXRoX2xpYmlnYTY0X3R5cGU7ICB3aXRoX2xpYmlnYTY0X3R5cGU9JHdpdGh2YWwKK2Vsc2UKKyAg IHdpdGhfbGliaWdhNjRfdHlwZT1hdXRvCitmaQorCisgIGxpYl90eXBlPWBldmFsIGVjaG8gXCR3 aXRoX2xpYmlnYTY0X3R5cGVgCisKKyAgICAgIExJQklHQTY0PQorICBMVExJQklHQTY0PQorICBJ TkNJR0E2ND0KKyAgcnBhdGhkaXJzPQorICBsdHJwYXRoZGlycz0KKyAgbmFtZXNfYWxyZWFkeV9o YW5kbGVkPQorICBuYW1lc19uZXh0X3JvdW5kPSdpZ2E2NCAnCisgIHdoaWxlIHRlc3QgLW4gIiRu YW1lc19uZXh0X3JvdW5kIjsgZG8KKyAgICBuYW1lc190aGlzX3JvdW5kPSIkbmFtZXNfbmV4dF9y b3VuZCIKKyAgICBuYW1lc19uZXh0X3JvdW5kPQorICAgIGZvciBuYW1lIGluICRuYW1lc190aGlz X3JvdW5kOyBkbworICAgICAgYWxyZWFkeV9oYW5kbGVkPQorICAgICAgZm9yIG4gaW4gJG5hbWVz X2FscmVhZHlfaGFuZGxlZDsgZG8KKyAgICAgICAgaWYgdGVzdCAiJG4iID0gIiRuYW1lIjsgdGhl bgorICAgICAgICAgIGFscmVhZHlfaGFuZGxlZD15ZXMKKyAgICAgICAgICBicmVhaworICAgICAg ICBmaQorICAgICAgZG9uZQorICAgICAgaWYgdGVzdCAteiAiJGFscmVhZHlfaGFuZGxlZCI7IHRo ZW4KKyAgICAgICAgbmFtZXNfYWxyZWFkeV9oYW5kbGVkPSIkbmFtZXNfYWxyZWFkeV9oYW5kbGVk ICRuYW1lIgorICAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJuYW1lPWBlY2hvICIkbmFtZSIg fCBzZWQgLWUgJ3l8YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXouLy18QUJDREVGR0hJSktMTU5P UFFSU1RVVldYWVpfX198J2AKKyAgICAgICAgZXZhbCB2YWx1ZT1cIlwkSEFWRV9MSUIkdXBwZXJu YW1lXCIKKyAgICAgICAgaWYgdGVzdCAtbiAiJHZhbHVlIjsgdGhlbgorICAgICAgICAgIGlmIHRl c3QgIiR2YWx1ZSIgPSB5ZXM7IHRoZW4KKyAgICAgICAgICAgIGV2YWwgdmFsdWU9XCJcJExJQiR1 cHBlcm5hbWVcIgorICAgICAgICAgICAgdGVzdCAteiAiJHZhbHVlIiB8fCBMSUJJR0E2ND0iJHtM SUJJR0E2NH0ke0xJQklHQTY0OisgfSR2YWx1ZSIKKyAgICAgICAgICAgIGV2YWwgdmFsdWU9XCJc JExUTElCJHVwcGVybmFtZVwiCisgICAgICAgICAgICB0ZXN0IC16ICIkdmFsdWUiIHx8IExUTElC SUdBNjQ9IiR7TFRMSUJJR0E2NH0ke0xUTElCSUdBNjQ6KyB9JHZhbHVlIgorICAgICAgICAgIGVs c2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoKKyAgICAgICAgICBmaQor ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZF9kaXI9Cisg ICAgICAgICAgZm91bmRfbGE9CisgICAgICAgICAgZm91bmRfc289CisgICAgICAgICAgZm91bmRf YT0KKyAgICAgICAgICBpZiB0ZXN0ICR1c2VfYWRkaXRpb25hbCA9IHllczsgdGhlbgorICAgICAg ICAgICAgaWYgdGVzdCAtbiAiJHNobGliZXh0IiAmJiB0ZXN0IC1mICIkYWRkaXRpb25hbF9saWJk aXIvbGliJG5hbWUuJHNobGliZXh0IiAmJiB0ZXN0IHgkbGliX3R5cGUgIT0geHN0YXRpYzsgdGhl bgorICAgICAgICAgICAgICBmb3VuZF9kaXI9IiRhZGRpdGlvbmFsX2xpYmRpciIKKyAgICAgICAg ICAgICAgZm91bmRfc289IiRhZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS4kc2hsaWJleHQiCisg ICAgICAgICAgICAgIGlmIHRlc3QgLWYgIiRhZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS5sYSI7 IHRoZW4KKyAgICAgICAgICAgICAgICBmb3VuZF9sYT0iJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRu YW1lLmxhIgorICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZWxpZiB0ZXN0IHgkbGliX3R5 cGUgIT0geHNoYXJlZDsgdGhlbgorICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkYWRkaXRpb25h bF9saWJkaXIvbGliJG5hbWUuJGxpYmV4dCI7IHRoZW4KKyAgICAgICAgICAgICAgICBmb3VuZF9k aXI9IiRhZGRpdGlvbmFsX2xpYmRpciIKKyAgICAgICAgICAgICAgICBmb3VuZF9hPSIkYWRkaXRp b25hbF9saWJkaXIvbGliJG5hbWUuJGxpYmV4dCIKKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1m ICIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUubGEiOyB0aGVuCisgICAgICAgICAgICAgICAg ICBmb3VuZF9sYT0iJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLmxhIgorICAgICAgICAgICAg ICAgIGZpCisgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICBmaQorICAgICAgICAgIGZpCisg ICAgICAgICAgaWYgdGVzdCAiWCRmb3VuZF9kaXIiID0gIlgiOyB0aGVuCisgICAgICAgICAgICBm b3IgeCBpbiAkTERGTEFHUyAkTFRMSUJJR0E2NDsgZG8KKworICBhY2xfc2F2ZV9wcmVmaXg9IiRw cmVmaXgiCisgIHByZWZpeD0iJGFjbF9maW5hbF9wcmVmaXgiCisgIGFjbF9zYXZlX2V4ZWNfcHJl Zml4PSIkZXhlY19wcmVmaXgiCisgIGV4ZWNfcHJlZml4PSIkYWNsX2ZpbmFsX2V4ZWNfcHJlZml4 IgorICBldmFsIHg9XCIkeFwiCisgIGV4ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgi CisgIHByZWZpeD0iJGFjbF9zYXZlX3ByZWZpeCIKKworICAgICAgICAgICAgICBjYXNlICIkeCIg aW4KKyAgICAgICAgICAgICAgICAtTCopCisgICAgICAgICAgICAgICAgICBkaXI9YGVjaG8gIlgk eCIgfCBzZWQgLWUgJ3MvXlgtTC8vJ2AKKyAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRz aGxpYmV4dCIgJiYgdGVzdCAtZiAiJGRpci9saWIkbmFtZS4kc2hsaWJleHQiICYmIHRlc3QgeCRs aWJfdHlwZSAhPSB4c3RhdGljOyB0aGVuCisgICAgICAgICAgICAgICAgICAgIGZvdW5kX2Rpcj0i JGRpciIKKyAgICAgICAgICAgICAgICAgICAgZm91bmRfc289IiRkaXIvbGliJG5hbWUuJHNobGli ZXh0IgorICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkZGlyL2xpYiRuYW1lLmxhIjsg dGhlbgorICAgICAgICAgICAgICAgICAgICAgIGZvdW5kX2xhPSIkZGlyL2xpYiRuYW1lLmxhIgor ICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgZWxpZiB0ZXN0IHgkbGli X3R5cGUgIT0geHNoYXJlZDsgdGhlbgorICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIk ZGlyL2xpYiRuYW1lLiRsaWJleHQiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgZm91bmRf ZGlyPSIkZGlyIgorICAgICAgICAgICAgICAgICAgICAgIGZvdW5kX2E9IiRkaXIvbGliJG5hbWUu JGxpYmV4dCIKKyAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkZGlyL2xpYiRuYW1l LmxhIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRfbGE9IiRkaXIvbGliJG5h bWUubGEiCisgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgZmkK KyAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAg ICBlc2FjCisgICAgICAgICAgICAgIGlmIHRlc3QgIlgkZm91bmRfZGlyIiAhPSAiWCI7IHRoZW4K KyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZG9u ZQorICAgICAgICAgIGZpCisgICAgICAgICAgaWYgdGVzdCAiWCRmb3VuZF9kaXIiICE9ICJYIjsg dGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgTFRMSUJJR0E2ND0iJHtMVExJQklHQTY0fSR7 TFRMSUJJR0E2NDorIH0tTCRmb3VuZF9kaXIgLWwkbmFtZSIKKyAgICAgICAgICAgIGlmIHRlc3Qg IlgkZm91bmRfc28iICE9ICJYIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICIkZW5hYmxlX3JwYXRoIiA9IG5vIHx8 IHRlc3QgIlgkZm91bmRfZGlyIiA9ICJYL3Vzci9saWIiOyB0aGVuCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExJQklHQTY0PSIke0xJQklHQTY0fSR7TElCSUdBNjQ6KyB9JGZvdW5k X3NvIgorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0K KyAgICAgICAgICAgICAgICBmb3IgeCBpbiAkbHRycGF0aGRpcnM7IGRvCisgICAgICAgICAgICAg ICAgICBpZiB0ZXN0ICJYJHgiID0gIlgkZm91bmRfZGlyIjsgdGhlbgorICAgICAgICAgICAgICAg ICAgICBoYXZlaXQ9eWVzCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAg ICAgICBmaQorICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC16 ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgbHRycGF0aGRpcnM9IiRsdHJwYXRo ZGlycyAkZm91bmRfZGlyIgorICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiID0geWVzOyB0aGVuCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJJR0E2 ND0iJHtMSUJJR0E2NH0ke0xJQklHQTY0OisgfSRmb3VuZF9zbyIKKyAgICAgICAgICAgICAgICBl bHNlCisgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYyIgJiYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0gbm87IHRoZW4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQklHQTY0 PSIke0xJQklHQTY0fSR7TElCSUdBNjQ6KyB9JGZvdW5kX3NvIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAg ICAgICAgICAgICAgICBmb3IgeCBpbiAkcnBhdGhkaXJzOyBkbworICAgICAgICAgICAgICAgICAg ICAgIGlmIHRlc3QgIlgkeCIgPSAiWCRmb3VuZF9kaXIiOyB0aGVuCisgICAgICAgICAgICAgICAg ICAgICAgICBoYXZlaXQ9eWVzCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAg ICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAg ICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAg ICBycGF0aGRpcnM9IiRycGF0aGRpcnMgJGZvdW5kX2RpciIKKyAgICAgICAgICAgICAgICAgICAg ZmkKKyAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0 PQorICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkTERGTEFHUyAkTElCSUdBNjQ7IGRvCisK KyAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorICBwcmVmaXg9IiRhY2xfZmluYWxfcHJlZml4 IgorICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4IgorICBleGVjX3ByZWZpeD0i JGFjbF9maW5hbF9leGVjX3ByZWZpeCIKKyAgZXZhbCB4PVwiJHhcIgorICBleGVjX3ByZWZpeD0i JGFjbF9zYXZlX2V4ZWNfcHJlZml4IgorICBwcmVmaXg9IiRhY2xfc2F2ZV9wcmVmaXgiCisKKyAg ICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgtTCRmb3VuZF9kaXIiOyB0aGVu CisgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCisgICAgICAgICAgICAgICAgICAg ICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAg IGRvbmUKKyAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAg ICAgICAgICAgICAgICAgICAgICBMSUJJR0E2ND0iJHtMSUJJR0E2NH0ke0xJQklHQTY0OisgfS1M JGZvdW5kX2RpciIKKyAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAg aWYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiICE9IG5vOyB0aGVuCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTElCSUdBNjQ9IiR7TElCSUdBNjR9JHtMSUJJR0E2NDorIH0kZm91bmRf c28iCisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCSUdBNjQ9IiR7TElCSUdBNjR9 JHtMSUJJR0E2NDorIH0tbCRuYW1lIgorICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAg ICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICBmaQorICAgICAg ICAgICAgZWxzZQorICAgICAgICAgICAgICBpZiB0ZXN0ICJYJGZvdW5kX2EiICE9ICJYIjsgdGhl bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJJR0E2ND0iJHtMSUJJR0E2NH0k e0xJQklHQTY0OisgfSRmb3VuZF9hIgorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJJR0E2ND0iJHtMSUJJR0E2NH0k e0xJQklHQTY0OisgfS1MJGZvdW5kX2RpciAtbCRuYW1lIgorICAgICAgICAgICAgICBmaQorICAg ICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfaW5jbHVkZWRp cj0KKyAgICAgICAgICAgIGNhc2UgIiRmb3VuZF9kaXIiIGluCisgICAgICAgICAgICAgICovbGli IHwgKi9saWIvKQorICAgICAgICAgICAgICAgIGJhc2VkaXI9YGVjaG8gIlgkZm91bmRfZGlyIiB8 IHNlZCAtZSAncyxeWCwsJyAtZSAncywvbGliLyokLCwnYAorICAgICAgICAgICAgICAgIGFkZGl0 aW9uYWxfaW5jbHVkZWRpcj0iJGJhc2VkaXIvaW5jbHVkZSIKKyAgICAgICAgICAgICAgICA7Owor ICAgICAgICAgICAgZXNhYworICAgICAgICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2luY2x1 ZGVkaXIiICE9ICJYIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkYWRkaXRpb25hbF9pbmNsdWRlZGlyIiAhPSAi WC91c3IvaW5jbHVkZSI7IHRoZW4KKyAgICAgICAgICAgICAgICBoYXZlaXQ9CisgICAgICAgICAg ICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiID0gIlgvdXNyL2xvY2FsL2lu Y2x1ZGUiOyB0aGVuCisgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkR0NDIjsgdGhlbgor ICAgICAgICAgICAgICAgICAgICBjYXNlICRob3N0X29zIGluCisgICAgICAgICAgICAgICAgICAg ICAgbGludXgqKSBoYXZlaXQ9eWVzOzsKKyAgICAgICAgICAgICAgICAgICAgZXNhYworICAgICAg ICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgIGlmIHRl c3QgLXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkQ1BQRkxB R1MgJElOQ0lHQTY0OyBkbworCisgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKKyAgcHJlZml4 PSIkYWNsX2ZpbmFsX3ByZWZpeCIKKyAgYWNsX3NhdmVfZXhlY19wcmVmaXg9IiRleGVjX3ByZWZp eCIKKyAgZXhlY19wcmVmaXg9IiRhY2xfZmluYWxfZXhlY19wcmVmaXgiCisgIGV2YWwgeD1cIiR4 XCIKKyAgZXhlY19wcmVmaXg9IiRhY2xfc2F2ZV9leGVjX3ByZWZpeCIKKyAgcHJlZml4PSIkYWNs X3NhdmVfcHJlZml4IgorCisgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWC1J JGFkZGl0aW9uYWxfaW5jbHVkZWRpciI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICBoYXZl aXQ9eWVzCisgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAg ZmkKKyAgICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXog IiRoYXZlaXQiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRhZGRpdGlv bmFsX2luY2x1ZGVkaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElOQ0lHQTY0PSIke0lOQ0lHQTY0fSR7SU5DSUdBNjQ6KyB9LUkkYWRkaXRpb25h bF9pbmNsdWRlZGlyIgorICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAg ZmkKKyAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZmkK KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRmb3VuZF9sYSI7IHRoZW4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2F2 ZV9saWJkaXI9IiRsaWJkaXIiCisgICAgICAgICAgICAgIGNhc2UgIiRmb3VuZF9sYSIgaW4KKyAg ICAgICAgICAgICAgICAqLyogfCAqXFwqKSAuICIkZm91bmRfbGEiIDs7CisgICAgICAgICAgICAg ICAgKikgLiAiLi8kZm91bmRfbGEiIDs7CisgICAgICAgICAgICAgIGVzYWMKKyAgICAgICAgICAg ICAgbGliZGlyPSIkc2F2ZV9saWJkaXIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9y IGRlcCBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworICAgICAgICAgICAgICAgIGNhc2UgIiRkZXAi IGluCisgICAgICAgICAgICAgICAgICAtTCopCisgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9u YWxfbGliZGlyPWBlY2hvICJYJGRlcCIgfCBzZWQgLWUgJ3MvXlgtTC8vJ2AKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJGFkZGl0aW9uYWxf bGliZGlyIiAhPSAiWC91c3IvbGliIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgIGhhdmVp dD0KKyAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJGFkZGl0aW9uYWxfbGliZGlyIiA9 ICJYL3Vzci9sb2NhbC9saWIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0 IC1uICIkR0NDIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICRob3N0X29z IGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGludXgqKSBoYXZlaXQ9eWVzOzsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgZXNhYworICAgICAgICAgICAgICAgICAgICAgICAgZmkK KyAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3Qg LXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9CisgICAg ICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkTERGTEFHUyAkTElCSUdBNjQ7IGRvCisKKyAg YWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorICBwcmVmaXg9IiRhY2xfZmluYWxfcHJlZml4Igor ICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4IgorICBleGVjX3ByZWZpeD0iJGFj bF9maW5hbF9leGVjX3ByZWZpeCIKKyAgZXZhbCB4PVwiJHhcIgorICBleGVjX3ByZWZpeD0iJGFj bF9zYXZlX2V4ZWNfcHJlZml4IgorICBwcmVmaXg9IiRhY2xfc2F2ZV9wcmVmaXgiCisKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYLUwkYWRkaXRpb25hbF9saWJk aXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcworICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZp CisgICAgICAgICAgICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICAgICAgICAgICAgICBp ZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0 ZXN0IC1kICIkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQklHQTY0PSIke0xJQklHQTY0fSR7 TElCSUdBNjQ6KyB9LUwkYWRkaXRpb25hbF9saWJkaXIiCisgICAgICAgICAgICAgICAgICAgICAg ICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICAg ICAgaGF2ZWl0PQorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJExERkxBR1MgJExU TElCSUdBNjQ7IGRvCisKKyAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorICBwcmVmaXg9IiRh Y2xfZmluYWxfcHJlZml4IgorICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4Igor ICBleGVjX3ByZWZpeD0iJGFjbF9maW5hbF9leGVjX3ByZWZpeCIKKyAgZXZhbCB4PVwiJHhcIgor ICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJlZml4IgorICBwcmVmaXg9IiRhY2xfc2F2 ZV9wcmVmaXgiCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJY LUwkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg aGF2ZWl0PXllcworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAg ICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgICBkb25lCisgICAgICAg ICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVuCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUTElC SUdBNjQ9IiR7TFRMSUJJR0E2NH0ke0xUTElCSUdBNjQ6KyB9LUwkYWRkaXRpb25hbF9saWJkaXIi CisgICAgICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgICBm aQorICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgIGZpCisgICAg ICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgICAtUiopCisgICAgICAgICAgICAg ICAgICAgIGRpcj1gZWNobyAiWCRkZXAiIHwgc2VkIC1lICdzL15YLVIvLydgCisgICAgICAgICAg ICAgICAgICAgIGlmIHRlc3QgIiRlbmFibGVfcnBhdGgiICE9IG5vOyB0aGVuCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo YXZlaXQ9CisgICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJHJwYXRoZGlyczsgZG8KKyAg ICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWCRkaXIiOyB0aGVuCisgICAg ICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD15ZXMKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAg ICAgZG9uZQorICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVu CisgICAgICAgICAgICAgICAgICAgICAgICBycGF0aGRpcnM9IiRycGF0aGRpcnMgJGRpciIKKyAg ICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAgICAgICAgICAg ICAgICAgIGZvciB4IGluICRsdHJwYXRoZGlyczsgZG8KKyAgICAgICAgICAgICAgICAgICAgICAg IGlmIHRlc3QgIlgkeCIgPSAiWCRkaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAg IGhhdmVpdD15ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAg ICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgZG9uZQorICAgICAgICAgICAg ICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAgICAgICAgICAgICAg ICAgICBsdHJwYXRoZGlycz0iJGx0cnBhdGhkaXJzICRkaXIiCisgICAgICAgICAgICAgICAgICAg ICAgZmkKKyAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgOzsKKyAg ICAgICAgICAgICAgICAgIC1sKikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lc19uZXh0X3JvdW5kPSIkbmFtZXNfbmV4dF9yb3VuZCAiYGVjaG8gIlgkZGVwIiB8 IHNlZCAtZSAncy9eWC1sLy8nYAorICAgICAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAg ICAgICAgKi5sYSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNfbmV4dF9yb3VuZD0iJG5h bWVzX25leHRfcm91bmQgImBlY2hvICJYJGRlcCIgfCBzZWQgLWUgJ3MsXlguKi8sLCcgLWUgJ3Ms XmxpYiwsJyAtZSAncyxcLmxhJCwsJ2AKKyAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAg ICAgICAgICAgICopCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElC SUdBNjQ9IiR7TElCSUdBNjR9JHtMSUJJR0E2NDorIH0kZGVwIgorICAgICAgICAgICAgICAgICAg ICBMVExJQklHQTY0PSIke0xUTElCSUdBNjR9JHtMVExJQklHQTY0OisgfSRkZXAiCisgICAgICAg ICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgZXNhYworICAgICAgICAgICAgICBkb25l CisgICAgICAgICAgICBmaQorICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIngkbGliX3R5cGUi ID0gInhhdXRvIiB8fCB0ZXN0ICJ4JGxpYl90eXBlIiA9ICJ4c2hhcmVkIjsgdGhlbgorICAgICAg ICAgICAgICBMSUJJR0E2ND0iJHtMSUJJR0E2NH0ke0xJQklHQTY0OisgfS1sJG5hbWUiCisgICAg ICAgICAgICAgIExUTElCSUdBNjQ9IiR7TFRMSUJJR0E2NH0ke0xUTElCSUdBNjQ6KyB9LWwkbmFt ZSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgTElCSUdBNjQ9IiR7TElCSUdBNjR9 JHtMSUJJR0E2NDorIH0tbDpsaWIkbmFtZS4kbGliZXh0IgorICAgICAgICAgICAgICBMVExJQklH QTY0PSIke0xUTElCSUdBNjR9JHtMVExJQklHQTY0OisgfS1sOmxpYiRuYW1lLiRsaWJleHQiCisg ICAgICAgICAgICBmaQorICAgICAgICAgIGZpCisgICAgICAgIGZpCisgICAgICBmaQorICAgIGRv bmUKKyAgZG9uZQorICBpZiB0ZXN0ICJYJHJwYXRoZGlycyIgIT0gIlgiOyB0aGVuCisgICAgaWYg dGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisgICAgICAgICAgICAg ICAgICAgICAgICBhbGxkaXJzPQorICAgICAgZm9yIGZvdW5kX2RpciBpbiAkcnBhdGhkaXJzOyBk bworICAgICAgICBhbGxkaXJzPSIke2FsbGRpcnN9JHthbGxkaXJzOiskaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvcn0kZm91bmRfZGlyIgorICAgICAgZG9uZQorICAgICAgICAgICAgYWNsX3NhdmVf bGliZGlyPSIkbGliZGlyIgorICAgICAgbGliZGlyPSIkYWxsZGlycyIKKyAgICAgIGV2YWwgZmxh Zz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKKyAgICAgIGxpYmRpcj0iJGFjbF9zYXZl X2xpYmRpciIKKyAgICAgIExJQklHQTY0PSIke0xJQklHQTY0fSR7TElCSUdBNjQ6KyB9JGZsYWci CisgICAgZWxzZQorICAgICAgICAgICAgZm9yIGZvdW5kX2RpciBpbiAkcnBhdGhkaXJzOyBkbwor ICAgICAgICBhY2xfc2F2ZV9saWJkaXI9IiRsaWJkaXIiCisgICAgICAgIGxpYmRpcj0iJGZvdW5k X2RpciIKKyAgICAgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgor ICAgICAgICBsaWJkaXI9IiRhY2xfc2F2ZV9saWJkaXIiCisgICAgICAgIExJQklHQTY0PSIke0xJ QklHQTY0fSR7TElCSUdBNjQ6KyB9JGZsYWciCisgICAgICBkb25lCisgICAgZmkKKyAgZmkKKyAg aWYgdGVzdCAiWCRsdHJwYXRoZGlycyIgIT0gIlgiOyB0aGVuCisgICAgICAgICAgICBmb3IgZm91 bmRfZGlyIGluICRsdHJwYXRoZGlyczsgZG8KKyAgICAgIExUTElCSUdBNjQ9IiR7TFRMSUJJR0E2 NH0ke0xUTElCSUdBNjQ6KyB9LVIkZm91bmRfZGlyIgorICAgIGRvbmUKKyAgZmkKKworCisgICAg ICAgIGFjX3NhdmVfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKKworICBmb3IgZWxlbWVudCBpbiAkSU5D SUdBNjQ7IGRvCisgICAgaGF2ZWl0PQorICAgIGZvciB4IGluICRDUFBGTEFHUzsgZG8KKworICBh Y2xfc2F2ZV9wcmVmaXg9IiRwcmVmaXgiCisgIHByZWZpeD0iJGFjbF9maW5hbF9wcmVmaXgiCisg IGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgiCisgIGV4ZWNfcHJlZml4PSIkYWNs X2ZpbmFsX2V4ZWNfcHJlZml4IgorICBldmFsIHg9XCIkeFwiCisgIGV4ZWNfcHJlZml4PSIkYWNs X3NhdmVfZXhlY19wcmVmaXgiCisgIHByZWZpeD0iJGFjbF9zYXZlX3ByZWZpeCIKKworICAgICAg aWYgdGVzdCAiWCR4IiA9ICJYJGVsZW1lbnQiOyB0aGVuCisgICAgICAgIGhhdmVpdD15ZXMKKyAg ICAgICAgYnJlYWsKKyAgICAgIGZpCisgICAgZG9uZQorICAgIGlmIHRlc3QgLXogIiRoYXZlaXQi OyB0aGVuCisgICAgICBDUFBGTEFHUz0iJHtDUFBGTEFHU30ke0NQUEZMQUdTOisgfSRlbGVtZW50 IgorICAgIGZpCisgIGRvbmUKKworCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgZm9yIGxpYmlnYTY0IiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBsaWJpZ2E2NC4uLiAiID4mNjsgfQoraWYgJHthY19jdl9saWJpZ2E2NCs6fSBmYWxzZTsg dGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisKKyAgICBhY19zYXZl X0xJQlM9IiRMSUJTIgorICAgIExJQlM9IiRMSUJTICRMSUJJR0E2NCIKKyAgICBjYXQgY29uZmRl ZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICov CisjaW5jbHVkZSAiYXNzZXJ0LmgiCisgICAgICAgI2luY2x1ZGUgImlnYS9pZ2EuaCIKK2ludAor bWFpbiAoKQoreworaWdhX3ZlcnNpb25fc3RyaW5nKCk7CisgIDsKKyAgcmV0dXJuIDA7Cit9Citf QUNFT0YKK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorICBhY19jdl9s aWJpZ2E2ND15ZXMKK2Vsc2UKKyAgYWNfY3ZfbGliaWdhNjQ9bm8KK2ZpCitybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICBjb25mdGVzdCRhY19leGVleHQg Y29uZnRlc3QuJGFjX2V4dAorICAgIExJQlM9IiRhY19zYXZlX0xJQlMiCisKK2ZpCit7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X2xpYmlnYTY0 IiA+JjUKKyRhc19lY2hvICIkYWNfY3ZfbGliaWdhNjQiID4mNjsgfQorICBpZiB0ZXN0ICIkYWNf Y3ZfbGliaWdhNjQiID0geWVzOyB0aGVuCisgICAgSEFWRV9MSUJJR0E2ND15ZXMKKworJGFzX2Vj aG8gIiNkZWZpbmUgSEFWRV9MSUJJR0E2NCAxIiA+PmNvbmZkZWZzLmgKKworICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaG93IHRvIGxpbmsgd2l0 aCBsaWJpZ2E2NCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gbGluayB3aXRoIGxp YmlnYTY0Li4uICIgPiY2OyB9CisgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRMSUJJR0E2NCIgPiY1CiskYXNfZWNobyAiJExJQklHQTY0IiA+JjY7 IH0KKyAgZWxzZQorICAgIEhBVkVfTElCSUdBNjQ9bm8KKyAgICAgICAgICAgIENQUEZMQUdTPSIk YWNfc2F2ZV9DUFBGTEFHUyIKKyAgICBMSUJJR0E2ND0KKyAgICBMVExJQklHQTY0PQorICBmaQor CisKKworCisKKworICAgIGFjX2V4dD1jCithY19jcHA9JyRDUFAgJENQUEZMQUdTJworYWNfY29t cGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworYWNf bGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19j b21waWxlcl9nbnUKKworCisgICAgaWYgdGVzdCAiJEhBVkVfTElCSUdBNjQiICE9IHllczsgdGhl bgorICAgICAgaWYgdGVzdCAiJHdpdGhfbGliaWdhNjQiID0geWVzOyB0aGVuCisgICAgICAgIGFz X2ZuX2Vycm9yICQ/ICJsaWJpZ2E2NCBpcyBtaXNzaW5nIG9yIHVudXNhYmxlIiAiJExJTkVOTyIg NQorICAgICAgZWxzZQorICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IFdBUk5JTkc6IGxpYmlnYTY0IGlzIG1pc3Npbmcgb3IgdW51c2FibGU7IHNvbWUgZmVh dHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLiIgPiY1CiskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5H OiBsaWJpZ2E2NCBpcyBtaXNzaW5nIG9yIHVudXNhYmxlOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1 bmF2YWlsYWJsZS4iID4mMjt9CisgICAgICBmaQorICAgIGZpCisgIGZpCitmaQorCiAjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogIyBDaGVja3MgZm9yIGhlYWRlciBmaWxlcy4gICMKICMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCmRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlLmFj IGIvZ2RiL2NvbmZpZ3VyZS5hYwppbmRleCAyMjZlMjdlNGZlNTRhOWQzYWMwNmU4YmU0NDM5ZGQ1 ZGNlOGViOTc1Li4wNTA3ZjAzMDQzYzYxMzg1MTgxYjY2N2QwZTcxMTdkNGIyNTQ3ZDZkIDEwMDY0 NAotLS0gYS9nZGIvY29uZmlndXJlLmFjCisrKyBiL2dkYi9jb25maWd1cmUuYWMKQEAgLTEzNTEs NiArMTM1MSw1OCBAQCBmaQogQUNfU1VCU1QoU1JDSElHSF9MSUJTKQogQUNfU1VCU1QoU1JDSElH SF9DRkxBR1MpCiAKKyMgQ2hlY2sgZm9yIEludGVsKFIpIEdyYXBoaWNzIFRlY2hub2xvZ3kgYXNz ZW1ibGVyIGxpYnJhcnkKK2ludGVsZ3RfdGFyZ2V0PWZhbHNlCisKK2ZvciB0YXJnX2FsaWFzIGlu IGBlY2hvICR0YXJnZXRfYWxpYXMgJGVuYWJsZV90YXJnZXRzIHwgc2VkICdzLywvIC9nJ2AKK2Rv CisgIGlmIHRlc3QgIiR0YXJnX2FsaWFzIiA9ICJhbGwiOyB0aGVuCisgICAgaW50ZWxndF90YXJn ZXQ9dHJ1ZQorICBlbHNlCisgICAgY2FzZSAiJHRhcmdfYWxpYXMiIGluCisgICAgICBpbnRlbGd0 LSopCisgICAgICAgIGludGVsZ3RfdGFyZ2V0PXRydWUKKyAgICAgICAgOzsKKyAgICBlc2FjCisg IGZpCitkb25lCisKK2Nhc2UgIiR7dGFyZ2V0fSIgaW4KKyAgaW50ZWxndC0qKQorICAgIGludGVs Z3RfdGFyZ2V0PXRydWUKKyAgICA7OworZXNhYworCitpZiB0ZXN0ICIke2ludGVsZ3RfdGFyZ2V0 fSIgIT0gdHJ1ZTsgdGhlbgorICBIQVZFX0xJQklHQTY0PW5vCitlbHNlCisgIEFDX0FSR19XSVRI KGxpYmlnYTY0LAorICAgIEFTX0hFTFBfU1RSSU5HKFstLXdpdGgtbGliaWdhNjRdLCBbaW5jbHVk ZSBJbnRlbEdUIGRpc2Fzc2VtYmx5IHN1cHBvcnQgKGF1dG8veWVzL25vKV0pLAorICAgIFtdLCBb d2l0aF9saWJpZ2E2ND1hdXRvXSkKKyAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIHVzZSBs aWJpZ2E2NF0pCisgIEFDX01TR19SRVNVTFQoWyR3aXRoX2xpYmlnYTY0XSkKKworICBpZiB0ZXN0 ICIke3dpdGhfbGliaWdhNjR9IiA9IG5vOyB0aGVuCisgICAgQUNfTVNHX1dBUk4oW0ludGVsR1Qg ZGlzYXNzZW1ibHkgc3VwcG9ydCBkaXNhYmxlZDsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFp bGFibGUuXSkKKyAgICBIQVZFX0xJQklHQTY0PW5vCisgIGVsc2UKKyAgICBBQ19MQU5HX1BVU0go W0MrK10pCisgICAgQUNfTElCX0hBVkVfTElOS0ZMQUdTKFtpZ2E2NF0sIFtdLAorICAgICAgWyNp bmNsdWRlICJhc3NlcnQuaCIKKyAgICAgICAjaW5jbHVkZSAiaWdhL2lnYS5oIl0sCisgICAgICBb aWdhX3ZlcnNpb25fc3RyaW5nKCk7XSkKKyAgICBBQ19MQU5HX1BPUChbQysrXSkKKworICAgIGlm IHRlc3QgIiRIQVZFX0xJQklHQTY0IiAhPSB5ZXM7IHRoZW4KKyAgICAgIGlmIHRlc3QgIiR3aXRo X2xpYmlnYTY0IiA9IHllczsgdGhlbgorICAgICAgICBBQ19NU0dfRVJST1IoW2xpYmlnYTY0IGlz IG1pc3Npbmcgb3IgdW51c2FibGVdKQorICAgICAgZWxzZQorICAgICAgICBBQ19NU0dfV0FSTihb bGliaWdhNjQgaXMgbWlzc2luZyBvciB1bnVzYWJsZTsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5h dmFpbGFibGUuXSkKKyAgICAgIGZpCisgICAgZmkKKyAgZmkKK2ZpCisKICMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSAjCiAjIENoZWNrcyBmb3IgaGVhZGVyIGZpbGVzLiAgIwogIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tICMKZGlmZiAtLWdpdCBhL2dkYi9kaXNhc20tc2VsZnRlc3RzLmMg Yi9nZGIvZGlzYXNtLXNlbGZ0ZXN0cy5jCmluZGV4IDBkMDYwNjU0ZGExMGVjNDljNWE3MWUwMDA5 MzkxZTQwMGQzZDY2ZWYuLjYwN2YxMmJkYzY3YWIwNTFkMjEyMTgzYTEwMGFlMjljOTNhMGNkYWMg MTAwNjQ0Ci0tLSBhL2dkYi9kaXNhc20tc2VsZnRlc3RzLmMKKysrIGIvZ2RiL2Rpc2FzbS1zZWxm dGVzdHMuYwpAQCAtMTE2LDYgKzExNiwxMCBAQCBnZXRfdGVzdF9pbnNuIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwgc2l6ZV90ICpsZW4pCiAJKmxlbiA9IGJwbGVuOwogICAgICAgfQogICAgICAg YnJlYWs7CisgICAgY2FzZSBiZmRfYXJjaF9pbnRlbGd0OgorICAgICAgLyogVGhlIGludGVsZ3Qg YXJjaGl0ZWN0dXJlIG5lZWRzIHRvIGluaXRpYWxpemUgdGhlIGdkYmFyY2ggd2l0aAorCSBhbiBJ R0EgY29udGV4dCB0byBiZSBhYmxlIHRvIHVzZSB0aGUgZGlzYXNzZW1ibGVyLiAgKi8KKyAgICAg IHJldHVybiBpbnNuOwogICAgIGNhc2UgYmZkX2FyY2hfaTM4NjoKICAgICAgIHsKIAljb25zdCBz dHJ1Y3QgYmZkX2FyY2hfaW5mbyAqaW5mbyA9IGdkYmFyY2hfYmZkX2FyY2hfaW5mbyAoZ2RiYXJj aCk7CkBAIC0zMTMsNiArMzE3LDE0IEBAIG1lbW9yeV9lcnJvcl90ZXN0IChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCkKIAlyZXR1cm47CiAgICAgfQogCisjaWYgIWRlZmluZWQgKEhBVkVfTElCSUdB NjQpCisgIGlmIChnZGJhcmNoX2JmZF9hcmNoX2luZm8gKGdkYmFyY2gpLT5hcmNoID09IGJmZF9h cmNoX2ludGVsZ3QpCisgICAgeworICAgICAgLyogRGlzYXNzZW1ibGVyIGZvciBpbnRlbGd0IHJl cXVpcmVzIGxpYmlnYTY0LiAgKi8KKyAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwogICBn ZGJfZGlzYXNzZW1ibGVyX3Rlc3QgZGkgKGdkYmFyY2gpOwogICBib29sIHNhd19tZW1vcnlfZXJy b3IgPSBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2Mv Z2RiLnRleGluZm8KaW5kZXggM2Q1YjQ0OTFmNzc1ODY2ZDgwNjc4MmE5MmUwYWE3NmMzNTM5ZmYy NS4uYTRjOThkMThlMjAxODI3NjVmOGNmMDU0NjQ0N2M2Nzc3Y2RkNWUyZCAxMDA2NDQKLS0tIGEv Z2RiL2RvYy9nZGIudGV4aW5mbworKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCkBAIC00MDk4NCw2 ICs0MDk4NCwxMSBAQCB0byBkb3dubG9hZCBHTlUgTGliaWNvbnYsIHVucGFjayBpdCBpbnNpZGUg dGhlIHRvcC1sZXZlbCBkaXJlY3Rvcnkgb2YKIHRoZSBAdmFsdWV7R0RCTn0gc291cmNlIHRyZWUs IGFuZCB0aGVuIHJlbmFtZSB0aGUgZGlyZWN0b3J5IGhvbGRpbmcKIHRoZSBMaWJpY29udiBzb3Vy Y2UgY29kZSB0byBAc2FtcHtsaWJpY29udn0uCiAKK0BpdGVtIGxpYmlnYTY0IChJR0EpCitAdmFs dWV7R0RCTn0gY2FuIGRpc2Fzc2VtYmxlIEludGVsR1QgbWFjaGluZSBjb2RlIGlmIHRoaXMgbGli cmFyeSBpcworaW5jbHVkZWQuICBVc2UgdGhlIEBvcHRpb257LS13aXRoLWxpYmlnYTY0LXByZWZp eH0gb3B0aW9uIHRvIHNwZWNpZnkKK2l0cyBub24tc3RhbmRhcmQgbG9jYXRpb24uCisKIEBjaW5k ZXggY29tcHJlc3NlZCBkZWJ1ZyBzZWN0aW9ucwogQGl0ZW0gbHptYQogQHZhbHVle0dEQk59IGNh biBzdXBwb3J0IGRlYnVnZ2luZyBzZWN0aW9ucyB0aGF0IGFyZSBjb21wcmVzc2VkIHdpdGgKZGlm ZiAtLWdpdCBhL2dkYi9pbnRlbGd0LXRkZXAuYyBiL2dkYi9pbnRlbGd0LXRkZXAuYwppbmRleCAz OTE5OTQ3ZmVkNDRjOWU5MzliZWY2YzE0Yjg1NGFlNDE2YWI3YzQxLi41ODM4NDdkZDE2OGIzOWZm NjgwMzZjOTFlMWM2M2Q3MjkwOTg4YTdhIDEwMDY0NAotLS0gYS9nZGIvaW50ZWxndC10ZGVwLmMK KysrIGIvZ2RiL2ludGVsZ3QtdGRlcC5jCkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgImlu ZmVyaW9yLmgiCiAjaW5jbHVkZSAidXNlci1yZWdzLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgor I2luY2x1ZGUgImRpc2FzbS5oIgorI2lmIGRlZmluZWQgKEhBVkVfTElCSUdBNjQpCisjaW5jbHVk ZSAiaWdhL2lnYS5oIgorI2VuZGlmIC8qIGRlZmluZWQgKEhBVkVfTElCSUdBNjQpICAqLwogCiAv KiBHbG9iYWwgZGVidWcgZmxhZy4gICovCiBzdGF0aWMgYm9vbCBpbnRlbGd0X2RlYnVnID0gZmFs c2U7CkBAIC05OSw2ICsxMDMsMTEgQEAgc3RydWN0IGludGVsZ3RfZ2RiYXJjaF90ZGVwIDogZ2Ri YXJjaF90ZGVwX2Jhc2UKICAgICBnZGJfYXNzZXJ0IChyZWdzZXRfcmFuZ2VzW2ludGVsZ3Q6OlJF R1NFVF9HUkZdLmVuZCA+IDEpOwogICAgIHJldHVybiByZWdzZXRfcmFuZ2VzW2ludGVsZ3Q6OlJF R1NFVF9HUkZdLmVuZCAtIDE7CiAgIH0KKworI2lmIGRlZmluZWQgKEhBVkVfTElCSUdBNjQpCisg IC8qIGxpYmlnYSBjb250ZXh0IGZvciBkaXNhc3NlbWJseS4gICovCisgIGlnYV9jb250ZXh0X3Qg aWdhX2N0eCA9IG51bGxwdHI7CisjZW5kaWYKIH07CiAKIC8qIFBlci1pbmZlcmlvciBjYWNoZWQg ZGF0YSBmb3IgdGhlIEludGVsZ3QgdGFyZ2V0LiAgKi8KQEAgLTU0NCwxMyArNTUzLDc1IEBAIGlu dGVsZ3Rfc3dfYnJlYWtwb2ludF9mcm9tX2tpbmQgKGdkYmFyY2ggKmdkYmFyY2gsIGludCBraW5k LCBpbnQgKnNpemUpCiAgIHJldHVybiBudWxscHRyOwogfQogCisjaWYgZGVmaW5lZCAoSEFWRV9M SUJJR0E2NCkKKy8qIE1hcCBDT1JFX0FERFIgdG8gc3ltYm9sIG5hbWVzIGZvciBqdW1wIGxhYmVs cyBpbiBhbiBJR0EgZGlzYXNzZW1ibHkuICAqLworCitzdGF0aWMgY29uc3QgY2hhciAqCitpbnRl bGd0X2Rpc2FzbV9zeW1fY2IgKGludCBhZGRyLCB2b2lkICpjdHgpCit7CisgIGRpc2Fzc2VtYmxl X2luZm8gKmluZm8gPSAoZGlzYXNzZW1ibGVfaW5mbyAqKSBjdHg7CisgIHN5bWJvbCAqc3ltID0g ZmluZF9wY19mdW5jdGlvbiAoYWRkciArICh1aW50cHRyX3QpIGluZm8tPnByaXZhdGVfZGF0YSk7 CisgIHJldHVybiBzeW0gPyBzeW0tPmxpbmthZ2VfbmFtZSAoKSA6IG51bGxwdHI7Cit9CisjZW5k aWYgLyogZGVmaW5lZCAoSEFWRV9MSUJJR0E2NCkgICovCisKIC8qIFByaW50IG9uZSBpbnN0cnVj dGlvbiBmcm9tIE1FTUFERFIgb24gSU5GTy0+U1RSRUFNLiAgKi8KIAogc3RhdGljIGludAogaW50 ZWxndF9wcmludF9pbnNuIChiZmRfdm1hIG1lbWFkZHIsIHN0cnVjdCBkaXNhc3NlbWJsZV9pbmZv ICppbmZvKQogewotICAvKiBEaXNhc3NlbWJsZXIgaXMgdG8gYmUgYWRkZWQgaW4gYSBsYXRlciBw YXRjaC4gICovCisjaWYgIWRlZmluZWQgKEhBVkVfTElCSUdBNjQpCisgIGdkYl9wcmludGYgKF8o IlxuRGlzYXNzZW1ibGUgZmVhdHVyZSBub3QgYXZhaWxhYmxlOiBsaWJpZ2E2NCAiCisJCSJpcyBt aXNzaW5nLlxuIikpOwogICByZXR1cm4gLTE7CisjZWxzZQorICBzdGQ6OnVuaXF1ZV9wdHI8YmZk X2J5dGVbXT4gaW5zbiAobmV3IGJmZF9ieXRlW2ludGVsZ3Q6Ok1BWF9JTlNUX0xFTkdUSF0pOwor CisgIGludCBzdGF0dXMgPSAoKmluZm8tPnJlYWRfbWVtb3J5X2Z1bmMpIChtZW1hZGRyLCBpbnNu LmdldCAoKSwKKwkJCQkJICBpbnRlbGd0OjpDT01QQUNUX0lOU1RfTEVOR1RILCBpbmZvKTsKKyAg aWYgKHN0YXR1cyAhPSAwKQorICAgIHsKKyAgICAgIC8qIEFib3J0cyBkaXNhc3NlbWJsaW5nIHdp dGggYSBtZW1vcnlfZXJyb3IgZXhjZXB0aW9uLiAgKi8KKyAgICAgICgqaW5mby0+bWVtb3J5X2Vy cm9yX2Z1bmMpIChzdGF0dXMsIG1lbWFkZHIsIGluZm8pOworICAgICAgcmV0dXJuIC0xOworICAg IH0KKworICB1aW50MzJfdCBkZXZpY2VfaWQgPSBnZXRfZGV2aWNlX2lkIChjdXJyZW50X2luZmVy aW9yICgpKTsKKyAgZ2RiOjphcnJheV92aWV3PGJmZF9ieXRlPiBpbnNuX3ZpZXcKKyAgICA9IGdk Yjo6bWFrZV9hcnJheV92aWV3IChpbnNuLmdldCAoKSwgaW50ZWxndDo6Q09NUEFDVF9JTlNUX0xF TkdUSCk7CisgIHVuc2lnbmVkIGludCBsZW5ndGggPSBpbnRlbGd0OjppbnN0X2xlbmd0aCAoaW5z bl92aWV3LCBkZXZpY2VfaWQpOworCisgIGlmIChsZW5ndGggPT0gaW50ZWxndDo6TUFYX0lOU1Rf TEVOR1RIKQorICAgIHsKKyAgICAgIHN0YXR1cyA9ICgqaW5mby0+cmVhZF9tZW1vcnlfZnVuYykg KG1lbWFkZHIsIGluc24uZ2V0ICgpLAorCQkJCQkgIGludGVsZ3Q6Ok1BWF9JTlNUX0xFTkdUSCwg aW5mbyk7CisgICAgICBpZiAoc3RhdHVzICE9IDApCisJeworCSAgLyogQWJvcnRzIGRpc2Fzc2Vt Ymxpbmcgd2l0aCBhIG1lbW9yeV9lcnJvciBleGNlcHRpb24uICAqLworCSAgKCppbmZvLT5tZW1v cnlfZXJyb3JfZnVuYykgKHN0YXR1cywgbWVtYWRkciwgaW5mbyk7CisJICByZXR1cm4gLTE7CisJ fQorICAgIH0KKworICBjaGFyICpkYnVmOworICBpZ2FfZGlzYXNzZW1ibGVfb3B0aW9uc190IGRv cHRzID0gSUdBX0RJU0FTU0VNQkxFX09QVElPTlNfSU5JVCAoKTsKKyAgZ2RiX2Rpc2Fzc2VtYmxl X2luZm8gKmRpCisgICAgPSBzdGF0aWNfY2FzdDxnZGJfZGlzYXNzZW1ibGVfaW5mbyAqPihpbmZv LT5hcHBsaWNhdGlvbl9kYXRhKTsKKyAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBkaS0+YXJj aCAoKTsKKworICBpZ2FfY29udGV4dF90IGlnYV9jdHgKKyAgICA9IGdkYmFyY2hfdGRlcDxpbnRl bGd0X2dkYmFyY2hfdGRlcD4gKGdkYmFyY2gpLT5pZ2FfY3R4OworICBpZ2Ffc3RhdHVzX3QgaWdh X3N0YXR1cworICAgID0gaWdhX2NvbnRleHRfZGlzYXNzZW1ibGVfaW5zdHJ1Y3Rpb24gKGlnYV9j dHgsICZkb3B0cywgaW5zbi5nZXQgKCksCisJCQkJCSAgIGludGVsZ3RfZGlzYXNtX3N5bV9jYiwK KwkJCQkJICAgaW5mbywgJmRidWYpOworICBpZiAoaWdhX3N0YXR1cyAhPSBJR0FfU1VDQ0VTUykK KyAgICByZXR1cm4gLTE7CisKKyAgKCppbmZvLT5mcHJpbnRmX2Z1bmMpIChpbmZvLT5zdHJlYW0s ICIlcyIsIGRidWYpOworCisgIHJldHVybiBsZW5ndGg7CisjZW5kaWYgLyogZGVmaW5lZCAoSEFW RV9MSUJJR0E2NCkgICovCiB9CiAKIC8qIFRoZSAicmVhZF9wYyIgZ2RiYXJjaCBtZXRob2QuICAq LwpAQCAtNzcxLDYgKzg0Miw0NiBAQCBpbnRlbGd0X2dkYmFyY2hfaW5pdCAoZ2RiYXJjaF9pbmZv IGluZm8sIGdkYmFyY2hfbGlzdCAqYXJjaGVzKQogICBpbnRlbGd0X2dkYmFyY2hfdGRlcCAqZGF0 YQogICAgID0gZ2RiYXJjaF90ZGVwPGludGVsZ3RfZ2RiYXJjaF90ZGVwPiAoZ2RiYXJjaCk7CiAK KyNpZiBkZWZpbmVkIChIQVZFX0xJQklHQTY0KQorICBpZ2FfZ2VuX3QgaWdhX3ZlcnNpb24gPSBJ R0FfR0VOX0lOVkFMSUQ7CisKKyAgaWYgKHRkZXNjICE9IG51bGxwdHIpCisgICAgeworICAgICAg Y29uc3QgdGRlc2NfZGV2aWNlICpkZXZpY2VfaW5mbyA9IHRkZXNjX2RldmljZV9pbmZvICh0ZGVz Yyk7CisgICAgICBpZiAoIShkZXZpY2VfaW5mby0+dmVuZG9yX2lkLmhhc192YWx1ZSAoKQorCSAg ICAmJiBkZXZpY2VfaW5mby0+dGFyZ2V0X2lkLmhhc192YWx1ZSAoKSkpCisJeworCSAgd2Fybmlu ZyAoXygiRGV2aWNlIHZlbmRvciBpZCBhbmQgdGFyZ2V0IGlkIG5vdCBmb3VuZC4iKSk7CisJICBn ZGJhcmNoX2ZyZWUgKGdkYmFyY2gpOworCSAgcmV0dXJuIG51bGxwdHI7CisJfQorCisgICAgICB1 aW50MzJfdCB2ZW5kb3JfaWQgPSAqZGV2aWNlX2luZm8tPnZlbmRvcl9pZDsKKyAgICAgIHVpbnQz Ml90IGRldmljZV9pZCA9ICpkZXZpY2VfaW5mby0+dGFyZ2V0X2lkOworICAgICAgaWYgKHZlbmRv cl9pZCAhPSAweDgwODYpCisJeworCSAgd2FybmluZyAoXygiRGV2aWNlIG5vdCByZWNvZ25pemVk OiB2ZW5kb3IgaWQ9MHglMDR4LCIKKwkJICAgICAiIGRldmljZSBpZD0weCUwNHgiKSwgdmVuZG9y X2lkLCBkZXZpY2VfaWQpOworCSAgZ2RiYXJjaF9mcmVlIChnZGJhcmNoKTsKKwkgIHJldHVybiBu dWxscHRyOworCX0KKyAgICAgIGVsc2UKKwl7CisJICBpZ2FfdmVyc2lvbiA9IChpZ2FfZ2VuX3Qp IGludGVsZ3Q6OmdldF94ZV92ZXJzaW9uIChkZXZpY2VfaWQpOworCSAgaWYgKGlnYV92ZXJzaW9u ID09IElHQV9HRU5fSU5WQUxJRCkKKwkgICAgd2FybmluZyAoXygiSW50ZWwgR1QgZGV2aWNlIGlk IGlzIHVucmVjb2duaXplZDogSUQgMHglMDR4IiksCisJCSAgICAgZGV2aWNlX2lkKTsKKwl9Cisg ICAgfQorCisgIC8qIFRha2UgdGhlIGJlc3QgZ3Vlc3MgaW4gY2FzZSBJR0FfVkVSU0lPTiBpcyBz dGlsbCBpbnZhbGlkLiAgKi8KKyAgaWYgKGlnYV92ZXJzaW9uID09IElHQV9HRU5fSU5WQUxJRCkK KyAgICBpZ2FfdmVyc2lvbiA9IElHQV9YRV9IUEM7CisKKyAgY29uc3QgaWdhX2NvbnRleHRfb3B0 aW9uc190IG9wdGlvbnMgPSBJR0FfQ09OVEVYVF9PUFRJT05TX0lOSVQgKGlnYV92ZXJzaW9uKTsK KyAgaWdhX2NvbnRleHRfY3JlYXRlICgmb3B0aW9ucywgJmRhdGEtPmlnYV9jdHgpOworI2VuZGlm CisKICAgLyogSW5pdGlhbGl6ZSByZWdpc3RlciBpbmZvLiAgKi8KICAgc2V0X2dkYmFyY2hfbnVt X3JlZ3MgKGdkYmFyY2gsIDApOwogICBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9uYW1lIChnZGJhcmNo LCB0ZGVzY19yZWdpc3Rlcl9uYW1lKTsKZGlmZiAtLWdpdCBhL2dkYi90b3AuYyBiL2dkYi90b3Au YwppbmRleCA3MmQxOTUzMDA3MGVhMGM3Y2VjMDY0N2NmNjQzYmIwNTU2ZTNhMzdiLi4yNTU3NmQy ODk2NGY2MTkxNTc3NWZlNjI1OTQyMDdmNjhkMmVkNzE2IDEwMDY0NAotLS0gYS9nZGIvdG9wLmMK KysrIGIvZ2RiL3RvcC5jCkBAIC0xNTIzLDYgKzE1MjMsMTYgQEAgVGhpcyBHREIgd2FzIGNvbmZp Z3VyZWQgYXMgZm9sbG93czpcblwKICIpKTsKICNlbmRpZgogCisjaWZkZWYgSEFWRV9MSUJJR0E2 NAorICBnZGJfcHJpbnRmIChzdHJlYW0sIF8oIlwKKwkgICAgIC0td2l0aC1saWJpZ2E2NFxuXAor IikpOworI2Vsc2UKKyAgZ2RiX3ByaW50ZiAoc3RyZWFtLCBfKCJcCisJICAgICAtLXdpdGhvdXQt bGliaWdhNjRcblwKKyIpKTsKKyNlbmRpZgorCiAjaWYgSEFWRV9TT1VSQ0VfSElHSExJR0hUCiAg IGdkYl9wcmludGYgKHN0cmVhbSwgXygiXAogCSAgICAgLS1lbmFibGUtc291cmNlLWhpZ2hsaWdo dFxuXAoKLS0gCjIuMzQuMQoKSW50ZWwgRGV1dHNjaGxhbmQgR21iSA0KUmVnaXN0ZXJlZCBBZGRy ZXNzOiBBbSBDYW1wZW9uIDEwLCA4NTU3OSBOZXViaWJlcmcsIEdlcm1hbnkNClRlbDogKzQ5IDg5 IDk5IDg4NTMtMCwgd3d3LmludGVsLmRlDQpNYW5hZ2luZyBEaXJlY3RvcnM6IFNlYW4gRmVubmVs bHksIEplZmZyZXkgU2NobmVpZGVybWFuLCBUaWZmYW55IERvb24gU2lsdmENCkNoYWlycGVyc29u IG9mIHRoZSBTdXBlcnZpc29yeSBCb2FyZDogTmljb2xlIExhdQ0KUmVnaXN0ZXJlZCBPZmZpY2U6 IE11bmljaA0KQ29tbWVyY2lhbCBSZWdpc3RlcjogQW10c2dlcmljaHQgTXVlbmNoZW4gSFJCIDE4 NjkyOAo=