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 6BF6E425FE; Tue, 19 Sep 2023 11:06:44 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0EBD5402DA; Tue, 19 Sep 2023 11:06:44 +0200 (CEST) Received: from egress-ip4a.ess.de.barracuda.com (egress-ip4a.ess.de.barracuda.com [18.184.203.227]) by mails.dpdk.org (Postfix) with ESMTP id D34644026E; Tue, 19 Sep 2023 11:06:42 +0200 (CEST) Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02lp2042.outbound.protection.outlook.com [104.47.11.42]) by mx-outbound13-255.eu-central-1a.ess.aws.cudaops.com (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 19 Sep 2023 09:06:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gF0ACQKNX3fwKJD95l8Fb0vlRZYJCtS6gHLfY5WMelYJAlLxCdJ9GDR2k+cXNmWnRRceU1M+E+EHk23RMDh7VdVoOXUlF/hWo3mdohUNjv7+AksllSMNc/NIwsXpYO6kBrv0eDquOE9YYBTgZ03TsPNwOHCnG4LZb7j1zJSVZVkV+jXKFvJymBVQmgqHO9nAlcbZ1UHLIb1waRJ6ieqRuSKiGQTMf5/HgBsQ/5Bcr3ZzSrEswIOPTR82Kpl+8L+9x6w9iZuHf/Jvt5CfPWZ7K3iQutZuvcJniNoZ7FBgAi9J58q3ohKk4s6YmvyaeAJvARzdrPS0MaRbL850U3YB9g== 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=dztaLtJdCIUksMDnnGYDGDNaZCWTucSQnU25S8gHie8=; b=KSIveu1Bi27kX7+0ttzyKSmBIUpd+0z6kMiPBwJktDfKWYySzIwTVqIJ9wrSJM9kXDEeCSzvqEi10+9+Ad+HyytuL1SvnBZ/fgtoSy2LPEmCA89RN5a1rb5uDlsUJ2AmjEMTAyPe0QENhDqQy+KBG0h7Cx5O/IavdTSarWSjRLZC865WjxD/i/UuwksVD6FKXXFts7LjC+l0rld9kYyQcYFqRjgQ76pVwW7jV2ICIFm0m8+qMck4OUAA/xfMcfLazAg1pDzQTh7ouTMqcyMcA/nJSbqmvc72o790sMHfvv9RqBz80FRXBgEwLZEzYibdsJ43g7PXyr/Ht4zYAGTF8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=napatech.com; dmarc=pass action=none header.from=napatech.com; dkim=pass header.d=napatech.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=napatech.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dztaLtJdCIUksMDnnGYDGDNaZCWTucSQnU25S8gHie8=; b=S1gV3tTy8J/MMYHZ07b2bjdCR5//DTXVBTMW90YDktDfsw3DAlyKVbz8+iGjQ60j13bylz5eCpsx5zQr+5xJDUKrcbpY4GlwIyQrnUjvEU1Id3V5jui37DqrmL3Xyx9wkRcMMyOoBG8QNstvOgJViEYsTqDsEaOBGe0ykHc4BY4= Received: from DB6P190MB0311.EURP190.PROD.OUTLOOK.COM (2603:10a6:6:33::14) by PAXP190MB1472.EURP190.PROD.OUTLOOK.COM (2603:10a6:102:1cd::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.27; Tue, 19 Sep 2023 09:06:32 +0000 Received: from DB6P190MB0311.EURP190.PROD.OUTLOOK.COM ([fe80::1aa0:771e:b45a:4f68]) by DB6P190MB0311.EURP190.PROD.OUTLOOK.COM ([fe80::1aa0:771e:b45a:4f68%7]) with mapi id 15.20.6792.024; Tue, 19 Sep 2023 09:06:32 +0000 From: Christian Koue Muf To: Ferruh Yigit , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , Mykola Kostenok , "dev@dpdk.org" CC: "thomas@monjalon.net" , "andrew.rybchenko@oktetlabs.ru" , "techboard@dpdk.org" Subject: RE: [PATCH v16 1/8] net/ntnic: initial commit which adds register defines Thread-Topic: [PATCH v16 1/8] net/ntnic: initial commit which adds register defines Thread-Index: AQHZ4m6M4hkP4lfmtUyUxxrNx5w/b7AcFPgAgAAthgCABB8BgIABbV4g Date: Tue, 19 Sep 2023 09:06:32 +0000 Message-ID: References: <20230816132552.2483752-1-mko-plv@napatech.com> <20230908160715.2498821-1-mko-plv@napatech.com> <684a4b8f-3cf5-49fd-a196-291132146b4d@amd.com> <98CBD80474FA8B44BF855DF32C47DC35D87BAF@smartserver.smartshare.dk> <2362c757-3cf7-4b4b-b507-402781d9a810@amd.com> In-Reply-To: <2362c757-3cf7-4b4b-b507-402781d9a810@amd.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=napatech.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DB6P190MB0311:EE_|PAXP190MB1472:EE_ x-ms-office365-filtering-correlation-id: 68387fb7-969f-48ef-c06e-08dbb8efb812 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hneStgiFUwv5Ct0MwqGYN9M+3G/RlfCcfXf6jwYFAe7uMdOFXqCWiMzPO0/HfihmofUBVirO+MbiJhCGkvz6rJr0O+/UI5QkGL9dKRPiSmjHlF01KIY/iaiZkvbY0JKtvk8Pi7jtCBlAdQQbcmVmCtosoDYGxuUhzfQjEPkfr2xv4icHluXHVQplB1EI8jtsqJSIYXSbweYoZCi6Cy0H/VHCRk/2NafMZEEM5T5nS9EYkMoRbuDM8WJC1HMwA71vzEscr6MaKaoafPKD6xKZ6YhLYqgEsFm8/8TDwRmda0u/1UR6MhQ7gLVIs92MmSDMrqTe2hFj9VhCM3fnw5/78piK6SepI8VMBmcU8zfczkL2/EdamTvSmZpbTQ/9D/hRilIlgb+XfmCrg1w6/v/sUFiTTDyMgdgA72VJVO/Pfaps3YD5ZTP+H8r3DbrI7hGmd4/4ASu/hV0M5axernt2685NBuWhz0LaEsPCA/tGtPdkdtmxP6EQKzVIeffGAkBSoF4q5QNRW3be7nXxyobZ2b486ee0KMSU10on9y0fr/zwEFTH1W4hkcOcHBCCaIZuK3s+vQeUBEx3emp1Hw6Z9CbyjZ7P4IvluCw54pzsrEg= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6P190MB0311.EURP190.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230031)(376002)(346002)(39840400004)(366004)(396003)(136003)(1800799009)(186009)(451199024)(316002)(4326008)(54906003)(450100002)(8936002)(8676002)(41300700001)(55016003)(26005)(83380400001)(9686003)(71200400001)(478600001)(7696005)(53546011)(966005)(6506007)(122000001)(86362001)(38070700005)(66574015)(38100700002)(33656002)(110136005)(76116006)(64756008)(66446008)(66476007)(66946007)(66556008)(30864003)(2906002)(52536014)(5660300002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Nkthd1FJcXJ5SHlBSkhLVVBXWDN0WStKOWVScjZwd2xUbmFvT3BDZURsZEpY?= =?utf-8?B?Sk54RC9TT2hOUDZuU3VrRnBwS1AvSnd3aERDanJjbmtmL1FMakkzL1lrOHFr?= =?utf-8?B?cTdkT0FQbk9KUUZKOUlySnRPNjRXd3dkSkdlZmh1Vm9XNzBpOVh6YnRZV245?= =?utf-8?B?L2RENzMzNDdPQTBUMEo4UHI2ZThVU1ArR04vOW5lNGFFODJQeFNvSjhQenVr?= =?utf-8?B?MjVCQ05tZkZmdW9IS1RVM0c4TmZ2cno1ZC9yVjJwY0VEeWJTTVlUZWxZZlNL?= =?utf-8?B?MDNZYXZpVlZwMGlaWGJBb1FNTkhlT3FiV3F0aE5nZWhOSml5c2ZjVDJiWkpZ?= =?utf-8?B?REowVXJiMUVsa3ZkMUpBejArRXdsMWhhNmNWOEJtNE8xL1FFSTJmeXhSeFJR?= =?utf-8?B?bSs1d3VlOFR3dTlRZDZnckI0OFM0LzNzK1ZZMlpyV0ZyVmRmM2dGblRVRjBz?= =?utf-8?B?aUFJZ2t3V2ZsRnkxaDJ5QS83RmdLbGhIbnFTWXp4TmlnUTJFM2x1N25GVVIr?= =?utf-8?B?SDh3WnUwbFN1NWwzNVpvV05Gb0duZFFyNWdsTjcvdDNnUjUyZ0o2R0p1c1NS?= =?utf-8?B?bzFWSXdoc3M0ek1hdTBjSTlYU1Vhd1BSZjhZVDJxRWdFbmtQMEM4N05HR1Vs?= =?utf-8?B?SWIyamJaMTFjLy9uc05YTWYyVXhqbGJTd1MyUW80TCtpVFpUSzMvQmhCUUVV?= =?utf-8?B?M1pqYXlsYTJCRUVhQ2Z2SXpFUkk3TkQ4MmJTUVBLeGd1NmVJQUc0bGhXRlB5?= =?utf-8?B?aUJSb3AyZXZsLzdyVUh5cE9YcE9PN0NLdzRHMCtkaFlpWjhQS2NubjA2RG4w?= =?utf-8?B?dFcwQzByVlgydm01aW4yZlNpY3ZLazRTQmxXR0IzdUlON2o3TDRaQk52WTJj?= =?utf-8?B?SEVXZndtdDF5ei81UjJ5VVN6SFR3NTdsQ1hwek5MRzJsTVRUUi9jcTcvVjVR?= =?utf-8?B?MjhDNmhqYm1rUlg5aFNsNzJXamNVbFhzbUt6dWJHczRSSTQrU2g4dGlHd0di?= =?utf-8?B?cFMvUEdoLzNmWi9zTnlUSXhsc3lmb3VWNVR3OWNiKzJzK2JJS0VXRmd3bmJZ?= =?utf-8?B?Q09mL2xRcVdYOHZJOUt5ekRhQ2RZY3FxYWpNRHB6eW1ZWm1RekVKWGpaemZm?= =?utf-8?B?QVh5OVVvNDVEZGdzWkljQm9nOGIwaXJtUU9uZUNJRkMzcE80R2V5czNzL01H?= =?utf-8?B?cFY4dmg4a0E1dFU3M3JXZkhhUlpmMHI3Q1FQREdzQTdpbzg4SjVQQVV1dVBr?= =?utf-8?B?ajlELytyeWZETnhvZThwd3VrcjdaUzlyN1l5c2VNZVF2NDlxU2h1RS8rZURS?= =?utf-8?B?OW4ySWh0L0tSV2ZFNVh0Nkd2eGZDUTVqOFoyNXhPSDFONlo0bllkZGlHWGEz?= =?utf-8?B?aDc3S3g5eTFiQ2I0ZGtaWXZhM05GdEkzOWg4WTJFSXRKbWx5dDZWNHpIOGVG?= =?utf-8?B?MWpyNERsWVBucG5zRU9JRmVEZ21scW96WjliSThLUFBFMG05VXdwY1l5cmxU?= =?utf-8?B?OXh6TmhNK2t5TjQ5elA2WlY5ZXpDNUJYV2RWRU9hU1JDOEs2UDFDTVdNRys4?= =?utf-8?B?UWUyb2VNWXc4MlYxdktzVXFxcGd0MzJ6dGllek9NaFpmY3JiZE01SHZvUXAv?= =?utf-8?B?a2UvcW14WmoxckhPUW8vU2MwZFBxeElJMWJPS1RER3Y2ZVd0YVB4anllQmZm?= =?utf-8?B?T2Z3cURWRjMvcTNFck5XR3liQldLcC9ZcDhaZEY0QU1od1JINzlzZWRJaWky?= =?utf-8?B?T1hseHlEUjV5QWQ3T0xaWUNGcHBVU21udjdISUxwMWlDak5SdEsvVXhPM2k1?= =?utf-8?B?b1FpQXFLNWxOcFRJUlAxeFQyZS9xUlBydTk1d1JiVTdKOXVzZnQ1RlBPcGNo?= =?utf-8?B?WDhFYXNIZmpNRzAzMnFYdGRhMU9uODY2WkFWczJ1aUEwTEpob2p1b0JmRDBz?= =?utf-8?B?ZmFMdDBUTjNvdVBNdDlCajhYSVFtY1hmTldsOGowODZmQ3lqRWFZZEt5MXVR?= =?utf-8?B?Vkp5cE1ZVnE0TWZMclNKSVBiOGE4K1pNbU5oRjBFdEVzc1pWekd4WWZVazFu?= =?utf-8?B?cVdZT2FCTzJDbVE4YnFWVTA1T1pEMlJRamZqSTFVcFl5WGdKSUg5MlFENStF?= =?utf-8?Q?cMPw=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: H7IjvCSUdYlYyefu5PmnxjB7dMJ3tevD/ZC1oFQ5Tt3PnHfehP6I7PBlMrzE96uZB4kIrr8KIrc1hRrW3AucCi2Qq88SP5RomfjpEdwCAfuDWQrvESaITcsVeBeleLdOocXTe48gOVHqH2tPFQ7KCE7DClnoyghWn9k4T5tXKL2g75ctrv5LxQHzBLUw53qEKmvn56+pGyBu17gzta/3WZZ8zQCn5JEgBJ4+27pDadiBlGG7YeIv5gO1Xp4I7zc5NlH5KFGueDuaWdpmMfRsmPExyhcgtYio9WDo6zCCwtMgBQPFOQGeOzLC9Br5wcoNafkBZ2noz+vG/pA4QP4iYosQ5yUBHmnHP9wLwrUjYd7ooEQFfYpAcpIU+J4Qsy2TRTm2n7wWJGPTneV9EMTUR3WhZPkz5FlS+OBtqWkDEDQxwpQBsUR2ORJ9BcNhQ2FWGYvRqkq1lMjARnLIrer5ao7IZtu+SGw/zrd/Lk9zkyemEN0+jrVFQecNLqpEH6IxCjisbOGIDg46DvUhGuVOhuJAFqMzJCKa/Puc/mKc0st5BrQxK4sFyzx7+OYJdCtS5LmmpVz027Q+y1uCWqZEUwDxX9iH5W5Dyvv67reXfHNMc8s2GyJ0BJ7NAsdLUamSW/C0HBgLpBYDv99rWauC9kvmodV8Q7YUok1Jb8yzXsEXvMg4pSnpXO6UW+fCovTJNCMkGbHVYrVUca3eibB7co2dXbdKoeOzq9nvWVyWdhEj1Pyhpf+R/nKswlVAvdhwaxd03qL0NHBR6zOhk19N4Z13xpkPN0C2fWG80yrrXfQ= X-OriginatorOrg: napatech.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB6P190MB0311.EURP190.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 68387fb7-969f-48ef-c06e-08dbb8efb812 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Sep 2023 09:06:32.7920 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c4540d0b-728a-4233-9da5-9ea30c7ec3ed X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Gd+kcfhE0F56Y5JmlFAKRFa6i3MAWMBs+gdmbt/8INz5ZrFYHl29OVUgbZXGiLZR6OkaJxzVUG+7TAqhCgMcKQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXP190MB1472 X-BESS-ID: 1695114401-303583-12330-13703-1 X-BESS-VER: 2019.1_20230913.1749 X-BESS-Apparent-Source-IP: 104.47.11.42 X-BESS-Parts: H4sIAAAAAAACA4uuVkqtKFGyUioBkjpK+cVKVoYGFqamQGYGUDTZONnM0tQi1S zJIDUpySw5xdDEJMUoycDQNNnQwsTCUqk2FgBcX1KGQgAAAA== X-BESS-Outbound-Spam-Score: 0.00 X-BESS-Outbound-Spam-Report: Code version 3.2, rules version 3.2.2.250931 [from cloudscan8-111.eu-central-1a.ess.aws.cudaops.com] Rule breakdown below pts rule name description ---- ---------------------- -------------------------------- 0.00 BSF_BESS_OUTBOUND META: BESS Outbound X-BESS-Outbound-Spam-Status: SCORE=0.00 using account:ESS113687 scores of KILL_LEVEL=7.0 tests=BSF_BESS_OUTBOUND X-BESS-BRTS-Status: 1 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 T24gOS8xOC8yMyAxMDozNCBBTSwgRmVycnVoIFlpZ2l0IHdyb3RlOg0KPk9uIDkvMTUvMjAyMyA3 OjM3IFBNLCBNb3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4+PiBGcm9tOiBGZXJydWggWWlnaXQgW21h aWx0bzpmZXJydWgueWlnaXRAYW1kLmNvbV0NCj4+PiBTZW50OiBGcmlkYXksIDE1IFNlcHRlbWJl ciAyMDIzIDE3LjU1DQo+Pj4NCj4+PiBPbiA5LzgvMjAyMyA1OjA3IFBNLCBNeWtvbGEgS29zdGVu b2sgd3JvdGU6DQo+Pj4+IEZyb206IENocmlzdGlhbiBLb3VlIE11ZiA8Y2ttQG5hcGF0ZWNoLmNv bT4NCj4+Pj4NCj4+Pj4gVGhlIE5UTklDIFBNRCBkb2VzIG5vdCByZWx5IG9uIGEga2VybmVsIHNw YWNlIE5hcGF0ZWNoIGRyaXZlciwgdGh1cyANCj4+Pj4gYWxsIGRlZmluZXMgcmVsYXRlZCB0byB0 aGUgcmVnaXN0ZXIgbGF5b3V0IGlzIHBhcnQgb2YgdGhlIFBNRCBjb2RlLCANCj4+Pj4gd2hpY2gg d2lsbCBiZSBhZGRlZCBpbiBsYXRlciBjb21taXRzLg0KPj4+Pg0KPj4+PiBTaWduZWQtb2ZmLWJ5 OiBDaHJpc3RpYW4gS291ZSBNdWYgPGNrbUBuYXBhdGVjaC5jb20+DQo+Pj4+IFJldmlld2VkLWJ5 OiBNeWtvbGEgS29zdGVub2sgPG1rby1wbHZAbmFwYXRlY2guY29tPg0KPj4+Pg0KPj4+DQo+Pj4g SGkgTXlrb2xhLCBDaHJpc3RpYW0sDQo+Pj4NCj4+PiBUaGlzIFBNRCBzY2FyZXMgbWUsIG92ZXJh bGwgaXQgaXMgYSBiaWcgZHJvcDoNCj4+PiAiMjQ5IGZpbGVzIGNoYW5nZWQsIDg3MTI4IGluc2Vy dGlvbnMoKykiDQo+Pj4NCj4+PiBJIHRoaW5rIGl0IGlzIG5vdCBwb3NzaWJsZSB0byByZXZpZXcg YWxsIGluIG9uZSByZWxlYXNlIGN5Y2xlLCBhbmQgaXQgDQo+Pj4gaXMgbm90IGV2ZW4gcG9zc2li bGUgdG8gc2F5IGlmIGFsbCBjb2RlIHVzZWQgb3Igbm90Lg0KPj4+DQo+Pj4gSSBjYW4gc2VlIGNv ZGUgaXMgYWxyZWFkeSBkZXZlbG9wZWQsIGFuZCBpdCBpcyBkaWZmaWN1bHQgdG8gDQo+Pj4gcmVz dHJ1Y3R1cmUgZGV2ZWxvcGVkIGNvZGUsIGJ1dCByZXN0cnVjdHVyZSBpdCBpbnRvIHNtYWxsIHBp ZWNlcyANCj4+PiByZWFsbHkgaGVscHMgZm9yIHJldmlld3MuDQo+Pj4NCj4+Pg0KPj4+IERyaXZl ciBzdXBwb3J0cyBnb29kIGxpc3Qgb2YgZmVhdHVyZXMsIGNhbiBpdCBiZSBwb3NzaWJsZSB0byAN Cj4+PiBkaXN0cmlidXRlIHVwc3RyZWFtIGVmZm9ydCBpbnRvIG11bHRpcGxlIHJlbGVhc2UuDQo+ Pj4gU3RhcnRpbmcgZnJvbSBiYXNpYyBmdW5jdGlvbmFsaXR5IGFuZCBhZGQgZmVhdHVyZXMgZ3Jh ZHVhbGx5Lg0KPj4+IFRhcmdldCBmb3IgdGhpcyByZWxlYXNlIGNhbiBiZSBwcm92aWRpbmcgZGF0 YXBhdGgsIGFuZCBhZGQgbW9yZSBpZiB3ZSANCj4+PiBoYXZlIHRpbWUgaW4gdGhlIHJlbGVhc2Us IHdoYXQgZG8geW91IHRoaW5rPw0KPj4+DQo+Pj4NCj4+PiBBbHNvIHRoZXJlIGFyZSBsYXJnZSBh bW91bnQgb2YgYmFzZSBjb2RlIChIQUwgLyBGUEdBIGNvZGUpLCBpbnN0ZWFkIA0KPj4+IG9mIGFk ZGluZyB0aGVtIGFzIGEgYnVsaywgcmVsZXZhbnQgb25lcyB3aXRoIGEgZmVhdHVyZSBjYW4gYmUg YWRkZWQgDQo+Pj4gd2l0aCB0aGUgZmVhdHVyZSBwYXRjaCwgdGhpcyBlbGltaW5hdGVzIGRlYWQg Y29kZSBpbiB0aGUgYmFzZSBjb2RlIA0KPj4+IGxheWVyLCBhbHNvIGhlbHBzIHVzZXIvcmV2aWV3 IHRvIHVuZGVyc3RhbmQgdGhlIGxpbmsgYmV0d2VlbiBkcml2ZXIgDQo+Pj4gY29kZSBhbmQgYmFz ZSBjb2RlLg0KPj4gDQo+PiBKdW1waW5nIGluIGhlcmUgd2l0aCBhbiBvcGluaW9uIGFib3V0IHdl bGNvbWluZyBuZXcgTklDIHZlbmRvcnMgdG8gdGhlIGNvbW11bml0eToNCj4+IA0KPj4gR2VuZXJh bGx5LCBpZiBhIE5JQyB2ZW5kb3Igc3VwcGxpZXMgYSBQTUQgZm9yIHRoZWlyIE5JQywgSSBleHBl Y3QgdGhlIHZlbmRvciB0byB0YWtlIHJlc3BvbnNpYmlsaXR5IGZvciB0aGUgcXVhbGl0eSBvZiB0 aGUgUE1ELCBpbmNsdWRpbmcgcHJvdmlkaW5nIGEgbWFpbnRhaW5lciBhbmQgc3VwcG9ydCBiYWNr cG9ydGluZyBvZiBmaXhlcyB0byB0aGUgUE1EIGluIExUUyByZWxlYXNlcy4gVGhpcyBzaG91bGQg YWxpZ24gd2l0aCB0aGUgdmVuZG9yJ3MgYnVzaW5lc3MgY2FzZSBmb3IgdXBzdHJlYW1pbmcgdGhl aXIgZHJpdmVyLg0KPj4gDQo+PiBJZiB0aGUgdmVuZG9yIHByb3ZpZGVzIG9uZSBiaWcgcGF0Y2gg c2VyaWVzLCB3aGljaCBtYXkgYmUgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQvcmV2aWV3LCB0aGUg ZmFsbG91dCBtYWlubHkgaGl0cyB0aGUgdmVuZG9yJ3MgY3VzdG9tZXJzIChhbmQgdGh1cyB0aGUg dmVuZG9yJ3Mgc3VwcG9ydCBvcmdhbml6YXRpb24pLCBub3QgdGhlIGNvbW11bml0eSBhcyBhIHdo b2xlLg0KPj4gDQo+DQo+SGkgTW9ydGVuLA0KPg0KPkkgd2FzIHRoaW5raW5nIHNhbWUgYmVmb3Jl IG1ha2luZyBteSBhYm92ZSBjb21tZW50LCB3aGF0IGhhcHBlbnMgaWYgdmVuZG9ycyBzdWJtaXQg YXMgb25lIGJpZyBwYXRjaCBhbmQgd2hlbiBhIHByb2JsZW0gb2NjdXJzIHdlIGNhbiBhc2sgb3du ZXIgdG8gZml4LiBQcm9iYWJseSB0aGlzIG1ha2VzIHZlbmRvciBoYXBweSBhbmQgbWFrZXMgbXkg bGlmZSAob3IgYW55IG90aGVyIG1haW50YWluZXIncyBsaWZlKSBlYXNpZXIsIGl0IGlzIGFsd2F5 cyBlYXNpZXIgdG8gc2F5IHllcy4NCj4NCj4NCj5CdXQgSSBjb21lIHVwIHdpdGggdHdvIG1haW4g cmVhc29ucyB0byBhc2sgZm9yIGEgcmV3b3JrOg0KPg0KPjEtIFRlY2huaWNhbGx5IGFueSB2ZW5k b3IgY2FuIGRlbGl2ZXIgdGhlaXIgc29mdHdhcmUgdG8gdGhlaXIgY3VzdG9tZXJzIHZpYSBhIHB1 YmxpYyBnaXQgcmVwb3NpdG9yeSwgdGhleSBkb24ndCBoYXZlIHRvIHVwc3RyZWFtIHRvIGh0dHBz Oi8vbGlua3Byb3RlY3QuY3VkYXN2Yy5jb20vdXJsP2E9aHR0cHMlM2ElMmYlMmZkcGRrLm9yZyZj PUUsMSxOcG9KZWp1dXZQZE9QZmNGSll0c21rUUY2UFZyRGpHc1o4eF9naTV4RHJUeVpva0tfbk0x MXU0WnB6SGdNMTBKOWJPTGxuaG9SNmZGQXpXdEN6T2hSQ3pWcnVZajUyMHpaT1J2Ni1NakplU0M1 VHJHbklGTCZ0eXBvPTEsDQo+YnV0IHVwc3RyZWFtaW5nIGhhcyBtYW55IGJlbmVmaXRzLg0KPg0K Pk9uZSBvZiB0aG9zZSBiZW5lZml0cyBpcyB1cHN0cmVhbWluZyBwcm92aWRlcyBhIHF1YWxpdHkg YXNzdXJhbmNlIGZvciB2ZW5kb3IncyBjdXN0b21lcnMgKHRoYXQgaXMgd2h5IGN1c3RvbWVyIGNh biBiZSBhc2tpbmcgZm9yIHRoaXMsIGFzIHdlIGFyZSBoYXZpbmcgaW4gbWFueSBjYXNlcyksIGFu ZCB0aGlzIHF1YWxpdHkgYXNzdXJhbmNlIGNvbWVzIGZyb20gYWRkaXRpb25hbCBleWVzIHJldmll d2luZyB0aGUgY29kZSBhbmQgZ3VpZGluZyB2ZW5kb3JzIGZvciB0aGUgRFBESyBxdWFsaXR5IHN0 YW5kYXJkcyAoc29tZSB2ZW5kb3JzIGFscmVhZHkgZG9pbmcgcHJldHR5IGdvb2QsIGJ1dCBuZXcg b25lcyBzb21ldGltZXMgcmVxdWlyZXMgaGFuZC1ob2xkaW5nKS4NCj4NCj5JZiBkcml2ZXIgaXMg b25lIGJpZyBwYXRjaCBzZXJpZXMsIGl0IGlzIHByYWN0aWNhbGx5IG5vdCBwb3NzaWJsZSB0byBy ZXZpZXcgaXQsIEkgY2FuIGNhdGNoIGEgZmV3IGJpdHMgaGVyZSBvciB0aGVyZSwgeW91IG1heSBz b21lIG90aGVycywgYnV0IHByYWN0aWNhbGx5IGl0IHdpbGwgYmUgbWVyZ2VkIHdpdGhvdXQgcmV2 aWV3LCBhbmQgd2Ugd2lsbCBmYWlsIG9uIG91ciBxdWFsaXR5IGFzc3VyYW5jZSB0YXNrLg0KPg0K PjItIE1ha2UgY29kZSBtb3JlIGFjY2Vzc2libGUgdG8gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLg0K Pg0KPldoZW4gaXQgaXMgYSBiaWcgcGF0Y2gsIGNvZGUgY2FuIGJlIGZ1bmN0aW9uYWwgYnV0IGxv dHMgb2YgZGV0YWlscywgcmVhc29uaW5nLCByZWxhdGlvbiBiZXR3ZWVuIGNvbXBvbmVudHMgZ2V0 cyBsb3N0LCB3aGljaCBtYWtlcyBpdCBldmVuIGhhcmRlciBmb3IgYW4gZXh0ZXJuYWwgZGV2ZWxv cGVyLCBsaWtlIG1lLCB0byB1bmRlcnN0YW5kIGl0IChJIGFtIGEgbWVyZSBndWluZWEgcGlnIGhl cmUgOikuDQo+DQo+SWYgYSBjdXN0b21lciB3b3VsZCBsaWtlIHRvIGFkZCBhIGZlYXR1cmUgdGhl bXNlbHZlcywgb3IgZml4IHNvbWV0aGluZywgZXZlbiBhZnRlciB2ZW5kb3Igbm8gbW9yZSB3b3Jr aW5nIG9uIHRoYXQgcHJvZHVjdCBhbnltb3JlLCBjdXN0b21lciBuZWVkcyB0byB1bmRlcnN0YW5k IHRoZSBjb2RlIG9yIHNvbWUgcmVhc29uaW5nIGluIHRoZSBjb2RlLg0KPk9yIGlmIHNvbWVvbmUg d2FudHMgdG8gYmFja3BvcnQgdGhlIGRyaXZlciB0byBydXN0LCBvciBhIERQREsgZGV2ZWxvcGVy IHdhbnRzIHRvIGRvIGEgcmV3b3JrIHRoYXQgcmVxdWlyZXMgdXBkYXRpbmcgYWxsIGRyaXZlcnMs IG9yIGEgdGVzdGVyIHdvdWxkIGxpa2UgdG8gYW5hbHl6ZSB0aGUgY29kZSB0byBmaWd1cmUgb3V0 IGJlaGF2aW9yIGRpZmZlcmVuY2Ugb2YgdGhlIGRldmljZXMuIEkgdGhpbmsgSSBoYXZlIHdpdG5l c3MgYWxsIGFib3ZlIGNhc2VzIGluIHJlYWwgbGlmZS4NCj4NCj5JZiBkcml2ZXIgaXMgc3BsaXQg aW50byBtb3JlIHBhdGNoZXMsIGl0IG1ha2VzIHBhdGNoIGVhc2llciB0byB1bmRlcnN0YW5kIHdo aWNoIG1ha2VzIGNvZGUgcHJhY3RpY2FsbHkgbW9yZSBhY2Nlc3NpYmxlIHRvIG90aGVyIGRldmVs b3BlcnMgdGhhdCBhcmUgbm90IGV4cGVydCBpbiBkcml2ZXIuDQo+DQo+DQo+T3ZlcmFsbCwgeWVz IHNwbGl0dGluZyBwYXRjaCB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB5ZXMgdGhpcyBpcyBh biBvdmVyaGVhZCBmb3IgYSBjb2RlIHRoYXQgaXMgYWxyZWFkeSBkZXZlbG9wZWQsIGJ1dCBJIHRo aW5rIGJlbmVmaXQgaXMgYmlnIHNvIGl0IHdvcnRoIGRvaW5nIHRoZSB0YXNrLg0KPg0KPg0KPj4g V2UsIHRoZSBjb21tdW5pdHksIHNob3VsZCBub3QgbWFrZSBpdCB0b28gZGlmZmljdWx0IGZvciB2 ZW5kb3JzIHRyeWluZyB0byB1cHN0cmVhbSB0aGVpciBkcml2ZXJzLiBJIGNlcnRhaW5seSBjb25z aWRlciBpdCB1bnJlYXNvbmFibGUgdG8gYXNrIGEgdmVuZG9yIHRvIHBvc3Rwb25lIHRoZSByZWxl YXNlIG9mIHNvbWUgZXhpc3RpbmcgZmVhdHVyZXMgYnkgZWZmZWN0aXZlbHkgYW4gZW50aXJlIHll YXIgKGNvbnNpZGVyaW5nIHRoYXQgb25seSBMVFMgcmVsZWFzZXMgYXJlIHJlbGV2YW50IGZvciBt b3N0IG9mIHVzKSBiZWNhdXNlIHdlIHdhbnQgdGhlIHZlbmRvciB0byByZWZhY3RvciB0aGUgcGF0 Y2ggc2VyaWVzIHRvIG1hdGNoIG91ciBwcmVmZXJlbmNlcyB3aXRoaW4gYW4gdW5yZWFsaXN0aWMg dGltZWZyYW1lLg0KPj4gDQo+DQo+QWdyZWUgdG8gbm90IG1ha2UgdXBzdHJlYW1pbmcgZGlmZmlj dWx0IGZvciBuZXcgdmVuZG9ycywgYW5kIGluZGVlZCB3ZSBhcmUgZW5jb3VyYWdpbmcgbW9yZSB2 ZW5kb3JzIHRvIGJlIHVwc3RyZWFtIHRoZWlyIGNvZGUsIHRoaXMgaXMgaW4gYmVzdCBpbnRlcmVz dCBvZiBib3RoIHNpZGVzLg0KPg0KPkRpc3RyaWJ1dGluZyB1cHN0cmVhbWluZyBlZmZvcnQgdG8g YSB5ZWFyIHdhcyBqdXN0IGEgc3VnZ2VzdGlvbiwgaXQgY2FuIGdvIGluIGVhcmxpZXIgYXMgaXQg aXMgYmVjb21lcyByZWFkeSBidXQgSSBjYW4gc2VlIGl0IHdpbGwgdGFrZSB0aW1lIHRvIHNwbGl0 IGRyaXZlciBpbnRvIGZlYXR1cmVzIGFuZCB1cHN0cmVhbSB0aGVtLg0KPg0KPkFzIEkgYW0gZnJv bSBhIHZlbmRvciB0b28sIEkgY2FuIHVuZGVyc3RhbmQgdGhlIHByb2R1Y3QvY3VzdG9tZXIgcHJl c3N1cmUsIGJ1dCBJIGhvcGUgdGhpcyBhcHByb2FjaCBjYW4gZW5jb3VyYWdlIHZlbmRvcnMgc3Rh cnQgdXBzdHJlYW1pbmcgZWFybHkgb3IgZXZlbiBiZXR0ZXIgdXBzdHJlYW0gYXMgdGhleSBkZXZl bG9wIHRoZSBjb2RlLg0KDQpIaSBGZXJydWgsDQoNCkZpcnN0IG9mIGFsbCwgdGhhbmsgeW91IGZv ciBzdGFydGluZyB0aGUgd29yayB0byByZXZpZXcgb3VyIGNvZGUuDQoNCkFzIE1vcnRlbiBzYWlk IE5hcGF0ZWNoIHBsYW5zIHRvIHRha2UgYWxsIHJlc3BvbnNpYmlsaXR5IGZvciB0aGUNCnF1YWxp dHkgb2YgdGhlIFBNRCBzb3VyY2UgY29kZS4gV2UgZXhwZWN0IHRvIHByb3ZpZGUgYWxsIGZpeGVz DQpuZWVkZWQgaW4gdGhlIGZ1dHVyZS4gSWYgZm9yIHNvbWUgcmVhc29uIE5hcGF0ZWNoIHN0b3Bz IG1haW50YWluaW5nDQp0aGUgY29kZSwgdGhlbiB3ZSBoYXZlIGJlZW4gaW5mb3JtZWQgdGhhdCB0 aGUgRFBESyBjb21tdW5pdHkNCm1pZ2h0IGRlbGV0ZSB0aGUgUE1EIGZyb20gdGhlIHJlcG9zaXRv cnksIGFuZCB3ZSB1bmRlcnN0YW5kIHRoYXQuDQoNCkluIHJlZ2FyZHMgdG8gc3BsaXR0aW5nIHRo ZSBjb2RlLCBJIGRvbid0IHNlZSB0aGlzIGEgZ29vZCBvcHRpb24uIFdoaWxlDQpJIG9mIGNhdXNl IGFncmVlIGl0IHdvdWxkIGJlIGVhc2llciB0byByZXZpZXcgYW5kIHVuZGVyc3RhbmQsIHRoZQ0K Y29kZSBzaG91bGQgYWxzbyByZXN1bHQgaW4gYSBtZWFuaW5nZnVsIHByb2R1Y3QuIE9mIHRoZSA4 N2sgbGluZXMNCm9mIGNvZGUsIDUzayBsaW5lcyBpcyBuZWVkZWQgdG8gc3RhcnQtdXAgdGhlIEZQ R0EgdG8gYSBzdGF0ZSB0aGUgaXQgaXMgcmVhZHkNCnRvIHJlY2VpdmUgdHJhZmZpYy4gQnV0IGF0 IHRoaXMgcG9pbnQgYWxsIHBhY2tldHMgd291bGQgc2ltcGx5IGJlIGRpc2NhcmRlZCwNCmFuZCB0 byBiZSBob25lc3QsIHRoZXJlIGFyZSBiZXR0ZXIgYW5kIGNoZWFwZXIgb3B0aW9ucyBvdXQgdGhl cmUsDQppZiBub3RoaW5nIG1vcmUgdGhhbiBiYXNpYyBmdW5jdGlvbmFsaXR5IGlzIG5lZWRlZC4g MzRrIGxpbmVzIGFyZQ0KdXNlZCB0byBzZXR1cCBmaWx0ZXJzIGJhc2VkIG9uIHJ0ZV9mbG93LiBU aGUgdGhpbmcgaXMsIHRoYXQgeW91IG5lZWQNCnRvIGluaXRpYWxpemUgYWxsIG1vZHVsZXMgaW4g dGhlIEZQR0EgVFgtIGFuZCBSWC1waXBlbGluZXMgd2l0aCB2YWxpZA0KZGF0YSwgZXZlbiBpZiB5 b3UgZG9uJ3QgbmVlZCB0aGUgZmVhdHVyZXMgdGhvc2UgbW9kdWxlcyBwcm92aWRlLg0KQXMgYSBy ZXN1bHQsIGlmIHlvdSBzcGxpdCB1cCB0aGUgMzRrIGxpbmVzLCB0aGVuIHRoZSBwcm9kdWN0IHdv dWxkIG5vdA0KYmUgZnVuY3Rpb25hbC4gT2YgY2F1c2Ugc29tZSBvZiB0aGUgdG9wIGxldmVsIGxv Z2ljIGNvdWxkIGJlIHNwbGl0IG91dCwNCmJ1dCBhdCB0aGlzIHBvaW50IHdlIGFyZSB0YWxraW5n IGFib3V0IHNwbGl0dGluZyA4N2sgbGluZXMgaW50byA4MGsgYW5kIDdrLA0Kd2hpY2ggSSBkb24n dCB0aGluayBpcyB3b3J0aCBpdC4NCg0KPj4+DQo+Pj4NCj4+PiBBcyBmYXIgYXMgSSB1bmRlcnN0 YW5kIGxhc3QgcGF0Y2ggb3BlbnMgYSBzb2NrZXQgaW50ZXJmYWNlIGFuZCBhbiANCj4+PiBleHRl cm5hbCBhcHBsaWNhdGlvbiBjYW4gc2VudCBjb250cm9sIGNvbW1hbmRzIHZpYSB0aGlzIGludGVy ZmFjZS4NCj4+PiBJIGFtIG5vdCBzdXJlIGFib3V0IHRoaXMgc2lkZSBjb250cm9sIGNoYW5uZWws IHdoYXQgaXMgbWlzc2luZyBpbiB0aGUgDQo+Pj4gRFBESyBBUEk/IENhbiB3ZSB0cnkgdG8gYWRk cmVzcyB0aGVtIGluIHRoZSBEUERLIGxheWVyIGluc3RlYWQgb2YgYSANCj4+PiBkcml2ZXIgc3Bl Y2lmaWMgc29sdXRpb24/DQo+PiANCj4+IFRoYXQgd291bGQgYmUgZ3JlYXQuDQo+PiANCj4+IEFG QUlLLCBvdGhlciB2ZW5kb3JzIGFsc28gaGFzIGEgYnVuY2ggb2Ygb3V0LW9mLWJhbmQgY29tbXVu aWNhdGlvbiwgDQo+PiBlLmcuIG1hZ2ljYWwgRUFMIHBhcmFtZXRlcnMgdG8gdGhlIE1MWCBkcml2 ZXJzLiBTbyBsZXQncyBub3QgYmUgdG9vIA0KPj4gaGFyZCBvbiB0aGUgbmV3Y29tZXJzLiA7LSkN Cj4+IA0KPg0KPkkgZGlkIHNvbWUgdGhpbmtpbmcgZm9yIHRoaXMgb25lIHRvbywNCj4NCj5BcyB3 ZSBhcmUgaW4gdXNlcnNwYWNlLCBpdCBpcyBlYXN5IHRvIGhhdmUgc2lkZSBjb250cm9sIGNoYW5u ZWwsIGFuZCB0aGlzIGNhbiBtYWtlIHVzZXJzIGxpZmUgZWFzeSwgc28gdGhpcyBpcyBhIHByYWN0 aWNhbCB0aGluZyB0byBkby4NCj4oSW5kZWVkIHRoZXJlIGFyZSBhbHJlYWR5IHNvbWUgd2F5cyB0 byBkbyB0aGlzLCB3aXRob3V0IFBNRCBleHBvc2luZyBhIHNvY2tldCBpbnRlcmZhY2UuKQ0KPg0K PkJ1dCB0aGlzIGFsc28gcmVkdWNlcyBlZmZvcnQgZGV2ZWxvcGVycyBwdXR0aW5nIG9uIERQREsg bGF5ZXIgc29sdXRpb24sIGJlY2F1c2UgaXQgaXMgYWx3YXlzIGVhc2llciB0byBhZGQgbW9yZSBz dXBwb3J0IHRvIHRoZSBkcml2ZXIgb25seS4NCj5BbmQgb3ZlcmFsbCB0aGlzIHJlZHVjZXMgcG9y dGFiaWxpdHkgb2YgdGhlIERQREsgYXBwbGljYXRpb24sIGVhY2ggYXBwbGljYXRpb24gYmVjb21l cyB1bmlxdWUgdG8gYSBkZXZpY2UgKFRoaXMgaXMgYSBiYWQgdGhpbmcsIGJ1dCBJIGFsc28gbmVl ZCBzb21lIGZlZWRiYWNrIGhvdyBiYWQgaXQgaXMgaW4gcmVhbCBsaWZlLikNCj4NCj5UbyBiYWxh bmNlIHRoaXMsIHdlIHNhaWQgaWYgYSBmZWF0dXJlIGlzIHRvbyBzcGVjaWZpYyB0byBhIGRldmlj ZSwgaXQgY2FuIGFkZCBkZXZpY2Ugc3BlY2lmaWMgQVBJIGFuZCB0aGlzIGlzIGJldHRlciB0aGFu IGRldmljZSBzcGVjaWZpYyBmZWF0dXJlcyBwb2xsdXRlIHRoZSBjb21tb24sIG1vc3QgdXNlZCBj b2RlLiBBbmQgcHVzaCBiYWNrIHRvIGludHJvZHVjZSBtb3JlIG5ldyBQTUQgc3BlY2lmaWMgQVBJ cyB1bmxlc3MgaXQgaXMgcmVhbGx5IG5lZWRlZC4NCj4NCj5CdXQgY3JlYXRpbmcgYSBzb2NrZXQg aW50ZXJmYWNlIGRpcmVjdGx5IGZyb20gdGhlIGRyaXZlciBpcyBtb3JlIHRoYW4gUE1EIHNwZWNp ZmljIEFQSS4gVGVjaG5pY2FsbHkgYXBwbGljYXRpb24gY29udHJvbCBpbnRlcmZhY2UgY2FuIHJl bHkgY29tcGxldGVseSB0byB0aGlzLiBFdmVuIHdlIGFzc3VtZSB0aGlzIGlzIG5vdCBmb3IgY29u dHJvbCwgYnV0IGp1c3QgZm9yIGRlYnVnLCBJIGNhbiBzZWUgaXQgY2FuIGJlIHVzZWZ1bCBmb3Ig ZGVidWcgYW5kIGFnYWluIHByYWN0aWNhbCB0aGluZyB0byBkbywgSSBhbSBzdGlsbCBub3Qgc3Vy ZSBob3cgbXVjaCBpdCBodXJ0cyBpZiBlYWNoIGRyaXZlciBoYXMgYSBjdXN0b20gc29ja2V0IGlu dGVyZmFjZSBmb3IgdGhlaXIgZGVidWcgbmVlZHMuDQo+DQo+T3ZlcmFsbCBpdCBtYWtlcyBtb3Jl IHNlbnNlIHRvIG1lIHRvIGhhdmUgYSB1bmlmaWVkL2NvbW1vbiBpbnRlcmZhY2UgZnJvbSBkcml2 ZXJzIHRvIERQREsgYXBwbGljYXRpb25zLCB3aGljaCBpcyB0aHJvdWdoIHRoZSBldGhkZXYgbGF5 ZXIuDQo+QW5kIGltcHJvdmUgYW5kIGV4dGVuZCB0aGUgZXRoZGV2IGxheWVyIHRvIHNhdGlzZnkg ZHJpdmVyIG5lZWRzLg0KPg0KPkluIHRoaXMgc3BlY2lmaWMgZXhhbXBsZSwgSSBhbSBmb3IgcmVq ZWN0aW5nIHRoZSBzb2NrZXQgaW50ZXJmYWNlIHBhdGNoLCBidXQgSSB3b3VsZCBsaWtlIHRvIGdl dCBtb3JlIGZlZWRiYWNrIGZyb20gQHRlY2hib2FyZC4NCj4NCg0KVGhlIHJlYXNvbiB3ZSBoYXZl IHRoZSBhZGRpdGlvbiBjb250cm9sIGNoYW5uZWwgaXMgbm90IHByb3ZpZGUNCmFkZGl0aW9uYWwg ZnVuY3Rpb25hbGl0eS4gV2UgaGF2ZSBjdXN0b21lcnMgd2l0aCB1c2UtY2FzZXMgdGhhdA0KcmVx dWlyZSBtdWx0aXBsZSBwcm9jZXNzZXMuIFNpbmNlIE5hcGF0ZWNoIGFkYXB0ZXJzIGRvIG5vdCBz dXBwb3J0DQpjb25maWd1cmF0aW9uIHRocm91Z2ggVkZzLCB0aGVuIHNlY29uZGFyeSBhcHBsaWNh dGlvbnMgbXVzdCBzZW5kDQp0aGVpciBydGVfZmxvdyB0byBhIG1haW4gYXBwbGljYXRpb24sIHdo aWNoIHdpbGwgdGhlbiBzZXR1cCB0aGUgZmxvdw0KdGhyb3VnaCBpdCdzIFBGLiBUaGlzIGNvbnRy b2wgY2hhbm5lbCAiaGlkZXMiIHRoZXNlIGRldGFpbHMsIGFuZA0KbWFrZSB0aGUgcHJvZHVjdCBl YXNpZXIgZm9yIHVzZXJzIHRvIGFkYXB0IHRvIHRoZWlyIGV4aXN0aW5nIHNvbHV0aW9ucy4NCg0K SWYgeW91IHN0YW5kIGZpcm0gb24gcmVqZWN0aW5nIHRoZSBjb250cm9sIGNoYW5uZWwsIHRoZW4g d2UgaGF2ZQ0KdG8gZ28gYmFjayB0byB0aGUgZHJhd2luZyBib2FyZCBvbiB0aGlzIGlzc3VlLiBX ZSBkaWQgbG9vayBhdA0KRFBESydzIG11bHRpLXByb2Nlc3Mgc3VwcG9ydCwgYW5kIGFjdHVhbGx5 IGhhZCBzb21lIHN1cHBvcnQNCmZvciB0aGlzLCBidXQgd2UgZGV0ZXJtaW5lZCB0aGF0IGZvciBv dXIgdXNlLWNhc2UgaXQgd2FzIGJldHRlcg0KdG8gaGF2ZSBhIGNvbW11bmljYXRpb24gY2hhbm5l bCwgYW5kIG5vIHNoYXJlZCBtZW1vcnkuDQoNCj4NCj5BbmQgcmVsYXRlZCB0byBub3QgYmVpbmcg dG9vIGhhcmQgb24gdGhlIG5ld2NvbWVycywgdW5yZWxhdGVkIHRvIGJlaW5nIGEgbmV3Y29tZXIg b3Igbm90LCBpZiBhIHByb2Nlc3MvZmVhdHVyZS9hcHByb2FjaCBhcHByb3ZlZCBvbmNlLCBzb21l IG90aGVycyB3aWxsIHBvaW50IHRvIGl0IGFuZCB3aWxsIGFzayB0byBkbyB0aGUgc2FtZSB3aGlj aCBpcyBmYWlyIGluIHRoZWlyIHBlcnNwZWN0aXZlLiBJIGhhZCBtdWx0aXBsZSBpbnN0YW5jZSBv ZiB0aGlzIGluIHRoZSBwYXN0Lg0KPg0KPk9mIGNvdXJzZSB3ZSBhcmUgYmVpbmcgZWFzeSB0byBu ZXdjb21lcnMgYnV0IG5vdCBpbiBhIHdheSB0byBhbGxvdyBjb2RlIHRoYXQgd2UgYmVsaWV2ZSBp cyBub3QgZ29vZCB0aGluZyB0byBkbywgYnV0IGdvaW5nIGVhc3kgb24gcHJvY2VzcyBtYXkgYmUg OikNCj4NCg0KV2UgYXJlIGdyYXRlZnVsIGZvciBhbnkgbGVuaWVuY3kgeW91IG1heSBzaG93IHVz IDstKQ0KDQpUaGFua3MgYWdhaW4sDQpDaHJpc3RpYW4NCg0KPg0KPj4+DQo+Pj4NCj4+PiBUaGFu a3MsDQo+Pj4gZmVycnVoDQo+PiANCj4+IFRoYW5rIHlvdSwgRmVycnVoLCBmb3IgdGFraW5nIGdv b2QgY2FyZSBvZiB0aGUgY29tbXVuaXR5IGJ5IHByb3ZpZGluZyBjb25zdHJ1Y3RpdmUgZmVlZGJh Y2sgbGlrZSB0aGlzIHRvIG5ldyBOSUMgdmVuZG9ycyENCj4+IA0KPj4gUGxlYXNlIG5vdGUgdGhh dCBteSBmZWVkYmFjayBpcyBlbnRpcmVseSBwcm9jZXNzIHJlbGF0ZWQuIEkgZGlkbuKAmXQgcmV2 aWV3IHRoZSBkcml2ZXIsIHNvIEkgaGF2ZSBubyB0ZWNobmljYWwgY29tbWVudHMgdG8gdGhlIHBh dGNoIHNlcmllcy4NCj4+IA0KPj4gLU1vcnRlbg0KPj4NCg==