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 02DFB42671; Fri, 29 Sep 2023 11:21:45 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DEB72402B1; Fri, 29 Sep 2023 11:21:44 +0200 (CEST) Received: from egress-ip39b.ess.de.barracuda.com (egress-ip39b.ess.de.barracuda.com [18.185.115.243]) by mails.dpdk.org (Postfix) with ESMTP id CAD2540287; Fri, 29 Sep 2023 11:21:42 +0200 (CEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2104.outbound.protection.outlook.com [104.47.17.104]) by mx-outbound41-173.eu-central-1c.ess.aws.cudaops.com (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 29 Sep 2023 09:21:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SZ2G7l1/LVcvN9PZ+WNbLmoOfr2uZqOkMJeC++oRH1HPWHlsiTZ4OuoSJ22qDZi2YqURNmg0rZJAFEXqFejLbyIiOf7csapHbesfEeAcpaiqQm5XQmu+HNZ4liS4i2JXJYic0cqaJozPfI7z0RtttN+n5Qs+YB9NvbMVaLCVRL8yUuXb3a3wyJqUUNbt0AiZeHlbwd92rDTU3mVzEAHFxYA65FrctwN4olsM5n7tYRp9Uq/DmasaBITLbA4citTpa7Kd7RL0suDIKF2uBnExd4SF9GM8JtDV5dJk/6cj0Ewh0HshbJx3yXXyU4xlCM4zLHOjl/yia4Lpc4fFGzHF4Q== 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=d0iUFxjB17GygpdkwNM1OmGIhU2iAD4xiUlc1h71FFM=; b=NC2khP0j6acL2JXW9mqnvoUP6Jhf6TUoP5w312NllFoKBv/2PkFy4629LPgaCH5m1aCSWW5/H+GPWayKvzA76hGzhEYg6bPXhXOs+SI5WpnRb4SBMeDCK+Cq0nB8WB7AVg+o34ecbXPUdeeb95mNXKwY7TxQwZMqXvi4GgLv+ekmLgbcsXtIf9CVRfJ7X56U7rCyeanQ8tobv6882vOq+02emexGxSCLgf8KpO/iFnTocqipdnY+qnRWrfl+Q8Ko1F0avqRjTJH6XYAs8dRa3lXhPgU02EPiURnTC9MTtZY46C6G2rvvIWp3dYP44M53H51s3/id187kH2fJgmwi1g== 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=d0iUFxjB17GygpdkwNM1OmGIhU2iAD4xiUlc1h71FFM=; b=L62CHBf+ZLBoPkPrPnUk9flJcoAvrOtKNe+PWXvKgpZlRGdJV8SNR6C3CWURacHy64lpnW0O1JEpV1hdyUsa7Pgj4ehMjsfH7K5KX/qR8EVmWzn4gJpC8eYPTSspa8p7BA4v6Os9kxeTyXXVkG9BurGEUMnPp6u0Nr+0UldGTrY= Received: from DB6P190MB0311.EURP190.PROD.OUTLOOK.COM (2603:10a6:6:33::14) by AS4P190MB1878.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:505::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.24; Fri, 29 Sep 2023 09:21:39 +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.6813.027; Fri, 29 Sep 2023 09:21:39 +0000 From: Christian Koue Muf To: Ferruh Yigit , Thomas Monjalon , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , Mykola Kostenok CC: "dev@dpdk.org" , "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/b7AcFPgAgAAthgCABB8BgIABbV4ggAH1xACAAZ+cgIAMQMBQ Date: Fri, 29 Sep 2023 09:21:39 +0000 Message-ID: References: <20230816132552.2483752-1-mko-plv@napatech.com> <2362c757-3cf7-4b4b-b507-402781d9a810@amd.com> <4499805.irdbgypaU6@thomas> In-Reply-To: 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_|AS4P190MB1878:EE_ x-ms-office365-filtering-correlation-id: aedc8f4c-4668-4700-7b3c-08dbc0cd7c9e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 1yV+XQw1Z1W5wsg/M6/i4YAOF6OI4Qg1EWfyr2kzzGCDtg8tJwpZ9sBht+Um3FaMHb+NwTQKJyLDDqIF2nAy3nJf3Le8On2FQyep3PrOyP5z86c9bMziT4m/ulg39nVpfPQMQtdDQu6DksORCXBj/91nDLPWl5ZBW5dOuUU6S+SEduNUrdIOzp9gXSeta/V2VERrIHgyACrNV8y0crMPA8VtlFM8vBUiMIeq2sr7aLIIG0C4tBUZMp4jILPK7N67HlSoYo52TVxJAsXMpzvMRRrhdBkgy048MKAg+SSPimmEG0PIwvFThwdtrseBdMxIB6yvCNM2HpQlS1xJfgFSxaAO2lWkDKQIprw29kWLGXEdsw7karpljYP379bRv2PFiSVgMozPjEYbYtkYgRXlmp3Fhr4W3cKEeGb+P/AavF6zI3YhuSjlK2Fi/kCzY/nkTr4WqYxNwjoVZl82YoPAMIqZDp5upZ3Vuw1Hvh07Miaq/wd8SIEekR3aCGJTjLl8nWCauxA3ME4K+3GF7yOShnEHK6H+0/ip6kgzcBFhnKZXf6K5Gc8IWXLWPJLZoRNs/aTimgBxwbnLC7ReE7W7uJeYadYfPolqyCm1L9P7j/8= 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)(396003)(376002)(136003)(39840400004)(346002)(366004)(230922051799003)(1800799009)(186009)(451199024)(64100799003)(55016003)(9686003)(450100002)(53546011)(6506007)(122000001)(7696005)(26005)(8676002)(5660300002)(4326008)(8936002)(52536014)(30864003)(38100700002)(86362001)(33656002)(2906002)(6636002)(316002)(41300700001)(54906003)(66446008)(110136005)(64756008)(66476007)(66556008)(76116006)(66946007)(71200400001)(478600001)(38070700005)(966005)(66574015)(83380400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aWxIcUR4dVlDYm5xYjVxNTgxNE9yUW42UW5oODQrbDlsaUoyY1BXeEwzZVRF?= =?utf-8?B?dGRncWl5UjFCaENsM1VwR1hvK3BzOGV3dHEvOExuK0J3QXhoUjk0L1JxQTk1?= =?utf-8?B?STdXb2dma2E2dmRhVzlrNzJ1Sy8zU0ViREhaT1RZN2R2clJhQzRkN1JpWmRS?= =?utf-8?B?UGFKVTIrMlFGcUV0SGl5ZUxDRGJsS3FXcDNWNUFlYlkyTmNZcisrVUduakU1?= =?utf-8?B?SHJuazhNbVdCWldib3h6OWlza1RZQWtscGdhQTNmTVZOQldxN1ZvbzNyWjRJ?= =?utf-8?B?TXp3ZEFUV2NVcHJlZ1B3T1NCVVBhYkh5SWJGT0RnOVU4SS90SFdsazlxaE9I?= =?utf-8?B?N2U2bkhXV01GQ055T2I4Y0llK3lCYWc0NTZQc1FkdEpsaXgzZk51M3lSUDNO?= =?utf-8?B?emc4SGFpejBxc3REWjlOZlN5L05DNkZBVGM2aTRSakFWWm1lVFAvNVpXSTQ4?= =?utf-8?B?L3ZsVUh2UlRsN1VWWWpEeUNDdUV1L2VyWmU3b2hONjluTmVrb1ZIRFh2MFo3?= =?utf-8?B?TjlZWU5NUFh4VzlkS2tFNU85eUJIbTNXcE5MaUlySzRua0czVXR3d3pCRnpt?= =?utf-8?B?Zzl0REtac1gwTXB4Mko4aTN5enFlY0s3cGMrU0dyaHVxRmw4UGVzbGxOTkR0?= =?utf-8?B?U3NWdGNvZFh2a1RmVWRrVWJPOS8xZXAweklyTU9NVGg0eGdDakUvSzUycjdv?= =?utf-8?B?SE9CckY2OEU1N0VlSlJ4UjRqSVRZY0d0ZHhCdVg4SzFRd1cxUXVRd1UzM25V?= =?utf-8?B?VFE4WGtVZnczSGRJSGR2Y085V2swMitpOXVLRUl3Zlp5cDB3dGVtRnB4OTJS?= =?utf-8?B?L29sQkJkVEMyc0ZnTG5uMjFiZnF1ZFFlbnVsYTRCR3VqNE94QVNVRXp2S21U?= =?utf-8?B?bzEzM0RHSUxZWjlmRGdrSEM5eGZPbncySEUxWks0WnpSMW83dGlwdzFrVTFV?= =?utf-8?B?T3ZxL0hBRkpXdDVLTXp5Q3MvSFo4akxZKzFETjVzTE1IcStscnRLblNUVm0y?= =?utf-8?B?UXBrZUZ1NUFnUVlteUdSOGtXMGtORkhwdWk4ZWFMT0pTaDRBdXpzS0doeWxL?= =?utf-8?B?NjVFMjFZZ3Z3Qlk0eTlpNXR5YW9NUXJaVnFQM0R5RUtFSDJ6OTQ5Mnh6Z05W?= =?utf-8?B?YW5CS2VZN2lwK2t1VmVFL0FyVXErYVZ6cEw0Yit5WlFEd2RIUDlVVTFtb3M1?= =?utf-8?B?OFovcDBRdnV3eW9ISG41dm1JUlFPb0NMU2VkZEFTUFd5cVJaODhhWm1GUjNB?= =?utf-8?B?bWNOU1Zaa0ZVMVNJeXlZeEJFYlF5WFRqUCtEZ0Y1VXFzdG5MVGJrWlBNaStZ?= =?utf-8?B?MFBMV2JMZGJKdVNuTm43UlRQNm5HS1dGelczZEpENmZNYnNlRWpUMCt3Z2FN?= =?utf-8?B?R3FJZ1ZWeFkxc29ZSHJaTTNRR3YvTTZ5UFFBOHI3dUIvUjAvNkJZdTRXempk?= =?utf-8?B?RUVYZ040cGpjSmRkS3huKzlGZm9vUG82M2tlYkhkYjg1Zk1HMHJ3ZENiaXBC?= =?utf-8?B?TGkxVFRwWjlvSllXTkVaZXE5WUxYRzNPZWk4V3Z2UVIrbDMvOFN5MjlIZkw3?= =?utf-8?B?MStENmw4eHN1ajBHSlk3YlNaNHoyUEc3ZlR0S2hhVUJkN0FQWVBIU1hxOUwz?= =?utf-8?B?bVJ2bHFINjdLMmZtaGNHNVZuZWRac0FPNkxhRS91Z3RicTNEOVRvWlZVSDQ3?= =?utf-8?B?YTNLMkQ0NTltZ2FGMndTWXQvREZYbUNiZE1heEdSdThGNlhqNC9KdUhzQ2Nq?= =?utf-8?B?Ujd2TWRDekhJbVVpeE9YNDdDRTJFbUNQa0ViZWtZSHBNZTJKaG8vZGNRemR5?= =?utf-8?B?QWFpa29zYXZGUUtXWTJvU1pnMU5JMmJDQ2tIL3NaTzNJYm85MnVQUG5Ra0Yx?= =?utf-8?B?bTdXS1E1QjJBMjN2WXVLT3VaRVJ1THlUTUZhVjVYUUF5Y2VFc2E5ZGlvM0dB?= =?utf-8?B?OGU2VUZ1Mk1wSW9FdksvY0ZEb2RoMXJaTVcrb2hZT1JrcU5TeWNkb1ZKK0lo?= =?utf-8?B?blFLbnVFMUNQZjNOZ1NwTlByWWIvc1Z2Y1dwVm1jQXRXOUZ6OTFSMFYyRnR0?= =?utf-8?B?V3pjTFdXYW1JRWpubmZxYjAvQnNvWDRtbjNkbU5jeVFDZlBPNFZwalN0OEJS?= =?utf-8?Q?xf/0=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: txEULSH8xDeaHcCGiqwqNvdv9OSK8LOtQg3e3UjJEZzcyZAb57jKJjfc9YQnOJQsvqwGm4DbJVEHz6iWj/0relGhHGt5zviUYrTVD3Ksj6NMm36hQskCbSOr8HaN2luJu5kX2cJRtxmDaKIoRozuA8uwmu1bWJ75lmk4c5rBi63DzAtVXZSHxW0LW4m2pTMyJLRR0pJ5rJA0c5cednKXBLfKdFyX798tom549Jzc4yzdIjTPYpsL98nCUX2ZvnV7s4GcKR2/9FdFHGGm7LxmvEFuDHiiKnnlPkmdsgzrv3JQxvIt7CqOuDMW9i17eaG8dxJp9KXMNlKOeTjUtYTplV46sI4fHuyjv5E1dXMPaMBaRwVuoKGtPoiRZRWpPD6WtuReve8nV4rA5OiZLLFmiXNF+L4xieGL38zwnhOn4plQltgy8FGW87NY2poLX0Qcc/DuQPRl91ckQkMU7zfBHL09DLOCTuug/Xnw5DMp/BV8olXspi6x/8TxnxtHt1Lr7S+tmg7h1nn/UHmFJhb0iPiWG3JNEMMNNfw47qZFiLIp6MxvJBhiuIWoMoBBT5NtAXVd7+my23S5VdjKDHDYEAtpVkzY8e8ZOwHB6U0HG3tz3GCdi3V7l8soGv3iXyG0OWstxzM6kjHhmG6Wd/bAfUZVUmwx4Gj/PHaQysaYWihVM//LpZhcXSkgTxeZxgLdPqkInkQ4XB99nkz4pCiKSKvj9C5C5j2pPKVxVxF/Pv4Z5tMdNb+przT/VhhxT25167andRzMbq6e7bbDejwYjai+CbiL3JvdpfmD7ZUBnB4= 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: aedc8f4c-4668-4700-7b3c-08dbc0cd7c9e X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Sep 2023 09:21:39.4299 (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: PGW2J0EE9SN736Erh0zdL+MfZQ6T6Ue6FZiGBxlpwJSZ9IN0RHQtyR3FaoLpiW7ZZgmJrQpiu8/s2YGg2ZXAug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4P190MB1878 X-BESS-ID: 1695979301-310669-12377-11788-1 X-BESS-VER: 2019.1_20230928.2110 X-BESS-Apparent-Source-IP: 104.47.17.104 X-BESS-Parts: H4sIAAAAAAACA4uuVkqtKFGyUioBkjpK+cVKVoamRsaGQGYGUNTc0swi0SgpKS XJIDHNzNQi1Tgp0cLYPNHELDU11dLCXKk2FgAlQx+mQgAAAA== X-BESS-Outbound-Spam-Score: 0.40 X-BESS-Outbound-Spam-Report: Code version 3.2, rules version 3.2.2.251155 [from cloudscan20-219.eu-central-1b.ess.aws.cudaops.com] Rule breakdown below pts rule name description ---- ---------------------- -------------------------------- 0.40 BSF_SC0_SA085b META: Custom Rule SA085b 0.00 BSF_BESS_OUTBOUND META: BESS Outbound X-BESS-Outbound-Spam-Status: SCORE=0.40 using account:ESS113687 scores of KILL_LEVEL=7.0 tests=BSF_SC0_SA085b, 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 T24gOS8yMS8yMDIzIDQ6MDUgUE0sIEZlcnJ1aCBZaWdpdCB3cm90ZToNCj5PbiA5LzIwLzIwMjMg MjoxNyBQTSwgVGhvbWFzIE1vbmphbG9uIHdyb3RlOg0KPj4gSGVsbG8sDQo+PiANCj4+IDE5LzA5 LzIwMjMgMTE6MDYsIENocmlzdGlhbiBLb3VlIE11ZjoNCj4+PiBPbiA5LzE4LzIzIDEwOjM0IEFN LCBGZXJydWggWWlnaXQgd3JvdGU6DQo+Pj4+IE9uIDkvMTUvMjAyMyA3OjM3IFBNLCBNb3J0ZW4g QnLDuHJ1cCB3cm90ZToNCj4+Pj4+PiBGcm9tOiBGZXJydWggWWlnaXQgW21haWx0bzpmZXJydWgu eWlnaXRAYW1kLmNvbV0NCj4+Pj4+PiBTZW50OiBGcmlkYXksIDE1IFNlcHRlbWJlciAyMDIzIDE3 LjU1DQo+Pj4+Pj4NCj4+Pj4+PiBPbiA5LzgvMjAyMyA1OjA3IFBNLCBNeWtvbGEgS29zdGVub2sg d3JvdGU6DQo+Pj4+Pj4+IEZyb206IENocmlzdGlhbiBLb3VlIE11ZiA8Y2ttQG5hcGF0ZWNoLmNv bT4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gVGhlIE5UTklDIFBNRCBkb2VzIG5vdCByZWx5IG9uIGEga2Vy bmVsIHNwYWNlIE5hcGF0ZWNoIGRyaXZlciwgDQo+Pj4+Pj4+IHRodXMgYWxsIGRlZmluZXMgcmVs YXRlZCB0byB0aGUgcmVnaXN0ZXIgbGF5b3V0IGlzIHBhcnQgb2YgdGhlIA0KPj4+Pj4+PiBQTUQg Y29kZSwgd2hpY2ggd2lsbCBiZSBhZGRlZCBpbiBsYXRlciBjb21taXRzLg0KPj4+Pj4+Pg0KPj4+ Pj4+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS291ZSBNdWYgPGNrbUBuYXBhdGVjaC5jb20+ DQo+Pj4+Pj4+IFJldmlld2VkLWJ5OiBNeWtvbGEgS29zdGVub2sgPG1rby1wbHZAbmFwYXRlY2gu Y29tPg0KPj4+Pj4+Pg0KPj4+Pj4+DQo+Pj4+Pj4gSGkgTXlrb2xhLCBDaHJpc3RpYW0sDQo+Pj4+ Pj4NCj4+Pj4+PiBUaGlzIFBNRCBzY2FyZXMgbWUsIG92ZXJhbGwgaXQgaXMgYSBiaWcgZHJvcDoN Cj4+Pj4+PiAiMjQ5IGZpbGVzIGNoYW5nZWQsIDg3MTI4IGluc2VydGlvbnMoKykiDQo+Pj4+Pj4N Cj4+Pj4+PiBJIHRoaW5rIGl0IGlzIG5vdCBwb3NzaWJsZSB0byByZXZpZXcgYWxsIGluIG9uZSBy ZWxlYXNlIGN5Y2xlLCBhbmQgDQo+Pj4+Pj4gaXQgaXMgbm90IGV2ZW4gcG9zc2libGUgdG8gc2F5 IGlmIGFsbCBjb2RlIHVzZWQgb3Igbm90Lg0KPj4+Pj4+DQo+Pj4+Pj4gSSBjYW4gc2VlIGNvZGUg aXMgYWxyZWFkeSBkZXZlbG9wZWQsIGFuZCBpdCBpcyBkaWZmaWN1bHQgdG8gDQo+Pj4+Pj4gcmVz dHJ1Y3R1cmUgZGV2ZWxvcGVkIGNvZGUsIGJ1dCByZXN0cnVjdHVyZSBpdCBpbnRvIHNtYWxsIHBp ZWNlcyANCj4+Pj4+PiByZWFsbHkgaGVscHMgZm9yIHJldmlld3MuDQo+Pj4+Pj4NCj4+Pj4+Pg0K Pj4+Pj4+IERyaXZlciBzdXBwb3J0cyBnb29kIGxpc3Qgb2YgZmVhdHVyZXMsIGNhbiBpdCBiZSBw b3NzaWJsZSB0byANCj4+Pj4+PiBkaXN0cmlidXRlIHVwc3RyZWFtIGVmZm9ydCBpbnRvIG11bHRp cGxlIHJlbGVhc2UuDQo+Pj4+Pj4gU3RhcnRpbmcgZnJvbSBiYXNpYyBmdW5jdGlvbmFsaXR5IGFu ZCBhZGQgZmVhdHVyZXMgZ3JhZHVhbGx5Lg0KPj4+Pj4+IFRhcmdldCBmb3IgdGhpcyByZWxlYXNl IGNhbiBiZSBwcm92aWRpbmcgZGF0YXBhdGgsIGFuZCBhZGQgbW9yZSBpZiANCj4+Pj4+PiB3ZSBo YXZlIHRpbWUgaW4gdGhlIHJlbGVhc2UsIHdoYXQgZG8geW91IHRoaW5rPw0KPj4gDQo+PiBJIHdh cyBleHBlY3RpbmcgdG8gZ2V0IG9ubHkgUngvVHggaW4gdGhpcyByZWxlYXNlLCBub3QgcmVhbGx5 IG1vcmUuDQo+PiANCj4+IEkgYWdyZWUgaXQgbWF5IGJlIGludGVyZXN0aW5nIHRvIGRpc2N1c3Mg c29tZSBkZXNpZ24gYW5kIGNoZWNrIHdoZXRoZXIgDQo+PiB3ZSBuZWVkIG1vcmUgZmVhdHVyZXMg aW4gZXRoZGV2IGFzIHBhcnQgb2YgdGhlIGRyaXZlciB1cHN0cmVhbWluZyANCj4+IHByb2Nlc3Mu DQo+PiANCj4+IA0KPj4+Pj4+IEFsc28gdGhlcmUgYXJlIGxhcmdlIGFtb3VudCBvZiBiYXNlIGNv ZGUgKEhBTCAvIEZQR0EgY29kZSksIA0KPj4+Pj4+IGluc3RlYWQgb2YgYWRkaW5nIHRoZW0gYXMg YSBidWxrLCByZWxldmFudCBvbmVzIHdpdGggYSBmZWF0dXJlIGNhbiANCj4+Pj4+PiBiZSBhZGRl ZCB3aXRoIHRoZSBmZWF0dXJlIHBhdGNoLCB0aGlzIGVsaW1pbmF0ZXMgZGVhZCBjb2RlIGluIHRo ZSANCj4+Pj4+PiBiYXNlIGNvZGUgbGF5ZXIsIGFsc28gaGVscHMgdXNlci9yZXZpZXcgdG8gdW5k ZXJzdGFuZCB0aGUgbGluayANCj4+Pj4+PiBiZXR3ZWVuIGRyaXZlciBjb2RlIGFuZCBiYXNlIGNv ZGUuDQo+PiANCj4+IFllcyBpdCB3b3VsZCBiZSBpbnRlcmVzdGluZyB0byBzZWUgd2hhdCBpcyBy ZWFsbHkgbmVlZGVkIGZvciB0aGUgYmFzaWMgDQo+PiBpbml0aWFsaXphdGlvbiBhbmQgd2hhdCBp cyBsaW5rZWQgdG8gYSBzcGVjaWZpYyBvZmZsb2FkIG9yIGNvbmZpZ3VyYXRpb24gZmVhdHVyZS4N Cj4+IA0KPj4gQXMgYSBtYWludGFpbmVyLCBJIGhhdmUgdG8gZG8gc29tZSBjaGFuZ2VzIGFjcm9z cyBhbGwgZHJpdmVycyANCj4+IHNvbWV0aW1lcywgYW5kIEkgdXNlIGdpdCBibGFtZSBhIGxvdCB0 byB1bmRlcnN0YW5kIHdoeSBzb21ldGhpbmcgd2FzIGFkZGVkLg0KPj4gDQo+PiANCj4+Pj4+IEp1 bXBpbmcgaW4gaGVyZSB3aXRoIGFuIG9waW5pb24gYWJvdXQgd2VsY29taW5nIG5ldyBOSUMgdmVu ZG9ycyB0byB0aGUgY29tbXVuaXR5Og0KPj4+Pj4NCj4+Pj4+IEdlbmVyYWxseSwgaWYgYSBOSUMg dmVuZG9yIHN1cHBsaWVzIGEgUE1EIGZvciB0aGVpciBOSUMsIEkgZXhwZWN0IHRoZSB2ZW5kb3Ig dG8gdGFrZSByZXNwb25zaWJpbGl0eSBmb3IgdGhlIHF1YWxpdHkgb2YgdGhlIFBNRCwgaW5jbHVk aW5nIHByb3ZpZGluZyBhIG1haW50YWluZXIgYW5kIHN1cHBvcnQgYmFja3BvcnRpbmcgb2YgZml4 ZXMgdG8gdGhlIFBNRCBpbiBMVFMgcmVsZWFzZXMuIFRoaXMgc2hvdWxkIGFsaWduIHdpdGggdGhl IHZlbmRvcidzIGJ1c2luZXNzIGNhc2UgZm9yIHVwc3RyZWFtaW5nIHRoZWlyIGRyaXZlci4NCj4+ Pj4+DQo+Pj4+PiBJZiB0aGUgdmVuZG9yIHByb3ZpZGVzIG9uZSBiaWcgcGF0Y2ggc2VyaWVzLCB3 aGljaCBtYXkgYmUgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQvcmV2aWV3LCB0aGUgZmFsbG91dCBt YWlubHkgaGl0cyB0aGUgdmVuZG9yJ3MgY3VzdG9tZXJzIChhbmQgdGh1cyB0aGUgdmVuZG9yJ3Mg c3VwcG9ydCBvcmdhbml6YXRpb24pLCBub3QgdGhlIGNvbW11bml0eSBhcyBhIHdob2xlLg0KPj4+ Pj4NCj4+Pj4NCj4+Pj4gSGkgTW9ydGVuLA0KPj4+Pg0KPj4+PiBJIHdhcyB0aGlua2luZyBzYW1l IGJlZm9yZSBtYWtpbmcgbXkgYWJvdmUgY29tbWVudCwgd2hhdCBoYXBwZW5zIGlmIHZlbmRvcnMg c3VibWl0IGFzIG9uZSBiaWcgcGF0Y2ggYW5kIHdoZW4gYSBwcm9ibGVtIG9jY3VycyB3ZSBjYW4g YXNrIG93bmVyIHRvIGZpeC4gUHJvYmFibHkgdGhpcyBtYWtlcyB2ZW5kb3IgaGFwcHkgYW5kIG1h a2VzIG15IGxpZmUgKG9yIGFueSBvdGhlciBtYWludGFpbmVyJ3MgbGlmZSkgZWFzaWVyLCBpdCBp cyBhbHdheXMgZWFzaWVyIHRvIHNheSB5ZXMuDQo+Pj4+DQo+Pj4+DQo+Pj4+IEJ1dCBJIGNvbWUg dXAgd2l0aCB0d28gbWFpbiByZWFzb25zIHRvIGFzayBmb3IgYSByZXdvcms6DQo+Pj4+DQo+Pj4+ IDEtIFRlY2huaWNhbGx5IGFueSB2ZW5kb3IgY2FuIGRlbGl2ZXIgdGhlaXIgc29mdHdhcmUgdG8g dGhlaXIgDQo+Pj4+IGN1c3RvbWVycyB2aWEgYSBwdWJsaWMgZ2l0IHJlcG9zaXRvcnksIHRoZXkg ZG9uJ3QgaGF2ZSB0byB1cHN0cmVhbSANCj4+Pj4gdG8gDQo+Pj4+IGh0dHBzOi8vbGlua3Byb3Rl Y3QuY3VkYXN2Yy5jb20vdXJsP2E9aHR0cHMlM2ElMmYlMmZkcGRrLm9yZyZjPUUsMSxODQo+Pj4+ IHBvSmVqdXV2UGRPUGZjRkpZdHNta1FGNlBWckRqR3NaOHhfZ2k1eERyVHlab2tLX25NMTF1NFpw ekhnTTEwSjliT0xsDQo+Pj4+IG5ob1I2ZkZBeld0Q3pPaFJDelZydVlqNTIwelpPUnY2LU1qSmVT QzVUckduSUZMJnR5cG89MSwNCj4+Pj4gYnV0IHVwc3RyZWFtaW5nIGhhcyBtYW55IGJlbmVmaXRz Lg0KPj4+Pg0KPj4+PiBPbmUgb2YgdGhvc2UgYmVuZWZpdHMgaXMgdXBzdHJlYW1pbmcgcHJvdmlk ZXMgYSBxdWFsaXR5IGFzc3VyYW5jZSBmb3IgdmVuZG9yJ3MgY3VzdG9tZXJzICh0aGF0IGlzIHdo eSBjdXN0b21lciBjYW4gYmUgYXNraW5nIGZvciB0aGlzLCBhcyB3ZSBhcmUgaGF2aW5nIGluIG1h bnkgY2FzZXMpLCBhbmQgdGhpcyBxdWFsaXR5IGFzc3VyYW5jZSBjb21lcyBmcm9tIGFkZGl0aW9u YWwgZXllcyByZXZpZXdpbmcgdGhlIGNvZGUgYW5kIGd1aWRpbmcgdmVuZG9ycyBmb3IgdGhlIERQ REsgcXVhbGl0eSBzdGFuZGFyZHMgKHNvbWUgdmVuZG9ycyBhbHJlYWR5IGRvaW5nIHByZXR0eSBn b29kLCBidXQgbmV3IG9uZXMgc29tZXRpbWVzIHJlcXVpcmVzIGhhbmQtaG9sZGluZykuDQo+Pj4+ DQo+Pj4+IElmIGRyaXZlciBpcyBvbmUgYmlnIHBhdGNoIHNlcmllcywgaXQgaXMgcHJhY3RpY2Fs bHkgbm90IHBvc3NpYmxlIHRvIHJldmlldyBpdCwgSSBjYW4gY2F0Y2ggYSBmZXcgYml0cyBoZXJl IG9yIHRoZXJlLCB5b3UgbWF5IHNvbWUgb3RoZXJzLCBidXQgcHJhY3RpY2FsbHkgaXQgd2lsbCBi ZSBtZXJnZWQgd2l0aG91dCByZXZpZXcsIGFuZCB3ZSB3aWxsIGZhaWwgb24gb3VyIHF1YWxpdHkg YXNzdXJhbmNlIHRhc2suDQo+Pj4+DQo+Pj4+IDItIE1ha2UgY29kZSBtb3JlIGFjY2Vzc2libGUg dG8gdGhlIHJlc3Qgb2YgdGhlIHdvcmxkLg0KPj4+Pg0KPj4+PiBXaGVuIGl0IGlzIGEgYmlnIHBh dGNoLCBjb2RlIGNhbiBiZSBmdW5jdGlvbmFsIGJ1dCBsb3RzIG9mIGRldGFpbHMsIHJlYXNvbmlu ZywgcmVsYXRpb24gYmV0d2VlbiBjb21wb25lbnRzIGdldHMgbG9zdCwgd2hpY2ggbWFrZXMgaXQg ZXZlbiBoYXJkZXIgZm9yIGFuIGV4dGVybmFsIGRldmVsb3BlciwgbGlrZSBtZSwgdG8gdW5kZXJz dGFuZCBpdCAoSSBhbSBhIG1lcmUgZ3VpbmVhIHBpZyBoZXJlIDopLg0KPj4+Pg0KPj4+PiBJZiBh IGN1c3RvbWVyIHdvdWxkIGxpa2UgdG8gYWRkIGEgZmVhdHVyZSB0aGVtc2VsdmVzLCBvciBmaXgg c29tZXRoaW5nLCBldmVuIGFmdGVyIHZlbmRvciBubyBtb3JlIHdvcmtpbmcgb24gdGhhdCBwcm9k dWN0IGFueW1vcmUsIGN1c3RvbWVyIG5lZWRzIHRvIHVuZGVyc3RhbmQgdGhlIGNvZGUgb3Igc29t ZSByZWFzb25pbmcgaW4gdGhlIGNvZGUuDQo+Pj4+IE9yIGlmIHNvbWVvbmUgd2FudHMgdG8gYmFj a3BvcnQgdGhlIGRyaXZlciB0byBydXN0LCBvciBhIERQREsgZGV2ZWxvcGVyIHdhbnRzIHRvIGRv IGEgcmV3b3JrIHRoYXQgcmVxdWlyZXMgdXBkYXRpbmcgYWxsIGRyaXZlcnMsIG9yIGEgdGVzdGVy IHdvdWxkIGxpa2UgdG8gYW5hbHl6ZSB0aGUgY29kZSB0byBmaWd1cmUgb3V0IGJlaGF2aW9yIGRp ZmZlcmVuY2Ugb2YgdGhlIGRldmljZXMuIEkgdGhpbmsgSSBoYXZlIHdpdG5lc3MgYWxsIGFib3Zl IGNhc2VzIGluIHJlYWwgbGlmZS4NCj4+Pj4NCj4+Pj4gSWYgZHJpdmVyIGlzIHNwbGl0IGludG8g bW9yZSBwYXRjaGVzLCBpdCBtYWtlcyBwYXRjaCBlYXNpZXIgdG8gdW5kZXJzdGFuZCB3aGljaCBt YWtlcyBjb2RlIHByYWN0aWNhbGx5IG1vcmUgYWNjZXNzaWJsZSB0byBvdGhlciBkZXZlbG9wZXJz IHRoYXQgYXJlIG5vdCBleHBlcnQgaW4gZHJpdmVyLg0KPj4gDQo+PiBJIGZ1bGx5IGFncmVlIGFi b3V0IHRoZSAyIHJlYXNvbnMgZm9yIHVwc3RyZWFtaW5nIHBpZWNlIGJ5IHBpZWNlLg0KPj4gDQo+ PiANCj4+Pj4gT3ZlcmFsbCwgeWVzIHNwbGl0dGluZyBwYXRjaCB0YWtlcyB0aW1lIGFuZCBlZmZv cnQsIGFuZCB5ZXMgdGhpcyBpcyBhbiBvdmVyaGVhZCBmb3IgYSBjb2RlIHRoYXQgaXMgYWxyZWFk eSBkZXZlbG9wZWQsIGJ1dCBJIHRoaW5rIGJlbmVmaXQgaXMgYmlnIHNvIGl0IHdvcnRoIGRvaW5n IHRoZSB0YXNrLg0KPj4gDQo+PiBJbiB0aGUgbWVhbnRpbWUsIGlmIHNvbWUgZmVhdHVyZXMgYXJl IG5vdCB5ZXQgdXBzdHJlYW1lZCBpbiBhIHJlbGVhc2UsIA0KPj4gYSB1c2VyIGNhbiBhcHBseSB0 aGUgbWlzc2luZyBwYXRjaGVzIGZyb20gdGhlIG1haWxpbmcgbGlzdCB0byBnZXQgdGhlIGZlYXR1 cmVzLg0KPj4gDQo+PiANCj4+Pj4+IFdlLCB0aGUgY29tbXVuaXR5LCBzaG91bGQgbm90IG1ha2Ug aXQgdG9vIGRpZmZpY3VsdCBmb3IgdmVuZG9ycyB0cnlpbmcgdG8gdXBzdHJlYW0gdGhlaXIgZHJp dmVycy4gSSBjZXJ0YWlubHkgY29uc2lkZXIgaXQgdW5yZWFzb25hYmxlIHRvIGFzayBhIHZlbmRv ciB0byBwb3N0cG9uZSB0aGUgcmVsZWFzZSBvZiBzb21lIGV4aXN0aW5nIGZlYXR1cmVzIGJ5IGVm ZmVjdGl2ZWx5IGFuIGVudGlyZSB5ZWFyIChjb25zaWRlcmluZyB0aGF0IG9ubHkgTFRTIHJlbGVh c2VzIGFyZSByZWxldmFudCBmb3IgbW9zdCBvZiB1cykgYmVjYXVzZSB3ZSB3YW50IHRoZSB2ZW5k b3IgdG8gcmVmYWN0b3IgdGhlIHBhdGNoIHNlcmllcyB0byBtYXRjaCBvdXIgcHJlZmVyZW5jZXMg d2l0aGluIGFuIHVucmVhbGlzdGljIHRpbWVmcmFtZS4NCj4+IA0KPj4gWW91J3JlIHJpZ2h0IE1v cnRlbiwgd2UgdHJ5IHRvIGJlIGFzIHdlbGNvbWluZyBhcyBwb3NzaWJsZSwgYnV0IGFzIA0KPj4g RmVycnVoIHNhaWQsIHdlIHdhbnQgdG8gYmUgYWJsZSB0byB1bmRlcnN0YW5kIGhvdyBhIGRyaXZl ciBpcyBidWlsdCwgDQo+PiBldmVuIGlmIG5vdCB1bmRlcnN0YW5kaW5nIGFsbCBkZXRhaWxzLg0K Pj4gDQo+PiBJbiBPcGVuIFNvdXJjZSwgSSB0aGluayBub3Qgb25seSB0aGUgY29kZSBzaG91bGQg YmUgYXZhaWxhYmxlLCB3ZSBtdXN0IA0KPj4gYWxzbyB0YWtlIGNhcmUgb2YgZXhwbGFuYXRpb25z IGFuZCBkb2N1bWVudGF0aW9uLg0KPj4gDQo+PiANCj4+Pj4gQWdyZWUgdG8gbm90IG1ha2UgdXBz dHJlYW1pbmcgZGlmZmljdWx0IGZvciBuZXcgdmVuZG9ycywgYW5kIGluZGVlZCB3ZSBhcmUgZW5j b3VyYWdpbmcgbW9yZSB2ZW5kb3JzIHRvIGJlIHVwc3RyZWFtIHRoZWlyIGNvZGUsIHRoaXMgaXMg aW4gYmVzdCBpbnRlcmVzdCBvZiBib3RoIHNpZGVzLg0KPj4+Pg0KPj4+PiBEaXN0cmlidXRpbmcg dXBzdHJlYW1pbmcgZWZmb3J0IHRvIGEgeWVhciB3YXMganVzdCBhIHN1Z2dlc3Rpb24sIGl0IGNh biBnbyBpbiBlYXJsaWVyIGFzIGl0IGlzIGJlY29tZXMgcmVhZHkgYnV0IEkgY2FuIHNlZSBpdCB3 aWxsIHRha2UgdGltZSB0byBzcGxpdCBkcml2ZXIgaW50byBmZWF0dXJlcyBhbmQgdXBzdHJlYW0g dGhlbS4NCj4+IA0KPj4gRHJpdmVyIGZlYXR1cmVzIGNhbiBiZSBhZGRlZCB1bnRpbCAtcmMyIChp biBvbmUgbW9udGgpLg0KPj4gDQo+PiANCj4+Pj4gQXMgSSBhbSBmcm9tIGEgdmVuZG9yIHRvbywg SSBjYW4gdW5kZXJzdGFuZCB0aGUgcHJvZHVjdC9jdXN0b21lciBwcmVzc3VyZSwgYnV0IEkgaG9w ZSB0aGlzIGFwcHJvYWNoIGNhbiBlbmNvdXJhZ2UgdmVuZG9ycyBzdGFydCB1cHN0cmVhbWluZyBl YXJseSBvciBldmVuIGJldHRlciB1cHN0cmVhbSBhcyB0aGV5IGRldmVsb3AgdGhlIGNvZGUuDQo+ Pj4NCj4+PiBIaSBGZXJydWgsDQo+Pj4NCj4+PiBGaXJzdCBvZiBhbGwsIHRoYW5rIHlvdSBmb3Ig c3RhcnRpbmcgdGhlIHdvcmsgdG8gcmV2aWV3IG91ciBjb2RlLg0KPj4+DQo+Pj4gQXMgTW9ydGVu IHNhaWQgTmFwYXRlY2ggcGxhbnMgdG8gdGFrZSBhbGwgcmVzcG9uc2liaWxpdHkgZm9yIHRoZSAN Cj4+PiBxdWFsaXR5IG9mIHRoZSBQTUQgc291cmNlIGNvZGUuIFdlIGV4cGVjdCB0byBwcm92aWRl IGFsbCBmaXhlcyBuZWVkZWQgDQo+Pj4gaW4gdGhlIGZ1dHVyZS4gSWYgZm9yIHNvbWUgcmVhc29u IE5hcGF0ZWNoIHN0b3BzIG1haW50YWluaW5nIHRoZSANCj4+PiBjb2RlLCB0aGVuIHdlIGhhdmUg YmVlbiBpbmZvcm1lZCB0aGF0IHRoZSBEUERLIGNvbW11bml0eSBtaWdodCBkZWxldGUgDQo+Pj4g dGhlIFBNRCBmcm9tIHRoZSByZXBvc2l0b3J5LCBhbmQgd2UgdW5kZXJzdGFuZCB0aGF0Lg0KPj4+ DQo+Pj4gSW4gcmVnYXJkcyB0byBzcGxpdHRpbmcgdGhlIGNvZGUsIEkgZG9uJ3Qgc2VlIHRoaXMg YSBnb29kIG9wdGlvbi4gDQo+Pj4gV2hpbGUgSSBvZiBjYXVzZSBhZ3JlZSBpdCB3b3VsZCBiZSBl YXNpZXIgdG8gcmV2aWV3IGFuZCB1bmRlcnN0YW5kLCANCj4+PiB0aGUgY29kZSBzaG91bGQgYWxz byByZXN1bHQgaW4gYSBtZWFuaW5nZnVsIHByb2R1Y3QuIE9mIHRoZSA4N2sgbGluZXMgDQo+Pj4g b2YgY29kZSwgNTNrIGxpbmVzIGlzIG5lZWRlZCB0byBzdGFydC11cCB0aGUgRlBHQSB0byBhIHN0 YXRlIHRoZSBpdCANCj4+PiBpcyByZWFkeSB0byByZWNlaXZlIHRyYWZmaWMuIEJ1dCBhdCB0aGlz IHBvaW50IGFsbCBwYWNrZXRzIHdvdWxkIA0KPj4+IHNpbXBseSBiZSBkaXNjYXJkZWQsIGFuZCB0 byBiZSBob25lc3QsIHRoZXJlIGFyZSBiZXR0ZXIgYW5kIGNoZWFwZXIgDQo+Pj4gb3B0aW9ucyBv dXQgdGhlcmUsIGlmIG5vdGhpbmcgbW9yZSB0aGFuIGJhc2ljIGZ1bmN0aW9uYWxpdHkgaXMgDQo+ Pj4gbmVlZGVkLiAzNGsgbGluZXMgYXJlIHVzZWQgdG8gc2V0dXAgZmlsdGVycyBiYXNlZCBvbiBy dGVfZmxvdy4gVGhlIA0KPj4+IHRoaW5nIGlzLCB0aGF0IHlvdSBuZWVkIHRvIGluaXRpYWxpemUg YWxsIG1vZHVsZXMgaW4gdGhlIEZQR0EgVFgtIGFuZCANCj4+PiBSWC1waXBlbGluZXMgd2l0aCB2 YWxpZCBkYXRhLCBldmVuIGlmIHlvdSBkb24ndCBuZWVkIHRoZSBmZWF0dXJlcyB0aG9zZSBtb2R1 bGVzIHByb3ZpZGUuDQo+Pj4gQXMgYSByZXN1bHQsIGlmIHlvdSBzcGxpdCB1cCB0aGUgMzRrIGxp bmVzLCB0aGVuIHRoZSBwcm9kdWN0IHdvdWxkIA0KPj4+IG5vdCBiZSBmdW5jdGlvbmFsLiBPZiBj YXVzZSBzb21lIG9mIHRoZSB0b3AgbGV2ZWwgbG9naWMgY291bGQgYmUgDQo+Pj4gc3BsaXQgb3V0 LCBidXQgYXQgdGhpcyBwb2ludCB3ZSBhcmUgdGFsa2luZyBhYm91dCBzcGxpdHRpbmcgODdrIGxp bmVzIA0KPj4+IGludG8gODBrIGFuZCA3aywgd2hpY2ggSSBkb24ndCB0aGluayBpcyB3b3J0aCBp dC4NCj4+IA0KPj4gQWN0dWFsbHkgSSB0aGluayBpdCBpcyB3b3J0aC4NCj4+IFRoZXJlIGlzIGEg YmVuZWZpdCBpbiBpc29sYXRpbmcgdGhlIHNtYWxsIGJhc2ljIGluaXQgcGFydCBmcm9tIHRoZSAN Cj4+IG1vcmUgY29tcGxleCBmZWF0dXJlcy4NCj4+IA0KPj4gDQo+Pj4+Pj4gQXMgZmFyIGFzIEkg dW5kZXJzdGFuZCBsYXN0IHBhdGNoIG9wZW5zIGEgc29ja2V0IGludGVyZmFjZSBhbmQgYW4gDQo+ Pj4+Pj4gZXh0ZXJuYWwgYXBwbGljYXRpb24gY2FuIHNlbnQgY29udHJvbCBjb21tYW5kcyB2aWEg dGhpcyBpbnRlcmZhY2UuDQo+Pj4+Pj4gSSBhbSBub3Qgc3VyZSBhYm91dCB0aGlzIHNpZGUgY29u dHJvbCBjaGFubmVsLCB3aGF0IGlzIG1pc3NpbmcgaW4gDQo+Pj4+Pj4gdGhlIERQREsgQVBJPyBD YW4gd2UgdHJ5IHRvIGFkZHJlc3MgdGhlbSBpbiB0aGUgRFBESyBsYXllciBpbnN0ZWFkIA0KPj4+ Pj4+IG9mIGEgZHJpdmVyIHNwZWNpZmljIHNvbHV0aW9uPw0KPj4+Pj4NCj4+Pj4+IFRoYXQgd291 bGQgYmUgZ3JlYXQuDQo+Pj4+Pg0KPj4+Pj4gQUZBSUssIG90aGVyIHZlbmRvcnMgYWxzbyBoYXMg YSBidW5jaCBvZiBvdXQtb2YtYmFuZCBjb21tdW5pY2F0aW9uLCANCj4+Pj4+IGUuZy4gbWFnaWNh bCBFQUwgcGFyYW1ldGVycyB0byB0aGUgTUxYIGRyaXZlcnMuIFNvIGxldCdzIG5vdCBiZSB0b28g DQo+Pj4+PiBoYXJkIG9uIHRoZSBuZXdjb21lcnMuIDstKQ0KPj4+Pj4NCj4+Pj4NCj4+Pj4gSSBk aWQgc29tZSB0aGlua2luZyBmb3IgdGhpcyBvbmUgdG9vLA0KPj4+Pg0KPj4+PiBBcyB3ZSBhcmUg aW4gdXNlcnNwYWNlLCBpdCBpcyBlYXN5IHRvIGhhdmUgc2lkZSBjb250cm9sIGNoYW5uZWwsIGFu ZCB0aGlzIGNhbiBtYWtlIHVzZXJzIGxpZmUgZWFzeSwgc28gdGhpcyBpcyBhIHByYWN0aWNhbCB0 aGluZyB0byBkby4NCj4+Pj4gKEluZGVlZCB0aGVyZSBhcmUgYWxyZWFkeSBzb21lIHdheXMgdG8g ZG8gdGhpcywgd2l0aG91dCBQTUQgZXhwb3NpbmcgDQo+Pj4+IGEgc29ja2V0IGludGVyZmFjZS4p DQo+Pj4+DQo+Pj4+IEJ1dCB0aGlzIGFsc28gcmVkdWNlcyBlZmZvcnQgZGV2ZWxvcGVycyBwdXR0 aW5nIG9uIERQREsgbGF5ZXIgc29sdXRpb24sIGJlY2F1c2UgaXQgaXMgYWx3YXlzIGVhc2llciB0 byBhZGQgbW9yZSBzdXBwb3J0IHRvIHRoZSBkcml2ZXIgb25seS4NCj4+Pj4gQW5kIG92ZXJhbGwg dGhpcyByZWR1Y2VzIHBvcnRhYmlsaXR5IG9mIHRoZSBEUERLIGFwcGxpY2F0aW9uLCBlYWNoIA0K Pj4+PiBhcHBsaWNhdGlvbiBiZWNvbWVzIHVuaXF1ZSB0byBhIGRldmljZSAoVGhpcyBpcyBhIGJh ZCB0aGluZywgYnV0IEkgDQo+Pj4+IGFsc28gbmVlZCBzb21lIGZlZWRiYWNrIGhvdyBiYWQgaXQg aXMgaW4gcmVhbCBsaWZlLikNCj4+Pj4NCj4+Pj4gVG8gYmFsYW5jZSB0aGlzLCB3ZSBzYWlkIGlm IGEgZmVhdHVyZSBpcyB0b28gc3BlY2lmaWMgdG8gYSBkZXZpY2UsIGl0IGNhbiBhZGQgZGV2aWNl IHNwZWNpZmljIEFQSSBhbmQgdGhpcyBpcyBiZXR0ZXIgdGhhbiBkZXZpY2Ugc3BlY2lmaWMgZmVh dHVyZXMgcG9sbHV0ZSB0aGUgY29tbW9uLCBtb3N0IHVzZWQgY29kZS4gQW5kIHB1c2ggYmFjayB0 byBpbnRyb2R1Y2UgbW9yZSBuZXcgUE1EIHNwZWNpZmljIEFQSXMgdW5sZXNzIGl0IGlzIHJlYWxs eSBuZWVkZWQuDQo+Pj4+DQo+Pj4+IEJ1dCBjcmVhdGluZyBhIHNvY2tldCBpbnRlcmZhY2UgZGly ZWN0bHkgZnJvbSB0aGUgZHJpdmVyIGlzIG1vcmUgdGhhbiBQTUQgc3BlY2lmaWMgQVBJLiBUZWNo bmljYWxseSBhcHBsaWNhdGlvbiBjb250cm9sIGludGVyZmFjZSBjYW4gcmVseSBjb21wbGV0ZWx5 IHRvIHRoaXMuIEV2ZW4gd2UgYXNzdW1lIHRoaXMgaXMgbm90IGZvciBjb250cm9sLCBidXQganVz dCBmb3IgZGVidWcsIEkgY2FuIHNlZSBpdCBjYW4gYmUgdXNlZnVsIGZvciBkZWJ1ZyBhbmQgYWdh aW4gcHJhY3RpY2FsIHRoaW5nIHRvIGRvLCBJIGFtIHN0aWxsIG5vdCBzdXJlIGhvdyBtdWNoIGl0 IGh1cnRzIGlmIGVhY2ggZHJpdmVyIGhhcyBhIGN1c3RvbSBzb2NrZXQgaW50ZXJmYWNlIGZvciB0 aGVpciBkZWJ1ZyBuZWVkcy4NCj4+Pj4NCj4+Pj4gT3ZlcmFsbCBpdCBtYWtlcyBtb3JlIHNlbnNl IHRvIG1lIHRvIGhhdmUgYSB1bmlmaWVkL2NvbW1vbiBpbnRlcmZhY2UgZnJvbSBkcml2ZXJzIHRv IERQREsgYXBwbGljYXRpb25zLCB3aGljaCBpcyB0aHJvdWdoIHRoZSBldGhkZXYgbGF5ZXIuDQo+ Pj4+IEFuZCBpbXByb3ZlIGFuZCBleHRlbmQgdGhlIGV0aGRldiBsYXllciB0byBzYXRpc2Z5IGRy aXZlciBuZWVkcy4NCj4+Pj4NCj4+Pj4gSW4gdGhpcyBzcGVjaWZpYyBleGFtcGxlLCBJIGFtIGZv ciByZWplY3RpbmcgdGhlIHNvY2tldCBpbnRlcmZhY2UgcGF0Y2gsIGJ1dCBJIHdvdWxkIGxpa2Ug dG8gZ2V0IG1vcmUgZmVlZGJhY2sgZnJvbSBAdGVjaGJvYXJkLg0KPj4+Pg0KPj4+DQo+Pj4gVGhl IHJlYXNvbiB3ZSBoYXZlIHRoZSBhZGRpdGlvbiBjb250cm9sIGNoYW5uZWwgaXMgbm90IHByb3Zp ZGUgDQo+Pj4gYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5LiBXZSBoYXZlIGN1c3RvbWVycyB3aXRo IHVzZS1jYXNlcyB0aGF0IA0KPj4+IHJlcXVpcmUgbXVsdGlwbGUgcHJvY2Vzc2VzLiBTaW5jZSBO YXBhdGVjaCBhZGFwdGVycyBkbyBub3Qgc3VwcG9ydCANCj4+PiBjb25maWd1cmF0aW9uIHRocm91 Z2ggVkZzLCB0aGVuIHNlY29uZGFyeSBhcHBsaWNhdGlvbnMgbXVzdCBzZW5kIA0KPj4+IHRoZWly IHJ0ZV9mbG93IHRvIGEgbWFpbiBhcHBsaWNhdGlvbiwgd2hpY2ggd2lsbCB0aGVuIHNldHVwIHRo ZSBmbG93IA0KPj4+IHRocm91Z2ggaXQncyBQRi4gVGhpcyBjb250cm9sIGNoYW5uZWwgImhpZGVz IiB0aGVzZSBkZXRhaWxzLCBhbmQgbWFrZSANCj4+PiB0aGUgcHJvZHVjdCBlYXNpZXIgZm9yIHVz ZXJzIHRvIGFkYXB0IHRvIHRoZWlyIGV4aXN0aW5nIHNvbHV0aW9ucy4NCj4+IA0KPj4gSSB0aGlu ayB5b3UgbmVlZCB0byBleHBsb3JlIFZGIHJlcHJlc2VudG9ycy4NCj4+IFRoaXMgaXMgd2hhdCBp cyBkb25lIHdpdGggb3RoZXIgZHJpdmVycywgYW5kIGl0IG1ha2UgdGhlbSBjb21wYXRpYmxlLg0K Pj4gDQo+Pj4gSWYgeW91IHN0YW5kIGZpcm0gb24gcmVqZWN0aW5nIHRoZSBjb250cm9sIGNoYW5u ZWwsIHRoZW4gd2UgaGF2ZSB0byANCj4+PiBnbyBiYWNrIHRvIHRoZSBkcmF3aW5nIGJvYXJkIG9u IHRoaXMgaXNzdWUuIFdlIGRpZCBsb29rIGF0IERQREsncyANCj4+PiBtdWx0aS1wcm9jZXNzIHN1 cHBvcnQsIGFuZCBhY3R1YWxseSBoYWQgc29tZSBzdXBwb3J0IGZvciB0aGlzLCBidXQgd2UgDQo+ Pj4gZGV0ZXJtaW5lZCB0aGF0IGZvciBvdXIgdXNlLWNhc2UgaXQgd2FzIGJldHRlciB0byBoYXZl IGEgDQo+Pj4gY29tbXVuaWNhdGlvbiBjaGFubmVsLCBhbmQgbm8gc2hhcmVkIG1lbW9yeS4NCj4+ IA0KPj4gSSdtIG5vdCBzdXJlIHlvdXIgbmVlZCBpcyBhYm91dCBzZWNvbmRhcnkgcHJvY2Vzcy4N Cj4+IExldCdzIGRpc2N1c3MgdGhpcyBuZWVkIGluIGEgbWVldGluZyBpZiBuZWVkZWQuDQo+PiBB bnl3YXksIHRoZSBtZXNzYWdlIGlzIHRoYXQgd2Ugd2FudCB0byBiZSBwYXJ0IG9mIHN1Y2ggZGVz aWduIGRlY2lzaW9uLg0KPj4gDQo+PiANCj4+Pj4gQW5kIHJlbGF0ZWQgdG8gbm90IGJlaW5nIHRv byBoYXJkIG9uIHRoZSBuZXdjb21lcnMsIHVucmVsYXRlZCB0byBiZWluZyBhIG5ld2NvbWVyIG9y IG5vdCwgaWYgYSBwcm9jZXNzL2ZlYXR1cmUvYXBwcm9hY2ggYXBwcm92ZWQgb25jZSwgc29tZSBv dGhlcnMgd2lsbCBwb2ludCB0byBpdCBhbmQgd2lsbCBhc2sgdG8gZG8gdGhlIHNhbWUgd2hpY2gg aXMgZmFpciBpbiB0aGVpciBwZXJzcGVjdGl2ZS4gSSBoYWQgbXVsdGlwbGUgaW5zdGFuY2Ugb2Yg dGhpcyBpbiB0aGUgcGFzdC4NCj4+Pj4NCj4+Pj4gT2YgY291cnNlIHdlIGFyZSBiZWluZyBlYXN5 IHRvIG5ld2NvbWVycyBidXQgbm90IGluIGEgd2F5IHRvIGFsbG93IA0KPj4+PiBjb2RlIHRoYXQg d2UgYmVsaWV2ZSBpcyBub3QgZ29vZCB0aGluZyB0byBkbywgYnV0IGdvaW5nIGVhc3kgb24gDQo+ Pj4+IHByb2Nlc3MgbWF5IGJlIDopDQo+Pj4+DQo+Pj4NCj4+PiBXZSBhcmUgZ3JhdGVmdWwgZm9y IGFueSBsZW5pZW5jeSB5b3UgbWF5IHNob3cgdXMgOy0pDQo+Pj4NCj4+PiBUaGFua3MgYWdhaW4s DQo+Pj4gQ2hyaXN0aWFuDQo+Pj4NCj4+Pj4NCj4+Pj4+Pg0KPj4+Pj4+DQo+Pj4+Pj4gVGhhbmtz LA0KPj4+Pj4+IGZlcnJ1aA0KPj4+Pj4NCj4+Pj4+IFRoYW5rIHlvdSwgRmVycnVoLCBmb3IgdGFr aW5nIGdvb2QgY2FyZSBvZiB0aGUgY29tbXVuaXR5IGJ5IHByb3ZpZGluZyBjb25zdHJ1Y3RpdmUg ZmVlZGJhY2sgbGlrZSB0aGlzIHRvIG5ldyBOSUMgdmVuZG9ycyENCj4+Pj4+DQo+Pj4+PiBQbGVh c2Ugbm90ZSB0aGF0IG15IGZlZWRiYWNrIGlzIGVudGlyZWx5IHByb2Nlc3MgcmVsYXRlZC4gSSBk aWRu4oCZdCByZXZpZXcgdGhlIGRyaXZlciwgc28gSSBoYXZlIG5vIHRlY2huaWNhbCBjb21tZW50 cyB0byB0aGUgcGF0Y2ggc2VyaWVzLg0KPj4+Pj4NCj4+Pj4+IC1Nb3J0ZW4NCj4+IA0KPj4gDQo+ PiBXZSBhcmUgZ29pbmcgdG8gZGlzY3VzcyB0aGUgcHJvY2VzcyBpbiB0aGUgdGVjaG5pY2FsIGJv YXJkIHRvZGF5Lg0KPj4gDQo+PiANCj4NCj5IaSBNeWtvbGEsIENocmlzdGlhbSwNCj4NCj5BcyBk aXNjdXNzZWQsIGZvbGxvd2luZyBhcmUgYSBmZXcgZ29vZCBleGFtcGxlcyBmcm9tIHRoZSBEUERL IGhpc3RvcnksIHRoZXJlIGlzIG5vICJmaXRzIGFsbCwgZml4ZWQgZ3VpZGVsaW5lcyIsIGJ1dCB0 aGV5IGNhbiBzZXJ2ZSBhcyBzYW1wbGVzOg0KPg0KPk1hcnZlbGwgY254azoNCj5odHRwczovL2xp bmtwcm90ZWN0LmN1ZGFzdmMuY29tL3VybD9hPWh0dHBzJTNhJTJmJTJmcGF0Y2h3b3JrLmRwZGsu b3JnJTJmcHJvamVjdCUyZmRwZGslMmZsaXN0JTJmJTNmc2VyaWVzJTNkMTc0NDklMjZzdGF0ZSUz ZCUyNTJBJTI2YXJjaGl2ZSUzZGJvdGgmYz1FLDEsRG1YVTBpSHdYb1NhWjRiS24teWhYOUo4WG1G QmlzcGQydXQ3cHhMTkJrSzNRNExWcEdfem1PZjFqbldTUy1ZMEZ4LVROYlBuUURIeUJaa0RqMjNH dTd6alBaNW5zQTdwaWQ1Q3NFMnZ4TmssJnR5cG89MQ0KPg0KPg0KPlNvbGFyZmxhcmUgc2ZjIChi ZWZvcmUgcGF0Y2h3b3JrIHNlcmllcyBzdXBwb3J0KToNCj5odHRwczovL2xpbmtwcm90ZWN0LmN1 ZGFzdmMuY29tL3VybD9hPWh0dHBzJTNhJTJmJTJmcGF0Y2h3b3JrLmRwZGsub3JnJTJmcHJvamVj dCUyZmRwZGslMmZwYXRjaCUyZjE0ODA0MzYzNjctMjA3NDktMi1naXQtc2VuZC1lbWFpbC1hcnli Y2hlbmtvJTQwc29sYXJmbGFyZS5jb20lMmYmYz1FLDEsRTlvVVRfMVd1TkMySkE4eDdhbjNyQ19Q bTVnMUw1Y3hKS1E2cFR3U2JDV1NKcGlMSDJHbm1nZkZrVXFWaU9Pd2twUzJkZjhrZ0J2SGptdWxL YVdoeXI0QkJpelVULXNMNUxKdjIxSHg0UnRIdEszdmpoY0twZywsJnR5cG89MQ0KPnRvDQo+aHR0 cHM6Ly9saW5rcHJvdGVjdC5jdWRhc3ZjLmNvbS91cmw/YT1odHRwcyUzYSUyZiUyZnBhdGNod29y ay5kcGRrLm9yZyUyZnByb2plY3QlMmZkcGRrJTJmcGF0Y2glMmYxNDgwNDM2MzY3LTIwNzQ5LTU2 LWdpdC1zZW5kLWVtYWlsLWFyeWJjaGVua28lNDBzb2xhcmZsYXJlLmNvbSUyZiZjPUUsMSxHQnlG X1RpQ19xMTFpVlBwaVBncENNbFNnZS1KMFhmVDB6SGtyaUswcmRlMVF0MVJHN3VmNm1FVFFrVFNR LTFWODZaN0V0UmN4bHZTc2VkMXNxbjhSV2ZOOEtGU2JkN05hQWtmYkRpZWhuX3ZTUnpqYTQ1clFn djUzUSwsJnR5cG89MQ0KPg0KPg0KPkludGVsIGljZToNCj5odHRwczovL2xpbmtwcm90ZWN0LmN1 ZGFzdmMuY29tL3VybD9hPWh0dHBzJTNhJTJmJTJmcGF0Y2h3b3JrLmRwZGsub3JnJTJmcHJvamVj dCUyZmRwZGslMmZsaXN0JTJmJTNmc2VyaWVzJTNkMjg0MiUyNnN0YXRlJTNkJTI1MkElMjZhcmNo aXZlJTNkYm90aCZjPUUsMSx6UXd2QUlSM1RvTEloVDA5YlZ4bV9IRUYtZHA4ZXlUcWhzS0IzZU9Z Z0lKZGQyV1NfMFpsVGJRS2ZyOUtMeVRBM0EyQTJIekJiaklsejIxRF9oV1ZnU19JTm1tQzVlZXcx SjBRQkgtUG9STmQmdHlwbz0xDQo+DQoNClRoYW5rIHlvdSBmb3IgdGhlIGxpbmtzLCB0aGV5IGhh dmUgYmVlbiB2ZXJ5IGhlbHBmdWwuDQoNCkFmdGVyIGEgbG90IG9mIGludGVybmFsIGRpc2N1c3Np b24sIE5hcGF0ZWNoIGhhcyBkZWNpZGVkIHRvIGltcGxlbWVudCBzb21lIGFyY2hpdGVjdHVyYWwg Y2hhbmdlcyB0byBvdXIgUE1EIHRoYXQgd2lsbCBhbGxvdyB1cyB0byBlYXNpZXIgc3BsaXQgdXAg dGhlIGNvZGUgaW50byBzbWFsbGVyIGZlYXR1cmVzLiBUaGUgd29yayB3aWxsIHJlcXVpcmUgc29t ZSB0aW1lLCB3aGljaCBtZWFucyB0aGF0IHdlIHdpbGwgbm90IGJlIHJlYWR5IGZvciB0aGUgMjMu MTEgcmVsZWFzZS4gVGhlIGN1cnJlbnQgZ29hbCBpcyB0byBhdHRlbXB0IHRvIHVwc3RyZWFtIGEg cXVpdGUgYmFzaWMgUE1EIGluIHRpbWUgZm9yIDI0LjcsIGFuZCBhIGZ1bGx5IGZlYXR1cmVkIFBN RCBmb3IgMjQuMTEuDQoNCkJlc3QgcmVnYXJkcw0KQ2hyaXN0aWFuIE11Zg0KDQo=