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 EAA7BC77B7D for ; Thu, 18 May 2023 20:12:03 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pzjrx-0000fP-AJ; Thu, 18 May 2023 16:05:01 -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 1pzjrg-00009f-NI for qemu-devel@nongnu.org; Thu, 18 May 2023 16:04:46 -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 1pzjrR-00057i-V5 for qemu-devel@nongnu.org; Thu, 18 May 2023 16:04:42 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34IJT4xG026797; Thu, 18 May 2023 20:04:18 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=wnI5LroXmJTY2HuSehilzrWcAX8PoYmSpi42ksR27bo=; b=FbGw3vOYKmn1UB/bFi8QA9xeS317d8oBbr3b2HadXvkOQ3o0ATa4Yc34rMeHxOc5yA7J jenD6gw4V8pt40afu7PCRzqs2CSrsnS5T90Sulb8iCq07JWVp1zFLFcVRko39qga2yvL 5CLAGZQs7z7IXHYmm26FWSTpDF71bOvXvYAHvCJCFGy27deNYHZj6NWTfGY0B09XYqV0 8IhCf/t7CKXUhXzHChWc9ljKIjcTsZ5fXIcRfpHXjfJ17po7/RwZp1pccP6MPY7uY6cY 5H1dzmK2tAZmWg5XmzBUExMJQhnSJtD5HKt3noE4QASS/64q7UlAuAYkgsrbQi1cGy3U DQ== Received: from nalasppmta02.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3qncbht1y5-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 (NALASPPMTA02.qualcomm.com [127.0.0.1]) by NALASPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 34IK0CRJ028627; Thu, 18 May 2023 20:04:16 GMT Received: from pps.reinject (localhost [127.0.0.1]) by NALASPPMTA02.qualcomm.com (PPS) with ESMTPS id 3qnstj08fp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 May 2023 20:04:16 +0000 Received: from NALASPPMTA02.qualcomm.com (NALASPPMTA02.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 34IK4DBF003722; Thu, 18 May 2023 20:04:16 GMT Received: from hu-devc-sd-u20-a-1.qualcomm.com (hu-tsimpson-lv.qualcomm.com [10.47.204.221]) by NALASPPMTA02.qualcomm.com (PPS) with ESMTPS id 34IK4FlA003778 (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 A1D2B6E0; 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 31/44] Hexagon (target/hexagon) Additional instructions handled by idef-parser Date: Thu, 18 May 2023 13:03:58 -0700 Message-Id: <20230518200411.271148-32-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-GUID: 1afl9n3e6qm5WM6vmN2JzvsIsnjK-wsF X-Proofpoint-ORIG-GUID: 1afl9n3e6qm5WM6vmN2JzvsIsnjK-wsF 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 spamscore=0 lowpriorityscore=0 bulkscore=0 phishscore=0 adultscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 impostorscore=0 mlxscore=0 malwarescore=0 mlxlogscore=707 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 KioqKiBDaGFuZ2VzIGluIHYzICoqKioKRml4IGJ1Z3MgZXhwb3NlZCBieSBkcG1weXNzX3JuZF9z MCBpbnN0cnVjdGlvbgogICAgU2V0IGNvcnJlY3Qgc2l6ZS9zaWduZWRuZXNzIGZvciBjb25zdGFu dHMKICAgIFRlc3QgY2FzZXMgYWRkZWQgdG8gdGVzdHMvdGNnL2hleGFnb24vbWlzYy5jCgoqKioq IENoYW5nZXMgaW4gdjIgKioqKgpGaXggYnVnIGluIGltbV9wcmludCBpZGVudGlmaWVkIGluIGNs YW5nIGJ1aWxkCgpDdXJyZW50bHksIGlkZWYtcGFyc2VyIHNraXBzIGFsbCBmbG9hdGluZyBwb2lu dCBpbnN0cnVjdGlvbnMuICBIb3dldmVyLAp0aGVyZSBhcmUgc29tZSBmbG9hdGluZyBwb2ludCBp bnN0cnVjdGlvbnMgdGhhdCBjYW4gYmUgaGFuZGxlZC4KClRoZSBmb2xsb3dpbmcgaW5zdHJ1Y3Rp b25zIGFyZSBub3cgcGFyc2VkCiAgICBGMl9zZmltbV9wCiAgICBGMl9zZmltbV9uCiAgICBGMl9k ZmltbV9wCiAgICBGMl9kZmltbV9uCiAgICBGMl9kZm1weWxsCiAgICBGMl9kZm1weWxoCgpUbyBt YWtlIHRoZXNlIGluc3RydWN0aW9ucyB3b3JrLCB3ZSBmaXggc29tZSBidWdzIGluIHBhcnNlci1o ZWxwZXJzLmMKICAgIGdlbl9ydmFsdWVfZXh0ZW5kCiAgICBnZW5fY2FzdF9vcAogICAgaW1tX3By aW50CiAgICBsZXhlciBwcm9wZXJseSBzZXRzIHNpemUvc2lnbmVkbmVzcyBvZiBjb25zdGFudHMK ClRlc3QgY2FzZXMgYWRkZWQgdG8gdGVzdHMvdGNnL2hleGFnb24vZnBzdHVmZi5jCgpTaWduZWQt b2ZmLWJ5OiBUYXlsb3IgU2ltcHNvbiA8dHNpbXBzb25AcXVpY2luYy5jb20+ClRlc3RlZC1ieTog QW50b24gSm9oYW5zc29uIDxhbmpvQHJldi5uZz4KUmV2aWV3ZWQtYnk6IEFudG9uIEpvaGFuc3Nv biA8YW5qb0ByZXYubmc+Ck1lc3NhZ2UtSWQ6IDwyMDIzMDUwMTIwMzEyNS40MDI1OTkxLTEtdHNp bXBzb25AcXVpY2luYy5jb20+Ci0tLQogdGFyZ2V0L2hleGFnb24vaWRlZi1wYXJzZXIvcGFyc2Vy LWhlbHBlcnMuaCB8ICAyICstCiB0YXJnZXQvaGV4YWdvbi9pZGVmLXBhcnNlci9wYXJzZXItaGVs cGVycy5jIHwgNjEgKysrKysrKysrKy0tLS0tLS0tLS0tCiB0ZXN0cy90Y2cvaGV4YWdvbi9mcHN0 dWZmLmMgICAgICAgICAgICAgICAgIHwgNTQgKysrKysrKysrKysrKysrKysrCiB0ZXN0cy90Y2cv aGV4YWdvbi9taXNjLmMgICAgICAgICAgICAgICAgICAgIHwgMzUgKysrKysrKysrKysrCiB0YXJn ZXQvaGV4YWdvbi9nZW5faWRlZl9wYXJzZXJfZnVuY3MucHkgICAgIHwgMTAgKysrLQogdGFyZ2V0 L2hleGFnb24vaWRlZi1wYXJzZXIvaWRlZi1wYXJzZXIubGV4ICB8IDM3ICsrKysrKysrKysrLS0K IHRhcmdldC9oZXhhZ29uL2lkZWYtcGFyc2VyL2lkZWYtcGFyc2VyLnkgICAgfCAgMiAtCiA3IGZp bGVzIGNoYW5nZWQsIDE2MCBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS90YXJnZXQvaGV4YWdvbi9pZGVmLXBhcnNlci9wYXJzZXItaGVscGVycy5oIGIvdGFyZ2V0 L2hleGFnb24vaWRlZi1wYXJzZXIvcGFyc2VyLWhlbHBlcnMuaAppbmRleCAxMjM5ZDIzYTZhLi43 YzU4MDg3MTY5IDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9pZGVmLXBhcnNlci9wYXJzZXIt aGVscGVycy5oCisrKyBiL3RhcmdldC9oZXhhZ29uL2lkZWYtcGFyc2VyL3BhcnNlci1oZWxwZXJz LmgKQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCByZWdfY29tcG9zZShDb250ZXh0ICpjLCBZWUxUWVBF ICpsb2NwLCBIZXhSZWcgKnJlZywgY2hhciByZWdfaWRbNV0pOwogCiB2b2lkIHJlZ19wcmludChD b250ZXh0ICpjLCBZWUxUWVBFICpsb2NwLCBIZXhSZWcgKnJlZyk7CiAKLXZvaWQgaW1tX3ByaW50 KENvbnRleHQgKmMsIFlZTFRZUEUgKmxvY3AsIEhleEltbSAqaW1tKTsKK3ZvaWQgaW1tX3ByaW50 KENvbnRleHQgKmMsIFlZTFRZUEUgKmxvY3AsIEhleFZhbHVlICpydmFsdWUpOwogCiB2b2lkIHZh cl9wcmludChDb250ZXh0ICpjLCBZWUxUWVBFICpsb2NwLCBIZXhWYXIgKnZhcik7CiAKZGlmZiAt LWdpdCBhL3RhcmdldC9oZXhhZ29uL2lkZWYtcGFyc2VyL3BhcnNlci1oZWxwZXJzLmMgYi90YXJn ZXQvaGV4YWdvbi9pZGVmLXBhcnNlci9wYXJzZXItaGVscGVycy5jCmluZGV4IDY2MjZlMDA2ZjYu Ljk1NTAwOTcyNjkgMTAwNjQ0Ci0tLSBhL3RhcmdldC9oZXhhZ29uL2lkZWYtcGFyc2VyL3BhcnNl ci1oZWxwZXJzLmMKKysrIGIvdGFyZ2V0L2hleGFnb24vaWRlZi1wYXJzZXIvcGFyc2VyLWhlbHBl cnMuYwpAQCAtMTY3LDggKzE2Nyw5IEBAIHZvaWQgcmVnX3ByaW50KENvbnRleHQgKmMsIFlZTFRZ UEUgKmxvY3AsIEhleFJlZyAqcmVnKQogICAgIEVNSVQoYywgImhleF9ncHJbJXVdIiwgcmVnLT5p ZCk7CiB9CiAKLXZvaWQgaW1tX3ByaW50KENvbnRleHQgKmMsIFlZTFRZUEUgKmxvY3AsIEhleElt bSAqaW1tKQordm9pZCBpbW1fcHJpbnQoQ29udGV4dCAqYywgWVlMVFlQRSAqbG9jcCwgSGV4VmFs dWUgKnJ2YWx1ZSkKIHsKKyAgICBIZXhJbW0gKmltbSA9ICZydmFsdWUtPmltbTsKICAgICBzd2l0 Y2ggKGltbS0+dHlwZSkgewogICAgIGNhc2UgSToKICAgICAgICAgRU1JVChjLCAiaSIpOwpAQCAt MTc3LDcgKzE3OCwyMSBAQCB2b2lkIGltbV9wcmludChDb250ZXh0ICpjLCBZWUxUWVBFICpsb2Nw LCBIZXhJbW0gKmltbSkKICAgICAgICAgRU1JVChjLCAiJWNpViIsIGltbS0+aWQpOwogICAgICAg ICBicmVhazsKICAgICBjYXNlIFZBTFVFOgotICAgICAgICBFTUlUKGMsICIoKGludDY0X3QpICUi IFBSSXU2NCAiVUxMKSIsIChpbnQ2NF90KSBpbW0tPnZhbHVlKTsKKyAgICAgICAgaWYgKHJ2YWx1 ZS0+Yml0X3dpZHRoID09IDMyKSB7CisgICAgICAgICAgICBpZiAocnZhbHVlLT5zaWduZWRuZXNz ID09IFVOU0lHTkVEKSB7CisgICAgICAgICAgICAgICAgRU1JVChjLCAiKCh1aW50MzJfdCkgMHgl IiBQUkl4MzIgIikiLCAodWludDMyX3QpIGltbS0+dmFsdWUpOworICAgICAgICAgICAgfSAgZWxz ZSB7CisgICAgICAgICAgICAgICAgRU1JVChjLCAiKChpbnQzMl90KSAweCUiIFBSSXgzMiAiKSIs IChpbnQzMl90KSBpbW0tPnZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlm IChydmFsdWUtPmJpdF93aWR0aCA9PSA2NCkgeworICAgICAgICAgICAgaWYgKHJ2YWx1ZS0+c2ln bmVkbmVzcyA9PSBVTlNJR05FRCkgeworICAgICAgICAgICAgICAgIEVNSVQoYywgIigodWludDY0 X3QpIDB4JSIgUFJJeDY0ICJVTEwpIiwgKHVpbnQ2NF90KSBpbW0tPnZhbHVlKTsKKyAgICAgICAg ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgRU1JVChjLCAiKChpbnQ2NF90KSAweCUiIFBS SXg2NCAiTEwpIiwgKGludDY0X3QpIGltbS0+dmFsdWUpOworICAgICAgICAgICAgfQorICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKKyAgICAgICAg fQogICAgICAgICBicmVhazsKICAgICBjYXNlIFFFTVVfVE1QOgogICAgICAgICBFTUlUKGMsICJx ZW11X3RtcF8lIiBQUkl1NjQsIGltbS0+aW5kZXgpOwpAQCAtMjEzLDcgKzIyOCw3IEBAIHZvaWQg cnZhbHVlX3ByaW50KENvbnRleHQgKmMsIFlZTFRZUEUgKmxvY3AsIHZvaWQgKnBvaW50ZXIpCiAg ICAgICB0bXBfcHJpbnQoYywgbG9jcCwgJnJ2YWx1ZS0+dG1wKTsKICAgICAgIGJyZWFrOwogICBj YXNlIElNTUVESUFURToKLSAgICAgIGltbV9wcmludChjLCBsb2NwLCAmcnZhbHVlLT5pbW0pOwor ICAgICAgaW1tX3ByaW50KGMsIGxvY3AsIHJ2YWx1ZSk7CiAgICAgICBicmVhazsKICAgY2FzZSBW QVJJRDoKICAgICAgIHZhcl9wcmludChjLCBsb2NwLCAmcnZhbHVlLT52YXIpOwpAQCAtMzg2LDEz ICs0MDEsMTAgQEAgSGV4VmFsdWUgZ2VuX3J2YWx1ZV9leHRlbmQoQ29udGV4dCAqYywgWVlMVFlQ RSAqbG9jcCwgSGV4VmFsdWUgKnJ2YWx1ZSkKIAogICAgIGlmIChydmFsdWUtPnR5cGUgPT0gSU1N RURJQVRFKSB7CiAgICAgICAgIEhleFZhbHVlIHJlcyA9IGdlbl9pbW1fcWVtdV90bXAoYywgbG9j cCwgNjQsIHJ2YWx1ZS0+c2lnbmVkbmVzcyk7Ci0gICAgICAgIGJvb2wgaXNfdW5zaWduZWQgPSAo cnZhbHVlLT5zaWduZWRuZXNzID09IFVOU0lHTkVEKTsKLSAgICAgICAgY29uc3QgY2hhciAqc2ln bl9zdWZmaXggPSBpc191bnNpZ25lZCA/ICJ1IiA6ICIiOwogICAgICAgICBnZW5fY19pbnRfdHlw ZShjLCBsb2NwLCA2NCwgcnZhbHVlLT5zaWduZWRuZXNzKTsKLSAgICAgICAgT1VUKGMsIGxvY3As ICIgIiwgJnJlcywgIiA9ICIpOwotICAgICAgICBPVVQoYywgbG9jcCwgIigiLCBzaWduX3N1ZmZp eCwgImludDY0X3QpICIpOwotICAgICAgICBPVVQoYywgbG9jcCwgIigiLCBzaWduX3N1ZmZpeCwg ImludDMyX3QpICIpOwotICAgICAgICBPVVQoYywgbG9jcCwgcnZhbHVlLCAiO1xuIik7CisgICAg ICAgIE9VVChjLCBsb2NwLCAiICIsICZyZXMsICIgPSAoIik7CisgICAgICAgIGdlbl9jX2ludF90 eXBlKGMsIGxvY3AsIDY0LCBydmFsdWUtPnNpZ25lZG5lc3MpOworICAgICAgICBPVVQoYywgbG9j cCwgIikiLCBydmFsdWUsICI7XG4iKTsKICAgICAgICAgcmV0dXJuIHJlczsKICAgICB9IGVsc2Ug ewogICAgICAgICBIZXhWYWx1ZSByZXMgPSBnZW5fdG1wKGMsIGxvY3AsIDY0LCBydmFsdWUtPnNp Z25lZG5lc3MpOwpAQCAtOTU5LDMzICs5NzEsMTggQEAgSGV4VmFsdWUgZ2VuX2Nhc3Rfb3AoQ29u dGV4dCAqYywKICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHRhcmdldF93aWR0aCwKICAg ICAgICAgICAgICAgICAgICAgIEhleFNpZ25lZG5lc3Mgc2lnbmVkbmVzcykKIHsKKyAgICBIZXhW YWx1ZSByZXM7CiAgICAgYXNzZXJ0X3NpZ25lZG5lc3MoYywgbG9jcCwgc3JjLT5zaWduZWRuZXNz KTsKICAgICBpZiAoc3JjLT5iaXRfd2lkdGggPT0gdGFyZ2V0X3dpZHRoKSB7Ci0gICAgICAgIHJl dHVybiAqc3JjOwotICAgIH0gZWxzZSBpZiAoc3JjLT50eXBlID09IElNTUVESUFURSkgewotICAg ICAgICBIZXhWYWx1ZSByZXMgPSAqc3JjOwotICAgICAgICByZXMuYml0X3dpZHRoID0gdGFyZ2V0 X3dpZHRoOwotICAgICAgICByZXMuc2lnbmVkbmVzcyA9IHNpZ25lZG5lc3M7Ci0gICAgICAgIHJl dHVybiByZXM7CisgICAgICAgIHJlcyA9ICpzcmM7CisgICAgfSBlbHNlIGlmIChzcmMtPmJpdF93 aWR0aCA8IHRhcmdldF93aWR0aCkgeworICAgICAgICByZXMgPSBnZW5fcnZhbHVlX2V4dGVuZChj LCBsb2NwLCBzcmMpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIEhleFZhbHVlIHJlcyA9IGdlbl90 bXAoYywgbG9jcCwgdGFyZ2V0X3dpZHRoLCBzaWduZWRuZXNzKTsKLSAgICAgICAgLyogVHJ1bmNh dGUgKi8KLSAgICAgICAgaWYgKHNyYy0+Yml0X3dpZHRoID4gdGFyZ2V0X3dpZHRoKSB7Ci0gICAg ICAgICAgICBPVVQoYywgbG9jcCwgInRjZ19nZW5fdHJ1bmNfaTY0X3RsKCIsICZyZXMsICIsICIs IHNyYywgIik7XG4iKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFzc2VydF9zaWdu ZWRuZXNzKGMsIGxvY3AsIHNyYy0+c2lnbmVkbmVzcyk7Ci0gICAgICAgICAgICBpZiAoc3JjLT5z aWduZWRuZXNzID09IFVOU0lHTkVEKSB7Ci0gICAgICAgICAgICAgICAgLyogRXh0ZW5kIHVuc2ln bmVkICovCi0gICAgICAgICAgICAgICAgT1VUKGMsIGxvY3AsICJ0Y2dfZ2VuX2V4dHVfaTMyX2k2 NCgiLAotICAgICAgICAgICAgICAgICAgICAmcmVzLCAiLCAiLCBzcmMsICIpO1xuIik7Ci0gICAg ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8qIEV4dGVuZCBzaWduZWQgKi8KLSAg ICAgICAgICAgICAgICBPVVQoYywgbG9jcCwgInRjZ19nZW5fZXh0X2kzMl9pNjQoIiwKLSAgICAg ICAgICAgICAgICAgICAgJnJlcywgIiwgIiwgc3JjLCAiKTtcbiIpOwotICAgICAgICAgICAgfQot ICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXM7CisgICAgICAgIC8qIHNyYy0+Yml0X3dpZHRo ID4gdGFyZ2V0X3dpZHRoICovCisgICAgICAgIHJlcyA9IGdlbl9ydmFsdWVfdHJ1bmNhdGUoYywg bG9jcCwgc3JjKTsKICAgICB9CisgICAgcmVzLnNpZ25lZG5lc3MgPSBzaWduZWRuZXNzOworICAg IHJldHVybiByZXM7CiB9CiAKIApkaWZmIC0tZ2l0IGEvdGVzdHMvdGNnL2hleGFnb24vZnBzdHVm Zi5jIGIvdGVzdHMvdGNnL2hleGFnb24vZnBzdHVmZi5jCmluZGV4IDkwY2U5YTZlZjMuLjI4Zjkz OTcxNTUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3RjZy9oZXhhZ29uL2Zwc3R1ZmYuYworKysgYi90ZXN0 cy90Y2cvaGV4YWdvbi9mcHN0dWZmLmMKQEAgLTIwLDYgKzIwLDcgQEAKICAqLwogCiAjaW5jbHVk ZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxmbG9hdC5oPgogCiBjb25zdCBpbnQgRlBJTlZGX0JJVCA9 IDE7ICAgICAgICAgICAgICAgICAvKiBJbnZhbGlkICovCiBjb25zdCBpbnQgRlBJTlZGID0gMSA8 PCBGUElOVkZfQklUOwpAQCAtNzA2LDYgKzcwNyw1NyBAQCBzdGF0aWMgdm9pZCBjaGVja19mbG9h dDJpbnRfY29udnMoKQogICAgIGNoZWNrX2Zwc3RhdHVzKHVzciwgRlBJTlZGKTsKIH0KIAorc3Rh dGljIHZvaWQgY2hlY2tfZmxvYXRfY29uc3RzKHZvaWQpCit7CisgICAgaW50IHJlczMyOworICAg IHVuc2lnbmVkIGxvbmcgbG9uZyByZXM2NDsKKworICAgIGFzbSgiJTAgPSBzZm1ha2UoIyUxKTpu ZWdcblx0IiA6ICI9ciIocmVzMzIpIDogImkiKDB4ZikpOworICAgIGNoZWNrMzIocmVzMzIsIDB4 YmM5ZTAwMDApOworCisgICAgYXNtKCIlMCA9IHNmbWFrZSgjJTEpOnBvc1xuXHQiIDogIj1yIihy ZXMzMikgOiAiaSIoMHhmKSk7CisgICAgY2hlY2szMihyZXMzMiwgMHgzYzllMDAwMCk7CisKKyAg ICBhc20oIiUwID0gZGZtYWtlKCMlMSk6bmVnXG5cdCIgOiAiPXIiKHJlczY0KSA6ICJpIigweGYp KTsKKyAgICBjaGVjazY0KHJlczY0LCAweGJmOTNjMDAwMDAwMDAwMDBVTEwpOworCisgICAgYXNt KCIlMCA9IGRmbWFrZSgjJTEpOnBvc1xuXHQiIDogIj1yIihyZXM2NCkgOiAiaSIoMHhmKSk7Cisg ICAgY2hlY2s2NChyZXM2NCwgMHgzZjkzYzAwMDAwMDAwMDAwVUxMKTsKK30KKworc3RhdGljIGlu bGluZSB1bnNpZ25lZCBsb25nIGxvbmcgZGZtcHlsbChkb3VibGUgeCwgZG91YmxlIHkpCit7Cisg ICAgdW5zaWduZWQgbG9uZyBsb25nIHJlczY0OworICAgIGFzbSgiJTAgPSBkZm1weWxsKCUxLCAl MikiIDogIj1yIihyZXM2NCkgOiAiciIoeCksICJyIih5KSk7CisgICAgcmV0dXJuIHJlczY0Owor fQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbG9uZyBkZm1weWxoKGRvdWJsZSBhY2Ms IGRvdWJsZSB4LCBkb3VibGUgeSkKK3sKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgcmVzNjQgPSAq KHVuc2lnbmVkIGxvbmcgbG9uZyAqKSZhY2M7CisgICAgYXNtKCIlMCArPSBkZm1weWxoKCUxLCAl MikiIDogIityIihyZXM2NCkgOiAiciIoeCksICJyIih5KSk7CisgICAgcmV0dXJuIHJlczY0Owor fQorCitzdGF0aWMgdm9pZCBjaGVja19kZm1weXh4KHZvaWQpCit7CisgICAgdW5zaWduZWQgbG9u ZyBsb25nIHJlczY0OworCisgICAgcmVzNjQgPSBkZm1weWxsKERCTF9NSU4sIERCTF9NSU4pOwor ICAgIGNoZWNrNjQocmVzNjQsIDBVTEwpOworICAgIHJlczY0ID0gZGZtcHlsbCgtMS4wLCBEQkxf TUlOKTsKKyAgICBjaGVjazY0KHJlczY0LCAwVUxMKTsKKyAgICByZXM2NCA9IGRmbXB5bGwoREJM X01BWCwgREJMX01BWCk7CisgICAgY2hlY2s2NChyZXM2NCwgMHgxZmZmZmZmZmRVTEwpOworCisg ICAgcmVzNjQgPSBkZm1weWxoKERCTF9NSU4sIERCTF9NSU4sIERCTF9NSU4pOworICAgIGNoZWNr NjQocmVzNjQsIDB4MTAwMDAwMDAwMDAwMDBVTEwpOworICAgIHJlczY0ID0gZGZtcHlsaCgtMS4w LCBEQkxfTUFYLCBEQkxfTUlOKTsKKyAgICBjaGVjazY0KHJlczY0LCAweGMwMGZmZmZmZmZlMDAw MDBVTEwpOworICAgIHJlczY0ID0gZGZtcHlsaChEQkxfTUFYLCAwLjAsIC0xLjApOworICAgIGNo ZWNrNjQocmVzNjQsIDB4N2ZlZmZmZmZmZmZmZmZmZlVMTCk7Cit9CisKIGludCBtYWluKCkKIHsK ICAgICBjaGVja19jb21wYXJlX2V4Y2VwdGlvbigpOwpAQCAtNzE4LDYgKzc3MCw4IEBAIGludCBt YWluKCkKICAgICBjaGVja19zZmZpeHVwZCgpOwogICAgIGNoZWNrX3NmZm1zKCk7CiAgICAgY2hl Y2tfZmxvYXQyaW50X2NvbnZzKCk7CisgICAgY2hlY2tfZmxvYXRfY29uc3RzKCk7CisgICAgY2hl Y2tfZGZtcHl4eCgpOwogCiAgICAgcHV0cyhlcnIgPyAiRkFJTCIgOiAiUEFTUyIpOwogICAgIHJl dHVybiBlcnIgPyAxIDogMDsKZGlmZiAtLWdpdCBhL3Rlc3RzL3RjZy9oZXhhZ29uL21pc2MuYyBi L3Rlc3RzL3RjZy9oZXhhZ29uL21pc2MuYwppbmRleCA0ZmNiYjIyNzk1Li5jZmRkYTNmZDA5IDEw MDY0NAotLS0gYS90ZXN0cy90Y2cvaGV4YWdvbi9taXNjLmMKKysrIGIvdGVzdHMvdGNnL2hleGFn b24vbWlzYy5jCkBAIC0zOTEsNiArMzkxLDM5IEBAIHZvaWQgdGVzdF9jb3VudF90cmFpbGluZ196 ZXJvc19vbmVzKHZvaWQpCiAgICAgY2hlY2soY3QxcCgweGZmZmZmZjBmZmZmZmZmZmZVTEwpLCAz Nik7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IGRwbXB5c3Nfcm5kX3MwKGludCB4LCBpbnQgeSkK K3sKKyAgICBpbnQgcmVzOworICAgIGFzbSgiJTAgPSBtcHkoJTEsICUyKTpybmRcblx0IiA6ICI9 ciIocmVzKSA6ICJyIih4KSwgInIiKHkpKTsKKyAgICByZXR1cm4gcmVzOworfQorCit2b2lkIHRl c3RfZHBtcHlzc19ybmRfczAodm9pZCkKK3sKKyAgICBjaGVjayhkcG1weXNzX3JuZF9zMCgtMSwg MHg4MDAwMDAwMCksIDEpOworICAgIGNoZWNrKGRwbXB5c3Nfcm5kX3MwKDAsIDB4ODAwMDAwMDAp LCAwKTsKKyAgICBjaGVjayhkcG1weXNzX3JuZF9zMCgxLCAweDgwMDAwMDAwKSwgMCk7CisgICAg Y2hlY2soZHBtcHlzc19ybmRfczAoMHg3ZmZmZmZmZiwgMHg4MDAwMDAwMCksIDB4YzAwMDAwMDEp OworICAgIGNoZWNrKGRwbXB5c3Nfcm5kX3MwKDB4ODAwMDAwMDAsIC0xKSwgMSk7CisgICAgY2hl Y2soZHBtcHlzc19ybmRfczAoLTEsIC0xKSwgMCk7CisgICAgY2hlY2soZHBtcHlzc19ybmRfczAo MCwgLTEpLCAwKTsKKyAgICBjaGVjayhkcG1weXNzX3JuZF9zMCgxLCAtMSksIDApOworICAgIGNo ZWNrKGRwbXB5c3Nfcm5kX3MwKDB4N2ZmZmZmZmYsIC0xKSwgMCk7CisgICAgY2hlY2soZHBtcHlz c19ybmRfczAoMHg4MDAwMDAwMCwgMCksIDApOworICAgIGNoZWNrKGRwbXB5c3Nfcm5kX3MwKC0x LCAwKSwgMCk7CisgICAgY2hlY2soZHBtcHlzc19ybmRfczAoMCwgMCksIDApOworICAgIGNoZWNr KGRwbXB5c3Nfcm5kX3MwKDEsIDApLCAwKTsKKyAgICBjaGVjayhkcG1weXNzX3JuZF9zMCgtMSwg LTEpLCAwKTsKKyAgICBjaGVjayhkcG1weXNzX3JuZF9zMCgwLCAtMSksIDApOworICAgIGNoZWNr KGRwbXB5c3Nfcm5kX3MwKDEsIC0xKSwgMCk7CisgICAgY2hlY2soZHBtcHlzc19ybmRfczAoMHg3 ZmZmZmZmZiwgMSksIDApOworICAgIGNoZWNrKGRwbXB5c3Nfcm5kX3MwKDB4ODAwMDAwMDAsIDB4 N2ZmZmZmZmYpLCAweGMwMDAwMDAxKTsKKyAgICBjaGVjayhkcG1weXNzX3JuZF9zMCgtMSwgMHg3 ZmZmZmZmZiksIDApOworICAgIGNoZWNrKGRwbXB5c3Nfcm5kX3MwKDAsIDB4N2ZmZmZmZmYpLCAg MCk7CisgICAgY2hlY2soZHBtcHlzc19ybmRfczAoMSwgMHg3ZmZmZmZmZiksICAwKTsKKyAgICBj aGVjayhkcG1weXNzX3JuZF9zMCgweDdmZmZmZmZmLCAweDdmZmZmZmZmKSwgMHgzZmZmZmZmZik7 Cit9CisKIGludCBtYWluKCkKIHsKICAgICBpbnQgcmVzOwpAQCAtNTM0LDYgKzU2Nyw4IEBAIGlu dCBtYWluKCkKIAogICAgIHRlc3RfY291bnRfdHJhaWxpbmdfemVyb3Nfb25lcygpOwogCisgICAg dGVzdF9kcG1weXNzX3JuZF9zMCgpOworCiAgICAgcHV0cyhlcnIgPyAiRkFJTCIgOiAiUEFTUyIp OwogICAgIHJldHVybiBlcnI7CiB9CmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9nZW5faWRl Zl9wYXJzZXJfZnVuY3MucHkgYi90YXJnZXQvaGV4YWdvbi9nZW5faWRlZl9wYXJzZXJfZnVuY3Mu cHkKaW5kZXggYWQyZTVjMDRkMy4uNjM5NDU4YjQ2MiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFn b24vZ2VuX2lkZWZfcGFyc2VyX2Z1bmNzLnB5CisrKyBiL3RhcmdldC9oZXhhZ29uL2dlbl9pZGVm X3BhcnNlcl9mdW5jcy5weQpAQCAtMTAzLDcgKzEwMywxNSBAQCBkZWYgbWFpbigpOgogICAgICAg ICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBpZiB0YWcuc3RhcnRzd2l0aCgiVjZfIik6 CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIHRhZy5zdGFydHN3aXRo KCJGIik6CisgICAgICAgICAgICBpZiAoIHRhZy5zdGFydHN3aXRoKCJGIikgYW5kCisgICAgICAg ICAgICAgICAgIHRhZyBub3QgaW4geworICAgICAgICAgICAgICAgICAgICAgIkYyX3NmaW1tX3Ai LAorICAgICAgICAgICAgICAgICAgICAgIkYyX3NmaW1tX24iLAorICAgICAgICAgICAgICAgICAg ICAgIkYyX2RmaW1tX3AiLAorICAgICAgICAgICAgICAgICAgICAgIkYyX2RmaW1tX24iLAorICAg ICAgICAgICAgICAgICAgICAgIkYyX2RmbXB5bGwiLAorICAgICAgICAgICAgICAgICAgICAgIkYy X2RmbXB5bGgiCisgICAgICAgICAgICAgICAgIH0pOgogICAgICAgICAgICAgICAgIGNvbnRpbnVl CiAgICAgICAgICAgICBpZiB0YWcuZW5kc3dpdGgoIl9sb2NrZWQiKToKICAgICAgICAgICAgICAg ICBjb250aW51ZQpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vaWRlZi1wYXJzZXIvaWRlZi1w YXJzZXIubGV4IGIvdGFyZ2V0L2hleGFnb24vaWRlZi1wYXJzZXIvaWRlZi1wYXJzZXIubGV4Cmlu ZGV4IDVlYjhhYzVhODAuLmNkNTk1OGVjOTAgMTAwNjQ0Ci0tLSBhL3RhcmdldC9oZXhhZ29uL2lk ZWYtcGFyc2VyL2lkZWYtcGFyc2VyLmxleAorKysgYi90YXJnZXQvaGV4YWdvbi9pZGVmLXBhcnNl ci9pZGVmLXBhcnNlci5sZXgKQEAgLTQwMSwxMiArNDAxLDM5IEBAIFNUUklOR19MSVQgICAgICAg ICAgICAgICBcIihcXC58W14iXFxdKSpcIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNJR047CiAgICAgICAgICAgICAgICAg ICAgICAgICAgfQotIjB4IntIRVhfRElHSVR9KyAgICAgICAgIHwKLXtESUdJVH0rICAgICAgICAg ICAgICAgICB7IHl5bHZhbC0+cnZhbHVlLnR5cGUgPSBJTU1FRElBVEU7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICB5eWx2YWwtPnJ2YWx1ZS5iaXRfd2lkdGggPSAzMjsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgIHl5bHZhbC0+cnZhbHVlLnNpZ25lZG5lc3MgPSBTSUdORUQ7CisiMHgi e0hFWF9ESUdJVH0rICAgICAgICAgeyB1aW50NjRfdCB2YWx1ZSA9IHN0cnRvdWxsKHl5dGV4dCwg TlVMTCwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB5eWx2YWwtPnJ2YWx1ZS50eXBl ID0gSU1NRURJQVRFOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgeXlsdmFsLT5ydmFsdWUu aW1tLnR5cGUgPSBWQUxVRTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHl5bHZhbC0+cnZh bHVlLmltbS52YWx1ZSA9IHN0cnRvdWxsKHl5dGV4dCwgTlVMTCwgMCk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICB5eWx2YWwtPnJ2YWx1ZS5pbW0udmFsdWUgPSB2YWx1ZTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA8PSBJTlRfTUFYKSB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeXlsdmFsLT5ydmFsdWUuYml0X3dpZHRoID0gc2l6ZW9mKGludCkg KiA4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHl5bHZhbC0+cnZhbHVlLnNpZ25l ZG5lc3MgPSBTSUdORUQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZh bHVlIDw9IFVJTlRfTUFYKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeXlsdmFs LT5ydmFsdWUuYml0X3dpZHRoID0gc2l6ZW9mKHVuc2lnbmVkIGludCkgKiA4OworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHl5bHZhbC0+cnZhbHVlLnNpZ25lZG5lc3MgPSBVTlNJR05F RDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPD0gTE9OR19N QVgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5eWx2YWwtPnJ2YWx1ZS5iaXRf d2lkdGggPSBzaXplb2YobG9uZykgKiA4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHl5bHZhbC0+cnZhbHVlLnNpZ25lZG5lc3MgPSBTSUdORUQ7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIDw9IFVMT05HX01BWCkgeworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHl5bHZhbC0+cnZhbHVlLmJpdF93aWR0aCA9IHNpemVvZih1bnNpZ25l ZCBsb25nKSAqIDg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeXlsdmFsLT5ydmFs dWUuc2lnbmVkbmVzcyA9IFVOU0lHTkVEOworICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBl bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hl ZCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIElNTTsgfQore0RJR0lUfSsgICAgICAgICAgICAgICAgIHsgaW50NjRfdCB2 YWx1ZSA9IHN0cnRvbGwoeXl0ZXh0LCBOVUxMLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIHl5bHZhbC0+cnZhbHVlLnR5cGUgPSBJTU1FRElBVEU7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICB5eWx2YWwtPnJ2YWx1ZS5pbW0udHlwZSA9IFZBTFVFOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgeXlsdmFsLT5ydmFsdWUuaW1tLnZhbHVlID0gdmFsdWU7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPj0gSU5UX01JTiAmJiB2YWx1ZSA8PSBJTlRfTUFY KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeXlsdmFsLT5ydmFsdWUuYml0X3dp ZHRoID0gc2l6ZW9mKGludCkgKiA4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHl5 bHZhbC0+cnZhbHVlLnNpZ25lZG5lc3MgPSBTSUdORUQ7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICB9IGVsc2UgaWYgKHZhbHVlID49IExPTkdfTUlOICYmIHZhbHVlIDw9IExPTkdfTUFYKSB7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeXlsdmFsLT5ydmFsdWUuYml0X3dpZHRo ID0gc2l6ZW9mKGxvbmcpICogODsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5eWx2 YWwtPnJ2YWx1ZS5zaWduZWRuZXNzID0gU0lHTkVEOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfYXNzZXJ0X25vdF9y ZWFjaGVkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gSU1NOyB9CiAiMHgie0hFWF9ESUdJVH0rIlVMTCIgICAgfAoge0RJ R0lUfSsiVUxMIiAgICAgICAgICAgIHsgeXlsdmFsLT5ydmFsdWUudHlwZSA9IElNTUVESUFURTsK ZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2lkZWYtcGFyc2VyL2lkZWYtcGFyc2VyLnkgYi90 YXJnZXQvaGV4YWdvbi9pZGVmLXBhcnNlci9pZGVmLXBhcnNlci55CmluZGV4IDU0NDRmZDQ3NDku LjVmMzkwN2ViMjggMTAwNjQ0Ci0tLSBhL3RhcmdldC9oZXhhZ29uL2lkZWYtcGFyc2VyL2lkZWYt cGFyc2VyLnkKKysrIGIvdGFyZ2V0L2hleGFnb24vaWRlZi1wYXJzZXIvaWRlZi1wYXJzZXIueQpA QCAtNTk0LDggKzU5NCw2IEBAIHJ2YWx1ZSA6IEZBSUwKICAgICAgICB8IENBU1QgcnZhbHVlCiAg ICAgICAgICB7CiAgICAgICAgICAgICAgQDEubGFzdF9jb2x1bW4gPSBAMi5sYXN0X2NvbHVtbjsK LSAgICAgICAgICAgICAvKiBBc3NpZ24gdGFyZ2V0IHNpZ25lZG5lc3MgKi8KLSAgICAgICAgICAg ICAkMi5zaWduZWRuZXNzID0gJDEuc2lnbmVkbmVzczsKICAgICAgICAgICAgICAkJCA9IGdlbl9j YXN0X29wKGMsICZAMSwgJiQyLCAkMS5iaXRfd2lkdGgsICQxLnNpZ25lZG5lc3MpOwogICAgICAg ICAgfQogICAgICAgIHwgcnZhbHVlIEVRIHJ2YWx1ZQotLSAKMi4yNS4xCgo=