Received: by 2002:a25:23cc:0:0:0:0:0 with SMTP id j195csp1569177ybj; Wed, 6 May 2020 00:46:37 -0700 (PDT) X-Google-Smtp-Source: APiQypJJs/tS8zpftFDCBAEcmgE1/2XW/SF3XKRIGzscF3OX8k2hDoaDRJlOR8p6NxPqnQlM7IN4 X-Received: by 2002:a17:906:57d7:: with SMTP id u23mr5748424ejr.354.1588751197075; Wed, 06 May 2020 00:46:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588751197; cv=none; d=google.com; s=arc-20160816; b=uE3AKlJPa4Sp1V6Ks9Fd6wY5PiAyepY5ebQEnYFtPc3fPuIpCFDdSExNmmaG+Zg2e/ giJdiSTev4AXJuNoEkD5YhL2eRFTblQbquGHTO531FbGTDNwzpAF2+jaVTgqhPOf6BHn hPGPgJEPRKKY+HAi8hhQsYLzr4jGIZGs6EZbzb1hX464YqzBW0n23kdGnIrbs1LTtZ9u iXAWetRy9ZVnKUP+IGdFf7zkurhAGFeZcRik64dkDM4tv8paysk2v6vVmHmfsdWAh1sc z3XsRq5h37HZUYw8b/+LEs0eLdB5O+7MmQsS/R00ROZJNZcb7uN+JYwH6+VYtDD9Oo7N vJ8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :dkim-signature; bh=bnhO+RNE8LItyCUVhXYwRexXAh9KNO5DUoSKvjaqDGY=; b=xRfBEawZhmzlTgurFBi0EMIhTbBkFI2Sg+Mq2PLurppJJd52r3VkBo3VQIGv+JxKm5 fu3vocXWw8ImCP92lSDu3kiKMK/jLEmKEi3/LasAELtU+oI3/BYmhzqXq4Ja1s97ys9t BP53vQoMIETB6P0nYJ4l55XnH88TB9yvzd0Y8nKMflVy332+z3yY8KUZBNTYEtGVeL2k V7gt4kd3CD1dpNRX9qOg67igsdr9rAgbQfq03cELAPYC7HYzq5SbwSfg4DBx1V+lykfb PyeplSiCMAYGNy4B2De1bBmf/piruqDlYbazbZs0Rr7EV5sPbp+UT3OFAdWBwMT+66j2 CnDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=QAMEGj2p; 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=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e15si722688ejc.208.2020.05.06.00.46.13; Wed, 06 May 2020 00:46:37 -0700 (PDT) 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=pass header.i=@mediatek.com header.s=dk header.b=QAMEGj2p; 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=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728422AbgEFHm2 (ORCPT + 99 others); Wed, 6 May 2020 03:42:28 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:14927 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1728355AbgEFHm1 (ORCPT ); Wed, 6 May 2020 03:42:27 -0400 X-UUID: 306135e8baa5454a8e6ace3cda95a36d-20200506 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=bnhO+RNE8LItyCUVhXYwRexXAh9KNO5DUoSKvjaqDGY=; b=QAMEGj2ppsgvKSzdnytCrU4ljOET4RK7Fu89+lG4SCI3l/ZEoZLZnM6ZLBmBDXQ1t5+Ap2kDw3UGhUFdkW+CNZEpKS2mewcozpjGwhhDy8XrV7vHoduiVBQ4lvfdHB2xvJ4eVRNUX7Z26RUIjx+/mqvy046SZ8bsD3kE+Vhu3aE=; X-UUID: 306135e8baa5454a8e6ace3cda95a36d-20200506 Received: from mtkcas07.mediatek.inc [(172.21.101.84)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 34297951; Wed, 06 May 2020 15:42:20 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 6 May 2020 15:42:19 +0800 Received: from [172.21.77.4] (172.21.77.4) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 6 May 2020 15:42:15 +0800 Message-ID: <1588750940.3262.27.camel@mtksdaap41> Subject: Re: [PATCH v13 05/11] soc: mediatek: Add multiple step bus protection control From: Weiyi Lu To: Enric Balletbo Serra CC: Rob Herring , Nicolas Boichat , srv_heupstream , JamesJJ Liao =?UTF-8?Q?=28=E5=BB=96=E5=BB=BA=E6=99=BA=29?= , linux-kernel , Fan Chen =?UTF-8?Q?=28=E9=99=B3=E5=87=A1=29?= , "moderated list:ARM/Mediatek SoC support" , "Sascha Hauer" , Matthias Brugger , Linux ARM Date: Wed, 6 May 2020 15:42:20 +0800 In-Reply-To: References: <1584689540-5227-1-git-send-email-weiyi.lu@mediatek.com> <1584689540-5227-6-git-send-email-weiyi.lu@mediatek.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQpPbiBGcmksIDIwMjAtMDQtMjQgYXQgMDI6MTkgKzA4MDAsIEVucmljIEJhbGxldGJvIFNlcnJh IHdyb3RlOg0KPiBIaSBXaXlpIEx1LA0KPiANCj4gVGhhbmsgeW91IGZvciB5b3VyIHBhdGNoLg0K PiANCj4gTWlzc2F0Z2UgZGUgV2VpeWkgTHUgPHdlaXlpLmx1QG1lZGlhdGVrLmNvbT4gZGVsIGRp YSBkdi4sIDIwIGRlIG1hcsOnDQo+IDIwMjAgYSBsZXMgODozMzoNCj4gPg0KPiA+IEJvdGggTVQ4 MTgzICYgTVQ2NzY1IGhhdmUgbW9yZSBjb250cm9sIHN0ZXBzIG9mIGJ1cyBwcm90ZWN0aW9uDQo+ ID4gdGhhbiBwcmV2aW91cyBwcm9qZWN0LiBBbmQgdGhlcmUgYWRkIG1vcmUgYnVzIHByb3RlY3Rp b24gcmVnaXN0ZXJzDQo+ID4gcmVzaWRlIGF0IGluZnJhY2ZnICYgc21pLWNvbW1vbi4NCj4gPiBF eHRlbmQgZnVuY3Rpb24gdG8gc3VwcG9ydCBtdWx0aXBsZSBzdGVwIGJ1cyBwcm90ZWN0aW9uIGNv bnRyb2wNCj4gPiB3aXRoIG1vcmUgY3VzdG9taXplZCBhcmd1bWVudHMuDQo+ID4gQW5kIHRoZW4g dXNlIGJwX3RhYmxlIGZvciBidXMgcHJvdGVjdGlvbiBvZiBhbGwgY29tcGF0aWJsZXMsDQo+ID4g aW5zdGVhZCBvZiBtaXhpbmcgYnVzX3Byb3RfbWFzayBhbmQgYnVzX3Byb3RfcmVnX3VwZGF0ZS4N Cj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFdlaXlpIEx1IDx3ZWl5aS5sdUBtZWRpYXRlay5jb20+ DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvc29jL21lZGlhdGVrL210ay1zY3BzeXMuYyB8IDIwNiAr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQ0KPiA+ICBkcml2ZXJzL3NvYy9t ZWRpYXRlay9zY3BzeXMuaCAgICAgfCAgNDIgKysrKysrKy0NCj4gPiAgMiBmaWxlcyBjaGFuZ2Vk LCAxODIgaW5zZXJ0aW9ucygrKSwgNjYgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXNjcHN5cy5jIGIvZHJpdmVycy9zb2MvbWVkaWF0 ZWsvbXRrLXNjcHN5cy5jDQo+ID4gaW5kZXggZTUwYTU2OC4uYTRmYjBiMjMgMTAwNjQ0DQo+ID4g LS0tIGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXNjcHN5cy5jDQo+ID4gKysrIGIvZHJpdmVy cy9zb2MvbWVkaWF0ZWsvbXRrLXNjcHN5cy5jDQo+ID4gQEAgLTg4LDkgKzg4LDkgQEANCj4gPiAg ICogQGN0bF9vZmZzOiBUaGUgb2Zmc2V0IGZvciBtYWluIHBvd2VyIGNvbnRyb2wgcmVnaXN0ZXIu DQo+ID4gICAqIEBzcmFtX3Bkbl9iaXRzOiBUaGUgbWFzayBmb3Igc3JhbSBwb3dlciBjb250cm9s IGJpdHMuDQo+ID4gICAqIEBzcmFtX3Bkbl9hY2tfYml0czogVGhlIG1hc2sgZm9yIHNyYW0gcG93 ZXIgY29udHJvbCBhY2tlZCBiaXRzLg0KPiA+IC0gKiBAYnVzX3Byb3RfbWFzazogVGhlIG1hc2sg Zm9yIHNpbmdsZSBzdGVwIGJ1cyBwcm90ZWN0aW9uLg0KPiA+ICAgKiBAYmFzaWNfY2xrX25hbWU6 IFRoZSBiYXNpYyBjbG9ja3MgcmVxdWlyZWQgYnkgdGhpcyBwb3dlciBkb21haW4uDQo+ID4gICAq IEBjYXBzOiBUaGUgZmxhZyBmb3IgYWN0aXZlIHdha2UtdXAgYWN0aW9uLg0KPiA+ICsgKiBAYnBf dGFibGU6IFRoZSBtYXNrIHRhYmxlIGZvciBtdWx0aXBsZSBzdGVwIGJ1cyBwcm90ZWN0aW9uLg0K PiA+ICAgKi8NCj4gPiAgc3RydWN0IHNjcF9kb21haW5fZGF0YSB7DQo+ID4gICAgICAgICBjb25z dCBjaGFyICpuYW1lOw0KPiA+IEBAIC05OCw5ICs5OCw5IEBAIHN0cnVjdCBzY3BfZG9tYWluX2Rh dGEgew0KPiA+ICAgICAgICAgaW50IGN0bF9vZmZzOw0KPiA+ICAgICAgICAgdTMyIHNyYW1fcGRu X2JpdHM7DQo+ID4gICAgICAgICB1MzIgc3JhbV9wZG5fYWNrX2JpdHM7DQo+ID4gLSAgICAgICB1 MzIgYnVzX3Byb3RfbWFzazsNCj4gPiAgICAgICAgIGNvbnN0IGNoYXIgKmJhc2ljX2Nsa19uYW1l W01BWF9DTEtTXTsNCj4gPiAgICAgICAgIHU4IGNhcHM7DQo+ID4gKyAgICAgICBzdHJ1Y3QgYnVz X3Byb3QgYnBfdGFibGVbTUFYX1NURVBTXTsNCj4gPiAgfTsNCj4gPg0KPiA+ICBzdHJ1Y3Qgc2Nw Ow0KPiA+IEBAIC0xMjQsOCArMTI0LDggQEAgc3RydWN0IHNjcCB7DQo+ID4gICAgICAgICBzdHJ1 Y3QgZGV2aWNlICpkZXY7DQo+ID4gICAgICAgICB2b2lkIF9faW9tZW0gKmJhc2U7DQo+ID4gICAg ICAgICBzdHJ1Y3QgcmVnbWFwICppbmZyYWNmZzsNCj4gPiArICAgICAgIHN0cnVjdCByZWdtYXAg KnNtaV9jb21tb247DQo+ID4gICAgICAgICBzdHJ1Y3Qgc2NwX2N0cmxfcmVnIGN0cmxfcmVnOw0K PiA+IC0gICAgICAgYm9vbCBidXNfcHJvdF9yZWdfdXBkYXRlOw0KPiA+ICB9Ow0KPiA+DQo+ID4g IHN0cnVjdCBzY3Bfc3ViZG9tYWluIHsNCj4gPiBAQCAtMTM5LDcgKzEzOSw2IEBAIHN0cnVjdCBz Y3Bfc29jX2RhdGEgew0KPiA+ICAgICAgICAgY29uc3Qgc3RydWN0IHNjcF9zdWJkb21haW4gKnN1 YmRvbWFpbnM7DQo+ID4gICAgICAgICBpbnQgbnVtX3N1YmRvbWFpbnM7DQo+ID4gICAgICAgICBj b25zdCBzdHJ1Y3Qgc2NwX2N0cmxfcmVnIHJlZ3M7DQo+ID4gLSAgICAgICBib29sIGJ1c19wcm90 X3JlZ191cGRhdGU7DQo+ID4gIH07DQo+ID4NCj4gPiAgc3RhdGljIGludCBzY3BzeXNfZG9tYWlu X2lzX29uKHN0cnVjdCBzY3BfZG9tYWluICpzY3BkKQ0KPiA+IEBAIC0yNDksNTMgKzI0OCwxMDIg QEAgc3RhdGljIGludCBzY3BzeXNfc3JhbV9kaXNhYmxlKHN0cnVjdCBzY3BfZG9tYWluICpzY3Bk LCB2b2lkIF9faW9tZW0gKmN0bF9hZGRyKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIE1U S19QT0xMX0RFTEFZX1VTLCBNVEtfUE9MTF9USU1FT1VUKTsNCj4gPiAgfQ0KPiA+DQo+ID4gK3N0 YXRpYyBpbnQgc2V0X2J1c19wcm90ZWN0aW9uKHN0cnVjdCByZWdtYXAgKm1hcCwgc3RydWN0IGJ1 c19wcm90ICpicCkNCj4gPiArew0KPiA+ICsgICAgICAgdTMyIHZhbDsNCj4gPiArICAgICAgIHUz MiBzZXRfb2ZzID0gYnAtPnNldF9vZnM7DQo+ID4gKyAgICAgICB1MzIgZW5fb2ZzID0gYnAtPmVu X29mczsNCj4gPiArICAgICAgIHUzMiBzdGFfb2ZzID0gYnAtPnN0YV9vZnM7DQo+ID4gKyAgICAg ICB1MzIgbWFzayA9IGJwLT5tYXNrOw0KPiANCj4gUmVtb3ZlIHVubmVjZXNzYXJ5IGxvY2FsIHZh cmlhYmxlcyAoc2V0X29mcywgZW5fb2ZzLCBzdGFfb2ZzIGFuZA0KPiBtYXNrKSwgYW5kIHVzZSB0 aGVpciBicC0+IGZvcm0gZGlyZWN0bHkuDQo+IA0KDQpPSywgSSdsbCBmaXggaXQuDQoNCj4gPiAr DQo+ID4gKyAgICAgICBpZiAoc2V0X29mcykNCj4gPiArICAgICAgICAgICAgICAgcmVnbWFwX3dy aXRlKG1hcCwgc2V0X29mcywgbWFzayk7DQo+ID4gKyAgICAgICBlbHNlDQo+ID4gKyAgICAgICAg ICAgICAgIHJlZ21hcF91cGRhdGVfYml0cyhtYXAsIGVuX29mcywgbWFzaywgbWFzayk7DQo+ID4g Kw0KPiA+ICsgICAgICAgcmV0dXJuIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dChtYXAsIHN0YV9v ZnMsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgdmFsLCAodmFsICYgbWFzaykgPT0gbWFz aywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBNVEtfUE9MTF9ERUxBWV9VUywgTVRLX1BP TExfVElNRU9VVCk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgY2xlYXJfYnVzX3By b3RlY3Rpb24oc3RydWN0IHJlZ21hcCAqbWFwLCBzdHJ1Y3QgYnVzX3Byb3QgKmJwKQ0KPiA+ICt7 DQo+ID4gKyAgICAgICB1MzIgdmFsOw0KPiA+ICsgICAgICAgdTMyIGNscl9vZnMgPSBicC0+Y2xy X29mczsNCj4gPiArICAgICAgIHUzMiBlbl9vZnMgPSBicC0+ZW5fb2ZzOw0KPiA+ICsgICAgICAg dTMyIHN0YV9vZnMgPSBicC0+c3RhX29mczsNCj4gPiArICAgICAgIHUzMiBtYXNrID0gYnAtPm1h c2s7DQo+ID4gKyAgICAgICBib29sIGlnbm9yZV9hY2sgPSBicC0+aWdub3JlX2Nscl9hY2s7DQo+ IA0KPiBSZW1vdmUgdW5uZWNlc3NhcnkgbG9jYWwgdmFyaWFibGVzIChjbHJfb2ZzLCBlbl9vZnMs IHN0YV9vZnMsIG1hc2sgYW5kDQo+IGlnbm9yZV9hY2spLCBhbmQgdXNlIHRoZWlyIGJwLT4gZm9y bSBkaXJlY3RseS4NCj4gDQoNCk9LLCBJJ2xsIGZpeCBpdC4NCg0KPiA+ICsNCj4gPiArICAgICAg IGlmIChjbHJfb2ZzKQ0KPiA+ICsgICAgICAgICAgICAgICByZWdtYXBfd3JpdGUobWFwLCBjbHJf b2ZzLCBtYXNrKTsNCj4gPiArICAgICAgIGVsc2UNCj4gPiArICAgICAgICAgICAgICAgcmVnbWFw X3VwZGF0ZV9iaXRzKG1hcCwgZW5fb2ZzLCBtYXNrLCAwKTsNCj4gPiArDQo+ID4gKyAgICAgICBp ZiAoaWdub3JlX2FjaykNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4gKw0KPiA+ ICsgICAgICAgcmV0dXJuIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dChtYXAsIHN0YV9vZnMsDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgdmFsLCAhKHZhbCAmIG1hc2spLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIE1US19QT0xMX0RFTEFZX1VTLCBNVEtfUE9MTF9USU1FT1VUKTsN Cj4gPiArfQ0KPiA+ICsNCj4gPiAgc3RhdGljIGludCBzY3BzeXNfYnVzX3Byb3RlY3RfZW5hYmxl KHN0cnVjdCBzY3BfZG9tYWluICpzY3BkKQ0KPiA+ICB7DQo+ID4gICAgICAgICBzdHJ1Y3Qgc2Nw ICpzY3AgPSBzY3BkLT5zY3A7DQo+ID4gKyAgICAgICBjb25zdCBzdHJ1Y3QgYnVzX3Byb3QgKmJw X3RhYmxlID0gc2NwZC0+ZGF0YS0+YnBfdGFibGU7DQo+ID4gICAgICAgICBzdHJ1Y3QgcmVnbWFw ICppbmZyYWNmZyA9IHNjcC0+aW5mcmFjZmc7DQo+ID4gLSAgICAgICB1MzIgbWFzayA9IHNjcGQt PmRhdGEtPmJ1c19wcm90X21hc2s7DQo+ID4gLSAgICAgICBib29sIHJlZ191cGRhdGUgPSBzY3At PmJ1c19wcm90X3JlZ191cGRhdGU7DQo+ID4gLSAgICAgICB1MzIgdmFsOw0KPiA+IC0gICAgICAg aW50IHJldDsNCj4gDQo+IE5vIG5lZWQgdG8gcmVtb3ZlIHJldCBpZiB5b3UncmUgZ29pbmcgdG8g YWRkIGFueXdheSBsYXRlci4NCj4gDQoNCkdvdCBpdC4NCg0KPiA+ICsgICAgICAgc3RydWN0IHJl Z21hcCAqc21pX2NvbW1vbiA9IHNjcC0+c21pX2NvbW1vbjsNCj4gPiArICAgICAgIGludCBpOw0K PiA+DQo+ID4gLSAgICAgICBpZiAoIW1hc2spDQo+ID4gLSAgICAgICAgICAgICAgIHJldHVybiAw Ow0KPiA+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IE1BWF9TVEVQUzsgaSsrKSB7DQo+ID4gKyAg ICAgICAgICAgICAgIHN0cnVjdCByZWdtYXAgKm1hcCA9IE5VTEw7DQo+IA0KPiBEZWNsYXJlIHRo aXMgb24gdG9wIG9mIHRoZSBmdW5jdGlvbiBhbmQgbm8gbmVlZCB0byBpbml0aWFsaXplIHRvIE5V bEwNCj4gDQoNCkdvdCBpdC4NCg0KPiA+ICsgICAgICAgICAgICAgICBpbnQgcmV0Ow0KPiA+ICsg ICAgICAgICAgICAgICBzdHJ1Y3QgYnVzX3Byb3QgYnAgPSBicF90YWJsZVtpXTsNCj4gDQo+IFVu bmVlZGVkIGxvY2FsIHZhcmlhYmxlIC4uLg0KPiANCg0KQWN0dWFsbHkgSSBmb2xsb3dlZCBOaWNv bGFzJ3Mgc3VnZ2VzdGlvbiBpbiBbMV0NCkJ1dCwgaXQncyBva2F5IHRvIG1lIHRvIGNoYW5nZSBp dCBiYWNrLg0KDQpbMV0gaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wYXRjaC8xMTMwNDcw OS8NCg0KPiA+DQo+ID4gLSAgICAgICBpZiAocmVnX3VwZGF0ZSkNCj4gPiAtICAgICAgICAgICAg ICAgcmVnbWFwX3VwZGF0ZV9iaXRzKGluZnJhY2ZnLCBJTkZSQV9UT1BBWElfUFJPVEVDVEVOLCBt YXNrLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzayk7DQo+ID4gLSAg ICAgICBlbHNlDQo+ID4gLSAgICAgICAgICAgICAgIHJlZ21hcF93cml0ZShpbmZyYWNmZywgSU5G UkFfVE9QQVhJX1BST1RFQ1RFTl9TRVQsIG1hc2spOw0KPiA+ICsgICAgICAgICAgICAgICBpZiAo YnAudHlwZSA9PSBJRlJfVFlQRSkNCj4gDQo+IGJwX3RhYmxlW2ldLnR5cGU/DQo+IA0KDQpHb3Qg aXQuDQoNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBtYXAgPSBpbmZyYWNmZzsNCj4gPiAr ICAgICAgICAgICAgICAgZWxzZSBpZiAoYnAudHlwZSA9PSBTTUlfVFlQRSkNCj4gDQo+IGRpdHRv DQo+IA0KDQpHb3QgaXQuDQoNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBtYXAgPSBzbWlf Y29tbW9uOw0KPiA+ICsgICAgICAgICAgICAgICBlbHNlDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7DQo+IA0KPiBTbyBpZiB0aGUgdHlwZSBpcyBpbnZhbGlkIHlvdSBicmVhayB0 aGUgbG9vcCwgdGhpcyBpcyBkaWZmZXJlbnQgdG8NCj4gd2hhdCB5b3UgYXJlIGRvaW5nIGJlbG93 IHdpdGggdGhlIHNjcHN5c19idXNfcHJvdGVjdF9wcm90ZWN0X2Rpc2FibGUoKQ0KPiBmdW5jdGlv biB3aGVyZSB5b3UgYXJlICJpZ25vcmluZyIgaW5zdGVhZCBvZiBiZWFraW5nIHRoZSBsb29wLiBJ IGFtDQo+IHdvbmRlcmluZyB3aHk/IExvb2tzIHRvIG1lIHRoYXQsIG9yIHlvdSBicmVhayBhbmQg cHJpbnQgYW4gZXJyb3INCj4gYmVjYXVzZSBzb21ldGhpbmcgd2FzIHJlYWxseSB3cm9uZz8gb3Ig eW91IGlnbm9yZSBpbiBib3RoIGNhc2VzPw0KPiANCg0KVGhlIGJwX3RhYmxlIGluc2lkZSB0aGUg c2NwX2RvbWFpbl9kYXRhX210ODE4MyBpcyBzdGF0aWMgdmFyaWFibGUgd2l0aA0KbWF4aW11bSBN QVhfU1RFUFMgbWVtYmVyIGNvdW50LiBTbywgZm9yIHRob3NlIHBvd2VyIGRvbWFpbnMgd2l0aCBs ZXNzDQpidXMgcHJvdGVjdGlvbiBzdGVwcywgaW52YWxpZCB0eXBlIHdpbGwgYmUgdXNlZC4NCg0K PiA+DQo+ID4gLSAgICAgICByZXQgPSByZWdtYXBfcmVhZF9wb2xsX3RpbWVvdXQoaW5mcmFjZmcs IElORlJBX1RPUEFYSV9QUk9URUNUU1RBMSwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2YWwsICh2YWwgJiBtYXNrKSA9PSBtYXNrLA0KPiA+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1US19QT0xMX0RFTEFZX1VTLCBNVEtfUE9MTF9U SU1FT1VUKTsNCj4gPiArICAgICAgICAgICAgICAgcmV0ID0gc2V0X2J1c19wcm90ZWN0aW9uKG1h cCwgJmJwKTsNCj4gPg0KPiA+IC0gICAgICAgcmV0dXJuIHJldDsNCj4gPiArICAgICAgICAgICAg ICAgaWYgKHJldCkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+ ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIHJldHVybiAwOw0KPiA+ICB9DQo+ID4NCj4g PiAgc3RhdGljIGludCBzY3BzeXNfYnVzX3Byb3RlY3RfZGlzYWJsZShzdHJ1Y3Qgc2NwX2RvbWFp biAqc2NwZCkNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0IHNjcCAqc2NwID0gc2NwZC0+c2Nw Ow0KPiA+ICsgICAgICAgY29uc3Qgc3RydWN0IGJ1c19wcm90ICpicF90YWJsZSA9IHNjcGQtPmRh dGEtPmJwX3RhYmxlOw0KPiA+ICAgICAgICAgc3RydWN0IHJlZ21hcCAqaW5mcmFjZmcgPSBzY3At PmluZnJhY2ZnOw0KPiA+IC0gICAgICAgdTMyIG1hc2sgPSBzY3BkLT5kYXRhLT5idXNfcHJvdF9t YXNrOw0KPiA+IC0gICAgICAgYm9vbCByZWdfdXBkYXRlID0gc2NwLT5idXNfcHJvdF9yZWdfdXBk YXRlOw0KPiA+IC0gICAgICAgdTMyIHZhbDsNCj4gPiAtICAgICAgIGludCByZXQ7DQo+ID4gKyAg ICAgICBzdHJ1Y3QgcmVnbWFwICpzbWlfY29tbW9uID0gc2NwLT5zbWlfY29tbW9uOw0KPiA+ICsg ICAgICAgaW50IGk7DQo+ID4NCj4gPiAtICAgICAgIGlmICghbWFzaykNCj4gPiAtICAgICAgICAg ICAgICAgcmV0dXJuIDA7DQo+ID4gKyAgICAgICBmb3IgKGkgPSBNQVhfU1RFUFMgLSAxOyBpID49 IDA7IGktLSkgew0KPiA+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgcmVnbWFwICptYXAgPSBOVUxM Ow0KPiA+ICsgICAgICAgICAgICAgICBpbnQgcmV0Ow0KPiA+ICsgICAgICAgICAgICAgICBzdHJ1 Y3QgYnVzX3Byb3QgYnAgPSBicF90YWJsZVtpXTsNCj4gDQo+IFRoZSBzYW1lIGNvbW1lbnRzIGRv bmUgZm9yIHNjcHN5c19idXNfcHJvdGVjdF9kaXNhYmxlIGFwcGx5IGhlcmUuDQo+IA0KDQpHb3Qg aXQuDQoNCj4gPg0KPiA+IC0gICAgICAgaWYgKHJlZ191cGRhdGUpDQo+ID4gLSAgICAgICAgICAg ICAgIHJlZ21hcF91cGRhdGVfYml0cyhpbmZyYWNmZywgSU5GUkFfVE9QQVhJX1BST1RFQ1RFTiwg bWFzaywgMCk7DQo+ID4gLSAgICAgICBlbHNlDQo+ID4gLSAgICAgICAgICAgICAgIHJlZ21hcF93 cml0ZShpbmZyYWNmZywgSU5GUkFfVE9QQVhJX1BST1RFQ1RFTl9DTFIsIG1hc2spOw0KPiA+ICsg ICAgICAgICAgICAgICBpZiAoYnAudHlwZSA9PSBJRlJfVFlQRSkNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICBtYXAgPSBpbmZyYWNmZzsNCj4gPiArICAgICAgICAgICAgICAgZWxzZSBpZiAo YnAudHlwZSA9PSBTTUlfVFlQRSkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBtYXAgPSBz bWlfY29tbW9uOw0KPiA+ICsgICAgICAgICAgICAgICBlbHNlDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgY29udGludWU7DQo+ID4NCj4gPiAtICAgICAgIHJldCA9IHJlZ21hcF9yZWFkX3Bv bGxfdGltZW91dChpbmZyYWNmZywgSU5GUkFfVE9QQVhJX1BST1RFQ1RTVEExLA0KPiA+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCwgISh2YWwgJiBtYXNrKSwNCj4g PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVEtfUE9MTF9ERUxBWV9V UywgTVRLX1BPTExfVElNRU9VVCk7DQo+ID4gKyAgICAgICAgICAgICAgIHJldCA9IGNsZWFyX2J1 c19wcm90ZWN0aW9uKG1hcCwgJmJwKTsNCj4gPg0KPiA+IC0gICAgICAgcmV0dXJuIHJldDsNCj4g PiArICAgICAgICAgICAgICAgaWYgKHJldCkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gcmV0Ow0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIHJldHVybiAwOw0K PiA+ICB9DQo+ID4NCj4gPiAgc3RhdGljIGludCBzY3BzeXNfcG93ZXJfb24oc3RydWN0IGdlbmVy aWNfcG1fZG9tYWluICpnZW5wZCkNCj4gPiBAQCAtNDMwLDggKzQ3OCw3IEBAIHN0YXRpYyBpbnQg aW5pdF9iYXNpY19jbGtzKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHN0cnVjdCBjbGsg KipjbGssDQo+ID4NCj4gPiAgc3RhdGljIHN0cnVjdCBzY3AgKmluaXRfc2NwKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Ry dWN0IHNjcF9kb21haW5fZGF0YSAqc2NwX2RvbWFpbl9kYXRhLCBpbnQgbnVtLA0KPiA+IC0gICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzY3BfY3RybF9yZWcgKnNjcF9jdHJsX3Jl ZywNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBib29sIGJ1c19wcm90X3JlZ191cGRhdGUp DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNjcF9jdHJsX3JlZyAq c2NwX2N0cmxfcmVnKQ0KPiA+ICB7DQo+ID4gICAgICAgICBzdHJ1Y3QgZ2VucGRfb25lY2VsbF9k YXRhICpwZF9kYXRhOw0KPiA+ICAgICAgICAgc3RydWN0IHJlc291cmNlICpyZXM7DQo+ID4gQEAg LTQ0NSw4ICs0OTIsNiBAQCBzdGF0aWMgc3RydWN0IHNjcCAqaW5pdF9zY3Aoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldiwNCj4gPiAgICAgICAgIHNjcC0+Y3RybF9yZWcucHdyX3N0YV9vZmZz ID0gc2NwX2N0cmxfcmVnLT5wd3Jfc3RhX29mZnM7DQo+ID4gICAgICAgICBzY3AtPmN0cmxfcmVn LnB3cl9zdGEybmRfb2ZmcyA9IHNjcF9jdHJsX3JlZy0+cHdyX3N0YTJuZF9vZmZzOw0KPiA+DQo+ ID4gLSAgICAgICBzY3AtPmJ1c19wcm90X3JlZ191cGRhdGUgPSBidXNfcHJvdF9yZWdfdXBkYXRl Ow0KPiA+IC0NCj4gPiAgICAgICAgIHNjcC0+ZGV2ID0gJnBkZXYtPmRldjsNCj4gPg0KPiA+ICAg ICAgICAgcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAw KTsNCj4gPiBAQCAtNDc0LDYgKzUxOSwxNyBAQCBzdGF0aWMgc3RydWN0IHNjcCAqaW5pdF9zY3Ao c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJu IEVSUl9DQVNUKHNjcC0+aW5mcmFjZmcpOw0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4gKyAgICAg ICBzY3AtPnNtaV9jb21tb24gPSBzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlKHBkZXYt PmRldi5vZl9ub2RlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICJzbWlfY29tbSIpOw0K PiANCj4gSG1tLCBpcyB0aGlzIHByb3BlcnR5IGRvY3VtZW50ZWQ/IEkgY291bGRuJ3QgZmluZCBp dC4NCj4gDQoNClRoYW5rcywgSSdsbCBhZGQgaW4gdGhlIGR0LWJpbmRpbmcgZG9jdW1lbnQgaW4g UEFUQ0ggMDIuDQoNCj4gPiArDQo+ID4gKyAgICAgICBpZiAoc2NwLT5zbWlfY29tbW9uID09IEVS Ul9QVFIoLUVOT0RFVikpIHsNCj4gPiArICAgICAgICAgICAgICAgc2NwLT5zbWlfY29tbW9uID0g TlVMTDsNCj4gPiArICAgICAgIH0gZWxzZSBpZiAoSVNfRVJSKHNjcC0+c21pX2NvbW1vbikpIHsN Cj4gPiArICAgICAgICAgICAgICAgZGV2X2VycigmcGRldi0+ZGV2LCAiQ2Fubm90IGZpbmQgc21p X2NvbW1vbiBjb250cm9sbGVyOiAlbGRcbiIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQVFJfRVJSKHNjcC0+c21pX2NvbW1vbikpOw0KPiA+ICsgICAgICAgICAgICAgICBy ZXR1cm4gRVJSX0NBU1Qoc2NwLT5zbWlfY29tbW9uKTsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ ID4gICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsNCj4gPiAgICAgICAgICAgICAg ICAgc3RydWN0IHNjcF9kb21haW4gKnNjcGQgPSAmc2NwLT5kb21haW5zW2ldOw0KPiA+ICAgICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc2NwX2RvbWFpbl9kYXRhICpkYXRhID0gJnNjcF9kb21h aW5fZGF0YVtpXTsNCj4gPiBAQCAtNTU2LDggKzYxMiwxMSBAQCBzdGF0aWMgdm9pZCBtdGtfcmVn aXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KPiA+ICAg ICAgICAgICAgICAgICAubmFtZSA9ICJjb25uIiwNCj4gPiAgICAgICAgICAgICAgICAgLnN0YV9t YXNrID0gUFdSX1NUQVRVU19DT05OLA0KPiA+ICAgICAgICAgICAgICAgICAuY3RsX29mZnMgPSBT UE1fQ09OTl9QV1JfQ09OLA0KPiA+IC0gICAgICAgICAgICAgICAuYnVzX3Byb3RfbWFzayA9IE1U MjcwMV9UT1BfQVhJX1BST1RfRU5fQ09OTl9NIHwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fUywNCj4gPiArICAgICAgICAg ICAgICAgLmJwX3RhYmxlID0gew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIEJVU19QUk9U KElGUl9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fTSB8DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fUyksDQo+ ID4gKyAgICAgICAgICAgICAgIH0sDQo+ID4gICAgICAgICAgICAgICAgIC5jYXBzID0gTVRLX1ND UERfQUNUSVZFX1dBS0VVUCwNCj4gPiAgICAgICAgIH0sDQo+ID4gICAgICAgICBbTVQyNzAxX1BP V0VSX0RPTUFJTl9ESVNQXSA9IHsNCj4gPiBAQCAtNTY2LDcgKzYyNSwxMCBAQCBzdGF0aWMgdm9p ZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 LA0KPiA+ICAgICAgICAgICAgICAgICAuY3RsX29mZnMgPSBTUE1fRElTX1BXUl9DT04sDQo+ID4g ICAgICAgICAgICAgICAgIC5zcmFtX3Bkbl9iaXRzID0gR0VOTUFTSygxMSwgOCksDQo+ID4gICAg ICAgICAgICAgICAgIC5iYXNpY19jbGtfbmFtZSA9IHsibW0ifSwNCj4gPiAtICAgICAgICAgICAg ICAgLmJ1c19wcm90X21hc2sgPSBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX01NX00wLA0KPiA+ICsg ICAgICAgICAgICAgICAuYnBfdGFibGUgPSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg QlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE1UMjcwMV9UT1BfQVhJX1BST1RfRU5fTU1fTTApLA0KPiA+ICsg ICAgICAgICAgICAgICB9LA0KPiA+ICAgICAgICAgICAgICAgICAuY2FwcyA9IE1US19TQ1BEX0FD VElWRV9XQUtFVVAsDQo+ID4gICAgICAgICB9LA0KPiA+ICAgICAgICAgW01UMjcwMV9QT1dFUl9E T01BSU5fTUZHXSA9IHsNCj4gPiBAQCAtNzAxLDcgKzc2MywxMCBAQCBzdGF0aWMgdm9pZCBtdGtf cmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KPiA+ ICAgICAgICAgICAgICAgICAuc3JhbV9wZG5fYml0cyA9IEdFTk1BU0soOCwgOCksDQo+ID4gICAg ICAgICAgICAgICAgIC5zcmFtX3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMTYsIDE2KSwNCj4gPiAg ICAgICAgICAgICAgICAgLmJhc2ljX2Nsa19uYW1lID0geyJtZmcifSwNCj4gPiAtICAgICAgICAg ICAgICAgLmJ1c19wcm90X21hc2sgPSBCSVQoMTQpIHwgQklUKDIxKSB8IEJJVCgyMyksDQo+ID4g KyAgICAgICAgICAgICAgIC5icF90YWJsZSA9IHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICBCVVNfUFJPVChJRlJfVFlQRSwgMHgyNjAsIDB4MjY0LCAweDIyMCwgMHgyMjgsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCSVQoMTQpIHwgQklUKDIxKSB8IEJJVCgyMykp LA0KPiA+ICsgICAgICAgICAgICAgICB9LA0KPiA+ICAgICAgICAgICAgICAgICAuY2FwcyA9IE1U S19TQ1BEX0FDVElWRV9XQUtFVVAsDQo+ID4gICAgICAgICB9LA0KPiA+ICAgICAgICAgW01UMjcx Ml9QT1dFUl9ET01BSU5fTUZHX1NDMV0gPSB7DQo+ID4gQEAgLTc3Myw3ICs4MzgsMTAgQEAgc3Rh dGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldiwNCj4gPiAgICAgICAgICAgICAgICAgLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDgs IDgpLA0KPiA+ICAgICAgICAgICAgICAgICAuc3JhbV9wZG5fYWNrX2JpdHMgPSBHRU5NQVNLKDEy LCAxMiksDQo+ID4gICAgICAgICAgICAgICAgIC5iYXNpY19jbGtfbmFtZSA9IHsibW0ifSwNCj4g PiAtICAgICAgICAgICAgICAgLmJ1c19wcm90X21hc2sgPSAoQklUKDEpIHwgQklUKDIpKSwNCj4g PiArICAgICAgICAgICAgICAgLmJwX3RhYmxlID0gew0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgIEJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCSVQoMSkgfCBCSVQoMikpLA0KPiA+ICsgICAgICAgICAg ICAgICB9LA0KPiA+ICAgICAgICAgfSwNCj4gPiAgICAgICAgIFtNVDY3OTdfUE9XRVJfRE9NQUlO X0FVRElPXSA9IHsNCj4gPiAgICAgICAgICAgICAgICAgLm5hbWUgPSAiYXVkaW8iLA0KPiA+IEBA IC04MjAsNyArODg4LDEwIEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5z KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQo+ID4gICAgICAgICAgICAgICAgIC5jdGxf b2ZmcyA9IFNQTV9FVEhTWVNfUFdSX0NPTiwNCj4gPiAgICAgICAgICAgICAgICAgLnNyYW1fcGRu X2JpdHMgPSBHRU5NQVNLKDExLCA4KSwNCj4gPiAgICAgICAgICAgICAgICAgLnNyYW1fcGRuX2Fj a19iaXRzID0gR0VOTUFTSygxNSwgMTIpLA0KPiA+IC0gICAgICAgICAgICAgICAuYnVzX3Byb3Rf bWFzayA9IE1UNzYyMl9UT1BfQVhJX1BST1RfRU5fRVRIU1lTLA0KPiA+ICsgICAgICAgICAgICAg ICAuYnBfdGFibGUgPSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgQlVTX1BST1QoSUZS X1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE1UNzYyMl9UT1BfQVhJX1BST1RfRU5fRVRIU1lTKSwNCj4gPiArICAgICAgICAgICAg ICAgfSwNCj4gPiAgICAgICAgICAgICAgICAgLmNhcHMgPSBNVEtfU0NQRF9BQ1RJVkVfV0FLRVVQ LA0KPiA+ICAgICAgICAgfSwNCj4gPiAgICAgICAgIFtNVDc2MjJfUE9XRVJfRE9NQUlOX0hJRjBd ID0gew0KPiA+IEBAIC04MzAsNyArOTAxLDEwIEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9w b3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQo+ID4gICAgICAgICAg ICAgICAgIC5zcmFtX3Bkbl9iaXRzID0gR0VOTUFTSygxMSwgOCksDQo+ID4gICAgICAgICAgICAg ICAgIC5zcmFtX3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMTUsIDEyKSwNCj4gPiAgICAgICAgICAg ICAgICAgLmJhc2ljX2Nsa19uYW1lID0geyJoaWZfc2VsIn0sDQo+ID4gLSAgICAgICAgICAgICAg IC5idXNfcHJvdF9tYXNrID0gTVQ3NjIyX1RPUF9BWElfUFJPVF9FTl9ISUYwLA0KPiA+ICsgICAg ICAgICAgICAgICAuYnBfdGFibGUgPSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgQlVT X1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE1UNzYyMl9UT1BfQVhJX1BST1RfRU5fSElGMCksDQo+ID4gKyAgICAg ICAgICAgICAgIH0sDQo+ID4gICAgICAgICAgICAgICAgIC5jYXBzID0gTVRLX1NDUERfQUNUSVZF X1dBS0VVUCwNCj4gPiAgICAgICAgIH0sDQo+ID4gICAgICAgICBbTVQ3NjIyX1BPV0VSX0RPTUFJ Tl9ISUYxXSA9IHsNCj4gPiBAQCAtODQwLDcgKzkxNCwxMCBAQCBzdGF0aWMgdm9pZCBtdGtfcmVn aXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KPiA+ICAg ICAgICAgICAgICAgICAuc3JhbV9wZG5fYml0cyA9IEdFTk1BU0soMTEsIDgpLA0KPiA+ICAgICAg ICAgICAgICAgICAuc3JhbV9wZG5fYWNrX2JpdHMgPSBHRU5NQVNLKDE1LCAxMiksDQo+ID4gICAg ICAgICAgICAgICAgIC5iYXNpY19jbGtfbmFtZSA9IHsiaGlmX3NlbCJ9LA0KPiA+IC0gICAgICAg ICAgICAgICAuYnVzX3Byb3RfbWFzayA9IE1UNzYyMl9UT1BfQVhJX1BST1RfRU5fSElGMSwNCj4g PiArICAgICAgICAgICAgICAgLmJwX3RhYmxlID0gew0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgIEJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBNVDc2MjJfVE9QX0FYSV9QUk9UX0VOX0hJRjEpLA0KPiA+ ICsgICAgICAgICAgICAgICB9LA0KPiA+ICAgICAgICAgICAgICAgICAuY2FwcyA9IE1US19TQ1BE X0FDVElWRV9XQUtFVVAsDQo+ID4gICAgICAgICB9LA0KPiA+ICAgICAgICAgW01UNzYyMl9QT1dF Ul9ET01BSU5fV0JdID0gew0KPiA+IEBAIC04NDksNyArOTI2LDEwIEBAIHN0YXRpYyB2b2lkIG10 a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQo+ ID4gICAgICAgICAgICAgICAgIC5jdGxfb2ZmcyA9IFNQTV9XQl9QV1JfQ09OLA0KPiA+ICAgICAg ICAgICAgICAgICAuc3JhbV9wZG5fYml0cyA9IDAsDQo+ID4gICAgICAgICAgICAgICAgIC5zcmFt X3Bkbl9hY2tfYml0cyA9IDAsDQo+ID4gLSAgICAgICAgICAgICAgIC5idXNfcHJvdF9tYXNrID0g TVQ3NjIyX1RPUF9BWElfUFJPVF9FTl9XQiwNCj4gPiArICAgICAgICAgICAgICAgLmJwX3RhYmxl ID0gew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIEJVU19QUk9UKElGUl9UWVBFLCAwLCAw LCAweDIyMCwgMHgyMjgsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVDc2 MjJfVE9QX0FYSV9QUk9UX0VOX1dCKSwNCj4gPiArICAgICAgICAgICAgICAgfSwNCj4gPiAgICAg ICAgICAgICAgICAgLmNhcHMgPSBNVEtfU0NQRF9BQ1RJVkVfV0FLRVVQIHwgTVRLX1NDUERfRldB SVRfU1JBTSwNCj4gPiAgICAgICAgIH0sDQo+ID4gIH07DQo+ID4gQEAgLTg2Myw4ICs5NDMsMTEg QEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldiwNCj4gPiAgICAgICAgICAgICAgICAgLm5hbWUgPSAiY29ubiIsDQo+ID4g ICAgICAgICAgICAgICAgIC5zdGFfbWFzayA9IFBXUl9TVEFUVVNfQ09OTiwNCj4gPiAgICAgICAg ICAgICAgICAgLmN0bF9vZmZzID0gU1BNX0NPTk5fUFdSX0NPTiwNCj4gPiAtICAgICAgICAgICAg ICAgLmJ1c19wcm90X21hc2sgPSBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fTSB8DQo+ID4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9D T05OX1MsDQo+ID4gKyAgICAgICAgICAgICAgIC5icF90YWJsZSA9IHsNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICBCVVNfUFJPVChJRlJfVFlQRSwgMCwgMCwgMHgyMjAsIDB4MjI4LA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9D T05OX00gfA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVQyNzAxX1RPUF9B WElfUFJPVF9FTl9DT05OX1MpLA0KPiA+ICsgICAgICAgICAgICAgICB9LA0KPiA+ICAgICAgICAg ICAgICAgICAuY2FwcyA9IE1US19TQ1BEX0FDVElWRV9XQUtFVVAsDQo+ID4gICAgICAgICB9LA0K PiA+ICAgICAgICAgW01UNzYyM0FfUE9XRVJfRE9NQUlOX0VUSF0gPSB7DQo+ID4gQEAgLTkyOSw4 ICsxMDEyLDExIEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQo+ID4gICAgICAgICAgICAgICAgIC5zcmFtX3Bkbl9i aXRzID0gR0VOTUFTSygxMSwgOCksDQo+ID4gICAgICAgICAgICAgICAgIC5zcmFtX3Bkbl9hY2tf Yml0cyA9IEdFTk1BU0soMTIsIDEyKSwNCj4gPiAgICAgICAgICAgICAgICAgLmJhc2ljX2Nsa19u YW1lID0geyJtbSJ9LA0KPiA+IC0gICAgICAgICAgICAgICAuYnVzX3Byb3RfbWFzayA9IE1UODE3 M19UT1BfQVhJX1BST1RfRU5fTU1fTTAgfA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIE1U ODE3M19UT1BfQVhJX1BST1RfRU5fTU1fTTEsDQo+ID4gKyAgICAgICAgICAgICAgIC5icF90YWJs ZSA9IHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBCVVNfUFJPVChJRlJfVFlQRSwgMCwg MCwgMHgyMjAsIDB4MjI4LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVQ4 MTczX1RPUF9BWElfUFJPVF9FTl9NTV9NMCB8DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01NX00xKSwNCj4gPiArICAgICAgICAgICAg ICAgfSwNCj4gPiAgICAgICAgIH0sDQo+ID4gICAgICAgICBbTVQ4MTczX1BPV0VSX0RPTUFJTl9W RU5DX0xUXSA9IHsNCj4gPiAgICAgICAgICAgICAgICAgLm5hbWUgPSAidmVuY19sdCIsDQo+ID4g QEAgLTk3NiwxMCArMTA2MiwxMyBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9t YWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KPiA+ICAgICAgICAgICAgICAgICAu Y3RsX29mZnMgPSBTUE1fTUZHX1BXUl9DT04sDQo+ID4gICAgICAgICAgICAgICAgIC5zcmFtX3Bk bl9iaXRzID0gR0VOTUFTSygxMywgOCksDQo+ID4gICAgICAgICAgICAgICAgIC5zcmFtX3Bkbl9h Y2tfYml0cyA9IEdFTk1BU0soMjEsIDE2KSwNCj4gPiAtICAgICAgICAgICAgICAgLmJ1c19wcm90 X21hc2sgPSBNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01GR19TIHwNCj4gPiAtICAgICAgICAgICAg ICAgICAgICAgICBNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01GR19NMCB8DQo+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfTTEgfA0KPiA+IC0gICAg ICAgICAgICAgICAgICAgICAgIE1UODE3M19UT1BfQVhJX1BST1RfRU5fTUZHX1NOT09QX09VVCwN Cj4gPiArICAgICAgICAgICAgICAgLmJwX3RhYmxlID0gew0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIEJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgsDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01GR19TIHwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UODE3M19UT1BfQVhJX1BST1Rf RU5fTUZHX00wIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UODE3M19U T1BfQVhJX1BST1RfRU5fTUZHX00xIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1UODE3M19UT1BfQVhJX1BST1RfRU5fTUZHX1NOT09QX09VVCksDQo+ID4gKyAgICAgICAg ICAgICAgIH0sDQo+ID4gICAgICAgICB9LA0KPiA+ICB9Ow0KPiA+DQo+ID4gQEAgLTk5NSw3ICsx MDg0LDYgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldiwNCj4gPiAgICAgICAgICAgICAgICAgLnB3cl9zdGFfb2ZmcyA9 IFNQTV9QV1JfU1RBVFVTLA0KPiA+ICAgICAgICAgICAgICAgICAucHdyX3N0YTJuZF9vZmZzID0g U1BNX1BXUl9TVEFUVVNfMk5EDQo+ID4gICAgICAgICB9LA0KPiA+IC0gICAgICAgLmJ1c19wcm90 X3JlZ191cGRhdGUgPSB0cnVlLA0KPiA+ICB9Ow0KPiA+DQo+ID4gIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgc2NwX3NvY19kYXRhIG10MjcxMl9kYXRhID0gew0KPiA+IEBAIC0xMDA3LDcgKzEwOTUsNiBA QCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2LA0KPiA+ICAgICAgICAgICAgICAgICAucHdyX3N0YV9vZmZzID0gU1BNX1BX Ul9TVEFUVVMsDQo+ID4gICAgICAgICAgICAgICAgIC5wd3Jfc3RhMm5kX29mZnMgPSBTUE1fUFdS X1NUQVRVU18yTkQNCj4gPiAgICAgICAgIH0sDQo+ID4gLSAgICAgICAuYnVzX3Byb3RfcmVnX3Vw ZGF0ZSA9IGZhbHNlLA0KPiA+ICB9Ow0KPiA+DQo+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Nw X3NvY19kYXRhIG10Njc5N19kYXRhID0gew0KPiA+IEBAIC0xMDE5LDcgKzExMDYsNiBAQCBzdGF0 aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2LA0KPiA+ICAgICAgICAgICAgICAgICAucHdyX3N0YV9vZmZzID0gU1BNX1BXUl9TVEFU VVNfTVQ2Nzk3LA0KPiA+ICAgICAgICAgICAgICAgICAucHdyX3N0YTJuZF9vZmZzID0gU1BNX1BX Ul9TVEFUVVNfMk5EX01UNjc5Nw0KPiA+ICAgICAgICAgfSwNCj4gPiAtICAgICAgIC5idXNfcHJv dF9yZWdfdXBkYXRlID0gdHJ1ZSwNCj4gPiAgfTsNCj4gPg0KPiA+ICBzdGF0aWMgY29uc3Qgc3Ry dWN0IHNjcF9zb2NfZGF0YSBtdDc2MjJfZGF0YSA9IHsNCj4gPiBAQCAtMTAyOSw3ICsxMTE1LDYg QEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldiwNCj4gPiAgICAgICAgICAgICAgICAgLnB3cl9zdGFfb2ZmcyA9IFNQTV9Q V1JfU1RBVFVTLA0KPiA+ICAgICAgICAgICAgICAgICAucHdyX3N0YTJuZF9vZmZzID0gU1BNX1BX Ul9TVEFUVVNfMk5EDQo+ID4gICAgICAgICB9LA0KPiA+IC0gICAgICAgLmJ1c19wcm90X3JlZ191 cGRhdGUgPSB0cnVlLA0KPiA+ICB9Ow0KPiA+DQo+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Nw X3NvY19kYXRhIG10NzYyM2FfZGF0YSA9IHsNCj4gPiBAQCAtMTAzOSw3ICsxMTI0LDYgQEAgc3Rh dGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldiwNCj4gPiAgICAgICAgICAgICAgICAgLnB3cl9zdGFfb2ZmcyA9IFNQTV9QV1JfU1RB VFVTLA0KPiA+ICAgICAgICAgICAgICAgICAucHdyX3N0YTJuZF9vZmZzID0gU1BNX1BXUl9TVEFU VVNfMk5EDQo+ID4gICAgICAgICB9LA0KPiA+IC0gICAgICAgLmJ1c19wcm90X3JlZ191cGRhdGUg PSB0cnVlLA0KPiA+ICB9Ow0KPiA+DQo+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2NwX3NvY19k YXRhIG10ODE3M19kYXRhID0gew0KPiA+IEBAIC0xMDUxLDcgKzExMzUsNiBAQCBzdGF0aWMgdm9p ZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 LA0KPiA+ICAgICAgICAgICAgICAgICAucHdyX3N0YV9vZmZzID0gU1BNX1BXUl9TVEFUVVMsDQo+ ID4gICAgICAgICAgICAgICAgIC5wd3Jfc3RhMm5kX29mZnMgPSBTUE1fUFdSX1NUQVRVU18yTkQN Cj4gPiAgICAgICAgIH0sDQo+ID4gLSAgICAgICAuYnVzX3Byb3RfcmVnX3VwZGF0ZSA9IHRydWUs DQo+ID4gIH07DQo+ID4NCj4gPiAgLyoNCj4gPiBAQCAtMTA5Miw4ICsxMTc1LDcgQEAgc3RhdGlj IGludCBzY3BzeXNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPg0KPiA+ ICAgICAgICAgc29jID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOw0KPiA+ DQo+ID4gLSAgICAgICBzY3AgPSBpbml0X3NjcChwZGV2LCBzb2MtPmRvbWFpbnMsIHNvYy0+bnVt X2RvbWFpbnMsICZzb2MtPnJlZ3MsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgc29jLT5i dXNfcHJvdF9yZWdfdXBkYXRlKTsNCj4gPiArICAgICAgIHNjcCA9IGluaXRfc2NwKHBkZXYsIHNv Yy0+ZG9tYWlucywgc29jLT5udW1fZG9tYWlucywgJnNvYy0+cmVncyk7DQo+ID4gICAgICAgICBp ZiAoSVNfRVJSKHNjcCkpDQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKHNjcCk7 DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvc2Nwc3lzLmggYi9k cml2ZXJzL3NvYy9tZWRpYXRlay9zY3BzeXMuaA0KPiA+IGluZGV4IGFkMjU1OWIuLjQ1YmM2NDQg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvc2Nwc3lzLmgNCj4gPiArKysg Yi9kcml2ZXJzL3NvYy9tZWRpYXRlay9zY3BzeXMuaA0KPiA+IEBAIC0yLDEwICsyLDI4IEBADQo+ ID4gICNpZm5kZWYgX19TT0NfTUVESUFURUtfU0NQU1lTX0gNCj4gPiAgI2RlZmluZSBfX1NPQ19N RURJQVRFS19TQ1BTWVNfSA0KPiA+DQo+ID4gLSNkZWZpbmUgSU5GUkFfVE9QQVhJX1BST1RFQ1RF TiAgICAgICAgIDB4MDIyMA0KPiA+IC0jZGVmaW5lIElORlJBX1RPUEFYSV9QUk9URUNUU1RBMSAg ICAgICAweDAyMjgNCj4gPiAtI2RlZmluZSBJTkZSQV9UT1BBWElfUFJPVEVDVEVOX1NFVCAgICAg MHgwMjYwDQo+ID4gLSNkZWZpbmUgSU5GUkFfVE9QQVhJX1BST1RFQ1RFTl9DTFIgICAgIDB4MDI2 NA0KPiA+ICsjZGVmaW5lIE1BWF9TVEVQUyAgICAgIDQNCj4gPiArDQo+ID4gKyNkZWZpbmUgX0JV U19QUk9UKF90eXBlLCBfc2V0X29mcywgX2Nscl9vZnMsICAgICAgICAgICAgICAgICAgIFwNCj4g PiArICAgICAgICAgICAgICAgX2VuX29mcywgX3N0YV9vZnMsIF9tYXNrLCBfaWdub3JlX2Nscl9h Y2spIHsgICAgXA0KPiA+ICsgICAgICAgICAgICAgICAudHlwZSA9IF90eXBlLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKyAgICAgICAgICAgICAgIC5zZXRfb2ZzID0g X3NldF9vZnMsICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiArICAgICAgICAgICAg ICAgLmNscl9vZnMgPSBfY2xyX29mcywgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ ICsgICAgICAgICAgICAgICAuZW5fb2ZzID0gX2VuX29mcywgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQo+ID4gKyAgICAgICAgICAgICAgIC5zdGFfb2ZzID0gX3N0YV9vZnMsICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiArICAgICAgICAgICAgICAgLm1hc2sgPSBfbWFz aywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICsgICAgICAgICAgICAg ICAuaWdub3JlX2Nscl9hY2sgPSBfaWdub3JlX2Nscl9hY2ssICAgICAgICAgICAgICBcDQo+ID4g KyAgICAgICB9DQo+ID4gKw0KPiA+ICsjZGVmaW5lIEJVU19QUk9UKF90eXBlLCBfc2V0X29mcywg X2Nscl9vZnMsICAgICAgICAgICAgXA0KPiA+ICsgICAgICAgICAgICAgICBfZW5fb2ZzLCBfc3Rh X29mcywgX21hc2spICAgICAgICAgICAgICAgXA0KPiA+ICsgICAgICAgICAgICAgICBfQlVTX1BS T1QoX3R5cGUsIF9zZXRfb2ZzLCBfY2xyX29mcywgICAgXA0KPiA+ICsgICAgICAgICAgICAgICBf ZW5fb2ZzLCBfc3RhX29mcywgX21hc2ssIGZhbHNlKQ0KPiA+ICsNCj4gPiArI2RlZmluZSBCVVNf UFJPVF9JR04oX3R5cGUsIF9zZXRfb2ZzLCBfY2xyX29mcywgICAgICAgIFwNCj4gPiArICAgICAg ICAgICAgICAgX2VuX29mcywgX3N0YV9vZnMsIF9tYXNrKSAgICAgICAgICAgICAgIFwNCj4gPiAr ICAgICAgICAgICAgICAgX0JVU19QUk9UKF90eXBlLCBfc2V0X29mcywgX2Nscl9vZnMsICAgIFwN Cj4gPiArICAgICAgICAgICAgICAgX2VuX29mcywgX3N0YV9vZnMsIF9tYXNrLCB0cnVlKQ0KPiA+ DQo+ID4gICNkZWZpbmUgTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9NTV9NMCAgICAgICAgICAgQklU KDEpDQo+ID4gICNkZWZpbmUgTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9DT05OX00gICAgICAgICAg QklUKDIpDQo+ID4gQEAgLTI1LDQgKzQzLDIwIEBADQo+ID4gICNkZWZpbmUgTVQ4MTczX1RPUF9B WElfUFJPVF9FTl9NRkdfTTEgICAgICAgICAgQklUKDIyKQ0KPiA+ICAjZGVmaW5lIE1UODE3M19U T1BfQVhJX1BST1RfRU5fTUZHX1NOT09QX09VVCAgIEJJVCgyMykNCj4gPg0KPiA+ICtlbnVtIHJl Z21hcF90eXBlIHsNCj4gPiArICAgICAgIElOVkFMSURfVFlQRSA9IDAsDQo+IA0KPiBJIGRpZG4n dCBzZWUgYW55IHVzZSBvZiB0aGF0IHR5cGUsIGlzIHRoaXMgYW4gb3B0aW9uPw0KPiANCg0KQW5z d2VyZWQgYWJvdmUuDQoNCj4gDQo+ID4gKyAgICAgICBJRlJfVFlQRSwNCj4gPiArICAgICAgIFNN SV9UWVBFLA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RydWN0IGJ1c19wcm90IHsNCj4gPiArICAg ICAgIGVudW0gcmVnbWFwX3R5cGUgdHlwZTsNCj4gPiArICAgICAgIHUzMiBzZXRfb2ZzOw0KPiA+ ICsgICAgICAgdTMyIGNscl9vZnM7DQo+ID4gKyAgICAgICB1MzIgZW5fb2ZzOw0KPiA+ICsgICAg ICAgdTMyIHN0YV9vZnM7DQo+ID4gKyAgICAgICB1MzIgbWFzazsNCj4gPiArICAgICAgIGJvb2wg aWdub3JlX2Nscl9hY2s7DQo+ID4gK307DQo+ID4gKw0KPiA+ICAjZW5kaWYgLyogX19TT0NfTUVE SUFURUtfU0NQU1lTX0ggKi8NCj4gPiAtLQ0KPiA+IDEuOC4xLjEuZGlydHkNCj4gPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+IExpbnV4LW1lZGlh dGVrIG1haWxpbmcgbGlzdA0KPiA+IExpbnV4LW1lZGlhdGVrQGxpc3RzLmluZnJhZGVhZC5vcmcN Cj4gPiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW1l ZGlhdGVrDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXw0KPiBMaW51eC1tZWRpYXRlayBtYWlsaW5nIGxpc3QNCj4gTGludXgtbWVkaWF0ZWtAbGlz dHMuaW5mcmFkZWFkLm9yZw0KPiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LW1lZGlhdGVrDQoNCg0K