From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id F001542502; Tue, 5 Sep 2023 11:18:45 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 86E4740A67; Tue, 5 Sep 2023 11:18:45 +0200 (CEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2085.outbound.protection.outlook.com [40.107.92.85]) by mails.dpdk.org (Postfix) with ESMTP id 7B04840289; Tue, 5 Sep 2023 11:18:44 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ti4VCGyRWP+L6ivu1e5bE/52FoSzkUKXy6wLIXBOs21SZTy/hKDr69x5ZHkcqczHxeUf8O/0JzhruMlzzTHwyRF9SD0VKwjDp58r1iRg4UqDq462lCDRH8ixdN+zC8A7uHeygVuQUi2NbtHTQPsCjcTWnybDNe3l4biqYF2cEDyVUE5uSOTrxnNDxG/NHCUe1wwVB3jZkV6gap7MWunF+OWtvhm7qcpcz4vSvShvicoHzohrvfXbcAZHXpVI4b3zYm854hO6bUtEJyNU4RFCgw2lzQNEzdVVhNSco5LT7hOFCO+1K0zLyO9N4PZVD6XcpCTc77by/LAYi5TNhr7RcA== 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=/78th1Lvl6pvYTh/y5dCsMcGNvW6vBp8nxWJwYmfOeU=; b=EgJIjX6x562Uw5xvVktIPqqB5mhRo/Q4qbj0aXrapfDSp6mAKRfqvCIy5axNqhqZcYrqvmJC4EsAe1S6UIOuQUXIaOs/Azu3V9O0M/SEMaeZMmfpCZvcwmHD41lUg5LDUefOhjjmbOV0Zj2s6Ph4YBfvz99cZErjmtNN0j/Moc1dKuwulynLnZGkZw9hB/j0IUw2DjPdwKkOSQuAGohm2975YKyLAgp77LzZp4p+QZCjge9Fus48TDVGiEtAMbeMceaZJh5cBqBqGKgLAgbYbRNwtlwRmGWCNJp0j6Uq8GO5OxNtNtL1HP3zm92tfScvYrsaCfW0jqKvLZPWb15LeA== 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=/78th1Lvl6pvYTh/y5dCsMcGNvW6vBp8nxWJwYmfOeU=; b=H+gE2fZ9wqAJg24lEsE9fPg/8WjII04qErtTWDjI5c04qelJKyaxfa7M75Rwit5ukQNNGtmEVkPCjtYL9tmNkOYc/PjSiYhBZZED/WY6kNhkO2K3nMqYq38nNPXO9TpxhjRWvjCPe9K7/kB7tS/K6GzlcYr+g8kgWcRaJYEaduJPqTRL0+q+STz31GRnj2k4xSUrAbuxlqjb0MYOlUa5vbmoDuGtTbI7lmBh+mJDROftlZ72KTkkpwIB265/zytX1VCHhDTYp1Y8LVQY2Qf+uTKHnTsC4xhgXjjZShMqrU08eLFwBk1E7/rnhYyPjz4YKsTDXmTZa8ZFfZjrprScLw== Received: from DM4PR12MB5373.namprd12.prod.outlook.com (2603:10b6:5:39d::14) by SN7PR12MB7178.namprd12.prod.outlook.com (2603:10b6:806:2a6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.33; Tue, 5 Sep 2023 09:18:41 +0000 Received: from DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::31fe:170b:f6dc:d78]) by DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::31fe:170b:f6dc:d78%7]) with mapi id 15.20.6745.030; Tue, 5 Sep 2023 09:18:41 +0000 From: "Xueming(Steven) Li" To: Kevin Traynor , "Zeng, ZhichaoX" , "Xu, HailinX" , "stable@dpdk.org" , "Wu, Jingjing" , "Xing, Beilei" , "Xu, Ke1" , "Zhang, Qi Z" CC: "xuemingl@nvdia.com" , "dev@dpdk.org" , "Stokes, Ian" , "Mcnamara, John" , Luca Boccassi , "Xu, Qian Q" , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , "Peng, Yuan" , "Chen, Zhaoyan" , "Yang, Qiming" , "Zhou, YidingX" , "Cui, KaixinX" Subject: RE: 22.11.3 patches review and test Thread-Topic: 22.11.3 patches review and test Thread-Index: AQHZ0NHyl4gDKvg2C0KTF79DGOK+ybABAjkAgAIZYgCAAU0XAIAA/REAgAUeCQCAAE8QAIAAwoWAgAB03ACAAAepMA== Date: Tue, 5 Sep 2023 09:18:40 +0000 Message-ID: References: <20230817061332.16248-1-xuemingl@nvidia.com> <307bf0a5-b0a6-b602-64b8-8eff3dcf3905@redhat.com> <023948d4-ff86-9f4f-baf0-1469b154c489@redhat.com> In-Reply-To: <023948d4-ff86-9f4f-baf0-1469b154c489@redhat.com> Accept-Language: en-US Content-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-traffictypediagnostic: DM4PR12MB5373:EE_|SN7PR12MB7178:EE_ x-ms-office365-filtering-correlation-id: 326104e6-8205-4ada-b175-08dbadf11858 x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UKkAZ2yjYxUsvqNBz1LtMrm9/ohTpwDsg92W8v9Hb6484H/HJCU3y16VwBUxu8MC/pDl7IC8FhkL0Et/2yr06wZFX1pfGZflBnen0y2RjHMjc1wI2+9e+FOQPoBFlgE5nfkw+PlKIhzhBG7B8QdxhQplCdgiEq2se0Kwj7LG2/ghDjQ/M5dHgzC8VrAgt97cha+ezdYzsG1eTwHGSe4S+zAG+w+Ara/77DMWXEkaeAjzuzSkOzQ+Hy4Bmgf46mQ+24p/dZHL3hD94t/CRfZ0U55KYu7SThdkPnRcZwGBG7iSx+V2qAKN5D/iSFwEFQ/1ld5gHIGL/q71o8svVMAzWm9n30Uyae1gzHZDemAUIjilInt0+QK71PDIlPBRUHxbOvPamp5i1jY1VVETUpfEmG8eMkqFWc6MST48K+D6iJTThRe86rayPzp5Zb94gtjPXKdm1VXBjCHydWF3AuzX3DYXjgvJMyaPKVdig8/zhalazIPkrI2VOsw3gG2BLZIRrfPtH6Qnatsg9BR2fskusvjLZsgoPE9bSF+cuEirBs5gN7Mn6JiIXMABrakvQ5gf6KNEOE26x99Q4KiGUa+jmKXO1J03XdRrTrlBWs9gWFUKhnvm1j+TkVa6s4OH3Ai7srWkCv4yl7j5pBw7p5r+aLAMHPboUHMWzY4TfNFU83i1VVt2I6RV7zJ3MgqLPs7O x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5373.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(396003)(346002)(39860400002)(136003)(376002)(366004)(1800799009)(186009)(451199024)(7416002)(38100700002)(83380400001)(38070700005)(921005)(122000001)(2906002)(55016003)(9686003)(41300700001)(316002)(54906003)(64756008)(110136005)(66556008)(66476007)(66446008)(66946007)(86362001)(76116006)(33656002)(6506007)(53546011)(71200400001)(7696005)(478600001)(4326008)(8936002)(5660300002)(8676002)(52536014)(966005)(26005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Qi9HRDl1YjlVZzFFUjk2K2Y5ZUR5NE9uYTNTeFhDSnNzZDVSUnVMTnkraDZI?= =?utf-8?B?Wjl4TnBUYVVCa2hLK2Nwcy9ZbDdaTldNTStyWlFEUEoyTWRYSytkZ2VPL1Bp?= =?utf-8?B?RFd2em12WUVNVldGRDg4K040dVlnR3hZK09XcFMxOFFSL0J3Qy9UTksrM1B2?= =?utf-8?B?VkROMWU1dGVELzZGMkVObWJxNVFQbWRuQXBSa0ZvRmlycDlndysraHBGZnQ2?= =?utf-8?B?QUZPM0NQQUUrUGpLNkorcmlaMERDL2NGYkZFc1JzRzgyeHNtK1hQVGRlVVV6?= =?utf-8?B?ZjByTnJVaFdnanM2cWtFWnY4Q2F6dmJkaXlGTjNFYm1pVWhTWC9zdUsxa2RS?= =?utf-8?B?TkVveWpvNTJkcUlyZUdiR2tQcE92a1NMdG9ZNWl4dTlFN29DTDZvNjRRWE5x?= =?utf-8?B?K3NRWGtmQmEwY21DTUk5WU9PaW1vN2pkb2VOMS9Id29HVlZNYytzbitMa0NW?= =?utf-8?B?QWdBQUR3U21Qd01aVXFPVlhJblorUmxpN1B4bkZ0Ulp6L0Z0RytrTDA3M1Fk?= =?utf-8?B?dlZwSnV3NWplSEFCSkJHR0FsUC9RWDZwVWlXczROWVlrOGs2dkdBTVlnWUdp?= =?utf-8?B?b0tMSW9WWXhQKzVGVmFaWW5iL05PZVpIbVhaZnBIWlI5a3BBeENGcWZzaGlr?= =?utf-8?B?MXNEaUxndXRKWkpzQi9EUThEclNSUGtVN2NreWxjbG1lekRKVy9mSng1dTlB?= =?utf-8?B?enlSS1RYRktuc3ZDQXovU09uWFo3cyswOFpVSUJYNkxsUFE4YXRDMGplMjRZ?= =?utf-8?B?c3BhWkhRWGxtZzZkUWdMZkl3c25IZkhid3o1cHVDbVhndkE2WU1IZk9SVkJF?= =?utf-8?B?QzBERVhta3JTZGxtWDBOYTd3RU43TmVIVnhVZEVHRXNoMTM2bTAvUTJUcWVW?= =?utf-8?B?THREdHM2Z2lXSlZjTzNWZ3lFQkFUODhWUXliSWlENUNXbDhycXF0dUJSQkdz?= =?utf-8?B?eHk3ckdWT2ErbjFVWjZDamxBMXZ1UC9hbkxWZWZrNjZJZGdkY1lJajJPemRk?= =?utf-8?B?SEVEdTFrMDgzNGQycTVCT0JFT2toMVBWSFNOanJKYm43VFhvcDB1Tnovb1J4?= =?utf-8?B?MDRaSFdHWk5uZ1ZQdHNJK0ZpU3lqWUk1OStUMURnSnc3TDVVdmFESm9ZRkdX?= =?utf-8?B?ck1Jc0VrMkt4NGtwWGMyemUvc3B0ZEtobGp4TlpXSTRGcEI0VzdjV0Z4d3Ft?= =?utf-8?B?S3RqSkYrWmJ1OXBPR2lDeDVSeEtzUkdVNzl6ZXVITW9zYm5vNUhXNjlVcVVy?= =?utf-8?B?eTJZQzlFd21oQ2FJNFJFNTNpZ1A4bkIrQnhhL3pwcDZxRGMzRDQ2Uk1NK3hU?= =?utf-8?B?UEdXVHRJdVlTSDFDR2t0ejd0MVVpQ2lmcWhoQVgrdXhCbUt2aE1pUU9TN0Ns?= =?utf-8?B?WXczYzRTTlJuU05kdlpsZDNhd0hQRU5WV2FZMHo1N1FGQlR5NnN2TzE1S3ZJ?= =?utf-8?B?elAxL09JcVFZaGRhUVVtQy9NSHVKMzVGWGZldnluRVpBZTk2MThOL2xWMmtu?= =?utf-8?B?ZDMxdDc1aUdaMmFsTUVMRTdUUDJMSVEwYnNiNnYxOXozWEZRdkdnUEZlSFVY?= =?utf-8?B?dUV3eTR0SWV2NDdvUG9QVUFzNmxIV2NHTzc5dll5QURWenZlOWJjOUlvZU1E?= =?utf-8?B?NThqYXY2QVdqaCsxYkV5WjNtUW5oZFNKZnVmdjhIUXduL05GbzYxZncrQUds?= =?utf-8?B?Qkk4Mmh5NjIwUnEwSVFhYmkwa1drU3o0V2wwbDkvQ05JSXNGNC9nZVhueEVn?= =?utf-8?B?V3VaY2VXUG5scjZNL050emtSVGhqV1U0bzZLaHFsM1JmTjZoSzcxZTZMaUYw?= =?utf-8?B?cGJERit3QUVQV2crZW8xakVLOWhkd0tnV1IyWGFvV3RkcVQvTk53RFRsUHZJ?= =?utf-8?B?dXZkZkovVjM0MFE0cDVMSVFTcnhGSnpha0w0UFFGQ1pMcUk0WkFOR3RYeEpW?= =?utf-8?B?TUJjVXBGQ2lMTWdzTnNlcTYyY2tTRXk2a2ZzK1JWR2pNU2JQMC9UNkd2Q2RP?= =?utf-8?B?N0dwaDhEdHdHR3lNL1pqYmkvaXJ0Q1BkT1BNT3U0YkVLSm0zNXNQUjlpQUgy?= =?utf-8?B?VERjOVVoTFA0R05heXNLUmVYYi92NDBFdVBGUW4wd2xrWk1MTklXU09TVXlL?= =?utf-8?Q?/WT2/gz0uukmJ7hvIQylr0VxM?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5373.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 326104e6-8205-4ada-b175-08dbadf11858 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Sep 2023 09:18:40.9758 (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: dHqNmav7tJzwZoWFFtoY3lj269IAbAvKyhVQgnHT8VZCnHoon7lRXWIebS7lGrq430ZST6ICevoXyctpO34umg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7178 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS2V2aW4gVHJheW5vciA8 a3RyYXlub3JAcmVkaGF0LmNvbT4NCj4gU2VudDogOS81LzIwMjMgMTY6NTANCj4gVG86IFplbmcs IFpoaWNoYW9YIDx6aGljaGFveC56ZW5nQGludGVsLmNvbT47IFh1LCBIYWlsaW5YDQo+IDxoYWls aW54Lnh1QGludGVsLmNvbT47IFh1ZW1pbmcoU3RldmVuKSBMaSA8eHVlbWluZ2xAbnZpZGlhLmNv bT47DQo+IHN0YWJsZUBkcGRrLm9yZzsgV3UsIEppbmdqaW5nIDxqaW5namluZy53dUBpbnRlbC5j b20+OyBYaW5nLCBCZWlsZWkNCj4gPGJlaWxlaS54aW5nQGludGVsLmNvbT47IFh1LCBLZTEgPGtl MS54dUBpbnRlbC5jb20+OyBaaGFuZywgUWkgWg0KPiA8cWkuei56aGFuZ0BpbnRlbC5jb20+DQo+ IENjOiB4dWVtaW5nbEBudmRpYS5jb207IGRldkBkcGRrLm9yZzsgU3Rva2VzLCBJYW4gPGlhbi5z dG9rZXNAaW50ZWwuY29tPjsNCj4gTWNuYW1hcmEsIEpvaG4gPGpvaG4ubWNuYW1hcmFAaW50ZWwu Y29tPjsgTHVjYSBCb2NjYXNzaQ0KPiA8Ymx1Y2FAZGViaWFuLm9yZz47IFh1LCBRaWFuIFEgPHFp YW4ucS54dUBpbnRlbC5jb20+OyBOQlUtQ29udGFjdC0NCj4gVGhvbWFzIE1vbmphbG9uIChFWFRF Uk5BTCkgPHRob21hc0Btb25qYWxvbi5uZXQ+OyBQZW5nLCBZdWFuDQo+IDx5dWFuLnBlbmdAaW50 ZWwuY29tPjsgQ2hlbiwgWmhhb3lhbiA8emhhb3lhbi5jaGVuQGludGVsLmNvbT47IFlhbmcsDQo+ IFFpbWluZyA8cWltaW5nLnlhbmdAaW50ZWwuY29tPjsgWmhvdSwgWWlkaW5nWCA8eWlkaW5neC56 aG91QGludGVsLmNvbT47DQo+IEN1aSwgS2FpeGluWCA8a2FpeGlueC5jdWlAaW50ZWwuY29tPg0K PiBTdWJqZWN0OiBSZTogMjIuMTEuMyBwYXRjaGVzIHJldmlldyBhbmQgdGVzdA0KPiANCj4gT24g MDUvMDkvMjAyMyAwMjo1MSwgWmVuZywgWmhpY2hhb1ggd3JvdGU6DQo+ID4NCj4gPg0KPiA+IFJl Z2FyZHMNCj4gPiBaaGljaGFvDQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+ IEZyb206IEtldmluIFRyYXlub3IgPGt0cmF5bm9yQHJlZGhhdC5jb20+DQo+ID4+IFNlbnQ6IE1v bmRheSwgU2VwdGVtYmVyIDQsIDIwMjMgMTA6MTUgUE0NCj4gPj4gVG86IFplbmcsIFpoaWNoYW9Y IDx6aGljaGFveC56ZW5nQGludGVsLmNvbT47IFh1LCBIYWlsaW5YDQo+ID4+IDxoYWlsaW54Lnh1 QGludGVsLmNvbT47IFh1ZW1pbmcgTGkgPHh1ZW1pbmdsQG52aWRpYS5jb20+Ow0KPiA+PiBzdGFi bGVAZHBkay5vcmc7IFd1LCBKaW5namluZyA8amluZ2ppbmcud3VAaW50ZWwuY29tPjsgWGluZywg QmVpbGVpDQo+ID4+IDxiZWlsZWkueGluZ0BpbnRlbC5jb20+OyBYdSwgS2UxIDxrZTEueHVAaW50 ZWwuY29tPjsgWmhhbmcsIFFpIFoNCj4gPj4gPHFpLnouemhhbmdAaW50ZWwuY29tPg0KPiA+PiBD YzogeHVlbWluZ2xAbnZkaWEuY29tOyBkZXZAZHBkay5vcmc7IFN0b2tlcywgSWFuDQo+ID4+IDxp YW4uc3Rva2VzQGludGVsLmNvbT47IE1jbmFtYXJhLCBKb2huIDxqb2huLm1jbmFtYXJhQGludGVs LmNvbT47DQo+ID4+IEx1Y2EgQm9jY2Fzc2kgPGJsdWNhQGRlYmlhbi5vcmc+OyBYdSwgUWlhbiBR IDxxaWFuLnEueHVAaW50ZWwuY29tPjsNCj4gPj4gVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9u amFsb24ubmV0PjsgUGVuZywgWXVhbg0KPiA+PiA8eXVhbi5wZW5nQGludGVsLmNvbT47IENoZW4s IFpoYW95YW4gPHpoYW95YW4uY2hlbkBpbnRlbC5jb20+DQo+ID4+IFN1YmplY3Q6IFJlOiAyMi4x MS4zIHBhdGNoZXMgcmV2aWV3IGFuZCB0ZXN0DQo+ID4+DQo+ID4+IE9uIDA0LzA5LzIwMjMgMTA6 MzIsIEtldmluIFRyYXlub3Igd3JvdGU6DQo+ID4+PiBPbiAwMS8wOS8yMDIzIDA0OjIzLCBaZW5n LCBaaGljaGFvWCB3cm90ZToNCj4gPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g Pj4+Pj4gRnJvbTogS2V2aW4gVHJheW5vciA8a3RyYXlub3JAcmVkaGF0LmNvbT4NCj4gPj4+Pj4g U2VudDogVGh1cnNkYXksIEF1Z3VzdCAzMSwgMjAyMyA4OjE4IFBNDQo+ID4+Pj4+IFRvOiBYdSwg SGFpbGluWCA8aGFpbGlueC54dUBpbnRlbC5jb20+OyBYdWVtaW5nIExpDQo+ID4+Pj4+IDx4dWVt aW5nbEBudmlkaWEuY29tPjsgc3RhYmxlQGRwZGsub3JnOyBXdSwgSmluZ2ppbmcNCj4gPj4+Pj4g PGppbmdqaW5nLnd1QGludGVsLmNvbT47IFhpbmcsIEJlaWxlaSA8YmVpbGVpLnhpbmdAaW50ZWwu Y29tPjsgWHUsDQo+ID4+Pj4+IEtlMSA8a2UxLnh1QGludGVsLmNvbT47IFplbmcsIFpoaWNoYW9Y IDx6aGljaGFveC56ZW5nQGludGVsLmNvbT47DQo+ID4+Pj4+IFpoYW5nLCBRaSBaIDxxaS56Lnpo YW5nQGludGVsLmNvbT4NCj4gPj4+Pj4gQ2M6IHh1ZW1pbmdsQG52ZGlhLmNvbTsgZGV2QGRwZGsu b3JnOyBTdG9rZXMsIElhbg0KPiA+Pj4+PiA8aWFuLnN0b2tlc0BpbnRlbC5jb20+OyBNY25hbWFy YSwgSm9obg0KPiA8am9obi5tY25hbWFyYUBpbnRlbC5jb20+Ow0KPiA+Pj4+PiBMdWNhIEJvY2Nh c3NpIDxibHVjYUBkZWJpYW4ub3JnPjsgWHUsIFFpYW4gUQ0KPiA+Pj4+PiA8cWlhbi5xLnh1QGlu dGVsLmNvbT47IFRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD47DQo+ID4+Pj4+ IFBlbmcsIFl1YW4gPHl1YW4ucGVuZ0BpbnRlbC5jb20+OyBDaGVuLCBaaGFveWFuDQo+ID4+Pj4+ IDx6aGFveWFuLmNoZW5AaW50ZWwuY29tPg0KPiA+Pj4+PiBTdWJqZWN0OiBSZTogMjIuMTEuMyBw YXRjaGVzIHJldmlldyBhbmQgdGVzdA0KPiA+Pj4+Pg0KPiA+Pj4+PiBPbiAzMC8wOC8yMDIzIDE3 OjI1LCBLZXZpbiBUcmF5bm9yIHdyb3RlOg0KPiA+Pj4+Pj4gT24gMjkvMDgvMjAyMyAwOToyMiwg WHUsIEhhaWxpblggd3JvdGU6DQo+ID4+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4+Pj4+Pj4+IEZyb206IFh1ZW1pbmcgTGkgPHh1ZW1pbmdsQG52aWRpYS5jb20+DQo+ID4+ Pj4+Pj4+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMTcsIDIwMjMgMjoxNCBQTQ0KPiA+Pj4+Pj4+ PiBUbzogc3RhYmxlQGRwZGsub3JnDQo+ID4+Pj4+Pj4+IENjOiB4dWVtaW5nbEBudmRpYS5jb207 IGRldkBkcGRrLm9yZzsgQWJoaXNoZWsgTWFyYXRoZQ0KPiA+Pj4+Pj4+PiA8QWJoaXNoZWsuTWFy YXRoZUBtaWNyb3NvZnQuY29tPjsgQWxpIEFsbnViYW5pDQo+ID4+Pj4+Pj4+IDxhbGlhbG51QG52 aWRpYS5jb20+OyBXYWxrZXIsIEJlbmphbWluDQo+ID4+Pj4+Pj4+IDxiZW5qYW1pbi53YWxrZXJA aW50ZWwuY29tPjsgRGF2aWQgQ2hyaXN0ZW5zZW4NCj4gPj4+Pj4+Pj4gPGRyY0BsaW51eC52bmV0 LmlibS5jb20+OyBIZW1hbnQgQWdyYXdhbA0KPiA+Pj4+PiA8aGVtYW50LmFncmF3YWxAbnhwLmNv bT47DQo+ID4+Pj4+Pj4+IFN0b2tlcywgSWFuIDxpYW4uc3Rva2VzQGludGVsLmNvbT47IEplcmlu IEphY29iDQo+ID4+Pj4+Pj4+IDxqZXJpbmpAbWFydmVsbC5jb20+OyBNY25hbWFyYSwgSm9obg0K PiA+PiA8am9obi5tY25hbWFyYUBpbnRlbC5jb20+Ow0KPiA+Pj4+Pj4+PiBKdS1IeW91bmcgTGVl IDxqdWhsZWVAbWljcm9zb2Z0LmNvbT47IEtldmluIFRyYXlub3INCj4gPj4+Pj4+Pj4gPGt0cmF5 bm9yQHJlZGhhdC5jb20+OyBMdWNhIEJvY2Nhc3NpIDxibHVjYUBkZWJpYW4ub3JnPjsgUGVpDQo+ ID4+Pj4+Pj4+IFpoYW5nIDxwZXpoYW5nQHJlZGhhdC5jb20+OyBYdSwgUWlhbiBRIDxxaWFuLnEu eHVAaW50ZWwuY29tPjsNCj4gPj4+Pj4+Pj4gUmFzbGFuIERhcmF3c2hlaCA8cmFzbGFuZEBudmlk aWEuY29tPjsgVGhvbWFzIE1vbmphbG9uDQo+ID4+Pj4+Pj4+IDx0aG9tYXNAbW9uamFsb24ubmV0 PjsgWWFuZ2hhbmcgTGl1IDx5YW5naGxpdUByZWRoYXQuY29tPjsNCj4gPj4gUGVuZywNCj4gPj4+ Pj4+Pj4gWXVhbiA8eXVhbi5wZW5nQGludGVsLmNvbT47IENoZW4sIFpoYW95YW4NCj4gPj4+Pj4g PHpoYW95YW4uY2hlbkBpbnRlbC5jb20+DQo+ID4+Pj4+Pj4+IFN1YmplY3Q6IDIyLjExLjMgcGF0 Y2hlcyByZXZpZXcgYW5kIHRlc3QNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gSGkgYWxsLA0KPiA+ Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBIZXJlIGlzIGEgbGlzdCBvZiBwYXRjaGVzIHRhcmdldGVkIGZv ciBzdGFibGUgcmVsZWFzZSAyMi4xMS4zLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBUaGUgcGxh bm5lZCBkYXRlIGZvciB0aGUgZmluYWwgcmVsZWFzZSBpcyAzMXRoIEF1Z3VzdC4NCj4gPj4+Pj4+ Pj4NCj4gPj4+Pj4+Pj4gUGxlYXNlIGhlbHAgd2l0aCB0ZXN0aW5nIGFuZCB2YWxpZGF0aW9uIG9m IHlvdXIgdXNlIGNhc2VzIGFuZA0KPiA+Pj4+Pj4+PiByZXBvcnQgYW55IGlzc3Vlcy9yZXN1bHRz IHdpdGggcmVwbHktYWxsIHRvIHRoaXMgbWFpbC4gRm9yIHRoZQ0KPiA+Pj4+Pj4+PiBmaW5hbCBy ZWxlYXNlIHRoZSBmaXhlcyBhbmQgcmVwb3J0ZWQgdmFsaWRhdGlvbnMgd2lsbCBiZSBhZGRlZA0K PiA+Pj4+Pj4+PiB0byB0aGUgcmVsZWFzZQ0KPiA+Pj4+PiBub3Rlcy4NCj4gPj4+Pj4+Pj4NCj4g Pj4+Pj4+Pj4gQSByZWxlYXNlIGNhbmRpZGF0ZSB0YXJiYWxsIGNhbiBiZSBmb3VuZCBhdDoNCj4g Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gaHR0cHM6Ly9kcGRrLm9yZy9icm93c2Uv ZHBkay1zdGFibGUvdGFnLz9pZD12MjIuMTEuMy1yYzENCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4g VGhlc2UgcGF0Y2hlcyBhcmUgbG9jYXRlZCBhdCBicmFuY2ggMjIuMTEgb2YgZHBkay1zdGFibGUg cmVwbzoNCj4gPj4+Pj4+Pj4gICAgICAgICAgaHR0cHM6Ly9kcGRrLm9yZy9icm93c2UvZHBkay1z dGFibGUvDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IFRoYW5rcy4NCj4gPj4+Pj4+Pg0KPiA+Pj4+ Pj4+IFdlIGFyZSBjb25kdWN0aW5nIERQREsgdGVzdGluZyBhbmQgaGF2ZSBmb3VuZCB0d28gaXNz dWVzLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gMS4gVGhlIHN0YXJ0dXAgc3BlZWQgb2YgdGVzdHBt ZCBpcyBzaWduaWZpY2FudGx5IHNsb3dlciBpbiB0aGUgb3Mgb2YNCj4gU1VTRQ0KPiA+Pj4+Pj4+ ICAgICAgICBUaGlzIGlzc3VlIGZpeCBwYXRjaCBoYXMgYmVlbiBtZXJnZWQgaW50byBtYWluLCBC dXQgaXQNCj4gPj4+Pj4+PiBoYXMgbm90IGJhY2twb3J0ZWQNCj4gPj4+Pj4gdG8gMjIuMTEuMy4N Cj4gPj4+Pj4+PiAgICAgICAgRml4IHBhdGNoIGNvbW1pdCBpZCBvbiBEUERLIG1haW46DQo+ID4+ Pj4+Pj4gN2U3YjY3NjJlYWMyOTJlNzhjNzdhZDM3ZWMwOTczYzBjOTQ0Yjg0NQ0KPiA+Pj4+Pj4+ DQo+ID4+Pj4+Pj4gMi4gVGhlIFNDVFAgdHVubmVsIHBhY2tldCBvZiBpYXZmIGNhbm5vdCBiZSBm b3J3YXJkZWQgaW4gYXZ4NTEyDQo+ID4+Pj4+Pj4gbW9kZQ0KPiA+Pj4+Pg0KPiA+Pj4+PiBOZWVk IHRvIGNsYXJpZnkgdGhpcyBzZW50ZW5jZS4gSXQgbG9va3MgbGlrZSBpdCBpcyBub3QgYQ0KPiA+ Pj4+PiBmdW5jdGlvbmFsIGJ1ZyB3aGVyZQ0KPiA+Pj4+PiBhdng1MTIgbW9kZSBpcyBzZWxlY3Rl ZCBhbmQgdGhlbiBhbiBTQ1RQIHR1bm5lbCBwYWNrZXQgY2Fubm90IGJlDQo+IHNlbnQuDQo+ID4+ Pj4+IEluc3RlYWQsIGl0IGlzIGEgcG9zc2libGUgcGVyZm9ybWFuY2UgaXNzdWUgdGhhdCBhdng1 MTIgbW9kZSB3aWxsDQo+ID4+Pj4+IG5vdCBiZSBzZWxlY3RlZCB3aGVyZSBpdCBtaWdodCBoYXZl IGJlZW4gZHVlIHRvIHVubmVlZGVkIGFkZGl0aW9ucw0KPiA+Pj4+PiAoUlRFX0VUSF9UWF9PRkZM T0FEXypfVE5MX1RTTykgdG8gSUFWRl9UWF9OT19WRUNUT1JfRkxBR1MuDQo+ID4+Pj4+DQo+ID4+ Pj4+IEBJQVZGIG1haW50YWluZXJzIC0gcGxlYXNlIGNvbmZpcm0gbXkgYW5hbHlzaXMgaXMgY29y cmVjdCA/DQo+ID4+Pj4+DQo+ID4+Pj4+IEluIHRoYXQgY2FzZSwgYXMgaXQgaXMgYSBwb3NzaWJs ZSBwZXJmb3JtYW5jZSBpc3N1ZSBpbiBhIHNwZWNpZmljDQo+ID4+Pj4+IGNhc2UgZm9yIGEgc2lu Z2xlIGRyaXZlciBJIHRoaW5rIGl0IGlzIG5vbi1jcml0aWNhbCBmb3IgMjEuMTEgYW5kDQo+ID4+ Pj4+IHdlIGNhbiBqdXN0IHJldmVydCB0aGUgcGF0Y2ggb24gdGhlIGJyYW5jaCBhbmQgd2FpdCBm b3IgMjEuMTEuNg0KPiA+Pj4+PiByZWxlYXNlIGluDQo+ID4+IERlY2VtYmVyLg0KPiA+Pj4+DQo+ ID4+Pj4gSGkgS2V2aW4sDQo+ID4+Pj4NCj4gPj4+PiBTaW5jZSB0aGUgTFRTIHZlcnNpb24gb2Yg dGhlIElBVkYgZHJpdmVyIGRvZXMgbm90IHN1cHBvcnQgYXZ4NTEyDQo+ID4+Pj4gY2hlY2tzdW0g b2ZmbG9hZCwgdGhlIHNjYWxhciBwYXRoIHNob3VsZCBiZSBzZWxlY3RlZCwgYnV0IHRoaXMNCj4g Pj4+PiBwYXRjaCBtYWtlcyBpdCBpbmNvcnJlY3RseSBzZWxlY3QgdGhlDQo+ID4+Pj4gYXZ4NTEy IHBhdGgsIGFuZCB0aGUgU0NUUCB0dW5uZWwgcGFja2V0cyBjYW4ndCBiZSBmb3J3YXJkZWQgcHJv cGVybHkuDQo+ID4+Pj4NCj4gPj4+DQo+ID4+PiBvaywgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhl IHBhdGNoIGFuZCB1c2FnZS4NCj4gPj4+DQo+ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv aWF2Zi9pYXZmX3J4dHguaA0KPiA+Pj4gYi9kcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eC5oIGlu ZGV4IDhkNGE3NzI3MWEuLjYwNWVhM2Y4MjQgMTAwNjQ0DQo+ID4+PiAtLS0gYS9kcml2ZXJzL25l dC9pYXZmL2lhdmZfcnh0eC5oDQo+ID4+PiArKysgYi9kcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0 eC5oDQo+ID4+PiBAQCAtMzIsNCArMzIsOCBAQA0KPiA+Pj4gICAgICAgICAgICAgICAgICAgIFJU RV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwgICAgICAgICAgXA0KPiA+Pj4gICAgICAgICAg ICAgICAgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwgICAgICAgICAgICAgXA0KPiA+ Pj4gKyAgICAgICAgICAgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwgICAg ICAgXA0KPiA+Pj4gKyAgICAgICAgICAgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9HUkVfVE5MX1RT TyB8ICAgICAgICAgXA0KPiA+Pj4gKyAgICAgICAgICAgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9J UElQX1ROTF9UU08gfCAgICAgICAgXA0KPiA+Pj4gKyAgICAgICAgICAgICAgIFJURV9FVEhfVFhf T0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8ICAgICAgXA0KPiA+Pj4gICAgICAgICAgICAgICAgICAg IFJURV9FVEhfVFhfT0ZGTE9BRF9TRUNVUklUWSkNCj4gPj4+DQo+ID4+PiA8c25pcD4NCj4gPj4+ DQo+ID4+PiBTbyB3ZSBub3cgaGF2ZToNCj4gPj4+ICNkZWZpbmUgSUFWRl9UWF9OT19WRUNUT1Jf RkxBR1MgKAkJCQkgXA0KPiA+Pj4gCQlSVEVfRVRIX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAkJ IFwNCj4gPj4+IAkJUlRFX0VUSF9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwJCSBcDQo+ID4+PiAJ CVJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwJCSBcDQo+ID4+PiAJCVJURV9FVEhfVFhf T0ZGTE9BRF9UQ1BfVFNPIHwJCSBcDQo+ID4+PiAJCVJURV9FVEhfVFhfT0ZGTE9BRF9WWExBTl9U TkxfVFNPIHwJIFwNCj4gPj4+IAkJUlRFX0VUSF9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwJIFwN Cj4gPj4+IAkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8CSBcDQo+ID4+PiAJCVJU RV9FVEhfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8CSBcDQo+ID4+PiAJCVJURV9FVEhfVFhf T0ZGTE9BRF9TRUNVUklUWSkNCj4gPj4+DQo+ID4+PiA8c25pcD4NCj4gPj4+DQo+ID4NCj4gPiBI aSBLZXZpbiwNCj4gPg0KPiA+IFRoaXMgcGF0Y2ggYWxzbyByZW1vdmVzIHR3byBmbGFncyBmcm9t IElBVkZfVFhfTk9fVkVDVE9SX0ZMQUdTLA0KPiA+IFJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9J UFY0X0NLU1VNDQo+ID4gYW5kIFJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0uDQo+ ID4NCj4gPj4+IHN0YXRpYyBpbmxpbmUgaW50DQo+ID4+PiBpYXZmX3R4X3ZlY19xdWV1ZV9kZWZh dWx0KHN0cnVjdCBpYXZmX3R4X3F1ZXVlICp0eHEpIHsNCj4gPj4+IAlpZiAoIXR4cSkNCj4gPj4+ IAkJcmV0dXJuIC0xOw0KPiA+Pj4NCj4gPj4+IAlpZiAodHhxLT5yc190aHJlc2ggPCBJQVZGX1ZQ TURfVFhfTUFYX0JVUlNUIHx8DQo+ID4+PiAJICAgIHR4cS0+cnNfdGhyZXNoID4gSUFWRl9WUE1E X1RYX01BWF9GUkVFX0JVRikNCj4gPj4+IAkJcmV0dXJuIC0xOw0KPiA+Pj4NCj4gPj4+IAlpZiAo dHhxLT5vZmZsb2FkcyAmIElBVkZfVFhfTk9fVkVDVE9SX0ZMQUdTKQ0KPiA+Pj4gCQlyZXR1cm4g LTE7DQo+ID4+PiAgICAgICAgICAgICAgICBeXl4gQWRkaW5nIHRoZSBleHRyYSBiaXRzIHRvIElB VkZfVFhfTk9fVkVDVE9SX0ZMQUdTDQo+ID4+PiBnaXZlcw0KPiA+Pj4gKm1vcmUqIHJlYXNvbnMg Zm9yIHdoeSB0aGlzIHN0YXRlbWVudCBtaWdodCBub3QgYmUgdHJ1ZSwgc28NCj4gPj4+IHJldHVy bmluZw0KPiA+Pj4gLTEgaW5kaWNhdGluZyB0aGF0IHZlY3RvciBjYW5ub3QgYmUgdXNlZCBmb3Ig dHggcXVldWUNCj4gPj4+DQo+ID4+DQo+ID4+IHR5cG8gaGVyZSAtIGp1c3QgdG8gY2xhcmlmeSwg dGhlIG5ldyBmbGFncyBnaXZlIG1vcmUgcmVhc29ucyBmb3IgdGhpcw0KPiA+PiBzdGF0ZW1lbnQg dG8gYmUgdHJ1ZSwgc28gcmV0dXJuaW5nIC0xLg0KPiA+Pg0KPiA+Pj4NCj4gPj4+IDxzbmlwPg0K PiA+Pj4NCj4gPj4+IHN0YXRpYyBpbmxpbmUgYm9vbA0KPiA+Pj4gY2hlY2tfdHhfdmVjX2FsbG93 KHN0cnVjdCBpYXZmX3R4X3F1ZXVlICp0eHEpIHsNCj4gPj4+IAlpZiAoISh0eHEtPm9mZmxvYWRz ICYgSUFWRl9UWF9OT19WRUNUT1JfRkxBR1MpICYmDQo+ID4+Pg0KPiA+Pj4gICAgICAgICAgICAg ICAgXl5eIEFkZGluZyB0aGUgZXh0cmEgYml0cyB0byBJQVZGX1RYX05PX1ZFQ1RPUl9GTEFHUw0K PiA+Pj4gZ2l2ZXMNCj4gPj4+ICptb3JlKiByZWFzb24gZm9yIHRoaXMgc3RhdGVtZW50IHdpbGwg YmUgZmFsc2UgYW5kIHRoZW4gZmFsc2UNCj4gPj4+IHJldHVybmVkIGluZGljYXRpbmcgdGhhdCB2 ZWN0b3IgY2Fubm90IGJlIHVzZWQuDQo+ID4+Pg0KPiA+Pj4gCSAgICB0eHEtPnJzX3RocmVzaCA+ PSBJQVZGX1ZQTURfVFhfTUFYX0JVUlNUICYmDQo+ID4+PiAJICAgIHR4cS0+cnNfdGhyZXNoIDw9 IElBVkZfVlBNRF9UWF9NQVhfRlJFRV9CVUYpIHsNCj4gPj4+IAkJUE1EX0lOSVRfTE9HKERFQlVH LCAiVmVjdG9yIHR4IGNhbiBiZSBlbmFibGVkIG9uIHRoaXMNCj4gPj4gdHhxLiIpOw0KPiA+Pj4g CQlyZXR1cm4gdHJ1ZTsNCj4gPj4+IAl9DQo+ID4+PiAJUE1EX0lOSVRfTE9HKERFQlVHLCAiVmVj dG9yIFR4IGNhbm5vdCBiZSBlbmFibGVkIG9uIHRoaXMgdHhxLiIpOw0KPiA+Pj4gCXJldHVybiBm YWxzZTsNCj4gPj4+IH0NCj4gPj4+DQo+ID4+PiAtLQ0KPiA+Pj4NCj4gPj4+IEl0IGxvb2tzIGxp a2UgdGhhdCBhZGRpbmcgdGhlIGV4dHJhIGJpdHMgZ2l2ZXMgaXQgbGVzcyByZWFzb25zIHRvDQo+ ID4+PiBzZWxlY3QgdmVjdG9yIG1vZGUuIEhvd2V2ZXIsIHlvdSBhcmUgc2F5aW5nIHRoYXQgdGhp cyBwYXRjaCBtZWFucw0KPiA+Pj4gdGhlcmUgaXMgYSBjYXNlIHdoZXJlIGl0IG5vdyBzZWxlY3Rz IHZlY3RvciB3aGVyZSBpdCBzaG91bGQgbm90LA0KPiA+Pj4gbWVhbmluZyBhZGRpdGlvbmFsIHJl YXNvbiB0byBzZWxlY3QgdmVjdG9yIG1vZGUuIFNvIG1heWJlIEkgbWlzcw0KPiA+PiBzb21ldGhp bmcgPw0KPiA+DQo+ID4gT3JpZ2luYWxseSwgdGhlIHZlY3RvciBwYXRoIHdvdWxkIG5vdCBiZSBz ZWxlY3RlZCBhZnRlciBjb25maWd1cmluZw0KPiA+IG91dGVyIGNoZWNrc3VtIG9mZmxvYWQsIGJ1 dCBpdCB3aWxsIGJlIHNlbGVjdGVkIGFmdGVyIHJlbW92aW5nIHRoZSB0d28gZmxhZ3MuDQo+ID4g QnV0IHRoZSB2ZWN0b3IgcGF0aCBkb2Vzbid0IHN1cHBvcnQgb3V0ZXIgY2hlY2tzdW0gb2ZmbG9h ZCBvbiBzdGFibGUgRFBESywNCj4gc28gdGhlcmUgd2lsbCBiZSBhIHByb2JsZW0uDQo+ID4NCj4g PiBUaGUga2V5IGlzc3VlIGlzIHRoYXQgdGhlc2UgdHdvIGZsYWdzIGFyZSByZW1vdmVkLA0KPiA+ IFJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNDQo+ID4gYW5kIFJURV9FVEhfVFhf T0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0uDQo+ID4NCj4gDQo+IG9rLCBpIGdvdCBpdCBub3cuIElu IHRoZSBtYWluIGJyYW5jaCAoY2EzNDYyN2JlNWQ2KSBhbmQgdGhlIDIxLjExIGJhY2twb3J0DQo+ ICgzZWI0YWQ4ZWQ2OTQpIHRob3NlIGZsYWdzIGFyZSBub3QgcmVtb3ZlZC4gVGhvc2UgZmxhZ3Mg YXJlIG9ubHkgcmVtb3ZlZCBpbg0KPiB0aGUgMjIuMTEgYnJhbmNoICg5YjcyMTVmMTUwZDApLg0K PiANCj4gU28gdGhpcyBpcyBub3QgYW4gaXNzdWUgZm9yIDIxLjExLiBUaGFua3MgZm9yIGhlbHBp bmcgY2xlYXIgaXQgdXAuDQoNCkhpIEd1eXMsIHRoYW5rcyBmb3IgdGhlIGNsYXJpZmljYXRpb24s IHRoZSBwYXRjaCBoYXMgYmVlbiByZXZlcnRlZCBpbiAyMi4xMSBjYW5kaWRhdGUgYnJhbmNoLg0K DQpUaGFua3MsDQpYdWVtaW5nDQoNCj4gDQo+IEtldmluLg0KPiANCj4gPiBSZWdhcmRzDQo+ID4g WmhpY2hhbw0KPiA+DQo+ID4+Pg0KPiA+Pj4+IFllcywgd2UgY2FuIHJldmVydCB0aGlzIGNvbW1p dCBmb3IgMjEuMTEuNiByZWxlYXNlLCB0aGFua3MuDQo+ID4+Pj4NCj4gPj4+PiBSZWdhcmRzDQo+ ID4+Pj4gWmhpY2hhbw0KPiA+Pj4+DQo+ID4+Pj4+IHRoYW5rcywNCj4gPj4+Pj4gS2V2aW4uDQo+ ID4+Pj4+DQo+ID4+Pj4+Pj4gICAgICAgIGNvbW1pdCA5YjcyMTVmMTUwZDBiZmM1Y2IwMGZjZTY4 ZmYwOGU1MjE3YzdmMmIzIG9uDQo+ID4+IHYyMi4xMS4zLQ0KPiA+Pj4+PiByYzEuDQo+ID4+Pj4+ Pj4gICAgICAgIFRoaXMgY29tbWl0IGlzIGZvciB0aGUgbmV3IGZlYXR1cmUgKGF2eDUxMiBjaGVj a3N1bQ0KPiA+Pj4+Pj4+IG9mZmxvYWQpIGluIERQREsNCj4gPj4+Pj4gMjMuMDMsIHdoaWNoIHNo b3VsZCBub3QgYmUgYmFja3BvcnRlZCB0byB0aGUgTFRTIHZlcnNpb24gc2luY2UNCj4gPj4+Pj4g YXZ4NTEyIGNoZWNrc3VtIG9mZmxvYWQgaXMgbm90IHN1cHBvcnRlZCBpbiB2MjIuMTEuMyBMVFMu DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBUaGFua3MgZm9yIGZsYWdnaW5nIFh1ZW1p bmcuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gVGhlIGlzc3VlIGlzIHRoYXQgaXQgd2FzIGxpc3RlZCBh cyBmaXhpbmcgMDU5ZjE4YWUyYWVjICgibmV0L2lhdmY6DQo+ID4+Pj4+PiBhZGQgb2ZmbG9hZCBw YXRoIGZvciBUeCBBVlg1MTIiKSB3aGljaCBnb2VzIGJhY2sgdG8gMjEuMDUuDQo+ID4+Pj4+Pg0K PiA+Pj4+Pj4gVGhpcyBjb3VsZCBoYXZlIGJlZW4gYXZvaWRlZCBpZiB0aGUgJ0ZpeGVzOicgdGFn IHdhcyBjb3JyZWN0LCBvcg0KPiA+Pj4+Pj4gaWYgdGhlIGF1dGhvcnMgcmVwbGllZCB0byB0aGUg ZW1haWwgYWJvdXQgcXVldWVkIGJhY2twb3J0cyA6Lw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFJlcXVl c3RpbmcgaWF2Zi9uZXh0LW5ldC1pbnRlbCBtYWludGFpbmVycyB0byBjaGVjayBGaXhlczogdGFn cw0KPiA+Pj4+Pj4gYXJlIGNvcnJlY3QgYmVmb3JlIG1lcmdpbmcuDQo+ID4+Pj4+Pg0KPiA+Pj4+ Pj4gRFBESyAyMS4xMS41IGlzIGFscmVhZHkgcmVsZWFzZWQgd2l0aCB0aGlzIHBhdGNoLiBBbnkg aWRlYSB3aHkgaXQNCj4gPj4+Pj4+IGRpZCBub3Qgc2hvdyB1cCBpbiB2YWxpZGF0aW9uIGZvciAy MS4xMS41ID8gSXMgaXQgYW4gaXNzdWUgZm9yIDIxLjExLjUgPw0KPiA+Pj4+Pj4gSG93IGNyaXRp Y2FsIGlzIGl0ID8NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBJIGNhbiByZXZlcnQgaXQgb24gdGhlIDIx LjExIGJyYW5jaCwgYnV0IGl0IHdpbGwgbmVlZCB0byB3YWl0DQo+ID4+Pj4+PiB1bnRpbA0KPiA+ Pj4+Pj4gMjEuMTEuNiBpbiBEZWNlbWJlciBiZWZvcmUgaXQgd2lsbCBiZSByZXZlcnRlZCBpbiBh IHJlbGVhc2VkIHZlcnNpb24uDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gdGhhbmtzLA0KPiA+Pj4+Pj4g S2V2aW4uDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4+IFJlZ2FyZHMsDQo+ID4+Pj4+Pj4gWHUsIEhhaWxp bg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+DQo+ID4+Pg0KPiA+DQoNCg==