From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B1B10C43602 for ; Mon, 29 Jun 2026 13:48:05 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIr-00066R-No; Mon, 29 Jun 2026 09:45:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCIC-0003zn-3c for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:57 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCI6-0006Qi-Te for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:55 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TASwea2641481 for ; Mon, 29 Jun 2026 13:44:39 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= yceAhRCtNZOpbaG7j5M0kMisT3HAlYGvNKxciZB2G+k=; b=YqhAmawBdc9+IwMK g9rQXXy4s41YfX3xJjT/Xddn0l1xJGnjhLEQHKrRt1J76gl6kzQLoLkodw8G7aye 2YTLGicIJPqfti2oXu1CrRvVfOglH80QmiHi2WIhvkiEzoY4lPuZq5e4lOs7W8U1 ADT8UoiirjMeZkjNyR1mtPky5JGt1bRo04SviCyW0aF8cLaZOO8QDNVkoPa7urvy VRCE5RE/d+PYQ+tGAJQDhNXyjDors7vMn8a72ROu46BUPY40Bp6hY54w+D3fXW3E 47MlXRfQ+y4uo7AjFmHjd2MpLyJ6q+VHcRJ3TgJ0K7aoPrtYm6221dYEFRaJWatC 4b9fsA== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3npes2wb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:39 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c9b1b608e2so18075495ad.3 for ; Mon, 29 Jun 2026 06:44:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740679; x=1783345479; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yceAhRCtNZOpbaG7j5M0kMisT3HAlYGvNKxciZB2G+k=; b=VnO3uhqyPFGMGl81hxt954+JSGudrqWWfsD1DJGmHC7QwmRhZBoD+3wArRupy9xCGU +KKn+lszu2H0lLAIt9sh+qthGb2KdctHGpydAq3656M8VR+7rCoHUROFGJo8KlSclz0S 6hcarjnycJIIuErtxlAqTd/CebpVKs3s48nqS4OOxyXBiJ5mYolDD/BHNzyq0/NturAL AjhQA41SJkoZa3XciHccTeSJ0xb8caWhhvSam4lr/CvEsl7E1qIFsLvj73cq3gKG4IQi /hknaf84tIMmW2UAWHYa0m7yIzr/Apu1dD75hzk2rUm3imewn1vC/p4O9bRBNOEmZmOm 1IxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740679; x=1783345479; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=yceAhRCtNZOpbaG7j5M0kMisT3HAlYGvNKxciZB2G+k=; b=aikwHeb4qMbc3UddzwWy8djGURPVMLQUqh1LAJFE/WAudrOcNPsPbwXYflINLJ8lDK JfudeJ/ll7KNI054ow7ai6bk7QxDqY6qbxt3lT+gA2d9BIgR0+6I2nQKsr+9u9jUCc9H V/sJiTcEJbJeU+3M8l1iPoI02aALWCcIL/1AtnCEu7Uk0ja4mYxIPRPq9VzRssqa7qgx +RXlGYEMWElnChg/ffmEKE0CA+HmxzvfhXft30yg65Vvgh+JOP5J8apQfmZvGvw15eGB 3vQVDserD0HN7tHgLOy5D1zPZPypsM/8b9PxIsih/0ekV1HSj7NlBHoo/6uTBKl4qdC7 xnHQ== X-Gm-Message-State: AOJu0YxJsnVbgc4nXYFVFyDgYcv/dr5PBB0ifs5uQAElN/9HSFdQkbRW ouUbLq7SIziDHnQyT5hN5muWA/arPzQVxnlBSsE8o51AhswyTN23EUqBYBEcVk4odusAU0fU1L0 zLXPSmvQ/h8D+62spqYPaRmlBxvR5HLPS6qLm0z9BkizxPcct70G21of2CkO7KVNZwg== X-Gm-Gg: AfdE7cnADV2a12bI3br0OXblyrKn657+K3bNIZLm68OEAMl/bA0qaitKaszAd2ppHlw 0nugYDGs/1jTWCzF9xHR9fnwc8NkDY16qLhLhuu7G87csP7p/pwcVXrLvsWb9t8PY+zjqrnEEGI 2GxQqg8N+3Sjar9Da1wy/8nRIvzkpahf7bmsXc2Pr/1fHf7Q3xWfp0ZolofikDTlqsOnfIeI2ZN UlZh0nkl+miTCXU1wkNUPAy5EjxoWYxIWxq/wD2fT/snT8faCmBTQnO5J/4liZ93xpCQ+vb14fG kq1H1LmkAqy1q/WFqWvf6mn86zSNm9EAvacRCvmMKmOij0IyleFlIqwbwwSAUGxPIGJOBC3K3Nb C9fhe4sJRAdqSlyhGRvex9aYPhKPU4ybPqoOCUGx6ON2l1Q7leQEoWpsJ6rY= X-Received: by 2002:a17:902:f693:b0:2c9:d539:bdab with SMTP id d9443c01a7336-2c9d539befbmr54120515ad.30.1782740678494; Mon, 29 Jun 2026 06:44:38 -0700 (PDT) X-Received: by 2002:a17:902:f693:b0:2c9:d539:bdab with SMTP id d9443c01a7336-2c9d539befbmr54120085ad.30.1782740677801; Mon, 29 Jun 2026 06:44:37 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44:36 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier , Paolo Bonzini , Kevin Wolf , Hanna Reitz , qemu-block@nongnu.org (open list:Block layer core) Subject: [PULL v5 76/77] hw/hexagon: Define hexagon "virt" machine Date: Mon, 29 Jun 2026 06:12:31 -0700 Message-Id: <20260629131232.2487780-77-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX0ict2fyt08ow CwdIxUFAm73yaf1PgHUAHZHdHL8yfUmaSkX3XsCXPX2wCkhdg6iQrvxBZFBikeFPGqxvlznV4KA 8iwohhdDnbUcnpwU+xQg1TN9auRxkh2cLiHIDTq1nCbwj1IFF3oqd9e31nDRj0gVDuFfhk9yoPw 3upRfkkd+mivd6v9f4z5p+m7JtjvYvWMHAdho5yQXZd2UYItjIwFH246d6C9abJ3lKzx6h+vXHR 3zyG/Z54LCPHykKOhoiOrhgW1m3nS3umv00nmLHHb6dnbmSZ90ss5DgPQLr5omSb74ADjukAn0Q viybptAgPyRwJL81aSXnH9qLJVEfQCZLbzPB+SS3Nk0Q6DlnFwRbEDJjxuSLT+oJMuRuiBpxOlZ GgIE4LmuIaE9CwsJNo3xZalgj+too33+7Qovcsn1s1FIMMALnae+nx9wSskKyzA8/KYV5kjeBjx T/hkTg6Xnp13uKNZw/g== X-Proofpoint-ORIG-GUID: hSrJfOY_r3A-7vZuAaHXzvAoKjIVBKKP X-Authority-Analysis: v=2.4 cv=T6q8ifKQ c=1 sm=1 tr=0 ts=6a4276c7 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=CPh6EXbgsUTdwlFVG8oA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX+ahbFNPOoZmb IKb422X2AAwFQTYQfh7eMfj51Wzpdnl9Qo4ql+6eNWrACEFFaXokXF7FI27QrsnB+f2yPNeAOaH 0Q0RkSRuSxwLMwPhtoGj3pUXFpltK2Q= X-Proofpoint-GUID: hSrJfOY_r3A-7vZuAaHXzvAoKjIVBKKP X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org RnJvbTogQnJpYW4gQ2FpbiA8YmNhaW5AcXVpY2luYy5jb20+CgpSZXZpZXdlZC1ieTogUGllcnJp Y2sgQm91dmllciA8cGllcnJpY2suYm91dmllckBvc3MucXVhbGNvbW0uY29tPgpTaWduZWQtb2Zm LWJ5OiBCcmlhbiBDYWluIDxicmlhbi5jYWluQG9zcy5xdWFsY29tbS5jb20+Ci0tLQogY29uZmln cy9kZXZpY2VzL2hleGFnb24tc29mdG1tdS9kZWZhdWx0Lm1hayB8ICAgMSArCiBjb25maWdzL3Rh cmdldHMvaGV4YWdvbi1zb2Z0bW11Lm1hayAgICAgICAgIHwgICAxICsKIGluY2x1ZGUvaHcvaGV4 YWdvbi92aXJ0LmggICAgICAgICAgICAgICAgICAgfCAgMzAgKysKIGh3L2hleGFnb24vdmlydC5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzNDcgKysrKysrKysrKysrKysrKysrKysKIGh3 L2hleGFnb24vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKwogaHcvaGV4 YWdvbi9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiB0ZXN0cy9xZW11 LWlvdGVzdHMvdGVzdGVudi5weSAgICAgICAgICAgICAgIHwgICAxICsKIDcgZmlsZXMgY2hhbmdl ZCwgMzkxIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2h3L2hleGFn b24vdmlydC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaHcvaGV4YWdvbi92aXJ0LmMKCmRpZmYgLS1n aXQgYS9jb25maWdzL2RldmljZXMvaGV4YWdvbi1zb2Z0bW11L2RlZmF1bHQubWFrIGIvY29uZmln cy9kZXZpY2VzL2hleGFnb24tc29mdG1tdS9kZWZhdWx0Lm1hawppbmRleCBmN2ZjODc0ZWIwYy4u NmYyMDA3NzcxYjUgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3MvZGV2aWNlcy9oZXhhZ29uLXNvZnRtbXUv ZGVmYXVsdC5tYWsKKysrIGIvY29uZmlncy9kZXZpY2VzL2hleGFnb24tc29mdG1tdS9kZWZhdWx0 Lm1hawpAQCAtMyw0ICszLDUgQEAKICMgVW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZXMgdG8g ZGlzYWJsZSB0aGVzZSBvcHRpb25hbCBkZXZpY2VzOgogCiAjIEJvYXJkcyBhcmUgc2VsZWN0ZWQg YnkgZGVmYXVsdCwgdW5jb21tZW50IHRvIGtlZXAgb3V0IG9mIHRoZSBidWlsZC4KKyMgQ09ORklH X0hFWF9WSVJUPXkKICMgQ09ORklHX0hFWF9EU1A9eQpkaWZmIC0tZ2l0IGEvY29uZmlncy90YXJn ZXRzL2hleGFnb24tc29mdG1tdS5tYWsgYi9jb25maWdzL3RhcmdldHMvaGV4YWdvbi1zb2Z0bW11 Lm1hawppbmRleCBmZGZhMjliNGYzOS4uYTc3YzEwMGYwYzUgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3Mv dGFyZ2V0cy9oZXhhZ29uLXNvZnRtbXUubWFrCisrKyBiL2NvbmZpZ3MvdGFyZ2V0cy9oZXhhZ29u LXNvZnRtbXUubWFrCkBAIC01LDMgKzUsNCBAQCBUQVJHRVRfWE1MX0ZJTEVTPWhleGFnb24tY29y ZS54bWwgaGV4YWdvbi1odngueG1sCiBUQVJHRVRfTE9OR19CSVRTPTMyCiBUQVJHRVRfTk9UX1VT SU5HX0xFR0FDWV9MRFNUX1BIWVNfQVBJPXkKIFRBUkdFVF9OT1RfVVNJTkdfTEVHQUNZX05BVElW RV9FTkRJQU5fQVBJPXkKK1RBUkdFVF9ORUVEX0ZEVD15CmRpZmYgLS1naXQgYS9pbmNsdWRlL2h3 L2hleGFnb24vdmlydC5oIGIvaW5jbHVkZS9ody9oZXhhZ29uL3ZpcnQuaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmNiNDc3NjIxOTQKLS0tIC9kZXYvbnVsbAorKysg Yi9pbmNsdWRlL2h3L2hleGFnb24vdmlydC5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBEZWZp bml0aW9ucyBmb3IgaGV4YWdvbiB2aXJ0IGJvYXJkLgorICoKKyAqIENvcHlyaWdodCAoYykgUXVh bGNvbW0gVGVjaG5vbG9naWVzLCBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLgorICogU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisjaWZuZGVmIEhX X0hFWEFHT05WSVJUX0gKKyNkZWZpbmUgSFdfSEVYQUdPTlZJUlRfSAorCisjaW5jbHVkZSAiaHcv aGV4YWdvbi9oZXhhZ29uLmgiCisjaW5jbHVkZSAidGFyZ2V0L2hleGFnb24vY3B1LmgiCisKK3N0 cnVjdCBIZXhhZ29uVmlydE1hY2hpbmVTdGF0ZSB7CisgICAgSGV4YWdvbkNvbW1vbk1hY2hpbmVT dGF0ZSBwYXJlbnRfb2JqOworCisgICAgaW50IGZkdF9zaXplOworICAgIE1lbW9yeVJlZ2lvbiAq c3lzOworICAgIE1lbW9yeVJlZ2lvbiB0Y207CisgICAgTWVtb3J5UmVnaW9uIHZ0Y207CisgICAg TWVtb3J5UmVnaW9uIGJpb3M7CisgICAgQ2xvY2sgKmFwYl9jbGs7Cit9OworCit2b2lkIGhleGFn b25fbG9hZF9mZHQoY29uc3Qgc3RydWN0IEhleGFnb25WaXJ0TWFjaGluZVN0YXRlICp2bXMpOwor CisjZGVmaW5lIFRZUEVfSEVYQUdPTl9WSVJUX01BQ0hJTkUgTUFDSElORV9UWVBFX05BTUUoInZp cnQiKQorT0JKRUNUX0RFQ0xBUkVfU0lNUExFX1RZUEUoSGV4YWdvblZpcnRNYWNoaW5lU3RhdGUs IEhFWEFHT05fVklSVF9NQUNISU5FKQorCisjZW5kaWYgLyogSFdfSEVYQUdPTlZJUlRfSCAqLwpk aWZmIC0tZ2l0IGEvaHcvaGV4YWdvbi92aXJ0LmMgYi9ody9oZXhhZ29uL3ZpcnQuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTM2Mzg5OThiODcKLS0tIC9kZXYvbnVs bAorKysgYi9ody9oZXhhZ29uL3ZpcnQuYwpAQCAtMCwwICsxLDM0NyBAQAorLyoKKyAqIEhleGFn b24gdmlydCBlbXVsYXRpb24KKyAqCisgKiBDb3B5cmlnaHQgKGMpIFF1YWxjb21tIFRlY2hub2xv Z2llcywgSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy4KKyAqIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworI2luY2x1ZGUgInFlbXUvb3NkZXAuaCIK KyNpbmNsdWRlICJxYXBpL2Vycm9yLmgiCisjaW5jbHVkZSAiaHcvaGV4YWdvbi92aXJ0LmgiCisj aW5jbHVkZSAiZWxmLmgiCisjaW5jbHVkZSAiaHcvY2hhci9wbDAxMS5oIgorI2luY2x1ZGUgImh3 L2NvcmUvY2xvY2suaCIKKyNpbmNsdWRlICJody9jb3JlL3N5c2J1cy1mZHQuaCIKKyNpbmNsdWRl ICJody9oZXhhZ29uL2hleGFnb24uaCIKKyNpbmNsdWRlICJody9oZXhhZ29uL2hleGFnb25fZ2xv YmFscmVnLmgiCisjaW5jbHVkZSAiaHcvaGV4YWdvbi9oZXhhZ29uX3RsYi5oIgorI2luY2x1ZGUg Imh3L2NvcmUvbG9hZGVyLmgiCisjaW5jbHVkZSAiaHcvY29yZS9xZGV2LXByb3BlcnRpZXMuaCIK KyNpbmNsdWRlICJody9jb3JlL3FkZXYtY2xvY2suaCIKKyNpbmNsdWRlICJody9jb3JlL3JlZ2lz dGVyLmgiCisjaW5jbHVkZSAicWVtdS9lcnJvci1yZXBvcnQuaCIKKyNpbmNsdWRlICJxZW11L2d1 ZXN0LXJhbmRvbS5oIgorI2luY2x1ZGUgInFlbXUvdW5pdHMuaCIKKyNpbmNsdWRlICJtYWNoaW5l X2NmZ192NjhuXzEwMjQuaC5pbmMiCisjaW5jbHVkZSAic3lzdGVtL2FkZHJlc3Mtc3BhY2VzLmgi CisjaW5jbHVkZSAic3lzdGVtL2RldmljZV90cmVlLmgiCisjaW5jbHVkZSAic3lzdGVtL3Jlc2V0 LmgiCisjaW5jbHVkZSAic3lzdGVtL3N5c3RlbS5oIgorI2luY2x1ZGUgPGxpYmZkdC5oPgorCitl bnVtIHsKKyAgICBWSVJUX1VBUlQwLAorICAgIFZJUlRfRkRULAorfTsKKworc3RhdGljIGNvbnN0 IE1lbU1hcEVudHJ5IGJhc2VfbWVtbWFwW10gPSB7CisgICAgW1ZJUlRfVUFSVDBdID0geyAweDEw MDAwMDAwLCAweDAwMDAwMjAwIH0sCisgICAgW1ZJUlRfRkRUXSA9IHsgMHg5OTgwMDAwMCwgMHgw MDQwMDAwMCB9LAorfTsKKworCitzdGF0aWMgdm9pZCBjcmVhdGVfZmR0KEhleGFnb25WaXJ0TWFj aGluZVN0YXRlICp2bXMpCit7CisgICAgTWFjaGluZVN0YXRlICptcyA9IE1BQ0hJTkUodm1zKTsK KyAgICB2b2lkICpmZHQgPSBjcmVhdGVfZGV2aWNlX3RyZWUoJnZtcy0+ZmR0X3NpemUpOworICAg IHVpbnQ4X3Qgcm5nX3NlZWRbMzJdOworCisgICAgaWYgKCFmZHQpIHsKKyAgICAgICAgZXJyb3Jf cmVwb3J0KCJjcmVhdGVfZGV2aWNlX3RyZWUoKSBmYWlsZWQiKTsKKyAgICAgICAgZXhpdCgxKTsK KyAgICB9CisKKyAgICBtcy0+ZmR0ID0gZmR0OworCisgICAgcWVtdV9mZHRfc2V0cHJvcF9jZWxs KGZkdCwgIi8iLCAiI2FkZHJlc3MtY2VsbHMiLCAweDIpOworICAgIHFlbXVfZmR0X3NldHByb3Bf Y2VsbChmZHQsICIvIiwgIiNzaXplLWNlbGxzIiwgMHgxKTsKKyAgICBxZW11X2ZkdF9zZXRwcm9w X3N0cmluZyhmZHQsICIvIiwgIm1vZGVsIiwgImhleGFnb24tdmlydCxxZW11Iik7CisgICAgcWVt dV9mZHRfc2V0cHJvcF9zdHJpbmcoZmR0LCAiLyIsICJjb21wYXRpYmxlIiwgInFjb20sc204MTUw Iik7CisKKyAgICBxZW11X2ZkdF9hZGRfc3Vibm9kZShmZHQsICIvc29jIik7CisgICAgcWVtdV9m ZHRfc2V0cHJvcF9jZWxsKGZkdCwgIi9zb2MiLCAiI2FkZHJlc3MtY2VsbHMiLCAweDIpOworICAg IHFlbXVfZmR0X3NldHByb3BfY2VsbChmZHQsICIvc29jIiwgIiNzaXplLWNlbGxzIiwgMHgxKTsK KyAgICBxZW11X2ZkdF9zZXRwcm9wKGZkdCwgIi9zb2MiLCAicmFuZ2VzIiwgTlVMTCwgMCk7CisK KyAgICBxZW11X2ZkdF9hZGRfc3Vibm9kZShmZHQsICIvY2hvc2VuIik7CisgICAgcWVtdV9ndWVz dF9nZXRyYW5kb21fbm9mYWlsKHJuZ19zZWVkLCBzaXplb2Yocm5nX3NlZWQpKTsKKyAgICBxZW11 X2ZkdF9zZXRwcm9wKGZkdCwgIi9jaG9zZW4iLCAicm5nLXNlZWQiLCBybmdfc2VlZCwgc2l6ZW9m KHJuZ19zZWVkKSk7Cit9CisKK3N0YXRpYyB2b2lkIGZkdF9hZGRfaHZ4KEhleGFnb25WaXJ0TWFj aGluZVN0YXRlICp2bXMsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgaGV4 YWdvbl9tYWNoaW5lX2NvbmZpZyAqbV9jZmcpCit7CisgICAgY29uc3QgTWFjaGluZVN0YXRlICpt cyA9IE1BQ0hJTkUodm1zKTsKKyAgICB1aW50MzJfdCB2dGNtX3NpemVfYnl0ZXMgPSBtX2NmZy0+ Y2ZndGFibGUudnRjbV9zaXplX2tiICogMTAyNDsKKyAgICBpZiAodnRjbV9zaXplX2J5dGVzID4g MCkgeworICAgICAgICBtZW1vcnlfcmVnaW9uX2luaXRfcmFtKCZ2bXMtPnZ0Y20sIE5VTEwsICJ2 dGNtLnJhbSIsIHZ0Y21fc2l6ZV9ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmZXJyb3JfZmF0YWwpOworICAgICAgICBtZW1vcnlfcmVnaW9uX2FkZF9zdWJyZWdpb24odm1z LT5zeXMsIG1fY2ZnLT5jZmd0YWJsZS52dGNtX2Jhc2UgPDwgMTYsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmdm1zLT52dGNtKTsKKworICAgICAgICBxZW11X2ZkdF9hZGRf c3Vibm9kZShtcy0+ZmR0LCAiL3NvYy92dGNtIik7CisgICAgICAgIHFlbXVfZmR0X3NldHByb3Bf c3RyaW5nKG1zLT5mZHQsICIvc29jL3Z0Y20iLCAiY29tcGF0aWJsZSIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJxY29tLGhleGFnb25fdnRjbSIpOworCisgICAgICAgIGFzc2Vy dChzaXplb2YobV9jZmctPmNmZ3RhYmxlLnZ0Y21fYmFzZSkgPT0gc2l6ZW9mKHVpbnQzMl90KSk7 CisgICAgICAgIHFlbXVfZmR0X3NldHByb3BfY2VsbHMobXMtPmZkdCwgIi9zb2MvdnRjbSIsICJy ZWciLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2ZnLT5jZmd0YWJsZS52 dGNtX2Jhc2UgPDwgMTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnRjbV9zaXpl X2J5dGVzKTsKKyAgICB9CisKKyAgICBpZiAobV9jZmctPmNmZ3RhYmxlLmV4dF9jb250ZXh0cyA+ IDApIHsKKyAgICAgICAgcWVtdV9mZHRfYWRkX3N1Ym5vZGUobXMtPmZkdCwgIi9zb2MvaHZ4Iik7 CisgICAgICAgIHFlbXVfZmR0X3NldHByb3Bfc3RyaW5nKG1zLT5mZHQsICIvc29jL2h2eCIsICJj b21wYXRpYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInFjb20saGV4YWdv bi1odngiKTsKKyAgICAgICAgcWVtdV9mZHRfc2V0cHJvcF9jZWxscyhtcy0+ZmR0LCAiL3NvYy9o dngiLCAicWNvbSxodngtbWF4LWN0eHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtX2NmZy0+Y2ZndGFibGUuZXh0X2NvbnRleHRzKTsKKyAgICAgICAgcWVtdV9mZHRfc2V0cHJv cF9jZWxscyhtcy0+ZmR0LCAiL3NvYy9odngiLCAicWNvbSxodngtdmxlbmd0aCIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbV9jZmctPmNmZ3RhYmxlLmh2eF92ZWNfbG9nX2xlbmd0 aCk7CisgICAgfQorfQorCitzdGF0aWMgaW50MzJfdCBmZHRfYWRkX2Nsb2Nrcyhjb25zdCBIZXhh Z29uVmlydE1hY2hpbmVTdGF0ZSAqdm1zKQoreworICAgIE1hY2hpbmVTdGF0ZSAqbXMgPSBNQUNI SU5FKHZtcyk7CisgICAgaW50MzJfdCBjbGtfcGhhbmRsZSA9IHFlbXVfZmR0X2FsbG9jX3BoYW5k bGUobXMtPmZkdCk7CisKKyAgICBxZW11X2ZkdF9hZGRfc3Vibm9kZShtcy0+ZmR0LCAiL2FwYi1w Y2xrIik7CisgICAgcWVtdV9mZHRfc2V0cHJvcF9zdHJpbmcobXMtPmZkdCwgIi9hcGItcGNsayIs ICJjb21wYXRpYmxlIiwgImZpeGVkLWNsb2NrIik7CisgICAgcWVtdV9mZHRfc2V0cHJvcF9jZWxs KG1zLT5mZHQsICIvYXBiLXBjbGsiLCAiI2Nsb2NrLWNlbGxzIiwgMHgwKTsKKyAgICBxZW11X2Zk dF9zZXRwcm9wX2NlbGwobXMtPmZkdCwgIi9hcGItcGNsayIsICJjbG9jay1mcmVxdWVuY3kiLCAy NDAwMDAwMCk7CisgICAgcWVtdV9mZHRfc2V0cHJvcF9zdHJpbmcobXMtPmZkdCwgIi9hcGItcGNs ayIsICJjbG9jay1vdXRwdXQtbmFtZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJj bGsyNG1oeiIpOworICAgIHFlbXVfZmR0X3NldHByb3BfY2VsbChtcy0+ZmR0LCAiL2FwYi1wY2xr IiwgInBoYW5kbGUiLCBjbGtfcGhhbmRsZSk7CisKKyAgICByZXR1cm4gY2xrX3BoYW5kbGU7Cit9 CisKK3N0YXRpYyB2b2lkIGZkdF9hZGRfdWFydChjb25zdCBIZXhhZ29uVmlydE1hY2hpbmVTdGF0 ZSAqdm1zLCBpbnQgdWFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGNsa19w aGFuZGxlKQoreworICAgIGNoYXIgKm5vZGVuYW1lOworICAgIGh3YWRkciBiYXNlID0gYmFzZV9t ZW1tYXBbdWFydF0uYmFzZTsKKyAgICBod2FkZHIgc2l6ZSA9IGJhc2VfbWVtbWFwW3VhcnRdLnNp emU7CisgICAgYXNzZXJ0KHVhcnQgPT0gMCk7CisgICAgY29uc3QgY2hhciBjb21wYXRbXSA9ICJh cm0scGwwMTFcMGFybSxwcmltZWNlbGwiOworICAgIGNvbnN0IGNoYXIgY2xvY2tuYW1lc1tdID0g InVhcnRjbGtcMGFwYl9wY2xrIjsKKyAgICBNYWNoaW5lU3RhdGUgKm1zID0gTUFDSElORSh2bXMp OworICAgIERldmljZVN0YXRlICpkZXY7CisgICAgU3lzQnVzRGV2aWNlICpzOworCisgICAgZGV2 ID0gcWRldl9uZXcoVFlQRV9QTDAxMSk7CisgICAgcyA9IFNZU19CVVNfREVWSUNFKGRldik7Cisg ICAgcWRldl9wcm9wX3NldF9jaHIoZGV2LCAiY2hhcmRldiIsIHNlcmlhbF9oZCgwKSk7CisgICAg cWRldl9jb25uZWN0X2Nsb2NrX2luKGRldiwgImNsayIsIHZtcy0+YXBiX2Nsayk7CisgICAgc3lz YnVzX3JlYWxpemVfYW5kX3VucmVmKHMsICZlcnJvcl9mYXRhbCk7CisgICAgc3lzYnVzX21taW9f bWFwKHMsIDAsIGJhc2UpOworCisgICAgbm9kZW5hbWUgPSBnX3N0cmR1cF9wcmludGYoIi9wbDAx MUAlIiBQUkl4NjQsIGJhc2UpOworICAgIHFlbXVfZmR0X2FkZF9zdWJub2RlKG1zLT5mZHQsIG5v ZGVuYW1lKTsKKworICAgIC8qIE5vdGUgdGhhdCB3ZSBjYW4ndCB1c2Ugc2V0cHJvcF9zdHJpbmcg YmVjYXVzZSBvZiB0aGUgZW1iZWRkZWQgTlVMICovCisgICAgcWVtdV9mZHRfc2V0cHJvcChtcy0+ ZmR0LCBub2RlbmFtZSwgImNvbXBhdGlibGUiLCBjb21wYXQsIHNpemVvZihjb21wYXQpKTsKKyAg ICBxZW11X2ZkdF9zZXRwcm9wX2NlbGxzKG1zLT5mZHQsIG5vZGVuYW1lLCAicmVnIiwgMCwgYmFz ZSwgc2l6ZSk7CisgICAgcWVtdV9mZHRfc2V0cHJvcF9jZWxscyhtcy0+ZmR0LCBub2RlbmFtZSwg ImNsb2NrcyIsIGNsa19waGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xrX3Bo YW5kbGUpOworICAgIHFlbXVfZmR0X3NldHByb3AobXMtPmZkdCwgbm9kZW5hbWUsICJjbG9jay1u YW1lcyIsIGNsb2NrbmFtZXMsCisgICAgICAgICAgICAgICAgICAgICBzaXplb2YoY2xvY2tuYW1l cykpOworCisgICAgcWVtdV9mZHRfc2V0cHJvcF9zdHJpbmcobXMtPmZkdCwgIi9jaG9zZW4iLCAi c3Rkb3V0LXBhdGgiLCBub2RlbmFtZSk7CisgICAgcWVtdV9mZHRfYWRkX3N1Ym5vZGUobXMtPmZk dCwgIi9hbGlhc2VzIik7CisgICAgcWVtdV9mZHRfc2V0cHJvcF9zdHJpbmcobXMtPmZkdCwgIi9h bGlhc2VzIiwgInNlcmlhbDAiLCBub2RlbmFtZSk7CisKKyAgICBnX2ZyZWUobm9kZW5hbWUpOwor fQorCitzdGF0aWMgdm9pZCBmZHRfYWRkX2NwdV9ub2Rlcyhjb25zdCBIZXhhZ29uVmlydE1hY2hp bmVTdGF0ZSAqdm1zKQoreworICAgIE1hY2hpbmVTdGF0ZSAqbXMgPSBNQUNISU5FKHZtcyk7Cisg ICAgcWVtdV9mZHRfYWRkX3N1Ym5vZGUobXMtPmZkdCwgIi9jcHVzIik7CisgICAgcWVtdV9mZHRf c2V0cHJvcF9jZWxsKG1zLT5mZHQsICIvY3B1cyIsICIjYWRkcmVzcy1jZWxscyIsIDB4MSk7Cisg ICAgcWVtdV9mZHRfc2V0cHJvcF9jZWxsKG1zLT5mZHQsICIvY3B1cyIsICIjc2l6ZS1jZWxscyIs IDB4MCk7CisKKyAgICAvKiBjcHUgbm9kZXMgKi8KKyAgICBmb3IgKGludCBudW0gPSBtcy0+c21w LmNwdXMgLSAxOyBudW0gPj0gMDsgbnVtLS0pIHsKKyAgICAgICAgY2hhciAqbm9kZW5hbWUgPSBn X3N0cmR1cF9wcmludGYoIi9jcHVzL2NwdUAlZCIsIG51bSk7CisgICAgICAgIHFlbXVfZmR0X2Fk ZF9zdWJub2RlKG1zLT5mZHQsIG5vZGVuYW1lKTsKKyAgICAgICAgcWVtdV9mZHRfc2V0cHJvcF9z dHJpbmcobXMtPmZkdCwgbm9kZW5hbWUsICJkZXZpY2VfdHlwZSIsICJjcHUiKTsKKyAgICAgICAg cWVtdV9mZHRfc2V0cHJvcF9jZWxsKG1zLT5mZHQsIG5vZGVuYW1lLCAicmVnIiwgbnVtKTsKKyAg ICAgICAgcWVtdV9mZHRfc2V0cHJvcF9jZWxsKG1zLT5mZHQsIG5vZGVuYW1lLCAicGhhbmRsZSIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxZW11X2ZkdF9hbGxvY19waGFuZGxlKG1z LT5mZHQpKTsKKyAgICAgICAgZ19mcmVlKG5vZGVuYW1lKTsKKyAgICB9Cit9CisKKworCitzdGF0 aWMgdm9pZCB2aXJ0X2luc3RhbmNlX2luaXQoT2JqZWN0ICpvYmopCit7CisgICAgSGV4YWdvblZp cnRNYWNoaW5lU3RhdGUgKnZtcyA9IEhFWEFHT05fVklSVF9NQUNISU5FKG9iaik7CisKKyAgICBj cmVhdGVfZmR0KHZtcyk7Cit9CisKK3ZvaWQgaGV4YWdvbl9sb2FkX2ZkdChjb25zdCBIZXhhZ29u VmlydE1hY2hpbmVTdGF0ZSAqdm1zKQoreworICAgIE1hY2hpbmVTdGF0ZSAqbXMgPSBNQUNISU5F KHZtcyk7CisgICAgaHdhZGRyIGZkdF9hZGRyID0gYmFzZV9tZW1tYXBbVklSVF9GRFRdLmJhc2U7 CisgICAgdWludDMyX3QgZmR0c2l6ZSA9IHZtcy0+ZmR0X3NpemU7CisKKyAgICBnX2Fzc2VydChm ZHRzaXplIDw9IGJhc2VfbWVtbWFwW1ZJUlRfRkRUXS5zaXplKTsKKyAgICAvKiBjb3B5IGluIHRo ZSBkZXZpY2UgdHJlZSAqLworICAgIHJvbV9hZGRfYmxvYl9maXhlZF9hcygiZmR0IiwgbXMtPmZk dCwgZmR0c2l6ZSwgZmR0X2FkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZhZGRyZXNz X3NwYWNlX21lbW9yeSk7CisgICAgcWVtdV9yZWdpc3Rlcl9yZXNldF9ub3NuYXBzaG90bG9hZCgK KyAgICAgICAgcWVtdV9mZHRfcmFuZG9taXplX3NlZWRzLAorICAgICAgICByb21fcHRyX2Zvcl9h cygmYWRkcmVzc19zcGFjZV9tZW1vcnksIGZkdF9hZGRyLCBmZHRzaXplKSk7Cit9CisKK3N0YXRp YyB1aW50NjRfdCBsb2FkX2tlcm5lbChjb25zdCBIZXhhZ29uVmlydE1hY2hpbmVTdGF0ZSAqdm1z KQoreworICAgIE1hY2hpbmVTdGF0ZSAqbXMgPSBNQUNISU5FKHZtcyk7CisgICAgdWludDY0X3Qg ZW50cnkgPSAwOworICAgIGlmIChsb2FkX2VsZl9yYW1fc3ltKG1zLT5rZXJuZWxfZmlsZW5hbWUs IE5VTEwsIE5VTEwsIE5VTEwsICZlbnRyeSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICBOVUxMLCBOVUxMLCAwLCBFTV9IRVhBR09OLCAwLCAwLCAmYWRkcmVzc19zcGFjZV9tZW1vcnks CisgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIE5VTEwpID4gMCkgeworICAgICAgICBy ZXR1cm4gZW50cnk7CisgICAgfQorICAgIGVycm9yX3JlcG9ydCgiZXJyb3IgbG9hZGluZyAnJXMn IiwgbXMtPmtlcm5lbF9maWxlbmFtZSk7CisgICAgZXhpdCgxKTsKK30KKworc3RhdGljIHVpbnQ2 NF90IGxvYWRfYmlvcyhIZXhhZ29uVmlydE1hY2hpbmVTdGF0ZSAqdm1zKQoreworICAgIE1hY2hp bmVTdGF0ZSAqbXMgPSBNQUNISU5FKHZtcyk7CisgICAgdWludDY0X3QgYmlvc19hZGRyID0gMHgw OyAgLyogTG9hZCBCSU9TIGF0IHJlc2V0IHZlY3RvciBhZGRyZXNzIDB4MCAqLworICAgIGludCBi aW9zX3NpemU7CisKKyAgICBiaW9zX3NpemUgPSBsb2FkX2ltYWdlX3RhcmdwaHlzKG1zLT5maXJt d2FyZSA/OiAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpb3NfYWRk ciwgNjQgKiAxMDI0LCBOVUxMKTsKKyAgICBpZiAoYmlvc19zaXplIDwgMCkgeworICAgICAgICBl cnJvcl9yZXBvcnQoIkNvdWxkIG5vdCBsb2FkIEJJT1MgJyVzJyIsIG1zLT5maXJtd2FyZSA/OiAi Iik7CisgICAgICAgIGV4aXQoMSk7CisgICAgfQorCisgICAgcmV0dXJuIGJpb3NfYWRkcjsgIC8q IFJldHVybiBlbnRyeSBwb2ludCBhdCBhZGRyZXNzIDB4MCAqLworfQorCitzdGF0aWMgdm9pZCBk b19jcHVfcmVzZXQodm9pZCAqb3BhcXVlKQoreworICAgIEhleGFnb25DUFUgKmNwdSA9IG9wYXF1 ZTsKKyAgICBDUFVTdGF0ZSAqY3MgPSBDUFUoY3B1KTsKKyAgICBjcHVfcmVzZXQoY3MpOworfQor CitzdGF0aWMgdm9pZCB2aXJ0X2luaXQoTWFjaGluZVN0YXRlICptcykKK3sKKyAgICBIZXhhZ29u VmlydE1hY2hpbmVTdGF0ZSAqdm1zID0gSEVYQUdPTl9WSVJUX01BQ0hJTkUobXMpOworICAgIGNv bnN0IHN0cnVjdCBoZXhhZ29uX21hY2hpbmVfY29uZmlnICptX2NmZyA9ICZ2NjhuXzEwMjQ7Cisg ICAgRGV2aWNlU3RhdGUgKmdzcmVnc19kZXY7CisgICAgRGV2aWNlU3RhdGUgKnRsYl9kZXY7Cisg ICAgRGV2aWNlU3RhdGUgKmNwdTA7CisgICAgaW50MzJfdCBjbGtfcGhhbmRsZTsKKworICAgIHFl bXVfZmR0X3NldHByb3Bfc3RyaW5nKG1zLT5mZHQsICIvY2hvc2VuIiwgImJvb3RhcmdzIiwgbXMt Pmtlcm5lbF9jbWRsaW5lKTsKKworICAgIHZtcy0+c3lzID0gZ2V0X3N5c3RlbV9tZW1vcnkoKTsK KworICAgIC8qIENyZWF0ZSBBUEIgY2xvY2sgZm9yIHBlcmlwaGVyYWxzICovCisgICAgdm1zLT5h cGJfY2xrID0gY2xvY2tfbmV3KE9CSkVDVChtcyksICJhcGItcGNsayIpOworICAgIGNsb2NrX3Nl dF9oeih2bXMtPmFwYl9jbGssIDI0MDAwMDAwKTsKKworICAgIG1lbW9yeV9yZWdpb25faW5pdF9y YW0oJnZtcy0+cGFyZW50X29iai5yYW0sIE5VTEwsICJkZHIucmFtIiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1zLT5yYW1fc2l6ZSwgJmVycm9yX2ZhdGFsKTsKKyAgICBtZW1vcnlfcmVn aW9uX2FkZF9zdWJyZWdpb24odm1zLT5zeXMsIDB4MCwgJnZtcy0+cGFyZW50X29iai5yYW0pOwor CisgICAgaWYgKG1fY2ZnLT5sMnRjbV9zaXplKSB7CisgICAgICAgIG1lbW9yeV9yZWdpb25faW5p dF9yYW0oJnZtcy0+dGNtLCBOVUxMLCAidGNtLnJhbSIsIG1fY2ZnLT5sMnRjbV9zaXplLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvcl9mYXRhbCk7CisgICAgICAgIG1lbW9y eV9yZWdpb25fYWRkX3N1YnJlZ2lvbih2bXMtPnN5cywgbV9jZmctPmNmZ3RhYmxlLmwydGNtX2Jh c2UgPDwgMTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdm1zLT50Y20p OworICAgIH0KKworICAgIG1lbW9yeV9yZWdpb25faW5pdF9yb20oJnZtcy0+cGFyZW50X29iai5j Zmd0YWJsZV9yb20sIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uZmlnX3Rh YmxlLnJvbSIsIHNpemVvZihtX2NmZy0+Y2ZndGFibGUpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmVycm9yX2ZhdGFsKTsKKyAgICBtZW1vcnlfcmVnaW9uX2FkZF9zdWJyZWdpb24odm1z LT5zeXMsIG1fY2ZnLT5jZmdiYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm dm1zLT5wYXJlbnRfb2JqLmNmZ3RhYmxlX3JvbSk7CisgICAgZmR0X2FkZF9odngodm1zLCBtX2Nm Zyk7CisKKyAgICBnc3JlZ3NfZGV2ID0gcWRldl9uZXcoVFlQRV9IRVhBR09OX0dMT0JBTFJFRyk7 CisgICAgb2JqZWN0X3Byb3BlcnR5X2FkZF9jaGlsZChPQkpFQ1QobXMpLCAiZ2xvYmFsLXJlZ3Mi LCBPQkpFQ1QoZ3NyZWdzX2RldikpOworICAgIHFkZXZfcHJvcF9zZXRfdWludDY0KGdzcmVnc19k ZXYsICJjb25maWctdGFibGUtYWRkciIsIG1fY2ZnLT5jZmdiYXNlKTsKKyAgICBxZGV2X3Byb3Bf c2V0X3VpbnQzMihnc3JlZ3NfZGV2LCAiZHNwLXJldiIsIHY2OF9yZXYpOworICAgIHN5c2J1c19y ZWFsaXplX2FuZF91bnJlZihTWVNfQlVTX0RFVklDRShnc3JlZ3NfZGV2KSwgJmVycm9yX2ZhdGFs KTsKKworICAgIHRsYl9kZXYgPSBxZGV2X25ldyhUWVBFX0hFWEFHT05fVExCKTsKKyAgICBvYmpl Y3RfcHJvcGVydHlfYWRkX2NoaWxkKE9CSkVDVChtcyksICJ0bGIiLCBPQkpFQ1QodGxiX2Rldikp OworICAgIHFkZXZfcHJvcF9zZXRfdWludDMyKHRsYl9kZXYsICJudW0tZW50cmllcyIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgbV9jZmctPmNmZ3RhYmxlLmp0bGJfc2l6ZV9lbnRyaWVzKTsK KyAgICBzeXNidXNfcmVhbGl6ZV9hbmRfdW5yZWYoU1lTX0JVU19ERVZJQ0UodGxiX2RldiksICZl cnJvcl9mYXRhbCk7CisKKyAgICBjcHUwID0gTlVMTDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8 IG1zLT5zbXAuY3B1czsgaSsrKSB7CisgICAgICAgIEhleGFnb25DUFUgKmNwdSA9IEhFWEFHT05f Q1BVKG9iamVjdF9uZXcobXMtPmNwdV90eXBlKSk7CisgICAgICAgIHFlbXVfcmVnaXN0ZXJfcmVz ZXQoZG9fY3B1X3Jlc2V0LCBjcHUpOworCisgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAg ICAgIGNwdTAgPSBERVZJQ0UoY3B1KTsKKyAgICAgICAgICAgIGlmIChtcy0+a2VybmVsX2ZpbGVu YW1lKSB7CisgICAgICAgICAgICAgICAgdWludDY0X3QgZW50cnkgPSBsb2FkX2tlcm5lbCh2bXMp OworICAgICAgICAgICAgICAgIHFkZXZfcHJvcF9zZXRfdWludDMyKGNwdTAsICJleGVjLXN0YXJ0 LWFkZHIiLCBlbnRyeSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1zLT5maXJtd2FyZSkgewor ICAgICAgICAgICAgICAgIHVpbnQ2NF90IGVudHJ5ID0gbG9hZF9iaW9zKHZtcyk7CisgICAgICAg ICAgICAgICAgcWRldl9wcm9wX3NldF91aW50MzIoY3B1MCwgImV4ZWMtc3RhcnQtYWRkciIsIGVu dHJ5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBxZGV2X3Byb3Bfc2V0X3Vp bnQzMihERVZJQ0UoY3B1KSwgImh0aWQiLCBpKTsKKyAgICAgICAgcWRldl9wcm9wX3NldF9iaXQo REVWSUNFKGNwdSksICJzdGFydC1wb3dlcmVkLW9mZiIsIChpICE9IDApKTsKKyAgICAgICAgb2Jq ZWN0X3Byb3BlcnR5X3NldF9saW5rKE9CSkVDVChjcHUpLCAiZ2xvYmFsLXJlZ3MiLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT0JKRUNUKGdzcmVnc19kZXYpLCAmZXJyb3JfZmF0 YWwpOworICAgICAgICBvYmplY3RfcHJvcGVydHlfc2V0X2xpbmsoT0JKRUNUKGNwdSksICJ0bGIi LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0JKRUNUKHRsYl9kZXYpLCAmZXJy b3JfZmF0YWwpOworCisgICAgICAgIHFkZXZfcmVhbGl6ZV9hbmRfdW5yZWYoREVWSUNFKGNwdSks IE5VTEwsICZlcnJvcl9mYXRhbCk7CisgICAgfQorICAgIGZkdF9hZGRfY3B1X25vZGVzKHZtcyk7 CisgICAgY2xrX3BoYW5kbGUgPSBmZHRfYWRkX2Nsb2Nrcyh2bXMpOworICAgIGZkdF9hZGRfdWFy dCh2bXMsIFZJUlRfVUFSVDAsIGNsa19waGFuZGxlKTsKKworICAgIHJvbV9hZGRfYmxvYl9maXhl ZF9hcygiY29uZmlnX3RhYmxlLnJvbSIsICZtX2NmZy0+Y2ZndGFibGUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVvZihtX2NmZy0+Y2ZndGFibGUpLCBtX2NmZy0+Y2ZnYmFzZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgJmFkZHJlc3Nfc3BhY2VfbWVtb3J5KTsKKworICAgIGhl eGFnb25fbG9hZF9mZHQodm1zKTsKK30KKworCitzdGF0aWMgdm9pZCB2aXJ0X2NsYXNzX2luaXQo T2JqZWN0Q2xhc3MgKm9jLCBjb25zdCB2b2lkICpkYXRhKQoreworICAgIE1hY2hpbmVDbGFzcyAq bWMgPSBNQUNISU5FX0NMQVNTKG9jKTsKKworICAgIG1jLT5kZXNjID0gIkhleGFnb24gVmlydHVh bCBNYWNoaW5lIjsKKyAgICBtYy0+aW5pdCA9IHZpcnRfaW5pdDsKKyAgICBtYy0+ZGVmYXVsdF9j cHVfdHlwZSA9IEhFWEFHT05fQ1BVX1RZUEVfTkFNRSgidjY4Iik7CisgICAgbWMtPmRlZmF1bHRf cmFtX3NpemUgPSA0ICogR2lCOworICAgIG1jLT5tYXhfY3B1cyA9IDg7CisgICAgbWMtPmRlZmF1 bHRfY3B1cyA9IDg7CisgICAgbWMtPmlzX2RlZmF1bHQgPSBmYWxzZTsKKyAgICBtYy0+ZGVmYXVs dF9rZXJuZWxfaXJxY2hpcF9zcGxpdCA9IGZhbHNlOworICAgIG1jLT5ibG9ja19kZWZhdWx0X3R5 cGUgPSBJRl9WSVJUSU87CisgICAgbWMtPmRlZmF1bHRfYm9vdF9vcmRlciA9IE5VTEw7CisgICAg bWMtPm5vX2Nkcm9tID0gMTsKKyAgICBtYy0+bnVtYV9tZW1fc3VwcG9ydGVkID0gZmFsc2U7Cisg ICAgbWMtPmRlZmF1bHRfbmljID0gInZpcnRpby1tbWlvLWJ1cyI7Cit9CisKKworc3RhdGljIGNv bnN0IFR5cGVJbmZvIHZpcnRfbWFjaGluZV90eXBlc1tdID0geyB7CisgICAgLm5hbWUgPSBUWVBF X0hFWEFHT05fVklSVF9NQUNISU5FLAorICAgIC5wYXJlbnQgPSBUWVBFX0hFWEFHT05fQ09NTU9O X01BQ0hJTkUsCisgICAgLmluc3RhbmNlX3NpemUgPSBzaXplb2YoSGV4YWdvblZpcnRNYWNoaW5l U3RhdGUpLAorICAgIC5jbGFzc19pbml0ID0gdmlydF9jbGFzc19pbml0LAorICAgIC5pbnN0YW5j ZV9pbml0ID0gdmlydF9pbnN0YW5jZV9pbml0LAorfSB9OworCitERUZJTkVfVFlQRVModmlydF9t YWNoaW5lX3R5cGVzKQpkaWZmIC0tZ2l0IGEvaHcvaGV4YWdvbi9LY29uZmlnIGIvaHcvaGV4YWdv bi9LY29uZmlnCmluZGV4IGNkZjc3NzBhMzA1Li41MjA2NWFiM2IyMiAxMDA2NDQKLS0tIGEvaHcv aGV4YWdvbi9LY29uZmlnCisrKyBiL2h3L2hleGFnb24vS2NvbmZpZwpAQCAtMiwzICsyLDEzIEBA IGNvbmZpZyBIRVhfRFNQCiAgICAgYm9vbAogICAgIGRlZmF1bHQgeQogICAgIGRlcGVuZHMgb24g SEVYQUdPTgorCitjb25maWcgSEVYX1ZJUlQKKyAgICBib29sCisgICAgZGVmYXVsdCB5CisgICAg ZGVwZW5kcyBvbiBIRVhfRFNQICYmIEZEVAorICAgIHNlbGVjdCBERVZJQ0VfVFJFRQorICAgIHNl bGVjdCBWSVJUSU9fTU1JTworICAgIHNlbGVjdCBQTDAxMQorICAgIHNlbGVjdCBWSVJUSU9fQkxL CisgICAgc2VsZWN0IFZJUlRJT19TQ1NJCmRpZmYgLS1naXQgYS9ody9oZXhhZ29uL21lc29uLmJ1 aWxkIGIvaHcvaGV4YWdvbi9tZXNvbi5idWlsZAppbmRleCBmNTI4ZDJiYzRhYi4uYmFkZTNhMzI5 MjEgMTAwNjQ0Ci0tLSBhL2h3L2hleGFnb24vbWVzb24uYnVpbGQKKysrIGIvaHcvaGV4YWdvbi9t ZXNvbi5idWlsZApAQCAtMiw1ICsyLDYgQEAgaGV4YWdvbl9zcyA9IHNzLnNvdXJjZV9zZXQoKQog aGV4YWdvbl9zcy5hZGQoZmlsZXMoJ2hleGFnb25fdGxiLmMnKSkKIGhleGFnb25fc3MuYWRkKGZp bGVzKCdoZXhhZ29uX2dsb2JhbHJlZy5jJykpCiBoZXhhZ29uX3NzLmFkZCh3aGVuOiAnQ09ORklH X0hFWF9EU1AnLCBpZl90cnVlOiBmaWxlcygnaGV4YWdvbl9kc3AuYycpKQoraGV4YWdvbl9zcy5h ZGQod2hlbjogJ0NPTkZJR19IRVhfVklSVCcsIGlmX3RydWU6IGZpbGVzKCd2aXJ0LmMnKSkKIAog aHdfYXJjaCArPSB7J2hleGFnb24nOiBoZXhhZ29uX3NzfQpkaWZmIC0tZ2l0IGEvdGVzdHMvcWVt dS1pb3Rlc3RzL3Rlc3RlbnYucHkgYi90ZXN0cy9xZW11LWlvdGVzdHMvdGVzdGVudi5weQppbmRl eCBjMzU3ZTZlYmY1MC4uODZiY2RmN2NmYWQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3FlbXUtaW90ZXN0 cy90ZXN0ZW52LnB5CisrKyBiL3Rlc3RzL3FlbXUtaW90ZXN0cy90ZXN0ZW52LnB5CkBAIC0yNTks NiArMjU5LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJjZV9kaXI6IHN0ciwgYnVpbGRfZGly OiBzdHIsCiAgICAgICAgICAgICAoJ2FybScsICd2aXJ0JyksCiAgICAgICAgICAgICAoJ2FhcmNo NjQnLCAndmlydCcpLAogICAgICAgICAgICAgKCdhdnInLCAnbWVnYTI1NjAnKSwKKyAgICAgICAg ICAgICgnaGV4YWdvbicsICd2aXJ0JyksCiAgICAgICAgICAgICAoJ202OGsnLCAndmlydCcpLAog ICAgICAgICAgICAgKCdvcjFrJywgJ3ZpcnQnKSwKICAgICAgICAgICAgICgncmlzY3YzMicsICd2 aXJ0JyksCi0tIAoyLjM0LjEKCg==