Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp1133979ybg; Tue, 2 Jun 2020 02:10:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwpRDvsoFt/m23NdiGukCROZ7V8V+ZDhMH6qxj2WywpoeyBgScrhEXBtIjuLHWD1AxHgNH2 X-Received: by 2002:a17:906:33c9:: with SMTP id w9mr22118602eja.284.1591089028168; Tue, 02 Jun 2020 02:10:28 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1591089028; cv=pass; d=google.com; s=arc-20160816; b=mMC2jNlyeAp/aX9S2IfXYpo7eij6o5Mr9vdYEDeZSnQBo+rksv0/cJ+FAdg044OaXU mD9oSSIPc1htlUk57U74TM/AvLRGK1qHl3RG0BoDdHlgaZfEWUv6iIHCrK1COgqRDHfT aInR6zvecjDLqH2PsK7l/OS0Oy8qbR+aj5DthNJXHSir8gpKqv+4zLKfo7htPBz3c9OR UL0ww3fghmxot6M1krpfdgWD/5VhdkdO2JuAuQ1h7Zn89OSS5JkRO3HfVlFqtMP6Mw30 92PAexfgzJPDG1kampxXSgHtPSntcAFB5lIO/Wn0x7ycfdT1K9GeYP3Rs6qVOcADAjr4 AT8A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=7hHyZgX9yqfL5SQLpLMr9RnuWKvsvL4D7ds7Fol286A=; b=Lz6xTrqsxYpBjISMJODU06C72lxQdTSvWO8QE8tDkd9DjxjTE2Cjv31+DXIlhzqKPw 2uC/U0SFA77BVQpk8UX6N2iC12U38QRaS3UjH6QGsOGMi7sbP7teYuUv7CxZn1zH9zeK pz9Qiu7lkOtJBZwrPiQ0Bbj9VGJ1KQwo+UvHa8vqyzxaferMJKOSF3Cz1uyYOQPTW1gA AL8r6SIWR0EfwDObxvbt3gA6EJqYrmJwZ9iG+CJfthSCUuyej+Hg2uLERJsD60jeS8lJ pkjRgKZh3zOX/l8Lb2GDt1FaKbH14DvgVJzdUVEthk6yWICvT9Eh7km6FoESlfqM3Ln2 hJLQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=slahIG0z; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.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=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id kq13si1121412ejb.276.2020.06.02.02.10.04; Tue, 02 Jun 2020 02:10:28 -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=@nxp.com header.s=selector2 header.b=slahIG0z; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.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=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726728AbgFBJIF (ORCPT + 99 others); Tue, 2 Jun 2020 05:08:05 -0400 Received: from mail-vi1eur05on2066.outbound.protection.outlook.com ([40.107.21.66]:51745 "EHLO EUR05-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726217AbgFBJID (ORCPT ); Tue, 2 Jun 2020 05:08:03 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BKCIqap1KkH+ZFP+2DMMMd8KJmIx6ge1I+52GI7KRYmNlAj7mkwVEwHQadTkaRF5QFWikoi8S/u2kGtpwkGlFY11Wb3uqBRHbJm8FvIAuJ3ZUY12YzFf/0ncRqdcATOEZ3L6SCEGJO3BxruEjPT+M3BTtkfNK5cNfwn/qZS/DcN9V+ftn3U1wIpK7b9oTnU0HDnzFBTyPlukkp3gL2tDYiRx6KCTRE4h4qxU/xsrC64RNnjdGtzfDsi+T5yEC+iCnmNA/PtjJMJKgE1/s/amX+L+YSwKnIUcHH/7hOKFkcuaZ68wH9YRmH6jHDmT05Ui1R0gBy7Q73J9VQa0rXnwhA== 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=7hHyZgX9yqfL5SQLpLMr9RnuWKvsvL4D7ds7Fol286A=; b=VbS95O1+rRUFcSMUQpFrvHlL4LbtS/7DsP/g1WxZSfCqSntr6BusNrrLPZMQtgvPRQmuXpAiyHZOx/1d1THNb4pCJ5g2ziOvh/MNpOkEVCvCO+YxrDKjCwE+p1/onRPMHF+c+maBEI35RIrlNvObblJoS0C2LUGvXkeedNAQRZKyhKopNJha3NII50500J+rAazXuTOT+ra6RvQyyPBlXQaVRyCJfsHn38/wGhMdRaI6lczcyZaFy17ZxocR9oHrNLtWQRlXnLfC5UNCyA23cTP4D7J53eJE/PHOi3ykLAxdmC5iqX8eZ34MwMpxj4kBrviAwpNbwzvaxnFsHoUTnw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7hHyZgX9yqfL5SQLpLMr9RnuWKvsvL4D7ds7Fol286A=; b=slahIG0zhpfzcfiXr/ZOZ0mTS4hb4aawFAV58AfP4OugZj0vbGvi/TXVGo86+uwoBdiRFyin57Q5cBc7idpu5Gmk/vRWfma+lCSPMuw2XyZ1Xb6NCR2j8v93qYamKDTfrnM4IIxYoJ/LvX2UbaKy7iSMte/xx2oUOzrW6q5jMLo= Received: from AM6PR04MB4966.eurprd04.prod.outlook.com (2603:10a6:20b:2::14) by AM6PR04MB4853.eurprd04.prod.outlook.com (2603:10a6:20b:8::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.22; Tue, 2 Jun 2020 09:07:57 +0000 Received: from AM6PR04MB4966.eurprd04.prod.outlook.com ([fe80::3c6c:a0e9:9a4e:c51d]) by AM6PR04MB4966.eurprd04.prod.outlook.com ([fe80::3c6c:a0e9:9a4e:c51d%7]) with mapi id 15.20.3045.024; Tue, 2 Jun 2020 09:07:57 +0000 From: Aisheng Dong To: Peng Fan , "shawnguo@kernel.org" , "s.hauer@pengutronix.de" CC: "kernel@pengutronix.de" , "festevam@gmail.com" , "linux@rempel-privat.de" , Leonard Crestez , Daniel Baluta , Joakim Zhang , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , dl-linux-imx Subject: RE: [PATCH 2/4] firmware: imx: add resource management api Thread-Topic: [PATCH 2/4] firmware: imx: add resource management api Thread-Index: AQHWGT38Z8g88FkqQ0uX8uLlRjqzhqiGeivAgAAPRACAADPS4IAAuu8AgAANZXCAPGt2AIAA6fVAgAAlOICAACLbYIAADqyAgAATqFA= Date: Tue, 2 Jun 2020 09:07:57 +0000 Message-ID: References: <1587625174-32668-1-git-send-email-peng.fan@nxp.com> <1587625174-32668-3-git-send-email-peng.fan@nxp.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=none action=none header.from=nxp.com; x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 38b5b06e-e869-41e8-56fc-08d806d47154 x-ms-traffictypediagnostic: AM6PR04MB4853: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0422860ED4 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: H5axfk+la4E/Aq+uOK356ifztwvKgYeHhfVr/mvawDH6Pge4yPEsMDlq5TACOxSej1oVBiSN2kJ5N/lN5bQZtwIT3sbPpB5ocYDLeVUde4+k6ReNALsNwf12eYRsQhMsbFLiVx4btUE9N514K2IEZ64hLWxZAY7RTahTgvgScfsr83s8w5Dq5NEsmFxZaT4NiSnasbYpnQ0/5Q0xp32OaajhLfgBAd0XOREC6jX/B31g6avcIOqidPz6G8HhW2NQa7zedSk74jGoobt46UvLJzOubbqIHP5XJiBW/1TDW0+7zM8B0y7qpc7cyhWisq0q x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4966.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(136003)(39860400002)(396003)(366004)(346002)(376002)(5660300002)(44832011)(52536014)(7696005)(66476007)(66556008)(64756008)(66446008)(478600001)(71200400001)(66946007)(76116006)(4326008)(6506007)(33656002)(83380400001)(186003)(26005)(8936002)(316002)(54906003)(110136005)(8676002)(2906002)(9686003)(55016002)(86362001)(30864003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: mt/o53RbTAVKkFEUQSzNZC9XrkdiwhX1QsHvb8eECr2jbxnJolBWwhD6pzXmC4uu5QwmkqtwEOnC4Pi3pyFW+Sc3SaxRkfS359kCcUYr6ThsRrQAtj4701fsa71x7Z7fnx1Pn7kysxGyQo2dgE+qfpoW7ohh8TXQIIXpiGIp1/42fliqM6ofuKLDJh+IU8PtznrA5xS6uH4/DGJX7cC2bHjAU0YDDnTMD3TsXUErurhy9r1DWEOlud0IwxjrfrsiPQKHWfv2MJKVsxeI426S3ZBCxFoIm/qv1anA7g8i4XZJlSyKGrMOmunguFmKUrne/2vA/H7UgmXvAYVoOg1SGODEjAnf3iNi7qVQ0v85vkA1EGc0qc6Lg5hUKAj3MoLlOEEy+P1H3f9ZBTQ8gGFtYFXx7sPaLXFlSVDU8K3bK62/52YZx2+assWZwxVa3annE+4V8ErfUYGANcPYQXQ7vvYCcJwgrInaIWPnun9B2ak6PhQImJq8oNxhfjnhqbmA Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 38b5b06e-e869-41e8-56fc-08d806d47154 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jun 2020 09:07:57.5342 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 9IYUpXI9TPctr48kXn7H7RlIw68GAPVvIF+4VAzYNuXM0Wyvp6Jb+fJze94WXfT6qxUQOAiVxWqZjXN1kRTa/w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4853 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiBGcm9tOiBQZW5nIEZhbiA8cGVuZy5mYW5AbnhwLmNvbT4NCj4gU2VudDogVHVlc2RheSwgSnVu ZSAyLCAyMDIwIDM6NDggUE0NCj4gPg0KPiA+ID4gRnJvbTogUGVuZyBGYW4gPHBlbmcuZmFuQG54 cC5jb20+DQo+ID4gPiBTZW50OiBUdWVzZGF5LCBKdW5lIDIsIDIwMjAgMTI6NTEgUE0NCj4gPiA+ ID4NCj4gPiA+ID4gPiBGcm9tOiBQZW5nIEZhbiA8cGVuZy5mYW5AbnhwLmNvbT4NCj4gPiA+ID4g PiBTZW50OiBNb25kYXksIEp1bmUgMSwgMjAyMCA4OjQwIFBNDQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiBGcm9tOiBQZW5nIEZhbiA8cGVuZy5mYW5AbnhwLmNvbT4NCj4gPiA+ID4gPiA+ID4g U2VudDogRnJpZGF5LCBBcHJpbCAyNCwgMjAyMCA5OjEyIEFNDQo+ID4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gPiA+IEZyb206IFBlbmcgRmFuIDxwZW5nLmZhbkBueHAuY29tPg0KPiA+ID4g PiA+ID4gPiA+ID4gU2VudDogVGh1cnNkYXksIEFwcmlsIDIzLCAyMDIwIDY6NTcgUE0NCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiBGcm9tOiBQZW5nIEZhbiA8cGVuZy5mYW5AbnhwLmNvbT4NCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiBTZW50OiBUaHVyc2RheSwgQXByaWwgMjMsIDIwMjAgMzowMCBQTQ0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gQWRkIHJlc291cmNl IG1hbmFnZW1lbnQgQVBJLCB3aGVuIHdlIGhhdmUgbXVsdGlwbGUNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiBwYXJ0aXRpb24gcnVubmluZyB0b2dldGhlciwgcmVzb3VyY2VzIG5vdCBvd25lZCB0bw0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+IGN1cnJlbnQgcGFydGl0aW9uIHNob3VsZCBub3QgYmUNCj4g PiA+ID4gPiA+ID4gPiB1c2VkLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gUmV2aWV3ZWQtYnk6IExlb25hcmQgQ3Jlc3Rleg0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+IDxsZW9uYXJkLmNyZXN0ZXpAbnhwLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBTaWdu ZWQtb2ZmLWJ5OiBQZW5nIEZhbiA8cGVuZy5mYW5AbnhwLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gUmlnaHQgbm93IEknbSBzdGlsbCBub3QgcXVpdGUgdW5k ZXJzdGFuZCBpZiB3ZSByZWFsbHkgbmVlZCB0aGlzLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBBcyBj dXJyZW50IHJlc291cmNlIGlzIGJvdW5kIHRvIHBvd2VyIGRvbWFpbnMsIGlmIGl0J3MNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gbm90IG93bmVkIGJ5IG9uZSBzcGVjaWZpYyBTVyBleGVjdXRpb24gZW52 aXJvbm1lbnQsDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHBvd2VyIG9uIHdpbGwgYWxzbw0KPiA+ID4g PiA+IGZhaWwuDQo+ID4gPiA+ID4gPiA+ID4gPiA+IENhbiB5b3UgY2xhcmlmeSBpZiBhbnkgZXhj ZXB0aW9ucz8NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBUaGVyZSB3aWxs IGJlIGxvdHMgb2YgZmFpbHVyZXMgd2hlbiBib290IExpbnV4IGRvbXUgaWYgbm8gY2hlY2suDQo+ ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gV2hhdCBr aW5kIG9mIGZlYXR1cmVzIGRpZCB5b3UgbWVhbj8NCj4gPiA+ID4gPiA+ID4gPiBDb3VsZCB5b3Ug Y2xhcmlmeSBhIGJpdCBtb3JlPyBJJ2QgbGlrZSB0byB1bmRlcnN0YW5kIHRoaXMNCj4gPiA+ID4g PiA+ID4gPiBpc3N1ZQ0KPiA+IGJldHRlci4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g V2hlbiBzdXBwb3J0aW5nIGh5cGVydmlzb3Igd2l0aCBkdWFsIExpbnV4IHJ1bm5pbmcsIDFzdA0K PiA+ID4gPiA+ID4gPiBMaW51eCBhbmQgdGhlIDJuZCBMaW51eCB3aWxsIGhhdmUgdGhlaXIgb3du IGRlZGljYXRlZCByZXNvdXJjZXMuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IElmIG5v IHJlc291cmNlIGNoZWNrLCB0aGF0IG1lYW5zIDFzdC8ybmQgTGludXggd2lsbCByZWdpc3Rlcg0K PiA+ID4gPiA+ID4gPiBhbGwgdGhlIHJlc291cmNlcywgdGhlbiBib3RoIHdpbGwgc2VlIGZhaWwg bG9ncyB3aGVuDQo+ID4gPiA+ID4gPiA+IHJlZ2lzdGVyIHJlc291cmNlcyBub3Qgb3duZWQgdG8N Cj4gPiA+ID4gPiA+IGl0c2VsZi4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gU2FtZSB0 byBwYXJ0aXRpb25lZCBtNCBjYXNlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBXb3Vs ZCBpdCBiZSBiZXR0ZXIgd2l0aG91dCB0aGUgZmFpbHVyZSBsb2c/DQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSXMgaXQgcG93ZXIgdXAgZmFpbHVyZT8NCj4gPiA+ID4g PiA+IElmIHllcywgaXQncyBleHBlY3RlZCBiZWNhdXNlIHdlIGFjdHVhbGx5IHVzZSBwb3dlciB1 cCB0bw0KPiA+ID4gPiA+ID4gY2hlY2sgaWYgcmVzb3VyY2VzIGFyZSBvd25lZCBieSB0aGlzIHBh cnRpdGlvbi4gSXQgZnVuY3Rpb25zDQo+ID4gPiA+ID4gPiB0aGUgc2FtZSBhcyBjYWxsaW5nIHJl c291cmNlIGNoZWNrIEFQSS4NCj4gPiA+ID4gPiA+IFRoYXQncyBjdXJyZW50IGRlc2lnbi4NCj4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBPciBpdCdzIG90aGVyIGZhaWx1cmVzPyBMb2c/DQo+ID4g PiA+ID4gU29ycnkgZm9yIGxvbmcgbGF0ZSByZXBseS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFBh cnQgb2YgbXkgWEVOIERvbVUgbG9nLCB0aGVyZSBhcmUgbG90cyBvZiBmYWlsdXJlIGxvZy4gSSB0 aGluaw0KPiA+ID4gPiA+IGJldHRlciBub3QgaGF2ZSBzdWNoIGxvZ3MgYnkgYWRkIGEgcmVzb3Vy Y2Ugb3duIGNoZWNrLg0KPiA+ID4gPg0KPiA+ID4gPiBUaG9zZSBlcnJvciBsb2dzIGFyZSBpbnRl bmRlZC4NCj4gPiA+ID4gUmVzb3VyY2Ugb3duZXIgY2hlY2sgYWN0dWFsbHkgYmVoYXZlcyB0aGUg c2FtZSBhcyBwb3dlciB1cC4NCj4gPiA+DQo+ID4gPiBJZiByZXNvdXJjZSBpcyBub3Qgb3duZWQs IGl0IHdpbGwgbm90IHJlZ2lzdGVyIHRoZSBwb3dlciBkb21haW4uDQo+ID4gPg0KPiA+ID4gV2l0 aG91dCByZXNvdXJjZSBvd24gY2hlY2ssIGl0IHdpbGwgY29udGludWUgcmVnaXN0ZXIgdGhlIHBv d2VyDQo+ID4gPiBkb21haW4gYW5kIGhvb2sgaXQgaW50byBnZW5wZCBsaXN0Lg0KPiA+ID4NCj4g Pg0KPiA+IFRoYXQncyB0aGUgaW50ZW5kZWQgYmVoYXZpb3IgdG8gc2F2ZSB0aGUgcmVzb3VyY2Ug b3duZXIgY2hlY2tpbmcgYXMNCj4gPiBpdCdzIHZlcnkgdGltZSBjb3N0IHRvIHNlbmQgU0NVIGNt ZCBmb3IgZWFjaCBkb21haW4gZHVyaW5nIGJvb3RpbmcNCj4gPiB3aGljaCBiZW5lZml0cyBub3Ro aW5nIGV4Y2VwdCBub3QgZXhwb3NpbmcgdGhlbSBpbiBnZW5wZCBsaXN0Lg0KPiA+DQo+ID4gPiBJ IHByZWZlciB3ZSBub3QgZXhwb3NlIHRoZSBwb3dlciBkb21haW4gbm90IG93bmVkIHRvIGN1cnJl bnQNCj4gPiA+IHBhcnRpdGlvbiBhbmQga2VlcCB0aGUgZXJyIG1zZyBmb3IgcGVvcGxlIHRvIGVh c3kgc2VlIHdoZXJlIGl0IGdvZXMgd3JvbmcuDQo+ID4NCj4gPiBJZiB3ZSByZWFsbHkgd2FudCB0 byB0byBkbywgSSB3b25kZXIgcHJvYmFibHkgYW5vdGhlciBiZXR0ZXIgYXBwcm9hY2gNCj4gPiBp cyB0cnlpbmcgdG8gcmUtdXNlIHRoZSBwYXJ0aXRpb24gSW5mb3JtYXRpb24gYnVpbHQgYnkgYm9v dGxvYWRlciBhcw0KPiA+IHVib290IGFscmVhZHkgZGlkIHRoYXQgb25lIHRpbWUsIG5vdCBuZWNl c3NhcnkgdG8gcmUtZG8gSXQgYWdhaW4gZm9yIGtlcm5lbCBhcw0KPiBpdCdzIHRpbWUgY29zdC4N Cj4gPiBlLmcuIGludHJvZHVjZSBhIHJlc291cmNlIHBhcnRpdGlvbiBwcm9wZXJ0eSBpbiBkdCBh bmQgaW5pdGlhbGl6ZWQgYW5kDQo+ID4gcGFzc2VkIGJ5IGJvb3Rsb2FyZGVyIHRvIGtlcm5lbCB0 byB1c2UgbGF0ZXIuDQo+IA0KPiBUaGlzIHdpbGwgbm90IHdvcmsgZm9yIGh5cGVydmlzb3IgYmFz ZWQgVk0gcnVudGltZSBwYXJ0aXRpb24gY3JlYXRlIGFuZA0KPiByZXNvdXJjZSBhc3NpZ25tZW50 Lg0KPiANCg0KRm9yIFZNIGNhc2UsIGNhbid0IHdlIGRlZmluZSB0aGVtIGluIERUIGlmIGl0J3Mg c3RhdGljYWxseSBkZWZpbmVkPw0KDQo+ID4gVGhlbiB3ZSBjYW4gc3RpbGwgc2F2ZSB0aG9zZSBo dWdlIG51bWJlciBvZiByZXNvdXJjZSBvd25lciBjaGVjayBDTURzLg0KPiANCj4gU28gd2UgaGF2 ZSB0byBsaXZlIHdpdGggdGhlbSBldmVuIEkgb25seSBuZWVkIG9uZSBTREhDIGZvciBhIFZNPyBX aXRoIHNvDQo+IG1hbnkgY2xrLXNjdSBlbnRyaWVzIGFuZCBwb3dlciBkb21haW4gZW50cmllcyB0 aGVyZS4NCg0KTm8sIGNsay1zY3UgcmVnaXN0ZXIgd2lsbCBmYWlsIGF1dG9tYXRpY2FsbHkgaWYg bm90IG93bmVkIGJ5IHRoaXMgcGFydGl0aW9uLg0KDQpSZWdhcmRzDQpBaXNoZW5nDQoNCj4gDQo+ IFRoYW5rcywNCj4gUGVuZy4NCj4gDQo+ID4NCj4gPiBSZWdhcmRzDQo+ID4gQWlzaGVuZw0KPiA+ DQo+ID4gPg0KPiA+ID4gUmVnYXJkcywNCj4gPiA+IFBlbmcuDQo+ID4gPiA+IFNvIG5vdCBxdWl0 ZSBuZWNlc3NhcnkgdG8gYWRkIGEgZG91YmxlIGNoZWNrLg0KPiA+ID4gPiBJZiB3ZSdyZSBjb25j ZXJuaW5nIGFib3V0IHRoZSBlcnJvciBsb2csIHdlIGNhbiBjaGFuZ2UgaXQgdG8gZGV2X2RiZygp Lg0KPiA+ID4gPg0KPiA+ID4gPiBCVFcsIGFzIHJlc291cmNlIG1hbmFnZW1lbnQgd2lsbCBiZSBu ZWVkZWQgYnkgc2VjbyBkcml2ZXJzIGxhdGVyLA0KPiA+ID4gPiBTbyBJIHdpbGwgY29udGludWUg dG8gcmV2aWV3IHRoZSBwYXRjaC4NCj4gPiA+ID4NCj4gPiA+ID4gUmVnYXJkcw0KPiA+ID4gPiBB aXNoZW5nDQo+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBbICAgIDIuMDM0Nzc0XSBpbXg2 cS1wY2llIDVmMDAwMDAwLnBjaWU6ICAgIElPDQo+ID4gMHg2ZmY4MDAwMC4uMHg2ZmY4ZmZmZg0K PiA+ID4gLT4NCj4gPiA+ID4gPiAweDAwMDAwMDAwDQo+ID4gPiA+ID4gWyAgICAyLjAzNDgwMV0g aW14NnEtcGNpZSA1ZjAwMDAwMC5wY2llOiAgIE1FTQ0KPiA+ID4gMHg2MDAwMDAwMC4uMHg2ZmVm ZmZmZg0KPiA+ID4gPiAtPg0KPiA+ID4gPiA+IDB4NjAwMDAwMDANCj4gPiA+ID4gPiBbICAgIDIu MDM1MDcyXSAgc2RoYzE6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSAyNDkgcmV0IC0xMw0K PiA+ID4gPiA+IFsgICAgMi4wMzU2MTldICBzZGhjMjogZmFpbGVkIHRvIHBvd2VyIHVwIHJlc291 cmNlIDI1MCByZXQgLTEzDQo+ID4gPiA+ID4gWyAgICAyLjAzNjEyNl0gIGVuZXQwOiBmYWlsZWQg dG8gcG93ZXIgdXAgcmVzb3VyY2UgMjUxIHJldCAtMTMNCj4gPiA+ID4gPiBbICAgIDIuMDM2NTg0 XSAgZW5ldDE6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSAyNTIgcmV0IC0xMw0KPiA+ID4g PiA+IFsgICAgMi4wMzcwNDBdICBtbGIwOiBmYWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2UgMjUz IHJldCAtMTMNCj4gPiA+ID4gPiBbICAgIDIuMDM3NDk1XSAgbmFuZDogZmFpbGVkIHRvIHBvd2Vy IHVwIHJlc291cmNlIDI2NSByZXQgLTEzDQo+ID4gPiA+ID4gWyAgICAyLjAzNzk1MV0gIG5hbmQ6 IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSAyNjUgcmV0IC0xMw0KPiA+ID4gPiA+IFsgICAg Mi4wMzg0MTZdICBwd20wOiBmYWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2UgMTkxIHJldCAtMTMN Cj4gPiA+ID4gPiBbICAgIDIuMDM4ODY4XSAgcHdtMTogZmFpbGVkIHRvIHBvd2VyIHVwIHJlc291 cmNlIDE5MiByZXQgLTEzDQo+ID4gPiA+ID4gWyAgICAyLjAzOTMyMF0gIHB3bTI6IGZhaWxlZCB0 byBwb3dlciB1cCByZXNvdXJjZSAxOTMgcmV0IC0xMw0KPiA+ID4gPiA+IFsgICAgMi4wMzk3ODZd ICBwd20zOiBmYWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2UgMTk0IHJldCAtMTMNCj4gPiA+ID4g PiBbICAgIDIuMDQwMjM5XSAgcHdtNDogZmFpbGVkIHRvIHBvd2VyIHVwIHJlc291cmNlIDE5NSBy ZXQgLTEzDQo+ID4gPiA+ID4gWyAgICAyLjA0MDY5Ml0gIHB3bTU6IGZhaWxlZCB0byBwb3dlciB1 cCByZXNvdXJjZSAxOTYgcmV0IC0xMw0KPiA+ID4gPiA+IFsgICAgMi4wNDExNDJdICBwd202OiBm YWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2UgMTk3IHJldCAtMTMNCj4gPiA+ID4gPiBbICAgIDIu MDQxNTk2XSAgcHdtNzogZmFpbGVkIHRvIHBvd2VyIHVwIHJlc291cmNlIDE5OCByZXQgLTEzDQo+ ID4gPiA+ID4gWyAgICAyLjA0MjA3M10gIGFtaXg6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJj ZSA0NTggcmV0IC0xMw0KPiA+ID4gPiA+IFsgICAgMi4wNDI1NThdICBscHNwaTA6IGZhaWxlZCB0 byBwb3dlciB1cCByZXNvdXJjZSA1MyByZXQgLTEzDQo+ID4gPiA+ID4gWyAgICAyLjA0MzAzM10g IGxwc3BpMTogZmFpbGVkIHRvIHBvd2VyIHVwIHJlc291cmNlIDU0IHJldCAtMTMNCj4gPiA+ID4g PiBbICAgIDIuMDQzNTAxXSAgbHBzcGkyOiBmYWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2UgNTUg cmV0IC0xMw0KPiA+ID4gPiA+IFsgICAgMi4wNDM5OTJdICBscHNwaTM6IGZhaWxlZCB0byBwb3dl ciB1cCByZXNvdXJjZSA1NiByZXQgLTEzDQo+ID4gPiA+ID4gWyAgICAyLjA0NDQ2MF0gIGxwdWFy dDA6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSA1NyByZXQgLTEzDQo+ID4gPiA+ID4gWyAg ICAyLjA0NDkzNV0gIGxwdWFydDI6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSA1OSByZXQg LTEzDQo+ID4gPiA+ID4gWyAgICAyLjA0NTQwOV0gIGxwdWFydDM6IGZhaWxlZCB0byBwb3dlciB1 cCByZXNvdXJjZSA2MCByZXQgLTEzDQo+ID4gPiA+ID4gWyAgICAyLjA1NTAxNF0gIHNpbTA6IGZh aWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSA2MiByZXQgLTEzDQo+ID4gPiA+ID4gWyAgICAyLjA1 NTUxMF0gIGFkYzA6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSAxMDEgcmV0IC0xMw0KPiA+ ID4gPiA+IFsgICAgMi4wNTY0NjddICBscGkyYzA6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJj ZSA5NiByZXQgLTEzDQo+ID4gPiA+ID4gWyAgICAyLjA1Njk0Nl0gIGxwaTJjMTogZmFpbGVkIHRv IHBvd2VyIHVwIHJlc291cmNlIDk3IHJldCAtMTMNCj4gPiA+ID4gPiBbICAgIDIuMDU3NDI0XSAg bHBpMmMyOiBmYWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2UgOTggcmV0IC0xMw0KPiA+ID4gPiA+ IFsgICAgMi4wNTc4OThdICBscGkyYzM6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJjZSA5OSBy ZXQgLTEzDQo+ID4gPiA+ID4gWyAgICAyLjA1ODM3MV0gIGNhbjA6IGZhaWxlZCB0byBwb3dlciB1 cCByZXNvdXJjZSAxMDUgcmV0IC0xMw0KPiA+ID4gPiA+IFsgICAgMi4wNTkyODldICBjYW4xOiBm YWlsZWQgdG8gcG93ZXIgdXAgcmVzb3VyY2UgMTA2IHJldCAtMTMNCj4gPiA+ID4gPiBbICAgIDIu MDU5ODAxXSAgY2FuMjogZmFpbGVkIHRvIHBvd2VyIHVwIHJlc291cmNlIDEwNyByZXQgLTEzDQo+ ID4gPiA+ID4gWyAgICAyLjA2MDI4MV0gIG5hbmQ6IGZhaWxlZCB0byBwb3dlciB1cCByZXNvdXJj ZSAyNjUgcmV0IC0xMw0KPiA+ID4gPiA+IFsgICAgMi4wNjI3NjRdIGRwdS1jb3JlIDU2MTgwMDAw LmRwdTogZHJpdmVyIHByb2JlZA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhhbmtzLA0KPiA+ID4g PiA+IFBlbmcuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBSZWdhcmRzDQo+ ID4gPiA+ID4gPiBBaXNoZW5nDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBUaGFua3MsDQo+ ID4gPiA+ID4gPiA+IFBlbmcuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBSZWdhcmRzDQo+ID4gPiA+ID4gPiA+ID4gQWlzaGVu Zw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBUaGFua3MsDQo+ID4gPiA+ID4g PiA+ID4gPiBQZW5nLg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gPiA+ID4gUmVnYXJkcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBBaXNoZW5nDQo+ ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gIGRyaXZlcnMvZmlybXdhcmUvaW14L01ha2VmaWxlICAgICAgIHwgIDIgKy0N Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgZHJpdmVycy9maXJtd2FyZS9pbXgvcm0uYyAgICAgICAg ICAgfCA0MA0KPiA+ID4gPiA+ID4gPiA+ICsrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ICBpbmNsdWRlL2xpbnV4L2Zpcm13YXJlL2lteC9zY2kuaCAgICB8ICAxICsN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgaW5jbHVkZS9saW51eC9maXJtd2FyZS9pbXgvc3ZjL3Jt LmggfCA2OQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMTEg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGNyZWF0 ZSBtb2RlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gMTAwNjQ0IGRyaXZlcnMvZmlybXdhcmUvaW14 L3JtLmMgIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGluY2x1ZGUv bGludXgvZmlybXdhcmUvaW14L3N2Yy9ybS5oDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9maXJtd2FyZS9pbXgvTWFrZWZp bGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiL2RyaXZlcnMvZmlybXdhcmUvaW14L01ha2VmaWxl IGluZGV4DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gMDhiYzlkZGZiZGZiLi4xN2VhMzYxM2UxNDIN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAtLS0g YS9kcml2ZXJzL2Zpcm13YXJlL2lteC9NYWtlZmlsZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsr KyBiL2RyaXZlcnMvZmlybXdhcmUvaW14L01ha2VmaWxlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g QEAgLTEsNCArMSw0IEBADQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICMgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgb2JqLSQoQ09ORklHX0lN WF9EU1ApCQkrPSBpbXgtZHNwLm8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAtb2JqLSQoQ09ORklH X0lNWF9TQ1UpCQkrPSBpbXgtc2N1Lm8gbWlzYy5vDQo+ID4gPiBpbXgtc2N1LWlycS5vDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gK29iai0kKENPTkZJR19JTVhfU0NVKQkJKz0gaW14LXNjdS5vIG1p c2Mubw0KPiA+ID4gPiBpbXgtc2N1LWlycS5vDQo+ID4gPiA+ID4gPiBybS5vDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gIG9iai0kKENPTkZJR19JTVhfU0NVX1BEKQkrPSBzY3UtcGQubw0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Zpcm13YXJlL2lteC9ybS5jDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gYi9kcml2ZXJzL2Zpcm13YXJlL2lteC9ybS5jIG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaW5kZXgNCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiAwMDAwMDAwMDAwMDAuLjdiMDMzNGRlNTQ4Ng0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IC0tLSAvZGV2L251bGwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2Zpcm13 YXJlL2lteC9ybS5jDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTAsMCArMSw0MCBAQA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArLyoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArICogQ29w eXJpZ2h0IDIwMjAgTlhQDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKyAqDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gKyAqIEZpbGUgY29udGFpbmluZyBjbGllbnQtc2lkZSBSUEMgZnVuY3Rpb25zIGZv cg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICt0aGUgUk0NCj4gPiBzZXJ2aWNlLg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ICtUaGVzZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKiBmdW5jdGlvbiBh cmUgcG9ydGVkIHRvIGNsaWVudHMgdGhhdCBjb21tdW5pY2F0ZSB0byB0aGUgU0MuDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gKyAqLw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlL2lteC9zdmMvcm0uaD4NCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gK3N0cnVjdCBpbXhfc2Nf bXNnX3JtX3JzcmNfb3duZWQgew0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJc3RydWN0IGlteF9z Y19ycGNfbXNnIGhkcjsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCXUxNiByZXNvdXJjZTsNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiArfSBfX3BhY2tlZCBfX2FsaWduZWQoNCk7DQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsvKg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ICsgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrIEByZXNvdXJjZSBpcyBvd25lZCBieQ0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ICtjdXJyZW50IHBhcnRpdGlvbiBvciBub3QNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiArICoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArICogQHBhcmFtW2luXSAgICAg aXBjICAgICAgICAgSVBDIGhhbmRsZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKiBAcGFyYW1b aW5dICAgICByZXNvdXJjZSAgICByZXNvdXJjZSB0aGUgY29udHJvbCBpcw0KPiA+ID4gPiA+ID4g YXNzb2NpYXRlZA0KPiA+ID4gPiA+ID4gPiA+IHdpdGgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAr ICoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArICogQHJldHVybiBSZXR1cm5zIDAgZm9yIHN1Y2Nl c3MgYW5kIDwgMCBmb3IgZXJyb3JzLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKi8NCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiArYm9vbCBpbXhfc2Nfcm1faXNfcmVzb3VyY2Vfb3duZWQoc3RydWN0 IGlteF9zY19pcGMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArKmlwYywNCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiArdTE2DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gK3Jlc291cmNlKSB7DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgaW14X3NjX21zZ19ybV9yc3JjX293bmVkIG1zZzsNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiArCXN0cnVjdCBpbXhfc2NfcnBjX21zZyAqaGRyID0gJm1zZy5o ZHI7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJaGRy LT52ZXIgPSBJTVhfU0NfUlBDX1ZFUlNJT047DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwloZHIt PnN2YyA9IElNWF9TQ19SUENfU1ZDX1JNOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJaGRyLT5m dW5jID0gSU1YX1NDX1JNX0ZVTkNfSVNfUkVTT1VSQ0VfT1dORUQ7DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gKwloZHItPnNpemUgPSAyOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiArCW1zZy5yZXNvdXJjZSA9IHJlc291cmNlOw0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCWlteF9zY3VfY2FsbF9ycGMoaXBjLCAm bXNnLCB0cnVlKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gKwlyZXR1cm4gaGRyLT5mdW5jOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gK0VYUE9SVF9TWU1CT0woaW14X3NjX3JtX2lzX3Jlc291cmNlX293bmVk KTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9maXJt d2FyZS9pbXgvc2NpLmgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiL2luY2x1ZGUvbGludXgvZmly bXdhcmUvaW14L3NjaS5oDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaW5kZXggMTdiYTRlNDA1MTI5 Li5iNWM1YTU2ZjI5YmUgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gLS0tIGEvaW5jbHVk ZS9saW51eC9maXJtd2FyZS9pbXgvc2NpLmgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArKysgYi9p bmNsdWRlL2xpbnV4L2Zpcm13YXJlL2lteC9zY2kuaA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEBA IC0xNSw2ICsxNSw3IEBADQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiAgI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlL2lteC9zdmMvbWlzYy5oPiAgI2luY2x1ZGUN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA8bGludXgvZmlybXdhcmUvaW14L3N2Yy9wbS5oPg0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvZmlybXdhcmUvaW14L3N2Yy9ybS5o Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gIGludCBpbXhf c2N1X2VuYWJsZV9nZW5lcmFsX2lycV9jaGFubmVsKHN0cnVjdA0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+IGRldmljZSAqZGV2KTsgaW50DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaW14X3NjdV9pcnFf cmVnaXN0ZXJfbm90aWZpZXIoc3RydWN0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gbm90aWZpZXJf YmxvY2sgKm5iKTsgZGlmZiAtLWdpdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGEvaW5jbHVkZS9s aW51eC9maXJtd2FyZS9pbXgvc3ZjL3JtLmgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiL2luY2x1 ZGUvbGludXgvZmlybXdhcmUvaW14L3N2Yy9ybS5oDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAwMDAwMDAwMDAw MDAuLmZjNmVhNjJkOWQwZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IC0tLSAvZGV2L251bGwNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiArKysgYi9pbmNsdWRlL2xpbnV4L2Zpcm13YXJlL2lteC9zdmMv cm0uaA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEBAIC0wLDAgKzEsNjkgQEANCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArICovDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gKy8qDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKyAqIENvcHlyaWdo dCAoQykgMjAxNiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ICsgKiBDb3B5cmlnaHQgMjAxNy0yMDE5IE5YUA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ICsgKg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKiBIZWFkZXIgZmlsZSBjb250YWluaW5nIHRo ZSBwdWJsaWMgQVBJIGZvciB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArU3lzdGVtIENvbnRy b2xsZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArKFNDKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ICsgKiBQb3dlciBNYW5hZ2VtZW50IChQTSkgZnVuY3Rpb24uIFRoaXMgaW5jbHVkZXMNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiArZnVuY3Rpb25zIGZvciBwb3dlciBzdGF0ZQ0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ICsgKiBjb250cm9sLCBjbG9jayBjb250cm9sLCByZXNldCBjb250cm9sLCBhbmQN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArd2FrZS11cCBldmVudA0KPiA+ID4gPiBjb250cm9sLg0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKiBSTV9T VkMgKFNWQykgUmVzb3VyY2UgTWFuYWdlbWVudCBTZXJ2aWNlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gKyAqDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKyAqIE1vZHVsZSBmb3IgdGhlIFJlc291cmNl IE1hbmFnZW1lbnQgKFJNKSBzZXJ2aWNlLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKi8NCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKyNpZm5kZWYgX1ND X1JNX0FQSV9IICNkZWZpbmUgX1NDX1JNX0FQSV9IDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvZmlybXdhcmUvaW14L3NjaS5o Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArLyoNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiArICogVGhpcyB0eXBlIGlzIHVzZWQgdG8gaW5kaWNhdGUgUlBD IFJNIGZ1bmN0aW9uIGNhbGxzLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsgKi8NCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiArZW51bSBpbXhfc2Nfcm1fZnVuYyB7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gKwlJTVhfU0NfUk1fRlVOQ19VTktOT1dOID0gMCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAr CUlNWF9TQ19STV9GVU5DX1BBUlRJVElPTl9BTExPQyA9IDEsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gKwlJTVhfU0NfUk1fRlVOQ19TRVRfQ09ORklERU5USUFMID0gMzEsDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVOQ19QQVJUSVRJT05fRlJFRSA9IDIsDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVOQ19HRVRfRElEID0gMjYsDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVOQ19QQVJUSVRJT05fU1RBVElDID0gMywNCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX1BBUlRJVElPTl9MT0NLID0gNCwNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX0dFVF9QQVJUSVRJT04gPSA1LA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ICsJSU1YX1NDX1JNX0ZVTkNfU0VUX1BBUkVOVCA9IDYsDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVOQ19NT1ZFX0FMTCA9IDcsDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVOQ19BU1NJR05fUkVTT1VSQ0UgPSA4LA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ICsJSU1YX1NDX1JNX0ZVTkNfU0VUX1JFU09VUkNFX01PVkFCTEUg PSA5LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJSU1YX1NDX1JNX0ZVTkNfU0VUX1NVQlNZU19S U1JDX01PVkFCTEUgPSAyOCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5D X1NFVF9NQVNURVJfQVRUUklCVVRFUyA9IDEwLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJSU1Y X1NDX1JNX0ZVTkNfU0VUX01BU1RFUl9TSUQgPSAxMSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAr CUlNWF9TQ19STV9GVU5DX1NFVF9QRVJJUEhFUkFMX1BFUk1JU1NJT05TID0NCj4gPiAxMiwNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX0lTX1JFU09VUkNFX09XTkVEID0g MTMsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVOQ19HRVRfUkVTT1VSQ0Vf T1dORVIgPSAzMywNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX0lTX1JF U09VUkNFX01BU1RFUiA9IDE0LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJSU1YX1NDX1JNX0ZV TkNfSVNfUkVTT1VSQ0VfUEVSSVBIRVJBTCA9IDE1LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJ SU1YX1NDX1JNX0ZVTkNfR0VUX1JFU09VUkNFX0lORk8gPSAxNiwNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiArCUlNWF9TQ19STV9GVU5DX01FTVJFR19BTExPQyA9IDE3LA0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ICsJSU1YX1NDX1JNX0ZVTkNfTUVNUkVHX1NQTElUID0gMjksDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVOQ19NRU1SRUdfRlJBRyA9IDMyLA0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ICsJSU1YX1NDX1JNX0ZVTkNfTUVNUkVHX0ZSRUUgPSAxOCwNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX0ZJTkRfTUVNUkVHID0gMzAsDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVOQ19BU1NJR05fTUVNUkVHID0gMTksDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVOQ19TRVRfTUVNUkVHX1BFUk1JU1NJT05TID0g MjAsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVOQ19JU19NRU1SRUdfT1dO RUQgPSAyMSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9GVU5DX0dFVF9NRU1S RUdfSU5GTyA9IDIyLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJSU1YX1NDX1JNX0ZVTkNfQVNT SUdOX1BBRCA9IDIzLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJSU1YX1NDX1JNX0ZVTkNfU0VU X1BBRF9NT1ZBQkxFID0gMjQsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwlJTVhfU0NfUk1fRlVO Q19JU19QQURfT1dORUQgPSAyNSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCUlNWF9TQ19STV9G VU5DX0RVTVAgPSAyNywgfTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gKyNpZiBJU19FTkFCTEVEKENPTkZJR19JTVhfU0NVKSBib29sDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gK2lteF9zY19ybV9pc19yZXNvdXJjZV9vd25lZChzdHJ1Y3QgaW14X3NjX2lw YyAqaXBjLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICt1MTYgcmVzb3VyY2UpOyAjZWxzZSBzdGF0 aWMgaW5saW5lIGJvb2wNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAraW14X3NjX3JtX2lzX3Jlc291 cmNlX293bmVkKHN0cnVjdCBpbXhfc2NfaXBjICppcGMsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g K3UxNg0KPiA+ID4gPiA+ID4gcmVzb3VyY2UpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCXJl dHVybiB0cnVlOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gKyNlbmRpZg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsjZW5kaWYNCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiAtLQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IDIuMTYuNA0KDQo=