From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3C797A0526; Thu, 9 Jul 2020 05:29:50 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 896511DB69; Thu, 9 Jul 2020 05:29:49 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 9E4411DB08 for ; Thu, 9 Jul 2020 05:29:47 +0200 (CEST) IronPort-SDR: zk/6Ha7+D85btHnJjmj/j4g2InKfUWnlQw6gQ9R6JO3gKMsEVLdkXPPgDjn0YALu+wGdi2OvIW yo7QvHqIqqhg== X-IronPort-AV: E=McAfee;i="6000,8403,9676"; a="136163393" X-IronPort-AV: E=Sophos;i="5.75,330,1589266800"; d="scan'208";a="136163393" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jul 2020 20:29:46 -0700 IronPort-SDR: Zmf94ynxKEDizCkZMuRdvJwLPIKv3XNWgMVXvKNRMnFUqmahDDHmv29AX1ekuwpSA8bAP2WyyY 2rw/fA9cH9ew== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,330,1589266800"; d="scan'208";a="267292362" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga007.fm.intel.com with ESMTP; 08 Jul 2020 20:29:46 -0700 Received: from orsmsx605.amr.corp.intel.com (10.22.229.18) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 8 Jul 2020 20:29:45 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by orsmsx605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 8 Jul 2020 20:29:45 -0700 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (104.47.38.59) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 8 Jul 2020 20:29:44 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fzYD3jWSGaWUmVGVszdLS3KtlnVmuH9t/1yvQl/eCFVzBqPwxPCmKl4kIyoZWsyaK5vGisJP2E+ey/ezjQVH5OewZTYKNotw/fiI2S8XdIFvsoUkJId/9vSJAReWEC4e9OpO+w+6K5y73KrBSmOPB9ZhzJy1RWZbFrzsYp/5GQBVkYP5gw6gjh98SFSJtGVeLKlm0cQnPaJWRGrWnPvZG6qoXW+xknLaQYIZ1hMo4P+6qyw4M6KLorkpT9CwkJWKuT8QbxFKoSGN1i7JndfK2V4ySyB7k0KFACXeaSAYeY5O2B72OKRkZrEvzIyoLVQkuWURAM2wQ69wqalTBT8tWQ== 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=PIMwLhdWP6yzHu3FsauJvwxhg/uG3MPJA9SWocZjuNQ=; b=R/yqNFTUVFn4RvM9dpfBU4TqqVP3K6xMyP2AlMCwhuS8mBzYydXqVDiIb4jHmrlY+vQTtgB5v0J+qorXuF0CRlRO71QJhHKGi0QuVS8Gtu7rx4e46PQyPJl7kGa3kWp0xA6JAeNZ08XgsuKxIqVLVcrRg+N1zXLuXgaBxfusEYGAgJByAeQiPC9Y7C7roGs+djqEx7IDa/ydoY7psgIGgr/nz9KSEH2RrmpUMVwPdTAPDNCPVrrooCMnD2ALEa3c/LJ5MC+/Sawg2hgEu0GtcgSgVFMZwf+5oWEyPUyJbzQ5mPQLc0xnp9tGfKvCmPwWpAKp09izMqyNKZE3Ja2CHg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PIMwLhdWP6yzHu3FsauJvwxhg/uG3MPJA9SWocZjuNQ=; b=n36Gk8RqqYFkQEAaLE06/HurRYhAMxhI6hfYsIs05Cs4q96wzPFM2Cr+9wkvz47i2O6lzSJa50p9C6Gc3hrwcrPvk7GI2wBUMgmWd72kPh0z9dzw/865GyJtxGS8ZeHP+cSh/9v9wKYVm5kKoNra9HFQFEBGX26DFt/rMoCHoIE= Received: from DM6PR11MB2572.namprd11.prod.outlook.com (2603:10b6:5:c8::31) by DM5PR11MB2012.namprd11.prod.outlook.com (2603:10b6:3:10::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.28; Thu, 9 Jul 2020 03:29:43 +0000 Received: from DM6PR11MB2572.namprd11.prod.outlook.com ([fe80::706f:31b:4c35:149d]) by DM6PR11MB2572.namprd11.prod.outlook.com ([fe80::706f:31b:4c35:149d%3]) with mapi id 15.20.3174.021; Thu, 9 Jul 2020 03:29:43 +0000 From: "Eads, Gage" To: "McDaniel, Timothy" , "jerinj@marvell.com" CC: "mattias.ronnblom@ericsson.com" , "dev@dpdk.org" , "Van Haaren, Harry" Thread-Topic: [PATCH 05/27] event/dlb: add DLB documentation Thread-Index: AQHWTD0HWrGeGAdXJEW28bOJpJso8aj+UAuA Date: Thu, 9 Jul 2020 03:29:43 +0000 Message-ID: References: <1593232671-5690-1-git-send-email-timothy.mcdaniel@intel.com> <1593232671-5690-6-git-send-email-timothy.mcdaniel@intel.com> In-Reply-To: <1593232671-5690-6-git-send-email-timothy.mcdaniel@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [134.134.136.211] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 46dea326-c5d2-4278-8294-08d823b8523b x-ms-traffictypediagnostic: DM5PR11MB2012: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 04599F3534 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: BFdpPx+hr0BxIY6tLHsYCmo+dgfich5TnE2NSA4BSoo1D9GNognhLDvH0KMHxNpnla0H+WtPqxgG9ooRRY9Ieo+sBYEmtk8E1hXx6ML15sDks6kGDTtckFsJ22xqJVdgMk+kzFLyAAlvOFpkAVjwRp/y+HsxpjK5TplySpN3ANfnQOACXsNl+qmobbjc1qBftgwFcze15VCrdQJ+VOm/ow2MBNuVntcn7p6+i+Y9NjGmzLEYcN2R9g68gLnxQiOzQ+fsaM6V4XO8AU37MRKh13WfN018PMZ/yYZtW49IvLWQCxZxFOoot5hVr04ZSIUytA6ixaSd9eC2SrHDWvzKeCltS2BIs3YjI4X14D5rIL1tXX1VA8wVIEdmp4GLnKbVHiVywMm5ikgWnXXm8dUAFg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB2572.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(346002)(366004)(39860400002)(376002)(136003)(396003)(76116006)(478600001)(8676002)(7696005)(4326008)(55016002)(9686003)(86362001)(33656002)(30864003)(110136005)(2906002)(54906003)(107886003)(316002)(8936002)(26005)(66446008)(52536014)(6506007)(186003)(66946007)(71200400001)(83380400001)(5660300002)(64756008)(66476007)(66556008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: leFZ5ZzFQuiHlizbS+ziWIhB37FYkgB9WvMjBdSoVZo/k7dkxKh7gigyQRRuikAb9hc8P0i8n0AhHqjki7AcAxR2cYkv4HqVCjDAXgVYxVFHYXBq9EUsgm6ZKfcYbZDfmZpbAcnHdqi2jCJ4KvzfUSSufvCLhxjYfOux4jWx2xNumMmzKFModaRrccF38tFta4QB2p/guU6uSoQAjHQwviSVdD28zK9KtYcL91SbRwvGTvxyocBfRwZZFtU3Zx87gWx7RsdxI4F4pRA7FZ6Q4pafec08gxmE7/FhpKVzvthEUeDp8kGgpi9F8M5e1p7HMdSvCRqcph6wdMoYUYpLQtbjl6Uh1spzDr2zjH6QGAJp3KLNyxDqPZ0F8rejw+ZFtd/yeWiyWtdj+ZbJXh/aY9Y0n0L/coMP8D7Imu2j4HKkkeA75Nb6pNSNpSf47OpFPr67ikWvJHWmO1QqDHaGIHGC4C8NI0qxFVo/y/Ld7H7pDL/wkmRe6S82fopUQ3lH Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB2572.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 46dea326-c5d2-4278-8294-08d823b8523b X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jul 2020 03:29:43.1832 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: tfzx4iz+nzm02RuE7LvPAk6rj5gtb0dnigTVCDKroFcXfuHF3THKnu9GDyhez4IVIwNNim0D7r/SuzmXNDr5Ug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB2012 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 05/27] event/dlb: add DLB documentation X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" SGkgVGltLA0KDQo+ICBkb2MvZ3VpZGVzL2V2ZW50ZGV2cy9kbGIucnN0IHwgIDQ5Nw0KPiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIDEgZmlsZSBjaGFuZ2Vk LCA0OTcgaW5zZXJ0aW9ucygrKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9ndWlkZXMvZXZl bnRkZXZzL2RsYi5yc3QNCj4gDQo+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL2V2ZW50ZGV2cy9k bGIucnN0IGIvZG9jL2d1aWRlcy9ldmVudGRldnMvZGxiLnJzdCBuZXcNCj4gZmlsZSBtb2RlIDEw MDY0NCBpbmRleCAwMDAwMDAwLi4yMWU0OGZlDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZG9j L2d1aWRlcy9ldmVudGRldnMvZGxiLnJzdA0KPiBAQCAtMCwwICsxLDQ5NyBAQA0KPiArLi4gIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gKyAgICBDb3B5cmlnaHQoYykg MjAyMCBJbnRlbCBDb3Jwb3JhdGlvbi4NCj4gKw0KPiArRHJpdmVyIGZvciB0aGUgSW50ZWzCriBE eW5hbWljIExvYWQgQmFsYW5jZXIgKERMQikNCj4gKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQo+ICsNCj4gK1RoZSBEUERLIGRsYiBwb2xsIG1vZGUg ZHJpdmVyIHN1cHBvcnRzIHRoZSBJbnRlbMKuIER5bmFtaWMgTG9hZCBCYWxhbmNlci4NCj4gKw0K PiArLi4gbm90ZTo6DQo+ICsNCj4gKyAgICBUaGlzIFBNRCBpcyBkaXNhYmxlZCBieSBkZWZhdWx0 IGluIHRoZSBidWlsZCBjb25maWd1cmF0aW9uIGZpbGVzLCBvd2luZyB0bw0KPiArICAgIGFuIGV4 dGVybmFsIGRlcGVuZGVuY3kgb24gdGhlIGBOZXRsaW5rIFByb3RvY29sIExpYnJhcnkgU3VpdGUN Cj4gKyAgICA8aHR0cDovL3d3dy5pbmZyYWRlYWQub3JnL350Z3IvbGlibmwvPmBfIChsaWJubC0z IGFuZCBsaWJubC1nZW5sLTMpIHdoaWNoDQo+ICsgICAgbXVzdCBiZSBpbnN0YWxsZWQgb24gdGhl IGJvYXJkLiAgT25jZSB0aGUgTmV0bGluayBsaWJyYXJpZXMgYXJlIGluc3RhbGxlZCwNCj4gKyAg ICB0aGUgUE1EIGNhbiBiZSBlbmFibGVkIGJ5IHNldHRpbmcgQ09ORklHX1JURV9MSUJSVEVfUE1E X0RMQl9RTT15DQo+IGFuZA0KPiArICAgIHJlY29tcGlsaW5nIHRoZSBEUERLLg0KPiArDQoNClRo aXMgZGVzY3JpcHRpb24gYXBwZWFycyB0byBiZSBvdXQtb2YtZGF0ZS4NCg0KPiArUHJlcmVxdWlz aXRlcw0KPiArLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICstIEZvbGxvdyB0aGUgRFBESyA6cmVmOmBH ZXR0aW5nIFN0YXJ0ZWQgR3VpZGUgZm9yIExpbnV4IDxsaW51eF9nc2c+YCB0bw0KPiArc2V0dXAN Cj4gKyAgdGhlIGJhc2ljIERQREsgZW52aXJvbm1lbnQuDQo+ICsNCj4gKy0gTGVhcm4gYWJvdXQg dGhlIERMQiBkZXZpY2UgYW5kIGl0cyBjYXBhYmlsaXRpZXMgYXQgYEludGVsIFN1cHBvcnQNCj4g KyAgPGh0dHA6Ly93d3cuaW50ZWwuY29tL3N1cHBvcnQ+YF8uIEZJWE1FOiBBZGQgcmVhbCBsaW5r IHdoZW4NCj4gK2RvY3VtZW50YXRpb24NCj4gKyAgYmVjb21lcyBhdmFpbGFibGUuDQoNCkxlZnRv dmVyIEZJWE1FDQoNCj4gKw0KPiArLSBUaGUgRExCIGtlcm5lbCBtb2R1bGUuIElmIGl0IGlzIG5v dCBpbmNsdWRlZCBpbiB0aGUgbWFjaGluZSdzIE9TDQo+ICsgIGRpc3RyaWJ1dGlvbiwgZG93bmxv YWQgaXQgZnJvbSA8RklYTUU6IEFkZCAwMS5vcmcgbGluayB3aGVuDQo+ICthdmFpbGFibGU+IGFu ZA0KPiArICBmb2xsb3cgdGhlIGJ1aWxkIGluc3RydWN0aW9ucy4NCj4gKw0KDQpMZWZ0b3ZlciBG SVhNRQ0KDQo8c25pcD4NCg0KPiArVGhlIGh5YnJpZCB0aW1lb3V0IGRhdGEgc3RydWN0dXJlcyBh cmUgY3VycmVudGx5IGxvY2F0ZWQgaW4NCj4gK2RyaXZlcnMvZXZlbnQvZGxiL2RsYl90aW1lb3V0 Lmg6DQo+ICsNCj4gKy4uIGNvZGUtYmxvY2s6OiBjDQo+ICsNCj4gKyAgICAgICAgc3RydWN0IHJ0 ZV9oeWJyaWRfdGltZW91dF90aWNrc182NCB7DQo+ICsgICAgICAgICAgICAgICAgUlRFX1NURF9D MTENCj4gKyAgICAgICAgICAgICAgICB1bmlvbiB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICB1aW50NjRfdCB2YWw2NDsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB7DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHBvbGxfdGlja3M6NjI7 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHVtb25pdG9yX3dh aXQ6MTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgaW50ZXJy dXB0X3dhaXQ6MTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIH07DQo+ICsgICAgICAgICAg ICAgICAgfTsNCj4gKyAgICAgICAgfTsNCj4gKyAgICAgICAgc3RydWN0IHJ0ZV9oeWJyaWRfdGlt ZW91dF9uc18zMiB7DQo+ICsgICAgICAgICAgICAgICAgUlRFX1NURF9DMTENCj4gKyAgICAgICAg ICAgICAgICB1bmlvbiB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB2YWwz MjsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB7DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHBvbGxfbnM6MzA7DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHVtb25pdG9yX3dhaXQ6MTsNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgaW50ZXJydXB0X3dhaXQ6MTsNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIH07DQo+ICsgICAgICAgICAgICAgICAgfTsNCj4gKyAgICAg ICAgfTsNCg0KSXMgdGhpcyBkZXNjcmlwdGlvbiBjb3JyZWN0PyBkbGJfdGltZW91dC5oIGlzbid0 IGludHJvZHVjZWQgaW4gdGhpcyBwYXRjaHNldC4NCg0KPiArDQo+ICtWQVMgQ29uZmlndXJhdGlv bg0KPiArfn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0KPiArQSBWQVMgaXMgYSBzY2hlZHVsaW5nIGRv bWFpbiwgb2Ygd2hpY2ggdGhlcmUgYXJlIDMyIGluIHRoZSBETEIuDQo+ICsoUHJvZHVjZXIgcG9y dHMgaW4gb25lIFZBUyBjYW5ub3QgZW5xdWV1ZSBldmVudHMgdG8gYSBkaWZmZXJlbnQgVkFTLA0K PiArZXhjZXB0IHRocm91Z2ggdGhlIGBEYXRhIE1vdmVyYF8uKSBXaGVuIGEgVkFTIGlzIGNvbmZp Z3VyZWQsIGl0DQoNCkkgYmVsaWV2ZSB0aGlzIGNyb3NzLVZBUyBjb21tZW50IGlzIG91dC1vZi1k YXRlLg0KDQo+ICthbGxvY2F0ZXMgbG9hZC1iYWxhbmNlZCBhbmQgZGlyZWN0ZWQgcXVldWVzLCBw b3J0cywgY3JlZGl0cywgYW5kIG90aGVyDQo+ICtoYXJkd2FyZSByZXNvdXJjZXMuIFNvbWUgVkFT IHJlc291cmNlIGFsbG9jYXRpb25zIGFyZSB1c2VyLWNvbnRyb2xsZWQNCj4gKy0tIHRoZSBudW1i ZXIgb2YgcXVldWVzLCBmb3IgZXhhbXBsZQ0KPiArLS0gYW5kIG90aGVycywgbGlrZSBjcmVkaXQg cG9vbHMgKG9uZSBkaXJlY3RlZCBhbmQgb25lIGxvYWQtYmFsYW5jZWQNCj4gK3Bvb2wgcGVyIFZB UyksIGFyZSBub3QuDQo+ICsNCj4gK1RoZSBkbGIgUE1EIGNyZWF0ZXMgYSBzaW5nbGUgVkFTIHBl ciBETEIgZGV2aWNlLiBTdXBwb3J0aW5nIG11bHRpcGxlDQo+ICtWQVNlcyBwZXIgRExCIGRldmlj ZSBpcyBhIHBsYW5uZWQgZmVhdHVyZSwgd2hlcmUgZWFjaCBWQVMgd2lsbCBiZQ0KPiArcmVwcmVz ZW50ZWQgYXMgYSBzZXBhcmF0ZSBldmVudCBkZXZpY2UuDQoNCklzIHRoaXMgY29tbWVudCB1cC10 by1kYXRlPyBQYXRjaCAxNiAoImV2ZW50L2RsYjogYWRkIGluZm9zX2dldCBhbmQgY29uZmlndXJl IikgaW5kaWNhdGVzIHRoYXQgbXVsdGlwbGUgZXZlbnQgZGV2aWNlcyBhcmUgc3VwcG9ydGVkLg0K DQo8c25pcD4NCg0KPiArSGFyZHdhcmUgQ3JlZGl0cw0KPiArfn5+fn5+fn5+fn5+fn5+fg0KPiAr DQo+ICtETEIgdXNlcyBhIGhhcmR3YXJlIGNyZWRpdCBzY2hlbWUgdG8gcHJldmVudCBzb2Z0d2Fy ZSBmcm9tIG92ZXJmbG93aW5nDQo+ICtoYXJkd2FyZSBldmVudCBzdG9yYWdlLCB3aXRoIGVhY2gg dW5pdCBvZiBzdG9yYWdlIHJlcHJlc2VudGVkIGJ5IGENCj4gK2NyZWRpdC4gQSBwb3J0IHNwZW5k cyBhIGNyZWRpdCB0byBlbnF1ZXVlIGFuIGV2ZW50LCBhbmQgaGFyZHdhcmUNCj4gK3JlZmlsbHMg dGhlIHBvcnRzIHdpdGggY3JlZGl0cyBhcyB0aGUgZXZlbnRzIGFyZSBzY2hlZHVsZWQgdG8gcG9y dHMuDQo+ICtSZWZpbGxzIGNvbWUgZnJvbSBjcmVkaXQgcG9vbHMsIGFuZCBlYWNoIHBvcnQgaXMg YSBtZW1iZXIgb2YgYQ0KPiArbG9hZC1iYWxhbmNlZCBjcmVkaXQgcG9vbCBhbmQgYSBkaXJlY3Rl ZCBjcmVkaXQgcG9vbC4gVGhlIGxvYWQtYmFsYW5jZWQNCj4gK2NyZWRpdHMgYXJlIHVzZWQgdG8g ZW5xdWV1ZSB0byBsb2FkLWJhbGFuY2VkIHF1ZXVlcywgYW5kIGRpcmVjdGVkIGNyZWRpdHMNCj4g YXJlIHVzZWQgZm9yIGRpcmVjdGVkIHF1ZXVlcy4NCj4gKw0KPiArQW4gZGxiIGV2ZW50ZGV2IGNv bnRhaW5zIG9uZSBsb2FkLWJhbGFuY2VkIGFuZCBvbmUgZGlyZWN0ZWQgY3JlZGl0DQoNCiJBbiBk bGIiIC0+ICJBIGRsYiINCg0KPiArcG9vbC4gVGhlc2UgcG9vbHMnIHNpemVzIGFyZSBjb250cm9s bGVkIGJ5IHRoZSBuYl9ldmVudHNfbGltaXQgZmllbGQgaW4NCj4gK3N0cnVjdCBydGVfZXZlbnRf ZGV2X2NvbmZpZy4gVGhlIGxvYWQtYmFsYW5jZWQgcG9vbCBpcyBzaXplZCB0byBjb250YWluDQo+ ICtuYl9ldmVudHNfbGltaXQgY3JlZGl0cywgYW5kIHRoZSBkaXJlY3RlZCBwb29sIGlzIHNpemVk IHRvIGNvbnRhaW4NCj4gK25iX2V2ZW50c19saW1pdC80IGNyZWRpdHMuIFRoZSBkaXJlY3RlZCBw b29sIHNpemUgY2FuIGJlIG92ZXJyaWRlbiB3aXRoDQo+ICt0aGUgbnVtX2Rpcl9jcmVkaXRzIHZk ZXYgYXJndW1lbnQsIGxpa2Ugc286DQo+ICsNCj4gKyAgICAuLiBjb2RlLWJsb2NrOjogY29uc29s ZQ0KPiArDQo+ICsgICAgICAgLS12ZGV2PWRsYjFfZXZlbnQsbnVtX2Rpcl9jcmVkaXRzPTx2YWx1 ZT4NCj4gKw0KPiArVGhpcyBjYW4gYmUgdXNlZCBpZiB0aGUgZGVmYXVsdCBhbGxvY2F0aW9uIGlz IHRvbyBsb3cgb3IgdG9vIGhpZ2ggZm9yDQo+ICt0aGUgc3BlY2lmaWMgYXBwbGljYXRpb24gbmVl ZHMuIFRoZSBQTUQgYWxzbyBzdXBwb3J0cyBhIHZkZXYgYXJnIHRoYXQNCj4gK2xpbWl0cyB0aGUg bWF4X251bV9ldmVudHMgcmVwb3J0ZWQgYnkgcnRlX2V2ZW50X2Rldl9pbmZvX2dldCgpOg0KPiAr DQo+ICsgICAgLi4gY29kZS1ibG9jazo6IGNvbnNvbGUNCj4gKw0KPiArICAgICAgIC0tdmRldj1k bGIxX2V2ZW50LG1heF9udW1fZXZlbnRzPTx2YWx1ZT4NCj4gKw0KPiArQnkgZGVmYXVsdCwgbWF4 X251bV9ldmVudHMgaXMgcmVwb3J0ZWQgYXMgdGhlIHRvdGFsIGF2YWlsYWJsZQ0KPiArbG9hZC1i YWxhbmNlZCBjcmVkaXRzLiBJZiBtdWx0aXBsZSBETEItYmFzZWQgYXBwbGljYXRpb25zIGFyZSBi ZWluZw0KPiArdXNlZCwgaXQgbWF5IGJlIGRlc2lyYWJsZSB0byBjb250cm9sIGhvdyBtYW55IGxv YWQtYmFsYW5jZWQgY3JlZGl0cw0KPiArZWFjaCBhcHBsaWNhdGlvbiB1c2VzLCBwYXJ0aWN1bGFy bHkgd2hlbiBhcHBsaWNhdGlvbihzKSBhcmUgd3JpdHRlbiB0bw0KPiArY29uZmlndXJlIG5iX2V2 ZW50c19saW1pdCBlcXVhbCB0byB0aGUgcmVwb3J0ZWQgbWF4X251bV9ldmVudHMuDQo+ICsNCj4g K0VhY2ggcG9ydCBpcyBhIG1lbWJlciBvZiBib3RoIGNyZWRpdCBwb29scy4gQSBwb3J0J3MgY3Jl ZGl0IGFsbG9jYXRpb24NCj4gK2lzIGRlZmluZWQgYnkgaXRzIGxvdyB3YXRlcm1hcmssIGhpZ2gg d2F0ZXJtYXJrLCBhbmQgcmVmaWxsIHF1YW50YS4NCj4gK1RoZXNlIHRocmVlIHBhcmFtZXRlcnMg YXJlIGNhbGN1bGF0ZWQgYnkgdGhlIGRsYiBQTUQgbGlrZSBzbzoNCj4gKw0KPiArLSBUaGUgbG9h ZC1iYWxhbmNlZCBoaWdoIHdhdGVybWFyayBpcyBzZXQgdG8gdGhlIHBvcnQncyBlbnF1ZXVlX2Rl cHRoLg0KPiArICBUaGUgZGlyZWN0ZWQgaGlnaCB3YXRlcm1hcmsgaXMgc2V0IHRvIHRoZSBtaW5p bXVtIG9mIHRoZQ0KPiArZW5xdWV1ZV9kZXB0aCBhbmQNCj4gKyAgdGhlIGRpcmVjdGVkIHBvb2wg c2l6ZSBkaXZpZGVkIGJ5IHRoZSB0b3RhbCBudW1iZXIgb2YgcG9ydHMuDQo+ICstIFRoZSByZWZp bGwgcXVhbnRhIGlzIHNldCB0byBoYWxmIHRoZSBoaWdoIHdhdGVybWFyay4NCj4gKy0gVGhlIGxv dyB3YXRlcm1hcmsgaXMgc2V0IHRvIHRoZSBtaW5pbXVtIG9mIDggYW5kIHRoZSByZWZpbGwgcXVh bnRhLg0KDQpGcm9tIHBhdGNoIDE5ICgiZXZlbnQvZGxiOiBhZGQgcG9ydF9zZXR1cCIpLCB0aGlz IHNob3VsZCBiZSAxNiBpbnN0ZWFkIG9mIDg6DQoNCisgICAgICAgY2ZnLmxkYl9jcmVkaXRfcXVh bnR1bSA9IGNmZy5sZGJfY3JlZGl0X2hpZ2hfd2F0ZXJtYXJrIC8gMjsNCisgICAgICAgY2ZnLmxk Yl9jcmVkaXRfbG93X3dhdGVybWFyayA9IFJURV9NSU4oMTYsIGNmZy5sZGJfY3JlZGl0X3F1YW50 dW0pOw0KKw0KKyAgICAgICBjZmcuZGlyX2NyZWRpdF9xdWFudHVtID0gY2ZnLmRpcl9jcmVkaXRf aGlnaF93YXRlcm1hcmsgLyAyOw0KKyAgICAgICBjZmcuZGlyX2NyZWRpdF9sb3dfd2F0ZXJtYXJr ID0gUlRFX01JTigxNiwgY2ZnLmRpcl9jcmVkaXRfcXVhbnR1bSk7DQoNCj4gKw0KPiArV2hlbiB0 aGUgZXZlbnRkZXYgaXMgc3RhcnRlZCwgZWFjaCBwb3J0IGlzIHByZS1hbGxvY2F0ZWQgYSBoaWdo DQo+ICt3YXRlcm1hcmsncyB3b3J0aCBvZiBjcmVkaXRzLiBGb3IgZXhhbXBsZSwgaWYgYW4gZXZl bnRkZXYgY29udGFpbnMgZm91cg0KPiArcG9ydHMgd2l0aCBlbnF1ZXVlIGRlcHRocyBvZiAzMiBh bmQgYSBsb2FkLWJhbGFuY2VkIGNyZWRpdCBwb29sIHNpemUgb2YNCj4gKzQwOTYsIGVhY2ggcG9y dCB3aWxsIHN0YXJ0IHdpdGggMzIgbG9hZC1iYWxhbmNlZCBjcmVkaXRzLCBhbmQgdGhlcmUNCj4g K3dpbGwgYmUgMzk2OCBjcmVkaXRzIGF2YWlsYWJsZSB0byByZXBsZW5pc2ggdGhlIHBvcnRzLiBU aHVzLCBhIHNpbmdsZQ0KPiArcG9ydCBpcyBub3QgY2FwYWJsZSBvZiBlbnF1ZXVlaW5nIHVwIHRv IHRoZSBuYl9ldmVudHNfbGltaXQgKHdpdGhvdXQNCj4gK2FueSBldmVudHMgYmVpbmcgZGVxdWV1 ZWQpLCBzaW5jZSB0aGUgb3RoZXIgcG9ydHMgYXJlIHJldGFpbmluZyB0aGVpcg0KPiAraW5pdGlh bCBjcmVkaXQgYWxsb2NhdGlvbjsgaW4gc2hvcnQsIGFsbCBwb3J0cyBtdXN0IGVucXVldWUgaW4g b3JkZXIgdG8gcmVhY2gNCj4gdGhlIGxpbWl0Lg0KPiArDQo+ICtJZiBhIHBvcnQgYXR0ZW1wdHMg dG8gZW5xdWV1ZSBhbmQgaGFzIG5vIGNyZWRpdHMgYXZhaWxhYmxlLCB0aGUgZW5xdWV1ZQ0KPiAr b3BlcmF0aW9uIHdpbGwgZmFpbCBhbmQgdGhlIGFwcGxpY2F0aW9uIG11c3QgcmV0cnkgdGhlIGVu cXVldWUuIENyZWRpdHMNCj4gK2FyZSByZXBsZW5pc2hlZCBhc3luY2hyb25vdXNseSBieSB0aGUg RExCIGhhcmR3YXJlLg0KPiArDQoNCjxzbmlwPg0KDQo+ICsNCj4gK09yZGVyZWQgRnJhZ21lbnRz DQo+ICt+fn5+fn5+fn5+fn5+fn5+fg0KPiArDQo+ICtUaGUgRExCIGhhcyBhIGZvdXJ0aCBlbnF1 ZXVlIHR5cGU6IHBhcnRpYWwgZW5xdWV1ZS4gV2hlbiBhIHRocmVhZCBpcw0KPiArcHJvY2Vzc2lu ZyBhbiBvcmRlcmVkIGV2ZW50LCBpdCBjYW4gcGVyZm9ybSB1cCB0byAxNiAicGFydGlhbCINCj4g K2VucXVldWVzLCB3aGljaCBhbGxvd3MgYSBzaW5nbGUgcmVjZWl2ZWQgb3JkZXJlZCBldmVudCB0 byByZXN1bHQgaW4gbXVsdGlwbGUNCj4gcmVvcmRlcmVkIGV2ZW50cy4NCj4gKw0KPiArRm9yIGV4 YW1wbGUsIGNvbnNpZGVyIHRoZSBjYXNlIHdoZXJlIHRocmVlIGV2ZW50cyAoQSwgdGhlbiBCLCB0 aGVuIEMpDQo+ICthcmUgZW5xdWV1ZWQgd2l0aCBvcmRlcmVkIHNjaGVkdWxpbmcgYW5kIGFyZSBy ZWNlaXZlZCBieSB0aHJlZSBkaWZmZXJlbnQNCj4gcG9ydHMuDQo+ICtUaGUgcG9ydHMgdGhhdCBy ZWNlaXZlIEEgYW5kIEMgZm9yd2FyZCBldmVudHMgQScgYW5kIEMnLCB3aGlsZSB0aGUgcG9ydA0K PiArdGhhdCByZWNlaXZlcyBCIGdlbmVyYXRlcyB0aHJlZSBwYXJ0aWFsIGVucXVldWVzIC0tIEIx JywgQjInLCBhbmQgQjMnDQo+ICstLSBmb2xsb3dlZCBieSBhIHJlbGVhc2Ugb3BlcmF0aW9uLiBU aGUgRExCIHdpbGwgcmVvcmRlciB0aGUgZXZlbnRzIGluIHRoZQ0KPiBmb2xsb3dpbmcgb3JkZXI6 DQo+ICsNCj4gK0EnLCBCMScsIEIyJywgQjMnLCBDJw0KPiArDQo+ICtUaGlzIGZ1bmN0aW9uYWxp dHkgaXMgbm90IGF2YWlsYWJsZSBleHBsaWNpdGx5IHRocm91Z2ggdGhlIGV2ZW50ZGV2DQo+ICtB UEksIGJ1dCB0aGUgZGxiIFBNRCBwcm92aWRlcyBpdCB0aHJvdWdoIGFuIGFkZGl0aW9uYWwgKERM Qi1zcGVjaWZpYykNCj4gK2V2ZW50IG9wZXJhdGlvbiwgUlRFX0VWRU5UX0RMQl9PUF9GUkFHLg0K DQpJIGRvbid0IGJlbGlldmUgdGhpcyBPUCB0eXBlIGFwcGVhcnMgaW4gdGhpcyBwYXRjaHNldC4N Cg0KPiArDQo+ICtEZWZlcnJlZCBTY2hlZHVsaW5nDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ ICsNCj4gK1RoZSBETEIgUE1EJ3MgZGVmYXVsdCBiZWhhdmlvciBmb3IgbWFuYWdpbmcgYSBDUSBp cyB0byAicG9wIiB0aGUgQ1ENCj4gK29uY2UgcGVyIGRlcXVldWVkIGV2ZW50IGJlZm9yZSByZXR1 cm5pbmcgZnJvbQ0KPiArcnRlX2V2ZW50X2RlcXVldWVfYnVyc3QoKS4gVGhpcyBmcmVlcyB0aGUg Y29ycmVzcG9uZGluZyBlbnRyaWVzIGluIHRoZQ0KPiArQ1EsIHdoaWNoIGVuYWJsZXMgdGhlIERM QiB0byBzY2hlZHVsZSBtb3JlIGV2ZW50cyB0byBpdC4NCj4gKw0KPiArVG8gc3VwcG9ydCBhcHBs aWNhdGlvbnMgc2Vla2luZyBmaW5lci1ncmFpbmVkIHNjaGVkdWxpbmcgY29udHJvbCAtLSBmb3IN Cj4gK2V4YW1wbGUgZGVmZXJyaW5nIHNjaGVkdWxpbmcgdG8gZ2V0IHRoZSBiZXN0IHBvc3NpYmxl IHByaW9yaXR5DQo+ICtzY2hlZHVsaW5nIGFuZCBsb2FkLWJhbGFuY2luZyAtLSB0aGUgUE1EIHN1 cHBvcnRzIGEgZGVmZXJyZWQgc2NoZWR1bGluZw0KPiArbW9kZS4gSW4gdGhpcyBtb2RlLCB0aGUg Q1EgZW50cnkgaXMgbm90IHBvcHBlZCB1bnRpbCB0aGUgKnN1YnNlcXVlbnQqDQo+ICtydGVfZXZl bnRfZGVxdWV1ZV9idXJzdCgpIGNhbGwuIFRoaXMgbW9kZSBvbmx5IGFwcGxpZXMgdG8gbG9hZC1i YWxhbmNlZA0KPiArZXZlbnQgcG9ydHMgd2l0aCBkZXF1ZXVlIGRlcHRoIG9mIDEuDQo+ICsNCj4g K1RvIGVuYWJsZSBkZWZlcnJlZCBzY2hlZHVsaW5nLCB1c2UgdGhlIGRlZmVyX3NjaGVkIHZkZXYg YXJndW1lbnQgbGlrZSBzbzoNCj4gKw0KPiArICAgIC4uIGNvZGUtYmxvY2s6OiBjb25zb2xlDQo+ ICsNCj4gKyAgICAgICAtLXZkZXY9ZGxiMV9ldmVudCxkZWZlcl9zY2hlZD1vbg0KPiArDQo+ICtB dG9taWMgSW5mbGlnaHRzIEFsbG9jYXRpb24NCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fg0KPiArDQo+ICtJbiB0aGUgbGFzdCBzdGFnZSBwcmlvciB0byBzY2hlZHVsaW5nIGFuIGF0b21p YyBldmVudCB0byBhIENRLCBETEINCj4gK2hvbGRzIHRoZSBpbmZsaWdodCBldmVudCBpbiBhIHRl bXBvcmFyeSBidWZmZXIgdGhhdCBpcyBkaXZpZGVkIGFtb25nDQo+ICtsb2FkLWJhbGFuY2VkIHF1 ZXVlcy4gSWYgYSBxdWV1ZSdzIGF0b21pYyBidWZmZXIgc3RvcmFnZSBmaWxscyB1cCwgdGhpcw0K PiArY2FuIHJlc3VsdCBpbiBoZWFkLW9mLWxpbmUtYmxvY2tpbmcuIEZvciBleGFtcGxlOg0KPiAr LSBBbiBMREIgcXVldWUgYWxsb2NhdGVkIE4gYXRvbWljIGJ1ZmZlciBlbnRyaWVzDQo+ICstIEFs bCBOIGVudHJpZXMgYXJlIGZpbGxlZCB3aXRoIGV2ZW50cyBmcm9tIGZsb3cgWCwgd2hpY2ggaXMg cGlubmVkIHRvIENRIDAuDQo+ICsNCj4gK1VudGlsIENRIDAgcmVsZWFzZXMgMSsgZXZlbnRzLCBu byBvdGhlciBhdG9taWMgZmxvd3MgZm9yIHRoYXQgTERCIHF1ZXVlDQo+ICtjYW4gYmUgc2NoZWR1 bGVkLiBUaGUgbGlrZWxpaG9vZCBvZiB0aGlzIGNhc2UgZGVwZW5kcyBvbiB0aGUgZXZlbnRkZXYN Cj4gK2NvbmZpZ3VyYXRpb24sIHRyYWZmaWMgYmVoYXZpb3IsIGV2ZW50IHByb2Nlc3NpbmcgbGF0 ZW5jeSwgcG90ZW50aWFsDQo+ICtmb3IgYSB3b3JrZXIgdG8gYmUgaW50ZXJydXB0ZWQgb3Igb3Ro ZXJ3aXNlIGRlbGF5ZWQsIGV0Yy4NCj4gKw0KPiArQnkgZGVmYXVsdCwgdGhlIFBNRCBhbGxvY2F0 ZXMgMTYgYnVmZmVyIGVudHJpZXMgZm9yIGVhY2ggbG9hZC1iYWxhbmNlZA0KPiArcXVldWUsIHdo aWNoIHByb3ZpZGVzIGFuIGV2ZW4gZGl2aXNpb24gYWNyb3NzIGFsbCAxMjggcXVldWVzIGJ1dA0K PiArcG90ZW50aWFsbHkgd2FzdGVzIGJ1ZmZlciBzcGFjZSAoZS5nLiBpZiBub3QgYWxsIHF1ZXVl cyBhcmUgdXNlZCwgb3INCj4gK2FyZW4ndCB1c2VkIGZvciBhdG9taWMgc2NoZWR1bGluZykuDQo+ ICsNCj4gK1RoZSBQTUQgcHJvdmlkZXMgYSBkZXYgYXJnIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0 IHBlci1xdWV1ZQ0KPiArYWxsb2NhdGlvbi4gVG8gaW5jcmVhc2UgYSB2ZGV2J3MgcGVyLXF1ZXVl IGF0b21pYy1pbmZsaWdodCBhbGxvY2F0aW9uIHRvIChmb3INCj4gZXhhbXBsZSkgNjQ6DQo+ICsN Cj4gKyAgICAuLiBjb2RlLWJsb2NrOjogY29uc29sZQ0KPiArDQo+ICsgICAgICAgLS12ZGV2PWRs YjFfZXZlbnQsYXRtX2luZmxpZ2h0cz02NA0KPiArDQoNClRoaXMgc2VjdGlvbiBpcyBkdXBsaWNh dGVkIGJlbG93Lg0KDQo+ICtBdG9taWMgSW5mbGlnaHRzIEFsbG9jYXRpb24NCj4gK35+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fg0KPiArDQo+ICtJbiB0aGUgbGFzdCBzdGFnZSBwcmlvciB0byBz Y2hlZHVsaW5nIGFuIGF0b21pYyBldmVudCB0byBhIENRLCBETEINCj4gK2hvbGRzIHRoZSBpbmZs aWdodCBldmVudCBpbiBhIHRlbXBvcmFyeSBidWZmZXIgdGhhdCBpcyBkaXZpZGVkIGFtb25nDQo+ ICtsb2FkLWJhbGFuY2VkIHF1ZXVlcy4gSWYgYSBxdWV1ZSdzIGF0b21pYyBidWZmZXIgc3RvcmFn ZSBmaWxscyB1cCwgdGhpcw0KPiArY2FuIHJlc3VsdCBpbiBoZWFkLW9mLWxpbmUtYmxvY2tpbmcu IEZvciBleGFtcGxlOg0KPiArLSBBbiBMREIgcXVldWUgYWxsb2NhdGVkIE4gYXRvbWljIGJ1ZmZl ciBlbnRyaWVzDQo+ICstIEFsbCBOIGVudHJpZXMgYXJlIGZpbGxlZCB3aXRoIGV2ZW50cyBmcm9t IGZsb3cgWCwgd2hpY2ggaXMgcGlubmVkIHRvIENRIDAuDQo+ICsNCj4gK1VudGlsIENRIDAgcmVs ZWFzZXMgMSsgZXZlbnRzLCBubyBvdGhlciBhdG9taWMgZmxvd3MgZm9yIHRoYXQgTERCIHF1ZXVl DQo+ICtjYW4gYmUgc2NoZWR1bGVkLiBUaGUgbGlrZWxpaG9vZCBvZiB0aGlzIGNhc2UgZGVwZW5k cyBvbiB0aGUgZXZlbnRkZXYNCj4gK2NvbmZpZ3VyYXRpb24sIHRyYWZmaWMgYmVoYXZpb3IsIGV2 ZW50IHByb2Nlc3NpbmcgbGF0ZW5jeSwgcG90ZW50aWFsDQo+ICtmb3IgYSB3b3JrZXIgdG8gYmUg aW50ZXJydXB0ZWQgb3Igb3RoZXJ3aXNlIGRlbGF5ZWQsIGV0Yy4NCj4gKw0KPiArQnkgZGVmYXVs dCwgdGhlIFBNRCBhbGxvY2F0ZXMgMTYgYnVmZmVyIGVudHJpZXMgZm9yIGVhY2ggbG9hZC1iYWxh bmNlZA0KPiArcXVldWUsIHdoaWNoIHByb3ZpZGVzIGFuIGV2ZW4gZGl2aXNpb24gYWNyb3NzIGFs bCAxMjggcXVldWVzIGJ1dA0KPiArcG90ZW50aWFsbHkgd2FzdGVzIGJ1ZmZlciBzcGFjZSAoZS5n LiBpZiBub3QgYWxsIHF1ZXVlcyBhcmUgdXNlZCwgb3INCj4gK2FyZW4ndCB1c2VkIGZvciBhdG9t aWMgc2NoZWR1bGluZykuDQo+ICsNCj4gK1RoZSBQTUQgcHJvdmlkZXMgYSBkZXYgYXJnIHRvIG92 ZXJyaWRlIHRoZSBkZWZhdWx0IHBlci1xdWV1ZQ0KPiArYWxsb2NhdGlvbi4gVG8gaW5jcmVhc2Ug YSB2ZGV2J3MgcGVyLXF1ZXVlIGF0b21pYy1pbmZsaWdodCBhbGxvY2F0aW9uIHRvIChmb3INCj4g ZXhhbXBsZSkgNjQ6DQo+ICsNCj4gKyAgICAuLiBjb2RlLWJsb2NrOjogY29uc29sZQ0KPiArDQo+ ICsgICAgICAgLS12ZGV2PWRsYjFfZXZlbnQsYXRtX2luZmxpZ2h0cz02NA0KPiAtLQ0KPiAxLjcu MTANCg0KVGhhbmtzLA0KR2FnZQ0K