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 A5481A0A02; Wed, 28 Apr 2021 01:17:45 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 20AB440F35; Wed, 28 Apr 2021 01:17:45 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00053.outbound.protection.outlook.com [40.107.0.53]) by mails.dpdk.org (Postfix) with ESMTP id 122AB40147 for ; Wed, 28 Apr 2021 01:17:44 +0200 (CEST) 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=Jw3iSpQEFhFAnqwSAgchf4Z0QeXyUsKyk97u34Hg55Q=; b=zscdZ47XesZYMKbfOEqpBCmqDARe+AT2Hwam/9LkJsjizYV5ZUeo9AuqC/vpOaAfak6/K70nqDkVXJABxuB7V/KCTN/B99Mrw+af/aQyadO/kO7EntWxFk5qk16hAIlzp4ZyLauGjQLiXnJ0KL5dM3wJ+cnS2paokGDvXa9mlPU= Received: from AM6P193CA0063.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::40) by PAXPR08MB6510.eurprd08.prod.outlook.com (2603:10a6:102:158::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.20; Tue, 27 Apr 2021 23:17:40 +0000 Received: from VE1EUR03FT051.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:8e:cafe::ee) by AM6P193CA0063.outlook.office365.com (2603:10a6:209:8e::40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.27 via Frontend Transport; Tue, 27 Apr 2021 23:17:40 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=pass 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 VE1EUR03FT051.mail.protection.outlook.com (10.152.19.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Tue, 27 Apr 2021 23:17:39 +0000 Received: ("Tessian outbound 9bcb3c8d6cb1:v90"); Tue, 27 Apr 2021 23:17:39 +0000 X-CR-MTA-TID: 64aa7808 Received: from fe98922e5f3e.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 76DA0050-80B0-4CE8-AFD8-C8732AB7F2D8.1; Tue, 27 Apr 2021 23:17:29 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id fe98922e5f3e.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 27 Apr 2021 23:17:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Wv+VVM6myF5yNyYIosMcFoWDDV4JVb3Tq/wrj0nyvAsxhaQC2GlCo0GXv+eXVTyqh4xwZ9JGY6MxyRXy5HTRD3usPGz8HdaIgxDFZ9lhSVxhDq493poHpevbI8jJgR0juhS1REUbJf/sDQGAk6gSV93ErIUAhJ8hedZL5LARL9qEBdVl9nwfLxQ/CiAEYo6K47TCZHXULibUc4Gv58ZJWMVw5m2UsA89+W3qlskf69fhBZLpaMkR7BQP8SDXXE/4rSfq2bm34Lpfhk+Zh9/bzDzfXa9yUp/nj4NzZgYhYfY+e4Yd6Yc9qqmcHFHZWhzJLxfz+2oPiTuTPJHpXUMnqA== 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=Jw3iSpQEFhFAnqwSAgchf4Z0QeXyUsKyk97u34Hg55Q=; b=eW8LE/jllPzhGwYHFIX9liJaIwkNxOB65wplm7ZG3ce+Eaks50cK98EiV+NQqc1eRJkbLj5qqRpRHFlcJIMcwFWjYpVugaQSdgiMiPO8O2HEGWssDtjQWs4P2T0Oao9WxXdqfddzNRBGSWzZktzxn6U7QmV8zp2Y6Wi6iyyPZ9SbfefQUD5KNCsAi7SGJ6cEFDY5ZufyL6fnePYf68Z+OB33UPyAIcRoBA6mVcF0Xo81ZdJgtVrhVGiWgQGKwJiNIsWUlnaBD561VyBW2Q8IT7z3iDEcoMbdXUDV2wxIrqosWBOfio9VOQ0jJElx5/g1NOZRVkYxwwzcPJ6Yo/Huww== 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=Jw3iSpQEFhFAnqwSAgchf4Z0QeXyUsKyk97u34Hg55Q=; b=zscdZ47XesZYMKbfOEqpBCmqDARe+AT2Hwam/9LkJsjizYV5ZUeo9AuqC/vpOaAfak6/K70nqDkVXJABxuB7V/KCTN/B99Mrw+af/aQyadO/kO7EntWxFk5qk16hAIlzp4ZyLauGjQLiXnJ0KL5dM3wJ+cnS2paokGDvXa9mlPU= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by DB8PR08MB4026.eurprd08.prod.outlook.com (2603:10a6:10:aa::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.22; Tue, 27 Apr 2021 23:17:25 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::2994:a01e:2de:f94e]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::2994:a01e:2de:f94e%7]) with mapi id 15.20.4065.027; Tue, 27 Apr 2021 23:17:25 +0000 From: Honnappa Nagarahalli To: "Ananyev, Konstantin" , "Yigit, Ferruh" , Stephen Hemminger , Jerin Jacob CC: Kathleen Capella , "thomas@monjalon.net" , "dev@dpdk.org" , Dharmik Thakkar , Ruifeng Wang , "david.marchand@redhat.com" , "Richardson, Bruce" , "jerinj@marvell.com" , "hemant.agrawal@nxp.com" , Stephen Hemminger , nd , Honnappa Nagarahalli , nd Thread-Topic: [dpdk-dev] L3fwd mode in testpmd Thread-Index: AdcV2H0Bhkmz7z6QTBeC8FixZy3dngAaQ6AAABIFuOAAAQNCAAAAQNqgA/efEhAAAYi7gAAF6HhgAAl7GoAEe3+OoAB4fPWAABDYiwAABc478AAb06kAAAAT1EAAG+pgEA== Date: Tue, 27 Apr 2021 23:17:24 +0000 Message-ID: References: <2273212.ItJIoklBD0@thomas> <20210426104720.2b892045@hermes.local> <81781e97-735c-f584-4148-ff07dedc5cb4@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 6701933956333642A7E97DF66FE00039.0 x-checkrecipientchecked: true Authentication-Results-Original: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [70.113.13.105] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: d24c523d-eaa4-4a4d-0d7f-08d909d2a707 x-ms-traffictypediagnostic: DB8PR08MB4026:|PAXPR08MB6510: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: UqkFNMcpl16UjtZKXTqJ2NJ5lc7mSeC4QSm2MNrxX4pFAMCTaqqjHvl7E3sPjC0AW8sJXSMTPVKcT6U6Y5VGD6uTUHY95CiEhkwHuYxmUr0coIPSaUpmueFdc79FJuDBoIsZW/VqE4Cl3KCXzV4Vu3fqtH5XtSIdCUA5OHKOi52hUjGVGvoCkaZYYgj6kIVlJXQlHNMNUET2iY5GhAEnxbHwisueBpmYb6rlA7QZ9T/6LEf7z8aN0gn69bH4Z1Hr0saLSD8zUPuvLMlJ8FI4H0RS2hPVvmzoZnirKpmU7I2GxCpzAyni7HYA7KH2PthT/RzUt5KfYKNEyfffNxPdS+y1gAjsWd+gHSzlfmoLm/asc3ZFDod3NzoSPqpXXTXLBJcIpkNhSwn1aIIIiDwMOzeYOpKCfBXSa0mQRiJAljIrTjbPZxbRMNYCxQjekiIemaGjcCjmY9Gwa5dHoVaGHWKKiQ4bSg6ZOwCTTJ6FiFnPMuVdaNHLZhwbbZA2X2dsjutuTytDe1bPMJvwxkyvGZqn7B8N77KixMIBZrOKKCmQAQKbJghlnHVns3FkyXNc0ofri+rIzbAzfdy+a37uinGBKjbEEaYBxBTr3z/30qvgwmB72HHQtiioRdLiVAHX8e0qSUPZmiX2VV2AFh7jrWj2xvUi6rpfCCqiG7V9zRz6d2N107yVNSwq5FD8SYY40/skFdCmVTUVwW34wCNt93ooipTk7wId1/g7bq7fCNo= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR08MB5814.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(366004)(346002)(39860400002)(396003)(136003)(966005)(9686003)(55016002)(86362001)(26005)(7416002)(186003)(478600001)(110136005)(4326008)(8676002)(64756008)(76116006)(66556008)(54906003)(71200400001)(83380400001)(5660300002)(8936002)(53546011)(38100700002)(66946007)(66446008)(33656002)(52536014)(2906002)(122000001)(66476007)(6506007)(316002)(7696005)(32563001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?YzVTQ2dxREd6Q3BKK25KOHpoN2wrVlpCUUtlOTZhK2JhV2laeU8xT1pudW9m?= =?utf-8?B?bTdXOXJKMWdPdjFPa2ZlOS9FRmFSblh3UFJwVHF4VVpZVVhSM0NHdFBiaXps?= =?utf-8?B?S051WUZ4ZWVSWkJEd2hxTjlZS0xKZDdmS2Y3OGUzUHhWTndHVmdIeVdSYlpt?= =?utf-8?B?TFJnaTk3NC9qekkvWWYwdHltelR1ang1c3V5ajQydzR1UHR0QjFCY3hONFRU?= =?utf-8?B?cy9uRmdMZ2IwMGU1RkZCaGhPaVRRTXZEdy9mb0V5OEc3UEw4b1NuMFViNFY2?= =?utf-8?B?YXJMaGJSZHU4NHB1ZW5NQmc3SDc0K0c3ZndycTNycmlqZGQvdldXUjBkdDRI?= =?utf-8?B?MXQraFRGbTB0bzE5UklvSWZuWWt1MjFORUNaSmlJSHJ6V1pPUUxtaTdhRVRs?= =?utf-8?B?NU00R0JIRURmTDYyWWUyK2syQzB5eTJVZnlnRi9wOExPd0tXREZ5cFFhRDVn?= =?utf-8?B?bjZLb1Bnemp6NjRtME1ubXVER1phQWFjdVkrc1ZoV2s3dlk5OXVLYmg1YUxw?= =?utf-8?B?VENNM1pjcjdtbTcwR3hjWU9JV25IUDROc0t4dXRrdmYya05Tc28vU1IvWk1y?= =?utf-8?B?Y1o3RDlTeVlhYndIQUVJcUVHRllJbFUzdnZXaW80bkphTU9xZlUvNGJiL0NS?= =?utf-8?B?WVVGZ2lqZWh4TTRMS1d0TzQwNy94aHJ5d1gxZU9xVXFBT3lvVUZnOUhIdVUv?= =?utf-8?B?OUFqRVQ2eHRUQitBTmhBNE5RRW9xUjdOR0JlSzNhbGlmQktVak9mVThEZlU1?= =?utf-8?B?MTdFSmJnditBam8zVG9BS0dGdDBnTGNXR2FoZHI3a1RGSDF0TVFSWExEcm9o?= =?utf-8?B?c2E4ODk1bURZOEdmWEJ0S3d4VFNTOTAzZ3RyNWEzS0ZRZ3RBdkpzbFRUdGd0?= =?utf-8?B?Rjk4b3F5cGVWcEtSalc2RUpMR2M0ajVBejlEVnAxQmlEeGxVbDVmczVIWlFJ?= =?utf-8?B?WEwybnNwRmREWmJWVXpReUhJRElYU0V3dkZzUkgvT1NGNlVtY2R2eURrSkVC?= =?utf-8?B?ZEVnTHhmQmVKZkFvaDBKS3pDOEx0UmFhbDdFT3dEaHAzUFY0NUxWUXRwckoz?= =?utf-8?B?dDRCNkVnckVJVENRVGEvRWVNRTVYbmZjakhzb3ZWYWl0ajA1UHBZamwxYjl2?= =?utf-8?B?ckhRN0s4cWdUUjN6VXRvUUNPc1BOaVFpaXU5ZFVYMkovbkdtUnJxdzRpMHNt?= =?utf-8?B?MlpVckVyZFFTNjg1MUpwald6dHFrRkl2SVY2M2FVam02YWZlZXVtUHI3T05m?= =?utf-8?B?d2hWMFVqOEt1b3U4SXdZalA2V1A3UEdJdEdsRUtJamw0ajl0dlljc0lzVGZD?= =?utf-8?B?UHZIb29vTHdrejN1dTI0OFBWc0lQTHlFSGM4RjJrUlNUOUphSno3SmpsUmRp?= =?utf-8?B?bXVhd3poR2RGSUE0aTNzeXJKT3g3STRMazFwTy9mTzNiU0JIWWxwOFQwQUtR?= =?utf-8?B?UkxrZStUc2VCdzc4NElhQ2lwL3V2N29sS2pJUU5aTGtDdEpSWkM2KzNsYzdh?= =?utf-8?B?WXkrMXZ4OUF5SGw0bFRmeGZKQS9xYkM5Z0d5Z1p1ZjRxMFBHQnZYdnFwZHRF?= =?utf-8?B?S05hS3ZDcjBUV1JMUVVTb2ZlOUROcUIrbDVadXlJMnB3dG1TTGRPS3BSaGtJ?= =?utf-8?B?NU95VmNjd2w2bXVRZFI3YjdKL0I4ZEF3S1NFOW5qUmU3RzZvUmtOUGh4UFdP?= =?utf-8?B?dVdQNUhnR25MUVdad0tvYlh1R1Q0TDZDbmNiYnhDc2NNZ01NNjlTT0xyNXQx?= =?utf-8?Q?RIdsCM9ff2gTw0XrqQxwXo2WSSRfUS17Ng6v2lm?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB4026 Original-Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT051.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: f0b8a245-f253-408b-5aa5-08d909d29e39 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9BLwjwbLoipqoCQhkgDur4nXVtRCgu7cWAuScge+mwehc/zHL7uJzJwpf/vWe4xYjV8N7gfptX8bLqiLI14HXjradShPdobpcgNAQaPY0jXe1zStxMVTCtLIyr9ogmbOMCzmlK7wBvjDDsp9yRHqBKjnkQGh9dpLH+6MwJ1Bsof5FSykk1wH9zWrQRqpSnLYSStjFkjXiKGNv3lBIUwg1AOOcEKONVmDQORLVj2HHqPfu5w0NZ9h+k/KJN3f3EKGTfACdr+G6LDBSqLcCAAFIpw0KZuGfjXhV3VL15c8idRfPc1KQAKSFsHF5FebRoxZ8dgaKTV4hLHck31BaO/G1fC0nKKIjjHdZW7cuf80zoMsXtPLCmnUbKNy3nPuTtMiwrUxxCX2DE6AVDcFAmuqr+5J6Lz0j6+CXfTU6nNgnlHmlNg7j4/rIugScd36q2boi100yc6IShFQQkxanvNbgfaqR9xruxhqE5Et/UhlcNOol+LhKVI/PEivJVdoXO1Pb7ux8Nrv8MEEdiJUNGEpx+UIJdZ1BCTl85JsGCpN0MACwiHBcHm9T+aLFg3MIs37kZqZ7lhzM22ALHDmY7/vuYoZQBUOenxoRrM1kbtQ4X6m61i5/4QrhWj4W1233eu5xxLGNziFaNHjoudWPVB4FWGae7IHWDEXkxR4KbdwgIuzV5oRkPwxrUZ2KoxxWYruS3yUN6gpQSEjlQS1FG2DoKGGvTzOfJUTISAkZlKJmodlbJhV+cdarh80OPtzFzL3sjAkX+Xe46ObdUoa2vR4kue0IG70+RMeOn+pQHMTTR4= 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; SFS:(4636009)(39860400002)(136003)(376002)(396003)(346002)(36840700001)(46966006)(5660300002)(356005)(70206006)(33656002)(70586007)(83380400001)(86362001)(82740400003)(336012)(6506007)(110136005)(55016002)(8936002)(8676002)(2906002)(54906003)(4326008)(52536014)(82310400003)(186003)(316002)(9686003)(53546011)(966005)(478600001)(34020700004)(36860700001)(81166007)(47076005)(26005)(7696005)(32563001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Apr 2021 23:17:39.7996 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d24c523d-eaa4-4a4d-0d7f-08d909d2a707 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-AuthSource: VE1EUR03FT051.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6510 Subject: Re: [dpdk-dev] L3fwd mode in testpmd 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 Sender: "dev" PHNuaXA+DQoNCj4gPiA+Pj4+Pj4+Pj4+Pj4gT24gVGh1LCBNYXIgMTEsIDIwMjEgYXQgMTI6MDEg QU0gSG9ubmFwcGEgTmFnYXJhaGFsbGkNCj4gPiA+Pj4+Pj4+Pj4+Pj4gPEhvbm5hcHBhLk5hZ2Fy YWhhbGxpQGFybS5jb20+IHdyb3RlOg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+ Pj4+IEhlbGxvLA0KPiA+ID4+Pj4+Pj4+Pj4+Pj4gICAgICAgICBQZXJmb3JtYW5jZSBvZiBMM2Z3 ZCBleGFtcGxlIGFwcGxpY2F0aW9uIGlzIG9uZQ0KPiA+ID4+Pj4+Pj4+Pj4+Pj4gb2YgdGhlIGtl eQ0KPiA+ID4+Pj4+Pj4+Pj4+PiBiZW5jaG1hcmtzIGluIERQREsuIEhvd2V2ZXIsIHRoZSBhcHBs aWNhdGlvbiBkb2VzIG5vdA0KPiA+ID4+Pj4+Pj4+Pj4+PiBoYXZlIG1hbnkgZGVidWdnaW5nIHN0 YXRpc3RpY3MgdG8gdW5kZXJzdGFuZCB0aGUNCj4gPiA+Pj4+Pj4+Pj4+Pj4gcGVyZm9ybWFuY2Ug aXNzdWVzLiBXZSBoYXZlIGFkZGVkIEwzZndkIGFzIGFub3RoZXINCj4gPiA+Pj4+Pj4+Pj4+Pj4g bW9kZS9zdHJlYW0gdG8gdGVzdHBtZCB3aGljaCBwcm92aWRlcw0KPiA+ID4+Pj4+Pj4+Pj4gZW5v dWdoDQo+ID4gPj4+Pj4+Pj4+Pj4+IHN0YXRpc3RpY3MgYXQgdmFyaW91cyBsZXZlbHMuIFRoaXMg aGFzIGFsbG93ZWQgdXMgdG8NCj4gPiA+Pj4+Pj4+Pj4+Pj4gZGVidWcgdGhlIHBlcmZvcm1hbmNl IGlzc3VlcyBlZmZlY3RpdmVseS4NCj4gPiA+Pj4+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+ PiBUaGVyZSBpcyBtb3JlIHdvcmsgdG8gYmUgZG9uZSB0byBnZXQgaXQgdG8gdXBzdHJlYW1hYmxl DQo+ID4gPj4+Pj4+Pj4+Pj4+PiBzdGF0ZS4gSSBhbQ0KPiA+ID4+Pj4+Pj4+Pj4+PiB3b25kZXJp bmcgaWYgc3VjaCBhIHBhdGNoIGlzIGhlbHBmdWwgZm9yIG90aGVycyBhbmQgaWYNCj4gPiA+Pj4+ Pj4+Pj4+Pj4gdGhlIGNvbW11bml0eSB3b3VsZCBiZSBpbnRlcmVzdGVkIGluIHRha2luZyBhIGxv b2suDQo+ID4gPj4+Pj4+Pj4+Pj4+IFBsZWFzZSBsZXQgbWUga25vdw0KPiA+ID4+Pj4+Pj4+PiB3 aGF0IHlvdSB0aGluay4NCj4gPiA+Pj4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4+Pj4gV2UgYXJl IHVzaW5nIGFwcC9wcm9jLWluZm8vIHRvIGF0dGFjaCBhbmQgYW5hbHl6ZSB0aGUNCj4gPiA+Pj4+ PiBwZXJmb3JtYW5jZS4NCj4gPiA+Pj4+Pj4+Pj4+Pj4gVGhhdCBoZWxwcyB0byBhbmFseXplIHRo ZSB1bm1vZGlmaWVkIGFwcGxpY2F0aW9uLiBJDQo+ID4gPj4+Pj4+Pj4+Pj4+IHRoaW5rLCBpZiBz b21ldGhpbmcgaXMgbWlzc2luZyBpbiBwcm9jLWluZm8gYXBwLCBpbiBteQ0KPiA+ID4+Pj4+Pj4+ Pj4+PiBvcGluaW9uIGl0IGlzIGJldHRlciB0byBlbmhhbmNlIHByb2MtaW5mbyBzbyB0aGF0IGl0 IGNhbg0KPiA+ID4+Pj4+Pj4+Pj4+PiBoZWxwIG90aGVyIHRoaXJkLXBhcnR5DQo+ID4gPj4+Pj4+ PiBhcHBsaWNhdGlvbnMuDQo+ID4gPj4+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+IEp1c3Qg bXkgMmMuDQo+ID4gPj4+Pj4+Pj4+Pj4gVGhhbmtzIEplcmluLiBXZSB3aWxsIGV4cGxvcmUgdGhh dC4NCj4gPiA+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+PiBJIGFncmVlIGl0IGlzIGRhbmdlcm91 cyB0byByZWx5IHRvbyBtdWNoIG9uIHRlc3RwbWQgZm9yDQo+ID4gPj4gZXZlcnl0aGluZy4NCj4g PiA+Pj4+Pj4+Pj4+IFBsZWFzZSB0ZWxsIHVzIHdoYXQgaW4gdGVzdHBtZCBjb3VsZCBiZSB1c2Vm dWwgb3V0IG9mIGl0Lg0KPiA+ID4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4gVGhpbmdzIHRoYXQg YXJlIHZlcnkgaGVscGZ1bCBpbiB0ZXN0cG1kIGFyZTogMSkgSFcNCj4gPiA+Pj4+Pj4+Pj4gc3Rh dGlzdGljcyBmcm9tIHRoZSBOSUMgMikgRm9yd2FyZGluZyBzdGF0cyAzKSBCdXJzdCBzdGF0cw0K PiA+ID4+Pj4+Pj4+PiAoaW5kaWNhdGlvbiBvZiBoZWFkcm9vbQ0KPiA+ID4+Pj4+Pj4+PiBhdmFp bGFiaWxpdHkpIDQpIEVhc3kgdG8gc2V0IHBhcmFtZXRlcnMgbGlrZSBSWCBhbmQgVFggcXVldWUN Cj4gPiA+Pj4+Pj4+Pj4gZGVwdGhzIChhbW9uZyBvdGhlcnMpIHdpdGhvdXQgaGF2aW5nIHRvIHJl Y29tcGlsZS4NCj4gPiA+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+IFtLYXRobGVlbiBDYXBlbGxhXQ0K PiA+ID4+Pj4+Pj4+IFRoYW5rIHlvdSBmb3IgdGhlIHN1Z2dlc3Rpb24gb2YgYXBwL3Byb2MtaW5m by4gSSd2ZSB0cmllZCBpdA0KPiA+ID4+Pj4+Pj4+IG91dCB3aXRoIGwzZndkIGFuZCBzZWUgdGhh dCBpdCBkb2VzIGhhdmUgdGhlIEhXIHN0YXRzIGZyb20NCj4gPiA+Pj4+Pj4+PiB0aGUgTklDIGFu ZCB0aGUgZm9yd2FyZGluZw0KPiA+ID4+Pj4+Pj4gc3RhdHMuDQo+ID4gPj4+Pj4+Pj4gSG93ZXZl ciwgaXQgZG9lcyBub3QgaGF2ZSB0aGUgYnVyc3Qgc3RhdHMgdGVzdHBtZCBvZmZlcnMsIG5vcg0K PiA+ID4+Pj4+Pj4+IHRoZQ0KPiA+ID4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+IE9uZSBvcHRpb24gdG8g c2VlIHN1Y2ggIGxldmVsIG9mIGRlYnVnZ2luZyB3b3VsZCBiZSB0byBoYXZlDQo+ID4gPj4+Pj4+ PiAtIENyZWF0ZSBhIG1lbXpvbmUgaW4gdGhlIHByaW1hcnkgcHJvY2Vzcw0KPiA+ID4+Pj4+Pj4g LSBBcHBsaWNhdGlvbiB1bmRlciB0ZXN0IGNhbiB1cGRhdGUgdGhlIHN0YXRzIGluIG1lbXpvbmUg YmFzZWQNCj4gPiA+Pj4+Pj4+IG9uIHRoZSBjb2RlIGZsb3cNCj4gPiA+Pj4+Pj4+IC0gcHJvYy1p bmZvIGNhbiByZWFkIHRoZSBjb3VudGVycyB1cGRhdGVkIGJ5IGFwcGxpY2F0aW9uIHVuZGVyDQo+ ID4gPj4+Pj4+PiB0ZXN0IHVzaW5nIHRoZSBtZW16b25lIG9iamVjdCBnb3QgdGhyb3VnaA0KPiA+ ID4+IHJ0ZV9tZW16b25lX2xvb2t1cCgpDQo+ID4gPj4+Pj4+IEFncmVlZC4gQ3VycmVudGx5LCB1 c2luZyBhcHAvcHJvYy1pbmZvIGRvZXMgbm90IHByb3ZpZGUgdGhpcw0KPiA+ID4+Pj4+PiBhYmls aXR5LiBXZQ0KPiA+ID4+Pj4+IGNhbm5vdCBhZGQgdGhpcyBjYXBhYmlsaXR5IHRvIGFwcC9wcm9j LWluZm8gYXMgdGhlc2Ugc3RhdHMgd291bGQNCj4gPiA+Pj4+PiBiZSBzcGVjaWZpYyB0byBMM2Z3 ZCBhcHBsaWNhdGlvbi4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IEkgbWVhbnQgY3JlYXRpbmcgZ2Vu ZXJpYyBjb3VudGVyLXJlYWQvd3JpdGUgaW5mcmEgdmlhIG1lbXpvbmUgdG8NCj4gPiA+Pj4+PiBu b3QgbWFrZSBpdCBhcyBsM2Z3ZCBzcGVjaWZpYy4NCj4gPiA+Pj4+IEN1cnJlbnRseSwgYXBwL3By b2MtaW5mbyBpcyBhYmxlIHRvIHByaW50IHRoZSBzdGF0cyBhcyB0aGV5IGFyZQ0KPiA+ID4+Pj4g c3RhbmRhcmRpemVkDQo+ID4gPj4gdmlhIHRoZSBBUEkuIEJ1dCBmb3Igc3RhdGlzdGljcyB0aGF0 IGFyZSBnZW5lcmF0ZWQgaW4gdGhlDQo+ID4gPj4gYXBwbGljYXRpb24sIHRoZXkgYXJlIHZlcnkg c3BlY2lmaWMgdG8gdGhhdCBhcHBsaWNhdGlvbi4gRm9yIGV4Og0KPiA+ID4+IGJ1cnN0IHN0YXRz IGluIHRlc3RwbWQgYXJlIHZlcnkgc3BlY2lmaWMgdG8gaXQgYW5kIGFub3RoZXINCj4gPiA+PiBh cHBsaWNhdGlvbiBtaWdodCBpbXBsZW1lbnQgdGhlIHNhbWUgaW4gYSB2ZXJ5IGRpZmZlcmVudCBt YW5uZXIuDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gSW4gbmVlZHMgdG8gYmUgc29tZXRoaW5nIGxpa2Ug dGhlIGFwcC9wcm9jLWluZm8ganVzdCBuZWVkcyB0byBiZQ0KPiA+ID4+Pj4gYSBkdW1iDQo+ID4g Pj4gZGlzcGxheWluZyB1dGlsaXR5IGFuZCB0aGUgYXBwbGljYXRpb24gaGFzIHRvIGRvIGFsbCB0 aGUgaGVhdnkNCj4gPiA+PiBsaWZ0aW5nIG9mIGNvcHlpbmcgdGhlIGV4YWN0IGRpc3BsYXkgc3Ry aW5ncyB0byB0aGUgbWVtb3J5Lg0KPiA+ID4+Pg0KPiA+ID4+PiBZZXMuDQo+ID4gPj4+DQo+ID4g Pj4+Pg0KPiA+ID4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+IEFub3RoZXIgYXBwcm9hY2ggd2lsbCBiZSB1 c2luZyBydGVfdHJhY2UoKVsxXSBmb3INCj4gPiA+Pj4+Pj4+IGRlYnVnZ2luZy90cmFjaW5nIGJ5 IGFkZGluZyB0cmFjZXBvaW50cyBpbiBsM2Z3ZCBmb3Igc3VjaCBldmVudHMuDQo+ID4gPj4+Pj4+ PiBJdCBoYXMgYSB0aW1lc3RhbXAgYW5kIHRoZSB0cmFjZSBmb3JtYXQgaXMgb3BlbnNvdXJjZSB0 cmFjZQ0KPiA+ID4+Pj4+Pj4gZm9ybWF0KENURihDb21tb24gdHJhY2UgZm9ybWF0KSksIHNvIHRo YXQgd2UgY2FuIHVzZSBwb3N0DQo+ID4gPj4+Pj4+PiBwb3N0aW5nIHRvb2xzIHRvIGFuYWx5emUu DQo+ID4gPj4+Pj4+PiBbMV0NCj4gPiA+Pj4+Pj4+IGh0dHBzOi8vZG9jLmRwZGsub3JnL2d1aWRl cy9wcm9nX2d1aWRlL3RyYWNlX2xpYi5odG1sDQo+ID4gPj4+Pj4+IFRoaXMgaXMgZ29vZCBmb3Ig YW5hbHl6aW5nIGFuIGluY2lkZW50LiBJIHRoaW5rIGl0IGlzIGFuDQo+ID4gPj4+Pj4+IG92ZXJo ZWFkIGZvcg0KPiA+ID4+Pj4+IGRldmVsb3BtZW50IHB1cnBvc2VzLg0KPiA+ID4+Pj4+DQo+ID4g Pj4+Pj4gQ29uc2lkZXIgaWYgb25lIHdhbnRzIHRvIGFkZCBidXJzdCBzdGF0cywgb25lIGNhbiBh ZGQgc3RhdHMNCj4gPiA+Pj4+PiBpbmNyZW1lbnQgdW5kZXIgUlRFX1RSQUNFX1BPSU5UX0ZQLCBp dCB3aWxsIGJlIGVtaXR0ZWQNCj4gd2hlbmV2ZXINCj4gPiA+Pj4+PiBjb2RlIGZsb3cgdGhyb3Vn aCB0aGF0IHBhdGguIFNldCBvZiBldmVudHMgb2YgY2FuIGJlIHZpZXdlZCBpbg0KPiA+ID4+Pj4+ IHRyYWNlIHZpZXdlclsxXS4gV291bGQgdGhhdCBiZSBlbm91Z2g/DQo+ID4gPj4+Pj4gQWRkaW5n IHRyYWNlcyB0byBsM2Z3ZCBjYW4gYmUgdXBzdHJlYW1lZCBhcyBpdCBpcyB1c2VmdWwgZm9yDQo+ ID4gPj4+Pj4gb3RoZXJzIGZvciBkZWJ1Z2dpbmcuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBbMV0N Cj4gPiA+Pj4+PiBodHRwczovL2dpdGh1Yi5jb20vamVyaW5qYWNvYmsvc2hhcmUvYmxvYi9tYXN0 ZXIvZHBka190cmFjZS5KUEcNCj4gPiA+Pj4+IFRoaXMgbmVlZHMgcG9zdCBwcm9jZXNzaW5nIG9m IHRoZSB0cmFjZSBpbmZvIHRvIGRlcml2ZSB0aGUNCj4gPiA+Pj4+IGluZm9ybWF0aW9uLCBpcyBp dA0KPiA+ID4+IGNvcnJlY3Q/IEZvciBleDogZm9yIGJ1cnN0IHN0YXRzLCB0aGVyZSB3aWxsIGJl IHNldmVyYWwgdHJhY2VzDQo+ID4gPj4gZ2VuZXJhdGVkIGNvbGxlY3RpbmcgdGhlIG51bWJlciBv ZiBwYWNrZXRzIHJldHVybmVkIGJ5DQo+ID4gPj4gcnRlX2V0aF9yeF9idXJzdCB3aGljaCBuZWVk cyB0byBiZSBwb3N0IHByb2Nlc3NlZC4NCj4gPiA+Pj4NCj4gPiA+Pj4gT3IgWW91IGNhbiBoYXZl IGFuIGFkZGl0aW9uYWwgdmFyaWFibGUgdG8gYWNjdWxhdGUgaXQuDQo+ID4gPj4+DQo+ID4gPj4+ PiBBbHNvLCBhZGRpbmcgdHJhY2VzIGlzIGVxdWl2YWxlbnQgdG8gYWRkaW5nIHN0YXRpc3RpY3Mg aW4gTDNmd2QuDQo+ID4gPj4+DQo+ID4gPj4+IFllcy4NCj4gPiA+Pj4NCj4gPiA+Pj4gSWYgdGhl IHNvbGUgcHVycG9zZSBvbmx5IHN0YXRzIHRoZW4gaXQgaXMgYmV0dGVyIHRvIGFkZCBzdGF0dXMg aW4NCj4gPiA+Pj4gbDNmd2Qgd2l0aG91dCBwZXJmb3JtYW5jZSBpbXBhY3QuIEkgdGhvdWdodCBz b21lIHRoaW5nIGVsc2UuDQo+ID4gPj4+DQo+ID4gPj4+Pg0KPiA+ID4+Pj4+Pj4NCj4gPiA+Pj4+ Pj4+PiBhYmlsaXR5IHRvIGVhc2lseSBjaGFuZ2UgcGFyYW1ldGVycyB3aXRob3V0IGhhdmluZyB0 bw0KPiA+ID4+Pj4+Pj4+IHJlY29tcGlsZSwgd2hpY2ggaGVscHMgcmVkdWNlIGRlYnVnZ2luZyB0 aW1lIHNpZ25pZmljYW50bHkuDQo+ID4gPj4+PiBXZSB3aWxsIG5vdCBiZSBhYmxlIHRvIGZpeCB0 aGlzIGFib3ZlIGlzc3VlLg0KPiA+ID4+Pg0KPiA+ID4+PiBJdCBkZXBlbmRzIG9uIHdoYXQgeW91 IHdhbnQgdG8gZGVidWcuIFRyYWNlIGNhbiBiZSBkaXNhYmxlZCBhdA0KPiBydW50aW1lLg0KPiA+ ID4+DQo+ID4gPj4NCj4gPiA+PiBEUERLIGhhcyBleGlzdGluZyBBUEkncyBmb3IgYXBwbGljYXRp b24gbWV0cmljcyBidXQgdGhleSBhcmUgcmFyZWx5IHVzZWQuDQo+ID4gPj4NCj4gPiA+PiBXaHkg bm90IGltcGxlbWVudCBydGVfbWV0cmljcyBpbiBsM2Z3ZCBhbmQgcHJvYy1pbmZvPw0KPiA+ID4g VGhpcyBkaXNjdXNzaW9uIGhhcyBlbmRlZCB1cCBhcyBhIHN0YXRzIGRpc2N1c3Npb24uIEJ1dCwg d2UgYWxzbyBuZWVkIHRvDQo+IGJlIGFibGUgdG8gY2hhbmdlIHRoZSBjb25maWd1cmFibGUgcGFy YW1ldGVycyBlYXNpbHkuDQo+ID4gPiBJZiB3ZSBpbXBsZW1lbnQgdGhlIHN0YXRzIGFuZCBhYmls aXR5IHRvIGNoYW5nZSB0aGUgY29uZmlndXJhYmxlDQo+ID4gPiBwYXJhbWV0ZXJzLCB0aGVuIGl0 IGlzIGVzc2VudGlhbGx5IGJyaW5naW5nIGluIHNvbWUgb2YgdGhlDQo+ID4gPiBjYXBhYmlsaXRp ZXMgZnJvbQ0KPiA+IHRlc3RwbWQgdG8gdGhlIHNhbXBsZSBhcHBsaWNhdGlvbi4gSSB0aGluayB0 aGF0IHdpbGwgcmVzdWx0IGluIGxvdCBtb3JlIGNvZGUgaW4NCj4gdGhlIHNhbXBsZSBhcHBsaWNh dGlvbiBhbmQgd2lsbCBtYWtlIGl0IGNvbXBsaWNhdGVkLg0KPiA+ID4NCj4gPiA+IEluc3RlYWQg b3VyIHByb3Bvc2FsIGlzIHRvIHRha2UgTDNmd2QgdG8gdGVzdHBtZCBhbmQgdXNlIGFsbCB0aGUN Cj4gPiA+IGluZnJhIGNvZGUgdGhhdCB0ZXN0cG1kIHByb3ZpZGVzLiBXZSBzZWUgdGhhdCB0aGlz IGFwcHJvYWNoIHJlc3VsdHMNCj4gPiA+IGluIGxlc3MNCj4gPiBhbW91bnQgb2YgY29kZSBhZGRl ZCB0byBEUERLIG92ZXJhbGwuDQo+ID4gPg0KPiA+DQo+ID4gQWdyZWUgdGhhdCBpdCBtYXkgaGVs cCB0ZXN0aW5nIHRvIGhhdmUgbDNmd2Qgc3VwcG9ydCBvbiB0aGUgdGVzdHBtZC4NCj4gPg0KPiA+ IFR3byBjb25jZXJucywNCj4gPiAxKSBUZXN0cG1kIGFscmVhZHkgdG9vIGNvbXBsZXguDQo+ID4g MikgQ29kZSBkdXBsaWNhdGlvbi4NCj4gPg0KPiA+IEZvciAxKSwgaWYgdGhlIGwzZndkIGNhbiBi ZSBpbXBsZW1lbnRlZCBpbiB0ZXN0cG1kIGFzIG5ldywgaW5kZXBlbmRlbnQNCj4gPiBmb3J3YXJk aW5nIG1vZGUsIHdpdGhvdXQgdG91Y2hpbmcgcmVzdCBvZiB0aGUgdGVzdHBtZCwgSSB0aGluayBp dCBjYW4gYmUNCj4gT0suDQpZZXMsIHRoaXMgaXMgd2hhdCB3ZSBoYXZlIGRvbmUuIEl0IGlzIGEg bmV3IGZvcndhcmRpbmcgbW9kZS4NCldlIGNvdWxkIHJlbW92ZSBzb21lIGZvcndhcmRpbmcgbW9k ZXMgZnJvbSB0ZXN0cG1kLiBGb3IgZXg6IG1hY2Z3ZCwgbWFjc3dhcCBzZWVtIHZlcnkgc2ltaWxh ciB0byBpb2Z3ZCBtb2RlLg0KDQo+IA0KPiBJbiBmYWN0LCBsM2Z3ZCBpcyBhbHNvIHF1aXRlIGJp ZyBhbmQgY29tcGxleDoNCj4gJCB3YyAtbCBleGFtcGxlcy9sM2Z3ZC8qLltoLGNdIHxncmVwIHRv dGFsDQo+ICAgNjk2OSB0b3RhbA0KPiANCj4gUGx1cyBpdCB3aWxsIGludHJvZHVjZSBleHRyYSBk ZXBlbmRlbmNpZXMgKGZpYiwgbHBtLCBoYXNoLCBtaWdodC1iZSBhY2w/KSBJIGFtDQo+IG5vdCBz dXJlIGl0IGlzIGEgZ29vZCBpZGVhIHRvIHB1bGwgYWxsIHRoZXNlIGNvbXBsZXhpdGllcyBpbnRv IHRlc3QtcG1kLg0KSSBkbyBub3Qgc3VnZ2VzdCBwdWxsaW5nIGFsbCB0aGVzZSBpbi4gSW4gb3Vy IGNhc2UsIEkgc2VlIHRoYXQgdGhlIGFzayBpcyBvbmx5IG9uIExQTS4gSSBhbSBvcGVuIHRvIGhl YXJpbmcgd2hhdCBvdGhlcnMgc2VlIGFzIHRoZSByZXF1aXJlbWVudC4NCg0KPiBJIGNhbid0IGlt YWdpbmUgdGhhdCBsM2Z3ZCBhcHAgbmVlZCBhYmlsaXR5IHRvIGNvbmZpZ3VyZSBlYWNoIGFuZCBl dmVyeSBQTUQNCj4gcGFyYW1ldGVyLg0KPiBGcm9tIG15IGV4cGVyaWVuY2UgaW4gbDNmd2QgbW9z dCBvZiBjeWNsZXMgYXJlIHNwZW50IG5vdCBpbiBQTUQgaXRzZWxmLCBidXQNCj4gaW4gYWN0dWFs IHBhY2tldCBwcm9jZXNzaW5nOiBoZWFkZXIgcGFyc2luZyBhbmQgY2hlY2tpbmcsIGNsYXNzaWZp Y2F0aW9uLA0KPiByb3V0aW5nIHRhYmxlIGxvb2t1cCwgZXRjLg0KRHVyaW5nIG91ciB3b3JrLCB3 ZSBoYWQgdG8gZXhwZXJpbWVudCB3aXRoIGJ1cnN0IHNpemUsIHJ4L3R4IHF1ZXVlIGRlcHRocyBh bG9uZyB3aXRoIG90aGVyIFBNRCBzcGVjaWZpYyBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuIFRo ZSBwYWNrZXQgcHJvY2Vzc2luZyBjb2RlIHJlbWFpbnMgdGhlIHNhbWUgYW5kIHRoZXJlIGlzIG5v dCBtdWNoIHRvIG9wdGltaXplLg0KDQo+IA0KPiA+IE5vdCBzdXJlIGhvdyB0byBhZGRyZXNzIDIp LCBhbHNvIGxldHMgc2F5IHdlIHdhbnQgdG8gYWRkIG5ldyBmZWF0dXJlDQo+ID4gdG8gbDNmd2Qs IHdoZXJlIGl0IHNob3VsZCBnbywgdG8gdGhlIHNhbXBsZSBvciB0byB0aGUgdGVzdHBtZD8NCkwz ZndkIGV4YW1wbGUgd2lsbCByZW1haW4gYXMgdGhlIGV4YW1wbGUuIFdlIGhhdmUgdG8gZHVwbGlj YXRlIHRoZSBjb2RlIGludG8gdGVzdHBtZC4gSWYgTDNmd2QgZXhhbXBsZSBpcyBjaGFuZ2VkLCBp dCBuZWVkcyB0byBiZSBjaGFuZ2VkIGluIHRlc3RwbWQgYXMgd2VsbC4NCg==