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 X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 729C7C4742C for ; Mon, 16 Nov 2020 19:33:46 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id D630520825 for ; Mon, 16 Nov 2020 19:33:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="P0ToLkcc" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D630520825 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:57404 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kekG0-0000Vl-SO for qemu-devel@archiver.kernel.org; Mon, 16 Nov 2020 14:33:44 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:47754) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kejxU-0007GC-RH; Mon, 16 Nov 2020 14:14:36 -0500 Received: from mail-bn8nam11on2079.outbound.protection.outlook.com ([40.107.236.79]:42241 helo=NAM11-BN8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kejxN-0003P4-VM; Mon, 16 Nov 2020 14:14:35 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nll6YezoLG3j2T5Mkosk0f56fVzDBJduMcC1U7Z+G8zhL62RSXfR/tT7NwK4OnPc+ePdUo1bc5/qNaJd+sz0EtwrRhXJbkAC6ETfocv66BcQnToe4FR/YMGnFadRqiR4vvMotIYAAtlDD00pmMKrv9GlODfBilBlSBo3FagLndd9aHgAJcm93Jxlqvk7mpFmD2R+zNrO8C3qQvNNTPfuMLaPFkUuTxgkxAM9QTTQJ4I4bFlLjMSPomXcK+xEoeFmcBWBLvlo2JAoCCiSF4yLQ8JAg53EGAWMQHq3r3SmJispLPODtx1Crxy3k8rQ8EAxDFdr9NNbcZU9+/hwW1uuhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HJ31DIziYe5JXfM/sNcGTI/kHzUT3SVRjhJnnfJlf4M=; b=EBJua+VnF2lfQVM0WHdJtpwxjtOQyLraDTN+xGw3OOekAYLwDCs6bWLP92zHwIDcOnDoE4KRK84S708NTzQmwPbkfApsXn9oT/q/U58x5vLnSFE+/H0GOJP5yE75/Ao97tW/OFDzW7QvWJV8v0mWagud+7qCEAIPkJjDx443hWzSlD/fl/j4u0HjKGYzSjOcAYGaFjWK6HFQvRIeszWYCkdi0lX0JExBN3Kp7TPteVwhyU2AiSIA3vfVWfBaeYJeDHbK0+mdirEx3b4wczfbAVUQnyTSacfmRXE+C+9uF6leu9X/o69tu2BRA+aHplk2Hcie75R0+rqx9QRZGOzwtw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=xilinx.com; dmarc=pass action=none header.from=xilinx.com; dkim=pass header.d=xilinx.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HJ31DIziYe5JXfM/sNcGTI/kHzUT3SVRjhJnnfJlf4M=; b=P0ToLkccRkv6apZ/x3CLY5HDp95dn1AKtJrfGuTdDCbHfRhPu0fv8afuM0ufmIh2/jP3O6QaqlHuy6eEz3XcN2DeY7Qy8x5QM76TQLvOZz6PnRwmCkj6MWd0tSaZjhYq5yfPR15VRhT1YEZoxhctOS3LQ8EDOIF48qpg9z2WkZc= Received: from BY5PR02MB6033.namprd02.prod.outlook.com (2603:10b6:a03:1ff::10) by SJ0PR02MB7693.namprd02.prod.outlook.com (2603:10b6:a03:318::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3564.25; Mon, 16 Nov 2020 19:14:25 +0000 Received: from BY5PR02MB6033.namprd02.prod.outlook.com ([fe80::f5f3:83c4:cc49:d415]) by BY5PR02MB6033.namprd02.prod.outlook.com ([fe80::f5f3:83c4:cc49:d415%6]) with mapi id 15.20.3564.028; Mon, 16 Nov 2020 19:14:25 +0000 From: Joe Komlodi To: Francisco Eduardo Iglesias Subject: RE: [PATCH v4 3/4] hw/block/m25p80: Check SPI mode before running some Numonyx commands Thread-Topic: [PATCH v4 3/4] hw/block/m25p80: Check SPI mode before running some Numonyx commands Thread-Index: AQHWuWrAv5Dovq6gjUafhOrnOXw0ranK79qAgAA1OrA= Date: Mon, 16 Nov 2020 19:14:25 +0000 Message-ID: References: <1605237055-393580-1-git-send-email-komlodi@xilinx.com> <1605237055-393580-4-git-send-email-komlodi@xilinx.com> <20201116155836.th2cvcawoo3pkvit@debian> In-Reply-To: <20201116155836.th2cvcawoo3pkvit@debian> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-MS-TNEF-Correlator: authentication-results: xilinx.com; dkim=none (message not signed) header.d=none;xilinx.com; dmarc=none action=none header.from=xilinx.com; x-originating-ip: [149.199.62.133] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: e76c0a0d-885b-4389-af4d-08d88a63d52e x-ms-traffictypediagnostic: SJ0PR02MB7693: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:462; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Z14z/drwzuIRJfnKTlXzAhsZKGWDQFoRYHp1RajiSN98afTNIFLp4NL9Ayhq8163iHRcJ8s254em24SKR4nLmoQGdPFJkldoCjIrL3C2b+8z+Id0Gh3vIqZcXoaQ2N+k207X1pdw/uf2R79kQuE94E97shabyxorkvFewEUPfBUcEeEsYrk8B6bgHnBV3u8j3GiLOqoBJmtCKiWNZaqQAnemKNIN0kg5hf9mrb7BbhDrKNOmI0uWpCjbL10chJgvgiVuSwZf5n+gEkIu24QEWK+qTQHZawpyhxcHf8+aoc/MOYeut/2XRwl91HKKwErx5rjrT9IS7zu+czJFLWHymw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR02MB6033.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(376002)(39860400002)(136003)(396003)(366004)(6506007)(83380400001)(54906003)(2906002)(316002)(5660300002)(6636002)(6862004)(9686003)(478600001)(26005)(53546011)(86362001)(4326008)(66476007)(66556008)(64756008)(66446008)(52536014)(66946007)(71200400001)(33656002)(186003)(7696005)(55016002)(8676002)(8936002)(76116006); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: FtfUdV6cF9Qu4aLldAuCe/TyQgU+Ur3H2ek1OpDX/ovL0tr5u/cSdI1Im7POPhcTlJlHOPUkrk3Kr8T2RLLxeouRSbgdMEzDbhJeLYJyD5QkY0omwEoGAtJ+hxVj8dExkmw1ankhTzxqg+MQU2VO1hUpLQWtBqHGyO826pSvjnb2Jcwt3ZehfnzDjJOfsa1hZgInF4pbfg+BBxUyXFDLnpLAO6c6qlg0xb98XQiEdIgakp9Cl1R0wp2zl94MuennTRGc+UHTdbvHobbYFWloZ6dX13x7PVrpCCpf1/egyXxnktgXFfYz3JCl8E7qFIdHuNfPe2nG+1WPa7J7rUenCFDhBxB/PFwUlFHJbDs8onIWbxILlXdVgCfKkFPat8bThuESi7OLZ7zUYUltiI9A4L1NrlqfSagUskiws8+/xOK21YtU5LP4MsWNpI62z9OK3dr8q5JYrHrtnzkJwIn88FNfrsdie8RvNrujYClzXXD3mxaIf2CfjkwrvxiU/8LVH6//UOk5rkVSfLZ3EUAruTm97HSYiI0jgnq0QNep2dM4feZ9TFrLaoIWfcUDfRNWGQb2OV/V+US7LRw9FF1oYmOIECsLEUnLn+IWTUU9rZHyYmckR55aL2/tUvh6uRTFJaSVQY0hZ7NB11L3ftxsWn1hVwlZ03aVzmxYaks1VxFCLUWoXHhjckQdQVbLHiImqBYmnRZYXSuL3jrZanJ8k+E09mX3RnLzsAe7ijKtJrbgh0jQK46v6RiA3KDesYRM1CK3gCe4UriQitfX6lJVXN54XufvsaR9cfOLGVR8DxMW64OgsMfLyZ7h76r84XDMiUhION85DWFL2ocVQ6rUttDR2mABL7+doU+NL+MtQ4QpCjBduuroSDvx6WGk1yHx2r25ODlMniN8+L81kHHACw== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR02MB6033.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e76c0a0d-885b-4389-af4d-08d88a63d52e X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2020 19:14:25.5037 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: tX5Ya6zj7EK/fV/nxoghjJXjanA7CqnbBImnQB7l3x/hpvisV1L1KKP5sBl1G5Pi5xWqjYEt55B4h2yrmWUVUA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB7693 Received-SPF: pass client-ip=40.107.236.79; envelope-from=komlodi@xilinx.com; helo=NAM11-BN8-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/16 14:14:27 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Francisco Eduardo Iglesias , "qemu-block@nongnu.org" , "alistair@alistair23.me" , "qemu-devel@nongnu.org" , "mreitz@redhat.com" , "philippe.mathieu.daude@gmail.com" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" SGkgRnJhbmNpc2NvLA0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogRnJhbmNp c2NvIElnbGVzaWFzIDxmcmFuY2lzY28uaWdsZXNpYXNAeGlsaW54LmNvbT4gDQpTZW50OiBNb25k YXksIE5vdmVtYmVyIDE2LCAyMDIwIDc6NTkgQU0NClRvOiBKb2UgS29tbG9kaSA8a29tbG9kaUB4 aWxpbnguY29tPg0KQ2M6IHFlbXUtZGV2ZWxAbm9uZ251Lm9yZzsgcGhpbGlwcGUubWF0aGlldS5k YXVkZUBnbWFpbC5jb207IEZyYW5jaXNjbyBFZHVhcmRvIElnbGVzaWFzIDxmaWdsZXNpYUB4aWxp bnguY29tPjsgYWxpc3RhaXJAYWxpc3RhaXIyMy5tZTsgcWVtdS1ibG9ja0Bub25nbnUub3JnOyBt cmVpdHpAcmVkaGF0LmNvbQ0KU3ViamVjdDogUmU6IFtQQVRDSCB2NCAzLzRdIGh3L2Jsb2NrL20y NXA4MDogQ2hlY2sgU1BJIG1vZGUgYmVmb3JlIHJ1bm5pbmcgc29tZSBOdW1vbnl4IGNvbW1hbmRz DQoNCkhpIEpvZSwNCg0KT24gVGh1LCBOb3YgMTIsIDIwMjAgYXQgMDc6MTA6NTRQTSAtMDgwMCwg Sm9lIEtvbWxvZGkgd3JvdGU6DQo+IFNvbWUgTnVtb255eCBmbGFzaCBjb21tYW5kcyBjYW5ub3Qg YmUgZXhlY3V0ZWQgaW4gRElPIGFuZCBRSU8gbW9kZSwgDQo+IHN1Y2ggYXMgdHJ5aW5nIHRvIGRv IERQUCBvciBET1Igd2hlbiBpbiBRSU8gbW9kZS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEpvZSBL b21sb2RpIDxrb21sb2RpQHhpbGlueC5jb20+DQo+IC0tLQ0KPiAgaHcvYmxvY2svbTI1cDgwLmMg fCAxMzQgDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDExMiBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlv bnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9ody9ibG9jay9tMjVwODAuYyBiL2h3L2Jsb2NrL20y NXA4MC5jIGluZGV4IA0KPiBlYjY1MzlmLi4yNTUyZjJjIDEwMDY0NA0KPiAtLS0gYS9ody9ibG9j ay9tMjVwODAuYw0KPiArKysgYi9ody9ibG9jay9tMjVwODAuYw0KPiBAQCAtNDEzLDYgKzQxMywx MiBAQCB0eXBlZGVmIGVudW0gew0KPiAgICAgIE1BTl9HRU5FUklDLA0KPiAgfSBNYW51ZmFjdHVy ZXI7DQo+ICANCj4gK3R5cGVkZWYgZW51bSB7DQo+ICsgICAgTU9ERV9TVEQgPSAwLA0KPiArICAg IE1PREVfRElPID0gMSwNCj4gKyAgICBNT0RFX1FJTyA9IDINCj4gK30gU1BJTW9kZTsNCj4gKw0K PiAgI2RlZmluZSBNMjVQODBfSU5URVJOQUxfREFUQV9CVUZGRVJfU1ogMTYNCj4gIA0KPiAgc3Ry dWN0IEZsYXNoIHsNCj4gQEAgLTgyMCw2ICs4MjYsMTcgQEAgc3RhdGljIHZvaWQgcmVzZXRfbWVt b3J5KEZsYXNoICpzKQ0KPiAgICAgIHRyYWNlX20yNXA4MF9yZXNldF9kb25lKHMpOw0KPiAgfQ0K PiAgDQo+ICtzdGF0aWMgdWludDhfdCBudW1vbnl4X2dldF9tb2RlKEZsYXNoICpzKSB7DQo+ICsg ICAgaWYgKCEocy0+ZW5oX3ZvbGF0aWxlX2NmZyAmIEVWQ0ZHX1FVQURfSU9fRElTQUJMRUQpKSB7 DQo+ICsgICAgICAgIHJldHVybiBNT0RFX1FJTzsNCj4gKyAgICB9IGVsc2UgaWYgKCEocy0+ZW5o X3ZvbGF0aWxlX2NmZyAmIEVWQ0ZHX0RVQUxfSU9fRElTQUJMRUQpKSB7DQo+ICsgICAgICAgIHJl dHVybiBNT0RFX0RJTzsNCj4gKyAgICB9IGVsc2Ugew0KPiArICAgICAgICByZXR1cm4gTU9ERV9T VEQ7DQo+ICsgICAgfQ0KPiArfQ0KPiArDQo+ICBzdGF0aWMgdm9pZCBkZWNvZGVfZmFzdF9yZWFk X2NtZChGbGFzaCAqcykgIHsNCj4gICAgICBzLT5uZWVkZWRfYnl0ZXMgPSBnZXRfYWRkcl9sZW5n dGgocyk7IEBAIC04MjcsOSArODQ0LDExIEBAIHN0YXRpYyANCj4gdm9pZCBkZWNvZGVfZmFzdF9y ZWFkX2NtZChGbGFzaCAqcykNCj4gICAgICAvKiBEdW1teSBjeWNsZXMgLSBtb2RlbGVkIHdpdGgg Ynl0ZXMgd3JpdGVzIGluc3RlYWQgb2YgYml0cyAqLw0KPiAgICAgIGNhc2UgTUFOX1dJTkJPTkQ6 DQo+ICAgICAgICAgIHMtPm5lZWRlZF9ieXRlcyArPSA4Ow0KPiArICAgICAgICBzLT5zdGF0ZSA9 IFNUQVRFX0NPTExFQ1RJTkdfREFUQTsNCj4gICAgICAgICAgYnJlYWs7DQo+ICAgICAgY2FzZSBN QU5fTlVNT05ZWDoNCj4gICAgICAgICAgcy0+bmVlZGVkX2J5dGVzICs9IGV4dHJhY3QzMihzLT52 b2xhdGlsZV9jZmcsIDQsIDQpOw0KPiArICAgICAgICBzLT5zdGF0ZSA9IFNUQVRFX0NPTExFQ1RJ TkdfREFUQTsNCj4gICAgICAgICAgYnJlYWs7DQo+ICAgICAgY2FzZSBNQU5fTUFDUk9OSVg6DQo+ ICAgICAgICAgIGlmIChleHRyYWN0MzIocy0+dm9sYXRpbGVfY2ZnLCA2LCAyKSA9PSAxKSB7IEBA IC04MzcsMTkgDQo+ICs4NTYsMjEgQEAgc3RhdGljIHZvaWQgZGVjb2RlX2Zhc3RfcmVhZF9jbWQo Rmxhc2ggKnMpDQo+ICAgICAgICAgIH0gZWxzZSB7DQo+ICAgICAgICAgICAgICBzLT5uZWVkZWRf Ynl0ZXMgKz0gODsNCj4gICAgICAgICAgfQ0KPiArICAgICAgICBzLT5zdGF0ZSA9IFNUQVRFX0NP TExFQ1RJTkdfREFUQTsNCj4gICAgICAgICAgYnJlYWs7DQo+ICAgICAgY2FzZSBNQU5fU1BBTlNJ T046DQo+ICAgICAgICAgIHMtPm5lZWRlZF9ieXRlcyArPSBleHRyYWN0MzIocy0+c3BhbnNpb25f Y3IydiwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQQU5TSU9OX0RV TU1ZX0NMS19QT1MsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEFO U0lPTl9EVU1NWV9DTEtfTEVODQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICApOw0KPiArICAgICAgICBzLT5zdGF0ZSA9IFNUQVRFX0NPTExFQ1RJTkdfREFUQTsNCj4gICAg ICAgICAgYnJlYWs7DQo+ICAgICAgZGVmYXVsdDoNCj4gKyAgICAgICAgcy0+c3RhdGUgPSBTVEFU RV9DT0xMRUNUSU5HX0RBVEE7DQo+ICAgICAgICAgIGJyZWFrOw0KPiAgICAgIH0NCj4gICAgICBz LT5wb3MgPSAwOw0KPiAgICAgIHMtPmxlbiA9IDA7DQo+IC0gICAgcy0+c3RhdGUgPSBTVEFURV9D T0xMRUNUSU5HX0RBVEE7DQoNCkFib3ZlIGNoYW5nZSBpbiB0aGlzIGZ1bmN0aW9uIGFuZCB0aGUg c2ltaWxhciBvbmVzIGluIGJlbG93IHR3byBmdW5jdGlvbnMgZG9uJ3Qgc2VlbSB0byBiZSBuZWVk ZWQgYW55bW9yZSAocy0+c3RhdGUgPSBTVEFURV9DT0xMRUNUSU5HX0RBVEEgaXMgYmVpbmcgZG9u ZSBpbiBhbGwgY2FzZXMpLg0KW0pvZV0gT29wcywgSSdsbCBzaW1wbGlmeSB0aGF0Lg0KDQo+ICB9 DQo+ICANCj4gIHN0YXRpYyB2b2lkIGRlY29kZV9kaW9fcmVhZF9jbWQoRmxhc2ggKnMpIEBAIC04 NTksNiArODgwLDcgQEAgc3RhdGljIA0KPiB2b2lkIGRlY29kZV9kaW9fcmVhZF9jbWQoRmxhc2gg KnMpDQo+ICAgICAgc3dpdGNoIChnZXRfbWFuKHMpKSB7DQo+ICAgICAgY2FzZSBNQU5fV0lOQk9O RDoNCj4gICAgICAgICAgcy0+bmVlZGVkX2J5dGVzICs9IFdJTkJPTkRfQ09OVElOVU9VU19SRUFE X01PREVfQ01EX0xFTjsNCj4gKyAgICAgICAgcy0+c3RhdGUgPSBTVEFURV9DT0xMRUNUSU5HX0RB VEE7DQo+ICAgICAgICAgIGJyZWFrOw0KPiAgICAgIGNhc2UgTUFOX1NQQU5TSU9OOg0KPiAgICAg ICAgICBzLT5uZWVkZWRfYnl0ZXMgKz0gU1BBTlNJT05fQ09OVElOVU9VU19SRUFEX01PREVfQ01E X0xFTjsNCj4gQEAgLTg2Niw5ICs4ODgsMTEgQEAgc3RhdGljIHZvaWQgZGVjb2RlX2Rpb19yZWFk X2NtZChGbGFzaCAqcykNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQ QU5TSU9OX0RVTU1ZX0NMS19QT1MsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTUEFOU0lPTl9EVU1NWV9DTEtfTEVODQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApOw0KPiArICAgICAgICBzLT5zdGF0ZSA9IFNUQVRFX0NPTExFQ1RJTkdfREFU QTsNCj4gICAgICAgICAgYnJlYWs7DQo+ICAgICAgY2FzZSBNQU5fTlVNT05ZWDoNCj4gICAgICAg ICAgcy0+bmVlZGVkX2J5dGVzICs9IGV4dHJhY3QzMihzLT52b2xhdGlsZV9jZmcsIDQsIDQpOw0K PiArICAgICAgICBzLT5zdGF0ZSA9IFNUQVRFX0NPTExFQ1RJTkdfREFUQTsNCj4gICAgICAgICAg YnJlYWs7DQo+ICAgICAgY2FzZSBNQU5fTUFDUk9OSVg6DQo+ICAgICAgICAgIHN3aXRjaCAoZXh0 cmFjdDMyKHMtPnZvbGF0aWxlX2NmZywgNiwgMikpIHsgQEAgLTg4MiwxMyANCj4gKzkwNiwxNCBA QCBzdGF0aWMgdm9pZCBkZWNvZGVfZGlvX3JlYWRfY21kKEZsYXNoICpzKQ0KPiAgICAgICAgICAg ICAgcy0+bmVlZGVkX2J5dGVzICs9IDQ7DQo+ICAgICAgICAgICAgICBicmVhazsNCj4gICAgICAg ICAgfQ0KPiArICAgICAgICBzLT5zdGF0ZSA9IFNUQVRFX0NPTExFQ1RJTkdfREFUQTsNCj4gICAg ICAgICAgYnJlYWs7DQo+ICAgICAgZGVmYXVsdDoNCj4gKyAgICAgICAgcy0+c3RhdGUgPSBTVEFU RV9DT0xMRUNUSU5HX0RBVEE7DQo+ICAgICAgICAgIGJyZWFrOw0KPiAgICAgIH0NCj4gICAgICBz LT5wb3MgPSAwOw0KPiAgICAgIHMtPmxlbiA9IDA7DQo+IC0gICAgcy0+c3RhdGUgPSBTVEFURV9D T0xMRUNUSU5HX0RBVEE7DQo+ICB9DQo+ICANCj4gIHN0YXRpYyB2b2lkIGRlY29kZV9xaW9fcmVh ZF9jbWQoRmxhc2ggKnMpIEBAIC04OTksNiArOTI0LDcgQEAgc3RhdGljIA0KPiB2b2lkIGRlY29k ZV9xaW9fcmVhZF9jbWQoRmxhc2ggKnMpDQo+ICAgICAgY2FzZSBNQU5fV0lOQk9ORDoNCj4gICAg ICAgICAgcy0+bmVlZGVkX2J5dGVzICs9IFdJTkJPTkRfQ09OVElOVU9VU19SRUFEX01PREVfQ01E X0xFTjsNCj4gICAgICAgICAgcy0+bmVlZGVkX2J5dGVzICs9IDQ7DQo+ICsgICAgICAgIHMtPnN0 YXRlID0gU1RBVEVfQ09MTEVDVElOR19EQVRBOw0KPiAgICAgICAgICBicmVhazsNCj4gICAgICBj YXNlIE1BTl9TUEFOU0lPTjoNCj4gICAgICAgICAgcy0+bmVlZGVkX2J5dGVzICs9IFNQQU5TSU9O X0NPTlRJTlVPVVNfUkVBRF9NT0RFX0NNRF9MRU47DQo+IEBAIC05MDYsOSArOTMyLDExIEBAIHN0 YXRpYyB2b2lkIGRlY29kZV9xaW9fcmVhZF9jbWQoRmxhc2ggKnMpDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTUEFOU0lPTl9EVU1NWV9DTEtfUE9TLA0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BBTlNJT05fRFVNTVlfQ0xLX0xFTg0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4gKyAgICAgICAgcy0+c3Rh dGUgPSBTVEFURV9DT0xMRUNUSU5HX0RBVEE7DQo+ICAgICAgICAgIGJyZWFrOw0KPiAgICAgIGNh c2UgTUFOX05VTU9OWVg6DQo+ICAgICAgICAgIHMtPm5lZWRlZF9ieXRlcyArPSBleHRyYWN0MzIo cy0+dm9sYXRpbGVfY2ZnLCA0LCA0KTsNCj4gKyAgICAgICAgcy0+c3RhdGUgPSBTVEFURV9DT0xM RUNUSU5HX0RBVEE7DQo+ICAgICAgICAgIGJyZWFrOw0KPiAgICAgIGNhc2UgTUFOX01BQ1JPTklY Og0KPiAgICAgICAgICBzd2l0Y2ggKGV4dHJhY3QzMihzLT52b2xhdGlsZV9jZmcsIDYsIDIpKSB7 IEBAIC05MjIsMTMgDQo+ICs5NTAsMTQgQEAgc3RhdGljIHZvaWQgZGVjb2RlX3Fpb19yZWFkX2Nt ZChGbGFzaCAqcykNCj4gICAgICAgICAgICAgIHMtPm5lZWRlZF9ieXRlcyArPSA2Ow0KPiAgICAg ICAgICAgICAgYnJlYWs7DQo+ICAgICAgICAgIH0NCj4gKyAgICAgICAgcy0+c3RhdGUgPSBTVEFU RV9DT0xMRUNUSU5HX0RBVEE7DQo+ICAgICAgICAgIGJyZWFrOw0KPiAgICAgIGRlZmF1bHQ6DQo+ ICsgICAgICAgIHMtPnN0YXRlID0gU1RBVEVfQ09MTEVDVElOR19EQVRBOw0KPiAgICAgICAgICBi cmVhazsNCj4gICAgICB9DQo+ICAgICAgcy0+cG9zID0gMDsNCj4gICAgICBzLT5sZW4gPSAwOw0K PiAtICAgIHMtPnN0YXRlID0gU1RBVEVfQ09MTEVDVElOR19EQVRBOw0KPiAgfQ0KPiAgDQo+ICBz dGF0aWMgdm9pZCBkZWNvZGVfbmV3X2NtZChGbGFzaCAqcywgdWludDMyX3QgdmFsdWUpIEBAIC05 NTAsMTQgDQo+ICs5NzksOCBAQCBzdGF0aWMgdm9pZCBkZWNvZGVfbmV3X2NtZChGbGFzaCAqcywg dWludDMyX3QgdmFsdWUpDQo+ICAgICAgY2FzZSBFUkFTRTRfMzJLOg0KPiAgICAgIGNhc2UgRVJB U0VfU0VDVE9SOg0KPiAgICAgIGNhc2UgRVJBU0U0X1NFQ1RPUjoNCj4gLSAgICBjYXNlIFJFQUQ6 DQo+IC0gICAgY2FzZSBSRUFENDoNCj4gLSAgICBjYXNlIERQUDoNCj4gLSAgICBjYXNlIFFQUDoN Cj4gLSAgICBjYXNlIFFQUF80Og0KPiAgICAgIGNhc2UgUFA6DQo+ICAgICAgY2FzZSBQUDQ6DQo+ IC0gICAgY2FzZSBQUDRfNDoNCj4gICAgICBjYXNlIERJRV9FUkFTRToNCj4gICAgICBjYXNlIFJE SURfOTA6DQo+ICAgICAgY2FzZSBSRElEX0FCOg0KPiBAQCAtOTY2LDI0ICs5ODksODUgQEAgc3Rh dGljIHZvaWQgZGVjb2RlX25ld19jbWQoRmxhc2ggKnMsIHVpbnQzMl90IHZhbHVlKQ0KPiAgICAg ICAgICBzLT5sZW4gPSAwOw0KPiAgICAgICAgICBzLT5zdGF0ZSA9IFNUQVRFX0NPTExFQ1RJTkdf REFUQTsNCj4gICAgICAgICAgYnJlYWs7DQo+ICsgICAgY2FzZSBSRUFEOg0KPiArICAgIGNhc2Ug UkVBRDQ6DQo+ICsgICAgICAgIGlmICghKGdldF9tYW4ocykgPT0gTUFOX05VTU9OWVgpIHx8IChu dW1vbnl4X2dldF9tb2RlKHMpICE9IE1PREVfRElPICYmDQo+ICsgICAgICAgICAgICBudW1vbnl4 X2dldF9tb2RlKHMpICE9IE1PREVfUUlPKSkgew0KDQpBYm92ZSBzZWVtcyBlYXNpZXIgdG8gY2hl Y2sgaWYgd2UgYXJlIGluIHRoZSBjb3JyZWN0IG1vZGUgaGVyZSBpbnN0ZWFkOg0KDQppZiAoZ2V0 X21hbihzKSAhPSBNQU5fTlVNT05ZWCB8fCBudW1vbnl4X2dldF9tb2RlKHMpID09IE1PREVfU1RE KSB7DQoNCj4gKyAgICAgICAgICAgIHMtPm5lZWRlZF9ieXRlcyA9IGdldF9hZGRyX2xlbmd0aChz KTsNCj4gKyAgICAgICAgICAgIHMtPnBvcyA9IDA7DQo+ICsgICAgICAgICAgICBzLT5sZW4gPSAw Ow0KPiArICAgICAgICAgICAgcy0+c3RhdGUgPSBTVEFURV9DT0xMRUNUSU5HX0RBVEE7DQo+ICsg ICAgICAgIH0gZWxzZSB7DQo+ICsgICAgICAgICAgICBxZW11X2xvZ19tYXNrKExPR19HVUVTVF9F UlJPUiwgIk0yNVA4MDogQ2Fubm90IGV4ZWN1dGUgY21kICV4IGluICINCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIkRJTyBvciBRSU8gbW9kZVxuIiwgcy0+Y21kX2luX3Byb2dyZXNzKTsN Cj4gKyAgICAgICAgfQ0KPiArICAgICAgICBicmVhazsNCj4gKyAgICBjYXNlIERQUDoNCj4gKyAg ICAgICAgaWYgKCEoZ2V0X21hbihzKSA9PSBNQU5fTlVNT05ZWCkgfHwgbnVtb255eF9nZXRfbW9k ZShzKSAhPSBNT0RFX1FJTykgew0KPiArICAgICAgICAgICAgcy0+bmVlZGVkX2J5dGVzID0gZ2V0 X2FkZHJfbGVuZ3RoKHMpOw0KPiArICAgICAgICAgICAgcy0+cG9zID0gMDsNCj4gKyAgICAgICAg ICAgIHMtPmxlbiA9IDA7DQo+ICsgICAgICAgICAgICBzLT5zdGF0ZSA9IFNUQVRFX0NPTExFQ1RJ TkdfREFUQTsNCj4gKyAgICAgICAgfSBlbHNlIHsNCj4gKyAgICAgICAgICAgIHFlbXVfbG9nX21h c2soTE9HX0dVRVNUX0VSUk9SLCAiTTI1UDgwOiBDYW5ub3QgZXhlY3V0ZSBjbWQgJXggaW4gIg0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAiUUlPIG1vZGVcbiIsIHMtPmNtZF9pbl9wcm9n cmVzcyk7DQo+ICsgICAgICAgIH0NCj4gKyAgICAgICAgYnJlYWs7DQo+ICsgICAgY2FzZSBRUFA6 DQo+ICsgICAgY2FzZSBRUFBfNDoNCj4gKyAgICBjYXNlIFBQNF80Og0KPiArICAgICAgICBpZiAo IShnZXRfbWFuKHMpID09IE1BTl9OVU1PTllYKSB8fCBudW1vbnl4X2dldF9tb2RlKHMpICE9IE1P REVfRElPKSB7DQo+ICsgICAgICAgICAgICBzLT5uZWVkZWRfYnl0ZXMgPSBnZXRfYWRkcl9sZW5n dGgocyk7DQo+ICsgICAgICAgICAgICBzLT5wb3MgPSAwOw0KPiArICAgICAgICAgICAgcy0+bGVu ID0gMDsNCj4gKyAgICAgICAgICAgIHMtPnN0YXRlID0gU1RBVEVfQ09MTEVDVElOR19EQVRBOw0K PiArICAgICAgICB9IGVsc2Ugew0KPiArICAgICAgICAgICAgcWVtdV9sb2dfbWFzayhMT0dfR1VF U1RfRVJST1IsICJNMjVQODA6IENhbm5vdCBleGVjdXRlIGNtZCAleCBpbiAiDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICJESU8gbW9kZVxuIiwgcy0+Y21kX2luX3Byb2dyZXNzKTsNCj4g KyAgICAgICAgfQ0KPiArICAgICAgICBicmVhazsNCj4gIA0KPiAgICAgIGNhc2UgRkFTVF9SRUFE Og0KPiAgICAgIGNhc2UgRkFTVF9SRUFENDoNCj4gKyAgICAgICAgZGVjb2RlX2Zhc3RfcmVhZF9j bWQocyk7DQo+ICsgICAgICAgIGJyZWFrOw0KPiAgICAgIGNhc2UgRE9SOg0KPiAgICAgIGNhc2Ug RE9SNDoNCj4gKyAgICAgICAgaWYgKCEoZ2V0X21hbihzKSA9PSBNQU5fTlVNT05ZWCkgfHwgbnVt b255eF9nZXRfbW9kZShzKSAhPSBNT0RFX1FJTykgew0KPiArICAgICAgICAgICAgZGVjb2RlX2Zh c3RfcmVhZF9jbWQocyk7DQo+ICsgICAgICAgIH0gZWxzZSB7DQo+ICsgICAgICAgICAgICBxZW11 X2xvZ19tYXNrKExPR19HVUVTVF9FUlJPUiwgIk0yNVA4MDogQ2Fubm90IGV4ZWN1dGUgY21kICV4 IGluICINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlFJTyBtb2RlXG4iLCBzLT5jbWRf aW5fcHJvZ3Jlc3MpOw0KPiArICAgICAgICB9DQo+ICsgICAgICAgIGJyZWFrOw0KPiAgICAgIGNh c2UgUU9SOg0KPiAgICAgIGNhc2UgUU9SNDoNCj4gLSAgICAgICAgZGVjb2RlX2Zhc3RfcmVhZF9j bWQocyk7DQo+ICsgICAgICAgIGlmICghKGdldF9tYW4ocykgPT0gTUFOX05VTU9OWVgpIHx8IG51 bW9ueXhfZ2V0X21vZGUocykgIT0gTU9ERV9ESU8pIHsNCj4gKyAgICAgICAgICAgIGRlY29kZV9m YXN0X3JlYWRfY21kKHMpOw0KPiArICAgICAgICB9IGVsc2Ugew0KPiArICAgICAgICAgICAgcWVt dV9sb2dfbWFzayhMT0dfR1VFU1RfRVJST1IsICJNMjVQODA6IENhbm5vdCBleGVjdXRlIGNtZCAl eCBpbiAiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICJESU8gbW9kZVxuIiwgcy0+Y21k X2luX3Byb2dyZXNzKTsNCj4gKyAgICAgICAgfQ0KPiAgICAgICAgICBicmVhazsNCj4gIA0KPiAg ICAgIGNhc2UgRElPUjoNCj4gICAgICBjYXNlIERJT1I0Og0KPiAtICAgICAgICBkZWNvZGVfZGlv X3JlYWRfY21kKHMpOw0KPiArICAgICAgICBpZiAoIShnZXRfbWFuKHMpID09IE1BTl9OVU1PTllY KSB8fCBudW1vbnl4X2dldF9tb2RlKHMpICE9IE1PREVfUUlPKSB7DQo+ICsgICAgICAgICAgICBk ZWNvZGVfZGlvX3JlYWRfY21kKHMpOw0KPiArICAgICAgICB9IGVsc2Ugew0KPiArICAgICAgICAg ICAgcWVtdV9sb2dfbWFzayhMT0dfR1VFU1RfRVJST1IsICJNMjVQODA6IENhbm5vdCBleGVjdXRl IGNtZCAleCBpbiAiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICJRSU8gbW9kZVxuIiwg cy0+Y21kX2luX3Byb2dyZXNzKTsNCj4gKyAgICAgICAgfQ0KPiAgICAgICAgICBicmVhazsNCj4g IA0KPiAgICAgIGNhc2UgUUlPUjoNCj4gICAgICBjYXNlIFFJT1I0Og0KPiAtICAgICAgICBkZWNv ZGVfcWlvX3JlYWRfY21kKHMpOw0KPiArICAgICAgICBpZiAoIShnZXRfbWFuKHMpID09IE1BTl9O VU1PTllYKSB8fCBudW1vbnl4X2dldF9tb2RlKHMpICE9IE1PREVfRElPKSB7DQo+ICsgICAgICAg ICAgICBkZWNvZGVfcWlvX3JlYWRfY21kKHMpOw0KPiArICAgICAgICB9IGVsc2Ugew0KPiArICAg ICAgICAgICAgcWVtdV9sb2dfbWFzayhMT0dfR1VFU1RfRVJST1IsICJNMjVQODA6IENhbm5vdCBl eGVjdXRlIGNtZCAleCBpbiAiDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICJESU8gbW9k ZVxuIiwgcy0+Y21kX2luX3Byb2dyZXNzKTsNCj4gKyAgICAgICAgfQ0KPiAgICAgICAgICBicmVh azsNCj4gIA0KPiAgICAgIGNhc2UgV1JTUjoNCj4gQEAgLTEwMzUsMTcgKzExMTksMjMgQEAgc3Rh dGljIHZvaWQgZGVjb2RlX25ld19jbWQoRmxhc2ggKnMsIHVpbnQzMl90IHZhbHVlKQ0KPiAgICAg ICAgICBicmVhazsNCj4gIA0KPiAgICAgIGNhc2UgSkVERUNfUkVBRDoNCj4gLSAgICAgICAgdHJh Y2VfbTI1cDgwX3BvcHVsYXRlZF9qZWRlYyhzKTsNCj4gLSAgICAgICAgZm9yIChpID0gMDsgaSA8 IHMtPnBpLT5pZF9sZW47IGkrKykgew0KPiAtICAgICAgICAgICAgcy0+ZGF0YVtpXSA9IHMtPnBp LT5pZFtpXTsNCj4gLSAgICAgICAgfQ0KPiAtICAgICAgICBmb3IgKDsgaSA8IFNQSV9OT1JfTUFY X0lEX0xFTjsgaSsrKSB7DQo+IC0gICAgICAgICAgICBzLT5kYXRhW2ldID0gMDsNCj4gLSAgICAg ICAgfQ0KPiArICAgICAgICBpZiAoIShnZXRfbWFuKHMpID09IE1BTl9OVU1PTllYKSB8fCAobnVt b255eF9nZXRfbW9kZShzKSAhPSBNT0RFX0RJTyAmJg0KPiArICAgICAgICAgICAgbnVtb255eF9n ZXRfbW9kZShzKSAhPSBNT0RFX1FJTykpIHsNCg0KVGhlIHNhbWUgaGVyZSBhcyBhYm92ZToNCmlm IChnZXRfbWFuKHMpICE9IE1BTl9OVU1PTllYIHx8IG51bW9ueXhfZ2V0X21vZGUocykgPT0gTU9E RV9TVEQpIHsNCg0KW0pvZV0gQWdyZWVkLCB0aGF0J3MgbXVjaCBlYXNpZXIgYW5kIGtlZXBzIGl0 IG9uIG9uZSBsaW5lLCBub3Qgc3VyZSBob3cgSSBtaXNzZWQgdGhhdC4uLg0KVGhhbmtzIQ0KSm9l DQoNCkJlc3QgcmVnYXJkcywNCkZyYW5jaXNjbyBJZ2xlc2lhcw0KDQoNCj4gKyAgICAgICAgICAg IHRyYWNlX20yNXA4MF9wb3B1bGF0ZWRfamVkZWMocyk7DQo+ICsgICAgICAgICAgICBmb3IgKGkg PSAwOyBpIDwgcy0+cGktPmlkX2xlbjsgaSsrKSB7DQo+ICsgICAgICAgICAgICAgICAgcy0+ZGF0 YVtpXSA9IHMtPnBpLT5pZFtpXTsNCj4gKyAgICAgICAgICAgIH0NCj4gKyAgICAgICAgICAgIGZv ciAoOyBpIDwgU1BJX05PUl9NQVhfSURfTEVOOyBpKyspIHsNCj4gKyAgICAgICAgICAgICAgICBz LT5kYXRhW2ldID0gMDsNCj4gKyAgICAgICAgICAgIH0NCj4gIA0KPiAtICAgICAgICBzLT5sZW4g PSBTUElfTk9SX01BWF9JRF9MRU47DQo+IC0gICAgICAgIHMtPnBvcyA9IDA7DQo+IC0gICAgICAg IHMtPnN0YXRlID0gU1RBVEVfUkVBRElOR19EQVRBOw0KPiArICAgICAgICAgICAgcy0+bGVuID0g U1BJX05PUl9NQVhfSURfTEVOOw0KPiArICAgICAgICAgICAgcy0+cG9zID0gMDsNCj4gKyAgICAg ICAgICAgIHMtPnN0YXRlID0gU1RBVEVfUkVBRElOR19EQVRBOw0KPiArICAgICAgICB9IGVsc2Ug ew0KPiArICAgICAgICAgICAgcWVtdV9sb2dfbWFzayhMT0dfR1VFU1RfRVJST1IsICJNMjVQODA6 IENhbm5vdCBleGVjdXRlIEpFREVDIHJlYWQgIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAiaW4gRElPIG9yIFFJTyBtb2RlXG4iKTsNCj4gKyAgICAgICAgfQ0KPiAgICAgICAgICBicmVh azsNCj4gIA0KPiAgICAgIGNhc2UgUkRDUjoNCj4gLS0NCj4gMi43LjQNCj4gDQo=