Received: by 2002:a05:7412:37c9:b0:e2:908c:2ebd with SMTP id jz9csp1154495rdb; Wed, 20 Sep 2023 00:44:19 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFdcPOy4RFNfO8xb467CH7cOVT3JvOxWcXJ29f2NMCpvnMNs8LErRj1XBSyhK+1CErUaS0c X-Received: by 2002:a05:6870:2182:b0:1c0:1caf:3341 with SMTP id l2-20020a056870218200b001c01caf3341mr1896192oae.30.1695195859027; Wed, 20 Sep 2023 00:44:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695195858; cv=none; d=google.com; s=arc-20160816; b=kl/+P6dszax4mUNY9ArFgVGmC4+pe7NVpL9D4f1Df/7vqrAXXv4aAvs9aM+P9PdQ2A eI0peKIAXPWT7nnhZeSQHWKCiTBc38rbEz1QXLrvhoSsrEspOmUA4VB9edSR+x5DVUSu Leg20+d/UoYRD2u6jjY2Pq3MUEA84lKvlw8aSkpDNPKAdxqybtGHVv822t+r/HM3jT26 vduyyM9s5L5gUWBzIlsCDSwuj6cI8WkB/jL9OWDWyczN5ko9xbbtFRNDa9r6aIKO0R/1 EdmDH7d4xzDuAD6vUc/bZH9h4vvKAxOJDD9km8MVwhG8tT20kroJShYX8y+GVbGW7zLR mEpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=oRANcIbBds7+N4G3TN1vmEZ1xBV0CKyY1o36mQxiI4k=; fh=gm7fFnh1fR3QaO8Fw6U6y4CAkwF0tmEkPlkTaTqDcrU=; b=INa9zbPlzSiAwe53Oh75pP/SyoD+Cv+XxkY1WC6d0EgYkYZ2Vei81bv+uv+zb3YAsX SR32KdPe8be+xqhofKSu4vLZ5Cwu6D0wf5e0s5MAm1IotkSjIRD4rghak9OHDzoDSowG DJWikiI4KkvyFzvnd/n8FzgyxVFylgX+H2iltDIJ0hGZ5On9b+4iKhgoEn7DgbrlSn3l 6evP1Dqcus0WSodflxO/sDzuD72YAzDBL+o7yJB/wffcHaBz34nSx2X5lSL8JIlWJ6xH 4S6vCMbSjTzJvIU+Lw/QLqRUZT7uMXPB4URgJ6p6dKkURZP94X/G0gVb49+cp/jbKdqQ otfA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=BFv2zQJ8; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from morse.vger.email (morse.vger.email. [2620:137:e000::3:1]) by mx.google.com with ESMTPS id e12-20020a63db0c000000b0056949c3eda8si10899523pgg.119.2023.09.20.00.44.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Sep 2023 00:44:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) client-ip=2620:137:e000::3:1; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=BFv2zQJ8; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id A14C7803E9F4; Tue, 19 Sep 2023 22:48:39 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232915AbjITFsn (ORCPT + 56 others); Wed, 20 Sep 2023 01:48:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57422 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232964AbjITFsk (ORCPT ); Wed, 20 Sep 2023 01:48:40 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B2DBBAF for ; Tue, 19 Sep 2023 22:48:32 -0700 (PDT) Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 38K4hQTS021040; Wed, 20 Sep 2023 05:48:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=qcppdkim1; bh=oRANcIbBds7+N4G3TN1vmEZ1xBV0CKyY1o36mQxiI4k=; b=BFv2zQJ8nejb+lHqR8DjtoKW2Cmb1bENHyX6CSzyWWb6yrPFvIj2xL8eJGM8bP+is/rf 9727gdjokQb/PFm3VQQsWR3atcQBLjWtviblpSQ9NuH8Dr6/lWGApWfIrctIpPqm8vkc BJbu499jg52WBqGaQRUuoLodIchYylg3st/8JMpP//hcAwCFW41+p+zpwHhRxvUs6VtN TzL2i8DK1l6ztuN4UzbLoUkCRF9ILrc9FKMqmvBqZ6OR1UjFPYHrAwDvuWSia7lCACzi IbInLwFQ67Ei9zLp4Kc7zKXAm+N3xxIGAL0HOpsTbxJ0RlBNg8cXuOuVfnb11HTrOvzx 0Q== Received: from nalasppmta01.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3t7sh3r4sn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 20 Sep 2023 05:48:28 +0000 Received: from nalasex01c.na.qualcomm.com (nalasex01c.na.qualcomm.com [10.47.97.35]) by NALASPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 38K5mSEF017131 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 20 Sep 2023 05:48:28 GMT Received: from nalasex01c.na.qualcomm.com (10.47.97.35) by nalasex01c.na.qualcomm.com (10.47.97.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.30; Tue, 19 Sep 2023 22:48:27 -0700 Received: from nalasex01c.na.qualcomm.com ([fe80::6c73:4982:d918:fc9e]) by nalasex01c.na.qualcomm.com ([fe80::6c73:4982:d918:fc9e%11]) with mapi id 15.02.1118.030; Tue, 19 Sep 2023 22:48:27 -0700 From: "Aishwarya R (QUIC)" To: "Jeff Johnson (QUIC)" , "ath12k@lists.infradead.org" CC: "linux-wireless@vger.kernel.org" , "Wen Gong (QUIC)" Subject: RE: [PATCH 1/7] wifi: ath12k: add support to select 6 GHz Regulatory type Thread-Topic: [PATCH 1/7] wifi: ath12k: add support to select 6 GHz Regulatory type Thread-Index: AQHZ6sldgwjZkPHDSk6v83PEw/qPgbAi4pgAgABQLBA= Date: Wed, 20 Sep 2023 05:48:27 +0000 Message-ID: <0a83690159fa452b9e7c0ebb3f751b55@quicinc.com> References: <20230919071724.15505-1-quic_aisr@quicinc.com> <20230919071724.15505-2-quic_aisr@quicinc.com> <4282f92a-3543-4863-bc00-478ae03759e0@quicinc.com> In-Reply-To: <4282f92a-3543-4863-bc00-478ae03759e0@quicinc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.50.59.93] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: i_CB4SZoQ2a7QPbQiCNQERzHRkrSNIQU X-Proofpoint-GUID: i_CB4SZoQ2a7QPbQiCNQERzHRkrSNIQU X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.601,FMLib:17.11.176.26 definitions=2023-09-20_02,2023-09-19_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxlogscore=999 spamscore=0 adultscore=0 mlxscore=0 phishscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 suspectscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2308100000 definitions=main-2309200047 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Tue, 19 Sep 2023 22:48:39 -0700 (PDT) T24gOS8xOS8yMDIzIDEyOjE3IEFNLCBBaXNod2FyeWEgUiB3cm90ZToNCj4+IFRoZXJlIGFyZSAz IHR5cGVzIG9mIHJlZ3VsYXRvcnkgcnVsZXMgZm9yIEFQIG1vZGUgYW5kIDYgdHlwZXMgZm9yIA0K Pj4gU1RBVElPTiBtb2RlLiBUaGlzIGlzIHRvIGFkZCB3bWlfdmRldl90eXBlIGFuZCBpZWVlODAy MTFfYXBfcmVnX3Bvd2VyIA0KPj4gdG8gc2VsZWN0IHRoZSBleGFjdCByZWcgcnVsZXMuDQo+PiAN Cj4+IFRlc3RlZC1vbjogUUNOOTI3NCBodzIuMCBQQ0kgV0xBTi5XQkUuMS4wLjEtMDAwMjktUUNB SEtTV1BMX1NJTElDT05aLTENCg0KPiBXZW4sDQo+IENhbiB5b3UgcHJvdmlkZSBhICJUZXN0ZWQt b246IFdDTjc4NTAiIHRhZyBmb3IgdGhpcyBzZXJpZXM/DQoNCj4+IA0KPj4gU2lnbmVkLW9mZi1i eTogQWlzaHdhcnlhIFIgPHF1aWNfYWlzckBxdWljaW5jLmNvbT4NCj4+IC0tLQ0KPj4gICBkcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jIHwgIDYyICsrKysrKystLQ0KPj4gICBk cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5oIHwgICA2ICstDQo+PiAgIGRyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMgfCAxODIgKysrKysrKysrKysrKysrKysr KysrKysrKy0NCj4+ICAgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaCB8ICAy NyArKystDQo+PiAgIDQgZmlsZXMgY2hhbmdlZCwgMjU3IGluc2VydGlvbnMoKyksIDIwIGRlbGV0 aW9ucygtKQ0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEyay9yZWcuYyANCj4+IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9yZWcuYw0K Pj4gaW5kZXggNmVkZTkxZWJjOGUxLi44NTAxZjc3ZWVlNTUgMTAwNjQ0DQo+PiAtLS0gYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jDQo+PiArKysgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTJrL3JlZy5jDQo+PiBAQCAtMjgsNiArMjgsMjEgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBpZWVlODAyMTFfcmVnZG9tYWluIGF0aDEya193b3JsZF9yZWdkID0gew0KPj4g ICAJfQ0KPj4gICB9Ow0KPj4gICANCj4+ICtlbnVtIHdtaV9yZWdfNmdfYXBfdHlwZQ0KPj4gK2F0 aDEya19pZWVlODAyMTFfYXBfcHdyX3R5cGVfY29udmVydChlbnVtIGllZWU4MDIxMV9hcF9yZWdf cG93ZXIgDQo+PiArcG93ZXJfdHlwZSkgew0KPj4gKwlzd2l0Y2ggKHBvd2VyX3R5cGUpIHsNCj4+ ICsJY2FzZSBJRUVFODAyMTFfUkVHX0xQSV9BUDoNCj4+ICsJCXJldHVybiBXTUlfUkVHX0lORE9P Ul9BUDsNCj4+ICsJY2FzZSBJRUVFODAyMTFfUkVHX1NQX0FQOg0KPj4gKwkJcmV0dXJuIFdNSV9S RUdfU1REX1BPV0VSX0FQOw0KPj4gKwljYXNlIElFRUU4MDIxMV9SRUdfVkxQX0FQOg0KPj4gKwkJ cmV0dXJuIFdNSV9SRUdfVkxQX0FQOw0KPj4gKwlkZWZhdWx0Og0KPj4gKwkJcmV0dXJuIFdNSV9S RUdfTUFYX0FQX1RZUEU7DQo+PiArCX0NCj4+ICt9DQo+PiArDQo+PiAgIHN0YXRpYyBib29sIGF0 aDEya19yZWdkb21fY2hhbmdlcyhzdHJ1Y3QgYXRoMTJrICphciwgY2hhciAqYWxwaGEyKQ0KPj4g ICB7DQo+PiAgIAljb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3JlZ2RvbWFpbiAqcmVnZDsgQEAgLTU2 MiwxNCArNTc3LDE2IEBAIA0KPj4gYXRoMTJrX3JlZ191cGRhdGVfd2VhdGhlcl9yYWRhcl9iYW5k KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsDQo+PiAgIA0KPj4gICBzdHJ1Y3QgaWVlZTgwMjExX3Jl Z2RvbWFpbiAqDQo+PiAgIGF0aDEya19yZWdfYnVpbGRfcmVnZChzdHJ1Y3QgYXRoMTJrX2Jhc2Ug KmFiLA0KPj4gLQkJICAgICAgc3RydWN0IGF0aDEya19yZWdfaW5mbyAqcmVnX2luZm8sIGJvb2wg aW50ZXJzZWN0KQ0KPj4gKwkJICAgICAgc3RydWN0IGF0aDEya19yZWdfaW5mbyAqcmVnX2luZm8s IGJvb2wgaW50ZXJzZWN0LA0KPj4gKwkJICAgICAgZW51bSB3bWlfdmRldl90eXBlIHZkZXZfdHlw ZSwNCj4+ICsJCSAgICAgIGVudW0gaWVlZTgwMjExX2FwX3JlZ19wb3dlciBwb3dlcl90eXBlKQ0K Pj4gICB7DQo+PiAgIAlzdHJ1Y3QgaWVlZTgwMjExX3JlZ2RvbWFpbiAqdG1wX3JlZ2QsICpkZWZh dWx0X3JlZ2QsICpuZXdfcmVnZCA9IE5VTEw7DQo+PiAtCXN0cnVjdCBhdGgxMmtfcmVnX3J1bGUg KnJlZ19ydWxlOw0KPj4gKwlzdHJ1Y3QgYXRoMTJrX3JlZ19ydWxlICpyZWdfcnVsZSwgKnJlZ19y dWxlXzZnaHo7DQo+PiAgIAl1OCBpID0gMCwgaiA9IDAsIGsgPSAwOw0KPj4gICAJdTggbnVtX3J1 bGVzOw0KPj4gICAJdTE2IG1heF9idzsNCj4+IC0JdTMyIGZsYWdzOw0KPj4gKwl1MzIgZmxhZ3Ms IHJlZ182Z2h6X251bWJlciwgbWF4X2J3XzZnaHo7DQo+PiAgIAljaGFyIGFscGhhMlszXTsNCj4+ ICAgDQo+PiAgIAludW1fcnVsZXMgPSByZWdfaW5mby0+bnVtXzVnX3JlZ19ydWxlcyArIA0KPj4g cmVnX2luZm8tPm51bV8yZ19yZWdfcnVsZXM7IEBAIC01NzgsOCArNTk1LDMzIEBAIGF0aDEya19y ZWdfYnVpbGRfcmVnZChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLA0KPj4gICAJICogVGhpcyBjYW4g YmUgdXBkYXRlZCB0byBjaG9vc2UgdGhlIGNvbWJpbmF0aW9uIGR5bmFtaWNhbGx5IGJhc2VkIG9u IEFQDQo+PiAgIAkgKiB0eXBlIGFuZCBjbGllbnQgdHlwZSwgYWZ0ZXIgY29tcGxldGUgNkcgcmVn dWxhdG9yeSBzdXBwb3J0IGlzIGFkZGVkLg0KPj4gICAJICovDQo+PiAtCWlmIChyZWdfaW5mby0+ aXNfZXh0X3JlZ19ldmVudCkNCj4+IC0JCW51bV9ydWxlcyArPSByZWdfaW5mby0+bnVtXzZnX3Jl Z19ydWxlc19hcFtXTUlfUkVHX0lORE9PUl9BUF07DQo+PiArCWlmIChyZWdfaW5mby0+aXNfZXh0 X3JlZ19ldmVudCkgew0KPj4gKwkJaWYgKHZkZXZfdHlwZSA9PSBXTUlfVkRFVl9UWVBFX1NUQSkg ew0KPj4gKwkJCWVudW0gd21pX3JlZ182Z19hcF90eXBlIGFwX3R5cGU7DQo+PiArDQo+PiArCQkJ YXBfdHlwZSA9IGF0aDEya19pZWVlODAyMTFfYXBfcHdyX3R5cGVfY29udmVydChwb3dlcl90eXBl KTsNCj4+ICsNCj4+ICsJCQlpZiAoYXBfdHlwZSA9PSBXTUlfUkVHX01BWF9BUF9UWVBFKQ0KPj4g KwkJCQlhcF90eXBlID0gV01JX1JFR19JTkRPT1JfQVA7DQoNCj4gd2hlcmUgaXMgcG93ZXJfdHlw ZSBjb21pbmcgZnJvbSBhbmQgY2FuIGl0IGJlIHRhaW50ZWQ/DQo+IGlmIHdlIGFsd2F5cyBleHBl Y3QgYSB2YWxpZCB2YWx1ZSB0aGVuIHdoeSBub3QganVzdCBoYXZlIHRoZSBjb252ZXJzaW9uIGZ1 bmN0aW9uIHNldCB0aGUgZGVmYXVsdCB0byBXTUlfUkVHX0lORE9PUl9BUD8NCj4gQXJlIHRoZXJl IHBsYWNlcyBpbiB1cGNvbWluZyBwYXRjaGVzIHRoYXQgYWN0dWFsbHkgcGVyZm9ybSBlcnJvciBo YW5kbGluZyBpZiB0aGUgY29udmVyc2lvbiBmdW5jdGlvbiByZXR1cm5zIE1BWD8NCg0KPj4gKwkJ CXJlZ182Z2h6X251bWJlciA9IHJlZ19pbmZvLT5udW1fNmdfcmVnX3J1bGVzX2NsDQo+PiArCQkJ CQlbYXBfdHlwZV1bV01JX1JFR19ERUZBVUxUX0NMSUVOVF07DQoNCj4gcGxlYXNlIGF2b2lkIHNw bGl0dGluZyBsaW5lcyBpbiB0aGUgbWlkZGxlIG9mIGEgdmFyaWFibGUgcmVmZXJlbmNlOyB0aGF0 IGRlY3JlYXNlcyB0aGUgcmVhZGFiaWxpdHkgb2YgdGhlIGNvZGUuIEl0IGlzIGJldHRlciB0byBl eGNlZWQgc29tZSBhcmJpdHJhcnkgbGluZSBsZW5ndGggZ3VpZGVsaW5lLiB5b3UgY2FuIHVzZSBh IGNsaWVudF90eXBlID0gV01JX1JFR19ERUZBVUxUX0NMSUVOVCBhc3NpZ25tZW50IHRvIGhlbHAg cmVkdWNlIHRoZSBsZW5ndGguDQo+IGlmIHRoZSBsaW5lIGlzIHN0aWxsIGV4Y2VlZGluZ2x5IGxv bmcsIHNwbGl0IHRoZSBsaW5lcyBhZnRlciA9DQoNCj4gcmVwZWF0IGZvciBhbGwgY2FzZXMgdGhh dCBmb2xsb3cNCg0KDQo+PiArCQkJaWYgKHJlZ182Z2h6X251bWJlciA9PSAwKSB7DQo+PiArCQkJ CWFwX3R5cGUgPSBXTUlfUkVHX0lORE9PUl9BUDsNCj4+ICsJCQkJcmVnXzZnaHpfbnVtYmVyID0g cmVnX2luZm8tPm51bV82Z19yZWdfcnVsZXNfY2wNCj4+ICsJCQkJCQlbYXBfdHlwZV1bV01JX1JF R19ERUZBVUxUX0NMSUVOVF07DQo+PiArCQkJfQ0KPj4gKwkJCXJlZ19ydWxlXzZnaHogPSByZWdf aW5mby0+cmVnX3J1bGVzXzZnX2NsaWVudF9wdHINCj4+ICsJCQkJCVthcF90eXBlXVtXTUlfUkVH X0RFRkFVTFRfQ0xJRU5UXTsNCj4+ICsJCQltYXhfYndfNmdoeiA9IHJlZ19pbmZvLT5tYXhfYndf NmdfY2xpZW50DQo+PiArCQkJCQlbYXBfdHlwZV1bV01JX1JFR19ERUZBVUxUX0NMSUVOVF07DQo+ PiArCQl9IGVsc2Ugew0KPj4gKwkJCXJlZ182Z2h6X251bWJlciA9IHJlZ19pbmZvLT5udW1fNmdf cmVnX3J1bGVzX2FwDQo+PiArCQkJCQlbV01JX1JFR19JTkRPT1JfQVBdOw0KPj4gKwkJCXJlZ19y dWxlXzZnaHogPSByZWdfaW5mby0+cmVnX3J1bGVzXzZnX2FwX3B0cltXTUlfUkVHX0lORE9PUl9B UF07DQo+PiArCQkJbWF4X2J3XzZnaHogPSByZWdfaW5mby0+bWF4X2J3XzZnX2FwW1dNSV9SRUdf SU5ET09SX0FQXTsNCj4+ICsJCX0NCj4+ICsJCW51bV9ydWxlcyArPSByZWdfNmdoel9udW1iZXI7 DQo+PiArCX0NCj4+ICAgDQo+PiAgIAlpZiAoIW51bV9ydWxlcykNCj4+ICAgCQlnb3RvIHJldDsN Cj4+IEBAIC02MjYsMTIgKzY2OCwxMCBAQCBhdGgxMmtfcmVnX2J1aWxkX3JlZ2Qoc3RydWN0IGF0 aDEya19iYXNlICphYiwNCj4+ICAgCQkJICogcGVyIG90aGVyIEJXIHJ1bGUgZmxhZ3Mgd2UgcGFz cyBmcm9tIGhlcmUNCj4+ICAgCQkJICovDQo+PiAgIAkJCWZsYWdzID0gTkw4MDIxMV9SUkZfQVVU T19CVzsNCj4+IC0JCX0gZWxzZSBpZiAocmVnX2luZm8tPmlzX2V4dF9yZWdfZXZlbnQgJiYNCj4+ IC0JCQkgICByZWdfaW5mby0+bnVtXzZnX3JlZ19ydWxlc19hcFtXTUlfUkVHX0lORE9PUl9BUF0g JiYNCj4+IC0JCQkoayA8IHJlZ19pbmZvLT5udW1fNmdfcmVnX3J1bGVzX2FwW1dNSV9SRUdfSU5E T09SX0FQXSkpIHsNCj4+IC0JCQlyZWdfcnVsZSA9IHJlZ19pbmZvLT5yZWdfcnVsZXNfNmdfYXBf cHRyW1dNSV9SRUdfSU5ET09SX0FQXSArIGsrKzsNCj4+IC0JCQltYXhfYncgPSBtaW5fdCh1MTYs IHJlZ19ydWxlLT5tYXhfYncsDQo+PiAtCQkJCSAgICAgICByZWdfaW5mby0+bWF4X2J3XzZnX2Fw W1dNSV9SRUdfSU5ET09SX0FQXSk7DQo+PiArCQl9IGVsc2UgaWYgKHJlZ19pbmZvLT5pc19leHRf cmVnX2V2ZW50ICYmIHJlZ182Z2h6X251bWJlciAmJg0KPj4gKwkJCSAgIChrIDwgcmVnXzZnaHpf bnVtYmVyKSkgew0KPj4gKwkJCXJlZ19ydWxlID0gcmVnX3J1bGVfNmdoeiArIGsrKzsNCj4+ICsJ CQltYXhfYncgPSBtaW5fdCh1MTYsIHJlZ19ydWxlLT5tYXhfYncsIG1heF9id182Z2h6KTsNCj4+ ICAgCQkJZmxhZ3MgPSBOTDgwMjExX1JSRl9BVVRPX0JXOw0KPj4gICAJCX0gZWxzZSB7DQo+PiAg IAkJCWJyZWFrOw0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MmsvcmVnLmggDQo+PiBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcmVnLmgNCj4+ IGluZGV4IDU2ZDAwOWE0NzIzNC4uNTYzMjRlMzBhMzU4IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9yZWcuaA0KPj4gKysrIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEyay9yZWcuaA0KPj4gQEAgLTg4LDcgKzg4LDExIEBAIHZvaWQgYXRoMTJr X3JlZ19mcmVlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpOw0KPj4gICB2b2lkIGF0aDEya19yZWdk X3VwZGF0ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7DQo+PiAgIHN0cnVjdCBpZWVl ODAyMTFfcmVnZG9tYWluICphdGgxMmtfcmVnX2J1aWxkX3JlZ2Qoc3RydWN0IGF0aDEya19iYXNl ICphYiwNCj4+ICAgCQkJCQkJICBzdHJ1Y3QgYXRoMTJrX3JlZ19pbmZvICpyZWdfaW5mbywNCj4+ IC0JCQkJCQkgIGJvb2wgaW50ZXJzZWN0KTsNCj4+ICsJCQkJCQkgIGJvb2wgaW50ZXJzZWN0LA0K Pj4gKwkJCQkJCSAgZW51bSB3bWlfdmRldl90eXBlIHZkZXZfdHlwZSwNCj4+ICsJCQkJCQkgIGVu dW0gaWVlZTgwMjExX2FwX3JlZ19wb3dlciBwb3dlcl90eXBlKTsgZW51bSANCj4+ICt3bWlfcmVn XzZnX2FwX3R5cGUgYXRoMTJrX2llZWU4MDIxMV9hcF9wd3JfdHlwZV9jb252ZXJ0KGVudW0gDQo+ PiAraWVlZTgwMjExX2FwX3JlZ19wb3dlciBwb3dlcl90eXBlKTsNCj4+ICAgaW50IGF0aDEya19y ZWdkX3VwZGF0ZShzdHJ1Y3QgYXRoMTJrICphciwgYm9vbCBpbml0KTsNCj4+ICAgaW50IGF0aDEy a19yZWdfdXBkYXRlX2NoYW5fbGlzdChzdHJ1Y3QgYXRoMTJrICphcik7DQo+PiAgIA0KPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMgDQo+PiBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMNCj4+IGluZGV4IGFmOTEwMjk2YzQx ZS4uMWI5Y2U5YTJhZTk2IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo L2F0aDEyay93bWkuYw0KPj4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93 bWkuYw0KPj4gQEAgLTQxNTIsNiArNDE1MiwxMTkgQEAgc3RhdGljIHN0cnVjdCBhdGgxMmtfcmVn X3J1bGUNCj4+ICAgCXJldHVybiByZWdfcnVsZV9wdHI7DQo+PiAgIH0NCj4+ICAgDQo+PiArc3Rh dGljIGNoYXIgKmF0aDEya19jY19zdGF0dXNfdG9fc3RyKGVudW0gYXRoMTJrX3JlZ19jY19jb2Rl IGNvZGUpDQoNCj4gYWxsIG9mIHRoZXNlICpfc3RyKCkgZnVuY3Rpb25zIHNob3VsZCByZXR1cm4g Y29uc3QgY2hhciAqDQoNCj4+ICt7DQo+PiArCXN3aXRjaCAoY29kZSkgew0KPj4gKwljYXNlIFJF R19TRVRfQ0NfU1RBVFVTX1BBU1M6DQo+PiArCQlyZXR1cm4gIlJFR19TRVRfQ0NfU1RBVFVTX1BB U1MiOw0KPj4gKwljYXNlIFJFR19DVVJSRU5UX0FMUEhBMl9OT1RfRk9VTkQ6DQo+PiArCQlyZXR1 cm4gIlJFR19DVVJSRU5UX0FMUEhBMl9OT1RfRk9VTkQiOw0KPj4gKwljYXNlIFJFR19JTklUX0FM UEhBMl9OT1RfRk9VTkQ6DQo+PiArCQlyZXR1cm4gIlJFR19JTklUX0FMUEhBMl9OT1RfRk9VTkQi Ow0KPj4gKwljYXNlIFJFR19TRVRfQ0NfQ0hBTkdFX05PVF9BTExPV0VEOg0KPj4gKwkJcmV0dXJu ICJSRUdfU0VUX0NDX0NIQU5HRV9OT1RfQUxMT1dFRCI7DQo+PiArCWNhc2UgUkVHX1NFVF9DQ19T VEFUVVNfTk9fTUVNT1JZOg0KPj4gKwkJcmV0dXJuICJSRUdfU0VUX0NDX1NUQVRVU19OT19NRU1P UlkiOw0KPj4gKwljYXNlIFJFR19TRVRfQ0NfU1RBVFVTX0ZBSUw6DQo+PiArCQlyZXR1cm4gIlJF R19TRVRfQ0NfU1RBVFVTX0ZBSUwiOw0KPj4gKwlkZWZhdWx0Og0KPj4gKwkJcmV0dXJuICJ1bmtu b3duIGNjIHN0YXR1cyI7DQo+PiArCX0NCj4+ICt9Ow0KPj4gKw0KPj4gK3N0YXRpYyBjaGFyICph dGgxMmtfc3VwZXJfcmVnXzZnaHpfdG9fc3RyKGVudW0gcmVnX3N1cGVyX2RvbWFpbl82Z2h6IA0K Pj4gK2RvbWFpbl9pZCkgew0KPj4gKwlzd2l0Y2ggKGRvbWFpbl9pZCkgew0KPj4gKwljYXNlIEZD QzFfNkdIWjoNCj4+ICsJCXJldHVybiAiRkNDMV82R0haIjsNCj4+ICsJY2FzZSBFVFNJMV82R0ha Og0KPj4gKwkJcmV0dXJuICJFVFNJMV82R0haIjsNCj4+ICsJY2FzZSBFVFNJMl82R0haOg0KPj4g KwkJcmV0dXJuICJFVFNJMl82R0haIjsNCj4+ICsJY2FzZSBBUEwxXzZHSFo6DQo+PiArCQlyZXR1 cm4gIkFQTDFfNkdIWiI7DQo+PiArCWNhc2UgRkNDMV82R0haX0NMOg0KPj4gKwkJcmV0dXJuICJG Q0MxXzZHSFpfQ0wiOw0KPj4gKwlkZWZhdWx0Og0KPj4gKwkJcmV0dXJuICJ1bmtub3duIGRvbWFp biBpZCI7DQo+PiArCX0NCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGNoYXIgKmF0aDEya182Z2h6 X2NsaWVudF90eXBlX3RvX3N0cihlbnVtIA0KPj4gK3dtaV9yZWdfNmdfY2xpZW50X3R5cGUgdHlw ZSkgew0KPj4gKwlzd2l0Y2ggKHR5cGUpIHsNCj4+ICsJY2FzZSBXTUlfUkVHX0RFRkFVTFRfQ0xJ RU5UOg0KPj4gKwkJcmV0dXJuICJERUZBVUxUIENMSUVOVCI7DQo+PiArCWNhc2UgV01JX1JFR19T VUJPUkRJTkFURV9DTElFTlQ6DQo+PiArCQlyZXR1cm4gIlNVQk9SRElOQVRFIENMSUVOVCI7DQo+ PiArCWRlZmF1bHQ6DQo+PiArCQlyZXR1cm4gInVua25vd24gY2xpZW50IHR5cGUiOw0KPj4gKwl9 DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBjaGFyICphdGgxMmtfNmdoel9hcF90eXBlX3RvX3N0 cihlbnVtIHdtaV9yZWdfNmdfYXBfdHlwZSB0eXBlKSANCj4+ICt7DQo+PiArCXN3aXRjaCAodHlw ZSkgew0KPj4gKwljYXNlIFdNSV9SRUdfSU5ET09SX0FQOg0KPj4gKwkJcmV0dXJuICJJTkRPT1Ig QVAiOw0KPj4gKwljYXNlIFdNSV9SRUdfU1REX1BPV0VSX0FQOg0KPj4gKwkJcmV0dXJuICJTVEFO REFSRCBQT1dFUiBBUCI7DQo+PiArCWNhc2UgV01JX1JFR19WTFBfQVA6DQo+PiArCQlyZXR1cm4g IlZFUlkgTE9XIFBPV0VSIEFQIjsNCj4+ICsJZGVmYXVsdDoNCj4+ICsJCXJldHVybiAidW5rbm93 biBBUCB0eXBlIjsNCj4+ICsJfQ0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgY2hhciAqYXRoMTJr X3N1Yl9yZWdfNmdoel90b19zdHIoZW51bSByZWdfc3ViZG9tYWluc182Z2h6IA0KPj4gK3N1Yl9p ZCkgew0KPj4gKwlzd2l0Y2ggKHN1Yl9pZCkgew0KPj4gKwljYXNlIEZDQzFfQ0xJRU5UX0xQSV9S RUdVTEFSXzZHSFo6DQo+PiArCQlyZXR1cm4gIkZDQzFfQ0xJRU5UX0xQSV9SRUdVTEFSXzZHSFoi Ow0KPj4gKwljYXNlIEZDQzFfQ0xJRU5UX1NQXzZHSFo6DQo+PiArCQlyZXR1cm4gIkZDQzFfQ0xJ RU5UX1NQXzZHSFoiOw0KPj4gKwljYXNlIEZDQzFfQVBfTFBJXzZHSFo6DQo+PiArCQlyZXR1cm4g IkZDQzFfQVBfTFBJXzZHSFovRkNDMV9DTElFTlRfTFBJX1NVQk9SRElOQVRFIjsNCj4+ICsJY2Fz ZSBGQ0MxX0FQX1NQXzZHSFo6DQo+PiArCQlyZXR1cm4gIkZDQzFfQVBfU1BfNkdIWiI7DQo+PiAr CWNhc2UgRVRTSTFfTFBJXzZHSFo6DQo+PiArCQlyZXR1cm4gIkVUU0kxX0xQSV82R0haIjsNCj4+ ICsJY2FzZSBFVFNJMV9WTFBfNkdIWjoNCj4+ICsJCXJldHVybiAiRVRTSTFfVkxQXzZHSFoiOw0K Pj4gKwljYXNlIEVUU0kyX0xQSV82R0haOg0KPj4gKwkJcmV0dXJuICJFVFNJMl9MUElfNkdIWiI7 DQo+PiArCWNhc2UgRVRTSTJfVkxQXzZHSFo6DQo+PiArCQlyZXR1cm4gIkVUU0kyX1ZMUF82R0ha IjsNCj4+ICsJY2FzZSBBUEwxX0xQSV82R0haOg0KPj4gKwkJcmV0dXJuICJBUEwxX0xQSV82R0ha IjsNCj4+ICsJY2FzZSBBUEwxX1ZMUF82R0haOg0KPj4gKwkJcmV0dXJuICJBUEwxX1ZMUF82R0ha IjsNCj4+ICsJY2FzZSBFTVBUWV82R0haOg0KPj4gKwkJcmV0dXJuICJOL0EiOw0KPj4gKwlkZWZh dWx0Og0KPj4gKwkJcmV0dXJuICJ1bmtub3duIHN1YiByZWcgaWQiOw0KPj4gKwl9DQo+PiArfQ0K Pj4gKw0KPj4gK3N0YXRpYyB2b2lkIGF0aDEya19wcmludF9yZWdfcnVsZShzdHJ1Y3QgYXRoMTJr X2Jhc2UgKmFiLCBjaGFyICpwcmV2LA0KPj4gKwkJCQkgIHUzMiBudW1fcmVnX3J1bGVzLA0KPj4g KwkJCQkgIHN0cnVjdCBhdGgxMmtfcmVnX3J1bGUgKnJlZ19ydWxlX3B0cikgew0KPj4gKwlzdHJ1 Y3QgYXRoMTJrX3JlZ19ydWxlICpyZWdfcnVsZSA9IHJlZ19ydWxlX3B0cjsNCj4+ICsJdTMyIGNv dW50Ow0KPj4gKw0KPj4gKwlhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1dNSSwgIiVzIHJlZyBy dWxlcyBudW1iZXIgJWRcbiIsIHByZXYsIA0KPj4gK251bV9yZWdfcnVsZXMpOw0KPj4gKw0KPj4g Kwlmb3IgKGNvdW50ID0gMDsgY291bnQgPCBudW1fcmVnX3J1bGVzOyBjb3VudCsrKSB7DQo+PiAr CQlhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1dNSSwNCj4+ICsJCQkgICAicmVnIHJ1bGUgJWQ6 ICglZCAtICVkIEAgJWQpICglZCwgJWQpIChGTEFHUyAlZCkgKHBzZCBmbGFnICVkIEVJUlAgJWQg ZEIvTUh6KVxuIiwNCj4+ICsJCQkgICBjb3VudCArIDEsIHJlZ19ydWxlLT5zdGFydF9mcmVxLCBy ZWdfcnVsZS0+ZW5kX2ZyZXEsDQo+PiArCQkJICAgcmVnX3J1bGUtPm1heF9idywgcmVnX3J1bGUt PmFudF9nYWluLCByZWdfcnVsZS0+cmVnX3Bvd2VyLA0KPj4gKwkJCSAgIHJlZ19ydWxlLT5mbGFn cywgcmVnX3J1bGUtPnBzZF9mbGFnLCByZWdfcnVsZS0+cHNkX2VpcnApOw0KPj4gKwkJcmVnX3J1 bGUrKzsNCj4+ICsJfQ0KPj4gK30NCj4+ICsNCj4+ICAgc3RhdGljIGludCBhdGgxMmtfcHVsbF9y ZWdfY2hhbl9saXN0X2V4dF91cGRhdGVfZXYoc3RydWN0IGF0aDEya19iYXNlICphYiwNCj4+ICAg CQkJCQkJICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwNCj4+ICAgCQkJCQkJICAgc3RydWN0IGF0aDEy a19yZWdfaW5mbyAqcmVnX2luZm8pIEBAIC00MTYzLDcgKzQyNzYsNyBAQCANCj4+IHN0YXRpYyBp bnQgYXRoMTJrX3B1bGxfcmVnX2NoYW5fbGlzdF9leHRfdXBkYXRlX2V2KHN0cnVjdCBhdGgxMmtf YmFzZSAqYWIsDQo+PiAgIAl1MzIgbnVtXzZnX3JlZ19ydWxlc19hcFtXTUlfUkVHX0NVUlJFTlRf TUFYX0FQX1RZUEVdOw0KPj4gICAJdTMyIG51bV82Z19yZWdfcnVsZXNfY2xbV01JX1JFR19DVVJS RU5UX01BWF9BUF9UWVBFXVtXTUlfUkVHX01BWF9DTElFTlRfVFlQRV07DQo+PiAgIAl1MzIgdG90 YWxfcmVnX3J1bGVzID0gMDsNCj4+IC0JaW50IHJldCwgaSwgajsNCj4+ICsJaW50IHJldCwgaSwg aiwgc2tpcF82Z2h6X3J1bGVzX2luXzVnaHpfcnVsZXMgPSAwOw0KPj4gICANCj4+ICAgCWF0aDEy a19kYmcoYWIsIEFUSDEyS19EQkdfV01JLCAicHJvY2Vzc2luZyByZWd1bGF0b3J5IGV4dCBjaGFu bmVsIA0KPj4gbGlzdFxuIik7DQo+PiAgIA0KPj4gQEAgLTQyNjUsNiArNDM3OCwxMyBAQCBzdGF0 aWMgaW50IGF0aDEya19wdWxsX3JlZ19jaGFuX2xpc3RfZXh0X3VwZGF0ZV9ldihzdHJ1Y3QgYXRo MTJrX2Jhc2UgKmFiLA0KPj4gICAJICogZnJvbSA1RyBydWxlcyBsaXN0Lg0KPj4gICAJICovDQo+ PiAgIAlpZiAobWVtY21wKHJlZ19pbmZvLT5hbHBoYTIsICJVUyIsIDIpID09IDApIHsNCj4+ICsJ CWF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfV01JLA0KPj4gKwkJCSAgICJVUyA1IEdIeiByZWcg cnVsZXMgbnVtYmVyICVkIGZyb20gZnciLA0KPj4gKwkJCSAgIHJlZ19pbmZvLT5udW1fNWdfcmVn X3J1bGVzKTsNCj4+ICsNCj4+ICsJCWlmIChyZWdfaW5mby0+bnVtXzVnX3JlZ19ydWxlcyA+PiBS RUdfVVNfNUdfTlVNX1JFR19SVUxFUykNCj4+ICsJCQlza2lwXzZnaHpfcnVsZXNfaW5fNWdoel9y dWxlcyA9IHJlZ19pbmZvLT5udW1fNWdfcmVnX3J1bGVzIC0NCj4+ICsJCQkJCQkgICAgUkVHX1VT XzVHX05VTV9SRUdfUlVMRVM7DQoNCj4gSSdkIHNwbGl0IHRoaXMgbGluZSBhZnRlciA9IGluc3Rl YWQgb2YgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZXhwcmVzc2lvbg0KDQo+PiAgIAkJcmVnX2luZm8t Pm51bV81Z19yZWdfcnVsZXMgPSBSRUdfVVNfNUdfTlVNX1JFR19SVUxFUzsNCj4+ICAgCQludW1f NWdfcmVnX3J1bGVzID0gcmVnX2luZm8tPm51bV81Z19yZWdfcnVsZXM7DQo+PiAgIAl9DQo+PiBA QCAtNDI5Nyw2ICs0NDE3LDEwIEBAIHN0YXRpYyBpbnQgYXRoMTJrX3B1bGxfcmVnX2NoYW5fbGlz dF9leHRfdXBkYXRlX2V2KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsDQo+PiAgIAkJYnJlYWs7DQo+ PiAgIAl9DQo+PiAgIA0KPj4gKwlhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1dNSSwNCj4+ICsJ CSAgICIlczogc3RhdHVzX2NvZGUgJXMiLCBfX2Z1bmNfXywNCj4+ICsJCSAgIGF0aDEya19jY19z dGF0dXNfdG9fc3RyKHJlZ19pbmZvLT5zdGF0dXNfY29kZSkpOw0KPj4gKw0KPj4gICAJcmVnX2lu Zm8tPmlzX2V4dF9yZWdfZXZlbnQgPSB0cnVlOw0KPj4gICANCj4+ICAgCXJlZ19pbmZvLT5taW5f YndfMmcgPSBsZTMyX3RvX2NwdShldi0+bWluX2J3XzJnKTsgQEAgLTQzMjUsNiANCj4+ICs0NDQ5 LDEwIEBAIHN0YXRpYyBpbnQgYXRoMTJrX3B1bGxfcmVnX2NoYW5fbGlzdF9leHRfdXBkYXRlX2V2 KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsDQo+PiAgIAkJCWxlMzJfdG9fY3B1KGV2LT5tYXhfYndf NmdfY2xpZW50X3ZscFtpXSk7DQo+PiAgIAl9DQo+PiAgIA0KPj4gKwlhdGgxMmtfZGJnKGFiLCBB VEgxMktfREJHX1dNSSwNCj4+ICsJCSAgICIlczogc3RhdHVzX2NvZGUgJXMiLCBfX2Z1bmNfXywN Cj4+ICsJCSAgIGF0aDEya19jY19zdGF0dXNfdG9fc3RyKHJlZ19pbmZvLT5zdGF0dXNfY29kZSkp Ow0KPj4gKw0KPj4gICAJYXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19XTUksDQo+PiAgIAkJICAg IiVzOmNjX2V4dCAlcyBkc2YgJWQgQlc6IG1pbl8yZyAlZCBtYXhfMmcgJWQgbWluXzVnICVkIG1h eF81ZyAlZCIsDQo+PiAgIAkJICAgX19mdW5jX18sIHJlZ19pbmZvLT5hbHBoYTIsIHJlZ19pbmZv LT5kZnNfcmVnaW9uLCBAQCAtNDM2OCwxMCANCj4+ICs0NDk2LDEzIEBAIHN0YXRpYyBpbnQgYXRo MTJrX3B1bGxfcmVnX2NoYW5fbGlzdF9leHRfdXBkYXRlX2V2KHN0cnVjdCBhdGgxMmtfYmFzZSAq YWIsDQo+PiAgIAkJCWF0aDEya193YXJuKGFiLCAiVW5hYmxlIHRvIEFsbG9jYXRlIG1lbW9yeSBm b3IgMmcgcnVsZXNcbiIpOw0KPj4gICAJCQlyZXR1cm4gLUVOT01FTTsNCj4+ICAgCQl9DQo+PiAr CQlhdGgxMmtfcHJpbnRfcmVnX3J1bGUoYWIsICIyIEdIeiIsDQo+PiArCQkJCSAgICAgIG51bV8y Z19yZWdfcnVsZXMsDQo+PiArCQkJCSAgICAgIHJlZ19pbmZvLT5yZWdfcnVsZXNfMmdfcHRyKTsN Cj4+ICAgCX0NCj4+ICsJZXh0X3dtaV9yZWdfcnVsZSArPSBudW1fMmdfcmVnX3J1bGVzOw0KPj4g ICANCj4+ICAgCWlmIChudW1fNWdfcmVnX3J1bGVzKSB7DQo+PiAtCQlleHRfd21pX3JlZ19ydWxl ICs9IG51bV8yZ19yZWdfcnVsZXM7DQo+PiAgIAkJcmVnX2luZm8tPnJlZ19ydWxlc181Z19wdHIg PQ0KPj4gICAJCQljcmVhdGVfZXh0X3JlZ19ydWxlc19mcm9tX3dtaShudW1fNWdfcmVnX3J1bGVz LA0KPj4gICAJCQkJCQkgICAgICBleHRfd21pX3JlZ19ydWxlKTsNCj4+IEBAIC00MzgxLDkgKzQ1 MTIsMTggQEAgc3RhdGljIGludCBhdGgxMmtfcHVsbF9yZWdfY2hhbl9saXN0X2V4dF91cGRhdGVf ZXYoc3RydWN0IGF0aDEya19iYXNlICphYiwNCj4+ICAgCQkJYXRoMTJrX3dhcm4oYWIsICJVbmFi bGUgdG8gQWxsb2NhdGUgbWVtb3J5IGZvciA1ZyBydWxlc1xuIik7DQo+PiAgIAkJCXJldHVybiAt RU5PTUVNOw0KPj4gICAJCX0NCj4+ICsJCWF0aDEya19wcmludF9yZWdfcnVsZShhYiwgIjUgR0h6 IiwNCj4+ICsJCQkJICAgICAgbnVtXzVnX3JlZ19ydWxlcywNCj4+ICsJCQkJICAgICAgcmVnX2lu Zm8tPnJlZ19ydWxlc181Z19wdHIpOw0KPj4gICAJfQ0KPj4gICANCj4+IC0JZXh0X3dtaV9yZWdf cnVsZSArPSBudW1fNWdfcmVnX3J1bGVzOw0KPj4gKwkvKiBXZSBoYXZlIGFkanVzdGVkIHRoZSBu dW1iZXIgb2YgNSBHSHogcmVnIHJ1bGVzIHZpYSB0aGUgaGFjayBhYm92ZS4NCj4+ICsJICogSGVy ZSwgd2UgYWRqdXN0IHRoYXQgbWFueSBleHRyYSBydWxlcyB3aGljaCBjYW1lIHdpdGggNWcgcmVn IHJ1bGVzDQo+PiArCSAqIChmb3IgY2M6IFVTKQ0KPj4gKwkgKg0KPj4gKwkgKiBOT1RFOiBza2lw XzZnaHpfcnVsZXNfaW5fNWdoel9ydWxlcyB3aWxsIGJlIDAgZm9yIHJlc3Qgb3RoZXIgY2FzZXMu DQo+PiArCSAqLw0KPj4gKwlleHRfd21pX3JlZ19ydWxlICs9IG51bV81Z19yZWdfcnVsZXMgKyAN Cj4+ICtza2lwXzZnaHpfcnVsZXNfaW5fNWdoel9ydWxlczsNCj4+ICAgDQo+PiAgIAlmb3IgKGkg PSAwOyBpIDwgV01JX1JFR19DVVJSRU5UX01BWF9BUF9UWVBFOyBpKyspIHsNCj4+ICAgCQlyZWdf aW5mby0+cmVnX3J1bGVzXzZnX2FwX3B0cltpXSA9IEBAIC00Mzk2LDEwICs0NTM2LDE3IEBAIHN0 YXRpYyANCj4+IGludCBhdGgxMmtfcHVsbF9yZWdfY2hhbl9saXN0X2V4dF91cGRhdGVfZXYoc3Ry dWN0IGF0aDEya19iYXNlICphYiwNCj4+ICAgCQkJcmV0dXJuIC1FTk9NRU07DQo+PiAgIAkJfQ0K Pj4gICANCj4+ICsJCWF0aDEya19wcmludF9yZWdfcnVsZShhYiwgYXRoMTJrXzZnaHpfYXBfdHlw ZV90b19zdHIoaSksDQo+PiArCQkJCSAgICAgIG51bV82Z19yZWdfcnVsZXNfYXBbaV0sDQo+PiAr CQkJCSAgICAgIHJlZ19pbmZvLT5yZWdfcnVsZXNfNmdfYXBfcHRyW2ldKTsNCj4+ICsNCj4+ICAg CQlleHRfd21pX3JlZ19ydWxlICs9IG51bV82Z19yZWdfcnVsZXNfYXBbaV07DQo+PiAgIAl9DQo+ PiAgIA0KPj4gICAJZm9yIChqID0gMDsgaiA8IFdNSV9SRUdfQ1VSUkVOVF9NQVhfQVBfVFlQRTsg aisrKSB7DQo+PiArCQlhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1dNSSwNCj4+ICsJCQkgICAi QVAgdHlwZSAlcyIsIGF0aDEya182Z2h6X2FwX3R5cGVfdG9fc3RyKGopKTsNCj4+ICsNCj4+ICAg CQlmb3IgKGkgPSAwOyBpIDwgV01JX1JFR19NQVhfQ0xJRU5UX1RZUEU7IGkrKykgew0KPj4gICAJ CQlyZWdfaW5mby0+cmVnX3J1bGVzXzZnX2NsaWVudF9wdHJbal1baV0gPQ0KPj4gICAJCQkJY3Jl YXRlX2V4dF9yZWdfcnVsZXNfZnJvbV93bWkobnVtXzZnX3JlZ19ydWxlc19jbFtqXVtpXSwNCj4+ IEBAIC00NDExLDYgKzQ1NTgsMTAgQEAgc3RhdGljIGludCBhdGgxMmtfcHVsbF9yZWdfY2hhbl9s aXN0X2V4dF91cGRhdGVfZXYoc3RydWN0IGF0aDEya19iYXNlICphYiwNCj4+ICAgCQkJCXJldHVy biAtRU5PTUVNOw0KPj4gICAJCQl9DQo+PiAgIA0KPj4gKwkJCWF0aDEya19wcmludF9yZWdfcnVs ZShhYiwgYXRoMTJrXzZnaHpfY2xpZW50X3R5cGVfdG9fc3RyKGkpLA0KPj4gKwkJCQkJICAgICAg bnVtXzZnX3JlZ19ydWxlc19jbFtqXVtpXSwNCj4+ICsJCQkJCSAgICAgIHJlZ19pbmZvLT5yZWdf cnVsZXNfNmdfY2xpZW50X3B0cltqXVtpXSk7DQo+PiArDQo+PiAgIAkJCWV4dF93bWlfcmVnX3J1 bGUgKz0gbnVtXzZnX3JlZ19ydWxlc19jbFtqXVtpXTsNCj4+ICAgCQl9DQo+PiAgIAl9DQo+PiBA QCAtNDQyNSw2ICs0NTc2LDE4IEBAIHN0YXRpYyBpbnQgYXRoMTJrX3B1bGxfcmVnX2NoYW5fbGlz dF9leHRfdXBkYXRlX2V2KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsDQo+PiAgIAlyZWdfaW5mby0+ ZG9tYWluX2NvZGVfNmdfYXBbV01JX1JFR19WTFBfQVBdID0NCj4+ICAgCQlsZTMyX3RvX2NwdShl di0+ZG9tYWluX2NvZGVfNmdfYXBfdmxwKTsNCj4+ICAgDQo+PiArCWF0aDEya19kYmcoYWIsIEFU SDEyS19EQkdfV01JLA0KPj4gKwkJICAgIjYgR0h6IHJlZyBpbmZvIGNsaWVudCB0eXBlICVzIHJu cl90cGVfdXNhYmxlICVkIHVuc3BlY2lmaWVkX2FwX3VzYWJsZSAlZCBBUCBzdWIgZG9tYWluOiBs cGkgJXMgLCBzcCAlcyAsIHZscCAlc1xuIiwNCj4+ICsJCSAgIGF0aDEya182Z2h6X2NsaWVudF90 eXBlX3RvX3N0cihyZWdfaW5mby0+Y2xpZW50X3R5cGUpLA0KPj4gKwkJICAgcmVnX2luZm8tPnJu cl90cGVfdXNhYmxlLA0KPj4gKwkJICAgcmVnX2luZm8tPnVuc3BlY2lmaWVkX2FwX3VzYWJsZSwN Cj4+ICsJCSAgIGF0aDEya19zdWJfcmVnXzZnaHpfdG9fc3RyDQo+PiArCQkgICAobGUzMl90b19j cHUoZXYtPmRvbWFpbl9jb2RlXzZnX2FwX2xwaSkpLA0KPj4gKwkJICAgYXRoMTJrX3N1Yl9yZWdf Nmdoel90b19zdHINCj4+ICsJCSAgIChsZTMyX3RvX2NwdShldi0+ZG9tYWluX2NvZGVfNmdfYXBf c3ApKSwNCj4+ICsJCSAgIGF0aDEya19zdWJfcmVnXzZnaHpfdG9fc3RyDQo+PiArCQkgICAobGUz Ml90b19jcHUoZXYtPmRvbWFpbl9jb2RlXzZnX2FwX3ZscCkpKTsNCg0KPiBhdm9pZCBzcGxpdHRp bmcgdGhlIGxpbmUgYmV0d2VlbiBhIGZ1bmN0aW9uIGFuZCBpdCdzIHBhcmFtZXRlcnMuDQo+IGl0 IGlzIG9rIHRvIHNwbGl0IGluIHRoZSBtaWRkbGUgb2YgYSBwYXJhbWV0ZXIgbGlzdCwgYnV0IHRo ZSBmaXJzdCBwYXJhbWV0ZXIgc2hvdWxkIGFsbW9zdCBhbHdheXMgYmUgb24gdGhlIHNhbWUgbGlu ZSBhcyB0aGUgZnVuY3Rpb24NCg0KPj4gKw0KPj4gICAJZm9yIChpID0gMDsgaSA8IFdNSV9SRUdf TUFYX0NMSUVOVF9UWVBFOyBpKyspIHsNCj4+ICAgCQlyZWdfaW5mby0+ZG9tYWluX2NvZGVfNmdf Y2xpZW50W1dNSV9SRUdfSU5ET09SX0FQXVtpXSA9DQo+PiAgIAkJCWxlMzJfdG9fY3B1KGV2LT5k b21haW5fY29kZV82Z19jbGllbnRfbHBpW2ldKTsNCj4+IEBAIC00NDMyLDEyICs0NTk1LDE4IEBA IHN0YXRpYyBpbnQgYXRoMTJrX3B1bGxfcmVnX2NoYW5fbGlzdF9leHRfdXBkYXRlX2V2KHN0cnVj dCBhdGgxMmtfYmFzZSAqYWIsDQo+PiAgIAkJCWxlMzJfdG9fY3B1KGV2LT5kb21haW5fY29kZV82 Z19jbGllbnRfc3BbaV0pOw0KPj4gICAJCXJlZ19pbmZvLT5kb21haW5fY29kZV82Z19jbGllbnRb V01JX1JFR19WTFBfQVBdW2ldID0NCj4+ICAgCQkJbGUzMl90b19jcHUoZXYtPmRvbWFpbl9jb2Rl XzZnX2NsaWVudF92bHBbaV0pOw0KPj4gKwkJYXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19XTUks DQo+PiArCQkJICAgIjYgR0h6IEFQIEJXOiBscGkgJWQgLSAlZCBzcCAlZCAtICVkIHZscCAlZCAt ICVkXG4iLA0KPj4gKwkJCSAgIGV2LT5taW5fYndfNmdfYXBfbHBpLCBldi0+bWF4X2J3XzZnX2Fw X2xwaSwNCj4+ICsJCQkgICBldi0+bWluX2J3XzZnX2FwX3NwLCBldi0+bWF4X2J3XzZnX2FwX3Nw LA0KPj4gKwkJCSAgIGV2LT5taW5fYndfNmdfYXBfdmxwLCBldi0+bWF4X2J3XzZnX2FwX3ZscCk7 DQo+PiAgIAl9DQo+PiAgIA0KPj4gICAJcmVnX2luZm8tPmRvbWFpbl9jb2RlXzZnX3N1cGVyX2lk ID0gDQo+PiBsZTMyX3RvX2NwdShldi0+ZG9tYWluX2NvZGVfNmdfc3VwZXJfaWQpOw0KPj4gICAN Cj4+IC0JYXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19XTUksICI2ZyBjbGllbnRfdHlwZTogJWQg ZG9tYWluX2NvZGVfNmdfc3VwZXJfaWQ6ICVkIiwNCj4+IC0JCSAgIHJlZ19pbmZvLT5jbGllbnRf dHlwZSwgcmVnX2luZm8tPmRvbWFpbl9jb2RlXzZnX3N1cGVyX2lkKTsNCj4+ICsJYXRoMTJrX2Ri ZyhhYiwgQVRIMTJLX0RCR19XTUksICI2IEdIeiBjbGllbnRfdHlwZTogJXMgNiBHSHogc3VwZXIg ZG9tYWluICVzIiwNCj4+ICsJCSAgIGF0aDEya182Z2h6X2NsaWVudF90eXBlX3RvX3N0cihyZWdf aW5mby0+Y2xpZW50X3R5cGUpLA0KPj4gKwkJICAgDQo+PiArYXRoMTJrX3N1cGVyX3JlZ182Z2h6 X3RvX3N0cihyZWdfaW5mby0+ZG9tYWluX2NvZGVfNmdfc3VwZXJfaWQpKTsNCj4+ICAgDQo+PiAg IAlhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1dNSSwgInByb2Nlc3NlZCByZWd1bGF0b3J5IGV4 dCBjaGFubmVsIA0KPj4gbGlzdFxuIik7DQo+PiAgIA0KPj4gQEAgLTUxOTIsNyArNTM2MSw4IEBA IHN0YXRpYyBpbnQgYXRoMTJrX3JlZ19jaGFuX2xpc3RfZXZlbnQoc3RydWN0IGF0aDEya19iYXNl ICphYiwgc3RydWN0IHNrX2J1ZmYgKnNrDQo+PiAgIAkgICAgIWF0aDEya19yZWdfaXNfd29ybGRf YWxwaGEoKGNoYXIgKilyZWdfaW5mby0+YWxwaGEyKSkNCj4+ICAgCQlpbnRlcnNlY3QgPSB0cnVl Ow0KPj4gICANCj4+IC0JcmVnZCA9IGF0aDEya19yZWdfYnVpbGRfcmVnZChhYiwgcmVnX2luZm8s IGludGVyc2VjdCk7DQo+PiArCXJlZ2QgPSBhdGgxMmtfcmVnX2J1aWxkX3JlZ2QoYWIsIHJlZ19p bmZvLCBpbnRlcnNlY3QsDQo+PiArCQkJCSAgICAgV01JX1ZERVZfVFlQRV9BUCwgSUVFRTgwMjEx X1JFR19VTlNFVF9BUCk7DQoNCj4gd2h5IGlzIHRoaXMgZm9yY2VkIHRvIEFQPw0KPiB3aGVyZSBp cyBsb2dpYyBmb3IgY2xpZW50Pw0KDQo+PiAgIAlpZiAoIXJlZ2QpIHsNCj4+ICAgCQlhdGgxMmtf d2FybihhYiwgImZhaWxlZCB0byBidWlsZCByZWdkIGZyb20gcmVnX2luZm9cbiIpOw0KPj4gICAJ CWdvdG8gZmFsbGJhY2s7DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo L2F0aDEyay93bWkuaCANCj4+IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWku aA0KPj4gaW5kZXggMDhhOGM5ZTBmNTlmLi45NjZlNmJhNGUxNjIgMTAwNjQ0DQo+PiAtLS0gYS9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oDQo+PiArKysgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oDQo+PiBAQCAtMjgzMiw4ICsyODMyLDggQEAgc3Ry dWN0IGF0aDEya193bWlfcnhfcmVvcmRlcl9xdWV1ZV9yZW1vdmVfYXJnIHsNCj4+ICAgI2RlZmlu ZSBSRUdfUlVMRV9NQVhfQlcJCQkJMHgwMDAwZmZmZg0KPj4gICAjZGVmaW5lIFJFR19SVUxFX1JF R19QV1IJCQkweDAwZmYwMDAwDQo+PiAgICNkZWZpbmUgUkVHX1JVTEVfQU5UX0dBSU4JCQkweGZm MDAwMDAwDQo+PiAtI2RlZmluZSBSRUdfUlVMRV9QU0RfSU5GTwkJCUJJVCgyKQ0KPj4gLSNkZWZp bmUgUkVHX1JVTEVfUFNEX0VJUlAJCQkweGZmZmYwMDAwDQo+PiArI2RlZmluZSBSRUdfUlVMRV9Q U0RfSU5GTyAgICAgICAgICAgICAgICAgICAgICAgQklUKDApDQo+PiArI2RlZmluZSBSRUdfUlVM RV9QU0RfRUlSUCAgICAgICAgICAgICAgICAgICAgICAgMHhmZjAwMDANCj4+ICAgDQo+PiAgICNk ZWZpbmUgV01JX1ZERVZfUEFSQU1fVFhCRl9TVV9UWF9CRkVFIEJJVCgwKQ0KPj4gICAjZGVmaW5l IFdNSV9WREVWX1BBUkFNX1RYQkZfTVVfVFhfQkZFRSBCSVQoMSkgQEAgLTM4NDQsNiArMzg0NCwy OSBAQCANCj4+IGVudW0gew0KPj4gICAJV01JX1JFR19TRVRfQ0NfU1RBVFVTX0ZBSUwgPSA1LA0K Pj4gICB9Ow0KPj4gICANCj4+ICtlbnVtIHJlZ19zdWJkb21haW5zXzZnaHogew0KPj4gKwlFTVBU WV82R0haID0gMHgwLA0KPj4gKwlGQ0MxX0NMSUVOVF9MUElfUkVHVUxBUl82R0haID0gMHgwMSwN Cj4+ICsJRkNDMV9DTElFTlRfU1BfNkdIWiA9IDB4MDIsDQo+PiArCUZDQzFfQVBfTFBJXzZHSFog PSAweDAzLA0KPj4gKwlGQ0MxX0NMSUVOVF9MUElfU1VCT1JESU5BVEUgPSBGQ0MxX0FQX0xQSV82 R0haLA0KPj4gKwlGQ0MxX0FQX1NQXzZHSFogPSAweDA0LA0KPj4gKwlFVFNJMV9MUElfNkdIWiA9 IDB4MTAsDQo+PiArCUVUU0kxX1ZMUF82R0haID0gMHgxMSwNCj4+ICsJRVRTSTJfTFBJXzZHSFog PSAweDEyLA0KPj4gKwlFVFNJMl9WTFBfNkdIWiA9IDB4MTMsDQo+PiArCUFQTDFfTFBJXzZHSFog PSAweDIwLA0KPj4gKwlBUEwxX1ZMUF82R0haID0gMHgyMSwNCj4+ICt9Ow0KPj4gKw0KPj4gK2Vu dW0gcmVnX3N1cGVyX2RvbWFpbl82Z2h6IHsNCj4+ICsJRkNDMV82R0haID0gMHgwMSwNCj4+ICsJ RVRTSTFfNkdIWiA9IDB4MDIsDQo+PiArCUVUU0kyXzZHSFogPSAweDAzLA0KPj4gKwlBUEwxXzZH SFogPSAweDA0LA0KPj4gKwlGQ0MxXzZHSFpfQ0wgPSAweDA1LA0KPj4gK307DQo+PiArDQo+PiAg ICNkZWZpbmUgV01JX1JFR19DTElFTlRfTUFYIDQNCj4+ICAgDQo+PiAgIHN0cnVjdCB3bWlfcmVn X2NoYW5fbGlzdF9jY19leHRfZXZlbnQgew0KDQpUaGFua3MgZm9yIHlvdXIgcmV2aWV3LiBJIHdp bGwgYWRkcmVzcyBhbGwgeW91ciBjb21tZW50cyBpbiBuZXh0IHJldmlzaW9uLg0KDQpBaXNod2Fy eWEgDQo=