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 60ED946C5F; Thu, 31 Jul 2025 13:46:05 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 233DC402C3; Thu, 31 Jul 2025 13:46:05 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 6A90E402AB for ; Thu, 31 Jul 2025 13:46:04 +0200 (CEST) Received: from mail.maildlp.com (unknown [172.18.186.231]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4bt6g916VVz6L57d; Thu, 31 Jul 2025 19:44:05 +0800 (CST) Received: from frapeml100004.china.huawei.com (unknown [7.182.85.167]) by mail.maildlp.com (Postfix) with ESMTPS id E91671402EA; Thu, 31 Jul 2025 19:46:03 +0800 (CST) Received: from frapeml500002.china.huawei.com (7.182.85.205) by frapeml100004.china.huawei.com (7.182.85.167) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Thu, 31 Jul 2025 13:46:03 +0200 Received: from frapeml500002.china.huawei.com ([7.182.85.205]) by frapeml500002.china.huawei.com ([7.182.85.205]) with mapi id 15.01.2507.039; Thu, 31 Jul 2025 13:46:03 +0200 From: Marat Khalili To: =?utf-8?B?6IuP6LWb?= , "jasvinder.singh@intel.com" CC: "dev@dpdk.org" Subject: RE: [PATCH] net/cksum: compute raw cksum for several segments Thread-Topic: [PATCH] net/cksum: compute raw cksum for several segments Thread-Index: AQHcAgFFyrVyZFfIZUe005YUgyycLbRMHNxQ Date: Thu, 31 Jul 2025 11:46:03 +0000 Message-ID: <3fd88fc5be464291b3ee84853f39d3d6@huawei.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.206.137.70] Content-Type: multipart/alternative; boundary="_000_3fd88fc5be464291b3ee84853f39d3d6huaweicom_" MIME-Version: 1.0 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 --_000_3fd88fc5be464291b3ee84853f39d3d6huaweicom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiDoi4/otZsgPHN1c2FpLnNzQGJ5 dGVkYW5jZS5jb20+DQoNCj4gU2VudDogVGh1cnNkYXkgMzEgSnVseSAyMDI1IDEwOjU1DQoNCj4g VG86IGphc3ZpbmRlci5zaW5naEBpbnRlbC5jb20NCg0KPiBDYzogZGV2QGRwZGsub3JnDQoNCj4g U3ViamVjdDogW1BBVENIXSBuZXQvY2tzdW06IGNvbXB1dGUgcmF3IGNrc3VtIGZvciBzZXZlcmFs IHNlZ21lbnRzDQoNCj4NCg0KPiBUaGUgcnRlX3Jhd19ja3N1bV9tYnVmIGZ1bmN0aW9uIGlzIHVz ZWQgdG8gY29tcHV0ZQ0KDQo+IHRoZSByYXcgY2hlY2tzdW0gb2YgYSBwYWNrZXQuDQoNCj4gSWYg dGhlIHBhY2tldCBwYXlsb2FkIHN0b3JlZCBpbiBtdWx0aSBtYnVmLCB0aGUgZnVuY3Rpb24NCg0K PiB3aWxsIGdvdG8gdGhlIGhhcmQgY2FzZS4gSW4gaGFyZCBjYXNlLA0KDQo+IHRoZSB2YXJpYWJs ZSAndG1wJyBpcyBhIHR5cGUgb2YgdWludDMyX3QsDQoNCj4gc28gcnRlX2Jzd2FwMTYgd2lsbCBk cm9wIGhpZ2ggMTYgYml0Lg0KDQo+IE1lYW53aGlsZSwgdGhlIHZhcmlhYmxlICdzdW0nIGlzIGEg dHlwZSBvZiB1aW50MzJfdCwNCg0KPiBzbyAnc3VtICs9IHRtcCcgd2lsbCBkcm9wIHRoZSBjYXJy eSB3aGVuIG92ZXJmbG93Lg0KDQo+IEJvdGggZHJvcCB3aWxsIG1ha2UgY2tzdW0gaW5jb3JyZWN0 Lg0KDQo+IFRoaXMgY29tbWl0IGZpeGVzIHRoZSBhYm92ZSBidWcuDQoNCj4NCg0KPiBTaWduZWQt b2ZmLWJ5OiBTdSBTYWkgPHN1c2FpLnNzQGJ5dGVkYW5jZS5jb20+DQoNCj4gLS0tDQoNCj4gIC5t YWlsbWFwICAgICAgICAgICAgfCAgMSArDQoNCj4gIGxpYi9uZXQvcnRlX2Nrc3VtLmggfCAyNiAr KysrKysrKysrKysrKysrKysrKysrKy0tLQ0KDQo+ICAyIGZpbGVzIGNoYW5nZWQsIDI0IGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQoNCj4NCg0KPiBkaWZmIC0tZ2l0IGEvLm1haWxtYXAg Yi8ubWFpbG1hcA0KDQo+IGluZGV4IDM0YTk5ZjkzYTEuLjgzOGI1NDRhOTcgMTAwNjQ0DQoNCj4g LS0tIGEvLm1haWxtYXANCg0KPiArKysgYi8ubWFpbG1hcA0KDQo+IEBAIC0xODkxLDMgKzE4OTEs NCBAQCBab2x0YW4gS2lzcyA8em9sdGFuLmtpc3NAc2NoYW1hbi5odT4gPHpvbHRhbi5raXNzQGxp bmFyby5vcmc+DQoNCj4gIFpvcmlrIE1hY2h1bHNreSA8em9yaWtAYW1hem9uLmNvbT4NCg0KPiAg Wnl0YSBTenBhayA8enl0YUBtYXJ2ZWxsLmNvbT4gPHpyQHNlbWloYWxmLmNvbT4NCg0KPiAgWnl0 YSBTenBhayA8enl0YUBtYXJ2ZWxsLmNvbT4gPHp5dGEuc3pwYWtAc2VtaWhhbGYuY29tPg0KDQo+ ICtTdSBTYWkgPHN1c2FpLnNzQGJ5dGVkYW5jZS5jb20+DQoNCj4gZGlmZiAtLWdpdCBhL2xpYi9u ZXQvcnRlX2Nrc3VtLmggYi9saWIvbmV0L3J0ZV9ja3N1bS5oDQoNCj4gaW5kZXggYThlODkyNzk1 Mi4uYWE1ODRkNWY4ZCAxMDA2NDQNCg0KPiAtLS0gYS9saWIvbmV0L3J0ZV9ja3N1bS5oDQoNCj4g KysrIGIvbGliL25ldC9ydGVfY2tzdW0uaA0KDQo+IEBAIC04MCw2ICs4MCwyNSBAQCBfX3J0ZV9y YXdfY2tzdW1fcmVkdWNlKHVpbnQzMl90IHN1bSkNCg0KPiAgICAgICAgICByZXR1cm4gKHVpbnQx Nl90KXN1bTsNCg0KPiAgfQ0KDQo+DQoNCj4gKy8qKg0KDQo+ICsgKiBAaW50ZXJuYWwgUmVkdWNl IGEgc3VtIHRvIHRoZSBub24tY29tcGxlbWVudGVkIGNoZWNrc3VtLg0KDQo+ICsgKiBIZWxwZXIg cm91dGluZSBmb3IgdGhlIHJ0ZV9yYXdfY2tzdW1fbWJ1ZigpLg0KDQo+ICsgKg0KDQo+ICsgKiBA cGFyYW0gc3VtDQoNCj4gKyAqICAgVmFsdWUgb2YgdGhlIHN1bS4NCg0KPiArICogQHJldHVybg0K DQo+ICsgKiAgIFRoZSBub24tY29tcGxlbWVudGVkIGNoZWNrc3VtLg0KDQo+ICsgKi8NCg0KPiAr c3RhdGljIGlubGluZSB1aW50MTZfdA0KDQo+ICtfX3J0ZV9yYXdfY2tzdW1fcmVkdWNlX3U2NCh1 aW50NjRfdCBzdW0pDQoNCj4gK3sNCg0KPiArICAgICAgICB1aW50MzJfdCB0bXA7DQoNCj4gKw0K DQo+ICsgICAgICAgIHRtcCA9IF9fcnRlX3Jhd19ja3N1bV9yZWR1Y2UoKHVpbnQzMl90KXN1bSk7 DQoNCj4gKyAgICAgICAgdG1wICs9IF9fcnRlX3Jhd19ja3N1bV9yZWR1Y2UoKHVpbnQzMl90KShz dW0gPj4gMzIpKTsNCg0KPiArICAgICAgICByZXR1cm4gX19ydGVfcmF3X2Nrc3VtX3JlZHVjZSh0 bXApOw0KDQo+ICt9DQoNCj4gKw0KDQo+ICAvKioNCg0KPiAgICogUHJvY2VzcyB0aGUgbm9uLWNv bXBsZW1lbnRlZCBjaGVja3N1bSBvZiBhIGJ1ZmZlci4NCg0KPiAgICoNCg0KPiBAQCAtMTE5LDgg KzEzOCw5IEBAIHJ0ZV9yYXdfY2tzdW1fbWJ1Zihjb25zdCBzdHJ1Y3QgcnRlX21idWYgKm0sIHVp bnQzMl90IG9mZiwgdWludDMyX3QgbGVuLA0KDQo+ICB7DQoNCj4gICAgICAgICAgY29uc3Qgc3Ry dWN0IHJ0ZV9tYnVmICpzZWc7DQoNCj4gICAgICAgICAgY29uc3QgY2hhciAqYnVmOw0KDQo+IC0g ICAgICAgIHVpbnQzMl90IHN1bSwgdG1wOw0KDQo+ICsgICAgICAgIHVpbnQzMl90IHRtcDsNCg0K PiAgICAgICAgICB1aW50MzJfdCBzZWdsZW4sIGRvbmU7DQoNCj4gKyAgICAgICAgdWludDY0X3Qg c3VtOw0KDQo+DQoNCj4gICAgICAgICAgLyogZWFzeSBjYXNlOiBhbGwgZGF0YSBpbiB0aGUgZmly c3Qgc2VnbWVudCAqLw0KDQo+ICAgICAgICAgIGlmIChvZmYgKyBsZW4gPD0gcnRlX3BrdG1idWZf ZGF0YV9sZW4obSkpIHsNCg0KPiBAQCAtMTU3LDcgKzE3Nyw3IEBAIHJ0ZV9yYXdfY2tzdW1fbWJ1 Zihjb25zdCBzdHJ1Y3QgcnRlX21idWYgKm0sIHVpbnQzMl90IG9mZiwgdWludDMyX3QgbGVuLA0K DQo+ICAgICAgICAgIGZvciAoOzspIHsNCg0KPiAgICAgICAgICAgICAgICAgIHRtcCA9IF9fcnRl X3Jhd19ja3N1bShidWYsIHNlZ2xlbiwgMCk7DQoNCj4gICAgICAgICAgICAgICAgICBpZiAoZG9u ZSAmIDEpDQoNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHJ0ZV9ic3dhcDE2KCh1 aW50MTZfdCl0bXApOw0KDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBydGVfYnN3 YXAzMih0bXApOw0KDQo+ICAgICAgICAgICAgICAgICAgc3VtICs9IHRtcDsNCg0KPiAgICAgICAg ICAgICAgICAgIGRvbmUgKz0gc2VnbGVuOw0KDQo+ICAgICAgICAgICAgICAgICAgaWYgKGRvbmUg PT0gbGVuKQ0KDQo+IEBAIC0xNjksNyArMTg5LDcgQEAgcnRlX3Jhd19ja3N1bV9tYnVmKGNvbnN0 IHN0cnVjdCBydGVfbWJ1ZiAqbSwgdWludDMyX3Qgb2ZmLCB1aW50MzJfdCBsZW4sDQoNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgIHNlZ2xlbiA9IGxlbiAtIGRvbmU7DQoNCj4gICAgICAgICAg fQ0KDQo+DQoNCj4gLSAgICAgICAgKmNrc3VtID0gX19ydGVfcmF3X2Nrc3VtX3JlZHVjZShzdW0p Ow0KDQo+ICsgICAgICAgICpja3N1bSA9IF9fcnRlX3Jhd19ja3N1bV9yZWR1Y2VfdTY0KHN1bSk7 DQoNCj4gICAgICAgICAgcmV0dXJuIDA7DQoNCj4gIH0NCg0KPg0KDQo+IC0tDQoNCj4gMi4zOS4y IChBcHBsZSBHaXQtMTQzKQ0KDQoNCg0KQWNrZWQtYnk6IE1hcmF0IEtoYWxpbGkgPG1hcmF0Lmto YWxpbGlAaHVhd2VpLmNvbTxtYWlsdG86bWFyYXQua2hhbGlsaUBodWF3ZWkuY29tPj4NCg== --_000_3fd88fc5be464291b3ee84853f39d3d6huaweicom_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m YWNlDQoJe2ZvbnQtZmFtaWx5OkRlbmdYaWFuOw0KCXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAx IDE7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0xOjIgMTUg NSAyIDIgMiA0IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IlxARGVuZ1hpYW4i Ow0KCXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAxIDE7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMg Ki8NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0K CWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLk1zb1BsYWluVGV4 dCwgbGkuTXNvUGxhaW5UZXh0LCBkaXYuTXNvUGxhaW5UZXh0DQoJe21zby1zdHlsZS1wcmlvcml0 eTo5OTsNCgltc28tc3R5bGUtbGluazoiUGxhaW4gVGV4dCBDaGFyIjsNCgltYXJnaW46MGNtOw0K CWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7fQ0K c3Bhbi5FbWFpbFN0eWxlMTgNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9u dC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6d2luZG93dGV4dDt9DQpzcGFu LlBsYWluVGV4dENoYXINCgl7bXNvLXN0eWxlLW5hbWU6IlBsYWluIFRleHQgQ2hhciI7DQoJbXNv LXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS1saW5rOiJQbGFpbiBUZXh0IjsNCglmb250 LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5 bGUtdHlwZTpleHBvcnQtb25seTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9 DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7DQoJbWFyZ2luOjcy LjBwdCA3Mi4wcHQgNzIuMHB0IDcyLjBwdDt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29y ZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFw ZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZd LS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+ DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48L3ht bD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2 bGluaz0icHVycGxlIiBzdHlsZT0id29yZC13cmFwOmJyZWFrLXdvcmQiPg0KPGRpdiBjbGFzcz0i V29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS08YnI+DQomZ3Q7IEZyb206IDxzcGFuIGxhbmc9IlpILUNOIiBzdHlsZT0i Zm9udC1mYW1pbHk6RGVuZ1hpYW4iPuiLj+i1mzwvc3Bhbj4gJmx0O3N1c2FpLnNzQGJ5dGVkYW5j ZS5jb20mZ3Q7DQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg U2VudDogVGh1cnNkYXkgMzEgSnVseSAyMDI1IDEwOjU1PG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7IFRvOiBqYXN2aW5kZXIuc2luZ2hAaW50ZWwuY29tPG86cD48 L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7IENjOiBkZXZAZHBkay5vcmc8 bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgU3ViamVjdDogW1BB VENIXSBuZXQvY2tzdW06IGNvbXB1dGUgcmF3IGNrc3VtIGZvciBzZXZlcmFsIHNlZ21lbnRzPG86 cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7IDxvOnA+PC9vOnA+PC9w Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyBUaGUgcnRlX3Jhd19ja3N1bV9tYnVmIGZ1 bmN0aW9uIGlzIHVzZWQgdG8gY29tcHV0ZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs YWluVGV4dCI+Jmd0OyB0aGUgcmF3IGNoZWNrc3VtIG9mIGEgcGFja2V0LjxvOnA+PC9vOnA+PC9w Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyBJZiB0aGUgcGFja2V0IHBheWxvYWQgc3Rv cmVkIGluIG11bHRpIG1idWYsIHRoZSBmdW5jdGlvbjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9 Ik1zb1BsYWluVGV4dCI+Jmd0OyB3aWxsIGdvdG8gdGhlIGhhcmQgY2FzZS4gSW4gaGFyZCBjYXNl LDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyB0aGUgdmFyaWFi bGUgJ3RtcCcgaXMgYSB0eXBlIG9mIHVpbnQzMl90LDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9 Ik1zb1BsYWluVGV4dCI+Jmd0OyBzbyBydGVfYnN3YXAxNiB3aWxsIGRyb3AgaGlnaCAxNiBiaXQu PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7IE1lYW53aGlsZSwg dGhlIHZhcmlhYmxlICdzdW0nIGlzIGEgdHlwZSBvZiB1aW50MzJfdCw8bzpwPjwvbzpwPjwvcD4N CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgc28gJ3N1bSAmIzQzOz0gdG1wJyB3aWxsIGRy b3AgdGhlIGNhcnJ5IHdoZW4gb3ZlcmZsb3cuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv UGxhaW5UZXh0Ij4mZ3Q7IEJvdGggZHJvcCB3aWxsIG1ha2UgY2tzdW0gaW5jb3JyZWN0LjxvOnA+ PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyBUaGlzIGNvbW1pdCBmaXhl cyB0aGUgYWJvdmUgYnVnLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+ Jmd0OyA8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgU2lnbmVk LW9mZi1ieTogU3UgU2FpICZsdDtzdXNhaS5zc0BieXRlZGFuY2UuY29tJmd0OzxvOnA+PC9vOnA+ PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAtLS08bzpwPjwvbzpwPjwvcD4NCjxw IGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsmbmJzcDsgLm1haWxtYXAmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfCZuYnNw OyAxICYjNDM7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7Jm5i c3A7IGxpYi9uZXQvcnRlX2Nrc3VtLmggfCAyNiAmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0 MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7 JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7LS0tPG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7Jm5ic3A7IDIgZmlsZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9u cygmIzQzOyksIDMgZGVsZXRpb25zKC0pPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxh aW5UZXh0Ij4mZ3Q7IDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0 OyBkaWZmIC0tZ2l0IGEvLm1haWxtYXAgYi8ubWFpbG1hcDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh c3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyBpbmRleCAzNGE5OWY5M2ExLi44MzhiNTQ0YTk3IDEwMDY0 NDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAtLS0gYS8ubWFp bG1hcDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmIzQzOyYj NDM7JiM0MzsgYi8ubWFpbG1hcDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4 dCI+Jmd0OyBAQCAtMTg5MSwzICYjNDM7MTg5MSw0IEBAIFpvbHRhbiBLaXNzICZsdDt6b2x0YW4u a2lzc0BzY2hhbWFuLmh1Jmd0OyAmbHQ7em9sdGFuLmtpc3NAbGluYXJvLm9yZyZndDs8bzpwPjwv bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsmbmJzcDsgWm9yaWsgTWFjaHVs c2t5ICZsdDt6b3Jpa0BhbWF6b24uY29tJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z b1BsYWluVGV4dCI+Jmd0OyZuYnNwOyBaeXRhIFN6cGFrICZsdDt6eXRhQG1hcnZlbGwuY29tJmd0 OyAmbHQ7enJAc2VtaWhhbGYuY29tJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs YWluVGV4dCI+Jmd0OyZuYnNwOyBaeXRhIFN6cGFrICZsdDt6eXRhQG1hcnZlbGwuY29tJmd0OyAm bHQ7enl0YS5zenBha0BzZW1paGFsZi5jb20mZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i TXNvUGxhaW5UZXh0Ij4mZ3Q7ICYjNDM7U3UgU2FpICZsdDtzdXNhaS5zc0BieXRlZGFuY2UuY29t Jmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyBkaWZmIC0t Z2l0IGEvbGliL25ldC9ydGVfY2tzdW0uaCBiL2xpYi9uZXQvcnRlX2Nrc3VtLmg8bzpwPjwvbzpw PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgaW5kZXggYThlODkyNzk1Mi4uYWE1 ODRkNWY4ZCAxMDA2NDQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZn dDsgLS0tIGEvbGliL25ldC9ydGVfY2tzdW0uaDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z b1BsYWluVGV4dCI+Jmd0OyAmIzQzOyYjNDM7JiM0MzsgYi9saWIvbmV0L3J0ZV9ja3N1bS5oPG86 cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7IEBAIC04MCw2ICYjNDM7 ODAsMjUgQEAgX19ydGVfcmF3X2Nrc3VtX3JlZHVjZSh1aW50MzJfdCBzdW0pPG86cD48L286cD48 L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAodWludDE2X3Qpc3VtOzxvOnA+ PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyZuYnNwOyB9PG86cD48L286 cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7Jm5ic3A7Jm5ic3A7IDxvOnA+PC9v OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmIzQzOy8qKjxvOnA+PC9vOnA+ PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmIzQzOyAqIEBpbnRlcm5hbCBSZWR1 Y2UgYSBzdW0gdG8gdGhlIG5vbi1jb21wbGVtZW50ZWQgY2hlY2tzdW0uPG86cD48L286cD48L3A+ DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICYjNDM7ICogSGVscGVyIHJvdXRpbmUgZm9y IHRoZSBydGVfcmF3X2Nrc3VtX21idWYoKS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q bGFpblRleHQiPiZndDsgJiM0MzsgKjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu VGV4dCI+Jmd0OyAmIzQzOyAqIEBwYXJhbSBzdW08bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN c29QbGFpblRleHQiPiZndDsgJiM0MzsgKiZuYnNwOyZuYnNwOyBWYWx1ZSBvZiB0aGUgc3VtLjxv OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmIzQzOyAqIEByZXR1 cm48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJiM0MzsgKiZu YnNwOyZuYnNwOyBUaGUgbm9uLWNvbXBsZW1lbnRlZCBjaGVja3N1bS48bzpwPjwvbzpwPjwvcD4N CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJiM0MzsgKi88bzpwPjwvbzpwPjwvcD4NCjxw IGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJiM0MztzdGF0aWMgaW5saW5lIHVpbnQxNl90PG86 cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICYjNDM7X19ydGVfcmF3 X2Nrc3VtX3JlZHVjZV91NjQodWludDY0X3Qgc3VtKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9 Ik1zb1BsYWluVGV4dCI+Jmd0OyAmIzQzO3s8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q bGFpblRleHQiPiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgdWludDMyX3QgdG1wOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4 dCI+Jmd0OyAmIzQzOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0 OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB0bXAgPSBf X3J0ZV9yYXdfY2tzdW1fcmVkdWNlKCh1aW50MzJfdClzdW0pOzxvOnA+PC9vOnA+PC9wPg0KPHAg Y2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyB0bXAgJiM0Mzs9IF9fcnRlX3Jhd19ja3N1bV9yZWR1Y2UoKHVpbnQz Ml90KShzdW0gJmd0OyZndDsgMzIpKTs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp blRleHQiPiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgcmV0dXJuIF9fcnRlX3Jhd19ja3N1bV9yZWR1Y2UodG1wKTs8bzpwPjwvbzpwPjwvcD4NCjxw IGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJiM0Mzt9PG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICYjNDM7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv UGxhaW5UZXh0Ij4mZ3Q7Jm5ic3A7IC8qKjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs YWluVGV4dCI+Jmd0OyZuYnNwOyZuYnNwOyAqIFByb2Nlc3MgdGhlIG5vbi1jb21wbGVtZW50ZWQg Y2hlY2tzdW0gb2YgYSBidWZmZXIuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U ZXh0Ij4mZ3Q7Jm5ic3A7Jm5ic3A7ICo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp blRleHQiPiZndDsgQEAgLTExOSw4ICYjNDM7MTM4LDkgQEAgcnRlX3Jhd19ja3N1bV9tYnVmKGNv bnN0IHN0cnVjdCBydGVfbWJ1ZiAqbSwgdWludDMyX3Qgb2ZmLCB1aW50MzJfdCBsZW4sPG86cD48 L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7Jm5ic3A7IHs8bzpwPjwvbzpw PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgY29uc3Qgc3RydWN0IHJ0ZV9tYnVmICpz ZWc7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNvbnN0IGNoYXIg KmJ1Zjs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgLSZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1aW50MzJfdCBzdW0sIHRtcDs8 bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJiM0MzsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdWludDMyX3QgdG1wOzxvOnA+PC9v OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1aW50MzJfdCBzZWdsZW4sIGRvbmU7 PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICYjNDM7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVpbnQ2NF90IHN1bTs8bzpwPjwv bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsmbmJzcDsmbmJzcDsgPG86cD48 L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8qIGVhc3kgY2FzZTogYWxsIGRh dGEgaW4gdGhlIGZpcnN0IHNlZ21lbnQgKi88bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q bGFpblRleHQiPiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgaWYgKG9mZiAmIzQzOyBsZW4gJmx0Oz0gcnRlX3BrdG1idWZfZGF0YV9sZW4o bSkpIHs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgQEAgLTE1 Nyw3ICYjNDM7MTc3LDcgQEAgcnRlX3Jhd19ja3N1bV9tYnVmKGNvbnN0IHN0cnVjdCBydGVfbWJ1 ZiAqbSwgdWludDMyX3Qgb2ZmLCB1aW50MzJfdCBsZW4sPG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IGZvciAoOzspIHs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN c29QbGFpblRleHQiPiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgdG1wID0gX19ydGVfcmF3X2Nrc3VtKGJ1Ziwgc2VnbGVuLCAwKTs8bzpwPjwvbzpwPjwv cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKGRvbmUgJmFtcDsgMSk8bzpwPjwvbzpwPjwvcD4NCjxw IGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgLSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB0bXAg PSBydGVfYnN3YXAxNigodWludDE2X3QpdG1wKTs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN c29QbGFpblRleHQiPiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdG1wID0gcnRl X2Jzd2FwMzIodG1wKTs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZn dDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3VtICYjNDM7 PSB0bXA7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGRvbmUgJiM0Mzs9IHNlZ2xl bjs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKGRvbmUgPT0gbGVuKTxvOnA+ PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyBAQCAtMTY5LDcgJiM0Mzsx ODksNyBAQCBydGVfcmF3X2Nrc3VtX21idWYoY29uc3Qgc3RydWN0IHJ0ZV9tYnVmICptLCB1aW50 MzJfdCBvZmYsIHVpbnQzMl90IGxlbiw8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp blRleHQiPiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7c2VnbGVuID0g bGVuIC0gZG9uZTs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfTxv OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyZuYnNwOyZuYnNwOyA8 bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgLSZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAqY2tzdW0gPSBfX3J0ZV9yYXdfY2tzdW1f cmVkdWNlKHN1bSk7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7 ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICpja3N1bSA9 IF9fcnRlX3Jhd19ja3N1bV9yZWR1Y2VfdTY0KHN1bSk7PG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z b1BsYWluVGV4dCI+Jmd0OyZuYnNwOyB9PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxh aW5UZXh0Ij4mZ3Q7Jm5ic3A7Jm5ic3A7IDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs YWluVGV4dCI+Jmd0OyAtLSA8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi PiZndDsgMi4zOS4yIChBcHBsZSBHaXQtMTQzKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z b1BsYWluVGV4dCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0 Ij5BY2tlZC1ieTogTWFyYXQgS2hhbGlsaSAmbHQ7PGEgaHJlZj0ibWFpbHRvOm1hcmF0LmtoYWxp bGlAaHVhd2VpLmNvbSI+bWFyYXQua2hhbGlsaUBodWF3ZWkuY29tPC9hPiZndDs8bzpwPjwvbzpw PjwvcD4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K --_000_3fd88fc5be464291b3ee84853f39d3d6huaweicom_--