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 3EB98A0350 for ; Tue, 30 Jun 2020 06:42:04 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E18731BEA3; Tue, 30 Jun 2020 06:42:03 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id AB5C51BE90 for ; Tue, 30 Jun 2020 06:42:01 +0200 (CEST) IronPort-SDR: hry4/DFWcn0xARuNpYIFvV/2I9FAakNKx6tiNCVev80xo5qZmrRvP04+f/xXE2MjqpVkY0adRZ 9eZnIKIE3VYQ== X-IronPort-AV: E=McAfee;i="6000,8403,9666"; a="146134644" X-IronPort-AV: E=Sophos;i="5.75,296,1589266800"; d="scan'208";a="146134644" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jun 2020 21:42:00 -0700 IronPort-SDR: QvwoV8Rp8zuYQsi62YsmCCyO8H7pku4q7CY6/uqlxr50Umr3/thOXqKC/Cc113kmiZkOBHZZlQ hBKGx3zFxriQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,296,1589266800"; d="scan'208";a="295091239" Received: from orsmsx101.amr.corp.intel.com ([10.22.225.128]) by orsmga002.jf.intel.com with ESMTP; 29 Jun 2020 21:42:00 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX101.amr.corp.intel.com (10.22.225.128) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 29 Jun 2020 21:42:00 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 29 Jun 2020 21:41:59 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 29 Jun 2020 21:41:59 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.177) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 29 Jun 2020 21:41:59 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JNT+uARkEKNOEbVyfMYTcnpRKVvJY48cPAFydTtSCvmwP2FRhX/L4izjV3+6s+6P/o311GXFdLy2Bn5XcswQ1r0ytZ1Vdkcfb1ALfotWyks1FtOnEtQ7ilrLQGV6FCFQ8QCpVogVxSC5Fbmso9D3BGNmw22NZ9kKMre1kjkbE8VEAQRdNtQ5lpIYbkJiRRqw99gn5gN0A0p/p2lsF9QOUgx8rsYBASCJmC91zgWL0VWo3ey26us0zprcc3HVp/VXoXLqdX47+F4ZX7hXV0teWNJli55Ikmdjl8yF6zG5L9hp4EIqnvywcza+Z0P7boFoyvGLNynWN+9h73bm348bLQ== 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=xrGF3ieQ6bqhH2JNTZCTvbSG8PiAhTa8jzeKOCes2vU=; b=jsZrUhRheXj3ecXAvI3fzVris2ZHG46LqIwHeUFKaO8z2VUpSGFmrm978bkKTrNNIsNVwzK1bpNZmmk3zguhxglIauUXpJAHkFP3uTNftskoR5TK4mAQV7TWXehkmfWQyNXgIvgjbmlPNYcEDRVPUdejkF+JrolUVKBUpx4SxKOcaOUYQI2r+Yv4ZP3MNO9Eq8HwwbgghuLRlH3A/JMhkcd8hjem28fjrzjJuG5GMK/zkfOL5piAZvVDx2wKE1Hkv2KSPPhNM0tLAMSWBRp0r1EDRhy8/hM/pbjQtdFARsZl3ZXwVfVzjCCxWw6WEKLsk9T0hAjxttiWcw9BvtEFHA== 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=xrGF3ieQ6bqhH2JNTZCTvbSG8PiAhTa8jzeKOCes2vU=; b=BJJaEPJR8jfI/bvBJEAp26PYNI2fnjB/zid2gn9YasE1YEfdmy3WWxmf/nGQorIea34Gkde8rApf6Kc3pP+cMV0aEsqhfXtuIVP3UEwpzWPvx5QpTC3tBzQCwTNQk4s+4KlRmx/5E/YikDkfHnbiCUui8810GFdT6EVcP0eLGkk= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB4046.namprd11.prod.outlook.com (2603:10b6:208:13b::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Tue, 30 Jun 2020 04:41:57 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::7cde:8326:5010:c47e]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::7cde:8326:5010:c47e%7]) with mapi id 15.20.3131.028; Tue, 30 Jun 2020 04:41:57 +0000 From: "Xia, Chenbo" To: Vipul Ujawane , David Christensen CC: "users@dpdk.org" Thread-Topic: [dpdk-users] Poor performance when using OVS with DPDK Thread-Index: AQHWShda3tDxpHTCu0yD0wMgKWO07qjpobuAgAEFb4CAAKXLgIAD/sWAgAFQODA= Date: Tue, 30 Jun 2020 04:41:57 +0000 Message-ID: References: <80f92bdf-7c29-31fa-3be8-dcaee8d9e4a7@linux.vnet.ibm.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 850235d6-2974-4043-4d01-08d81cafebfa x-ms-traffictypediagnostic: MN2PR11MB4046: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 0450A714CB x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: aNHt4yfizgVxwpA8vpTmc+kzjEcHsqz5ixKJ4XzrkBQSIwvL+W6IDuLw47BswgyIiUQEApVsbOushXx2gwYUEnaUFwabaTXkFwfKsOJJut7PpuGfMJxS+FQKVwW921rd7S6Y4zjzeftRxYkjXPJUFsNRHYe4lT3gc45UDN8bno3/n1En/dpFhVxJ/Zm63etHVvVJHBbm0zncfbQBRfARmuos6P3FrrOCCvxqtKoYQQPDBrCRdl122vl7xgA5pZIwkDuubNOsiRwC+jYIdMTXkF0g5OhKDYtGIN/ltA1NZoSF/jC31RpjXbcNTEMu2tlX5TGJ4sSEGQT1/xCBSBrr4iimR547c5p+gGGIR/H9Rgralyky1y1TbDl2wJsUJA0VdL5+DcKfO/SzRvi9kHrU6Q== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(366004)(136003)(346002)(396003)(376002)(66946007)(66446008)(66556008)(64756008)(66476007)(71200400001)(8676002)(55016002)(8936002)(86362001)(9686003)(76116006)(52536014)(316002)(478600001)(7696005)(53546011)(110136005)(6506007)(4326008)(26005)(186003)(966005)(2906002)(30864003)(33656002)(5660300002)(83380400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: p4spk9BH5wyI6vyKZOYvzDrmHi8XrKbz17EwUZ9LYZoeZglB0SXYVUf6IajIu1jitTMR+otDGZ5UkgqQJWpjniJK1IQ9uAC0p2caHVy11xVffy/Y2+3d1h8KgZbmXuxSz/VapvGhpKmSUytFZClQetb/PQZMSYEVu8e/Ufx1YHQ8+s16aWxkNyU0mpOXgcUMIeoLtmaYimHhcK/fXCZS4QG7G3TmA+DUbcDqAmuWIeBX8GhgMX53y23NnoHfekjOB+2NLQV2K9YMOmbPJsGXndX07u0Ns2Qo4V9lBcb0E60YcHYG8qC+zpIZrK+vY2sF3xbYAuX3G0arj60lahNRepJ8fE9pjdWNQksUoCuGsoAri6taQlGeeXfmVwzEJMy5wlTMDY9Vi0NZWKKn2NwaV3vsTYX0pAPHgvno29FLzXtb5jHC5Tf6exFEVtDJfKEOIgtzj7HoypF+xKIddVE1RxcCxLOU7TlBjGsM3/oP4QYMbbSIFvciwNaxlb/svnk7 x-ms-exchange-transport-forked: True 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: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 850235d6-2974-4043-4d01-08d81cafebfa X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jun 2020 04:41:57.5749 (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: KIWf2oZBh6M73zugZTwl3x977V2ejBVKQieS3cLZA6HSj9SkDjhNFE+VUVhj8bhXf1uZucRmQOIdGdZP3VcIYQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4046 X-OriginatorOrg: intel.com Subject: Re: [dpdk-users] Poor performance when using OVS with DPDK X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org Sender: "users" SGkgVmlwdWwsDQoNCkRpZCB5b3UgY2hlY2sgdGhlIGNvcmUgYWZmaW5pdHkgb2YgZm9yd2FyZGlu ZyB0aHJlYWQgaW4gT1ZTPyBGb3Igb3B0IHBlcmYsIG9uZSBmd2QgdGhyZWFkIHNob3VsZCB0YWtl IG9uZSBkZWRpY2F0ZWQgY29yZS4NCg0KQlJzLA0KQ2hlbmJvDQoNCj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gRnJvbTogdXNlcnMgPHVzZXJzLWJvdW5jZXNAZHBkay5vcmc+IE9uIEJl aGFsZiBPZiBWaXB1bCBVamF3YW5lDQo+IFNlbnQ6IE1vbmRheSwgSnVuZSAyOSwgMjAyMCA0OjMz IFBNDQo+IFRvOiBEYXZpZCBDaHJpc3RlbnNlbiA8ZHJjQGxpbnV4LnZuZXQuaWJtLmNvbT4NCj4g Q2M6IHVzZXJzQGRwZGsub3JnDQo+IFN1YmplY3Q6IFJlOiBbZHBkay11c2Vyc10gUG9vciBwZXJm b3JtYW5jZSB3aGVuIHVzaW5nIE9WUyB3aXRoIERQREsNCj4gDQo+IFNvLA0KPiA+IFlvdSBkb24n dCBtZW50aW9uIGhvdyBtYW55IGRpZmZlcmVudCBmbG93cyB5b3UncmUgdXNpbmcgaW4gdGhlIHRl c3QuDQo+IERvbid0IGJlIHN1cnByaXNlZCBhcyB0aHJvdWdocHV0IGRyb3BzIHdoZW4geW91IG1v dmUgZnJvbSAxLDAwMCBmbG93cyB0bw0KPiAxLDAwMCwwMDAgZmxvd3MuDQo+IA0KPiBXZSBjdXJy ZW50bHkgb25seSBoYXZlIDEgZmxvdywgdGhlIGJhc2ljIHBhY2tldCBmb3J3YXJkaW5nIHJ1bGUu IFdlIHVzZWQgcGt0Z2VuDQo+IHN0YW5kYXJkIGJ1aWx0LWluIHBhY2tldCBnZW5lcmF0aW9uIHdp dGhvdXQgYW55IHBjYXAgb3Igc2NyaXB0IHRoYXQgd291bGQNCj4gY2hhbmdlIHRoZSBmbG93cyEN Cj4gVGhlcmVmb3JlLCBpbmNyZWFzaW5nIHRoZSBudW1iZXIgb2YgcXVldWVzIChhbmQgY29yZXMv cXVldWVzKSBjYW5ub3QgaGVscDsNCj4gdGhhdCBmbG93IHdpbGwgYWx3YXlzIGJlIGhhbmRsZWQg aW4gb25lIHNwZWNpZmljIHF1ZXVlLg0KPiANCj4gSW5jcmVhc2luZyB0aGUgb3ZlcmFsbCBjb3Jl IGFzc2lnbm1lbnQgdG8gRFBESyBzaG91bGQgdGhlbiBoZWxwLCBidXQgaXQgZG9lcyBub3QuDQo+ IE9uIHRoZSBvdGhlciBoYW5kLCB3ZSB0ZXN0ZWQgYWdhaW4gdGhlIFZNLXRvLVZNIHBlcmZvcm1h bmNlIGFzIHdlbGwgdmlhIGlwZXJmDQo+IGFuZCB0aGUgZHBka3Zob3N0IHVzZXIgaW50ZXJmYWNl cyBpbiB0aGUgS1ZNIG1hY2hpbmVzLCBidXQgdGhlIHBlcmZvcm1hbmNlIGlzDQo+IHN0aWxsIGJh ZCB3aXRoIHRoZSBuZXcgc2V0dGluZ3MsIGFsdGhvdWdoIGEgYml0IGluY3JlYXNlZDsgaXQncyBh cm91bmQgMTBHIG5vdy4NCj4gTm90ZSBhZ2FpbiwgaXQncyBpcGVyZiB1c2luZyBUQ1AgYW5kIE1U VSBzaXplZCBwYWNrZXRzIChidXQgd2l0aCBPVlMtIEtlcm5lbCwgdGhlDQo+IHBlcmZvcm1hbmNl IGlzIDIwRyB3aXRoIGEgc2ltaWxhciBzZXR1cCkuDQo+IA0KPiBUaGFua3MuDQo+IA0KPiBPbiBT YXQsIEp1biAyNywgMjAyMCBhdCAzOjMyIEFNIERhdmlkIENocmlzdGVuc2VuIDxkcmNAbGludXgu dm5ldC5pYm0uY29tPg0KPiB3cm90ZToNCj4gDQo+ID4gPiAgPiBXaHkgZG9uJ3QgeW91IHJlc2Vy dmUgYW55IENQVXMgZm9yIE9WUy9EUERLIG9yIFZNIHVzYWdlPyAgQWxsICA+DQo+ID4gPiBwdWJs aXNoZWQgID4gcGVyZm9ybWFuY2Ugd2hpdGUgcGFwZXJzIHJlY29tbWVuZCBzZXR0aW5ncyBmb3Ig Q1BVDQo+ID4gPiBpc29sYXRpb24gbGlrZSAgPiB0aGlzICA+IE1lbGxhbm94IERQREsgcGVyZm9y bWFuY2UgcmVwb3J0Og0KPiA+ID4gID4NCj4gPiA+ICA+DQo+ID4gPg0KPiA+DQo+IGh0dHBzOi8v ZmFzdC5kcGRrLm9yZy9kb2MvcGVyZi9EUERLXzE5XzA4X01lbGxhbm94X05JQ19wZXJmb3JtYW5j ZV9yZXANCj4gPiBvcnQucGRmDQo+ID4gPiA8DQo+ID4gaHR0cHM6Ly9tYWlsdHJhY2suaW8vdHJh Y2UvbGluay9kODIwYTNiYzM3YWU0OWU5MjM1MWVmNzg1ZTNjZmI0YzIxYWI1ZA0KPiA+DQo+IDNj P3VybD1odHRwcyUzQSUyRiUyRmZhc3QuZHBkay5vcmclMkZkb2MlMkZwZXJmJTJGRFBES18xOV8w OF9NZWxsYW4NCj4gb3hfDQo+ID4gTklDX3BlcmZvcm1hbmNlX3JlcG9ydC5wZGYmdXNlcklkPTE4 NDAzNjUmc2lnbmF0dXJlPWVkYTE3N2IzOTQ3NWZhYzYNCj4gPiA+DQo+ID4gPiAgPg0KPiA+ID4g ID4gRm9yIHRoZWlyIHRlc3Qgc3lzdGVtOg0KPiA+ID4gID4NCj4gPiA+ICA+IGlzb2xjcHVzPTI0 LTQ3IGludGVsX2lkbGUubWF4X2NzdGF0ZT0wIHByb2Nlc3Nvci5tYXhfY3N0YXRlPTAgID4NCj4g PiA+IGludGVsX3BzdGF0ZT1kaXNhYmxlIG5vaHpfZnVsbD0yNC00NyAgPiByY3Vfbm9jYnM9MjQt NDcNCj4gPiA+IHJjdV9ub2NiX3BvbGwgZGVmYXVsdF9odWdlcGFnZXN6PTFHIGh1Z2VwYWdlc3o9 MUcgID4gaHVnZXBhZ2VzPTY0DQo+ID4gPiBhdWRpdD0wICA+IG5vc29mdGxvY2t1cCAgPiAgPiBV c2luZyB0aGUgdHVuZWQgc2VydmljZSAoQ1BVDQo+ID4gPiBwYXJ0aXRpb25pbmcgcHJvZmlsZSkg bWFrZSB0aGlzIHByb2Nlc3MgID4gZWFzaWVyOg0KPiA+ID4gID4NCj4gPiA+ICA+IGh0dHBzOi8v dHVuZWQtcHJvamVjdC5vcmcvDQo+ID4gPiA8DQo+ID4gaHR0cHM6Ly9tYWlsdHJhY2suaW8vdHJh Y2UvbGluay80ZjNmNDc0NTdjNzE2M2FhY2ZlNmJiMTA4YzZlZmY1NTRiZTljZA0KPiA+IDRkP3Vy bD1odHRwcyUzQSUyRiUyRnR1bmVkLQ0KPiBwcm9qZWN0Lm9yZyUyRiZ1c2VySWQ9MTg0MDM2NSZz aWduYXR1cmU9ZjE1DQo+ID4gMDRiNDA1ZDllODgwZg0KPiA+ID4NCj4gPiA+ICA+DQo+ID4gPiBO aWNlIHR1dG9yaWFsLCB0aGFua3MgZm9yIHNoYXJpbmcuIEkgaGF2ZSBjaGVja2VkIGl0IGFuZCBj b25maWd1cmVkDQo+ID4gPiBvdXIgc2VydmVyIGxpa2UgdGhpczoNCj4gPiA+DQo+ID4gPiBpc29s Y3B1cz0xMi0xOSBpbnRlbF9pZGxlLm1heF9jc3RhdGU9MCBwcm9jZXNzb3IubWF4X2NzdGF0ZT0w DQo+ID4gPiBub2h6X2Z1bGw9MTItMTkgcmN1X25vY2JzPTEyLTE5IGludGVsX3BzdGF0ZT1kaXNh YmxlDQo+ID4gPiBkZWZhdWx0X2h1Z2VwYWdlc3o9MUcgaHVnZXBhZ2Vzej0xRyBodWdlcGFnZXM9 MjQgYXVkaXQ9MA0KPiA+ID4gbm9zb2Z0bG9ja3VwIGludGVsX2lvbW11PW9uIGlvbW11PXB0IHJj dV9ub2NiX3BvbGwNCj4gPiA+DQo+ID4gPg0KPiA+ID4gRXZlbiB0aG91Z2ggb3VyIHNlcnZlcnMg YXJlIE5VTUEtY2FwYWJsZSBhbmQgTlVNQS1hd2FyZSwgd2Ugb25seQ0KPiA+ID4gaGF2ZSBvbmUg Q1BVIGluc3RhbGxlZCBpbiBvbmUgc29ja2V0Lg0KPiA+ID4gQW5kIG9uZSBDUFUgaGFzIDIwIHBo eXNpY2FsIGNvcmVzICg0MCB0aHJlYWRzKSwgc28gSSBmaWd1cmVkIG91dCB0bw0KPiA+ID4gdXNl IHRoZSAidG9wLW1vc3QiIGNvcmVzIGZvciBEUERLL09WUywgdGhhdCdzIHRoZSByZWFzb24gb2YN Cj4gPiA+IGlzb2xjcHVzPTEyLTE5DQo+ID4NCj4gPiBZb3UgY2FuIG5ldmVyIGhhdmUgdG9vIG1h bnkgY29yZXMuICBPbiBQT1dFUiBzeXN0ZW1zIEknbGwgc29tZXRpbWVzDQo+ID4gcmVzZXJ2ZSA3 NiBvdXQgb2YgODAgYXZhaWxhYmxlIGNvcmVzIHRvIGltcHJvdmUgb3ZlcmFsbCB0aHJvdWdocHV0 Lg0KPiA+DQo+ID4gPiAgPiA+DQo+ID4gPiAgPiA+IC4vdXNlcnRvb2xzL2RwZGstZGV2YmluZC5w eSAtLXN0YXR1cyAgPiA+IE5ldHdvcmsgZGV2aWNlcyB1c2luZw0KPiA+ID4ga2VybmVsIGRyaXZl ciAgPiA+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4gPiAgPiA+IDAw MDA6YjM6MDAuMCAnTVQyNzgwMCBGYW1pbHkgW0Nvbm5lY3RYLTVdIDEwMTcnIGlmPWVuczIgID4N Cj4gPiA+IGRydj1tbHg1X2NvcmUgID4gPiB1bnVzZWQ9aWdiX3Vpbyx2ZmlvLXBjaSAgPiA+ICA+ ID4gRHVlIHRvIHRoZSB3YXkNCj4gPiA+IGhvdyBNZWxsYW5veCBjYXJkcyBhbmQgdGhlaXIgZHJp dmVyIHdvcmssIEkgaGF2ZSBub3QgID4gYm9uZCAgPiA+DQo+ID4gPiBpZ2JfdWlvIHRvIHRoZSBp bnRlcmZhY2UsIGhvd2V2ZXIsIHVpbywgaWdiX3VpbyBhbmQgdmZpby1wY2kga2VybmVsDQo+ID4g PiA+IG1vZHVsZXMgID4gPiBhcmUgbG9hZGVkLg0KPiA+ID4gID4gPg0KPiA+ID4gID4gPg0KPiA+ ID4gID4gPiBSZWxldmFudCBwYXJ0IG9mIHRoZSBWTS1jb25maWcgZm9yIFFlbXUvS1ZNICA+ID4N Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ ICA+ID4gICAgPGNwdXR1bmU+DQo+ID4gPiAgPiA+ICAgICAgPHNoYXJlcz40MDk2PC9zaGFyZXM+ DQo+ID4gPiAgPiA+ICAgICAgPHZjcHVwaW4gdmNwdT0nMCcgY3B1c2V0PSc0Jy8+DQo+ID4gPiAg PiA+ICAgICAgPHZjcHVwaW4gdmNwdT0nMScgY3B1c2V0PSc1Jy8+DQo+ID4gPiAgPg0KPiA+ID4g ID4gV2hlcmUgZGlkIHlvdSBnZXQgdGhlc2UgQ1BVIG1hcHBpbmcgdmFsdWVzPyAgeDg2IHN5c3Rl bXMNCj4gPiA+IHR5cGljYWxseSAgPiBtYXAgID4gZXZlbi1udW1iZXJlZCBDUFVzIHRvIG9uZSBO VU1BIG5vZGUgYW5kDQo+ID4gPiBvZGQtbnVtYmVyZWQgQ1BVcyB0byBhICA+IGRpZmZlcmVudCAg PiBOVU1BIG5vZGUuICBZb3UgZ2VuZXJhbGx5DQo+ID4gPiB3YW50IHRvIHNlbGVjdCBDUFVzIGZy b20gdGhlIHNhbWUgTlVNQSBub2RlICA+IGFzICA+IHRoZSBtbHg1IE5JQw0KPiA+ID4geW91J3Jl IHVzaW5nIGZvciBEUERLLg0KPiA+ID4gID4NCj4gPiA+ICA+IFlvdSBzaG91bGQgaGF2ZSBhdCBs ZWFzdCA0IENQVXMgaW4gdGhlIFZNLCBzZWxlY3RlZCBhY2NvcmRpbmcgdG8NCj4gPiA+IHRoZSAg PiBOVU1BIHRvcG9sb2d5IG9mIHRoZSBzeXN0ZW0uDQo+ID4gPiBhcyBwZXIgbXkgYW5zd2VyIGFi b3ZlLCBvdXIgc3lzdGVtIGhhcyBubyBzZWNvbmRhcnkgTlVNQSBub2RlLCBhbGwNCj4gPiA+IG1h cHBpbmdzIGFyZSB0byB0aGUgc2FtZSBzb2NrZXQvQ1BVLg0KPiA+ID4NCj4gPiA+ICA+DQo+ID4g PiAgPiBUYWtlIGEgbG9vayBhdCB0aGlzIGJhc2ggc2NyaXB0IHdyaXR0ZW4gZm9yIFJlZCBIYXQ6 DQo+ID4gPiAgPg0KPiA+ID4gID4NCj4gPiA+DQo+ID4gaHR0cHM6Ly9naXRodWIuY29tL2N0cmF1 dG1hL1JIRUxfTklDX1FVQUxJRklDQVRJT04vYmxvYi9hbnNpYmxlL2Fuc2libA0KPiA+IGUvZ2V0 X2NwdWxpc3Quc2gNCj4gPiA+IDwNCj4gPiBodHRwczovL21haWx0cmFjay5pby90cmFjZS9saW5r L2NmNzRlMGM2OWFjYjZkOWEzNDg2MDY2MDY4MjVhMDMyMDg5ODgyDQo+ID4NCj4gNGE/dXJsPWh0 dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRmN0cmF1dG1hJTJGUkhFTF9OSUNfUVVBTElGSUNBVElP DQo+IE4lMkYNCj4gPiBibG9iJTJGYW5zaWJsZSUyRmFuc2libGUlMkZnZXRfY3B1bGlzdC5zaCZ1 c2VySWQ9MTg0MDM2NSZzaWduYXR1cmU9OTg4DQo+ID4gNGY4ZWEyYjQyMzk5ZA0KPiA+ID4NCj4g PiA+ICA+DQo+ID4gPiAgPiBJdCBnaXZlcyB5b3UgYSBnb29kIHN0YXJ0aW5nIHJlZmVyZW5jZSB3 aGljaCBDUFVzIHRvIHNlbGVjdCBmb3INCj4gPiA+IHRoZSAgPiBPVlMvRFBESyBhbmQgVk0gY29u ZmlndXJhdGlvbnMgb24geW91ciBwYXJ0aWN1bGFyIHN5c3RlbS4NCj4gPiA+IEFsc28gID4gcmV2 aWV3ICA+IHRoZSBBbnNpYmxlIHNjcmlwdCBwdnBfb3ZzZHBkay55bWwsIGl0IHByb3ZpZGVzIGEN Cj4gPiA+IGxvdCBvZiBvdGhlciAgPiB1c2VmdWwgID4gc3RlcHMgeW91IG1pZ2h0IGJlIGFibGUg dG8gYXBwbHkgdG8geW91cg0KPiA+ID4gRGViaWFuIE9TLg0KPiA+ID4gID4NCj4gPiA+ICA+ID4g ICAgICA8ZW11bGF0b3JwaW4gY3B1c2V0PSc0LTUnLz4NCj4gPiA+ICA+ID4gICAgPC9jcHV0dW5l Pg0KPiA+ID4gID4gPiAgICA8Y3B1IG1vZGU9J2hvc3QtbW9kZWwnIGNoZWNrPSdwYXJ0aWFsJz4N Cj4gPiA+ICA+ID4gICAgICA8bW9kZWwgZmFsbGJhY2s9J2FsbG93Jy8+DQo+ID4gPiAgPiA+ICAg ICAgPHRvcG9sb2d5IHNvY2tldHM9JzInIGNvcmVzPScxJyB0aHJlYWRzPScxJy8+DQo+ID4gPiAg PiA+ICAgICAgPG51bWE+DQo+ID4gPiAgPiA+ICAgICAgICA8Y2VsbCBpZD0nMCcgY3B1cz0nMC0x JyBtZW1vcnk9JzQxOTQzMDQnIHVuaXQ9J0tpQicNCj4gPiA+ICA+ID4gbWVtQWNjZXNzPSdzaGFy ZWQnLz4NCj4gPiA+ICA+ID4gICAgICA8L251bWE+DQo+ID4gPiAgPiA+ICAgIDwvY3B1Pg0KPiA+ ID4gID4gPiAgICAgIDxpbnRlcmZhY2UgdHlwZT0ndmhvc3R1c2VyJz4NCj4gPiA+ICA+ID4gICAg ICAgIDxtYWMgYWRkcmVzcz0nMDA6MDA6MDA6MDA6MDA6YWEnLz4NCj4gPiA+ICA+ID4gICAgICAg IDxzb3VyY2UgdHlwZT0ndW5peCcNCj4gPiA+ICA+IHBhdGg9Jy91c3IvbG9jYWwvdmFyL3J1bi9v cGVudnN3aXRjaC92aG9zdHVzZXInDQo+ID4gPiAgPiA+IG1vJA0KPiA+ID4gID4gPiAgICAgICAg PG1vZGVsIHR5cGU9J3ZpcnRpbycvPg0KPiA+ID4gID4gPiAgICAgICAgPGRyaXZlciBxdWV1ZXM9 JzInPg0KPiA+ID4gID4gPiAgICAgICAgICA8aG9zdCBtcmdfcnhidWY9J29uJy8+DQo+ID4gPiAg Pg0KPiA+ID4gID4gSXMgdGhlcmUgYSByZXF1aXJlbWVudCBmb3IgbWVyZ2VhYmxlIFJYIGJ1ZmZl cnM/ICBTb21lIFBNRHMgbGlrZQ0KPiA+ID4gPiBtbHg1ICA+IGNhbiB0YWtlIGFkdmFudGFnZSBv ZiBTU0UgaW5zdHJ1Y3Rpb25zIHdoZW4gdGhpcyBpcw0KPiA+ID4gZGlzYWJsZWQsICA+IHlpZWxk aW5nICA+IGJldHRlciBwZXJmb3JtYW5jZS4NCj4gPiA+IEdvb2QgcG9pbnQsIHRoZXJlIGlzIG5v IHJlcXVpcmVtZW50LCBJIGp1c3QgdG9vayBhbiBleGFtcGxlIGNvbmZpZw0KPiA+ID4gYW5kIHRo b3VnaCBpdCdzIG5lY2Vzc2FyeSBmb3IgdGhlIGRyaXZlciBxdWV1ZXMgc2V0dGluZy4NCj4gPg0K PiA+IFRoYXQncyBob3cgd2UgYWxsIGxlYXJuIDotKQ0KPiA+DQo+ID4gPiAgPg0KPiA+ID4gID4g PiAgICAgICAgPC9kcml2ZXI+DQo+ID4gPiAgPiA+ICAgICAgICA8YWRkcmVzcyB0eXBlPSdwY2kn IGRvbWFpbj0nMHgwMDAwJyBidXM9JzB4MDcnIHNsb3Q9JzB4MDAnDQo+ID4gPiAgPiA+IGZ1bmN0 aW9uPScweDAnJA0KPiA+ID4gID4gPiAgICAgIDwvaW50ZXJmYWNlPg0KPiA+ID4gID4gPg0KPiA+ ID4gID4NCj4gPiA+ICA+IEkgZG9uJ3Qgc2VlIGh1Z2VwYWdlIHVzYWdlIGluIHRoZSBsaWJ2aXJ0 IFhNTC4gIFNvbWV0aGluZyBzaW1pbGFyIHRvOg0KPiA+ID4gID4NCj4gPiA+ICA+ICAgIDxtZW1v cnkgdW5pdD0nS2lCJz44Mzg4NjA4PC9tZW1vcnk+DQo+ID4gPiAgPiAgICA8Y3VycmVudE1lbW9y eSB1bml0PSdLaUInPjgzODg2MDg8L2N1cnJlbnRNZW1vcnk+DQo+ID4gPiAgPiAgICA8bWVtb3J5 QmFja2luZz4NCj4gPiA+ICA+ICAgICAgPGh1Z2VwYWdlcz4NCj4gPiA+ICA+ICAgICAgICA8cGFn ZSBzaXplPScxMDQ4NTc2JyB1bml0PSdLaUInIG5vZGVzZXQ9JzAnLz4NCj4gPiA+ICA+ICAgICAg PC9odWdlcGFnZXM+DQo+ID4gPiAgPiAgICA8L21lbW9yeUJhY2tpbmc+DQo+ID4gPiBJIGRpZCBu b3QgY29weSB0aGlzIHBhcnQgb2YgdGhlIFhNTCwgYnV0IHdlIGhhdmUgaHVnZXBhZ2VzDQo+ID4g PiBjb25maWd1cmVkIHByb3Blcmx5Lg0KPiA+ID4gID4NCj4gPiA+ICA+DQo+ID4gPiAgPiA+IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiAgPiA+IE9WUyBTdGFydCBD b25maWcNCj4gPiA+ICA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g PiA+ICA+ID4gb3ZzLXZzY3RsIC0tbm8td2FpdCBzZXQgT3Blbl92U3dpdGNoIC4NCj4gPiA+IG90 aGVyX2NvbmZpZzpkcGRrLWluaXQ9dHJ1ZSAgPiA+IG92cy12c2N0bCAtLW5vLXdhaXQgc2V0DQo+ ID4gPiBPcGVuX3ZTd2l0Y2ggLiBvdGhlcl9jb25maWc6ZHBkay1zb2NrZXQtICA+IG1lbT0iNDA5 NiwwIg0KPiA+ID4gID4gPiBvdnMtdnNjdGwgLS1uby13YWl0IHNldCBPcGVuX3ZTd2l0Y2ggLiBv dGhlcl9jb25maWc6ZHBkay1sY29yZS0NCj4gPiA+ID4gbWFzaz0weGZmICA+ID4gb3ZzLXZzY3Rs IC0tbm8td2FpdCBzZXQgT3Blbl92U3dpdGNoIC4NCj4gPiA+IG90aGVyX2NvbmZpZzpwbWQtY3B1 LW1hc2s9MGUgID4gID4gVGhlc2UgdHdvIG1hc2tzIHNob3VsZG4ndA0KPiA+ID4gb3ZlcmxhcDoN Cj4gPiA+ICA+DQo+ID4gPg0KPiA+IGh0dHBzOi8vZGV2ZWxvcGVycy5yZWRoYXQuY29tL2Jsb2cv MjAxNy8wNi8yOC9vdnMtZHBkay1wYXJhbWV0ZXJzLWRlYWwNCj4gPiBpbmctd2l0aC1tdWx0aS1u dW1hLw0KPiA+ID4gPA0KPiA+IGh0dHBzOi8vbWFpbHRyYWNrLmlvL3RyYWNlL2xpbmsvNmM1OTQ3 M2UwYTg1NDdhOWNiODBkOGY1MmY5Y2Y1MTkwYTA3MTINCj4gPg0KPiBmNj91cmw9aHR0cHMlM0El MkYlMkZkZXZlbG9wZXJzLnJlZGhhdC5jb20lMkZibG9nJTJGMjAxNyUyRjA2JTJGMjglDQo+IDJG bw0KPiA+IHZzLWRwZGstcGFyYW1ldGVycy1kZWFsaW5nLXdpdGgtbXVsdGktbnVtYSUyRiZ1c2Vy SWQ9MTg0MDM2NSZzaWduYXR1cmUNCj4gPiA9YjAxMTE0ZGMwOTRlNWZiOQ0KPiA+ID4NCj4gPiA+ ICA+DQo+ID4gPiBUaGFua3MsIHRoaXMgZGlkIHJlYWxseSBoZWxwIG1lIHVuZGVyc3RhbmQgaW4g d2hpY2ggb3JkZXIgdGhlc2UNCj4gPiA+IGNvbW1hbmRzIHNob3VsZCBiZSBpc3N1ZWQuDQo+ID4g Pg0KPiA+ID4gU28sIHRoZSBwcm9ibGVtIG5vdyBpcyB0aGUgZm9sbG93aW5nLg0KPiA+ID4gSSBk aWQgYWxsIHRoZSBjaGFuZ2VzIHlvdSBzaGFyZWQsIGFuZCBzdGFydGVkIE9WUy9EUERLIGluIGEg cHJvcGVyDQo+ID4gPiB3YXkgYW5kIHNldCB0aGVzZSBmZWF0dXJlczoNCj4gPiA+DQo+ID4gPiBv dnMtdnNjdGwgLS1uby13YWl0IHNldCBPcGVuX3ZTd2l0Y2ggLiBvdGhlcl9jb25maWc6ZHBkay1z b2NrZXQtDQo+ID4gPiBtZW09IjgxOTIsMCINCj4gPiA+DQo+ID4gPiBvdnMtdnNjdGwgLS1uby13 YWl0IHNldCBPcGVuX3ZTd2l0Y2ggLiBvdGhlcl9jb25maWc6ZHBkay1sY29yZS0NCj4gPiA+IG1h c2s9MHgwMTAwMA0KPiA+ID4NCj4gPiA+IG92cy12c2N0bCAtLW5vLXdhaXQgc2V0IE9wZW5fdlN3 aXRjaCAuIG90aGVyX2NvbmZpZzpkcGRrLWluaXQ9dHJ1ZQ0KPiA+ID4NCj4gPiA+IGFuZCwgZmlu YWxseSB0aGlzOg0KPiA+ID4gb3ZzLXZzY3RsIC0tbm8td2FpdCBzZXQgT3Blbl92U3dpdGNoIC4g b3RoZXJfY29uZmlnOnBtZC1jcHUtDQo+ID4gPiBtYXNrPTB4MGUwMDANCj4gPiA+DQo+ID4gPiBU aGUgZG9jdW1lbnRhdGlvbiB5b3Ugc2hhcmVkIHNheSB0aGlzIGxhc3Qgb25lIGNhbiBiZSBldmVu IHNldA0KPiA+ID4gZHVyaW5nIHJ1bnRpbWUuIFNvLCBJIHdhcyBwbGF5aW5nIHdpdGggaXQgdG8g c2VlIHRoZXJlIGlzIGFueSBjaGFuZ2UuDQo+ID4gPg0KPiA+ID4gSSBkaWQgbm90IHN0YXJ0IGFu eSBWTSBvbiB0b3Agb2YgT1ZTL0RQREssIGp1c3Qgc2V0IHVwIGEgcG9ydA0KPiA+ID4gZm9yd2Fy ZCBydWxlIChpbl9wb3J0PTEsIGFjdGlvbnM9b3V0cHV0OklOX1BPUlQpLCBzaW5jZSBJIG9ubHkg aGF2ZQ0KPiA+ID4gb25lIHBoeXNpY2FsIHBvcnRzIG9uIGVhY2ggbWVsbGFub3ggY2FyZC4NCj4g PiA+IFRoZW4sIEkgZ2VuZXJhdGVkIHRyYWZmaWMgZnJvbSB0aGUgb3RoZXIgc2VydmVyIHRvd2Fy ZHMgT1ZTIFVzaW5nDQo+ID4gPiBwa3RzaXplIDY0QiwgdGhlIG1heCB0aHJvdWdocHV0IFBrdGdl biByZXBvcnRzIGlzIDhHYnBzLg0KPiA+ID4gSW4gcGFydGljdWxhciwgSSBnb3QgdGhlc2UgbWV0 cmljczoNCj4gPiA+IFNpemUgICAgICAgIFNlbnRfcHBzICAgICAgIFJlY3ZfcHBzICAgICAgUmVj dl9HYnBzDQo+ID4gPiA2NEIgICAgICAgICAgIDkzTSAgICAgICAgICAgIDExTSAgICAgICAgICAg ICB+OA0KPiA+ID4gMTI4QiAgICAgICAgICA2NU0gICAgICAgICAgICAxMi41TSAgICAgICAgICAg fjE1DQo+ID4gPiAyNTZCICAgICAgICAgIDQyLjVNICAgICAgICAgIDEyLjNNICAgICAgICAgICB+ MjcNCj4gPiA+IDUxMkIgICAgICAgICAgMjMuNU0gICAgICAgICAgMTEuOU0gICAgICAgICAgIH41 MQ0KPiA+ID4gMTAyNEIgICAgICAgICAxMS45TSAgICAgICAgICAxME0gICAgICAgICAgICAgfjgz DQo+ID4gPiAxMjgwQiAgICAgICAgIDkuNk0gICAgICAgICAgIDguM00gICAgICAgICAgICB+ODYN Cj4gPiA+IDE1MDBCICAgICAgICAgOC4zTSAgICAgICAgICAgNi43TSAgICAgICAgICAgIH44Mg0K PiA+ID4NCj4gPiA+IEl0J3MgcXVpdGUgaW50ZXJlc3RpbmcgdGhhdCBmb3IgNjRCLCB0aGUgcHBz IGlzIGxlc3MgdGhhbiBmb3INCj4gPiA+IGdyZWF0ZXIgc2l6ZXMuIEJlY2F1c2UgUFBTIHNob3Vs ZCBiZSB0aGUgcHJhY3RpY2FsIGxpbWl0YXRpb24gaW4NCj4gPiA+IHRocm91Z2hwdXQsIGFuZCBh Y2NvcmRpbmcgdG8gdGhlIHBhY2tldCBzaXplIHdlIGNhbiBjb3VudCB0aGUgdGhyb3VnaHB1dCBp bg0KPiBHYnBzLg0KPiA+DQo+ID4gTG9va2luZyBhdCA2NEIgcGVyZm9ybWFuY2UgZ2l2ZXMgeW91 IGEgc2Vuc2Ugb2YgdGhlIHBlci1wYWNrZXQNCj4gPiBvdmVyaGVhZCBhc3NvY2lhdGVkIHdpdGgg dGhlIERQREsgZnJhbWV3b3JrIGFuZCB5b3VyIGFwcGxpY2F0aW9uLiAgQXQNCj4gPiAxMDBHYi9z IGxpbmUgcmF0ZSwgNjRCIGZyYW1lcyB3aWxsIGFycml2ZSBldmVyeSA2LjcybnMuICBTaW5jZSB5 b3VyDQo+ID4gcmVjZWl2ZWQgUFBTIGlzIHBlYWtpbmcgYXJvdW5kIDEyLjVNUFBTIEknZCBndWVz cyB0aGF0IGl0J3MgdGFraW5nDQo+ID4gYWJvdXQgODBucyBvZiBDUFUgdGltZSBwZXIgZnJhbWUu ICBJIGRvbid0IGtub3cgaG93IHdlbGwgT1ZTIHNjYWxlcw0KPiA+IHdpdGggYWRkaXRpb25hbCBD UFVzLCBzb21ldGhpbmcgdG8gbG9vayBhdC4NCj4gPg0KPiA+IFlvdSBkb24ndCBtZW50aW9uIGhv dyBtYW55IGRpZmZlcmVudCBmbG93cyB5b3UncmUgdXNpbmcgaW4gdGhlIHRlc3QuDQo+ID4gRG9u J3QgYmUgc3VycHJpc2VkIGFzIHRocm91Z2hwdXQgZHJvcHMgd2hlbiB5b3UgbW92ZSBmcm9tIDEs MDAwIGZsb3dzDQo+ID4gdG8NCj4gPiAxLDAwMCwwMDAgZmxvd3MuDQo+ID4NCj4gPiBJdCdzIGxp a2VseSB0aGF0IG1vc3Qgb2YgeW91ciBmcmFtZSBsb3NzIGlzIGR1ZSB0byB0aGUgTklDcyBSWCBi dWZmZXJzDQo+ID4gb3ZlcmZsb3dpbmcgYW5kIGRyb3BwaW5nIGZyYW1lcyBkdWUgdG8gYmFjayBw cmVzc3VyZSAoaS5lLiBEUERLL09WUw0KPiA+IGNhbid0IHByb2Nlc3MgcGFja2V0cyBmYXN0IGVu b3VnaCkuICBMb29rIHRoZSB0aGUgbWx4NSdzIGhhcmR3YXJlDQo+ID4gc3RhdGlzdGljcyB0byB2 ZXJpZnkuDQo+ID4NCj4gPiBZb3UgbWF5IGJlIGFibGUgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFu Y2UgYnkgaW5jcmVhc2luZyB0aGUgbnVtYmVyIG9mDQo+ID4gUlggcXVldWVzIGFuZCBSWCBkZXNj cmlwdG9ycyBwZXIgcXVldWUsIGFuZCBhc3NpZ25pbmcgbW9yZSBsY29yZXMgdG8NCj4gPiBtYXRj aCB0aGUgbnVtYmVyIG9mIHF1ZXVlcywgYWxsb3dpbmcgdGhlIHdvcmsgdG8gYmUgc3ByZWFkIG1v cmUgZXZlbmx5DQo+ID4gYW5kIHJlZHVjaW5nIGJ1ZmZlciBvdmVyZmxvd3MuICBUaGlzIG9mdGVu IHdvcmtzIHdoZW4gcnVubmluZyB0ZXN0cG1kDQo+ID4gYWxvbmUgc2luY2UgdGhlIGFwcCBvdmVy aGVhZCBpcyBsb3cgYnV0IGhhcyBsZXNzIGVmZmVjdCBvbiBPVlMNCj4gPiBwZXJmb3JhbW5jZS4g IFlvdSBtaWdodCBjb25zaWRlciBiZW5jaG1hcmtpbmcgdGVzdHBtZCBhbG9uZSB2cw0KPiA+IE9W Uy9EUERLIHRvIHVuZGVyc3RhbmQgdGhlIE9WUyBvdmVyaGVhZC4NCj4gPg0KPiA+ID4NCj4gPiA+ IEFueXdheSwgT1ZTLURQREsgaGF2ZSAzIGNvcmVzIHRvIHVzZSwgYnV0IG9ubHkgb25lIHJ4IHF1 ZXVlIGlzDQo+ID4gPiBhc3NpZ25lZCB0byB0aGUgcG9ydCAoc28sIGJhc2ljYWxseSAtLS0gYXMg YHRvcGAgYWxzbyBzaG93cyAtLS0gaXQNCj4gPiA+IGlzIHRoZSBvbmUtIGNvcmUgcGVyZm9ybWFu Y2UuDQo+ID4NCj4gPiBJbmNyZWFzaW5nIHRoZSBudW1iZXIgb2YgUlggcXVldWVzL2Rlc2NyaXB0 b3JzIGFuZCBhc3NpZ25pbmcgYQ0KPiA+IGRlZGljYXRlZCBsY29yZSB0byBlYWNoIHF1ZXVlIHdp bGwgZ2VuZXJhbGx5IGltcHJvdmUgcGVyZm9ybWFuY2UgaWYNCj4gPiB5b3VyIGJvdHRsZW5lY2sg aXMgUlggaW4gdGhlIFBNRC4NCj4gPg0KPiA+ID4gSW5jcmVhc2luZyB0aGUgY29yZXMgZGlkIG5v dCBoZWxwLCBhbmQgdGhlIHBlcmZvcm1hbmNlIHJlbWFpbmVkIHRoZQ0KPiA+ID4gc2FtZS4gSXMg dGhpcyBwZXJmb3JtYW5jZSBub3JtYWwgZm9yIE9WUy9EUERLPw0KPiA+DQo+ID4gVGhhdCdzIGJl ZW4gbXkgZXhwZXJpZW5jZSwgdGhvdWdoIHRoZXJlIGFyZSBvdGhlciB3aG8gaGF2ZSBtb3JlDQo+ ID4gZXhwZXJpZW5jZSB3aXRoIHBlcmZvcm1hbmNlIHRlc3RpbmcgT1ZTLiAgVGhlIHBsYXRmb3Jt IG1hdHRlcnMuICBMb29rDQo+ID4gZm9yIGV4aXN0aW5nIHdoaXRlcGFwZXJzIGFuZCBjb21wYXJl IHlvdXIgc3lzdGVtIGNvbmZpZ3VyYXRpb24gdG8NCj4gPiB0aGVpcnMgdG8gc2VlIHdoYXQgeW91 IG5lZWQgdG8gYWNoaWV2ZSB0aGUgcGVyZm9ybWFuY2UgeW91J3JlIGxvb2tpbmcgZm9yLg0KPiA+ DQo+ID4gRGF2ZQ0KPiA+DQo+IA0KPiANCj4gLS0NCj4gDQo+IFZpcHVsIFVqYXdhbmUgPGh0dHBz Oi8vdmlwdWw5OTl1amF3YW5lLmdpdGh1Yi5pby8+DQo+IFByZS1GaW5hbCBZZWFyIFVuZGVyZ3Jh ZHVhdGUNCj4gRGVwYXJ0bWVudCBvZiBJbmR1c3RyaWFsIGFuZCBTeXN0ZW1zIEVuZ2luZWVyaW5n IEluZGlhbiBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwNCj4gS2hhcmFncHVyDQo=