From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id C145616829 for ; Thu, 7 Sep 2017 09:57:56 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Sep 2017 00:57:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,357,1500966000"; d="scan'208";a="897946872" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by FMSMGA003.fm.intel.com with ESMTP; 07 Sep 2017 00:57:53 -0700 Received: from fmsmsx155.amr.corp.intel.com (10.18.116.71) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 7 Sep 2017 00:57:52 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX155.amr.corp.intel.com (10.18.116.71) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 7 Sep 2017 00:57:52 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.39]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.117]) with mapi id 14.03.0319.002; Thu, 7 Sep 2017 15:57:50 +0800 From: "Hu, Jiayu" To: Wisam Monther CC: "users@dpdk.org" , Raslan Darawsheh , Shahaf Shuler Thread-Topic: Unable to merge packets using GRO feature Thread-Index: AdMaTiF+8CYSsq4aQZ+8LenCiQpxYQAD6neAADXVIAAABK9KMAAAd2TQAFQNtLAAAYcosADMAwaAACXOZZAAC76hwAGa1cBQABz64GAADFFDsAAB9LoA Date: Thu, 7 Sep 2017 07:57:49 +0000 Message-ID: References: <20170821091347.GA94297@dpdk15.sh.intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZGIxOWRkZTgtYjI2Ny00ZjA5LTg3NDQtOGNlYjhhNGRiODE5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6IjZlWkxPSFhrWmpzSE5HdXlqd1ZCMjdCbGNRTlNOeEsrcStMZmVTdDBaYjQ9In0= x-ctpclassification: CTP_IC x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-users] Unable to merge packets using GRO feature 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: , X-List-Received-Date: Thu, 07 Sep 2017 07:57:57 -0000 SGkgV2lzYW0sDQoNCkNhbiB5b3Ugc2VuZCBtZSB0aGUgcGNhcCBmaWxlIG9mIHRoZSBUU09lZCBw YWNrZXRzPyBJIHdhbnQgdG8gc2VlIHdoYXQgdGhlDQpwYWNrZXRzIHRoYXQgdGhlIEdSTyBlbmFi bGVkIHBvcnQgcmVjZWl2ZXMgbG9vayBsaWtlLg0KDQpUaGFua3MsDQpKaWF5dQ0KDQo+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFdpc2FtIE1vbnRoZXIgW21haWx0bzp3aXNh bW1AbWVsbGFub3guY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDcsIDIwMTcgMzox OSBQTQ0KPiBUbzogSHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+DQo+IENjOiB1c2Vyc0Bk cGRrLm9yZzsgUmFzbGFuIERhcmF3c2hlaCA8cmFzbGFuZEBtZWxsYW5veC5jb20+OyBTaGFoYWYN Cj4gU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT4NCj4gU3ViamVjdDogUkU6IFVuYWJsZSB0 byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+IA0KPiBIaSBKaWF5dSwNCj4gDQo+ IEZpcnN0IG9mIGFsbCwgSSBhcHByZWNpYXRlIHlvdXIgZWZmb3J0cyB3aXRoIG1lIDopDQo+IFRo ZSB0aGluZyB0aGF0IHRoZSBwYWNrZXRzIGRpZG4ndCBkcm9wcGVkIHdoZW4gSSB1c2VkIGEgcGFj a2V0IHdpdGggMTUwMCBpbg0KPiB0b3RhbCBhcyBhIHRocmVlIHNlZ21lbnRzIG9mIDUwMCwNCj4g U28sIGV2ZW4gd2hlbiBlbmFibGUgZ3JvLCB0ZXN0cG1kIHdpbGwgZndkIHRoZSByZWNlaXZlZCBz ZWdtZW50cyBhcyBpdC4NCj4gIlNvIGFjY29yZGluZyB0byB0aGlzIGJlaGF2aW9yIHdlIGNvbmNs dWRlIHRoYXQgaXQncyBkaWRuJ3QgcmVhY2ggdGhlIGxpbWl0LCBhbmQNCj4gYWxzbyB0aGUgR1JP IGRpZG4ndCB3b3JrIg0KPiANCj4gQ291bGQgYmUgdGhlcmUgc29tZSBjb25zdHJhaW50cyBmb3Ig TUxYIGRyaXZlciBvciBNTFggTklDcyByZWdhcmRzIEdSTz8NCj4gDQo+IEJlc3QgcmVnYXJkcywN Cj4gV2lzYW0gSmFkZG8NCj4gDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IEh1LCBKaWF5dSBbbWFpbHRvOmppYXl1Lmh1QGludGVsLmNvbV0NCj4gU2VudDogVGh1cnNkYXks IFNlcHRlbWJlciA3LCAyMDE3IDQ6MTUgQU0NCj4gVG86IFdpc2FtIE1vbnRoZXINCj4gQ2M6IHVz ZXJzQGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoOyBTaGFoYWYgU2h1bGVyDQo+IFN1YmplY3Q6 IFJFOiBVbmFibGUgdG8gbWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KPiANCj4gSGkg V2lzYW0sDQo+IA0KPiBXaGVuIHdlIHBlcmZvcm0gYSBzaW1pbGFyIHRlc3Qgb24gaTQwZSwgd2Ug ZmluZCBhbiBpbXBvcnRhbnQgdGhpbmc6DQo+IHRoZXJlIGlzIGEgbWF4IG51bWJlciBsaW1pdCBm b3IgbWJ1Zi0+bmJfc2Vncy4gV2hlbiB0aGUgbnVtYmVyIG9mIE1CVUYNCj4gc2VnbWVudHMgb2Yg dGhlIHBhY2tldCBpcyBsYXJnZXIgdGhhbiB0aGlzIGxpbWl0LCB0aGUgcGFja2V0IHdpbGwgYmUg ZHJvcHBlZC4NCj4gDQo+IFRoZSBHUk9lZCBwYWNrZXQgaGFzIG11bHRpcGxlIE1CVUYgc2VnbWVu dHMuIEZvciB2aG9zdC1kcGRrLCBpdCBkb2Vzbid0DQo+IGhhdmUgbGltaXQgZm9yIHRoZSBudW1i ZXIgb2Ygc2VnbWVudHMuIEJ1dCBpdCdzIG5vdCB0aGUgc2FtZSBmb3IgYWxsIE5JQw0KPiBkcml2 ZXJzLiBTbyBJIHN1Z2dlc3QgeW91IHRvIGNoZWNrIGlmIHRoZSBNTFggZHJpdmVyIGhhcyB0aGlz IGxpbWl0IHRvby4NCj4gDQo+IFRoYW5rcywNCj4gSmlheXUNCj4gDQo+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBXaXNhbSBNb250aGVyIFttYWlsdG86d2lzYW1tQG1l bGxhbm94LmNvbV0NCj4gPiBTZW50OiBXZWRuZXNkYXksIFNlcHRlbWJlciA2LCAyMDE3IDc6MTgg UE0NCj4gPiBUbzogSHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+DQo+ID4gQ2M6IHVzZXJz QGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoIDxyYXNsYW5kQG1lbGxhbm94LmNvbT47IFNoYWhh Zg0KPiA+IFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFVu YWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+ID4NCj4gPiBIaSBKaWF5 dSwNCj4gPg0KPiA+IEFueSBjb21tZW50IHJlZ2FyZCB3aGF0IEkgZGVzY3JpYmVkPw0KPiA+DQo+ ID4gQlJzLA0KPiA+IFdpc2FtIEphZGRvDQo+ID4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+IEZyb206IFdpc2FtIE1vbnRoZXINCj4gPiBTZW50OiBUdWVzZGF5LCBBdWd1c3Qg MjksIDIwMTcgMTA6NDkgQU0NCj4gPiBUbzogJ0h1LCBKaWF5dScNCj4gPiBDYzogdXNlcnNAZHBk ay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBTaHVsZXINCj4gPiBTdWJqZWN0OiBSRTog VW5hYmxlIHRvIG1lcmdlIHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4gPg0KPiA+IEhpIEpp YXl1LA0KPiA+DQo+ID4gTGV0IG1lIHJlLWRlc2NyaWJlIG15IHRvcG9sb2d5IGluIGEgYmV0dGVy IHdheSwgc2VlIGF0dGFjaGVkIGltYWdlLg0KPiA+IEFuZCBpdCBpcyBjb25uZWN0ZWQgcGh5c2lj YWxseSBhcyBkZXNjcmliZWQsIGFuZCBJJ20gdXNpbmcgaXQgd2l0aCBNVFUNCj4gPiBzaXplPTE1 MDAgaW4gb3JkZXIgdG8gbWFrZSBzdXJlIEV2ZXJ5IHBvcnQgY2FuIGhhbmRsZSBpdC4NCj4gPg0K PiA+IEFuZCB0aGlzIGlzIHRoZSBleGFjdCBjb25uZWN0aW9uIGJldHdlZW4gdGhlIGludGVyZmFj ZXMsIHNvIEknbSBzdXJlDQo+ID4gdGhlIHBhY2tldHMgcmVjZWl2ZWQgaW4gTklDIEIgbWFjaGlu ZSBCIGlzIGNvbWluZyBmcm9tIHRoZSB0ZXN0cG1kDQo+ID4gd2l0aCBHUk8gZW5hYmxlZC4NCj4g Pg0KPiA+IEJ1dCBldmVuIHNvLCBJIGludGVudGlvbmFsbHkgbWFkZSB0aGUgcGFja2V0IHNpemUg MTUwMCwgdG8gYmUgZGl2aWRlZA0KPiA+IGludG8gMyAqICggNTAwKSBmcmFnbWVudHMgdXNpbmcg dGhlIFRTTywgYW5kIHRoZW4gbWVyZ2VkIGludG8gMTUwMA0KPiA+IHBhY2tldCBhZ2FpbiBpbiB0 aGUgR1JPLg0KPiA+IFNvIHRoZSBldmVyeSBtYWNoaW5lIGNhbiBtYW5hZ2UgdGhpcyBtdHUgc2l6 ZS4NCj4gPg0KPiA+IFRoZSB0aGluZyB0aGF0IEkgbmVlZCB0byB0ZXN0IEdSTyB3aXRoIGVhY2gg c2V0dXBzIHR5cGVzLCAiVk1zIHdpdGgNCj4gPiBCYXJlbWV0YWwgd2l0aCBwYXNzIHRocm91Z2gg d2l0aCBWRnMgZXRjLi4uIi4NCj4gPiBTbyBJIG5lZWQgdG8gc2VlIHRoZSBmZWF0dXJlIHdvcmtz IG9uIGxlYXN0IHdvcmssIGl0IHdvdWxkIGJlIG5pY2UgdG8NCj4gPiBzZW5kIElQVjRfVENQIGZy YWdtZW50ZWQgcGFja2V0IHVzaW5nICJzY2FweSwgSXBlcmYiDQo+ID4gQW5kIGNoZWNrIHRoZSBm d2QgcGFja2V0IGZyb20gR1JPIGRpcmVjdGx5Lg0KPiA+DQo+ID4gQlJzLA0KPiA+IFdpc2FtIEph ZGRvDQo+ID4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IEh1LCBK aWF5dSBbbWFpbHRvOmppYXl1Lmh1QGludGVsLmNvbV0NCj4gPiBTZW50OiBUdWVzZGF5LCBBdWd1 c3QgMjksIDIwMTcgNDo1MSBBTQ0KPiA+IFRvOiBXaXNhbSBNb250aGVyDQo+ID4gQ2M6IHVzZXJz QGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoOyBTaGFoYWYgU2h1bGVyDQo+ID4gU3ViamVjdDog UkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+ID4NCj4gPiBI aSBXaXNhbSwNCj4gPg0KPiA+IEluIHRoZSBwaWN0dXJlIG9mIHlvdXIgZXhwZXJpbWVudCB0b3Bv bG9neSwgSSBndWVzcyBOSUMgQiBpbiB0aGUNCj4gPiBtYWNoaW5lIEIgaXMgY29ubmVjdGVkIHdp dGggYW5vdGhlciBpbnRlcmZhY2UgcGh5c2ljYWxseS4gSWYgc28sIHRoZQ0KPiA+IHBhY2tldHMg dGhhdCB0Y3BkdW1wIGNhcHR1cmVzIGFyZSBmcm9tIHRoZSBwaHlzaWNhbCBsaW5rLiBIb3dldmVy LA0KPiA+IHBhY2tldHMgYWZ0ZXIgR1JPZWQgYXJlIG11bHRpLSBzZWdtZW50IGxhcmdlIHBhY2tl dHMsIHdoaWNoIGFyZSBsYXJnZXINCj4gPiB0aGFuIE1UVS4gSSBhbSBub3Qgc3VyZSBpZiB5b3Ug aGF2ZSBtYWtlIG90aGVyIGNvbmZpZ3VyYXRpb25zIHRvDQo+ID4gZW5hYmxlIHRoZXNlIGxhcmdl IHBhY2tldHMgdG8gcGFzcyB0aGUgcGh5c2ljYWwgbGluaywgYW5kIHRoZXJlIGlzDQo+ID4ganVt Ym8gZnJhbWUgc2l6ZSBsaW1pdCBmb3IgZGlmZmVyZW50IE5JQ3MuIFNvIHdvdWxkIHlvdSBwbGVh c2UgdG8NCj4gPiBjaGVjayB0aGlzPyBCVFcsIHlvdSBjYW4gdXNlIHRoZSBWTSB0byB0ZXN0IHRo aXMgR1JPIGZlYXR1cmUsIHNpbmNlIGxhcmdlDQo+IHBhY2tldHMgY2FuIGFsd2F5cyBwYXNzIHRv IHRoZSBWTS4NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBKaWF5dQ0KPiA+DQo+ID4gPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogV2lzYW0gTW9udGhlciBbbWFpbHRvOndp c2FtbUBtZWxsYW5veC5jb21dDQo+ID4gPiBTZW50OiBNb25kYXksIEF1Z3VzdCAyOCwgMjAxNyAz OjM3IFBNDQo+ID4gPiBUbzogSHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+DQo+ID4gPiBD YzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWggPHJhc2xhbmRAbWVsbGFub3guY29t PjsNCj4gU2hhaGFmDQo+ID4gPiBTaHVsZXIgPHNoYWhhZnNAbWVsbGFub3guY29tPg0KPiA+ID4g U3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+ ID4gPg0KPiA+ID4gSGkgSmlheXUsDQo+ID4gPg0KPiA+ID4gSSdtIHNvcnJ5IGZvciBib3RoZXJp bmcgeW91LCBidXQgY291bGQgeW91IGNvbmZvcm0gdGhhdCB0aGUgZmVhdHVyZQ0KPiA+ID4gaXMg d29ya2luZyBwcm9iYWJseSBCZWNhdXNlLCB3aGF0IEkgZXZlciAgZGlkLCBJIGNvdWxkbid0IGdl dCB0aGUNCj4gPiA+IG1lcmdlZCBwYWNrZXRzLg0KPiA+ID4NCj4gPiA+IEJScywNCj4gPiA+IFdp c2FtIEphZGRvDQo+ID4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ IEZyb206IFdpc2FtIE1vbnRoZXINCj4gPiA+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMjQsIDIw MTcgOToxNSBBTQ0KPiA+ID4gVG86ICdIdSwgSmlheXUnDQo+ID4gPiBDYzogdXNlcnNAZHBkay5v cmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBTaHVsZXINCj4gPiA+IFN1YmplY3Q6IFJFOiBV bmFibGUgdG8gbWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KPiA+ID4NCj4gPiA+IEhp LA0KPiA+ID4NCj4gPiA+IEknbSB1c2luZyBNZWxsYW5veCBOSUNzLCBhbmQgaXQgaXMgc3VwcG9y dGluZyBwYXJzZSBwYWNrZXQgdHlwZXMuDQo+ID4gPg0KPiA+ID4gQmVzdCByZWdhcmRzLA0KPiA+ ID4gV2lzYW0gSmFkZG8NCj4gPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+ID4gRnJvbTogSHUsIEppYXl1IFttYWlsdG86amlheXUuaHVAaW50ZWwuY29tXQ0KPiA+ID4g U2VudDogVGh1cnNkYXksIEF1Z3VzdCAyNCwgMjAxNyA4OjQ3IEFNDQo+ID4gPiBUbzogV2lzYW0g TW9udGhlcg0KPiA+ID4gQ2M6IHVzZXJzQGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoOyBTaGFo YWYgU2h1bGVyDQo+ID4gPiBTdWJqZWN0OiBSRTogVW5hYmxlIHRvIG1lcmdlIHBhY2tldHMgdXNp bmcgR1JPIGZlYXR1cmUNCj4gPiA+DQo+ID4gPiBIaSwNCj4gPiA+DQo+ID4gPiBDYW4geW91IHRl bGwgbWUgd2hhdCdzIHRoZSBOSUMgdHlwZSBvZiB0aGUgR1JPLWVuYWJsZWQgcG9ydD8NCj4gPiA+ DQo+ID4gPiBTaW5jZSBHUk8gbGlicmFyeSB1c2VzIG1idWYtPnBhY2tldF90eXBlIHRvIHBhcnNl IHBhY2tldCBoZWFkZXJzLA0KPiA+ID4gYXBwbGljYXRpb25zIG5lZWQgdG8gZmlsbCB0aGlzIHZh bHVlIGJlZm9yZSBjYWxsaW5nIEdSTyByZWFzc2VtYmx5IEFQSXMuDQo+ID4gPiBPdGhlcndpc2Us IHRoZSBHUk8gY2FuJ3Qgd29yayBjb3JyZWN0bHkuDQo+ID4gPg0KPiA+ID4gSW4gY3N1bSBmb3J3 YXJkaW5nIGVuZ2luZSBvZiB0ZXN0cG1kLCBwYWNrZXRfdHlwZSBpcyBmaWxsZWQgYnkgTklDIGRy aXZlcnMuDQo+ID4gPiBUaGUgY3N1bSBmb3J3YXJkaW5nIGVuZ2luZSB3b24ndCBzZXQgdGhpcyB2 YWx1ZS4gU28gaWYgeW91ciBOSUMNCj4gPiA+IGRvZXNu4oCZdCBzdXBwb3J0IHRvIHBhcnNlIHBh Y2tldCB0eXBlcywgdGhlIHZhbHVlIG9mIHBhY2tldF90eXBlIGlzIDANCj4gPiA+IGFuZCBHUk8g Y2FuJ3Qgd29yayBjb3JyZWN0bHkuDQo+ID4gPg0KPiA+ID4gQlJzLA0KPiA+ID4gSmlheXUNCj4g PiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IFdp c2FtIE1vbnRoZXIgW21haWx0bzp3aXNhbW1AbWVsbGFub3guY29tXQ0KPiA+ID4gPiBTZW50OiBU dWVzZGF5LCBBdWd1c3QgMjIsIDIwMTcgOToyNSBQTQ0KPiA+ID4gPiBUbzogSHUsIEppYXl1IDxq aWF5dS5odUBpbnRlbC5jb20+DQo+ID4gPiA+IENjOiB1c2Vyc0BkcGRrLm9yZzsgUmFzbGFuIERh cmF3c2hlaCA8cmFzbGFuZEBtZWxsYW5veC5jb20+Ow0KPiA+IFNoYWhhZg0KPiA+ID4gPiBTaHVs ZXIgPHNoYWhhZnNAbWVsbGFub3guY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBSRTogVW5hYmxlIHRv IG1lcmdlIHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4gPiA+ID4NCj4gPiA+ID4gWWVzIGl0 IGlzLA0KPiA+ID4gPiBUaGUgZnJhZ21lbnRlZCBwYWNrZXRzIGNvbWVzIGZyb20gcG9ydDEgLyBO SUMgYiBmcm9tIG1hY2hpbmUgQSB0bw0KPiA+ID4gPiBwb3J0DQo+ID4gPiA+IDEgaW4gTklDIEEg Zm9yIG1hY2hpbmUgYiBTbyBpdCdzIHJlY2VpdmVkIG9uIHRoZSBwb3J0ICcxJywgd2hpY2gNCj4g PiA+ID4gaXMgY29uZmlndXJlZCBncm8gYWN0aXZlIG9uIHRoaXMgcG9ydC4NCj4gPiA+ID4NCj4g PiA+ID4gQmVzdCByZWdhcmRzLA0KPiA+ID4gPiBXaXNhbSBKYWRkbw0KPiA+ID4gPg0KPiA+ID4g PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBIdSwgSmlheXUgW21h aWx0bzpqaWF5dS5odUBpbnRlbC5jb21dDQo+ID4gPiA+IFNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAy MiwgMjAxNyA0OjIxIFBNDQo+ID4gPiA+IFRvOiBXaXNhbSBNb250aGVyDQo+ID4gPiA+IENjOiB1 c2Vyc0BkcGRrLm9yZzsgUmFzbGFuIERhcmF3c2hlaDsgU2hhaGFmIFNodWxlcg0KPiA+ID4gPiBT dWJqZWN0OiBSRTogVW5hYmxlIHRvIG1lcmdlIHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4g PiA+ID4NCj4gPiA+ID4gSGksDQo+ID4gPiA+DQo+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiA+ID4gPiBGcm9tOiBXaXNhbSBNb250aGVyIFttYWlsdG86d2lzYW1tQG1l bGxhbm94LmNvbV0NCj4gPiA+ID4gPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjIsIDIwMTcgNzow NyBQTQ0KPiA+ID4gPiA+IFRvOiBIdSwgSmlheXUgPGppYXl1Lmh1QGludGVsLmNvbT4NCj4gPiA+ ID4gPiBDYzogdXNlcnNAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWggPHJhc2xhbmRAbWVsbGFu b3guY29tPjsNCj4gPiA+IFNoYWhhZg0KPiA+ID4gPiA+IFNodWxlciA8c2hhaGFmc0BtZWxsYW5v eC5jb20+DQo+ID4gPiA+ID4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJnZSBwYWNrZXRzIHVz aW5nIEdSTyBmZWF0dXJlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBIZXkgSmlheXUsDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBUaGFuayB5b3UgZm9yIHlvdXIgcmVwbHkuDQo+ID4gPiA+ID4gSSB0cmll ZCB3aGF0IHlvdSBzYWlkIHdpdGggdGhlIGNzdW0gYXQgZndkIG1vZGUuDQo+ID4gPiA+ID4gRXZl biBzbyB0aGUgR1JPIGRpZG4ndCB3b3JrcyBmaW5lLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSSBl dmVuIHRlc3RlZCB3aXRoIGEgbmV3IG1ldGhvZG9sb2d5Lg0KPiA+ID4gPiA+IFR3byBtYWNoaW5l cyB3aXRoIHR3byBkaWZmZXJlbnQgbmljIGZvciBlYWNoLg0KPiA+ID4gPiA+IFRoZSBtZXRob2Rv bG9neSB0aGF0IEkgdXNlZCB0byB0ZXN0IGl0IGlzIGRlc2NyaWJlZCBpbiB0aGUgYXR0YWNoZWQg ZmlsZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFdoYXQgSSBkaWQgZnJvbSBncm8gc2lkZToNCj4g PiA+ID4gPiAiIiINCj4gPiA+ID4gPiB0ZXN0cG1kPmdybyBvbiAxDQo+ID4gPiA+DQo+ID4gPiA+ IERvZXMgdGhlIHBvcnQgbnVtYmVyIG9mIE5JQyBBIGluIG1hY2hpbmUgQiBpcyAnMSc/IFdoZW4g eW91IGVuYWJsZQ0KPiA+ID4gPiBHUk8gZm9yIHBvcnQgJzEnLCBUZXN0cG1kIG9ubHkgdHJpZXMg dG8gbWVyZ2UgcGFja2V0cyByZWNlaXZlZA0KPiA+ID4gPiBmcm9tIHBvcnQNCj4gPiAnMScuDQo+ ID4gPiA+DQo+ID4gPiA+IEJScywNCj4gPiA+ID4gSmlheXUNCj4gPiA+ID4NCj4gPiA+ID4gPiBU ZXN0cG1kPnNldCBmd2QgY3N1bQ0KPiA+ID4gPiA+IFRlc3RwbWQ+c3RhcnQNCj4gPiA+ID4gPiAi IiINCj4gPiA+ID4gPiBBbmQgdGhlIHBhY2tldCB3aXRoIGNvcnJlY3QgZHN0IG1hYy4NCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IEJlc3QgcmVnYXJkcywNCj4gPiA+ID4gPiBXaXNhbSBKYWRkbw0KPiA+ ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogSmlheXUg SHUgW21haWx0bzpqaWF5dS5odUBpbnRlbC5jb21dDQo+ID4gPiA+ID4gU2VudDogTW9uZGF5LCBB dWd1c3QgMjEsIDIwMTcgMTI6MTQgUE0NCj4gPiA+ID4gPiBUbzogV2lzYW0gTW9udGhlcg0KPiA+ ID4gPiA+IENjOiBUaG9tYXMgTW9uamFsb247IHVzZXJzQGRwZGsub3JnOyBSYXNsYW4gRGFyYXdz aGVoOyBTaGFoYWYNCj4gPiA+ID4gPiBTaHVsZXINCj4gPiA+ID4gPiBTdWJqZWN0OiBSZTogVW5h YmxlIHRvIG1lcmdlIHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4gPiA+ID4gPg0KPiA+ID4g PiA+IEhpLA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gT24gTW9uLCBBdWcgMjEsIDIwMTcgYXQgMDc6 MjU6MjNBTSArMDAwMCwgV2lzYW0gTW9udGhlciB3cm90ZToNCj4gPiA+ID4gPiA+IEhlbGxvIEd1 eXMsDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBJ IGhvcGUgdGhpcyBmaW5kcyB5b3Ugd2VsbCwgSeKAmW0gdHJ5aW5nIHRvIHRlc3QgdGhlIEdSTyBm ZWF0dXJlLg0KPiA+ID4gPiA+ID4gQnV0IEnigJltIHN0dWNrIHdpdGggdGhpcyBzY2VuYXJpby4N Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBBcyB5b3Uga25vdywgR1JPIGlzIG9ubHkgc3VwcG9y dCBUQ1BfSVBWNCBwYWNrZXQgdW50aWwgbm93Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFNv IEnigJltIHRyeWluZyB0byB0ZXN0IHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IG9mIHRoZSBmZWF0 dXJlLA0KPiA+ID4gPiA+ID4gYXMNCj4gPiBmb2xsb3dpbmc6DQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gU3RhcnQgdGVzdHBtZDoNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiDigJzigJ3igJ0N Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAuL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjL2J1 aWxkL2FwcC90ZXN0LXBtZC90ZXN0cG1kIC1uIDQNCj4gPiA+ID4gPiA+IC13DQo+ID4gPiA+ID4g PiAwMDowYS4wICAtdw0KPiA+ID4gPiA+ID4gMDA6MDkuMCAtLSAgLS1idXJzdD02NCAtLW1iY2Fj aGU9NTEyIC0tcG9ydG1hc2sgMHhmIC1pDQo+ID4gPiA+ID4gPiAtLXR4ZD01MTINCj4gPiA+ID4g PiA+IC0tcnhkPTUxMg0KPiA+ID4gPiA+ID4gLS1uYi1jb3Jlcz05ICAtLXJ4cT0yIC0tdHhxPTIg LS10eHFmbGFncz0wDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g4oCc4oCd4oCdDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGVuIGVuYWJsZSBH Uk8gYXQgdGhlIHR3byBwb3J0czoNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiDigJzigJ3igJ0N Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUZXN0cG1kPmdybyBvbiAwDQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gVGVzdHBtZD5ncm8gb24gMQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gV2hlbiB1 c2UgR1JPIGluIHRlc3RwbWQsIHRoZXJlIGFyZSBmb2xsb3dpbmcgdGhpbmdzIHRvIG5vdGljZToN Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IDEuIEluIHRlc3RwbWQsIEdSTyBpcyBzdXBwb3J0ZWQgYnkg Y3N1bSBmb3J3YXJkaW5nIGVuZ2luZS4NCj4gPiA+ID4gPiBUaGVyZWZvcmUsIHBsZWFzZSB1c2Ug J3NldCBmd2QgY3N1bScgdG8gc3dpdGNoIGZvcndhcmRpbmcgZW5naW5lLg0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gMi4gQnkgZGVmYXVsdCwgY3N1bSBmb3J3YXJkaW5nIGVuZ2luZSBjb21wdWxzb3Jp bHkgY2hhbmdlcw0KPiA+ID4gPiA+IGV0aGVybmV0IGFkZHJlc3Nlcy4gU28gcGxlYXNlIG1ha2Ug c3VyZSB0aGF0IE1BQyBhZGRyZXNzZXMgYXJlDQo+ID4gY29ycmVjdC4NCj4gPiA+ID4gPg0KPiA+ ID4gPiA+IDMuIFdoZW4gZW5hYmxlIEdSTyBmb3IgcG9ydDAsIGNzdW0gZm9yd2FyZGluZyBlbmdp bmUgd2lsbCBtZXJnZQ0KPiA+ID4gPiA+IHBhY2tldHMgcmVjZWl2ZWQgZnJvbSBwb3J0MC4gSWYg dGhlcmUgYXJlIG5vIHBhY2tldHMgZnJvbSBwb3J0MQ0KPiA+ID4gPiA+IHRvIHBvcnQwLCB5b3Ug ZG9uJ3QgbmVlZCB0byBlbmFibGUgR1JPIGZvciBwb3J0MS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ IDQuIEdSTyBsaWJyYXJ5IGRvZXNuJ3QgcmUtY2FsY3VsYXRlIGNoZWNrc3VtcyBmb3IgbWVyZ2Vk IHBhY2tldHMuDQo+ID4gPiA+ID4gSWYgeW91IHdhbnQgbWVyZ2VkIHBhY2tldHMgaGF2ZSBjb3Jy ZWN0IGNoZWNrc3VtLCBwbGVhc2Ugc2VsZWN0DQo+ID4gPiA+ID4gSFcgSVAgYW5kIEhXIFRDUCBj aGVja3N1bSBjYWxjdWxhdGlvbiBmb3IgdGhlIHBvcnQgd2hpY2ggdGhlDQo+ID4gPiA+ID4gbWVy Z2VkIHBhY2tldHMgYXJlIHRyYW5zbWl0dGVkIHRvIGluIGNzdW0gZm9yd2FyZGluZyBlbmdpbmUu DQo+ID4gPiA+ID4gVGhpcyBpcyBiZWNhdXNlIHRoZSBtZXJnZWQgcGFja2V0cyBhcmUgbXVsdGkt c2VnbWVudCBtYnVmcywgYnV0DQo+ID4gPiA+ID4gY3N1bSBmb3J3YXJkaW5nIGVuZ2luZSBkb2Vz bid0IHN1cHBvcnQgdG8gY2FsY3VsYXRlIGNoZWNrc3Vtcw0KPiA+ID4gPiA+IGZvciBtdWx0aS1z ZWdtZW50IG1idWZzIGluIFNXLiBTbyB3ZSBuZWVkIHRvIHNlbGVjdCBIVyBjaGVja3N1bQ0KPiA+ ID4gb2ZmbG9hZGluZy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IGUuZy4gSWYgZGF0YSBmbG93IGlz ICJwYWNrZXRzIC0+IHBvcnQwIC0+IHBvcnQxIiwgY29tbWFuZHMgdXNlZA0KPiA+ID4gPiA+IGlu DQo+ID4gPiB0ZXN0cG1kOg0KPiA+ID4gPiA+IAlncm8gb24gcG9ydDANCj4gPiA+ID4gPiAJc2V0 IGZ3ZCBjc3VtDQo+ID4gPiA+ID4gCWNzdW0gc2V0IGlwIGh3IHBvcnQxDQo+ID4gPiA+ID4gCWNz dW0gc2V0IHRjcCBodyBwb3J0MQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBCZXNp ZGVzLCB5b3UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB5b3VyIFBNRCBkcml2ZXIgZG9lc24ndCB1 c2UNCj4gPiA+ID4gPiB2ZWN0b3IgVFggZnVuY3Rpb24sIHNpbmNlIHZlY3RvciBmdW5jdGlvbiBk b2Vzbid0IHN1cHBvcnQNCj4gPiA+ID4gPiBjaGVja3N1bQ0KPiA+ID4gb2ZmbG9hZGluZy4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IOKAnOKAneKAnQ0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQW5kIHRyeWluZyB0byBzZW5k IFRDUF9JUFY0IGZyYWdtZW50ZWQgcGFja2V0IOKAnHBhY2tldCB3aXRoDQo+ID4gPiA+ID4gPiBs ZW5ndGgNCj4gPiA+ID4gPiA+IDE1MDAgZnJhZ21lbnRlZCB0byB0aHJlZSBwYWNrZXRzIG9mIDUw MOKAnQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IOKAnOKAneKAnQ0KPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+IHA9RXRoZXIoc3JjPWdldF9pZl9od2FkZHIoJ2VuczEwJyksIGRzdD0NCj4gPiA+ ID4gPiA+ICcyNDo4QTowNzo4ODoyNjo2QicpL0lQKCkvVENQKCkNCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiBwLmFkZF9wYXlsb2FkKCdGJyooMTUwMCAtIGxlbihwKSkpDQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gZnJhZ3M9ZnJhZ21lbnQocCxmcmFnc2l6ZT01MDApDQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gZm9yIGZyYWdtZW50IGluIGZyYWdzOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ICAgICAgc2VuZHAoZnJhZ21lbnQsIGlmYWNlPSdlbnMxMCcpDQo+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4g4oCc4oCd4oCdDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiBCdXQgdGhlIHRlc3RwbWQgZm9yd2FyZCB0aGUgcGFja2V0cyBhcyBpdCBp cywg4oCcIGRvZXNu4oCZdCBkbyBhbnkgbWVyZ2XigJ0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFRjcGR1bXAgYXQgdGhlIFRHIHNpZGUsDQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhlIHNlbmRpbmcgZnJhZ21ldHMgdXNpbmcgZW5zMTA6DQo+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gI3RjcGR1bXAg4oCTSSBlbnMxMCDigJN2dnZlbg0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+IDE1OjQ1OjI5LjA4MzUxNCAyNDo4YTowNzo4ODoyNjo1YiA+ IDI0OjhhOjA3Ojg4OjI2OjZiLA0KPiA+ID4gPiA+ID4gZXRoZXJ0eXBlDQo+ID4gPiA+ID4gPiBJ UHY0ICgweDA4MDApLCBsZW5ndGggNTM4OiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQg MCwNCj4gPiA+ID4gPiA+IGZsYWdzIFsrXSwgcHJvdG8gT3B0aW9ucyAoMCksIGxlbmd0aCA1MjQp DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgIDEyNy4wLjAuMSA+IDEyNy4wLjAuMTogIGlw LXByb3RvLTAgNTA0DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gMTU6NDU6MjkuMTE1MjY2IDI0 OjhhOjA3Ojg4OjI2OjViID4gMjQ6OGE6MDc6ODg6MjY6NmIsDQo+ID4gPiA+ID4gPiBldGhlcnR5 cGUNCj4gPiA+ID4gPiA+IElQdjQgKDB4MDgwMCksIGxlbmd0aCA1Mzg6ICh0b3MgMHgwLCB0dGwg NjQsIGlkIDEsIG9mZnNldCA1MDQsDQo+ID4gPiA+ID4gPiBmbGFncyBbK10sIHByb3RvIE9wdGlv bnMgKDApLCBsZW5ndGggNTI0KQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAxMjcuMC4w LjEgPiAxMjcuMC4wLjE6IGlwLXByb3RvLTANCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAxNTo0 NToyOS4xNDcyNTggMjQ6OGE6MDc6ODg6MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwNCj4gPiA+ ID4gPiA+IGV0aGVydHlwZQ0KPiA+ID4gPiA+ID4gSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDQ5Mjog KHRvcyAweDAsIHR0bCA2NCwgaWQgMSwgb2Zmc2V0DQo+ID4gPiA+ID4gPiAxMDA4LCBmbGFncyBb bm9uZV0sIHByb3RvIE9wdGlvbnMgKDApLCBsZW5ndGggNDc4KQ0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ICAgICAxMjcuMC4wLjEgPiAxMjcuMC4wLjE6IGlwLXByb3RvLTANCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICN0Y3BkdW1wIC1pIGVuczkg 4oCTdnZ2ZW4gIC8vLyBoZXJlIHdpbGwgYmUgcmVjZWl2ZWQgdGhlDQo+ID4gPiA+ID4gPiBmb3J3 YXJkZWQgcGFja2V0cyBmcm9tDQo+ID4gPiA+ID4gPiB0ZXN0cG1kOg0KPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+IDE1OjQ1OjI5LjA4Mzk5NiAyNDo4YTowNzo4ODoyNjo1YiA+IDI0OjhhOjA3Ojg4 OjI2OjZiLA0KPiA+ID4gPiA+ID4gZXRoZXJ0eXBlDQo+ID4gPiA+ID4gPiBJUHY0ICgweDA4MDAp LCBsZW5ndGggNTM4OiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQgMCwNCj4gPiA+ID4g PiA+IGZsYWdzIFsrXSwgcHJvdG8gT3B0aW9ucyAoMCksIGxlbmd0aCA1MjQpDQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gICAgIDEyNy4wLjAuMSA+IDEyNy4wLjAuMTogIGlwLXByb3RvLTAgNTA0 DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gMTU6NDU6MjkuMTE1NDI1IDI0OjhhOjA3Ojg4OjI2 OjViID4gMjQ6OGE6MDc6ODg6MjY6NmIsDQo+ID4gPiA+ID4gPiBldGhlcnR5cGUNCj4gPiA+ID4g PiA+IElQdjQgKDB4MDgwMCksIGxlbmd0aCA1Mzg6ICh0b3MgMHgwLCB0dGwgNjQsIGlkIDEsIG9m ZnNldCA1MDQsDQo+ID4gPiA+ID4gPiBmbGFncyBbK10sIHByb3RvIE9wdGlvbnMgKDApLCBsZW5n dGggNTI0KQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAxMjcuMC4wLjEgPiAxMjcuMC4w LjE6IGlwLXByb3RvLTANCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAxNTo0NToyOS4xNDc0OTIg MjQ6OGE6MDc6ODg6MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwNCj4gPiA+ID4gPiA+IGV0aGVy dHlwZQ0KPiA+ID4gPiA+ID4gSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDQ5MjogKHRvcyAweDAsIHR0 bCA2NCwgaWQgMSwgb2Zmc2V0DQo+ID4gPiA+ID4gPiAxMDA4LCBmbGFncyBbbm9uZV0sIHByb3Rv IE9wdGlvbnMgKDApLCBsZW5ndGggNDc4KQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAx MjcuMC4wLjEgPiAxMjcuMC4wLjE6IGlwLXByb3RvLTANCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQW0g SSBkb2luZyBzb21ldGhpbmcgd3Jvbmc/ISBPciBpdCBpcyBhIGJ1Zy4NCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiDDqCBBcyB5b3Ugc2VlIHRoZSB0Y3BkdW1wIHNob3dzIHRoZSBvZmZzZXQgb2Yg ZWFjaCBmcmFnbWVudCwNCj4gPiA+ID4gPiA+IGFuZCB0ZXN0cG1kIHByaW50cyBMNF9GUkFHLCBz byB0aGUgYm90aCBhcmUgcmVjb2duaXppbmcgdGhhdA0KPiA+ID4gPiA+ID4gdGhpcyBpcyBhDQo+ ID4gPiA+ID4gZnJhZ21lbnRlZCBwYWNrZXQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBHUk8gbGli cmFyeSBtZXJnZXMgVFNPZWQvR1NPZWQgcGFja2V0cywgd2hvc2UgSVAgSURzIGFuZCBUQ1ANCj4g PiA+ID4gc2VxdWVuY2VzDQo+ID4gPiA+ID4gYXJlIGJvdGggY29uc2VjdXRpdmUuIElmIGlucHV0 IHBhY2tldHMgaGF2ZSBzYW1lIElQIElEcywgbm8NCj4gPiA+ID4gPiBwYWNrZXRzIHdpbGwgYmUg bWVyZ2VkLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQlRXLCB5b3UgY2FuIHVzZSBpcGVyZiB0byB0 ZXN0IEdSTyBmZWF0dXJlLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQmVzdCBSZWdhcmRzLA0KPiA+ ID4gPiA+IEppYXl1DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+IEJlc3QgcmVnYXJkcywNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiBXaXNhbSBKYWRkbw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0K