From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp-fw-9102.amazon.com (smtp-fw-9102.amazon.com [207.171.184.29]) by mx.groups.io with SMTP id smtpd.web10.8409.1608213751885539154 for ; Thu, 17 Dec 2020 06:02:32 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=A4OwrKph; spf=pass (domain: amazon.com, ip: 207.171.184.29, mailfrom: prvs=61334e8f5=hborghor@amazon.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1608213753; x=1639749753; h=from:to:cc:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version:subject; bh=b9WWQi9XVv4VItDvVYqJQueXUUie9GwfeBZxJKKCLEY=; b=A4OwrKphnHBwfSRCQatNAj55eGuCNOSnhfUJ1ir5lgzs9YJ3qMWGLq5G udKh8wsHwMYV+orOV5cgP9Gqjs6Oye0YAKoQ15xZrhjgZGLJhJA/cZJNf nsqmMr3/X2UsPWDkbM52397jLGt2QanAQteusIsf9CFQa3BcJJYmwLq28 U=; X-IronPort-AV: E=Sophos;i="5.78,428,1599523200"; d="scan'208";a="105160785" Subject: Re: [edk2-devel] [PATCH] Ovmf: Set matching PCI routing values in PIIX4 Thread-Topic: [edk2-devel] [PATCH] Ovmf: Set matching PCI routing values in PIIX4 Received: from sea32-co-svc-lb4-vlan3.sea.corp.amazon.com (HELO email-inbound-relay-2c-456ef9c9.us-west-2.amazon.com) ([10.47.23.38]) by smtp-border-fw-out-9102.sea19.amazon.com with ESMTP; 17 Dec 2020 14:02:26 +0000 Received: from EX13MTAUEE001.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan3.pdx.amazon.com [10.236.137.198]) by email-inbound-relay-2c-456ef9c9.us-west-2.amazon.com (Postfix) with ESMTPS id 57AA6261686; Thu, 17 Dec 2020 14:02:24 +0000 (UTC) Received: from EX13D08UEB001.ant.amazon.com (10.43.60.245) by EX13MTAUEE001.ant.amazon.com (10.43.62.226) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 17 Dec 2020 14:02:23 +0000 Received: from EX13D33EUC004.ant.amazon.com (10.43.164.63) by EX13D08UEB001.ant.amazon.com (10.43.60.245) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 17 Dec 2020 14:02:23 +0000 Received: from EX13D33EUC004.ant.amazon.com ([10.43.164.63]) by EX13D33EUC004.ant.amazon.com ([10.43.164.63]) with mapi id 15.00.1497.006; Thu, 17 Dec 2020 14:02:22 +0000 From: "Borghorst, Hendrik" To: "lersek@redhat.com" CC: "Woodhouse, David" , "devel@edk2.groups.io" Thread-Index: AQHWzXGlm8yHS2y0QU+AQVjrOXirB6n29XoAgAABOACABGjkgA== Date: Thu, 17 Dec 2020 14:02:22 +0000 Message-ID: References: <00c056d3-fb0c-522f-fc29-a137ef829453@redhat.com> <4ba40a9d-50c2-d246-0be9-965fe0668c52@redhat.com> In-Reply-To: <4ba40a9d-50c2-d246-0be9-965fe0668c52@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.166.196] MIME-Version: 1.0 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <1E0535A97A30F74191311CA1606129ED@amazon.com> Content-Transfer-Encoding: base64 T24gTW9uLCAyMDIwLTEyLTE0IGF0IDE5OjQxICswMTAwLCBMYXN6bG8gRXJzZWsgd3JvdGU6DQo+ IENBVVRJT046IFRoaXMgZW1haWwgb3JpZ2luYXRlZCBmcm9tIG91dHNpZGUgb2YgdGhlIG9yZ2Fu aXphdGlvbi4gRG8NCj4gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5sZXNz IHlvdSBjYW4gY29uZmlybSB0aGUgc2VuZGVyDQo+IGFuZCBrbm93IHRoZSBjb250ZW50IGlzIHNh ZmUuDQo+IA0KPiANCj4gDQo+IE9uIDEyLzE0LzIwIDE5OjM3LCBMYXN6bG8gRXJzZWsgd3JvdGU6 DQo+ID4gT24gMTIvMDgvMjAgMTU6NTEsIEJvcmdob3JzdCwgSGVuZHJpayB2aWEgZ3JvdXBzLmlv IHdyb3RlOg0KPiA+ID4gVGhlIE9WTUYgcGFja2FnZSB0cmllcyB0byBtaW1pYyB0aGUgUENJIGlu aXRpYWxpemF0aW9uIG9mDQo+ID4gPiBTZWFCSU9TLg0KPiA+ID4gQm90aCBzZXQgdGhlIFBDSV9J TlRFUlJVUFRfTElORSByZWdpc3RlciBhY2NvcmRpbmcgdG8gdGhlIHNhbWUNCj4gPiA+IGxvZ2lj IHdpdGggcm90YXRpb24gYmFzZWQgb24gSVJRcyAoMTAsIDEwLCAxMSwgMTEpLiBIb3dldmVyLA0K PiA+ID4gd2hpbGUNCj4gPiA+IFNlYUJJT1MgYXBwbGllcyB0aGVzZSBJUlFzIHRvIHRoZSBQQ0kg aW50ZXJydXB0IHJvdXRpbmcgcmVnaXN0ZXINCj4gPiA+ICgweDYwKQ0KPiA+ID4gb2YgdGhlIFBJ SVg0LCBPVk1GIHdyb25nbHkgYXBwbGllcyAoMTEsIDExLCAxMCwgMTApIHdoaWNoIGJyZWFrcw0K PiA+ID4gbGVnYWN5DQo+ID4gPiBJTlR4IHJvdXRpbmcuDQo+ID4gPiANCj4gPiA+IFNpZ25lZC1v ZmYtYnk6IEhlbmRyaWsgQm9yZ2hvcnN0IDxoYm9yZ2hvckBhbWF6b24uZGU+DQo+ID4gPiBSZXZp ZXdlZC1ieTogRGF2aWQgV29vZGhvdXNlIDxkd213QGFtYXpvbi5jby51az4NCj4gPiA+IC0tLQ0K PiA+ID4gIC4uLi9QbGF0Zm9ybUJvb3RNYW5hZ2VyTGliL0Jkc1BsYXRmb3JtLmMgICAgICB8IDI0 ICsrKysrKysrKy0tDQo+ID4gPiAtLS0tLS0tLQ0KPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxMiBp bnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkNCj4gPiA+IA0KPiA+ID4gZGlmZiAtLWdpdCBh L092bWZQa2cvTGlicmFyeS9QbGF0Zm9ybUJvb3RNYW5hZ2VyTGliL0Jkc1BsYXRmb3JtLmMNCj4g PiA+IGIvT3ZtZlBrZy9MaWJyYXJ5L1BsYXRmb3JtQm9vdE1hbmFnZXJMaWIvQmRzUGxhdGZvcm0u Yw0KPiA+ID4gaW5kZXggM2M1NWVjOWJkOS4uYjhjM2Y1NGJlNiAxMDA2NDQNCj4gPiA+IC0tLSBh L092bWZQa2cvTGlicmFyeS9QbGF0Zm9ybUJvb3RNYW5hZ2VyTGliL0Jkc1BsYXRmb3JtLmMNCj4g PiA+ICsrKyBiL092bWZQa2cvTGlicmFyeS9QbGF0Zm9ybUJvb3RNYW5hZ2VyTGliL0Jkc1BsYXRm b3JtLmMNCj4gPiA+IEBAIC0xMjExLDI0ICsxMjExLDI0IEBAIFBjaUFjcGlJbml0aWFsaXphdGlv biAoDQo+ID4gPiAgICAgICAgLy8NCj4gPiA+ICAgICAgICAvLyAwMDowMS4wIElTQSBCcmlkZ2Ug KFBJSVg0KSBMTksgcm91dGluZyB0YXJnZXRzDQo+ID4gPiAgICAgICAgLy8NCj4gPiA+IC0gICAg ICBQY2lXcml0ZTggKFBDSV9MSUJfQUREUkVTUyAoMCwgMSwgMCwgMHg2MCksIDB4MGIpOyAvLyBB DQo+ID4gPiAtICAgICAgUGNpV3JpdGU4IChQQ0lfTElCX0FERFJFU1MgKDAsIDEsIDAsIDB4NjEp LCAweDBiKTsgLy8gQg0KPiA+ID4gLSAgICAgIFBjaVdyaXRlOCAoUENJX0xJQl9BRERSRVNTICgw LCAxLCAwLCAweDYyKSwgMHgwYSk7IC8vIEMNCj4gPiA+IC0gICAgICBQY2lXcml0ZTggKFBDSV9M SUJfQUREUkVTUyAoMCwgMSwgMCwgMHg2MyksIDB4MGEpOyAvLyBEDQo+ID4gPiArICAgICAgUGNp V3JpdGU4IChQQ0lfTElCX0FERFJFU1MgKDAsIDEsIDAsIDB4NjApLA0KPiA+ID4gUGNpSG9zdEly cXNbMF0pOyAvLyBBDQo+ID4gPiArICAgICAgUGNpV3JpdGU4IChQQ0lfTElCX0FERFJFU1MgKDAs IDEsIDAsIDB4NjEpLA0KPiA+ID4gUGNpSG9zdElycXNbMV0pOyAvLyBCDQo+ID4gPiArICAgICAg UGNpV3JpdGU4IChQQ0lfTElCX0FERFJFU1MgKDAsIDEsIDAsIDB4NjIpLA0KPiA+ID4gUGNpSG9z dElycXNbMl0pOyAvLyBDDQo+ID4gPiArICAgICAgUGNpV3JpdGU4IChQQ0lfTElCX0FERFJFU1Mg KDAsIDEsIDAsIDB4NjMpLA0KPiA+ID4gUGNpSG9zdElycXNbM10pOyAvLyBEDQo+ID4gPiAgICAg ICAgYnJlYWs7DQo+ID4gPiAgICAgIGNhc2UgSU5URUxfUTM1X01DSF9ERVZJQ0VfSUQ6DQo+ID4g PiAgICAgICAgUG1iYSA9IFBPV0VSX01HTVRfUkVHSVNURVJfUTM1IChJQ0g5X1BNQkFTRSk7DQo+ ID4gPiAgICAgICAgLy8NCj4gPiA+ICAgICAgICAvLyAwMDoxZi4wIExQQyBCcmlkZ2UgKFEzNSkg TE5LIHJvdXRpbmcgdGFyZ2V0cw0KPiA+ID4gICAgICAgIC8vDQo+ID4gPiAtICAgICAgUGNpV3Jp dGU4IChQQ0lfTElCX0FERFJFU1MgKDAsIDB4MWYsIDAsIDB4NjApLCAweDBhKTsgLy8gQQ0KPiA+ ID4gLSAgICAgIFBjaVdyaXRlOCAoUENJX0xJQl9BRERSRVNTICgwLCAweDFmLCAwLCAweDYxKSwg MHgwYSk7IC8vIEINCj4gPiA+IC0gICAgICBQY2lXcml0ZTggKFBDSV9MSUJfQUREUkVTUyAoMCwg MHgxZiwgMCwgMHg2MiksIDB4MGIpOyAvLyBDDQo+ID4gPiAtICAgICAgUGNpV3JpdGU4IChQQ0lf TElCX0FERFJFU1MgKDAsIDB4MWYsIDAsIDB4NjMpLCAweDBiKTsgLy8gRA0KPiA+ID4gLSAgICAg IFBjaVdyaXRlOCAoUENJX0xJQl9BRERSRVNTICgwLCAweDFmLCAwLCAweDY4KSwgMHgwYSk7IC8v IEUNCj4gPiA+IC0gICAgICBQY2lXcml0ZTggKFBDSV9MSUJfQUREUkVTUyAoMCwgMHgxZiwgMCwg MHg2OSksIDB4MGEpOyAvLyBGDQo+ID4gPiAtICAgICAgUGNpV3JpdGU4IChQQ0lfTElCX0FERFJF U1MgKDAsIDB4MWYsIDAsIDB4NmEpLCAweDBiKTsgLy8gRw0KPiA+ID4gLSAgICAgIFBjaVdyaXRl OCAoUENJX0xJQl9BRERSRVNTICgwLCAweDFmLCAwLCAweDZiKSwgMHgwYik7IC8vIEgNCj4gPiA+ ICsgICAgICBQY2lXcml0ZTggKFBDSV9MSUJfQUREUkVTUyAoMCwgMHgxZiwgMCwgMHg2MCksDQo+ ID4gPiBQY2lIb3N0SXJxc1swXSk7IC8vIEENCj4gPiA+ICsgICAgICBQY2lXcml0ZTggKFBDSV9M SUJfQUREUkVTUyAoMCwgMHgxZiwgMCwgMHg2MSksDQo+ID4gPiBQY2lIb3N0SXJxc1sxXSk7IC8v IEINCj4gPiA+ICsgICAgICBQY2lXcml0ZTggKFBDSV9MSUJfQUREUkVTUyAoMCwgMHgxZiwgMCwg MHg2MiksDQo+ID4gPiBQY2lIb3N0SXJxc1syXSk7IC8vIEMNCj4gPiA+ICsgICAgICBQY2lXcml0 ZTggKFBDSV9MSUJfQUREUkVTUyAoMCwgMHgxZiwgMCwgMHg2MyksDQo+ID4gPiBQY2lIb3N0SXJx c1szXSk7IC8vIEQNCj4gPiA+ICsgICAgICBQY2lXcml0ZTggKFBDSV9MSUJfQUREUkVTUyAoMCwg MHgxZiwgMCwgMHg2OCksDQo+ID4gPiBQY2lIb3N0SXJxc1swXSk7IC8vIEUNCj4gPiA+ICsgICAg ICBQY2lXcml0ZTggKFBDSV9MSUJfQUREUkVTUyAoMCwgMHgxZiwgMCwgMHg2OSksDQo+ID4gPiBQ Y2lIb3N0SXJxc1sxXSk7IC8vIEYNCj4gPiA+ICsgICAgICBQY2lXcml0ZTggKFBDSV9MSUJfQURE UkVTUyAoMCwgMHgxZiwgMCwgMHg2YSksDQo+ID4gPiBQY2lIb3N0SXJxc1syXSk7IC8vIEcNCj4g PiA+ICsgICAgICBQY2lXcml0ZTggKFBDSV9MSUJfQUREUkVTUyAoMCwgMHgxZiwgMCwgMHg2Yiks DQo+ID4gPiBQY2lIb3N0SXJxc1szXSk7IC8vIEgNCj4gPiA+ICAgICAgICBicmVhazsNCj4gPiA+ ICAgICAgZGVmYXVsdDoNCj4gPiA+ICAgICAgICBpZiAoWGVuRGV0ZWN0ZWQgKCkpIHsNCj4gPiA+ IA0KPiA+IA0KPiA+IFRoZSBwYXRjaCBpcyBjb3JyZWN0LCBpbiBteSBvcGluaW9uOyB0aGUgY29t bWl0IG1lc3NhZ2UgaXMgbGFja2luZy4NCj4gPiANCj4gPiAoMSkgVGhlIHJvdGF0aW5nIHBhdHRl cm4gaXMgYSBtYXA6DQo+ID4gDQo+ID4gICAoc2xvdCwgZnVuY3Rpb24pIC0tPiAoaW50ZXJydXB0 IGxpbmspIFtMTktBLi5MTktEXQ0KPiA+IA0KPiA+IChtb3JlIHByZWNpc2VseSwgaXQgaXMgYSBw YXR0ZXJuIGZyb20gKHNsb3QsIHBpbikgdG8gKGludGVycnVwdA0KPiA+IGxpbmspLA0KPiA+IGJ1 dCBmdW5jdGlvbjwtPnBpbiBpcyBhbiBpZGVudGl0eSBtYXBwaW5nIGluIHRoZSBRRU1VIGhhcmR3 YXJlLCBzbw0KPiA+IHdlDQo+ID4gY2FuIGp1c3QgdXNlIChzbG90LCBmdW5jdGlvbikgcmF0aGVy IHRoYW4gKHNsb3QsIHBpbikgb24gdGhlIGxlZnQNCj4gPiBoYW5kDQo+ID4gc2lkZS4gQnV0IEkg ZGlncmVzcy4pDQo+ID4gDQo+ID4gVGhlIEFDUEkgX1BSVCBvYmplY3QgaXMgZ2VuZXJhdGVkIGJ5 IFFFTVU7IGl0IGRlc2NyaWJlcyB0aGlzIG1hcC4NCj4gPiANCj4gPiAoMikgQW5vdGhlciBtYXAg aXMNCj4gPiANCj4gPiAgIChpbnRlcnJ1cHQgbGluaykgLS0+IHsgc2V0IG9mIHBvc3NpYmxlIGlu dGVycnVwdCBudW1iZXJzLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBs aW5rIH0NCj4gPiANCj4gPiBUaGlzIG1hcCBpcyBnaXZlbiBieSB0aGUgTE5LW0EuLkRdIEFDUEkg b2JqZWN0cywgYWxzbyBnaXZlbiBieQ0KPiA+IFFFTVUuDQo+ID4gDQo+ID4gKDMpIFdoYXQgdGhl IGZpcm13YXJlIGlzIGV4cGVjdGVkIHRvIGRvIGlzOg0KPiA+IA0KPiA+ICgzYSkgZm9yIGVhY2gg aW50ZXJydXB0IGxpbmssIHNlbGVjdCBhbiAqYWN0dWFsKiBpbnRlcnJ1cHQgZnJvbSB0aGUNCj4g PiBzZXQNCj4gPiB0aGF0J3MgcG9zc2libGUgZm9yIHRoYXQgbGluaywgeWllbGRpbmcgYSBkZXRl cm1pbmlzdGljIG1hcA0KPiA+IA0KPiA+ICAgKGludGVycnVwdCBsaW5rKSAtLT4gKGFjdHVhbCBp bnRlcnJ1cHQgbnVtYmVyKQ0KPiA+IA0KPiA+IGFuZA0KPiA+IA0KPiA+ICgzYikgZm9yIGVhY2gg UENJIGRldmljZS9mdW5jdGlvbiB3aXRoIGFuIGludGVycnVwdCBwaW4sIHJlc29sdmUNCj4gPiB0 aGUNCj4gPiANCj4gPiAgIChzbG90LCBmdW5jdGlvbikgLS0+IChpbnRlcnJ1cHQgbGluaykgLS0+ IChhY3R1YWwgaW50ZXJydXB0DQo+ID4gbnVtYmVyKQ0KPiA+IA0KPiA+IGZ1bmN0aW9uYWwgY29t cG9zaXRpb24sIGFuZCBwcm9ncmFtIHRoZSByZXN1bHQgaW50byB0aGUgSW50ZXJydXB0DQo+ID4g TGluZQ0KPiA+IHJlZ2lzdGVyIG9mIHRoZSBkZXZpY2UuDQo+ID4gDQo+ID4gSW4gT1ZNRiwgd2Ug ZG8gbm90IHBhcnNlIHRoZSByb3RhdGluZyBtYXAgZGVzY3JpYmVkIHVuZGVyICgxKSBmcm9tDQo+ ID4gUUVNVSdzIF9QUlQgb2JqZWN0LiBJbnN0ZWFkLCB3ZSBkdXBsaWNhdGUgdGhlIGNvZGUuIFRo aXMgaXMgbm90IGENCj4gPiBwcm9ibGVtLg0KPiA+IA0KPiA+IEluIE9WTUYsIHdlIGFsc28gZG8g bm90IHBhcnNlIHRoZSBtYXAgZGVzY3JpYmVkIHVuZGVyICgyKSBmcm9tDQo+ID4gUUVNVSdzDQo+ ID4gQUNQSSBjb250ZW50LiBJbnN0ZWFkLCB3ZSBwaWNrIGEgc3BlY2lmaWMgc2VsZWN0aW9uICgz YSkgdGhhdCB3ZQ0KPiA+ICJhcHJpb3JpIiBrbm93IHNhdGlzZmllcyAoMikuIFRoaXMgaXMgYWxz byBub3QgYSBwcm9ibGVtLiBPVk1GJ3MNCj4gPiBwYXJ0aWN1bGFyIHNlbGVjdGlvbiBpcyB0aGUg UGNpSG9zdElycXMgdGFibGUuDQo+ID4gDQo+ID4gKA0KPiA+IA0KPiA+IFRhYmxlICgyKSBmcm9t IFFFTVUgaXMNCj4gPiANCj4gPiAgIExOS0EgLT4geyA1LCAxMCwgMTEgfQ0KPiA+ICAgTE5LQiAt PiB7IDUsIDEwLCAxMSB9DQo+ID4gICBMTktDIC0+IHsgNSwgMTAsIDExIH0NCj4gPiAgIExOS0Qg LT4geyA1LCAxMCwgMTEgfQ0KPiA+IA0KPiA+IGFuZCBvdXIgc3BlY2lmaWMgcGljayBpbiBPVk1G LCBpbiB0aGUgUGNpSG9zdElycXMgdGFibGUsIGlzDQo+ID4gDQo+ID4gICBMTktBIC0+IDEwDQo+ ID4gICBMTktCIC0+IDEwDQo+ID4gICBMTktDIC0+IDExDQo+ID4gICBMTktEIC0+IDExDQo+ID4g DQo+ID4gKQ0KPiA+IA0KPiA+IEluIE9WTUYsIHdlIGFsc28gY292ZXIgc3RlcCAoM2IpLCBpbiB0 aGUgU2V0UGNpSW50TGluZSgpIGZ1bmN0aW9uLg0KPiA+IA0KPiA+IFdoYXQncyBtaXNzaW5nIGlu IE9WTUYgLS0gYW5kIHdoYXQgdGhpcyBwYXRjaCBjb3JyZWN0cyAtLSBpcyB0aGF0DQo+ID4gd2UN Cj4gPiBjdXJyZW50bHkgZmFpbCB0byBwcm9ncmFtIG91ciBzZWxlY3Rpb24gZm9yIHRhYmxlICgz KSBpbnRvIHRoZQ0KPiA+IGhhcmR3YXJlLg0KPiA+IFdlIHBpY2sgYSBzcGVjaWZpYyBMTkt4LT5J UlEjIG1hcHBpbmcgZm9yIGVhY2ggaW50ZXJydXB0IGxpbmssIGFuZA0KPiA+IHdlDQo+ID4gY29y cmVjdGx5IHByb2dyYW0gdGhlIFBDSSBJbnRlcnJ1cHQgTGluZSByZWdpc3RlcnMgdGhyb3VnaCB0 aG9zZQ0KPiA+IGxpbmstdG8tSVJRIG1hcHBpbmdzIC0tIGJ1dCB3ZSBkb24ndCB0ZWxsIHRoZSBo YXJkd2FyZSBhYm91dCB0aGUNCj4gPiBsaW5rLXRvLUlSUSBtYXBwaW5ncy4gTW9yZSBwcmVjaXNl bHksIHdlIHByb2dyYW0gc3VjaCBhIGxpbmstdG8tSVJRDQo+ID4gbWFwcGluZyB0YWJsZSBpbnRv IHRoZSBoYXJkd2FyZSB0aGF0IGlzIHRoZW4gbm90IG1hdGNoZWQgYnkgdGhlDQo+ID4gbWFwcGlu Zw0KPiA+IHdlIHVzZSBmb3IgcHJvZ3JhbW1pbmcgdGhlIFBDSSBkZXZpY2UvZnVuY3Rpb24gaW50 ZXJydXB0IGxpbmVzLiBBcw0KPiA+IGENCj4gPiByZXN1bHQsIHNvbWUgUENJIEludGVycnVwdCBM aW5lIHJlZ2lzdGVycyB3aWxsIGhhdmUgaW1wb3NzaWJsZQ0KPiA+IHZhbHVlcyAtLQ0KPiA+IGEg Z2l2ZW4gKHNsb3QsIGZ1bmN0aW9uKSBtYXkgdXNlIGEgcGFydGljdWxhciBsaW5rLCBidXQgYWxz byByZXBvcnQNCj4gPiBhbg0KPiA+IGludGVycnVwdCBudW1iZXIgdGhhdCB3YXMgbmV2ZXIgcGlj a2VkIGZvciB0aGF0IGxpbmsuDQo+ID4gDQo+ID4gDQo+ID4gUGxlYXNlIHN1Ym1pdCB2MiBvZiB0 aGlzIHBhdGNoLCB3aXRoIHRoZSBmb2xsb3dpbmcgdXBkYXRlczoNCj4gPiANCj4gPiAtIHBsZWFz ZSBleHRlbmQgdGhlIGNvbW1pdCBtZXNzYWdlIC0tIGZlZWwgZnJlZSB0byBpbmNsdWRlIGFzIG11 Y2gNCj4gPiBvZg0KPiA+ICAgdGhlIGFib3ZlIGRpc2N1c3Npb24gYXMgeW91IHByZWZlciAoYXNz dW1pbmcgeW91IGFncmVlIHdpdGggaXQpLA0KPiA+IA0KPiA+IC0gcGxlYXNlIGluY2x1ZGUgdGhl IGZvbGxvd2luZyBzbmlwcGV0IGluIHRoZSBjb21taXQgbG9nLCAgdGFrZW4NCj4gPiBiZWZvcmUN Cj4gPiAgIGFuZCBhZnRlciB5b3VyIHBhdGNoIGZyb20gdGhlIExpbnV4IGd1ZXN0IGRtZXNnLCBm b3IgKmJvdGgqDQo+ID4gaTQ0MGZ4DQo+ID4gICAqYW5kKiBxMzU6DQo+ID4gDQo+ID4gPiBbICAg IDAuMjQ3Mzc4XSBBQ1BJOiBQQ0kgSW50ZXJydXB0IExpbmsgW0xOS0FdIChJUlFzIDUgMTAgKjEx KQ0KPiA+ID4gWyAgICAwLjI0NzUwNV0gQUNQSTogUENJIEludGVycnVwdCBMaW5rIFtMTktCXSAo SVJRcyA1IDEwICoxMSkNCj4gPiA+IFsgICAgMC4yNDc2MjldIEFDUEk6IFBDSSBJbnRlcnJ1cHQg TGluayBbTE5LQ10gKElSUXMgNSAqMTAgMTEpDQo+ID4gPiBbICAgIDAuMjQ3NzQ3XSBBQ1BJOiBQ Q0kgSW50ZXJydXB0IExpbmsgW0xOS0RdIChJUlFzIDUgKjEwIDExKQ0KPiA+ID4gWyAgICAwLjI0 NzgyM10gQUNQSTogUENJIEludGVycnVwdCBMaW5rIFtMTktTXSAoSVJRcyAqOSkNCj4gPiA+IFsg ICAgMC4yOTI1NDZdIFBDSSBJbnRlcnJ1cHQgTGluayBbTE5LQ10gZW5hYmxlZCBhdCBJUlEgMTAN Cj4gPiA+IFsgICAgMC42NTMwOTddIFBDSSBJbnRlcnJ1cHQgTGluayBbTE5LRF0gZW5hYmxlZCBh dCBJUlEgMTENCj4gPiA+IFsgICAgMC42Njc0NTJdIFBDSSBJbnRlcnJ1cHQgTGluayBbTE5LQV0g ZW5hYmxlZCBhdCBJUlEgMTENCj4gPiA+IFsgICAgMC42ODIwNjRdIFBDSSBJbnRlcnJ1cHQgTGlu ayBbTE5LQl0gZW5hYmxlZCBhdCBJUlEgMTANCj4gPiANCj4gPiAgIChmb3VyIHNuaXBwZXRzIGlu IHRvdGFsKS4NCj4gPiANCj4gPiAtIHBsZWFzZSBhbHNvIHJlZm9ybWF0IHRoZSBQY2lIb3N0SXJx cyBhcnJheSwgbmVhciB0aGUgdG9wIG9mIHRoZQ0KPiA+IGZpbGUsDQo+ID4gICBpbiB0aGUgc2Ft ZSBwYXRjaC4gQ3VycmVudGx5IGl0IGlzOg0KPiA+IA0KPiA+ID4gLy8NCj4gPiA+IC8vIFRhYmxl IG9mIGhvc3QgSVJRcyBtYXRjaGluZyBQQ0kgSVJRcyBBLUQNCj4gPiA+IC8vIChmb3IgY29uZmln dXJpbmcgUENJIEludGVycnVwdCBMaW5lIHJlZ2lzdGVyKQ0KPiA+ID4gLy8NCj4gPiA+IENPTlNU IFVJTlQ4IFBjaUhvc3RJcnFzW10gPSB7DQo+ID4gPiAgIDB4MGEsIDB4MGEsIDB4MGIsIDB4MGIN Cj4gPiA+IH07DQo+ID4gDQo+ID4gSXQgc2hvdWxkIGdvIGxpa2U6DQo+ID4gDQo+ID4gPiAvLw0K PiA+ID4gLy8gVGFibGUgb2YgKGludGVycnVwdCBsaW5rKSAtLT4gKGFjdHVhbCBpbnRlcnJ1cHQg bnVtYmVyKQ0KPiA+ID4gbWFwcGluZ3M7IGZvciAoYSkNCj4gPiA+IC8vIHByb2dyYW1taW5nIHRo ZQ0KPiA+ID4gLy8NCj4gPiA+IC8vICAgKHNsb3QsIGZ1bmN0aW9uKSAtLT4gKGludGVycnVwdCBs aW5rKSAtLT4gKGFjdHVhbCBpbnRlcnJ1cHQNCj4gPiA+IG51bWJlcikNCj4gPiA+IC8vDQo+ID4g PiAvLyB2YWx1ZXMgaW50byBQQ0kgSW50ZXJydXB0IExpbmUgcmVnaXN0ZXJzLCBhbmQgZm9yIChi KQ0KPiA+ID4gcHJvZ3JhbW1pbmcgdGhlDQo+ID4gPiAvLw0KPiA+ID4gLy8gICAoaW50ZXJydXB0 IGxpbmspIC0tPiAoYWN0dWFsIGludGVycnVwdCBudW1iZXIpDQo+ID4gPiAvLw0KPiA+ID4gLy8g bWFwcGluZ3MgdGhlbXNlbHZlcyBpbnRvIHRoZSByb3V0aW5nICg9IGxpbmsgY29uZmlndXJhdGlv bikNCj4gPiA+IHJlZ2lzdGVycy4NCj4gPiA+IC8NCj4gPiA+IENPTlNUIFVJTlQ4IFBjaUhvc3RJ cnFzW10gPSB7DQo+ID4gPiAgIDB4MGEsIC8vIExOS0EsIExOS0UNCj4gPiA+ICAgMHgwYSwgLy8g TE5LQiwgTE5LRg0KPiA+ID4gICAweDBiLCAvLyBMTktDLCBMTktHDQo+ID4gPiAgIDB4MGIgIC8v IExOS0QsIExOS0gNCj4gPiA+IH07DQo+IA0KPiAuLi4gcGxlYXNlIGFsc28gcmVmcmVzaCB0aGUg c3ViamVjdCBsaW5lIG9mIHRoZSBwYXRjaDoNCj4gDQo+IE92bWZQa2cvUGxhdGZvcm1Cb290TWFu YWdlckxpYjogZml4IFBDSSBpbnRlcnJ1cHQgbGluayAoTE5LeCkNCj4gcHJvZ3JhbW1pbmcNCj4g DQo+IChUaGUgYm9hcmQgc3BlY3MgY2FsbCB0aGVzZSAiUm91dGluZyBDb250cm9sIFJlZ2lzdGVy InMsIGJ1dA0KPiAicm91dGluZyINCj4gaXMgYW4gb2JzY3VyZSB0ZXJtLCB3aXRoIHRoZSBtdWx0 aXBsZSBsZXZlbHMgb2YgbWFwcGluZ3MgdGhhdCB3ZQ0KPiBoYXZlLA0KPiBpbiBteSBvcGluaW9u LikNCj4gDQo+IFRoYW5rcw0KPiBMYXN6bG8NCj4gDQoNCnRoYW5rcyBmb3IgdGhpcyByZWFsbHkg bmljZSB3cml0ZSB1cC4gSSB3aWxsIGluY2x1ZGUgaXQgaW4gdGhlIG5leHQNCmNvbW1pdCBtZXNz YWdlIHdoZW4gYWRyZXNzaW5nIHRoZSByZXF1ZXN0ZWQgY2hhbmdlcy4NCg0KVGhhbmtzDQoNCkhl bmRyaWsNCg==