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 lists.gnu.org (lists.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 BFFB8C77B73 for ; Thu, 18 May 2023 20:09:53 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pzjrp-0000KV-TV; Thu, 18 May 2023 16:04:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pzjra-00008z-0K for qemu-devel@nongnu.org; Thu, 18 May 2023 16:04:43 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pzjrQ-00056e-OG for qemu-devel@nongnu.org; Thu, 18 May 2023 16:04:37 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34IJaO4I030455; Thu, 18 May 2023 20:04:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=qcppdkim1; bh=ECmn6rhLUfb23UNylnFNnJ+1qjpUjNpE3BdIuBlzSpo=; b=UMcqBMwNKcxu14qIQ9SXldqUldCXOgr3egcwSVVvYM/yE8DM8wK3w0euauqw+9jUQMQq 3XjgBTK48AoKLHMo/Skc1zGAnZenSqnod++MRIqdG9iuNjGqyCFmnBrxN8qo18c5d6f4 z9n4boOvYdf1ugV9kPMUr/3pPlpvQVAZOthSsXpAL1Ag+5eqq4/uFfvIQ2lSJ9zLGXgi aypOQoSdIoAf+FuC0MF/9Mb3DvFFtn5fQ5yjhI3mgx6z2gZ6wTVtQzjBFkQRbhu++Xvj VSoyug4ildSILoswy624cqpgsUXeIY9Bx9EJWMcFmZev06DC/DQjvQSfRQjjMxU9tLyf fg== Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3qn8d2jewt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 May 2023 20:04:17 +0000 Received: from pps.filterd (NALASPPMTA05.qualcomm.com [127.0.0.1]) by NALASPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 34IK1dsm008798; Thu, 18 May 2023 20:04:15 GMT Received: from pps.reinject (localhost [127.0.0.1]) by NALASPPMTA05.qualcomm.com (PPS) with ESMTPS id 3qj3mmt9yy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 May 2023 20:04:15 +0000 Received: from NALASPPMTA05.qualcomm.com (NALASPPMTA05.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 34IK4FRW012571; Thu, 18 May 2023 20:04:15 GMT Received: from hu-devc-sd-u20-a-1.qualcomm.com (hu-tsimpson-lv.qualcomm.com [10.47.204.221]) by NALASPPMTA05.qualcomm.com (PPS) with ESMTPS id 34IK4Eek012539 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 May 2023 20:04:15 +0000 Received: by hu-devc-sd-u20-a-1.qualcomm.com (Postfix, from userid 47164) id 8254A6D5; Thu, 18 May 2023 13:04:13 -0700 (PDT) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: tsimpson@quicinc.com, richard.henderson@linaro.org, philmd@linaro.org, peter.maydell@linaro.org, bcain@quicinc.com, quic_mathbern@quicinc.com, stefanha@redhat.com, ale@rev.ng, anjo@rev.ng, quic_mliebel@quicinc.com Subject: [PULL v2 20/44] Hexagon (target/hexagon) Short-circuit packet register writes Date: Thu, 18 May 2023 13:03:47 -0700 Message-Id: <20230518200411.271148-21-tsimpson@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230518200411.271148-1-tsimpson@quicinc.com> References: <20230518200411.271148-1-tsimpson@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: soXcQkOFkBZxViCRrdHvvXR9IHKZSnAF X-Proofpoint-GUID: soXcQkOFkBZxViCRrdHvvXR9IHKZSnAF X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-05-18_15,2023-05-17_02,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 malwarescore=0 mlxlogscore=512 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 clxscore=1015 mlxscore=0 priorityscore=1501 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305180165 Received-SPF: pass client-ip=205.220.180.131; envelope-from=tsimpson@qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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 SW4gY2VydGFpbiBjYXNlcywgd2UgY2FuIGF2b2lkIHRoZSBvdmVyaGVhZCBvZiB3cml0aW5nIHRv IGhleF9uZXdfdmFsdWUKYW5kIHdyaXRlIGRpcmVjdGx5IHRvIGhleF9ncHIuICBXZSBhZGQgbmVl ZF9jb21taXQgZmllbGQgdG8gRGlzYXNDb250ZXh0CmluZGljYXRpbmcgaWYgdGhlIGVuZC1vZi1w YWNrZXQgY29tbWl0IGlzIG5lZWRlZC4gIElmIGl0IGlzIG5vdCBuZWVkZWQsCmdldF9yZXN1bHRf Z3ByKCkgYW5kIGdldF9yZXN1bHRfZ3ByX3BhaXIoKSBjYW4gcmV0dXJuIGhleF9ncHIuCgpXZSBw YXNzIHRoZSBjdHgtPm5lZWRfY29tbWl0IHRvIGhlbHBlcnMgd2hlbiBuZWVkZWQuCgpGaW5hbGx5 LCB3ZSBjYW4gZWFybHktZXhpdCBmcm9tIGdlbl9yZWdfd3JpdGVzIGR1cmluZyBwYWNrZXQgY29t bWl0LgoKVGhlcmUgYXJlIGEgZmV3IGluc3RydWN0aW9ucyB3aG9zZSBzZW1hbnRpY3Mgd3JpdGUg dG8gdGhlIHJlc3VsdCBiZWZvcmUKcmVhZGluZyBhbGwgdGhlIGlucHV0cy4gIFRoZXJlZm9yZSwg dGhlIGlkZWYtcGFyc2VyIGdlbmVyYXRlZCBjb2RlIGlzCmluY29tcGF0aWJsZSB3aXRoIHNob3J0 LWNpcmN1aXQuICBXZSB0ZWxsIGlkZWYtcGFyc2VyIHRvIHNraXAgdGhlbS4KCkZvciBkZWJ1Z2dp bmcgcHVycG9zZXMsIHdlIGFkZCBhIGNwdSBwcm9wZXJ0eSB0byB0dXJuIG9mZiBzaG9ydC1jaXJj dWl0LgpXaGVuIHRoZSBzaG9ydC1jaXJjdWl0IHByb3BlcnR5IGlzIGZhbHNlLCB3ZSBza2lwIHRo ZSBhbmFseXNpcyBhbmQgZm9yY2UKdGhlIGVuZC1vZi1wYWNrZXQgY29tbWl0LgoKSGVyZSdzIGEg c2ltcGxlIGV4YW1wbGUgb2YgdGhlIFRDRyBnZW5lcmF0ZWQgZm9yCjB4MDA0MDAwYjQ6ICAweDc4 MDBjMDIwIHsgICAgICAgUjAgPSAjMHgxIH0KCkJFRk9SRToKIC0tLS0gMDA0MDAwYjQKIG1vdmlf aTMyIG5ld19yMCwkMHgxCiBtb3ZfaTMyIHIwLG5ld19yMAoKQUZURVI6CiAtLS0tIDAwNDAwMGI0 CiBtb3ZpX2kzMiByMCwkMHgxCgpUaGlzIHBhdGNoIHJlaW50cm9kdWNlcyBhIHVzZSBvZiBjaGVj a19mb3JfYXR0cmliLCBzbyB3ZSByZW1vdmUgdGhlCkdfR05VQ19VTlVTRUQgYWRkZWQgZWFybGll ciBpbiB0aGlzIHNlcmllcy4KClNpZ25lZC1vZmYtYnk6IFRheWxvciBTaW1wc29uIDx0c2ltcHNv bkBxdWljaW5jLmNvbT4KUmV2aWV3ZWQtYnk6IFJpY2hhcmQgSGVuZGVyc29uIDxyaWNoYXJkLmhl bmRlcnNvbkBsaW5hcm8ub3JnPgpSZXZpZXdlZC1ieTogQnJpYW4gQ2FpbiA8YmNhaW5AcXVpY2lu Yy5jb20+Ck1lc3NhZ2UtSWQ6IDwyMDIzMDQyNzIzMDAxMi4zODAwMzI3LTEyLXRzaW1wc29uQHF1 aWNpbmMuY29tPgotLS0KIHRhcmdldC9oZXhhZ29uL2NwdS5oICAgICAgICAgICAgICAgICAgICB8 ICAxICsKIHRhcmdldC9oZXhhZ29uL2dlbl90Y2cuaCAgICAgICAgICAgICAgICB8ICAzICstCiB0 YXJnZXQvaGV4YWdvbi9nZW5wdHIuaCAgICAgICAgICAgICAgICAgfCAgMiArCiB0YXJnZXQvaGV4 YWdvbi9oZWxwZXIuaCAgICAgICAgICAgICAgICAgfCAgMiArLQogdGFyZ2V0L2hleGFnb24vbWFj cm9zLmggICAgICAgICAgICAgICAgIHwgMTMgKysrKy0KIHRhcmdldC9oZXhhZ29uL3RyYW5zbGF0 ZS5oICAgICAgICAgICAgICB8ICAyICsKIHRhcmdldC9oZXhhZ29uL2FyY2guYyAgICAgICAgICAg ICAgICAgICB8ICAzICstCiB0YXJnZXQvaGV4YWdvbi9jcHUuYyAgICAgICAgICAgICAgICAgICAg fCAgMyArKwogdGFyZ2V0L2hleGFnb24vZ2VucHRyLmMgICAgICAgICAgICAgICAgIHwgMzAgKysr Ky0tLS0tLS0KIHRhcmdldC9oZXhhZ29uL29wX2hlbHBlci5jICAgICAgICAgICAgICB8ICA1ICst CiB0YXJnZXQvaGV4YWdvbi90cmFuc2xhdGUuYyAgICAgICAgICAgICAgfCA2NyArKysrKysrKysr KysrKysrKysrKysrKystCiB0YXJnZXQvaGV4YWdvbi9nZW5faGVscGVyX2Z1bmNzLnB5ICAgICAg fCAgMiArCiB0YXJnZXQvaGV4YWdvbi9nZW5faGVscGVyX3Byb3Rvcy5weSAgICAgfCAxMCArKyst CiB0YXJnZXQvaGV4YWdvbi9nZW5faWRlZl9wYXJzZXJfZnVuY3MucHkgfCAgNyArKysKIHRhcmdl dC9oZXhhZ29uL2dlbl90Y2dfZnVuY3MucHkgICAgICAgICB8ICA1ICsrCiB0YXJnZXQvaGV4YWdv bi9oZXhfY29tbW9uLnB5ICAgICAgICAgICAgfCAgMyArKwogMTYgZmlsZXMgY2hhbmdlZCwgMTI4 IGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhh Z29uL2NwdS5oIGIvdGFyZ2V0L2hleGFnb24vY3B1LmgKaW5kZXggNGQ4OTgxZDg2Mi4uNjMxYmZk YmU5YyAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vY3B1LmgKKysrIGIvdGFyZ2V0L2hleGFn b24vY3B1LmgKQEAgLTE1MCw2ICsxNTAsNyBAQCBzdHJ1Y3QgQXJjaENQVSB7CiAKICAgICBib29s IGxsZGJfY29tcGF0OwogICAgIHRhcmdldF91bG9uZyBsbGRiX3N0YWNrX2FkanVzdDsKKyAgICBi b29sIHNob3J0X2NpcmN1aXQ7CiB9OwogCiAjaW5jbHVkZSAiY3B1X2JpdHMuaCIKZGlmZiAtLWdp dCBhL3RhcmdldC9oZXhhZ29uL2dlbl90Y2cuaCBiL3RhcmdldC9oZXhhZ29uL2dlbl90Y2cuaApp bmRleCAwOTlhNmNjNDdmLi43ZTA3MGMzNWJkIDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9n ZW5fdGNnLmgKKysrIGIvdGFyZ2V0L2hleGFnb24vZ2VuX3RjZy5oCkBAIC01OTIsNyArNTkyLDgg QEAKICNkZWZpbmUgZkdFTl9UQ0dfQTVfQUNTKFNIT1JUQ09ERSkgXAogICAgIGRvIHsgXAogICAg ICAgICBnZW5faGVscGVyX3ZhY3NoX3ByZWQoUGVWLCBjcHVfZW52LCBSeHhWLCBSc3NWLCBSdHRW KTsgXAotICAgICAgICBnZW5faGVscGVyX3ZhY3NoX3ZhbChSeHhWLCBjcHVfZW52LCBSeHhWLCBS c3NWLCBSdHRWKTsgXAorICAgICAgICBnZW5faGVscGVyX3ZhY3NoX3ZhbChSeHhWLCBjcHVfZW52 LCBSeHhWLCBSc3NWLCBSdHRWLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRjZ19j b25zdGFudF90bChjdHgtPm5lZWRfY29tbWl0KSk7IFwKICAgICB9IHdoaWxlICgwKQogCiAjZGVm aW5lIGZHRU5fVENHX1MyX2NhYmFjZGVjYmluKFNIT1JUQ09ERSkgXApkaWZmIC0tZ2l0IGEvdGFy Z2V0L2hleGFnb24vZ2VucHRyLmggYi90YXJnZXQvaGV4YWdvbi9nZW5wdHIuaAppbmRleCA3NWQw ZmMyNjJkLi40MjA4NjdmOTM0IDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9nZW5wdHIuaAor KysgYi90YXJnZXQvaGV4YWdvbi9nZW5wdHIuaApAQCAtNTgsNCArNTgsNiBAQCB2b2lkIGdlbl9z ZXRfaGFsZihpbnQgTiwgVENHdiByZXN1bHQsIFRDR3Ygc3JjKTsKIHZvaWQgZ2VuX3NldF9oYWxm X2k2NChpbnQgTiwgVENHdl9pNjQgcmVzdWx0LCBUQ0d2IHNyYyk7CiB2b2lkIHByb2JlX25vc2h1 Zl9sb2FkKFRDR3YgdmEsIGludCBzLCBpbnQgbWkpOwogCitleHRlcm4gY29uc3QgdGFyZ2V0X3Vs b25nIHJlZ19pbW11dF9tYXNrc1tUT1RBTF9QRVJfVEhSRUFEX1JFR1NdOworCiAjZW5kaWYKZGlm ZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2hlbHBlci5oIGIvdGFyZ2V0L2hleGFnb24vaGVscGVy LmgKaW5kZXggNzM4NDllM2Q0OS4uNGI3NTBkMDM1MSAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFn b24vaGVscGVyLmgKKysrIGIvdGFyZ2V0L2hleGFnb24vaGVscGVyLmgKQEAgLTI5LDcgKzI5LDcg QEAgREVGX0hFTFBFUl9GTEFHU180KGZjaXJjYWRkLCBUQ0dfQ0FMTF9OT19SV0dfU0UsIHMzMiwg czMyLCBzMzIsIHMzMiwgczMyKQogREVGX0hFTFBFUl9GTEFHU18xKGZicmV2LCBUQ0dfQ0FMTF9O T19SV0dfU0UsIGkzMiwgaTMyKQogREVGX0hFTFBFUl8zKHNmcmVjaXBhLCBpNjQsIGVudiwgZjMy LCBmMzIpCiBERUZfSEVMUEVSXzIoc2ZpbnZzcXJ0YSwgaTY0LCBlbnYsIGYzMikKLURFRl9IRUxQ RVJfNCh2YWNzaF92YWwsIHM2NCwgZW52LCBzNjQsIHM2NCwgczY0KQorREVGX0hFTFBFUl81KHZh Y3NoX3ZhbCwgczY0LCBlbnYsIHM2NCwgczY0LCBzNjQsIGkzMikKIERFRl9IRUxQRVJfRkxBR1Nf NCh2YWNzaF9wcmVkLCBUQ0dfQ0FMTF9OT19SV0dfU0UsIHMzMiwgZW52LCBzNjQsIHM2NCwgczY0 KQogREVGX0hFTFBFUl9GTEFHU18yKGNhYmFjZGVjYmluX3ZhbCwgVENHX0NBTExfTk9fUldHX1NF LCBzNjQsIHM2NCwgczY0KQogREVGX0hFTFBFUl9GTEFHU18yKGNhYmFjZGVjYmluX3ByZWQsIFRD R19DQUxMX05PX1JXR19TRSwgczMyLCBzNjQsIHM2NCkKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhh Z29uL21hY3Jvcy5oIGIvdGFyZ2V0L2hleGFnb24vbWFjcm9zLmgKaW5kZXggMjRjNzhmZTgwYS4u NTQ1NjJjY2NiMCAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vbWFjcm9zLmgKKysrIGIvdGFy Z2V0L2hleGFnb24vbWFjcm9zLmgKQEAgLTQ0LDggKzQ0LDE3IEBACiAgICAgICAgICAgICAgICAg ICAgcmVnX2ZpZWxkX2luZm9bRklFTERdLm9mZnNldCkKIAogI2RlZmluZSBTRVRfVVNSX0ZJRUxE KEZJRUxELCBWQUwpIFwKLSAgICBmSU5TRVJUX0JJVFMoZW52LT5uZXdfdmFsdWVbSEVYX1JFR19V U1JdLCByZWdfZmllbGRfaW5mb1tGSUVMRF0ud2lkdGgsIFwKLSAgICAgICAgICAgICAgICAgcmVn X2ZpZWxkX2luZm9bRklFTERdLm9mZnNldCwgKFZBTCkpCisgICAgZG8geyBcCisgICAgICAgIGlm IChwa3RfbmVlZF9jb21taXQpIHsgXAorICAgICAgICAgICAgZklOU0VSVF9CSVRTKGVudi0+bmV3 X3ZhbHVlW0hFWF9SRUdfVVNSXSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgcmVnX2ZpZWxk X2luZm9bRklFTERdLndpZHRoLCBcCisgICAgICAgICAgICAgICAgICAgICAgICByZWdfZmllbGRf aW5mb1tGSUVMRF0ub2Zmc2V0LCAoVkFMKSk7IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAg ICAgICAgZklOU0VSVF9CSVRTKGVudi0+Z3ByW0hFWF9SRUdfVVNSXSwgXAorICAgICAgICAgICAg ICAgICAgICAgICAgcmVnX2ZpZWxkX2luZm9bRklFTERdLndpZHRoLCBcCisgICAgICAgICAgICAg ICAgICAgICAgICByZWdfZmllbGRfaW5mb1tGSUVMRF0ub2Zmc2V0LCAoVkFMKSk7IFwKKyAgICAg ICAgfSBcCisgICAgfSB3aGlsZSAoMCkKICNlbmRpZgogCiAjaWZkZWYgUUVNVV9HRU5FUkFURQpk aWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vdHJhbnNsYXRlLmggYi90YXJnZXQvaGV4YWdvbi90 cmFuc2xhdGUuaAppbmRleCBmNzIyMjg4NTlmLi4zZjZmZDM0NTJjIDEwMDY0NAotLS0gYS90YXJn ZXQvaGV4YWdvbi90cmFuc2xhdGUuaAorKysgYi90YXJnZXQvaGV4YWdvbi90cmFuc2xhdGUuaApA QCAtNjIsMTAgKzYyLDEyIEBAIHR5cGVkZWYgc3RydWN0IERpc2FzQ29udGV4dCB7CiAgICAgaW50 IHFyZWdfbG9nX2lkeDsKICAgICBERUNMQVJFX0JJVE1BUChxcmVnc19yZWFkLCBOVU1fUVJFR1Mp OwogICAgIGJvb2wgcHJlX2NvbW1pdDsKKyAgICBib29sIG5lZWRfY29tbWl0OwogICAgIFRDR0Nv bmQgYnJhbmNoX2NvbmQ7CiAgICAgdGFyZ2V0X3Vsb25nIGJyYW5jaF9kZXN0OwogICAgIGJvb2wg aXNfdGlnaHRfbG9vcDsKICAgICBib29sIG5lZWRfcGt0X2hhc19zdG9yZV9zMTsKKyAgICBib29s IHNob3J0X2NpcmN1aXQ7CiB9IERpc2FzQ29udGV4dDsKIAogc3RhdGljIGlubGluZSB2b2lkIGN0 eF9sb2dfcHJlZF93cml0ZShEaXNhc0NvbnRleHQgKmN0eCwgaW50IHBudW0pCmRpZmYgLS1naXQg YS90YXJnZXQvaGV4YWdvbi9hcmNoLmMgYi90YXJnZXQvaGV4YWdvbi9hcmNoLmMKaW5kZXggZGE3 OWI0MWM0ZC4uZDA1M2Q2ODQ4NyAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vYXJjaC5jCisr KyBiL3RhcmdldC9oZXhhZ29uL2FyY2guYwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJp Z2h0KGMpIDIwMTktMjAyMiBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmln aHRzIFJlc2VydmVkLgorICogIENvcHlyaWdodChjKSAyMDE5LTIwMjMgUXVhbGNvbW0gSW5ub3Zh dGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKICAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQpAQCAtMjI0LDYgKzIyNCw3IEBAIHZvaWQgYXJjaF9mcG9wX3N0 YXJ0KENQVUhleGFnb25TdGF0ZSAqZW52KQogCiB2b2lkIGFyY2hfZnBvcF9lbmQoQ1BVSGV4YWdv blN0YXRlICplbnYpCiB7CisgICAgY29uc3QgYm9vbCBwa3RfbmVlZF9jb21taXQgPSB0cnVlOwog ICAgIGludCBmbGFncyA9IGdldF9mbG9hdF9leGNlcHRpb25fZmxhZ3MoJmVudi0+ZnBfc3RhdHVz KTsKICAgICBpZiAoZmxhZ3MgIT0gMCkgewogICAgICAgICBTT0ZURkxPQVRfVEVTVF9GTEFHKGZs b2F0X2ZsYWdfaW5leGFjdCwgRlBJTlBGLCBGUElOUEUpOwpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hl eGFnb24vY3B1LmMgYi90YXJnZXQvaGV4YWdvbi9jcHUuYwppbmRleCBjNzhmZTI1YzlmLi5kNGRm YzM4MmFiIDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9jcHUuYworKysgYi90YXJnZXQvaGV4 YWdvbi9jcHUuYwpAQCAtNTQsNiArNTQsOCBAQCBzdGF0aWMgUHJvcGVydHkgaGV4YWdvbl9sbGRi X2NvbXBhdF9wcm9wZXJ0eSA9CiBzdGF0aWMgUHJvcGVydHkgaGV4YWdvbl9sbGRiX3N0YWNrX2Fk anVzdF9wcm9wZXJ0eSA9CiAgICAgREVGSU5FX1BST1BfVU5TSUdORUQoImxsZGItc3RhY2stYWRq dXN0IiwgSGV4YWdvbkNQVSwgbGxkYl9zdGFja19hZGp1c3QsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgMCwgcWRldl9wcm9wX3VpbnQzMiwgdGFyZ2V0X3Vsb25nKTsKK3N0YXRpYyBQcm9wZXJ0 eSBoZXhhZ29uX3Nob3J0X2NpcmN1aXRfcHJvcGVydHkgPQorICAgIERFRklORV9QUk9QX0JPT0wo InNob3J0LWNpcmN1aXQiLCBIZXhhZ29uQ1BVLCBzaG9ydF9jaXJjdWl0LCB0cnVlKTsKIAogY29u c3QgY2hhciAqIGNvbnN0IGhleGFnb25fcmVnbmFtZXNbVE9UQUxfUEVSX1RIUkVBRF9SRUdTXSA9 IHsKICAgICJyMCIsICJyMSIsICAicjIiLCAgInIzIiwgICJyNCIsICAgInI1IiwgICJyNiIsICAi cjciLApAQCAtMzMwLDYgKzMzMiw3IEBAIHN0YXRpYyB2b2lkIGhleGFnb25fY3B1X2luaXQoT2Jq ZWN0ICpvYmopCiAgICAgY3B1X3NldF9jcHVzdGF0ZV9wb2ludGVycyhjcHUpOwogICAgIHFkZXZf cHJvcGVydHlfYWRkX3N0YXRpYyhERVZJQ0Uob2JqKSwgJmhleGFnb25fbGxkYl9jb21wYXRfcHJv cGVydHkpOwogICAgIHFkZXZfcHJvcGVydHlfYWRkX3N0YXRpYyhERVZJQ0Uob2JqKSwgJmhleGFn b25fbGxkYl9zdGFja19hZGp1c3RfcHJvcGVydHkpOworICAgIHFkZXZfcHJvcGVydHlfYWRkX3N0 YXRpYyhERVZJQ0Uob2JqKSwgJmhleGFnb25fc2hvcnRfY2lyY3VpdF9wcm9wZXJ0eSk7CiB9CiAK ICNpbmNsdWRlICJody9jb3JlL3RjZy1jcHUtb3BzLmgiCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4 YWdvbi9nZW5wdHIuYyBiL3RhcmdldC9oZXhhZ29uL2dlbnB0ci5jCmluZGV4IDNjN2UwZGFmYWYu Ljk4NThkN2JjMzUgMTAwNjQ0Ci0tLSBhL3RhcmdldC9oZXhhZ29uL2dlbnB0ci5jCisrKyBiL3Rh cmdldC9oZXhhZ29uL2dlbnB0ci5jCkBAIC00NSw3ICs0NSw3IEBAIFRDR3YgZ2VuX3JlYWRfcHJl ZyhUQ0d2IHByZWQsIHVpbnQ4X3QgbnVtKQogCiAjZGVmaW5lIElNTVVUQUJMRSAofjApCiAKLXN0 YXRpYyBjb25zdCB0YXJnZXRfdWxvbmcgcmVnX2ltbXV0X21hc2tzW1RPVEFMX1BFUl9USFJFQURf UkVHU10gPSB7Citjb25zdCB0YXJnZXRfdWxvbmcgcmVnX2ltbXV0X21hc2tzW1RPVEFMX1BFUl9U SFJFQURfUkVHU10gPSB7CiAgICAgW0hFWF9SRUdfVVNSXSA9IDB4YzEzMDAwYzAsCiAgICAgW0hF WF9SRUdfUENdID0gSU1NVVRBQkxFLAogICAgIFtIRVhfUkVHX0dQXSA9IDB4M2YsCkBAIC03MCwx NCArNzAsMTggQEAgc3RhdGljIGlubGluZSB2b2lkIGdlbl9tYXNrZWRfcmVnX3dyaXRlKFRDR3Yg bmV3X3ZhbCwgVENHdiBjdXJfdmFsLAogCiBzdGF0aWMgVENHdiBnZXRfcmVzdWx0X2dwcihEaXNh c0NvbnRleHQgKmN0eCwgaW50IHJudW0pCiB7Ci0gICAgcmV0dXJuIGhleF9uZXdfdmFsdWVbcm51 bV07CisgICAgaWYgKGN0eC0+bmVlZF9jb21taXQpIHsKKyAgICAgICAgcmV0dXJuIGhleF9uZXdf dmFsdWVbcm51bV07CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIGhleF9ncHJbcm51bV07 CisgICAgfQogfQogCiBzdGF0aWMgVENHdl9pNjQgZ2V0X3Jlc3VsdF9ncHJfcGFpcihEaXNhc0Nv bnRleHQgKmN0eCwgaW50IHJudW0pCiB7CiAgICAgVENHdl9pNjQgcmVzdWx0ID0gdGNnX3RlbXBf bmV3X2k2NCgpOwotICAgIHRjZ19nZW5fY29uY2F0X2kzMl9pNjQocmVzdWx0LCBoZXhfbmV3X3Zh bHVlW3JudW1dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZXhfbmV3X3Zh bHVlW3JudW0gKyAxXSk7CisgICAgdGNnX2dlbl9jb25jYXRfaTMyX2k2NChyZXN1bHQsIGdldF9y ZXN1bHRfZ3ByKGN0eCwgcm51bSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdldF9yZXN1bHRfZ3ByKGN0eCwgcm51bSArIDEpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQog CkBAIC04Niw3ICs5MCw3IEBAIHZvaWQgZ2VuX2xvZ19yZWdfd3JpdGUoRGlzYXNDb250ZXh0ICpj dHgsIGludCBybnVtLCBUQ0d2IHZhbCkKICAgICBjb25zdCB0YXJnZXRfdWxvbmcgcmVnX21hc2sg PSByZWdfaW1tdXRfbWFza3Nbcm51bV07CiAKICAgICBnZW5fbWFza2VkX3JlZ193cml0ZSh2YWws IGhleF9ncHJbcm51bV0sIHJlZ19tYXNrKTsKLSAgICB0Y2dfZ2VuX21vdl90bChoZXhfbmV3X3Zh bHVlW3JudW1dLCB2YWwpOworICAgIHRjZ19nZW5fbW92X3RsKGdldF9yZXN1bHRfZ3ByKGN0eCwg cm51bSksIHZhbCk7CiAgICAgaWYgKEhFWF9ERUJVRykgewogICAgICAgICAvKiBEbyB0aGlzIHNv IEhFTFBFUihkZWJ1Z19jb21taXRfZW5kKSB3aWxsIGtub3cgKi8KICAgICAgICAgdGNnX2dlbl9t b3ZpX3RsKGhleF9yZWdfd3JpdHRlbltybnVtXSwgMSk7CkBAIC05NSwyNyArOTksMTUgQEAgdm9p ZCBnZW5fbG9nX3JlZ193cml0ZShEaXNhc0NvbnRleHQgKmN0eCwgaW50IHJudW0sIFRDR3YgdmFs KQogCiBzdGF0aWMgdm9pZCBnZW5fbG9nX3JlZ193cml0ZV9wYWlyKERpc2FzQ29udGV4dCAqY3R4 LCBpbnQgcm51bSwgVENHdl9pNjQgdmFsKQogewotICAgIGNvbnN0IHRhcmdldF91bG9uZyByZWdf bWFza19sb3cgPSByZWdfaW1tdXRfbWFza3Nbcm51bV07Ci0gICAgY29uc3QgdGFyZ2V0X3Vsb25n IHJlZ19tYXNrX2hpZ2ggPSByZWdfaW1tdXRfbWFza3Nbcm51bSArIDFdOwogICAgIFRDR3YgdmFs MzIgPSB0Y2dfdGVtcF9uZXcoKTsKIAogICAgIC8qIExvdyB3b3JkICovCiAgICAgdGNnX2dlbl9l eHRybF9pNjRfaTMyKHZhbDMyLCB2YWwpOwotICAgIGdlbl9tYXNrZWRfcmVnX3dyaXRlKHZhbDMy LCBoZXhfZ3ByW3JudW1dLCByZWdfbWFza19sb3cpOwotICAgIHRjZ19nZW5fbW92X3RsKGhleF9u ZXdfdmFsdWVbcm51bV0sIHZhbDMyKTsKLSAgICBpZiAoSEVYX0RFQlVHKSB7Ci0gICAgICAgIC8q IERvIHRoaXMgc28gSEVMUEVSKGRlYnVnX2NvbW1pdF9lbmQpIHdpbGwga25vdyAqLwotICAgICAg ICB0Y2dfZ2VuX21vdmlfdGwoaGV4X3JlZ193cml0dGVuW3JudW1dLCAxKTsKLSAgICB9CisgICAg Z2VuX2xvZ19yZWdfd3JpdGUoY3R4LCBybnVtLCB2YWwzMik7CiAKICAgICAvKiBIaWdoIHdvcmQg Ki8KICAgICB0Y2dfZ2VuX2V4dHJoX2k2NF9pMzIodmFsMzIsIHZhbCk7Ci0gICAgZ2VuX21hc2tl ZF9yZWdfd3JpdGUodmFsMzIsIGhleF9ncHJbcm51bSArIDFdLCByZWdfbWFza19oaWdoKTsKLSAg ICB0Y2dfZ2VuX21vdl90bChoZXhfbmV3X3ZhbHVlW3JudW0gKyAxXSwgdmFsMzIpOwotICAgIGlm IChIRVhfREVCVUcpIHsKLSAgICAgICAgLyogRG8gdGhpcyBzbyBIRUxQRVIoZGVidWdfY29tbWl0 X2VuZCkgd2lsbCBrbm93ICovCi0gICAgICAgIHRjZ19nZW5fbW92aV90bChoZXhfcmVnX3dyaXR0 ZW5bcm51bSArIDFdLCAxKTsKLSAgICB9CisgICAgZ2VuX2xvZ19yZWdfd3JpdGUoY3R4LCBybnVt ICsgMSwgdmFsMzIpOwogfQogCiB2b2lkIGdlbl9sb2dfcHJlZF93cml0ZShEaXNhc0NvbnRleHQg KmN0eCwgaW50IHBudW0sIFRDR3YgdmFsKQpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vb3Bf aGVscGVyLmMgYi90YXJnZXQvaGV4YWdvbi9vcF9oZWxwZXIuYwppbmRleCA0NmNjYzU5MTA2Li5m YzVjMzBhMTQxIDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9vcF9oZWxwZXIuYworKysgYi90 YXJnZXQvaGV4YWdvbi9vcF9oZWxwZXIuYwpAQCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQgSEVMUEVS KGRlYnVnX2NvbW1pdF9lbmQpKENQVUhleGFnb25TdGF0ZSAqZW52LCBpbnQgaGFzX3N0MCwgaW50 IGhhc19zdDEpCiAgICAgICAgICAgICAgICAgcmVnX3ByaW50ZWQgPSB0cnVlOwogICAgICAgICAg ICAgfQogICAgICAgICAgICAgSEVYX0RFQlVHX0xPRygiXHRyJWQgPSAiIFRBUkdFVF9GTVRfbGQg IiAoMHgiIFRBUkdFVF9GTVRfbHggIilcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGks IGVudi0+bmV3X3ZhbHVlW2ldLCBlbnYtPm5ld192YWx1ZVtpXSk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgIGksIGVudi0+Z3ByW2ldLCBlbnYtPmdwcltpXSk7CiAgICAgICAgIH0KICAgICB9 CiAKQEAgLTM1Miw3ICszNTIsOCBAQCB1aW50NjRfdCBIRUxQRVIoc2ZpbnZzcXJ0YSkoQ1BVSGV4 YWdvblN0YXRlICplbnYsIGZsb2F0MzIgUnNWKQogfQogCiBpbnQ2NF90IEhFTFBFUih2YWNzaF92 YWwpKENQVUhleGFnb25TdGF0ZSAqZW52LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 NjRfdCBSeHhWLCBpbnQ2NF90IFJzc1YsIGludDY0X3QgUnR0VikKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludDY0X3QgUnh4ViwgaW50NjRfdCBSc3NWLCBpbnQ2NF90IFJ0dFYsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBwa3RfbmVlZF9jb21taXQpCiB7CiAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspIHsKICAgICAgICAgaW50IHh2ID0gc2V4dHJhY3Q2 NChSeHhWLCBpICogMTYsIDE2KTsKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL3RyYW5zbGF0 ZS5jIGIvdGFyZ2V0L2hleGFnb24vdHJhbnNsYXRlLmMKaW5kZXggZTg0YmQzNDYxOC4uNmZhODg1 Y2YxNiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vdHJhbnNsYXRlLmMKKysrIGIvdGFyZ2V0 L2hleGFnb24vdHJhbnNsYXRlLmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJpbnNuLmgi CiAjaW5jbHVkZSAiZGVjb2RlLmgiCiAjaW5jbHVkZSAidHJhbnNsYXRlLmgiCisjaW5jbHVkZSAi Z2VucHRyLmgiCiAjaW5jbHVkZSAicHJpbnRpbnNuLmgiCiAKICNpbmNsdWRlICJhbmFseXplX2Z1 bmNzX2dlbmVyYXRlZC5jLmluYyIKQEAgLTIzOSw3ICsyNDAsNyBAQCBzdGF0aWMgaW50IHJlYWRf cGFja2V0X3dvcmRzKENQVUhleGFnb25TdGF0ZSAqZW52LCBEaXNhc0NvbnRleHQgKmN0eCwKICAg ICByZXR1cm4gbndvcmRzOwogfQogCi1zdGF0aWMgR19HTlVDX1VOVVNFRCBib29sIGNoZWNrX2Zv cl9hdHRyaWIoUGFja2V0ICpwa3QsIGludCBhdHRyaWIpCitzdGF0aWMgYm9vbCBjaGVja19mb3Jf YXR0cmliKFBhY2tldCAqcGt0LCBpbnQgYXR0cmliKQogewogICAgIGZvciAoaW50IGkgPSAwOyBp IDwgcGt0LT5udW1faW5zbnM7IGkrKykgewogICAgICAgICBpZiAoR0VUX0FUVFJJQihwa3QtPmlu c25baV0ub3Bjb2RlLCBhdHRyaWIpKSB7CkBAIC0zMzYsNiArMzM3LDU4IEBAIHN0YXRpYyB2b2lk IG1hcmtfaW1wbGljaXRfcHJlZF93cml0ZXMoRGlzYXNDb250ZXh0ICpjdHgpCiAgICAgbWFya19p bXBsaWNpdF9wcmVkX3dyaXRlKGN0eCwgQV9JTVBMSUNJVF9XUklURVNfUDMsIDMpOwogfQogCitz dGF0aWMgYm9vbCBwa3RfcmFpc2VzX2V4Y2VwdGlvbihQYWNrZXQgKnBrdCkKK3sKKyAgICBpZiAo Y2hlY2tfZm9yX2F0dHJpYihwa3QsIEFfTE9BRCkgfHwKKyAgICAgICAgY2hlY2tfZm9yX2F0dHJp Yihwa3QsIEFfU1RPUkUpKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1 cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIG5lZWRfY29tbWl0KERpc2FzQ29udGV4dCAqY3R4 KQoreworICAgIFBhY2tldCAqcGt0ID0gY3R4LT5wa3Q7CisKKyAgICAvKgorICAgICAqIElmIHRo ZSBzaG9ydC1jaXJjdWl0IHByb3BlcnR5IGlzIHNldCB0byBmYWxzZSwgd2UnbGwgYWx3YXlzIGRv IHRoZSBjb21taXQKKyAgICAgKi8KKyAgICBpZiAoIWN0eC0+c2hvcnRfY2lyY3VpdCkgeworICAg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAocGt0X3JhaXNlc19leGNlcHRpb24o cGt0KSkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKiBSZWdpc3RlcnMg d2l0aCBpbW11dGFiaWxpdHkgZmxhZ3MgcmVxdWlyZSBuZXdfdmFsdWUgKi8KKyAgICBmb3IgKGlu dCBpID0gMDsgaSA8IGN0eC0+cmVnX2xvZ19pZHg7IGkrKykgeworICAgICAgICBpbnQgcm51bSA9 IGN0eC0+cmVnX2xvZ1tpXTsKKyAgICAgICAgaWYgKHJlZ19pbW11dF9tYXNrc1tybnVtXSkgewor ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBGbG9h dGluZyBwb2ludCBpbnN0cnVjdGlvbnMgYXJlIGhhcmQtY29kZWQgdG8gdXNlIG5ld192YWx1ZSAq LworICAgIGlmIChjaGVja19mb3JfYXR0cmliKHBrdCwgQV9GUE9QKSkgeworICAgICAgICByZXR1 cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAocGt0LT5udW1faW5zbnMgPT0gMSkgeworICAgICAg ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyogQ2hlY2sgZm9yIG92ZXJsYXAgYmV0d2Vl biByZWdpc3RlciByZWFkcyBhbmQgd3JpdGVzICovCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBj dHgtPnJlZ19sb2dfaWR4OyBpKyspIHsKKyAgICAgICAgaW50IHJudW0gPSBjdHgtPnJlZ19sb2db aV07CisgICAgICAgIGlmICh0ZXN0X2JpdChybnVtLCBjdHgtPnJlZ3NfcmVhZCkpIHsKKyAgICAg ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNl OworfQorCiBzdGF0aWMgdm9pZCBtYXJrX2ltcGxpY2l0X3ByZWRfcmVhZChEaXNhc0NvbnRleHQg KmN0eCwgaW50IGF0dHJpYiwgaW50IHBudW0pCiB7CiAgICAgaWYgKEdFVF9BVFRSSUIoY3R4LT5p bnNuLT5vcGNvZGUsIGF0dHJpYikpIHsKQEAgLTM2NSw2ICs0MTgsOCBAQCBzdGF0aWMgdm9pZCBh bmFseXplX3BhY2tldChEaXNhc0NvbnRleHQgKmN0eCkKICAgICAgICAgbWFya19pbXBsaWNpdF9w cmVkX3dyaXRlcyhjdHgpOwogICAgICAgICBtYXJrX2ltcGxpY2l0X3ByZWRfcmVhZHMoY3R4KTsK ICAgICB9CisKKyAgICBjdHgtPm5lZWRfY29tbWl0ID0gbmVlZF9jb21taXQoY3R4KTsKIH0KIAog c3RhdGljIHZvaWQgZ2VuX3N0YXJ0X3BhY2tldChEaXNhc0NvbnRleHQgKmN0eCkKQEAgLTQzNCw3 ICs0ODksOCBAQCBzdGF0aWMgdm9pZCBnZW5fc3RhcnRfcGFja2V0KERpc2FzQ29udGV4dCAqY3R4 KQogICAgIH0KIAogICAgIC8qIFByZWxvYWQgdGhlIHByZWRpY2F0ZWQgcmVnaXN0ZXJzIGludG8g aGV4X25ld192YWx1ZVtpXSAqLwotICAgIGlmICghYml0bWFwX2VtcHR5KGN0eC0+cHJlZGljYXRl ZF9yZWdzLCBUT1RBTF9QRVJfVEhSRUFEX1JFR1MpKSB7CisgICAgaWYgKGN0eC0+bmVlZF9jb21t aXQgJiYKKyAgICAgICAgIWJpdG1hcF9lbXB0eShjdHgtPnByZWRpY2F0ZWRfcmVncywgVE9UQUxf UEVSX1RIUkVBRF9SRUdTKSkgewogICAgICAgICBpbnQgaSA9IGZpbmRfZmlyc3RfYml0KGN0eC0+ cHJlZGljYXRlZF9yZWdzLCBUT1RBTF9QRVJfVEhSRUFEX1JFR1MpOwogICAgICAgICB3aGlsZSAo aSA8IFRPVEFMX1BFUl9USFJFQURfUkVHUykgewogICAgICAgICAgICAgdGNnX2dlbl9tb3ZfdGwo aGV4X25ld192YWx1ZVtpXSwgaGV4X2dwcltpXSk7CkBAIC01NDQsNiArNjAwLDExIEBAIHN0YXRp YyB2b2lkIGdlbl9yZWdfd3JpdGVzKERpc2FzQ29udGV4dCAqY3R4KQogewogICAgIGludCBpOwog CisgICAgLyogRWFybHkgZXhpdCBpZiBub3QgbmVlZGVkICovCisgICAgaWYgKCFjdHgtPm5lZWRf Y29tbWl0KSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBmb3IgKGkgPSAwOyBpIDwg Y3R4LT5yZWdfbG9nX2lkeDsgaSsrKSB7CiAgICAgICAgIGludCByZWdfbnVtID0gY3R4LT5yZWdf bG9nW2ldOwogCkBAIC05MjIsNiArOTgzLDcgQEAgc3RhdGljIHZvaWQgaGV4YWdvbl90cl9pbml0 X2Rpc2FzX2NvbnRleHQoRGlzYXNDb250ZXh0QmFzZSAqZGNiYXNlLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1BVU3RhdGUgKmNzKQogewogICAgIERpc2FzQ29u dGV4dCAqY3R4ID0gY29udGFpbmVyX29mKGRjYmFzZSwgRGlzYXNDb250ZXh0LCBiYXNlKTsKKyAg ICBIZXhhZ29uQ1BVICpoZXhfY3B1ID0gZW52X2FyY2hjcHUoY3MtPmVudl9wdHIpOwogICAgIHVp bnQzMl90IGhleF9mbGFncyA9IGRjYmFzZS0+dGItPmZsYWdzOwogCiAgICAgY3R4LT5tZW1faWR4 ID0gTU1VX1VTRVJfSURYOwpAQCAtOTMwLDYgKzk5Miw3IEBAIHN0YXRpYyB2b2lkIGhleGFnb25f dHJfaW5pdF9kaXNhc19jb250ZXh0KERpc2FzQ29udGV4dEJhc2UgKmRjYmFzZSwKICAgICBjdHgt Pm51bV9odnhfaW5zbnMgPSAwOwogICAgIGN0eC0+YnJhbmNoX2NvbmQgPSBUQ0dfQ09ORF9ORVZF UjsKICAgICBjdHgtPmlzX3RpZ2h0X2xvb3AgPSBGSUVMRF9FWDMyKGhleF9mbGFncywgVEJfRkxB R1MsIElTX1RJR0hUX0xPT1ApOworICAgIGN0eC0+c2hvcnRfY2lyY3VpdCA9IGhleF9jcHUtPnNo b3J0X2NpcmN1aXQ7CiB9CiAKIHN0YXRpYyB2b2lkIGhleGFnb25fdHJfdGJfc3RhcnQoRGlzYXND b250ZXh0QmFzZSAqZGIsIENQVVN0YXRlICpjcHUpCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdv bi9nZW5faGVscGVyX2Z1bmNzLnB5IGIvdGFyZ2V0L2hleGFnb24vZ2VuX2hlbHBlcl9mdW5jcy5w eQppbmRleCBjNzNkNzkyNTgwLi5lMjU5ZWEzZDAzIDEwMDc1NQotLS0gYS90YXJnZXQvaGV4YWdv bi9nZW5faGVscGVyX2Z1bmNzLnB5CisrKyBiL3RhcmdldC9oZXhhZ29uL2dlbl9oZWxwZXJfZnVu Y3MucHkKQEAgLTI4Nyw2ICsyODcsOCBAQCBkZWYgZ2VuX2hlbHBlcl9mdW5jdGlvbihmLCB0YWcs IHRhZ3JlZ3MsIHRhZ2ltbXMpOgogCiAgICAgICAgIGlmIGhleF9jb21tb24ubmVlZF9wa3RfaGFz X211bHRpX2NvZih0YWcpOgogICAgICAgICAgICAgZi53cml0ZSgiLCB1aW50MzJfdCBwa3RfaGFz X211bHRpX2NvZiIpCisgICAgICAgIGlmIChoZXhfY29tbW9uLm5lZWRfcGt0X25lZWRfY29tbWl0 KHRhZykpOgorICAgICAgICAgICAgZi53cml0ZSgiLCB1aW50MzJfdCBwa3RfbmVlZF9jb21taXQi KQogCiAgICAgICAgIGlmIGhleF9jb21tb24ubmVlZF9QQyh0YWcpOgogICAgICAgICAgICAgaWYg aSA+IDA6CmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9nZW5faGVscGVyX3Byb3Rvcy5weSBi L3RhcmdldC9oZXhhZ29uL2dlbl9oZWxwZXJfcHJvdG9zLnB5CmluZGV4IDE4N2NkNmUwNGUuLmM1 ZWNiODUyOTQgMTAwNzU1Ci0tLSBhL3RhcmdldC9oZXhhZ29uL2dlbl9oZWxwZXJfcHJvdG9zLnB5 CisrKyBiL3RhcmdldC9oZXhhZ29uL2dlbl9oZWxwZXJfcHJvdG9zLnB5CkBAIC04Niw2ICs4Niw4 IEBAIGRlZiBnZW5faGVscGVyX3Byb3RvdHlwZShmLCB0YWcsIHRhZ3JlZ3MsIHRhZ2ltbXMpOgog ICAgICAgICAgICAgZGVmX2hlbHBlcl9zaXplID0gbGVuKHJlZ3MpICsgbGVuKGltbXMpICsgbnVt c2NhbGFycmVhZHdyaXRlICsgMQogICAgICAgICAgICAgaWYgaGV4X2NvbW1vbi5uZWVkX3BrdF9o YXNfbXVsdGlfY29mKHRhZyk6CiAgICAgICAgICAgICAgICAgZGVmX2hlbHBlcl9zaXplICs9IDEK KyAgICAgICAgICAgIGlmIGhleF9jb21tb24ubmVlZF9wa3RfbmVlZF9jb21taXQodGFnKToKKyAg ICAgICAgICAgICAgICBkZWZfaGVscGVyX3NpemUgKz0gMQogICAgICAgICAgICAgaWYgaGV4X2Nv bW1vbi5uZWVkX3BhcnQxKHRhZyk6CiAgICAgICAgICAgICAgICAgZGVmX2hlbHBlcl9zaXplICs9 IDEKICAgICAgICAgICAgIGlmIGhleF9jb21tb24ubmVlZF9zbG90KHRhZyk6CkBAIC0xMDMsNiAr MTA1LDggQEAgZGVmIGdlbl9oZWxwZXJfcHJvdG90eXBlKGYsIHRhZywgdGFncmVncywgdGFnaW1t cyk6CiAgICAgICAgICAgICBkZWZfaGVscGVyX3NpemUgPSBsZW4ocmVncykgKyBsZW4oaW1tcykg KyBudW1zY2FsYXJyZWFkd3JpdGUKICAgICAgICAgICAgIGlmIGhleF9jb21tb24ubmVlZF9wa3Rf aGFzX211bHRpX2NvZih0YWcpOgogICAgICAgICAgICAgICAgIGRlZl9oZWxwZXJfc2l6ZSArPSAx CisgICAgICAgICAgICBpZiBoZXhfY29tbW9uLm5lZWRfcGt0X25lZWRfY29tbWl0KHRhZyk6Cisg ICAgICAgICAgICAgICAgZGVmX2hlbHBlcl9zaXplICs9IDEKICAgICAgICAgICAgIGlmIGhleF9j b21tb24ubmVlZF9wYXJ0MSh0YWcpOgogICAgICAgICAgICAgICAgIGRlZl9oZWxwZXJfc2l6ZSAr PSAxCiAgICAgICAgICAgICBpZiBoZXhfY29tbW9uLm5lZWRfc2xvdCh0YWcpOgpAQCAtMTU2LDEw ICsxNjAsMTIgQEAgZGVmIGdlbl9oZWxwZXJfcHJvdG90eXBlKGYsIHRhZywgdGFncmVncywgdGFn aW1tcyk6CiAgICAgICAgIGZvciBpbW1sZXR0LCBiaXRzLCBpbW1zaGlmdCBpbiBpbW1zOgogICAg ICAgICAgICAgZi53cml0ZSgiLCBzMzIiKQogCi0gICAgICAgICMjIEFkZCB0aGUgYXJndW1lbnRz IGZvciB0aGUgaW5zdHJ1Y3Rpb24gcGt0X2hhc19tdWx0aV9jb2YsIHNsb3QgYW5kCi0gICAgICAg ICMjIHBhcnQxIChpZiBuZWVkZWQpCisgICAgICAgICMjIEFkZCB0aGUgYXJndW1lbnRzIGZvciB0 aGUgaW5zdHJ1Y3Rpb24gcGt0X2hhc19tdWx0aV9jb2YsCisgICAgICAgICMjIHBrdF9uZWVkc19j b21taXQsIFBDLCBuZXh0X1BDLCBzbG90LCBhbmQgcGFydDEgKGlmIG5lZWRlZCkKICAgICAgICAg aWYgaGV4X2NvbW1vbi5uZWVkX3BrdF9oYXNfbXVsdGlfY29mKHRhZyk6CiAgICAgICAgICAgICBm LndyaXRlKCIsIGkzMiIpCisgICAgICAgIGlmIGhleF9jb21tb24ubmVlZF9wa3RfbmVlZF9jb21t aXQodGFnKToKKyAgICAgICAgICAgIGYud3JpdGUoJywgaTMyJykKICAgICAgICAgaWYgaGV4X2Nv bW1vbi5uZWVkX1BDKHRhZyk6CiAgICAgICAgICAgICBmLndyaXRlKCIsIGkzMiIpCiAgICAgICAg IGlmIGhleF9jb21tb24uaGVscGVyX25lZWRzX25leHRfUEModGFnKToKZGlmZiAtLWdpdCBhL3Rh cmdldC9oZXhhZ29uL2dlbl9pZGVmX3BhcnNlcl9mdW5jcy5weSBiL3RhcmdldC9oZXhhZ29uL2dl bl9pZGVmX3BhcnNlcl9mdW5jcy5weQppbmRleCBkYzllMzk2YjUyLi5hZDJlNWMwNGQzIDEwMDY0 NAotLS0gYS90YXJnZXQvaGV4YWdvbi9nZW5faWRlZl9wYXJzZXJfZnVuY3MucHkKKysrIGIvdGFy Z2V0L2hleGFnb24vZ2VuX2lkZWZfcGFyc2VyX2Z1bmNzLnB5CkBAIC0xMTEsNiArMTExLDEzIEBA IGRlZiBtYWluKCk6CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGlmICgg dGFnLnN0YXJ0c3dpdGgoJ1I2X3JlbGVhc2VfJykgKToKICAgICAgICAgICAgICAgICBjb250aW51 ZQorICAgICAgICAgICAgIyMgU2tpcCBpbnN0cnVjdGlvbnMgdGhhdCBhcmUgaW5jb21wYXRpYmxl IHdpdGggc2hvcnQtY2lyY3VpdAorICAgICAgICAgICAgIyMgcGFja2V0IHJlZ2lzdGVyIHdyaXRl cworICAgICAgICAgICAgaWYgKCB0YWcgPT0gJ1MyX2luc2VydCcgb3IKKyAgICAgICAgICAgICAg ICAgdGFnID09ICdTMl9pbnNlcnRfcnAnIG9yCisgICAgICAgICAgICAgICAgIHRhZyA9PSAnUzJf YXNyX3Jfc3Z3X3RydW4nIG9yCisgICAgICAgICAgICAgICAgIHRhZyA9PSAnQTJfc3dpeicgKToK KyAgICAgICAgICAgICAgICBjb250aW51ZQogCiAgICAgICAgICAgICByZWdzID0gdGFncmVnc1t0 YWddCiAgICAgICAgICAgICBpbW1zID0gdGFnaW1tc1t0YWddCmRpZmYgLS1naXQgYS90YXJnZXQv aGV4YWdvbi9nZW5fdGNnX2Z1bmNzLnB5IGIvdGFyZ2V0L2hleGFnb24vZ2VuX3RjZ19mdW5jcy5w eQppbmRleCBkOWNjYmU2M2Y2Li4wZTQ1ZDQzNjg1IDEwMDc1NQotLS0gYS90YXJnZXQvaGV4YWdv bi9nZW5fdGNnX2Z1bmNzLnB5CisrKyBiL3RhcmdldC9oZXhhZ29uL2dlbl90Y2dfZnVuY3MucHkK QEAgLTU1MCw2ICs1NTAsOSBAQCBkZWYgZ2VuX3RjZ19mdW5jKGYsIHRhZywgcmVncywgaW1tcyk6 CiAgICAgICAgIGlmIGhleF9jb21tb24ubmVlZF9wa3RfaGFzX211bHRpX2NvZih0YWcpOgogICAg ICAgICAgICAgZi53cml0ZSgiICAgIFRDR3YgcGt0X2hhc19tdWx0aV9jb2YgPSAiKQogICAgICAg ICAgICAgZi53cml0ZSgidGNnX2NvbnN0YW50X3RsKGN0eC0+cGt0LT5wa3RfaGFzX211bHRpX2Nv Zik7XG4iKQorICAgICAgICBpZiBoZXhfY29tbW9uLm5lZWRfcGt0X25lZWRfY29tbWl0KHRhZyk6 CisgICAgICAgICAgICBmLndyaXRlKCIgICAgVENHdiBwa3RfbmVlZF9jb21taXQgPSAiKQorICAg ICAgICAgICAgZi53cml0ZSgidGNnX2NvbnN0YW50X3RsKGN0eC0+bmVlZF9jb21taXQpO1xuIikK ICAgICAgICAgaWYgaGV4X2NvbW1vbi5uZWVkX3BhcnQxKHRhZyk6CiAgICAgICAgICAgICBmLndy aXRlKCIgICAgVENHdiBwYXJ0MSA9IHRjZ19jb25zdGFudF90bChpbnNuLT5wYXJ0MSk7XG4iKQog ICAgICAgICBpZiBoZXhfY29tbW9uLm5lZWRfc2xvdCh0YWcpOgpAQCAtNTk2LDYgKzU5OSw4IEBA IGRlZiBnZW5fdGNnX2Z1bmMoZiwgdGFnLCByZWdzLCBpbW1zKToKIAogICAgICAgICBpZiBoZXhf Y29tbW9uLm5lZWRfcGt0X2hhc19tdWx0aV9jb2YodGFnKToKICAgICAgICAgICAgIGYud3JpdGUo IiwgcGt0X2hhc19tdWx0aV9jb2YiKQorICAgICAgICBpZiBoZXhfY29tbW9uLm5lZWRfcGt0X25l ZWRfY29tbWl0KHRhZyk6CisgICAgICAgICAgICBmLndyaXRlKCIsIHBrdF9uZWVkX2NvbW1pdCIp CiAgICAgICAgIGlmIGhleF9jb21tb24ubmVlZF9QQyh0YWcpOgogICAgICAgICAgICAgZi53cml0 ZSgiLCBQQyIpCiAgICAgICAgIGlmIGhleF9jb21tb24uaGVscGVyX25lZWRzX25leHRfUEModGFn KToKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2hleF9jb21tb24ucHkgYi90YXJnZXQvaGV4 YWdvbi9oZXhfY29tbW9uLnB5CmluZGV4IDIzMmM2ZTJjMjAuLjI5YzA1MDhmNjYgMTAwNzU1Ci0t LSBhL3RhcmdldC9oZXhhZ29uL2hleF9jb21tb24ucHkKKysrIGIvdGFyZ2V0L2hleGFnb24vaGV4 X2NvbW1vbi5weQpAQCAtMjc2LDYgKzI3Niw5IEBAIGRlZiBuZWVkX3BrdF9oYXNfbXVsdGlfY29m KHRhZyk6CiAgICAgcmV0dXJuICJBX0NPRiIgaW4gYXR0cmliZGljdFt0YWddCiAKIAorZGVmIG5l ZWRfcGt0X25lZWRfY29tbWl0KHRhZyk6CisgICAgcmV0dXJuICdBX0lNUExJQ0lUX1dSSVRFU19V U1InIGluIGF0dHJpYmRpY3RbdGFnXQorCiBkZWYgbmVlZF9jb25kZXhlY19yZWcodGFnLCByZWdz KToKICAgICBpZiAiQV9DT05ERVhFQyIgaW4gYXR0cmliZGljdFt0YWddOgogICAgICAgICBmb3Ig cmVndHlwZSwgcmVnaWQsIHRvc3MsIG51bXJlZ3MgaW4gcmVnczoKLS0gCjIuMjUuMQoK