From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42483) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmGpX-0002Hg-Pq for qemu-devel@nongnu.org; Tue, 20 Sep 2016 04:55:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bmGpO-0002IL-Qs for qemu-devel@nongnu.org; Tue, 20 Sep 2016 04:55:07 -0400 Received: from gate.crashing.org ([63.228.1.57]:38618) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmGp9-0001xl-2t for qemu-devel@nongnu.org; Tue, 20 Sep 2016 04:54:58 -0400 Message-ID: <1474361644.2857.54.camel@kernel.crashing.org> From: Benjamin Herrenschmidt Date: Tue, 20 Sep 2016 18:54:04 +1000 In-Reply-To: <001601d2131a$f1d2fee0$d578fca0$@ru> References: <20160915080952.3124.19133.stgit@PASHA-ISP> <20160915080959.3124.63067.stgit@PASHA-ISP> <20160920055124.GT20488@umbus> <001601d2131a$f1d2fee0$d578fca0$@ru> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: base64 Subject: Re: [Qemu-devel] [PATCH v2 01/11] target-ppc: exceptions handling in icount mode List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Pavel Dovgalyuk , 'David Gibson' , 'Pavel Dovgalyuk' Cc: qemu-devel@nongnu.org, peter.maydell@linaro.org, mst@redhat.com, jasowang@redhat.com, quintela@redhat.com, agraf@suse.de, pbonzini@redhat.com T24gVHVlLCAyMDE2LTA5LTIwIGF0IDExOjQyICswMzAwLCBQYXZlbCBEb3ZnYWx5dWsgd3Jv dGU6DQo+ID4gDQo+ID4gRnJvbTogRGF2aWQgR2lic29uIFttYWlsdG86ZGF2aWRAZ2lic29u LmRyb3BiZWFyLmlkLmF1XQ0KPiA+IE9uIFRodSwgU2VwIDE1LCAyMDE2IGF0IDExOjA5OjU5 QU0gKzAzMDAsIFBhdmVsIERvdmdhbHl1ayB3cm90ZToNCj4gPiA+IA0KPiA+ID4gRnJvbTog UGF2ZWwgRG92Z2FseXVrIDxQYXZlbC5Eb3ZnYWx1a0Bpc3ByYXMucnU+DQo+ID4gPiANCj4g PiA+IFRoaXMgcGF0Y2ggZml4ZXMgZXhjZXB0aW9uIGhhbmRsaW5nIGluIFBvd2VyUEMuDQo+ ID4gPiBJbnN0cnVjdGlvbnMgZ2VuZXJhdGUgc2V2ZXJhbCB0eXBlcyBvZiBleGNlcHRpb25z Lg0KPiA+ID4gV2hlbiBleGNlcHRpb24gaXMgZ2VuZXJhdGVkLCBpdCBicmVha3MgdGhlIGV4 ZWN1dGlvbiBvZiB0aGUNCj4gPiA+IGN1cnJlbnQgdHJhbnNsYXRpb24NCj4gPiA+IGJsb2Nr LiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXhjZXB0aW9ucyBoYW5kbGluZyBkb2VzIG5vdA0K PiA+ID4gY29ycmVjdGx5DQo+ID4gPiByZXN0b3JlIGljb3VudCBmb3IgdGhlIGluc3RydWN0 aW9uIHdoaWNoIGNhdXNlZCB0aGUgZXhjZXB0aW9uLiBJbg0KPiA+ID4gbW9zdCBjYXNlcw0K PiA+ID4gaWNvdW50IHdpbGwgYmUgZGVjcmVhc2VkIGJ5IHRoZSB2YWx1ZSBlcXVhbCB0byB0 aGUgc2l6ZSBvZiBUQi4NCj4gPiA+IFRoaXMgcGF0Y2ggcGFzc2VzIHBvaW50ZXIgdG8gdGhl IHRyYW5zbGF0aW9uIGJsb2NrIGludGVybmFscyB0bw0KPiA+ID4gdGhlIGV4Y2VwdGlvbg0K PiA+ID4gaGFuZGxlci4gSXQgYWxsb3dzIGNvcnJlY3QgcmVzdG9yaW5nIG9mIHRoZSBpY291 bnQgdmFsdWUuDQo+ID4gPiANCj4gPiA+IFNpZ25lZC1vZmYtYnk6IFBhdmVsIERvdmdhbHl1 ayA8cGF2ZWwuZG92Z2FsdWtAaXNwcmFzLnJ1Pg0KPiA+IA0KPiA+IEknbSBub3QgcmVhbGx5 IGNvbmZpZGVudCByZXZpZXdpbmcgY2hhbmdlcyBpbiB0aGlzIGFyZWEuDQo+ID4gDQo+ID4g SSd2ZSBDQ2QgQmVuIEhlcnJlbnNobWlkdCwgd2hvIGRpZCBzb21lIHdvcmsgb24gdGhlIGV4 Y2VwdGlvbg0KPiA+IGhhbmRsaW5nIHJlY2VudGx5LsKgwqANCg0KSHJtLi4gSXNuJ3QgdGhp cyBzb21ldGhpbmcgdGhhdCBnZXRzIGZpeGVkIGJ5IHJ0aCdzIHBhdGNoIHRvIHByb3Blcmx5 DQpmaXggR0VUX1JBID8NCg0KSWUuIGl0IHNob3VsZCBiZSBsZWdpdCB0byBwYXNzICIwIiBm b3IgdGhlIFBDIGlmIHdlIGhhdmUgdXBkYXRlZA0KbmlwIG1hbnVhbGx5IC4uLiBJJ20gbm90 IHN1cmUgSSBnZXQgd2hhdCB5b3UgYXJlIGRvaW5nIGhlcmUuDQoNCg0KPiBUaGFua3MuDQo+ IEl0IHNlZW1zIHRoYXQgbW9zdCBvZiB0aGVzZSBjaGFuZ2VzIHdlcmUgYWxyZWFkeSB1cHN0 cmVhbWVkIGZyb20gc29tZQ0KPiBvdGhlciBwYXRjaC4NCj4gVGhhdCdzIHdoeSBJIHJlbW92 ZWQgdGhpcyBvbmUgZnJvbSB0aGUgdXBkYXRlZCBzZXJpZXMuDQo+IA0KPiA+IA0KPiA+IA0K PiA+ID4gDQo+ID4gPiAtLS0NCj4gPiA+IMKgdGFyZ2V0LXBwYy9jcHUuaMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgfMKgwqDCoMKgMyArDQo+ID4gPiDCoHRhcmdldC1wcGMvZXhjcF9o ZWxwZXIuY8KgwqDCoMKgwqB8wqDCoMKgMzggKysrKysrLS0NCj4gPiA+IMKgdGFyZ2V0LXBw Yy9mcHVfaGVscGVyLmPCoMKgwqDCoMKgwqB8wqDCoDE5MiArKysrKysrKysrKysrKysrKysr KysrLS0tLQ0KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gwqB0YXJnZXQtcHBjL2hl bHBlci5owqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoMKgwqAxDQo+ID4gPiDCoHRhcmdldC1w cGMvbWVtX2hlbHBlci5jwqDCoMKgwqDCoMKgfMKgwqDCoMKgNiArDQo+ID4gPiDCoHRhcmdl dC1wcGMvbWlzY19oZWxwZXIuY8KgwqDCoMKgwqB8wqDCoMKgwqA4ICstDQo+ID4gPiDCoHRh cmdldC1wcGMvbW11LWhhc2g2NC5jwqDCoMKgwqDCoMKgfMKgwqDCoDEyICstLQ0KPiA+ID4g wqB0YXJnZXQtcHBjL21tdV9oZWxwZXIuY8KgwqDCoMKgwqDCoHzCoMKgwqAxOCArKy0tDQo+ ID4gPiDCoHRhcmdldC1wcGMvdGltZWJhc2VfaGVscGVyLmMgfMKgwqDCoDIxICsrLS0tDQo+ ID4gPiDCoHRhcmdldC1wcGMvdHJhbnNsYXRlLmPCoMKgwqDCoMKgwqDCoHzCoMKgwqA3NiAr LS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gwqAxMCBmaWxlcyBjaGFuZ2VkLCAxNjkgaW5zZXJ0 aW9ucygrKSwgMjA2IGRlbGV0aW9ucygtKQ0KPiA+ID4gDQo+ID4gPiBkaWZmIC0tZ2l0IGEv dGFyZ2V0LXBwYy9jcHUuaCBiL3RhcmdldC1wcGMvY3B1LmgNCj4gPiA+IGluZGV4IDc4NmFi NWMuLjk1YmFhZTMgMTAwNjQ0DQo+ID4gPiAtLS0gYS90YXJnZXQtcHBjL2NwdS5oDQo+ID4g PiArKysgYi90YXJnZXQtcHBjL2NwdS5oDQo+ID4gPiBAQCAtMjQzNCw0ICsyNDM0LDcgQEAg aW50IHBwY19nZXRfdmNwdV9kdF9pZChQb3dlclBDQ1BVICpjcHUpOw0KPiA+ID4gwqBQb3dl clBDQ1BVICpwcGNfZ2V0X3ZjcHVfYnlfZHRfaWQoaW50IGNwdV9kdF9pZCk7DQo+ID4gPiAN Cj4gPiA+IMKgdm9pZCBwcGNfbWF5YmVfYnN3YXBfcmVnaXN0ZXIoQ1BVUFBDU3RhdGUgKmVu diwgdWludDhfdA0KPiA+ID4gKm1lbV9idWYsIGludCBsZW4pOw0KPiA+ID4gK3ZvaWQgcmFp c2VfZXhjZXB0aW9uX2VycihDUFVQUENTdGF0ZSAqZW52LCB1aW50MzJfdCBleGNlcHRpb24s DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqB1aW50MzJfdCBlcnJvcl9jb2RlLCB1aW50cHRyX3QgcGMpOw0KPiA+ID4gKw0KPiA+ ID4gwqAjZW5kaWYgLyogUFBDX0NQVV9IICovDQo+ID4gPiBkaWZmIC0tZ2l0IGEvdGFyZ2V0 LXBwYy9leGNwX2hlbHBlci5jIGIvdGFyZ2V0LXBwYy9leGNwX2hlbHBlci5jDQo+ID4gPiBp bmRleCBkNmUxNjc4Li4zZGExYzMyIDEwMDY0NA0KPiA+ID4gLS0tIGEvdGFyZ2V0LXBwYy9l eGNwX2hlbHBlci5jDQo+ID4gPiArKysgYi90YXJnZXQtcHBjL2V4Y3BfaGVscGVyLmMNCj4g PiA+IEBAIC04OTgsOCArODk4LDggQEAgc3RhdGljIHZvaWQgY3B1X2R1bXBfcmZpKHRhcmdl dF91bG9uZyBSQSwNCj4gPiA+IHRhcmdldF91bG9uZyBtc3IpDQo+ID4gPiDCoC8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioNCj4gPiA+ICoqKioqKioqKioqKioqLw0KPiA+ID4gwqAvKiBFeGNlcHRpb25zIHByb2Nl c3NpbmcgaGVscGVycyAqLw0KPiA+ID4gDQo+ID4gPiAtdm9pZCBoZWxwZXJfcmFpc2VfZXhj ZXB0aW9uX2VycihDUFVQUENTdGF0ZSAqZW52LCB1aW50MzJfdA0KPiA+ID4gZXhjZXB0aW9u LA0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqB1aW50MzJfdCBlcnJvcl9jb2RlKQ0KPiA+ID4gK3ZvaWQg cmFpc2VfZXhjZXB0aW9uX2VycihDUFVQUENTdGF0ZSAqZW52LCB1aW50MzJfdCBleGNlcHRp b24sDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB1aW50MzJfdCBlcnJvcl9jb2RlLCB1aW50cHRyX3QgcGMpDQo+ID4gPiDCoHsN Cj4gPiA+IMKgwqDCoMKgwqBDUFVTdGF0ZSAqY3MgPSBDUFUocHBjX2Vudl9nZXRfY3B1KGVu dikpOw0KPiA+ID4gDQo+ID4gPiBAQCAtOTA4LDE1ICs5MDgsMzIgQEAgdm9pZCBoZWxwZXJf cmFpc2VfZXhjZXB0aW9uX2VycihDUFVQUENTdGF0ZQ0KPiA+ID4gKmVudiwgdWludDMyX3Qg ZXhjZXB0aW9uLA0KPiA+ID4gwqAjZW5kaWYNCj4gPiA+IMKgwqDCoMKgwqBjcy0+ZXhjZXB0 aW9uX2luZGV4ID0gZXhjZXB0aW9uOw0KPiA+ID4gwqDCoMKgwqDCoGVudi0+ZXJyb3JfY29k ZSA9IGVycm9yX2NvZGU7DQo+ID4gPiAtwqDCoMKgwqBjcHVfbG9vcF9leGl0KGNzKTsNCj4g PiA+ICvCoMKgwqDCoGNwdV9sb29wX2V4aXRfcmVzdG9yZShjcywgcGMpOw0KPiA+ID4gK30N Cj4gPiA+ICsNCj4gPiA+ICt2b2lkIGhlbHBlcl9yYWlzZV9leGNlcHRpb25fZXJyKENQVVBQ Q1N0YXRlICplbnYsIHVpbnQzMl90DQo+ID4gPiBleGNlcHRpb24sDQo+ID4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHVpbnQzMl90IGVycm9yX2NvZGUpDQo+ID4gPiArew0KPiA+ID4gK8KgwqDCoMKgcmFp c2VfZXhjZXB0aW9uX2VycihlbnYsIGV4Y2VwdGlvbiwgZXJyb3JfY29kZSwgR0VUUEMoKSk7 DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gK3ZvaWQgaGVscGVyX3JhaXNlX2V4Y2VwdGlv bl9lbmQoQ1BVUFBDU3RhdGUgKmVudiwgdWludDMyX3QNCj4gPiA+IGV4Y2VwdGlvbiwNCj4g PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgdWludDMyX3QgZXJyb3JfY29kZSkNCj4gPiA+ICt7DQo+ID4gPiAr wqDCoMKgwqByYWlzZV9leGNlcHRpb25fZXJyKGVudiwgZXhjZXB0aW9uLCBlcnJvcl9jb2Rl LCAwKTsNCj4gPiANCj4gPiBJJ20gc3RydWdnbGluZyB0byBzZWUgaG93IHJhaXNpbmcgYW4g ZXhjZXB0aW9uIHdpdGggYSByZXR1cm4NCj4gPiBhZGRyZXNzDQo+ID4gb2YgMCBjb3VsZCBl dmVyIGJlIHVzZWZ1bC4uLg0KPiA+IA0KPiA+ID4gDQo+ID4gPiDCoH0NCj4gPiA+IA0KPiA+ ID4gwqB2b2lkIGhlbHBlcl9yYWlzZV9leGNlcHRpb24oQ1BVUFBDU3RhdGUgKmVudiwgdWlu dDMyX3QNCj4gPiA+IGV4Y2VwdGlvbikNCj4gPiA+IMKgew0KPiA+ID4gLcKgwqDCoMKgaGVs cGVyX3JhaXNlX2V4Y2VwdGlvbl9lcnIoZW52LCBleGNlcHRpb24sIDApOw0KPiA+ID4gK8Kg wqDCoMKgcmFpc2VfZXhjZXB0aW9uX2VycihlbnYsIGV4Y2VwdGlvbiwgMCwgR0VUUEMoKSk7 DQo+ID4gPiDCoH0NCj4gPiA+IA0KPiA+ID4gwqAjaWYgIWRlZmluZWQoQ09ORklHX1VTRVJf T05MWSkNCj4gPiA+ICtzdGF0aWMgdm9pZCByYWlzZV9leGNlcHRpb24oQ1BVUFBDU3RhdGUg KmVudiwgdWludDMyX3QNCj4gPiA+IGV4Y2VwdGlvbiwgdWludHB0cl90IHBjKQ0KPiA+ID4g K3sNCj4gPiA+ICvCoMKgwqDCoHJhaXNlX2V4Y2VwdGlvbl9lcnIoZW52LCBleGNlcHRpb24s IDAsIHBjKTsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiDCoHZvaWQgaGVscGVyX3N0b3Jl X21zcihDUFVQUENTdGF0ZSAqZW52LCB0YXJnZXRfdWxvbmcgdmFsKQ0KPiA+ID4gwqB7DQo+ ID4gPiDCoMKgwqDCoMKgQ1BVU3RhdGUgKmNzOw0KPiA+ID4gQEAgLTkyNSw3ICs5NDIsOCBA QCB2b2lkIGhlbHBlcl9zdG9yZV9tc3IoQ1BVUFBDU3RhdGUgKmVudiwNCj4gPiA+IHRhcmdl dF91bG9uZyB2YWwpDQo+ID4gPiDCoMKgwqDCoMKgaWYgKHZhbCAhPSAwKSB7DQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqBjcyA9IENQVShwcGNfZW52X2dldF9jcHUoZW52KSk7DQo+ID4g PiDCoMKgwqDCoMKgwqDCoMKgwqBjcy0+aW50ZXJydXB0X3JlcXVlc3QgfD0gQ1BVX0lOVEVS UlVQVF9FWElUVEI7DQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoGhlbHBlcl9yYWlzZV9leGNl cHRpb24oZW52LCB2YWwpOw0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqAvKiBuaXAgaXMgdXBk YXRlZCBieSBnZW5lcmF0ZWQgY29kZSAqLw0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqByYWlz ZV9leGNlcHRpb24oZW52LCB2YWwsIDApOw0KPiA+ID4gwqDCoMKgwqDCoH0NCj4gPiA+IMKg fQ0KPiA+ID4gDQo+ID4gPiBAQCAtMTA0MSw4ICsxMDU5LDkgQEAgdm9pZCBoZWxwZXJfdHco Q1BVUFBDU3RhdGUgKmVudiwNCj4gPiA+IHRhcmdldF91bG9uZyBhcmcxLCB0YXJnZXRfdWxv bmcgYXJnMiwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg KChpbnQzMl90KWFyZzEgPT0gKGludDMyX3QpYXJnMiAmJiAoZmxhZ3MgJg0KPiA+ID4gMHgw NCkpIHx8DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCgo dWludDMyX3QpYXJnMSA8ICh1aW50MzJfdClhcmcyICYmIChmbGFncyAmDQo+ID4gPiAweDAy KSkgfHwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKCh1 aW50MzJfdClhcmcxID4gKHVpbnQzMl90KWFyZzIgJiYgKGZsYWdzICYNCj4gPiA+IDB4MDEp KSkpKSB7DQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoGhlbHBlcl9yYWlzZV9leGNlcHRpb25f ZXJyKGVudiwgUE9XRVJQQ19FWENQX1BST0dSQU0sDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oFBPV0VSUENfRVhDUF9UUkFQKTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgLyogbmlwIGlz IHVwZGF0ZWQgaW4gVEIgKi8NCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgcmFpc2VfZXhjZXB0 aW9uX2VycihlbnYsIFBPV0VSUENfRVhDUF9QUk9HUkFNLA0KPiA+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgUE9XRVJQQ19F WENQX1RSQVAsIDApOw0KPiA+ID4gwqDCoMKgwqDCoH0NCj4gPiA+IMKgfQ0KPiA+ID4gDQo+ ID4gPiBAQCAtMTA1NSw4ICsxMDc0LDkgQEAgdm9pZCBoZWxwZXJfdGQoQ1BVUFBDU3RhdGUg KmVudiwNCj4gPiA+IHRhcmdldF91bG9uZyBhcmcxLCB0YXJnZXRfdWxvbmcgYXJnMiwNCj4g PiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKChpbnQ2NF90KWFy ZzEgPT0gKGludDY0X3QpYXJnMiAmJiAoZmxhZ3MgJg0KPiA+ID4gMHgwNCkpIHx8DQo+ID4g PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCgodWludDY0X3QpYXJn MSA8ICh1aW50NjRfdClhcmcyICYmIChmbGFncyAmDQo+ID4gPiAweDAyKSkgfHwNCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKCh1aW50NjRfdClhcmcx ID4gKHVpbnQ2NF90KWFyZzIgJiYgKGZsYWdzICYNCj4gPiA+IDB4MDEpKSkpKSB7DQo+ID4g PiAtwqDCoMKgwqDCoMKgwqDCoGhlbHBlcl9yYWlzZV9leGNlcHRpb25fZXJyKGVudiwgUE9X RVJQQ19FWENQX1BST0dSQU0sDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFBPV0VSUENfRVhD UF9UUkFQKTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgLyogbmlwIGlzIHVwZGF0ZWQgaW4g VEIgKi8NCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgcmFpc2VfZXhjZXB0aW9uX2VycihlbnYs IFBPV0VSUENfRVhDUF9QUk9HUkFNLA0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgUE9XRVJQQ19FWENQX1RSQVAsIDAp Ow0KPiA+ID4gwqDCoMKgwqDCoH0NCj4gPiA+IMKgfQ0KPiA+ID4gwqAjZW5kaWYNCj4gPiA+ IGRpZmYgLS1naXQgYS90YXJnZXQtcHBjL2ZwdV9oZWxwZXIuYyBiL3RhcmdldC1wcGMvZnB1 X2hlbHBlci5jDQo+ID4gPiBpbmRleCBkOTc5NWQwLi42ZWFhM2Y0IDEwMDY0NA0KPiA+ID4g LS0tIGEvdGFyZ2V0LXBwYy9mcHVfaGVscGVyLmMNCj4gPiA+ICsrKyBiL3RhcmdldC1wcGMv ZnB1X2hlbHBlci5jDQo+ID4gPiBAQCAtMTksNiArMTksNyBAQA0KPiA+ID4gwqAjaW5jbHVk ZSAicWVtdS9vc2RlcC5oIg0KPiA+ID4gwqAjaW5jbHVkZSAiY3B1LmgiDQo+ID4gPiDCoCNp bmNsdWRlICJleGVjL2hlbHBlci1wcm90by5oIg0KPiA+ID4gKyNpbmNsdWRlICJleGVjL2V4 ZWMtYWxsLmgiDQo+ID4gPiANCj4gPiA+IMKgI2RlZmluZSBmbG9hdDY0X3NuYW5fdG9fcW5h bih4KSAoKHgpIHwgMHgwMDA4MDAwMDAwMDAwMDAwVUxMKQ0KPiA+ID4gwqAjZGVmaW5lIGZs b2F0MzJfc25hbl90b19xbmFuKHgpICgoeCkgfCAweDAwNDAwMDAwKQ0KPiA+ID4gQEAgLTEx Nyw3ICsxMTgsNyBAQCB2b2lkIGhlbHBlcl9jb21wdXRlX2ZwcmYoQ1BVUFBDU3RhdGUgKmVu diwNCj4gPiA+IHVpbnQ2NF90IGFyZykNCj4gPiA+IA0KPiA+ID4gwqAvKiBGbG9hdGluZy1w b2ludCBpbnZhbGlkIG9wZXJhdGlvbnMgZXhjZXB0aW9uICovDQo+ID4gPiDCoHN0YXRpYyBp bmxpbmUgdWludDY0X3QgZmxvYWRfaW52YWxpZF9vcF9leGNwKENQVVBQQ1N0YXRlICplbnYs DQo+ID4gPiBpbnQgb3AsDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgaW50IHNldF9mcGNjKQ0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGludCBzZXRfZnBjYywNCj4gPiA+IHVpbnRwdHJfdCByZXRhZGRyKQ0KPiA+ ID4gwqB7DQo+ID4gPiDCoMKgwqDCoMKgQ1BVU3RhdGUgKmNzID0gQ1BVKHBwY19lbnZfZ2V0 X2NwdShlbnYpKTsNCj4gPiA+IMKgwqDCoMKgwqB1aW50NjRfdCByZXQgPSAwOw0KPiA+ID4g QEAgLTIwMCwxNCArMjAxLDE0IEBAIHN0YXRpYyBpbmxpbmUgdWludDY0X3QNCj4gPiA+IGZs b2FkX2ludmFsaWRfb3BfZXhjcChDUFVQUENTdGF0ZSAqZW52LCBpbnQgb3AsDQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqAvKiBVcGRhdGUgdGhlIGZsb2F0aW5nLXBvaW50IGVuYWJsZWQg ZXhjZXB0aW9uIHN1bW1hcnkNCj4gPiA+ICovDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBl bnYtPmZwc2NyIHw9IDEgPDwgRlBTQ1JfRkVYOw0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKg aWYgKG1zcl9mZTAgIT0gMCB8fCBtc3JfZmUxICE9IDApIHsNCj4gPiA+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBoZWxwZXJfcmFpc2VfZXhjZXB0aW9uX2VycihlbnYsDQo+ID4gPiBQ T1dFUlBDX0VYQ1BfUFJPR1JBTSwNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBQ T1dFUlBDX0VYQ1BfRlAgfCBvcCk7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg cmFpc2VfZXhjZXB0aW9uX2VycihlbnYsIFBPV0VSUENfRVhDUF9QUk9HUkFNLA0KPiA+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBQT1dFUlBDX0VYQ1BfRlAgfCBvcCwgcmV0YWRkcik7DQo+ID4gPiDCoMKg wqDCoMKgwqDCoMKgwqB9DQo+ID4gPiDCoMKgwqDCoMKgfQ0KPiA+ID4gwqDCoMKgwqDCoHJl dHVybiByZXQ7DQo+ID4gPiDCoH0NCj4gPiA+IA0KPiA+ID4gLXN0YXRpYyBpbmxpbmUgdm9p ZCBmbG9hdF96ZXJvX2RpdmlkZV9leGNwKENQVVBQQ1N0YXRlICplbnYpDQo+ID4gPiArc3Rh dGljIGlubGluZSB2b2lkIGZsb2F0X3plcm9fZGl2aWRlX2V4Y3AoQ1BVUFBDU3RhdGUgKmVu diwNCj4gPiA+IHVpbnRwdHJfdCByZXRhZGRyKQ0KPiA+ID4gwqB7DQo+ID4gPiDCoMKgwqDC oMKgZW52LT5mcHNjciB8PSAxIDw8IEZQU0NSX1pYOw0KPiA+ID4gwqDCoMKgwqDCoGVudi0+ ZnBzY3IgJj0gfigoMSA8PCBGUFNDUl9GUikgfCAoMSA8PCBGUFNDUl9GSSkpOw0KPiA+ID4g QEAgLTIxNyw4ICsyMTgsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQNCj4gPiA+IGZsb2F0X3pl cm9fZGl2aWRlX2V4Y3AoQ1BVUFBDU3RhdGUgKmVudikNCj4gPiA+IMKgwqDCoMKgwqDCoMKg wqDCoC8qIFVwZGF0ZSB0aGUgZmxvYXRpbmctcG9pbnQgZW5hYmxlZCBleGNlcHRpb24gc3Vt bWFyeQ0KPiA+ID4gKi8NCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoGVudi0+ZnBzY3IgfD0g MSA8PCBGUFNDUl9GRVg7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBpZiAobXNyX2ZlMCAh PSAwIHx8IG1zcl9mZTEgIT0gMCkgew0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGhlbHBlcl9yYWlzZV9leGNlcHRpb25fZXJyKGVudiwNCj4gPiA+IFBPV0VSUENfRVhDUF9Q Uk9HUkFNLA0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFBPV0VSUENfRVhDUF9G UCB8DQo+ID4gPiBQT1dFUlBDX0VYQ1BfRlBfWlgpOw0KPiA+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHJhaXNlX2V4Y2VwdGlvbl9lcnIoZW52LCBQT1dFUlBDX0VYQ1BfUFJPR1JB TSwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgUE9XRVJQQ19FWENQX0ZQIHwNCj4gPiA+IFBPV0VSUENf RVhDUF9GUF9aWCwgcmV0YWRkcik7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB9DQo+ID4g PiDCoMKgwqDCoMKgfQ0KPiA+ID4gwqB9DQo+ID4gPiBAQCAtNDkxLDEzICs0OTIsMTMgQEAg dm9pZCBzdG9yZV9mcHNjcihDUFVQUENTdGF0ZSAqZW52LCB1aW50NjRfdA0KPiA+ID4gYXJn LCB1aW50MzJfdCBtYXNrKQ0KPiA+ID4gwqDCoMKgwqDCoGhlbHBlcl9zdG9yZV9mcHNjcihl bnYsIGFyZywgbWFzayk7DQo+ID4gPiDCoH0NCj4gPiA+IA0KPiA+ID4gLXZvaWQgaGVscGVy X2Zsb2F0X2NoZWNrX3N0YXR1cyhDUFVQUENTdGF0ZSAqZW52KQ0KPiA+ID4gK3N0YXRpYyB2 b2lkIGRvX2Zsb2F0X2NoZWNrX3N0YXR1cyhDUFVQUENTdGF0ZSAqZW52LCB1aW50cHRyX3QN Cj4gPiA+IHJldGFkZHIpDQo+ID4gPiDCoHsNCj4gPiA+IMKgwqDCoMKgwqBDUFVTdGF0ZSAq Y3MgPSBDUFUocHBjX2Vudl9nZXRfY3B1KGVudikpOw0KPiA+ID4gwqDCoMKgwqDCoGludCBz dGF0dXMgPSBnZXRfZmxvYXRfZXhjZXB0aW9uX2ZsYWdzKCZlbnYtPmZwX3N0YXR1cyk7DQo+ ID4gPiANCj4gPiA+IMKgwqDCoMKgwqBpZiAoc3RhdHVzICYgZmxvYXRfZmxhZ19kaXZieXpl cm8pIHsNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgZmxvYXRfemVyb19kaXZpZGVfZXhjcChl bnYpOw0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqBmbG9hdF96ZXJvX2RpdmlkZV9leGNwKGVu diwgcmV0YWRkcik7DQo+ID4gPiDCoMKgwqDCoMKgfSBlbHNlIGlmIChzdGF0dXMgJiBmbG9h dF9mbGFnX292ZXJmbG93KSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hdF9vdmVy Zmxvd19leGNwKGVudik7DQo+ID4gPiDCoMKgwqDCoMKgfSBlbHNlIGlmIChzdGF0dXMgJiBm bG9hdF9mbGFnX3VuZGVyZmxvdykgew0KPiA+ID4gQEAgLTUxMCwxMiArNTExLDE3IEBAIHZv aWQgaGVscGVyX2Zsb2F0X2NoZWNrX3N0YXR1cyhDUFVQUENTdGF0ZQ0KPiA+ID4gKmVudikN Cj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoChlbnYtPmVycm9yX2NvZGUgJiBQT1dFUlBDX0VY Q1BfRlApKSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqAvKiBEaWZmZXJyZWQgZmxvYXRp bmctcG9pbnQgZXhjZXB0aW9uIGFmdGVyIHRhcmdldCBGUFINCj4gPiA+IHVwZGF0ZSAqLw0K PiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgaWYgKG1zcl9mZTAgIT0gMCB8fCBtc3JfZmUxICE9 IDApIHsNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBoZWxwZXJfcmFpc2VfZXhj ZXB0aW9uX2VycihlbnYsIGNzLT5leGNlcHRpb25faW5kZXgsDQo+ID4gPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZW52LT5lcnJvcl9jb2RlKTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqByYWlzZV9leGNlcHRpb25fZXJyKGVudiwgY3MtPmV4Y2VwdGlvbl9pbmRl eCwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgZW52LT5lcnJvcl9jb2RlLCByZXRhZGRyKTsNCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoH0NCj4gPiA+IMKgwqDCoMKgwqB9DQo+ID4gPiDCoH0NCj4g PiA+IA0KPiA+ID4gK3ZvaWQgaGVscGVyX2Zsb2F0X2NoZWNrX3N0YXR1cyhDUFVQUENTdGF0 ZSAqZW52KQ0KPiA+ID4gK3sNCj4gPiA+ICvCoMKgwqDCoGRvX2Zsb2F0X2NoZWNrX3N0YXR1 cyhlbnYsIEdFVFBDKCkpOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+IMKgdm9pZCBoZWxw ZXJfcmVzZXRfZnBzdGF0dXMoQ1BVUFBDU3RhdGUgKmVudikNCj4gPiA+IMKgew0KPiA+ID4g wqDCoMKgwqDCoHNldF9mbG9hdF9leGNlcHRpb25fZmxhZ3MoMCwgJmVudi0+ZnBfc3RhdHVz KTsNCj4gPiA+IEBAIC01MzIsMTIgKzUzOCwxMiBAQCB1aW50NjRfdCBoZWxwZXJfZmFkZChD UFVQUENTdGF0ZSAqZW52LA0KPiA+ID4gdWludDY0X3QgYXJnMSwgdWludDY0X3QgYXJnMikN Cj4gPiA+IMKgwqDCoMKgwqBpZiAodW5saWtlbHkoZmxvYXQ2NF9pc19pbmZpbml0eShmYXJn MS5kKSAmJg0KPiA+ID4gZmxvYXQ2NF9pc19pbmZpbml0eShmYXJnMi5kKSAmJg0KPiA+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYXQ2NF9pc19uZWcoZmFy ZzEuZCkgIT0NCj4gPiA+IGZsb2F0NjRfaXNfbmVnKGZhcmcyLmQpKSkgew0KPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgLyogTWFnbml0dWRlIHN1YnRyYWN0aW9uIG9mIGluZmluaXRpZXMg Ki8NCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgZmFyZzEubGwgPSBmbG9hZF9pbnZhbGlkX29w X2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYSVNJLCAxKTsNCj4gPiA+ICvC oMKgwqDCoMKgwqDCoMKgZmFyZzEubGwgPSBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0K PiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYSVNJLCAxLCBHRVRQQygpKTsNCj4gPiA+IMKgwqDC oMKgwqB9IGVsc2Ugew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHVubGlrZWx5KGZs b2F0NjRfaXNfc2lnbmFsaW5nX25hbihmYXJnMS5kLCAmZW52LQ0KPiA+ID4gPmZwX3N0YXR1 cykgfHwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgZmxvYXQ2NF9pc19zaWduYWxpbmdfbmFuKGZhcmcyLmQsICZlbnYtDQo+ID4gPiA+ZnBf c3RhdHVzKSkpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogc05hTiBh ZGRpdGlvbiAqLw0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2FkX2ludmFs aWRfb3BfZXhjcChlbnYsIFBPV0VSUENfRVhDUF9GUF9WWFNOQU4sDQo+ID4gPiAxKTsNCj4g PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52 LCBQT1dFUlBDX0VYQ1BfRlBfVlhTTkFOLA0KPiA+ID4gMSwgR0VUUEMoKSk7DQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqB9DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBmYXJnMS5kID0g ZmxvYXQ2NF9hZGQoZmFyZzEuZCwgZmFyZzIuZCwgJmVudi0NCj4gPiA+ID5mcF9zdGF0dXMp Ow0KPiA+ID4gwqDCoMKgwqDCoH0NCj4gPiA+IEBAIC01NTYsMTIgKzU2MiwxMiBAQCB1aW50 NjRfdCBoZWxwZXJfZnN1YihDUFVQUENTdGF0ZSAqZW52LA0KPiA+ID4gdWludDY0X3QgYXJn MSwgdWludDY0X3QgYXJnMikNCj4gPiA+IMKgwqDCoMKgwqBpZiAodW5saWtlbHkoZmxvYXQ2 NF9pc19pbmZpbml0eShmYXJnMS5kKSAmJg0KPiA+ID4gZmxvYXQ2NF9pc19pbmZpbml0eShm YXJnMi5kKSAmJg0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ZmxvYXQ2NF9pc19uZWcoZmFyZzEuZCkgPT0NCj4gPiA+IGZsb2F0NjRfaXNfbmVnKGZhcmcy LmQpKSkgew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgLyogTWFnbml0dWRlIHN1YnRyYWN0 aW9uIG9mIGluZmluaXRpZXMgKi8NCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgZmFyZzEubGwg PSBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZY SVNJLCAxKTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgZmFyZzEubGwgPSBmbG9hZF9pbnZh bGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYSVNJLCAxLCBHRVRQ QygpKTsNCj4gPiA+IMKgwqDCoMKgwqB9IGVsc2Ugew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgaWYgKHVubGlrZWx5KGZsb2F0NjRfaXNfc2lnbmFsaW5nX25hbihmYXJnMS5kLCAmZW52 LQ0KPiA+ID4gPmZwX3N0YXR1cykgfHwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYXQ2NF9pc19zaWduYWxpbmdfbmFuKGZhcmcyLmQs ICZlbnYtDQo+ID4gPiA+ZnBfc3RhdHVzKSkpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgLyogc05hTiBzdWJ0cmFjdGlvbiAqLw0KPiA+ID4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsIFBPV0VSUENfRVhDUF9GUF9W WFNOQU4sDQo+ID4gPiAxKTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9h ZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhTTkFOLA0KPiA+ID4g MSwgR0VUUEMoKSk7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB9DQo+ID4gPiDCoMKgwqDC oMKgwqDCoMKgwqBmYXJnMS5kID0gZmxvYXQ2NF9zdWIoZmFyZzEuZCwgZmFyZzIuZCwgJmVu di0NCj4gPiA+ID5mcF9zdGF0dXMpOw0KPiA+ID4gwqDCoMKgwqDCoH0NCj4gPiA+IEBAIC01 ODAsMTIgKzU4NiwxMiBAQCB1aW50NjRfdCBoZWxwZXJfZm11bChDUFVQUENTdGF0ZSAqZW52 LA0KPiA+ID4gdWludDY0X3QgYXJnMSwgdWludDY0X3QgYXJnMikNCj4gPiA+IMKgwqDCoMKg wqBpZiAodW5saWtlbHkoKGZsb2F0NjRfaXNfaW5maW5pdHkoZmFyZzEuZCkgJiYNCj4gPiA+ IGZsb2F0NjRfaXNfemVybyhmYXJnMi5kKSkgfHwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoChmbG9hdDY0X2lzX3plcm8oZmFyZzEuZCkgJiYNCj4gPiA+ IGZsb2F0NjRfaXNfaW5maW5pdHkoZmFyZzIuZCkpKSkgew0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgLyogTXVsdGlwbGljYXRpb24gb2YgemVybyBieSBpbmZpbml0eSAqLw0KPiA+ID4g LcKgwqDCoMKgwqDCoMKgwqBmYXJnMS5sbCA9IGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYs DQo+ID4gPiBQT1dFUlBDX0VYQ1BfRlBfVlhJTVosIDEpOw0KPiA+ID4gK8KgwqDCoMKgwqDC oMKgwqBmYXJnMS5sbCA9IGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsDQo+ID4gPiBQT1dF UlBDX0VYQ1BfRlBfVlhJTVosIDEsIEdFVFBDKCkpOw0KPiA+ID4gwqDCoMKgwqDCoH0gZWxz ZSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBpZiAodW5saWtlbHkoZmxvYXQ2NF9pc19z aWduYWxpbmdfbmFuKGZhcmcxLmQsICZlbnYtDQo+ID4gPiA+ZnBfc3RhdHVzKSB8fA0KPiA+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hdDY0 X2lzX3NpZ25hbGluZ19uYW4oZmFyZzIuZCwgJmVudi0NCj4gPiA+ID5mcF9zdGF0dXMpKSkg ew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBzTmFOIG11bHRpcGxpY2F0 aW9uICovDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52YWxpZF9v cF9leGNwKGVudiwgUE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwNCj4gPiA+IDEpOw0KPiA+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsIFBP V0VSUENfRVhDUF9GUF9WWFNOQU4sDQo+ID4gPiAxLCBHRVRQQygpKTsNCj4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoH0NCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoGZhcmcxLmQgPSBmbG9h dDY0X211bChmYXJnMS5kLCBmYXJnMi5kLCAmZW52LQ0KPiA+ID4gPmZwX3N0YXR1cyk7DQo+ ID4gPiDCoMKgwqDCoMKgfQ0KPiA+ID4gQEAgLTYwNCwxNSArNjEwLDE1IEBAIHVpbnQ2NF90 IGhlbHBlcl9mZGl2KENQVVBQQ1N0YXRlICplbnYsDQo+ID4gPiB1aW50NjRfdCBhcmcxLCB1 aW50NjRfdCBhcmcyKQ0KPiA+ID4gwqDCoMKgwqDCoGlmICh1bmxpa2VseShmbG9hdDY0X2lz X2luZmluaXR5KGZhcmcxLmQpICYmDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBmbG9hdDY0X2lzX2luZmluaXR5KGZhcmcyLmQpKSkgew0KPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgLyogRGl2aXNpb24gb2YgaW5maW5pdHkgYnkgaW5maW5pdHkgKi8N Cj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgZmFyZzEubGwgPSBmbG9hZF9pbnZhbGlkX29wX2V4 Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYSURJLCAxKTsNCj4gPiA+ICvCoMKg wqDCoMKgwqDCoMKgZmFyZzEubGwgPSBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ ID4gUE9XRVJQQ19FWENQX0ZQX1ZYSURJLCAxLCBHRVRQQygpKTsNCj4gPiA+IMKgwqDCoMKg wqB9IGVsc2UgaWYgKHVubGlrZWx5KGZsb2F0NjRfaXNfemVybyhmYXJnMS5kKSAmJg0KPiA+ ID4gZmxvYXQ2NF9pc196ZXJvKGZhcmcyLmQpKSkgew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgLyogRGl2aXNpb24gb2YgemVybyBieSB6ZXJvICovDQo+ID4gPiAtwqDCoMKgwqDCoMKg wqDCoGZhcmcxLmxsID0gZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwNCj4gPiA+IFBPV0VS UENfRVhDUF9GUF9WWFpEWiwgMSk7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoGZhcmcxLmxs ID0gZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwNCj4gPiA+IFBPV0VSUENfRVhDUF9GUF9W WFpEWiwgMSwgR0VUUEMoKSk7DQo+ID4gPiDCoMKgwqDCoMKgfSBlbHNlIHsNCj4gPiA+IMKg wqDCoMKgwqDCoMKgwqDCoGlmICh1bmxpa2VseShmbG9hdDY0X2lzX3NpZ25hbGluZ19uYW4o ZmFyZzEuZCwgJmVudi0NCj4gPiA+ID5mcF9zdGF0dXMpIHx8DQo+ID4gPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2F0NjRfaXNfc2lnbmFsaW5n X25hbihmYXJnMi5kLCAmZW52LQ0KPiA+ID4gPmZwX3N0YXR1cykpKSB7DQo+ID4gPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIHNOYU4gZGl2aXNpb24gKi8NCj4gPiA+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBD X0VYQ1BfRlBfVlhTTkFOLA0KPiA+ID4gMSk7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwgUE9XRVJQQ19FWENQX0ZQX1ZYU05B TiwNCj4gPiA+IDEsIEdFVFBDKCkpOw0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgfQ0KPiA+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgZmFyZzEuZCA9IGZsb2F0NjRfZGl2KGZhcmcxLmQsIGZh cmcyLmQsICZlbnYtDQo+ID4gPiA+ZnBfc3RhdHVzKTsNCj4gPiA+IMKgwqDCoMKgwqB9DQo+ ID4gPiBAQCAtNjMxLDE2ICs2MzcsMTYgQEAgdWludDY0X3QgaGVscGVyXyMjb3AoQ1BVUFBD U3RhdGUgKmVudiwNCj4gPiA+IHVpbnQ2NF90IGFyZykNCj4gPiBcDQo+ID4gPiANCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4g wqDCoMKgwqDCoGlmICh1bmxpa2VseShlbnYtPmZwX3N0YXR1cy5mbG9hdF9leGNlcHRpb25f ZmxhZ3MpKQ0KPiA+ID4ge8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqBpZiAoZmxvYXQ2NF9pc19hbnlfbmFuKGFyZykpDQo+ID4gPiB7 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgXA0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2FkX2lu dmFsaWRfb3BfZXhjcChlbnYsIFBPV0VSUENfRVhDUF9GUF9WWENWSSwNCj4gPiA+IDEpO8Kg wqDCoMKgwqDCoFwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZh bGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhDVkksIDEsDQo+ID4gPiBHRVRQ QygpKTtcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChmbG9hdDY0X2lz X3NpZ25hbGluZ19uYW4oYXJnLCAmZW52LT5mcF9zdGF0dXMpKQ0KPiA+ID4ge8KgwqDCoMKg wqDCoFwNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2FkX2lu dmFsaWRfb3BfZXhjcChlbnYsDQo+ID4gPiBQT1dFUlBDX0VYQ1BfRlBfVlhTTkFOLCAxKTsg XA0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52YWxp ZF9vcF9leGNwKGVudiwNCj4gPiA+IFBPV0VSUENfRVhDUF9GUF9WWFNOQU4sIDEsIEdFVFBD KCkpO1wNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKg wqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZhcmcubGwgPQ0KPiA+ID4g bmFudmFsO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKg wqDCoMKgwqDCoH0gZWxzZSBpZiAoZW52LT5mcF9zdGF0dXMuZmxvYXRfZXhjZXB0aW9uX2Zs YWdzDQo+ID4gPiAmwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hdF9mbGFnX2ludmFsaWQp DQo+ID4gPiB7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxv YWRfaW52YWxpZF9vcF9leGNwKGVudiwgUE9XRVJQQ19FWENQX0ZQX1ZYQ1ZJLA0KPiA+ID4g MSk7wqDCoMKgwqDCoMKgXA0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2Fk X2ludmFsaWRfb3BfZXhjcChlbnYsIFBPV0VSUENfRVhDUF9GUF9WWENWSSwgMSwNCj4gPiA+ IEdFVFBDKCkpO1wNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoH3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKg wqDCoMKgwqBcDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoGhlbHBlcl9mbG9hdF9jaGVja19z dGF0dXMoZW52KTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDC oGRvX2Zsb2F0X2NoZWNrX3N0YXR1cyhlbnYsDQo+ID4gPiBHRVRQQygpKTvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDC oMKgwqDCoMKgfcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDC oMKgwqDCoHJldHVybg0KPiA+ID4gZmFyZy5sbDvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgIH0NCj4gPiA+IEBAIC02NjUs NyArNjcxLDcgQEAgdWludDY0X3QgaGVscGVyXyMjb3AoQ1BVUFBDU3RhdGUgKmVudiwNCj4g PiA+IHVpbnQ2NF90IGFyZynCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqB9IGVs c2Uge8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqBmYXJnLmQgPSBjdnRyKGFyZywgJmVudi0+ZnBfc3RhdHVzKTvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgfcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4g PiA+IC3CoMKgwqDCoGhlbHBlcl9mbG9hdF9jaGVja19zdGF0dXMoZW52KTvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiArwqDCoMKg wqBkb19mbG9hdF9jaGVja19zdGF0dXMoZW52LCBHRVRQQygpKTvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqByZXR1cm4gZmFyZy5s bDvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgfQ0KPiA+ID4gDQo+ID4g PiBAQCAtNjc1LDcgKzY4MSw3IEBAIEZQVV9GQ0ZJKGZjZmlkdSwgdWludDY0X3RvX2Zsb2F0 NjQsIDApDQo+ID4gPiDCoEZQVV9GQ0ZJKGZjZmlkdXMsIHVpbnQ2NF90b19mbG9hdDMyLCAx KQ0KPiA+ID4gDQo+ID4gPiDCoHN0YXRpYyBpbmxpbmUgdWludDY0X3QgZG9fZnJpKENQVVBQ Q1N0YXRlICplbnYsIHVpbnQ2NF90IGFyZywNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbnQgcm91bmRpbmdf bW9kZSkNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBpbnQgcm91bmRpbmdfbW9kZSwgdWludDY0X3QNCj4gPiA+ IHJldGFkZHIpDQo+ID4gPiDCoHsNCj4gPiA+IMKgwqDCoMKgwqBDUFVfRG91YmxlVSBmYXJn Ow0KPiA+ID4gDQo+ID4gPiBAQCAtNjgzLDcgKzY4OSw3IEBAIHN0YXRpYyBpbmxpbmUgdWlu dDY0X3QgZG9fZnJpKENQVVBQQ1N0YXRlDQo+ID4gPiAqZW52LCB1aW50NjRfdCBhcmcsDQo+ ID4gPiANCj4gPiA+IMKgwqDCoMKgwqBpZiAodW5saWtlbHkoZmxvYXQ2NF9pc19zaWduYWxp bmdfbmFuKGZhcmcuZCwgJmVudi0NCj4gPiA+ID5mcF9zdGF0dXMpKSkgew0KPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgLyogc05hTiByb3VuZCAqLw0KPiA+ID4gLcKgwqDCoMKgwqDCoMKg wqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhTTkFOLCAx KTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwg UE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwgMSwNCj4gPiA+IHJldGFkZHIpOw0KPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgZmFyZy5sbCA9IGFyZyB8IDB4MDAwODAwMDAwMDAwMDAwMFVMTDsN Cj4gPiA+IMKgwqDCoMKgwqB9IGVsc2Ugew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgaW50 IGluZXhhY3QgPSBnZXRfZmxvYXRfZXhjZXB0aW9uX2ZsYWdzKCZlbnYtPmZwX3N0YXR1cykg DQo+ID4gPiAmDQo+ID4gPiBAQCAtNjk4LDI4ICs3MDQsMjggQEAgc3RhdGljIGlubGluZSB1 aW50NjRfdCBkb19mcmkoQ1BVUFBDU3RhdGUNCj4gPiA+ICplbnYsIHVpbnQ2NF90IGFyZywN Cj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZW52LT5mcF9zdGF0dXMuZmxvYXRf ZXhjZXB0aW9uX2ZsYWdzICY9DQo+ID4gPiB+ZmxvYXRfZmxhZ19pbmV4YWN0Ow0KPiA+ID4g wqDCoMKgwqDCoMKgwqDCoMKgfQ0KPiA+ID4gwqDCoMKgwqDCoH0NCj4gPiA+IC3CoMKgwqDC oGhlbHBlcl9mbG9hdF9jaGVja19zdGF0dXMoZW52KTsNCj4gPiA+ICvCoMKgwqDCoGRvX2Zs b2F0X2NoZWNrX3N0YXR1cyhlbnYsIEdFVFBDKCkpOw0KPiA+ID4gwqDCoMKgwqDCoHJldHVy biBmYXJnLmxsOw0KPiA+ID4gwqB9DQo+ID4gPiANCj4gPiA+IMKgdWludDY0X3QgaGVscGVy X2ZyaW4oQ1BVUFBDU3RhdGUgKmVudiwgdWludDY0X3QgYXJnKQ0KPiA+ID4gwqB7DQo+ID4g PiAtwqDCoMKgwqByZXR1cm4gZG9fZnJpKGVudiwgYXJnLCBmbG9hdF9yb3VuZF90aWVzX2F3 YXkpOw0KPiA+ID4gK8KgwqDCoMKgcmV0dXJuIGRvX2ZyaShlbnYsIGFyZywgZmxvYXRfcm91 bmRfdGllc19hd2F5LCBHRVRQQygpKTsNCj4gPiA+IMKgfQ0KPiA+ID4gDQo+ID4gPiDCoHVp bnQ2NF90IGhlbHBlcl9mcml6KENQVVBQQ1N0YXRlICplbnYsIHVpbnQ2NF90IGFyZykNCj4g PiA+IMKgew0KPiA+ID4gLcKgwqDCoMKgcmV0dXJuIGRvX2ZyaShlbnYsIGFyZywgZmxvYXRf cm91bmRfdG9femVybyk7DQo+ID4gPiArwqDCoMKgwqByZXR1cm4gZG9fZnJpKGVudiwgYXJn LCBmbG9hdF9yb3VuZF90b196ZXJvLCBHRVRQQygpKTsNCj4gPiA+IMKgfQ0KPiA+ID4gDQo+ ID4gPiDCoHVpbnQ2NF90IGhlbHBlcl9mcmlwKENQVVBQQ1N0YXRlICplbnYsIHVpbnQ2NF90 IGFyZykNCj4gPiA+IMKgew0KPiA+ID4gLcKgwqDCoMKgcmV0dXJuIGRvX2ZyaShlbnYsIGFy ZywgZmxvYXRfcm91bmRfdXApOw0KPiA+ID4gK8KgwqDCoMKgcmV0dXJuIGRvX2ZyaShlbnYs IGFyZywgZmxvYXRfcm91bmRfdXAsIEdFVFBDKCkpOw0KPiA+ID4gwqB9DQo+ID4gPiANCj4g PiA+IMKgdWludDY0X3QgaGVscGVyX2ZyaW0oQ1BVUFBDU3RhdGUgKmVudiwgdWludDY0X3Qg YXJnKQ0KPiA+ID4gwqB7DQo+ID4gPiAtwqDCoMKgwqByZXR1cm4gZG9fZnJpKGVudiwgYXJn LCBmbG9hdF9yb3VuZF9kb3duKTsNCj4gPiA+ICvCoMKgwqDCoHJldHVybiBkb19mcmkoZW52 LCBhcmcsIGZsb2F0X3JvdW5kX2Rvd24sIEdFVFBDKCkpOw0KPiA+ID4gwqB9DQo+ID4gPiAN Cj4gPiA+IMKgLyogZm1hZGQgLSBmbWFkZC4gKi8NCj4gPiA+IEBAIC03MzUsMTMgKzc0MSwx MyBAQCB1aW50NjRfdCBoZWxwZXJfZm1hZGQoQ1BVUFBDU3RhdGUgKmVudiwNCj4gPiA+IHVp bnQ2NF90IGFyZzEsIHVpbnQ2NF90IGFyZzIsDQo+ID4gPiDCoMKgwqDCoMKgaWYgKHVubGlr ZWx5KChmbG9hdDY0X2lzX2luZmluaXR5KGZhcmcxLmQpICYmDQo+ID4gPiBmbG9hdDY0X2lz X3plcm8oZmFyZzIuZCkpIHx8DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAoZmxvYXQ2NF9pc196ZXJvKGZhcmcxLmQpICYmDQo+ID4gPiBmbG9hdDY0X2lz X2luZmluaXR5KGZhcmcyLmQpKSkpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoC8qIE11 bHRpcGxpY2F0aW9uIG9mIHplcm8gYnkgaW5maW5pdHkgKi8NCj4gPiA+IC3CoMKgwqDCoMKg wqDCoMKgZmFyZzEubGwgPSBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9X RVJQQ19FWENQX0ZQX1ZYSU1aLCAxKTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgZmFyZzEu bGwgPSBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQ X1ZYSU1aLCAxLCBHRVRQQygpKTsNCj4gPiA+IMKgwqDCoMKgwqB9IGVsc2Ugew0KPiA+ID4g wqDCoMKgwqDCoMKgwqDCoMKgaWYgKHVubGlrZWx5KGZsb2F0NjRfaXNfc2lnbmFsaW5nX25h bihmYXJnMS5kLCAmZW52LQ0KPiA+ID4gPmZwX3N0YXR1cykgfHwNCj4gPiA+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYXQ2NF9pc19zaWduYWxp bmdfbmFuKGZhcmcyLmQsICZlbnYtDQo+ID4gPiA+ZnBfc3RhdHVzKSB8fA0KPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hdDY0X2lzX3Np Z25hbGluZ19uYW4oZmFyZzMuZCwgJmVudi0NCj4gPiA+ID5mcF9zdGF0dXMpKSkgew0KPiA+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBzTmFOIG9wZXJhdGlvbiAqLw0KPiA+ ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYs IFBPV0VSUENfRVhDUF9GUF9WWFNOQU4sDQo+ID4gPiAxKTsNCj4gPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1Bf RlBfVlhTTkFOLA0KPiA+ID4gMSwgR0VUUEMoKSk7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKg wqB9DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqAvKiBUaGlzIGlzIHRoZSB3YXkgdGhlIFBv d2VyUEMgc3BlY2lmaWNhdGlvbiBkZWZpbmVzIGl0DQo+ID4gPiAqLw0KPiA+ID4gwqDCoMKg wqDCoMKgwqDCoMKgZmxvYXQxMjggZnQwXzEyOCwgZnQxXzEyODsNCj4gPiA+IEBAIC03NTMs NyArNzU5LDcgQEAgdWludDY0X3QgaGVscGVyX2ZtYWRkKENQVVBQQ1N0YXRlICplbnYsDQo+ ID4gPiB1aW50NjRfdCBhcmcxLCB1aW50NjRfdCBhcmcyLA0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hdDY0X2lzX2luZmluaXR5KGZh cmczLmQpICYmDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGZsb2F0MTI4X2lzX25lZyhmdDBfMTI4KSAhPQ0KPiA+ID4gZmxvYXQ2NF9pc19u ZWcoZmFyZzMuZCkpKSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIE1h Z25pdHVkZSBzdWJ0cmFjdGlvbiBvZiBpbmZpbml0aWVzICovDQo+ID4gPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZmFyZzEubGwgPSBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0K PiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYSVNJLCAxKTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBmYXJnMS5sbCA9IGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsDQo+ID4g PiBQT1dFUlBDX0VYQ1BfRlBfVlhJU0ksIDEsIEdFVFBDKCkpOw0KPiA+ID4gwqDCoMKgwqDC oMKgwqDCoMKgfSBlbHNlIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZnQx XzEyOCA9IGZsb2F0NjRfdG9fZmxvYXQxMjgoZmFyZzMuZCwgJmVudi0NCj4gPiA+ID5mcF9z dGF0dXMpOw0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmdDBfMTI4ID0gZmxv YXQxMjhfYWRkKGZ0MF8xMjgsIGZ0MV8xMjgsICZlbnYtDQo+ID4gPiA+ZnBfc3RhdHVzKTsN Cj4gPiA+IEBAIC03NzgsMTMgKzc4NCwxMyBAQCB1aW50NjRfdCBoZWxwZXJfZm1zdWIoQ1BV UFBDU3RhdGUgKmVudiwNCj4gPiA+IHVpbnQ2NF90IGFyZzEsIHVpbnQ2NF90IGFyZzIsDQo+ ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoZmxvYXQ2NF9pc196 ZXJvKGZhcmcxLmQpICYmDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGZsb2F0NjRfaXNfaW5maW5pdHkoZmFyZzIuZCkpKSkgew0KPiA+ID4gwqDCoMKg wqDCoMKgwqDCoMKgLyogTXVsdGlwbGljYXRpb24gb2YgemVybyBieSBpbmZpbml0eSAqLw0K PiA+ID4gLcKgwqDCoMKgwqDCoMKgwqBmYXJnMS5sbCA9IGZsb2FkX2ludmFsaWRfb3BfZXhj cChlbnYsDQo+ID4gPiBQT1dFUlBDX0VYQ1BfRlBfVlhJTVosIDEpOw0KPiA+ID4gK8KgwqDC oMKgwqDCoMKgwqBmYXJnMS5sbCA9IGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsDQo+ID4g PiBQT1dFUlBDX0VYQ1BfRlBfVlhJTVosIDEsIEdFVFBDKCkpOw0KPiA+ID4gwqDCoMKgwqDC oH0gZWxzZSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBpZiAodW5saWtlbHkoZmxvYXQ2 NF9pc19zaWduYWxpbmdfbmFuKGZhcmcxLmQsICZlbnYtDQo+ID4gPiA+ZnBfc3RhdHVzKSB8 fA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBm bG9hdDY0X2lzX3NpZ25hbGluZ19uYW4oZmFyZzIuZCwgJmVudi0NCj4gPiA+ID5mcF9zdGF0 dXMpIHx8DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGZsb2F0NjRfaXNfc2lnbmFsaW5nX25hbihmYXJnMy5kLCAmZW52LQ0KPiA+ID4gPmZw X3N0YXR1cykpKSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIHNOYU4g b3BlcmF0aW9uICovDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52 YWxpZF9vcF9leGNwKGVudiwgUE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwNCj4gPiA+IDEpOw0K PiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChl bnYsIFBPV0VSUENfRVhDUF9GUF9WWFNOQU4sDQo+ID4gPiAxLCBHRVRQQygpKTsNCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoH0NCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoC8qIFRoaXMg aXMgdGhlIHdheSB0aGUgUG93ZXJQQyBzcGVjaWZpY2F0aW9uIGRlZmluZXMgaXQNCj4gPiA+ ICovDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hdDEyOCBmdDBfMTI4LCBmdDFfMTI4 Ow0KPiA+ID4gQEAgLTc5Niw3ICs4MDIsNyBAQCB1aW50NjRfdCBoZWxwZXJfZm1zdWIoQ1BV UFBDU3RhdGUgKmVudiwNCj4gPiA+IHVpbnQ2NF90IGFyZzEsIHVpbnQ2NF90IGFyZzIsDQo+ ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2F0 NjRfaXNfaW5maW5pdHkoZmFyZzMuZCkgJiYNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYXQxMjhfaXNfbmVnKGZ0MF8xMjgpID09DQo+ ID4gPiBmbG9hdDY0X2lzX25lZyhmYXJnMy5kKSkpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgLyogTWFnbml0dWRlIHN1YnRyYWN0aW9uIG9mIGluZmluaXRpZXMgKi8N Cj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmYXJnMS5sbCA9IGZsb2FkX2ludmFs aWRfb3BfZXhjcChlbnYsDQo+ID4gPiBQT1dFUlBDX0VYQ1BfRlBfVlhJU0ksIDEpOw0KPiA+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZhcmcxLmxsID0gZmxvYWRfaW52YWxpZF9v cF9leGNwKGVudiwNCj4gPiA+IFBPV0VSUENfRVhDUF9GUF9WWElTSSwgMSwgR0VUUEMoKSk7 DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB9IGVsc2Ugew0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBmdDFfMTI4ID0gZmxvYXQ2NF90b19mbG9hdDEyOChmYXJnMy5kLCAm ZW52LQ0KPiA+ID4gPmZwX3N0YXR1cyk7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGZ0MF8xMjggPSBmbG9hdDEyOF9zdWIoZnQwXzEyOCwgZnQxXzEyOCwgJmVudi0NCj4g PiA+ID5mcF9zdGF0dXMpOw0KPiA+ID4gQEAgLTgxOSwxMyArODI1LDEzIEBAIHVpbnQ2NF90 IGhlbHBlcl9mbm1hZGQoQ1BVUFBDU3RhdGUgKmVudiwNCj4gPiA+IHVpbnQ2NF90IGFyZzEs IHVpbnQ2NF90IGFyZzIsDQo+ID4gPiDCoMKgwqDCoMKgaWYgKHVubGlrZWx5KChmbG9hdDY0 X2lzX2luZmluaXR5KGZhcmcxLmQpICYmDQo+ID4gPiBmbG9hdDY0X2lzX3plcm8oZmFyZzIu ZCkpIHx8DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoZmxv YXQ2NF9pc196ZXJvKGZhcmcxLmQpICYmDQo+ID4gPiBmbG9hdDY0X2lzX2luZmluaXR5KGZh cmcyLmQpKSkpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoC8qIE11bHRpcGxpY2F0aW9u IG9mIHplcm8gYnkgaW5maW5pdHkgKi8NCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgZmFyZzEu bGwgPSBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQ X1ZYSU1aLCAxKTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgZmFyZzEubGwgPSBmbG9hZF9p bnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYSU1aLCAxLCBH RVRQQygpKTsNCj4gPiA+IMKgwqDCoMKgwqB9IGVsc2Ugew0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgaWYgKHVubGlrZWx5KGZsb2F0NjRfaXNfc2lnbmFsaW5nX25hbihmYXJnMS5kLCAm ZW52LQ0KPiA+ID4gPmZwX3N0YXR1cykgfHwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYXQ2NF9pc19zaWduYWxpbmdfbmFuKGZhcmcy LmQsICZlbnYtDQo+ID4gPiA+ZnBfc3RhdHVzKSB8fA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hdDY0X2lzX3NpZ25hbGluZ19uYW4o ZmFyZzMuZCwgJmVudi0NCj4gPiA+ID5mcF9zdGF0dXMpKSkgew0KPiA+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAvKiBzTmFOIG9wZXJhdGlvbiAqLw0KPiA+ID4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsIFBPV0VSUENfRVhD UF9GUF9WWFNOQU4sDQo+ID4gPiAxKTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhTTkFOLA0K PiA+ID4gMSwgR0VUUEMoKSk7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB9DQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqAvKiBUaGlzIGlzIHRoZSB3YXkgdGhlIFBvd2VyUEMgc3BlY2lm aWNhdGlvbiBkZWZpbmVzIGl0DQo+ID4gPiAqLw0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKg ZmxvYXQxMjggZnQwXzEyOCwgZnQxXzEyODsNCj4gPiA+IEBAIC04MzcsNyArODQzLDcgQEAg dWludDY0X3QgaGVscGVyX2ZubWFkZChDUFVQUENTdGF0ZSAqZW52LA0KPiA+ID4gdWludDY0 X3QgYXJnMSwgdWludDY0X3QgYXJnMiwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYXQ2NF9pc19pbmZpbml0eShmYXJnMy5kKSAmJg0K PiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9h dDEyOF9pc19uZWcoZnQwXzEyOCkgIT0NCj4gPiA+IGZsb2F0NjRfaXNfbmVnKGZhcmczLmQp KSkgew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBNYWduaXR1ZGUgc3Vi dHJhY3Rpb24gb2YgaW5maW5pdGllcyAqLw0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGZhcmcxLmxsID0gZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwNCj4gPiA+IFBPV0VS UENfRVhDUF9GUF9WWElTSSwgMSk7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ZmFyZzEubGwgPSBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19F WENQX0ZQX1ZYSVNJLCAxLCBHRVRQQygpKTsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoH0g ZWxzZSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZ0MV8xMjggPSBmbG9h dDY0X3RvX2Zsb2F0MTI4KGZhcmczLmQsICZlbnYtDQo+ID4gPiA+ZnBfc3RhdHVzKTsNCj4g PiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZnQwXzEyOCA9IGZsb2F0MTI4X2FkZChm dDBfMTI4LCBmdDFfMTI4LCAmZW52LQ0KPiA+ID4gPmZwX3N0YXR1cyk7DQo+ID4gPiBAQCAt ODY0LDEzICs4NzAsMTMgQEAgdWludDY0X3QgaGVscGVyX2ZubXN1YihDUFVQUENTdGF0ZSAq ZW52LA0KPiA+ID4gdWludDY0X3QgYXJnMSwgdWludDY0X3QgYXJnMiwNCj4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoChmbG9hdDY0X2lzX3plcm8oZmFyZzEu ZCkgJiYNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxv YXQ2NF9pc19pbmZpbml0eShmYXJnMi5kKSkpKSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKg wqAvKiBNdWx0aXBsaWNhdGlvbiBvZiB6ZXJvIGJ5IGluZmluaXR5ICovDQo+ID4gPiAtwqDC oMKgwqDCoMKgwqDCoGZhcmcxLmxsID0gZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwNCj4g PiA+IFBPV0VSUENfRVhDUF9GUF9WWElNWiwgMSk7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDC oGZhcmcxLmxsID0gZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwNCj4gPiA+IFBPV0VSUENf RVhDUF9GUF9WWElNWiwgMSwgR0VUUEMoKSk7DQo+ID4gPiDCoMKgwqDCoMKgfSBlbHNlIHsN Cj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoGlmICh1bmxpa2VseShmbG9hdDY0X2lzX3NpZ25h bGluZ19uYW4oZmFyZzEuZCwgJmVudi0NCj4gPiA+ID5mcF9zdGF0dXMpIHx8DQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2F0NjRfaXNf c2lnbmFsaW5nX25hbihmYXJnMi5kLCAmZW52LQ0KPiA+ID4gPmZwX3N0YXR1cykgfHwNCj4g PiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYXQ2 NF9pc19zaWduYWxpbmdfbmFuKGZhcmczLmQsICZlbnYtDQo+ID4gPiA+ZnBfc3RhdHVzKSkp IHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogc05hTiBvcGVyYXRpb24g Ki8NCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4 Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhTTkFOLA0KPiA+ID4gMSk7DQo+ID4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwgUE9XRVJQ Q19FWENQX0ZQX1ZYU05BTiwNCj4gPiA+IDEsIEdFVFBDKCkpOw0KPiA+ID4gwqDCoMKgwqDC oMKgwqDCoMKgfQ0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgLyogVGhpcyBpcyB0aGUgd2F5 IHRoZSBQb3dlclBDIHNwZWNpZmljYXRpb24gZGVmaW5lcyBpdA0KPiA+ID4gKi8NCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoGZsb2F0MTI4IGZ0MF8xMjgsIGZ0MV8xMjg7DQo+ID4gPiBA QCAtODgyLDcgKzg4OCw3IEBAIHVpbnQ2NF90IGhlbHBlcl9mbm1zdWIoQ1BVUFBDU3RhdGUg KmVudiwNCj4gPiA+IHVpbnQ2NF90IGFyZzEsIHVpbnQ2NF90IGFyZzIsDQo+ID4gPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2F0NjRfaXNfaW5m aW5pdHkoZmFyZzMuZCkgJiYNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZmxvYXQxMjhfaXNfbmVnKGZ0MF8xMjgpID09DQo+ID4gPiBmbG9h dDY0X2lzX25lZyhmYXJnMy5kKSkpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgLyogTWFnbml0dWRlIHN1YnRyYWN0aW9uIG9mIGluZmluaXRpZXMgKi8NCj4gPiA+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmYXJnMS5sbCA9IGZsb2FkX2ludmFsaWRfb3BfZXhj cChlbnYsDQo+ID4gPiBQT1dFUlBDX0VYQ1BfRlBfVlhJU0ksIDEpOw0KPiA+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGZhcmcxLmxsID0gZmxvYWRfaW52YWxpZF9vcF9leGNwKGVu diwNCj4gPiA+IFBPV0VSUENfRVhDUF9GUF9WWElTSSwgMSwgR0VUUEMoKSk7DQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqB9IGVsc2Ugew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBmdDFfMTI4ID0gZmxvYXQ2NF90b19mbG9hdDEyOChmYXJnMy5kLCAmZW52LQ0KPiA+ ID4gPmZwX3N0YXR1cyk7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZ0MF8x MjggPSBmbG9hdDEyOF9zdWIoZnQwXzEyOCwgZnQxXzEyOCwgJmVudi0NCj4gPiA+ID5mcF9z dGF0dXMpOw0KPiA+ID4gQEAgLTkwNSw3ICs5MTEsNyBAQCB1aW50NjRfdCBoZWxwZXJfZnJz cChDUFVQUENTdGF0ZSAqZW52LA0KPiA+ID4gdWludDY0X3QgYXJnKQ0KPiA+ID4gDQo+ID4g PiDCoMKgwqDCoMKgaWYgKHVubGlrZWx5KGZsb2F0NjRfaXNfc2lnbmFsaW5nX25hbihmYXJn LmQsICZlbnYtDQo+ID4gPiA+ZnBfc3RhdHVzKSkpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKg wqDCoC8qIHNOYU4gc3F1YXJlIHJvb3QgKi8NCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgZmxv YWRfaW52YWxpZF9vcF9leGNwKGVudiwgUE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwgMSk7DQo+ ID4gPiArwqDCoMKgwqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsIFBPV0VS UENfRVhDUF9GUF9WWFNOQU4sIDEsDQo+ID4gPiBHRVRQQygpKTsNCj4gPiA+IMKgwqDCoMKg wqB9DQo+ID4gPiDCoMKgwqDCoMKgZjMyID0gZmxvYXQ2NF90b19mbG9hdDMyKGZhcmcuZCwg JmVudi0+ZnBfc3RhdHVzKTsNCj4gPiA+IMKgwqDCoMKgwqBmYXJnLmQgPSBmbG9hdDMyX3Rv X2Zsb2F0NjQoZjMyLCAmZW52LT5mcF9zdGF0dXMpOw0KPiA+ID4gQEAgLTkyMywxMiArOTI5 LDEyIEBAIHVpbnQ2NF90IGhlbHBlcl9mc3FydChDUFVQUENTdGF0ZSAqZW52LA0KPiA+ID4g dWludDY0X3QgYXJnKQ0KPiA+ID4gwqDCoMKgwqDCoGlmICh1bmxpa2VseShmbG9hdDY0X2lz X2FueV9uYW4oZmFyZy5kKSkpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoGlmICh1bmxp a2VseShmbG9hdDY0X2lzX3NpZ25hbGluZ19uYW4oZmFyZy5kLCAmZW52LQ0KPiA+ID4gPmZw X3N0YXR1cykpKSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIHNOYU4g cmVjaXByb2NhbCBzcXVhcmUgcm9vdCAqLw0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsIFBPV0VSUENfRVhDUF9GUF9WWFNOQU4s DQo+ID4gPiAxKTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZh bGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhTTkFOLA0KPiA+ID4gMSwgR0VU UEMoKSk7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZhcmcubGwgPSBmbG9h dDY0X3NuYW5fdG9fcW5hbihmYXJnLmxsKTsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoH0N Cj4gPiA+IMKgwqDCoMKgwqB9IGVsc2UgaWYgKHVubGlrZWx5KGZsb2F0NjRfaXNfbmVnKGZh cmcuZCkgJiYNCj4gPiA+ICFmbG9hdDY0X2lzX3plcm8oZmFyZy5kKSkpIHsNCj4gPiA+IMKg wqDCoMKgwqDCoMKgwqDCoC8qIFNxdWFyZSByb290IG9mIGEgbmVnYXRpdmUgbm9uemVybyBu dW1iZXIgKi8NCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgZmFyZy5sbCA9IGZsb2FkX2ludmFs aWRfb3BfZXhjcChlbnYsDQo+ID4gPiBQT1dFUlBDX0VYQ1BfRlBfVlhTUVJULCAxKTsNCj4g PiA+ICvCoMKgwqDCoMKgwqDCoMKgZmFyZy5sbCA9IGZsb2FkX2ludmFsaWRfb3BfZXhjcChl bnYsDQo+ID4gPiBQT1dFUlBDX0VYQ1BfRlBfVlhTUVJULCAxLCBHRVRQQygpKTsNCj4gPiA+ IMKgwqDCoMKgwqB9IGVsc2Ugew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgZmFyZy5kID0g ZmxvYXQ2NF9zcXJ0KGZhcmcuZCwgJmVudi0+ZnBfc3RhdHVzKTsNCj4gPiA+IMKgwqDCoMKg wqB9DQo+ID4gPiBAQCAtOTQ0LDcgKzk1MCw3IEBAIHVpbnQ2NF90IGhlbHBlcl9mcmUoQ1BV UFBDU3RhdGUgKmVudiwNCj4gPiA+IHVpbnQ2NF90IGFyZykNCj4gPiA+IA0KPiA+ID4gwqDC oMKgwqDCoGlmICh1bmxpa2VseShmbG9hdDY0X2lzX3NpZ25hbGluZ19uYW4oZmFyZy5kLCAm ZW52LQ0KPiA+ID4gPmZwX3N0YXR1cykpKSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqAv KiBzTmFOIHJlY2lwcm9jYWwgKi8NCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52 YWxpZF9vcF9leGNwKGVudiwgUE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwgMSk7DQo+ID4gPiAr wqDCoMKgwqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsIFBPV0VSUENfRVhD UF9GUF9WWFNOQU4sIDEsDQo+ID4gPiBHRVRQQygpKTsNCj4gPiA+IMKgwqDCoMKgwqB9DQo+ ID4gPiDCoMKgwqDCoMKgZmFyZy5kID0gZmxvYXQ2NF9kaXYoZmxvYXQ2NF9vbmUsIGZhcmcu ZCwgJmVudi0+ZnBfc3RhdHVzKTsNCj4gPiA+IMKgwqDCoMKgwqByZXR1cm4gZmFyZy5kOw0K PiA+ID4gQEAgLTk2MCw3ICs5NjYsNyBAQCB1aW50NjRfdCBoZWxwZXJfZnJlcyhDUFVQUENT dGF0ZSAqZW52LA0KPiA+ID4gdWludDY0X3QgYXJnKQ0KPiA+ID4gDQo+ID4gPiDCoMKgwqDC oMKgaWYgKHVubGlrZWx5KGZsb2F0NjRfaXNfc2lnbmFsaW5nX25hbihmYXJnLmQsICZlbnYt DQo+ID4gPiA+ZnBfc3RhdHVzKSkpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoC8qIHNO YU4gcmVjaXByb2NhbCAqLw0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlk X29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhTTkFOLCAxKTsNCj4gPiA+ICvCoMKg wqDCoMKgwqDCoMKgZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwgUE9XRVJQQ19FWENQX0ZQ X1ZYU05BTiwgMSwNCj4gPiA+IEdFVFBDKCkpOw0KPiA+ID4gwqDCoMKgwqDCoH0NCj4gPiA+ IMKgwqDCoMKgwqBmYXJnLmQgPSBmbG9hdDY0X2RpdihmbG9hdDY0X29uZSwgZmFyZy5kLCAm ZW52LT5mcF9zdGF0dXMpOw0KPiA+ID4gwqDCoMKgwqDCoGYzMiA9IGZsb2F0NjRfdG9fZmxv YXQzMihmYXJnLmQsICZlbnYtPmZwX3N0YXR1cyk7DQo+ID4gPiBAQCAtOTc5LDEyICs5ODUs MTIgQEAgdWludDY0X3QgaGVscGVyX2Zyc3FydGUoQ1BVUFBDU3RhdGUgKmVudiwNCj4gPiA+ IHVpbnQ2NF90IGFyZykNCj4gPiA+IMKgwqDCoMKgwqBpZiAodW5saWtlbHkoZmxvYXQ2NF9p c19hbnlfbmFuKGZhcmcuZCkpKSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBpZiAodW5s aWtlbHkoZmxvYXQ2NF9pc19zaWduYWxpbmdfbmFuKGZhcmcuZCwgJmVudi0NCj4gPiA+ID5m cF9zdGF0dXMpKSkgew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBzTmFO IHJlY2lwcm9jYWwgc3F1YXJlIHJvb3QgKi8NCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhTTkFO LA0KPiA+ID4gMSk7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52 YWxpZF9vcF9leGNwKGVudiwgUE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwNCj4gPiA+IDEsIEdF VFBDKCkpOw0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmYXJnLmxsID0gZmxv YXQ2NF9zbmFuX3RvX3FuYW4oZmFyZy5sbCk7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB9 DQo+ID4gPiDCoMKgwqDCoMKgfSBlbHNlIGlmICh1bmxpa2VseShmbG9hdDY0X2lzX25lZyhm YXJnLmQpICYmDQo+ID4gPiAhZmxvYXQ2NF9pc196ZXJvKGZhcmcuZCkpKSB7DQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqAvKiBSZWNpcHJvY2FsIHNxdWFyZSByb290IG9mIGEgbmVnYXRp dmUgbm9uemVybyBudW1iZXINCj4gPiA+ICovDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoGZh cmcubGwgPSBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQ X0ZQX1ZYU1FSVCwgMSk7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoGZhcmcubGwgPSBmbG9h ZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYU1FSVCwg MSwgR0VUUEMoKSk7DQo+ID4gPiDCoMKgwqDCoMKgfSBlbHNlIHsNCj4gPiA+IMKgwqDCoMKg wqDCoMKgwqDCoGZhcmcuZCA9IGZsb2F0NjRfc3FydChmYXJnLmQsICZlbnYtPmZwX3N0YXR1 cyk7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBmYXJnLmQgPSBmbG9hdDY0X2RpdihmbG9h dDY0X29uZSwgZmFyZy5kLCAmZW52LQ0KPiA+ID4gPmZwX3N0YXR1cyk7DQo+ID4gPiBAQCAt MTEwMyw3ICsxMTA5LDcgQEAgdm9pZCBoZWxwZXJfZmNtcHUoQ1BVUFBDU3RhdGUgKmVudiwN Cj4gPiA+IHVpbnQ2NF90IGFyZzEsIHVpbnQ2NF90IGFyZzIsDQo+ID4gPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAmJiAoZmxvYXQ2NF9pc19zaWduYWxpbmdfbmFu KGZhcmcxLmQsICZlbnYtDQo+ID4gPiA+ZnBfc3RhdHVzKSB8fA0KPiA+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hdDY0X2lzX3NpZ25hbGlu Z19uYW4oZmFyZzIuZCwgJmVudi0NCj4gPiA+ID5mcF9zdGF0dXMpKSkpIHsNCj4gPiA+IMKg wqDCoMKgwqDCoMKgwqDCoC8qIHNOYU4gY29tcGFyaXNvbiAqLw0KPiA+ID4gLcKgwqDCoMKg wqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhT TkFOLCAxKTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52YWxpZF9vcF9leGNw KGVudiwgUE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwgMSwNCj4gPiA+IEdFVFBDKCkpOw0KPiA+ ID4gwqDCoMKgwqDCoH0NCj4gPiA+IMKgfQ0KPiA+ID4gDQo+ID4gPiBAQCAtMTEzNSwxMCAr MTE0MSwxMCBAQCB2b2lkIGhlbHBlcl9mY21wbyhDUFVQUENTdGF0ZSAqZW52LA0KPiA+ID4g dWludDY0X3QgYXJnMSwgdWludDY0X3QgYXJnMiwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgZmxvYXQ2NF9pc19zaWduYWxpbmdfbmFuKGZhcmcyLmQsICZlbnYtPmZwX3N0 YXR1cykpDQo+ID4gPiB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIHNO YU4gY29tcGFyaXNvbiAqLw0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9h ZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhTTkFOIHwNCj4gPiA+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoFBPV0VSUENfRVhDUF9GUF9WWFZDLCAxKTsNCj4gPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoFBPV0VSUENfRVhDUF9GUF9WWFZDLCAxLA0KPiA+ID4gR0VUUEMoKSk7DQo+ ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB9IGVsc2Ugew0KPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAvKiBxTmFOIGNvbXBhcmlzb24gKi8NCj4gPiA+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBf VlhWQywgMSk7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52YWxp ZF9vcF9leGNwKGVudiwgUE9XRVJQQ19FWENQX0ZQX1ZYVkMsIDEsDQo+ID4gPiBHRVRQQygp KTsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoH0NCj4gPiA+IMKgwqDCoMKgwqB9DQo+ID4g PiDCoH0NCj4gPiA+IEBAIC0xODM4LDEwICsxODQ0LDEwIEBAIHZvaWQgaGVscGVyXyMjbmFt ZShDUFVQUENTdGF0ZSAqZW52LA0KPiA+ID4gdWludDMyX3Qgb3Bjb2RlKQ0KPiA+IFwNCj4g PiA+IA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBpZiAodW5saWtlbHko dHN0YXQuZmxvYXRfZXhjZXB0aW9uX2ZsYWdzICYNCj4gPiA+IGZsb2F0X2ZsYWdfaW52YWxp ZCkpIHvCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHRw IyNfaXNfaW5maW5pdHkoeGEuZmxkKSAmJg0KPiA+ID4gdHAjI19pc19pbmZpbml0eSh4Yi5m bGQpKSB7wqDCoMKgwqDCoMKgXA0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwNCj4gPiA+IFBPV0VSUENfRVhDUF9G UF9WWElTSSwgc2ZwcmYpO8KgwqDCoMKgXA0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwNCj4gPiA+IFBPV0VSUENf RVhDUF9GUF9WWElTSSwgc2ZwcmYsIEdFVFBDKCkpO1wNCj4gPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgfSBlbHNlIGlmICh0cCMjX2lzX3NpZ25hbGluZ19uYW4oeGEuZmxkLCAm dHN0YXQpDQo+ID4gPiB8fMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0cCMjX2lz X3NpZ25hbGluZ19uYW4oeGIuZmxkLCAmdHN0YXQpKQ0KPiA+ID4ge8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBcDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZY U05BTiwgc2ZwcmYpO8KgwqDCoFwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsDQo+ID4gPiBQT1dFUlBDX0VYQ1Bf RlBfVlhTTkFOLCBzZnByZiwgR0VUUEMoKSk7XA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB9wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKg wqDCoMKgwqDCoH3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4g PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoFwNCj4gPiA+IEBAIC0xODU0LDcgKzE4NjAsNyBAQCB2b2lkIGhlbHBlcl8jI25hbWUo Q1BVUFBDU3RhdGUgKmVudiwNCj4gPiA+IHVpbnQzMl90IG9wY29kZSkNCj4gPiBcDQo+ID4g PiANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoH3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgfcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoHB1dFZTUih4VChvcGNv ZGUpLCAmeHQsDQo+ID4gPiBlbnYpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBcDQo+ID4gPiAtwqDCoMKgwqBoZWxwZXJfZmxvYXRfY2hlY2tfc3RhdHVzKGVudik7wqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiArwqDCoMKgwqBk b19mbG9hdF9jaGVja19zdGF0dXMoZW52LA0KPiA+ID4gR0VUUEMoKSk7wqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBcDQo+ID4gPiDCoH0NCj4gPiA+IA0KPiA+ID4gwqBWU1hfQUREX1NVQih4c2Fk ZGRwLCBhZGQsIDEsIGZsb2F0NjQsIFZzckQoMCksIDEsIDApDQo+ID4gPiBAQCAtMTg5Mywx MCArMTg5OSwxMCBAQCB2b2lkIGhlbHBlcl8jI29wKENQVVBQQ1N0YXRlICplbnYsDQo+ID4g PiB1aW50MzJfdCBvcGNvZGUpDQo+ID4gXA0KPiA+ID4gDQo+ID4gPiDCoMKgwqDCoMKgwqDC oMKgwqBpZiAodW5saWtlbHkodHN0YXQuZmxvYXRfZXhjZXB0aW9uX2ZsYWdzICYNCj4gPiA+ IGZsb2F0X2ZsYWdfaW52YWxpZCkpIHvCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgaWYgKCh0cCMjX2lzX2luZmluaXR5KHhhLmZsZCkgJiYNCj4gPiA+IHRw IyNfaXNfemVybyh4Yi5mbGQpKSB8fMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKHRwIyNfaXNfaW5maW5pdHkoeGIuZmxkKSAm Jg0KPiA+ID4gdHAjI19pc196ZXJvKHhhLmZsZCkpKSB7wqDCoMKgwqDCoMKgwqDCoFwNCj4g PiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3Bf ZXhjcChlbnYsDQo+ID4gPiBQT1dFUlBDX0VYQ1BfRlBfVlhJTVosIHNmcHJmKTvCoMKgwqDC oFwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2FkX2ludmFs aWRfb3BfZXhjcChlbnYsDQo+ID4gPiBQT1dFUlBDX0VYQ1BfRlBfVlhJTVosIHNmcHJmLCBH RVRQQygpKTtcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0gZWxzZSBpZiAo dHAjI19pc19zaWduYWxpbmdfbmFuKHhhLmZsZCwgJnRzdGF0KQ0KPiA+ID4gfHzCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdHAjI19pc19zaWduYWxpbmdfbmFuKHhiLmZsZCwg JnRzdGF0KSkNCj4gPiA+IHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52YWxpZF9vcF9leGNw KGVudiwNCj4gPiA+IFBPV0VSUENfRVhDUF9GUF9WWFNOQU4sIHNmcHJmKTvCoMKgwqBcDQo+ ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29w X2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwgc2ZwcmYsIEdFVFBD KCkpO1wNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB9wqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiBAQCAtMTkxMCw3 ICsxOTE2LDcgQEAgdm9pZCBoZWxwZXJfIyNvcChDUFVQUENTdGF0ZSAqZW52LCB1aW50MzJf dA0KPiA+ID4gb3Bjb2RlKQ0KPiA+IFwNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoH3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0K PiA+ID4gwqDCoMKgwqDCoHB1dFZTUih4VChvcGNvZGUpLCAmeHQsDQo+ID4gPiBlbnYpO8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiAtwqDCoMKgwqBoZWxw ZXJfZmxvYXRfY2hlY2tfc3RhdHVzKGVudik7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBcDQo+ID4gPiArwqDCoMKgwqBkb19mbG9hdF9jaGVja19zdGF0dXMoZW52 LA0KPiA+ID4gR0VUUEMoKSk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoH0NCj4g PiA+IA0KPiA+ID4gwqBWU1hfTVVMKHhzbXVsZHAsIDEsIGZsb2F0NjQsIFZzckQoMCksIDEs IDApDQo+ID4gPiBAQCAtMTk0NCwxMyArMTk1MCwxMyBAQCB2b2lkIGhlbHBlcl8jI29wKENQ VVBQQ1N0YXRlICplbnYsDQo+ID4gPiB1aW50MzJfdCBvcGNvZGUpDQo+ID4gXA0KPiA+ID4g DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHVubGlrZWx5KHRz dGF0LmZsb2F0X2V4Y2VwdGlvbl9mbGFncyAmDQo+ID4gPiBmbG9hdF9mbGFnX2ludmFsaWQp KSB7wqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHRw IyNfaXNfaW5maW5pdHkoeGEuZmxkKSAmJg0KPiA+ID4gdHAjI19pc19pbmZpbml0eSh4Yi5m bGQpKSB7wqDCoMKgwqDCoMKgwqBcDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQ X0ZQX1ZYSURJLCBzZnByZik7wqDCoMKgwqDCoFwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsDQo+ID4gPiBQT1dF UlBDX0VYQ1BfRlBfVlhJREksIHNmcHJmLCBHRVRQQygpKTtcDQo+ID4gPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoH0gZWxzZSBpZiAodHAjI19pc196ZXJvKHhhLmZsZCkNCj4gPiA+ ICYmwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB0cCMjX2lzX3plcm8oeGIuZmxkKSkNCj4gPiA+IHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBcDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZh bGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYWkRaLCBzZnByZik7 wqDCoMKgwqDCoFwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZs b2FkX2ludmFsaWRfb3BfZXhjcChlbnYsDQo+ID4gPiBQT1dFUlBDX0VYQ1BfRlBfVlhaRFos IHNmcHJmLCBHRVRQQygpKTtcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0g ZWxzZSBpZiAodHAjI19pc19zaWduYWxpbmdfbmFuKHhhLmZsZCwgJnRzdGF0KQ0KPiA+ID4g fHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgdHAjI19pc19zaWduYWxpbmdfbmFuKHhiLmZsZCwgJnRz dGF0KSkNCj4gPiA+IHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoFwNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2FkX2lu dmFsaWRfb3BfZXhjcChlbnYsDQo+ID4gPiBQT1dFUlBDX0VYQ1BfRlBfVlhTTkFOLCBzZnBy Zik7wqDCoMKgwqBcDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBm bG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYU05B Tiwgc2ZwcmYsIEdFVFBDKCkpO1wNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg fcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKg wqDCoH3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBcDQo+ID4gPiBAQCAtMTk2NCw3ICsxOTcwLDcgQEAgdm9pZCBoZWxwZXJfIyNvcChDUFVQ UENTdGF0ZSAqZW52LCB1aW50MzJfdA0KPiA+ID4gb3Bjb2RlKQ0KPiA+IFwNCj4gPiA+IA0K PiA+ID4gwqDCoMKgwqDCoH3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqBwdXRWU1IoeFQob3Bj b2RlKSwgJnh0LA0KPiA+ID4gZW52KTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBcDQo+ID4gPiAtwqDCoMKgwqBoZWxwZXJfZmxvYXRfY2hlY2tfc3RhdHVzKGVudik7 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+ICvCoMKg wqDCoGRvX2Zsb2F0X2NoZWNrX3N0YXR1cyhlbnYsDQo+ID4gPiBHRVRQQygpKTvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqB9DQo+ID4gPiANCj4gPiA+IMKgVlNYX0RJVih4 c2RpdmRwLCAxLCBmbG9hdDY0LCBWc3JEKDApLCAxLCAwKQ0KPiA+ID4gQEAgLTE5OTEsNyAr MTk5Nyw3IEBAIHZvaWQgaGVscGVyXyMjb3AoQ1BVUFBDU3RhdGUgKmVudiwgdWludDMyX3QN Cj4gPiA+IG9wY29kZSkNCj4gPiBcDQo+ID4gPiANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKg wqDCoMKgZm9yIChpID0gMDsgaSA8IG5lbHM7IGkrKykNCj4gPiA+IHvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoGlm ICh1bmxpa2VseSh0cCMjX2lzX3NpZ25hbGluZ19uYW4oeGIuZmxkLCAmZW52LQ0KPiA+ID4g PmZwX3N0YXR1cykpKSB7wqDCoMKgwqDCoMKgwqBcDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9X RVJQQ19FWENQX0ZQX1ZYU05BTiwgc2ZwcmYpO8KgwqDCoMKgXA0KPiA+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwNCj4g PiA+IFBPV0VSUENfRVhDUF9GUF9WWFNOQU4sIHNmcHJmLCBHRVRQQygpKTtcDQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqB9wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB4dC5mbGQgPSB0cCMjX2Rpdih0cCMjX29u ZSwgeGIuZmxkLCAmZW52LQ0KPiA+ID4gPmZwX3N0YXR1cyk7wqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiBAQCAtMjAwNSw3ICsyMDEx LDcgQEAgdm9pZCBoZWxwZXJfIyNvcChDUFVQUENTdGF0ZSAqZW52LCB1aW50MzJfdA0KPiA+ ID4gb3Bjb2RlKQ0KPiA+IFwNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoH3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4g PiA+IMKgwqDCoMKgwqBwdXRWU1IoeFQob3Bjb2RlKSwgJnh0LA0KPiA+ID4gZW52KTvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiAtwqDCoMKgwqBoZWxw ZXJfZmxvYXRfY2hlY2tfc3RhdHVzKGVudik7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoFwNCj4gPiA+ICvCoMKgwqDCoGRvX2Zsb2F0X2NoZWNrX3N0YXR1cyhl bnYsDQo+ID4gPiBHRVRQQygpKTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqB9 DQo+ID4gPiANCj4gPiA+IMKgVlNYX1JFKHhzcmVkcCwgMSwgZmxvYXQ2NCwgVnNyRCgwKSwg MSwgMCkNCj4gPiA+IEBAIC0yMDM4LDkgKzIwNDQsOSBAQCB2b2lkIGhlbHBlcl8jI29wKENQ VVBQQ1N0YXRlICplbnYsIHVpbnQzMl90DQo+ID4gPiBvcGNvZGUpDQo+ID4gXA0KPiA+ID4g DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoGlmICh1bmxpa2VseSh0c3Rh dC5mbG9hdF9leGNlcHRpb25fZmxhZ3MgJg0KPiA+ID4gZmxvYXRfZmxhZ19pbnZhbGlkKSkg e8KgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAodHAjI19p c19uZWcoeGIuZmxkKSAmJiAhdHAjI19pc196ZXJvKHhiLmZsZCkpDQo+ID4gPiB7wqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsDQo+ID4gPiBQT1dFUlBDX0VY Q1BfRlBfVlhTUVJULCBzZnByZik7wqDCoMKgXA0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwNCj4gPiA+IFBPV0VS UENfRVhDUF9GUF9WWFNRUlQsIHNmcHJmLCBHRVRQQygpKTtcDQo+ID4gPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoH0gZWxzZSBpZiAodHAjI19pc19zaWduYWxpbmdfbmFuKHhiLmZs ZCwgJnRzdGF0KSkNCj4gPiA+IHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52YWxpZF9vcF9l eGNwKGVudiwNCj4gPiA+IFBPV0VSUENfRVhDUF9GUF9WWFNOQU4sIHNmcHJmKTvCoMKgwqBc DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlk X29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwgc2ZwcmYsIEdF VFBDKCkpO1wNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB9wqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiBAQCAtMjA1 NCw3ICsyMDYwLDcgQEAgdm9pZCBoZWxwZXJfIyNvcChDUFVQUENTdGF0ZSAqZW52LCB1aW50 MzJfdA0KPiA+ID4gb3Bjb2RlKQ0KPiA+IFwNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoH3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg XA0KPiA+ID4gwqDCoMKgwqDCoHB1dFZTUih4VChvcGNvZGUpLCAmeHQsDQo+ID4gPiBlbnYp O8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiAtwqDCoMKgwqBo ZWxwZXJfZmxvYXRfY2hlY2tfc3RhdHVzKGVudik7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBcDQo+ID4gPiArwqDCoMKgwqBkb19mbG9hdF9jaGVja19zdGF0dXMo ZW52LA0KPiA+ID4gR0VUUEMoKSk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoH0N Cj4gPiA+IA0KPiA+ID4gwqBWU1hfU1FSVCh4c3NxcnRkcCwgMSwgZmxvYXQ2NCwgVnNyRCgw KSwgMSwgMCkNCj4gPiA+IEBAIC0yMDg4LDkgKzIwOTQsOSBAQCB2b2lkIGhlbHBlcl8jI29w KENQVVBQQ1N0YXRlICplbnYsIHVpbnQzMl90DQo+ID4gPiBvcGNvZGUpDQo+ID4gXA0KPiA+ ID4gDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoGlmICh1bmxpa2VseSh0 c3RhdC5mbG9hdF9leGNlcHRpb25fZmxhZ3MgJg0KPiA+ID4gZmxvYXRfZmxhZ19pbnZhbGlk KSkge8KgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAodHAj I19pc19uZWcoeGIuZmxkKSAmJiAhdHAjI19pc196ZXJvKHhiLmZsZCkpDQo+ID4gPiB7wqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsDQo+ID4gPiBQT1dFUlBD X0VYQ1BfRlBfVlhTUVJULCBzZnByZik7wqDCoMKgXA0KPiA+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwNCj4gPiA+IFBP V0VSUENfRVhDUF9GUF9WWFNRUlQsIHNmcHJmLCBHRVRQQygpKTtcDQo+ID4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoH0gZWxzZSBpZiAodHAjI19pc19zaWduYWxpbmdfbmFuKHhi LmZsZCwgJnRzdGF0KSkNCj4gPiA+IHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0K PiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52YWxpZF9v cF9leGNwKGVudiwNCj4gPiA+IFBPV0VSUENfRVhDUF9GUF9WWFNOQU4sIHNmcHJmKTvCoMKg wqBcDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZh bGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwgc2ZwcmYs IEdFVFBDKCkpO1wNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB9wqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4g PiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiBAQCAt MjEwNCw3ICsyMTEwLDcgQEAgdm9pZCBoZWxwZXJfIyNvcChDUFVQUENTdGF0ZSAqZW52LCB1 aW50MzJfdA0KPiA+ID4gb3Bjb2RlKQ0KPiA+IFwNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDC oH3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgXA0KPiA+ID4gwqDCoMKgwqDCoHB1dFZTUih4VChvcGNvZGUpLCAmeHQsDQo+ID4gPiBl bnYpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiAtwqDCoMKg wqBoZWxwZXJfZmxvYXRfY2hlY2tfc3RhdHVzKGVudik7wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiArwqDCoMKgwqBkb19mbG9hdF9jaGVja19zdGF0 dXMoZW52LA0KPiA+ID4gR0VUUEMoKSk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDC oH0NCj4gPiA+IA0KPiA+ID4gwqBWU1hfUlNRUlRFKHhzcnNxcnRlZHAsIDEsIGZsb2F0NjQs IFZzckQoMCksIDEsIDApDQo+ID4gPiBAQCAtMjI3NywyMCArMjI4MywyMCBAQCB2b2lkIGhl bHBlcl8jI29wKENQVVBQQ1N0YXRlICplbnYsDQo+ID4gPiB1aW50MzJfdCBvcGNvZGUpDQo+ ID4gXA0KPiA+ID4gDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICh0cCMj X2lzX3NpZ25hbGluZ19uYW4oeGEuZmxkLCAmdHN0YXQpDQo+ID4gPiB8fMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRwIyNfaXNfc2lnbmFsaW5nX25hbihiLT5mbGQsICZ0 c3RhdCkNCj4gPiA+IHx8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdHAjI19p c19zaWduYWxpbmdfbmFuKGMtPmZsZCwgJnRzdGF0KSkNCj4gPiA+IHvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsDQo+ID4gPiBQ T1dFUlBDX0VYQ1BfRlBfVlhTTkFOLCBzZnByZik7wqDCoMKgwqBcDQo+ID4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0K PiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwgc2ZwcmYsIEdFVFBDKCkpO1wNCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0c3RhdC5mbG9hdF9leGNlcHRp b25fZmxhZ3MgJj0NCj4gPiA+IH5mbG9hdF9mbGFnX2ludmFsaWQ7wqDCoMKgwqDCoMKgwqDC oMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg aWYgKCh0cCMjX2lzX2luZmluaXR5KHhhLmZsZCkgJiYgdHAjI19pc196ZXJvKGItDQo+ID4g PiA+ZmxkKSkgfHzCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgKHRwIyNfaXNfemVybyh4YS5mbGQpICYmIHRwIyNfaXNfaW5m aW5pdHkoYi0NCj4gPiA+ID5mbGQpKSkge8KgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4dF9vdXQuZmxkID0NCj4gPiA+IGZs b2F0NjRfdG9fIyN0cChmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LMKgwqDCoMKgwqDCoMKg XA0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBQT1dF UlBDX0VYQ1BfRlBfVlhJTVosIHNmcHJmKSwgJmVudi0NCj4gPiA+ID5mcF9zdGF0dXMpO8Kg wqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBQT1dFUlBDX0VYQ1BfRlBfVlhJTVosIHNmcHJmLCBHRVRQQygpKSwN Cj4gPiA+ICZlbnYtPmZwX3N0YXR1cyk7IFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqB0c3RhdC5mbG9hdF9leGNlcHRpb25fZmxhZ3MgJj0NCj4gPiA+IH5m bG9hdF9mbGFnX2ludmFsaWQ7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgfcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwN Cj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKCh0c3RhdC5mbG9hdF9leGNl cHRpb25fZmxhZ3MgJg0KPiA+ID4gZmxvYXRfZmxhZ19pbnZhbGlkKSAmJsKgwqDCoMKgwqDC oMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoKHRw IyNfaXNfaW5maW5pdHkoeGEuZmxkKQ0KPiA+ID4gfHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRwIyNfaXNfaW5maW5pdHko Yi0+ZmxkKSkNCj4gPiA+ICYmwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgdHAjI19pc19pbmZpbml0eShjLT5mbGQpKSkNCj4gPiA+ IHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgXA0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwNCj4gPiA+IFBPV0VSUENfRVhDUF9GUF9WWElT SSwgc2ZwcmYpO8KgwqDCoMKgwqBcDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQ X0ZQX1ZYSVNJLCBzZnByZiwgR0VUUEMoKSk7XA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB9wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKg wqDCoMKgwqDCoMKgfcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0K PiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoFwNCj4gPiA+IEBAIC0yMzAzLDcgKzIzMDksNyBAQCB2b2lkIGhlbHBlcl8j I29wKENQVVBQQ1N0YXRlICplbnYsIHVpbnQzMl90DQo+ID4gPiBvcGNvZGUpDQo+ID4gXA0K PiA+ID4gDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB9wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgfcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgcHV0VlNS KHhUKG9wY29kZSksICZ4dF9vdXQsDQo+ID4gPiBlbnYpO8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBcDQo+ID4gPiAtwqDCoMKgwqBoZWxwZXJfZmxvYXRfY2hlY2tfc3RhdHVzKGVu dik7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+ICvC oMKgwqDCoGRvX2Zsb2F0X2NoZWNrX3N0YXR1cyhlbnYsDQo+ID4gPiBHRVRQQygpKTvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqB9DQo+ID4gPiANCj4gPiA+IMKgI2RlZmlu ZSBNQUREX0ZMR1MgMA0KPiA+ID4gQEAgLTIzNjAsMTAgKzIzNjYsMTAgQEAgdm9pZCBoZWxw ZXJfIyNvcChDUFVQUENTdGF0ZSAqZW52LA0KPiA+ID4gdWludDMyX3Qgb3Bjb2RlKQ0KPiA+ IFwNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ZmxvYXQ2NF9pc19hbnlfbmFuKHhiLlZzckQoMCkpKSkNCj4gPiA+IHvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKg wqDCoGlmIChmbG9hdDY0X2lzX3NpZ25hbGluZ19uYW4oeGEuVnNyRCgwKSwgJmVudi0NCj4g PiA+ID5mcF9zdGF0dXMpIHx8wqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgZmxvYXQ2NF9pc19zaWduYWxpbmdfbmFuKHhiLlZzckQoMCksICZlbnYtDQo+ ID4gPiA+ZnBfc3RhdHVzKSkge8KgwqDCoMKgwqBcDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwgUE9XRVJQQ19FWENQX0ZQX1ZY U05BTiwNCj4gPiA+IDApO8KgwqDCoMKgwqDCoMKgXA0KPiA+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsIFBPV0VSUENfRVhDUF9GUF9W WFNOQU4sDQo+ID4gPiAwLCBHRVRQQygpKTtcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB9 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDC oGlmIChvcmRlcmVkKQ0KPiA+ID4ge8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9h ZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhWQywNCj4gPiA+IDAp O8KgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBm bG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhWQywgMCwNCj4g PiA+IEdFVFBDKCkpO1wNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoH3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgY2MgPQ0KPiA+ID4g MTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqB9IGVsc2UNCj4gPiA+IHvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoFwNCj4gPiA+IEBAIC0yMzgxLDcgKzIzODcsNyBAQCB2b2lkIGhlbHBlcl8jI29wKENQ VVBQQ1N0YXRlICplbnYsIHVpbnQzMl90DQo+ID4gPiBvcGNvZGUpDQo+ID4gXA0KPiA+ID4g DQo+ID4gPiDCoMKgwqDCoMKgZW52LT5mcHNjciB8PSBjYyA8PA0KPiA+ID4gRlBTQ1JfRlBS RjvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoGVudi0+Y3JmW0JG KG9wY29kZSldID0NCj4gPiA+IGNjO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg XA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgXA0KPiA+ID4gLcKgwqDCoMKgaGVscGVyX2Zsb2F0X2NoZWNrX3N0YXR1cyhlbnYpO8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+ICvCoMKgwqDCoGRvX2Zsb2F0 X2NoZWNrX3N0YXR1cyhlbnYsDQo+ID4gPiBHRVRQQygpKTvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4g PiDCoH0NCj4gPiA+IA0KPiA+ID4gwqBWU1hfU0NBTEFSX0NNUCh4c2NtcG9kcCwgMSkNCj4g PiA+IEBAIC0yNDA4LDEyICsyNDE0LDEyIEBAIHZvaWQgaGVscGVyXyMjbmFtZShDUFVQUENT dGF0ZSAqZW52LA0KPiA+ID4gdWludDMyX3Qgb3Bjb2RlKQ0KPiA+IFwNCj4gPiA+IA0KPiA+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgeHQuZmxkID0gdHAjI18jI29wKHhhLmZsZCwgeGIuZmxk LCAmZW52LQ0KPiA+ID4gPmZwX3N0YXR1cyk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHVubGlrZWx5KHRwIyNf aXNfc2lnbmFsaW5nX25hbih4YS5mbGQsICZlbnYtDQo+ID4gPiA+ZnBfc3RhdHVzKSB8fMKg wqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHRwIyNfaXNfc2lnbmFsaW5nX25hbih4Yi5mbGQsICZlbnYtDQo+ID4g PiA+ZnBfc3RhdHVzKSkpIHvCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBf VlhTTkFOLA0KPiA+ID4gMCk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYsIFBPV0VS UENfRVhDUF9GUF9WWFNOQU4sDQo+ID4gPiAwLCBHRVRQQygpKTvCoMKgwqBcDQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqB9wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBcDQo+ID4gPiDCoMKgwqDCoMKgfcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoHB1dFZTUih4 VChvcGNvZGUpLCAmeHQsDQo+ID4gPiBlbnYpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoFwNCj4gPiA+IC3CoMKgwqDCoGhlbHBlcl9mbG9hdF9jaGVja19zdGF0dXMo ZW52KTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4g K8KgwqDCoMKgZG9fZmxvYXRfY2hlY2tfc3RhdHVzKGVudiwNCj4gPiA+IEdFVFBDKCkpO8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoH0NCj4gPiA+IA0KPiA+ID4gwqBWU1hf TUFYX01JTih4c21heGRwLCBtYXhudW0sIDEsIGZsb2F0NjQsIFZzckQoMCkpDQo+ID4gPiBA QCAtMjQ0OCwxMCArMjQ1NCwxMCBAQCB2b2lkIGhlbHBlcl8jI29wKENQVVBQQ1N0YXRlICpl bnYsDQo+ID4gPiB1aW50MzJfdCBvcGNvZGUpDQo+ID4gXA0KPiA+ID4gDQo+ID4gPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRwIyNfaXNfYW55X25h bih4Yi5mbGQpKSkNCj4gPiA+IHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBp ZiAodHAjI19pc19zaWduYWxpbmdfbmFuKHhhLmZsZCwgJmVudi0+ZnBfc3RhdHVzKQ0KPiA+ ID4gfHzCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgdHAjI19pc19zaWduYWxpbmdfbmFuKHhiLmZsZCwgJmVudi0+ZnBfc3Rh dHVzKSkNCj4gPiA+IHvCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4g UE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwgMCk7wqDCoMKgwqBcDQo+ID4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ ID4gUE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwgMCwgR0VUUEMoKSk7XA0KPiA+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqB9wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHN2eHZjKQ0KPiA+ID4ge8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dF UlBDX0VYQ1BfRlBfVlhWQywNCj4gPiA+IDApO8KgwqDCoMKgwqDCoFwNCj4gPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsb2FkX2ludmFsaWRfb3BfZXhjcChlbnYs IFBPV0VSUENfRVhDUF9GUF9WWFZDLA0KPiA+ID4gMCwgR0VUUEMoKSk7XA0KPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeHQuZmxkID0NCj4gPiA+IDA7wqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBhbGxfdHJ1ZSA9DQo+ID4gPiAwO8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gQEAgLTI0NzAsNyArMjQ3 Niw3IEBAIHZvaWQgaGVscGVyXyMjb3AoQ1BVUFBDU3RhdGUgKmVudiwgdWludDMyX3QNCj4g PiA+IG9wY29kZSkNCj4gPiBcDQo+ID4gPiANCj4gPiA+IMKgwqDCoMKgwqBpZiAoKG9wY29k ZSA+PiAoMzEtMjEpKSAmIDEpDQo+ID4gPiB7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBc DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBlbnYtPmNyZls2XSA9IChhbGxfdHJ1ZSA/IDB4 OCA6IDApIHwgKGFsbF9mYWxzZSA/IDB4MiA6DQo+ID4gPiAwKTvCoMKgwqDCoMKgwqDCoFwN Cj4gPiA+IMKgwqDCoMKgwqB9wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKg wqBcDQo+ID4gPiAtwqDCoMKgwqBoZWxwZXJfZmxvYXRfY2hlY2tfc3RhdHVzKGVudik7wqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiArwqDCoMKgwqBkb19mbG9h dF9jaGVja19zdGF0dXMoZW52LA0KPiA+ID4gR0VUUEMoKSk7wqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ ID4gPiDCoCB9DQo+ID4gPiANCj4gPiA+IMKgVlNYX0NNUCh4dmNtcGVxZHAsIDIsIGZsb2F0 NjQsIFZzckQoaSksIGVxLCAwKQ0KPiA+ID4gQEAgLTI1MDIsNyArMjUwOCw3IEBAIHZvaWQg aGVscGVyXyMjb3AoQ1BVUFBDU3RhdGUgKmVudiwgdWludDMyX3QNCj4gPiA+IG9wY29kZSnC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKg wqDCoHh0LnRmbGQgPSBzdHAjI190b18jI3R0cCh4Yi5zZmxkLCAmZW52LQ0KPiA+ID4gPmZw X3N0YXR1cyk7wqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoGlm DQo+ID4gPiAodW5saWtlbHkoc3RwIyNfaXNfc2lnbmFsaW5nX25hbih4Yi5zZmxkLMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCZlbnYtPmZwX3N0YXR1cykpKQ0KPiA+ID4ge8KgwqDCoFwNCj4g PiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52 LCBQT1dFUlBDX0VYQ1BfRlBfVlhTTkFOLA0KPiA+ID4gMCk7IFwNCj4gPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VY Q1BfRlBfVlhTTkFOLA0KPiA+ID4gMCwgR0VUUEMoKSk7IFwNCj4gPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgeHQudGZsZCA9DQo+ID4gPiB0dHAjI19zbmFuX3RvX3FuYW4oeHQu dGZsZCk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoH3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgaWYgKHNmcHJmKQ0KPiA+ID4ge8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBcDQo+ID4gPiBAQCAtMjUxMiw3ICsyNTE4LDcgQEAgdm9pZCBoZWxwZXJfIyNv cChDUFVQUENTdGF0ZSAqZW52LCB1aW50MzJfdA0KPiA+ID4gb3Bjb2RlKcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoH3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ ID4gPiDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKg wqBcDQo+ID4gPiDCoMKgwqDCoMKgcHV0VlNSKHhUKG9wY29kZSksICZ4dCwNCj4gPiA+IGVu dik7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiAtwqDCoMKgwqBoZWxwZXJfZmxvYXRfY2hlY2tf c3RhdHVzKGVudik7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgXA0KPiA+ID4gK8KgwqDCoMKgZG9fZmxv YXRfY2hlY2tfc3RhdHVzKGVudiwNCj4gPiA+IEdFVFBDKCkpO8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgfQ0KPiA+ ID4gDQo+ID4gPiDCoFZTWF9DVlRfRlBfVE9fRlAoeHNjdmRwc3AsIDEsIGZsb2F0NjQsIGZs b2F0MzIsIFZzckQoMCksDQo+ID4gPiBWc3JXKDApLCAxKQ0KPiA+ID4gQEAgLTI1NTcsMjEg KzI1NjMsMjEgQEAgdm9pZCBoZWxwZXJfIyNvcChDUFVQUENTdGF0ZSAqZW52LA0KPiA+ID4g dWludDMyX3Qgb3Bjb2RlKQ0KPiA+IFwNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoGZvciAo aSA9IDA7IGkgPCBuZWxzOyBpKyspDQo+ID4gPiB7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHVubGlrZWx5KHN0 cCMjX2lzX2FueV9uYW4oeGIuc2ZsZCkpKQ0KPiA+ID4ge8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgaWYgKHN0cCMjX2lzX3NpZ25hbGluZ19uYW4oeGIuc2ZsZCwgJmVu di0NCj4gPiA+ID5mcF9zdGF0dXMpKSB7wqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3Ao ZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwgMCk7wqDCoMKgwqDCoMKgwqBc DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlk X29wX2V4Y3AoZW52LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQX1ZYU05BTiwgMCwgR0VUUEMo KSk7XA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9wqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoFwNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9p bnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhDVkksDQo+ID4gPiAwKTvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwgUE9XRVJQQ19FWENQX0ZQX1ZYQ1ZJLCAw LA0KPiA+ID4gR0VUUEMoKSk7wqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqB4dC50ZmxkID0NCj4gPiA+IHJuYW47wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoH0gZWxzZQ0K PiA+ID4ge8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB4dC50ZmxkID0NCj4gPiA+IHN0cCMjX3RvXyMjdHRwIyNfcm91bmRfdG9femVybyh4Yi5z ZmxkLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgJmVudi0NCj4g PiA+ID5mcF9zdGF0dXMpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBpZiAoZW52LT5mcF9zdGF0dXMuZmxvYXRfZXhjZXB0aW9uX2ZsYWdzICYN Cj4gPiA+IGZsb2F0X2ZsYWdfaW52YWxpZCkgeyBcDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LA0KPiA+ID4gUE9X RVJQQ19FWENQX0ZQX1ZYQ1ZJLCAwKTvCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxvYWRfaW52YWxpZF9vcF9leGNwKGVudiwN Cj4gPiA+IFBPV0VSUENfRVhDUF9GUF9WWENWSSwgMCwgR0VUUEMoKSk7XA0KPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwN Cj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoH3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgfcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgcHV0VlNS KHhUKG9wY29kZSksICZ4dCwNCj4gPiA+IGVudik7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoFwNCj4gPiA+IC3CoMKgwqDCoGhlbHBlcl9mbG9hdF9jaGVja19zdGF0dXMo ZW52KTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+ICvC oMKgwqDCoGRvX2Zsb2F0X2NoZWNrX3N0YXR1cyhlbnYsDQo+ID4gPiBHRVRQQygpKTvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgfQ0KPiA+ID4gDQo+ID4gPiDCoFZTWF9DVlRf RlBfVE9fSU5UKHhzY3ZkcHN4ZHMsIDEsIGZsb2F0NjQsIGludDY0LCBWc3JEKDApLA0KPiA+ ID4gVnNyRCgwKSwgXA0KPiA+ID4gQEAgLTI2MjIsNyArMjYyOCw3IEBAIHZvaWQgaGVscGVy XyMjb3AoQ1BVUFBDU3RhdGUgKmVudiwgdWludDMyX3QNCj4gPiA+IG9wY29kZSkNCj4gPiBc DQo+ID4gPiANCj4gPiA+IMKgwqDCoMKgwqB9wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDC oMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKg wqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgcHV0VlNSKHhUKG9wY29kZSksICZ4dCwNCj4g PiA+IGVudik7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gLcKgwqDCoMKgaGVs cGVyX2Zsb2F0X2NoZWNrX3N0YXR1cyhlbnYpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKgwqDCoMKg wqBcDQo+ID4gPiArwqDCoMKgwqBkb19mbG9hdF9jaGVja19zdGF0dXMoZW52LA0KPiA+ID4g R0VUUEMoKSk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgfQ0KPiA+ID4gDQo+ID4gPiDCoFZTWF9D VlRfSU5UX1RPX0ZQKHhzY3ZzeGRkcCwgMSwgaW50NjQsIGZsb2F0NjQsIFZzckQoMCksDQo+ ID4gPiBWc3JEKDApLCAxLCAwKQ0KPiA+ID4gQEAgLTI2NjcsNyArMjY3Myw3IEBAIHZvaWQg aGVscGVyXyMjb3AoQ1BVUFBDU3RhdGUgKmVudiwgdWludDMyX3QNCj4gPiA+IG9wY29kZSkN Cj4gPiBcDQo+ID4gPiANCj4gPiA+IMKgwqDCoMKgwqBmb3IgKGkgPSAwOyBpIDwgbmVsczsg aSsrKQ0KPiA+ID4ge8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKg wqDCoMKgwqDCoGlmDQo+ID4gPiAodW5saWtlbHkodHAjI19pc19zaWduYWxpbmdfbmFuKHhi LmZsZCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4g PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgJmVudi0+ZnBfc3RhdHVzKSkp DQo+ID4gPiB7wqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhTTkFO LA0KPiA+ID4gMCk7wqDCoMKgwqDCoFwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBmbG9hZF9pbnZhbGlkX29wX2V4Y3AoZW52LCBQT1dFUlBDX0VYQ1BfRlBfVlhTTkFOLA0K PiA+ID4gMCwgR0VUUEMoKSk7XA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4 dC5mbGQgPQ0KPiA+ID4gdHAjI19zbmFuX3RvX3FuYW4oeGIuZmxkKTvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKg wqDCoMKgwqB9IGVsc2UNCj4gPiA+IHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgeHQuZmxkID0gdHAjI19yb3VuZF90b19pbnQoeGIuZmxkLCAmZW52LQ0KPiA+ID4g PmZwX3N0YXR1cyk7wqDCoMKgwqDCoMKgwqBcDQo+ID4gPiBAQCAtMjY4Niw3ICsyNjkyLDcg QEAgdm9pZCBoZWxwZXJfIyNvcChDUFVQUENTdGF0ZSAqZW52LCB1aW50MzJfdA0KPiA+ID4g b3Bjb2RlKQ0KPiA+IFwNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoH3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ ID4gPiDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4g PiA+IMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoHB1dFZTUih4VChvcGNvZGUp LCAmeHQsDQo+ID4gPiBlbnYpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiAtwqDC oMKgwqBoZWxwZXJfZmxvYXRfY2hlY2tfc3RhdHVzKGVudik7wqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKg wqDCoMKgwqBcDQo+ID4gPiArwqDCoMKgwqBkb19mbG9hdF9jaGVja19zdGF0dXMoZW52LA0K PiA+ID4gR0VUUEMoKSk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoH0NCj4gPiA+IA0KPiA+ID4gwqBW U1hfUk9VTkQoeHNyZHBpLCAxLCBmbG9hdDY0LCBWc3JEKDApLCBmbG9hdF9yb3VuZF90aWVz X2F3YXksIDEpDQo+ID4gPiBAQCAtMjcxNCw2ICsyNzIwLDYgQEAgdWludDY0X3QgaGVscGVy X3hzcnNwKENQVVBQQ1N0YXRlICplbnYsDQo+ID4gPiB1aW50NjRfdCB4YikNCj4gPiA+IMKg wqDCoMKgwqB1aW50NjRfdCB4dCA9IGhlbHBlcl9mcnNwKGVudiwgeGIpOw0KPiA+ID4gDQo+ ID4gPiDCoMKgwqDCoMKgaGVscGVyX2NvbXB1dGVfZnByZihlbnYsIHh0KTsNCj4gPiA+IC3C oMKgwqDCoGhlbHBlcl9mbG9hdF9jaGVja19zdGF0dXMoZW52KTsNCj4gPiA+ICvCoMKgwqDC oGRvX2Zsb2F0X2NoZWNrX3N0YXR1cyhlbnYsIEdFVFBDKCkpOw0KPiA+ID4gwqDCoMKgwqDC oHJldHVybiB4dDsNCj4gPiA+IMKgfQ0KPiA+ID4gZGlmZiAtLWdpdCBhL3RhcmdldC1wcGMv aGVscGVyLmggYi90YXJnZXQtcHBjL2hlbHBlci5oDQo+ID4gPiBpbmRleCAxZjVjZmQwLi4z NDU2MGY5IDEwMDY0NA0KPiA+ID4gLS0tIGEvdGFyZ2V0LXBwYy9oZWxwZXIuaA0KPiA+ID4g KysrIGIvdGFyZ2V0LXBwYy9oZWxwZXIuaA0KPiA+ID4gQEAgLTEsNCArMSw1IEBADQo+ID4g PiDCoERFRl9IRUxQRVJfMyhyYWlzZV9leGNlcHRpb25fZXJyLCB2b2lkLCBlbnYsIGkzMiwg aTMyKQ0KPiA+ID4gK0RFRl9IRUxQRVJfMyhyYWlzZV9leGNlcHRpb25fZW5kLCB2b2lkLCBl bnYsIGkzMiwgaTMyKQ0KPiA+ID4gwqBERUZfSEVMUEVSXzIocmFpc2VfZXhjZXB0aW9uLCB2 b2lkLCBlbnYsIGkzMikNCj4gPiA+IMKgREVGX0hFTFBFUl80KHR3LCB2b2lkLCBlbnYsIHRs LCB0bCwgaTMyKQ0KPiA+ID4gwqAjaWYgZGVmaW5lZChUQVJHRVRfUFBDNjQpDQo+ID4gPiBk aWZmIC0tZ2l0IGEvdGFyZ2V0LXBwYy9tZW1faGVscGVyLmMgYi90YXJnZXQtcHBjL21lbV9o ZWxwZXIuYw0KPiA+ID4gaW5kZXggZTRlZDM3Ny4uNWNlZTYyMCAxMDA2NDQNCj4gPiA+IC0t LSBhL3RhcmdldC1wcGMvbWVtX2hlbHBlci5jDQo+ID4gPiArKysgYi90YXJnZXQtcHBjL21l bV9oZWxwZXIuYw0KPiA+ID4gQEAgLTEwNyw5ICsxMDcsOSBAQCB2b2lkIGhlbHBlcl9sc3d4 KENQVVBQQ1N0YXRlICplbnYsDQo+ID4gPiB0YXJnZXRfdWxvbmcgYWRkciwgdWludDMyX3Qg cmVnLA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHVubGlrZWx5KChyYSAhPSAwICYm IGxzd19yZWdfaW5fcmFuZ2UocmVnLA0KPiA+ID4gbnVtX3VzZWRfcmVncywgcmEpKSB8fA0K PiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsc3df cmVnX2luX3JhbmdlKHJlZywgbnVtX3VzZWRfcmVncywgcmIpKSkNCj4gPiA+IHsNCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZW52LT5uaXAgKz0gNDvCoMKgwqDCoMKgLyog Q29tcGVuc2F0ZSB0aGUgIm5pcCAtIDQiIGZyb20NCj4gPiA+IGdlbl9sc3d4KCkgKi8NCj4g PiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBoZWxwZXJfcmFpc2VfZXhjZXB0aW9uX2Vy cihlbnYsDQo+ID4gPiBQT1dFUlBDX0VYQ1BfUFJPR1JBTSwNCj4gPiA+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBQT1dFUlBDX0VYQ1BfSU5WQUwgfA0KPiA+ID4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoFBPV0VSUENfRVhDUF9JTlZBTF9MU1dYKTsNCj4gPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqByYWlzZV9leGNlcHRpb25fZXJyKGVudiwgUE9XRVJQQ19FWENQ X1BST0dSQU0sDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFBPV0VSUENfRVhDUF9JTlZBTCB8DQo+ID4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoFBPV0VSUENfRVhDUF9JTlZBTF9MU1dYLA0KPiA+ID4gR0VUUEMoKSk7 DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB9IGVsc2Ugew0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBoZWxwZXJfbHN3KGVudiwgYWRkciwgeGVyX2JjLCByZWcpOw0KPiA+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgfQ0KPiA+ID4gZGlmZiAtLWdpdCBhL3RhcmdldC1wcGMv bWlzY19oZWxwZXIuYyBiL3RhcmdldC1wcGMvbWlzY19oZWxwZXIuYw0KPiA+ID4gaW5kZXgg Y2I1ZWJmNS4uNjY2MTY1MCAxMDA2NDQNCj4gPiA+IC0tLSBhL3RhcmdldC1wcGMvbWlzY19o ZWxwZXIuYw0KPiA+ID4gKysrIGIvdGFyZ2V0LXBwYy9taXNjX2hlbHBlci5jDQo+ID4gPiBA QCAtMzksNyArMzksNyBAQCB2b2lkIGhlbHBlcl9zdG9yZV9kdW1wX3NwcihDUFVQUENTdGF0 ZSAqZW52LA0KPiA+ID4gdWludDMyX3Qgc3BybikNCj4gPiA+IA0KPiA+ID4gwqAjaWZkZWYg VEFSR0VUX1BQQzY0DQo+ID4gPiDCoHN0YXRpYyB2b2lkIHJhaXNlX2Z1X2V4Y2VwdGlvbihD UFVQUENTdGF0ZSAqZW52LCB1aW50MzJfdCBiaXQsDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1aW50MzJf dCBzcHJuLCB1aW50MzJfdCBjYXVzZSkNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHVpbnQzMl90IHNwcm4s IHVpbnQzMl90IGNhdXNlLA0KPiA+ID4gdWludHB0cl90IHJldGFkZHIpDQo+ID4gPiDCoHsN Cj4gPiA+IMKgwqDCoMKgwqBxZW11X2xvZygiRmFjaWxpdHkgU1BSICVkIGlzIHVuYXZhaWxh YmxlIChTUFIgRlNDUjolZClcbiIsDQo+ID4gPiBzcHJuLCBiaXQpOw0KPiA+ID4gDQo+ID4g PiBAQCAtNDcsNyArNDcsNyBAQCBzdGF0aWMgdm9pZCByYWlzZV9mdV9leGNlcHRpb24oQ1BV UFBDU3RhdGUNCj4gPiA+ICplbnYsIHVpbnQzMl90IGJpdCwNCj4gPiA+IMKgwqDCoMKgwqBj YXVzZSAmPSBGU0NSX0lDX01BU0s7DQo+ID4gPiDCoMKgwqDCoMKgZW52LT5zcHJbU1BSX0ZT Q1JdIHw9ICh0YXJnZXRfdWxvbmcpY2F1c2UgPDwgRlNDUl9JQ19QT1M7DQo+ID4gPiANCj4g PiA+IC3CoMKgwqDCoGhlbHBlcl9yYWlzZV9leGNlcHRpb25fZXJyKGVudiwgUE9XRVJQQ19F WENQX0ZVLCAwKTsNCj4gPiA+ICvCoMKgwqDCoHJhaXNlX2V4Y2VwdGlvbl9lcnIoZW52LCBQ T1dFUlBDX0VYQ1BfRlUsIDAsIHJldGFkZHIpOw0KPiA+ID4gwqB9DQo+ID4gPiDCoCNlbmRp Zg0KPiA+ID4gDQo+ID4gPiBAQCAtNTksNyArNTksNyBAQCB2b2lkIGhlbHBlcl9mc2NyX2Zh Y2lsaXR5X2NoZWNrKENQVVBQQ1N0YXRlDQo+ID4gPiAqZW52LCB1aW50MzJfdCBiaXQsDQo+ ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqAvKiBGYWNpbGl0eSBpcyBlbmFibGVkLCBjb250aW51 ZSAqLw0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuOw0KPiA+ID4gwqDCoMKgwqDC oH0NCj4gPiA+IC3CoMKgwqDCoHJhaXNlX2Z1X2V4Y2VwdGlvbihlbnYsIGJpdCwgc3Bybiwg Y2F1c2UpOw0KPiA+ID4gK8KgwqDCoMKgcmFpc2VfZnVfZXhjZXB0aW9uKGVudiwgYml0LCBz cHJuLCBjYXVzZSwgR0VUUEMoKSk7DQo+ID4gPiDCoCNlbmRpZg0KPiA+ID4gwqB9DQo+ID4g PiANCj4gPiA+IEBAIC03MSw3ICs3MSw3IEBAIHZvaWQgaGVscGVyX21zcl9mYWNpbGl0eV9j aGVjayhDUFVQUENTdGF0ZQ0KPiA+ID4gKmVudiwgdWludDMyX3QgYml0LA0KPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgLyogRmFjaWxpdHkgaXMgZW5hYmxlZCwgY29udGludWUgKi8NCj4g PiA+IMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybjsNCj4gPiA+IMKgwqDCoMKgwqB9DQo+ID4g PiAtwqDCoMKgwqByYWlzZV9mdV9leGNlcHRpb24oZW52LCBiaXQsIHNwcm4sIGNhdXNlKTsN Cj4gPiA+ICvCoMKgwqDCoHJhaXNlX2Z1X2V4Y2VwdGlvbihlbnYsIGJpdCwgc3BybiwgY2F1 c2UsIEdFVFBDKCkpOw0KPiA+ID4gwqAjZW5kaWYNCj4gPiA+IMKgfQ0KPiA+ID4gDQo+ID4g PiBkaWZmIC0tZ2l0IGEvdGFyZ2V0LXBwYy9tbXUtaGFzaDY0LmMgYi90YXJnZXQtcHBjL21t dS1oYXNoNjQuYw0KPiA+ID4gaW5kZXggNWRlMTM1OC4uYTFiMjdiMCAxMDA2NDQNCj4gPiA+ IC0tLSBhL3RhcmdldC1wcGMvbW11LWhhc2g2NC5jDQo+ID4gPiArKysgYi90YXJnZXQtcHBj L21tdS1oYXNoNjQuYw0KPiA+ID4gQEAgLTI0MSw4ICsyNDEsOCBAQCB2b2lkIGhlbHBlcl9z dG9yZV9zbGIoQ1BVUFBDU3RhdGUgKmVudiwNCj4gPiA+IHRhcmdldF91bG9uZyByYiwgdGFy Z2V0X3Vsb25nDQo+ID4gcnMpDQo+ID4gPiANCj4gPiA+IMKgwqDCoMKgwqBQb3dlclBDQ1BV ICpjcHUgPSBwcGNfZW52X2dldF9jcHUoZW52KTsNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDC oGlmIChwcGNfc3RvcmVfc2xiKGNwdSwgcmIgJiAweGZmZiwgcmIgJiB+MHhmZmZVTEwsIHJz KSA8IDApDQo+ID4gPiB7DQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoGhlbHBlcl9yYWlzZV9l eGNlcHRpb25fZXJyKGVudiwgUE9XRVJQQ19FWENQX1BST0dSQU0sDQo+ID4gPiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoFBPV0VSUENfRVhDUF9JTlZBTCk7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDC oHJhaXNlX2V4Y2VwdGlvbl9lcnIoZW52LCBQT1dFUlBDX0VYQ1BfUFJPR1JBTSwNCj4gPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoFBPV0VSUENfRVhDUF9JTlZBTCwgR0VUUEMoKSk7DQo+ID4gPiDCoMKgwqDCoMKgfQ0K PiA+ID4gwqB9DQo+ID4gPiANCj4gPiA+IEBAIC0yNTIsOCArMjUyLDggQEAgdGFyZ2V0X3Vs b25nIGhlbHBlcl9sb2FkX3NsYl9lc2lkKENQVVBQQ1N0YXRlDQo+ID4gPiAqZW52LCB0YXJn ZXRfdWxvbmcgcmIpDQo+ID4gPiDCoMKgwqDCoMKgdGFyZ2V0X3Vsb25nIHJ0ID0gMDsNCj4g PiA+IA0KPiA+ID4gwqDCoMKgwqDCoGlmIChwcGNfbG9hZF9zbGJfZXNpZChjcHUsIHJiLCAm cnQpIDwgMCkgew0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqBoZWxwZXJfcmFpc2VfZXhjZXB0 aW9uX2VycihlbnYsIFBPV0VSUENfRVhDUF9QUk9HUkFNLA0KPiA+ID4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBQT1dFUlBDX0VYQ1BfSU5WQUwpOw0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqByYWlz ZV9leGNlcHRpb25fZXJyKGVudiwgUE9XRVJQQ19FWENQX1BST0dSQU0sDQo+ID4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBQ T1dFUlBDX0VYQ1BfSU5WQUwsIEdFVFBDKCkpOw0KPiA+ID4gwqDCoMKgwqDCoH0NCj4gPiA+ IMKgwqDCoMKgwqByZXR1cm4gcnQ7DQo+ID4gPiDCoH0NCj4gPiA+IEBAIC0yNzYsOCArMjc2 LDggQEAgdGFyZ2V0X3Vsb25nIGhlbHBlcl9sb2FkX3NsYl92c2lkKENQVVBQQ1N0YXRlDQo+ ID4gPiAqZW52LCB0YXJnZXRfdWxvbmcgcmIpDQo+ID4gPiDCoMKgwqDCoMKgdGFyZ2V0X3Vs b25nIHJ0ID0gMDsNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoGlmIChwcGNfbG9hZF9zbGJf dnNpZChjcHUsIHJiLCAmcnQpIDwgMCkgew0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqBoZWxw ZXJfcmFpc2VfZXhjZXB0aW9uX2VycihlbnYsIFBPV0VSUENfRVhDUF9QUk9HUkFNLA0KPiA+ ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBQT1dFUlBDX0VYQ1BfSU5WQUwpOw0KPiA+ID4gK8KgwqDC oMKgwqDCoMKgwqByYWlzZV9leGNlcHRpb25fZXJyKGVudiwgUE9XRVJQQ19FWENQX1BST0dS QU0sDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBQT1dFUlBDX0VYQ1BfSU5WQUwsIEdFVFBDKCkpOw0KPiA+ID4gwqDC oMKgwqDCoH0NCj4gPiA+IMKgwqDCoMKgwqByZXR1cm4gcnQ7DQo+ID4gPiDCoH0NCj4gPiA+ IGRpZmYgLS1naXQgYS90YXJnZXQtcHBjL21tdV9oZWxwZXIuYyBiL3RhcmdldC1wcGMvbW11 X2hlbHBlci5jDQo+ID4gPiBpbmRleCAzZWIzY2Q3Li43Y2Q5YzJjIDEwMDY0NA0KPiA+ID4g LS0tIGEvdGFyZ2V0LXBwYy9tbXVfaGVscGVyLmMNCj4gPiA+ICsrKyBiL3RhcmdldC1wcGMv bW11X2hlbHBlci5jDQo+ID4gPiBAQCAtMjU5OCw5ICsyNTk4LDkgQEAgdm9pZCBoZWxwZXJf Ym9va2UyMDZfdGxid2UoQ1BVUFBDU3RhdGUNCj4gPiA+ICplbnYpDQo+ID4gPiDCoMKgwqDC oMKgdGxiID0gYm9va2UyMDZfY3VyX3RsYihlbnYpOw0KPiA+ID4gDQo+ID4gPiDCoMKgwqDC oMKgaWYgKCF0bGIpIHsNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgaGVscGVyX3JhaXNlX2V4 Y2VwdGlvbl9lcnIoZW52LCBQT1dFUlBDX0VYQ1BfUFJPR1JBTSwNCj4gPiA+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgUE9XRVJQQ19FWENQX0lOVkFMIHwNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg UE9XRVJQQ19FWENQX0lOVkFMX0lOVkFMKTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgcmFp c2VfZXhjZXB0aW9uX2VycihlbnYsIFBPV0VSUENfRVhDUF9QUk9HUkFNLA0KPiA+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg UE9XRVJQQ19FWENQX0lOVkFMIHwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFBPV0VSUENfRVhDUF9JTlZBTF9JTlZB TCwgR0VUUEMoKSk7DQo+ID4gPiDCoMKgwqDCoMKgfQ0KPiA+ID4gDQo+ID4gPiDCoMKgwqDC oMKgLyogY2hlY2sgdGhhdCB3ZSBzdXBwb3J0IHRoZSB0YXJnZXRlZCBzaXplICovDQo+ID4g PiBAQCAtMjYwOCw5ICsyNjA4LDkgQEAgdm9pZCBoZWxwZXJfYm9va2UyMDZfdGxid2UoQ1BV UFBDU3RhdGUNCj4gPiA+ICplbnYpDQo+ID4gPiDCoMKgwqDCoMKgc2l6ZV9wcyA9IGJvb2tl MjA2X3RsYm5wcyhlbnYsIHRsYm4pOw0KPiA+ID4gwqDCoMKgwqDCoGlmICgoZW52LT5zcHJb U1BSX0JPT0tFX01BUzFdICYgTUFTMV9WQUxJRCkgJiYgKHRsYm5jZmcgJg0KPiA+ID4gVExC bkNGR19BVkFJTCkgJiYNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoCEoc2l6ZV9wcyAmICgx IDw8IHNpemVfdGxiKSkpIHsNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgaGVscGVyX3JhaXNl X2V4Y2VwdGlvbl9lcnIoZW52LCBQT1dFUlBDX0VYQ1BfUFJPR1JBTSwNCj4gPiA+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgUE9XRVJQQ19FWENQX0lOVkFMIHwNCj4gPiA+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgUE9XRVJQQ19FWENQX0lOVkFMX0lOVkFMKTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKg cmFpc2VfZXhjZXB0aW9uX2VycihlbnYsIFBPV0VSUENfRVhDUF9QUk9HUkFNLA0KPiA+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgUE9XRVJQQ19FWENQX0lOVkFMIHwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFBPV0VSUENfRVhDUF9JTlZBTF9J TlZBTCwgR0VUUEMoKSk7DQo+ID4gPiDCoMKgwqDCoMKgfQ0KPiA+ID4gDQo+ID4gPiDCoMKg wqDCoMKgaWYgKG1zcl9ncykgew0KPiA+ID4gQEAgLTI4OTIsMTAgKzI4OTIsNiBAQCB2b2lk IHRsYl9maWxsKENQVVN0YXRlICpjcywgdGFyZ2V0X3Vsb25nDQo+ID4gPiBhZGRyLCBNTVVB Y2Nlc3NUeXBlDQo+ID4gYWNjZXNzX3R5cGUsDQo+ID4gPiANCj4gPiA+IMKgwqDCoMKgwqDC oMKgwqDCoHJldCA9IGNwdV9wcGNfaGFuZGxlX21tdV9mYXVsdChlbnYsIGFkZHIsIGFjY2Vz c190eXBlLA0KPiA+ID4gbW11X2lkeCk7DQo+ID4gPiDCoMKgwqDCoMKgfQ0KPiA+ID4gwqDC oMKgwqDCoGlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsNCj4gPiA+IC3CoMKgwqDCoMKgwqDC oMKgaWYgKGxpa2VseShyZXRhZGRyKSkgew0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoC8qIG5vdyB3ZSBoYXZlIGEgcmVhbCBjcHUgZmF1bHQgKi8NCj4gPiA+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBjcHVfcmVzdG9yZV9zdGF0ZShjcywgcmV0YWRkcik7DQo+ID4g PiAtwqDCoMKgwqDCoMKgwqDCoH0NCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgaGVscGVyX3Jh aXNlX2V4Y2VwdGlvbl9lcnIoZW52LCBjcy0+ZXhjZXB0aW9uX2luZGV4LA0KPiA+ID4gZW52 LT5lcnJvcl9jb2RlKTsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgcmFpc2VfZXhjZXB0aW9u X2VycihlbnYsIGNzLT5leGNlcHRpb25faW5kZXgsIGVudi0NCj4gPiA+ID5lcnJvcl9jb2Rl LCByZXRhZGRyKTsNCj4gPiA+IMKgwqDCoMKgwqB9DQo+ID4gPiDCoH0NCj4gPiA+IGRpZmYg LS1naXQgYS90YXJnZXQtcHBjL3RpbWViYXNlX2hlbHBlci5jIGIvdGFyZ2V0LQ0KPiA+ID4g cHBjL3RpbWViYXNlX2hlbHBlci5jDQo+ID4gPiBpbmRleCBhMDdmYWE0Li5hZjMyOGNhIDEw MDY0NA0KPiA+ID4gLS0tIGEvdGFyZ2V0LXBwYy90aW1lYmFzZV9oZWxwZXIuYw0KPiA+ID4g KysrIGIvdGFyZ2V0LXBwYy90aW1lYmFzZV9oZWxwZXIuYw0KPiA+ID4gQEAgLTE5LDYgKzE5 LDcgQEANCj4gPiA+IMKgI2luY2x1ZGUgInFlbXUvb3NkZXAuaCINCj4gPiA+IMKgI2luY2x1 ZGUgImNwdS5oIg0KPiA+ID4gwqAjaW5jbHVkZSAiZXhlYy9oZWxwZXItcHJvdG8uaCINCj4g PiA+ICsjaW5jbHVkZSAiZXhlYy9leGVjLWFsbC5oIg0KPiA+ID4gwqAjaW5jbHVkZSAicWVt dS9sb2cuaCINCj4gPiA+IA0KPiA+ID4gwqAvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ID4gPiAqKioqKioqKioq KioqKi8NCj4gPiA+IEBAIC0xNDMsMTUgKzE0NCwxNSBAQCB0YXJnZXRfdWxvbmcgaGVscGVy X2xvYWRfZGNyKENQVVBQQ1N0YXRlDQo+ID4gPiAqZW52LCB0YXJnZXRfdWxvbmcgZGNybikN Cj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoGlmICh1bmxpa2VseShlbnYtPmRjcl9lbnYgPT0g TlVMTCkpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoHFlbXVfbG9nX21hc2soTE9HX0dV RVNUX0VSUk9SLCAiTm8gRENSIGVudmlyb25tZW50XG4iKTsNCj4gPiA+IC3CoMKgwqDCoMKg wqDCoMKgaGVscGVyX3JhaXNlX2V4Y2VwdGlvbl9lcnIoZW52LCBQT1dFUlBDX0VYQ1BfUFJP R1JBTSwNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgUE9XRVJQQ19FWENQX0lOVkFMIHwNCj4g PiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgUE9XRVJQQ19FWENQX0lOVkFMX0lOVkFMKTsNCj4gPiA+ ICvCoMKgwqDCoMKgwqDCoMKgcmFpc2VfZXhjZXB0aW9uX2VycihlbnYsIFBPV0VSUENfRVhD UF9QUk9HUkFNLA0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgUE9XRVJQQ19FWENQX0lOVkFMIHwNCj4gPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFBP V0VSUENfRVhDUF9JTlZBTF9JTlZBTCwgR0VUUEMoKSk7DQo+ID4gPiDCoMKgwqDCoMKgfSBl bHNlIGlmICh1bmxpa2VseShwcGNfZGNyX3JlYWQoZW52LT5kY3JfZW52LA0KPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCh1aW50MzJfdClkY3JuLCAmdmFsKSAhPQ0KPiA+ID4gMCkp IHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoHFlbXVfbG9nX21hc2soTE9HX0dVRVNUX0VS Uk9SLCAiRENSIHJlYWQgZXJyb3IgJWQNCj4gPiA+ICUwM3hcbiIsDQo+ID4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKHVpbnQzMl90KWRjcm4s ICh1aW50MzJfdClkY3JuKTsNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgaGVscGVyX3JhaXNl X2V4Y2VwdGlvbl9lcnIoZW52LCBQT1dFUlBDX0VYQ1BfUFJPR1JBTSwNCj4gPiA+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgUE9XRVJQQ19FWENQX0lOVkFMIHwNCj4gPiA+IFBPV0VSUENfRVhDUF9Q UklWX1JFRyk7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoHJhaXNlX2V4Y2VwdGlvbl9lcnIo ZW52LCBQT1dFUlBDX0VYQ1BfUFJPR1JBTSwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFBPV0VSUENfRVhDUF9JTlZB TCB8DQo+ID4gPiBQT1dFUlBDX0VYQ1BfUFJJVl9SRUcsIEdFVFBDKCkpOw0KPiA+ID4gwqDC oMKgwqDCoH0NCj4gPiA+IMKgwqDCoMKgwqByZXR1cm4gdmFsOw0KPiA+ID4gwqB9DQo+ID4g PiBAQCAtMTYwLDE0ICsxNjEsMTQgQEAgdm9pZCBoZWxwZXJfc3RvcmVfZGNyKENQVVBQQ1N0 YXRlICplbnYsDQo+ID4gPiB0YXJnZXRfdWxvbmcgZGNybiwNCj4gPiB0YXJnZXRfdWxvbmcg dmFsKQ0KPiA+ID4gDQo+ID4gPiDCoHsNCj4gPiA+IMKgwqDCoMKgwqBpZiAodW5saWtlbHko ZW52LT5kY3JfZW52ID09IE5VTEwpKSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBxZW11 X2xvZ19tYXNrKExPR19HVUVTVF9FUlJPUiwgIk5vIERDUiBlbnZpcm9ubWVudFxuIik7DQo+ ID4gPiAtwqDCoMKgwqDCoMKgwqDCoGhlbHBlcl9yYWlzZV9leGNlcHRpb25fZXJyKGVudiwg UE9XRVJQQ19FWENQX1BST0dSQU0sDQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFBPV0VSUENf RVhDUF9JTlZBTCB8DQo+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFBPV0VSUENfRVhDUF9JTlZB TF9JTlZBTCk7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoHJhaXNlX2V4Y2VwdGlvbl9lcnIo ZW52LCBQT1dFUlBDX0VYQ1BfUFJPR1JBTSwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFBPV0VSUENfRVhDUF9JTlZB TCB8DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBQT1dFUlBDX0VYQ1BfSU5WQUxfSU5WQUwsIEdFVFBDKCkpOw0KPiA+ ID4gwqDCoMKgwqDCoH0gZWxzZSBpZiAodW5saWtlbHkocHBjX2Rjcl93cml0ZShlbnYtPmRj cl9lbnYsDQo+ID4gPiAodWludDMyX3QpZGNybiwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCh1aW50MzJfdCl2YWwpICE9IDApKSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKg wqBxZW11X2xvZ19tYXNrKExPR19HVUVTVF9FUlJPUiwgIkRDUiB3cml0ZSBlcnJvciAlZA0K PiA+ID4gJTAzeFxuIiwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAodWludDMyX3QpZGNybiwgKHVpbnQzMl90KWRjcm4pOw0KPiA+ID4g LcKgwqDCoMKgwqDCoMKgwqBoZWxwZXJfcmFpc2VfZXhjZXB0aW9uX2VycihlbnYsIFBPV0VS UENfRVhDUF9QUk9HUkFNLA0KPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBQT1dFUlBDX0VYQ1Bf SU5WQUwgfA0KPiA+ID4gUE9XRVJQQ19FWENQX1BSSVZfUkVHKTsNCj4gPiA+ICvCoMKgwqDC oMKgwqDCoMKgcmFpc2VfZXhjZXB0aW9uX2VycihlbnYsIFBPV0VSUENfRVhDUF9QUk9HUkFN LA0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgUE9XRVJQQ19FWENQX0lOVkFMIHwNCj4gPiA+IFBPV0VSUENfRVhDUF9Q UklWX1JFRywgR0VUUEMoKSk7DQo+ID4gPiDCoMKgwqDCoMKgfQ0KPiA+ID4gwqB9DQo+ID4g PiBkaWZmIC0tZ2l0IGEvdGFyZ2V0LXBwYy90cmFuc2xhdGUuYyBiL3RhcmdldC1wcGMvdHJh bnNsYXRlLmMNCj4gPiA+IGluZGV4IDkyMDMwYjYuLjBlMTY1NzggMTAwNjQ0DQo+ID4gPiAt LS0gYS90YXJnZXQtcHBjL3RyYW5zbGF0ZS5jDQo+ID4gPiArKysgYi90YXJnZXQtcHBjL3Ry YW5zbGF0ZS5jDQo+ID4gPiBAQCAtMjkyLDcgKzI5Miw3IEBAIHN0YXRpYyB2b2lkIGdlbl9l eGNlcHRpb25fZXJyKERpc2FzQ29udGV4dA0KPiA+ID4gKmN0eCwgdWludDMyX3QgZXhjcCwg dWludDMyX3QNCj4gPiBlcnJvcikNCj4gPiA+IA0KPiA+ID4gwqDCoMKgwqDCoH0NCj4gPiA+ IMKgwqDCoMKgwqB0MCA9IHRjZ19jb25zdF9pMzIoZXhjcCk7DQo+ID4gPiDCoMKgwqDCoMKg dDEgPSB0Y2dfY29uc3RfaTMyKGVycm9yKTsNCj4gPiA+IC3CoMKgwqDCoGdlbl9oZWxwZXJf cmFpc2VfZXhjZXB0aW9uX2VycihjcHVfZW52LCB0MCwgdDEpOw0KPiA+ID4gK8KgwqDCoMKg Z2VuX2hlbHBlcl9yYWlzZV9leGNlcHRpb25fZW5kKGNwdV9lbnYsIHQwLCB0MSk7DQo+ID4g PiDCoMKgwqDCoMKgdGNnX3RlbXBfZnJlZV9pMzIodDApOw0KPiA+ID4gwqDCoMKgwqDCoHRj Z190ZW1wX2ZyZWVfaTMyKHQxKTsNCj4gPiA+IMKgwqDCoMKgwqBjdHgtPmV4Y2VwdGlvbiA9 IChleGNwKTsNCj4gPiA+IEBAIC0zMDAsMTQgKzMwMCw3IEBAIHN0YXRpYyB2b2lkIGdlbl9l eGNlcHRpb25fZXJyKERpc2FzQ29udGV4dA0KPiA+ID4gKmN0eCwgdWludDMyX3QgZXhjcCwN Cj4gPiB1aW50MzJfdCBlcnJvcikNCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiDCoHN0YXRpYyB2 b2lkIGdlbl9leGNlcHRpb24oRGlzYXNDb250ZXh0ICpjdHgsIHVpbnQzMl90IGV4Y3ApDQo+ ID4gPiDCoHsNCj4gPiA+IC3CoMKgwqDCoFRDR3ZfaTMyIHQwOw0KPiA+ID4gLcKgwqDCoMKg aWYgKGN0eC0+ZXhjZXB0aW9uID09IFBPV0VSUENfRVhDUF9OT05FKSB7DQo+ID4gPiAtwqDC oMKgwqDCoMKgwqDCoGdlbl91cGRhdGVfbmlwKGN0eCwgY3R4LT5uaXApOw0KPiA+ID4gLcKg wqDCoMKgfQ0KPiA+ID4gLcKgwqDCoMKgdDAgPSB0Y2dfY29uc3RfaTMyKGV4Y3ApOw0KPiA+ ID4gLcKgwqDCoMKgZ2VuX2hlbHBlcl9yYWlzZV9leGNlcHRpb24oY3B1X2VudiwgdDApOw0K PiA+ID4gLcKgwqDCoMKgdGNnX3RlbXBfZnJlZV9pMzIodDApOw0KPiA+ID4gLcKgwqDCoMKg Y3R4LT5leGNlcHRpb24gPSAoZXhjcCk7DQo+ID4gPiArwqDCoMKgwqBnZW5fZXhjZXB0aW9u X2VycihjdHgsIGV4Y3AsIDApOw0KPiA+ID4gwqB9DQo+ID4gPiANCj4gPiA+IMKgc3RhdGlj IHZvaWQgZ2VuX2RlYnVnX2V4Y2VwdGlvbihEaXNhc0NvbnRleHQgKmN0eCkNCj4gPiA+IEBA IC0yMTQ5LDggKzIxNDIsNiBAQCBzdGF0aWMgdm9pZCBnZW5fZiMjbmFtZShEaXNhc0NvbnRl eHQgKmN0eCkNCj4gPiBcDQo+ID4gPiANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoGdlbl9l eGNlcHRpb24oY3R4LA0KPiA+ID4gUE9XRVJQQ19FWENQX0ZQVSk7wqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0K PiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgXA0KPiA+ID4gwqDCoMKgwqDCoH3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gLcKgwqDCoMKgLyogTklQIGNhbm5vdCBiZSByZXN0 b3JlZCBpZiB0aGUgbWVtb3J5IGV4Y2VwdGlvbiBjb21lcyBmcm9tDQo+ID4gPiBhbiBoZWxw ZXIgKi8gXA0KPiA+ID4gLcKgwqDCoMKgZ2VuX3VwZGF0ZV9uaXAoY3R4LCBjdHgtPm5pcCAt DQo+ID4gPiA0KTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKg wqBnZW5fcmVzZXRfZnBzdGF0dXMoKTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgZ2VuX2hl bHBlcl9mIyNvcChjcHVfZnByW3JEKGN0eC0+b3Bjb2RlKV0sDQo+ID4gPiBjcHVfZW52LMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNwdV9mcHJbckEo Y3R4LQ0KPiA+ID4gPm9wY29kZSldLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiBAQCAtMjE3OCw4ICsy MTY5LDYgQEAgc3RhdGljIHZvaWQgZ2VuX2YjI25hbWUoRGlzYXNDb250ZXh0ICpjdHgpDQo+ ID4gXA0KPiA+ID4gDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBnZW5fZXhjZXB0aW9uKGN0 eCwNCj4gPiA+IFBPV0VSUENfRVhDUF9GUFUpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoHJldHVybjvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+ IMKgwqDCoMKgwqB9wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoFwNCj4gPiA+IC3CoMKgwqDCoC8qIE5JUCBjYW5ub3QgYmUgcmVzdG9yZWQgaWYgdGhl IG1lbW9yeSBleGNlcHRpb24gY29tZXMgZnJvbQ0KPiA+ID4gYW4gaGVscGVyICovIFwNCj4g PiA+IC3CoMKgwqDCoGdlbl91cGRhdGVfbmlwKGN0eCwgY3R4LT5uaXAgLQ0KPiA+ID4gNCk7 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgZ2VuX3Jlc2V0 X2Zwc3RhdHVzKCk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoGdlbl9oZWxwZXJfZiMjb3Ao Y3B1X2ZwcltyRChjdHgtPm9wY29kZSldLA0KPiA+ID4gY3B1X2VudizCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjcHVfZnByW3JBKGN0eC0NCj4gPiA+ ID5vcGNvZGUpXSzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gQEAgLTIyMDYsOCArMjE5NSw2IEBAIHN0 YXRpYyB2b2lkIGdlbl9mIyNuYW1lKERpc2FzQ29udGV4dCAqY3R4KQ0KPiA+IFwNCj4gPiA+ IA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgZ2VuX2V4Y2VwdGlvbihjdHgsDQo+ID4gPiBQ T1dFUlBDX0VYQ1BfRlBVKTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKg wqByZXR1cm47wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAN Cj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKg fcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4g PiAtwqDCoMKgwqAvKiBOSVAgY2Fubm90IGJlIHJlc3RvcmVkIGlmIHRoZSBtZW1vcnkgZXhj ZXB0aW9uIGNvbWVzIGZyb20NCj4gPiA+IGFuIGhlbHBlciAqLyBcDQo+ID4gPiAtwqDCoMKg wqBnZW5fdXBkYXRlX25pcChjdHgsIGN0eC0+bmlwIC0NCj4gPiA+IDQpO8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoGdlbl9yZXNldF9mcHN0YXR1cygp O8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqBnZW5faGVscGVyX2YjI29wKGNwdV9mcHJbckQo Y3R4LT5vcGNvZGUpXSwNCj4gPiA+IGNwdV9lbnYswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgY3B1X2ZwcltyQShjdHgtDQo+ID4gPiA+b3Bjb2RlKV0s wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoFwNCj4gPiA+IEBAIC0yMjM0LDggKzIyMjEsNiBAQCBzdGF0aWMgdm9pZCBn ZW5fZiMjbmFtZShEaXNhc0NvbnRleHQgKmN0eCkNCj4gPiBcDQo+ID4gPiANCj4gPiA+IMKg wqDCoMKgwqDCoMKgwqDCoGdlbl9leGNlcHRpb24oY3R4LA0KPiA+ID4gUE9XRVJQQ19FWENQ X0ZQVSk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuO8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoH3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gLcKgwqDCoMKg LyogTklQIGNhbm5vdCBiZSByZXN0b3JlZCBpZiB0aGUgbWVtb3J5IGV4Y2VwdGlvbiBjb21l cyBmcm9tDQo+ID4gPiBhbiBoZWxwZXIgKi8gXA0KPiA+ID4gLcKgwqDCoMKgZ2VuX3VwZGF0 ZV9uaXAoY3R4LCBjdHgtPm5pcCAtDQo+ID4gPiA0KTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoFwNCj4gPiA+IMKgwqDCoMKgwqBnZW5fcmVzZXRfZnBzdGF0dXMoKTvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ ID4gPiDCoMKgwqDCoMKgZ2VuX2hlbHBlcl9mIyNuYW1lKGNwdV9mcHJbckQoY3R4LT5vcGNv ZGUpXSwNCj4gPiA+IGNwdV9lbnYswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgY3B1X2ZwcltyQihjdHgtDQo+ID4gPiA+b3Bjb2RlKV0pO8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ ID4gPiBAQCAtMjI1NCw4ICsyMjM5LDYgQEAgc3RhdGljIHZvaWQgZ2VuX2YjI25hbWUoRGlz YXNDb250ZXh0ICpjdHgpDQo+ID4gXA0KPiA+ID4gDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKg wqBnZW5fZXhjZXB0aW9uKGN0eCwNCj4gPiA+IFBPV0VSUENfRVhDUF9GUFUpO8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybjvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqB9wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoA0KPiA+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IC3CoMKgwqDCoC8qIE5JUCBjYW5ub3Qg YmUgcmVzdG9yZWQgaWYgdGhlIG1lbW9yeSBleGNlcHRpb24gY29tZXMgZnJvbQ0KPiA+ID4g YW4gaGVscGVyICovIFwNCj4gPiA+IC3CoMKgwqDCoGdlbl91cGRhdGVfbmlwKGN0eCwgY3R4 LT5uaXAgLQ0KPiA+ID4gNCk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDC oMKgwqDCoMKgZ2VuX3Jlc2V0X2Zwc3RhdHVzKCk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDC oGdlbl9oZWxwZXJfZiMjbmFtZShjcHVfZnByW3JEKGN0eC0+b3Bjb2RlKV0sDQo+ID4gPiBj cHVfZW52LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4g PiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNw dV9mcHJbckIoY3R4LQ0KPiA+ID4gPm9wY29kZSldKTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gQEAgLTIyOTAs OCArMjI3Myw2IEBAIHN0YXRpYyB2b2lkIGdlbl9mcnNxcnRlcyhEaXNhc0NvbnRleHQgKmN0 eCkNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoGdlbl9leGNlcHRpb24oY3R4LCBQT1dFUlBD X0VYQ1BfRlBVKTsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybjsNCj4gPiA+IMKg wqDCoMKgwqB9DQo+ID4gPiAtwqDCoMKgwqAvKiBOSVAgY2Fubm90IGJlIHJlc3RvcmVkIGlm IHRoZSBtZW1vcnkgZXhjZXB0aW9uIGNvbWVzIGZyb20NCj4gPiA+IGFuIGhlbHBlciAqLw0K PiA+ID4gLcKgwqDCoMKgZ2VuX3VwZGF0ZV9uaXAoY3R4LCBjdHgtPm5pcCAtIDQpOw0KPiA+ ID4gwqDCoMKgwqDCoGdlbl9yZXNldF9mcHN0YXR1cygpOw0KPiA+ID4gwqDCoMKgwqDCoGdl bl9oZWxwZXJfZnJzcXJ0ZShjcHVfZnByW3JEKGN0eC0+b3Bjb2RlKV0sIGNwdV9lbnYsDQo+ ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBj cHVfZnByW3JCKGN0eC0+b3Bjb2RlKV0pOw0KPiA+ID4gQEAgLTIzMTYsOCArMjI5Nyw2IEBA IHN0YXRpYyB2b2lkIGdlbl9mc3FydChEaXNhc0NvbnRleHQgKmN0eCkNCj4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoGdlbl9leGNlcHRpb24oY3R4LCBQT1dFUlBDX0VYQ1BfRlBVKTsNCj4g PiA+IMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybjsNCj4gPiA+IMKgwqDCoMKgwqB9DQo+ID4g PiAtwqDCoMKgwqAvKiBOSVAgY2Fubm90IGJlIHJlc3RvcmVkIGlmIHRoZSBtZW1vcnkgZXhj ZXB0aW9uIGNvbWVzIGZyb20NCj4gPiA+IGFuIGhlbHBlciAqLw0KPiA+ID4gLcKgwqDCoMKg Z2VuX3VwZGF0ZV9uaXAoY3R4LCBjdHgtPm5pcCAtIDQpOw0KPiA+ID4gwqDCoMKgwqDCoGdl bl9yZXNldF9mcHN0YXR1cygpOw0KPiA+ID4gwqDCoMKgwqDCoGdlbl9oZWxwZXJfZnNxcnQo Y3B1X2ZwcltyRChjdHgtPm9wY29kZSldLCBjcHVfZW52LA0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjcHVfZnByW3JCKGN0eC0+b3Bjb2Rl KV0pOw0KPiA+ID4gQEAgLTIzMzMsOCArMjMxMiw2IEBAIHN0YXRpYyB2b2lkIGdlbl9mc3Fy dHMoRGlzYXNDb250ZXh0ICpjdHgpDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBnZW5fZXhj ZXB0aW9uKGN0eCwgUE9XRVJQQ19FWENQX0ZQVSk7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKg wqByZXR1cm47DQo+ID4gPiDCoMKgwqDCoMKgfQ0KPiA+ID4gLcKgwqDCoMKgLyogTklQIGNh bm5vdCBiZSByZXN0b3JlZCBpZiB0aGUgbWVtb3J5IGV4Y2VwdGlvbiBjb21lcyBmcm9tDQo+ ID4gPiBhbiBoZWxwZXIgKi8NCj4gPiA+IC3CoMKgwqDCoGdlbl91cGRhdGVfbmlwKGN0eCwg Y3R4LT5uaXAgLSA0KTsNCj4gPiA+IMKgwqDCoMKgwqBnZW5fcmVzZXRfZnBzdGF0dXMoKTsN Cj4gPiA+IMKgwqDCoMKgwqBnZW5faGVscGVyX2ZzcXJ0KGNwdV9mcHJbckQoY3R4LT5vcGNv ZGUpXSwgY3B1X2VudiwNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgY3B1X2ZwcltyQihjdHgtPm9wY29kZSldKTsNCj4gPiA+IEBAIC0yNDI0 LDggKzI0MDEsNiBAQCBzdGF0aWMgdm9pZCBnZW5fZmNtcG8oRGlzYXNDb250ZXh0ICpjdHgp DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBnZW5fZXhjZXB0aW9uKGN0eCwgUE9XRVJQQ19F WENQX0ZQVSk7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47DQo+ID4gPiDCoMKg wqDCoMKgfQ0KPiA+ID4gLcKgwqDCoMKgLyogTklQIGNhbm5vdCBiZSByZXN0b3JlZCBpZiB0 aGUgbWVtb3J5IGV4Y2VwdGlvbiBjb21lcyBmcm9tDQo+ID4gPiBhbiBoZWxwZXIgKi8NCj4g PiA+IC3CoMKgwqDCoGdlbl91cGRhdGVfbmlwKGN0eCwgY3R4LT5uaXAgLSA0KTsNCj4gPiA+ IMKgwqDCoMKgwqBnZW5fcmVzZXRfZnBzdGF0dXMoKTsNCj4gPiA+IMKgwqDCoMKgwqBjcmYg PSB0Y2dfY29uc3RfaTMyKGNyZkQoY3R4LT5vcGNvZGUpKTsNCj4gPiA+IMKgwqDCoMKgwqBn ZW5faGVscGVyX2ZjbXBvKGNwdV9lbnYsIGNwdV9mcHJbckEoY3R4LT5vcGNvZGUpXSwNCj4g PiA+IEBAIC0yNDQyLDggKzI0MTcsNiBAQCBzdGF0aWMgdm9pZCBnZW5fZmNtcHUoRGlzYXND b250ZXh0ICpjdHgpDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBnZW5fZXhjZXB0aW9uKGN0 eCwgUE9XRVJQQ19FWENQX0ZQVSk7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47 DQo+ID4gPiDCoMKgwqDCoMKgfQ0KPiA+ID4gLcKgwqDCoMKgLyogTklQIGNhbm5vdCBiZSBy ZXN0b3JlZCBpZiB0aGUgbWVtb3J5IGV4Y2VwdGlvbiBjb21lcyBmcm9tDQo+ID4gPiBhbiBo ZWxwZXIgKi8NCj4gPiA+IC3CoMKgwqDCoGdlbl91cGRhdGVfbmlwKGN0eCwgY3R4LT5uaXAg LSA0KTsNCj4gPiA+IMKgwqDCoMKgwqBnZW5fcmVzZXRfZnBzdGF0dXMoKTsNCj4gPiA+IMKg wqDCoMKgwqBjcmYgPSB0Y2dfY29uc3RfaTMyKGNyZkQoY3R4LT5vcGNvZGUpKTsNCj4gPiA+ IMKgwqDCoMKgwqBnZW5faGVscGVyX2ZjbXB1KGNwdV9lbnYsIGNwdV9mcHJbckEoY3R4LT5v cGNvZGUpXSwNCj4gPiA+IEBAIC0yNjEzLDggKzI1ODYsNiBAQCBzdGF0aWMgdm9pZCBnZW5f bXRmc2IwKERpc2FzQ29udGV4dCAqY3R4KQ0KPiA+ID4gwqDCoMKgwqDCoGdlbl9yZXNldF9m cHN0YXR1cygpOw0KPiA+ID4gwqDCoMKgwqDCoGlmIChsaWtlbHkoY3JiICE9IEZQU0NSX0ZF WCAmJiBjcmIgIT0gRlBTQ1JfVlgpKSB7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBUQ0d2 X2kzMiB0MDsNCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgLyogTklQIGNhbm5vdCBiZSByZXN0 b3JlZCBpZiB0aGUgbWVtb3J5IGV4Y2VwdGlvbiBjb21lcw0KPiA+ID4gZnJvbSBhbiBoZWxw ZXIgKi8NCj4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgZ2VuX3VwZGF0ZV9uaXAoY3R4LCBjdHgt Pm5pcCAtIDQpOw0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgdDAgPSB0Y2dfY29uc3RfaTMy KGNyYik7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBnZW5faGVscGVyX2Zwc2NyX2NscmJp dChjcHVfZW52LCB0MCk7DQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB0Y2dfdGVtcF9mcmVl X2kzMih0MCk7DQo+ID4gPiBAQCAtMjYzOSw4ICsyNjEwLDYgQEAgc3RhdGljIHZvaWQgZ2Vu X210ZnNiMShEaXNhc0NvbnRleHQgKmN0eCkNCj4gPiA+IMKgwqDCoMKgwqAvKiBYWFg6IHdl IHByZXRlbmQgd2UgY2FuIG9ubHkgZG8gSUVFRSBmbG9hdGluZy1wb2ludA0KPiA+ID4gY29t cHV0YXRpb25zICovDQo+ID4gPiDCoMKgwqDCoMKgaWYgKGxpa2VseShjcmIgIT0gRlBTQ1Jf RkVYICYmIGNyYiAhPSBGUFNDUl9WWCAmJiBjcmIgIT0NCj4gPiA+IEZQU0NSX05JKSkgew0K PiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgVENHdl9pMzIgdDA7DQo+ID4gPiAtwqDCoMKgwqDC oMKgwqDCoC8qIE5JUCBjYW5ub3QgYmUgcmVzdG9yZWQgaWYgdGhlIG1lbW9yeSBleGNlcHRp b24gY29tZXMNCj4gPiA+IGZyb20gYW4gaGVscGVyICovDQo+ID4gPiAtwqDCoMKgwqDCoMKg wqDCoGdlbl91cGRhdGVfbmlwKGN0eCwgY3R4LT5uaXAgLSA0KTsNCj4gPiA+IMKgwqDCoMKg wqDCoMKgwqDCoHQwID0gdGNnX2NvbnN0X2kzMihjcmIpOw0KPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgZ2VuX2hlbHBlcl9mcHNjcl9zZXRiaXQoY3B1X2VudiwgdDApOw0KPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgdGNnX3RlbXBfZnJlZV9pMzIodDApOw0KPiA+ID4gQEAgLTI2NzAs OCArMjYzOSw2IEBAIHN0YXRpYyB2b2lkIGdlbl9tdGZzZihEaXNhc0NvbnRleHQgKmN0eCkN Cj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoGdlbl9pbnZhbF9leGNlcHRpb24oY3R4LCBQT1dF UlBDX0VYQ1BfSU5WQUxfSU5WQUwpOw0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJu Ow0KPiA+ID4gwqDCoMKgwqDCoH0NCj4gPiA+IC3CoMKgwqDCoC8qIE5JUCBjYW5ub3QgYmUg cmVzdG9yZWQgaWYgdGhlIG1lbW9yeSBleGNlcHRpb24gY29tZXMgZnJvbQ0KPiA+ID4gYW4g aGVscGVyICovDQo+ID4gPiAtwqDCoMKgwqBnZW5fdXBkYXRlX25pcChjdHgsIGN0eC0+bmlw IC0gNCk7DQo+ID4gPiDCoMKgwqDCoMKgZ2VuX3Jlc2V0X2Zwc3RhdHVzKCk7DQo+ID4gPiDC oMKgwqDCoMKgaWYgKGwpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoHQwID0gdGNnX2Nv bnN0X2kzMigoY3R4LT5pbnNuc19mbGFnczIgJiBQUEMyX0lTQTIwNSkgPw0KPiA+ID4gMHhm ZmZmIDogMHhmZik7DQo+ID4gPiBAQCAtMjcwNiw4ICsyNjczLDYgQEAgc3RhdGljIHZvaWQg Z2VuX210ZnNmaShEaXNhc0NvbnRleHQgKmN0eCkNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDC oHJldHVybjsNCj4gPiA+IMKgwqDCoMKgwqB9DQo+ID4gPiDCoMKgwqDCoMKgc2ggPSAoOCAq IHcpICsgNyAtIGJmOw0KPiA+ID4gLcKgwqDCoMKgLyogTklQIGNhbm5vdCBiZSByZXN0b3Jl ZCBpZiB0aGUgbWVtb3J5IGV4Y2VwdGlvbiBjb21lcyBmcm9tDQo+ID4gPiBhbiBoZWxwZXIg Ki8NCj4gPiA+IC3CoMKgwqDCoGdlbl91cGRhdGVfbmlwKGN0eCwgY3R4LT5uaXAgLSA0KTsN Cj4gPiA+IMKgwqDCoMKgwqBnZW5fcmVzZXRfZnBzdGF0dXMoKTsNCj4gPiA+IMKgwqDCoMKg wqB0MCA9IHRjZ19jb25zdF9pNjQoKCh1aW50NjRfdClGUElNTShjdHgtPm9wY29kZSkpIDw8 ICg0ICoNCj4gPiA+IHNoKSk7DQo+ID4gPiDCoMKgwqDCoMKgdDEgPSB0Y2dfY29uc3RfaTMy KDEgPDwgc2gpOw0KPiA+ID4gQEAgLTI3OTAsOCArMjc1NSw2IEBAIHN0YXRpYyBpbmxpbmUg dm9pZA0KPiA+ID4gZ2VuX2NoZWNrX2FsaWduKERpc2FzQ29udGV4dCAqY3R4LCBUQ0d2IEVB LCBpbnQNCj4gPiBtYXNrKQ0KPiA+ID4gDQo+ID4gPiDCoMKgwqDCoMKgVENHTGFiZWwgKmwx ID0gZ2VuX25ld19sYWJlbCgpOw0KPiA+ID4gwqDCoMKgwqDCoFRDR3YgdDAgPSB0Y2dfdGVt cF9uZXcoKTsNCj4gPiA+IMKgwqDCoMKgwqBUQ0d2X2kzMiB0MSwgdDI7DQo+ID4gPiAtwqDC oMKgwqAvKiBOSVAgY2Fubm90IGJlIHJlc3RvcmVkIGlmIHRoZSBtZW1vcnkgZXhjZXB0aW9u IGNvbWVzIGZyb20NCj4gPiA+IGFuIGhlbHBlciAqLw0KPiA+ID4gLcKgwqDCoMKgZ2VuX3Vw ZGF0ZV9uaXAoY3R4LCBjdHgtPm5pcCAtIDQpOw0KPiA+ID4gwqDCoMKgwqDCoHRjZ19nZW5f YW5kaV90bCh0MCwgRUEsIG1hc2spOw0KPiA+ID4gwqDCoMKgwqDCoHRjZ19nZW5fYnJjb25k aV90bChUQ0dfQ09ORF9FUSwgdDAsIDAsIGwxKTsNCj4gPiA+IMKgwqDCoMKgwqB0MSA9IHRj Z19jb25zdF9pMzIoUE9XRVJQQ19FWENQX0FMSUdOKTsNCj4gPiA+IEBAIC0zMjYxLDggKzMy MjQsNiBAQCBzdGF0aWMgdm9pZCBnZW5fbG13KERpc2FzQ29udGV4dCAqY3R4KQ0KPiA+ID4g wqDCoMKgwqDCoFRDR3YgdDA7DQo+ID4gPiDCoMKgwqDCoMKgVENHdl9pMzIgdDE7DQo+ID4g PiDCoMKgwqDCoMKgZ2VuX3NldF9hY2Nlc3NfdHlwZShjdHgsIEFDQ0VTU19JTlQpOw0KPiA+ ID4gLcKgwqDCoMKgLyogTklQIGNhbm5vdCBiZSByZXN0b3JlZCBpZiB0aGUgbWVtb3J5IGV4 Y2VwdGlvbiBjb21lcyBmcm9tDQo+ID4gPiBhbiBoZWxwZXIgKi8NCj4gPiA+IC3CoMKgwqDC oGdlbl91cGRhdGVfbmlwKGN0eCwgY3R4LT5uaXAgLSA0KTsNCj4gPiA+IMKgwqDCoMKgwqB0 MCA9IHRjZ190ZW1wX25ldygpOw0KPiA+ID4gwqDCoMKgwqDCoHQxID0gdGNnX2NvbnN0X2kz MihyRChjdHgtPm9wY29kZSkpOw0KPiA+ID4gwqDCoMKgwqDCoGdlbl9hZGRyX2ltbV9pbmRl eChjdHgsIHQwLCAwKTsNCj4gPiA+IEBAIC0zMjc3LDggKzMyMzgsNiBAQCBzdGF0aWMgdm9p ZCBnZW5fc3RtdyhEaXNhc0NvbnRleHQgKmN0eCkNCj4gPiA+IMKgwqDCoMKgwqBUQ0d2IHQw Ow0KPiA+ID4gwqDCoMKgwqDCoFRDR3ZfaTMyIHQxOw0KPiA+ID4gwqDCoMKgwqDCoGdlbl9z ZXRfYWNjZXNzX3R5cGUoY3R4LCBBQ0NFU1NfSU5UKTsNCj4gPiA+IC3CoMKgwqDCoC8qIE5J UCBjYW5ub3QgYmUgcmVzdG9yZWQgaWYgdGhlIG1lbW9yeSBleGNlcHRpb24gY29tZXMgZnJv bQ0KPiA+ID4gYW4gaGVscGVyICovDQo+ID4gPiAtwqDCoMKgwqBnZW5fdXBkYXRlX25pcChj dHgsIGN0eC0+bmlwIC0gNCk7DQo+ID4gPiDCoMKgwqDCoMKgdDAgPSB0Y2dfdGVtcF9uZXco KTsNCj4gPiA+IMKgwqDCoMKgwqB0MSA9IHRjZ19jb25zdF9pMzIoclMoY3R4LT5vcGNvZGUp KTsNCj4gPiA+IMKgwqDCoMKgwqBnZW5fYWRkcl9pbW1faW5kZXgoY3R4LCB0MCwgMCk7DQo+ ID4gPiBAQCAtMzMxMiw4ICszMjcxLDYgQEAgc3RhdGljIHZvaWQgZ2VuX2xzd2koRGlzYXND b250ZXh0ICpjdHgpDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47DQo+ID4gPiDC oMKgwqDCoMKgfQ0KPiA+ID4gwqDCoMKgwqDCoGdlbl9zZXRfYWNjZXNzX3R5cGUoY3R4LCBB Q0NFU1NfSU5UKTsNCj4gPiA+IC3CoMKgwqDCoC8qIE5JUCBjYW5ub3QgYmUgcmVzdG9yZWQg aWYgdGhlIG1lbW9yeSBleGNlcHRpb24gY29tZXMgZnJvbQ0KPiA+ID4gYW4gaGVscGVyICov DQo+ID4gPiAtwqDCoMKgwqBnZW5fdXBkYXRlX25pcChjdHgsIGN0eC0+bmlwIC0gNCk7DQo+ ID4gPiDCoMKgwqDCoMKgdDAgPSB0Y2dfdGVtcF9uZXcoKTsNCj4gPiA+IMKgwqDCoMKgwqBn ZW5fYWRkcl9yZWdpc3RlcihjdHgsIHQwKTsNCj4gPiA+IMKgwqDCoMKgwqB0MSA9IHRjZ19j b25zdF9pMzIobmIpOw0KPiA+ID4gQEAgLTMzMzAsOCArMzI4Nyw2IEBAIHN0YXRpYyB2b2lk IGdlbl9sc3d4KERpc2FzQ29udGV4dCAqY3R4KQ0KPiA+ID4gwqDCoMKgwqDCoFRDR3YgdDA7 DQo+ID4gPiDCoMKgwqDCoMKgVENHdl9pMzIgdDEsIHQyLCB0MzsNCj4gPiA+IMKgwqDCoMKg wqBnZW5fc2V0X2FjY2Vzc190eXBlKGN0eCwgQUNDRVNTX0lOVCk7DQo+ID4gPiAtwqDCoMKg wqAvKiBOSVAgY2Fubm90IGJlIHJlc3RvcmVkIGlmIHRoZSBtZW1vcnkgZXhjZXB0aW9uIGNv bWVzIGZyb20NCj4gPiA+IGFuIGhlbHBlciAqLw0KPiA+ID4gLcKgwqDCoMKgZ2VuX3VwZGF0 ZV9uaXAoY3R4LCBjdHgtPm5pcCAtIDQpOw0KPiA+ID4gwqDCoMKgwqDCoHQwID0gdGNnX3Rl bXBfbmV3KCk7DQo+ID4gPiDCoMKgwqDCoMKgZ2VuX2FkZHJfcmVnX2luZGV4KGN0eCwgdDAp Ow0KPiA+ID4gwqDCoMKgwqDCoHQxID0gdGNnX2NvbnN0X2kzMihyRChjdHgtPm9wY29kZSkp Ow0KPiA+ID4gQEAgLTMzNTEsOCArMzMwNiw2IEBAIHN0YXRpYyB2b2lkIGdlbl9zdHN3aShE aXNhc0NvbnRleHQgKmN0eCkNCj4gPiA+IMKgwqDCoMKgwqBUQ0d2X2kzMiB0MSwgdDI7DQo+ ID4gPiDCoMKgwqDCoMKgaW50IG5iID0gTkIoY3R4LT5vcGNvZGUpOw0KPiA+ID4gwqDCoMKg wqDCoGdlbl9zZXRfYWNjZXNzX3R5cGUoY3R4LCBBQ0NFU1NfSU5UKTsNCj4gPiA+IC3CoMKg wqDCoC8qIE5JUCBjYW5ub3QgYmUgcmVzdG9yZWQgaWYgdGhlIG1lbW9yeSBleGNlcHRpb24g Y29tZXMgZnJvbQ0KPiA+ID4gYW4gaGVscGVyICovDQo+ID4gPiAtwqDCoMKgwqBnZW5fdXBk YXRlX25pcChjdHgsIGN0eC0+bmlwIC0gNCk7DQo+ID4gPiDCoMKgwqDCoMKgdDAgPSB0Y2df dGVtcF9uZXcoKTsNCj4gPiA+IMKgwqDCoMKgwqBnZW5fYWRkcl9yZWdpc3RlcihjdHgsIHQw KTsNCj4gPiA+IMKgwqDCoMKgwqBpZiAobmIgPT0gMCkNCj4gPiA+IEBAIC0zMzcxLDggKzMz MjQsNiBAQCBzdGF0aWMgdm9pZCBnZW5fc3Rzd3goRGlzYXNDb250ZXh0ICpjdHgpDQo+ID4g PiDCoMKgwqDCoMKgVENHdiB0MDsNCj4gPiA+IMKgwqDCoMKgwqBUQ0d2X2kzMiB0MSwgdDI7 DQo+ID4gPiDCoMKgwqDCoMKgZ2VuX3NldF9hY2Nlc3NfdHlwZShjdHgsIEFDQ0VTU19JTlQp Ow0KPiA+ID4gLcKgwqDCoMKgLyogTklQIGNhbm5vdCBiZSByZXN0b3JlZCBpZiB0aGUgbWVt b3J5IGV4Y2VwdGlvbiBjb21lcyBmcm9tDQo+ID4gPiBhbiBoZWxwZXIgKi8NCj4gPiA+IC3C oMKgwqDCoGdlbl91cGRhdGVfbmlwKGN0eCwgY3R4LT5uaXAgLSA0KTsNCj4gPiA+IMKgwqDC oMKgwqB0MCA9IHRjZ190ZW1wX25ldygpOw0KPiA+ID4gwqDCoMKgwqDCoGdlbl9hZGRyX3Jl Z19pbmRleChjdHgsIHQwKTsNCj4gPiA+IMKgwqDCoMKgwqB0MSA9IHRjZ190ZW1wX25ld19p MzIoKTsNCj4gPiA+IEBAIC00MzA2LDcgKzQyNTcsNyBAQCBzdGF0aWMgdm9pZCBnZW5fdHco RGlzYXNDb250ZXh0ICpjdHgpDQo+ID4gPiDCoHsNCj4gPiA+IMKgwqDCoMKgwqBUQ0d2X2kz MiB0MCA9IHRjZ19jb25zdF9pMzIoVE8oY3R4LT5vcGNvZGUpKTsNCj4gPiA+IMKgwqDCoMKg wqAvKiBVcGRhdGUgdGhlIG5pcCBzaW5jZSB0aGlzIG1pZ2h0IGdlbmVyYXRlIGEgdHJhcCBl eGNlcHRpb24NCj4gPiA+ICovDQo+ID4gPiAtwqDCoMKgwqBnZW5fdXBkYXRlX25pcChjdHgs IGN0eC0+bmlwKTsNCj4gPiA+ICvCoMKgwqDCoGdlbl9zdG9wX2V4Y2VwdGlvbihjdHgpOw0K PiA+ID4gwqDCoMKgwqDCoGdlbl9oZWxwZXJfdHcoY3B1X2VudiwgY3B1X2dwcltyQShjdHgt Pm9wY29kZSldLA0KPiA+ID4gY3B1X2dwcltyQihjdHgtPm9wY29kZSldLA0KPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0MCk7DQo+ID4gPiDCoMKgwqDC oMKgdGNnX3RlbXBfZnJlZV9pMzIodDApOw0KPiA+ID4gQEAgLTQzMTgsNyArNDI2OSw3IEBA IHN0YXRpYyB2b2lkIGdlbl90d2koRGlzYXNDb250ZXh0ICpjdHgpDQo+ID4gPiDCoMKgwqDC oMKgVENHdiB0MCA9IHRjZ19jb25zdF90bChTSU1NKGN0eC0+b3Bjb2RlKSk7DQo+ID4gPiDC oMKgwqDCoMKgVENHdl9pMzIgdDEgPSB0Y2dfY29uc3RfaTMyKFRPKGN0eC0+b3Bjb2RlKSk7 DQo+ID4gPiDCoMKgwqDCoMKgLyogVXBkYXRlIHRoZSBuaXAgc2luY2UgdGhpcyBtaWdodCBn ZW5lcmF0ZSBhIHRyYXAgZXhjZXB0aW9uDQo+ID4gPiAqLw0KPiA+ID4gLcKgwqDCoMKgZ2Vu X3VwZGF0ZV9uaXAoY3R4LCBjdHgtPm5pcCk7DQo+ID4gPiArwqDCoMKgwqBnZW5fc3RvcF9l eGNlcHRpb24oY3R4KTsNCj4gPiA+IMKgwqDCoMKgwqBnZW5faGVscGVyX3R3KGNwdV9lbnYs IGNwdV9ncHJbckEoY3R4LT5vcGNvZGUpXSwgdDAsIHQxKTsNCj4gPiA+IMKgwqDCoMKgwqB0 Y2dfdGVtcF9mcmVlKHQwKTsNCj4gPiA+IMKgwqDCoMKgwqB0Y2dfdGVtcF9mcmVlX2kzMih0 MSk7DQo+ID4gPiBAQCAtNDMzMCw3ICs0MjgxLDcgQEAgc3RhdGljIHZvaWQgZ2VuX3RkKERp c2FzQ29udGV4dCAqY3R4KQ0KPiA+ID4gwqB7DQo+ID4gPiDCoMKgwqDCoMKgVENHdl9pMzIg dDAgPSB0Y2dfY29uc3RfaTMyKFRPKGN0eC0+b3Bjb2RlKSk7DQo+ID4gPiDCoMKgwqDCoMKg LyogVXBkYXRlIHRoZSBuaXAgc2luY2UgdGhpcyBtaWdodCBnZW5lcmF0ZSBhIHRyYXAgZXhj ZXB0aW9uDQo+ID4gPiAqLw0KPiA+ID4gLcKgwqDCoMKgZ2VuX3VwZGF0ZV9uaXAoY3R4LCBj dHgtPm5pcCk7DQo+ID4gPiArwqDCoMKgwqBnZW5fc3RvcF9leGNlcHRpb24oY3R4KTsNCj4g PiA+IMKgwqDCoMKgwqBnZW5faGVscGVyX3RkKGNwdV9lbnYsIGNwdV9ncHJbckEoY3R4LT5v cGNvZGUpXSwNCj4gPiA+IGNwdV9ncHJbckIoY3R4LT5vcGNvZGUpXSwNCj4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdDApOw0KPiA+ID4gwqDCoMKgwqDC oHRjZ190ZW1wX2ZyZWVfaTMyKHQwKTsNCj4gPiA+IEBAIC00MzQyLDcgKzQyOTMsNyBAQCBz dGF0aWMgdm9pZCBnZW5fdGRpKERpc2FzQ29udGV4dCAqY3R4KQ0KPiA+ID4gwqDCoMKgwqDC oFRDR3YgdDAgPSB0Y2dfY29uc3RfdGwoU0lNTShjdHgtPm9wY29kZSkpOw0KPiA+ID4gwqDC oMKgwqDCoFRDR3ZfaTMyIHQxID0gdGNnX2NvbnN0X2kzMihUTyhjdHgtPm9wY29kZSkpOw0K PiA+ID4gwqDCoMKgwqDCoC8qIFVwZGF0ZSB0aGUgbmlwIHNpbmNlIHRoaXMgbWlnaHQgZ2Vu ZXJhdGUgYSB0cmFwIGV4Y2VwdGlvbg0KPiA+ID4gKi8NCj4gPiA+IC3CoMKgwqDCoGdlbl91 cGRhdGVfbmlwKGN0eCwgY3R4LT5uaXApOw0KPiA+ID4gK8KgwqDCoMKgZ2VuX3N0b3BfZXhj ZXB0aW9uKGN0eCk7DQo+ID4gPiDCoMKgwqDCoMKgZ2VuX2hlbHBlcl90ZChjcHVfZW52LCBj cHVfZ3ByW3JBKGN0eC0+b3Bjb2RlKV0sIHQwLCB0MSk7DQo+ID4gPiDCoMKgwqDCoMKgdGNn X3RlbXBfZnJlZSh0MCk7DQo+ID4gPiDCoMKgwqDCoMKgdGNnX3RlbXBfZnJlZV9pMzIodDEp Ow0KPiA+ID4gQEAgLTQ3NjgsOCArNDcxOSw2IEBAIHN0YXRpYyB2b2lkIGdlbl9kY2J6KERp c2FzQ29udGV4dCAqY3R4KQ0KPiA+ID4gwqDCoMKgwqDCoGludCBpc19kY2J6bCA9IGN0eC0+ b3Bjb2RlICYgMHgwMDIwMDAwMCA/IDEgOiAwOw0KPiA+ID4gDQo+ID4gPiDCoMKgwqDCoMKg Z2VuX3NldF9hY2Nlc3NfdHlwZShjdHgsIEFDQ0VTU19DQUNIRSk7DQo+ID4gPiAtwqDCoMKg wqAvKiBOSVAgY2Fubm90IGJlIHJlc3RvcmVkIGlmIHRoZSBtZW1vcnkgZXhjZXB0aW9uIGNv bWVzIGZyb20NCj4gPiA+IGFuIGhlbHBlciAqLw0KPiA+ID4gLcKgwqDCoMKgZ2VuX3VwZGF0 ZV9uaXAoY3R4LCBjdHgtPm5pcCAtIDQpOw0KPiA+ID4gwqDCoMKgwqDCoHRjZ3ZfYWRkciA9 IHRjZ190ZW1wX25ldygpOw0KPiA+ID4gwqDCoMKgwqDCoHRjZ3ZfaXNfZGNiemwgPSB0Y2df Y29uc3RfaTMyKGlzX2RjYnpsKTsNCj4gPiA+IA0KPiA+ID4gQEAgLTQ4MTIsOCArNDc2MSw2 IEBAIHN0YXRpYyB2b2lkIGdlbl9pY2JpKERpc2FzQ29udGV4dCAqY3R4KQ0KPiA+ID4gwqB7 DQo+ID4gPiDCoMKgwqDCoMKgVENHdiB0MDsNCj4gPiA+IMKgwqDCoMKgwqBnZW5fc2V0X2Fj Y2Vzc190eXBlKGN0eCwgQUNDRVNTX0NBQ0hFKTsNCj4gPiA+IC3CoMKgwqDCoC8qIE5JUCBj YW5ub3QgYmUgcmVzdG9yZWQgaWYgdGhlIG1lbW9yeSBleGNlcHRpb24gY29tZXMgZnJvbQ0K PiA+ID4gYW4gaGVscGVyICovDQo+ID4gPiAtwqDCoMKgwqBnZW5fdXBkYXRlX25pcChjdHgs IGN0eC0+bmlwIC0gNCk7DQo+ID4gPiDCoMKgwqDCoMKgdDAgPSB0Y2dfdGVtcF9uZXcoKTsN Cj4gPiA+IMKgwqDCoMKgwqBnZW5fYWRkcl9yZWdfaW5kZXgoY3R4LCB0MCk7DQo+ID4gPiDC oMKgwqDCoMKgZ2VuX2hlbHBlcl9pY2JpKGNwdV9lbnYsIHQwKTsNCj4gPiA+IEBAIC01Mjk5 LDggKzUyNDYsNiBAQCBzdGF0aWMgdm9pZCBnZW5fbHNjYngoRGlzYXNDb250ZXh0ICpjdHgp DQo+ID4gPiDCoMKgwqDCoMKgVENHdl9pMzIgdDMgPSB0Y2dfY29uc3RfaTMyKHJCKGN0eC0+ b3Bjb2RlKSk7DQo+ID4gPiANCj4gPiA+IMKgwqDCoMKgwqBnZW5fYWRkcl9yZWdfaW5kZXgo Y3R4LCB0MCk7DQo+ID4gPiAtwqDCoMKgwqAvKiBOSVAgY2Fubm90IGJlIHJlc3RvcmVkIGlm IHRoZSBtZW1vcnkgZXhjZXB0aW9uIGNvbWVzIGZyb20NCj4gPiA+IGFuIGhlbHBlciAqLw0K PiA+ID4gLcKgwqDCoMKgZ2VuX3VwZGF0ZV9uaXAoY3R4LCBjdHgtPm5pcCAtIDQpOw0KPiA+ ID4gwqDCoMKgwqDCoGdlbl9oZWxwZXJfbHNjYngodDAsIGNwdV9lbnYsIHQwLCB0MSwgdDIs IHQzKTsNCj4gPiA+IMKgwqDCoMKgwqB0Y2dfdGVtcF9mcmVlX2kzMih0MSk7DQo+ID4gPiDC oMKgwqDCoMKgdGNnX3RlbXBfZnJlZV9pMzIodDIpOw0KPiA+ID4gQEAgLTYzODYsOCArNjMz MSw2IEBAIHN0YXRpYyB2b2lkIGdlbl9tdGRjcngoRGlzYXNDb250ZXh0ICpjdHgpDQo+ID4g PiDCoC8qIG1mZGNydXggKFBQQyA0NjApIDogdXNlci1tb2RlIGFjY2VzcyB0byBEQ1IgKi8N Cj4gPiA+IMKgc3RhdGljIHZvaWQgZ2VuX21mZGNydXgoRGlzYXNDb250ZXh0ICpjdHgpDQo+ ID4gPiDCoHsNCj4gPiA+IC3CoMKgwqDCoC8qIE5JUCBjYW5ub3QgYmUgcmVzdG9yZWQgaWYg dGhlIG1lbW9yeSBleGNlcHRpb24gY29tZXMgZnJvbQ0KPiA+ID4gYW4gaGVscGVyICovDQo+ ID4gPiAtwqDCoMKgwqBnZW5fdXBkYXRlX25pcChjdHgsIGN0eC0+bmlwIC0gNCk7DQo+ID4g PiDCoMKgwqDCoMKgZ2VuX2hlbHBlcl9sb2FkX2RjcihjcHVfZ3ByW3JEKGN0eC0+b3Bjb2Rl KV0sIGNwdV9lbnYsDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGNwdV9ncHJbckEoY3R4LT5vcGNvZGUpXSk7DQo+ID4gPiDCoMKg wqDCoMKgLyogTm90ZTogUmMgdXBkYXRlIGZsYWcgc2V0IGxlYWRzIHRvIHVuZGVmaW5lZCBz dGF0ZSBvZiBSYzANCj4gPiA+ICovDQo+ID4gPiBAQCAtNjM5Niw4ICs2MzM5LDYgQEAgc3Rh dGljIHZvaWQgZ2VuX21mZGNydXgoRGlzYXNDb250ZXh0ICpjdHgpDQo+ID4gPiDCoC8qIG10 ZGNydXggKFBQQyA0NjApIDogdXNlci1tb2RlIGFjY2VzcyB0byBEQ1IgKi8NCj4gPiA+IMKg c3RhdGljIHZvaWQgZ2VuX210ZGNydXgoRGlzYXNDb250ZXh0ICpjdHgpDQo+ID4gPiDCoHsN Cj4gPiA+IC3CoMKgwqDCoC8qIE5JUCBjYW5ub3QgYmUgcmVzdG9yZWQgaWYgdGhlIG1lbW9y eSBleGNlcHRpb24gY29tZXMgZnJvbQ0KPiA+ID4gYW4gaGVscGVyICovDQo+ID4gPiAtwqDC oMKgwqBnZW5fdXBkYXRlX25pcChjdHgsIGN0eC0+bmlwIC0gNCk7DQo+ID4gPiDCoMKgwqDC oMKgZ2VuX2hlbHBlcl9zdG9yZV9kY3IoY3B1X2VudiwgY3B1X2dwcltyQShjdHgtPm9wY29k ZSldLA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGNwdV9ncHJbclMoY3R4LT5vcGNvZGUpXSk7DQo+ID4gPiDCoMKgwqDCoMKg LyogTm90ZTogUmMgdXBkYXRlIGZsYWcgc2V0IGxlYWRzIHRvIHVuZGVmaW5lZCBzdGF0ZSBv ZiBSYzANCj4gPiA+ICovDQo+ID4gPiBAQCAtODAyNyw4ICs3OTY4LDYgQEAgc3RhdGljIHZv aWQgZ2VuXyMjbmFtZShEaXNhc0NvbnRleHQgKiBjdHgpDQo+ID4gXA0KPiA+ID4gDQo+ID4g PiDCoMKgwqDCoMKgwqDCoMKgwqBnZW5fZXhjZXB0aW9uKGN0eCwNCj4gPiA+IFBPV0VSUENf RVhDUF9WU1hVKTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJu O8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgDQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoH3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gLcKgwqDC oMKgLyogTklQIGNhbm5vdCBiZSByZXN0b3JlZCBpZiB0aGUgbWVtb3J5IGV4Y2VwdGlvbiBj b21lcyBmcm9tDQo+ID4gPiBhbiBoZWxwZXIgKi8gXA0KPiA+ID4gLcKgwqDCoMKgZ2VuX3Vw ZGF0ZV9uaXAoY3R4LCBjdHgtPm5pcCAtDQo+ID4gPiA0KTvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqBvcGMgPSB0Y2dfY29uc3RfaTMyKGN0eC0NCj4g PiA+ID5vcGNvZGUpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKg wqDCoMKgZ2VuX2hlbHBlcl8jI25hbWUoY3B1X2VudiwNCj4gPiA+IG9wYyk7wqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoHRjZ190ZW1wX2ZyZWVf aTMyKG9wYyk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBcDQo+ID4gPiBAQCAtODA0MSw5ICs3OTgwLDYgQEAgc3RhdGljIHZvaWQg Z2VuXyMjbmFtZShEaXNhc0NvbnRleHQgKg0KPiA+ID4gY3R4KcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBnZW5f ZXhjZXB0aW9uKGN0eCwgUE9XRVJQQ19FWENQX1ZTWFUpO8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgXA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuO8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgfcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoFwNCj4gPiA+IC3CoMKgwqDCoC8qIE5JUCBjYW5ub3QgYmUgcmVzdG9yZWQgaWYgdGhl IGV4Y2VwdGlvbiBjb21lcyAqL8KgwqDCoMKgwqDCoMKgXA0KPiA+ID4gLcKgwqDCoMKgLyog ZnJvbSBhIGhlbHBlci4gKi/CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXA0KPiA+ID4gLcKgwqDC oMKgZ2VuX3VwZGF0ZV9uaXAoY3R4LCBjdHgtPm5pcCAtIDQpO8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFwNCj4gPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoFwNCj4gPiA+IMKgwqDCoMKgwqBnZW5faGVscGVyXyMjbmFtZShjcHVfdnNyaCh4VChj dHgtPm9wY29kZSkpLCBjcHVfZW52LMKgwqDCoMKgwqBcDQo+ID4gPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY3B1X3ZzcmgoeEIoY3R4LT5vcGNv ZGUpKSk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBcDQo+ID4gPiANCj4gPiANCj4gPiAt LQ0KPiA+IERhdmlkIEdpYnNvbgkJCXwgSSdsbCBoYXZlIG15IG11c2ljIGJhcm9xdWUsDQo+ ID4gYW5kIG15IGNvZGUNCj4gPiBkYXZpZCBBVCBnaWJzb24uZHJvcGJlYXIuaWQuYXUJfCBt aW5pbWFsaXN0LCB0aGFuayB5b3UuwqDCoE5PVA0KPiA+IF90aGVfIF9vdGhlcl8NCj4gPiAJ CQkJfCBfd2F5XyBfYXJvdW5kXyENCj4gPiBodHRwOi8vd3d3Lm96bGFicy5vcmcvfmRnaWJz b24NCg==