From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.88]) by mx.groups.io with SMTP id smtpd.web10.19967.1684478662364555360 for ; Thu, 18 May 2023 23:44:22 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=FelyqJzx; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.93.88, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QzzTJCb0Ym/nyMG2j7I211Ynl7HgwBKCHXtWqgma/SpooMhwsleCvhpQ1YfAl6gyCz8NmC+QYv4pK7NBYWV+shHUSBdNJOPFqZoKfOjv8rM/AarF3R5QPT4oCGNABTt1HNFwS/z9IFnC1EA2R/Gx1AcdhVpBu4H9tZOBndLq0Z+BlZha3B5oAii3bkQeaexM7Ydbd5srLARY/2drLH25X9h+0+60SbheEYp1ugMD9Y3+zKlu4bf4xM5F2ToTaPUN1QWK7d3dmyUFkPXQSMLMQhvDSfwMKnL1K3nPmfUhYc24PTHQ+hC2Er6mmi9UgqksDZExuXekValOFc893DxNTQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9DsQF1rbSTO8S3Nlvu1pR8ciE5/XmDEFTgnoaOvCVwY=; b=ZPHrXB1547nHP5mf0LBne3QHGkues+uS2ike3uMaaPVA+RgfK/rYcvjCtY844XBFagVRrqx3fSgtKvNiLQWhG/x1AM7GWZbHZfK47qE25nZyUEIr77DafAV7dT+wdl0DFSZKavSBSBczf7LvSZxZN7w7PD2y89VsnVyodSqF6qUPBVrVRqWGDSHdSWsxDwim9dvwGF2dFJ8IVk9HBIMQNm8cJ1pgoKsJ4hKP8XGLWKHcDWyvO80RdulGXQvOZE3+W1t6/lI1jwnlGmaN4gsTBl4lBF8mnxCH0b7VlnPJvgOWaUcKkMZCJFL8Qz41qe5/BjE/+bgyZ5hCaXB3RGf54g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9DsQF1rbSTO8S3Nlvu1pR8ciE5/XmDEFTgnoaOvCVwY=; b=FelyqJzxe8vbbQU2ZTI72Gm1ENr+gYFeFFHBZPRHWk1BcnGJVszDJWQwgJIVEGsPMynAbuer8L1s8Mspqu5vbT0MsCHogJzMBqBESLxX4zKEzu8YuX49sl+hsu1Vd6OtkbIolLzC0yFc8xISc738K5vDUAMSQ1Al8phw6vrTjgY= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by PH8PR12MB6769.namprd12.prod.outlook.com (2603:10b6:510:1c4::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.21; Fri, 19 May 2023 06:44:17 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::edb0:bed8:c650:5040]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::edb0:bed8:c650:5040%6]) with mapi id 15.20.6411.021; Fri, 19 May 2023 06:44:17 +0000 From: "Chang, Abner" To: "Oram, Isaac W" , "devel@edk2.groups.io" CC: "Attar, AbdulLateef (Abdul Lateef)" , Nickle Wang , Tinh Nguyen Subject: Re: [edk2-devel] [edk2-platforms][PATCH 1/2] ManageabilityPkg/IpmiFrb: IPMI BMC ACPI Driver Thread-Topic: [edk2-devel] [edk2-platforms][PATCH 1/2] ManageabilityPkg/IpmiFrb: IPMI BMC ACPI Driver Thread-Index: AQHZhbKMPrJOyGLN5U+WWKx6YCmb7q9g90HggAA2DrA= Date: Fri, 19 May 2023 06:44:17 +0000 Message-ID: References: <20230513154919.1873-1-abner.chang@amd.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=50584350-c4c7-4e06-9ca9-7ffcc01de59e;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-05-19T06:37:16Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|PH8PR12MB6769:EE_ x-ms-office365-filtering-correlation-id: e63b367b-b378-47eb-9fec-08db583477f0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +cY1kn9H6kJkKAQvxyOL4qdezXe89+audZRM2nDgPYDYlsx/3PlkBTBEYCNjMvjakxlKe3c/5NYe4uf3hW6QHKQ7qo/LITChc7OgUM6GU8kx0C8Oemo/j4qii2m5T+KfP9CyXT/PAMFiLh9Op7C907C3N2hKGCz6YlyjSx3a/GWhEJFtbHjWAlpjExm5LYaHx3ueZcIFd2li/yF2qaHtzxXgtMYpRvIV4bZEgxsG4xjVbiE11oegYR5Tmjgk2jMLqhc5LpJPqnoZioMNbubiVqH+uxA9kzcO6+F6nr67M7+0RiPiiLzGn6lCMADesQKbBrL2o0yo+o1Kni+37oE1jbac8BkjD2bkm3KmprsV5Ru8ie3833a7pCDY7SWUNONg9NXblKn3+cBWfGFmY6wZ20HD1Y0IL2+cXuYMN0PfGHdx+gLPocevzdDmhN3QAwbbY5RYNJoyh0HsOksTFtPPdIQ47kfjoYm1qPwfH0VQQweefG8YXqnYn1ttLMv9HCJD8nh4ZrfeueZYBX6rL8QWE+9UW9yWAy1SOKKa0t5oh4pdr0DfBOd+H9ik26C1NM9JjSUdfE3FzHVzcgP71JHjt0NSrI3zapNGNc9su6jMrrKSJ7bs4GSIHvT7hwmgdLQkG7Ph3opVgAnqdAD4rZ5/ah/1fJWoVe6yWRScdKey6XM= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3966.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(376002)(346002)(366004)(136003)(39860400002)(396003)(451199021)(71200400001)(41300700001)(7696005)(9686003)(6506007)(53546011)(38100700002)(52536014)(5660300002)(83380400001)(38070700005)(186003)(2906002)(33656002)(30864003)(86362001)(966005)(122000001)(8936002)(8676002)(55016003)(478600001)(66946007)(64756008)(66446008)(66476007)(66556008)(76116006)(4326008)(54906003)(110136005)(19627235002)(316002)(66899021)(127784003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Rk1YanloTnRuZXZDMjdpL1pmdVBGUGwza0w5cWswVzRvdGkzWU51b2hPNGFF?= =?utf-8?B?NndCM2VYZC8xZjFKNFA2RzhuUC93dmEzUkNyOWJuQys2b05EaXJuLzB4Z0lp?= =?utf-8?B?Qm5UUGcyNXVnUnhMTHFyczNHc2pqamVGWUJZeW9TYjQ1ZXdGMmk5WHhLblll?= =?utf-8?B?Tml6a2xqanVoTkhZQStYbG1IV3ZpMys0QnVtdHppRkNmdzFxMzBRblBIbXZM?= =?utf-8?B?dXZtVjVtVkUzRXpJZnJJWGR5dzEyMWJzUnMzNG5IZzdDOFg4WmsycnU4cVpt?= =?utf-8?B?dFhjeVNTejhiRWl4cHJwcWNveUZXU2RUTElYUkpiYnFFQkw0dTR3NTdKTUZi?= =?utf-8?B?MUMrQnNZMUtHOUxTcUl1YUpOVGRFUzFyODYxY1J5ZGJvNERzcjd3MGZsRzcv?= =?utf-8?B?dndUV1VjQlZUb2lCQ21rUEdoRnRZcXRIN2l1VkhuZXlpWEoyRXhQdE1aRkNN?= =?utf-8?B?ZkxzbmtiNU1yNmw4WmhpQWZLZ2hkWkwranRZK0w4ajVvcjVEb3B2d0doUjV4?= =?utf-8?B?eFk5YkZmZTFPaENlVnVBNStOUHdrWFNZTDE5UlFLSE9tUkZ6U2FSb1E2L0JO?= =?utf-8?B?TmV3K1ZYWS9sVE84S2lSV0N5eUI2UjBKR0l0UnBOUFdUWHk1U0NNeGFzT1VI?= =?utf-8?B?SDhaWUp1ZVFYbUpPcnVZV1VwZzF0WlcxcUdTbjRjdkp5NG5ZNUhOeGsxZkhM?= =?utf-8?B?RUFILzV3THliVVVVT0psL0kvRjcveHZjZEU3ZFh3a3EvU2Y2eVk5YldnUGZV?= =?utf-8?B?OG1US2RNb2prYWl0TWQyM2pRZGxsZUZ6cm5pR0c4RHJKQ1B1blNsaVl6KzVY?= =?utf-8?B?N3lnSC83NElmeGxrdEhoV0d3TnE5ckNMSC9FaWdFMGQ0OHJkZ1AvVGRNS054?= =?utf-8?B?dFE4OEw5MW54cXd0UGFrTjFWMjVnWDV2WGlWT3dHL291UU93dFVtZjk0M2s5?= =?utf-8?B?S1VqdFZEcW0xQjZQaUNuWnh3WnhMSmhVbG9uL09aclZYOUxGcW5NYVRaV0FV?= =?utf-8?B?eEJxeExVZFlkZklDTDlWVk1rOUk1ZXV6VjF1dHlUVXppd3FMdjFDWnBGZHln?= =?utf-8?B?aDNhNUpCK0hCY045ek51a0tpWmFyd090YzM5dWQ0TytlRDlpc1VhcVRjOTc4?= =?utf-8?B?MlI0NHRvSlV6bnEvT2UvaWl2SllzZWhvOXJvb3dsZkFjdzdpdkFlb2ZBZTQ1?= =?utf-8?B?Z0RpZUVaa1VHZkhwRlR0bkV1K3ZMUnZra24vYWZpOGY2OFRVdmppTStYZFdm?= =?utf-8?B?WEZKOHpvTHljTFY4SXpOQ1Q4QnU0N1I1S3o0aHczaDBPM0N0V1Jqdk80WlEr?= =?utf-8?B?bXRTYVF4b0lKZVdwcG9NSlM0ZzdSZU8zbUxCMzRiYlB0ZmNrZXQ3WFZiVVdR?= =?utf-8?B?WTJ6Z1huU3pqQi8yUWtHWitoRHRsb1F6NFVLN21Ga3UvYzVxMk8wUWN6eUtP?= =?utf-8?B?b0xCbStob1phK095NzVyOEhaYlluTkVpMHl2RGVZbmNyQ3YrN0hOZDBXQ3dl?= =?utf-8?B?cjFhVWxXVFQyMTFrcjNCekt6RGhKZS83U3R5NUpjOUVGVzd6clpxbWxIWmg0?= =?utf-8?B?SVF3N2NzSGFuZmtwMzFyVjMzWEdoWXVPUEo3UVcvNU1mcFZaTjFNdGdRRzMy?= =?utf-8?B?ZW9VN3R1QmJsTUFQbElDdzFPUUhoT3dUTkFBV00rNnBGVjJzMCtSL2xNTnB4?= =?utf-8?B?MGdkaHZpR0ZJUXFUeVVJNkVWUXlTdjJ6SGV6dFE1NExDZVNxMFdPYW5kZ2xX?= =?utf-8?B?dHV6Z2pDeWhCQk14c2lxdHAwSnpMNFgrWVdpcGVmSElIWktyamthVW9uYWlP?= =?utf-8?B?NzM3OGhZM2VCUkRMMUU1dzVFbzRycTBhRzFWMWdHa3l5bXRjc1hXaHI4dHNT?= =?utf-8?B?QjVsMHdwK01FZEY4REtyKzl0cWFvWmNzekFyVDRSeWRpTElGUW1wZkp4L3Nh?= =?utf-8?B?LzFUNnBHVTlqRWNJZ3I4eGE5WGg4ZkQ5a0R5cDdtRmU5a2xmZnNzcFZHZStv?= =?utf-8?B?Yk1jR3IwVkZBV0RTYVZTMHovSGNDMkpRa2dIOEtNZzFHaG1vdlpKd1FMTEl2?= =?utf-8?B?NzViUkM2VUxxejUwcFBjVGZCZWVGc1BxNmQzQT09?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e63b367b-b378-47eb-9fec-08db583477f0 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 May 2023 06:44:17.6812 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: I0P5Nc7bsIhvC4OrAMwZbhms2SeOv+eRsUPK3dR0Dls7HXUSi6wNFT54Q9P43ZH2yUKWSkvTGsS8YBDTepqDiQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6769 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 W0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEdlbmVyYWxdDQoNCkhpIElzYWFjLA0KRm9yICJJTlRF TCIsIHdlIGNhbiBjaGFuZ2UgaXQgdG8gYWxsIHdoaXRlc3BhY2UgYXMgdGhlIHN0cmluZyB3b3Vs ZCBiZSBwYXRjaGVkIGluIHJ1bnRpbWUgdXNpbmcgUGNkQWNwaURlZmF1bHRPZW1JZCAod2hpY2gg aXMgYWxzbyBJbnRlbCDwn5iKKQ0KRm9yICJNU0ZUIiwgSSBwcmVmZXIgdG8ga2VlcCBpdCBhcyB0 aGF0IHZhbHVlIGlzIGhhcmRjb2RlZCBpbiB0aGUgc291cmNlIGNvZGUuIFdlIGNhbiBjcmVhdGUg YSBQQ0QgZm9yIHRoaXMgYXMgd2VsbCBidXQgdGhpcyB3b3VsZCBiZSBub3QgaW4gdGhlIG1pZ3Jh dGlvbiBzY29wZSB0aGF0IGNsYWltcyB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5IHdpdGggdGhlIG9u ZSB1bmRlciBJbnRlbCBmb2xkZXIuDQoNClRoYW5rcw0KQWJuZXINCg0KPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBPcmFtLCBJc2FhYyBXIDxpc2FhYy53Lm9yYW1AaW50ZWwu Y29tPg0KPiBTZW50OiBGcmlkYXksIE1heSAxOSwgMjAyMyAxMToyOCBBTQ0KPiBUbzogZGV2ZWxA ZWRrMi5ncm91cHMuaW87IENoYW5nLCBBYm5lciA8QWJuZXIuQ2hhbmdAYW1kLmNvbT4NCj4gQ2M6 IEF0dGFyLCBBYmR1bExhdGVlZiAoQWJkdWwgTGF0ZWVmKSA8QWJkdWxMYXRlZWYuQXR0YXJAYW1k LmNvbT47IE5pY2tsZQ0KPiBXYW5nIDxuaWNrbGV3QG52aWRpYS5jb20+OyBUaW5oIE5ndXllbg0K PiA8dGluaG5ndXllbkBvcy5hbXBlcmVjb21wdXRpbmcuY29tPg0KPiBTdWJqZWN0OiBSRTogW2Vk azItZGV2ZWxdIFtlZGsyLXBsYXRmb3Jtc11bUEFUQ0ggMS8yXQ0KPiBNYW5hZ2VhYmlsaXR5UGtn L0lwbWlGcmI6IElQTUkgQk1DIEFDUEkgRHJpdmVyDQo+DQo+IENhdXRpb246IFRoaXMgbWVzc2Fn ZSBvcmlnaW5hdGVkIGZyb20gYW4gRXh0ZXJuYWwgU291cmNlLiBVc2UgcHJvcGVyIGNhdXRpb24N Cj4gd2hlbiBvcGVuaW5nIGF0dGFjaG1lbnRzLCBjbGlja2luZyBsaW5rcywgb3IgcmVzcG9uZGlu Zy4NCj4NCj4NCj4gUmV2aWV3ZWQtYnk6IElzYWFjIE9yYW0gPGlzYWFjLncub3JhbUBpbnRlbC5j b20+DQo+DQo+IFlvdSBjb3VsZCBjb25zaWRlciBjaGFuZ2luZyAiSU5URUwiIGFuZCAoJ00nLCAn UycsICdGJywgJ1QnKSB0byBtb3JlIGdlbmVyaWMNCj4gcGxhY2Vob2xkZXJzLiAgQnV0IHRoYXQg aXMgYWxzbyBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBsb29rZWQgYXQgc2VwYXJhdGVseQ0KPiBh bmQgbW9yZSB3aWRlbHkuDQo+DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9m IENoYW5nLA0KPiBBYm5lciB2aWEgZ3JvdXBzLmlvDQo+IFNlbnQ6IFNhdHVyZGF5LCBNYXkgMTMs IDIwMjMgODo0OSBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IE9yYW0sIElz YWFjIFcgPGlzYWFjLncub3JhbUBpbnRlbC5jb20+OyBBYmR1bCBMYXRlZWYgQXR0YXINCj4gPGFi ZGF0dGFyQGFtZC5jb20+OyBOaWNrbGUgV2FuZyA8bmlja2xld0BudmlkaWEuY29tPjsgVGluaCBO Z3V5ZW4NCj4gPHRpbmhuZ3V5ZW5Ab3MuYW1wZXJlY29tcHV0aW5nLmNvbT4NCj4gU3ViamVjdDog W2VkazItZGV2ZWxdIFtlZGsyLXBsYXRmb3Jtc11bUEFUQ0ggMS8yXQ0KPiBNYW5hZ2VhYmlsaXR5 UGtnL0lwbWlGcmI6IElQTUkgQk1DIEFDUEkgRHJpdmVyDQo+DQo+IEZyb206IEFibmVyIENoYW5n IDxhYm5lci5jaGFuZ0BhbWQuY29tPg0KPg0KPiBJcG1pQm1jQWNwaSBpcyBjbG9uZWQgZnJvbQ0K PiBlZGsyLXBsYXRmb3Jtcy9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50Lw0KPiBJ cG1pRmVhdHVyZVBrZy9CbWNBY3BpIGluIG9yZGVyIHRvIGNvbnNvbGlkYXRlDQo+IGVkazIgc3lz dGVtIG1hbmFnZWFiaWxpdHkgc3VwcG9ydCBpbiBvbmUgcGxhY2UuDQo+IFVuY3VzdGlmeSBpcyBh cHBsaWVkIHRvIEMgZmlsZXMgYW5kIG5vIGZ1bmN0aW9uYWxpdGllcyBhcmUgY2hhbmdlZCBpbiB0 aGlzIHBhdGNoLg0KPg0KPiBXZSB3aWxsIHN0aWxsIGtlZXAgdGhlIG9uZSB1bmRlciBJcG1pRmVh dHVyZVBrZy9CbWNBY3BpIHVudGlsIHRoZSByZWZlcmVuY2UgdG8NCj4gdGhpcyBpbnN0YW5jZSBh cmUgcmVtb3ZlZCBmcm9tIHBsYXRmb3Jtcy4NCj4NCj4gU2lnbmVkLW9mZi1ieTogQWJuZXIgQ2hh bmcgPGFibmVyLmNoYW5nQGFtZC5jb20+DQo+IENjOiBJc2FhYyBPcmFtIDxpc2FhYy53Lm9yYW1A aW50ZWwuY29tPg0KPiBDYzogQWJkdWwgTGF0ZWVmIEF0dGFyIDxhYmRhdHRhckBhbWQuY29tPg0K PiBDYzogTmlja2xlIFdhbmcgPG5pY2tsZXdAbnZpZGlhLmNvbT4NCj4gQ2M6IFRpbmggTmd1eWVu IDx0aW5obmd1eWVuQG9zLmFtcGVyZWNvbXB1dGluZy5jb20+DQo+IC0tLQ0KPiAgLi4uL1VuaXZl cnNhbC9JcG1pQm1jQWNwaS9CbWNBY3BpLmluZiAgICAgICAgIHwgIDQ3ICsrKysNCj4gIC4uLi9V bml2ZXJzYWwvSXBtaUJtY0FjcGkvQm1jQWNwaS5jICAgICAgICAgICB8IDI2NCArKysrKysrKysr KysrKysrKysNCj4gIC4uLi9Vbml2ZXJzYWwvSXBtaUJtY0FjcGkvQm1jU3NkdC9CbWNTc2R0LmFz bCB8ICAyOCArKw0KPiAgLi4uL0lwbWlCbWNBY3BpL0JtY1NzZHQvSXBtaU9wclJlZ2lvbnMuYXNp ICAgIHwgIDU4ICsrKysNCj4gIDQgZmlsZXMgY2hhbmdlZCwgMzk3IGluc2VydGlvbnMoKykNCj4g IGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiBGZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL1VuaXZlcnNh bC9JcG1pQm1jQWNwaS9CbWNBY3BpLmluZg0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+IEZlYXR1 cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL0lwbWlCbWNBY3BpL0JtY0FjcGkuYw0KPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0DQo+IEZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2Fs L0lwbWlCbWNBY3BpL0JtY1NzZHQvQm1jU3NkdC5hc2wNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0K PiBGZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9JcG1pQm1jQWNwaS9CbWNTc2R0 L0lwbWlPcHJSZWdpb24NCj4gcy5hc2kNCj4NCj4gZGlmZiAtLWdpdCBhL0ZlYXR1cmVzL01hbmFn ZWFiaWxpdHlQa2cvVW5pdmVyc2FsL0lwbWlCbWNBY3BpL0JtY0FjcGkuaW5mDQo+IGIvRmVhdHVy ZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvSXBtaUJtY0FjcGkvQm1jQWNwaS5pbmYNCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uYTIxYzViOWIzNQ0KPiAt LS0gL2Rldi9udWxsDQo+ICsrKyBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2Fs L0lwbWlCbWNBY3BpL0JtY0FjcGkuaW5mDQo+IEBAIC0wLDAgKzEsNDcgQEANCj4gKyMjIyBAZmls ZQ0KPiArIyBDb21wb25lbnQgZGVzY3JpcHRpb24gZmlsZSBmb3IgQk1DIEFDUEkuDQo+ICsjDQo+ ICsjIENvcHlyaWdodCAoYykgMjAxOCAtIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzDQo+ICtyZXNlcnZlZC48QlI+ICMgIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudCAjICMjIw0KPiArDQo+ICtbRGVmaW5lc10NCj4gKyAgSU5GX1ZFUlNJT04g ICAgICAgICAgICAgICAgICAgPSAweDAwMDEwMDA1DQo+ICsgIEJBU0VfTkFNRSAgICAgICAgICAg ICAgICAgICAgID0gQm1jQWNwaQ0KPiArICBGSUxFX0dVSUQgICAgICAgICAgICAgICAgICAgICA9 IDA5RTNCNEJFLUY3MzEtNDkwMy1BQUU2LUJENUQ1NzNCNjE0MA0KPiArICBNT0RVTEVfVFlQRSAg ICAgICAgICAgICAgICAgICA9IERYRV9EUklWRVINCj4gKyAgVkVSU0lPTl9TVFJJTkcgICAgICAg ICAgICAgICAgPSAxLjANCj4gKyAgRU5UUllfUE9JTlQgICAgICAgICAgICAgICAgICAgPSBCbWNB Y3BpRW50cnlQb2ludA0KPiArDQo+ICtbU291cmNlc10NCj4gKyAgQm1jQWNwaS5jDQo+ICsgIEJt Y1NzZHQvQm1jU3NkdC5hc2wNCj4gKw0KPiArW1BhY2thZ2VzXQ0KPiArICBNYW5hZ2VhYmlsaXR5 UGtnL01hbmFnZWFiaWxpdHlQa2cuZGVjDQo+ICsgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ICsgIE1k ZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+ICsNCj4gK1tMaWJyYXJ5Q2xhc3Nlc10NCj4g KyAgQmFzZU1lbW9yeUxpYg0KPiArICBEZWJ1Z0xpYg0KPiArICBVZWZpQm9vdFNlcnZpY2VzVGFi bGVMaWINCj4gKyAgVWVmaURyaXZlckVudHJ5UG9pbnQNCj4gKyAgVWVmaUxpYg0KPiArDQo+ICtb UHJvdG9jb2xzXQ0KPiArICBnRWZpRmlybXdhcmVWb2x1bWUyUHJvdG9jb2xHdWlkDQo+ICsgIGdF ZmlBY3BpVGFibGVQcm90b2NvbEd1aWQNCj4gKw0KPiArW1BjZF0NCj4gKyAgZ0VmaU1kZVBrZ1Rv a2VuU3BhY2VHdWlkLlBjZElwbWlLY3NJb0Jhc2VBZGRyZXNzDQo+ICsgIGdFZmlNZGVNb2R1bGVQ a2dUb2tlblNwYWNlR3VpZC5QY2RBY3BpRGVmYXVsdE9lbUlkDQo+ICsgIGdFZmlNZGVNb2R1bGVQ a2dUb2tlblNwYWNlR3VpZC5QY2RBY3BpRGVmYXVsdE9lbVRhYmxlSWQNCj4gKw0KPiArW0RlcGV4 XQ0KPiArICBnRWZpQWNwaVRhYmxlUHJvdG9jb2xHdWlkDQo+ICsNCj4gK1tCdWlsZE9wdGlvbnNd DQo+ICsgICpfKl8qX0FTTF9GTEFHUyA9IC1vaQ0KPiBkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvTWFu YWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvSXBtaUJtY0FjcGkvQm1jQWNwaS5jDQo+IGIvRmVhdHVy ZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvSXBtaUJtY0FjcGkvQm1jQWNwaS5jDQo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLmNmMDY2ZGQwOTUNCj4gLS0t IC9kZXYvbnVsbA0KPiArKysgYi9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9J cG1pQm1jQWNwaS9CbWNBY3BpLmMNCj4gQEAgLTAsMCArMSwyNjQgQEANCj4gKy8qKiBAZmlsZQ0K PiArICBJUE1JIEJNQyBBQ1BJLg0KPiArDQo+ICsgIENvcHlyaWdodCAoYykgMjAxOCAtIDIwMTks IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ICsgcmVzZXJ2ZWQuPEJSPg0KPiArICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArDQo+ICsqKi8N Cj4gKw0KPiArLy8NCj4gKy8vIFN0YXRlbWVudHMgdGhhdCBpbmNsdWRlIG90aGVyIGhlYWRlciBm aWxlcyAvLyAjaW5jbHVkZSA8UGlEeGUuaD4NCj4gKw0KPiArI2luY2x1ZGUgPEluZHVzdHJ5U3Rh bmRhcmQvQWNwaS5oPg0KPiArI2luY2x1ZGUgPFByb3RvY29sL0FjcGlTeXN0ZW1EZXNjcmlwdGlv blRhYmxlLmg+DQo+ICsjaW5jbHVkZSA8UHJvdG9jb2wvRmlybXdhcmVWb2x1bWUyLmg+DQo+ICsj aW5jbHVkZSA8UHJvdG9jb2wvQWNwaVRhYmxlLmg+DQo+ICsNCj4gKyNpbmNsdWRlIDxMaWJyYXJ5 L0Jhc2VMaWIuaD4NCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlCb290U2VydmljZXNUYWJsZUxp Yi5oPg0KPiArI2luY2x1ZGUgPExpYnJhcnkvVWVmaVJ1bnRpbWVTZXJ2aWNlc1RhYmxlTGliLmg+ DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KPiArI2luY2x1ZGUgPExpYnJhcnkv TWVtb3J5QWxsb2NhdGlvbkxpYi5oPiAjaW5jbHVkZQ0KPiArPExpYnJhcnkvQmFzZU1lbW9yeUxp Yi5oPiAjaW5jbHVkZSA8TGlicmFyeS9VZWZpTGliLmg+DQo+ICsNCj4gKyNpZm5kZWYgRUZJX0FD UElfQ1JFQVRPUl9JRA0KPiArI2RlZmluZSBFRklfQUNQSV9DUkVBVE9SX0lEICBTSUdOQVRVUkVf MzIgKCdNJywgJ1MnLCAnRicsICdUJykgI2VuZGlmDQo+ICsjaWZuZGVmIEVGSV9BQ1BJX0NSRUFU T1JfUkVWSVNJT04gI2RlZmluZSBFRklfQUNQSV9DUkVBVE9SX1JFVklTSU9ODQo+ICsweDAxMDAw MDBEICNlbmRpZg0KPiArDQo+ICsvKioNCj4gKw0KPiArICBMb2NhdGUgdGhlIGZpcnN0IGluc3Rh bmNlIG9mIGEgcHJvdG9jb2wuICBJZiB0aGUgcHJvdG9jb2wgcmVxdWVzdGVkDQo+ICsgaXMgYW4g IEZWIHByb3RvY29sLCB0aGVuIGl0IHdpbGwgcmV0dXJuIHRoZSBmaXJzdCBGViB0aGF0IGNvbnRh aW5zIHRoZQ0KPiArIEFDUEkgdGFibGUgIHN0b3JhZ2UgZmlsZS4NCj4gKw0KPiArICBAcGFyYW0g W2luXSBQcm90b2NvbCAgVGhlIHByb3RvY29sIHRvIGZpbmQuDQo+ICsgIEBwYXJhbSBbaW5dIElu c3RhbmNlICBSZXR1cm4gcG9pbnRlciB0byB0aGUgZmlyc3QgaW5zdGFuY2Ugb2YgdGhlIHByb3Rv Y29sLg0KPiArICBAcGFyYW0gW2luXSBUeXBlICAgICAgVGhlIHR5cGUgb2YgcHJvdG9jb2wgdG8g bG9jYXRlLg0KPiArDQo+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBmdW5j dGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5Lg0KPiArICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQg ICAgICAgICBUaGUgcHJvdG9jb2wgY291bGQgbm90IGJlIGxvY2F0ZWQuDQo+ICsgIEByZXR2YWwg RUZJX09VVF9PRl9SRVNPVVJDRVMgIFRoZXJlIGFyZSBub3QgZW5vdWdoIHJlc291cmNlcyB0byBm aW5kDQo+IHRoZSBwcm90b2NvbC4NCj4gKw0KPiArKiovDQo+ICtFRklfU1RBVFVTDQo+ICtMb2Nh dGVTdXBwb3J0UHJvdG9jb2wgKA0KPiArICBJTiAgIEVGSV9HVUlEICAqUHJvdG9jb2wsDQo+ICsg IE9VVCAgVk9JRCAgICAgICoqSW5zdGFuY2UsDQo+ICsgIElOICAgVUlOVDMyICAgIFR5cGUNCj4g KyAgKQ0KPiArew0KPiArICBFRklfU1RBVFVTICAgICAgICAgICAgICBTdGF0dXM7DQo+ICsgIEVG SV9IQU5ETEUgICAgICAgICAgICAgICpIYW5kbGVCdWZmZXI7DQo+ICsgIFVJTlROICAgICAgICAg ICAgICAgICAgIE51bWJlck9mSGFuZGxlczsNCj4gKyAgRUZJX0ZWX0ZJTEVUWVBFICAgICAgICAg RmlsZVR5cGU7DQo+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgIEZ2U3RhdHVzID0gMDsNCj4g KyAgRUZJX0ZWX0ZJTEVfQVRUUklCVVRFUyAgQXR0cmlidXRlczsNCj4gKyAgVUlOVE4gICAgICAg ICAgICAgICAgICAgU2l6ZTsNCj4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+ ICsNCj4gKyAgU3RhdHVzID0gZ0JTLT5Mb2NhdGVIYW5kbGVCdWZmZXIgKEJ5UHJvdG9jb2wsIFBy b3RvY29sLCBOVUxMLA0KPiArICZOdW1iZXJPZkhhbmRsZXMsICZIYW5kbGVCdWZmZXIpOyAgaWYg KEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiArICAgIHJldHVybiBTdGF0dXM7DQo+ICsgIH0NCj4g Kw0KPiArICAvLw0KPiArICAvLyBMb29raW5nIGZvciBGViB3aXRoIEFDUEkgc3RvcmFnZSBmaWxl ICAvLyAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwNCj4gKyBOdW1iZXJPZkhhbmRsZXM7IEluZGV4 KyspIHsNCj4gKyAgICBTdGF0dXMgPSBnQlMtPkhhbmRsZVByb3RvY29sIChIYW5kbGVCdWZmZXJb SW5kZXhdLCBQcm90b2NvbCwgSW5zdGFuY2UpOw0KPiArICAgIEFTU0VSVCAoIUVGSV9FUlJPUiAo U3RhdHVzKSk7DQo+ICsNCj4gKyAgICBpZiAoIVR5cGUpIHsNCj4gKyAgICAgIC8vDQo+ICsgICAg ICAvLyBOb3QgbG9va2luZyBmb3IgdGhlIEZWIHByb3RvY29sLCBzbyBmaW5kIHRoZSBmaXJzdCBp bnN0YW5jZSBvZiB0aGUNCj4gKyAgICAgIC8vIHByb3RvY29sLiAgVGhlcmUgc2hvdWxkIG5vdCBi ZSBhbnkgZXJyb3JzIGJlY2F1c2Ugb3VyIGhhbmRsZSBidWZmZXINCj4gKyAgICAgIC8vIHNob3Vs ZCBhbHdheXMgY29udGFpbiBhdCBsZWFzdCBvbmUgb3IgTG9jYXRlSGFuZGxlQnVmZmVyIHdvdWxk IGhhdmUNCj4gKyAgICAgIC8vIHJldHVybmVkIG5vdCBmb3VuZC4NCj4gKyAgICAgIC8vDQo+ICsg ICAgICBicmVhazsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICAvLw0KPiArICAgIC8vIFNlZSBpZiBp dCBoYXMgdGhlIEFDUEkgc3RvcmFnZSBmaWxlDQo+ICsgICAgLy8NCj4gKyAgICBTdGF0dXMgPSAo KEVGSV9GSVJNV0FSRV9WT0xVTUUyX1BST1RPQ09MICopKCpJbnN0YW5jZSkpLT5SZWFkRmlsZQ0K PiAoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqSW5zdGFuY2UsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ0VmaUNhbGxlcklkR3VpZCwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE5VTEwsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmU2l6ZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGaWxlVHlwZSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZBdHRyaWJ1dGVzLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZ2U3RhdHVzDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KPiArDQo+ ICsgICAgLy8NCj4gKyAgICAvLyBJZiB3ZSBmb3VuZCBpdCwgdGhlbiB3ZSBhcmUgZG9uZQ0KPiAr ICAgIC8vDQo+ICsgICAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gKyAgICAgIGJyZWFr Ow0KPiArICAgIH0NCj4gKyAgfQ0KPiArDQo+ICsgIGdCUy0+RnJlZVBvb2wgKEhhbmRsZUJ1ZmZl cik7DQo+ICsgIHJldHVybiBTdGF0dXM7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICBVcGRhdGUg QUNQSSBTU0RUIGZvciBCTUMgSVBNSSBLQ1MgZGV2aWNlDQo+ICsNCj4gKyAgQHBhcmFtIFtpbl0g VGFibGUgIFBvaW50ZXIgdG8gQUNQSSBTU0RUDQo+ICsNCj4gKyAgQHJldHZhbCBFRklfU1VDQ0VT UyAgU1NEVCBpcyB1cGRhdGVkIGFjY29yZGluZyB0byBQQ0Qgc2V0dGluZ3MgKiovDQo+ICtFRklf U1RBVFVTIFVwZGF0ZURldmljZVNzZHRUYWJsZSAoDQo+ICsgIElOIE9VVCBFRklfQUNQSV9DT01N T05fSEVBREVSICAqVGFibGUNCj4gKyAgKQ0KPiArew0KPiArICBFRklfQUNQSV9ERVNDUklQVElP Tl9IRUFERVIgICpUYWJsZUhlYWRlciA9IE5VTEw7DQo+ICsgIFVJTlQ2NCAgICAgICAgICAgICAg ICAgICAgICAgVGVtcE9lbVRhYmxlSWQ7DQo+ICsgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAg ICAgKkRhdGFQdHI7DQo+ICsgIEVGSV9BQ1BJX0lPX1BPUlRfREVTQ1JJUFRPUiAgKklvUnNjOw0K PiArDQo+ICsgIFRhYmxlSGVhZGVyID0gKEVGSV9BQ1BJX0RFU0NSSVBUSU9OX0hFQURFUiAqKVRh YmxlOw0KPiArDQo+ICsgIC8vDQo+ICsgIC8vIFVwZGF0ZSB0aGUgT0VNSUQgYW5kIE9FTSBUYWJs ZSBJRC4NCj4gKyAgLy8NCj4gKyAgQ29weU1lbSAoJlRhYmxlSGVhZGVyLT5PZW1JZCwgUGNkR2V0 UHRyIChQY2RBY3BpRGVmYXVsdE9lbUlkKSwNCj4gc2l6ZW9mDQo+ICsgKFRhYmxlSGVhZGVyLT5P ZW1JZCkpOyAgVGVtcE9lbVRhYmxlSWQgPSBQY2RHZXQ2NA0KPiArIChQY2RBY3BpRGVmYXVsdE9l bVRhYmxlSWQpOyAgQ29weU1lbSAoJlRhYmxlSGVhZGVyLT5PZW1UYWJsZUlkLA0KPiAmVGVtcE9l bVRhYmxlSWQsIHNpemVvZiAoVUlOVDY0KSk7DQo+ICsgIFRhYmxlSGVhZGVyLT5DcmVhdG9ySWQg ICAgICAgPSBFRklfQUNQSV9DUkVBVE9SX0lEOw0KPiArICBUYWJsZUhlYWRlci0+Q3JlYXRvclJl dmlzaW9uID0gRUZJX0FDUElfQ1JFQVRPUl9SRVZJU0lPTjsNCj4gKw0KPiArICAvLw0KPiArICAv LyBVcGRhdGUgSU8oRGVjb2RlMTYsIDB4Q0EyLCAweENBMiwgMCwgMikgIC8vICBERUJVRyAoKERF QlVHX0lORk8sDQo+ICsgIlVwZGF0ZURldmljZVNzZHRUYWJsZSAtIElQTUlcbiIpKTsgIGZvciAo RGF0YVB0ciA9IChVSU5UOCAqKShUYWJsZSArDQo+ICsgMSk7DQo+ICsgICAgICAgRGF0YVB0ciA8 IChVSU5UOCAqKSgoVUlOVDggKilUYWJsZSArIFRhYmxlLT5MZW5ndGggLSA0KTsNCj4gKyAgICAg ICBEYXRhUHRyKyspDQo+ICsgIHsNCj4gKyAgICBpZiAoQ29tcGFyZU1lbSAoRGF0YVB0ciwgIl9D UlMiLCA0KSA9PSAwKSB7DQo+ICsgICAgICBEYXRhUHRyICs9IDQ7IC8vIFNraXAgX0NSUw0KPiAr ICAgICAgQVNTRVJUICgqRGF0YVB0ciA9PSBBTUxfQlVGRkVSX09QKTsNCj4gKyAgICAgIERhdGFQ dHIrKzsgIC8vIFNraXAgQU1MX0JVRkZFUl9PUA0KPiArICAgICAgQVNTRVJUICgoKkRhdGFQdHIg JiAoQklUN3xCSVQ2KSkgPT0gMCk7DQo+ICsgICAgICBEYXRhUHRyKys7ICAvLyBTa2lwIFBrZ0xl bmd0aCAtIDB4RA0KPiArICAgICAgQVNTRVJUICgoKkRhdGFQdHIpID09IEFNTF9CWVRFX1BSRUZJ WCk7DQo+ICsgICAgICBEYXRhUHRyKys7ICAvLyBTa2lwIEJ1ZmZlclNpemUgT3BDb2RlDQo+ICsg ICAgICBEYXRhUHRyKys7ICAvLyBTa2lwIEJ1ZmZlclNpemUgLSAweEENCj4gKyAgICAgIElvUnNj ID0gKFZPSUQgKilEYXRhUHRyOw0KPiArICAgICAgQVNTRVJUIChJb1JzYy0+SGVhZGVyLkJpdHMu VHlwZSA9PSBBQ1BJX1NNQUxMX0lURU1fRkxBRyk7DQo+ICsgICAgICBBU1NFUlQgKElvUnNjLT5I ZWFkZXIuQml0cy5OYW1lID09DQo+IEFDUElfU01BTExfSU9fUE9SVF9ERVNDUklQVE9SX05BTUUp Ow0KPiArICAgICAgQVNTRVJUIChJb1JzYy0+SGVhZGVyLkJpdHMuTGVuZ3RoID09IHNpemVvZg0K PiAoRUZJX0FDUElfSU9fUE9SVF9ERVNDUklQVE9SKSAtIHNpemVvZg0KPiAoQUNQSV9TTUFMTF9S RVNPVVJDRV9IRUFERVIpKTsNCj4gKyAgICAgIERFQlVHICgoREVCVUdfSU5GTywgIklQTUkgSU8g QmFzZSBpbiBBU0wgdXBkYXRlIC0gMHglMDR4IDw9DQo+IDB4JTA0eFxuIiwgSW9Sc2MtPkJhc2VB ZGRyZXNzTWluLCBQY2RHZXQxNiAoUGNkSXBtaUtjc0lvQmFzZUFkZHJlc3MpKSk7DQo+ICsgICAg ICBJb1JzYy0+QmFzZUFkZHJlc3NNaW4gPSBQY2RHZXQxNiAoUGNkSXBtaUtjc0lvQmFzZUFkZHJl c3MpOw0KPiArICAgICAgSW9Sc2MtPkJhc2VBZGRyZXNzTWF4ID0gUGNkR2V0MTYgKFBjZElwbWlL Y3NJb0Jhc2VBZGRyZXNzKTsNCj4gKyAgICB9DQo+ICsgIH0NCj4gKw0KPiArICByZXR1cm4gRUZJ X1NVQ0NFU1M7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArDQo+ICsgIEVudHJ5IHBvaW50IGZvciBB Y3BpIHBsYXRmb3JtIGRyaXZlci4NCj4gKw0KPiArICBAcGFyYW0gW2luXSBJbWFnZUhhbmRsZSAg QSBoYW5kbGUgZm9yIHRoZSBpbWFnZSB0aGF0IGlzIGluaXRpYWxpemluZyB0aGlzDQo+IGRyaXZl ci4NCj4gKyAgQHBhcmFtIFtpbl0gU3lzdGVtVGFibGUgIEEgcG9pbnRlciB0byB0aGUgRUZJIHN5 c3RlbSB0YWJsZS4NCj4gKw0KPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBEcml2 ZXIgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5Lg0KPiArICBAcmV0dmFsIEVGSV9MT0FEX0VSUk9S ICAgICAgICBGYWlsZWQgdG8gSW5pdGlhbGl6ZSBvciBoYXMgYmVlbiBsb2FkZWQuDQo+ICsgIEBy ZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMgIENvdWxkIG5vdCBhbGxvY2F0ZSBuZWVkZWQgcmVz b3VyY2VzLg0KPiArDQo+ICsqKi8NCj4gK0VGSV9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArQm1jQWNw aUVudHJ5UG9pbnQgKA0KPiArICBJTiBFRklfSEFORExFICAgICAgICBJbWFnZUhhbmRsZSwNCj4g KyAgSU4gRUZJX1NZU1RFTV9UQUJMRSAgKlN5c3RlbVRhYmxlDQo+ICsgICkNCj4gK3sNCj4gKyAg RUZJX1NUQVRVUyAgU3RhdHVzOw0KPiArICBFRklfU1RBVFVTICBBY3BpU3RhdHVzOw0KPiArDQo+ ICsgIEVGSV9GSVJNV0FSRV9WT0xVTUUyX1BST1RPQ09MICAqRndWb2w7DQo+ICsgIElOVE4gICAg ICAgICAgICAgICAgICAgICAgICAgICBJbnN0YW5jZSAgICAgID0gMDsNCj4gKyAgRUZJX0FDUElf Q09NTU9OX0hFQURFUiAgICAgICAgICpDdXJyZW50VGFibGUgPSBOVUxMOw0KPiArICBVSU5UTiAg ICAgICAgICAgICAgICAgICAgICAgICAgVGFibGVIYW5kbGUgICA9IDA7DQo+ICsgIFVJTlQzMiAg ICAgICAgICAgICAgICAgICAgICAgICBGdlN0YXR1czsNCj4gKyAgVUlOVDMyICAgICAgICAgICAg ICAgICAgICAgICAgIFNpemU7DQo+ICsNCj4gKyAgRUZJX0FDUElfVEFCTEVfUFJPVE9DT0wgICpB Y3BpVGFibGU7DQo+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICBUYWJsZVNpemU7DQo+ICsN Cj4gKyAgLy8NCj4gKyAgLy8gRmluZCB0aGUgQWNwaVRhYmxlIHByb3RvY29sDQo+ICsgIC8vDQo+ ICsgIFN0YXR1cyA9IGdCUy0+TG9jYXRlUHJvdG9jb2wgKCZnRWZpQWNwaVRhYmxlUHJvdG9jb2xH dWlkLCBOVUxMLCAoVk9JRA0KPiArICoqKSZBY3BpVGFibGUpOyAgaWYgKEVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KPiArICAgIHJldHVybiBFRklfQUJPUlRFRDsNCj4gKyAgfQ0KPiArDQo+ICsgIC8v DQo+ICsgIC8vIExvY2F0ZSB0aGUgZmlybXdhcmUgdm9sdW1lIHByb3RvY29sICAvLyAgU3RhdHVz ID0NCj4gKyBMb2NhdGVTdXBwb3J0UHJvdG9jb2wgKCZnRWZpRmlybXdhcmVWb2x1bWUyUHJvdG9j b2xHdWlkLCAoVk9JRA0KPiArICoqKSZGd1ZvbCwgMSk7ICBpZiAoRUZJX0VSUk9SIChTdGF0dXMp KSB7DQo+ICsgICAgcmV0dXJuIFN0YXR1czsNCj4gKyAgfQ0KPiArDQo+ICsgIFN0YXR1cyAgID0g RUZJX1NVQ0NFU1M7DQo+ICsgIEluc3RhbmNlID0gMDsNCj4gKw0KPiArICAvLw0KPiArICAvLyBS ZWFkIHRhYmxlcyBmcm9tIHRoZSBzdG9yYWdlIGZpbGUuDQo+ICsgIC8vDQo+ICsgIHdoaWxlICgh RUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ICsgICAgQ3VycmVudFRhYmxlID0gTlVMTDsNCj4gKw0K PiArICAgIFN0YXR1cyA9IEZ3Vm9sLT5SZWFkU2VjdGlvbiAoDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgRndWb2wsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgJmdFZmlDYWxsZXJJZEd1aWQs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgRUZJX1NFQ1RJT05fUkFXLA0KPiArICAgICAgICAg ICAgICAgICAgICAgIEluc3RhbmNlLA0KPiArICAgICAgICAgICAgICAgICAgICAgIChWT0lEICoq KSZDdXJyZW50VGFibGUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgKFVJTlROICopJlNpemUs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgJkZ2U3RhdHVzDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgKTsNCj4gKyAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiArICAgICAgLy8N Cj4gKyAgICAgIC8vIFBlcmZvcm0gYW55IHRhYmxlIHNwZWNpZmljIHVwZGF0ZXMuDQo+ICsgICAg ICAvLw0KPiArICAgICAgQWNwaVN0YXR1cyA9IFVwZGF0ZURldmljZVNzZHRUYWJsZSAoQ3VycmVu dFRhYmxlKTsNCj4gKyAgICAgIGlmICghRUZJX0VSUk9SIChBY3BpU3RhdHVzKSkgew0KPiArICAg ICAgICBUYWJsZUhhbmRsZSA9IDA7DQo+ICsgICAgICAgIFRhYmxlU2l6ZSAgID0gKChFRklfQUNQ SV9ERVNDUklQVElPTl9IRUFERVIgKilDdXJyZW50VGFibGUpLT5MZW5ndGg7DQo+ICsgICAgICAg IEFTU0VSVCAoU2l6ZSA+PSBUYWJsZVNpemUpOw0KPiArDQo+ICsgICAgICAgIFN0YXR1cyA9IEFj cGlUYWJsZS0+SW5zdGFsbEFjcGlUYWJsZSAoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBY3BpVGFibGUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXJyZW50 VGFibGUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZVNpemUsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVGFibGVIYW5kbGUNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICk7DQo+ICsNCj4gKyAgICAgICAgQVNTRVJUX0VGSV9FUlJPUiAo U3RhdHVzKTsNCj4gKyAgICAgIH0NCj4gKw0KPiArICAgICAgLy8NCj4gKyAgICAgIC8vIEluY3Jl bWVudCB0aGUgaW5zdGFuY2UNCj4gKyAgICAgIC8vDQo+ICsgICAgICBJbnN0YW5jZSsrOw0KPiAr ICAgIH0NCj4gKyAgfQ0KPiArDQo+ICsgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gK30NCj4gZGlm ZiAtLWdpdA0KPiBhL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL0lwbWlCbWNB Y3BpL0JtY1NzZHQvQm1jU3NkdC5hc2wNCj4gYi9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL1Vu aXZlcnNhbC9JcG1pQm1jQWNwaS9CbWNTc2R0L0JtY1NzZHQuYXNsDQo+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLjgxNTdkNzQ0YzgNCj4gLS0tIC9kZXYvbnVsbA0K PiArKysNCj4gYi9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9JcG1pQm1jQWNw aS9CbWNTc2R0L0JtY1NzZHQuYXMNCj4gKysrIGwNCj4gQEAgLTAsMCArMSwyOCBAQA0KPiArLyoq IEBmaWxlDQo+ICsgIEJNQyBBQ1BJIFNTRFQuDQo+ICsNCj4gK0NvcHlyaWdodCAoYykgMjAxOCAt IDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gK1NQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsNCj4gKyoqLw0K PiArDQo+ICtEZWZpbml0aW9uQmxvY2sgKA0KPiArICAgICJCbWNTc2R0LmFtbCIsDQo+ICsgICAg IlNTRFQiLA0KPiArICAgIDB4MDIsICAgICAgICAgLy8gU1NEVCByZXZpc2lvbi4NCj4gKyAgICAg ICAgICAgICAgICAgIC8vIEEgUmV2aXNpb24gZmllbGQgdmFsdWUgZ3JlYXRlciB0aGFuIG9yIGVx dWFsIHRvIDIgc2lnbmlmaWVzIHRoYXQNCj4gaW50ZWdlcnMNCj4gKyAgICAgICAgICAgICAgICAg IC8vIGRlY2xhcmVkIHdpdGhpbiB0aGUgRGVmaW5pdGlvbiBCbG9jayBhcmUgdG8gYmUgZXZhbHVh dGVkIGFzIDY0LWJpdA0KPiB2YWx1ZXMNCj4gKyAgICAiSU5URUwiLCAgICAgIC8vIE9FTSBJRCAo NiBieXRlIHN0cmluZyksIHNhbWUgYXMgUGNkQWNwaURlZmF1bHRPZW1JZA0KPiBkZWZpbmVkIGlu IE1kZU1vZHVsZVBrZy5kZWMNCj4gKyAgICAiQk1DQUNQSSIsICAgIC8vIE9FTSB0YWJsZSBJRCAg KDggYnl0ZSBzdHJpbmcpDQo+ICsgICAgMHgwICAgICAgICAgICAvLyBPRU0gdmVyc2lvbiBvZiBE U0RUIHRhYmxlICg0IGJ5dGUgSW50ZWdlcikNCj4gKyAgICApDQo+ICt7DQo+ICsNCj4gKyAgRXh0 ZXJuYWwoXF9TQi5QQzAwLkxQQzAsIERldmljZU9iaikNCj4gKw0KPiArICBTY29wZSAoXF9TQi5Q QzAwLkxQQzApDQo+ICsgIHsNCj4gKyAgICAjaW5jbHVkZSAiSXBtaU9wclJlZ2lvbnMuYXNpIg0K PiArICB9DQo+ICsNCj4gK30NCj4gZGlmZiAtLWdpdA0KPiBhL0ZlYXR1cmVzL01hbmFnZWFiaWxp dHlQa2cvVW5pdmVyc2FsL0lwbWlCbWNBY3BpL0JtY1NzZHQvSXBtaU9wclJlZ2kNCj4gb25zLmFz aQ0KPiBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL0lwbWlCbWNBY3BpL0Jt Y1NzZHQvSXBtaU9wclJlZ2kNCj4gb25zLmFzaQ0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBp bmRleCAwMDAwMDAwMDAwLi5mZmQ2YWYzOTQ0DQo+IC0tLSAvZGV2L251bGwNCj4gKysrDQo+IGIv RmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvSXBtaUJtY0FjcGkvQm1jU3NkdC9J cG1pT3ByUmVnDQo+ICsrKyBpb25zLmFzaQ0KPiBAQCAtMCwwICsxLDU4IEBADQo+ICsvKiogQGZp bGUNCj4gKyAgSVBNSSBBQ1BJIFNTRFQuDQo+ICsNCj4gK0NvcHlyaWdodCAoYykgMjAxOCAtIDIw MTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gK1NQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsNCj4gKyoqLw0KPiAr DQo+ICtEZXZpY2UoSVBNQykNCj4gK3sNCj4gKyAgICAvLyBDb25maWcgRFdvcmQsIG1vZGlmaWVk IGR1cmluZyBQT1NUDQo+ICsgICAgLy8gQml0IGRlZmluaXRpb25zIGFyZSB0aGUgc2FtZSBhcyBQ UE1GbGFnczoNCj4gKyAgICAvLyBbMDBdICAgID0gUGx1ZyBhbmQgUGxheSBCTUMgRGV0ZWN0aW9u IGVuYWJsZWQgaW4gc2V0dXANCj4gKyAgICAvLyBbMzE6MDFdID0gUmVzZXJ2ZWQgICAgPSAwDQo+ ICsNCj4gKyAgICBOYW1lKEVDRkwsIDB4ODAwMDAwMDApDQo+ICsNCj4gKyAgICAvLyBSZXR1cm4g dGhlIGludGVyZmFjZSBzcGVjaWZpY2F0aW9uIHJldmlzaW9uDQo+ICsgICAgTWV0aG9kKF9TUlYp DQo+ICsgICAgew0KPiArICAgICAgICAvLyBJUE1JIFNwZWNpZmljYXRpb24gUmV2aXNpb24gdjIu MA0KPiArICAgICAgICBSZXR1cm4oMHgwMjAwKQ0KPiArICAgIH0NCj4gKw0KPiArICAgIE1ldGhv ZChfU1RBLCAwKQ0KPiArICAgIHsNCj4gKyAgICAgICAgLy8NCj4gKyAgICAgICAgLy8gQXNzdW1l IE9LDQo+ICsgICAgICAgIC8vDQo+ICsgICAgICAgICAgU3RvcmUgKDB4RiwgTG9jYWwwKQ0KPiAr DQo+ICsgICAgICAgIFJldHVybihMb2NhbDApDQo+ICsNCj4gKyAgICAgICAgLy8gQml0IDAgLSBT ZXQgaWYgdGhlIGRldmljZSBpcyBwcmVzZW50Lg0KPiArICAgICAgICAvLyBCaXQgMSAtIFNldCBp ZiB0aGUgZGV2aWNlIGlzIGVuYWJsZWQgYW5kIGRlY29kaW5nIGl0cyByZXNvdXJjZXMuDQo+ICsg ICAgICAgIC8vIEJpdCAyIC0gU2V0IGlmIHRoZSBkZXZpY2Ugc2hvdWxkIGJlIHNob3duIGluIHRo ZSBVSS4NCj4gKyAgICAgICAgLy8gQml0IDMgLSBTZXQgaWYgdGhlIGRldmljZSBpcyBmdW5jdGlv bmluZyBwcm9wZXJseSAoY2xlYXJlZCBpZiB0aGUgZGV2aWNlDQo+IGZhaWxlZCBpdHMgZGlhZ25v c3RpY3MpLg0KPiArICAgICAgICAvLyBCaXQgNCAtIFNldCBpZiB0aGUgYmF0dGVyeSBpcyBwcmVz ZW50Lg0KPiArICAgICAgICAvLyBCaXQgNSAtIFJlc2VydmVkIChtdXN0IGJlIGNsZWFyZWQpLg0K PiArICAgIH0gICAvLyBlbmQgb2YgX1NUQQ0KPiArDQo+ICsgICAgLy8gUmV0dXJuIHRoZSB4ODYg cmVzb3VyY2VzIGNvbnN1bWVkIGJ5IEJNQw0KPiArICAgIE5hbWUoX0NSUywgUmVzb3VyY2VUZW1w bGF0ZSgpDQo+ICsgICAgew0KPiArICAgICAgICAvLyBVc2VzIDgtYml0IHBvcnRzIDB4Q0EyLTB4 Q0E1DQo+ICsgICAgICAgIElPKERlY29kZTE2LCAweENBMiwgMHhDQTIsIDAsIDIpDQo+ICsgICAg fSkNCj4gKw0KPiArICAgIE5hbWUoX0hJRCwgIklQSTAwMDEiKSAgICAgICAgICAgLy8gSVBNSSBk ZXZpY2UNCj4gKyAgICBOYW1lKF9JRlQsIDB4MSkgICAgICAgICAgICAgICAgIC8vIEtDUyBzeXN0 ZW0gaW50ZXJmYWNlIHR5cGUNCj4gKyAgICBOYW1lKF9TVFIsIFVuaWNvZGUoIklQTUlfS0NTIikp DQo+ICsNCj4gKyAgICBOYW1lKF9VSUQsIDApICAvLyBGaXJzdCBpbnRlcmZhY2UuDQo+ICsNCj4g Kw0KPiArfSAvLyBlbmQgb2YgIERldmljZShJUE1DKQ0KPiArDQo+ICsNCj4gLS0NCj4gMi4zNy4x LndpbmRvd3MuMQ0KPg0KPg0KPg0KPiANCj4NCg0K