From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (NAM11-CO1-obe.outbound.protection.outlook.com [40.107.220.67]) by mx.groups.io with SMTP id smtpd.web08.32303.1657562175107592571 for ; Mon, 11 Jul 2022 10:56:15 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@nvidia.com header.s=selector2 header.b=Fgs0XI4N; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: nvidia.com, ip: 40.107.220.67, mailfrom: jbrasen@nvidia.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dYMC1QJcTcvr8yU+Wa7WJvBJxyFlQf0ZubuzyOBrGQieinUTnFXyUQ4HJsfDfzBp9K+WYlxjoh+Az1dC3rsezuPt/vSG+R1mfNSMog+XXaS64PSVXkfqOVWr3RUF+sXcPBFF8xLe3pSz73Zj/VIP9CWlIzR4NBczwTvmLihWey0fnoJ1eaqGHmKMh+o8yOyD+x8RIqhjut0M88UwUAu47A0gYL50NnSbtXlYJJTebFsCeN4UcIWkYqeobmKE4G8/de87gQ/b96ava0s1NcJjim8LTx9sYLrCeZFhb5GQGtta93xEAYywAT3tLS8JOQJiZGm5Ni0xkeWaZSK5kIzR7Q== 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=fadtlMV9BnCMfew6hEcEWerJu1LSw0QlIgPDw0KgwLo=; b=ay0OFmzGfbkRuwueBQHBVg5wTG2IZv5C1ZGLrZzoAQTI0YCITKKquZh4/i1zVlauYtN0WZrAflHaB/4AJsvbrrwc4SF6OAUEcU0/rOwbuQY2xwM0iHbOeeIf4E1Ho6oyiP4omoIM4VT+zcSl4p4904B6cGFEySJvgYCnce1LHrSlAdRffYBA2XcH1xDgXBU4FmuwRDIF3ZFlM+Ftwt1Xcyjy+9bPDSVHhmvl1bBwcKLfaoQRoEKpusjGd2awe5uZTliuK2U6/ptuz/+gAgigGLleZD8cv5N/8+Km3kbzD6FoHF0IYEaizclMY1kOc/Snc+kh9811Owv8qZppcofakg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fadtlMV9BnCMfew6hEcEWerJu1LSw0QlIgPDw0KgwLo=; b=Fgs0XI4NP71YR6f/mAgxZBfKJ9BDWpmxUebAIMJ0V22KeUdWbl+3RVl7WYFIvBTF2SQ88SpG+exCN0g8na1xTgYIKwD4WjJ2bzpT3b8K8mQduOZAEfowMyzVIRmyvHH0ZA71Jd8gUS/KxnzZWKSRZNWQBSCcOEt84ajDsY6v/IRW22eXF8OoN+dhSIcZ3Rsl4PKdYW0JBJBs6/YE+/FvrLpkKFFpyQbLj8IITN6G4jLgSTBvfNyOcGcIPxTd1hi04sbB26TtV2aOB+roNr104x61Jf5Ly97tt0udz7+H88hruhmpqFLdCgRPPBg+yjGMQgxo+XFNPTTL3djWi3KRxg== Received: from DS7PR12MB5789.namprd12.prod.outlook.com (2603:10b6:8:74::21) by SN1PR12MB2413.namprd12.prod.outlook.com (2603:10b6:802:2b::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.23; Mon, 11 Jul 2022 17:56:12 +0000 Received: from DS7PR12MB5789.namprd12.prod.outlook.com ([fe80::d94:9d75:d614:372]) by DS7PR12MB5789.namprd12.prod.outlook.com ([fe80::d94:9d75:d614:372%8]) with mapi id 15.20.5417.020; Mon, 11 Jul 2022 17:56:12 +0000 From: "Jeff Brasen" To: Pierre Gondois , "devel@edk2.groups.io" CC: "Sami.Mujawar@arm.com" , "Alexei.Fedorov@arm.com" Subject: Re: [PATCH 4/4] DynamicTablesPkg: AcpiSsdtPcieLibArm: Add support for override protocol Thread-Topic: [PATCH 4/4] DynamicTablesPkg: AcpiSsdtPcieLibArm: Add support for override protocol Thread-Index: AQHYjUfDP1zhR9Gb8EiYN5lFv8RPlK1pqYRAgARBXgCABrg8AIAEsKUAgAAHuQCAAB1yAIAAA+IQ Date: Mon, 11 Jul 2022 17:56:12 +0000 Message-ID: References: <45abcaa79586b025205269d17957537d613c9bc2.1656603839.git.jbrasen@nvidia.com> <40d296fe-1208-c217-8a48-6a37cf242c46@arm.com> <7ed34a85-d170-21e5-15f2-9d2f7fd7361e@arm.com> In-Reply-To: <7ed34a85-d170-21e5-15f2-9d2f7fd7361e@arm.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7e957f21-c47a-4b44-0bb1-08da6366a4b1 x-ms-traffictypediagnostic: SN1PR12MB2413:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: TGHSaBaF6Hr+r6YPyhmpXmYIbIGGOvga+W9lYDkyKtWGg6PixFSO/BkPGKRQk2Mau51QxBALmTEQ+gvnEh0xPizGrOutx45NBhmJ4iCVJamrZF8mBUXgxyrDef8CZSomJl/FA/6FvBtEeTbejFs+6Knq5m/o18g2+MwsiQ0USsA2beZQrpODliKJpqg9MQHC5UDV2rHZgSnSD7DHosf+cYYMYeSxBQdttjfrKGaUlRm7nBvc1Sy4Nl94jTqQroHakKJTT2upIbTpDYGdULmH9n3E/NSaBsOLmnWtmFgAZjyob8sIwV+LgRT35VRvEe+UlSvdn/M/8fsnBSJckbgLxyhkm63e6xPp/tGfNjcFkIzcVUun7+UX/y5J2SzuhxuNdWAohQwc2hebtMTxeCd9vQ0zCdTdRJz/MRhIgMthNhnH3rvZS2zXoQl3j0VxGTkSPrd79sblT5+fML0AKCeSX6g69F87pX6w4yMS9N0IEm+RG6qbD2q2ko/KLYQxsPVWulnNqex1f/CjHE+a8PtAYEPXcd/5fSrz7syayViwPtwVBZ2cAsApBKjhk8P/S2i4a7AkHpwNS7HFYHiBFqnhbFQfrO3xE7+DPTsoaL8prFaT7K7OcYfH3zAjVmkwAs64aWlwkhFQqQpoz+QimpGyBRfmTAI5toul/i2vqJg+5xvIG6GsgaCSDJasdhxxtnv9v9BfKzDfyF5sOyd1LzeBiNFJifPqE/9GQkTVKd/sdLJEbKq93lBadMIc2dI7Mzg0lrNXvK8y+F6uLbLjsmpqiw1G4miAKJlovOjFqU4V7TnelK3IkTWeBrgGLvOTV5vdxL8X0aCqFYUvfUD4Fq69+xrHxVjgHiJXjw1jzPmOkTA= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB5789.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(39860400002)(366004)(136003)(346002)(376002)(396003)(55016003)(38100700002)(110136005)(86362001)(33656002)(26005)(54906003)(122000001)(6506007)(7696005)(9686003)(5660300002)(30864003)(41300700001)(8936002)(52536014)(2906002)(8676002)(66476007)(66556008)(66946007)(64756008)(38070700005)(76116006)(66446008)(4326008)(53546011)(316002)(71200400001)(83380400001)(186003)(478600001)(213903007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bStxb2Z5d3UvNXhNUGRReXBWQStmMXlmRitmYm5xMkp6KzFnR0Qxek52eElS?= =?utf-8?B?dXg2clhjdmJWMWh1eHJRK0QvMkRTVndNb0Jjc04xYTlydjYxbkxRZTY1NXBW?= =?utf-8?B?YjN1Y0dCcXJ1VEFoOHdGRERDNE9hY0xKOU1wd1pHcEtKRmtCd2kzMTk4aVhB?= =?utf-8?B?M3JQL0U5SGZXQ1VTcHNSb1JneHljOHhYOEx1QXl3cGoxYWNPdXpGcG0rc1Q3?= =?utf-8?B?VUo5U3F3MVN1NFA0OEVMSFlWdnkzSmZNSDFDMlRmZHFsZzJCYXg2anRyenJk?= =?utf-8?B?ODlDZU5GMXNRaG5RS0k3KzRoMGNvZ05NOWFHK2U3S2VRTkNZT2ZGWXRpWlZm?= =?utf-8?B?VjlxcUZrbUVWVG5iUEUxd2x0UUJ5RWZZc3lXbTY1QnFUWXdTNnkvNjBzS2wz?= =?utf-8?B?ZFlMQ2RIVnk2cVdxcWc5NEtoWXFQb203U0V0eUFYQWtSWjhXWVdyS25rdXBa?= =?utf-8?B?blVyc0V4bzlvbys2czZNWjVqNVYvaXV0UFdDSlo5NXVrSFh3SjF1Q0MwQW9p?= =?utf-8?B?cVZiUnpMOXBOTGdTWFVYZFVqOThTck1jbjJpdTJPM1hZSXZRNzJUV0podlds?= =?utf-8?B?TXZZSjZRcEdpeEMwZ000ZTgxUW1lR2dsL2FHMkNwakQwajZxQkhBYk9vbVNx?= =?utf-8?B?Zk1ERklrVit6VVRtTG9WMW5TZm9SNE9yTjNWLzF4QVlSdGIzMk9BMlJ4bG9M?= =?utf-8?B?cjM3Zkl6alZYTFFJRE81VGJQSHBKaE5aMDFLSlNxUHB0RGdsblNOVGhFQVUv?= =?utf-8?B?b1NpUUlOQmtrVGE3eHRHVmowQzJTVFRBWEpOaCtST1JwNW84SElIaW9YMHkz?= =?utf-8?B?RFdVRlh2U05lcTNEZWw5MXdtZmcvOG5xeklLZVl2U05BRmkvTCtOTmY5WlY3?= =?utf-8?B?azFiSXdVeHFQWVd2RlYwbnpPeEhsclVhSlhRcExhUkpHQXJSbjFOSXZtM3Fy?= =?utf-8?B?ZVQ3NGt6SnBmZzErMUVHRldpaUFKVTgxSG1sUmEyQzVnMkVoNDJEVmRONGlK?= =?utf-8?B?TjIwWllNaXZMMHpZOUxZaEEwK2JObVFWUU5nVjQwdUJJVlAycXVhZ3RLWFNX?= =?utf-8?B?bkpNellzbU9xdzIvMTlwZU9ZQUkvRzhSSzBYRFI3elBScjUrTHV4R29iZGpt?= =?utf-8?B?NVVySUlybTFtSk5RWUsrMm1uRHM4NnlSdy93MjZIZDNDZ1N0NUtSM1dzVDdt?= =?utf-8?B?c0dLc0FZYUIwNk5DanJrRDdyYXZ3eGhJMUF2NDlkMzZ1bjljdHFQelZNVVJF?= =?utf-8?B?djNzRDVLclhvTlVNUlBIY0lTNXNRczRnZWwxVTRESDMzMmVEbzAyeks3Ti8w?= =?utf-8?B?b2tEY2x2cEVWd0J4d2Q5ajJLWS9SLzhWWmJuRnBMN1ROM2EwREROY1JNWDdw?= =?utf-8?B?ZmFsbHNkOG5qZlpQUXpqTlh2dmxQMzZyWHNBcGVsU0lvWXA5Vlk5RDNYSnpS?= =?utf-8?B?RVZjdC9XNVZJRjlLcktnWEJWVDlTTmcrSHppQTl6bnFkSjFnbWJjYjJ5NjBR?= =?utf-8?B?KzBLYTFNcjhYK0VNaG9NR0Z4a0ZITVBMRUtoSkdzLysrdmJkSWl3dEtzalNP?= =?utf-8?B?Vy9NREovc2h0MG1udmVlTHNKYk5LaGRmempVZ3RNdmhhUm1TeDJRd1pVT1dx?= =?utf-8?B?alJiMUtCNllCd0lpSjdDSytaTzRXWU9MMU9kdVg4dHV3THNybHFNcXRpQTVa?= =?utf-8?B?SmVacFRWR1RqT0NZRU9QeE95OVdqd2h0OGhaTjlla29jOC9xU3gyTjhFTTNS?= =?utf-8?B?NDNEb0tkb2NMWi96d1R5dElCbDFFeGR2dXRodHlycDhPOFRUYUF3eUJLOXRq?= =?utf-8?B?eHZ2dHpOM0hxUit5U3lnTkJhSmtuRmlEeTJQb1FTdTBBN0lML1pON2J3c1lP?= =?utf-8?B?dUxtQVNXQkx2ZWJIRDJCU0Z0eGhnWUdVM2tMT0drdkROVEYyUzZ4SkxoZDNo?= =?utf-8?B?dWhld0tKREpjYldyN2xJOVRVMXJ1WnAxNDU2ajlkMWtTZWg5ZXJjVFE0ZGpX?= =?utf-8?B?aDRxcHFHRUJvQ1I0T1UydkM2bTNmVkQwR04rVS9Gdmtaa0dBazZZbElETlNx?= =?utf-8?B?aXVpbm1NWW1rWTUvRGxpaTVJMzB2WmY3WUVXR0habXkvZUM0MTZKNTFnZkZa?= =?utf-8?Q?O/9nlFpzWX77fmT2Se3cxAUUy?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5789.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e957f21-c47a-4b44-0bb1-08da6366a4b1 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jul 2022 17:56:12.6758 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: bS2ig6PGzm98Vmz/oml9aJqJ48yQlT4WT6G2Ora1d1gklAKwAJ6tUgZnyUYUIFIF8vcvBvLJ0VmEoV0Jlol2vA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2413 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 WWVzIHdlIGhhdmUgc3lzdGVtcyB3aGVyZSB3ZSB3aWxsIGhhdmUgbW9yZSB0aGFuIDE2IGNvbnRy b2xsZXJzL3NlZ21lbnRzLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IFBpZXJyZSBHb25kb2lzIDxwaWVycmUuZ29uZG9pc0Bhcm0uY29tPg0KPiBTZW50OiBNb25kYXks IEp1bHkgMTEsIDIwMjIgMTE6MTUgQU0NCj4gVG86IEplZmYgQnJhc2VuIDxqYnJhc2VuQG52aWRp YS5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogU2FtaS5NdWphd2FyQGFybS5jb207 IEFsZXhlaS5GZWRvcm92QGFybS5jb20NCj4gU3ViamVjdDogUmU6IFtQQVRDSCA0LzRdIER5bmFt aWNUYWJsZXNQa2c6IEFjcGlTc2R0UGNpZUxpYkFybTogQWRkDQo+IHN1cHBvcnQgZm9yIG92ZXJy aWRlIHByb3RvY29sDQo+IA0KPiBFeHRlcm5hbCBlbWFpbDogVXNlIGNhdXRpb24gb3BlbmluZyBs aW5rcyBvciBhdHRhY2htZW50cw0KPiANCj4gDQo+IE9uIDcvMTEvMjIgMTc6MzIsIEplZmYgQnJh c2VuIHdyb3RlOg0KPiA+IFdlIGFsc28gb24gc29tZSBQQ0llIGRldmljZXMgYWRkIGEgZGV2aWNl IGVudHJ5IHVuZGVyIERPT18gdy8gaXQncyBvd24NCj4gX1JTVCBhbmQgX0RTRC4gSWYgeW91IHNl ZSB0aGUgdjMgdmVyc2lvbiBvZiB0aGUgcGF0Y2ggd2hlcmUgSSBhZGQgYSBzdXBwb3J0DQo+IGxp YnJhcnkgdGhhdCB3ZSBjYW4gb3ZlcnJpZGUgYWxsb3dzIHVzIHRvIGN1c3RvbWl6ZSB0aGUgZGV2 aWNlIGFzIHdlIG5lZWQuDQo+IA0KPiBPayB0aGFua3MhIEdlbmVyYXRlUGNpU2xvdHMoKSBzaG91 bGQgYWxsb3cgeW91IHRvIGFkZCBhbnkgcGxhdGZvcm0gc3BlY2lmaWMNCj4gZGV2aWNlLCBhbmQg c2hvdWxkIGlkZWFsbHkgbm90IG1vZGlmeSB0aGUgcGFyZW50ICdQQ0kwJyBvYmplY3QgKGV2ZW4g aWYgaXQgaXMNCj4gcG9zc2libGUgaW4gcHJhY3RpY2UpLiBTbyBpdCBzaG91bGQgYmUgb2suDQo+ IA0KPiBBIG9uZSBsYXN0IHF1ZXN0aW9uOg0KPiANCj4gW1BBVENIIHYzIDIvM10gRHluYW1pY1Rh Ymxlc1BrZzogQWNwaVNzZHRQY2llTGliQXJtOiBTdXBwb3J0IFVJRCA+IDB4RiBJcw0KPiBpcyBz dGlsbCBuZWVkZWQgPw0KPiANCj4gUmVnYXJkcywNCj4gUGllcnJlDQo+IA0KPiA+DQo+ID4gLUpl ZmYNCj4gPg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206 IFBpZXJyZSBHb25kb2lzIDxwaWVycmUuZ29uZG9pc0Bhcm0uY29tPg0KPiA+PiBTZW50OiBNb25k YXksIEp1bHkgMTEsIDIwMjIgOTowMiBBTQ0KPiA+PiBUbzogSmVmZiBCcmFzZW4gPGpicmFzZW5A bnZpZGlhLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4+IENjOiBTYW1pLk11amF3YXJA YXJtLmNvbTsgQWxleGVpLkZlZG9yb3ZAYXJtLmNvbQ0KPiA+PiBTdWJqZWN0OiBSZTogW1BBVENI IDQvNF0gRHluYW1pY1RhYmxlc1BrZzogQWNwaVNzZHRQY2llTGliQXJtOiBBZGQNCj4gPj4gc3Vw cG9ydCBmb3Igb3ZlcnJpZGUgcHJvdG9jb2wNCj4gPj4NCj4gPj4gRXh0ZXJuYWwgZW1haWw6IFVz ZSBjYXV0aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0YWNobWVudHMNCj4gPj4NCj4gPj4NCj4gPj4g SGVsbG8gSmVmZiwNCj4gPj4gVG8gYmUgc3VyZSBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LCB0aGUg U3NkdFBjaWVHZW5lcmF0b3IgY3VycmVudGx5DQo+ID4+IGFsbG93cyB0byBnZW5lcmF0ZSBzb21l dGhpbmcgbGlrZSB0aGlzOg0KPiA+Pg0KPiA+PiBTY29wZShfU0IpIHsNCj4gPj4gICAgIERldmlj ZShQQ0kwKSB7DQo+ID4+ICAgICAgIERldmljZSAoRDAwXykgeyAvLyBEZXZpY2UgMA0KPiA+PiAg ICAgICAgIE5hbWUoX0FEUiwgMHgwMDAwRkZGRikNCj4gPj4gICAgICAgfQ0KPiA+PiAgICAgICBN ZXRob2QoX09TQyw0KSB7DQo+ID4+ICAgICAgICAgWy4uLl0gLy8gR2VuZXJpYyBfT1NDIG1ldGhv ZA0KPiA+PiAgICAgICB9DQo+ID4+ICAgICB9DQo+ID4+IH0NCj4gPj4NCj4gPj4gV2hhdCB5b3Ug d2FudCB0byBkbyBpczoNCj4gPj4gMS4gVXNlIGFub3RoZXIgX09TQyBtZXRob2QNCj4gPj4gMi4g QWRkIG1vcmUgaW5mb3JtYXRpb24gaW4gdGhlIEQwMF8gb2JqZWN0LCBpLmUuOg0KPiA+PiAgICAg LSBhIF9EU0Qgb2JqZWN0DQo+ID4+ICAgICAtIGEgX1JTVCBtZXRob2QNCj4gPj4gMy4gQXMgX1JT VCBpcyBhZGRlZCBpbiAyLiwgYWxzbyBhZGQgYSBfUlNUIG1ldGhvZCB0byBQQ0kwDQo+ID4+DQo+ ID4+IElzIGl0IGNvcnJlY3QgPyBPciBpcyB0aGVyZSBzb21lIG90aGVyIGluZm9ybWF0aW9uIHlv dSB3YW50IHRvIGFkZCA/DQo+ID4+DQo+ID4+IFJlZ2FyZHMsDQo+ID4+IFBpZXJyZQ0KPiA+Pg0K PiA+PiBPbiA3LzgvMjIgMTc6MzYsIEplZmYgQnJhc2VuIHdyb3RlOg0KPiA+Pj4gSSB0aGluayB0 aGlzIHdvdWxkIHdvcmsuIEluc3RlYWQgb2YgR2VuZXJhdGVQY2lEZXZpY2VJbmZvIHRoZQ0KPiA+ Pj4gZnVuY3Rpb24gd2Ugd291bGQgd2FudCB0byBicmVhayBvdXQgd291bGQgYmUgR2VuZXJhdGVQ Y2lTbG90cy4gSSdsbA0KPiA+Pj4gd29yayBvbiBjaGFuZ2luZyBteSBwYXRjaCBzZXJpZXMgdG8g dGhpcy4gVW5sZXNzIHlvdSBoYXZlIGEgYmV0dGVyDQo+ID4+PiBuYW1lIHdpbGwgY2FsbCB0aGlz IGxpYnJhcnkgU3NkdFBjaVN1cHBvcnRMaWIgYW5kIHBsYWNlIGluIHVuZGVyDQo+ID4+PiBMaWJy YXJ5L0NvbW1vbg0KPiA+Pj4NCj4gPj4+IEdvaW5nIHRvIGFsc28gcGFzcyBQY2lJbmZvIGludG8g QWRkT3NjTWV0aG9kIGluIHRoaXMgbmV3IGFwcHJvYWNoIGluDQo+ID4+PiBjYXNlDQo+ID4+IGNs aWVudCBuZWVkcyB0byBoYXZlIGRpZmZlcmVudCBfT1NDIHBlciBjb250cm9sbGVyIChBbmQgdG8N Cj4gPj4gR2VuZXJhdGVQY2lTbG90cyBhcyB3ZWxsKS4NCj4gPj4+DQo+ID4+PiBUaGFua3MsDQo+ ID4+PiBKZWZmDQo+ID4+Pg0KPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+ Pj4gRnJvbTogUGllcnJlIEdvbmRvaXMgPHBpZXJyZS5nb25kb2lzQGFybS5jb20+DQo+ID4+Pj4g U2VudDogTW9uZGF5LCBKdWx5IDQsIDIwMjIgMjo0OCBBTQ0KPiA+Pj4+IFRvOiBKZWZmIEJyYXNl biA8amJyYXNlbkBudmlkaWEuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPj4+PiBDYzog U2FtaS5NdWphd2FyQGFybS5jb207IEFsZXhlaS5GZWRvcm92QGFybS5jb20NCj4gPj4+PiBTdWJq ZWN0OiBSZTogW1BBVENIIDQvNF0gRHluYW1pY1RhYmxlc1BrZzogQWNwaVNzZHRQY2llTGliQXJt OiBBZGQNCj4gPj4+PiBzdXBwb3J0IGZvciBvdmVycmlkZSBwcm90b2NvbA0KPiA+Pj4+DQo+ID4+ Pj4gRXh0ZXJuYWwgZW1haWw6IFVzZSBjYXV0aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0YWNobWVu dHMNCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4gSGVsbG8gSmVmZiwNCj4gPj4+PiBJIHRoaW5rIGl0 IHdvdWxkIGlkZWFsbHkgYmUgYmV0dGVyIHRvIGhhdmUgdGhlIGNvZGUNCj4gPj4+PiBhZGRpbmcv cmVwbGFjaW5nIHRoZSBtZXRob2RzL29iamVjdHMgeW91IG5vdGVkIGluc2lkZSB0aGUNCj4gPj4+ PiBlZGsyL2VkazItcGxhdGZvbXMgcmVwb3NpdG9yaWVzLiBUaGUgbWV0aG9kcy9vYmplY3RzIHRo YXQgeW91IHdhbnQNCj4gPj4+PiB0byByZXBsYWNlIHNlZW0gdG8gb25seQ0KPiA+PiBjb25jZXJu Og0KPiA+Pj4+IC10aGUgb2JqZWN0cyBhdmFpbGFibGUgaW4gdGhlICdEZXZpY2UgKFBDSXgpJyBu b2RlIC10aGUgX09TQyBtZXRob2QNCj4gPj4+Pg0KPiA+Pj4+IElmIGEgbGlicmFyeSB3aXRoIHRo ZSBmb2xsb3dpbmcgdHdvIG1ldGhvZHMgKGV4dHJhY3RlZCBmcm9tDQo+ID4+Pj4gU3NkdFBjaWVM aWJBcm0uaW5mKSB3YXMgY3JlYXRlZCwgd291bGQgaXQgYmUgc3VmZmljaWVudCBmb3IgYWxsIHRo ZQ0KPiA+Pj4+IHJlcGxhY2VtZW50cyB5b3Ugd2FudCB0byBkbyA/DQo+ID4+Pj4gTGlrZSB0aGlz IHdlIHdvdWxkIGhhdmUgYSBnZW5lcmljIGltcGxlbWVudGF0aW9uIGFuZCBzcGVjaWZpYyBvbmVz Lg0KPiA+Pj4+DQo+ID4+Pj4gRUZJX1NUQVRVUw0KPiA+Pj4+IEVGSUFQSQ0KPiA+Pj4+IEdlbmVy YXRlUGNpRGV2aWNlSW5mbyAoDQo+ID4+Pj4gICAgICBJTiAgICAgIENPTlNUIENNX0FSTV9QQ0lf Q09ORklHX1NQQUNFX0lORk8gICpQY2lJbmZvLA0KPiA+Pj4+ICAgICAgSU4gICAgICAgICAgICBV SU5UMzIgICAgICAgICAgICAgICAgICAgICAgICBVaWQsDQo+ID4+Pj4gICAgICBJTiAgT1VUICAg ICAgIEFNTF9PQkpFQ1RfTk9ERV9IQU5ETEUgICAgICAgIFBjaU5vZGUNCj4gPj4+PiAgICAgICkN Cj4gPj4+Pg0KPiA+Pj4+IEVGSV9TVEFUVVMNCj4gPj4+PiBFRklBUEkNCj4gPj4+PiBBZGRPc2NN ZXRob2QgKA0KPiA+Pj4+ICAgICAgSU4gIE9VVCAgIEFNTF9PQkpFQ1RfTk9ERV9IQU5ETEUgIFBj aU5vZGUNCj4gPj4+PiAgICAgICkNCj4gPj4+Pg0KPiA+Pj4+IFJlZ2FyZHMsDQo+ID4+Pj4gUGll cnJlDQo+ID4+Pj4NCj4gPj4+PiBPbiA3LzEvMjIgMTc6NTIsIEplZmYgQnJhc2VuIHdyb3RlOg0K PiA+Pj4+PiBDdXJyZW50bHkgd2UgZG8gdGhlIGZvbGxvd2luZyBpbiB0aGlzIGNhbGwuDQo+ID4+ Pj4+DQo+ID4+Pj4+IFJlbW92ZSBhbmQgcmVwbGFjZSB0aGUgX09TQyBtZXRob2Qgb24gY2VydGFp biB0YXJnZXRzLiBJDQo+ID4+Pj4+IG9yaWdpbmFsbHkgaGFkIHRoaXMgcGFzcyB0aGUgdGVtcGxh dGUgb3ZlciBidXQgcmVtb3ZlZCB0aGF0IHdoZW4gSQ0KPiA+Pj4+PiBhZGRlZCB0aGlzIG1vcmUg Z2VuZXJpYyBvdmVycmlkZSBzdXBwb3J0IEFkZCBhIF9SU1QgbWV0aG9kIHRvIHRoZQ0KPiA+Pj4+ PiByb290IHBvcnQgZGV2aWNlIHN1YiBub2RlIEFkZCBhIF9EU0QgZm9yIGRldmljZSBwcm9wZXJ0 aWVzDQo+ID4+Pj4+IENvbmRpdGlvbmFsbHkgYWRkIGFuIGVudHJ5IGZvciB0aGUgZGV2aWNlIGF0 dGFjaGVkIHRvIHRoZSBQQ0llIGJ1cw0KPiA+Pj4+PiBpZiB3ZSBuZWVkIHRvIGFkZCBwcm9wZXJ0 aWVzIG9yIF9SU1QgbWV0aG9kcy4gVGhpcyB3aWxsIGxpa2VseQ0KPiA+Pj4+PiBldmVudHVhbGx5 IG1vdmUgdG8gYW5vdGhlciBkcml2ZXIgKHdoaWNoIGlzIHRoZSBwdXJwb3NlIG9mIHBhdGNoDQo+ ID4+Pj4+IDIvNCBpbiB0aGlzIHNlcmllcykNCj4gPj4+Pj4NCj4gPj4+Pj4gSSBmaWd1cmVkIHRy eWluZyB0byBnZXQgdGhlIGdlbmVyYXRvciB0byBoYW5kbGUgdGhhdCB3b3VsZCBiZSBtb3JlDQo+ ID4+Pj4+IGRpZmZpY3VsdA0KPiA+Pj4+IGFzIHRoZXNlIHdvdWxkIGJlIGhhcmQgdG8gZ2VuZXJh bGl6ZS4NCj4gPj4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4gVGhhbmtzLA0KPiA+Pj4+PiBKZWZmDQo+ ID4+Pj4+DQo+ID4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4gRnJv bTogUGllcnJlIEdvbmRvaXMgPHBpZXJyZS5nb25kb2lzQGFybS5jb20+DQo+ID4+Pj4+PiBTZW50 OiBGcmlkYXksIEp1bHkgMSwgMjAyMiA2OjQwIEFNDQo+ID4+Pj4+PiBUbzogSmVmZiBCcmFzZW4g PGpicmFzZW5AbnZpZGlhLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4+Pj4+PiBDYzog U2FtaS5NdWphd2FyQGFybS5jb207IEFsZXhlaS5GZWRvcm92QGFybS5jb20NCj4gPj4+Pj4+IFN1 YmplY3Q6IFJlOiBbUEFUQ0ggNC80XSBEeW5hbWljVGFibGVzUGtnOiBBY3BpU3NkdFBjaWVMaWJB cm06DQo+ID4+Pj4+PiBBZGQgc3VwcG9ydCBmb3Igb3ZlcnJpZGUgcHJvdG9jb2wNCj4gPj4+Pj4+ DQo+ID4+Pj4+PiBFeHRlcm5hbCBlbWFpbDogVXNlIGNhdXRpb24gb3BlbmluZyBsaW5rcyBvciBh dHRhY2htZW50cw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBIZWxsbyBKZWZmLA0KPiA+ Pj4+Pj4gSXMgaXQgcG9zc2libGUgdG8ga25vdyB3aGF0IHRoZSBVcGRhdGVUYWJsZSgpIGZ1bmN0 aW9uIHdvdWxkIGRvID8NCj4gPj4+Pj4+IE1heWJlIGl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvIGlu dGVncmF0ZSB0aGUgYWx0ZXJuYXRpdmUNCj4gPj4+Pj4+IGltcGxlbWVudGF0aW9uIHdpdGhvdXQg YWRkaW5nIGEgbmV3IHByb3RvY29sLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFJlZ2FyZHMsDQo+ID4+ Pj4+PiBQaWVycmUNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBPbiA2LzMwLzIyIDE3OjQ4LCBKZWZmIEJy YXNlbiB3cm90ZToNCj4gPj4+Pj4+PiBTb21lIHBsYXRmb21zIG1heSB3YW50IHRvIG1vZGlmeSB0 aGUgQUNQSSB0YWJsZSBjcmVhdGVkLg0KPiA+Pj4+Pj4+IEFkZCBzdXBwb3J0IGZvciBwcm90b2Nv bCB0aGF0IGNhbiBwcm92aWRlIGFuIGFsdGVybmF0aXZlDQo+ID4+Pj4gaW1wbGVtZW50YXRpb24u DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBKZWZmIEJyYXNlbiA8amJyYXNl bkBudmlkaWEuY29tPg0KPiA+Pj4+Pj4+IC0tLQ0KPiA+Pj4+Pj4+ICAgICAgRHluYW1pY1RhYmxl c1BrZy9EeW5hbWljVGFibGVzUGtnLmRlYyAgICAgICAgIHwgIDMgKw0KPiA+Pj4+Pj4+ICAgICAg Li4uL1Byb3RvY29sL1NzZHRQY2llT3ZlcnJpZGVQcm90b2NvbC5oICAgICAgIHwgNjMNCj4gPj4+ PiArKysrKysrKysrKysrKysrKysrDQo+ID4+Pj4+Pj4gICAgICAuLi4vQWNwaVNzZHRQY2llTGli QXJtL1NzZHRQY2llR2VuZXJhdG9yLmMgICAgfCAzMSArKysrKysrKy0NCj4gPj4+Pj4+PiAgICAg IC4uLi9Bcm0vQWNwaVNzZHRQY2llTGliQXJtL1NzZHRQY2llTGliQXJtLmluZiB8ICA0ICsrDQo+ ID4+Pj4+Pj4gICAgICA0IGZpbGVzIGNoYW5nZWQsIDk4IGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pDQo+ID4+Pj4+Pj4gICAgICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPj4+Pj4+PiBEeW5h bWljVGFibGVzUGtnL0luY2x1ZGUvUHJvdG9jb2wvU3NkdFBjaWVPdmVycmlkZVByb3RvY29sLmgN Cj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS9EeW5hbWljVGFibGVzUGtnL0R5bmFt aWNUYWJsZXNQa2cuZGVjDQo+ID4+Pj4+Pj4gYi9EeW5hbWljVGFibGVzUGtnL0R5bmFtaWNUYWJs ZXNQa2cuZGVjDQo+ID4+Pj4+Pj4gaW5kZXggYTg5MGEwNDhiZS4uYmI2NmJkYWYxNCAxMDA2NDQN Cj4gPj4+Pj4+PiAtLS0gYS9EeW5hbWljVGFibGVzUGtnL0R5bmFtaWNUYWJsZXNQa2cuZGVjDQo+ ID4+Pj4+Pj4gKysrIGIvRHluYW1pY1RhYmxlc1BrZy9EeW5hbWljVGFibGVzUGtnLmRlYw0KPiA+ Pj4+Pj4+IEBAIC00Myw2ICs0Myw5IEBADQo+ID4+Pj4+Pj4gICAgICAgICMgRHluYW1pYyBUYWJs ZSBGYWN0b3J5IFByb3RvY29sIEdVSUQNCj4gPj4+Pj4+PiAgICAgICAgZ0Vka2lpRHluYW1pY1Rh YmxlRmFjdG9yeVByb3RvY29sR3VpZCA9IHsgMHg5MWQxZTMyNywNCj4gPj4+Pj4+PiAweGZlNWEs IDB4NDliOCwgeyAweGFiLCAweDY1LCAweGUsIDB4Y2UsIDB4MmQsIDB4ZGIsIDB4NDUsIDB4ZWMN Cj4gPj4+Pj4+PiB9IH0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICsgICMgUHJvdG9jb2wgdG8gb3Zl cnJpZGUgUENJIFNTRFQgdGFibGUgZ2VuZXJhdGlvbg0KPiA+Pj4+Pj4+ICsgZ0Vka2lpRHluYW1p Y1RhYmxlU3NkdFBjaWVPdmVycmlkZVByb3RvY29sR3VpZCA9IHsNCj4gMHg5NjJlOGI0NCwNCj4g Pj4+Pj4+PiArIDB4MjNiMywgMHg0MWRhLCB7IDB4OWYsIDB4MzYsIDB4Y2EsIDB4ZGUsIDB4Njgs IDB4NDksIDB4ZmIsDQo+ID4+Pj4+Pj4gKyAweGY2IH0gfQ0KPiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+ PiAgICAgIFtQY2RzRml4ZWRBdEJ1aWxkXQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gICAgICAgICMg TWF4aW11bSBudW1iZXIgb2YgQ3VzdG9tIEFDUEkgR2VuZXJhdG9ycyBkaWZmIC0tZ2l0DQo+ID4+ Pj4+Pj4gYS9EeW5hbWljVGFibGVzUGtnL0luY2x1ZGUvUHJvdG9jb2wvU3NkdFBjaWVPdmVycmlk ZVByb3RvY29sLmgNCj4gPj4+Pj4+PiBiL0R5bmFtaWNUYWJsZXNQa2cvSW5jbHVkZS9Qcm90b2Nv bC9Tc2R0UGNpZU92ZXJyaWRlUHJvdG9jb2wuaA0KPiA+Pj4+Pj4+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+ID4+Pj4+Pj4gaW5kZXggMDAwMDAwMDAwMC4uMjk1NjhhMDE1OQ0KPiA+Pj4+Pj4+IC0t LSAvZGV2L251bGwNCj4gPj4+Pj4+PiArKysNCj4gPj4gYi9EeW5hbWljVGFibGVzUGtnL0luY2x1 ZGUvUHJvdG9jb2wvU3NkdFBjaWVPdmVycmlkZVByb3RvY29sLmgNCj4gPj4+Pj4+PiBAQCAtMCww ICsxLDYzIEBADQo+ID4+Pj4+Pj4gKy8qKiBAZmlsZQ0KPiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+PiAr ICBDb3B5cmlnaHQgKGMpIDIwMjIsIE5WSURJQSBDT1JQT1JBVElPTi4gQWxsIHJpZ2h0cyByZXNl cnZlZC4NCj4gPj4+Pj4+PiArDQo+ID4+Pj4+Pj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPj4+Pj4+PiArDQo+ID4+Pj4+Pj4gKyoqLw0KPiA+Pj4+ Pj4+ICsNCj4gPj4+Pj4+PiArI2lmbmRlZiBTU0RUX1BDSUVfT1ZFUlJJREVfUFJPVE9DT0xfSF8g I2RlZmluZQ0KPiA+Pj4+Pj4+ICtTU0RUX1BDSUVfT1ZFUlJJREVfUFJPVE9DT0xfSF8NCj4gPj4+ Pj4+PiArDQo+ID4+Pj4+Pj4gKyNpbmNsdWRlIDxBcm1OYW1lU3BhY2VPYmplY3RzLmg+ICNpbmNs dWRlDQo+ID4+Pj4+Pj4gKzxMaWJyYXJ5L0FtbExpYi9BbWxMaWIuaD4NCj4gPj4+Pj4+PiArDQo+ ID4+Pj4+Pj4gKy8qKiBUaGlzIG1hY3JvIGRlZmluZXMgdGhlIFNTRFQgUENJIE92ZXJyaWRlIFBy b3RvY29sIEdVSUQuDQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ICsgIEdVSUQ6IHtEODVBNDgzNS01 QTgyLTQ4OTQtQUMwMi03MDZGNDNENTk3OEV9DQo+ID4+Pj4+Pj4gKyovDQo+ID4+Pj4+Pj4gKyNk ZWZpbmUgRURLSUlfU1NEVF9QQ0lfT1ZFUlJJREVfUFJPVE9DT0xfR1VJRCAgICAgICAgICAgXA0K PiA+Pj4+Pj4+ICsgIHsgMHg5NjJlOGI0NCwgMHgyM2IzLCAweDQxZGEsICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCj4gPj4+Pj4+PiArICAgIHsgMHg5ZiwgMHgzNiwgMHhjYSwgMHhkZSwgMHg2 OCwgMHg0OSwgMHhmYiwgMHhmNiB9ICBcDQo+ID4+Pj4+Pj4gKyAgfTsNCj4gPj4+Pj4+PiArDQo+ ID4+Pj4+Pj4gKy8qKg0KPiA+Pj4+Pj4+ICsgIEZvcndhcmQgZGVjbGFyYXRpb25zOg0KPiA+Pj4+ Pj4+ICsqLw0KPiA+Pj4+Pj4+ICt0eXBlZGVmIHN0cnVjdCBTc2R0T3ZlcnJpZGVQY2lQcm90b2Nv bA0KPiA+Pj4+Pj4+ICtFREtJSV9TU0RUX1BDSV9PVkVSUklERV9QUk9UT0NPTDsNCj4gPj4+Pj4+ PiArDQo+ID4+Pj4+Pj4gKy8qKiBUaGUgVXBkYXRlVGFibGUgZnVuY3Rpb24gYWxsb3dzIHRoZSBv dmVycmlkZSBwcm90b2NvbCB0bw0KPiA+Pj4+Pj4+ICt1cGRhdGUNCj4gPj4+PiB0aGUNCj4gPj4+ Pj4+PiArICogICBQQ0llIFNTRFQgdGFibGUgcHJpb3IgdG8gYmVpbmcgY3JlYXRlZC4NCj4gPj4+ Pj4+PiArDQo+ID4+Pj4+Pj4gKyAgQHBhcmFtIFtpbl0gICAgICBUaGlzICAgIFBvaW50ZXIgdG8g dGhlIFNTRFQgUENJIE92ZXJyaWRlIFByb3RvY29sLg0KPiA+Pj4+Pj4+ICsgIEBwYXJhbSBbaW5d ICAgICAgUGNpSW5mbyBUaGUgUENJZSBjb25maWd1cmF0aW9uIGluZm8gZm9yIHRoaXMgbm9kZS4N Cj4gPj4+Pj4+PiArICBAcGFyYW0gW2luXSAgICAgIFVpZCAgICAgVUlEIHRoYXQgd2FzIHNlbGVj dGVkIGZvciB0aGlzIFBDSWUgbm9kZS4NCj4gPj4+Pj4+PiArICBAcGFyYW0gW2luLCBvdXRdIFBj aU5vZGUgUG9pbnRlciB0byB0aGUgUENJIG5vZGUgb2YgdGhpcyBBQ1BJDQo+ID4+IHRhYmxlLg0K PiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+PiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBT dWNjZXNzLg0KPiA+Pj4+Pj4+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSIEEgcGFy YW1ldGVyIGlzIGludmFsaWQuDQo+ID4+Pj4+Pj4gKyAgQHJldHZhbCBFRklfREVWSUNFX0VSUk9S ICAgICAgRmFpbGVkIHRvIHVwZGF0ZSB0aGUgdGFibGUuDQo+ID4+Pj4+Pj4gKyoqLw0KPiA+Pj4+ Pj4+ICt0eXBlZGVmDQo+ID4+Pj4+Pj4gK0VGSV9TVEFUVVMNCj4gPj4+Pj4+PiArKEVGSUFQSQ0K PiAqRURLSUlfU1NEVF9QQ0lfT1ZFUlJJREVfUFJPVE9DT0xfVVBEQVRFX1RBQkxFKSgNCj4gPj4+ Pj4+PiArICBJTiAgICAgIENPTlNUIEVES0lJX1NTRFRfUENJX09WRVJSSURFX1BST1RPQ09MICAq Q09OU1QNCj4gVGhpcywNCj4gPj4+Pj4+PiArICBJTiAgICAgIENPTlNUIENNX0FSTV9QQ0lfQ09O RklHX1NQQUNFX0lORk8NCj4gKlBjaUluZm8sDQo+ID4+Pj4+Pj4gKyAgSU4gICAgICAgICAgICBV SU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVaWQsDQo+ID4+Pj4+Pj4g KyAgSU4gIE9VVCAgICAgICBBTUxfUk9PVF9OT0RFX0hBTkRMRSAgICAgICAgICAgICAgICAgICAg ICAqUGNpTm9kZQ0KPiA+Pj4+Pj4+ICsgICk7DQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ICsvKiog VGhlIEVES0lJX0NPTkZJR1VSQVRJT05fTUFOQUdFUl9QUk9UT0NPTA0KPiBzdHJ1Y3R1cmUNCj4g Pj4+Pj4+IGRlc2NyaWJlcyB0aGUNCj4gPj4+Pj4+PiArICAgIENvbmZpZ3VyYXRpb24gTWFuYWdl ciBQcm90b2NvbCBpbnRlcmZhY2UuDQo+ID4+Pj4+Pj4gKyovDQo+ID4+Pj4+Pj4gK3R5cGVkZWYg c3RydWN0IFNzZHRPdmVycmlkZVBjaVByb3RvY29sIHsNCj4gPj4+Pj4+PiArICAvKiogVGhlIGlu dGVyZmFjZSB1c2VkIHRvIHVwZGF0ZSB0aGUgQUNQSSB0YWJsZSBmb3IgUENJLg0KPiA+Pj4+Pj4+ ICsgICovDQo+ID4+Pj4+Pj4gKyAgRURLSUlfU1NEVF9QQ0lfT1ZFUlJJREVfUFJPVE9DT0xfVVBE QVRFX1RBQkxFDQo+ID4+Pj4gVXBkYXRlVGFibGU7DQo+ID4+Pj4+Pj4gK30gRURLSUlfU1NEVF9Q Q0lfT1ZFUlJJREVfUFJPVE9DT0w7DQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ICsvKiogVGhlIFNT RFQgUENJIE92ZXJyaWRlIFByb3RvY29sIEdVSUQuDQo+ID4+Pj4+Pj4gKyovDQo+ID4+Pj4+Pj4g K2V4dGVybiBFRklfR1VJRA0KPiA+Pj4+Pj4+ICtnRWRraWlEeW5hbWljVGFibGVTc2R0UGNpZU92 ZXJyaWRlUHJvdG9jb2xHdWlkOw0KPiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+PiArI2VuZGlmIC8vIFNT RFRfUENJRV9PVkVSUklERV9QUk9UT0NPTF9IXw0KPiA+Pj4+Pj4+IGRpZmYgLS1naXQNCj4gPj4+ Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pg0KPiA+Pg0KPiBhL0R5bmFtaWNUYWJsZXNQa2cvTGlicmFy eS9BY3BpL0FybS9BY3BpU3NkdFBjaWVMaWJBcm0vU3NkdFBjaWVHZW5lcmENCj4gPj4+Pj4+IHQN Cj4gPj4+Pj4+PiBvci5jDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4NCj4gPj4NCj4gYi9E eW5hbWljVGFibGVzUGtnL0xpYnJhcnkvQWNwaS9Bcm0vQWNwaVNzZHRQY2llTGliQXJtL1NzZHRQ Y2llR2VuZXJhDQo+ID4+Pj4+PiB0DQo+ID4+Pj4+Pj4gb3IuYw0KPiA+Pj4+Pj4+IGluZGV4IGM1 YjIzZDkxZDAuLmQ1OTgyYzI0ZmYgMTAwNjQ0DQo+ID4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4NCj4g Pj4+Pj4+DQo+ID4+Pj4NCj4gPj4NCj4gYS9EeW5hbWljVGFibGVzUGtnL0xpYnJhcnkvQWNwaS9B cm0vQWNwaVNzZHRQY2llTGliQXJtL1NzZHRQY2llR2VuZXJhDQo+ID4+Pj4+PiB0DQo+ID4+Pj4+ Pj4gb3IuYw0KPiA+Pj4+Pj4+ICsrKw0KPiA+Pj4+Pj4NCj4gPj4gYi9EeW5hbWljVGFibGVzUGtn L0xpYnJhcnkvQWNwaS9Bcm0vQWNwaVNzZHRQY2llTGliQXJtL1NzZHRQY2llR2VuDQo+ID4+Pj4+ Pj4gKysrIGVyYXRvci5jDQo+ID4+Pj4+Pj4gQEAgLTIwLDYgKzIwLDcgQEANCj4gPj4+Pj4+PiAg ICAgICNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4NCj4gPj4+Pj4+PiAgICAgICNp bmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+ID4+Pj4+Pj4gICAgICAjaW5jbHVkZSA8TGli cmFyeS9NZW1vcnlBbGxvY2F0aW9uTGliLmg+DQo+ID4+Pj4+Pj4gKyNpbmNsdWRlIDxMaWJyYXJ5 L1VlZmlCb290U2VydmljZXNUYWJsZUxpYi5oPg0KPiA+Pj4+Pj4+ICAgICAgI2luY2x1ZGUgPFBy b3RvY29sL0FjcGlUYWJsZS5oPg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gICAgICAvLyBNb2R1bGUg c3BlY2lmaWMgaW5jbHVkZSBmaWxlcy4NCj4gPj4+Pj4+PiBAQCAtMzAsNiArMzEsNyBAQA0KPiA+ Pj4+Pj4+ICAgICAgI2luY2x1ZGUgPExpYnJhcnkvVGFibGVIZWxwZXJMaWIuaD4NCj4gPj4+Pj4+ PiAgICAgICNpbmNsdWRlIDxMaWJyYXJ5L0FtbExpYi9BbWxMaWIuaD4NCj4gPj4+Pj4+PiAgICAg ICNpbmNsdWRlIDxQcm90b2NvbC9Db25maWd1cmF0aW9uTWFuYWdlclByb3RvY29sLmg+DQo+ID4+ Pj4+Pj4gKyNpbmNsdWRlIDxQcm90b2NvbC9Tc2R0UGNpZU92ZXJyaWRlUHJvdG9jb2wuaD4NCj4g Pj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgICAgI2luY2x1ZGUgIlNzZHRQY2llR2VuZXJhdG9yLmgiDQo+ ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBAQCAtNzk4LDkgKzgwMCwxMCBAQCBHZW5lcmF0ZVBjaURldmlj ZSAoDQo+ID4+Pj4+Pj4gICAgICB7DQo+ID4+Pj4+Pj4gICAgICAgIEVGSV9TVEFUVVMgIFN0YXR1 czsNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IC0gIENIQVI4ICAgICAgICAgICAgICAgICAgIEFzbE5h bWVbQU1MX05BTUVfU0VHX1NJWkUgKyAxXTsNCj4gPj4+Pj4+PiAtICBBTUxfT0JKRUNUX05PREVf SEFORExFICBTY29wZU5vZGU7DQo+ID4+Pj4+Pj4gLSAgQU1MX09CSkVDVF9OT0RFX0hBTkRMRSAg UGNpTm9kZTsNCj4gPj4+Pj4+PiArICBDSEFSOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QXNsTmFtZVtBTUxfTkFNRV9TRUdfU0laRSArIDFdOw0KPiA+Pj4+Pj4+ICsgIEFNTF9PQkpFQ1Rf Tk9ERV9IQU5ETEUgICAgICAgICAgICBTY29wZU5vZGU7DQo+ID4+Pj4+Pj4gKyAgQU1MX09CSkVD VF9OT0RFX0hBTkRMRSAgICAgICAgICAgIFBjaU5vZGU7DQo+ID4+Pj4+Pj4gKyAgRURLSUlfU1NE VF9QQ0lfT1ZFUlJJREVfUFJPVE9DT0wgICpPdmVycmlkZVByb3RvY29sOw0KPiA+Pj4+Pj4+DQo+ ID4+Pj4+Pj4gICAgICAgIEFTU0VSVCAoR2VuZXJhdG9yICE9IE5VTEwpOw0KPiA+Pj4+Pj4+ICAg ICAgICBBU1NFUlQgKENmZ01nclByb3RvY29sICE9IE5VTEwpOyBAQCAtODYwLDYgKzg2MywyOCBA QA0KPiA+Pj4+Pj4+IEdlbmVyYXRlUGNpRGV2aWNlICgNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAg ICAgICAvLyBBZGQgdGhlIHRlbXBsYXRlIF9PU0MgbWV0aG9kLg0KPiA+Pj4+Pj4+ICAgICAgICBT dGF0dXMgPSBBZGRPc2NNZXRob2QgKFBjaU5vZGUpOw0KPiA+Pj4+Pj4+ICsgIGlmIChFRklfRVJS T1IgKFN0YXR1cykpIHsNCj4gPj4+Pj4+PiArICAgIEFTU0VSVCAoMCk7DQo+ID4+Pj4+Pj4gKyAg ICByZXR1cm4gU3RhdHVzOw0KPiA+Pj4+Pj4+ICsgIH0NCj4gPj4+Pj4+PiArDQo+ID4+Pj4+Pj4g KyAgU3RhdHVzID0gZ0JTLT5Mb2NhdGVQcm90b2NvbCAoDQo+ID4+Pj4+Pj4gKyAgICAgICAgICAg ICAgICAgICZnRWRraWlEeW5hbWljVGFibGVTc2R0UGNpZU92ZXJyaWRlUHJvdG9jb2xHdWlkLA0K PiA+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICBOVUxMLA0KPiA+Pj4+Pj4+ICsgICAgICAgICAg ICAgICAgICAoVk9JRCAqKikmT3ZlcnJpZGVQcm90b2NvbA0KPiA+Pj4+Pj4+ICsgICAgICAgICAg ICAgICAgICApOw0KPiA+Pj4+Pj4+ICsgIGlmICghRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4+ Pj4+Pj4gKyAgICBTdGF0dXMgPSBPdmVycmlkZVByb3RvY29sLT5VcGRhdGVUYWJsZSAoDQo+ID4+ Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE92ZXJyaWRlUHJvdG9jb2ws DQo+ID4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBjaUluZm8sDQo+ ID4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVpZCwNCj4gPj4+Pj4+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGNpTm9kZQ0KPiA+Pj4+Pj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOyAgfSBlbHNlIHsNCj4gPj4+Pj4+PiAr ICAgIC8vIE5vdCBhbiBlcnJvciBpZiBvdmVycmlkZSBwcm90b2NvbCBpcyBub3QgZm91bmQNCj4g Pj4+Pj4+PiArICAgIFN0YXR1cyA9IEVGSV9TVUNDRVNTOw0KPiA+Pj4+Pj4+ICsgIH0NCj4gPj4+ Pj4+PiArDQo+ID4+Pj4+Pj4gICAgICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ID4+ Pj4+Pj4gICAgICAgIHJldHVybiBTdGF0dXM7DQo+ID4+Pj4+Pj4gICAgICB9DQo+ID4+Pj4+Pj4g ZGlmZiAtLWdpdA0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+DQo+ID4+DQo+IGEvRHluYW1p Y1RhYmxlc1BrZy9MaWJyYXJ5L0FjcGkvQXJtL0FjcGlTc2R0UGNpZUxpYkFybS9Tc2R0UGNpZUxp YkFybS4NCj4gPj4+Pj4+PiBpbmYNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pg0KPiA+Pg0K PiBiL0R5bmFtaWNUYWJsZXNQa2cvTGlicmFyeS9BY3BpL0FybS9BY3BpU3NkdFBjaWVMaWJBcm0v U3NkdFBjaWVMaWJBcm0uDQo+ID4+Pj4+Pj4gaW5mDQo+ID4+Pj4+Pj4gaW5kZXggNDMxZTMyYTc3 Ny4uOGU5MTZmMTVlOSAxMDA2NDQNCj4gPj4+Pj4+PiAtLS0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4N Cj4gPj4+Pg0KPiA+Pg0KPiBhL0R5bmFtaWNUYWJsZXNQa2cvTGlicmFyeS9BY3BpL0FybS9BY3Bp U3NkdFBjaWVMaWJBcm0vU3NkdFBjaWVMaWJBcm0uDQo+ID4+Pj4+Pj4gaW5mDQo+ID4+Pj4+Pj4g KysrDQo+ID4+Pj4+Pg0KPiA+PiBiL0R5bmFtaWNUYWJsZXNQa2cvTGlicmFyeS9BY3BpL0FybS9B Y3BpU3NkdFBjaWVMaWJBcm0vU3NkdFBjaWVMaWINCj4gPj4+Pj4+PiArKysgQXJtLmluZg0KPiA+ Pj4+Pj4+IEBAIC0zMCw2ICszMCwxMCBAQA0KPiA+Pj4+Pj4+ICAgICAgICBBY3BpSGVscGVyTGli DQo+ID4+Pj4+Pj4gICAgICAgIEFtbExpYg0KPiA+Pj4+Pj4+ICAgICAgICBCYXNlTGliDQo+ID4+ Pj4+Pj4gKyAgVWVmaUJvb3RTZXJ2aWNlc1RhYmxlTGliDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiAg ICAgIFtQY2RdDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBnRWRraWlEeW5hbWljVGFibGVzUGtnVG9r ZW5TcGFjZUd1aWQuUGNkUGNpVXNlU2VnbWVudEFzVWlkDQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ ICtbUHJvdG9jb2xzXQ0KPiA+Pj4+Pj4+ICsgIGdFZGtpaUR5bmFtaWNUYWJsZVNzZHRQY2llT3Zl cnJpZGVQcm90b2NvbEd1aWQNCg==