From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web12.9163.1589530237710717492 for ; Fri, 15 May 2020 01:10:37 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=Oc/a6qE2; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: eric.dong@intel.com) IronPort-SDR: Ve+eVzix5fchSxpEmRNRxgPe1CZefAnNHuvUAPVVTgBIlA5188Rlpyhf4pN8l/8NO6gwJfqdel ZGphDVI2ppLQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2020 01:10:37 -0700 IronPort-SDR: uXQbe+hanlK9FodER6hRMvhPBnPkwxzVAEwcsbf9zFdQTfJMDVoWO2nJIjtRe5CLc5gPB/kFJc 5X+U6stehYvA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,394,1583222400"; d="scan'208";a="266530634" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga006.jf.intel.com with ESMTP; 15 May 2020 01:10:36 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 15 May 2020 01:10:36 -0700 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 15 May 2020 01:10:36 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Fri, 15 May 2020 01:10:36 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.174) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 15 May 2020 01:10:35 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bX8Rpih8BRCyaPJS4wJuohz5B8DkrKx43/twipprqpFhCLYud3yXpRnlY8B104uEpYVgq+2zRNte/oJuMX//1WHvHZ+NULII+ow6IUDTnHaIoQKTFLqRQcarcJ5/66ptPVqGOfRZv/tg7TvuTHT/0HXI0Lrv0iQgUrCydcvcDU0oUAMMIqet3vRBXyoyqziaqR6VMDcPtZKtPWZmXft/PBGkFG8n+KGcZ3ws1LCeqKr/PzRUlZVBAnrRFQbw/Dne5qR/uJx5rKtLm8bB8EY1gZxkxLEAXIyQGHrhEF2oP0Ij939VyQaCXjbBGSzyomTzKiiT+Jv0YdwkuptUm3QEDQ== 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=lTsx46tJO9hLa+CTl9Fgh7zfGYF7DifD4HNmprLsgB4=; b=n6wCUTkllAMd+6FaJVswZEfJq79L1kTOahrSA8/v53zyuFAI3iHW0hL7WkCM2ybmRB5fcMFdeXAVG6+2Xi/nqSGj5LiC6+tMazUMDnCZZP94i6LVyR8d+lhDiGYjAkcfFwVg36RLi2eYzxrudyfaRfdnY4bRZ3JNm6/AvXDWQcMyqpwGPcI7eYlSmeujFA3K+RY5n/OfgeoR5WkyaZzPPJc/PHatGiv6HGjz/p4VqwwIHH+JrBVfGXbZt6o4W8OlmysVHHKw4aWbcxZoqHZ7sh4ISU+y8szgGyTVgupNheVuhp9LLBBcFcGdoKcq6OnB7KMTSAGXf7IDqZGV9cB4Fw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lTsx46tJO9hLa+CTl9Fgh7zfGYF7DifD4HNmprLsgB4=; b=Oc/a6qE2Bf2spBvgqHwhj6UzXk6sywGvrzeuuGqjgBUMMTiyH3KPm4s1fE77crSZ1EuKG46DLjtXis6M0xP2W9v8YpmmMd74GpwDiyQzcn6Jv9qI1oPEtnEyo3iojDyedFKeBZ3nX7TE1KY+2TFixP5adEXY31fyjuF6CemaYU8= Received: from DM6PR11MB3274.namprd11.prod.outlook.com (2603:10b6:5:b::26) by DM6PR11MB3498.namprd11.prod.outlook.com (2603:10b6:5:6c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.26; Fri, 15 May 2020 08:10:34 +0000 Received: from DM6PR11MB3274.namprd11.prod.outlook.com ([fe80::e1d1:a495:9826:f88b]) by DM6PR11MB3274.namprd11.prod.outlook.com ([fe80::e1d1:a495:9826:f88b%3]) with mapi id 15.20.2979.033; Fri, 15 May 2020 08:10:33 +0000 From: "Dong, Eric" To: "devel@edk2.groups.io" , "Tan, Ming" Subject: Re: [edk2-devel] [PATCH v2] Add Features/Intel/OutOfBandManagement/SpcrFeaturePkg. Thread-Topic: [edk2-devel] [PATCH v2] Add Features/Intel/OutOfBandManagement/SpcrFeaturePkg. Thread-Index: AQHWKCIXsZ/JONNVaUKGHvhy5MXpiKioz2ng Date: Fri, 15 May 2020 08:10:33 +0000 Message-ID: References: <20200512055534.22812-1-ming.tan@intel.com> In-Reply-To: <20200512055534.22812-1-ming.tan@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.45] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3a90c8c4-b92b-4369-7ac7-08d7f8a77146 x-ms-traffictypediagnostic: DM6PR11MB3498: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4941; x-forefront-prvs: 04041A2886 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KAX+s0YWz41g8E0uQPqSa2w6hJAg1GkBeNpltbxMGWNh6mDWIHTlODT7N0TkqX1cKZfJHOQrBdkaOtLnX36/99ZhxveAfjFGc44XawncxqT3/xviQiE5w0Kqmt7E+zsEQqItEHQRddFvS/RSl79ue3QX6QOAJ0K4y3Icyk2ynO+qp1MReOak0tRasi3kEjNKAwN6nHneW6CaQ4+SpGOmYeFHzYnGxkbRR5WRLqMY5RcpMUmyFSIidibm09EeyoQsOcbbD9UhhNKOlIXXAw72Begdk+IzkcwUI/IgG131QLkkm7lWWvAnpIcA2NUJWh6O5UaBKc6ddTG0NnIv7i5jv5kMzm2xIgFMYYKYI6nq92KIoklN+JcUmToeDci+aEGWnk4/hqrPBJWC3JxVrVifHdm1IvJfQhl4W+v9eAU7rYf1FpDnqVVayd+vXLgYjY8q0FR8FdrxNvgM63sKi2b2ng/PjBd1UlRegRti8mWi3EIRdE2wMsMenAyaAe5+QbRI4PeqiT9Ud++Kn7yiW9HaTQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB3274.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(6029001)(39860400002)(136003)(346002)(366004)(376002)(396003)(45080400002)(26005)(316002)(71200400001)(6636002)(186003)(9686003)(55016002)(110136005)(966005)(8936002)(478600001)(8676002)(86362001)(66556008)(2906002)(33656002)(66476007)(64756008)(66446008)(53546011)(66946007)(6506007)(30864003)(5660300002)(76116006)(52536014)(7696005)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: kWUK+KTVi8U/TaryEbxbhRBpZhZyNh6yqlVCDUuvsm1q5OvR0HDPEN4x0E6kYTZ6Q24humN+X6gIhMwPgOFXAALCNUp8Nbiz3173rucg6sO16EJ/7ybpBv9moYfJcfM8qOdwkkih59WQfLrBalavI2Q2RPh8LNfOZ0Pj9sQlf0Bkro/O4BC4O64JODt2KvNt7LOTc9vgprIn06s0wA1ji0ISC1Dv5PJDrPYqZ0jvEtM46Eo3faqXKvIrNaN97WK/xRobsiwjB/CW//IM+PQ+7pti1eASBK7y2WUS0WescVCAaKW9JIDv2UG7NRWmApy0Sn2Nq72t9c8CndsCIgNtm5+cvGB9vC+OAsGGC/ay39HKBg1kfcTIP7MUptSNhWSjIE87YfEii7/2Y+Tt1T9aQtsq0yJBEkYi/ilehWvL1Xu4lTWm837GTidpuRJWk/u3f9FbUwjJ+1eUk62srAh6qq3w+KRwcZThxfBv6dMJLdPtKvRTSegi6vRCyRlan3yP MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 3a90c8c4-b92b-4369-7ac7-08d7f8a77146 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2020 08:10:33.8596 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: uY2SwEti8bNGwfgL5wM2ju+utZaiq1MbSZkJDPjfrSPeJ3L90Q35OqvYT8V/PeOjlhiEzJD4fsE6duS/6UbcGA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3498 Return-Path: eric.dong@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxA ZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBUYW4sDQo+IE1pbmcNCj4gU2VudDogVHVlc2Rh eSwgTWF5IDEyLCAyMDIwIDE6NTYgUE0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IFN1 YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjJdIEFkZA0KPiBGZWF0dXJlcy9JbnRlbC9PdXRP ZkJhbmRNYW5hZ2VtZW50L1NwY3JGZWF0dXJlUGtnLg0KPiANCj4gUkVGOiBodHRwczovL2J1Z3pp bGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTI3MTANCj4gDQo+IEl0IGlzIHVzZWQg dG8gc3VwcG9ydCB0aGUgU2VyaWFsIFBvcnQgQ29uc29sZSBSZWRpcmVjdGlvbiBUYWJsZSAoU1BD UikuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBNaW5nIFRhbiA8bWluZy50YW5AaW50ZWwuY29tPg0K PiAtLS0NCj4gdjI6IEFkZCB0aGUgRUZJQVBJIGZvciBmdW5jdGlvbiBHZXRTcGNyRGV2aWNlKCkg aW4NCj4gSW5jbHVkZS9MaWJyYXJ5L1NwY3JEZXZpY2VMaWIuaCBhbmQNCj4gTGlicmFyeS9TcGNy RGV2aWNlTGliTnVsbC9TcGNyRGV2aWNlTGliTnVsbC5jLg0KPiANCj4gIC4uLi9JbmNsdWRlL0xp YnJhcnkvU3BjckRldmljZUxpYi5oICAgICAgICAgICB8ICAyNyArDQo+ICAuLi4vU3BjckZlYXR1 cmVQa2cvSW5jbHVkZS9TcGNyRmVhdHVyZS5kc2MgICAgfCAxMDggKysrKw0KPiAgLi4uL1NwY3JE ZXZpY2VMaWJOdWxsL1NwY3JEZXZpY2VMaWJOdWxsLmMgICAgIHwgIDI2ICsNCj4gIC4uLi9TcGNy RGV2aWNlTGliTnVsbC9TcGNyRGV2aWNlTGliTnVsbC5pbmYgICB8ICAyMiArDQo+ICAuLi4vU3Bj ckZlYXR1cmVQa2cvUmVhZG1lLm1kICAgICAgICAgICAgICAgICAgfCAgNjQgKysrDQo+ICAuLi4v U3BjckZlYXR1cmVQa2cvU3BjckFjcGlEeGUvU3BjckFjcGkuYyAgICAgfCA0NjcgKysrKysrKysr KysrKysrKysrDQo+ICAuLi4vU3BjckZlYXR1cmVQa2cvU3BjckFjcGlEeGUvU3BjckFjcGkuaCAg ICAgfCAgODEgKysrDQo+ICAuLi4vU3BjckFjcGlEeGUvU3BjckFjcGlEeGUuaW5mICAgICAgICAg ICAgICAgfCAgNDIgKysNCj4gIC4uLi9TcGNyRmVhdHVyZVBrZy9TcGNyRmVhdHVyZVBrZy5kZWMg ICAgICAgICB8ICAyNyArDQo+ICAuLi4vU3BjckZlYXR1cmVQa2cvU3BjckZlYXR1cmVQa2cuZHNj ICAgICAgICAgfCAgMzAgKysNCj4gIDEwIGZpbGVzIGNoYW5nZWQsIDg5NCBpbnNlcnRpb25zKCsp DQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdl bWVudC9TcGNyRmVhdHVyZVBrZy9JbmNsdWRlL0xpYnJhcnkvU3ANCj4gY3JEZXZpY2VMaWIuaA0K PiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+IEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1l bnQvU3BjckZlYXR1cmVQa2cvSW5jbHVkZS9TcGNyRmVhdHUNCj4gcmUuZHNjDQo+ICBjcmVhdGUg bW9kZSAxMDA2NDQNCj4gRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9TcGNyRmVh dHVyZVBrZy9MaWJyYXJ5L1NwY3JEZXZpY2UNCj4gTGliTnVsbC9TcGNyRGV2aWNlTGliTnVsbC5j DQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdl bWVudC9TcGNyRmVhdHVyZVBrZy9MaWJyYXJ5L1NwY3JEZXZpY2UNCj4gTGliTnVsbC9TcGNyRGV2 aWNlTGliTnVsbC5pbmYNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiBGZWF0dXJlcy9JbnRlbC9P dXRPZkJhbmRNYW5hZ2VtZW50L1NwY3JGZWF0dXJlUGtnL1JlYWRtZS5tZA0KPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0DQo+IEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvU3BjckZlYXR1 cmVQa2cvU3BjckFjcGlEeGUvU3Bjcg0KPiBBY3BpLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0K PiBGZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L1NwY3JGZWF0dXJlUGtnL1NwY3JB Y3BpRHhlL1NwY3INCj4gQWNwaS5oDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gRmVhdHVyZXMv SW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9TcGNyRmVhdHVyZVBrZy9TcGNyQWNwaUR4ZS9TcGNy DQo+IEFjcGlEeGUuaW5mDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gRmVhdHVyZXMvSW50ZWwv T3V0T2ZCYW5kTWFuYWdlbWVudC9TcGNyRmVhdHVyZVBrZy9TcGNyRmVhdHVyZVBrZy5kZQ0KPiBj DQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdl bWVudC9TcGNyRmVhdHVyZVBrZy9TcGNyRmVhdHVyZVBrZy5kcw0KPiBjDQo+IA0KPiBkaWZmIC0t Z2l0DQo+IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9TcGNyRmVhdHVyZVBr Zy9JbmNsdWRlL0xpYnJhcnkvDQo+IFNwY3JEZXZpY2VMaWIuaA0KPiBiL0ZlYXR1cmVzL0ludGVs L091dE9mQmFuZE1hbmFnZW1lbnQvU3BjckZlYXR1cmVQa2cvSW5jbHVkZS9MaWJyYXJ5Lw0KPiBT cGNyRGV2aWNlTGliLmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAw MC4uOTQ3ODEzODE1ZQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKw0KPiBiL0ZlYXR1cmVzL0ludGVs L091dE9mQmFuZE1hbmFnZW1lbnQvU3BjckZlYXR1cmVQa2cvSW5jbHVkZS9MaWJyYXJ5Lw0KPiAr KysgU3BjckRldmljZUxpYi5oDQo+IEBAIC0wLDAgKzEsMjcgQEANCj4gKy8qKiBAZmlsZQ0KPiAr ICBIZWFkZXIgZmlsZSBmb3IgYSBsaWJyYXJ5IGFib3V0IFNQQ1IgZGV2aWNlLg0KPiArICBTcGNy RGV2aWNlTGliIGlzIHVzZCBmb3IgU2VyaWFsIFBvcnQgQ29uc29sZSBSZWRpcmVjdGlvbiBUYWJs ZSAoU1BDUikgZGV2aWNlLg0KPiArDQo+ICsgIENvcHlyaWdodCAoYykgMjAxMSAtIDIwMjAsIElu dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ICsgcmVzZXJ2ZWQuPEJSPg0KPiArICBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArDQo+ICsqKi8NCj4g Kw0KPiArI2lmbmRlZiBfU1BDUl9ERVZJQ0VfTElCX0hfDQo+ICsjZGVmaW5lIF9TUENSX0RFVklD RV9MSUJfSF8NCj4gKw0KPiArLyoqDQo+ICsgIEdldCBhIFNlcmlhbCBQb3J0IGRldmljZSB1c2Vk IGZvciBTUENSLg0KPiArICBUaGUgY2FsbGVyIHNob3VsZCBjYWxsIEZyZWVQb29sKCkgdG8gZnJl ZSB0aGUgbWVtb3J5IGlmIHJldHVybiB2YWx1ZSBpcyBub3QNCj4gTlVMTC4NCj4gKw0KPiArICBA cmV0dmFsIE5VTEwgICAgICAgICAgQ2FuIG5vdCBnZXQgZGV2aWNlLg0KPiArICBAcmV0dmFsIE90 aGVycyAgICAgICAgQSBzZXJpYWwgcG9ydCBkZXZpY2UgcGF0aC4NCj4gKw0KPiArKiovDQo+ICtF RklfREVWSUNFX1BBVEhfUFJPVE9DT0wgKg0KPiArRUZJQVBJDQo+ICtHZXRTcGNyRGV2aWNlICgN Cj4gKyAgVk9JRA0KPiArICApOw0KPiArDQo+ICsjZW5kaWYgLy8gX1NQQ1JfREVWSUNFX0xJQl9I Xw0KPiBkaWZmIC0tZ2l0DQo+IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9T cGNyRmVhdHVyZVBrZy9JbmNsdWRlL1NwY3JGZWENCj4gdHVyZS5kc2MNCj4gYi9GZWF0dXJlcy9J bnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L1NwY3JGZWF0dXJlUGtnL0luY2x1ZGUvU3BjckZlYQ0K PiB0dXJlLmRzYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi44 OWVmNjQ4ZjMxDQo+IC0tLSAvZGV2L251bGwNCj4gKysrDQo+IGIvRmVhdHVyZXMvSW50ZWwvT3V0 T2ZCYW5kTWFuYWdlbWVudC9TcGNyRmVhdHVyZVBrZy9JbmNsdWRlL1NwY3JGZWENCj4gdA0KPiAr KysgdXJlLmRzYw0KPiBAQCAtMCwwICsxLDEwOCBAQA0KPiArIyMgQGZpbGUNCj4gKyMgVGhpcyBw YWNrYWdlIHByb3ZpZGVzIGFkdmFuY2VkIGZlYXR1cmUgZnVuY3Rpb25hbGl0eSBhYm91dCBTZXJp YWwgUG9ydA0KPiBDb25zb2xlIFJlZGlyZWN0aW9uIFRhYmxlIChTUENSKS4NCj4gKyMgVGhpcyBm aWxlIHNob3VsZCBiZSBpbmNsdWRlZCBpbnRvIGFub3RoZXIgcGFja2FnZSBEU0MgZmlsZSB0byBi dWlsZCB0aGlzDQo+IGZlYXR1cmUuDQo+ICsjDQo+ICsjIFRoZSBERUMgZmlsZXMgYXJlIHVzZWQg YnkgdGhlIHV0aWxpdGllcyB0aGF0IHBhcnNlIERTQyBhbmQgIyBJTkYNCj4gK2ZpbGVzIHRvIGdl bmVyYXRlIEF1dG9HZW4uYyBhbmQgQXV0b0dlbi5oIGZpbGVzICMgZm9yIHRoZSBidWlsZA0KPiAr aW5mcmFzdHJ1Y3R1cmUuDQo+ICsjDQo+ICsjIENvcHlyaWdodCAoYykgMjAyMCwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPiAjICMNCj4gK1NQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50ICMgIyMNCj4gKw0KPiArIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ICMjIyMjIyMj IyMjIyMjDQo+ICsjIyMjIyMjIyMNCj4gKyMNCj4gKyMgRGVmaW5lcyBTZWN0aW9uIC0gc3RhdGVt ZW50cyB0aGF0IHdpbGwgYmUgcHJvY2Vzc2VkIHRvIGNyZWF0ZSBhIE1ha2VmaWxlLg0KPiArIw0K PiArIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjDQo+ICMjIyMjIyMjIyMjIyMjDQo+ICsjIyMjIyMjIyMNCj4gK1tEZWZpbmVzXQ0KPiArIWlm bmRlZiAkKFBFSV9BUkNIKQ0KPiArICAhZXJyb3IgIlBFSV9BUkNIIG11c3QgYmUgc3BlY2lmaWVk IHRvIGJ1aWxkIHRoaXMgZmVhdHVyZSEiDQo+ICshZW5kaWYNCj4gKyFpZm5kZWYgJChEWEVfQVJD SCkNCj4gKyAgIWVycm9yICJEWEVfQVJDSCBtdXN0IGJlIHNwZWNpZmllZCB0byBidWlsZCB0aGlz IGZlYXR1cmUhIg0KPiArIWVuZGlmDQo+ICsNCj4gKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiAjIyMjIyMjIyMjIyMjIw0KPiArIyMj IyMjIyMjDQo+ICsjDQo+ICsjIExpYnJhcnkgQ2xhc3Mgc2VjdGlvbiAtIGxpc3Qgb2YgYWxsIExp YnJhcnkgQ2xhc3NlcyBuZWVkZWQgYnkgdGhpcyBmZWF0dXJlLg0KPiArIw0KPiArIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ICMjIyMj IyMjIyMjIyMjDQo+ICsjIyMjIyMjIyMNCj4gK1tMaWJyYXJ5Q2xhc3Nlc10NCj4gKyAgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ICsgICMgRWRrMiBQYWNrYWdlcw0K PiArICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gKyAgQmFzZUxp YnxNZGVQa2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mDQo+ICsNCj4gK0Jhc2VNZW1vcnlM aWJ8TWRlUGtnL0xpYnJhcnkvQmFzZU1lbW9yeUxpYlJlcFN0ci9CYXNlTWVtb3J5TGliDQo+IFJl cFN0ci5pbg0KPiArZg0KPiArICBEZWJ1Z0xpYnxNZGVQa2cvTGlicmFyeS9CYXNlRGVidWdMaWJO dWxsL0Jhc2VEZWJ1Z0xpYk51bGwuaW5mDQo+ICsNCj4gK1VlZmlEcml2ZXJFbnRyeVBvaW50fE1k ZVBrZy9MaWJyYXJ5L1VlZmlEcml2ZXJFbnRyeVBvaW50L1VlZmlEcml2ZXJFbnRyDQo+ICt5UG9p bnQuaW5mDQo+ICsgIFVlZmlMaWJ8TWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9VZWZpTGliLmluZg0K PiArICBQcmludExpYnxNZGVQa2cvTGlicmFyeS9CYXNlUHJpbnRMaWIvQmFzZVByaW50TGliLmlu Zg0KPiArICBQY2RMaWJ8TWRlUGtnL0xpYnJhcnkvQmFzZVBjZExpYk51bGwvQmFzZVBjZExpYk51 bGwuaW5mDQo+ICsNCj4gK1VlZmlCb290U2VydmljZXNUYWJsZUxpYnxNZGVQa2cvTGlicmFyeS9V ZWZpQm9vdFNlcnZpY2VzVGFibGVMaWIvVWVmaUINCj4gbw0KPiArb3RTZXJ2aWNlc1RhYmxlTGli LmluZg0KPiArICBEZXZpY2VQYXRoTGlifE1kZVBrZy9MaWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGli L1VlZmlEZXZpY2VQYXRoTGliLmluZg0KPiArDQo+ICtVZWZpUnVudGltZVNlcnZpY2VzVGFibGVM aWJ8TWRlUGtnL0xpYnJhcnkvVWVmaVJ1bnRpbWVTZXJ2aWNlc1RhYmxlTGkNCj4gYi8NCj4gK1Vl ZmlSdW50aW1lU2VydmljZXNUYWJsZUxpYi5pbmYNCj4gKw0KPiArICAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gKyAgIyBTcGNyRmVhdHVyZVBrZyBQYWNrYWdlcw0K PiArICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gKw0KPiArIFNw Y3JEZXZpY2VMaWJ8U3BjckZlYXR1cmVQa2cvTGlicmFyeS9TcGNyRGV2aWNlTGliTnVsbC9TcGNy RGV2aWNlTGliTnUNCj4gKyBsbC5pbmYNCj4gKw0KPiArW0xpYnJhcnlDbGFzc2VzLmNvbW1vbi5E WEVfRFJJVkVSXQ0KPiArICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMN Cj4gKyAgIyBFZGsyIFBhY2thZ2VzDQo+ICsgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIw0KPiArDQo+ICtNZW1vcnlBbGxvY2F0aW9uTGlifE1kZVBrZy9MaWJyYXJ5L1Vl ZmlNZW1vcnlBbGxvY2F0aW9uTGliL1VlZmlNZW0NCj4gb3J5QWwNCj4gK2xvY2F0aW9uTGliLmlu Zg0KPiArDQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMNCj4gIyMjIyMjIyMjIyMjIyMNCj4gKyMjIyMjIyMjIw0KPiArIw0KPiArIyBD b21wb25lbnQgc2VjdGlvbiAtIGxpc3Qgb2YgYWxsIGNvbXBvbmVudHMgdGhhdCBuZWVkIGJ1aWx0 IGZvciB0aGlzIGZlYXR1cmUuDQo+ICsjDQo+ICsjIE5vdGU6IFRoZSBFREsgSUkgRFNDIGZpbGUg aXMgbm90IHVzZWQgdG8gc3BlY2lmeSBob3cgY29tcGlsZWQgYmluYXJ5DQo+IGltYWdlcyBnZXQg cGxhY2VkDQo+ICsjICAgICAgIGludG8gZmlybXdhcmUgdm9sdW1lIGltYWdlcy4gVGhpcyBzZWN0 aW9uIGlzIGp1c3QgYSBsaXN0IG9mIG1vZHVsZXMgdG8NCj4gY29tcGlsZSBmcm9tDQo+ICsjICAg ICAgIHNvdXJjZSBpbnRvIFVFRkktY29tcGxpYW50IGJpbmFyaWVzLg0KPiArIyAgICAgICBJdCBp cyB0aGUgRkRGIGZpbGUgdGhhdCBjb250YWlucyBpbmZvcm1hdGlvbiBvbiBjb21iaW5pbmcgYmlu YXJ5IGZpbGVzIGludG8NCj4gZmlybXdhcmUNCj4gKyMgICAgICAgdm9sdW1lIGltYWdlcywgd2hv c2UgY29uY2VwdCBpcyBiZXlvbmQgVUVGSSBhbmQgaXMgZGVzY3JpYmVkIGluIFBJDQo+IHNwZWNp ZmljYXRpb24uDQo+ICsjICAgICAgIFRoZXJlIG1heSBhbHNvIGJlIG1vZHVsZXMgbGlzdGVkIGlu IHRoaXMgc2VjdGlvbiB0aGF0IGFyZSBub3QgcmVxdWlyZWQNCj4gaW4gdGhlIEZERiBmaWxlLA0K PiArIyAgICAgICBXaGVuIGEgbW9kdWxlIGxpc3RlZCBoZXJlIGlzIGV4Y2x1ZGVkIGZyb20gRkRG IGZpbGUsIHRoZW4gVUVGSS0NCj4gY29tcGxpYW50IGJpbmFyeSB3aWxsIGJlDQo+ICsjICAgICAg IGdlbmVyYXRlZCBmb3IgaXQsIGJ1dCB0aGUgYmluYXJ5IHdpbGwgbm90IGJlIHB1dCBpbnRvIGFu eSBmaXJtd2FyZQ0KPiB2b2x1bWUuDQo+ICsjDQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gIyMjIyMjIyMjIyMjIyMNCj4gKyMj IyMjIyMjIw0KPiArDQo+ICsjDQo+ICsjIEZlYXR1cmUgRFhFIENvbXBvbmVudHMNCj4gKyMNCj4g Kw0KPiArIyBAdG9kbzogQ2hhbmdlIGJlbG93IGxpbmUgdG8gW0NvbXBvbmVudHMuJChEWEVfQVJD SCldIGFmdGVyDQo+IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/ aWQ9MjMwOA0KPiArIyAgICAgICAgaXMgY29tcGxldGVkLg0KPiArW0NvbXBvbmVudHMuWDY0XQ0K PiArICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ICsgICMgU3BjciBG ZWF0dXJlIFBhY2thZ2UNCj4gKyAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Iw0KPiArDQo+ICsgICMgQWRkIGxpYnJhcnkgaW5zdGFuY2VzIGhlcmUgdGhhdCBhcmUgbm90IGlu Y2x1ZGVkIGluIHBhY2thZ2UNCj4gKyBjb21wb25lbnRzIGFuZCBzaG91bGQgYmUgdGVzdGVkICAj IGluIHRoZSBwYWNrYWdlIGJ1aWxkLg0KPiArDQo+ICsgICMgQWRkIGNvbXBvbmVudHMgaGVyZSB0 aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgcGFja2FnZSBidWlsZC4NCj4gKyAgU3BjckZl YXR1cmVQa2cvU3BjckFjcGlEeGUvU3BjckFjcGlEeGUuaW5mDQo+ICsgICN7DQo+ICsjICAgIDxM aWJyYXJ5Q2xhc3Nlcz4NCj4gKyMNCj4gU3BjckRldmljZUxpYnxTcGNyRmVhdHVyZVBrZy9MaWJy YXJ5L1NwY3JEZXZpY2VMaWJOdWxsL1NwY3JEZXZpY2VMaWJOdWxsLmkNCj4gbmYNCj4gKyMgIH0N Cj4gKw0KPiArIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjDQo+ICMjIyMjIyMjIyMjIyMjDQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjDQo+ICsjDQo+ICsjIEJ1aWxkT3B0aW9ucyBTZWN0aW9uIC0gRGVmaW5lIHRoZSBtb2R1bGUg c3BlY2lmaWMgdG9vbCBjaGFpbiBmbGFncyB0aGF0DQo+IHNob3VsZCBiZSB1c2VkIGFzDQo+ICsj ICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGRlZmF1bHQgZmxhZ3MgZm9yIGEgbW9kdWxlLiBU aGVzZSBmbGFncyBhcmUgYXBwZW5kZWQgdG8NCj4gYW55DQo+ICsjICAgICAgICAgICAgICAgICAg ICAgICAgc3RhbmRhcmQgZmxhZ3MgdGhhdCBhcmUgZGVmaW5lZCBieSB0aGUgYnVpbGQgcHJvY2Vz cy4gVGhleSBjYW4NCj4gYmUNCj4gKyMgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWVkIGZv ciBhbnkgbW9kdWxlcyBvciBvbmx5IHRob3NlIG1vZHVsZXMgd2l0aCB0aGUNCj4gc3BlY2lmaWMN Cj4gKyMgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGUgc3R5bGUgKEVESyBvciBFREtJSSkg c3BlY2lmaWVkIGluIFtDb21wb25lbnRzXSBzZWN0aW9uLg0KPiArIw0KPiArIyAgICAgICAgICAg ICAgICAgICAgICAgIEZvciBhZHZhbmNlZCBmZWF0dXJlcywgaXQgaXMgcmVjb21tZW5kZWQgdG8g ZW5hYmxlDQo+IFtCdWlsZE9wdGlvbnNdIGluDQo+ICsjICAgICAgICAgICAgICAgICAgICAgICAg dGhlIGFwcGxpY2FibGUgSU5GIGZpbGUgc28gaXQgZG9lcyBub3QgYWZmZWN0IHRoZSB3aG9sZSBi b2FyZA0KPiBwYWNrYWdlDQo+ICsjICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGQgd2hlbiB0 aGlzIERTQyBmaWxlIGlzIGFjdGl2ZS4NCj4gKyMNCj4gKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiAjIyMjIyMjIyMjIyMjIw0KPiAr IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiArW0J1aWxkT3B0aW9uc10NCj4gZGlmZiAt LWdpdA0KPiBhL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvU3BjckZlYXR1cmVQ a2cvTGlicmFyeS9TcGNyRGV2aQ0KPiBjZUxpYk51bGwvU3BjckRldmljZUxpYk51bGwuYw0KPiBi L0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvU3BjckZlYXR1cmVQa2cvTGlicmFy eS9TcGNyRGV2aQ0KPiBjZUxpYk51bGwvU3BjckRldmljZUxpYk51bGwuYw0KPiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi5kMzBmNDIxODg3DQo+IC0tLSAvZGV2L251 bGwNCj4gKysrDQo+IGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9TcGNyRmVh dHVyZVBrZy9MaWJyYXJ5L1NwY3JEZXZpDQo+ICsrKyBjZUxpYk51bGwvU3BjckRldmljZUxpYk51 bGwuYw0KPiBAQCAtMCwwICsxLDI2IEBADQo+ICsvKiogQGZpbGUNCj4gKyAgSW1wbGVtZW50YXRp b24gZm9yIGEgTlVMTCBsaWJyYXJ5IG9mIFNwY3JEZXZpY2VMaWIuDQo+ICsgIFNwY3JEZXZpY2VM aWIgaXMgdXNkIGZvciBTZXJpYWwgUG9ydCBDb25zb2xlIFJlZGlyZWN0aW9uIFRhYmxlIChTUENS KSBkZXZpY2UuDQo+ICsNCj4gKyAgQ29weXJpZ2h0IChjKSAyMDE3IC0gMjAyMCwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMNCj4gKyByZXNlcnZlZC48QlI+DQo+ICsgIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsNCj4gKyoqLw0KPiArDQo+ICsj aW5jbHVkZSA8SW5jbHVkZS9VZWZpLmg+DQo+ICsjaW5jbHVkZSA8UHJvdG9jb2wvRGV2aWNlUGF0 aC5oPg0KPiArDQo+ICsvKioNCj4gKyAgR2V0IGEgU2VyaWFsIFBvcnQgZGV2aWNlIHVzZWQgZm9y IFNQQ1IuDQo+ICsNCj4gKyAgQHJldHZhbCBOVUxMICAgICAgICAgIENhbiBub3QgZ2V0IGRldmlj ZS4NCj4gKw0KPiArKiovDQo+ICtFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wqDQo+ICtFRklBUEkN Cj4gK0dldFNwY3JEZXZpY2UgKA0KPiArICBWT0lEDQo+ICsgICkNCj4gK3sNCj4gKyAgcmV0dXJu IE5VTEw7DQo+ICt9DQo+IGRpZmYgLS1naXQNCj4gYS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRN YW5hZ2VtZW50L1NwY3JGZWF0dXJlUGtnL0xpYnJhcnkvU3BjckRldmkNCj4gY2VMaWJOdWxsL1Nw Y3JEZXZpY2VMaWJOdWxsLmluZg0KPiBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1l bnQvU3BjckZlYXR1cmVQa2cvTGlicmFyeS9TcGNyRGV2aQ0KPiBjZUxpYk51bGwvU3BjckRldmlj ZUxpYk51bGwuaW5mDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAu LmJmNDBkYzQ4YzMNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysNCj4gYi9GZWF0dXJlcy9JbnRlbC9P dXRPZkJhbmRNYW5hZ2VtZW50L1NwY3JGZWF0dXJlUGtnL0xpYnJhcnkvU3BjckRldmkNCj4gKysr IGNlTGliTnVsbC9TcGNyRGV2aWNlTGliTnVsbC5pbmYNCj4gQEAgLTAsMCArMSwyMiBAQA0KPiAr IyMgQGZpbGUNCj4gKyMgSW1wbGVtZW50YXRpb24gZm9yIGEgTlVMTCBsaWJyYXJ5IG9mIFNwY3JE ZXZpY2VMaWIuDQo+ICsjIFNwY3JEZXZpY2VMaWIgaXMgdXNkIGZvciBTZXJpYWwgUG9ydCBDb25z b2xlIFJlZGlyZWN0aW9uIFRhYmxlIChTUENSKQ0KPiBkZXZpY2UuDQo+ICsjDQo+ICsjIENvcHly aWdodCAoYykgMjAxNyAtIDIwMjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ICty ZXNlcnZlZC48QlI+ICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQgIyAjIw0KPiArDQo+ICtbRGVmaW5lc10NCj4gKyAgSU5GX1ZFUlNJT04gICAgICAgICAgICAg ICAgICAgID0gMHgwMDAxMDAxNw0KPiArICBCQVNFX05BTUUgICAgICAgICAgICAgICAgICAgICAg PSBTcGNyRGV2aWNlTGliTnVsbA0KPiArICBGSUxFX0dVSUQgICAgICAgICAgICAgICAgICAgICAg PSA4ODY1NzM5Ri1EMEE4LTQ5MzYtQTQ1Ny04QjM1MjFFQzYwRDENCj4gKyAgVkVSU0lPTl9TVFJJ TkcgICAgICAgICAgICAgICAgID0gMS4wDQo+ICsgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAg ICAgICA9IEJBU0UNCj4gKyAgTElCUkFSWV9DTEFTUyAgICAgICAgICAgICAgICAgID0gU3BjckRl dmljZUxpYg0KPiArDQo+ICtbUGFja2FnZXNdDQo+ICsgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ICsN Cj4gK1tTb3VyY2VzXQ0KPiArICBTcGNyRGV2aWNlTGliTnVsbC5jDQo+IGRpZmYgLS1naXQNCj4g YS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L1NwY3JGZWF0dXJlUGtnL1JlYWRt ZS5tZA0KPiBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvU3BjckZlYXR1cmVQ a2cvUmVhZG1lLm1kDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAu LmExNjgzNWIxNTENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9GZWF0dXJlcy9JbnRlbC9PdXRP ZkJhbmRNYW5hZ2VtZW50L1NwY3JGZWF0dXJlUGtnL1JlYWRtZS5tZA0KPiBAQCAtMCwwICsxLDY0 IEBADQo+ICsjIE92ZXJ2aWV3DQo+ICsqICoqRmVhdHVyZSBOYW1lOioqIFNlcmlhbCBQb3J0IENv bnNvbGUgUmVkaXJlY3Rpb24gVGFibGUgKFNQQ1IpDQo+ICsqICoqUEkgUGhhc2UocykgU3VwcG9y dGVkOioqIERYRQ0KPiArKiAqKlNNTSBSZXF1aXJlZD8qKiBObw0KPiArDQo+ICtNb3JlIEluZm9y bWF0aW9uOg0KPiArKiBbU2VyaWFsIFBvcnQgQ29uc29sZSBSZWRpcmVjdGlvbiBUYWJsZQ0KPiAr KFNQQ1IpXShodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy93aW5kb3dzLQ0KPiBoYXJk d2FyZS9kcml2ZXJzL3NlcnBvDQo+ICtydHMvc2VyaWFsLXBvcnQtY29uc29sZS1yZWRpcmVjdGlv bi10YWJsZSkNCj4gKw0KPiArIyMgUHVycG9zZQ0KPiArVGhlIFNQQ1IgZmVhdHVyZSBwcm92aWRl cyB0aGUgZnVuY3Rpb25hbGl0eSB0aGF0IHNlbGVjdCBhIHNlcmlhbCBwb3J0IGRldmljZQ0KPiBh bmQgZmlsbCBpdHMgaW5mbyB0byBBQ1BJIHRhYmxlLg0KPiArV2luZG93cyBjYW4gZ2V0IHRoaXMg aW5mbyBhbmQgdXNlIHRoaXMgc2VyaWFsIHBvcnQgYXMgaW5wdXQvb3V0cHV0IGRldmljZSBpbg0K PiBNaWNyb3NvZnTCriBXaW5kb3dzwq4gRW1lcmdlbmN5IE1hbmFnZW1lbnQgU2VydmljZXMgKEVN UykuDQo+ICsNCj4gKyMgSGlnaC1MZXZlbCBUaGVvcnkgb2YgT3BlcmF0aW9uDQo+ICtBIGR4ZSBk cml2ZXIgd2lsbCBjYWxsIGEgbGlicmFyeSBmdW5jdGlvbiB0byBnZXQgdGhlIHNlcmlhbCBwb3J0 IGRldmljZSwgYW5kDQo+IHByb2R1Y2VzIHRoZSBBQ1BJIHRhYmxlLg0KPiArUGxhdGZvcm0gY2Fu IGltcGxlbWVudCBpdHMgb3duIGxpYnJhcnkgdG8gc2VsZWN0IHRoZSBzZXJpYWwgcG9ydCBkZXZp Y2UuDQo+ICsNCj4gKyMjIEZpcm13YXJlIFZvbHVtZXMNCj4gKyogUG9zdE1lbW9yeQ0KPiArDQo+ ICsjIyBNb2R1bGVzDQo+ICsqIFNwY3JBY3BpRHhlDQo+ICsqIFNwY3JEZXZpY2VMaWJOdWxsDQo+ ICsNCj4gKyMjIFNwY3JBY3BpRHhlDQo+ICtUaGUgbWFpbiBkcml2ZXIgb2YgY29udmVydCB0aGUg c2VyaWFsIHBvcnQgZGV2aWNlIGluZm8gdG8gQUNQSSB0YWJsZS4NCj4gK0l0IHdpbGwgY2FsbCB0 aGUgZnVuY3Rpb24gR2V0U3BjckRldmljZSgpIGluIHRoZSBsaWJyYXJ5IFNwY3JEZXZpY2VMaWIg dG8gZ2V0DQo+IHRoZSBzZXJpYWwgcG9ydCBkZXZpY2UgcGF0aC4NCj4gK0lmIHRoZSBzZXJpYWwg cG9ydCBkZXZpY2UgcGF0aCBpcyBub3QgTlVMTCwgdGhlbiB1c2UgZ0VmaVBjaUlvUHJvdG9jb2xH dWlkIHRvDQo+IGdldCB0aGUgUENJIGluZm8sIGFuZCB1c2UgdGhlIGdFZmlTZXJpYWxJb1Byb3Rv Y29sR3VpZCB0byBnZXQgdGhlIHNlcmlhbCBwb3J0DQo+IGluZm8sIHN1Y2ggYXMgdGhlIGJhdWQg cmF0ZSBldGMuDQo+ICtJZiB0aGUgc2VyaWFsIHBvcnQgZGV2aWNlIGlzIFBDSSBkZXZpY2UgMDA6 MTY6MDMgKEFNVCBzZXJpYWwgb3ZlciBsYW4gUENJDQo+IGRldmljZSksIHRoZW4gd2lsbCBzZXQg dGhlIEJhc2VBZGRyZXNzLg0KPiArQXQgbGFzdCBmaWxsIHRoZSBBQ1BJIHRhYmxlIGFzIFdpbmRv d3MgcmVxdWlyZWQuDQo+ICsNCj4gKyMjIFNwY3JEZXZpY2VMaWJOdWxsDQo+ICtBIE5VTEwgaW1w bGVtZW50aW9uIG9mIGxpYnJhcnkgU3BjckRldmljZUxpYiwgaXQgcmV0dXJuIE5VTEwgZm9yIGZ1 bmN0aW9uDQo+IEdldFNwY3JEZXZpY2UoKS4NCj4gK1BsYXRmb3JtIG1heWJlIGltcGxlbWVudGUg aXRzIG93biBTcGNyRGV2aWNlTGliLg0KPiArDQo+ICsjIyBLZXkgRnVuY3Rpb25zDQo+ICtGaWxs IHRoZSBzZXJpYWwgcG9ydCBkZXZpY2UgaW5mbyB1c2VkIGZvciBTUENSIHRvIEFDUEkgdGFibGUu DQo+ICsNCj4gKyMjIENvbmZpZ3VyYXRpb24NCj4gK1RoZXJlIGlzIG5vdCBzcGVjaWFsIGNvbmZp Z3VyYXRpb24uDQo+ICtCdXQgdGhlIHBsYXRmb3JtIG1heWJlIGltcGxlbWVudGUgaXRzIG93biBT cGNyRGV2aWNlTGliLg0KPiArDQo+ICsjIyBEYXRhIEZsb3dzDQo+ICtHZXRTcGNyRGV2aWNlKCkg LT4gc2VyaWFsIHBvcnQgZGV2aWNlIHBhdGggLT4gZ2V0IFBDSSBpbmZvIGFuZCBzZXJpYWwgcG9y dCBpbmZvDQo+IC0+IEFDUEkgdGFibGUuDQo+ICsNCj4gKyMjIENvbnRyb2wgRmxvd3MNCj4gK0dl dFNwY3JEZXZpY2UoKSBpbiBTcGNyRGV2aWNlTGliIC0+IFNwY3JBY3BpRHhlLg0KPiArDQo+ICsj IyBCdWlsZCBGbG93cw0KPiArVGhlcmUgaXMgbm90IHNwZWNpYWwgYnVpbGQgZmxvdy4NCj4gKw0K PiArIyMgVGVzdCBQb2ludCBSZXN1bHRzDQo+ICsqIENoZWNrIHRoZSBvdXRwdXQgQUNQSSB0YWJs ZS4NCj4gKw0KPiArIyMgRnVuY3Rpb25hbCBFeGl0IENyaXRlcmlhDQo+ICsqIENoZWNrIHRoZSBv dXRwdXQgQUNQSSB0YWJsZS4NCj4gKw0KPiArIyMgRmVhdHVyZSBFbmFibGluZyBDaGVja2xpc3QN Cj4gK1RoZXJlIGlzIG5vdCBzcGVjaWFsIFBDRCB0byBlbmFibGUgdGhpcyBmZWF0dXJlLg0KPiAr DQo+ICsjIyBQZXJmb3JtYW5jZSBJbXBhY3QNCj4gK1RoZSBTcGNyQWNwaUR4ZS5lZmkgd2l0aCBT cGNyRGV2aWNlTGliTnVsbCBkZWJ1ZyB2ZXJzaW9uIHNpemU6IDEuNEtCLA0KPiByZWxlYXNlIHZl cnNpb24gc2l6ZTogMS4xMktCLg0KPiArDQo+ICsjIyBDb21tb24gT3B0aW1pemF0aW9ucw0KPiAr Ti9BIG5vdy4NCj4gZGlmZiAtLWdpdA0KPiBhL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFn ZW1lbnQvU3BjckZlYXR1cmVQa2cvU3BjckFjcGlEeGUvU3BjDQo+IHJBY3BpLmMNCj4gYi9GZWF0 dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L1NwY3JGZWF0dXJlUGtnL1NwY3JBY3BpRHhl L1NwDQo+IGNyQWNwaS5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAw MDAuLjg1YWM0OGNmYTUNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysNCj4gYi9GZWF0dXJlcy9JbnRl bC9PdXRPZkJhbmRNYW5hZ2VtZW50L1NwY3JGZWF0dXJlUGtnL1NwY3JBY3BpRHhlL1NwDQo+IGNy DQo+ICsrKyBBY3BpLmMNCj4gQEAgLTAsMCArMSw0NjcgQEANCj4gKy8qKiBAZmlsZQ0KPiArICBJ bXBsZW1lbnRhdGlvbiB0aGUgZHJpdmVyIHVzZWQgdG8gYWRkIFNQQ1IgZGV2aWNlIGluZm8gdG8g QUNQSSB0YWJsZS4NCj4gKyAgU1BDUiBpcyBhYmJyZXZpYXRpb24gb2YgU2VyaWFsIFBvcnQgQ29u c29sZSBSZWRpcmVjdGlvbiBUYWJsZSAoU1BDUikuDQo+ICsNCj4gKyAgQ29weXJpZ2h0IChjKSAy MDA0IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gKyByZXNlcnZlZC48 QlI+DQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ ICsNCj4gKyoqLw0KPiArDQo+ICsjaW5jbHVkZSAiU3BjckFjcGkuaCINCj4gKw0KPiArI2RlZmlu ZSBQQ0FOU0lUWVBFICAgICAgICAgICAgICAgIDANCj4gKyNkZWZpbmUgVlQxMDBUWVBFICAgICAg ICAgICAgICAgICAxDQo+ICsjZGVmaW5lIFZUMTAwUExVU1RZUEUgICAgICAgICAgICAgMg0KPiAr I2RlZmluZSBWVFVURjhUWVBFICAgICAgICAgICAgICAgIDMNCj4gKw0KPiArI2RlZmluZSBQQ0lf TUFYX0JBUl9OTyAgICAgICAgICAgIDYNCj4gKw0KPiArVUlOVDggIFRlcm1pbmFsVHlwZVZhbHVl WzRdID0NCj4gK3sNCj4gKyAgUENBTlNJVFlQRSwNCj4gKyAgVlQxMDBUWVBFLA0KPiArICBWVDEw MFBMVVNUWVBFLA0KPiArICBWVFVURjhUWVBFDQo+ICt9Ow0KPiArDQo+ICsvLy8NCj4gKy8vLyBH dWlkIGZvciBtZXNzYWdpbmcgcGF0aCwgdXNlZCBpbiBTZXJpYWwgcG9ydCBzZXR0aW5nLg0KPiAr Ly8vDQo+ICtFRklfR1VJRCAgVGVybWluYWxUeXBlR3VpZFs0XSA9IHsNCj4gKyAgREVWSUNFX1BB VEhfTUVTU0FHSU5HX1BDX0FOU0ksDQo+ICsgIERFVklDRV9QQVRIX01FU1NBR0lOR19WVF8xMDAs DQo+ICsgIERFVklDRV9QQVRIX01FU1NBR0lOR19WVF8xMDBfUExVUywNCj4gKyAgREVWSUNFX1BB VEhfTUVTU0FHSU5HX1ZUX1VURjgNCj4gK307DQo+ICsNCj4gKy8vDQo+ICsvLyBTZXJpYWwgUG9y dCBDb25zb2xlIFJlZGlyZWN0aW9uIFRhYmxlIC8vIFBsZWFzZSBtb2RpZnkgYWxsIHZhbHVlcyBp bg0KPiArU3Bjci5oIG9ubHkuDQo+ICsvLw0KPiArRUZJX0FDUElfU0VSSUFMX1BPUlRfQ09OU09M RV9SRURJUkVDVElPTl9UQUJMRSBnU3BjckluZm8gPSB7DQo+ICsgIHsNCj4gKw0KPiBFRklfQUNQ SV8yXzBfU0VSSUFMX1BPUlRfQ09OU09MRV9SRURJUkVDVElPTl9UQUJMRV9TSUdOQVRVUkUsDQo+ ICsgICAgc2l6ZW9mIChFRklfQUNQSV9TRVJJQUxfUE9SVF9DT05TT0xFX1JFRElSRUNUSU9OX1RB QkxFKSwNCj4gKyAgICBFRklfQUNQSV9TRVJJQUxfUE9SVF9DT05TT0xFX1JFRElSRUNUSU9OX1RB QkxFX1JFVklTSU9OLA0KPiArDQo+ICsgICAgLy8NCj4gKyAgICAvLyBDaGVja3N1bSB3aWxsIGJl IHVwZGF0ZWQgYXQgcnVudGltZQ0KPiArICAgIC8vDQo+ICsgICAgMHgwMCwNCj4gKw0KPiArICAg IC8vDQo+ICsgICAgLy8gSXQgaXMgZXhwZWN0ZWQgdGhhdCB0aGVzZSB2YWx1ZXMgd2lsbCBiZSBw cm9ncmFtbWVkIGF0IHJ1bnRpbWUNCj4gKyAgICAvLw0KPiArICAgIHsnSScsICdOJywgJ1QnLCAn RScsICdMJywgJyAnfSwNCj4gKw0KPiArICAgIFNJR05BVFVSRV82NCAoJ1MnLCAnUCcsICdDJywg J1InLCAnVCcsICdhJywgJ2InLCAnbCcpLA0KPiArICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g U3BjciByZXZpc2lvbiwNCj4gKyAgICBTSUdOQVRVUkVfMzIgKCdJJywgJ04nLCAnVCcsICdMJyks DQo+ICsgICAgMHgwMQ0KPiArICB9LA0KPiArDQo+ICsgIC8vDQo+ICsgIC8vIEJlZ2lubmluZyBv ZiBTUENSIHNwZWNpZmljIGZpZWxkcw0KPiArICAvLw0KPiArICAweDAwLCAgICAgICAgICAgICAg IC8vSU5URVJGQUNFX1RZUEUsDQo+ICsgIHsNCj4gKyAgICAweDAwLCAgICAgICAgICAgICAgIC8v UkVTRVJWRURfQllURSwNCj4gKyAgICAweDAwLCAgICAgICAgICAgICAgIC8vUkVTRVJWRURfQllU RSwNCj4gKyAgICAweDAwICAgICAgICAgICAgICAgLy9SRVNFUlZFRF9CWVRFLA0KPiArICB9LA0K PiArDQo+ICsgIC8vDQo+ICsgIC8vIEJhc2UgQWRkcmVzcyBCbG9jaw0KPiArICAvLw0KPiArICB7 DQo+ICsgICAgRUZJX0FDUElfM18wX1NZU1RFTV9JTywNCj4gKyAgICAweDA4LCAgICAgICAgICAg ICAgIC8vQkFTRV9BRERSRVNTX0JJVF9XSURUSCwNCj4gKyAgICAweDAwLCAgICAgICAgICAgICAg IC8vQkFTRV9BRERSRVNTX0JJVF9PRkZTRVQsDQo+ICsgICAgMHgwMCwgICAgICAgICAgICAgICAv L1JFU0VSVkVEX0JZVEUsDQo+ICsgICAgMHgwMDAwMDAwMDAwMDAwMDAwICAvL0JBU0VfQUREUkVT U19BRERSRVNTLCAgfSwNCj4gKw0KPiArICAweDAzLCAgICAgICAgICAgICAgIC8vSU5URVJSVVBU X1RZUEUsDQo+ICsgIDB4MDQsICAgICAgICAgICAgICAgLy9JUlEsDQo+ICsgIDB4MDQsICAgICAg ICAgICAgICAgLy9HTE9CQUxfU1lTVEVNX0lOVEVSUlVQVCwNCj4gKyAgMHgwNywgICAgICAgICAg ICAgICAvL0JBVURfUkFURSwNCj4gKyAgMHgwMCwgICAgICAgICAgICAgICAvL1BBUklUWSwNCj4g KyAgMHgwMSwgICAgICAgICAgICAgICAvL1NUT1BfQklUUywNCj4gKyAgMHgwMCwgICAgICAgICAg ICAgICAvL0ZMT1dfQ09OVFJPTCwNCj4gKyAgMHgwMywgICAgICAgICAgICAgICAvL1RFUk1JTkFM X1RZUEUsDQo+ICsgIDB4MDAsICAgICAgICAgICAgICAgLy9MQU5HVUFHRSwNCj4gKyAgMHhGRkZG LCAgICAgICAgICAgICAvL1BDSV9ERVZJQ0VfSUQsDQo+ICsgIDB4RkZGRiwgICAgICAgICAgICAg Ly9QQ0lfVkVORE9SX0lELA0KPiArICAweDAwLCAgICAgICAgICAgICAgIC8vUENJX0JVU19OVU1C RVIsDQo+ICsgIDB4MDAsICAgICAgICAgICAgICAgLy9QQ0lfREVWSUNFX05VTUJFUiwNCj4gKyAg MHgwMCwgICAgICAgICAgICAgICAvL1BDSV9GVU5DVElPTl9OVU1CRVIsDQo+ICsgIDB4MDAwMDAw MDAsICAgICAgICAgLy9QQ0lfRkxBR1MsDQo+ICsgIDB4MDAsICAgICAgICAgICAgICAgLy9QQ0lf U0VHTUVOVCwNCj4gKyAgRUZJX0FDUElfUkVTRVJWRURfRFdPUkQNCj4gK307DQo+ICsNCj4gKw0K PiArLyoqDQo+ICsNCj4gKyAgSW5zdGFsbCBCb290IERldmljZSBTZWxlY3Rpb24gUHJvdG9jb2wN Cj4gKw0KPiArICBAcGFyYW0gSW1hZ2VIYW5kbGUgICAgIFRoZSBpbWFnZSBoYW5kbGUuDQo+ICsg IEBwYXJhbSBTeXN0ZW1UYWJsZSAgICAgVGhlIHN5c3RlbSB0YWJsZS4NCj4gKw0KPiArICBAcmV0 dmFsICBFRklfU1VDRUVTUyAgQkRTIGhhcyBmaW5pc2hlZCBpbml0aWFsaXppbmcuDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gdGhlIGRpc3BhdGNoZXIgYW5kIHJlY2FsbCBCRFMu RW50cnkNCj4gKyAgQHJldHZhbCAgT3RoZXIgICAgICAgIFJldHVybiBzdGF0dXMgZnJvbSBBbGxv Y2F0ZVBvb2woKSBvciBnQlMtDQo+ID5JbnN0YWxsUHJvdG9jb2xJbnRlcmZhY2UNCj4gKw0KPiAr KiovDQo+ICtFRklfU1RBVFVTDQo+ICtFRklBUEkNCj4gK1NwY3JJbml0aWFsaXplICgNCj4gKyAg SU4gRUZJX0hBTkRMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZUhhbmRsZSwNCj4g KyAgSU4gRUZJX1NZU1RFTV9UQUJMRSAgICAgICAgICAgICAgICAgICAgICAqU3lzdGVtVGFibGUN Cj4gKyAgKQ0KPiArew0KPiArICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgIFN0YXR1 czsNCj4gKyAgRUZJX0VWRU5UICAgICAgICAgICAgICAgICAgICAgICBSZWFkeVRvQm9vdEV2ZW50 Ow0KPiArICAvLw0KPiArICAvLyBJbnN0YWxsIHByb3RvY29sIGludGVyZmFjZQ0KPiArICAvLw0K PiArICBTdGF0dXMgPSBFZmlDcmVhdGVFdmVudFJlYWR5VG9Cb290RXggKA0KPiArICAgICAgICAg ICAgVFBMX0NBTExCQUNLLA0KPiArICAgICAgICAgICAgT3V0T2ZCYW5kQUNQSVRhYmxlQ29uc3Ry dWN0aW9uLA0KPiArICAgICAgICAgICAgTlVMTCwNCj4gKyAgICAgICAgICAgICZSZWFkeVRvQm9v dEV2ZW50DQo+ICsgICAgICAgICAgICApOw0KPiArICByZXR1cm4gU3RhdHVzOw0KPiArfQ0KPiAr DQo+ICsvKioNCj4gKyAgQ2hlY2sgd2hldGhlciB0aGUgZGV2aWNlIHBhdGggbm9kZSBpcyBJU0Eg U2VyaWFsIE5vZGUuDQo+ICsNCj4gKyAgQHBhcmFtIERldmljZVBhdGggICAgIERldmljZSBwYXRo IG5vZGUgdG8gYmUgY2hlY2tlZA0KPiArDQo+ICsgIEByZXR2YWwgVFJVRSAgICAgICAgICBJdCdz IElTQSBTZXJpYWwgTm9kZS4NCj4gKyAgQHJldHZhbCBGQUxTRSAgICAgICAgIEl0J3MgTk9UIElT QSBTZXJpYWwgTm9kZS4NCj4gKw0KPiArKiovDQo+ICtCT09MRUFODQo+ICtIYXNJc2FTZXJpYWxO b2RlICgNCj4gKyAgSU4gRUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICpEZXZpY2VQYXRoDQo+ICsg ICkNCj4gK3sNCj4gKyAgRUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICAqTm9kZTsNCj4gKyAgQUNQ SV9ISURfREVWSUNFX1BBVEggICAgICAqQWNwaTsNCj4gKw0KPiArICBmb3IgKE5vZGUgPSBEZXZp Y2VQYXRoOyAhSXNEZXZpY2VQYXRoRW5kIChOb2RlKTsgTm9kZSA9DQo+IE5leHREZXZpY2VQYXRo Tm9kZSAoTm9kZSkpIHsNCj4gKyAgICBBY3BpID0gKEFDUElfSElEX0RFVklDRV9QQVRIICopIE5v ZGU7DQo+ICsgICAgaWYgKChEZXZpY2VQYXRoVHlwZSAoQWNwaSkgPT0gQUNQSV9ERVZJQ0VfUEFU SCkgJiYNCj4gKERldmljZVBhdGhTdWJUeXBlIChBY3BpKSA9PSBBQ1BJX0RQKSAmJg0KPiArICAg ICAgICAoUmVhZFVuYWxpZ25lZDMyICgmQWNwaS0+SElEKSA9PSBFSVNBX1BOUF9JRCAoMHgwNTAx KSkpIHsNCj4gKyAgICAgIHJldHVybiBUUlVFOw0KPiArICAgIH0NCj4gKyAgfQ0KPiArDQo+ICsg IHJldHVybiBGQUxTRTsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgIEdldCBJcnEgYW5kIHJlc291 cmNlIGluZm8gZnJvbSBpc2EgdHlwZSBjb25zb2xlIGRldmljZS4NCj4gKw0KPiArICBAcGFyYW0g U2F2ZWREZXZpY2VQYXRoICAgICAgICAgICBEZXZpY2UgcGF0aCBmb3IgaXNhIGRldmljZS4NCj4g Kw0KPiArKiovDQo+ICtWT0lEDQo+ICtHZXRJc2FUeXBlSW5mbyAoDQo+ICsgIElOIEVGSV9ERVZJ Q0VfUEFUSF9QUk9UT0NPTCAqU2F2ZWREZXZpY2VQYXRoDQo+ICsgICkNCj4gK3sNCj4gKyAgRUZJ X1NUQVRVUyAgICAgICAgICAgICAgIFN0YXR1czsNCj4gKyAgRUZJX0hBTkRMRSAgICAgICAgICAg ICAgIEhhbmRsZTsNCj4gKyAgQUNQSV9SRVNPVVJDRV9IRUFERVJfUFRSIFJlc291cmNlczsNCj4g KyAgRUZJX1NJT19QUk9UT0NPTCAgICAgICAgICpTaW87DQo+ICsgIEVGSV9BQ1BJX0lSUV9OT0ZM QUdfREVTQ1JJUFRPUiAgICpJcnE7DQo+ICsgIEVGSV9BQ1BJX0ZJWEVEX0xPQ0FUSU9OX0lPX1BP UlRfREVTQ1JJUFRPUiAqRml4ZWRMb2NhdGlvbjsNCj4gKw0KPiArICAgIC8vDQo+ICsgICAgLy8g VHJ5IHRvIGdldCBJUlAgYW5kIEJhc2VBZGRyZXNzIGluZm8uDQo+ICsgICAgLy8NCj4gKyAgICBT dGF0dXMgPSBnQlMtPkxvY2F0ZURldmljZVBhdGgoDQo+ICsgICAgICAgICAgICAgICAgICAgICZn RWZpU2lvUHJvdG9jb2xHdWlkLA0KPiArICAgICAgICAgICAgICAgICAgICAmU2F2ZWREZXZpY2VQ YXRoLA0KPiArICAgICAgICAgICAgICAgICAgICAmSGFuZGxlDQo+ICsgICAgICAgICAgICAgICAg ICAgICk7DQo+ICsgICAgaWYgKEVGSV9FUlJPUihTdGF0dXMpKSB7DQo+ICsgICAgICByZXR1cm47 DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgU3RhdHVzID0gZ0JTLT5IYW5kbGVQcm90b2NvbCAoDQo+ ICsgICAgICAgICAgICAgICAgICAgIEhhbmRsZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgJmdF ZmlTaW9Qcm90b2NvbEd1aWQsDQo+ICsgICAgICAgICAgICAgICAgICAgIChWT0lEICoqKSAmU2lv DQo+ICsgICAgICAgICAgICAgICAgICAgICk7DQo+ICsgICAgaWYgKEVGSV9FUlJPUihTdGF0dXMp KSB7DQo+ICsgICAgICByZXR1cm47DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgU3RhdHVzID0gU2lv LT5HZXRSZXNvdXJjZXMgKFNpbywgJlJlc291cmNlcyk7DQo+ICsgICAgaWYgKEVGSV9FUlJPUihT dGF0dXMpKSB7DQo+ICsgICAgICByZXR1cm47DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgd2hpbGUg KFJlc291cmNlcy5TbWFsbEhlYWRlci0+Qnl0ZSAhPSBBQ1BJX0VORF9UQUdfREVTQ1JJUFRPUikg ew0KPiArICAgICAgc3dpdGNoIChSZXNvdXJjZXMuU21hbGxIZWFkZXItPkJ5dGUpIHsNCj4gKyAg ICAgICAgY2FzZSBBQ1BJX0lSUV9ERVNDUklQVE9SOg0KPiArICAgICAgICBjYXNlIEFDUElfSVJR X05PRkxBR19ERVNDUklQVE9SOg0KPiArICAgICAgICAgIElycSA9IChFRklfQUNQSV9JUlFfTk9G TEFHX0RFU0NSSVBUT1IgKikgUmVzb3VyY2VzLlNtYWxsSGVhZGVyOw0KPiArICAgICAgICAgIGdT cGNySW5mby5JcnEgPSAwOw0KPiArICAgICAgICAgIHdoaWxlIChJcnEtPk1hc2sgPiAxKSB7DQo+ ICsgICAgICAgICAgICBnU3BjckluZm8uSXJxICsrOw0KPiArICAgICAgICAgICAgSXJxLT5NYXNr ID0gSXJxLT5NYXNrID4+IDE7DQo+ICsgICAgICAgICAgfQ0KPiArICAgICAgICAgIGJyZWFrOw0K PiArICAgICAgICBjYXNlIEFDUElfRklYRURfTE9DQVRJT05fSU9fUE9SVF9ERVNDUklQVE9SOg0K PiArICAgICAgICAgIEZpeGVkTG9jYXRpb24gPSAoRUZJX0FDUElfRklYRURfTE9DQVRJT05fSU9f UE9SVF9ERVNDUklQVE9SDQo+ICopUmVzb3VyY2VzLlNtYWxsSGVhZGVyOw0KPiArICAgICAgICAg IGdTcGNySW5mby5CYXNlQWRkcmVzcy5BZGRyZXNzID0gRml4ZWRMb2NhdGlvbi0+QmFzZUFkZHJl c3M7DQo+ICsgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAgIGRlZmF1bHQ6DQo+ICsgICAgICAg ICAgYnJlYWs7DQo+ICsgICAgICB9DQo+ICsNCj4gKyAgICAgIGlmIChSZXNvdXJjZXMuU21hbGxI ZWFkZXItPkJpdHMuVHlwZSA9PSAwKSB7DQo+ICsgICAgICAgIFJlc291cmNlcy5TbWFsbEhlYWRl ciA9IChBQ1BJX1NNQUxMX1JFU09VUkNFX0hFQURFUiAqKSAoKFVJTlQ4DQo+ICopIFJlc291cmNl cy5TbWFsbEhlYWRlcg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFJlc291 cmNlcy5TbWFsbEhlYWRlci0+Qml0cy5MZW5ndGgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKyBzaXplb2YgKCpSZXNvdXJjZXMuU21hbGxIZWFkZXIpKTsNCj4gKyAgICAgIH0g ZWxzZSB7DQo+ICsgICAgICAgIFJlc291cmNlcy5MYXJnZUhlYWRlciA9IChBQ1BJX0xBUkdFX1JF U09VUkNFX0hFQURFUiAqKSAoKFVJTlQ4DQo+ICopIFJlc291cmNlcy5MYXJnZUhlYWRlcg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFJlc291cmNlcy5MYXJnZUhlYWRlci0+ TGVuZ3RoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2l6ZW9mICgqUmVz b3VyY2VzLkxhcmdlSGVhZGVyKSk7DQo+ICsgICAgICB9DQo+ICsgICAgfQ0KPiArfQ0KPiArDQo+ ICsvKioNCj4gKyAgR2V0IElycSBhbmQgcmVzb3VyY2UgaW5mbyBmcm9tIFBjaSB0eXBlIGNvbnNv bGUgZGV2aWNlLg0KPiArDQo+ICsgIEBwYXJhbSBTYXZlZERldmljZVBhdGggICAgICAgICAgIERl dmljZSBwYXRoIGZvciBQQ0kgZGV2aWNlLg0KPiArDQo+ICsqKi8NCj4gK1ZPSUQNCj4gK0dldFBj aVR5cGVJbmZvICgNCj4gKyAgSU4gRUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICpTYXZlZERldmlj ZVBhdGgNCj4gKyAgKQ0KPiArew0KPiArICBFRklfU1RBVFVTICAgICAgICAgICAgICAgU3RhdHVz Ow0KPiArICBFRklfSEFORExFICAgICAgICAgICAgICAgUGNpSGFuZGxlOw0KPiArICBFRklfUENJ X0lPX1BST1RPQ09MICAgICAgKlBjaUlvOw0KPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAg QnVzOw0KPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgRGV2aWNlOw0KPiArICBVSU5UTiAg ICAgICAgICAgICAgICAgICAgRnVuY3Rpb247DQo+ICsgIFVJTlROICAgICAgICAgICAgICAgICAg ICBTZWdOdW07DQo+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICBJcnE7DQo+ICsgIFVJTlQx NiAgICAgICAgICAgICAgICAgICBCYXNlQWRkcmVzczsNCj4gKyAgVUlOVDggICAgICAgICAgICAg ICAgICAgIENvdW50Ow0KPiArICBVSU5UNjQgICAgICAgICAgICAgICAgICAgU3VwcG9ydHM7DQo+ ICsgIFVJTlQxNiAgICAgICAgICAgICAgICAgICBWZW5kb3JJZDsNCj4gKyAgVUlOVDE2ICAgICAg ICAgICAgICAgICAgIERldmljZUlkOw0KPiArICBFRklfQUNQSV9BRERSRVNTX1NQQUNFX0RFU0NS SVBUT1IgICAqUmVzb3VyY2VzOw0KPiArDQo+ICsgIFBjaUlvICAgICA9IE5VTEw7DQo+ICsgIFJl c291cmNlcyA9IE5VTEw7DQo+ICsgIFN1cHBvcnRzICA9IDB4MDE7DQo+ICsgIEJ1cyAgICAgICA9 IDA7DQo+ICsgIERldmljZSAgICA9IDA7DQo+ICsgIEZ1bmN0aW9uICA9IDA7DQo+ICsgIFNlZ051 bSAgICA9IDA7DQo+ICsgIElycSAgICAgICA9IDA7DQo+ICsgIEJhc2VBZGRyZXNzID0gMDsNCj4g KyAgVmVuZG9ySWQgID0gMDsNCj4gKyAgRGV2aWNlSWQgID0gMDsNCj4gKw0KPiArICBTdGF0dXMg PSBnQlMtPkxvY2F0ZURldmljZVBhdGggKCZnRWZpUGNpSW9Qcm90b2NvbEd1aWQsDQo+ICsgJlNh dmVkRGV2aWNlUGF0aCwgKFZPSUQgKiopICZQY2lIYW5kbGUpOyAgaWYgKEVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KPiArICAgIFN0YXR1cyA9IEVGSV9OT1RfRk9VTkQ7DQo+ICsgICAgcmV0dXJuOw0K PiArICB9DQo+ICsNCj4gKyAgU3RhdHVzID0gZ0JTLT5IYW5kbGVQcm90b2NvbChQY2lIYW5kbGUs ICZnRWZpUGNpSW9Qcm90b2NvbEd1aWQsIChWT0lEDQo+ICsgKiopICZQY2lJbyk7ICBpZiAoRUZJ X0VSUk9SIChTdGF0dXMpIHx8IChQY2lJbyA9PSBOVUxMKSkgew0KPiArICAgIFN0YXR1cyA9IEVG SV9OT1RfRk9VTkQ7DQo+ICsgICAgcmV0dXJuOw0KPiArICB9DQo+ICsNCj4gKyAgUGNpSW8tPkdl dExvY2F0aW9uKFBjaUlvLCAmU2VnTnVtLCAmQnVzLCAmRGV2aWNlLCAmRnVuY3Rpb24pOyAgaWYN Cj4gKyAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ICsgICAgU3RhdHVzID0gRUZJX05PVF9GT1VO RDsNCj4gKyAgICByZXR1cm47DQo+ICsgIH0NCj4gKw0KPiArICBpZiAoQnVzID09IDB4MDAgJiYg RGV2aWNlID09IDB4MTYgJiYgRnVuY3Rpb24gPT0gMykgIHsNCj4gKyAgICBmb3IgKENvdW50ID0g MDsgQ291bnQgPCBQQ0lfTUFYX0JBUl9OTzsgQ291bnQrKykgew0KPiArICAgICAgU3RhdHVzICA9 IFBjaUlvLT5HZXRCYXJBdHRyaWJ1dGVzIChQY2lJbywgQ291bnQsICZTdXBwb3J0cywgKFZPSUQg KiopDQo+ICZSZXNvdXJjZXMpOw0KPiArICAgICAgaWYgKCFFRklfRVJST1IoU3RhdHVzKSkgew0K PiArICAgICAgICBpZiAoUmVzb3VyY2VzLT5SZXNUeXBlID09IDEpIHsgLy8gVFlQRV9JTw0KPiAr ICAgICAgICAgIEJhc2VBZGRyZXNzPSAoVUlOVDE2KVJlc291cmNlcy0+QWRkclJhbmdlTWluOw0K PiArICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICB9DQo+ICsgICAgICAgIEZyZWVQb29sIChS ZXNvdXJjZXMpOw0KPiArICAgICAgICBSZXNvdXJjZXMgPSBOVUxMOw0KPiArICAgICAgfQ0KPiAr ICAgIH0NCj4gKyAgfQ0KPiArDQo+ICsgIFN0YXR1cyA9IFBjaUlvLT5QY2kuUmVhZChQY2lJbywg RWZpUGNpSW9XaWR0aFVpbnQ4LCAweDNjLCAxLCAmSXJxKTsNCj4gKyBpZiAoRUZJX0VSUk9SKFN0 YXR1cykpIHsNCj4gKyAgICBnb3RvIERvbmU7DQo+ICsgIH0NCj4gKw0KPiArICBTdGF0dXMgPSBQ Y2lJby0+UGNpLlJlYWQoUGNpSW8sIEVmaVBjaUlvV2lkdGhVaW50MTYsIDB4MDAsIDEsDQo+ICsg JlZlbmRvcklkKTsgIGlmIChFRklfRVJST1IoU3RhdHVzKSkgew0KPiArICAgIGdvdG8gRG9uZTsN Cj4gKyAgfQ0KPiArDQo+ICsgIFN0YXR1cyA9IFBjaUlvLT5QY2kuUmVhZChQY2lJbywgRWZpUGNp SW9XaWR0aFVpbnQxNiwgMHgwMiwgMSwNCj4gKyAmRGV2aWNlSWQpOyAgaWYgKEVGSV9FUlJPUihT dGF0dXMpKSB7DQo+ICsgICAgZ290byBEb25lOw0KPiArICB9DQo+ICsNCj4gKyAgZ1NwY3JJbmZv LkJhc2VBZGRyZXNzLkFkZHJlc3MgPSBCYXNlQWRkcmVzczsgIGdTcGNySW5mby5JcnEgPSAoVUlO VDgpDQo+ICsgSXJxOw0KPiArDQo+ICsgIGdTcGNySW5mby5QY2lEZXZpY2VJZCAgICAgICA9IERl dmljZUlkOw0KPiArICBnU3BjckluZm8uUGNpVmVuZG9ySWQgICAgICAgPSBWZW5kb3JJZDsNCj4g KyAgZ1NwY3JJbmZvLlBjaUJ1c051bWJlciAgICAgID0gKFVJTlQ4KSBCdXM7DQo+ICsgIGdTcGNy SW5mby5QY2lEZXZpY2VOdW1iZXIgICA9IChVSU5UOCkgRGV2aWNlOw0KPiArICBnU3BjckluZm8u UGNpRnVuY3Rpb25OdW1iZXIgPSAoVUlOVDgpIEZ1bmN0aW9uOw0KPiArICBnU3BjckluZm8uUGNp U2VnbWVudCAgICAgICAgPSAoVUlOVDgpIFNlZ051bTsNCj4gKw0KPiArRG9uZToNCj4gKyAgaWYg KFJlc291cmNlcyAhPSBOVUxMKSB7DQo+ICsgICAgRnJlZVBvb2wgKFJlc291cmNlcyk7DQo+ICsg IH0NCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgIEluc3RhbGxzIHRoZSBTbWJpb3MgVGFibGUgdG8g dGhlIFN5c3RlbSBUYWJsZS4gVGhpcyBmdW5jdGlvbiBnZXRzDQo+ICtjYWxsZWQNCj4gKyAgd2hl biB0aGUgRUZJX0VWRU5UX1NJR05BTF9SRUFEWV9UT19CT09UIGdldHMgc2lnbmFsZWQNCj4gKw0K PiArICBAcGFyYW0gIEV2ZW50ICAgICAgICAgICAgICAgIFRoZSBldmVudCB0byBzaWduYWwNCj4g KyAgQHBhcmFtICBDb250ZXh0ICAgICAgICAgICAgICBFdmVudCBjb250ZXgNCj4gKw0KPiArKiov DQo+ICtWT0lEDQo+ICtFRklBUEkNCj4gK091dE9mQmFuZEFDUElUYWJsZUNvbnN0cnVjdGlvbiAo DQo+ICsgIElOIEVGSV9FVkVOVCAgICAgICAgRXZlbnQsDQo+ICsgIElOIFZPSUQgICAgICAgICAg ICAgKkNvbnRleHQNCj4gKyAgKQ0KPiArew0KPiArICBFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wg KlNhdmVkRGV2aWNlUGF0aDsNCj4gKyAgRUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICpUbXBEZXZp Y2VQYXRoOw0KPiArICBFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wgKlRtcDJEZXZpY2VQYXRoOw0K PiArICBFRklfQUNQSV9UQUJMRV9QUk9UT0NPTCAgKkFjcGlUYWJsUHJvdG9jb2w7DQo+ICsgIFVJ TlROICAgICAgICAgICAgICAgICAgICBUdXJuS2V5Ow0KPiArICBFRklfU1RBVFVTICAgICAgICAg ICAgICAgU3RhdHVzOw0KPiArICBFRklfSEFORExFICAgICAgICAgICAgICAgSGFuZGxlOw0KPiAr ICBFRklfU0VSSUFMX0lPX1BST1RPQ09MICAgKlNlcmlhbElvOw0KPiArICBVSU5UMzIgICAgICAg ICAgICAgICAgICAgRmxvd0NvbnRyb2w7DQo+ICsgIFZFTkRPUl9ERVZJQ0VfUEFUSCAgICAgICAq VmVuZG9yOw0KPiArICBVSU5UOCAgICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+ICsNCj4gKyAg SGFuZGxlICAgICAgICAgID0gTlVMTDsNCj4gKw0KPiArICBTYXZlZERldmljZVBhdGggPSBHZXRT cGNyRGV2aWNlKCk7DQo+ICsgIGlmIChTYXZlZERldmljZVBhdGggPT0gTlVMTCkgew0KPiArICAg IHJldHVybjsNCj4gKw0KPiArICB9DQo+ICsgIC8vDQo+ICsgIC8vIEdldCBUZXJtaW5hbFR5cGUg aW5mbyBmcm9tIHRoZSBsYXN0IGRldmljZSBwYXRoIG5vZGUuDQo+ICsgIC8vDQo+ICsgIFRtcERl dmljZVBhdGggID0gU2F2ZWREZXZpY2VQYXRoOw0KPiArICBUbXAyRGV2aWNlUGF0aCA9IFRtcERl dmljZVBhdGg7DQo+ICsgIHdoaWxlICghSXNEZXZpY2VQYXRoRW5kIChUbXBEZXZpY2VQYXRoKSkg ew0KPiArICAgIFRtcDJEZXZpY2VQYXRoID0gVG1wRGV2aWNlUGF0aDsNCj4gKyAgICBUbXBEZXZp Y2VQYXRoICA9IE5leHREZXZpY2VQYXRoTm9kZShUbXBEZXZpY2VQYXRoKTsNCj4gKyAgfQ0KPiAr ICBWZW5kb3IgPSAoVkVORE9SX0RFVklDRV9QQVRIICopIFRtcDJEZXZpY2VQYXRoOyAgZm9yIChJ bmRleD0wOw0KPiBJbmRleA0KPiArIDwgNDsgSW5kZXggKyspIHsNCj4gKyAgICBpZiAoQ29tcGFy ZUd1aWQgKCZWZW5kb3ItPkd1aWQsICZUZXJtaW5hbFR5cGVHdWlkW0luZGV4XSkpIHsNCj4gKyAg ICAgIGdTcGNySW5mby5UZXJtaW5hbFR5cGUgPSBUZXJtaW5hbFR5cGVWYWx1ZVtJbmRleF07DQo+ ICsgICAgICBicmVhazsNCj4gKyAgICB9DQo+ICsgIH0NCj4gKyAgU2V0RGV2aWNlUGF0aEVuZE5v ZGUgKFRtcDJEZXZpY2VQYXRoKTsgIFRtcERldmljZVBhdGggPQ0KPiArIFNhdmVkRGV2aWNlUGF0 aDsgIC8vICAvLyBHZXQgQ29uc29sZSBhdHRyaWJ1dGUgZnJvbSB0aGUgc2VyaWFsIGlvDQo+ICsg cHJvdG9jb2wuDQo+ICsgIC8vDQo+ICsgIFN0YXR1cyA9IGdCUy0+TG9jYXRlRGV2aWNlUGF0aCgN Cj4gKyAgICAgICAgICAgICAgICAgICZnRWZpU2VyaWFsSW9Qcm90b2NvbEd1aWQsDQo+ICsgICAg ICAgICAgICAgICAgICAmVG1wRGV2aWNlUGF0aCwNCj4gKyAgICAgICAgICAgICAgICAgICZIYW5k bGUNCj4gKyAgICAgICAgICAgICAgICAgICk7DQo+ICsgIGlmIChFRklfRVJST1IoU3RhdHVzKSkg ew0KPiArICAgIGdvdG8gb3V0Ow0KPiArICB9DQo+ICsNCj4gKyAgU3RhdHVzID0gZ0JTLT5IYW5k bGVQcm90b2NvbCAoDQo+ICsgICAgICAgICAgICAgICAgICBIYW5kbGUsDQo+ICsgICAgICAgICAg ICAgICAgICAmZ0VmaVNlcmlhbElvUHJvdG9jb2xHdWlkLA0KPiArICAgICAgICAgICAgICAgICAg KFZPSUQgKiopICZTZXJpYWxJbw0KPiArICAgICAgICAgICAgICAgICAgKTsNCj4gKyAgaWYgKEVG SV9FUlJPUihTdGF0dXMpKSB7DQo+ICsgICAgZ290byBvdXQ7DQo+ICsgIH0NCj4gKw0KPiArICBz d2l0Y2ggKFNlcmlhbElvLT5Nb2RlLT5CYXVkUmF0ZSkgew0KPiArICAgIGNhc2UgOTYwMDoNCj4g KyAgICAgIGdTcGNySW5mby5CYXVkUmF0ZSA9IDM7DQo+ICsgICAgICBicmVhazsNCj4gKyAgICBj YXNlIDE5MjAwOg0KPiArICAgICAgZ1NwY3JJbmZvLkJhdWRSYXRlID0gNDsNCj4gKyAgICAgIGJy ZWFrOw0KPiArICAgIGNhc2UgNTc2MDA6DQo+ICsgICAgICBnU3BjckluZm8uQmF1ZFJhdGUgPSA2 Ow0KPiArICAgICAgYnJlYWs7DQo+ICsgICAgY2FzZSAxMTUyMDA6DQo+ICsgICAgZGVmYXVsdDoN Cj4gKyAgICAgIGdTcGNySW5mby5CYXVkUmF0ZSA9IDc7DQo+ICsgICAgICBicmVhazsNCj4gKyAg fQ0KPiArDQo+ICsgIGdTcGNySW5mby5GbG93Q29udHJvbCA9IDA7DQo+ICsgIFNlcmlhbElvLT5H ZXRDb250cm9sKFNlcmlhbElvLCAmRmxvd0NvbnRyb2wpOyAgaWYgKChGbG93Q29udHJvbCAmDQo+ ICsgRUZJX1NFUklBTF9IQVJEV0FSRV9GTE9XX0NPTlRST0xfRU5BQkxFKSAhPSAwKSB7DQo+ICsg ICAgZ1NwY3JJbmZvLkZsb3dDb250cm9sID0gVUFSVF9GTE9XX0NPTlRST0xfSEFSRFdBUkU7ICB9 DQo+ICsNCj4gKyAgaWYgKEhhc0lzYVNlcmlhbE5vZGUoU2F2ZWREZXZpY2VQYXRoKSkgew0KPiAr ICAgIEdldElzYVR5cGVJbmZvIChTYXZlZERldmljZVBhdGgpOw0KPiArICB9IGVsc2Ugew0KPiAr ICAgIEdldFBjaVR5cGVJbmZvIChTYXZlZERldmljZVBhdGgpOw0KPiArICB9DQo+ICsgIC8vDQo+ ICsgIC8vIE5vdCBjcmVhdGUgYmVmb3JlLCBjcmVhdGUgbmV3IFNwY3IgQUNQSSB0YWJsZS4NCj4g KyAgLy8NCj4gKyAgU3RhdHVzID0gZ0JTLT5Mb2NhdGVQcm90b2NvbCAoDQo+ICsgICAgICAgICAg ICAgICAgICAmZ0VmaUFjcGlUYWJsZVByb3RvY29sR3VpZCwNCj4gKyAgICAgICAgICAgICAgICAg IE5VTEwsDQo+ICsgICAgICAgICAgICAgICAgICAoVk9JRCoqKSZBY3BpVGFibFByb3RvY29sDQo+ ICsgICAgICAgICAgICAgICAgICApOw0KPiArICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ ICsgICAgZ290byBvdXQ7DQo+ICsgIH0NCj4gKw0KPiArICAvLw0KPiArICAvLyBBZGQgdGFibGUN Cj4gKyAgLy8NCj4gKyAgU3RhdHVzID0gQWNwaVRhYmxQcm90b2NvbC0+SW5zdGFsbEFjcGlUYWJs ZSAoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNwaVRhYmxQcm90b2Nv bCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ1NwY3JJbmZvLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZg0KPiAoRUZJX0FDUElfU0VS SUFMX1BPUlRfQ09OU09MRV9SRURJUkVDVElPTl9UQUJMRSksDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJlR1cm5LZXkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApOw0KPiArICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiArDQo+ICtvdXQ6 DQo+ICsgIEZyZWVQb29sKFNhdmVkRGV2aWNlUGF0aCk7DQo+ICt9DQo+IGRpZmYgLS1naXQNCj4g YS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L1NwY3JGZWF0dXJlUGtnL1NwY3JB Y3BpRHhlL1NwYw0KPiByQWNwaS5oDQo+IGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdl bWVudC9TcGNyRmVhdHVyZVBrZy9TcGNyQWNwaUR4ZS9TcA0KPiBjckFjcGkuaA0KPiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi5jMTFkYTQzOWZjDQo+IC0tLSAvZGV2 L251bGwNCj4gKysrDQo+IGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9TcGNy RmVhdHVyZVBrZy9TcGNyQWNwaUR4ZS9TcA0KPiBjcg0KPiArKysgQWNwaS5oDQo+IEBAIC0wLDAg KzEsODEgQEANCj4gKy8qKiBAZmlsZQ0KPiArICBIZWFkZXIgZmlsZSBmb3IgdGhlIGRyaXZlciB1 c2VkIHRvIGFkZCBTUENSIGRldmljZSBpbmZvIHRvIEFDUEkgdGFibGUuDQo+ICsgIFNQQ1IgaXMg YWJicmV2aWF0aW9uIG9mIFNlcmlhbCBQb3J0IENvbnNvbGUgUmVkaXJlY3Rpb24gVGFibGUgKFNQ Q1IpLg0KPiArDQo+ICsgIENvcHlyaWdodCAoYykgMjAwNCAtIDIwMjAsIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzDQo+ICsgcmVzZXJ2ZWQuPEJSPg0KPiArICBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArDQo+ICsqKi8NCj4gKw0KPiArI2lmbmRl ZiBfU1BDUl9BQ1BJX0hfDQo+ICsjZGVmaW5lIF9TUENSX0FDUElfSF8NCj4gKw0KPiArDQo+ICsj aW5jbHVkZSA8SW5kdXN0cnlTdGFuZGFyZC9BY3BpMzAuaD4NCj4gKyNpbmNsdWRlIDxJbmR1c3Ry eVN0YW5kYXJkL1NlcmlhbFBvcnRDb25zb2xlUmVkaXJlY3Rpb25UYWJsZS5oPg0KPiArLy8jaW5j bHVkZSA8R3VpZC9HbG9iYWxWYXJpYWJsZS5oPg0KPiArDQo+ICsjaW5jbHVkZSA8TGlicmFyeS9V ZWZpTGliLmg+DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9VZWZpQm9vdFNlcnZpY2VzVGFibGVMaWIu aD4NCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlSdW50aW1lU2VydmljZXNUYWJsZUxpYi5oPg0K PiArI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L0Rl dmljZVBhdGhMaWIuaD4NCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4NCj4g KyNpbmNsdWRlIDxMaWJyYXJ5L01lbW9yeUFsbG9jYXRpb25MaWIuaD4gI2luY2x1ZGUNCj4gKzxM aWJyYXJ5L1NwY3JEZXZpY2VMaWIuaD4NCj4gKw0KPiArI2luY2x1ZGUgPFByb3RvY29sL0FjcGlU YWJsZS5oPg0KPiArI2luY2x1ZGUgPFByb3RvY29sL1NlcmlhbElvLmg+DQo+ICsjaW5jbHVkZSA8 UHJvdG9jb2wvU3VwZXJJby5oPg0KPiArI2luY2x1ZGUgPFByb3RvY29sL0RldmljZVBhdGguaD4N Cj4gKyNpbmNsdWRlIDxQcm90b2NvbC9QY2lJby5oPg0KPiArDQo+ICsjcHJhZ21hIHBhY2soMSkN Cj4gKw0KPiArLy8vDQo+ICsvLy8gSElJIHNwZWNpZmljIFZlbmRvciBEZXZpY2UgUGF0aCBkZWZp bml0aW9uLg0KPiArLy8vDQo+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ICsgIFZFTkRPUl9ERVZJQ0Vf UEFUSCAgICAgICAgICAgICBWZW5kb3JEZXZpY2VQYXRoOw0KPiArICBFRklfREVWSUNFX1BBVEhf UFJPVE9DT0wgICAgICAgRW5kOw0KPiArfSBISUlfVkVORE9SX0RFVklDRV9QQVRIOw0KPiArDQo+ ICsjcHJhZ21hIHBhY2soKQ0KPiArLy8NCj4gKy8vIFByb3RvdHlwZXMNCj4gKy8vDQo+ICsNCj4g Ky8qKg0KPiArDQo+ICsgIEluc3RhbGwgQm9vdCBEZXZpY2UgU2VsZWN0aW9uIFByb3RvY29sDQo+ ICsNCj4gKyAgQHBhcmFtIEltYWdlSGFuZGxlICAgICBUaGUgaW1hZ2UgaGFuZGxlLg0KPiArICBA cGFyYW0gU3lzdGVtVGFibGUgICAgIFRoZSBzeXN0ZW0gdGFibGUuDQo+ICsNCj4gKyAgQHJldHZh bCAgRUZJX1NVQ0VFU1MgIEJEUyBoYXMgZmluaXNoZWQgaW5pdGlhbGl6aW5nLg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIHRoZSBkaXNwYXRjaGVyIGFuZCByZWNhbGwgQkRTLkVu dHJ5DQo+ICsgIEByZXR2YWwgIE90aGVyICAgICAgICBSZXR1cm4gc3RhdHVzIGZyb20gQWxsb2Nh dGVQb29sKCkgb3IgZ0JTLQ0KPiA+SW5zdGFsbFByb3RvY29sSW50ZXJmYWNlDQo+ICsNCj4gKyoq Lw0KPiArRUZJX1NUQVRVUw0KPiArRUZJQVBJDQo+ICtTcGNySW5pdGlhbGl6ZSAoDQo+ICsgIElO IEVGSV9IQU5ETEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW1hZ2VIYW5kbGUsDQo+ICsg IElOIEVGSV9TWVNURU1fVEFCTEUgICAgICAgICAgICAgICAgICAgICAgKlN5c3RlbVRhYmxlDQo+ ICsgICk7DQo+ICsNCj4gKy8qKg0KPiArICBJbnN0YWxscyB0aGUgU21iaW9zIFRhYmxlIHRvIHRo ZSBTeXN0ZW0gVGFibGUuIFRoaXMgZnVuY3Rpb24gZ2V0cw0KPiArY2FsbGVkDQo+ICsgIHdoZW4g dGhlIEVGSV9FVkVOVF9TSUdOQUxfUkVBRFlfVE9fQk9PVCBnZXRzIHNpZ25hbGVkDQo+ICsNCj4g KyAgQHBhcmFtICBFdmVudCAgICAgICAgICAgICAgICBUaGUgZXZlbnQgdG8gc2lnbmFsDQo+ICsg IEBwYXJhbSAgQ29udGV4dCAgICAgICAgICAgICAgRXZlbnQgY29udGV4DQo+ICsNCj4gKyoqLw0K PiArVk9JRA0KPiArRUZJQVBJDQo+ICtPdXRPZkJhbmRBQ1BJVGFibGVDb25zdHJ1Y3Rpb24gKA0K PiArICBJTiBFRklfRVZFTlQgICAgICAgIEV2ZW50LA0KPiArICBJTiBWT0lEICAgICAgICAgICAg ICpDb250ZXh0DQo+ICsgICk7DQo+ICsjZW5kaWYNCj4gZGlmZiAtLWdpdA0KPiBhL0ZlYXR1cmVz L0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvU3BjckZlYXR1cmVQa2cvU3BjckFjcGlEeGUvU3Bj DQo+IHJBY3BpRHhlLmluZg0KPiBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQv U3BjckZlYXR1cmVQa2cvU3BjckFjcGlEeGUvU3ANCj4gY3JBY3BpRHhlLmluZg0KPiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi4zZmM4NDk1OWEwDQo+IC0tLSAvZGV2 L251bGwNCj4gKysrDQo+IGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9TcGNy RmVhdHVyZVBrZy9TcGNyQWNwaUR4ZS9TcA0KPiBjcg0KPiArKysgQWNwaUR4ZS5pbmYNCj4gQEAg LTAsMCArMSw0MiBAQA0KPiArIyMgQGZpbGUNCj4gKyMgU1BDUiBpcyBhYmJyZXZpYXRpb24gb2Yg U2VyaWFsIFBvcnQgQ29uc29sZSBSZWRpcmVjdGlvbiBUYWJsZSAoU1BDUikuDQo+ICsjDQo+ICsj IENvcHlyaWdodCAoYykgMjAwOCAtIDIwMjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz DQo+ICtyZXNlcnZlZC48QlI+ICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz ZS1QYXRlbnQgIyAjIw0KPiArDQo+ICtbRGVmaW5lc10NCj4gKyAgSU5GX1ZFUlNJT04gICAgICAg ICAgICAgICAgICAgID0gMHgwMDAxMDAxNw0KPiArICBCQVNFX05BTUUgICAgICAgICAgICAgICAg ICAgICAgPSBTcGNyQWNwaUR4ZQ0KPiArICBGSUxFX0dVSUQgICAgICAgICAgICAgICAgICAgICAg PSAzMTc0MDcyNC01Rjk2LTQ4Y2EtQUEwRi0zMzJBQ0E2QjlBNzUNCj4gKyAgVkVSU0lPTl9TVFJJ TkcgICAgICAgICAgICAgICAgID0gMi4wDQo+ICsgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAg ICAgICA9IERYRV9EUklWRVINCj4gKyAgRU5UUllfUE9JTlQgICAgICAgICAgICAgICAgICAgID0g U3BjckluaXRpYWxpemUNCj4gKyMNCj4gKyMgVGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBpcyBm b3IgcmVmZXJlbmNlIG9ubHkgYW5kIG5vdCByZXF1aXJlZCBieSB0aGUNCj4gYnVpbGQgdG9vbHMu DQo+ICsjDQo+ICsjIFZBTElEX0FSQ0hJVEVDVFVSRVMgPSBJQTMyIFg2NCBJUEYgRUJDICMNCj4g Kw0KPiArW0xpYnJhcnlDbGFzc2VzXQ0KPiArICBVZWZpRHJpdmVyRW50cnlQb2ludA0KPiArICBV ZWZpTGliDQo+ICsgIFNwY3JEZXZpY2VMaWINCj4gKw0KPiArW1BhY2thZ2VzXQ0KPiArICBNZGVQ a2cvTWRlUGtnLmRlYw0KPiArICBTcGNyRmVhdHVyZVBrZy9TcGNyRmVhdHVyZVBrZy5kZWMNCj4g Kw0KPiArW1NvdXJjZXNdDQo+ICsgIFNwY3JBY3BpLmgNCj4gKyAgU3BjckFjcGkuYw0KPiArDQo+ ICtbUHJvdG9jb2xzXQ0KPiArICBnRWZpQWNwaVRhYmxlUHJvdG9jb2xHdWlkICAgICAgICAgICAg ICAgICAgICAgIyMgQ09OU1VNRVMNCj4gKyAgZ0VmaVNpb1Byb3RvY29sR3VpZCAgICAgICAgICAg ICAgICAgICAgICAgICAgICMjIFNPTUVUSU1FU19DT05TVU1FUw0KPiArICBnRWZpU2VyaWFsSW9Q cm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQo+ ICsgIGdFZmlQY2lJb1Byb3RvY29sR3VpZCAgICAgICAgICAgICAgICAgICAgICAgICAjIyBTT01F VElNRVNfQ09OU1VNRVMNCj4gKw0KPiArW0RlcGV4XQ0KPiArICBUUlVFDQo+IGRpZmYgLS1naXQN Cj4gYS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L1NwY3JGZWF0dXJlUGtnL1Nw Y3JGZWF0dXJlUGtnLg0KPiBkZWMNCj4gYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2Vt ZW50L1NwY3JGZWF0dXJlUGtnL1NwY3JGZWF0dXJlUGtnLg0KPiBkZWMNCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uMDM3NzZhYmYwNg0KPiAtLS0gL2Rldi9udWxs DQo+ICsrKw0KPiBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvU3BjckZlYXR1 cmVQa2cvU3BjckZlYXR1cmVQa2cuDQo+IGQNCj4gKysrIGVjDQo+IEBAIC0wLDAgKzEsMjcgQEAN Cj4gKyMjIEBmaWxlDQo+ICsjIFRoaXMgcGFja2FnZSBwcm92aWRlcyBhZHZhbmNlZCBmZWF0dXJl IGZ1bmN0aW9uYWxpdHkgYWJvdXQgU2VyaWFsIFBvcnQNCj4gQ29uc29sZSBSZWRpcmVjdGlvbiBU YWJsZSAoU1BDUikuDQo+ICsjIFRoaXMgcGFja2FnZSBzaG91bGQgb25seSBkZXBlbmQgb24gRURL IElJIENvcmUgcGFja2FnZXMsIEludGVsU2lsaWNvblBrZywNCj4gYW5kIE1pblBsYXRmb3JtUGtn Lg0KPiArIw0KPiArIyBUaGUgREVDIGZpbGVzIGFyZSB1c2VkIGJ5IHRoZSB1dGlsaXRpZXMgdGhh dCBwYXJzZSBEU0MgYW5kICMgSU5GDQo+ICtmaWxlcyB0byBnZW5lcmF0ZSBBdXRvR2VuLmMgYW5k IEF1dG9HZW4uaCBmaWxlcyAjIGZvciB0aGUgYnVpbGQNCj4gK2luZnJhc3RydWN0dXJlLg0KPiAr Iw0KPiArIyBDb3B5cmlnaHQgKGMpIDIwMjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4gIyAjDQo+ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudCAjICMjDQo+ICsNCj4gK1tEZWZpbmVzXQ0KPiArICBERUNfU1BFQ0lGSUNBVElP TiA9IDB4MDAwMTAwMTcNCj4gKyAgUEFDS0FHRV9OQU1FICAgICAgPSBTcGNyRmVhdHVyZVBrZw0K PiArICBQQUNLQUdFX0dVSUQgICAgICA9IDIwRTg0QThBLTkwMDgtNDc5OC04MjE1LTY5NzU1NUU5 NUIyOQ0KPiArICBQQUNLQUdFX1ZFUlNJT04gICA9IDAuMQ0KPiArDQo+ICtbSW5jbHVkZXNdDQo+ ICsgIEluY2x1ZGUNCj4gKw0KPiArW0xpYnJhcnlDbGFzc2VzXQ0KPiArICAjIyBAbGlicmFyeWNs YXNzICBQcm92aWRlcyBhbiBBUEkgZm9yIGdldCBTUENSIGRldmljZS4NCj4gKyAgIw0KPiArICBT cGNyRGV2aWNlTGlifEluY2x1ZGUvTGlicmFyeS9TcGNyRGV2aWNlTGliLmgNCj4gZGlmZiAtLWdp dA0KPiBhL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvU3BjckZlYXR1cmVQa2cv U3BjckZlYXR1cmVQa2cuDQo+IGRzYw0KPiBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFn ZW1lbnQvU3BjckZlYXR1cmVQa2cvU3BjckZlYXR1cmVQa2cuDQo+IGRzYw0KPiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi44MmQyZDNhYzczDQo+IC0tLSAvZGV2L251 bGwNCj4gKysrDQo+IGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9TcGNyRmVh dHVyZVBrZy9TcGNyRmVhdHVyZVBrZy4NCj4gZA0KPiArKysgc2MNCj4gQEAgLTAsMCArMSwzMCBA QA0KPiArIyMgQGZpbGUNCj4gKyMgVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGFkdmFuY2VkIGZlYXR1 cmUgZnVuY3Rpb25hbGl0eSBhYm91dCBTZXJpYWwgUG9ydA0KPiBDb25zb2xlIFJlZGlyZWN0aW9u IFRhYmxlIChTUENSKS4NCj4gKyMgVGhpcyBwYWNrYWdlIHNob3VsZCBvbmx5IGRlcGVuZCBvbiBF REsgSUkgQ29yZSBwYWNrYWdlcywgSW50ZWxTaWxpY29uUGtnLA0KPiBhbmQgTWluUGxhdGZvcm1Q a2cuDQo+ICsjDQo+ICsjIFRoZSBERUMgZmlsZXMgYXJlIHVzZWQgYnkgdGhlIHV0aWxpdGllcyB0 aGF0IHBhcnNlIERTQyBhbmQgIyBJTkYNCj4gK2ZpbGVzIHRvIGdlbmVyYXRlIEF1dG9HZW4uYyBh bmQgQXV0b0dlbi5oIGZpbGVzICMgZm9yIHRoZSBidWlsZA0KPiAraW5mcmFzdHJ1Y3R1cmUuDQo+ ICsjDQo+ICsjIENvcHlyaWdodCAoYykgMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPiAjICMNCj4gK1NQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50ICMgIyMNCj4gKw0KPiArW0RlZmluZXNdDQo+ICsgIFBMQVRGT1JNX05BTUUg ICAgICAgICAgICAgICAgICA9IFNwY3JGZWF0dXJlUGtnDQo+ICsgIFBMQVRGT1JNX0dVSUQgICAg ICAgICAgICAgICAgICA9IDJDRUI5N0I1LTYxMEQtNDQwRi1BMkE3LTY3NzVBRTJBN0U4OQ0KPiAr ICBQTEFURk9STV9WRVJTSU9OICAgICAgICAgICAgICAgPSAwLjENCj4gKyAgRFNDX1NQRUNJRklD QVRJT04gICAgICAgICAgICAgID0gMHgwMDAxMDAwNQ0KPiArICBPVVRQVVRfRElSRUNUT1JZICAg ICAgICAgICAgICAgPSBCdWlsZC8kKFBMQVRGT1JNX05BTUUpDQo+ICsgIFNVUFBPUlRFRF9BUkNI SVRFQ1RVUkVTICAgICAgICA9IElBMzJ8WDY0DQo+ICsgIEJVSUxEX1RBUkdFVFMgICAgICAgICAg ICAgICAgICA9IERFQlVHfFJFTEVBU0V8Tk9PUFQNCj4gKyAgU0tVSURfSURFTlRJRklFUiAgICAg ICAgICAgICAgID0gREVGQVVMVA0KPiArICBQRUlfQVJDSCAgICAgICAgICAgICAgICAgICAgICAg PSBJQTMyDQo+ICsgIERYRV9BUkNIICAgICAgICAgICAgICAgICAgICAgICA9IFg2NA0KPiArDQo+ ICsjDQo+ICsjIFRoaXMgcGFja2FnZSBhbHdheXMgYnVpbGRzIHRoZSBmZWF0dXJlLg0KPiArIw0K PiArIWluY2x1ZGUgSW5jbHVkZS9TcGNyRmVhdHVyZS5kc2MNCj4gLS0NCj4gMi4yNC4wLndpbmRv d3MuMg0KPiANCj4gDQo+IA0KDQo=