From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhou, David(ChunMing)" Subject: Re: [PATCH 1/2] [WIP]drm/ttm: add waiter list to prevent allocation not in order Date: Fri, 26 Jan 2018 13:50:22 +0000 Message-ID: <48021.5541822419$1516974514@news.gmane.org> References: <20180126102247.17923-1-david1.zhou@amd.com> <2beeea26-9426-6956-fbc7-ada52088b6a6@gmail.com> <5a6b20fc.024e650a.6778d.4aafSMTPIN_ADDED_BROKEN@mx.google.com> <8ba40eb5-095b-2a95-d73a-16c141eb64a9@gmail.com> <5a6b2b4c.c441650a.c40de.5db1SMTPIN_ADDED_BROKEN@mx.google.com>, Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0161108091==" Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Cc: "dri-devel@lists.freedesktop.org" , "Koenig, Christian" , amd-gfx List-Id: dri-devel@lists.freedesktop.org --===============0161108091== Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_smartisan1516974623698_" --_000_smartisan1516974623698_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBkb24ndCB3YW50IHRvIHByZXZlbnQgYWxsLCBteSBuZXcgYXBwcm9hY2ggaXMgdG8gcHJldmVu dCB0aGUgbGF0ZXIgYWxsb2NhdGlvbiBpcyB0cnlpbmcgYW5kIGFoZWFkIG9mIGZyb250IHRvIGdl dCB0aGUgbWVtb3J5IHNwYWNlIHRoYXQgdGhlIGZyb250IG1hZGUgZnJvbSBldmljdGlvbi4NCg0K DQoNCuWPkeiHquWdmuaenCBQcm8NCg0KQ2hyaXN0aWFuIEvpsIppZyA8Y2tvZW5pZy5sZWljaHR6 dW1lcmtlbkBnbWFpbC5jb20+IOS6jiAyMDE45bm0MeaciDI25pelIOS4i+WNiDk6MjTlhpnpgZPv vJoNCg0KWWVzLCBleGFjdGx5IHRoYXQncyB0aGUgcHJvYmxlbS4NCg0KU2VlIHdoZW4geW91IHdh bnQgdG8gcHJldmVudCBhIHByb2Nlc3MgQiBmcm9tIGFsbG9jYXRpbmcgdGhlIG1lbW9yeSBwcm9j ZXNzIEEgaGFzIGV2aWN0ZWQsIHlvdSBuZWVkIHRvIHByZXZlbnQgYWxsIGNvbmN1cnJlbnQgYWxs b2NhdGlvbi4NCg0KQW5kIHdlIGRvbid0IGRvIHRoYXQgYmVjYXVzZSBpdCBjYXVzZXMgYSBtYWpv ciBwZXJmb3JtYW5jZSBkcm9wLg0KDQpSZWdhcmRzLA0KQ2hyaXN0aWFuLg0KDQpBbSAyNi4wMS4y MDE4IHVtIDE0OjIxIHNjaHJpZWIgWmhvdSwgRGF2aWQoQ2h1bk1pbmcpOg0KWW91IHBhdGNoIHdp bGwgcHJldmVudCBjb25jdXJyZW50IGFsbG9jYXRpb24sIGFuZCB3aWxsIHJlc3VsdCBpbiBhbGxv Y2F0aW9uIHBlcmZvcm1hbmNlIGRyb3AgbXVjaC4NCg0KDQrlj5Hoh6rlnZrmnpwgUHJvDQoNCkNo cmlzdGlhbiBL6bCKaWcgPGNrb2VuaWcubGVpY2h0enVtZXJrZW5AZ21haWwuY29tPjxtYWlsdG86 Y2tvZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb20+IOS6jiAyMDE45bm0MeaciDI25pelIOS4 i+WNiDk6MDTlhpnpgZPvvJoNCg0KQXR0YWNoZWQgaXMgd2hhdCB5b3UgYWN0dWFsbHkgd2FudCB0 byBkbyBjbGVhbmx5IGltcGxlbWVudGVkLiBCdXQgYXMgSSBzYWlkIHRoaXMgaXMgYSBOTy1HTy4N Cg0KUmVnYXJkcywNCkNocmlzdGlhbi4NCg0KQW0gMjYuMDEuMjAxOCB1bSAxMzo0MyBzY2hyaWVi IENocmlzdGlhbiBLw7ZuaWc6DQpBZnRlciBteSBpbnZlc3RpZ2F0aW9uLCB0aGlzIGlzc3VlIHNo b3VsZCBiZSBkZXRlY3Qgb2YgVFRNIGRlc2lnbiBzZWxmLCB3aGljaCBicmVha3Mgc2NoZWR1bGlu ZyBiYWxhbmNlLg0KWWVhaCwgYnV0IGFnYWluLiBUaGlzIGlzIGluZGVudGVkIGRlc2lnbiB3ZSBj YW4ndCBjaGFuZ2UgZWFzaWx5Lg0KDQpSZWdhcmRzLA0KQ2hyaXN0aWFuLg0KDQpBbSAyNi4wMS4y MDE4IHVtIDEzOjM2IHNjaHJpZWIgWmhvdSwgRGF2aWQoQ2h1bk1pbmcpOg0KSSBhbSBvZmYgd29y aywgc28gcmVwbHkgbWFpbCBieSBwaG9uZSwgdGhlIGZvcm1hdCBjb3VsZCBub3QgYmUgdGV4dC4N Cg0KYmFjayB0byB0b3BpYyBpdHNlbGY6DQp0aGUgcHJvYmxlbSBpbmRlZWQgaGFwcGVuIG9uIGFt ZGdwdSBkcml2ZXIsIHNvbWVvbmUgcmVwb3J0cyBtZSB0aGF0IGFwcGxpY2F0aW9uIHJ1bnMgd2l0 aCB0d28gaW5zdGFuY2VzLCB0aGUgcGVyZm9ybWFuY2UgYXJlIGRpZmZlcmVudC4NCkkgYWxzbyBy ZXByb2R1Y2VkIHRoZSBpc3N1ZSB3aXRoIHVuaXQgdGVzdChib19ldmljdGlvbl90ZXN0KS4gVGhl eSBhbHdheXMgdGhpbmsgb3VyIHNjaGVkdWxlciBpc24ndCB3b3JraW5nIGFzIGV4cGVjdGVkLg0K DQpBZnRlciBteSBpbnZlc3RpZ2F0aW9uLCB0aGlzIGlzc3VlIHNob3VsZCBiZSBkZXRlY3Qgb2Yg VFRNIGRlc2lnbiBzZWxmLCB3aGljaCBicmVha3Mgc2NoZWR1bGluZyBiYWxhbmNlLg0KDQpGdXJ0 aGVyLCBpZiB3ZSBydW4gY29udGFpbmVycyBmb3Igb3VyIGdwdSwgY29udGFpbmVyIEEgY291bGQg cnVuIGhpZ2ggc2NvcmUsIGNvbnRhaW5lciBCIHJ1bnMgbG93IHNjb3JlIHdpdGggc2FtZSBiZW5j aG1hcmsuDQoNClNvIHRoaXMgaXMgYnVnIHRoYXQgd2UgbmVlZCBmaXguDQoNClJlZ2FyZHMsDQpE YXZpZCBaaG91DQoNCg0K5Y+R6Ieq5Z2a5p6cIFBybw0KDQpDaHJpc3RpYW4gS+mwimlnIDxja29l bmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT48bWFpbHRvOmNrb2VuaWcubGVpY2h0enVtZXJr ZW5AZ21haWwuY29tPiDkuo4gMjAxOOW5tDHmnIgyNuaXpSDkuIvljYg2OjMx5YaZ6YGT77yaDQoN CkFtIDI2LjAxLjIwMTggdW0gMTE6MjIgc2NocmllYiBDaHVubWluZyBaaG91Og0KPiB0aGVyZSBp cyBhIHNjaGVkdWxpbmcgYmFsYW5jZSBpc3N1ZSBhYm91dCBnZXQgbm9kZSBsaWtlOg0KPiBhLiBw cm9jZXNzIEEgYWxsb2NhdGVzIGZ1bGwgbWVtb3J5IGFuZCB1c2UgaXQgZm9yIHN1Ym1pc3Npb24u DQo+IGIuIHByb2Nlc3MgQiB0cmllcyB0byBhbGxvY2F0ZXMgbWVtb3J5LCB3aWxsIHdhaXQgZm9y IHByb2Nlc3MgQSBCTyBpZGxlIGluIGV2aWN0aW9uLg0KPiBjLiBwcm9jZXNzIEEgY29tcGxldGVz IHRoZSBqb2IsIHByb2Nlc3MgQiBldmljdGlvbiB3aWxsIHB1dCBwcm9jZXNzIEEgQk8gbm9kZSwN Cj4gYnV0IGluIHRoZSBtZWFudGltZSwgcHJvY2VzcyBDIGlzIGNvbW1pbmcgdG8gYWxsb2NhdGUg Qk8sIHdoaWxsIGRpcmVjdGx5IGdldCBub2RlIHN1Y2Nlc3NmdWxseSwgYW5kIGRvIHN1Ym1pc3Np b24sDQo+IHByb2Nlc3MgQiB3aWxsIGFnYWluIHdhaXQgZm9yIHByb2Nlc3MgQyBCTyBpZGxlLg0K PiBkLiByZXBlYXQgdGhlIGFib3ZlIHNldHBzLCBwcm9jZXNzIEIgY291bGQgYmUgZGVsYXllZCBt dWNoIG1vcmUuDQo+DQo+IGxhdGVyIGFsbG9jYXRpb24gbXVzdCBub3QgYmUgYWhlYWQgb2YgZnJv bnQgaW4gc2FtZSBwbGFjZS4NCg0KQWdhaW4gTkFLIHRvIHRoZSB3aG9sZSBhcHByb2FjaC4NCg0K QXQgbGVhc3Qgd2l0aCBhbWRncHUgdGhlIHByb2JsZW0geW91IGRlc2NyaWJlZCBhYm92ZSBuZXZl ciBvY2N1cnMNCmJlY2F1c2UgZXZpY3Rpb25zIGFyZSBwaXBlbGluZWQgb3BlcmF0aW9ucy4gV2Ug Y291bGQgb25seSBibG9jayBmb3INCmRlbGV0ZWQgcmVnaW9ucyB0byBiZWNvbWUgZnJlZS4NCg0K QnV0IGluZGVwZW5kZW50IG9mIHRoYXQgaW5jb21pbmcgbWVtb3J5IHJlcXVlc3RzIHdoaWxlIHdl IG1ha2Ugcm9vbSBmb3INCmV2aWN0aW9uIGFyZSBpbnRlbmRlZCB0byBiZSBzZXJ2ZWQgZmlyc3Qu DQoNCkNoYW5naW5nIHRoYXQgaXMgY2VydGFpbmx5IGEgbm8tZ28gY2F1c2UgdGhhdCB3b3VsZCBm YXZvciBtZW1vcnkgaHVuZ3J5DQphcHBsaWNhdGlvbnMgb3ZlciBzbWFsbCBjbGllbnRzLg0KDQpS ZWdhcmRzLA0KQ2hyaXN0aWFuLg0KDQo+DQo+IENoYW5nZS1JZDogSTNkYWE4OTJlNTBmODIyMjZj NTUyY2MwMDhhMjllNTU4OTRhOThmMTgNCj4gU2lnbmVkLW9mZi1ieTogQ2h1bm1pbmcgWmhvdSA8 ZGF2aWQxLnpob3VAYW1kLmNvbT48bWFpbHRvOmRhdmlkMS56aG91QGFtZC5jb20+DQo+IC0tLQ0K PiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgICAgfCA2OSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLQ0KPiAgIGluY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBp LmggICAgfCAgNyArKysrKw0KPiAgIGluY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggfCAg NyArKysrKw0KPiAgIDMgZmlsZXMgY2hhbmdlZCwgODAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkNCj4NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgYi9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jDQo+IGluZGV4IGQzM2E2YmI3NDJhMS4uNTU4ZWMy Y2Y0NjVkIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jDQo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMNCj4gQEAgLTg0MSw2ICs4NDEsNTggQEAg c3RhdGljIGludCB0dG1fYm9fYWRkX21vdmVfZmVuY2Uoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywNCj4gICAgICAgIHJldHVybiAwOw0KPiAgIH0NCj4NCj4gK3N0YXRpYyB2b2lkIHR0bV9t YW5faW5pdF93YWl0ZXIoc3RydWN0IHR0bV9ib193YWl0ZXIgKndhaXRlciwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2Up DQo+ICt7DQo+ICsgICAgIHdhaXRlci0+dGJvID0gYm87DQo+ICsgICAgIG1lbWNweSgodm9pZCAq KSZ3YWl0ZXItPnBsYWNlLCAodm9pZCAqKXBsYWNlLCBzaXplb2YoKnBsYWNlKSk7DQo+ICsgICAg IElOSVRfTElTVF9IRUFEKCZ3YWl0ZXItPmxpc3QpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9p ZCB0dG1fbWFuX2FkZF93YWl0ZXIoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9ib193YWl0ZXIgKndhaXRl cikNCj4gK3sNCj4gKyAgICAgaWYgKCF3YWl0ZXIpDQo+ICsgICAgICAgICAgICAgcmV0dXJuOw0K PiArICAgICBzcGluX2xvY2soJm1hbi0+d2FpdF9sb2NrKTsNCj4gKyAgICAgbGlzdF9hZGRfdGFp bCgmd2FpdGVyLT5saXN0LCAmbWFuLT53YWl0ZXJfbGlzdCk7DQo+ICsgICAgIHNwaW5fdW5sb2Nr KCZtYW4tPndhaXRfbG9jayk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIHR0bV9tYW5fZGVs X3dhaXRlcihzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2JvX3dhaXRlciAqd2FpdGVyKQ0KPiArew0KPiAr ICAgICBpZiAoIXdhaXRlcikNCj4gKyAgICAgICAgICAgICByZXR1cm47DQo+ICsgICAgIHNwaW5f bG9jaygmbWFuLT53YWl0X2xvY2spOw0KPiArICAgICBpZiAoIWxpc3RfZW1wdHkoJndhaXRlci0+ bGlzdCkpDQo+ICsgICAgICAgICAgICAgbGlzdF9kZWwoJndhaXRlci0+bGlzdCk7DQo+ICsgICAg IHNwaW5fdW5sb2NrKCZtYW4tPndhaXRfbG9jayk7DQo+ICsgICAgIGtmcmVlKHdhaXRlcik7DQo+ ICt9DQo+ICsNCj4gK2ludCB0dG1fbWFuX2NoZWNrX2JvKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFu YWdlciAqbWFuLA0KPiArICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywNCj4gKyAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNl KQ0KPiArew0KPiArICAgICBzdHJ1Y3QgdHRtX2JvX3dhaXRlciAqd2FpdGVyLCAqdG1wOw0KPiAr DQo+ICsgICAgIHNwaW5fbG9jaygmbWFuLT53YWl0X2xvY2spOw0KPiArICAgICBsaXN0X2Zvcl9l YWNoX2VudHJ5X3NhZmUod2FpdGVyLCB0bXAsICZtYW4tPndhaXRlcl9saXN0LCBsaXN0KSB7DQo+ ICsgICAgICAgICAgICAgaWYgKChibyAhPSB3YWl0ZXItPnRibykgJiYNCj4gKyAgICAgICAgICAg ICAgICAgKChwbGFjZS0+ZnBmbiA+PSB3YWl0ZXItPnBsYWNlLmZwZm4gJiYNCj4gKyAgICAgICAg ICAgICAgICAgICBwbGFjZS0+ZnBmbiA8PSB3YWl0ZXItPnBsYWNlLmxwZm4pIHx8DQo+ICsgICAg ICAgICAgICAgICAgICAocGxhY2UtPmxwZm4gPD0gd2FpdGVyLT5wbGFjZS5scGZuICYmIHBsYWNl LT5scGZuID49DQo+ICsgICAgICAgICAgICAgICAgICAgd2FpdGVyLT5wbGFjZS5mcGZuKSkpDQo+ ICsgICAgICAgICAgICAgICAgIGdvdG8gbGF0ZXJfYm87DQo+ICsgICAgIH0NCj4gKyAgICAgc3Bp bl91bmxvY2soJm1hbi0+d2FpdF9sb2NrKTsNCj4gKyAgICAgcmV0dXJuIHRydWU7DQo+ICtsYXRl cl9ibzoNCj4gKyAgICAgc3Bpbl91bmxvY2soJm1hbi0+d2FpdF9sb2NrKTsNCj4gKyAgICAgcmV0 dXJuIGZhbHNlOw0KPiArfQ0KPiAgIC8qKg0KPiAgICAqIFJlcGVhdGVkbHkgZXZpY3QgbWVtb3J5 IGZyb20gdGhlIExSVSBmb3IgQG1lbV90eXBlIHVudGlsIHdlIGNyZWF0ZSBlbm91Z2gNCj4gICAg KiBzcGFjZSwgb3Igd2UndmUgZXZpY3RlZCBldmVyeXRoaW5nIGFuZCB0aGVyZSBpc24ndCBlbm91 Z2ggc3BhY2UuDQo+IEBAIC04NTMsMTcgKzkwNSwyNiBAQCBzdGF0aWMgaW50IHR0bV9ib19tZW1f Zm9yY2Vfc3BhY2Uoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywNCj4gICB7DQo+ICAgICAg ICBzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Ow0KPiAgICAgICAgc3RydWN0 IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSAmYmRldi0+bWFuW21lbV90eXBlXTsNCj4gKyAg ICAgc3RydWN0IHR0bV9ib193YWl0ZXIgd2FpdGVyOw0KPiAgICAgICAgaW50IHJldDsNCj4NCj4g KyAgICAgdHRtX21hbl9pbml0X3dhaXRlcigmd2FpdGVyLCBibywgcGxhY2UpOw0KPiArICAgICB0 dG1fbWFuX2FkZF93YWl0ZXIobWFuLCAmd2FpdGVyKTsNCj4gICAgICAgIGRvIHsNCj4gICAgICAg ICAgICAgICAgcmV0ID0gKCptYW4tPmZ1bmMtPmdldF9ub2RlKShtYW4sIGJvLCBwbGFjZSwgbWVt KTsNCj4gLSAgICAgICAgICAgICBpZiAodW5saWtlbHkocmV0ICE9IDApKQ0KPiArICAgICAgICAg ICAgIGlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgIHR0 bV9tYW5fZGVsX3dhaXRlcihtYW4sICZ3YWl0ZXIpOw0KPiAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiByZXQ7DQo+IC0gICAgICAgICAgICAgaWYgKG1lbS0+bW1fbm9kZSkNCj4gKyAgICAg ICAgICAgICB9DQo+ICsgICAgICAgICAgICAgaWYgKG1lbS0+bW1fbm9kZSkgew0KPiArICAgICAg ICAgICAgICAgICAgICAgdHRtX21hbl9kZWxfd2FpdGVyKG1hbiwgJndhaXRlcik7DQo+ICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAgICAgICAgfQ0KPiAgICAgICAgICAg ICAgICByZXQgPSB0dG1fbWVtX2V2aWN0X2ZpcnN0KGJkZXYsIG1lbV90eXBlLCBwbGFjZSwgY3R4 KTsNCj4gLSAgICAgICAgICAgICBpZiAodW5saWtlbHkocmV0ICE9IDApKQ0KPiArICAgICAgICAg ICAgIGlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgIHR0 bV9tYW5fZGVsX3dhaXRlcihtYW4sICZ3YWl0ZXIpOw0KPiAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiByZXQ7DQo+ICsgICAgICAgICAgICAgfQ0KPiAgICAgICAgfSB3aGlsZSAoMSk7DQo+ ICAgICAgICBtZW0tPm1lbV90eXBlID0gbWVtX3R5cGU7DQo+ICAgICAgICByZXR1cm4gdHRtX2Jv X2FkZF9tb3ZlX2ZlbmNlKGJvLCBtYW4sIG1lbSk7DQo+IEBAIC0xNDUwLDYgKzE1MTEsOCBAQCBp bnQgdHRtX2JvX2luaXRfbW0oc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHVuc2lnbmVkIHR5 cGUsDQo+ICAgICAgICBtYW4tPnVzZV9pb19yZXNlcnZlX2xydSA9IGZhbHNlOw0KPiAgICAgICAg bXV0ZXhfaW5pdCgmbWFuLT5pb19yZXNlcnZlX211dGV4KTsNCj4gICAgICAgIHNwaW5fbG9ja19p bml0KCZtYW4tPm1vdmVfbG9jayk7DQo+ICsgICAgIHNwaW5fbG9ja19pbml0KCZtYW4tPndhaXRf bG9jayk7DQo+ICsgICAgIElOSVRfTElTVF9IRUFEKCZtYW4tPndhaXRlcl9saXN0KTsNCj4gICAg ICAgIElOSVRfTElTVF9IRUFEKCZtYW4tPmlvX3Jlc2VydmVfbHJ1KTsNCj4NCj4gICAgICAgIHJl dCA9IGJkZXYtPmRyaXZlci0+aW5pdF9tZW1fdHlwZShiZGV2LCB0eXBlLCBtYW4pOw0KPiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCBiL2luY2x1ZGUvZHJtL3R0bS90 dG1fYm9fYXBpLmgNCj4gaW5kZXggMmNkMDI1YzJhYmU3Li4wZmNlNGRiZDAyZTcgMTAwNjQ0DQo+ IC0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgNCj4gKysrIGIvaW5jbHVkZS9kcm0v dHRtL3R0bV9ib19hcGkuaA0KPiBAQCAtNDAsNiArNDAsNyBAQA0KPiAgICNpbmNsdWRlIDxsaW51 eC9tbS5oPg0KPiAgICNpbmNsdWRlIDxsaW51eC9iaXRtYXAuaD4NCj4gICAjaW5jbHVkZSA8bGlu dXgvcmVzZXJ2YXRpb24uaD4NCj4gKyNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wbGFjZW1lbnQuaD4N Cj4NCj4gICBzdHJ1Y3QgdHRtX2JvX2RldmljZTsNCj4NCj4gQEAgLTIzMiw2ICsyMzMsMTIgQEAg c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0IHsNCj4gICAgICAgIHN0cnVjdCBtdXRleCB3dV9tdXRl eDsNCj4gICB9Ow0KPg0KPiArc3RydWN0IHR0bV9ib193YWl0ZXIgew0KPiArICAgICBzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKnRibzsNCj4gKyAgICAgc3RydWN0IHR0bV9wbGFjZSBwbGFjZTsN Cj4gKyAgICAgc3RydWN0IGxpc3RfaGVhZCBsaXN0Ow0KPiArfTsNCj4gKw0KPiAgIC8qKg0KPiAg ICAqIHN0cnVjdCB0dG1fYm9fa21hcF9vYmoNCj4gICAgKg0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVy LmgNCj4gaW5kZXggOWI0MTdlYjJkZjIwLi5kYzZiOGI0YzllMDYgMTAwNjQ0DQo+IC0tLSBhL2lu Y2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgNCj4gKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0 bV9ib19kcml2ZXIuaA0KPiBAQCAtMjkzLDYgKzI5MywxMCBAQCBzdHJ1Y3QgdHRtX21lbV90eXBl X21hbmFnZXIgew0KPiAgICAgICAgYm9vbCBpb19yZXNlcnZlX2Zhc3RwYXRoOw0KPiAgICAgICAg c3BpbmxvY2tfdCBtb3ZlX2xvY2s7DQo+DQo+ICsgICAgIC8qIHdhaXRlcnMgaW4gbGlzdCAqLw0K PiArICAgICBzcGlubG9ja190IHdhaXRfbG9jazsNCj4gKyAgICAgc3RydWN0IGxpc3RfaGVhZCB3 YWl0ZXJfbGlzdDsNCj4gKw0KPiAgICAgICAgLyoNCj4gICAgICAgICAqIFByb3RlY3RlZCBieSBA aW9fcmVzZXJ2ZV9tdXRleDoNCj4gICAgICAgICAqLw0KPiBAQCAtNzQ4LDYgKzc1Miw5IEBAIGlu dCB0dG1fYm9fbWVtX3NwYWNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sDQo+ICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0sDQo+ICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOw0KPg0KPiAraW50IHR0bV9tYW5f Y2hlY2tfYm8oc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sDQo+ICsgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLA0KPiArICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UpOw0KPiAgIHZvaWQgdHRtX2JvX21lbV9w dXQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IHR0bV9tZW1fcmVnICptZW0p Ow0KPiAgIHZvaWQgdHRtX2JvX21lbV9wdXRfbG9ja2VkKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICpt ZW0pOw0KDQoNCg0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXw0KYW1kLWdmeCBtYWlsaW5nIGxpc3QNCmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn PG1haWx0bzphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4NCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeA0KDQoNCg0KDQoNCg0KX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QNCmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmc8bWFpbHRvOmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+DQpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA0KDQoNCg== --_000_smartisan1516974623698_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh cnNldD11dGYtOCI+DQo8L2hlYWQ+DQo8Ym9keSBiZ2NvbG9yPSIjRkZGRkZGIj4NCjxkaXYgbmFt ZT0ic21hcnRpc2FubWVzc2FnZWlkIiBpZD0ic21hcnRpc2FuMTUxNjk3NDYyMzY5OCI+PGZvbnQg Y29sb3I9IiMzMzMzMzMiPkkgZG9uJ3Qgd2FudCB0byBwcmV2ZW50IGFsbCwgbXkgbmV3IGFwcHJv YWNoIGlzIHRvIHByZXZlbnQgdGhlIGxhdGVyIGFsbG9jYXRpb24gaXMgdHJ5aW5nIGFuZCBhaGVh ZCBvZiBmcm9udCB0byBnZXQgdGhlIG1lbW9yeSBzcGFjZSB0aGF0IHRoZSBmcm9udCBtYWRlIGZy b20gZXZpY3Rpb24uJm5ic3A7PGJyPg0KPC9mb250Pjxicj4NCjxicj4NCjxzcGFuIGlkPSJzbWFy dGlzYW5fc2lnbmF0dXJlIiBzdHlsZT0iZm9udC1zaXplOjAuOGVtOyBkaXNwbGF5OmlubGluZTsg Y29sb3I6Izg4ODg4OCI+DQo8cCBkaXI9Imx0ciI+5Y+R6Ieq5Z2a5p6cIFBybzwvcD4NCjwvc3Bh bj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KPCEtLQ0KKiBib2R5DQoJe3BhZGRpbmc6MCAxNnB4 IDMwcHghaW1wb3J0YW50Ow0KCW1hcmdpbjowIWltcG9ydGFudDsNCgliYWNrZ3JvdW5kLWNvbG9y OiNmZmZmZmY7DQoJbGluZS1oZWlnaHQ6MS40Ow0KCXdvcmQtd3JhcDpicmVhay13b3JkOw0KCXdv cmQtYnJlYWs6bm9ybWFsfQ0KZGl2DQoJe3dvcmQtd3JhcDpicmVhay13b3JkOw0KCXdvcmQtYnJl YWs6bm9ybWFsfQ0KcA0KCXt3b3JkLXdyYXA6YnJlYWstd29yZDsNCgl3b3JkLWJyZWFrOm5vcm1h bDsNCgl0ZXh0LWluZGVudDowcHQhaW1wb3J0YW50fQ0Kc3Bhbg0KCXt3b3JkLXdyYXA6YnJlYWst d29yZDsNCgl3b3JkLWJyZWFrOm5vcm1hbH0NCmENCgl7d29yZC13cmFwOmJyZWFrLXdvcmQ7DQoJ d29yZC1icmVhazpub3JtYWx9DQp0ZA0KCXt3b3JkLXdyYXA6YnJlYWstd29yZDsNCgl3b3JkLWJy ZWFrOmJyZWFrLWFsbH0NCi0tPg0KPC9zdHlsZT4NCjxkaXYgY2xhc3M9InF1b3RlIj4NCjxkaXYg c3R5bGU9Im1hcmdpbjowIDBweDsgZm9udC1zaXplOjEwNSUiPjxmb250IGNvbG9yPSIjNjI5MTQw IiBzdHlsZT0ibGluZS1oZWlnaHQ6MS40Ij48c3Bhbj5DaHJpc3RpYW4gS+mwimlnICZsdDtja29l bmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbSZndDsg5LqOIDIwMTjlubQx5pyIMjbml6Ug5LiL 5Y2IOToyNOWGmemBk++8mjwvc3Bhbj48L2ZvbnQ+PC9kaXY+DQo8YnIgdHlwZT0iYXR0cmlidXRp b24iPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2IGNsYXNzPSJtb3otY2l0ZS1wcmVmaXgi PlllcywgZXhhY3RseSB0aGF0J3MgdGhlIHByb2JsZW0uPGJyPg0KPGJyPg0KU2VlIHdoZW4geW91 IHdhbnQgdG8gcHJldmVudCBhIHByb2Nlc3MgQiBmcm9tIGFsbG9jYXRpbmcgdGhlIG1lbW9yeSBw cm9jZXNzIEEgaGFzIGV2aWN0ZWQsIHlvdSBuZWVkIHRvIHByZXZlbnQgYWxsIGNvbmN1cnJlbnQg YWxsb2NhdGlvbi48YnI+DQo8YnI+DQpBbmQgd2UgZG9uJ3QgZG8gdGhhdCBiZWNhdXNlIGl0IGNh dXNlcyBhIG1ham9yIHBlcmZvcm1hbmNlIGRyb3AuPGJyPg0KPGJyPg0KUmVnYXJkcyw8YnI+DQpD aHJpc3RpYW4uPGJyPg0KPGJyPg0KQW0gMjYuMDEuMjAxOCB1bSAxNDoyMSBzY2hyaWViIFpob3Us IERhdmlkKENodW5NaW5nKTo8YnI+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPg0K PG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxkaXYgbmFtZT0ic21h cnRpc2FubWVzc2FnZWlkIiBpZD0ic21hcnRpc2FuMTUxNjk3Mjg2OTgxNyI+PGZvbnQgY29sb3I9 IiMzMzMzMzMiPllvdSBwYXRjaCB3aWxsIHByZXZlbnQgY29uY3VycmVudCBhbGxvY2F0aW9uLCBh bmQgd2lsbCByZXN1bHQgaW4gYWxsb2NhdGlvbiBwZXJmb3JtYW5jZSBkcm9wIG11Y2guPC9mb250 Pjxicj4NCjxicj4NCjxzcGFuIGlkPSJzbWFydGlzYW5fc2lnbmF0dXJlIiBzdHlsZT0iZm9udC1z aXplOjAuOGVtOyBkaXNwbGF5OmlubGluZTsgY29sb3I6Izg4ODg4OCI+DQo8cCBkaXI9Imx0ciI+ 5Y+R6Ieq5Z2a5p6cIFBybzwvcD4NCjwvc3Bhbj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KPCEt LQ0KKiBib2R5DQoJe3BhZGRpbmc6MCAxNnB4IDMwcHghaW1wb3J0YW50Ow0KCW1hcmdpbjowIWlt cG9ydGFudDsNCgliYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7DQoJbGluZS1oZWlnaHQ6MS40Ow0K CXdvcmQtd3JhcDpicmVhay13b3JkOw0KCXdvcmQtYnJlYWs6bm9ybWFsfQ0KZGl2DQoJe3dvcmQt d3JhcDpicmVhay13b3JkOw0KCXdvcmQtYnJlYWs6bm9ybWFsfQ0KcA0KCXt3b3JkLXdyYXA6YnJl YWstd29yZDsNCgl3b3JkLWJyZWFrOm5vcm1hbDsNCgl0ZXh0LWluZGVudDowcHQhaW1wb3J0YW50 fQ0Kc3Bhbg0KCXt3b3JkLXdyYXA6YnJlYWstd29yZDsNCgl3b3JkLWJyZWFrOm5vcm1hbH0NCmEN Cgl7d29yZC13cmFwOmJyZWFrLXdvcmQ7DQoJd29yZC1icmVhazpub3JtYWx9DQp0ZA0KCXt3b3Jk LXdyYXA6YnJlYWstd29yZDsNCgl3b3JkLWJyZWFrOmJyZWFrLWFsbH0NCi0tPg0KPC9zdHlsZT4N CjxkaXYgY2xhc3M9InF1b3RlIj4NCjxkaXYgc3R5bGU9Im1hcmdpbjowIDBweDsgZm9udC1zaXpl OjEwNSUiPjxmb250IGNvbG9yPSIjNjI5MTQwIiBzdHlsZT0ibGluZS1oZWlnaHQ6MS40Ij48c3Bh bj5DaHJpc3RpYW4gS+mwimlnDQo8YSBjbGFzcz0ibW96LXR4dC1saW5rLXJmYzIzOTZFIiBocmVm PSJtYWlsdG86Y2tvZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb20iPiZsdDtja29lbmlnLmxl aWNodHp1bWVya2VuQGdtYWlsLmNvbSZndDs8L2E+IOS6jiAyMDE45bm0MeaciDI25pelIOS4i+WN iDk6MDTlhpnpgZPvvJo8L3NwYW4+PC9mb250PjwvZGl2Pg0KPGJyIHR5cGU9ImF0dHJpYnV0aW9u Ij4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4Ij5B dHRhY2hlZCBpcyB3aGF0IHlvdSBhY3R1YWxseSB3YW50IHRvIGRvIGNsZWFubHkgaW1wbGVtZW50 ZWQuIEJ1dCBhcyBJIHNhaWQgdGhpcyBpcyBhIE5PLUdPLjxicj4NCjxicj4NClJlZ2FyZHMsPGJy Pg0KQ2hyaXN0aWFuLjxicj4NCjxicj4NCkFtIDI2LjAxLjIwMTggdW0gMTM6NDMgc2NocmllYiBD aHJpc3RpYW4gS8O2bmlnOjxicj4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+DQo8 ZGl2IGNsYXNzPSJtb3otY2l0ZS1wcmVmaXgiPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+QWZ0 ZXIgbXkgaW52ZXN0aWdhdGlvbiwgdGhpcyBpc3N1ZSBzaG91bGQgYmUgZGV0ZWN0IG9mIFRUTSBk ZXNpZ24gc2VsZiwgd2hpY2ggYnJlYWtzIHNjaGVkdWxpbmcgYmFsYW5jZS48YnI+DQo8L2Jsb2Nr cXVvdGU+DQpZZWFoLCBidXQgYWdhaW4uIFRoaXMgaXMgaW5kZW50ZWQgZGVzaWduIHdlIGNhbid0 IGNoYW5nZSBlYXNpbHkuPGJyPg0KPGJyPg0KUmVnYXJkcyw8YnI+DQpDaHJpc3RpYW4uPGJyPg0K PGJyPg0KQW0gMjYuMDEuMjAxOCB1bSAxMzozNiBzY2hyaWViIFpob3UsIERhdmlkKENodW5NaW5n KTo8YnI+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPg0KPG1ldGEgbmFtZT0iR2Vu ZXJhdG9yIiBjb250ZW50PSJNaWNyb3NvZnQgRXhjaGFuZ2UgU2VydmVyIj4NCjxzdHlsZT4NCjwh LS0NCi5FbWFpbFF1b3RlDQoJe21hcmdpbi1sZWZ0OjFwdDsNCglwYWRkaW5nLWxlZnQ6NHB0Ow0K CWJvcmRlci1sZWZ0OiM4MDAwMDAgMnB4IHNvbGlkfQ0KLS0+DQo8L3N0eWxlPg0KPGRpdj4NCjxk aXYgbmFtZT0ieF9zbWFydGlzYW5tZXNzYWdlaWQiIGlkPSJ4X3NtYXJ0aXNhbjE1MTY5NzAxOTkx MDIiPjxmb250IGNvbG9yPSIjMzMzMzMzIj5JIGFtIG9mZiB3b3JrLCBzbyByZXBseSBtYWlsIGJ5 IHBob25lLCB0aGUgZm9ybWF0IGNvdWxkIG5vdCBiZSB0ZXh0Ljxicj4NCjwvZm9udD48YnI+DQpi YWNrIHRvIHRvcGljIGl0c2VsZjo8YnI+DQp0aGUgcHJvYmxlbSBpbmRlZWQgaGFwcGVuIG9uIGFt ZGdwdSBkcml2ZXIsIHNvbWVvbmUgcmVwb3J0cyBtZSB0aGF0IGFwcGxpY2F0aW9uIHJ1bnMgd2l0 aCB0d28gaW5zdGFuY2VzLCB0aGUgcGVyZm9ybWFuY2UgYXJlIGRpZmZlcmVudC48YnI+DQpJIGFs c28gcmVwcm9kdWNlZCB0aGUgaXNzdWUgd2l0aCB1bml0IHRlc3QoYm9fZXZpY3Rpb25fdGVzdCku IFRoZXkgYWx3YXlzIHRoaW5rIG91ciBzY2hlZHVsZXIgaXNuJ3Qgd29ya2luZyBhcyBleHBlY3Rl ZC48YnI+DQo8YnI+DQpBZnRlciBteSBpbnZlc3RpZ2F0aW9uLCB0aGlzIGlzc3VlIHNob3VsZCBi ZSBkZXRlY3Qgb2YgVFRNIGRlc2lnbiBzZWxmLCB3aGljaCBicmVha3Mgc2NoZWR1bGluZyBiYWxh bmNlLjxicj4NCjxicj4NCkZ1cnRoZXIsIGlmIHdlIHJ1biBjb250YWluZXJzIGZvciBvdXIgZ3B1 LCBjb250YWluZXIgQSBjb3VsZCBydW4gaGlnaCBzY29yZSwgY29udGFpbmVyIEIgcnVucyBsb3cg c2NvcmUgd2l0aCBzYW1lIGJlbmNobWFyay48YnI+DQo8YnI+DQpTbyB0aGlzIGlzIGJ1ZyB0aGF0 IHdlIG5lZWQgZml4Ljxicj4NCjxicj4NClJlZ2FyZHMsPGJyPg0KRGF2aWQgWmhvdTxicj4NCjxi cj4NCjxzcGFuIGlkPSJ4X3NtYXJ0aXNhbl9zaWduYXR1cmUiIHN0eWxlPSJmb250LXNpemU6MC44 ZW07IGRpc3BsYXk6aW5saW5lOyBjb2xvcjojODg4ODg4Ij4NCjxwIGRpcj0ibHRyIj7lj5Hoh6rl nZrmnpwgUHJvPC9wPg0KPC9zcGFuPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQo8IS0tDQoqIGJv ZHkNCgl7cGFkZGluZzowIDE2cHggMzBweCFpbXBvcnRhbnQ7DQoJbWFyZ2luOjAhaW1wb3J0YW50 Ow0KCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsNCglsaW5lLWhlaWdodDoxLjQ7DQoJd29yZC13 cmFwOmJyZWFrLXdvcmQ7DQoJd29yZC1icmVhazpub3JtYWx9DQpkaXYNCgl7d29yZC13cmFwOmJy ZWFrLXdvcmQ7DQoJd29yZC1icmVhazpub3JtYWx9DQpwDQoJe3dvcmQtd3JhcDpicmVhay13b3Jk Ow0KCXdvcmQtYnJlYWs6bm9ybWFsOw0KCXRleHQtaW5kZW50OjBwdCFpbXBvcnRhbnR9DQpzcGFu DQoJe3dvcmQtd3JhcDpicmVhay13b3JkOw0KCXdvcmQtYnJlYWs6bm9ybWFsfQ0KYQ0KCXt3b3Jk LXdyYXA6YnJlYWstd29yZDsNCgl3b3JkLWJyZWFrOm5vcm1hbH0NCnRkDQoJe3dvcmQtd3JhcDpi cmVhay13b3JkOw0KCXdvcmQtYnJlYWs6YnJlYWstYWxsfQ0KLS0+DQo8L3N0eWxlPg0KPGRpdiBj bGFzcz0ieF9xdW90ZSI+DQo8ZGl2IHN0eWxlPSJtYXJnaW46MCAwcHg7IGZvbnQtc2l6ZToxMDUl Ij48Zm9udCBjb2xvcj0iIzYyOTE0MCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuNCI+PHNwYW4+Q2hy aXN0aWFuIEvpsIppZw0KPGEgY2xhc3M9Im1vei10eHQtbGluay1yZmMyMzk2RSIgaHJlZj0ibWFp bHRvOmNrb2VuaWcubGVpY2h0enVtZXJrZW5AZ21haWwuY29tIj4mbHQ7Y2tvZW5pZy5sZWljaHR6 dW1lcmtlbkBnbWFpbC5jb20mZ3Q7PC9hPiDkuo4gMjAxOOW5tDHmnIgyNuaXpSDkuIvljYg2OjMx 5YaZ6YGT77yaPC9zcGFuPjwvZm9udD48L2Rpdj4NCjxiciB0eXBlPSJhdHRyaWJ1dGlvbiI+DQo8 L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8Zm9udCBzaXplPSIyIj48c3BhbiBzdHlsZT0iZm9udC1z aXplOjExcHQiPg0KPGRpdiBjbGFzcz0iUGxhaW5UZXh0Ij5BbSAyNi4wMS4yMDE4IHVtIDExOjIy IHNjaHJpZWIgQ2h1bm1pbmcgWmhvdTo8YnI+DQomZ3Q7IHRoZXJlIGlzIGEgc2NoZWR1bGluZyBi YWxhbmNlIGlzc3VlIGFib3V0IGdldCBub2RlIGxpa2U6PGJyPg0KJmd0OyBhLiBwcm9jZXNzIEEg YWxsb2NhdGVzIGZ1bGwgbWVtb3J5IGFuZCB1c2UgaXQgZm9yIHN1Ym1pc3Npb24uPGJyPg0KJmd0 OyBiLiBwcm9jZXNzIEIgdHJpZXMgdG8gYWxsb2NhdGVzIG1lbW9yeSwgd2lsbCB3YWl0IGZvciBw cm9jZXNzIEEgQk8gaWRsZSBpbiBldmljdGlvbi48YnI+DQomZ3Q7IGMuIHByb2Nlc3MgQSBjb21w bGV0ZXMgdGhlIGpvYiwgcHJvY2VzcyBCIGV2aWN0aW9uIHdpbGwgcHV0IHByb2Nlc3MgQSBCTyBu b2RlLDxicj4NCiZndDsgYnV0IGluIHRoZSBtZWFudGltZSwgcHJvY2VzcyBDIGlzIGNvbW1pbmcg dG8gYWxsb2NhdGUgQk8sIHdoaWxsIGRpcmVjdGx5IGdldCBub2RlIHN1Y2Nlc3NmdWxseSwgYW5k IGRvIHN1Ym1pc3Npb24sPGJyPg0KJmd0OyBwcm9jZXNzIEIgd2lsbCBhZ2FpbiB3YWl0IGZvciBw cm9jZXNzIEMgQk8gaWRsZS48YnI+DQomZ3Q7IGQuIHJlcGVhdCB0aGUgYWJvdmUgc2V0cHMsIHBy b2Nlc3MgQiBjb3VsZCBiZSBkZWxheWVkIG11Y2ggbW9yZS48YnI+DQomZ3Q7PGJyPg0KJmd0OyBs YXRlciBhbGxvY2F0aW9uIG11c3Qgbm90IGJlIGFoZWFkIG9mIGZyb250IGluIHNhbWUgcGxhY2Uu PGJyPg0KPGJyPg0KQWdhaW4gTkFLIHRvIHRoZSB3aG9sZSBhcHByb2FjaC48YnI+DQo8YnI+DQpB dCBsZWFzdCB3aXRoIGFtZGdwdSB0aGUgcHJvYmxlbSB5b3UgZGVzY3JpYmVkIGFib3ZlIG5ldmVy IG9jY3VycyA8YnI+DQpiZWNhdXNlIGV2aWN0aW9ucyBhcmUgcGlwZWxpbmVkIG9wZXJhdGlvbnMu IFdlIGNvdWxkIG9ubHkgYmxvY2sgZm9yIDxicj4NCmRlbGV0ZWQgcmVnaW9ucyB0byBiZWNvbWUg ZnJlZS48YnI+DQo8YnI+DQpCdXQgaW5kZXBlbmRlbnQgb2YgdGhhdCBpbmNvbWluZyBtZW1vcnkg cmVxdWVzdHMgd2hpbGUgd2UgbWFrZSByb29tIGZvciA8YnI+DQpldmljdGlvbiBhcmUgaW50ZW5k ZWQgdG8gYmUgc2VydmVkIGZpcnN0Ljxicj4NCjxicj4NCkNoYW5naW5nIHRoYXQgaXMgY2VydGFp bmx5IGEgbm8tZ28gY2F1c2UgdGhhdCB3b3VsZCBmYXZvciBtZW1vcnkgaHVuZ3J5IDxicj4NCmFw cGxpY2F0aW9ucyBvdmVyIHNtYWxsIGNsaWVudHMuPGJyPg0KPGJyPg0KUmVnYXJkcyw8YnI+DQpD aHJpc3RpYW4uPGJyPg0KPGJyPg0KJmd0Ozxicj4NCiZndDsgQ2hhbmdlLUlkOiBJM2RhYTg5MmU1 MGY4MjIyNmM1NTJjYzAwOGEyOWU1NTg5NGE5OGYxODxicj4NCiZndDsgU2lnbmVkLW9mZi1ieTog Q2h1bm1pbmcgWmhvdSA8YSBjbGFzcz0ibW96LXR4dC1saW5rLXJmYzIzOTZFIiBocmVmPSJtYWls dG86ZGF2aWQxLnpob3VAYW1kLmNvbSI+DQombHQ7ZGF2aWQxLnpob3VAYW1kLmNvbSZndDs8L2E+ PGJyPg0KJmd0OyAtLS08YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7IGRyaXZlcnMvZ3B1L2RybS90dG0v dHRtX2JvLmMmbmJzcDsmbmJzcDsmbmJzcDsgfCA2OSAmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7 JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYj NDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQz OyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0Mzst LTxicj4NCiZndDsmbmJzcDsmbmJzcDsgaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCZuYnNw OyZuYnNwOyZuYnNwOyB8Jm5ic3A7IDcgJiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOzxicj4NCiZn dDsmbmJzcDsmbmJzcDsgaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCB8Jm5ic3A7IDcg JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOzxicj4NCiZndDsmbmJzcDsmbmJzcDsgMyBmaWxlcyBj aGFuZ2VkLCA4MCBpbnNlcnRpb25zKCYjNDM7KSwgMyBkZWxldGlvbnMoLSk8YnI+DQomZ3Q7PGJy Pg0KJmd0OyBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyBiL2RyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2JvLmM8YnI+DQomZ3Q7IGluZGV4IGQzM2E2YmI3NDJhMS4uNTU4 ZWMyY2Y0NjVkIDEwMDY0NDxicj4NCiZndDsgLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f Ym8uYzxicj4NCiZndDsgJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f Ym8uYzxicj4NCiZndDsgQEAgLTg0MSw2ICYjNDM7ODQxLDU4IEBAIHN0YXRpYyBpbnQgdHRtX2Jv X2FkZF9tb3ZlX2ZlbmNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sPGJyPg0KJmd0OyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gMDs8YnI+DQom Z3Q7Jm5ic3A7Jm5ic3A7IH08YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7IDxicj4NCiZndDsgJiM0Mztz dGF0aWMgdm9pZCB0dG1fbWFuX2luaXRfd2FpdGVyKHN0cnVjdCB0dG1fYm9fd2FpdGVyICp3YWl0 ZXIsPGJyPg0KJmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLDxicj4NCiZndDsg JiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UpPGJyPg0KJmd0OyAmIzQzO3s8YnI+DQom Z3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHdhaXRlci0mZ3Q7dGJvID0gYm87PGJy Pg0KJmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBtZW1jcHkoKHZvaWQgKikmYW1w O3dhaXRlci0mZ3Q7cGxhY2UsICh2b2lkICopcGxhY2UsIHNpemVvZigqcGxhY2UpKTs8YnI+DQom Z3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IElOSVRfTElTVF9IRUFEKCZhbXA7d2Fp dGVyLSZndDtsaXN0KTs8YnI+DQomZ3Q7ICYjNDM7fTxicj4NCiZndDsgJiM0Mzs8YnI+DQomZ3Q7 ICYjNDM7c3RhdGljIHZvaWQgdHRtX21hbl9hZGRfd2FpdGVyKHN0cnVjdCB0dG1fbWVtX3R5cGVf bWFuYWdlciAqbWFuLDxicj4NCiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgc3RydWN0IHR0bV9ib193YWl0ZXIgKndhaXRlcik8YnI+DQom Z3Q7ICYjNDM7ezxicj4NCiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKCF3 YWl0ZXIpPGJyPg0KJmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm47PGJyPg0KJmd0OyAm IzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzcGluX2xvY2soJmFtcDttYW4tJmd0O3dhaXRf bG9jayk7PGJyPg0KJmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBsaXN0X2FkZF90 YWlsKCZhbXA7d2FpdGVyLSZndDtsaXN0LCAmYW1wO21hbi0mZ3Q7d2FpdGVyX2xpc3QpOzxicj4N CiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3Bpbl91bmxvY2soJmFtcDttYW4t Jmd0O3dhaXRfbG9jayk7PGJyPg0KJmd0OyAmIzQzO308YnI+DQomZ3Q7ICYjNDM7PGJyPg0KJmd0 OyAmIzQzO3N0YXRpYyB2b2lkIHR0bV9tYW5fZGVsX3dhaXRlcihzdHJ1Y3QgdHRtX21lbV90eXBl X21hbmFnZXIgKm1hbiw8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0cnVjdCB0dG1fYm9fd2FpdGVyICp3YWl0ZXIpPGJyPg0K Jmd0OyAmIzQzO3s8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmICgh d2FpdGVyKTxicj4NCiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuOzxicj4NCiZndDsg JiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3Bpbl9sb2NrKCZhbXA7bWFuLSZndDt3YWl0 X2xvY2spOzxicj4NCiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKCFsaXN0 X2VtcHR5KCZhbXA7d2FpdGVyLSZndDtsaXN0KSk8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IGxpc3RfZGVsKCZhbXA7d2FpdGVyLSZndDtsaXN0KTs8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IHNwaW5fdW5sb2NrKCZhbXA7bWFuLSZndDt3YWl0X2xvY2spOzxi cj4NCiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsga2ZyZWUod2FpdGVyKTs8YnI+ DQomZ3Q7ICYjNDM7fTxicj4NCiZndDsgJiM0Mzs8YnI+DQomZ3Q7ICYjNDM7aW50IHR0bV9tYW5f Y2hlY2tfYm8oc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sPGJyPg0KJmd0OyAmIzQz OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLDxicj4NCiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UpPGJy Pg0KJmd0OyAmIzQzO3s8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0 cnVjdCB0dG1fYm9fd2FpdGVyICp3YWl0ZXIsICp0bXA7PGJyPg0KJmd0OyAmIzQzOzxicj4NCiZn dDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3Bpbl9sb2NrKCZhbXA7bWFuLSZndDt3 YWl0X2xvY2spOzxicj4NCiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgbGlzdF9m b3JfZWFjaF9lbnRyeV9zYWZlKHdhaXRlciwgdG1wLCAmYW1wO21hbi0mZ3Q7d2FpdGVyX2xpc3Qs IGxpc3QpIHs8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmICgoYm8gIT0gd2FpdGVy LSZndDt0Ym8pICZhbXA7JmFtcDs8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7ICgocGxhY2UtJmd0O2ZwZm4gJmd0Oz0gd2FpdGVyLSZndDtwbGFj ZS5mcGZuICZhbXA7JmFtcDs8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBsYWNlLSZndDtmcGZuICZsdDs9IHdhaXRlci0m Z3Q7cGxhY2UubHBmbikgfHw8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IChwbGFjZS0mZ3Q7bHBmbiAmbHQ7PSB3YWl0ZXItJmd0O3Bs YWNlLmxwZm4gJmFtcDsmYW1wOyBwbGFjZS0mZ3Q7bHBmbiAmZ3Q7PTxicj4NCiZndDsgJiM0Mzsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgd2FpdGVy LSZndDtwbGFjZS5mcGZuKSkpPGJyPg0KJmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyBnb3RvIGxhdGVyX2JvOzxicj4NCiZndDsgJiM0MzsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgfTxicj4NCiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg c3Bpbl91bmxvY2soJmFtcDttYW4tJmd0O3dhaXRfbG9jayk7PGJyPg0KJmd0OyAmIzQzOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gdHJ1ZTs8YnI+DQomZ3Q7ICYjNDM7bGF0ZXJfYm86 PGJyPg0KJmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzcGluX3VubG9jaygmYW1w O21hbi0mZ3Q7d2FpdF9sb2NrKTs8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IHJldHVybiBmYWxzZTs8YnI+DQomZ3Q7ICYjNDM7fTxicj4NCiZndDsmbmJzcDsmbmJzcDsg LyoqPGJyPg0KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyAqIFJlcGVhdGVkbHkgZXZpY3QgbWVtb3J5 IGZyb20gdGhlIExSVSBmb3IgQG1lbV90eXBlIHVudGlsIHdlIGNyZWF0ZSBlbm91Z2g8YnI+DQom Z3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICogc3BhY2UsIG9yIHdlJ3ZlIGV2aWN0ZWQgZXZlcnl0aGlu ZyBhbmQgdGhlcmUgaXNuJ3QgZW5vdWdoIHNwYWNlLjxicj4NCiZndDsgQEAgLTg1MywxNyAmIzQz OzkwNSwyNiBAQCBzdGF0aWMgaW50IHR0bV9ib19tZW1fZm9yY2Vfc3BhY2Uoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibyw8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7IHs8YnI+DQomZ3Q7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2ID0gYm8tJmd0O2JkZXY7PGJyPg0KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9ICZhbXA7 YmRldi0mZ3Q7bWFuW21lbV90eXBlXTs8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IHN0cnVjdCB0dG1fYm9fd2FpdGVyIHdhaXRlcjs8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludCByZXQ7PGJyPg0KJmd0OyZuYnNwOyZu YnNwOyA8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHR0bV9tYW5faW5p dF93YWl0ZXIoJmFtcDt3YWl0ZXIsIGJvLCBwbGFjZSk7PGJyPg0KJmd0OyAmIzQzOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyB0dG1fbWFuX2FkZF93YWl0ZXIobWFuLCAmYW1wO3dhaXRlcik7PGJy Pg0KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBkbyB7PGJy Pg0KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXQgPSAoKm1hbi0mZ3Q7 ZnVuYy0mZ3Q7Z2V0X25vZGUpKG1hbiwgYm8sIHBsYWNlLCBtZW0pOzxicj4NCiZndDsgLSZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyBpZiAodW5saWtlbHkocmV0ICE9IDApKTxicj4NCiZndDsgJiM0MzsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgaWYgKHVubGlrZWx5KHJldCAhPSAwKSkgezxicj4NCiZndDsgJiM0MzsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg dHRtX21hbl9kZWxfd2FpdGVyKG1hbiwgJmFtcDt3YWl0ZXIpOzxicj4NCiZndDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgcmV0dXJuIHJldDs8YnI+DQomZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYg KG1lbS0mZ3Q7bW1fbm9kZSk8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnI+DQom Z3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChtZW0tJmd0O21tX25vZGUpIHs8YnI+DQomZ3Q7 ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IHR0bV9tYW5fZGVsX3dhaXRlcihtYW4sICZhbXA7d2FpdGVyKTs8YnI+DQom Z3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGJyZWFrOzxicj4NCiZndDsgJiM0MzsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgfTxicj4NCiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0 ID0gdHRtX21lbV9ldmljdF9maXJzdChiZGV2LCBtZW1fdHlwZSwgcGxhY2UsIGN0eCk7PGJyPg0K Jmd0OyAtJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmICh1bmxpa2VseShyZXQgIT0gMCkpPGJyPg0KJmd0OyAm IzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAodW5saWtlbHkocmV0ICE9IDApKSB7PGJyPg0KJmd0OyAm IzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyB0dG1fbWFuX2RlbF93YWl0ZXIobWFuLCAmYW1wO3dhaXRlcik7PGJyPg0KJmd0 OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gcmV0Ozxicj4NCiZndDsgJiM0MzsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgfTxicj4NCiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgfSB3aGlsZSAoMSk7PGJyPg0KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyBtZW0tJmd0O21lbV90eXBlID0gbWVtX3R5cGU7PGJyPg0KJmd0OyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gdHRtX2JvX2Fk ZF9tb3ZlX2ZlbmNlKGJvLCBtYW4sIG1lbSk7PGJyPg0KJmd0OyBAQCAtMTQ1MCw2ICYjNDM7MTUx MSw4IEBAIGludCB0dG1fYm9faW5pdF9tbShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgdW5z aWduZWQgdHlwZSw8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IG1hbi0mZ3Q7dXNlX2lvX3Jlc2VydmVfbHJ1ID0gZmFsc2U7PGJyPg0KJmd0OyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBtdXRleF9pbml0KCZhbXA7bWFu LSZndDtpb19yZXNlcnZlX211dGV4KTs8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IHNwaW5fbG9ja19pbml0KCZhbXA7bWFuLSZndDttb3ZlX2xvY2sp Ozxicj4NCiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3Bpbl9sb2NrX2luaXQo JmFtcDttYW4tJmd0O3dhaXRfbG9jayk7PGJyPg0KJmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyBJTklUX0xJU1RfSEVBRCgmYW1wO21hbi0mZ3Q7d2FpdGVyX2xpc3QpOzxicj4NCiZn dDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgSU5JVF9MSVNUX0hF QUQoJmFtcDttYW4tJmd0O2lvX3Jlc2VydmVfbHJ1KTs8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7IDxi cj4NCiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0ID0g YmRldi0mZ3Q7ZHJpdmVyLSZndDtpbml0X21lbV90eXBlKGJkZXYsIHR5cGUsIG1hbik7PGJyPg0K Jmd0OyBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCBiL2luY2x1ZGUv ZHJtL3R0bS90dG1fYm9fYXBpLmg8YnI+DQomZ3Q7IGluZGV4IDJjZDAyNWMyYWJlNy4uMGZjZTRk YmQwMmU3IDEwMDY0NDxicj4NCiZndDsgLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGku aDxicj4NCiZndDsgJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGku aDxicj4NCiZndDsgQEAgLTQwLDYgJiM0Mzs0MCw3IEBAPGJyPg0KJmd0OyZuYnNwOyZuYnNwOyAj aW5jbHVkZSAmbHQ7bGludXgvbW0uaCZndDs8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7ICNpbmNsdWRl ICZsdDtsaW51eC9iaXRtYXAuaCZndDs8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7ICNpbmNsdWRlICZs dDtsaW51eC9yZXNlcnZhdGlvbi5oJmd0Ozxicj4NCiZndDsgJiM0MzsjaW5jbHVkZSAmbHQ7ZHJt L3R0bS90dG1fcGxhY2VtZW50LmgmZ3Q7PGJyPg0KJmd0OyZuYnNwOyZuYnNwOyA8YnI+DQomZ3Q7 Jm5ic3A7Jm5ic3A7IHN0cnVjdCB0dG1fYm9fZGV2aWNlOzxicj4NCiZndDsmbmJzcDsmbmJzcDsg PGJyPg0KJmd0OyBAQCAtMjMyLDYgJiM0MzsyMzMsMTIgQEAgc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0IHs8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IHN0cnVjdCBtdXRleCB3dV9tdXRleDs8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7IH07PGJyPg0KJmd0 OyZuYnNwOyZuYnNwOyA8YnI+DQomZ3Q7ICYjNDM7c3RydWN0IHR0bV9ib193YWl0ZXIgezxicj4N CiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICp0Ym87PGJyPg0KJmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzdHJ1Y3Qg dHRtX3BsYWNlIHBsYWNlOzxicj4NCiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg c3RydWN0IGxpc3RfaGVhZCBsaXN0Ozxicj4NCiZndDsgJiM0Mzt9Ozxicj4NCiZndDsgJiM0Mzs8 YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7IC8qKjxicj4NCiZndDsmbmJzcDsmbmJzcDsmbmJzcDsgKiBz dHJ1Y3QgdHRtX2JvX2ttYXBfb2JqPGJyPg0KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyAqPGJyPg0K Jmd0OyBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCBiL2luY2x1 ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmg8YnI+DQomZ3Q7IGluZGV4IDliNDE3ZWIyZGYyMC4u ZGM2YjhiNGM5ZTA2IDEwMDY0NDxicj4NCiZndDsgLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9i b19kcml2ZXIuaDxicj4NCiZndDsgJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9kcm0vdHRtL3R0 bV9ib19kcml2ZXIuaDxicj4NCiZndDsgQEAgLTI5Myw2ICYjNDM7MjkzLDEwIEBAIHN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlciB7PGJyPg0KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyBib29sIGlvX3Jlc2VydmVfZmFzdHBhdGg7PGJyPg0KJmd0OyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzcGlubG9ja190IG1vdmVfbG9j azs8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7IDxicj4NCiZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgLyogd2FpdGVycyBpbiBsaXN0ICovPGJyPg0KJmd0OyAmIzQzOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyBzcGlubG9ja190IHdhaXRfbG9jazs8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0cnVjdCBsaXN0X2hlYWQgd2FpdGVyX2xpc3Q7PGJyPg0KJmd0 OyAmIzQzOzxicj4NCiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgLyo8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7ICogUHJvdGVjdGVkIGJ5IEBpb19yZXNlcnZlX211dGV4Ojxicj4NCiZndDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKi88YnI+DQomZ3Q7IEBA IC03NDgsNiAmIzQzOzc1Miw5IEBAIGludCB0dG1fYm9fbWVtX3NwYWNlKHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqYm8sPGJyPg0KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSw8 YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KTs8YnI+DQomZ3Q7 Jm5ic3A7Jm5ic3A7IDxicj4NCiZndDsgJiM0MztpbnQgdHRtX21hbl9jaGVja19ibyhzdHJ1Y3Qg dHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiw8YnI+DQomZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sPGJyPg0KJmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSk7PGJyPg0KJmd0OyZuYnNwOyZu YnNwOyB2b2lkIHR0bV9ib19tZW1fcHV0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIHN0 cnVjdCB0dG1fbWVtX3JlZyAqbWVtKTs8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7IHZvaWQgdHRtX2Jv X21lbV9wdXRfbG9ja2VkKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sPGJyPg0KJmd0OyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzdHJ1Y3QgdHRtX21lbV9y ZWcgKm1lbSk7PGJyPg0KPGJyPg0KPC9kaXY+DQo8L3NwYW4+PC9mb250Pjxicj4NCjxmaWVsZHNl dCBjbGFzcz0ibWltZUF0dGFjaG1lbnRIZWFkZXIiPjwvZmllbGRzZXQ+IDxicj4NCjxwcmU+X19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCmFtZC1nZnggbWFp bGluZyBsaXN0DQo8YSBjbGFzcz0ibW96LXR4dC1saW5rLWFiYnJldmlhdGVkIiBocmVmPSJtYWls dG86YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmciPmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnPC9hPg0KPGEgY2xhc3M9Im1vei10eHQtbGluay1mcmVldGV4dCIgaHJlZj0iaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Ij5odHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZng8L2E+DQo8L3By ZT4NCjwvYmxvY2txdW90ZT4NCjxicj4NCjwvYmxvY2txdW90ZT4NCjxicj4NCjwvZGl2Pg0KPGJy Pg0KPGZpZWxkc2V0IGNsYXNzPSJtaW1lQXR0YWNobWVudEhlYWRlciI+PC9maWVsZHNldD4gPGJy Pg0KPHByZT5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K ZHJpLWRldmVsIG1haWxpbmcgbGlzdA0KPGEgY2xhc3M9Im1vei10eHQtbGluay1hYmJyZXZpYXRl ZCIgaHJlZj0ibWFpbHRvOmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmciPmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmc8L2E+DQo8YSBjbGFzcz0ibW96LXR4dC1saW5rLWZyZWV0 ZXh0IiBocmVmPSJodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbCI+aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWw8L2E+DQo8L3ByZT4NCjwvYmxvY2txdW90ZT4NCjxicj4NCjwvZGl2Pg0KPC9i b2R5Pg0KPC9odG1sPg0K --_000_smartisan1516974623698_-- --===============0161108091== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== --===============0161108091==--