From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.61]) by mx.groups.io with SMTP id smtpd.web10.9246.1582478758672965125 for ; Sun, 23 Feb 2020 09:25:58 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=I/ToG9z5; spf=pass (domain: redhat.com, ip: 205.139.110.61, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1582478757; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vBLz92H+e/IQcJK9PK5nB/HloYbcYMAHEnK23R/q/Ns=; b=I/ToG9z5ZSg4LWpmI+4XK+bkwpyprn7COedAlBJk1E4jd/5Qg9EHtkZ3S0Si6norVaqX/f ya8u2YkXNU2aU7/tj6NwWljq7y4NuDkOfAaYY89/tgmhy7blf2AEb5f1CscIAjtGDJgjIj BREz5NSQP8ZFOPCfhbHqgfXSh3n2aZI= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-72-QbNaqJFuO7WVIEf53b5Nrg-1; Sun, 23 Feb 2020 12:25:55 -0500 X-MC-Unique: QbNaqJFuO7WVIEf53b5Nrg-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4B4E68017CC; Sun, 23 Feb 2020 17:25:54 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-116-53.ams2.redhat.com [10.36.116.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id 910145C105; Sun, 23 Feb 2020 17:25:52 +0000 (UTC) From: "Laszlo Ersek" To: edk2-devel-groups-io Cc: Ard Biesheuvel , Igor Mammedov , Jiewen Yao , Jordan Justen , Michael Kinney , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH 05/16] OvmfPkg: enable CPU hotplug support in PiSmmCpuDxeSmm Date: Sun, 23 Feb 2020 18:25:26 +0100 Message-Id: <20200223172537.28464-6-lersek@redhat.com> In-Reply-To: <20200223172537.28464-1-lersek@redhat.com> References: <20200223172537.28464-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 U2V0ICJQY2RDcHVIb3RQbHVnU3VwcG9ydCIgdG8gVFJVRSwgd2hlbiBPVk1GIGlzIGJ1aWx0IHdp dGggU01NX1JFUVVJUkUuCkNvbnNlcXVlbmNlczoKCigxKSBJbiBQaUNwdVNtbUVudHJ5KCkgW1Vl ZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uY10sCiAgICByZXNvdXJjZXMg YXJlIGFsbG9jYXRlZCBhbmQgcG9wdWxhdGVkIGluIGFkdmFuY2UgZm9yIGFsbCBwb3NzaWJsZQog ICAgKGkuZS4sIHBvdGVudGlhbGx5IGhvdC1hZGRlZCkgcHJvY2Vzc29ycywgcmF0aGVyIHRoYW4g b25seSB0aGUKICAgIHByb2Nlc3NvcnMgcHJlc2VudCBhdCBib290LgoKICAgIFRoZSBwb3NzaWJs ZSBjb3VudCAoY2FsbGVkICJtTWF4TnVtYmVyT2ZDcHVzIikgaXMgc2V0IGZyb20KICAgICJQY2RD cHVNYXhMb2dpY2FsUHJvY2Vzc29yTnVtYmVyIjsgd2Ugc2V0IHRoZSBsYXR0ZXIgaW4KICAgIE92 bWZQa2cvUGxhdGZvcm1QZWkuIChSZWZlciB0byBjb21taXQgODMzNTczMTNkZDY3LAogICAgIk92 bWZQa2cvUGxhdGZvcm1QZWk6IHJld3JpdGUgTWF4Q3B1Q291bnRJbml0aWFsaXphdGlvbigpIGZv ciBDUFUKICAgIGhvdHBsdWciLCAyMDIwLTAxLTI5KS4KCigyKSBUaGUgQWRkUHJvY2Vzc29yKCkg YW5kIFJlbW92ZVByb2Nlc3NvcigpIG1lbWJlciBmdW5jdGlvbnMgb2YKICAgIEVGSV9TTU1fQ1BV X1NFUlZJQ0VfUFJPVE9DT0wsIGltcGxlbWVudGVkIGluCiAgICAiVWVmaUNwdVBrZy9QaVNtbUNw dUR4ZVNtbS9DcHVTZXJ2aWNlLmMiLCBhcmUgbm8gbG9uZ2VyCiAgICBzaG9ydC1jaXJjdWl0ZWQg dG8gRUZJX1VOU1VQUE9SVEVELgoKICAgIFdlJ2xsIHJlbHkgb24gdGhlc2UgZnVuY3Rpb25zIGlu IHRoZSBDUFUgaG90cGx1ZyBTTUkgaGFuZGxlciwgaW4gYQogICAgc3Vic2VxdWVudCBwYXRjaC4K CigzKSBJbiBQaUNwdVNtbUVudHJ5KCksIHRoZSBhZGRyZXNzIG9mIHRoZSBDUFVfSE9UX1BMVUdf REFUQSBzdHJ1Y3R1cmUgKGluCiAgICBTTVJBTSkgaXMgZXhwb3NlZCB2aWEgdGhlIGR5bmFtaWMt b25seSAiUGNkQ3B1SG90UGx1Z0RhdGFBZGRyZXNzIi4KCiAgICBUaGlzIHN0cnVjdHVyZSBpcyBh biBpbmZvcm1hdGlvbiBjaGFubmVsIGJldHdlZW4gdGhlIENQVSBob3RwbHVnIFNNSQogICAgaGFu ZGxlciwgYW5kIEVGSV9TTU1fQ1BVX1NFUlZJQ0VfUFJPVE9DT0wuIE5hbWVseSwgYXQgdGhlIGZp cnN0CiAgICAiSW5kZXgiIHdoZXJlIHRoZSBmb2xsb3dpbmcgZXF1YWxpdHkgaG9sZHM6CgogICAg ICBDUFVfSE9UX1BMVUdfREFUQS5BcGljSWRbSW5kZXhdID09IElOVkFMSURfQVBJQ19JRAoKICAg IGEgaG90LXBsdWdnZWQgQ1BVIGNhbiBiZSBhY2NlcHRlZCwgd2l0aCB0aGUgc3RlcHMgYmVsb3c6 CgooMy4xKSBUaGUgaG90cGx1ZyBTTUkgaGFuZGxlciBoYXMgdG8gb3ZlcndyaXRlIElOVkFMSURf QVBJQ19JRCB3aXRoIHRoZQogICAgICBuZXcgQ1BVJ3MgQVBJQyBJRC4KCigzLjIpIFRoZSBuZXcg Q1BVJ3MgU01CQVNFIGhhcyB0byBiZSByZWxvY2F0ZWQgdG86CgogICAgICAgIENQVV9IT1RfUExV R19EQVRBLlNtQmFzZVtJbmRleF0KCiAgICAgICh3aGljaCB3YXMgcHJlY29tcHV0ZWQgaW4gc3Rl cCAoMSkgYWJvdmUpLgoKKDMuMykgVGhlIGhvdHBsdWcgU01JIGhhbmRsZXIgaXMgc3VwcG9zZWQg dG8gY2FsbAogICAgICBFRklfU01NX0NQVV9TRVJWSUNFX1BST1RPQ09MLkFkZFByb2Nlc3Nvcigp LgoKTm90ZTogd2UgbmVlZCBub3Qgc3BlbGwgb3V0ICJQY2RDcHVIb3RQbHVnRGF0YUFkZHJlc3Mi IGluIHRoZQpbUGNkc0R5bmFtaWNEZWZhdWx0XSBzZWN0aW9ucyBvZiB0aGUgT1ZNRiBEU0MgZmls ZXMsIGp1c3Qgc28gdGhlIFBDRApiZWNvbWUgZHluYW1pY2FsbHkgc2V0dGFibGUuIFRoYXQncyBi ZWNhdXNlICJVZWZpQ3B1UGtnLmRlYyIgZGVjbGFyZXMgdGhpcwpQQ0Qgd2l0aCBbUGNkc0R5bmFt aWMsIFBjZHNEeW5hbWljRXhdIGFjY2VzcyBtZXRob2RzICpvbmx5Ki4KCkNjOiBBcmQgQmllc2hl dXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4KQ2M6IElnb3IgTWFtbWVkb3YgPGltYW1t ZWRvQHJlZGhhdC5jb20+CkNjOiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4KQ2M6 IEpvcmRhbiBKdXN0ZW4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+CkNjOiBNaWNoYWVsIEtp bm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+CkNjOiBQaGlsaXBwZSBNYXRoaWV1LURh dWTDqSA8cGhpbG1kQHJlZGhhdC5jb20+ClJlZjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUu b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTEyClNpZ25lZC1vZmYtYnk6IExhc3psbyBFcnNlayA8bGVy c2VrQHJlZGhhdC5jb20+Ci0tLQogT3ZtZlBrZy9Pdm1mUGtnSWEzMi5kc2MgICAgfCAxICsKIE92 bWZQa2cvT3ZtZlBrZ0lhMzJYNjQuZHNjIHwgMSArCiBPdm1mUGtnL092bWZQa2dYNjQuZHNjICAg ICB8IDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9P dm1mUGtnL092bWZQa2dJYTMyLmRzYyBiL092bWZQa2cvT3ZtZlBrZ0lhMzIuZHNjCmluZGV4IDYw ZDhhZjE4NWI5Yy4uOGMwNjVjYTdjZWM5IDEwMDY0NAotLS0gYS9Pdm1mUGtnL092bWZQa2dJYTMy LmRzYworKysgYi9Pdm1mUGtnL092bWZQa2dJYTMyLmRzYwpAQCAtNDE0LDQ0ICs0MTQsNDUgQEAg W0xpYnJhcnlDbGFzc2VzLmNvbW1vbi5TTU1fQ09SRV0KICFlbmRpZg0KICAgUGNpTGlifE92bWZQ a2cvTGlicmFyeS9EeGVQY2lMaWJJNDQwRnhRMzUvRHhlUGNpTGliSTQ0MEZ4UTM1LmluZg0KIA0K ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogIw0KICMgUGNkIFNlY3Rpb24gLSBsaXN0IG9mIGFs bCBFREsgSUkgUENEIEVudHJpZXMgZGVmaW5lZCBieSB0aGlzIFBsYXRmb3JtLg0KICMNCiAjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIw0KIFtQY2RzRmVhdHVyZUZsYWddDQogICBnRWZpTWRlTW9kdWxl UGtnVG9rZW5TcGFjZUd1aWQuUGNkSGlpT3NSdW50aW1lU3VwcG9ydHxGQUxTRQ0KICAgZ0VmaU1k ZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFN0YXR1c0NvZGVVc2VTZXJpYWx8RkFMU0UNCiAg IGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RTdGF0dXNDb2RlVXNlTWVtb3J5fFRS VUUNCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2REeGVJcGxTdXBwb3J0VWVm aURlY29tcHJlc3N8RkFMU0UNCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RE eGVJcGxTd2l0Y2hUb0xvbmdNb2RlfEZBTFNFDQogICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFj ZUd1aWQuUGNkQ29uT3V0R29wU3VwcG9ydHxUUlVFDQogICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5T cGFjZUd1aWQuUGNkQ29uT3V0VWdhU3VwcG9ydHxGQUxTRQ0KICAgZ0VmaU1kZU1vZHVsZVBrZ1Rv a2VuU3BhY2VHdWlkLlBjZEluc3RhbGxBY3BpU2R0UHJvdG9jb2x8VFJVRQ0KICFpZmRlZiAkKENT TV9FTkFCTEUpDQogICBnVWVmaU92bWZQa2dUb2tlblNwYWNlR3VpZC5QY2RDc21FbmFibGV8VFJV RQ0KICFlbmRpZg0KICFpZiAkKFNNTV9SRVFVSVJFKSA9PSBUUlVFDQogICBnVWVmaU92bWZQa2dU b2tlblNwYWNlR3VpZC5QY2RTbW1TbXJhbVJlcXVpcmV8VFJVRQ0KKyAgZ1VlZmlDcHVQa2dUb2tl blNwYWNlR3VpZC5QY2RDcHVIb3RQbHVnU3VwcG9ydHxUUlVFDQogICBnRWZpTWRlTW9kdWxlUGtn VG9rZW5TcGFjZUd1aWQuUGNkRW5hYmxlVmFyaWFibGVSdW50aW1lQ2FjaGV8RkFMU0UNCiAhZW5k aWYNCiANCiBbUGNkc0ZpeGVkQXRCdWlsZF0NCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNl R3VpZC5QY2RTdGF0dXNDb2RlTWVtb3J5U2l6ZXwxDQogICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5T cGFjZUd1aWQuUGNkUmVzZXRPbk1lbW9yeVR5cGVJbmZvcm1hdGlvbkNoYW5nZXxGQUxTRQ0KICAg Z0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZE1heGltdW1HdWlkZWRFeHRyYWN0SGFuZGxlcnww eDEwDQogIWlmICgkKEZEX1NJWkVfSU5fS0IpID09IDEwMjQpIHx8ICgkKEZEX1NJWkVfSU5fS0Ip ID09IDIwNDgpDQogICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkTWF4VmFyaWFi bGVTaXplfDB4MjAwMA0KICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZE1heEF1 dGhWYXJpYWJsZVNpemV8MHgyODAwDQogIWlmICQoTkVUV09SS19UTFNfRU5BQkxFKSA9PSBGQUxT RQ0KICAgIyBtYXRjaCBQY2RGbGFzaE52U3RvcmFnZVZhcmlhYmxlU2l6ZSBwdXJlbHkgZm9yIGNv bnZlbmllbmNlDQogICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkVmFyaWFibGVT dG9yZVNpemV8MHhlMDAwDQogIWVuZGlmDQogIWVuZGlmDQogIWlmICQoRkRfU0laRV9JTl9LQikg PT0gNDA5Ng0KICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZE1heFZhcmlhYmxl U2l6ZXwweDg0MDANCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RNYXhBdXRo VmFyaWFibGVTaXplfDB4ODQwMA0KICFpZiAkKE5FVFdPUktfVExTX0VOQUJMRSkgPT0gRkFMU0UN CiAgICMgbWF0Y2ggUGNkRmxhc2hOdlN0b3JhZ2VWYXJpYWJsZVNpemUgcHVyZWx5IGZvciBjb252 ZW5pZW5jZQ0KICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFZhcmlhYmxlU3Rv cmVTaXplfDB4NDAwMDANCiAhZW5kaWYNCmRpZmYgLS1naXQgYS9Pdm1mUGtnL092bWZQa2dJYTMy WDY0LmRzYyBiL092bWZQa2cvT3ZtZlBrZ0lhMzJYNjQuZHNjCmluZGV4IGJlNmJjN2JkODhhNy4u OTQ0Yjc4NWU2MWE5IDEwMDY0NAotLS0gYS9Pdm1mUGtnL092bWZQa2dJYTMyWDY0LmRzYworKysg Yi9Pdm1mUGtnL092bWZQa2dJYTMyWDY0LmRzYwpAQCAtNDE5LDQ0ICs0MTksNDUgQEAgW0xpYnJh cnlDbGFzc2VzLmNvbW1vbi5TTU1fQ09SRV0KICFlbmRpZg0KICAgUGNpTGlifE92bWZQa2cvTGli cmFyeS9EeGVQY2lMaWJJNDQwRnhRMzUvRHhlUGNpTGliSTQ0MEZ4UTM1LmluZg0KIA0KICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjDQogIw0KICMgUGNkIFNlY3Rpb24gLSBsaXN0IG9mIGFsbCBFREsg SUkgUENEIEVudHJpZXMgZGVmaW5lZCBieSB0aGlzIFBsYXRmb3JtLg0KICMNCiAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIw0KIFtQY2RzRmVhdHVyZUZsYWddDQogICBnRWZpTWRlTW9kdWxlUGtnVG9r ZW5TcGFjZUd1aWQuUGNkSGlpT3NSdW50aW1lU3VwcG9ydHxGQUxTRQ0KICAgZ0VmaU1kZU1vZHVs ZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFN0YXR1c0NvZGVVc2VTZXJpYWx8RkFMU0UNCiAgIGdFZmlN ZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RTdGF0dXNDb2RlVXNlTWVtb3J5fFRSVUUNCiAg IGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2REeGVJcGxTdXBwb3J0VWVmaURlY29t cHJlc3N8RkFMU0UNCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2REeGVJcGxT d2l0Y2hUb0xvbmdNb2RlfFRSVUUNCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5Q Y2RDb25PdXRHb3BTdXBwb3J0fFRSVUUNCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3Vp ZC5QY2RDb25PdXRVZ2FTdXBwb3J0fEZBTFNFDQogICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFj ZUd1aWQuUGNkSW5zdGFsbEFjcGlTZHRQcm90b2NvbHxUUlVFDQogIWlmZGVmICQoQ1NNX0VOQUJM RSkNCiAgIGdVZWZpT3ZtZlBrZ1Rva2VuU3BhY2VHdWlkLlBjZENzbUVuYWJsZXxUUlVFDQogIWVu ZGlmDQogIWlmICQoU01NX1JFUVVJUkUpID09IFRSVUUNCiAgIGdVZWZpT3ZtZlBrZ1Rva2VuU3Bh Y2VHdWlkLlBjZFNtbVNtcmFtUmVxdWlyZXxUUlVFDQorICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VH dWlkLlBjZENwdUhvdFBsdWdTdXBwb3J0fFRSVUUNCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNw YWNlR3VpZC5QY2RFbmFibGVWYXJpYWJsZVJ1bnRpbWVDYWNoZXxGQUxTRQ0KICFlbmRpZg0KIA0K IFtQY2RzRml4ZWRBdEJ1aWxkXQ0KICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBj ZFN0YXR1c0NvZGVNZW1vcnlTaXplfDENCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3Vp ZC5QY2RSZXNldE9uTWVtb3J5VHlwZUluZm9ybWF0aW9uQ2hhbmdlfEZBTFNFDQogICBnRWZpTWRl UGtnVG9rZW5TcGFjZUd1aWQuUGNkTWF4aW11bUd1aWRlZEV4dHJhY3RIYW5kbGVyfDB4MTANCiAh aWYgKCQoRkRfU0laRV9JTl9LQikgPT0gMTAyNCkgfHwgKCQoRkRfU0laRV9JTl9LQikgPT0gMjA0 OCkNCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RNYXhWYXJpYWJsZVNpemV8 MHgyMDAwDQogICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkTWF4QXV0aFZhcmlh YmxlU2l6ZXwweDI4MDANCiAhaWYgJChORVRXT1JLX1RMU19FTkFCTEUpID09IEZBTFNFDQogICAj IG1hdGNoIFBjZEZsYXNoTnZTdG9yYWdlVmFyaWFibGVTaXplIHB1cmVseSBmb3IgY29udmVuaWVu Y2UNCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RWYXJpYWJsZVN0b3JlU2l6 ZXwweGUwMDANCiAhZW5kaWYNCiAhZW5kaWYNCiAhaWYgJChGRF9TSVpFX0lOX0tCKSA9PSA0MDk2 DQogICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkTWF4VmFyaWFibGVTaXplfDB4 ODQwMA0KICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZE1heEF1dGhWYXJpYWJs ZVNpemV8MHg4NDAwDQogIWlmICQoTkVUV09SS19UTFNfRU5BQkxFKSA9PSBGQUxTRQ0KICAgIyBt YXRjaCBQY2RGbGFzaE52U3RvcmFnZVZhcmlhYmxlU2l6ZSBwdXJlbHkgZm9yIGNvbnZlbmllbmNl DQogICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkVmFyaWFibGVTdG9yZVNpemV8 MHg0MDAwMA0KICFlbmRpZg0KZGlmZiAtLWdpdCBhL092bWZQa2cvT3ZtZlBrZ1g2NC5kc2MgYi9P dm1mUGtnL092bWZQa2dYNjQuZHNjCmluZGV4IGUyNThjNDc0YjYwZC4uOGRlMGY3MTc5Nzg0IDEw MDY0NAotLS0gYS9Pdm1mUGtnL092bWZQa2dYNjQuZHNjCisrKyBiL092bWZQa2cvT3ZtZlBrZ1g2 NC5kc2MKQEAgLTQxOSw0NCArNDE5LDQ1IEBAIFtMaWJyYXJ5Q2xhc3Nlcy5jb21tb24uU01NX0NP UkVdCiAhZW5kaWYNCiAgIFBjaUxpYnxPdm1mUGtnL0xpYnJhcnkvRHhlUGNpTGliSTQ0MEZ4UTM1 L0R4ZVBjaUxpYkk0NDBGeFEzNS5pbmYNCiANCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICMN CiAjIFBjZCBTZWN0aW9uIC0gbGlzdCBvZiBhbGwgRURLIElJIFBDRCBFbnRyaWVzIGRlZmluZWQg YnkgdGhpcyBQbGF0Zm9ybS4NCiAjDQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiBbUGNkc0Zl YXR1cmVGbGFnXQ0KICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEhpaU9zUnVu dGltZVN1cHBvcnR8RkFMU0UNCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RT dGF0dXNDb2RlVXNlU2VyaWFsfEZBTFNFDQogICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1 aWQuUGNkU3RhdHVzQ29kZVVzZU1lbW9yeXxUUlVFDQogICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5T cGFjZUd1aWQuUGNkRHhlSXBsU3VwcG9ydFVlZmlEZWNvbXByZXNzfEZBTFNFDQogICBnRWZpTWRl TW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRHhlSXBsU3dpdGNoVG9Mb25nTW9kZXxGQUxTRQ0K ICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENvbk91dEdvcFN1cHBvcnR8VFJV RQ0KICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENvbk91dFVnYVN1cHBvcnR8 RkFMU0UNCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RJbnN0YWxsQWNwaVNk dFByb3RvY29sfFRSVUUNCiAhaWZkZWYgJChDU01fRU5BQkxFKQ0KICAgZ1VlZmlPdm1mUGtnVG9r ZW5TcGFjZUd1aWQuUGNkQ3NtRW5hYmxlfFRSVUUNCiAhZW5kaWYNCiAhaWYgJChTTU1fUkVRVUlS RSkgPT0gVFJVRQ0KICAgZ1VlZmlPdm1mUGtnVG9rZW5TcGFjZUd1aWQuUGNkU21tU21yYW1SZXF1 aXJlfFRSVUUNCisgIGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1SG90UGx1Z1N1cHBv cnR8VFJVRQ0KICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEVuYWJsZVZhcmlh YmxlUnVudGltZUNhY2hlfEZBTFNFDQogIWVuZGlmDQogDQogW1BjZHNGaXhlZEF0QnVpbGRdDQog ICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkU3RhdHVzQ29kZU1lbW9yeVNpemV8 MQ0KICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFJlc2V0T25NZW1vcnlUeXBl SW5mb3JtYXRpb25DaGFuZ2V8RkFMU0UNCiAgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RN YXhpbXVtR3VpZGVkRXh0cmFjdEhhbmRsZXJ8MHgxMA0KICFpZiAoJChGRF9TSVpFX0lOX0tCKSA9 PSAxMDI0KSB8fCAoJChGRF9TSVpFX0lOX0tCKSA9PSAyMDQ4KQ0KICAgZ0VmaU1kZU1vZHVsZVBr Z1Rva2VuU3BhY2VHdWlkLlBjZE1heFZhcmlhYmxlU2l6ZXwweDIwMDANCiAgIGdFZmlNZGVNb2R1 bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RNYXhBdXRoVmFyaWFibGVTaXplfDB4MjgwMA0KICFpZiAk KE5FVFdPUktfVExTX0VOQUJMRSkgPT0gRkFMU0UNCiAgICMgbWF0Y2ggUGNkRmxhc2hOdlN0b3Jh Z2VWYXJpYWJsZVNpemUgcHVyZWx5IGZvciBjb252ZW5pZW5jZQ0KICAgZ0VmaU1kZU1vZHVsZVBr Z1Rva2VuU3BhY2VHdWlkLlBjZFZhcmlhYmxlU3RvcmVTaXplfDB4ZTAwMA0KICFlbmRpZg0KICFl bmRpZg0KICFpZiAkKEZEX1NJWkVfSU5fS0IpID09IDQwOTYNCiAgIGdFZmlNZGVNb2R1bGVQa2dU b2tlblNwYWNlR3VpZC5QY2RNYXhWYXJpYWJsZVNpemV8MHg4NDAwDQogICBnRWZpTWRlTW9kdWxl UGtnVG9rZW5TcGFjZUd1aWQuUGNkTWF4QXV0aFZhcmlhYmxlU2l6ZXwweDg0MDANCiAhaWYgJChO RVRXT1JLX1RMU19FTkFCTEUpID09IEZBTFNFDQogICAjIG1hdGNoIFBjZEZsYXNoTnZTdG9yYWdl VmFyaWFibGVTaXplIHB1cmVseSBmb3IgY29udmVuaWVuY2UNCiAgIGdFZmlNZGVNb2R1bGVQa2dU b2tlblNwYWNlR3VpZC5QY2RWYXJpYWJsZVN0b3JlU2l6ZXwweDQwMDAwDQogIWVuZGlmDQotLSAK Mi4xOS4xLjMuZzMwMjQ3YWE1ZDIwMQoKCg==