From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from FRA01-MR2-obe.outbound.protection.outlook.com (FRA01-MR2-obe.outbound.protection.outlook.com [40.107.9.49]) by mx.groups.io with SMTP id smtpd.web12.7081.1588079764018796662 for ; Tue, 28 Apr 2020 06:16:04 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=izOwusUO; spf=pass (domain: arm.com, ip: 40.107.9.49, mailfrom: aditya.angadi@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xWqq3i4+ICxYkGpImfFByJuitKfCaWm7vpm0w8o/7JY=; b=izOwusUOpXLz6+HeLsBxqnbpobXSBTpAvz/M/jFN1U2QPjPf9yDl2d8s0QRZ7T9gjfR6sKvQX+359PaHHFS2fLJTmAsBUg8eKNYC5pE8XMtOTjkFrwtXbAapvdosKfniLIwCc1T8Dag289CBiDhAHEqI3ilTVBXgUrhgOV/NEO0= Received: from AM6P193CA0074.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:88::15) by PR2PR08MB4828.eurprd08.prod.outlook.com (2603:10a6:101:1d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.22; Tue, 28 Apr 2020 13:16:00 +0000 Received: from AM5EUR03FT016.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:88:cafe::c5) by AM6P193CA0074.outlook.office365.com (2603:10a6:209:88::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.13 via Frontend Transport; Tue, 28 Apr 2020 13:16:00 +0000 Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT016.mail.protection.outlook.com (10.152.16.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.19 via Frontend Transport; Tue, 28 Apr 2020 13:15:59 +0000 Received: ("Tessian outbound e88319d7ccd0:v54"); Tue, 28 Apr 2020 13:15:59 +0000 X-CR-MTA-TID: 64aa7808 Received: from 14b9470d6b75.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id E3FE2CC9-66D7-4068-881C-EB61945FE294.1; Tue, 28 Apr 2020 13:15:54 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 14b9470d6b75.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 28 Apr 2020 13:15:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lT8D3fsOkWFZQiDv3Lt+7QV/P6/iARYTi+5gickTtIwldijSgGoiCvS2oDxkAuNM4i3B3URU59aXyYHUMvtbmU4AYl4b5LHoRU6hKVHO2rmTD5a0Py83mXTvbg7KtBaIbg+tFbhyq1EWvUQ9vlaraTo/8OQz1bc/ZEygFy7gG7YeXnSl88hyYdoL0cdq8hlJkxXvZDVmWSZvZojgHxh2BZ+o4yNTRYye4dYR9pBLrxMf0BnwsBou5GGmoUAxDtIuix1j+9244CbKPHN5rzBQO+obPpXPdDU3yXkSFOOdZTp76pVpbOqlmL7hb4jrPqd4texkIkFX9c9SBz+G5qo/IQ== 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=xWqq3i4+ICxYkGpImfFByJuitKfCaWm7vpm0w8o/7JY=; b=BuQi9wDyJlcEYumPiT1tK0+KQE9RB0KKzk6+0HZk7chXWtfEPbwERHAMR5XrI/37GjomdUrXKhnXy0DzSEiPsucP2djKobf/vR2BDZarQh0JFHFaB0UixuxQ5Zxfxqm18Je2V3kbzk+EcJNJDi6O5ctUSyK7Q11eiRR6OsN+3YndG2eSOnUZVVkb+X26NnToOuOWwTi65TaXdYZ5R6MpIkEMGlgsAhYbqpGCVYSC6AD+0TGT9O/L5YJfCxtGLss0VXQIZaEJ+zBWwiRhpObMHbT9UdZ2igiNg1g9dUmZgqToSCIhT1RHf0ZWYSGTEMinl2szIyvvHBtfdBAPoIyJIQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xWqq3i4+ICxYkGpImfFByJuitKfCaWm7vpm0w8o/7JY=; b=izOwusUOpXLz6+HeLsBxqnbpobXSBTpAvz/M/jFN1U2QPjPf9yDl2d8s0QRZ7T9gjfR6sKvQX+359PaHHFS2fLJTmAsBUg8eKNYC5pE8XMtOTjkFrwtXbAapvdosKfniLIwCc1T8Dag289CBiDhAHEqI3ilTVBXgUrhgOV/NEO0= Received: from AM0PR08MB4499.eurprd08.prod.outlook.com (2603:10a6:208:140::10) by AM0PR08MB4145.eurprd08.prod.outlook.com (2603:10a6:208:133::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.13; Tue, 28 Apr 2020 13:15:52 +0000 Received: from AM0PR08MB4499.eurprd08.prod.outlook.com ([fe80::8de6:14c3:1167:193d]) by AM0PR08MB4499.eurprd08.prod.outlook.com ([fe80::8de6:14c3:1167:193d%3]) with mapi id 15.20.2937.023; Tue, 28 Apr 2020 13:15:52 +0000 From: "Aditya Angadi" To: Ard Biesheuvel , "devel@edk2.groups.io" CC: Thomas Abraham , "leif@nuviainc.com" , Vijayenthiran Subramaniam Subject: Re: [edk2-devel] [edk2-platforms][PATCH v4 4/9] Platform/ARM/Sgi: Add support for remote numa memory nodes Thread-Topic: [edk2-devel] [edk2-platforms][PATCH v4 4/9] Platform/ARM/Sgi: Add support for remote numa memory nodes Thread-Index: AQHWElulQl3HL3IOCEm37i3yktxq0KiOjHeAgAAKQJA= Date: Tue, 28 Apr 2020 13:15:52 +0000 Message-ID: References: <20200414125208.2878-1-aditya.angadi@arm.com> <20200414125208.2878-5-aditya.angadi@arm.com> In-Reply-To: Accept-Language: en-IN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: e6022b27-61a4-4ab0-a4bf-4e7f22316860.1 x-checkrecipientchecked: true Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [217.140.105.40] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 58910902-4b39-430e-eefe-08d7eb764b38 x-ms-traffictypediagnostic: AM0PR08MB4145:|AM0PR08MB4145:|PR2PR08MB4828: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:8882;OLM:6108; x-forefront-prvs: 0387D64A71 X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR08MB4499.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(376002)(366004)(396003)(39860400002)(136003)(346002)(9686003)(76116006)(478600001)(86362001)(2906002)(55016002)(19627235002)(54906003)(110136005)(71200400001)(7696005)(53546011)(316002)(6506007)(26005)(52536014)(4326008)(186003)(66476007)(33656002)(66946007)(5660300002)(8676002)(66446008)(81156014)(64756008)(66556008)(8936002);DIR:OUT;SFP:1101; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: ZuE969c+8sg/Y641ZzG+TwYscaKjf4Ig76YuVB2SjeoFsVRQrn/+Yt48n0Kp4vNaowkg54PStYnm7PqlYjixU+14pqqoiDpsKsJT+6aHN6ZgNK7oq0vBGSKSKi8+Dgt3adi5YQZ6UaZ5+JrBYdW0UY/x6gLA/6SeammTgvHk38SH9Fb+Ikk5b47juqcmbjDRoFIxQsmFJk6/zrMsnNHiSp3KdAPXN7j6gJMZj51o0GKn/siO550lWkYQsafPzkSBu5bQp8GvWyK6ICWABNyEHWodOVaF642mHRrVXjQ+rAYNCRq+kZ8aoQj2eeufCJ89JNN3NsoFDbWy8kJAWHlo0LDlS6gcKBgGRLbdtlVTpdGfNv/PT8ZvnFeEaJifwbMPJANVd891a10ICkrPjZUIs95DTeh83kR6JKfVgMmhmtV7MYlfKkSPXFSCgW0Y6Y/m x-ms-exchange-antispam-messagedata: TOz1zG+6FNs3vCh1/P6P9gLll0QIxm76yIXIBdUqjicLAy6rsvwzB2ZrpHJ2VHHEiSkoWrwv/QbOG5/6wOD57NfS/eKaLqmDKCau3HHjPkQ5AtT3Z/RnDbIty860IKmqy+vxYbEWwNsCi9lEedE8/h+hVVPoSBYLc+4atD6BoKLHMiHnwbrRKs8dalvN9qfxI7+J94oawmSkDgFiMttCPIgKkDAdgUNbVnBW3JHpDAN3gPJA3Ynjnun47ANLmHXuGyasGIhJR8tH8j2GM5wjM7kswUEwKfKd7L1kveZ3szMHkB7QO0NhvAiuCmvKXxO9kyD6Ys1R89tY6ZI2Sj4z3/CanFDeINulx7fQZtHa1ivM1X6rFwH+L8yXxVL1eKCIsb0neZclBFCZ/Kvr12WhlpYs7mFCFVNeEXEqxBr3DifoMA66Ch+dX0HTYq8mzlsZQspKWn2QqDhPA92Vu0f0iOlIIlrbDfhc1nE7nmxAjtW+yWqBJXAYggmaL8O29RyJOrkxlS/qquXOydWbcf9WXYWD8iBQY5LjYx+EE1lbXiYwfGntjq3/76kMl/UqqC5qk8DrFtNS7zdbH9y7J4hl6eSkcqiFeGaxBJRcTI/k6j1jsNgR3qVY2Fh8QBhVH5TRugdOay4YuRmdlj4EihaziTZZwR6bp3vAitB/45tCP2CBOCTS4dYK8cwKPXmHFeP7H9er7eC73ija5rxL9tAm8SZBGmMkPh7FC8tvw9f2L1CQ8RjcCbT811LjjtMjDHC2QUWF6kfOqvDHlpc0e3zA4Q4G+HTmxWpEMIIfojUt4Ng= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB4145 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; Return-Path: Aditya.Angadi@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT016.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFTY:;SFS:(4636009)(396003)(39860400002)(346002)(376002)(136003)(46966005)(316002)(33656002)(110136005)(86362001)(55016002)(54906003)(2906002)(9686003)(19627235002)(36906005)(47076004)(81156014)(4326008)(478600001)(82310400002)(8936002)(82740400003)(5660300002)(8676002)(81166007)(53546011)(6506007)(70586007)(336012)(70206006)(52536014)(26005)(7696005)(186003)(356005);DIR:OUT;SFP:1101; X-MS-Office365-Filtering-Correlation-Id-Prvs: 0a73fa2d-a8a2-4bda-bfa4-08d7eb76470f X-Forefront-PRVS: 0387D64A71 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: d2Art1JHhdl4NnTNqcCrNVgPCQjB6F5qvaqOG4XUQqmMcxFhZ+gWKfqjV5utH5FTDffMX702xyCpODDcyJHLJvmWf/3ONnPNj9pmR4x9uCajLXUXp1ceELNr+CvoAhJ1HYIqvlouWIz/oDwqEybPueveB3pVYguGFT7kf+VG06GjVKhqPfRbgYbgPHcCwI7xKRBCrxempv4DFKj6AGcCuvXMGvhwPubXA2V7WUWrxNdTUlX8bcHEGd1FFPAUQaTkFi6nWft9ZsvoWfo4QpmQJ/3ORXE5vI6UP7YPvq7qd+fYOprea8hJKWrrc2SeHWyfrR0Iqd3u88x2fPwn9J/Ttfhw/n8EzW5gwC18BS/D3F0kFgwR4cm8YeDQUu3xNptfFX1aQBhWuRCTtZSW1/7zSZ0xFR1Ral7mKjUTWmUu4Adc/YLe6S5LoDMquhdu7jj1VxcVFBCNQHXlwsPPa66A6c7bKeSy4DRkGDRaCAeBwzql6n8kN9ZaNaAoGFZs+7yL2yejlkphvfCRsty5W1trIg== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2020 13:15:59.5961 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 58910902-4b39-430e-eefe-08d7eb764b38 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR2PR08MB4828 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQXJkLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFyZCBCaWVz aGV1dmVsIDxhcmQuYmllc2hldXZlbEBhcm0uY29tPg0KPiBTZW50OiAyOCBBcHJpbCAyMDIwIDE3 OjU5DQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgQWRpdHlhIEFuZ2FkaSA8QWRpdHlhLkFu Z2FkaUBhcm0uY29tPg0KPiBDYzogVGhvbWFzIEFicmFoYW0gPHRob21hcy5hYnJhaGFtQGFybS5j b20+OyBsZWlmQG51dmlhaW5jLmNvbTsNCj4gVmlqYXllbnRoaXJhbiBTdWJyYW1hbmlhbSA8Vmlq YXllbnRoaXJhbi5TdWJyYW1hbmlhbUBhcm0uY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2 ZWxdIFtlZGsyLXBsYXRmb3Jtc11bUEFUQ0ggdjQgNC85XSBQbGF0Zm9ybS9BUk0vU2dpOg0KPiBB ZGQgc3VwcG9ydCBmb3IgcmVtb3RlIG51bWEgbWVtb3J5IG5vZGVzDQo+DQo+IE9uIDQvMTQvMjAg Mjo1MiBQTSwgQWRpdHlhIEFuZ2FkaSB2aWEgZ3JvdXBzLmlvIHdyb3RlOg0KPiA+IEZyb206IFZp amF5ZW50aGlyYW4gU3VicmFtYW5pYW0gPHZpamF5ZW50aGlyYW4uc3VicmFtYW5pYW1AYXJtLmNv bT4NCj4gPg0KPiA+IEFkZCBuZXcgUENEcyB0aGF0IGRlZmluZSB0aGUgYmFzZSBhZGRyZXNzIGFu ZCBzaXplIG9mIHJlbW90ZSBOVU1BDQo+ID4gbWVtb3J5IG5vZGVzIG9uIG11bHRpLWNoaXAgcGxh dGZvcm1zLiBVc2UgdGhlc2UgUENEcyB0byBzZXR1cCBzeXN0ZW0NCj4gPiBtZW1vcnkgcmVzb3Vy Y2UgZGVzY3JpcHRvciBIT0JzLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogQWRpdHlhIEFuZ2Fk aSA8YWRpdHlhLmFuZ2FkaUBhcm0uY29tPg0KPiA+IC0tLQ0KPiA+ICAgUGxhdGZvcm0vQVJNL1Nn aVBrZy9MaWJyYXJ5L1BsYXRmb3JtTGliL1BsYXRmb3JtTGliLmluZiAgfCAxOCArKysrDQo+ID4g ICBQbGF0Zm9ybS9BUk0vU2dpUGtnL0xpYnJhcnkvUGxhdGZvcm1MaWIvUGxhdGZvcm1MaWJNZW0u YyB8IDg3DQo+ICsrKysrKysrKysrKysrKysrKystDQo+ID4gICBQbGF0Zm9ybS9BUk0vU2dpUGtn L1NnaVBsYXRmb3JtLmRlYyAgICAgICAgICAgICAgICAgICAgICB8IDE5ICsrKysrDQo+ID4gICAz IGZpbGVzIGNoYW5nZWQsIDEyMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4NCj4g PiBkaWZmIC0tZ2l0IGEvUGxhdGZvcm0vQVJNL1NnaVBrZy9MaWJyYXJ5L1BsYXRmb3JtTGliL1Bs YXRmb3JtTGliLmluZg0KPiA+IGIvUGxhdGZvcm0vQVJNL1NnaVBrZy9MaWJyYXJ5L1BsYXRmb3Jt TGliL1BsYXRmb3JtTGliLmluZg0KPiA+IGluZGV4IGE5MThhZmVmNWZiYS4uYzMxMjVkN2U0ZTBm IDEwMDY0NA0KPiA+IC0tLSBhL1BsYXRmb3JtL0FSTS9TZ2lQa2cvTGlicmFyeS9QbGF0Zm9ybUxp Yi9QbGF0Zm9ybUxpYi5pbmYNCj4gPiArKysgYi9QbGF0Zm9ybS9BUk0vU2dpUGtnL0xpYnJhcnkv UGxhdGZvcm1MaWIvUGxhdGZvcm1MaWIuaW5mDQo+ID4gQEAgLTQ2LDYgKzQ2LDI0IEBAIFtGaXhl ZFBjZF0NCj4gPg0KPiA+ICAgICBnQXJtVG9rZW5TcGFjZUd1aWQuUGNkU3lzdGVtTWVtb3J5QmFz ZQ0KPiA+ICAgICBnQXJtVG9rZW5TcGFjZUd1aWQuUGNkU3lzdGVtTWVtb3J5U2l6ZQ0KPiA+ICsN Cj4gPiArICBnQXJtU2dpVG9rZW5TcGFjZUd1aWQuUGNkQ2hpcENvdW50DQo+ID4gKw0KPiA+ICsg IGdBcm1TZ2lUb2tlblNwYWNlR3VpZC5QY2REcmFtQmxvY2sxQmFzZVJlbW90ZTENCj4gPiArICBn QXJtU2dpVG9rZW5TcGFjZUd1aWQuUGNkRHJhbUJsb2NrMVNpemVSZW1vdGUxDQo+ID4gKyAgZ0Fy bVNnaVRva2VuU3BhY2VHdWlkLlBjZERyYW1CbG9jazJCYXNlUmVtb3RlMQ0KPiA+ICsgIGdBcm1T Z2lUb2tlblNwYWNlR3VpZC5QY2REcmFtQmxvY2syU2l6ZVJlbW90ZTENCj4gPiArDQo+ID4gKyAg Z0FybVNnaVRva2VuU3BhY2VHdWlkLlBjZERyYW1CbG9jazFCYXNlUmVtb3RlMg0KPiA+ICsgIGdB cm1TZ2lUb2tlblNwYWNlR3VpZC5QY2REcmFtQmxvY2sxU2l6ZVJlbW90ZTINCj4gPiArICBnQXJt U2dpVG9rZW5TcGFjZUd1aWQuUGNkRHJhbUJsb2NrMkJhc2VSZW1vdGUyDQo+ID4gKyAgZ0FybVNn aVRva2VuU3BhY2VHdWlkLlBjZERyYW1CbG9jazJTaXplUmVtb3RlMg0KPiA+ICsNCj4gPiArICBn QXJtU2dpVG9rZW5TcGFjZUd1aWQuUGNkRHJhbUJsb2NrMUJhc2VSZW1vdGUzDQo+ID4gKyAgZ0Fy bVNnaVRva2VuU3BhY2VHdWlkLlBjZERyYW1CbG9jazFTaXplUmVtb3RlMw0KPiA+ICsgIGdBcm1T Z2lUb2tlblNwYWNlR3VpZC5QY2REcmFtQmxvY2syQmFzZVJlbW90ZTMNCj4gPiArICBnQXJtU2dp VG9rZW5TcGFjZUd1aWQuUGNkRHJhbUJsb2NrMlNpemVSZW1vdGUzDQo+ID4gKw0KPiA+ICAgICBn QXJtVG9rZW5TcGFjZUd1aWQuUGNkR2ljRGlzdHJpYnV0b3JCYXNlDQo+ID4gICAgIGdBcm1Ub2tl blNwYWNlR3VpZC5QY2RHaWNSZWRpc3RyaWJ1dG9yc0Jhc2UNCj4gPiAgICAgZ0FybVRva2VuU3Bh Y2VHdWlkLlBjZEZ2QmFzZUFkZHJlc3MNCj4gPiBkaWZmIC0tZ2l0IGEvUGxhdGZvcm0vQVJNL1Nn aVBrZy9MaWJyYXJ5L1BsYXRmb3JtTGliL1BsYXRmb3JtTGliTWVtLmMNCj4gPiBiL1BsYXRmb3Jt L0FSTS9TZ2lQa2cvTGlicmFyeS9QbGF0Zm9ybUxpYi9QbGF0Zm9ybUxpYk1lbS5jDQo+ID4gaW5k ZXggOGQwYWQ0ZWM5Yzg0Li5kOGQ5YTQwNmNmOTEgMTAwNjQ0DQo+ID4gLS0tIGEvUGxhdGZvcm0v QVJNL1NnaVBrZy9MaWJyYXJ5L1BsYXRmb3JtTGliL1BsYXRmb3JtTGliTWVtLmMNCj4gPiArKysg Yi9QbGF0Zm9ybS9BUk0vU2dpUGtnL0xpYnJhcnkvUGxhdGZvcm1MaWIvUGxhdGZvcm1MaWJNZW0u Yw0KPiA+IEBAIC0xNiw3ICsxNiw4IEBADQo+ID4gICAjaW5jbHVkZSA8U2dpUGxhdGZvcm0uaD4N Cj4gPg0KPiA+ICAgLy8gVG90YWwgbnVtYmVyIG9mIGRlc2NyaXB0b3JzLCBpbmNsdWRpbmcgdGhl IGZpbmFsICJlbmQtb2YtdGFibGUiDQo+IGRlc2NyaXB0b3IuDQo+ID4gLSNkZWZpbmUgTUFYX1ZJ UlRVQUxfTUVNT1JZX01BUF9ERVNDUklQVE9SUyAgMTMNCj4gPiArI2RlZmluZSBNQVhfVklSVFVB TF9NRU1PUllfTUFQX0RFU0NSSVBUT1JTICAgICAgICAgICAgICAgICBcDQo+ID4gKyAgICAgICAg ICAoMTEgKyAoRml4ZWRQY2RHZXQzMiAoUGNkQ2hpcENvdW50KSAqIDIpKQ0KPiA+DQo+ID4gICAv KioNCj4gPiAgICAgUmV0dXJucyB0aGUgVmlydHVhbCBNZW1vcnkgTWFwIG9mIHRoZSBwbGF0Zm9y bS4NCj4gPiBAQCAtNTIsNiArNTMsNDggQEAgQXJtUGxhdGZvcm1HZXRWaXJ0dWFsTWVtb3J5TWFw ICgNCj4gPiAgICAgICBGaXhlZFBjZEdldDY0IChQY2REcmFtQmxvY2syQmFzZSksDQo+ID4gICAg ICAgRml4ZWRQY2RHZXQ2NCAoUGNkRHJhbUJsb2NrMlNpemUpKTsNCj4gPg0KPiA+ICsjaWYgKEZp eGVkUGNkR2V0MzIgKFBjZENoaXBDb3VudCkgPiAxKQ0KPiA+ICsgIEJ1aWxkUmVzb3VyY2VEZXNj cmlwdG9ySG9iICgNCj4gPiArICAgICBFRklfUkVTT1VSQ0VfU1lTVEVNX01FTU9SWSwNCj4gPiAr ICAgICBSZXNvdXJjZUF0dHJpYnV0ZXMsDQo+ID4gKyAgICAgRml4ZWRQY2RHZXQ2NCAoUGNkRHJh bUJsb2NrMUJhc2VSZW1vdGUxKSwNCj4gPiArICAgICBGaXhlZFBjZEdldDY0IChQY2REcmFtQmxv Y2sxU2l6ZVJlbW90ZTEpKTsNCj4gPiArDQo+ID4gKyAgIEJ1aWxkUmVzb3VyY2VEZXNjcmlwdG9y SG9iICgNCj4gPiArICAgICBFRklfUkVTT1VSQ0VfU1lTVEVNX01FTU9SWSwNCj4gPiArICAgICBS ZXNvdXJjZUF0dHJpYnV0ZXMsDQo+ID4gKyAgICAgRml4ZWRQY2RHZXQ2NCAoUGNkRHJhbUJsb2Nr MkJhc2VSZW1vdGUxKSwNCj4gPiArICAgICBGaXhlZFBjZEdldDY0IChQY2REcmFtQmxvY2syU2l6 ZVJlbW90ZTEpKTsNCj4gPiArDQo+ID4gKyNpZiAoRml4ZWRQY2RHZXQzMiAoUGNkQ2hpcENvdW50 KSA+IDIpDQo+ID4gKyAgQnVpbGRSZXNvdXJjZURlc2NyaXB0b3JIb2IgKA0KPiA+ICsgICAgIEVG SV9SRVNPVVJDRV9TWVNURU1fTUVNT1JZLA0KPiA+ICsgICAgIFJlc291cmNlQXR0cmlidXRlcywN Cj4gPiArICAgICBGaXhlZFBjZEdldDY0IChQY2REcmFtQmxvY2sxQmFzZVJlbW90ZTIpLA0KPiA+ ICsgICAgIEZpeGVkUGNkR2V0NjQgKFBjZERyYW1CbG9jazFTaXplUmVtb3RlMikpOw0KPiA+ICsN Cj4gPiArICAgQnVpbGRSZXNvdXJjZURlc2NyaXB0b3JIb2IgKA0KPiA+ICsgICAgIEVGSV9SRVNP VVJDRV9TWVNURU1fTUVNT1JZLA0KPiA+ICsgICAgIFJlc291cmNlQXR0cmlidXRlcywNCj4gPiAr ICAgICBGaXhlZFBjZEdldDY0IChQY2REcmFtQmxvY2syQmFzZVJlbW90ZTIpLA0KPiA+ICsgICAg IEZpeGVkUGNkR2V0NjQgKFBjZERyYW1CbG9jazJTaXplUmVtb3RlMikpOw0KPiA+ICsNCj4gPiAr I2lmIChGaXhlZFBjZEdldDMyIChQY2RDaGlwQ291bnQpID4gMykNCj4gPiArICBCdWlsZFJlc291 cmNlRGVzY3JpcHRvckhvYiAoDQo+ID4gKyAgICAgRUZJX1JFU09VUkNFX1NZU1RFTV9NRU1PUlks DQo+ID4gKyAgICAgUmVzb3VyY2VBdHRyaWJ1dGVzLA0KPiA+ICsgICAgIEZpeGVkUGNkR2V0NjQg KFBjZERyYW1CbG9jazFCYXNlUmVtb3RlMyksDQo+ID4gKyAgICAgRml4ZWRQY2RHZXQ2NCAoUGNk RHJhbUJsb2NrMVNpemVSZW1vdGUzKSk7DQo+ID4gKw0KPiA+ICsgICBCdWlsZFJlc291cmNlRGVz Y3JpcHRvckhvYiAoDQo+ID4gKyAgICAgRUZJX1JFU09VUkNFX1NZU1RFTV9NRU1PUlksDQo+ID4g KyAgICAgUmVzb3VyY2VBdHRyaWJ1dGVzLA0KPiA+ICsgICAgIEZpeGVkUGNkR2V0NjQgKFBjZERy YW1CbG9jazJCYXNlUmVtb3RlMyksDQo+ID4gKyAgICAgRml4ZWRQY2RHZXQ2NCAoUGNkRHJhbUJs b2NrMlNpemVSZW1vdGUzKSk7ICNlbmRpZiAjZW5kaWYgI2VuZGlmDQo+ID4gKw0KPiA+ICAgICBB U1NFUlQgKFZpcnR1YWxNZW1vcnlNYXAgIT0gTlVMTCk7DQo+ID4gICAgIEluZGV4ID0gMDsNCj4g Pg0KPiA+IEBAIC0xMjIsNiArMTY1LDQ4IEBAIEFybVBsYXRmb3JtR2V0VmlydHVhbE1lbW9yeU1h cCAoDQo+ID4gICAgIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uTGVuZ3RoICAgICAgICAgID0g UGNkR2V0NjQNCj4gKFBjZERyYW1CbG9jazJTaXplKTsNCj4gPiAgICAgVmlydHVhbE1lbW9yeVRh YmxlW0luZGV4XS5BdHRyaWJ1dGVzICAgICAgPQ0KPiBBUk1fTUVNT1JZX1JFR0lPTl9BVFRSSUJV VEVfV1JJVEVfQkFDSzsNCj4gPg0KPiA+ICsjaWYgKEZpeGVkUGNkR2V0MzIgKFBjZENoaXBDb3Vu dCkgPiAxKQ0KPiA+ICsgIC8vIENoaXAgMSBERFIgQmxvY2sgMSAtICgyR0IpDQo+ID4gKyAgVmly dHVhbE1lbW9yeVRhYmxlWysrSW5kZXhdLlBoeXNpY2FsQmFzZSAgPSBQY2RHZXQ2NA0KPiAoUGNk RHJhbUJsb2NrMUJhc2VSZW1vdGUxKTsNCj4gPiArICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhd LlZpcnR1YWxCYXNlICAgICA9IFBjZEdldDY0DQo+IChQY2REcmFtQmxvY2sxQmFzZVJlbW90ZTEp Ow0KPiA+ICsgIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uTGVuZ3RoICAgICAgICAgID0gUGNk R2V0NjQNCj4gKFBjZERyYW1CbG9jazFCYXNlUmVtb3RlMSk7DQo+ID4gKyAgVmlydHVhbE1lbW9y eVRhYmxlW0luZGV4XS5BdHRyaWJ1dGVzICAgICAgPQ0KPiBBUk1fTUVNT1JZX1JFR0lPTl9BVFRS SUJVVEVfV1JJVEVfQkFDSzsNCj4gPiArDQo+ID4gKyAgLy8gQ2hpcCAxIEREUiBCbG9jayAyIC0g KDZHQikNCj4gPiArICBWaXJ0dWFsTWVtb3J5VGFibGVbKytJbmRleF0uUGh5c2ljYWxCYXNlICA9 IFBjZEdldDY0DQo+IChQY2REcmFtQmxvY2syQmFzZVJlbW90ZTEpOw0KPiA+ICsgIFZpcnR1YWxN ZW1vcnlUYWJsZVtJbmRleF0uVmlydHVhbEJhc2UgICAgID0gUGNkR2V0NjQNCj4gKFBjZERyYW1C bG9jazJCYXNlUmVtb3RlMSk7DQo+ID4gKyAgVmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5MZW5n dGggICAgICAgICAgPSBQY2RHZXQ2NA0KPiAoUGNkRHJhbUJsb2NrMkJhc2VSZW1vdGUxKTsNCj4g PiArICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLkF0dHJpYnV0ZXMgICAgICA9DQo+IEFSTV9N RU1PUllfUkVHSU9OX0FUVFJJQlVURV9XUklURV9CQUNLOw0KPiA+ICsNCj4gPiArI2lmIChGaXhl ZFBjZEdldDMyIChQY2RDaGlwQ291bnQpID4gMikNCj4gPiArICAvLyBDaGlwIDIgRERSIEJsb2Nr IDEgLSAoMkdCKQ0KPiA+ICsgIFZpcnR1YWxNZW1vcnlUYWJsZVsrK0luZGV4XS5QaHlzaWNhbEJh c2UgID0gUGNkR2V0NjQNCj4gKFBjZERyYW1CbG9jazFCYXNlUmVtb3RlMik7DQo+ID4gKyAgVmly dHVhbE1lbW9yeVRhYmxlW0luZGV4XS5WaXJ0dWFsQmFzZSAgICAgPSBQY2RHZXQ2NA0KPiAoUGNk RHJhbUJsb2NrMUJhc2VSZW1vdGUyKTsNCj4gPiArICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhd Lkxlbmd0aCAgICAgICAgICA9IFBjZEdldDY0DQo+IChQY2REcmFtQmxvY2sxQmFzZVJlbW90ZTIp Ow0KPiA+ICsgIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uQXR0cmlidXRlcyAgICAgID0NCj4g QVJNX01FTU9SWV9SRUdJT05fQVRUUklCVVRFX1dSSVRFX0JBQ0s7DQo+ID4gKw0KPiA+ICsgIC8v IENoaXAgMiBERFIgQmxvY2sgMiAtICg2R0IpDQo+ID4gKyAgVmlydHVhbE1lbW9yeVRhYmxlWysr SW5kZXhdLlBoeXNpY2FsQmFzZSAgPSBQY2RHZXQ2NA0KPiAoUGNkRHJhbUJsb2NrMkJhc2VSZW1v dGUyKTsNCj4gPiArICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLlZpcnR1YWxCYXNlICAgICA9 IFBjZEdldDY0DQo+IChQY2REcmFtQmxvY2syQmFzZVJlbW90ZTIpOw0KPiA+ICsgIFZpcnR1YWxN ZW1vcnlUYWJsZVtJbmRleF0uTGVuZ3RoICAgICAgICAgID0gUGNkR2V0NjQNCj4gKFBjZERyYW1C bG9jazJCYXNlUmVtb3RlMik7DQo+ID4gKyAgVmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5BdHRy aWJ1dGVzICAgICAgPQ0KPiBBUk1fTUVNT1JZX1JFR0lPTl9BVFRSSUJVVEVfV1JJVEVfQkFDSzsN Cj4gPiArDQo+ID4gKyNpZiAoRml4ZWRQY2RHZXQzMiAoUGNkQ2hpcENvdW50KSA+IDMpDQo+ID4g KyAgLy8gQ2hpcCAzIEREUiBCbG9jayAxIC0gKDJHQikNCj4gPiArICBWaXJ0dWFsTWVtb3J5VGFi bGVbKytJbmRleF0uUGh5c2ljYWxCYXNlICA9IFBjZEdldDY0DQo+IChQY2REcmFtQmxvY2sxQmFz ZVJlbW90ZTMpOw0KPiA+ICsgIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uVmlydHVhbEJhc2Ug ICAgID0gUGNkR2V0NjQNCj4gKFBjZERyYW1CbG9jazFCYXNlUmVtb3RlMyk7DQo+ID4gKyAgVmly dHVhbE1lbW9yeVRhYmxlW0luZGV4XS5MZW5ndGggICAgICAgICAgPSBQY2RHZXQ2NA0KPiAoUGNk RHJhbUJsb2NrMUJhc2VSZW1vdGUzKTsNCj4gPiArICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhd LkF0dHJpYnV0ZXMgICAgICA9DQo+IEFSTV9NRU1PUllfUkVHSU9OX0FUVFJJQlVURV9XUklURV9C QUNLOw0KPiA+ICsNCj4gPiArICAvLyBDaGlwIDMgRERSIEJsb2NrIDIgLSAoNkdCKQ0KPiA+ICsg IFZpcnR1YWxNZW1vcnlUYWJsZVsrK0luZGV4XS5QaHlzaWNhbEJhc2UgID0gUGNkR2V0NjQNCj4g KFBjZERyYW1CbG9jazJCYXNlUmVtb3RlMyk7DQo+ID4gKyAgVmlydHVhbE1lbW9yeVRhYmxlW0lu ZGV4XS5WaXJ0dWFsQmFzZSAgICAgPSBQY2RHZXQ2NA0KPiAoUGNkRHJhbUJsb2NrMkJhc2VSZW1v dGUzKTsNCj4gPiArICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLkxlbmd0aCAgICAgICAgICA9 IFBjZEdldDY0DQo+IChQY2REcmFtQmxvY2syQmFzZVJlbW90ZTMpOw0KPiA+ICsgIFZpcnR1YWxN ZW1vcnlUYWJsZVtJbmRleF0uQXR0cmlidXRlcyAgICAgID0NCj4gQVJNX01FTU9SWV9SRUdJT05f QVRUUklCVVRFX1dSSVRFX0JBQ0s7DQo+ID4gKyNlbmRpZg0KPiA+ICsjZW5kaWYNCj4gPiArI2Vu ZGlmDQo+ID4gKw0KPiA+ICAgICAvLyBQQ0kgQ29uZmlndXJhdGlvbiBTcGFjZQ0KPiA+ICAgICBW aXJ0dWFsTWVtb3J5VGFibGVbKytJbmRleF0uUGh5c2ljYWxCYXNlICA9IFBjZEdldDY0DQo+IChQ Y2RQY2lFeHByZXNzQmFzZUFkZHJlc3MpOw0KPiA+ICAgICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5k ZXhdLlZpcnR1YWxCYXNlICAgICA9IFBjZEdldDY0DQo+IChQY2RQY2lFeHByZXNzQmFzZUFkZHJl c3MpOw0KPiA+IGRpZmYgLS1naXQgYS9QbGF0Zm9ybS9BUk0vU2dpUGtnL1NnaVBsYXRmb3JtLmRl Yw0KPiA+IGIvUGxhdGZvcm0vQVJNL1NnaVBrZy9TZ2lQbGF0Zm9ybS5kZWMNCj4gPiBpbmRleCA5 N2MxZTQwMzQ5ZWEuLjI4ZDczOGY5ODJkZCAxMDA2NDQNCj4gPiAtLS0gYS9QbGF0Zm9ybS9BUk0v U2dpUGtnL1NnaVBsYXRmb3JtLmRlYw0KPiA+ICsrKyBiL1BsYXRmb3JtL0FSTS9TZ2lQa2cvU2dp UGxhdGZvcm0uZGVjDQo+ID4gQEAgLTQ2LDYgKzQ2LDI1IEBAIFtQY2RzRml4ZWRBdEJ1aWxkXQ0K PiA+DQo+IGdBcm1TZ2lUb2tlblNwYWNlR3VpZC5QY2RWaXJ0aW9OZXRTaXplfDB4MDAwMDAwMDB8 VUlOVDMyfDB4MDAwMDAwMDgNCj4gPg0KPiA+DQo+IGdBcm1TZ2lUb2tlblNwYWNlR3VpZC5QY2RW aXJ0aW9OZXRJbnRlcnJ1cHR8MHgwMDAwMDAwMHxVSU5UMzJ8MHgwMDAwDQo+IDAwDQo+ID4gMDkN Cj4gPg0KPiA+ICsgICMgQ2hpcCBjb3VudCBvbiB0aGUgcGxhdGZvcm0NCj4gPiArICBnQXJtU2dp VG9rZW5TcGFjZUd1aWQuUGNkQ2hpcENvdW50fDF8VUlOVDMyfDB4MDAwMDAwMEMNCj4gPiArDQo+ DQo+IFdoYXQgZG9lcyAnY2hpcCBjb3VudCcgbWVhbj8gSXMgaXQgdGhlIG51bWJlciBvZiBzb2Nr ZXRzIGluIHVzZT8NCg0KT24gUkQtRGFuaWVsIHBsYXRmb3JtICdjaGlwIGNvdW50JyBtZWFucyB0 aGUgbnVtYmVyIG9mIGNoaXBzIG9uIHRoZSBzYW1lIGRpZSBwYWNrYWdlZCB0b2dldGhlciBhbmQg Y29ubmVjdGVkIG92ZXIgYSBjb2hlcmVudCBsaW5rLiBUaGVzZSBhcmUgbm90IHNlcGFyYXRlIHNv Y2tldHMuDQoNCj4NCj4gPiArICAjIFJlbW90ZSBOVU1BIG1lbW9yeSBub2RlIGJhc2UgYW5kIHNp emUNCj4gPiArDQo+IGdBcm1TZ2lUb2tlblNwYWNlR3VpZC5QY2REcmFtQmxvY2sxQmFzZVJlbW90 ZTF8MHxVSU5UNjR8MHgwMDAwMDANCj4gMTENCj4gPiArDQo+IGdBcm1TZ2lUb2tlblNwYWNlR3Vp ZC5QY2REcmFtQmxvY2sxU2l6ZVJlbW90ZTF8MHxVSU5UNjR8MHgwMDAwMDAxDQo+IDINCj4gPiAr DQo+IGdBcm1TZ2lUb2tlblNwYWNlR3VpZC5QY2REcmFtQmxvY2syQmFzZVJlbW90ZTF8MHxVSU5U NjR8MHgwMDAwMDANCj4gMTMNCj4gPiArDQo+IGdBcm1TZ2lUb2tlblNwYWNlR3VpZC5QY2REcmFt QmxvY2syU2l6ZVJlbW90ZTF8MHxVSU5UNjR8MHgwMDAwMDAxDQo+IDQNCj4gPiArDQo+ID4gKw0K PiBnQXJtU2dpVG9rZW5TcGFjZUd1aWQuUGNkRHJhbUJsb2NrMUJhc2VSZW1vdGUyfDB8VUlOVDY0 fDB4MDAwMDAwDQo+IDE1DQo+ID4gKw0KPiBnQXJtU2dpVG9rZW5TcGFjZUd1aWQuUGNkRHJhbUJs b2NrMVNpemVSZW1vdGUyfDB8VUlOVDY0fDB4MDAwMDAwMQ0KPiA2DQo+ID4gKw0KPiBnQXJtU2dp VG9rZW5TcGFjZUd1aWQuUGNkRHJhbUJsb2NrMkJhc2VSZW1vdGUyfDB8VUlOVDY0fDB4MDAwMDAw DQo+IDE3DQo+ID4gKw0KPiBnQXJtU2dpVG9rZW5TcGFjZUd1aWQuUGNkRHJhbUJsb2NrMlNpemVS ZW1vdGUyfDB8VUlOVDY0fDB4MDAwMDAwMQ0KPiA4DQo+ID4gKw0KPiA+ICsNCj4gZ0FybVNnaVRv a2VuU3BhY2VHdWlkLlBjZERyYW1CbG9jazFCYXNlUmVtb3RlM3wwfFVJTlQ2NHwweDAwMDAwMA0K PiAxOQ0KPiA+ICsNCj4gZ0FybVNnaVRva2VuU3BhY2VHdWlkLlBjZERyYW1CbG9jazFTaXplUmVt b3RlM3wwfFVJTlQ2NHwweDAwMDAwMDENCj4gQQ0KPiA+ICsNCj4gZ0FybVNnaVRva2VuU3BhY2VH dWlkLlBjZERyYW1CbG9jazJCYXNlUmVtb3RlM3wwfFVJTlQ2NHwweDAwMDAwMA0KPiAxQg0KPiA+ ICsNCj4gZ0FybVNnaVRva2VuU3BhY2VHdWlkLlBjZERyYW1CbG9jazJTaXplUmVtb3RlM3wwfFVJ TlQ2NHwweDAwMDAwMDENCj4gQw0KPiA+ICsNCj4NCj4gQ2FuIHdlIGZpbmQgYSBiZXR0ZXIgd2F5 IG9mIHJlcHJlc2VudGluZyB0aGlzPyBVc2luZyBQQ0RzIHRoaXMgd2F5IGRvZXMgbm90DQo+IHNj YWxlIGF0IGFsbC4gQWxzbywgaXQgaXMgZW50aXJlbHkgdW5jbGVhciB3aGF0ICdiYXNlJyBhbmQg J3JlbW90ZScNCj4gbWVhbiBpbiB0aGlzIGNvbnRleHQuDQoNCk9rLiBUaGVzZSBQQ0RzIHdpbGwg YmUgcmVtb3ZlZCBhbmQgcmVwbGFjZWQgd2l0aCBkeW5hbWljIGFzc2lnbm1lbnRzIG9mIHRoZSBi YXNlIGFuZCBzaXplIG9mIHRoZSByZW1vdGUgbWVtb3J5Lg0KDQpUaGFua3MNCkFkaXR5YQ0KDQo+ DQo+DQo+DQo+DQo+ID4gICAgICMgR0lDDQo+ID4gICAgIGdBcm1TZ2lUb2tlblNwYWNlR3VpZC5Q Y2RHaWNTaXplfDB8VUlOVDY0fDB4MDAwMDAwMEENCj4gPg0KPiA+DQoNCklNUE9SVEFOVCBOT1RJ Q0U6IFRoZSBjb250ZW50cyBvZiB0aGlzIGVtYWlsIGFuZCBhbnkgYXR0YWNobWVudHMgYXJlIGNv bmZpZGVudGlhbCBhbmQgbWF5IGFsc28gYmUgcHJpdmlsZWdlZC4gSWYgeW91IGFyZSBub3QgdGhl IGludGVuZGVkIHJlY2lwaWVudCwgcGxlYXNlIG5vdGlmeSB0aGUgc2VuZGVyIGltbWVkaWF0ZWx5 IGFuZCBkbyBub3QgZGlzY2xvc2UgdGhlIGNvbnRlbnRzIHRvIGFueSBvdGhlciBwZXJzb24sIHVz ZSBpdCBmb3IgYW55IHB1cnBvc2UsIG9yIHN0b3JlIG9yIGNvcHkgdGhlIGluZm9ybWF0aW9uIGlu IGFueSBtZWRpdW0uIFRoYW5rIHlvdS4NCg==