Received: by 2002:aa6:c429:0:b029:98:93ff:f56f with SMTP id g9csp398548lkq; Thu, 3 Dec 2020 06:56:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJxTcAL5ruzidbFgY5zSrr2PjigmnaTwukkKA6acu0KGr3vKbHT+bhO29SJYgtB2sPh9303x X-Received: by 2002:a05:6402:1b1e:: with SMTP id by30mr1870901edb.75.1607007361707; Thu, 03 Dec 2020 06:56:01 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1607007361; cv=pass; d=google.com; s=arc-20160816; b=PBCLkPdcw7ZQVSuUs1bRw01qShcsvUyFGgKyrTzMHm26zAS8Xlxonxan8jhiuU1PNI t48/Dbg3wR6t6GqLWtG05nZI7+A2LmF87lRGkkvkXf71xOOukqOwVcEhHCkEYCnsNlsZ 1fvWZFTr6sJz2L1HxPhfMrxceLJZu3cRHX6d5EeSb0VVhX+7UUENlZc8EkgsaioEO/8q MeTE9UPlrCFPBN4JipOX7+5mDawt5i3sN/w8npPwcdRypQjWy064IA4b6BXFDjAv2/3e gvtYxU33EOJP1uPlpLpBeIKyik3JnjcuzjA63R/QKHlWp4qmi9IKLQp9rPt6zJnTesta SpsQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature:ironport-sdr:dkim-signature; bh=IX0J8C7JadHF8Y0JshTHPUeGW740ENgkRRMlvOeDo1g=; b=zsZ01B+00xELf5Yifzl0u7wQWoVb35aNdPnz46o5zeVru453LBt4r/VIiLVDkQy/I2 RaYuigD7KW4D41y81C94wD1UIDSpiBIsazDfQFZraE5E3YtQEePG0Y3ZTdh4aDIk0R9e pHikzesj8A92f8/Q0osQOjb+pWqW0SUapdZRub89bph1+h4R9pmNE8Gb0LLYGZ03uHeV 1JvFMMv7/DOxCuexx40evtzQ9HtdmCKNEMFVXbf4FqGiQyCgdQ83DxfbkIabDgcps+aQ /dXujDSRNbEqI4ta7Fnl4kQr+YmtmoMQ6IMfVYzl4KLECq/4W3RP1vRPh4gcIcu7dEgz 79kg== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@microchip.com header.s=mchp header.b=a277eL3C; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=R3e98VNv; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m7si1245962edq.549.2020.12.03.06.55.37; Thu, 03 Dec 2020 06:56:01 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail header.i=@microchip.com header.s=mchp header.b=a277eL3C; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=R3e98VNv; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726987AbgLCOwQ (ORCPT + 99 others); Thu, 3 Dec 2020 09:52:16 -0500 Received: from esa5.microchip.iphmx.com ([216.71.150.166]:16621 "EHLO esa5.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726452AbgLCOwP (ORCPT ); Thu, 3 Dec 2020 09:52:15 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1607007132; x=1638543132; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=IX0J8C7JadHF8Y0JshTHPUeGW740ENgkRRMlvOeDo1g=; b=a277eL3CcmDj2Fho6mn1r29gSL6sSm8uCHRxK2PRjLp3sGIApq9rW63x ElF7gBdZOAJnpFpbXHIkulrK+5Jfr0mAM4q19Y8Ca+aLo6IPmCrQY5aYa QDOLbYi5D/9PMCjnPP/ldcqzlD7GJNK/yn3NUlnpUsDN3VI0KPQTN2xso a/3jgBGIpVTvN6/6bZpnzhc0m2bqROBwcsVvhHb8u0HSv3gNxjfOd4ROE xquuWG5I7aj8Oacnzgve8qR84XHv5kUoaG6IKTl53GLzJXWp/xRhYHXhF x/peVN0/L/GU0MWr1f+d1NeI6+JAlohmVRAEnPXrzUF2YkTv238ZJjILf w==; IronPort-SDR: hfJJI9kuRZspnE4Z/RBFmVaUxyvKSmnm6d/G778L3I6duXQXgwbgmufZieYuQuPcNsWIN0Eu1K Widjv55+HX5l/I2sIBwA6LCgVHZLW0mtoRma0ZyicR2JUspgvC8gMA1obbmgvQLtbxGWBmI5is tyE0EMNd4Etuz22He62nXmlNo0dN9KAi76g6j69AFEM0RqEF0V6SfiUorkAe72TDwWooi2pQjY pDxlL8kAktbCOWPctCwYeQbBbo1tUT0Eba/XuJv359FSKDZF7Zg5/jCodS47P6OtlRGyPfxVas AWI= X-IronPort-AV: E=Sophos;i="5.78,389,1599548400"; d="scan'208";a="100750023" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa5.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 03 Dec 2020 07:51:06 -0700 Received: from chn-vm-ex04.mchp-main.com (10.10.85.152) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Thu, 3 Dec 2020 07:51:05 -0700 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3 via Frontend Transport; Thu, 3 Dec 2020 07:51:04 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=khZ0MvCjfJSK1hICBca9ZL8WJnta4vJBAiEYUWYSAuDxvCohwCxGPWToZZSyNmtAPzp5Uhl/PIhhleqfqK51nY2pBpQWC2wOmS1tLD/tKt8oiUl+ShXpQT7kw5pRn4foWEhaTTIDSNmwKzII2apPdzvQbbWAst2rnBf8ttNSiScb2MJI4pHw3Juq6GiJsQoVWZdJWEcfi4maGDJk7AhHBgshbmO2KU3omGOtB5kCC/G6w4x2U+ycoo8iKPLqMA0MGro6pwWyt/EcIKqN7QoMvBdymvO9jbicqFNd/OfVY3hIHX2EQSc1sOjMKCsCnTUSUwwRWj1SGpteHHV7k43UUA== 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=IX0J8C7JadHF8Y0JshTHPUeGW740ENgkRRMlvOeDo1g=; b=VTYf7EGiQPM6VHFIARTSMIr8/gWw87D5dE9YdlzzDs9Gzsvu+ITrJUQBEFreRABWQpK7j0k5Zl97iUrRV9UjCc5Ei601G3SvFjxkxlUJtZdSEvoIxWfTHMPsHK4GeOJrQeQal7vhHR3QiK9y2G7OynhdskGBLybExwlTJrFt5WvTjkkTt7OlvYu9Ta6gjWOnKljHT0+U1/BmZtYqFVSmBdLhUzRqW16BFC6Mp+lEmDVQc8b7vNN5OV2bCVMoiFnRBaNLCcGs1WxOBknUjxrSqgtIG35lG6SI3qdFZzU1xMkzq3h4yAg+Aca0h0/czqr0CrwnmCXtb9a3YczURcou3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IX0J8C7JadHF8Y0JshTHPUeGW740ENgkRRMlvOeDo1g=; b=R3e98VNvjBWGS5/hSdbVK6j2CtueFHlPn/YZue6CBTHVS0e8YO51cCOP6HI9bDCks4zGAqeeyvA6STvmJbiX5PQDyjorK/osSct2insNkLWHdDRdUXEdUX+007YhPR3k23jH4Oc0QPwdw5VSACuVoMY2VO2lVVwOw9rJtOhz/uU= Received: from SA2PR11MB4874.namprd11.prod.outlook.com (2603:10b6:806:f9::23) by SN6PR11MB3022.namprd11.prod.outlook.com (2603:10b6:805:d8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.17; Thu, 3 Dec 2020 14:51:03 +0000 Received: from SA2PR11MB4874.namprd11.prod.outlook.com ([fe80::6903:3212:cc9e:761]) by SA2PR11MB4874.namprd11.prod.outlook.com ([fe80::6903:3212:cc9e:761%7]) with mapi id 15.20.3632.020; Thu, 3 Dec 2020 14:51:03 +0000 From: To: , , CC: , , , Subject: Re: [PATCH v7 7/7] mtd: spi-nor: keep lock bits if they are non-volatile Thread-Topic: [PATCH v7 7/7] mtd: spi-nor: keep lock bits if they are non-volatile Thread-Index: AQHWyYO4fmku6Iz0zUWnjJ8ug2RJ+g== Date: Thu, 3 Dec 2020 14:51:03 +0000 Message-ID: <22fa3f19-a7e5-5b35-443b-fa387e0e4fc1@microchip.com> References: <20201202230040.14009-1-michael@walle.cc> <20201202230040.14009-8-michael@walle.cc> In-Reply-To: <20201202230040.14009-8-michael@walle.cc> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 authentication-results: walle.cc; dkim=none (message not signed) header.d=none;walle.cc; dmarc=none action=none header.from=microchip.com; x-originating-ip: [79.115.63.95] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a826244d-ff7b-41d5-544a-08d8979adb5d x-ms-traffictypediagnostic: SN6PR11MB3022: x-microsoft-antispam-prvs: x-bypassexternaltag: True x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: NAzSwGK+LiKsh+3x75rBqFYbFNhwsiWJjdcmgmIHhSaxpSEKWotlX8vOXKb1MaB3oPnEnULKM55KXejbDzASheODKqscDjkZoABPhChTmQZx11n28MQPPtBQ9KO0sukCLLiHtxz5xbxMstZgceDa4dFMe+2tLzqeUtfW9W0feY/siCuNPw7/sC/ip/PlS8ahbHbKr9oH9i+34MxpOStmX7Pp9J7LTQebNvmWTPrJuZo5bsn1edKmqEiReVzQBEoFpuAe7cvAtPxc8Sn5JJkRotTfEA7F5z1gGFR9pE/TVVwqEoLdo676W09tIy2wYh7vWulJxJ7mEkwUW7K5h/izv764fSw2WlbiaKPIVWl9DJC5Q3nTKEbqAtIoCtKXa8mcBWC42TVYYnt7t0Qc4SUVteSJCxHHdoijcoYXI/5gcMc= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR11MB4874.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(136003)(396003)(376002)(39860400002)(346002)(366004)(83380400001)(36756003)(30864003)(5660300002)(31696002)(86362001)(186003)(478600001)(2616005)(66446008)(76116006)(66946007)(66556008)(31686004)(26005)(64756008)(66476007)(6486002)(316002)(8936002)(54906003)(110136005)(71200400001)(6506007)(53546011)(2906002)(4326008)(6512007)(8676002)(45980500001)(43740500002)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?aUY0T25PeStFTkVvVGZKejhpR01UdmtzY3IvaVBKSExOMnJZQ0phZVZEL3ll?= =?utf-8?B?eWczQXpuakt0eFhUb01IdGloV2FHM0xQVURPOXJoNEhLdzdjYUJBR2FrMTVC?= =?utf-8?B?eWlPRUh1WjhJVHN5bDVtSEx6UEFmTFM5YndLSWU5Qk5IckxLelMza3F2bXdF?= =?utf-8?B?SlZRbEdqQ05rWVB3RmZyb282ZFRDS3dQMStlb3lCb0tZSE1SNTZrT1dWaThF?= =?utf-8?B?N1R4N0dPSjdXMFRwcEdLOVduWEd2akYxa0FDMVREU2UxcTRVVmc4TUdCK2tD?= =?utf-8?B?bGxRaHJBVU9XZE5VbU9XN2hoWUVTbm5EcGJUT0dMTFJGSWxIak4vTk4wenUy?= =?utf-8?B?VWVRUmVlN2hNQVdDcGloQ2tZeFJDcm1YeDdjYVgwV0J3Y3Y1cGxXRHgwMnNQ?= =?utf-8?B?L3AxQnpOc0dETHZIUGZhc0twUkxnOTY0L2c3MjJXeE1CYy9NOS9VdW1tTjdk?= =?utf-8?B?QTdFSDZqbG1COUErNGtjVXFCWW1MYXZyL3o2Zjlpdk10MzNtNW5vQjAydkRY?= =?utf-8?B?VWpsU0dMQVl0MWRXRVl3MkkzRzRNZTNza25XNDhDclNRYVIwY1U5dGM1RzJH?= =?utf-8?B?OWpJYWlRQjc2SDVYSnBMNFRxYXBMSkt2a2hiYmUxcEtFTisraTFXR0dHam9i?= =?utf-8?B?NUpJUHMwYitXZUt2bUcyQytJWWExa0owVWVtcFV5ckt5NjhNalNtd21MYXdZ?= =?utf-8?B?dlFja2h6Mk5neStlT3BCak8xSDNPWnNhUmJzMGFUcnhYUHJEVC81ZzQrOTBB?= =?utf-8?B?b2pHTVFkVzJ3WDJ4aEc0ZmtxZk53aGUrMDNpVW9UeW1VR1ZkUjMyaHBzS1RY?= =?utf-8?B?dFBYbHZWb1YwdmhGS25qajR0Y2YyMkpmdHpmSkV1SWJRMnpIWTBmZ0JuS2M0?= =?utf-8?B?UHpWWFQ2VERvM0gwdVhUeEF2aVYxc3pLaWJKQUpWaGJaTmk1eEtKd1Y0SkhT?= =?utf-8?B?eXFRTHZkdkwxRlIvSEFTTUpyTHZtSmlGOFZNWFFsbzNHM1Yrd01oUzZtVG1U?= =?utf-8?B?WWJoVGhOYkxNYjAxdmx2YWtnNjliR0FRb1RxR2F1S1ZNQUl4dWF0VzZPc3di?= =?utf-8?B?Q0d3ZUVZWnN3MXc1aFBRSUtmZjFoUjIwZnNkNmY3bTAyUEx3WWY0d3RCNHRC?= =?utf-8?B?R1hxcm9PZHUwRjY2VTIwYi92TzUrVHF1UG9xeS9NK2Fkdkw5VG9uTk9yZzVn?= =?utf-8?B?OFZSZXVBTzhoMlVtdlFkd0lwV2lQMkxVRVFDK1QyZmR6Q2g3LzNSM3NvQmJr?= =?utf-8?B?WlNkbmFnbXpSZEx5dGhYOGNuQW5tREpHOVZ6blVWSEVWZStwOWZ2Wk1JbG9F?= =?utf-8?Q?s8rmIDF4JxDRs=3D?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <414B97917C72814984A28632748EC1D3@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA2PR11MB4874.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a826244d-ff7b-41d5-544a-08d8979adb5d X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Dec 2020 14:51:03.2605 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: GlBzbFA85RUNyi2O6hwU4Y8X6bxxYrE3vgJyU3dgVjSmopK63PQYc9Kk+H4bzE8lRBMHsR/X4MH0HxZuyIczgXyQGmzFKtBhjCJuMGxg4fA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3022 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gMTIvMy8yMCAxOjAwIEFNLCBNaWNoYWVsIFdhbGxlIHdyb3RlOg0KPiBFWFRFUk5BTCBFTUFJ TDogRG8gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSBrbm93 IHRoZSBjb250ZW50IGlzIHNhZmUNCj4gDQo+IFRyYWRpdGlvbmFsbHksIGxpbnV4IHVubG9ja3Mg dGhlIHdob2xlIGZsYXNoIGJlY2F1c2UgdGhlcmUgYXJlIGxlZ2FjeQ0KPiBkZXZpY2VzIHdoaWNo IGhhcyB0aGUgd3JpdGUgcHJvdGVjdGlvbnMgYml0cyBzZXQgYnkgZGVmYXVsdCBhdCBzdGFydHVw Lg0KPiBJZiB5b3UgYWN0dWFsbHkgd2FudCB0byB1c2UgdGhlIGZsYXNoIHByb3RlY3Rpb24gYml0 cywgZWcuIGJlY2F1c2UgdGhlcmUNCj4gaXMgYSByZWFkLW9ubHkgcGFydCBmb3IgYSBib290bG9h ZGVyLCB0aGlzIGF1dG9tYXRpYyB1bmxvY2tpbmcgaXMNCj4gaGFybWZ1bC4gSWYgdGhlcmUgaXMg bm8gaGFyZHdhcmUgd3JpdGUgcHJvdGVjdGlvbiBpbiBwbGFjZSAodXN1YWxseQ0KPiBjYWxsZWQg V1AjKSwgYSBzdGFydHVwIG9mIHRoZSBrZXJuZWwganVzdCBkaXNjYXJkcyB0aGlzIHByb3RlY3Rp b24uDQo+IA0KPiBJJ3ZlIGdvbmUgdGhyb3VnaCB0aGUgZGF0YXNoZWV0cyBvZiBhbGwgdGhlIGZs YXNoZXMgKGV4Y2VwdCB0aGUgSW50ZWwNCj4gb25lcyB3aGVyZSBJIGNvdWxkIG5vdCBmaW5kIGFu eSBkYXRhc2hlZXQgbm9yIHJlZmVyZW5jZSkgd2hpY2ggc3VwcG9ydHMNCj4gdGhlIHVubG9ja2lu ZyBmZWF0dXJlIGFuZCBsb29rZWQgaG93IHRoZSBzZWN0b3IgcHJvdGVjdGlvbiB3YXMNCj4gaW1w bGVtZW50ZWQuIFRoZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZsYXNoZXMgY2FuIGJlIGRpdmlkZWQg aW50byB0aGUNCj4gZm9sbG93aW5nIHR3byBjYXRlZ29yaWVzOg0KPiAgKDEpIGJsb2NrIHByb3Rl Y3Rpb24gYml0cyBhcmUgbm9uLXZvbGF0aWxlLiBUaHVzIHRoZXkga2VlcCB0aGVpciB2YWx1ZXMN Cj4gICAgICBhdCByZXNldCBhbmQgcG93ZXItY3ljbGUNCj4gICgyKSBmbGFzaGVzIHdoZXJlIHRo ZXNlIGJpdHMgYXJlIHZvbGF0aWxlLiBBZnRlciByZXNldCBvciBwb3dlci1jeWNsZSwNCj4gICAg ICB0aGUgd2hvbGUgbWVtb3J5IGFycmF5IGlzIHByb3RlY3RlZC4NCj4gICAgICAoYSkgc29tZSBk ZXZpY2VzIG5lZWRzIGEgc3BlY2lhbCAiR2xvYmFsIFVucHJvdGVjdCIgY29tbWFuZCwgZWcuDQo+ ICAgICAgICAgIHRoZSBBdG1lbCBBVDI1REYwNDFBLg0KPiAgICAgIChiKSBzb21lIGRldmljZXMg cmVxdWlyZSB0byBjbGVhciB0aGUgQlBuIGJpdHMgaW4gdGhlIHN0YXR1cw0KPiAgICAgICAgICBy ZWdpc3Rlci4NCj4gDQo+IER1ZSB0byB0aGUgcmVhc29ucyBhYm92ZSwgd2UgZG8gbm90IHdhbnQg dG8gY2xlYXIgdGhlIGJpdHMgZm9yIGZsYXNoZXMNCj4gd2hpY2ggYmVsb25nIHRvIGNhdGVnb3J5 ICgxKS4gRm9ydHVuYXRlbHkgZm9yIHVzLCBvbmx5IEF0bWVsIGZsYXNoZXMNCj4gZmFsbCBpbnRv IGNhdGVnb3J5ICgyYSkuIEltcGxlbWVudCB0aGUgIkdsb2JhbCBQcm90ZWN0IiBhbmQgIkdsb2Jh bA0KPiBVbnByb3RlY3QiIGNvbW1hbmRzIGZvciB0aGVzZS4gRm9yICgyYikgd2UgY2FuIHVzZSBu b3JtYWwgYmxvY2sNCj4gcHJvdGVjdGlvbiBsb2NraW5nIHNjaGVtZS4NCj4gDQo+IFRoaXMgcGF0 Y2ggYWRkcyBhIG5ldyBmbGFnIHRvIGluZGljYXRlIHRoZSBjYXNlICgyKS4gT25seSBpZiB3ZSBo YXZlDQo+IHN1Y2ggYSBmbGFzaCB3ZSB1bmxvY2sgdGhlIHdob2xlIGZsYXNoIGFycmF5LiBUbyBi ZSBiYWNrd2FyZHMgY29tcGF0aWJsZQ0KPiBpdCBhbHNvIGludHJvZHVjZXMgYSBrZXJuZWwgY29u ZmlndXJhdGlvbiBvcHRpb24gd2hpY2ggcmVzdG9yZXMgdGhlDQo+IGNvbXBsZXRlIGxlZ2FjeSBi ZWhhdmlvciAoIkRpc2FibGUgd3JpdGUgcHJvdGVjdGlvbiBvbiBhbnkgZmxhc2hlcyIpLg0KPiBI b3BlZnVsbHksIHRoaXMgd2lsbCBjbGVhbiB1cCAidW5sb2NrIHRoZSBlbnRpcmUgZmxhc2ggZm9y IGxlZ2FjeQ0KPiBkZXZpY2VzIiBvbmNlIGFuZCBmb3IgYWxsLg0KPiANCj4gRm9yIHJlZmVyZW5j ZSBoZXJlIGFyZSB0aGUgYWN0dWFsbHkgY29tbWl0cyB3aGljaCBpbnRyb2R1Y2VkIHRoZSBsZWdh Y3kNCj4gYmVoYXZpb3IgKGFuZCBleHRlbmRlZCB0aGUgYmVoYXZpb3IgdG8gb3RoZXIgY2hpcCBt YW51ZmFjdHVyZXJzKToNCj4gDQo+IGNvbW1pdCBmODBlNTIxYzkxNmNiICgibXRkOiBtMjVwODA6 IGFkZCBzdXBwb3J0IGZvciB0aGUgSW50ZWwvTnVtb255eCB7MTYsMzIsNjR9MFMzM0IgU1BJIGZs YXNoIGNoaXBzIikNCj4gY29tbWl0IGVhNjA2NThhMDhmOGYgKCJtdGQ6IG0yNXA4MDogZGlzYWJs ZSBTU1Qgc29mdHdhcmUgcHJvdGVjdGlvbiBiaXRzIGJ5IGRlZmF1bHQiKQ0KPiBjb21taXQgNzIy ODk4MjQ0MjM2NSAoIltNVERdIG0yNXA4MDogZml4IGJ1ZyAtIEFUbWVsIHNwaSBmbGFzaCBmYWls cyB0byBiZSBjb3BpZWQgdG8iKQ0KPiANCj4gQWN0dWFsbHksIHRoaXMgbWlnaHQgYWxzbyBmaXgg aGFuZGxpbmcgb2YgdGhlIEF0bWVsIEFUMjVERiBmbGFzaGVzLA0KPiBiZWNhdXNlIHRoZSBvcmln aW5hbCBjb21taXQgNzIyODk4MjQ0MjM2NSAoIltNVERdIG0yNXA4MDogZml4IGJ1ZyAtDQo+IEFU bWVsIHNwaSBmbGFzaCBmYWlscyB0byBiZSBjb3BpZWQgdG8iKSB3YXMgd3JpdGluZyBhIDAgdG8g dGhlIHN0YXR1cw0KPiByZWdpc3Rlciwgd2hpY2ggaXMgYSAiR2xvYmFsIFVucHJvdGVjdCIuIFRo aXMgbWlnaHQgbm90IGJlIHRoZSBjYXNlIGluDQo+IHRoZSBjdXJyZW50IGNvZGUgd2hpY2ggb25s eSBoYW5kbGVzIHRoZSBibG9jayBwcm90ZWN0aW9uIGJpdHMgQlAyLCBCUDENCj4gYW5kIEJQMC4g VGh1cywgaXQgZGVwZW5kcyBvbiB0aGUgY3VycmVudCBjb250ZW50cyBvZiB0aGUgc3RhdHVzIHJl Z2lzdGVyDQo+IGlmIHRoaXMgdW5sb2NrIGFjdHVhbGx5IGNvcnJlc3BvbmRzIHRvIGEgIkdsb2Jh bCBVbnByb3RlY3QiIGNvbW1hbmQuIEluDQo+IHRoZSB3b3JzdCBjYXNlLCB0aGUgY3VycmVudCBj b2RlIG1pZ2h0IGxlYXZlIHRoZSBBVDI1REYgZmxhc2hlcyBpbiBhDQo+IHdyaXRlIHByb3RlY3Rl ZCBzdGF0ZS4NCj4gDQo+IFRoZSBjb21taXQgMTkxZjVjMmVkNGI2ZiAoIm10ZDogc3BpLW5vcjog dXNlIDE2LWJpdCBXUlIgY29tbWFuZCB3aGVuIFFFDQo+IGlzIHNldCBvbiBzcGFuc2lvbiBmbGFz aGVzIikgY2hhbmdlZCB0aGF0IGJlaGF2aW9yIGJ5IGp1c3QgY2xlYXJpbmcgQlAyDQo+IHRvIEJQ MCBpbnN0ZWFkIG9mIHdyaXRpbmcgYSAwIHRvIHRoZSBzdGF0dXMgcmVnaXN0ZXIuDQo+IA0KPiBG dXJ0aGVyLCB0aGUgY29tbWl0IDNlMDkzMGYxMDllNzYgKCJtdGQ6IHNwaS1ub3I6IFJld29yayB0 aGUgZGlzYWJsaW5nDQo+IG9mIGJsb2NrIHdyaXRlIHByb3RlY3Rpb24iKSBleHBhbmRlZCB0aGUg dW5sb2NrX2FsbCgpIGZlYXR1cmUgdG8gQU5ZDQo+IGZsYXNoIHdoaWNoIHN1cHBvcnRzIGxvY2tp bmcuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFdhbGxlIDxtaWNoYWVsQHdhbGxlLmNj Pg0KDQpSZXZpZXdlZC1ieTogVHVkb3IgQW1iYXJ1cyA8dHVkb3IuYW1iYXJ1c0BtaWNyb2NoaXAu Y29tPg0KDQpuaWNlIHdvcmssIHRoYW5rcyENCg0KPiAtLS0NCj4gY2hhbmdlcyBzaW5jZSB2NjoN Cj4gIC0gZml4ZWQgdHlwb3MsIHNtYWxsIGRvY3VtZW50YXRpb24gY2hhbmdlcw0KPiAgLSBjaGFu Z2VkIF9XUF8gdG8gX1NXUF8sICJ3cml0ZSBwcm90ZWN0aW9uIiB0byAic29mdHdhcmUgd3JpdGUN Cj4gICAgcHJvdGVjdGlvbiINCj4gIC0gdXNlIGRldl9kYmcoKSBpbnN0ZWFkIG9mIGRldl9lcnIo KSB0byBwcmludCBtZXNzYWdlIGFib3V0IFdQIHBpbg0KPiANCj4gY2hhbmdlcyBzaW5jZSB2NToN Cj4gIC0gYWxzbyBzZXQgU1JXRCBiaXQgZm9yIHRoZSAiR2xvYmFsIFByb3RlY3QiIGNvbW1hbmQN Cj4gIC0gdXNlIHNwaV9ub3Jfd3JpdGVfc3IoKSBpbnN0ZWFkIG9mIHNwaV9ub3Jfd3JpdGVfc3Jf YW5kX2NoZWNrKCkgdG8gc2VuZA0KPiAgICB0aGUgIkdsb2JhbCBQcm90ZWN0IiBvciAiR2xvYmFs IFVucHJvdGVjdCIgY29tbWFuZA0KPiAgLSBtYXJrIEVTTVQgRjI1TDMyUUEgYXMgbm9uLXZvbGF0 aWxlIGFzIGluZGljYXRlZCBpbiBhIG5ld2VyIGRhdGFzaGVldA0KPiAgICByZXZpc2lvbg0KPiAg LSByZWJhc2VkIHRvIGxhdGVzdCB0cmVlDQo+IA0KPiBjaGFuZ2VzIHNpbmNlIHY0Og0KPiAgLSBt YWRlIGF0bWVsX2dsb2JhbF9wcm90ZWN0aW9uX2RlZmF1bHRfaW5pdCgpIHN0YXRpYywgc3BvdHRl ZCBieQ0KPiAgICBsa3BAaW50ZWwuY29tDQo+IA0KPiBjaGFuZ2VzIHNpbmNlIHYzOg0KPiAgLSBu b3cgZGVmYXVsdGluZyB0byBNVERfU1BJX05PUl9XUF9ESVNBQkxFX09OX1ZPTEFUSUxFLCBzdWdn ZXN0ZWQgYnkgVmlnbmVzaA0KPiAgLSByZXN0b3JlZCB0aGUgb3JpZ2luYWwgc3BpX25vcl91bmxv Y2tfYWxsKCksIGluc3RlYWQgYWRkIGluZGl2aWR1YWwNCj4gICAgbG9ja2luZyBvcHMgZm9yIHRo ZSAiR2xvYmFsIFByb3RlY3QiIHNjaGVtZSBpbiBhdG1lbC5jLiBUaGlzIHdhcyB0ZXN0ZWQNCj4g ICAgcGFydGx5IHdpdGggdGhlIEFUMjVTTDMyMSAoZm9yIHRoZSB0ZXN0IEkgYWRkZWQgdGhlIGZp eHVwcyB0byB0aGlzDQo+ICAgIGZsYXNoKS4NCj4gIC0gcmVuYW1lZCBTUElfTk9SX1VOUFJPVEVD VCB0byBTUElfTk9SX1dQX0lTX1ZPTEFUSUxFLiBTdWdnZXN0ZWQgYnkNCj4gICAgVmluZ2VzaCwg YWx0aG91Z2ggSSd2ZSByZW5hbWVkIGl0IHRvIGEgbW9yZSBnZW5lcmFsICJXUF9JU19WT0xBVElM RSINCj4gICAgYmVjYXVzZSBlaXRoZXIgdGhlIEJQIGJpdHMgb3IgdGhlIGluZGl2aWR1YWwgc2Vj dG9yIGxvY2tzIG1pZ2h0IGJlDQo+ICAgIHZvbGF0aWxlLg0KPiAgLSBhZGQgbWVudGlvbiBvZiBi b3RoIGJsb2NrIHByb3RlY3Rpb24gYml0cyBhbmQgIkdsb2JhbCBVbnByb3RlY3QiIGNvbW1hbmQN Cj4gICAgaW4gdGhlIEtjb25maWcgaGVscCB0ZXh0Lg0KPiANCj4gY2hhbmdlcyBzaW5jZSB2MjoN Cj4gIC0gYWRkIEtjb25maWcgb3B0aW9uIHRvIGJlIGFibGUgdG8gcmV0YWluIGxlZ2FjeSBiZWhh dmlvcg0KPiAgLSByZWJhc2VkIHRoZSBwYXRjaCBkdWUgdG8gdGhlIHNwaS1ub3IgcmV3cml0ZQ0K PiAgLSBkcm9wcGVkIHRoZSBGaXhlczogdGFnLCBpdCBkb2Vucyd0IG1ha2Ugc2Vuc2UgYWZ0ZXIg dGhlIHNwaS1ub3IgcmV3cml0ZQ0KPiAgLSBtZW50aW9uIGNvbW1pdCAzZTA5MzBmMTA5ZTc2IHdo aWNoIGZ1cnRoZXIgbW9kaWZpZWQgdGhlIHVubG9jaw0KPiAgICBiZWhhdmlvci4NCj4gDQo+IGNo YW5nZXMgc2luY2UgdjE6DQo+ICAtIGNvbXBsZXRlbHkgcmV3cm90ZSBwYXRjaCwgdGhlIGZpcnN0 IHZlcnNpb24gdXNlZCBhIGRldmljZSB0cmVlIGZsYWcNCj4gDQo+ICBkcml2ZXJzL210ZC9zcGkt bm9yL0tjb25maWcgfCAgNDQgKysrKysrKysrKysrKw0KPiAgZHJpdmVycy9tdGQvc3BpLW5vci9h dG1lbC5jIHwgMTI4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQ0KPiAgZHJp dmVycy9tdGQvc3BpLW5vci9jb3JlLmMgIHwgIDIzICsrKysrKy0NCj4gIGRyaXZlcnMvbXRkL3Nw aS1ub3IvY29yZS5oICB8ICAgOCArKysNCj4gIGRyaXZlcnMvbXRkL3NwaS1ub3IvZXNtdC5jICB8 ICAgMiArLQ0KPiAgZHJpdmVycy9tdGQvc3BpLW5vci9pbnRlbC5jIHwgICA5ICsrLQ0KPiAgZHJp dmVycy9tdGQvc3BpLW5vci9zc3QuYyAgIHwgIDIxICsrKy0tLQ0KPiAgNyBmaWxlcyBjaGFuZ2Vk LCAyMTEgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tdGQvc3BpLW5vci9LY29uZmlnIGIvZHJpdmVycy9tdGQvc3BpLW5vci9LY29uZmln DQo+IGluZGV4IGZmYzRiMzgwZjJiMS4uZDBmMTc5MTlkZTNhIDEwMDY0NA0KPiAtLS0gYS9kcml2 ZXJzL210ZC9zcGktbm9yL0tjb25maWcNCj4gKysrIGIvZHJpdmVycy9tdGQvc3BpLW5vci9LY29u ZmlnDQo+IEBAIC0yNCw2ICsyNCw1MCBAQCBjb25maWcgTVREX1NQSV9OT1JfVVNFXzRLX1NFQ1RP UlMNCj4gICAgICAgICAgIFBsZWFzZSBub3RlIHRoYXQgc29tZSB0b29scy9kcml2ZXJzL2ZpbGVz eXN0ZW1zIG1heSBub3Qgd29yayB3aXRoDQo+ICAgICAgICAgICA0MDk2IEIgZXJhc2Ugc2l6ZSAo ZS5nLiBVQklGUyByZXF1aXJlcyAxNSBLaUIgYXMgYSBtaW5pbXVtKS4NCj4gDQo+ICtjaG9pY2UN Cj4gKyAgICAgICBwcm9tcHQgIlNvZnR3YXJlIHdyaXRlIHByb3RlY3Rpb24gYXQgYm9vdCINCj4g KyAgICAgICBkZWZhdWx0IE1URF9TUElfTk9SX1NXUF9ESVNBQkxFX09OX1ZPTEFUSUxFDQo+ICsN Cj4gK2NvbmZpZyBNVERfU1BJX05PUl9TV1BfRElTQUJMRQ0KPiArICAgICAgIGJvb2wgIkRpc2Fi bGUgU1dQIG9uIGFueSBmbGFzaGVzIChsZWdhY3kgYmVoYXZpb3IpIg0KPiArICAgICAgIGhlbHAN Cj4gKyAgICAgICAgIFRoaXMgb3B0aW9uIGRpc2FibGVzIHRoZSBzb2Z0d2FyZSB3cml0ZSBwcm90 ZWN0aW9uIG9uIGFueSBTUEkNCj4gKyAgICAgICAgIGZsYXNoZXMgYXQgYm9vdC11cC4NCj4gKw0K PiArICAgICAgICAgRGVwZW5kaW5nIG9uIHRoZSBmbGFzaCBjaGlwIHRoaXMgZWl0aGVyIGNsZWFy cyB0aGUgYmxvY2sgcHJvdGVjdGlvbg0KPiArICAgICAgICAgYml0cyBvciBkb2VzIGEgIkdsb2Jh bCBVbnByb3RlY3QiIGNvbW1hbmQuDQo+ICsNCj4gKyAgICAgICAgIERvbid0IHVzZSB0aGlzIGlm IHlvdSBpbnRlbnQgdG8gdXNlIHRoZSBzb2Z0d2FyZSB3cml0ZSBwcm90ZWN0aW9uDQo+ICsgICAg ICAgICBvZiB5b3VyIFNQSSBmbGFzaC4gVGhpcyBpcyBvbmx5IHRvIGtlZXAgYmFja3dhcmRzIGNv bXBhdGliaWxpdHkuDQo+ICsNCj4gK2NvbmZpZyBNVERfU1BJX05PUl9TV1BfRElTQUJMRV9PTl9W T0xBVElMRQ0KPiArICAgICAgIGJvb2wgIkRpc2FibGUgU1dQIG9uIGZsYXNoZXMgdy8gdm9sYXRp bGUgcHJvdGVjdGlvbiBiaXRzIg0KPiArICAgICAgIGhlbHANCj4gKyAgICAgICAgIFNvbWUgU1BJ IGZsYXNoZXMgaGF2ZSB2b2xhdGlsZSBibG9jayBwcm90ZWN0aW9uIGJpdHMsIGllLiBhZnRlciBh DQo+ICsgICAgICAgICBwb3dlci11cCBvciBhIHJlc2V0IHRoZSBmbGFzaCBpcyBzb2Z0d2FyZSB3 cml0ZSBwcm90ZWN0ZWQgYnkNCj4gKyAgICAgICAgIGRlZmF1bHQuDQo+ICsNCj4gKyAgICAgICAg IFRoaXMgb3B0aW9uIGRpc2FibGVzIHRoZSBzb2Z0d2FyZSB3cml0ZSBwcm90ZWN0aW9uIGZvciB0 aGVzZSBraW5kDQo+ICsgICAgICAgICBvZiBmbGFzaGVzIHdoaWxlIGtlZXBpbmcgaXQgZW5hYmxl ZCBmb3IgYW55IG90aGVyIFNQSSBmbGFzaGVzDQo+ICsgICAgICAgICB3aGljaCBoYXZlIG5vbi12 b2xhdGlsZSB3cml0ZSBwcm90ZWN0aW9uIGJpdHMuDQo+ICsNCj4gKyAgICAgICAgIElmIHRoZSBz b2Z0d2FyZSB3cml0ZSBwcm90ZWN0aW9uIHdpbGwgYmUgZGlzYWJsZWQgZGVwZW5kaW5nIG9uDQo+ ICsgICAgICAgICB0aGUgZmxhc2ggZWl0aGVyIHRoZSBibG9jayBwcm90ZWN0aW9uIGJpdHMgYXJl IGNsZWFyZWQgb3IgYQ0KPiArICAgICAgICAgIkdsb2JhbCBVbnByb3RlY3QiIGNvbW1hbmQgaXMg aXNzdWVkLg0KPiArDQo+ICsgICAgICAgICBJZiB5b3UgYXJlIHVuc3VyZSwgc2VsZWN0IHRoaXMg b3B0aW9uLg0KPiArDQo+ICtjb25maWcgTVREX1NQSV9OT1JfU1dQX0tFRVANCj4gKyAgICAgICBi b29sICJLZWVwIHNvZnR3YXJlIHdyaXRlIHByb3RlY3Rpb24gYXMgaXMiDQo+ICsgICAgICAgaGVs cA0KPiArICAgICAgICAgSWYgeW91IHNlbGVjdCB0aGlzIG9wdGlvbiB0aGUgc29mdHdhcmUgd3Jp dGUgcHJvdGVjdGlvbiBvZiBhbnkNCj4gKyAgICAgICAgIFNQSSBmbGFzaGVzIHdpbGwgbm90IGJl IGNoYW5nZWQuIElmIHlvdXIgZmxhc2ggaXMgc29mdHdhcmUgd3JpdGUNCj4gKyAgICAgICAgIHBy b3RlY3RlZCBvciB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgc29mdHdhcmUgd3JpdGUgcHJvdGVjdGVk IGFmdGVyDQo+ICsgICAgICAgICBwb3dlci11cCB5b3UgaGF2ZSB0byBtYW51YWxseSB1bmxvY2sg aXQgYmVmb3JlIHlvdSBhcmUgYWJsZSB0bw0KPiArICAgICAgICAgd3JpdGUgdG8gaXQuDQo+ICsN Cj4gK2VuZGNob2ljZQ0KPiArDQo+ICBzb3VyY2UgImRyaXZlcnMvbXRkL3NwaS1ub3IvY29udHJv bGxlcnMvS2NvbmZpZyINCj4gDQo+ICBlbmRpZiAjIE1URF9TUElfTk9SDQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL210ZC9zcGktbm9yL2F0bWVsLmMgYi9kcml2ZXJzL210ZC9zcGktbm9yL2F0bWVs LmMNCj4gaW5kZXggZWUzODJhNDRiZDBmLi4yMDAwYmFiYzZhODEgMTAwNjQ0DQo+IC0tLSBhL2Ry aXZlcnMvbXRkL3NwaS1ub3IvYXRtZWwuYw0KPiArKysgYi9kcml2ZXJzL210ZC9zcGktbm9yL2F0 bWVsLmMNCj4gQEAgLTgsNiArOCw4IEBADQo+IA0KPiAgI2luY2x1ZGUgImNvcmUuaCINCj4gDQo+ ICsjZGVmaW5lIEFUTUVMX1NSX0dMT0JBTF9QUk9URUNUX01BU0sgR0VOTUFTSyg1LCAyKQ0KPiAr DQo+ICAvKg0KPiAgICogVGhlIEF0bWVsIEFUMjVGUzAxMC9BVDI1RlMwNDAgcGFydHMgaGF2ZSBz b21lIHdlaXJkIGNvbmZpZ3VyYXRpb24gZm9yIHRoZQ0KPiAgICogYmxvY2sgcHJvdGVjdGlvbiBi aXRzLiBXZSBkb24ndCBzdXBwb3J0IHRoZW0uIEJ1dCBsZWdhY3kgYmVoYXZpb3IgaW4gbGludXgN Cj4gQEAgLTU1LDYgKzU3LDEwNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9ub3JfZml4dXBz IGF0bWVsX2F0MjVmc19maXh1cHMgPSB7DQo+ICAgICAgICAgLmRlZmF1bHRfaW5pdCA9IGF0bWVs X2F0MjVmc19kZWZhdWx0X2luaXQsDQo+ICB9Ow0KPiANCj4gKy8qKg0KPiArICogYXRtZWxfc2V0 X2dsb2JhbF9wcm90ZWN0aW9uIC0gRG8gYSBHbG9iYWwgUHJvdGVjdCBvciBVbnByb3RlY3QgY29t bWFuZA0KPiArICogQG5vcjogICAgICAgcG9pbnRlciB0byAnc3RydWN0IHNwaV9ub3InDQo+ICsg KiBAb2ZzOiAgICAgICBvZmZzZXQgaW4gYnl0ZXMNCj4gKyAqIEBsZW46ICAgICAgIGxlbiBpbiBi eXRlcw0KPiArICogQGlzX3Byb3RlY3Q6ICAgICAgICBpZiB0cnVlIGRvIGEgR2xvYmFsIFByb3Rl Y3Qgb3RoZXJ3aXNlIGl0IGlzIGEgR2xvYmFsIFVucHJvdGVjdA0KPiArICoNCj4gKyAqIFJldHVy bjogMCBvbiBzdWNjZXNzLCAtZXJyb3Igb3RoZXJ3aXNlLg0KPiArICovDQo+ICtzdGF0aWMgaW50 IGF0bWVsX3NldF9nbG9iYWxfcHJvdGVjdGlvbihzdHJ1Y3Qgc3BpX25vciAqbm9yLCBsb2ZmX3Qg b2ZzLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBs ZW4sIGJvb2wgaXNfcHJvdGVjdCkNCj4gK3sNCj4gKyAgICAgICBpbnQgcmV0Ow0KPiArICAgICAg IHU4IHNyOw0KPiArDQo+ICsgICAgICAgLyogV2Ugb25seSBzdXBwb3J0IGxvY2tpbmcgdGhlIHdo b2xlIGZsYXNoIGFycmF5ICovDQo+ICsgICAgICAgaWYgKG9mcyB8fCBsZW4gIT0gbm9yLT5wYXJh bXMtPnNpemUpDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArICAg ICAgIHJldCA9IHNwaV9ub3JfcmVhZF9zcihub3IsIG5vci0+Ym91bmNlYnVmKTsNCj4gKyAgICAg ICBpZiAocmV0KQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gKw0KPiArICAgICAg IHNyID0gbm9yLT5ib3VuY2VidWZbMF07DQo+ICsNCj4gKyAgICAgICAvKiBTUldEIGJpdCBuZWVk cyB0byBiZSBjbGVhcmVkLCBvdGhlcndpc2UgdGhlIHByb3RlY3Rpb24gZG9lc24ndCBjaGFuZ2Ug Ki8NCj4gKyAgICAgICBpZiAoc3IgJiBTUl9TUldEKSB7DQo+ICsgICAgICAgICAgICAgICBzciAm PSB+U1JfU1JXRDsNCj4gKyAgICAgICAgICAgICAgIHJldCA9IHNwaV9ub3Jfd3JpdGVfc3JfYW5k X2NoZWNrKG5vciwgc3IpOw0KPiArICAgICAgICAgICAgICAgaWYgKHJldCkgew0KPiArICAgICAg ICAgICAgICAgICAgICAgICBkZXZfZGJnKG5vci0+ZGV2LCAidW5hYmxlIHRvIGNsZWFyIFNSV0Qg Yml0LCBXUCMgYXNzZXJ0ZWQ/XG4iKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IHJldDsNCj4gKyAgICAgICAgICAgICAgIH0NCj4gKyAgICAgICB9DQo+ICsNCj4gKyAgICAgICBp ZiAoaXNfcHJvdGVjdCkgew0KPiArICAgICAgICAgICAgICAgc3IgfD0gQVRNRUxfU1JfR0xPQkFM X1BST1RFQ1RfTUFTSzsNCj4gKyAgICAgICAgICAgICAgIC8qDQo+ICsgICAgICAgICAgICAgICAg KiBTZXQgdGhlIFNSV0QgYml0IGFnYWluIGFzIHNvb24gYXMgd2UgYXJlIHByb3RlY3RpbmcNCj4g KyAgICAgICAgICAgICAgICAqIGFueXRoaW5nLiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgdGhlIFdQ IyBwaW4gaXMgd29ya2luZw0KPiArICAgICAgICAgICAgICAgICogY29ycmVjdGx5LiBCeSBkb2lu ZyB0aGlzIHdlIGFsc28gYmVoYXZlIHRoZSBzYW1lIGFzDQo+ICsgICAgICAgICAgICAgICAgKiBz cGlfbm9yX3NyX2xvY2soKSwgd2hpY2ggc2V0cyBTUldEIGlmIGFueSBibG9jayBwcm90ZWN0aW9u DQo+ICsgICAgICAgICAgICAgICAgKiBpcyBhY3RpdmUuDQo+ICsgICAgICAgICAgICAgICAgKi8N Cj4gKyAgICAgICAgICAgICAgIHNyIHw9IFNSX1NSV0Q7DQo+ICsgICAgICAgfSBlbHNlIHsNCj4g KyAgICAgICAgICAgICAgIHNyICY9IH5BVE1FTF9TUl9HTE9CQUxfUFJPVEVDVF9NQVNLOw0KPiAr ICAgICAgIH0NCj4gKw0KPiArICAgICAgIG5vci0+Ym91bmNlYnVmWzBdID0gc3I7DQo+ICsNCj4g KyAgICAgICAvKg0KPiArICAgICAgICAqIFdlIGNhbm5vdCB1c2UgdGhlIHNwaV9ub3Jfd3JpdGVf c3JfYW5kX2NoZWNrKCkgYmVjYXVzZSB0aGlzIGNvbW1hbmQNCj4gKyAgICAgICAgKiBpc24ndCBy ZWFsbHkgc2V0dGluZyBhbnkgYml0cywgaW5zdGVhZCBpdCBpcyBhbiBwc2V1ZG8gY29tbWFuZCBm b3INCj4gKyAgICAgICAgKiAiR2xvYmFsIFVucHJvdGVjdCIgb3IgIkdsb2JhbCBQcm90ZWN0Ig0K PiArICAgICAgICAqLw0KPiArICAgICAgIHJldHVybiBzcGlfbm9yX3dyaXRlX3NyKG5vciwgbm9y LT5ib3VuY2VidWYsIDEpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IGF0bWVsX2dsb2JhbF9w cm90ZWN0KHN0cnVjdCBzcGlfbm9yICpub3IsIGxvZmZfdCBvZnMsIHVpbnQ2NF90IGxlbikNCj4g K3sNCj4gKyAgICAgICByZXR1cm4gYXRtZWxfc2V0X2dsb2JhbF9wcm90ZWN0aW9uKG5vciwgb2Zz LCBsZW4sIHRydWUpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IGF0bWVsX2dsb2JhbF91bnBy b3RlY3Qoc3RydWN0IHNwaV9ub3IgKm5vciwgbG9mZl90IG9mcywgdWludDY0X3QgbGVuKQ0KPiAr ew0KPiArICAgICAgIHJldHVybiBhdG1lbF9zZXRfZ2xvYmFsX3Byb3RlY3Rpb24obm9yLCBvZnMs IGxlbiwgZmFsc2UpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IGF0bWVsX2lzX2dsb2JhbF9w cm90ZWN0ZWQoc3RydWN0IHNwaV9ub3IgKm5vciwgbG9mZl90IG9mcywgdWludDY0X3QgbGVuKQ0K PiArew0KPiArICAgICAgIGludCByZXQ7DQo+ICsNCj4gKyAgICAgICBpZiAob2ZzID49IG5vci0+ cGFyYW1zLT5zaXplIHx8IChvZnMgKyBsZW4pID4gbm9yLT5wYXJhbXMtPnNpemUpDQo+ICsgICAg ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArICAgICAgIHJldCA9IHNwaV9ub3Jf cmVhZF9zcihub3IsIG5vci0+Ym91bmNlYnVmKTsNCj4gKyAgICAgICBpZiAocmV0KQ0KPiArICAg ICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gKw0KPiArICAgICAgIHJldHVybiAoKG5vci0+Ym91 bmNlYnVmWzBdICYgQVRNRUxfU1JfR0xPQkFMX1BST1RFQ1RfTUFTSykgPT0gQVRNRUxfU1JfR0xP QkFMX1BST1RFQ1RfTUFTSyk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3Bp X25vcl9sb2NraW5nX29wcyBhdG1lbF9nbG9iYWxfcHJvdGVjdGlvbl9vcHMgPSB7DQo+ICsgICAg ICAgLmxvY2sgPSBhdG1lbF9nbG9iYWxfcHJvdGVjdCwNCj4gKyAgICAgICAudW5sb2NrID0gYXRt ZWxfZ2xvYmFsX3VucHJvdGVjdCwNCj4gKyAgICAgICAuaXNfbG9ja2VkID0gYXRtZWxfaXNfZ2xv YmFsX3Byb3RlY3RlZCwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyB2b2lkIGF0bWVsX2dsb2JhbF9w cm90ZWN0aW9uX2RlZmF1bHRfaW5pdChzdHJ1Y3Qgc3BpX25vciAqbm9yKQ0KPiArew0KPiArICAg ICAgIG5vci0+cGFyYW1zLT5sb2NraW5nX29wcyA9ICZhdG1lbF9nbG9iYWxfcHJvdGVjdGlvbl9v cHM7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX25vcl9maXh1cHMgYXRt ZWxfZ2xvYmFsX3Byb3RlY3Rpb25fZml4dXBzID0gew0KPiArICAgICAgIC5kZWZhdWx0X2luaXQg PSBhdG1lbF9nbG9iYWxfcHJvdGVjdGlvbl9kZWZhdWx0X2luaXQsDQo+ICt9Ow0KPiArDQo+ICBz dGF0aWMgY29uc3Qgc3RydWN0IGZsYXNoX2luZm8gYXRtZWxfcGFydHNbXSA9IHsNCj4gICAgICAg ICAvKiBBdG1lbCAtLSBzb21lIGFyZSAoY29uZnVzaW5nbHkpIG1hcmtldGVkIGFzICJEYXRhRmxh c2giICovDQo+ICAgICAgICAgeyAiYXQyNWZzMDEwIiwgIElORk8oMHgxZjY2MDEsIDAsIDMyICog MTAyNCwgICA0LCBTRUNUXzRLIHwgU1BJX05PUl9IQVNfTE9DSykNCj4gQEAgLTYyLDE4ICsxNjIs MzIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmbGFzaF9pbmZvIGF0bWVsX3BhcnRzW10gPSB7DQo+ ICAgICAgICAgeyAiYXQyNWZzMDQwIiwgIElORk8oMHgxZjY2MDQsIDAsIDY0ICogMTAyNCwgICA4 LCBTRUNUXzRLIHwgU1BJX05PUl9IQVNfTE9DSykNCj4gICAgICAgICAgICAgICAgIC5maXh1cHMg PSAmYXRtZWxfYXQyNWZzX2ZpeHVwcyB9LA0KPiANCj4gLSAgICAgICB7ICJhdDI1ZGYwNDFhIiwg SU5GTygweDFmNDQwMSwgMCwgNjQgKiAxMDI0LCAgIDgsIFNFQ1RfNEsgfCBTUElfTk9SX0hBU19M T0NLKSB9LA0KPiAtICAgICAgIHsgImF0MjVkZjMyMSIsICBJTkZPKDB4MWY0NzAwLCAwLCA2NCAq IDEwMjQsICA2NCwgU0VDVF80SyB8IFNQSV9OT1JfSEFTX0xPQ0spIH0sDQo+IC0gICAgICAgeyAi YXQyNWRmMzIxYSIsIElORk8oMHgxZjQ3MDEsIDAsIDY0ICogMTAyNCwgIDY0LCBTRUNUXzRLIHwg U1BJX05PUl9IQVNfTE9DSykgfSwNCj4gLSAgICAgICB7ICJhdDI1ZGY2NDEiLCAgSU5GTygweDFm NDgwMCwgMCwgNjQgKiAxMDI0LCAxMjgsIFNFQ1RfNEsgfCBTUElfTk9SX0hBU19MT0NLKSB9LA0K PiArICAgICAgIHsgImF0MjVkZjA0MWEiLCBJTkZPKDB4MWY0NDAxLCAwLCA2NCAqIDEwMjQsICAg OCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNUXzRLIHwgU1BJX05PUl9IQVNf TE9DSyB8IFNQSV9OT1JfU1dQX0lTX1ZPTEFUSUxFKQ0KPiArICAgICAgICAgICAgICAgICAgICAg ICAuZml4dXBzID0gJmF0bWVsX2dsb2JhbF9wcm90ZWN0aW9uX2ZpeHVwcyB9LA0KPiArICAgICAg IHsgImF0MjVkZjMyMSIsICBJTkZPKDB4MWY0NzAwLCAwLCA2NCAqIDEwMjQsICA2NCwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNUXzRLIHwgU1BJX05PUl9IQVNfTE9DSyB8IFNQ SV9OT1JfU1dQX0lTX1ZPTEFUSUxFKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAuZml4dXBz ID0gJmF0bWVsX2dsb2JhbF9wcm90ZWN0aW9uX2ZpeHVwcyB9LA0KPiArICAgICAgIHsgImF0MjVk ZjMyMWEiLCBJTkZPKDB4MWY0NzAxLCAwLCA2NCAqIDEwMjQsICA2NCwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTRUNUXzRLIHwgU1BJX05PUl9IQVNfTE9DSyB8IFNQSV9OT1JfU1dQ X0lTX1ZPTEFUSUxFKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAuZml4dXBzID0gJmF0bWVs X2dsb2JhbF9wcm90ZWN0aW9uX2ZpeHVwcyB9LA0KPiArICAgICAgIHsgImF0MjVkZjY0MSIsICBJ TkZPKDB4MWY0ODAwLCAwLCA2NCAqIDEwMjQsIDEyOCwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTRUNUXzRLIHwgU1BJX05PUl9IQVNfTE9DSyB8IFNQSV9OT1JfU1dQX0lTX1ZPTEFU SUxFKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAuZml4dXBzID0gJmF0bWVsX2dsb2JhbF9w cm90ZWN0aW9uX2ZpeHVwcyB9LA0KPiANCj4gICAgICAgICB7ICJhdDI1c2wzMjEiLCAgSU5GTygw eDFmNDIxNiwgMCwgNjQgKiAxMDI0LCA2NCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTRUNUXzRLIHwgU1BJX05PUl9EVUFMX1JFQUQgfCBTUElfTk9SX1FVQURfUkVBRCkgfSwNCj4g DQo+ICAgICAgICAgeyAiYXQyNmYwMDQiLCAgIElORk8oMHgxZjA0MDAsIDAsIDY0ICogMTAyNCwg IDgsIFNFQ1RfNEspIH0sDQo+IC0gICAgICAgeyAiYXQyNmRmMDgxYSIsIElORk8oMHgxZjQ1MDEs IDAsIDY0ICogMTAyNCwgMTYsIFNFQ1RfNEsgfCBTUElfTk9SX0hBU19MT0NLKSB9LA0KPiAtICAg ICAgIHsgImF0MjZkZjE2MWEiLCBJTkZPKDB4MWY0NjAxLCAwLCA2NCAqIDEwMjQsIDMyLCBTRUNU XzRLIHwgU1BJX05PUl9IQVNfTE9DSykgfSwNCj4gLSAgICAgICB7ICJhdDI2ZGYzMjEiLCAgSU5G TygweDFmNDcwMCwgMCwgNjQgKiAxMDI0LCA2NCwgU0VDVF80SyB8IFNQSV9OT1JfSEFTX0xPQ0sp IH0sDQo+ICsgICAgICAgeyAiYXQyNmRmMDgxYSIsIElORk8oMHgxZjQ1MDEsIDAsIDY0ICogMTAy NCwgMTYsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VDVF80SyB8IFNQSV9OT1Jf SEFTX0xPQ0sgfCBTUElfTk9SX1NXUF9JU19WT0xBVElMRSkNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgLmZpeHVwcyA9ICZhdG1lbF9nbG9iYWxfcHJvdGVjdGlvbl9maXh1cHMgfSwNCj4gKyAg ICAgICB7ICJhdDI2ZGYxNjFhIiwgSU5GTygweDFmNDYwMSwgMCwgNjQgKiAxMDI0LCAzMiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNUXzRLIHwgU1BJX05PUl9IQVNfTE9DSyB8 IFNQSV9OT1JfU1dQX0lTX1ZPTEFUSUxFKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAuZml4 dXBzID0gJmF0bWVsX2dsb2JhbF9wcm90ZWN0aW9uX2ZpeHVwcyB9LA0KPiArICAgICAgIHsgImF0 MjZkZjMyMSIsICBJTkZPKDB4MWY0NzAwLCAwLCA2NCAqIDEwMjQsIDY0LA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTUElfTk9SX0hBU19MT0NLIHwgU1BJX05PUl9T V1BfSVNfVk9MQVRJTEUpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIC5maXh1cHMgPSAmYXRt ZWxfZ2xvYmFsX3Byb3RlY3Rpb25fZml4dXBzIH0sDQo+IA0KPiAgICAgICAgIHsgImF0NDVkYjA4 MWQiLCBJTkZPKDB4MWYyNTAwLCAwLCA2NCAqIDEwMjQsIDE2LCBTRUNUXzRLKSB9LA0KPiAgfTsN Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvY29yZS5jIGIvZHJpdmVycy9tdGQv c3BpLW5vci9jb3JlLmMNCj4gaW5kZXggNmFmY2I5OWU5NzQxLi4yMzVhY2YzZjRjNDMgMTAwNjQ0 DQo+IC0tLSBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvY29yZS5jDQo+ICsrKyBiL2RyaXZlcnMvbXRk L3NwaS1ub3IvY29yZS5jDQo+IEBAIC0zNzcsNyArMzc3LDcgQEAgaW50IHNwaV9ub3Jfd3JpdGVf ZGlzYWJsZShzdHJ1Y3Qgc3BpX25vciAqbm9yKQ0KPiAgICoNCj4gICAqIFJldHVybjogMCBvbiBz dWNjZXNzLCAtZXJybm8gb3RoZXJ3aXNlLg0KPiAgICovDQo+IC1zdGF0aWMgaW50IHNwaV9ub3Jf cmVhZF9zcihzdHJ1Y3Qgc3BpX25vciAqbm9yLCB1OCAqc3IpDQo+ICtpbnQgc3BpX25vcl9yZWFk X3NyKHN0cnVjdCBzcGlfbm9yICpub3IsIHU4ICpzcikNCj4gIHsNCj4gICAgICAgICBpbnQgcmV0 Ow0KPiANCj4gQEAgLTg2MSw3ICs4NjEsNyBAQCBpbnQgc3BpX25vcl93YWl0X3RpbGxfcmVhZHko c3RydWN0IHNwaV9ub3IgKm5vcikNCj4gICAqDQo+ICAgKiBSZXR1cm46IDAgb24gc3VjY2Vzcywg LWVycm5vIG90aGVyd2lzZS4NCj4gICAqLw0KPiAtc3RhdGljIGludCBzcGlfbm9yX3dyaXRlX3Ny KHN0cnVjdCBzcGlfbm9yICpub3IsIGNvbnN0IHU4ICpzciwgc2l6ZV90IGxlbikNCj4gK2ludCBz cGlfbm9yX3dyaXRlX3NyKHN0cnVjdCBzcGlfbm9yICpub3IsIGNvbnN0IHU4ICpzciwgc2l6ZV90 IGxlbikNCj4gIHsNCj4gICAgICAgICBpbnQgcmV0Ow0KPiANCj4gQEAgLTMxMzksNiArMzEzOSw4 IEBAIHN0YXRpYyB2b2lkIHNwaV9ub3JfdHJ5X3VubG9ja19hbGwoc3RydWN0IHNwaV9ub3IgKm5v cikNCj4gICAgICAgICBpZiAoIShub3ItPmZsYWdzICYgU05PUl9GX0hBU19MT0NLKSkNCj4gICAg ICAgICAgICAgICAgIHJldHVybjsNCj4gDQo+ICsgICAgICAgZGV2X2RiZyhub3ItPmRldiwgIlVu cHJvdGVjdGluZyBlbnRpcmUgZmxhc2ggYXJyYXlcbiIpOw0KPiArDQo+ICAgICAgICAgcmV0ID0g c3BpX25vcl91bmxvY2soJm5vci0+bXRkLCAwLCBub3ItPnBhcmFtcy0+c2l6ZSk7DQo+ICAgICAg ICAgaWYgKHJldCkNCj4gICAgICAgICAgICAgICAgIGRldl9kYmcobm9yLT5kZXYsICJGYWlsZWQg dG8gdW5sb2NrIHRoZSBlbnRpcmUgZmxhc2ggbWVtb3J5IGFycmF5XG4iKTsNCj4gQEAgLTMxNjAs NyArMzE2MiwyMCBAQCBzdGF0aWMgaW50IHNwaV9ub3JfaW5pdChzdHJ1Y3Qgc3BpX25vciAqbm9y KQ0KPiAgICAgICAgICAgICAgICAgcmV0dXJuIGVycjsNCj4gICAgICAgICB9DQo+IA0KPiAtICAg ICAgIHNwaV9ub3JfdHJ5X3VubG9ja19hbGwobm9yKTsNCj4gKyAgICAgICAvKg0KPiArICAgICAg ICAqIFNvbWUgU1BJIE5PUiBmbGFzaGVzIGFyZSB3cml0ZSBwcm90ZWN0ZWQgYnkgZGVmYXVsdCBh ZnRlciBhIHBvd2VyLW9uDQo+ICsgICAgICAgICogcmVzZXQgY3ljbGUsIGluIG9yZGVyIHRvIGF2 b2lkIGluYWR2ZXJ0ZW50IHdyaXRlcyBkdXJpbmcgcG93ZXItdXAuDQo+ICsgICAgICAgICogQmFj a3dhcmQgY29tcGF0aWJpbGl0eSBpbXBvc2VzIHRvIHVubG9jayB0aGUgZW50aXJlIGZsYXNoIG1l bW9yeQ0KPiArICAgICAgICAqIGFycmF5IGF0IHBvd2VyLXVwIGJ5IGRlZmF1bHQuIERlcGVuZGlu ZyBvbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24NCj4gKyAgICAgICAgKiAoMSkgZG8gbm90aGlu ZywgKDIpIGFsd2F5cyB1bmxvY2sgdGhlIGVudGlyZSBmbGFzaCBhcnJheSBvciAoMykNCj4gKyAg ICAgICAgKiB1bmxvY2sgdGhlIGVudGlyZSBmbGFzaCBhcnJheSBvbmx5IHdoZW4gdGhlIHNvZnR3 YXJlIHdyaXRlDQo+ICsgICAgICAgICogcHJvdGVjdGlvbiBiaXRzIGFyZSB2b2xhdGlsZS4gVGhl IGxhdHRlciBpcyBpbmRpY2F0ZWQgYnkNCj4gKyAgICAgICAgKiBTTk9SX0ZfU1dQX0lTX1ZPTEFU SUxFLg0KPiArICAgICAgICAqLw0KPiArICAgICAgIGlmIChJU19FTkFCTEVEKENPTkZJR19NVERf U1BJX05PUl9TV1BfRElTQUJMRSkgfHwNCj4gKyAgICAgICAgICAgKElTX0VOQUJMRUQoQ09ORklH X01URF9TUElfTk9SX1NXUF9ESVNBQkxFX09OX1ZPTEFUSUxFKSAmJg0KPiArICAgICAgICAgICAg bm9yLT5mbGFncyAmIFNOT1JfRl9TV1BfSVNfVk9MQVRJTEUpKQ0KPiArICAgICAgICAgICAgICAg c3BpX25vcl90cnlfdW5sb2NrX2FsbChub3IpOw0KPiANCj4gICAgICAgICBpZiAobm9yLT5hZGRy X3dpZHRoID09IDQgJiYNCj4gICAgICAgICAgICAgbm9yLT5yZWFkX3Byb3RvICE9IFNOT1JfUFJP VE9fOF84XzhfRFRSICYmDQo+IEBAIC0zNDU5LDYgKzM0NzQsOCBAQCBpbnQgc3BpX25vcl9zY2Fu KHN0cnVjdCBzcGlfbm9yICpub3IsIGNvbnN0IGNoYXIgKm5hbWUsDQo+ICAgICAgICAgICAgICAg ICBub3ItPmZsYWdzIHw9IFNOT1JfRl9OT19PUF9DSElQX0VSQVNFOw0KPiAgICAgICAgIGlmIChp bmZvLT5mbGFncyAmIFVTRV9DTFNSKQ0KPiAgICAgICAgICAgICAgICAgbm9yLT5mbGFncyB8PSBT Tk9SX0ZfVVNFX0NMU1I7DQo+ICsgICAgICAgaWYgKGluZm8tPmZsYWdzICYgU1BJX05PUl9TV1Bf SVNfVk9MQVRJTEUpDQo+ICsgICAgICAgICAgICAgICBub3ItPmZsYWdzIHw9IFNOT1JfRl9TV1Bf SVNfVk9MQVRJTEU7DQo+IA0KPiAgICAgICAgIGlmIChpbmZvLT5mbGFncyAmIFNQSV9OT1JfNEJJ VF9CUCkgew0KPiAgICAgICAgICAgICAgICAgbm9yLT5mbGFncyB8PSBTTk9SX0ZfSEFTXzRCSVRf QlA7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9zcGktbm9yL2NvcmUuaCBiL2RyaXZlcnMv bXRkL3NwaS1ub3IvY29yZS5oDQo+IGluZGV4IDc3ODAxNjlkNDg1Yi4uODlhY2Y0OTlhZWNiIDEw MDY0NA0KPiAtLS0gYS9kcml2ZXJzL210ZC9zcGktbm9yL2NvcmUuaA0KPiArKysgYi9kcml2ZXJz L210ZC9zcGktbm9yL2NvcmUuaA0KPiBAQCAtMjgsNiArMjgsNyBAQCBlbnVtIHNwaV9ub3Jfb3B0 aW9uX2ZsYWdzIHsNCj4gICAgICAgICBTTk9SX0ZfSEFTX1NSX0JQM19CSVQ2ICA9IEJJVCgxMyks DQo+ICAgICAgICAgU05PUl9GX0lPX01PREVfRU5fVk9MQVRJTEUgPSBCSVQoMTQpLA0KPiAgICAg ICAgIFNOT1JfRl9TT0ZUX1JFU0VUICAgICAgID0gQklUKDE1KSwNCj4gKyAgICAgICBTTk9SX0Zf U1dQX0lTX1ZPTEFUSUxFICA9IEJJVCgxNiksDQo+ICB9Ow0KPiANCj4gIHN0cnVjdCBzcGlfbm9y X3JlYWRfY29tbWFuZCB7DQo+IEBAIC0zMjksNiArMzMwLDExIEBAIHN0cnVjdCBmbGFzaF9pbmZv IHsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICog YXZhaWxhYmxlIEkvTyBtb2RlIHZpYSBhDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqIHZvbGF0aWxlIGJpdC4NCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQo+ICsjZGVmaW5lIFNQSV9OT1JfU1dQ X0lTX1ZPTEFUSUxFICAgICAgICBCSVQoMjIpIC8qDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKiBGbGFzaCBoYXMgdm9sYXRpbGUgc29mdHdhcmUgd3JpdGUNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHByb3RlY3Rpb24gYml0 cy4gVXN1YWxseSB0aGVzZSB3aWxsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKiBwb3dlci11cCBpbiBhIHdyaXRlLXByb3RlY3RlZCBzdGF0ZS4NCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KPiANCj4gICAgICAgICAvKiBQ YXJ0IHNwZWNpZmljIGZpeHVwIGhvb2tzLiAqLw0KPiAgICAgICAgIGNvbnN0IHN0cnVjdCBzcGlf bm9yX2ZpeHVwcyAqZml4dXBzOw0KPiBAQCAtNDMwLDYgKzQzNiw4IEBAIHZvaWQgc3BpX25vcl91 bmxvY2tfYW5kX3VucHJlcChzdHJ1Y3Qgc3BpX25vciAqbm9yKTsNCj4gIGludCBzcGlfbm9yX3Ny MV9iaXQ2X3F1YWRfZW5hYmxlKHN0cnVjdCBzcGlfbm9yICpub3IpOw0KPiAgaW50IHNwaV9ub3Jf c3IyX2JpdDFfcXVhZF9lbmFibGUoc3RydWN0IHNwaV9ub3IgKm5vcik7DQo+ICBpbnQgc3BpX25v cl9zcjJfYml0N19xdWFkX2VuYWJsZShzdHJ1Y3Qgc3BpX25vciAqbm9yKTsNCj4gK2ludCBzcGlf bm9yX3JlYWRfc3Ioc3RydWN0IHNwaV9ub3IgKm5vciwgdTggKnNyKTsNCj4gK2ludCBzcGlfbm9y X3dyaXRlX3NyKHN0cnVjdCBzcGlfbm9yICpub3IsIGNvbnN0IHU4ICpzciwgc2l6ZV90IGxlbik7 DQo+ICBpbnQgc3BpX25vcl93cml0ZV9zcl9hbmRfY2hlY2soc3RydWN0IHNwaV9ub3IgKm5vciwg dTggc3IxKTsNCj4gDQo+ICBpbnQgc3BpX25vcl94cmVhZF9zcihzdHJ1Y3Qgc3BpX25vciAqbm9y LCB1OCAqc3IpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvc3BpLW5vci9lc210LmMgYi9k cml2ZXJzL210ZC9zcGktbm9yL2VzbXQuYw0KPiBpbmRleCBjOTMxNzAwMDgxMTguLmNmYzkyMThj MTA1MyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9tdGQvc3BpLW5vci9lc210LmMNCj4gKysrIGIv ZHJpdmVycy9tdGQvc3BpLW5vci9lc210LmMNCj4gQEAgLTExLDcgKzExLDcgQEANCj4gIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZmxhc2hfaW5mbyBlc210X3BhcnRzW10gPSB7DQo+ICAgICAgICAgLyog RVNNVCAqLw0KPiAgICAgICAgIHsgImYyNWwzMnBhIiwgSU5GTygweDhjMjAxNiwgMCwgNjQgKiAx MDI0LCA2NCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgU0VDVF80SyB8IFNQSV9OT1Jf SEFTX0xPQ0spIH0sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTUElf Tk9SX0hBU19MT0NLIHwgU1BJX05PUl9TV1BfSVNfVk9MQVRJTEUpIH0sDQo+ICAgICAgICAgeyAi ZjI1bDMycWEiLCBJTkZPKDB4OGM0MTE2LCAwLCA2NCAqIDEwMjQsIDY0LA0KPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTRUNUXzRLIHwgU1BJX05PUl9IQVNfTE9DSykgfSwNCj4gICAgICAg ICB7ICJmMjVsNjRxYSIsIElORk8oMHg4YzQxMTcsIDAsIDY0ICogMTAyNCwgMTI4LA0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9tdGQvc3BpLW5vci9pbnRlbC5jIGIvZHJpdmVycy9tdGQvc3BpLW5v ci9pbnRlbC5jDQo+IGluZGV4IDZjMzFiZWYzZmM2MC4uOGVjZTljY2ViM2NmIDEwMDY0NA0KPiAt LS0gYS9kcml2ZXJzL210ZC9zcGktbm9yL2ludGVsLmMNCj4gKysrIGIvZHJpdmVycy9tdGQvc3Bp LW5vci9pbnRlbC5jDQo+IEBAIC0xMCw5ICsxMCwxMiBAQA0KPiANCj4gIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZmxhc2hfaW5mbyBpbnRlbF9wYXJ0c1tdID0gew0KPiAgICAgICAgIC8qIEludGVsL051 bW9ueXggLS0geHh4czMzYiAqLw0KPiAtICAgICAgIHsgIjE2MHMzM2IiLCAgSU5GTygweDg5ODkx MSwgMCwgNjQgKiAxMDI0LCAgMzIsIFNQSV9OT1JfSEFTX0xPQ0spIH0sDQo+IC0gICAgICAgeyAi MzIwczMzYiIsICBJTkZPKDB4ODk4OTEyLCAwLCA2NCAqIDEwMjQsICA2NCwgU1BJX05PUl9IQVNf TE9DSykgfSwNCj4gLSAgICAgICB7ICI2NDBzMzNiIiwgIElORk8oMHg4OTg5MTMsIDAsIDY0ICog MTAyNCwgMTI4LCBTUElfTk9SX0hBU19MT0NLKSB9LA0KPiArICAgICAgIHsgIjE2MHMzM2IiLCAg SU5GTygweDg5ODkxMSwgMCwgNjQgKiAxMDI0LCAgMzIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgIFNQSV9OT1JfSEFTX0xPQ0sgfCBTUElfTk9SX1NXUF9JU19WT0xBVElMRSkgfSwNCj4g KyAgICAgICB7ICIzMjBzMzNiIiwgIElORk8oMHg4OTg5MTIsIDAsIDY0ICogMTAyNCwgIDY0LA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICBTUElfTk9SX0hBU19MT0NLIHwgU1BJX05PUl9T V1BfSVNfVk9MQVRJTEUpIH0sDQo+ICsgICAgICAgeyAiNjQwczMzYiIsICBJTkZPKDB4ODk4OTEz LCAwLCA2NCAqIDEwMjQsIDEyOCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgU1BJX05P Ul9IQVNfTE9DSyB8IFNQSV9OT1JfU1dQX0lTX1ZPTEFUSUxFKSB9LA0KPiAgfTsNCj4gDQo+ICBj b25zdCBzdHJ1Y3Qgc3BpX25vcl9tYW51ZmFjdHVyZXIgc3BpX25vcl9pbnRlbCA9IHsNCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3NwaS1ub3Ivc3N0LmMgYi9kcml2ZXJzL210ZC9zcGktbm9y L3NzdC5jDQo+IGluZGV4IDBkOWQzMTlmNjFlNi4uMDBlNDhkYTA3NDRhIDEwMDY0NA0KPiAtLS0g YS9kcml2ZXJzL210ZC9zcGktbm9yL3NzdC5jDQo+ICsrKyBiL2RyaXZlcnMvbXRkL3NwaS1ub3Iv c3N0LmMNCj4gQEAgLTExLDI3ICsxMSwyOCBAQA0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBmbGFz aF9pbmZvIHNzdF9wYXJ0c1tdID0gew0KPiAgICAgICAgIC8qIFNTVCAtLSBsYXJnZSBlcmFzZSBz aXplcyBhcmUgIm92ZXJsYXlzIiwgInNlY3RvcnMiIGFyZSA0SyAqLw0KPiAgICAgICAgIHsgInNz dDI1dmYwNDBiIiwgSU5GTygweGJmMjU4ZCwgMCwgNjQgKiAxMDI0LCAgOCwNCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU0VDVF80SyB8IFNTVF9XUklURSB8IFNQSV9OT1JfSEFTX0xP Q0spIH0sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTU1RfV1JJ VEUgfCBTUElfTk9SX0hBU19MT0NLIHwgU1BJX05PUl9TV1BfSVNfVk9MQVRJTEUpIH0sDQo+ICAg ICAgICAgeyAic3N0MjV2ZjA4MGIiLCBJTkZPKDB4YmYyNThlLCAwLCA2NCAqIDEwMjQsIDE2LA0K PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNUXzRLIHwgU1NUX1dSSVRFIHwgU1BJ X05PUl9IQVNfTE9DSykgfSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VDVF80 SyB8IFNTVF9XUklURSB8IFNQSV9OT1JfSEFTX0xPQ0sgfCBTUElfTk9SX1NXUF9JU19WT0xBVElM RSkgfSwNCj4gICAgICAgICB7ICJzc3QyNXZmMDE2YiIsIElORk8oMHhiZjI1NDEsIDAsIDY0ICog MTAyNCwgMzIsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTU1Rf V1JJVEUgfCBTUElfTk9SX0hBU19MT0NLKSB9LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTRUNUXzRLIHwgU1NUX1dSSVRFIHwgU1BJX05PUl9IQVNfTE9DSyB8IFNQSV9OT1JfU1dQ X0lTX1ZPTEFUSUxFKSB9LA0KPiAgICAgICAgIHsgInNzdDI1dmYwMzJiIiwgSU5GTygweGJmMjU0 YSwgMCwgNjQgKiAxMDI0LCA2NCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VD VF80SyB8IFNTVF9XUklURSB8IFNQSV9OT1JfSEFTX0xPQ0spIH0sDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTU1RfV1JJVEUgfCBTUElfTk9SX0hBU19MT0NLIHwg U1BJX05PUl9TV1BfSVNfVk9MQVRJTEUpIH0sDQo+ICAgICAgICAgeyAic3N0MjV2ZjA2NGMiLCBJ TkZPKDB4YmYyNTRiLCAwLCA2NCAqIDEwMjQsIDEyOCwNCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU0VDVF80SyB8IFNQSV9OT1JfNEJJVF9CUCB8IFNQSV9OT1JfSEFTX0xPQ0spIH0s DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTUElfTk9SXzRCSVRf QlAgfCBTUElfTk9SX0hBU19MT0NLIHwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U1BJX05PUl9TV1BfSVNfVk9MQVRJTEUpIH0sDQo+ICAgICAgICAgeyAic3N0MjV3ZjUxMiIsICBJ TkZPKDB4YmYyNTAxLCAwLCA2NCAqIDEwMjQsICAxLA0KPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTRUNUXzRLIHwgU1NUX1dSSVRFIHwgU1BJX05PUl9IQVNfTE9DSykgfSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VDVF80SyB8IFNTVF9XUklURSB8IFNQSV9OT1Jf SEFTX0xPQ0sgfCBTUElfTk9SX1NXUF9JU19WT0xBVElMRSkgfSwNCj4gICAgICAgICB7ICJzc3Qy NXdmMDEwIiwgIElORk8oMHhiZjI1MDIsIDAsIDY0ICogMTAyNCwgIDIsDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTU1RfV1JJVEUgfCBTUElfTk9SX0hBU19MT0NL KSB9LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNUXzRLIHwgU1NUX1dSSVRF IHwgU1BJX05PUl9IQVNfTE9DSyB8IFNQSV9OT1JfU1dQX0lTX1ZPTEFUSUxFKSB9LA0KPiAgICAg ICAgIHsgInNzdDI1d2YwMjAiLCAgSU5GTygweGJmMjUwMywgMCwgNjQgKiAxMDI0LCAgNCwNCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VDVF80SyB8IFNTVF9XUklURSB8IFNQSV9O T1JfSEFTX0xPQ0spIH0sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsg fCBTU1RfV1JJVEUgfCBTUElfTk9SX0hBU19MT0NLIHwgU1BJX05PUl9TV1BfSVNfVk9MQVRJTEUp IH0sDQo+ICAgICAgICAgeyAic3N0MjV3ZjAyMGEiLCBJTkZPKDB4NjIxNjEyLCAwLCA2NCAqIDEw MjQsICA0LCBTRUNUXzRLIHwgU1BJX05PUl9IQVNfTE9DSykgfSwNCj4gICAgICAgICB7ICJzc3Qy NXdmMDQwYiIsIElORk8oMHg2MjE2MTMsIDAsIDY0ICogMTAyNCwgIDgsIFNFQ1RfNEsgfCBTUElf Tk9SX0hBU19MT0NLKSB9LA0KPiAgICAgICAgIHsgInNzdDI1d2YwNDAiLCAgSU5GTygweGJmMjUw NCwgMCwgNjQgKiAxMDI0LCAgOCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VD VF80SyB8IFNTVF9XUklURSB8IFNQSV9OT1JfSEFTX0xPQ0spIH0sDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTU1RfV1JJVEUgfCBTUElfTk9SX0hBU19MT0NLIHwg U1BJX05PUl9TV1BfSVNfVk9MQVRJTEUpIH0sDQo+ICAgICAgICAgeyAic3N0MjV3ZjA4MCIsICBJ TkZPKDB4YmYyNTA1LCAwLCA2NCAqIDEwMjQsIDE2LA0KPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTRUNUXzRLIHwgU1NUX1dSSVRFIHwgU1BJX05PUl9IQVNfTE9DSykgfSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VDVF80SyB8IFNTVF9XUklURSB8IFNQSV9OT1Jf SEFTX0xPQ0sgfCBTUElfTk9SX1NXUF9JU19WT0xBVElMRSkgfSwNCj4gICAgICAgICB7ICJzc3Qy NndmMDE2YiIsIElORk8oMHhiZjI2NTEsIDAsIDY0ICogMTAyNCwgMzIsDQo+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTUElfTk9SX0RVQUxfUkVBRCB8DQo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNQSV9OT1JfUVVBRF9SRUFEKSB9LA0KPiAtLQ0KPiAy LjIwLjENCj4gDQoNCg==