From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] igt: adding parameter to drm_open_any and drm_open_any_master to allow specification of non-intel GPUs Date: Tue, 16 Jun 2015 13:55:07 +0200 Message-ID: <20150616115507.GS23637@phenom.ffwll.local> References: <1434407300-16619-1-git-send-email-micah.fedke@collabora.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by gabe.freedesktop.org (Postfix) with ESMTP id B5B126E94B for ; Tue, 16 Jun 2015 04:52:23 -0700 (PDT) Received: by wifx6 with SMTP id x6so16873380wif.0 for ; Tue, 16 Jun 2015 04:52:22 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1434407300-16619-1-git-send-email-micah.fedke@collabora.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Micah Fedke Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMTUsIDIwMTUgYXQgMDU6Mjg6MjBQTSAtMDUwMCwgTWljYWggRmVka2Ugd3Jv dGU6Cj4gLS0tCgpDb21taXQgbWVzc2FnZSBtdXN0IGJlIGFib3ZlIHRoZSAtLS0gbGluZSwgb3Ro ZXJ3aXNlIGl0IGdldHMgY3V0IG9mZi4gQWxzbwp3ZSB0ZW5kIHRvIGZvbGxvdyB0aGUgc2lnbmUt b2ZmLWJ5IHByb2NlZHVyZXMgYXMgZG9jdW1lbnRlZCBpbgoKaHR0cDovL2RldmVsb3BlcmNlcnRp ZmljYXRlLm9yZy8KCj4gQSBzZWNvbmQgc3dpbmcgYXQgbm9uLWludGVsIEdQVSBzdXBwb3J0IGlu IGlndC4gIFRoaXMgcGF0Y2ggdXBkYXRlcyBpZ3Qncwo+IGludGVybmFsIEFQSSB0byBzdXBwb3J0 IG9wZW5pbmcgZGlmZmVyZW50IEdQVXMgYnkgYWRkaW5nIGEgcGFyYW1ldGVyIHRvCj4gZHJtX29w ZW5fYW55KCkgYW5kIGRybV9vcGVuX2FueV9tYXN0ZXIoKS4gIFRoZSBpbnRlcmVzdGluZyBjaGFu Z2VzIGFyZSBpbiBsaWIvLAo+IHRoZSByZXN0IG9mIHRoZSBjaGFuZ2VzIGFyZSBqdXN0IHVwZGF0 ZXMgdG8gdGhlIGNhbGwgc2l0ZXMuICBJIGhhdmUgYSAuY29jY2kKPiBmb3IgdGhpcywgYnV0IEkg Y291bGRuJ3QgZ2V0IGl0IHRvIGNvdmVyIDEwMCUgb2YgdGhlIGNhbGxzLCBzbyB0aGlzIGlzIHRo ZQo+IHByb2R1Y3Qgb2Ygc29tZSBoYW5kIGVkaXRpbmcsIGZvciBub3cuICBJJ2xsIGtlZXAgd29y a2luZyBvbiB0aGF0LiAgRGFudmV0IC0KPiB0aGUgZHJtX3JlcXVpcmVfZHJpdmVyIGFuZCBwcmlt ZSBzdHVmZiBhcmUgbm90IGFkZHJlc3NlZCwgeWV0LgoKTm90IHN1cmUgdGhpcyBpcyBnb2luZyBp bnRvIHRoZSByaWdodCBkaXJlY3Rpb24uIEkgdGhpbmsgdGhlIE9QRU5fKiBmbGFncwphcmUgb2ss IGJ1dCBmb3IgYSBzdGFydCBJIHRoaW5rIHdlIHNob3VsZCBoYXZlIGFuIE9QRU5fQU5ZIHdoaWNo IHJlYWxseQpvcGVucyBhbnkgb2YgdGhlIGRybSBkcml2ZXJzLiBTcGVjaWFsLWNhc2luZyBmb3Ig ZXh5bm9zIGltbyBpc24ndCBhbGwgdGhhdAp1c2VmdWwuIEFuZCBiZWZvcmUgd2UgY2FuIHJlYWxs eSBzZWUgd2hldGhlciB0aGlzIHdvcmtzIHdlJ2QgbmVlZCBhCnRlc3RjYXNlIHdoaWNoIHdvcmtz IGluIGEgZ2VuZXJpYyBmYXNoaW9uIChvbmUgb2YgdGhlIGRybV8qIGlzIHByb2JhYmx5IGEKZ29v ZCBjYW5kaWRhdGUpLgoKQWxzbyB0aGlzIHBhdGNoIHNob3VsZCBiZSBzcGxpdCB1cCBmb3IgZWFz aWVyIHJldmlldywgaXQncyBoYXJkIHRvIGZpbmQKdGhlIGxpYi8qIHN0dWZmIGluIGFsbCB0aGUg Y29jY2kgY2hhbmdlcy4gV2hhdCBhYm91dDoKLSBBZGRpbmcgYSBuZXcgZHJtX29wZW5fZHJpdmVy KGRyaXZlcl9mbGFnKSBhbmQgYWxpYXNpbmcgZHJtX29wZW5fYW55IHRvCiAgZHJtX29wZW5fZHJp dmVyKE9QRU5fQU5ZKSBpbiB0aGUgZmlyc3QgcGF0Y2guCi0gVGhlbiB0aGUgbWFzcy1jb2NjaSB0 byByZXBsYWNlIGFsbCBleGlzdGluZyBkcm1fb3Blbl9hbnkgd2l0aAogIGRybV9vcGVuX2RyaXZl cihPUEVOX0lOVEVMKS4KLSBUaGVuIHRoZSBkZW1vbnN0cmF0aW9uIHBhdGNoIHRvIHNob3cgdGhh dCB3ZSBjYW4gcnVuIHNvbWUgdGVzdHMKICBnZW5lcmljYWxseSBvbiBhbnkgZHJtIGRyaXZlci4K ClRoYXQgc2hvdWxkIGdldCB1cyBzdGFydGVkLiBUaGUgZXZlbiBiaWdnZXIgZnVuIHdpbGwgYmUg bWFraW5nIGttcyB0ZXN0cwpnZW5lcmljLCBzaW5jZSBmb3IgdGhhdCB3ZSBmaXJzdCBuZWVkIGEg YnVmZmVyIGFsbG9jYXRvci4gVGhhdCBwcm9iYWJseQpuZWVkcyBzb21lIG1hZ2ljIGNoYW5nZXMg aW4gbGliL2lndF9mYi5jLCB1c2luZyB0aGUKZHJtX3JlcXVpcmVfZHJpdmVyKElOVEVMKSBhbmQg c2ltaWxhciBjaGVja3MuIEFzaWRlOiBNYXliZSBjYWxsIHRoZSBmbGFncwpEUklWRVJfSU5URUws IERSSVZFUl9BTlkgc2luY2Ugd2Ugd29uJ3QgdXNlIHRoZW0gZXhjbHVzaXZlbHkgd2l0aCB0aGUg b3BlbgpmdW5jdGlvbiBvbmx5LgotRGFuaWVsCgo+IAo+IAo+ICBiZW5jaG1hcmtzL2dlbV91c2Vy cHRyX2JlbmNobWFyay5jICAgICAgIHwgIDIgKy0KPiAgYmVuY2htYXJrcy9pbnRlbF91cGxvYWRf YmxpdF9sYXJnZS5jICAgICB8ICAyICstCj4gIGJlbmNobWFya3MvaW50ZWxfdXBsb2FkX2JsaXRf bGFyZ2VfZ3R0LmMgfCAgMiArLQo+ICBiZW5jaG1hcmtzL2ludGVsX3VwbG9hZF9ibGl0X2xhcmdl X21hcC5jIHwgIDIgKy0KPiAgYmVuY2htYXJrcy9pbnRlbF91cGxvYWRfYmxpdF9zbWFsbC5jICAg ICB8ICAyICstCj4gIGxpYi9kcm10ZXN0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA3 OSArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQo+ICBsaWIvZHJtdGVzdC5oICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysrLS0KPiAgbGliL2lndF9ndC5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICA0ICstCj4gIGxpYi9pZ3RfZ3QuaCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMiArLQo+ICBsaWIvaWd0X2ttcy5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDYgKystCj4gIGxpYi9pZ3Rfa21zLmggICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQo+ICB0ZXN0cy9jb3JlX2dldF9jbGllbnRfYXV0aC5jICAgICAgICAgICAg IHwgIDYgKy0tCj4gIHRlc3RzL2NvcmVfZ2V0Y2xpZW50LmMgICAgICAgICAgICAgICAgICAgfCAg MiArLQo+ICB0ZXN0cy9jb3JlX2dldHN0YXRzLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K PiAgdGVzdHMvY29yZV9nZXR2ZXJzaW9uLmMgICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRl c3RzL2RybV9pbXBvcnRfZXhwb3J0LmMgICAgICAgICAgICAgICAgfCAgNCArLQo+ICB0ZXN0cy9k cm1fcmVhZC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZHJtX3Zt YV9saW1pdGVyLmMgICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2RybV92bWFfbGlt aXRlcl9jYWNoZWQuYyAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9kcm1fdm1hX2xpbWl0ZXJf Y3B1LmMgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZHJtX3ZtYV9saW1pdGVyX2d0dC5j ICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2Rydl9nZXRwYXJhbXMuYyAgICAgICAgICAg ICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9kcnZfaGFuZ21hbi5jICAgICAgICAgICAgICAgICAg ICAgIHwgIDQgKy0KPiAgdGVzdHMvZHJ2X3N1c3BlbmQuYyAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCj4gIHRlc3RzL2V2aWN0aW9uX2NvbW1vbi5jICAgICAgICAgICAgICAgICAgfCAgMiAr LQo+ICB0ZXN0cy9nZW1fYWxpdmUuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAg dGVzdHMvZ2VtX2JhZF9hZGRyZXNzLmMgICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3Rz L2dlbV9iYWRfYmF0Y2guYyAgICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9nZW1f YmFkX2JsaXQuYyAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VtX2JhZF9s ZW5ndGguYyAgICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV9iYWRfcmVsb2Mu YyAgICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9nZW1fYmFzaWMuYyAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VtX2NhY2hpbmcuYyAgICAgICAgICAg ICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV9jb25jdXJyZW50X2JsaXQuYyAgICAgICAg ICAgICAgfCAgNCArLQo+ICB0ZXN0cy9nZW1fY3B1X3JlbG9jLmMgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KPiAgdGVzdHMvZ2VtX2NzX3ByZWZldGNoLmMgICAgICAgICAgICAgICAgICB8ICAy ICstCj4gIHRlc3RzL2dlbV9jc190bGIuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ ICB0ZXN0cy9nZW1fZG91YmxlX2lycV9sb29wLmMgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVz dHMvZ2VtX2R1bW15X3JlbG9jX2xvb3AuYyAgICAgICAgICAgICB8ICA0ICstCj4gIHRlc3RzL2dl bV9ldmljdF9hbGlnbm1lbnQuYyAgICAgICAgICAgICAgfCAgNCArLQo+ICB0ZXN0cy9nZW1fZXZp Y3RfZXZlcnl0aGluZy5jICAgICAgICAgICAgIHwgIDQgKy0KPiAgdGVzdHMvZ2VtX2V4ZWNfYmFk X2RvbWFpbnMuYyAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV9leGVjX2JpZy5jICAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9nZW1fZXhlY19ibHQuYyAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VtX2V4ZWNfZmF1bHRpbmdfcmVsb2MuYyAg ICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV9leGVjX2x1dF9oYW5kbGUuYyAgICAgICAgICAg ICAgfCAgMiArLQo+ICB0ZXN0cy9nZW1fZXhlY19ub3AuYyAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KPiAgdGVzdHMvZ2VtX2V4ZWNfcGFyYW1zLmMgICAgICAgICAgICAgICAgICB8ICAyICst Cj4gIHRlc3RzL2dlbV9leGVjX3BhcnNlLmMgICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0 ZXN0cy9nZW1fZmRfZXhoYXVzdGlvbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMv Z2VtX2ZlbmNlX3RocmFzaC5jICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV9m ZW5jZV91cGxvYWQuYyAgICAgICAgICAgICAgICAgfCAgOCArKy0tCj4gIHRlc3RzL2dlbV9mZW5j ZWRfZXhlY190aHJhc2guYyAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9nZW1fZmxpbmsuYyAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKy0tCj4gIHRlc3RzL2dlbV9mbGlua19yYWNlLmMg ICAgICAgICAgICAgICAgICAgfCAgNiArLS0KPiAgdGVzdHMvZ2VtX2d0dF9jcHVfdGxiLmMgICAg ICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV9ndHRfaG9nLmMgICAgICAgICAgICAg ICAgICAgICAgfCAgNCArLQo+ICB0ZXN0cy9nZW1fZ3R0X3NwZWVkLmMgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VtX2hhbmcuYyAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCj4gIHRlc3RzL2dlbV9oYW5nY2hlY2tfZm9yY2V3YWtlLmMgICAgICAgICAgfCAgMiAr LQo+ICB0ZXN0cy9nZW1fbGFyZ2VvYmplY3QuYyAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAg dGVzdHMvZ2VtX2xpbmVhcl9ibGl0cy5jICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3Rz L2dlbV9sdXRfaGFuZGxlLmMgICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9nZW1f bWFkdmlzZS5jICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKystLS0KPiAgdGVzdHMvZ2VtX21t YXAuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV9tbWFwX2d0 dC5jICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQo+ICB0ZXN0cy9nZW1fbW1hcF9vZmZzZXRf ZXhoYXVzdGlvbi5jICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VtX21tYXBfd2MuYyAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV9tdWx0aV9ic2Rfc3luY19sb29wLmMg ICAgICAgICAgfCAgNCArLQo+ICB0ZXN0cy9nZW1fbm9uX3NlY3VyZV9iYXRjaC5jICAgICAgICAg ICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VtX3BhcnRpYWxfcHdyaXRlX3ByZWFkLmMgICAgICAgICB8 ICAyICstCj4gIHRlc3RzL2dlbV9wZXJzaXN0ZW50X3JlbG9jcy5jICAgICAgICAgICAgfCAgMiAr LQo+ICB0ZXN0cy9nZW1fcGluLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAg dGVzdHMvZ2VtX3BpcGVfY29udHJvbF9zdG9yZV9sb29wLmMgICAgICB8ICAyICstCj4gIHRlc3Rz L2dlbV9wcGd0dC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQo+ICB0ZXN0cy9nZW1f cHJlYWQuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VtX3ByZWFk X2FmdGVyX2JsaXQuYyAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV9wd3JpdGUuYyAg ICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9nZW1fcHdyaXRlX3ByZWFkLmMg ICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VtX3JlYWR3cml0ZS5jICAgICAgICAg ICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV9yZWdfcmVhZC5jICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQo+ICB0ZXN0cy9nZW1fcmVsb2Nfb3ZlcmZsb3cuYyAgICAgICAgICAgICAg IHwgIDIgKy0KPiAgdGVzdHMvZ2VtX3JlbG9jX3ZzX2dwdS5jICAgICAgICAgICAgICAgICB8ICA0 ICstCj4gIHRlc3RzL2dlbV9yZW5kZXJfY29weV9yZWR1eC5jICAgICAgICAgICAgfCAgMiArLQo+ ICB0ZXN0cy9nZW1fcmVuZGVyX2xpbmVhcl9ibGl0cy5jICAgICAgICAgIHwgIDIgKy0KPiAgdGVz dHMvZ2VtX3JlbmRlcl90aWxlZF9ibGl0cy5jICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dl bV9yZXNldF9zdGF0cy5jICAgICAgICAgICAgICAgICAgfCA0MCArKysrKysrKy0tLS0tLS0tCj4g IHRlc3RzL2dlbV9yaW5nX3N5bmNfbG9vcC5jICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0 cy9nZW1fcmluZ2ZpbGwuYyAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2Vt X3NlcW5vX3dyYXAuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV9zZXRf dGlsaW5nX3ZzX2JsdC5jICAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9nZW1fc2V0X3RpbGlu Z192c19ndHQuYyAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VtX3NldF90aWxpbmdfdnNf cHdyaXRlLmMgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV9zdG9yZWR3X2JhdGNoZXNfbG9v cC5jICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9nZW1fc3RvcmVkd19sb29wX2JsdC5jICAgICAg ICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VtX3N0b3JlZHdfbG9vcF9ic2QuYyAgICAgICAgICAg ICB8ICAyICstCj4gIHRlc3RzL2dlbV9zdG9yZWR3X2xvb3BfcmVuZGVyLmMgICAgICAgICAgfCAg MiArLQo+ICB0ZXN0cy9nZW1fc3RvcmVkd19sb29wX3ZlYm94LmMgICAgICAgICAgIHwgIDIgKy0K PiAgdGVzdHMvZ2VtX3N0cmVzcy5jICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRl c3RzL2dlbV90aHJlYWRlZF9hY2Nlc3NfdGlsZWQuYyAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9n ZW1fdGlsZWRfYmxpdHMuYyAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VtX3Rp bGVkX2ZlbmNlX2JsaXRzLmMgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV90aWxlZF9w YXJ0aWFsX3B3cml0ZV9wcmVhZC5jICAgfCAgMiArLQo+ICB0ZXN0cy9nZW1fdGlsZWRfcHJlYWQu YyAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VtX3RpbGVkX3ByZWFkX3B3cml0 ZS5jICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV90aWxlZF9zd2FwcGluZy5jICAgICAg ICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9nZW1fdGlsZWRfd2IuYyAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VtX3RpbGVkX3djLmMgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCj4gIHRlc3RzL2dlbV90aWxpbmdfbWF4X3N0cmlkZS5jICAgICAgICAgICAgfCAgMiAr LQo+ICB0ZXN0cy9nZW1fdW5mZW5jZV9hY3RpdmVfYnVmZmVycy5jICAgICAgIHwgIDIgKy0KPiAg dGVzdHMvZ2VtX3VucmVmX2FjdGl2ZV9idWZmZXJzLmMgICAgICAgICB8ICAyICstCj4gIHRlc3Rz L2dlbV91c2VycHRyX2JsaXRzLmMgICAgICAgICAgICAgICAgfCAgNiArLS0KPiAgdGVzdHMvZ2Vt X3dhaXQuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbV93b3Jr YXJvdW5kcy5jICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9nZW1fd3JpdGVfcmVh ZF9yaW5nX3N3aXRjaC5jICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VuM19taXhlZF9ibGl0cy5j ICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2dlbjNfcmVuZGVyX2xpbmVhcl9ibGl0 cy5jICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9nZW4zX3JlbmRlcl9taXhlZF9ibGl0cy5jICAg ICAgICAgIHwgIDIgKy0KPiAgdGVzdHMvZ2VuM19yZW5kZXJfdGlsZWR4X2JsaXRzLmMgICAgICAg ICB8ICAyICstCj4gIHRlc3RzL2dlbjNfcmVuZGVyX3RpbGVkeV9ibGl0cy5jICAgICAgICAgfCAg MiArLQo+ICB0ZXN0cy9nZW43X2ZvcmNld2FrZV9tdC5jICAgICAgICAgICAgICAgIHwgIDIgKy0K PiAgdGVzdHMva21zXzNkLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRl c3RzL2ttc19hZGRmYi5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9r bXNfY3Vyc29yX2NyYy5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMva21zX2Zi Y19jcmMuYyAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2ttc19mZW5jZV9w aW5fbGVhay5jICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9rbXNfZmxpcC5jICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KPiAgdGVzdHMva21zX2ZsaXBfZXZlbnRfbGVhay5j ICAgICAgICAgICAgICB8ICA0ICstCj4gIHRlc3RzL2ttc19mbGlwX3RpbGluZy5jICAgICAgICAg ICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9rbXNfZm9yY2VfY29ubmVjdG9yLmMgICAgICAgICAg ICAgIHwgIDIgKy0KPiAgdGVzdHMva21zX21taW9fdnNfY3NfZmxpcC5jICAgICAgICAgICAgICB8 ICAyICstCj4gIHRlc3RzL2ttc19waXBlX2NyY19iYXNpYy5jICAgICAgICAgICAgICAgfCAgNCAr LQo+ICB0ZXN0cy9rbXNfcGxhbmUuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAg dGVzdHMva21zX3Bzcl9zaW5rX2NyYy5jICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3Rz L2ttc19wd3JpdGVfY3JjLmMgICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9rbXNf cmVuZGVyLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMva21zX3JvdGF0 aW9uX2NyYy5jICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL2ttc19zZXRtb2RlLmMg ICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0ZXN0cy9rbXNfc2lua19jcmNfYmFzaWMu YyAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdGVzdHMva21zX3VuaXZlcnNhbF9wbGFuZS5jICAg ICAgICAgICAgICB8ICAyICstCj4gIHRlc3RzL3BtX2xwc3AuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQo+ICB0ZXN0cy9wbV9yYzZfcmVzaWRlbmN5LmMgICAgICAgICAgICAgICAg IHwgIDIgKy0KPiAgdGVzdHMvcG1fcnBtLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCj4gIHRlc3RzL3BtX3Jwcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQo+ ICB0ZXN0cy9wcmltZV9zZWxmX2ltcG9ydC5jICAgICAgICAgICAgICAgIHwgMjggKysrKystLS0t LS0KPiAgdGVzdHMvdGVtcGxhdGUuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCj4g IHRlc3RzL3Rlc3RkaXNwbGF5LmMgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0b29s cy9pbnRlbF9kaXNwbGF5X3BvbGxlci5jICAgICAgICAgICAgIHwgIDIgKy0KPiAgdG9vbHMvaW50 ZWxfZ3B1X2ZyZXF1ZW5jeS5jICAgICAgICAgICAgICB8ICAyICstCj4gIHRvb2xzL2ludGVsX2wz X3Bhcml0eS5jICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICB0b29scy9pbnRlbF9wZXJmX2Nv dW50ZXJzLmMgICAgICAgICAgICAgIHwgIDIgKy0KPiAgMTUxIGZpbGVzIGNoYW5nZWQsIDI4NiBp bnNlcnRpb25zKCspLCAyMzUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2JlbmNobWFy a3MvZ2VtX3VzZXJwdHJfYmVuY2htYXJrLmMgYi9iZW5jaG1hcmtzL2dlbV91c2VycHRyX2JlbmNo bWFyay5jCj4gaW5kZXggNGQ3NDQyYi4uZmIwYjVlZiAxMDA2NDQKPiAtLS0gYS9iZW5jaG1hcmtz L2dlbV91c2VycHRyX2JlbmNobWFyay5jCj4gKysrIGIvYmVuY2htYXJrcy9nZW1fdXNlcnB0cl9i ZW5jaG1hcmsuYwo+IEBAIC00NzAsNyArNDcwLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQo+ICAKPiAgCWlndF9zdWJ0ZXN0X2luaXQoYXJnYywgYXJndik7Cj4gIAo+IC0JZmQg PSBkcm1fb3Blbl9hbnkoKTsKPiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAJ aWd0X2Fzc2VydChmZCA+PSAwKTsKPiAgCj4gIAlyZXQgPSBoYXNfdXNlcnB0cihmZCk7Cj4gZGlm ZiAtLWdpdCBhL2JlbmNobWFya3MvaW50ZWxfdXBsb2FkX2JsaXRfbGFyZ2UuYyBiL2JlbmNobWFy a3MvaW50ZWxfdXBsb2FkX2JsaXRfbGFyZ2UuYwo+IGluZGV4IDY4OWY5YzQuLjNhOTY5NDcgMTAw NjQ0Cj4gLS0tIGEvYmVuY2htYXJrcy9pbnRlbF91cGxvYWRfYmxpdF9sYXJnZS5jCj4gKysrIGIv YmVuY2htYXJrcy9pbnRlbF91cGxvYWRfYmxpdF9sYXJnZS5jCj4gQEAgLTEyNCw3ICsxMjQsNyBA QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gIAlzdHJ1Y3QgaW50ZWxfYmF0Y2hi dWZmZXIgKmJhdGNoOwo+ICAJaW50IGk7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiAr CWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCWJ1Zm1nciA9IGRybV9pbnRl bF9idWZtZ3JfZ2VtX2luaXQoZmQsIDQwOTYpOwo+ICAJZHJtX2ludGVsX2J1Zm1ncl9nZW1fZW5h YmxlX3JldXNlKGJ1Zm1ncik7Cj4gZGlmZiAtLWdpdCBhL2JlbmNobWFya3MvaW50ZWxfdXBsb2Fk X2JsaXRfbGFyZ2VfZ3R0LmMgYi9iZW5jaG1hcmtzL2ludGVsX3VwbG9hZF9ibGl0X2xhcmdlX2d0 dC5jCj4gaW5kZXggNjAxNDk2ZC4uNjliOWZlZSAxMDA2NDQKPiAtLS0gYS9iZW5jaG1hcmtzL2lu dGVsX3VwbG9hZF9ibGl0X2xhcmdlX2d0dC5jCj4gKysrIGIvYmVuY2htYXJrcy9pbnRlbF91cGxv YWRfYmxpdF9sYXJnZV9ndHQuYwo+IEBAIC0xMjIsNyArMTIyLDcgQEAgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQo+ICAJc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaDsKPiAg CWludCBpOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2Fu eShPUEVOX0lOVEVMKTsKPiAgCj4gIAlidWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0 KGZkLCA0MDk2KTsKPiAgCWRybV9pbnRlbF9idWZtZ3JfZ2VtX2VuYWJsZV9yZXVzZShidWZtZ3Ip Owo+IGRpZmYgLS1naXQgYS9iZW5jaG1hcmtzL2ludGVsX3VwbG9hZF9ibGl0X2xhcmdlX21hcC5j IGIvYmVuY2htYXJrcy9pbnRlbF91cGxvYWRfYmxpdF9sYXJnZV9tYXAuYwo+IGluZGV4IGQ5MTY3 MzcuLjY5YTE1ZDkgMTAwNjQ0Cj4gLS0tIGEvYmVuY2htYXJrcy9pbnRlbF91cGxvYWRfYmxpdF9s YXJnZV9tYXAuYwo+ICsrKyBiL2JlbmNobWFya3MvaW50ZWxfdXBsb2FkX2JsaXRfbGFyZ2VfbWFw LmMKPiBAQCAtMTI1LDcgKzEyNSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK PiAgCXN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2g7Cj4gIAlpbnQgaTsKPiAgCj4gLQlm ZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4g IAo+ICAJYnVmbWdyID0gZHJtX2ludGVsX2J1Zm1ncl9nZW1faW5pdChmZCwgNDA5Nik7Cj4gIAlk cm1faW50ZWxfYnVmbWdyX2dlbV9lbmFibGVfcmV1c2UoYnVmbWdyKTsKPiBkaWZmIC0tZ2l0IGEv YmVuY2htYXJrcy9pbnRlbF91cGxvYWRfYmxpdF9zbWFsbC5jIGIvYmVuY2htYXJrcy9pbnRlbF91 cGxvYWRfYmxpdF9zbWFsbC5jCj4gaW5kZXggYjk2NDBhNC4uOThlYzE1NyAxMDA2NDQKPiAtLS0g YS9iZW5jaG1hcmtzL2ludGVsX3VwbG9hZF9ibGl0X3NtYWxsLmMKPiArKysgYi9iZW5jaG1hcmtz L2ludGVsX3VwbG9hZF9ibGl0X3NtYWxsLmMKPiBAQCAtMTM1LDcgKzEzNSw3IEBAIGludCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKPiAgCXN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0 Y2g7Cj4gIAlpbnQgaTsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1f b3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJYnVmbWdyID0gZHJtX2ludGVsX2J1Zm1ncl9n ZW1faW5pdChmZCwgNDA5Nik7Cj4gIAlkcm1faW50ZWxfYnVmbWdyX2dlbV9lbmFibGVfcmV1c2Uo YnVmbWdyKTsKPiBkaWZmIC0tZ2l0IGEvbGliL2RybXRlc3QuYyBiL2xpYi9kcm10ZXN0LmMKPiBp bmRleCBlZTVjMTIzLi41MjFjN2ZjIDEwMDY0NAo+IC0tLSBhL2xpYi9kcm10ZXN0LmMKPiArKysg Yi9saWIvZHJtdGVzdC5jCj4gQEAgLTc1LDE5ICs3NSw1MSBAQAo+ICAKPiAgdWludDE2X3QgX19k cm1fZGV2aWNlX2lkOwo+ICAKPiAtc3RhdGljIGludCBpc19pOTE1X2RldmljZShpbnQgZmQpCj4g Ky8qKgo+ICsgKiBfX2dldF9kcm1fZGV2aWNlX25hbWU6Cj4gKyAqCj4gKyAqIE9idGFpbnMgdGhl IG5hbWUgb2YgdGhlIGRybSBkZXZpY2UgZHJpdmVyIG9mIHRoZSBvcGVuZWQgZHJtIGZkCj4gKyAq Cj4gKyAqIEBmZDogb3BlbmVkIGRybSBmaWxlIGRlc2NyaXB0b3IgdG8gcXVlcnkKPiArICogQG5h bWU6IG91dHB1dDogcG9pbnRlciB0byBzdHJpbmcgdG8gYmUgZmlsbGVkIHdpdGggdGhlIGRldmlj ZSBuYW1lCj4gKyAqCj4gKyAqIFJldHVybnM6Cj4gKyAqIDAgaWYgdGhlIG5hbWUgd2FzIHN1Y2Nl c3NmdWxseSB3cml0dGVuIHRvIEBuYW1lLCBvciAtMSBvbiBlcnJvcgo+ICsgKi8KPiArc3RhdGlj IGludCBfX2dldF9kcm1fZGV2aWNlX25hbWUoaW50IGZkLCBjaGFyICpuYW1lKQo+ICB7Cj4gIAlk cm1fdmVyc2lvbl90IHZlcnNpb247Cj4gLQljaGFyIG5hbWVbNV0gPSAiIjsKPiAgCj4gIAltZW1z ZXQoJnZlcnNpb24sIDAsIHNpemVvZih2ZXJzaW9uKSk7Cj4gIAl2ZXJzaW9uLm5hbWVfbGVuID0g NDsKPiAgCXZlcnNpb24ubmFtZSA9IG5hbWU7Cj4gIAo+IC0JaWYgKGRybUlvY3RsKGZkLCBEUk1f SU9DVExfVkVSU0lPTiwgJnZlcnNpb24pKQo+ICsJaWYgKGRybUlvY3RsKGZkLCBEUk1fSU9DVExf VkVSU0lPTiwgJnZlcnNpb24pKXsKPiArICAgICAgcHJpbnRmKCAibWZkZWJ1ZzogZ290IGRybSBk ZXZpY2UgbmFtZTogXCIlc1wiXG4iLCBuYW1lICk7Cj4gIAkJcmV0dXJuIDA7Cj4gKyAgIH0KPiAr Cj4gKyAgIHJldHVybiAtMTsKPiArfQo+ICsKPiArc3RhdGljIGludCBpc19pOTE1X2RldmljZShp bnQgZmQpCj4gK3sKPiArICAgaW50IHJldDsKPiArCWNoYXIgbmFtZVs1XSA9ICIiOwo+ICAKPiAt CXJldHVybiBzdHJjbXAoImk5MTUiLCBuYW1lKSA9PSAwOwo+ICsgICByZXQgPSBfX2dldF9kcm1f ZGV2aWNlX25hbWUoZmQsIG5hbWUpOwo+ICsKPiArCXJldHVybiAhcmV0ICYmIHN0cmNtcCgiaTkx NSIsIG5hbWUpID09IDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgaXNfZXh5bm9zX2RldmljZShp bnQgZmQpCj4gK3sKPiArICAgaW50IHJldDsKPiArCWNoYXIgbmFtZVs1XSA9ICIiOwo+ICsKPiAr ICAgcmV0ID0gX19nZXRfZHJtX2RldmljZV9uYW1lKGZkLCBuYW1lKTsKPiArCj4gKwlyZXR1cm4g IXJldCAmJiBzdHJjbXAoImV4eW5vcyIsIG5hbWUpID09IDA7Cj4gIH0KPiAgCj4gIHN0YXRpYyBp bnQKPiBAQCAtMjMwLDE5ICsyNjIsMzIgQEAgaW50IGRybV9nZXRfY2FyZCh2b2lkKQo+ICAJcmV0 dXJuIC0xOwo+ICB9Cj4gIAo+IC0vKiogT3BlbiB0aGUgZmlyc3QgRFJNIGRldmljZSB3ZSBjYW4g ZmluZCwgc2VhcmNoaW5nIHVwIHRvIDE2IGRldmljZSBub2RlcyAqLwo+IC1pbnQgX19kcm1fb3Bl bl9hbnkodm9pZCkKPiArLyoqCj4gKyAqIF9fZHJtX29wZW5fYW55Ogo+ICsgKgo+ICsgKiBPcGVu IHRoZSBmaXJzdCBEUk0gZGV2aWNlIHdlIGNhbiBmaW5kLCBzZWFyY2hpbmcgdXAgdG8gMTYgZGV2 aWNlIG5vZGVzCj4gKyAqCj4gKyAqIEBjaGlwc2V0OiBPUidkIGZsYWdzIGZvciBlYWNoIGNoaXBz ZXQgdG8gc2VhcmNoLCBlZy4gT1BFTl9JTlRFTHxPUEVOX0VYWU5PUwo+ICsgKgo+ICsgKiBSZXR1 cm5zOgo+ICsgKiBBbiBvcGVuIERSTSBmZCBvciAtMSBvbiBlcnJvcgo+ICsgKi8KPiAraW50IF9f ZHJtX29wZW5fYW55KGludCBjaGlwc2V0KQo+ICB7Cj4gIAlmb3IgKGludCBpID0gMDsgaSA8IDE2 OyBpKyspIHsKPiAgCQljaGFyIG5hbWVbODBdOwo+ICAJCWludCBmZDsKPiArICAgICAgYm9vbCBm b3VuZF9pbnRlbCwgZm91bmRfZXh5bm9zOwo+ICAKPiAgCQlzcHJpbnRmKG5hbWUsICIvZGV2L2Ry aS9jYXJkJXUiLCBpKTsKPiAgCQlmZCA9IG9wZW4obmFtZSwgT19SRFdSKTsKPiAgCQlpZiAoZmQg PT0gLTEpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAtCQlpZiAoaXNfaTkxNV9kZXZpY2UoZmQpICYm IGlzX2ludGVsKGZkKSkKPiArICAgICAgZm91bmRfaW50ZWwgPSAoY2hpcHNldCAmIE9QRU5fSU5U RUwpICYmIGlzX2k5MTVfZGV2aWNlKGZkKSAmJiBpc19pbnRlbChmZCk7Cj4gKyAgICAgIGZvdW5k X2V4eW5vcyA9IChjaGlwc2V0ICYgT1BFTl9FWFlOT1MpICYmIGlzX2V4eW5vc19kZXZpY2UoZmQp Owo+ICsKPiArCQlpZiAoZm91bmRfaW50ZWwgfHwgZm91bmRfZXh5bm9zKQo+ICAJCQlyZXR1cm4g ZmQ7Cj4gIAo+ICAJCWNsb3NlKGZkKTsKPiBAQCAtMjUyLDcgKzI5Nyw3IEBAIGludCBfX2RybV9v cGVuX2FueSh2b2lkKQo+ICAJcmV0dXJuIC0xOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IF9fZHJt X29wZW5fYW55X3JlbmRlcih2b2lkKQo+ICtzdGF0aWMgaW50IF9fZHJtX29wZW5fYW55X3JlbmRl cihpbnQgY2hpcHNldCkKPiAgewo+ICAJY2hhciAqbmFtZTsKPiAgCWludCBpLCBmZDsKPiBAQCAt MzE0LDEwICszNTksMTAgQEAgc3RhdGljIHZvaWQgcXVpZXNjZW50X2dwdV9hdF9leGl0X3JlbmRl cihpbnQgc2lnKQo+ICAgKgo+ICAgKiBSZXR1cm5zOiBhIGk5MTUgZHJtIGZpbGUgZGVzY3JpcHRv cgo+ICAgKi8KPiAtaW50IGRybV9vcGVuX2FueSh2b2lkKQo+ICtpbnQgZHJtX29wZW5fYW55KGlu dCBjaGlwc2V0KQo+ICB7Cj4gIAlzdGF0aWMgaW50IG9wZW5fY291bnQ7Cj4gLQlpbnQgZmQgPSBf X2RybV9vcGVuX2FueSgpOwo+ICsJaW50IGZkID0gX19kcm1fb3Blbl9hbnkoY2hpcHNldCk7Cj4g IAo+ICAJaWd0X3JlcXVpcmUoZmQgPj0gMCk7Cj4gIAo+IEBAIC0zMjUsNyArMzcwLDcgQEAgaW50 IGRybV9vcGVuX2FueSh2b2lkKQo+ICAJCXJldHVybiBmZDsKPiAgCj4gIAlnZW1fcXVpZXNjZW50 X2dwdShmZCk7Cj4gLQlhdF9leGl0X2RybV9mZCA9IF9fZHJtX29wZW5fYW55KCk7Cj4gKwlhdF9l eGl0X2RybV9mZCA9IF9fZHJtX29wZW5fYW55KGNoaXBzZXQpOwo+ICAJaWd0X2luc3RhbGxfZXhp dF9oYW5kbGVyKHF1aWVzY2VudF9ncHVfYXRfZXhpdCk7Cj4gIAo+ICAJcmV0dXJuIGZkOwo+IEBA IC0zMzksOSArMzg0LDkgQEAgaW50IGRybV9vcGVuX2FueSh2b2lkKQo+ICAgKiBSZXR1cm5zOgo+ ICAgKiBUaGUgaTkxNSBkcm0gZmlsZSBkZXNjcmlwdG9yIG9yIC0xIG9uIGVycm9yCj4gICAqLwo+ IC1pbnQgZHJtX29wZW5fYW55X21hc3Rlcih2b2lkKQo+ICtpbnQgZHJtX29wZW5fYW55X21hc3Rl cihpbnQgY2hpcHNldCkKPiAgewo+IC0JaW50IGZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlpbnQg ZmQgPSBkcm1fb3Blbl9hbnkoY2hpcHNldCk7Cj4gIAo+ICAJaWd0X3JlcXVpcmUoZmQgPj0gMCk7 Cj4gIAlpZ3RfcmVxdWlyZV9mKGRybVNldE1hc3RlcihmZCkgPT0gMCwgIkNhbid0IGJlY29tZSBE Uk0gbWFzdGVyLCAiCj4gQEAgLTM1OCwxOSArNDAzLDE5IEBAIGludCBkcm1fb3Blbl9hbnlfbWFz dGVyKHZvaWQpCj4gICAqIFJldHVybnM6Cj4gICAqIFRoZSBpOTE1IGRybSBmaWxlIGRlc2NyaXB0 b3Igb3IgLTEgb24gZXJyb3IKPiAgICovCj4gLWludCBkcm1fb3Blbl9hbnlfcmVuZGVyKHZvaWQp Cj4gK2ludCBkcm1fb3Blbl9hbnlfcmVuZGVyKGludCBjaGlwc2V0KQo+ICB7Cj4gIAlzdGF0aWMg aW50IG9wZW5fY291bnQ7Cj4gLQlpbnQgZmQgPSBfX2RybV9vcGVuX2FueV9yZW5kZXIoKTsKPiAr CWludCBmZCA9IF9fZHJtX29wZW5fYW55X3JlbmRlcihjaGlwc2V0KTsKPiAgCj4gIAkvKiBubyBy ZW5kZXIgbm9kZXMsIGZhbGxiYWNrIHRvIGRybV9vcGVuX2FueSgpICovCj4gIAlpZiAoZmQgPT0g LTEpCj4gLQkJcmV0dXJuIGRybV9vcGVuX2FueSgpOwo+ICsJCXJldHVybiBkcm1fb3Blbl9hbnko Y2hpcHNldCk7Cj4gIAo+ICAJaWYgKF9fc3luY19mZXRjaF9hbmRfYWRkKCZvcGVuX2NvdW50LCAx KSkKPiAgCQlyZXR1cm4gZmQ7Cj4gIAo+IC0JYXRfZXhpdF9kcm1fcmVuZGVyX2ZkID0gX19kcm1f b3Blbl9hbnkoKTsKPiArCWF0X2V4aXRfZHJtX3JlbmRlcl9mZCA9IF9fZHJtX29wZW5fYW55KGNo aXBzZXQpOwo+ICAJZ2VtX3F1aWVzY2VudF9ncHUoZmQpOwo+ICAJaWd0X2luc3RhbGxfZXhpdF9o YW5kbGVyKHF1aWVzY2VudF9ncHVfYXRfZXhpdF9yZW5kZXIpOwo+ICAKPiBkaWZmIC0tZ2l0IGEv bGliL2RybXRlc3QuaCBiL2xpYi9kcm10ZXN0LmgKPiBpbmRleCA1MDhjYzgzLi4xYWE4ZTE4IDEw MDY0NAo+IC0tLSBhL2xpYi9kcm10ZXN0LmgKPiArKysgYi9saWIvZHJtdGVzdC5oCj4gQEAgLTM4 LDYgKzM4LDEwIEBACj4gIAo+ICAjaW5jbHVkZSAiaW50ZWxfYmF0Y2hidWZmZXIuaCIKPiAgCj4g KyNkZWZpbmUgT1BFTl9JTlRFTCAweDEKPiArI2RlZmluZSBPUEVOX0VYWU5PUyAweDEgPDwgMQo+ ICsjZGVmaW5lIE9QRU5fQU5ZX0dQVSBPUEVOX0lOVEVMfE9QRU5fRVhZTk9TCj4gKwo+ICAjaWZk ZWYgQU5EUk9JRAo+ICAjaWZuZGVmIEhBVkVfTU1BUDY0Cj4gIGV4dGVybiB2b2lkKiAgX19tbWFw Mih2b2lkICosIHNpemVfdCwgaW50LCBpbnQsIGludCwgb2ZmX3QpOwo+IEBAIC03MSwxMCArNzUs MTAgQEAgc3RhdGljIGlubGluZSB2b2lkICppZ3RfbW1hcDY0KHZvaWQgKmFkZHIsIHNpemVfdCBs ZW5ndGgsIGludCBwcm90LCBpbnQgZmxhZ3MsCj4gICNkZWZpbmUgQUxJR04odiwgYSkgKCgodikg KyAoYSktMSkgJiB+KChhKS0xKSkKPiAgCj4gIGludCBkcm1fZ2V0X2NhcmQodm9pZCk7Cj4gLWlu dCBfX2RybV9vcGVuX2FueSh2b2lkKTsKPiAtaW50IGRybV9vcGVuX2FueSh2b2lkKTsKPiAtaW50 IGRybV9vcGVuX2FueV9tYXN0ZXIodm9pZCk7Cj4gLWludCBkcm1fb3Blbl9hbnlfcmVuZGVyKHZv aWQpOwo+ICtpbnQgX19kcm1fb3Blbl9hbnkoaW50IGNoaXBzZXQpOwo+ICtpbnQgZHJtX29wZW5f YW55KGludCBjaGlwc2V0KTsKPiAraW50IGRybV9vcGVuX2FueV9tYXN0ZXIoaW50IGNoaXBzZXQp Owo+ICtpbnQgZHJtX29wZW5fYW55X3JlbmRlcihpbnQgY2hpcHNldCk7Cj4gIAo+ICB2b2lkIGdl bV9xdWllc2NlbnRfZ3B1KGludCBmZCk7Cj4gIAo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2d0LmMg Yi9saWIvaWd0X2d0LmMKPiBpbmRleCA4NGFhNWQzLi44NjcwNzQ1IDEwMDY0NAo+IC0tLSBhL2xp Yi9pZ3RfZ3QuYwo+ICsrKyBiL2xpYi9pZ3RfZ3QuYwo+IEBAIC0xNzgsMTQgKzE3OCwxNCBAQCBo YW5nX2hlbHBlcl9wcm9jZXNzKHBpZF90IHBpZCwgaW50IGZkKQo+ICAgKiBJbiB0ZXN0cyB3aXRo IHN1YnRlc3RzIHRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBvdXRzaWRlIG9mIGZhaWx1cmUK PiAgICogY2F0Y2hpbmcgY29kZSBibG9ja3MgbGlrZSAjaWd0X2ZpeHR1cmUgb3IgI2lndF9zdWJ0 ZXN0Lgo+ICAgKi8KPiAtaW50IGlndF9mb3JrX2hhbmdfaGVscGVyKHZvaWQpCj4gK2ludCBpZ3Rf Zm9ya19oYW5nX2hlbHBlcihpbnQgY2hpcHNldCkKPiAgewo+ICAJaW50IGZkLCBnZW47Cj4gIAo+ ICAJaWYgKGlndF9vbmx5X2xpc3Rfc3VidGVzdHMoKSkKPiAgCQlyZXR1cm4gMTsKPiAgCj4gLQlm ZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9hbnkoY2hpcHNldCk7Cj4gIAlp ZiAoZmQgPT0gLTEpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2d0 LmggYi9saWIvaWd0X2d0LmgKPiBpbmRleCA1MTA1NDIzLi45ZDQzMzIyIDEwMDY0NAo+IC0tLSBh L2xpYi9pZ3RfZ3QuaAo+ICsrKyBiL2xpYi9pZ3RfZ3QuaAo+IEBAIC0zNiw3ICszNiw3IEBAIHR5 cGVkZWYgc3RydWN0IGlndF9oYW5nX3Jpbmcgewo+ICBzdHJ1Y3QgaWd0X2hhbmdfcmluZyBpZ3Rf aGFuZ19yaW5nKGludCBmZCwgaW50IHJpbmcpOwo+ICB2b2lkIGlndF9wb3N0X2hhbmdfcmluZyhp bnQgZmQsIHN0cnVjdCBpZ3RfaGFuZ19yaW5nIGFyZyk7Cj4gIAo+IC1pbnQgaWd0X2ZvcmtfaGFu Z19oZWxwZXIodm9pZCk7Cj4gK2ludCBpZ3RfZm9ya19oYW5nX2hlbHBlcihpbnQgY2hpcHNldCk7 Cj4gIHZvaWQgaWd0X3N0b3BfaGFuZ19oZWxwZXIodm9pZCk7Cj4gIAo+ICBpbnQgaWd0X29wZW5f Zm9yY2V3YWtlX2hhbmRsZSh2b2lkKTsKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuYyBiL2xp Yi9pZ3Rfa21zLmMKPiBpbmRleCA5YzEzMWYwLi5lYTAzMjE5IDEwMDY0NAo+IC0tLSBhL2xpYi9p Z3Rfa21zLmMKPiArKysgYi9saWIvaWd0X2ttcy5jCj4gQEAgLTE4MDAsMTQgKzE4MDAsMTYgQEAg dm9pZCBpZ3Rfd2FpdF9mb3JfdmJsYW5rKGludCBkcm1fZmQsIGVudW0gcGlwZSBwaXBlKQo+ICAg Kgo+ICAgKiBBbiBleGl0IGhhbmRsZXIgaXMgaW5zdGFsbGVkIHRvIGVuc3VyZSBjb25uZWN0b3Jz IGFyZSByZXNldCB3aGVuIHRoZSB0ZXN0Cj4gICAqIGV4aXRzLgo+ICsgKgo+ICsgKiBAY2hpcHNl dCBPUidkIGZsYWdzIHNlbGVjdGluZyB0aGUgY2hpcHNldHMgdG8gb3BlcmF0ZSBvbgo+ICAgKi8K PiAtdm9pZCBpZ3RfZW5hYmxlX2Nvbm5lY3RvcnModm9pZCkKPiArdm9pZCBpZ3RfZW5hYmxlX2Nv bm5lY3RvcnMoaW50IGNoaXBzZXQpCj4gIHsKPiAgCWRybU1vZGVSZXMgKnJlczsKPiAgCWRybU1v ZGVDb25uZWN0b3IgKmM7Cj4gIAlpbnQgZHJtX2ZkOwo+ICAKPiAtCWRybV9mZCA9IGRybV9vcGVu X2FueSgpOwo+ICsJZHJtX2ZkID0gZHJtX29wZW5fYW55KGNoaXBzZXQpOwo+ICAKPiAgCXJlcyA9 IGRybU1vZGVHZXRSZXNvdXJjZXMoZHJtX2ZkKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3Rf a21zLmggYi9saWIvaWd0X2ttcy5oCj4gaW5kZXggNTY1ZGYxNC4uZTllNGZjMyAxMDA2NDQKPiAt LS0gYS9saWIvaWd0X2ttcy5oCj4gKysrIGIvbGliL2lndF9rbXMuaAo+IEBAIC0yNzAsNyArMjcw LDcgQEAgdm9pZCBpZ3Rfd2FpdF9mb3JfdmJsYW5rKGludCBkcm1fZmQsIGVudW0gcGlwZSBwaXBl KTsKPiAgCj4gICNkZWZpbmUgSUdUX0ZJWEVEKGksZikJKChpKSA8PCAxNiB8IChmKSkKPiAgCj4g LXZvaWQgaWd0X2VuYWJsZV9jb25uZWN0b3JzKHZvaWQpOwo+ICt2b2lkIGlndF9lbmFibGVfY29u bmVjdG9ycyhpbnQgY2hpcHNldCk7Cj4gIHZvaWQgaWd0X3Jlc2V0X2Nvbm5lY3RvcnModm9pZCk7 Cj4gIAo+ICAjZGVmaW5lIEVESURfTEVOR1RIIDEyOAo+IGRpZmYgLS1naXQgYS90ZXN0cy9jb3Jl X2dldF9jbGllbnRfYXV0aC5jIGIvdGVzdHMvY29yZV9nZXRfY2xpZW50X2F1dGguYwo+IGluZGV4 IGJiZmRkZGYuLjI0ZGJmZjAgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvY29yZV9nZXRfY2xpZW50X2F1 dGguYwo+ICsrKyBiL3Rlc3RzL2NvcmVfZ2V0X2NsaWVudF9hdXRoLmMKPiBAQCAtODQsNyArODQs NyBAQCBpZ3RfbWFpbgo+ICB7Cj4gIAkvKiByb290ICh3aGljaCB3ZSBydW4gaWd0IGFzKSBzaG91 bGQgYWx3YXlzIGJlIGF1dGhlbnRpY2F0ZWQgKi8KPiAgCWlndF9zdWJ0ZXN0KCJzaW1wbGUiKSB7 Cj4gLQkJaW50IGZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJaW50IGZkID0gZHJtX29wZW5fYW55 KE9QRU5fSU5URUwpOwo+ICAKPiAgCQlpZ3RfYXNzZXJ0KGNoZWNrX2F1dGgoZmQpID09IHRydWUp Owo+ICAKPiBAQCAtOTIsOCArOTIsOCBAQCBpZ3RfbWFpbgo+ICAJfQo+ICAKPiAgCWlndF9zdWJ0 ZXN0KCJtYXN0ZXItZHJvcCIpIHsKPiAtCQlpbnQgZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiAtCQlp bnQgZmQyID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJaW50IGZkID0gZHJtX29wZW5fYW55KE9QRU5f SU5URUwpOwo+ICsJCWludCBmZDIgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJ CWlndF9hc3NlcnQoY2hlY2tfYXV0aChmZDIpID09IHRydWUpOwo+ICAKPiBkaWZmIC0tZ2l0IGEv dGVzdHMvY29yZV9nZXRjbGllbnQuYyBiL3Rlc3RzL2NvcmVfZ2V0Y2xpZW50LmMKPiBpbmRleCA3 NTk4ZTBmLi5iNmRlYzJlIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2NvcmVfZ2V0Y2xpZW50LmMKPiAr KysgYi90ZXN0cy9jb3JlX2dldGNsaWVudC5jCj4gQEAgLTM5LDcgKzM5LDcgQEAgaWd0X3NpbXBs ZV9tYWluCj4gIAlpbnQgZmQsIHJldDsKPiAgCWRybV9jbGllbnRfdCBjbGllbnQ7Cj4gIAo+IC0J ZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ ICAKPiAgCS8qIExvb2sgZm9yIGNsaWVudCBpbmRleCAwLiAgVGhpcyBzaG91bGQgZXhpc3Qgd2hl dGhlciB3ZSdyZSBvcGVyYXRpbmcKPiAgCSAqIG9uIGFuIG90aGVyd2lzZSB1bnVzZWQgZHJtIGRl dmljZSwgb3IgdGhlIFggU2VydmVyIGlzIHJ1bm5pbmcgb24KPiBkaWZmIC0tZ2l0IGEvdGVzdHMv Y29yZV9nZXRzdGF0cy5jIGIvdGVzdHMvY29yZV9nZXRzdGF0cy5jCj4gaW5kZXggNTJhMmQyMC4u NDkxMWQwYiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9jb3JlX2dldHN0YXRzLmMKPiArKysgYi90ZXN0 cy9jb3JlX2dldHN0YXRzLmMKPiBAQCAtNDgsNyArNDgsNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAg CWludCBmZCwgcmV0Owo+ICAJZHJtX3N0YXRzX3Qgc3RhdHM7Cj4gIAo+IC0JZmQgPSBkcm1fb3Bl bl9hbnkoKTsKPiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCXJldCA9 IGlvY3RsKGZkLCBEUk1fSU9DVExfR0VUX1NUQVRTLCAmc3RhdHMpOwo+ICAJaWd0X2Fzc2VydChy ZXQgPT0gMCk7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2NvcmVfZ2V0dmVyc2lvbi5jIGIvdGVzdHMv Y29yZV9nZXR2ZXJzaW9uLmMKPiBpbmRleCAzMDEzMmU0Li5mMTRlN2ZhIDEwMDY0NAo+IC0tLSBh L3Rlc3RzL2NvcmVfZ2V0dmVyc2lvbi5jCj4gKysrIGIvdGVzdHMvY29yZV9nZXR2ZXJzaW9uLmMK PiBAQCAtMzcsNyArMzcsNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCWludCBmZDsKPiAgCWRybVZl cnNpb25QdHIgdjsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1fb3Bl bl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAl2ID0gZHJtR2V0VmVyc2lvbihmZCk7Cj4gIAlpZ3RfYXNz ZXJ0KHN0cmxlbih2LT5uYW1lKSAhPSAwKTsKPiAgCWlndF9hc3NlcnQoc3RybGVuKHYtPmRhdGUp ICE9IDApOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9kcm1faW1wb3J0X2V4cG9ydC5jIGIvdGVzdHMv ZHJtX2ltcG9ydF9leHBvcnQuYwo+IGluZGV4IDU3YjEzZGQuLmM0NDJmN2YgMTAwNjQ0Cj4gLS0t IGEvdGVzdHMvZHJtX2ltcG9ydF9leHBvcnQuYwo+ICsrKyBiL3Rlc3RzL2RybV9pbXBvcnRfZXhw b3J0LmMKPiBAQCAtMTM4LDE0ICsxMzgsMTQgQEAgcHRocmVhZF90IHRlc3RfdGhyZWFkX2lkNDsK PiAgCj4gIGlndF9tYWluIHsKPiAgCWlndF9maXh0dXJlIHsKPiAtCQlmZDEgPSBkcm1fb3Blbl9h bnkoKTsKPiArCQlmZDEgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAkJaWd0X2Fzc2Vy dChmZDEgPj0gMCk7Cj4gIAkJYnVmbWdyMSA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZmQx LCA4ICoxMDI0KTsKPiAgCQlpZ3RfYXNzZXJ0KGJ1Zm1ncjEpOwo+ICAKPiAgCQlkcm1faW50ZWxf YnVmbWdyX2dlbV9lbmFibGVfcmV1c2UoYnVmbWdyMSk7Cj4gIAo+IC0JCWZkID0gZHJtX29wZW5f YW55KCk7Cj4gKwkJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAkJaWd0X2Fzc2Vy dChmZCA+PSAwKTsKPiAgCQlidWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0KGZkLCA4 ICoxMDI0KTsKPiAgCQlpZ3RfYXNzZXJ0KGJ1Zm1ncik7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2Ry bV9yZWFkLmMgYi90ZXN0cy9kcm1fcmVhZC5jCj4gaW5kZXggMzM0ZjI2YS4uY2I2NGNhNSAxMDA2 NDQKPiAtLS0gYS90ZXN0cy9kcm1fcmVhZC5jCj4gKysrIGIvdGVzdHMvZHJtX3JlYWQuYwo+IEBA IC0yMDIsNyArMjAyLDcgQEAgaWd0X21haW4KPiAgCXNpZ2ludGVycnVwdChTSUdBTFJNLCAxKTsK PiAgCj4gIAlpZ3RfZml4dHVyZSB7Cj4gLQkJZmQgPSBkcm1fb3Blbl9hbnlfbWFzdGVyKCk7Cj4g KwkJZmQgPSBkcm1fb3Blbl9hbnlfbWFzdGVyKE9QRU5fSU5URUwpOwo+ICAJCWlndF9yZXF1aXJl KHBpcGUwX2VuYWJsZWQoZmQpKTsKPiAgCX0KPiAgCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2RybV92 bWFfbGltaXRlci5jIGIvdGVzdHMvZHJtX3ZtYV9saW1pdGVyLmMKPiBpbmRleCBiYjcxMDJmLi45 NzYxOWNjIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2RybV92bWFfbGltaXRlci5jCj4gKysrIGIvdGVz dHMvZHJtX3ZtYV9saW1pdGVyLmMKPiBAQCAtNjQsNyArNjQsNyBAQCBpZ3Rfc2ltcGxlX21haW4K PiAgCj4gIAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9h bnkoKTsKPiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCWJ1Zm1nciA9 IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZmQsIDQwOTYpOwo+ICAJZHJtX2ludGVsX2J1Zm1n cl9nZW1fZW5hYmxlX3JldXNlKGJ1Zm1ncik7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2RybV92bWFf bGltaXRlcl9jYWNoZWQuYyBiL3Rlc3RzL2RybV92bWFfbGltaXRlcl9jYWNoZWQuYwo+IGluZGV4 IDc0ZDBjMWEuLjgyZTQ0YmUgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZHJtX3ZtYV9saW1pdGVyX2Nh Y2hlZC5jCj4gKysrIGIvdGVzdHMvZHJtX3ZtYV9saW1pdGVyX2NhY2hlZC5jCj4gQEAgLTYzLDcg KzYzLDcgQEAgaWd0X3NpbXBsZV9tYWluCj4gIAo+ICAJaWd0X3NraXBfb25fc2ltdWxhdGlvbigp Owo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVO X0lOVEVMKTsKPiAgCj4gIAlidWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0KGZkLCA0 MDk2KTsKPiAgCWRybV9pbnRlbF9idWZtZ3JfZ2VtX2VuYWJsZV9yZXVzZShidWZtZ3IpOwo+IGRp ZmYgLS1naXQgYS90ZXN0cy9kcm1fdm1hX2xpbWl0ZXJfY3B1LmMgYi90ZXN0cy9kcm1fdm1hX2xp bWl0ZXJfY3B1LmMKPiBpbmRleCBlMTdhNjc5Li5jNTA1ODczIDEwMDY0NAo+IC0tLSBhL3Rlc3Rz L2RybV92bWFfbGltaXRlcl9jcHUuYwo+ICsrKyBiL3Rlc3RzL2RybV92bWFfbGltaXRlcl9jcHUu Ywo+IEBAIC02Myw3ICs2Myw3IEBAIGlndF9zaW1wbGVfbWFpbgo+ICAKPiAgCWlndF9za2lwX29u X3NpbXVsYXRpb24oKTsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1f b3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJYnVmbWdyID0gZHJtX2ludGVsX2J1Zm1ncl9n ZW1faW5pdChmZCwgNDA5Nik7Cj4gIAlkcm1faW50ZWxfYnVmbWdyX2dlbV9lbmFibGVfcmV1c2Uo YnVmbWdyKTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZHJtX3ZtYV9saW1pdGVyX2d0dC5jIGIvdGVz dHMvZHJtX3ZtYV9saW1pdGVyX2d0dC5jCj4gaW5kZXggMzAzZTg2ZC4uMzgzOTMyYiAxMDA2NDQK PiAtLS0gYS90ZXN0cy9kcm1fdm1hX2xpbWl0ZXJfZ3R0LmMKPiArKysgYi90ZXN0cy9kcm1fdm1h X2xpbWl0ZXJfZ3R0LmMKPiBAQCAtNjQsNyArNjQsNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCj4g IAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnkoKTsK PiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCWJ1Zm1nciA9IGRybV9p bnRlbF9idWZtZ3JfZ2VtX2luaXQoZmQsIDQwOTYpOwo+ICAJZHJtX2ludGVsX2J1Zm1ncl9nZW1f ZW5hYmxlX3JldXNlKGJ1Zm1ncik7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2Rydl9nZXRwYXJhbXMu YyBiL3Rlc3RzL2Rydl9nZXRwYXJhbXMuYwo+IGluZGV4IGYzODM2NjIuLjcxYzA1OWMgMTAwNjQ0 Cj4gLS0tIGEvdGVzdHMvZHJ2X2dldHBhcmFtcy5jCj4gKysrIGIvdGVzdHMvZHJ2X2dldHBhcmFt cy5jCj4gQEAgLTQxLDcgKzQxLDcgQEAgaW50IGRldmlkOwo+ICBzdGF0aWMgdm9pZAo+ICBpbml0 KHZvaWQpCj4gIHsKPiAtCWRybV9mZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZHJtX2ZkID0gZHJt X29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAJZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRy bV9mZCk7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2Rydl9oYW5nbWFuLmMgYi90ZXN0 cy9kcnZfaGFuZ21hbi5jCj4gaW5kZXggZDkzYmVmMy4uNWFjZTgzNCAxMDA2NDQKPiAtLS0gYS90 ZXN0cy9kcnZfaGFuZ21hbi5jCj4gKysrIGIvdGVzdHMvZHJ2X2hhbmdtYW4uYwo+IEBAIC0yMjQs NyArMjI0LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9lcnJvcl9zdGF0ZV9iYXNpYyh2b2lkKQo+ICAJ Y2xlYXJfZXJyb3Jfc3RhdGUoKTsKPiAgCWFzc2VydF9lcnJvcl9zdGF0ZV9jbGVhcigpOwo+ICAK PiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVM KTsKPiAgCXN1Ym1pdF9iYXRjaChmZCwgSTkxNV9FWEVDX1JFTkRFUiwgdHJ1ZSk7Cj4gIAljbG9z ZShmZCk7Cj4gIAo+IEBAIC0zNzYsNyArMzc2LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9lcnJvcl9z dGF0ZV9jYXB0dXJlKHVuc2lnbmVkIHJpbmdfaWQsCj4gIAo+ICAJY2xlYXJfZXJyb3Jfc3RhdGUo KTsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9hbnkoT1BF Tl9JTlRFTCk7Cj4gIAlnZW4gPSBpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpOwo+ ICAJY21kX3BhcnNlciA9IHVzZXNfY21kX3BhcnNlcihmZCwgZ2VuKTsKPiAgCj4gZGlmZiAtLWdp dCBhL3Rlc3RzL2Rydl9zdXNwZW5kLmMgYi90ZXN0cy9kcnZfc3VzcGVuZC5jCj4gaW5kZXggZDY3 YTc5NC4uNDIwMWUzYSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9kcnZfc3VzcGVuZC5jCj4gKysrIGIv dGVzdHMvZHJ2X3N1c3BlbmQuYwo+IEBAIC0xODIsNyArMTgyLDcgQEAgaWd0X21haW4KPiAgCWln dF9za2lwX29uX3NpbXVsYXRpb24oKTsKPiAgCj4gIAlpZ3RfZml4dHVyZQo+IC0JCWZkID0gZHJt X29wZW5fYW55KCk7Cj4gKwkJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJ aWd0X3N1YnRlc3QoImZlbmNlLXJlc3RvcmUtdGlsZWQydW50aWxlZCIpCj4gIAkJdGVzdF9mZW5j ZV9yZXN0b3JlKGZkLCB0cnVlLCBmYWxzZSk7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2V2aWN0aW9u X2NvbW1vbi5jIGIvdGVzdHMvZXZpY3Rpb25fY29tbW9uLmMKPiBpbmRleCA4MmNkYWViLi4zNThj ODhjIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2V2aWN0aW9uX2NvbW1vbi5jCj4gKysrIGIvdGVzdHMv ZXZpY3Rpb25fY29tbW9uLmMKPiBAQCAtMjA4LDcgKzIwOCw3IEBAIHN0YXRpYyBpbnQgZm9ya2lu Z19ldmljdGlvbnMoaW50IGZkLCBzdHJ1Y3QgaWd0X2V2aWN0aW9uX3Rlc3Rfb3BzICpvcHMsCj4g IAkJaWd0X3Blcm11dGVfYXJyYXkoYm8sIGJvX2NvdW50LCBleGNoYW5nZV91aW50MzJfdCk7Cj4g IAo+ICAJCWlmIChmbGFncyAmIEZPUktJTkdfRVZJQ1RJT05TX0RVUF9EUk1GRCkgewo+IC0JCQly ZWFsZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCQkJcmVhbGZkID0gZHJtX29wZW5fYW55KE9QRU5f SU5URUwpOwo+ICAKPiAgCQkJLyogV2UgY2FuIG92ZXJ3cml0ZSB0aGUgYm8gYXJyYXkgc2luY2Ug d2UncmUgZm9ya2VkLiAqLwo+ICAJCQlmb3IgKGwgPSAwOyBsIDwgYm9fY291bnQ7IGwrKykgewo+ IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fYWxpdmUuYyBiL3Rlc3RzL2dlbV9hbGl2ZS5jCj4gaW5k ZXggMzkwYTU0Zi4uYWRmNTI0ZiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fYWxpdmUuYwo+ICsr KyBiL3Rlc3RzL2dlbV9hbGl2ZS5jCj4gQEAgLTE0LDcgKzE0LDcgQEAgaW50IG1haW4odm9pZCkK PiAgCj4gIAlzaWduYWwoU0lHQUxSTSwgU0lHX0lHTik7Cj4gIAo+IC0JZmQgPSBfX2RybV9vcGVu X2FueSgpOwo+ICsJZmQgPSBfX2RybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCWlmIChmZCA8 IDApCj4gIAkJcmV0dXJuIElHVF9FWElUX1NLSVA7Cj4gIAo+IGRpZmYgLS1naXQgYS90ZXN0cy9n ZW1fYmFkX2FkZHJlc3MuYyBiL3Rlc3RzL2dlbV9iYWRfYWRkcmVzcy5jCj4gaW5kZXggNGE0YTU3 MC4uZDMzZDI5NyAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fYmFkX2FkZHJlc3MuYwo+ICsrKyBi L3Rlc3RzL2dlbV9iYWRfYWRkcmVzcy5jCj4gQEAgLTY0LDcgKzY0LDcgQEAgaWd0X3NpbXBsZV9t YWluCj4gIHsKPiAgCWludCBmZDsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQg PSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJYnVmbWdyID0gZHJtX2ludGVsX2J1 Zm1ncl9nZW1faW5pdChmZCwgNDA5Nik7Cj4gIAlkcm1faW50ZWxfYnVmbWdyX2dlbV9lbmFibGVf cmV1c2UoYnVmbWdyKTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX2JhZF9iYXRjaC5jIGIvdGVz dHMvZ2VtX2JhZF9iYXRjaC5jCj4gaW5kZXggZTNkZTNiNi4uNTA5MGIzNCAxMDA2NDQKPiAtLS0g YS90ZXN0cy9nZW1fYmFkX2JhdGNoLmMKPiArKysgYi90ZXN0cy9nZW1fYmFkX2JhdGNoLmMKPiBA QCAtNjAsNyArNjAsNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgewo+ICAJaW50IGZkOwo+ICAKPiAt CWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsK PiAgCj4gIAlidWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0KGZkLCA0MDk2KTsKPiAg CWRybV9pbnRlbF9idWZtZ3JfZ2VtX2VuYWJsZV9yZXVzZShidWZtZ3IpOwo+IGRpZmYgLS1naXQg YS90ZXN0cy9nZW1fYmFkX2JsaXQuYyBiL3Rlc3RzL2dlbV9iYWRfYmxpdC5jCj4gaW5kZXggMzY2 YjE4Mi4uNjU1MmRkZiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fYmFkX2JsaXQuYwo+ICsrKyBi L3Rlc3RzL2dlbV9iYWRfYmxpdC5jCj4gQEAgLTEwMCw3ICsxMDAsNyBAQCBpZ3Rfc2ltcGxlX21h aW4KPiAgCWRybV9pbnRlbF9ibyAqc3JjOwo+ICAJaW50IGZkOwo+ICAKPiAtCWZkID0gZHJtX29w ZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAlidWZt Z3IgPSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0KGZkLCA0MDk2KTsKPiAgCWRybV9pbnRlbF9i dWZtZ3JfZ2VtX2VuYWJsZV9yZXVzZShidWZtZ3IpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1f YmFkX2xlbmd0aC5jIGIvdGVzdHMvZ2VtX2JhZF9sZW5ndGguYwo+IGluZGV4IDI5YjM5MjUuLjA4 NmJhOWIgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX2JhZF9sZW5ndGguYwo+ICsrKyBiL3Rlc3Rz L2dlbV9iYWRfbGVuZ3RoLmMKPiBAQCAtMTI0LDcgKzEyNCw3IEBAIGlndF9zaW1wbGVfbWFpbgo+ ICAKPiAgCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2Fu eSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJY3JlYXRlMChm ZCk7Cj4gIAo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fYmFkX3JlbG9jLmMgYi90ZXN0cy9nZW1f YmFkX3JlbG9jLmMKPiBpbmRleCAzNmQ4YzA5Li5iNDIwMjg0IDEwMDY0NAo+IC0tLSBhL3Rlc3Rz L2dlbV9iYWRfcmVsb2MuYwo+ICsrKyBiL3Rlc3RzL2dlbV9iYWRfcmVsb2MuYwo+IEBAIC0yMDgs NyArMjA4LDcgQEAgaW50IGZkOwo+ICBpZ3RfbWFpbgo+ICB7Cj4gIAlpZ3RfZml4dHVyZSB7Cj4g LQkJZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCQlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVM KTsKPiAgCX0KPiAgCj4gIAlpZ3Rfc3VidGVzdCgibmVnYXRpdmUtcmVsb2MiKQo+IGRpZmYgLS1n aXQgYS90ZXN0cy9nZW1fYmFzaWMuYyBiL3Rlc3RzL2dlbV9iYXNpYy5jCj4gaW5kZXggZjc5YjA2 Ni4uNDAwMTZkMyAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fYmFzaWMuYwo+ICsrKyBiL3Rlc3Rz L2dlbV9iYXNpYy5jCj4gQEAgLTgwLDcgKzgwLDcgQEAgaW50IGZkOwo+ICBpZ3RfbWFpbgo+ICB7 Cj4gIAlpZ3RfZml4dHVyZQo+IC0JCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJZmQgPSBkcm1f b3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJaWd0X3N1YnRlc3QoImJhZC1jbG9zZSIpCj4g IAkJdGVzdF9iYWRfY2xvc2UoZmQpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fY2FjaGluZy5j IGIvdGVzdHMvZ2VtX2NhY2hpbmcuYwo+IGluZGV4IDJmYWQwZWMuLjRkMzZhMGYgMTAwNjQ0Cj4g LS0tIGEvdGVzdHMvZ2VtX2NhY2hpbmcuYwo+ICsrKyBiL3Rlc3RzL2dlbV9jYWNoaW5nLmMKPiBA QCAtMTE5LDcgKzExOSw3IEBAIGlndF9tYWluCj4gIAlpZ3RfZml4dHVyZSB7Cj4gIAkJc3JhbmRv bSgweGRlYWRiZWVmKTsKPiAgCj4gLQkJZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCQlmZCA9IGRy bV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAkJZ2VtX3JlcXVpcmVfY2FjaGluZyhmZCk7 Cj4gIAo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fY29uY3VycmVudF9ibGl0LmMgYi90ZXN0cy9n ZW1fY29uY3VycmVudF9ibGl0LmMKPiBpbmRleCBlMTY5M2JhLi4zNmUxZThiIDEwMDY0NAo+IC0t LSBhL3Rlc3RzL2dlbV9jb25jdXJyZW50X2JsaXQuYwo+ICsrKyBiL3Rlc3RzL2dlbV9jb25jdXJy ZW50X2JsaXQuYwo+IEBAIC02MzcsNyArNjM3LDcgQEAgc3RhdGljIHZvaWQgcnVuX2ZvcmtlZChj b25zdCBzdHJ1Y3QgYWNjZXNzX21vZGUgKm1vZGUsCj4gIAkJZHJtX2ludGVsX2J1Zm1nciAqYnVm bWdyOwo+ICAKPiAgCQkvKiByZWNyZWF0ZSBwcm9jZXNzIGxvY2FsIHZhcmlhYmxlcyAqLwo+IC0J CWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7 Cj4gIAkJYnVmbWdyID0gZHJtX2ludGVsX2J1Zm1ncl9nZW1faW5pdChmZCwgNDA5Nik7Cj4gIAkJ ZHJtX2ludGVsX2J1Zm1ncl9nZW1fZW5hYmxlX3JldXNlKGJ1Zm1ncik7Cj4gIAo+IEBAIC04MzMs NyArODMzLDcgQEAgaWd0X21haW4KPiAgCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKPiAgCj4g IAlpZ3RfZml4dHVyZSB7Cj4gLQkJZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCQlmZCA9IGRybV9v cGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCQlkZXZpZCA9IGludGVsX2dldF9kcm1fZGV2aWQoZmQp Owo+ICAJCWdlbiA9IGludGVsX2dlbihkZXZpZCk7Cj4gIAkJcmVuZGVyY29weSA9IGlndF9nZXRf cmVuZGVyX2NvcHlmdW5jKGRldmlkKTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX2NwdV9yZWxv Yy5jIGIvdGVzdHMvZ2VtX2NwdV9yZWxvYy5jCj4gaW5kZXggYzY3OTA3YS4uODg1MGZlOCAxMDA2 NDQKPiAtLS0gYS90ZXN0cy9nZW1fY3B1X3JlbG9jLmMKPiArKysgYi90ZXN0cy9nZW1fY3B1X3Jl bG9jLmMKPiBAQCAtMTY4LDcgKzE2OCw3IEBAIGlndF9zaW1wbGVfbWFpbgo+ICAJdWludDMyX3Qg KmhhbmRsZXM7Cj4gIAlpbnQgZmQsIGksIGNvdW50Owo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55 KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCW5vb3AgPSBpbnRlbF9n ZXRfZHJtX2RldmlkKGZkKTsKPiAgCj4gIAl1c2VfYmx0ID0gMDsKPiBkaWZmIC0tZ2l0IGEvdGVz dHMvZ2VtX2NzX3ByZWZldGNoLmMgYi90ZXN0cy9nZW1fY3NfcHJlZmV0Y2guYwo+IGluZGV4IDhh OTEyZWYuLjYyYWRjMjggMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX2NzX3ByZWZldGNoLmMKPiAr KysgYi90ZXN0cy9nZW1fY3NfcHJlZmV0Y2guYwo+IEBAIC0xMDMsNyArMTAzLDcgQEAgaWd0X3Np bXBsZV9tYWluCj4gIAo+ICAJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+ICAKPiAtCWZkID0g ZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4g IAlidWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0KGZkLCA0MDk2KTsKPiAgCWlndF9h c3NlcnQoYnVmbWdyKTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX2NzX3RsYi5jIGIvdGVzdHMv Z2VtX2NzX3RsYi5jCj4gaW5kZXggM2RmNGYzNy4uZTM0Zjc4NSAxMDA2NDQKPiAtLS0gYS90ZXN0 cy9nZW1fY3NfdGxiLmMKPiArKysgYi90ZXN0cy9nZW1fY3NfdGxiLmMKPiBAQCAtMTU3LDcgKzE1 Nyw3IEBAIGlndF9tYWluCj4gIAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7Cj4gIAo+ICAJaWd0 X2ZpeHR1cmUgewo+IC0JCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJZmQgPSBkcm1fb3Blbl9h bnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJCS8qIFRoaXMgdGVzdCBpcyB2ZXJ5IHNlbnNpdGl2ZSB0 byByZXNpZHVhbCBndHRfbW0gbm9pc2UgZnJvbSBwcmV2aW91cwo+ICAJCSAqIHRlc3RzLiBUcnkg dG8gcXVpZXQgdGhpbmcgZG93biBmaXJzdC4gKi8KPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX2Rv dWJsZV9pcnFfbG9vcC5jIGIvdGVzdHMvZ2VtX2RvdWJsZV9pcnFfbG9vcC5jCj4gaW5kZXggYTQz ZmQxYS4uN2Q0MzI5MSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fZG91YmxlX2lycV9sb29wLmMK PiArKysgYi90ZXN0cy9nZW1fZG91YmxlX2lycV9sb29wLmMKPiBAQCAtOTksNyArOTksNyBAQCBp Z3Rfc2ltcGxlX21haW4KPiAgCj4gIAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7Cj4gIAo+IC0J ZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ ICAJZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGZkKTsKPiAgCWlndF9yZXF1aXJlX2YoSEFT X0JMVF9SSU5HKGRldmlkKSwKPiAgCQkgICAgICAibm90ICh5ZXQpIGltcGxlbWVudGVkIGZvciBw cmUtc25iXG4iKTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX2R1bW15X3JlbG9jX2xvb3AuYyBi L3Rlc3RzL2dlbV9kdW1teV9yZWxvY19sb29wLmMKPiBpbmRleCA1ZTBhMTBhLi5mYTEwNTQzIDEw MDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9kdW1teV9yZWxvY19sb29wLmMKPiArKysgYi90ZXN0cy9n ZW1fZHVtbXlfcmVsb2NfbG9vcC5jCj4gQEAgLTE4Miw3ICsxODIsNyBAQCBpZ3RfbWFpbgo+ICAK PiAgCWlndF9maXh0dXJlIHsKPiAgCQlpbnQgaTsKPiAtCQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ ICsJCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAJCWRldmlkID0gaW50ZWxfZ2V0 X2RybV9kZXZpZChmZCk7Cj4gIAkJbnVtX3JpbmdzID0gZ2VtX2dldF9udW1fcmluZ3MoZmQpOwo+ ICAJCS8qIE5vdCB5ZXQgaW1wbGVtZW50ZWQgb24gcHJlLXNuYi4gKi8KPiBAQCAtMjA2LDcgKzIw Niw3IEBAIGlndF9tYWluCj4gIAo+ICAJCQlmb3IgKGkgPSAwOyBpIDwgTlVNX0ZEOyBpKyspIHsK PiAgCQkJCXNwcmludGYoYnVmZmVyX25hbWUsICJUYXJnZXQgYnVmZmVyICVkXG4iLCBpKTsKPiAt CQkJCW1mZFtpXSA9IGRybV9vcGVuX2FueSgpOwo+ICsJCQkJbWZkW2ldID0gZHJtX29wZW5fYW55 KE9QRU5fSU5URUwpOwo+ICAJCQkJbWJ1Zm1ncltpXSA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2lu aXQobWZkW2ldLCA0MDk2KTsKPiAgCQkJCWlndF9hc3NlcnRfZihtYnVmbWdyW2ldLAo+ICAJCQkJ CSAgICAgImZhaWwgdG8gaW5pdGlhbGl6ZSBidWYgbWFuYWdlciAiCj4gZGlmZiAtLWdpdCBhL3Rl c3RzL2dlbV9ldmljdF9hbGlnbm1lbnQuYyBiL3Rlc3RzL2dlbV9ldmljdF9hbGlnbm1lbnQuYwo+ IGluZGV4IDAyY2JiM2EuLjNjYmQ5NTkgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX2V2aWN0X2Fs aWdubWVudC5jCj4gKysrIGIvdGVzdHMvZ2VtX2V2aWN0X2FsaWdubWVudC5jCj4gQEAgLTE5Niw3 ICsxOTYsNyBAQCBpZ3RfbWFpbgo+ICAJaW50IHNpemUsIGNvdW50Owo+ICAKPiAgCWlndF9maXh0 dXJlIHsKPiAtCQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJCWZkID0gZHJtX29wZW5fYW55KE9Q RU5fSU5URUwpOwo+ICAJfQo+ICAKPiAgCWlndF9zdWJ0ZXN0KCJtaW5vci1ub3JtYWwiKSB7Cj4g QEAgLTIyNCw3ICsyMjQsNyBAQCBpZ3RfbWFpbgo+ICAJCW1ham9yX2V2aWN0aW9ucyhmZCwgc2l6 ZSwgY291bnQpOwo+ICAJfQo+ICAKPiAtCWlmIChpZ3RfZm9ya19oYW5nX2hlbHBlcigpKSB7Cj4g KwlpZiAoaWd0X2ZvcmtfaGFuZ19oZWxwZXIoT1BFTl9JTlRFTCkpIHsKPiAgCQlpZ3Rfc3VidGVz dCgibWlub3ItaGFuZyIpIHsKPiAgCQkJc2l6ZSA9IDEwMjQgKiAxMDI0Owo+ICAJCQljb3VudCA9 IDMqZ2VtX2FwZXJ0dXJlX3NpemUoZmQpIC8gc2l6ZSAvIDQ7Cj4gZGlmZiAtLWdpdCBhL3Rlc3Rz L2dlbV9ldmljdF9ldmVyeXRoaW5nLmMgYi90ZXN0cy9nZW1fZXZpY3RfZXZlcnl0aGluZy5jCj4g aW5kZXggMTVhYjM4Mi4uYjVhZjFiNSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fZXZpY3RfZXZl cnl0aGluZy5jCj4gKysrIGIvdGVzdHMvZ2VtX2V2aWN0X2V2ZXJ5dGhpbmcuYwo+IEBAIC0xODcs NyArMTg3LDcgQEAgaWd0X21haW4KPiAgCWZkID0gLTE7Cj4gIAo+ICAJaWd0X2ZpeHR1cmUgewo+ IC0JCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRF TCk7Cj4gIAo+ICAJCXNpemUgPSAxMDI0ICogMTAyNDsKPiAgCQljb3VudCA9IDMqZ2VtX2FwZXJ0 dXJlX3NpemUoZmQpIC8gc2l6ZSAvIDQ7Cj4gQEAgLTIzNiw3ICsyMzYsNyBAQCBpZ3RfbWFpbgo+ ICAJCXRlc3RfbWFqb3JfZXZpY3Rpb25zKGZkLCBzaXplLCBjb3VudCk7Cj4gIAl9Cj4gIAo+IC0J aWYgKGlndF9mb3JrX2hhbmdfaGVscGVyKCkpIHsKPiArCWlmIChpZ3RfZm9ya19oYW5nX2hlbHBl cihPUEVOX0lOVEVMKSkgewo+ICAJCWlndF9zdWJ0ZXN0KCJzd2FwcGluZy1oYW5nIikKPiAgCQkJ dGVzdF9zd2FwcGluZ19ldmljdGlvbnMoZmQsIHNpemUsIGNvdW50KTsKPiAgCj4gZGlmZiAtLWdp dCBhL3Rlc3RzL2dlbV9leGVjX2JhZF9kb21haW5zLmMgYi90ZXN0cy9nZW1fZXhlY19iYWRfZG9t YWlucy5jCj4gaW5kZXggNjllOTE4OS4uOTA1YjU3MSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1f ZXhlY19iYWRfZG9tYWlucy5jCj4gKysrIGIvdGVzdHMvZ2VtX2V4ZWNfYmFkX2RvbWFpbnMuYwo+ IEBAIC0xNTYsNyArMTU2LDcgQEAgZHJtX2ludGVsX2JvICp0bXA7Cj4gIGlndF9tYWluCj4gIHsK PiAgCWlndF9maXh0dXJlIHsKPiAtCQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJCWZkID0gZHJt X29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCQlidWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdy X2dlbV9pbml0KGZkLCA0MDk2KTsKPiAgCQlkcm1faW50ZWxfYnVmbWdyX2dlbV9lbmFibGVfcmV1 c2UoYnVmbWdyKTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX2V4ZWNfYmlnLmMgYi90ZXN0cy9n ZW1fZXhlY19iaWcuYwo+IGluZGV4IDE1MzM3ZTYuLjU5ZWNkMjggMTAwNjQ0Cj4gLS0tIGEvdGVz dHMvZ2VtX2V4ZWNfYmlnLmMKPiArKysgYi90ZXN0cy9nZW1fZXhlY19iaWcuYwo+IEBAIC0xNjYs NyArMTY2LDcgQEAgaWd0X3NpbXBsZV9tYWluCj4gIAl1bnNpZ25lZCBiYXRjaF9zaXplOwo+ICAJ aW50IG1heDsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9h bnkoT1BFTl9JTlRFTCk7Cj4gIAltYXggPSAzICogZ2VtX2FwZXJ0dXJlX3NpemUoZmQpIC8gNDsK PiAgCj4gIAlpbnRlbF9yZXF1aXJlX21lbW9yeSgxLCBtYXgsIENIRUNLX1JBTSk7Cj4gZGlmZiAt LWdpdCBhL3Rlc3RzL2dlbV9leGVjX2JsdC5jIGIvdGVzdHMvZ2VtX2V4ZWNfYmx0LmMKPiBpbmRl eCBiM2MxY2E2Li41ODMwNTI2IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9leGVjX2JsdC5jCj4g KysrIGIvdGVzdHMvZ2VtX2V4ZWNfYmx0LmMKPiBAQCAtMTk2LDcgKzE5Niw3IEBAIHN0YXRpYyB2 b2lkIHJ1bihpbnQgb2JqZWN0X3NpemUsIGJvb2wgZHVtYikKPiAgCWludCBmZCwgbGVuLCBjb3Vu dDsKPiAgCWludCByaW5nOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRy bV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCWlmIChkdW1iKQo+ICAJCWhhbmRsZSA9IGR1bWJf Y3JlYXRlKGZkKTsKPiAgCWVsc2UKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX2V4ZWNfZmF1bHRp bmdfcmVsb2MuYyBiL3Rlc3RzL2dlbV9leGVjX2ZhdWx0aW5nX3JlbG9jLmMKPiBpbmRleCA4Yjc4 MGE2Li41NGUxMThhIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9leGVjX2ZhdWx0aW5nX3JlbG9j LmMKPiArKysgYi90ZXN0cy9nZW1fZXhlY19mYXVsdGluZ19yZWxvYy5jCj4gQEAgLTE3NSw3ICsx NzUsNyBAQCBzdGF0aWMgdm9pZCBydW4oaW50IG9iamVjdF9zaXplKQo+ICAJaW50IGZkLCBsZW47 Cj4gIAlpbnQgcmluZzsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1f b3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAlkZXZpZCA9IGludGVsX2dldF9kcm1fZGV2aWQoZmQp Owo+ICAJaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7Cj4gIAlzcmMgPSBnZW1fY3JlYXRl KGZkLCBvYmplY3Rfc2l6ZSk7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9leGVjX2x1dF9oYW5k bGUuYyBiL3Rlc3RzL2dlbV9leGVjX2x1dF9oYW5kbGUuYwo+IGluZGV4IGMyZDQ5MGYuLmE1ZTAy ZmQgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX2V4ZWNfbHV0X2hhbmRsZS5jCj4gKysrIGIvdGVz dHMvZ2VtX2V4ZWNfbHV0X2hhbmRsZS5jCj4gQEAgLTEzMCw3ICsxMzAsNyBAQCBpZ3Rfc2ltcGxl X21haW4KPiAgCj4gIAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7Cj4gIAo+IC0JZmQgPSBkcm1f b3Blbl9hbnkoKTsKPiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCWZv ciAobiA9IDA7IG4gPCBNQVhfTlVNX0VYRUM7IG4rKykgewo+ICAJCWdlbV9leGVjW25dLmhhbmRs ZSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fZXhlY19u b3AuYyBiL3Rlc3RzL2dlbV9leGVjX25vcC5jCj4gaW5kZXggZTA3MDllOS4uN2Q1ZDVhZiAxMDA2 NDQKPiAtLS0gYS90ZXN0cy9nZW1fZXhlY19ub3AuYwo+ICsrKyBiL3Rlc3RzL2dlbV9leGVjX25v cC5jCj4gQEAgLTExMiw3ICsxMTIsNyBAQCBpbnQgZmQ7Cj4gIGlndF9tYWluCj4gIHsKPiAgCWln dF9maXh0dXJlIHsKPiAtCQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJCWZkID0gZHJtX29wZW5f YW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCQloYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsK PiAgCQlnZW1fd3JpdGUoZmQsIGhhbmRsZSwgMCwgYmF0Y2gsIHNpemVvZihiYXRjaCkpOwo+IGRp ZmYgLS1naXQgYS90ZXN0cy9nZW1fZXhlY19wYXJhbXMuYyBiL3Rlc3RzL2dlbV9leGVjX3BhcmFt cy5jCj4gaW5kZXggNTRmMGRjMy4uZGRkZGJjNCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fZXhl Y19wYXJhbXMuYwo+ICsrKyBiL3Rlc3RzL2dlbV9leGVjX3BhcmFtcy5jCj4gQEAgLTU4LDcgKzU4 LDcgQEAgaW50IGZkOwo+ICBpZ3RfbWFpbgo+ICB7Cj4gIAlpZ3RfZml4dHVyZSB7Cj4gLQkJZmQg PSBkcm1fb3Blbl9hbnkoKTsKPiArCQlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAg Cj4gIAkJZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGZkKTsKPiAgCj4gZGlmZiAtLWdpdCBh L3Rlc3RzL2dlbV9leGVjX3BhcnNlLmMgYi90ZXN0cy9nZW1fZXhlY19wYXJzZS5jCj4gaW5kZXgg ZmZmMTY2YS4uNjkyNzQwMCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fZXhlY19wYXJzZS5jCj4g KysrIGIvdGVzdHMvZ2VtX2V4ZWNfcGFyc2UuYwo+IEBAIC0zMDEsNyArMzAxLDcgQEAgaWd0X21h aW4KPiAgICAgICAgICAgICAgICAgIGRybV9pOTE1X2dldHBhcmFtX3QgZ3A7Cj4gIAkJaW50IHJj Owo+ICAKPiAtCQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJCWZkID0gZHJtX29wZW5fYW55KE9Q RU5fSU5URUwpOwo+ICAKPiAgCQlncC5wYXJhbSA9IEk5MTVfUEFSQU1fQ01EX1BBUlNFUl9WRVJT SU9OOwo+ICAJCWdwLnZhbHVlID0gJnBhcnNlcl92ZXJzaW9uOwo+IGRpZmYgLS1naXQgYS90ZXN0 cy9nZW1fZmRfZXhoYXVzdGlvbi5jIGIvdGVzdHMvZ2VtX2ZkX2V4aGF1c3Rpb24uYwo+IGluZGV4 IDhiYTYzMWYuLmVmNmQ3MjYgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX2ZkX2V4aGF1c3Rpb24u Ywo+ICsrKyBiL3Rlc3RzL2dlbV9mZF9leGhhdXN0aW9uLmMKPiBAQCAtNTYsNyArNTYsNyBAQCBp Z3Rfc2ltcGxlX21haW4KPiAgCXJsaW0ucmxpbV9tYXggPSBub2ZpbGVfcmxpbTsKPiAgCWlndF9h c3NlcnQoc2V0cmxpbWl0KFJMSU1JVF9OT0ZJTEUsICZybGltKSA9PSAwKTsKPiAgCj4gLQlmZCA9 IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ ICAJaWd0X2Fzc2VydChvcGVuKCIvZGV2L251bGwiLCBPX1JET05MWSkgPj0gMCk7Cj4gIAo+IGRp ZmYgLS1naXQgYS90ZXN0cy9nZW1fZmVuY2VfdGhyYXNoLmMgYi90ZXN0cy9nZW1fZmVuY2VfdGhy YXNoLmMKPiBpbmRleCA2NDQ3ZTEzLi4zN2YzMmI1IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9m ZW5jZV90aHJhc2guYwo+ICsrKyBiL3Rlc3RzL2dlbV9mZW5jZV90aHJhc2guYwo+IEBAIC0xNjYs NyArMTY2LDcgQEAgc3RhdGljIGludCBydW5fdGVzdChpbnQgdGhyZWFkc19wZXJfZmVuY2UsIHZv aWQgKmYsIGludCB0aWxpbmcsCj4gIAlwdGhyZWFkX3QgKnRocmVhZHM7Cj4gIAlpbnQgbiwgbnVt X2ZlbmNlcywgbnVtX3RocmVhZHM7Cj4gIAo+IC0JdC5mZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJ dC5mZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCXQudGlsaW5nID0gdGlsaW5nOwo+ ICAJdC5udW1fc3VyZmFjZXMgPSBzdXJmYWNlc19wZXJfdGhyZWFkOwo+ICAKPiBkaWZmIC0tZ2l0 IGEvdGVzdHMvZ2VtX2ZlbmNlX3VwbG9hZC5jIGIvdGVzdHMvZ2VtX2ZlbmNlX3VwbG9hZC5jCj4g aW5kZXggOTU5NWJjOC4uMDQ2OTgyNCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fZmVuY2VfdXBs b2FkLmMKPiArKysgYi90ZXN0cy9nZW1fZmVuY2VfdXBsb2FkLmMKPiBAQCAtNTcsNyArNTcsNyBA QCBzdGF0aWMgdm9pZCBwZXJmb3JtYW5jZSh2b2lkKQo+ICAJaW50IGZkLCBudW1fZmVuY2VzOwo+ ICAJZG91YmxlIGxpbmVhclsyXSwgdGlsZWRbMl07Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnko KTsKPiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCW51bV9mZW5jZXMg PSBnZW1fYXZhaWxhYmxlX2ZlbmNlcyhmZCk7Cj4gIAlpZ3RfcmVxdWlyZShudW1fZmVuY2VzID4g MCk7Cj4gQEAgLTE2Miw3ICsxNjIsNyBAQCBzdGF0aWMgdm9pZCB0aHJlYWRfcGVyZm9ybWFuY2Uo dW5zaWduZWQgbWFzaykKPiAgCWludCBmZCwgbnVtX2ZlbmNlczsKPiAgCWRvdWJsZSBsaW5lYXJb Ml0sIHRpbGVkWzJdOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9v cGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAludW1fZmVuY2VzID0gZ2VtX2F2YWlsYWJsZV9m ZW5jZXMoZmQpOwo+ICAJaWd0X3JlcXVpcmUobnVtX2ZlbmNlcyA+IDApOwo+IEBAIC0yODksNyAr Mjg5LDcgQEAgc3RhdGljIHZvaWQgdGhyZWFkX2NvbnRlbnRpb24odm9pZCkKPiAgCWludCBmZCwg bnVtX2ZlbmNlczsKPiAgCWRvdWJsZSBsaW5lYXJbMl0sIHRpbGVkWzJdOwo+ICAKPiAtCWZkID0g ZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4g IAludW1fZmVuY2VzID0gZ2VtX2F2YWlsYWJsZV9mZW5jZXMoZmQpOwo+ICAJaWd0X3JlcXVpcmUo bnVtX2ZlbmNlcyA+IDApOwo+IEBAIC0zNDQsNyArMzQ0LDcgQEAgc3RhdGljIHZvaWQgd2NfY29u dGVudGlvbih2b2lkKQo+ICAJaW50IGZkLCBudW1fZmVuY2VzOwo+ICAJZG91YmxlIGxpbmVhclsy XSwgdGlsZWRbMl07Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZkID0gZHJtX29w ZW5fYW55KE9QRU5fSU5URUwpOwo+ICAJZ2VtX3JlcXVpcmVfbW1hcF93YyhmZCk7Cj4gIAo+ICAJ bnVtX2ZlbmNlcyA9IGdlbV9hdmFpbGFibGVfZmVuY2VzKGZkKTsKPiBkaWZmIC0tZ2l0IGEvdGVz dHMvZ2VtX2ZlbmNlZF9leGVjX3RocmFzaC5jIGIvdGVzdHMvZ2VtX2ZlbmNlZF9leGVjX3RocmFz aC5jCj4gaW5kZXggNzVmMjUxYy4uZDI4MWYyNyAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fZmVu Y2VkX2V4ZWNfdGhyYXNoLmMKPiArKysgYi90ZXN0cy9nZW1fZmVuY2VkX2V4ZWNfdGhyYXNoLmMK PiBAQCAtMjI1LDcgKzIyNSw3IEBAIGlndF9tYWluCj4gIAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9u KCk7Cj4gIAo+ICAJaWd0X2ZpeHR1cmUgewo+IC0JCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJ ZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAkJbnVtX2ZlbmNlcyA9IGdlbV9hdmFp bGFibGVfZmVuY2VzKGZkKTsKPiAgCQlpZ3RfYXNzZXJ0KG51bV9mZW5jZXMgPiA0KTsKPiAgCQlk ZXZpZCA9IGludGVsX2dldF9kcm1fZGV2aWQoZmQpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1f ZmxpbmsuYyBiL3Rlc3RzL2dlbV9mbGluay5jCj4gaW5kZXggOTE0NDRlOC4uMTk2YjFkZCAxMDA2 NDQKPiAtLS0gYS90ZXN0cy9nZW1fZmxpbmsuYwo+ICsrKyBiL3Rlc3RzL2dlbV9mbGluay5jCj4g QEAgLTEyNCw3ICsxMjQsNyBAQCB0ZXN0X2ZsaW5rX2xpZmV0aW1lKGludCBmZCkKPiAgCj4gIAlp Z3RfaW5mbygiVGVzdGluZyBmbGluayBsaWZldGltZS5cbiIpOwo+ICAKPiAtCWZkMiA9IGRybV9v cGVuX2FueSgpOwo+ICsJZmQyID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCW1l bXNldCgmY3JlYXRlLCAwLCBzaXplb2YoY3JlYXRlKSk7Cj4gIAljcmVhdGUuc2l6ZSA9IDE2ICog MTAyNDsKPiBAQCAtMTQxLDcgKzE0MSw3IEBAIHRlc3RfZmxpbmtfbGlmZXRpbWUoaW50IGZkKQo+ ICAJaWd0X2Fzc2VydChvcGVuX3N0cnVjdC5oYW5kbGUgIT0gMCk7Cj4gIAo+ICAJY2xvc2UoZmQy KTsKPiAtCWZkMiA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQyID0gZHJtX29wZW5fYW55KE9QRU5f SU5URUwpOwo+ICAKPiAgCW9wZW5fc3RydWN0Lm5hbWUgPSBmbGluay5uYW1lOwo+ICAJcmV0ID0g aW9jdGwoZmQyLCBEUk1fSU9DVExfR0VNX09QRU4sICZvcGVuX3N0cnVjdCk7Cj4gQEAgLTE1NCw3 ICsxNTQsNyBAQCBpbnQgZmQ7Cj4gIGlndF9tYWluCj4gIHsKPiAgCWlndF9maXh0dXJlCj4gLQkJ ZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCQlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsK PiAgCj4gIAlpZ3Rfc3VidGVzdCgiYmFzaWMiKQo+ICAJCXRlc3RfZmxpbmsoZmQpOwo+IGRpZmYg LS1naXQgYS90ZXN0cy9nZW1fZmxpbmtfcmFjZS5jIGIvdGVzdHMvZ2VtX2ZsaW5rX3JhY2UuYwo+ IGluZGV4IDZlZjE1ZjMuLjRhYmY4NTcgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX2ZsaW5rX3Jh Y2UuYwo+ICsrKyBiL3Rlc3RzL2dlbV9mbGlua19yYWNlLmMKPiBAQCAtMTAyLDcgKzEwMiw3IEBA IHN0YXRpYyB2b2lkIHRlc3RfZmxpbmtfbmFtZSh2b2lkKQo+ICAKPiAgCXRocmVhZHMgPSBjYWxs b2MobnVtX3RocmVhZHMsIHNpemVvZihwdGhyZWFkX3QpKTsKPiAgCj4gLQlmZCA9IGRybV9vcGVu X2FueSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJZm9yIChp ID0gMDsgaSA8IG51bV90aHJlYWRzOyBpKyspIHsKPiAgCQlyID0gcHRocmVhZF9jcmVhdGUoJnRo cmVhZHNbaV0sIE5VTEwsCj4gQEAgLTE2Myw3ICsxNjMsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2Zs aW5rX2Nsb3NlKHZvaWQpCj4gIAo+ICAJLyogQWxsb2NhdGUgZXhpdCBoYW5kbGVyIGZkcyBpbiBo ZXJlIHNvIHRoYXQgd2UgZG9udCBzY3Jldwo+ICAJICogdXAgdGhlIGNvdW50cyAqLwo+IC0JZmFr ZSA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmFrZSA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsK PiAgCj4gIAlvYmpfY291bnQgPSBnZXRfb2JqZWN0X2NvdW50KCk7Cj4gIAo+IEBAIC0xNzEsNyAr MTcxLDcgQEAgc3RhdGljIHZvaWQgdGVzdF9mbGlua19jbG9zZSh2b2lkKQo+ICAKPiAgCXRocmVh ZHMgPSBjYWxsb2MobnVtX3RocmVhZHMsIHNpemVvZihwdGhyZWFkX3QpKTsKPiAgCj4gLQlmZCA9 IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ ICAJZm9yIChpID0gMDsgaSA8IG51bV90aHJlYWRzOyBpKyspIHsKPiAgCQlyID0gcHRocmVhZF9j cmVhdGUoJnRocmVhZHNbaV0sIE5VTEwsCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9ndHRfY3B1 X3RsYi5jIGIvdGVzdHMvZ2VtX2d0dF9jcHVfdGxiLmMKPiBpbmRleCBhMDE5MDYxLi5mYmUyM2M3 IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9ndHRfY3B1X3RsYi5jCj4gKysrIGIvdGVzdHMvZ2Vt X2d0dF9jcHVfdGxiLmMKPiBAQCAtNzksNyArNzksNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCj4g IAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnkoKTsK PiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCWhhbmRsZSA9IGdlbV9j cmVhdGUoZmQsIE9CSl9TSVpFKTsKPiAgCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9ndHRfaG9n LmMgYi90ZXN0cy9nZW1fZ3R0X2hvZy5jCj4gaW5kZXggMzlkZmE0OC4uNmM0MTRmMiAxMDA2NDQK PiAtLS0gYS90ZXN0cy9nZW1fZ3R0X2hvZy5jCj4gKysrIGIvdGVzdHMvZ2VtX2d0dF9ob2cuYwo+ IEBAIC0xNTksMTIgKzE1OSwxMiBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCWRhdGFfdCBkYXRhID0g e307Cj4gIAo+ICAJLyogY2hlY2sgZm9yIGFuIGludGVsIGdwdSBiZWZvcmUgZ29pbnQgbnV0cy4g Ki8KPiAtCWludCBmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJaW50IGZkID0gZHJtX29wZW5fYW55 KE9QRU5fSU5URUwpOwo+ICAJY2xvc2UoZmQpOwo+ICAKPiAgCWlndF9za2lwX29uX3NpbXVsYXRp b24oKTsKPiAgCj4gLQlkYXRhLmZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlkYXRhLmZkID0gZHJt X29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAJZGF0YS5kZXZpZCA9IGludGVsX2dldF9kcm1fZGV2 aWQoZGF0YS5mZCk7Cj4gIAlkYXRhLmludGVsX2dlbiA9IGludGVsX2dlbihkYXRhLmRldmlkKTsK PiAgCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9ndHRfc3BlZWQuYyBiL3Rlc3RzL2dlbV9ndHRf c3BlZWQuYwo+IGluZGV4IGQ1ZTc0NWUuLjE4MmE4MjMgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2Vt X2d0dF9zcGVlZC5jCj4gKysrIGIvdGVzdHMvZ2VtX2d0dF9zcGVlZC5jCj4gQEAgLTcyLDcgKzcy LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAKPiAgCWJ1ZiA9IG1hbGxv YyhzaXplKTsKPiAgCW1lbXNldChidWYsIDAsIHNpemUpOwo+IC0JZmQgPSBkcm1fb3Blbl9hbnko KTsKPiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCWhhbmRsZSA9IGdl bV9jcmVhdGUoZmQsIHNpemUpOwo+ICAJaWd0X2Fzc2VydChoYW5kbGUpOwo+IGRpZmYgLS1naXQg YS90ZXN0cy9nZW1faGFuZy5jIGIvdGVzdHMvZ2VtX2hhbmcuYwo+IGluZGV4IDg3Njc2MTUuLmVh MjZjNzEgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX2hhbmcuYwo+ICsrKyBiL3Rlc3RzL2dlbV9o YW5nLmMKPiBAQCAtODAsNyArODAsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp Cj4gIAo+ICAJYmFkX3BpcGUgPSBhdG9pKGFyZ3ZbMV0pOwo+ICAKPiAtCWZkID0gZHJtX29wZW5f YW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAlidWZtZ3Ig PSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0KGZkLCA0MDk2KTsKPiAgCWRybV9pbnRlbF9idWZt Z3JfZ2VtX2VuYWJsZV9yZXVzZShidWZtZ3IpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1faGFu Z2NoZWNrX2ZvcmNld2FrZS5jIGIvdGVzdHMvZ2VtX2hhbmdjaGVja19mb3JjZXdha2UuYwo+IGlu ZGV4IGYyNzRmYWIuLjliYzllNDkgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX2hhbmdjaGVja19m b3JjZXdha2UuYwo+ICsrKyBiL3Rlc3RzL2dlbV9oYW5nY2hlY2tfZm9yY2V3YWtlLmMKPiBAQCAt NzIsNyArNzIsNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCj4gIAltZW1zZXQoYmxvYiwgJ0EnLCBz aXplb2YoYmxvYikpOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9v cGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAlidWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdyX2dl bV9pbml0KGZkLCA0MDk2KTsKPiAgCWRybV9pbnRlbF9idWZtZ3JfZ2VtX2VuYWJsZV9yZXVzZShi dWZtZ3IpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fbGFyZ2VvYmplY3QuYyBiL3Rlc3RzL2dl bV9sYXJnZW9iamVjdC5jCj4gaW5kZXggMGY5MjlmOC4uMWQzYjg2MiAxMDA2NDQKPiAtLS0gYS90 ZXN0cy9nZW1fbGFyZ2VvYmplY3QuYwo+ICsrKyBiL3Rlc3RzL2dlbV9sYXJnZW9iamVjdC5jCj4g QEAgLTc5LDcgKzc5LDcgQEAgaWd0X3NpbXBsZV9tYWluCj4gIAo+ICAJaWd0X3NraXBfb25fc2lt dWxhdGlvbigpOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVu X2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAl0ZXN0X2xhcmdlX29iamVjdChmZCk7Cj4gIH0KPiBk aWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX2xpbmVhcl9ibGl0cy5jIGIvdGVzdHMvZ2VtX2xpbmVhcl9i bGl0cy5jCj4gaW5kZXggMGJlMTNlYi4uODIxMjM5MSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1f bGluZWFyX2JsaXRzLmMKPiArKysgYi90ZXN0cy9nZW1fbGluZWFyX2JsaXRzLmMKPiBAQCAtMjU4 LDcgKzI1OCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiAgCWlndF9zdWJ0 ZXN0X2luaXQoYXJnYywgYXJndik7Cj4gIAo+ICAJaWd0X2ZpeHR1cmUgewo+IC0JCWZkID0gZHJt X29wZW5fYW55KCk7Cj4gKwkJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAl9Cj4g IAo+ICAJaWd0X3N1YnRlc3QoImJhc2ljIikKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX2x1dF9o YW5kbGUuYyBiL3Rlc3RzL2dlbV9sdXRfaGFuZGxlLmMKPiBpbmRleCA3ZmM3MmYxLi4wNTFjZDJi IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9sdXRfaGFuZGxlLmMKPiArKysgYi90ZXN0cy9nZW1f bHV0X2hhbmRsZS5jCj4gQEAgLTE4MSw3ICsxODEsNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCXVp bnQzMl90IGhhbmRsZTsKPiAgCWludCBmZCwgaTsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgp Owo+ICsJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJaGFuZGxlID0gZ2Vt X2NyZWF0ZShmZCwgNDA5Nik7Cj4gIAlnZW1fd3JpdGUoZmQsIGhhbmRsZSwgMCwgYmF0Y2gsIHNp emVvZihiYXRjaCkpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fbWFkdmlzZS5jIGIvdGVzdHMv Z2VtX21hZHZpc2UuYwo+IGluZGV4IDU4YWI2MjkuLjk0MTVlMTEgMTAwNjQ0Cj4gLS0tIGEvdGVz dHMvZ2VtX21hZHZpc2UuYwo+ICsrKyBiL3Rlc3RzL2dlbV9tYWR2aXNlLmMKPiBAQCAtMzksOCAr MzksOCBAQAo+ICAjaW5jbHVkZSAiaW9jdGxfd3JhcHBlcnMuaCIKPiAgI2luY2x1ZGUgImRybXRl c3QuaCIKPiAgCj4gLUlHVF9URVNUX0RFU0NSSVBUSU9OKCJDaGVja3MgdGhhdCB0aGUga2VybmVs IHJlcG9ydHMgRUZBVUxUIHdoZW4gdHJ5aW5nIHRvIHVzZSIKPiAtCQkgICAgICIgcHVyZ2VkIGJv LiIpOwo+ICsvL0lHVF9URVNUX0RFU0NSSVBUSU9OKCJDaGVja3MgdGhhdCB0aGUga2VybmVsIHJl cG9ydHMgRUZBVUxUIHdoZW4gdHJ5aW5nIHRvIHVzZSIKPiArLy8JCSAgICAgIiBwdXJnZWQgYm8u Iik7Cj4gIAo+ICAjZGVmaW5lIE9CSkVDVF9TSVpFICgxMDI0KjEwMjQpCj4gIAo+IEBAIC01OCw3 ICs1OCw3IEBAIHN0YXRpYyB2b2lkIHNpZ3RyYXAoaW50IHNpZykKPiAgc3RhdGljIHZvaWQKPiAg ZG9udG5lZWRfYmVmb3JlX21tYXAodm9pZCkKPiAgewo+IC0JaW50IGZkID0gZHJtX29wZW5fYW55 KCk7Cj4gKwlpbnQgZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAl1aW50MzJfdCBo YW5kbGU7Cj4gIAljaGFyICpwdHI7Cj4gIAo+IEBAIC03Myw3ICs3Myw3IEBAIGRvbnRuZWVkX2Jl Zm9yZV9tbWFwKHZvaWQpCj4gIHN0YXRpYyB2b2lkCj4gIGRvbnRuZWVkX2FmdGVyX21tYXAodm9p ZCkKPiAgewo+IC0JaW50IGZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlpbnQgZmQgPSBkcm1fb3Bl bl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAl1aW50MzJfdCBoYW5kbGU7Cj4gIAljaGFyICpwdHI7Cj4g IAo+IEBAIC0xMDAsNyArMTAwLDcgQEAgZG9udG5lZWRfYWZ0ZXJfbW1hcCh2b2lkKQo+ICBzdGF0 aWMgdm9pZAo+ICBkb250bmVlZF9iZWZvcmVfcHdyaXRlKHZvaWQpCj4gIHsKPiAtCWludCBmZCA9 IGRybV9vcGVuX2FueSgpOwo+ICsJaW50IGZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ ICAJdWludDMyX3QgYnVmW10gPSB7IE1JX0JBVENIX0JVRkZFUl9FTkQsIDAgfTsKPiAgCXN0cnVj dCBkcm1faTkxNV9nZW1fcHdyaXRlIGdlbV9wd3JpdGU7Cj4gIAo+IEBAIC0xMjAsNyArMTIwLDcg QEAgZG9udG5lZWRfYmVmb3JlX3B3cml0ZSh2b2lkKQo+ICBzdGF0aWMgdm9pZAo+ICBkb250bmVl ZF9iZWZvcmVfZXhlYyh2b2lkKQo+ICB7Cj4gLQlpbnQgZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiAr CWludCBmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCXN0cnVjdCBkcm1faTkxNV9n ZW1fZXhlY2J1ZmZlcjIgZXhlY2J1ZjsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmpl Y3QyIGV4ZWM7Cj4gIAl1aW50MzJfdCBidWZbXSA9IHsgTUlfQkFUQ0hfQlVGRkVSX0VORCwgMCB9 Owo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fbW1hcC5jIGIvdGVzdHMvZ2VtX21tYXAuYwo+IGlu ZGV4IGJiYzVjNGMuLmE1N2QwMDkgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX21tYXAuYwo+ICsr KyBiL3Rlc3RzL2dlbV9tbWFwLmMKPiBAQCAtNTEsNyArNTEsNyBAQCBpZ3RfbWFpbgo+ICAJaW50 IHJldDsKPiAgCj4gIAlpZ3RfZml4dHVyZQo+IC0JCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJ ZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJaWd0X3N1YnRlc3QoImJhZC1v YmplY3QiKSB7Cj4gIAkJbWVtc2V0KCZhcmcsIDAsIHNpemVvZihhcmcpKTsKPiBkaWZmIC0tZ2l0 IGEvdGVzdHMvZ2VtX21tYXBfZ3R0LmMgYi90ZXN0cy9nZW1fbW1hcF9ndHQuYwo+IGluZGV4IDU1 YzY2YTIuLmIzZmY0MmEgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX21tYXBfZ3R0LmMKPiArKysg Yi90ZXN0cy9nZW1fbW1hcF9ndHQuYwo+IEBAIC04NCw3ICs4NCw3IEBAIHRlc3RfYWNjZXNzKGlu dCBmZCkKPiAgCWhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIE9CSkVDVF9TSVpFKTsKPiAgCWlndF9h c3NlcnQoaGFuZGxlKTsKPiAgCj4gLQlmZDIgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZkMiA9IGRy bV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAkvKiBDaGVjayB0aGF0IGZkMSBjYW4gbW1h cC4gKi8KPiAgCW1tYXBfYXJnLmhhbmRsZSA9IGhhbmRsZTsKPiBAQCAtMzYzLDcgKzM2Myw3IEBA IGlndF9tYWluCj4gIAkJT0JKRUNUX1NJWkUgPSAxICogMTAyNCAqIDEwMjQ7Cj4gIAo+ICAJaWd0 X2ZpeHR1cmUKPiAtCQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJCWZkID0gZHJtX29wZW5fYW55 KE9QRU5fSU5URUwpOwo+ICAKPiAgCWlndF9zdWJ0ZXN0KCJhY2Nlc3MiKQo+ICAJCXRlc3RfYWNj ZXNzKGZkKTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX21tYXBfb2Zmc2V0X2V4aGF1c3Rpb24u YyBiL3Rlc3RzL2dlbV9tbWFwX29mZnNldF9leGhhdXN0aW9uLmMKPiBpbmRleCBiMDMxMDUwLi4z NWNiNzg0IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9tbWFwX29mZnNldF9leGhhdXN0aW9uLmMK PiArKysgYi90ZXN0cy9nZW1fbW1hcF9vZmZzZXRfZXhoYXVzdGlvbi5jCj4gQEAgLTgyLDcgKzgy LDcgQEAgaWd0X3NpbXBsZV9tYWluCj4gIAo+ICAJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+ ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lO VEVMKTsKPiAgCj4gIAkvKiB3ZSBoYXZlIDMyYml0IG9mIGFkZHJlc3Mgc3BhY2UsIHNvIHRyeSB0 byBmaXQgb25lIE1CIG1vcmUKPiAgCSAqIHRoYW4gdGhhdC4gKi8KPiBkaWZmIC0tZ2l0IGEvdGVz dHMvZ2VtX21tYXBfd2MuYyBiL3Rlc3RzL2dlbV9tbWFwX3djLmMKPiBpbmRleCA3M2E5N2Q1Li5k NDQxODA1IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9tbWFwX3djLmMKPiArKysgYi90ZXN0cy9n ZW1fbW1hcF93Yy5jCj4gQEAgLTQyNyw3ICs0MjcsNyBAQCBpZ3RfbWFpbgo+ICAJCU9CSkVDVF9T SVpFID0gMSAqIDEwMjQgKiAxMDI0Owo+ICAKPiAgCWlndF9maXh0dXJlCj4gLQkJZmQgPSBkcm1f b3Blbl9hbnkoKTsKPiArCQlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAlp Z3Rfc3VidGVzdCgiaW52YWxpZC1mbGFncyIpCj4gIAkJdGVzdF9pbnZhbGlkX2ZsYWdzKGZkKTsK PiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX211bHRpX2JzZF9zeW5jX2xvb3AuYyBiL3Rlc3RzL2dl bV9tdWx0aV9ic2Rfc3luY19sb29wLmMKPiBpbmRleCAwNzY2ZWI2Li4wM2E0ZTdkIDEwMDY0NAo+ IC0tLSBhL3Rlc3RzL2dlbV9tdWx0aV9ic2Rfc3luY19sb29wLmMKPiArKysgYi90ZXN0cy9nZW1f bXVsdGlfYnNkX3N5bmNfbG9vcC5jCj4gQEAgLTExMCw3ICsxMTAsNyBAQCBpZ3Rfc2ltcGxlX21h aW4KPiAgCWludCBkZXZpZDsKPiAgCWludCBpOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7 Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCWRldmlkID0gaW50ZWxfZ2V0 X2RybV9kZXZpZChmZCk7Cj4gIAlnZW1fcmVxdWlyZV9yaW5nKGZkLCBJOTE1X0VYRUNfQkxUKTsK PiAgCj4gQEAgLTEzMSw3ICsxMzEsNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCj4gIAkJZm9yIChp ID0gMDsgaSA8IE5VTV9GRDsgaSsrKSB7Cj4gIAkJCXNwcmludGYoYnVmZmVyX25hbWUsICJUYXJn ZXQgYnVmZmVyICVkXG4iLCBpKTsKPiAtCQkJbWZkW2ldID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJ CW1mZFtpXSA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCQkJbWJ1Zm1ncltpXSA9IGRy bV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQobWZkW2ldLCA0MDk2KTsKPiAgCQkJaWd0X2Fzc2VydF9m KG1idWZtZ3JbaV0sCj4gIAkJCQkgICAgICJmYWlsIHRvIGluaXRpYWxpemUgYnVmIG1hbmFnZXIg Zm9yIGRybV9mZCAlZFxuIiwKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX25vbl9zZWN1cmVfYmF0 Y2guYyBiL3Rlc3RzL2dlbV9ub25fc2VjdXJlX2JhdGNoLmMKPiBpbmRleCBkMDBjZTQ1Li4xMzM5 NjVlIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9ub25fc2VjdXJlX2JhdGNoLmMKPiArKysgYi90 ZXN0cy9nZW1fbm9uX3NlY3VyZV9iYXRjaC5jCj4gQEAgLTgyLDcgKzgyLDcgQEAgaWd0X3NpbXBs ZV9tYWluCj4gIAlpbnQgZmQ7Cj4gIAlpbnQgZGV2aWQ7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9h bnkoKTsKPiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAJZGV2aWQgPSBpbnRl bF9nZXRfZHJtX2RldmlkKGZkKTsKPiAgCj4gIAlpZiAoSEFTX0JTRF9SSU5HKGRldmlkKSkKPiBk aWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX3BhcnRpYWxfcHdyaXRlX3ByZWFkLmMgYi90ZXN0cy9nZW1f cGFydGlhbF9wd3JpdGVfcHJlYWQuYwo+IGluZGV4IDBiZTc0OWMuLjMzOGVkMjkgMTAwNjQ0Cj4g LS0tIGEvdGVzdHMvZ2VtX3BhcnRpYWxfcHdyaXRlX3ByZWFkLmMKPiArKysgYi90ZXN0cy9nZW1f cGFydGlhbF9wd3JpdGVfcHJlYWQuYwo+IEBAIC0yNjIsNyArMjYyLDcgQEAgaWd0X21haW4KPiAg CWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKPiAgCj4gIAlpZ3RfZml4dHVyZSB7Cj4gLQkJZmQg PSBkcm1fb3Blbl9hbnkoKTsKPiArCQlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAg Cj4gIAkJYnVmbWdyID0gZHJtX2ludGVsX2J1Zm1ncl9nZW1faW5pdChmZCwgNDA5Nik7Cj4gIAkJ Ly9kcm1faW50ZWxfYnVmbWdyX2dlbV9lbmFibGVfcmV1c2UoYnVmbWdyKTsKPiBkaWZmIC0tZ2l0 IGEvdGVzdHMvZ2VtX3BlcnNpc3RlbnRfcmVsb2NzLmMgYi90ZXN0cy9nZW1fcGVyc2lzdGVudF9y ZWxvY3MuYwo+IGluZGV4IGE2YWUzODYuLjZiYjU1OTcgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2Vt X3BlcnNpc3RlbnRfcmVsb2NzLmMKPiArKysgYi90ZXN0cy9nZW1fcGVyc2lzdGVudF9yZWxvY3Mu Ywo+IEBAIC0zMjcsNyArMzI3LDcgQEAgaWd0X21haW4KPiAgCW1lbXNldChibG9iLCAnQScsIHNp emVvZihibG9iKSk7Cj4gIAo+ICAJaWd0X2ZpeHR1cmUgewo+IC0JCWZkID0gZHJtX29wZW5fYW55 KCk7Cj4gKwkJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJCWJ1Zm1nciA9 IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZmQsIDQwOTYpOwo+ICAJCS8qIGRpc2FibGUgcmV1 c2UsIG90aGVyd2lzZSB0aGUgdGVzdCBmYWlscyAqLwo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1f cGluLmMgYi90ZXN0cy9nZW1fcGluLmMKPiBpbmRleCBiMzU0OTZlLi45OTRlY2EyIDEwMDY0NAo+ IC0tLSBhL3Rlc3RzL2dlbV9waW4uYwo+ICsrKyBiL3Rlc3RzL2dlbV9waW4uYwo+IEBAIC0yMTIs NyArMjEyLDcgQEAgaWd0X3NpbXBsZV9tYWluCj4gIAo+ICAJaWd0X3NraXBfb25fc2ltdWxhdGlv bigpOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShP UEVOX0lOVEVMKTsKPiAgCj4gIAlpZ3RfcmVxdWlyZSh0ZXN0X2Nhbl9waW4oZmQpKTsKPiAgCj4g ZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9waXBlX2NvbnRyb2xfc3RvcmVfbG9vcC5jIGIvdGVzdHMv Z2VtX3BpcGVfY29udHJvbF9zdG9yZV9sb29wLmMKPiBpbmRleCA4NmVlNDA1Li45YTA0NjI2IDEw MDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9waXBlX2NvbnRyb2xfc3RvcmVfbG9vcC5jCj4gKysrIGIv dGVzdHMvZ2VtX3BpcGVfY29udHJvbF9zdG9yZV9sb29wLmMKPiBAQCAtMTY0LDcgKzE2NCw3IEBA IGludCBmZDsKPiAgaWd0X21haW4KPiAgewo+ICAJaWd0X2ZpeHR1cmUgewo+IC0JCWZkID0gZHJt X29wZW5fYW55KCk7Cj4gKwkJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAkJZGV2 aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGZkKTsKPiAgCj4gIAkJYnVmbWdyID0gZHJtX2ludGVs X2J1Zm1ncl9nZW1faW5pdChmZCwgNDA5Nik7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9wcGd0 dC5jIGIvdGVzdHMvZ2VtX3BwZ3R0LmMKPiBpbmRleCA1YmY3NzNjLi5iYzY3NjlkIDEwMDY0NAo+ IC0tLSBhL3Rlc3RzL2dlbV9wcGd0dC5jCj4gKysrIGIvdGVzdHMvZ2VtX3BwZ3R0LmMKPiBAQCAt ODksNyArODksNyBAQCBzdGF0aWMgdm9pZCBmb3JrX3Jjc19jb3B5KGludCB0YXJnZXQsIGRyaV9i byAqKmRzdCwgaW50IGNvdW50LCB1bnNpZ25lZCBmbGFncykKPiAgCWludCBkZXZpZDsKPiAgCj4g IAlmb3IgKGludCBjaGlsZCA9IDA7IGNoaWxkIDwgY291bnQ7IGNoaWxkKyspIHsKPiAtCQlpbnQg ZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCQlpbnQgZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRF TCk7Cj4gIAkJZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyOwo+ICAKPiAgCQlkZXZpZCA9IGludGVs X2dldF9kcm1fZGV2aWQoZmQpOwo+IEBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIHZvaWQgZm9y a19iY3NfY29weShpbnQgdGFyZ2V0LCBkcmlfYm8gKipkc3QsIGludCBjb3VudCkKPiAgCj4gIAlm b3IgKGludCBjaGlsZCA9IDA7IGNoaWxkIDwgY291bnQ7IGNoaWxkKyspIHsKPiAgCQlkcm1faW50 ZWxfYnVmbWdyICpidWZtZ3I7Cj4gLQkJaW50IGZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJaW50 IGZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCQlkZXZpZCA9IGludGVsX2dl dF9kcm1fZGV2aWQoZmQpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX3ByZWFkLmMgYi90 ZXN0cy9nZW1fcHJlYWQuYwo+IGluZGV4IGNjODM5NDguLjQ0YjI4YmYgMTAwNjQ0Cj4gLS0tIGEv dGVzdHMvZ2VtX3ByZWFkLmMKPiArKysgYi90ZXN0cy9nZW1fcHJlYWQuYwo+IEBAIC0xMDIsNyAr MTAyLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAJb2JqZWN0X3NpemUg PSAob2JqZWN0X3NpemUgKyAzKSAmIC00Owo+ICAKPiAgCWlndF9maXh0dXJlIHsKPiAtCQlmZCA9 IGRybV9vcGVuX2FueSgpOwo+ICsJCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAK PiAgCQlkc3QgPSBnZW1fY3JlYXRlKGZkLCBvYmplY3Rfc2l6ZSk7Cj4gIAkJc3JjID0gbWFsbG9j KG9iamVjdF9zaXplKTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX3ByZWFkX2FmdGVyX2JsaXQu YyBiL3Rlc3RzL2dlbV9wcmVhZF9hZnRlcl9ibGl0LmMKPiBpbmRleCA4ZWQ0MzEwLi4wOWVmMmZm IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9wcmVhZF9hZnRlcl9ibGl0LmMKPiArKysgYi90ZXN0 cy9nZW1fcHJlYWRfYWZ0ZXJfYmxpdC5jCj4gQEAgLTIxNiw3ICsyMTYsNyBAQCBpZ3RfbWFpbgo+ ICAJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+ICAKPiAgCWlndF9maXh0dXJlIHsKPiAtCQlm ZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ ICAKPiAgCQlidWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0KGZkLCA0MDk2KTsKPiAg CQlkcm1faW50ZWxfYnVmbWdyX2dlbV9lbmFibGVfcmV1c2UoYnVmbWdyKTsKPiBkaWZmIC0tZ2l0 IGEvdGVzdHMvZ2VtX3B3cml0ZS5jIGIvdGVzdHMvZ2VtX3B3cml0ZS5jCj4gaW5kZXggNjM3OGIw YS4uYjVlMGM1YiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fcHdyaXRlLmMKPiArKysgYi90ZXN0 cy9nZW1fcHdyaXRlLmMKPiBAQCAtMTEwLDcgKzExMCw3IEBAIGludCBtYWluKGludCBhcmdjLCBj aGFyICoqYXJndikKPiAgCW9iamVjdF9zaXplID0gKG9iamVjdF9zaXplICsgMykgJiAtNDsKPiAg Cj4gIAlpZ3RfZml4dHVyZSB7Cj4gLQkJZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCQlmZCA9IGRy bV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAkJZHN0ID0gZ2VtX2NyZWF0ZShmZCwgb2Jq ZWN0X3NpemUpOwo+ICAJCXNyYyA9IG1hbGxvYyhvYmplY3Rfc2l6ZSk7Cj4gZGlmZiAtLWdpdCBh L3Rlc3RzL2dlbV9wd3JpdGVfcHJlYWQuYyBiL3Rlc3RzL2dlbV9wd3JpdGVfcHJlYWQuYwo+IGlu ZGV4IDg4YzIwNzAuLjI5NjYyZWQgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX3B3cml0ZV9wcmVh ZC5jCj4gKysrIGIvdGVzdHMvZ2VtX3B3cml0ZV9wcmVhZC5jCj4gQEAgLTI3NSw3ICsyNzUsNyBA QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gIAlpZ3RfZml4dHVyZSB7Cj4gIAkJ dWludDMyX3QgZGV2aWQ7Cj4gIAo+IC0JCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJZmQgPSBk cm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJCWRzdCA9IGdlbV9jcmVhdGUoZmQsIG9i amVjdF9zaXplKTsKPiAgCQlzcmMgPSBnZW1fY3JlYXRlKGZkLCBvYmplY3Rfc2l6ZSk7Cj4gZGlm ZiAtLWdpdCBhL3Rlc3RzL2dlbV9yZWFkd3JpdGUuYyBiL3Rlc3RzL2dlbV9yZWFkd3JpdGUuYwo+ IGluZGV4IGE4YTcxMDUuLjI1OTVlNzEgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX3JlYWR3cml0 ZS5jCj4gKysrIGIvdGVzdHMvZ2VtX3JlYWR3cml0ZS5jCj4gQEAgLTg1LDcgKzg1LDcgQEAgaWd0 X21haW4KPiAgCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKPiAgCj4gIAlpZ3RfZml4dHVyZSB7 Cj4gLQkJZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCQlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lO VEVMKTsKPiAgCj4gIAkJaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgT0JKRUNUX1NJWkUpOwo+ICAJ fQo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fcmVnX3JlYWQuYyBiL3Rlc3RzL2dlbV9yZWdfcmVh ZC5jCj4gaW5kZXggZDNlNjhkOS4uOTY3MzMzZSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fcmVn X3JlYWQuYwo+ICsrKyBiL3Rlc3RzL2dlbV9yZWdfcmVhZC5jCj4gQEAgLTU1LDcgKzU1LDcgQEAg aWd0X3NpbXBsZV9tYWluCj4gIAlzdHJ1Y3QgbG9jYWxfZHJtX2k5MTVfcmVnX3JlYWQgcmVnX3Jl YWQ7Cj4gIAlpbnQgZmQsIHJldDsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQg PSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJcmVnX3JlYWQub2Zmc2V0ID0gMHgy MzU4Owo+ICAJcmV0ID0gZHJtSW9jdGwoZmQsIFJFR19SRUFEX0lPQ1RMLCAmcmVnX3JlYWQpOwo+ IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fcmVsb2Nfb3ZlcmZsb3cuYyBiL3Rlc3RzL2dlbV9yZWxv Y19vdmVyZmxvdy5jCj4gaW5kZXggZWE1OTE3MS4uMjIwMjI5OCAxMDA2NDQKPiAtLS0gYS90ZXN0 cy9nZW1fcmVsb2Nfb3ZlcmZsb3cuYwo+ICsrKyBiL3Rlc3RzL2dlbV9yZWxvY19vdmVyZmxvdy5j Cj4gQEAgLTMyOSw3ICszMjksNyBAQCBpZ3RfbWFpbgo+ICAJCWludCByaW5nOwo+ICAJCXVpbnQz Ml90IGJhdGNoX2RhdGEgWzJdID0geyBNSV9OT09QLCBNSV9CQVRDSF9CVUZGRVJfRU5EIH07Cj4g IAo+IC0JCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9J TlRFTCk7Cj4gIAo+ICAJCWRldmlkID0gaW50ZWxfZ2V0X2RybV9kZXZpZChmZCk7Cj4gIAo+IGRp ZmYgLS1naXQgYS90ZXN0cy9nZW1fcmVsb2NfdnNfZ3B1LmMgYi90ZXN0cy9nZW1fcmVsb2NfdnNf Z3B1LmMKPiBpbmRleCA0N2ZiZTc1Li5iNzMwY2MyIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9y ZWxvY192c19ncHUuYwo+ICsrKyBiL3Rlc3RzL2dlbV9yZWxvY192c19ncHUuYwo+IEBAIC0yNzks NyArMjc5LDcgQEAgc3RhdGljIHZvaWQgZG9fZm9ya2VkX3Rlc3QoaW50IGZkLCB1bnNpZ25lZCBm bGFncykKPiAgCj4gIAlpZ3RfZm9yayhpLCBudW1fdGhyZWFkcyAqIDQpIHsKPiAgCQkvKiByZS1j cmVhdGUgcHJvY2VzcyBsb2NhbCBkYXRhICovCj4gLQkJZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiAr CQlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCQlidWZtZ3IgPSBkcm1faW50ZWxf YnVmbWdyX2dlbV9pbml0KGZkLCA0MDk2KTsKPiAgCQliYXRjaCA9IGludGVsX2JhdGNoYnVmZmVy X2FsbG9jKGJ1Zm1nciwgZGV2aWQpOwo+ICAKPiBAQCAtMzA3LDcgKzMwNyw3IEBAIGlndF9tYWlu Cj4gIAltZW1zZXQoYmxvYiwgJ0EnLCBzaXplb2YoYmxvYikpOwo+ICAKPiAgCWlndF9maXh0dXJl IHsKPiAtCQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJCWZkID0gZHJtX29wZW5fYW55KE9QRU5f SU5URUwpOwo+ICAJCWJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZmQsIDQwOTYp Owo+ICAJCS8qIGRpc2FibGUgcmV1c2UsIG90aGVyd2lzZSB0aGUgdGVzdCBmYWlscyAqLwo+ICAJ CS8vZHJtX2ludGVsX2J1Zm1ncl9nZW1fZW5hYmxlX3JldXNlKGJ1Zm1ncik7Cj4gZGlmZiAtLWdp dCBhL3Rlc3RzL2dlbV9yZW5kZXJfY29weV9yZWR1eC5jIGIvdGVzdHMvZ2VtX3JlbmRlcl9jb3B5 X3JlZHV4LmMKPiBpbmRleCA0M2Q0YzVhLi40NTJlN2U5IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dl bV9yZW5kZXJfY29weV9yZWR1eC5jCj4gKysrIGIvdGVzdHMvZ2VtX3JlbmRlcl9jb3B5X3JlZHV4 LmMKPiBAQCAtNzUsNyArNzUsNyBAQCB0eXBlZGVmIHN0cnVjdCB7Cj4gIAo+ICBzdGF0aWMgdm9p ZCBkYXRhX2luaXQoZGF0YV90ICpkYXRhKQo+ICB7Cj4gLQlkYXRhLT5mZCA9IGRybV9vcGVuX2Fu eSgpOwo+ICsJZGF0YS0+ZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAlkYXRhLT5k ZXZpZCA9IGludGVsX2dldF9kcm1fZGV2aWQoZGF0YS0+ZmQpOwo+ICAKPiAgCWRhdGEtPmJ1Zm1n ciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZGF0YS0+ZmQsIDQwOTYpOwo+IGRpZmYgLS1n aXQgYS90ZXN0cy9nZW1fcmVuZGVyX2xpbmVhcl9ibGl0cy5jIGIvdGVzdHMvZ2VtX3JlbmRlcl9s aW5lYXJfYmxpdHMuYwo+IGluZGV4IGY4M2M2ZDQuLjgzMDI5MDAgMTAwNjQ0Cj4gLS0tIGEvdGVz dHMvZ2VtX3JlbmRlcl9saW5lYXJfYmxpdHMuYwo+ICsrKyBiL3Rlc3RzL2dlbV9yZW5kZXJfbGlu ZWFyX2JsaXRzLmMKPiBAQCAtMTkyLDcgKzE5Miw3IEBAIGlndF9tYWluCj4gIAlpbnQgY291bnQ9 MDsKPiAgCj4gIAlpZ3RfZml4dHVyZSB7Cj4gLQkJZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCQlm ZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCX0KPiAgCj4gIAlpZ3Rfc3VidGVzdCgi YmFzaWMiKSB7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9yZW5kZXJfdGlsZWRfYmxpdHMuYyBi L3Rlc3RzL2dlbV9yZW5kZXJfdGlsZWRfYmxpdHMuYwo+IGluZGV4IGY2NjkyNzAuLjVhNjA1YjMg MTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX3JlbmRlcl90aWxlZF9ibGl0cy5jCj4gKysrIGIvdGVz dHMvZ2VtX3JlbmRlcl90aWxlZF9ibGl0cy5jCj4gQEAgLTIwNSw3ICsyMDUsNyBAQCBpZ3RfbWFp bgo+ICAJaW50IGNvdW50ID0gMDsKPiAgCj4gIAlpZ3RfZml4dHVyZSB7Cj4gLQkJZmQgPSBkcm1f b3Blbl9hbnkoKTsKPiArCQlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCX0KPiAg Cj4gIAlpZ3Rfc3VidGVzdCgiYmFzaWMiKSB7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9yZXNl dF9zdGF0cy5jIGIvdGVzdHMvZ2VtX3Jlc2V0X3N0YXRzLmMKPiBpbmRleCAwZTlkYjEwLi5hYTE0 ZWFhIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9yZXNldF9zdGF0cy5jCj4gKysrIGIvdGVzdHMv Z2VtX3Jlc2V0X3N0YXRzLmMKPiBAQCAtODksNyArODksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHRhcmdldF9yaW5nIHsKPiAgCj4gIHN0YXRpYyB2b2lkIGNoZWNrX2NvbnRleHQoY29uc3Qgc3Ry dWN0IHRhcmdldF9yaW5nICpyaW5nKQo+ICB7Cj4gLQlpbnQgZmQgPSBkcm1fb3Blbl9hbnkoKTsK PiArCWludCBmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAlnZW1fY29udGV4 dF9kZXN0cm95KGZkLAo+ICAJCQkgICAgZ2VtX2NvbnRleHRfY3JlYXRlKGZkKSk7Cj4gQEAgLTM0 Niw3ICszNDYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X3JzKGludCBudW1fZmRzLCBpbnQgaGFuZ19p bmRleCwgaW50IHJzX2Fzc3VtZWRfbm9faGFuZykKPiAgCWlndF9hc3NlcnRfbHQoaGFuZ19pbmRl eCwgTUFYX0ZEKTsKPiAgCj4gIAlmb3IgKGkgPSAwOyBpIDwgbnVtX2ZkczsgaSsrKSB7Cj4gLQkJ ZmRbaV0gPSBkcm1fb3Blbl9hbnkoKTsKPiArCQlmZFtpXSA9IGRybV9vcGVuX2FueShPUEVOX0lO VEVMKTsKPiAgCQlpZ3RfYXNzZXJ0KGZkW2ldKTsKPiAgCX0KPiAgCj4gQEAgLTQwMCw3ICs0MDAs NyBAQCBzdGF0aWMgdm9pZCB0ZXN0X3JzX2N0eChpbnQgbnVtX2ZkcywgaW50IG51bV9jdHgsIGlu dCBoYW5nX2luZGV4LAo+ICAJdGVzdF9ycyhudW1fZmRzLCAtMSwgUlNfTk9fRVJST1IpOwo+ICAK PiAgCWZvciAoaSA9IDA7IGkgPCBudW1fZmRzOyBpKyspIHsKPiAtCQlmZFtpXSA9IGRybV9vcGVu X2FueSgpOwo+ICsJCWZkW2ldID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAJCWlndF9h c3NlcnQoZmRbaV0pOwo+ICAJCWFzc2VydF9yZXNldF9zdGF0dXMoZmRbaV0sIDAsIFJTX05PX0VS Uk9SKTsKPiAgCj4gQEAgLTQ3NCw5ICs0NzQsOSBAQCBzdGF0aWMgdm9pZCB0ZXN0X2Jhbih2b2lk KQo+ICAJaW50IGFjdGl2ZV9jb3VudCA9IDAsIHBlbmRpbmdfY291bnQgPSAwOwo+ICAJc3RydWN0 IGxvY2FsX2RybV9pOTE1X3Jlc2V0X3N0YXRzIHJzX2JhZCwgcnNfZ29vZDsKPiAgCj4gLQlmZF9i YWQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZkX2JhZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVM KTsKPiAgCj4gLQlmZF9nb29kID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZF9nb29kID0gZHJtX29w ZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCWFzc2VydF9yZXNldF9zdGF0dXMoZmRfYmFkLCAw LCBSU19OT19FUlJPUik7Cj4gIAlhc3NlcnRfcmVzZXRfc3RhdHVzKGZkX2dvb2QsIDAsIFJTX05P X0VSUk9SKTsKPiBAQCAtNTYxLDcgKzU2MSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfYmFuX2N0eCh2 b2lkKQo+ICAJaW50IGFjdGl2ZV9jb3VudCA9IDAsIHBlbmRpbmdfY291bnQgPSAwOwo+ICAJc3Ry dWN0IGxvY2FsX2RybV9pOTE1X3Jlc2V0X3N0YXRzIHJzX2JhZCwgcnNfZ29vZDsKPiAgCj4gLQlm ZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4g IAo+ICAJYXNzZXJ0X3Jlc2V0X3N0YXR1cyhmZCwgMCwgUlNfTk9fRVJST1IpOwo+ICAKPiBAQCAt NjUyLDggKzY1Miw4IEBAIHN0YXRpYyB2b2lkIHRlc3RfdW5yZWxhdGVkX2N0eCh2b2lkKQo+ICAJ aW50IGZkMSxmZDI7Cj4gIAlpbnQgY3R4X2d1aWx0eSwgY3R4X3VucmVsYXRlZDsKPiAgCj4gLQlm ZDEgPSBkcm1fb3Blbl9hbnkoKTsKPiAtCWZkMiA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQxID0g ZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICsJZmQyID0gZHJtX29wZW5fYW55KE9QRU5fSU5U RUwpOwo+ICAJYXNzZXJ0X3Jlc2V0X3N0YXR1cyhmZDEsIDAsIFJTX05PX0VSUk9SKTsKPiAgCWFz c2VydF9yZXNldF9zdGF0dXMoZmQyLCAwLCBSU19OT19FUlJPUik7Cj4gIAljdHhfZ3VpbHR5ID0g Z2VtX2NvbnRleHRfY3JlYXRlKGZkMSk7Cj4gQEAgLTcwMCw3ICs3MDAsNyBAQCBzdGF0aWMgdm9p ZCB0ZXN0X2Nsb3NlX3BlbmRpbmdfY3R4KHZvaWQpCj4gIAlpbnQgZmQsIGg7Cj4gIAl1aW50MzJf dCBjdHg7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZkID0gZHJtX29wZW5fYW55 KE9QRU5fSU5URUwpOwo+ICAJY3R4ID0gZ2VtX2NvbnRleHRfY3JlYXRlKGZkKTsKPiAgCj4gIAlh c3NlcnRfcmVzZXRfc3RhdHVzKGZkLCBjdHgsIFJTX05PX0VSUk9SKTsKPiBAQCAtNzE4LDcgKzcx OCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfY2xvc2VfcGVuZGluZyh2b2lkKQo+ICB7Cj4gIAlpbnQg ZmQsIGg7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZkID0gZHJtX29wZW5fYW55 KE9QRU5fSU5URUwpOwo+ICAKPiAgCWFzc2VydF9yZXNldF9zdGF0dXMoZmQsIDAsIFJTX05PX0VS Uk9SKTsKPiAgCj4gQEAgLTc4MCw3ICs3ODAsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2Nsb3NlX3Bl bmRpbmdfZm9yayhjb25zdCBib29sIHJldmVyc2UpCj4gIAlpbnQgcGlkOwo+ICAJaW50IGZkLCBo Owo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVO X0lOVEVMKTsKPiAgCj4gIAlhc3NlcnRfcmVzZXRfc3RhdHVzKGZkLCAwLCBSU19OT19FUlJPUik7 Cj4gIAo+IEBAIC03OTUsNyArNzk1LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9jbG9zZV9wZW5kaW5n X2ZvcmsoY29uc3QgYm9vbCByZXZlcnNlKQo+ICAJICovCj4gIAlwaWQgPSBmb3JrKCk7Cj4gIAlp ZiAocGlkID09IDApIHsKPiAtCQljb25zdCBpbnQgZmQyID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJ Y29uc3QgaW50IGZkMiA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCQlpZ3RfYXNzZXJ0 X2x0ZSgwLCBmZDIpOwo+ICAKPiAgCQkvKiBUaGUgY3J1Y2lhbCBjb21wb25lbnQgaXMgdGhhdCB3 ZSBzY2hlZHVsZSB0aGUgc2FtZSBub29wIGJhdGNoCj4gQEAgLTgxOSw3ICs4MTksNyBAQCBzdGF0 aWMgdm9pZCB0ZXN0X2Nsb3NlX3BlbmRpbmdfZm9yayhjb25zdCBib29sIHJldmVyc2UpCj4gIAlj bG9zZShmZCk7Cj4gIAo+ICAJLyogVGhlbiB3ZSBqdXN0IHdhaXQgb24gaGFuZyB0byBoYXBwZW4g Ki8KPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lO VEVMKTsKPiAgCj4gIAloID0gZXhlY192YWxpZChmZCwgMCk7Cj4gIAlpZ3RfYXNzZXJ0X2x0ZSgw LCBoKTsKPiBAQCAtODM0LDcgKzgzNCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfcmVzZXRfY291bnQo Y29uc3QgYm9vbCBjcmVhdGVfY3R4KQo+ICAJaW50IGZkLCBoLCBjdHg7Cj4gIAlsb25nIGMxLCBj MjsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9hbnkoT1BF Tl9JTlRFTCk7Cj4gIAlpZiAoY3JlYXRlX2N0eCkKPiAgCQljdHggPSBnZW1fY29udGV4dF9jcmVh dGUoZmQpOwo+ICAJZWxzZQo+IEBAIC05NDQsNyArOTQ0LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9w YXJhbXNfY3R4KHZvaWQpCj4gIHsKPiAgCWludCBmZCwgY3R4Owo+ICAKPiAtCWZkID0gZHJtX29w ZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCWN0eCA9IGdl bV9jb250ZXh0X2NyZWF0ZShmZCk7Cj4gIAo+ICAJX3Rlc3RfcGFyYW0oZmQsIGN0eCk7Cj4gQEAg LTk1Niw3ICs5NTYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X3BhcmFtcyh2b2lkKQo+ICB7Cj4gIAlp bnQgZmQ7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZkID0gZHJtX29wZW5fYW55 KE9QRU5fSU5URUwpOwo+ICAKPiAgCV90ZXN0X3BhcmFtKGZkLCAwKTsKPiAgCj4gQEAgLTk2OSw3 ICs5NjksNyBAQCBzdGF0aWMgdm9pZCBkZWZlcl9oYW5nY2hlY2soaW50IHJpbmdfbnVtKQo+ICAJ aW50IGZkLCBjb3VudF9zdGFydCwgY291bnRfZW5kOwo+ICAJaW50IHNlY29uZHMgPSAzMDsKPiAg CWNvbnN0IHN0cnVjdCB0YXJnZXRfcmluZyAqbmV4dF9yaW5nOwo+IC0JZmQgPSBkcm1fb3Blbl9h bnkoKTsKPiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCWRvIHsKPiAg CQluZXh0X3JpbmcgPSAmcmluZ3NbKCsrcmluZ19udW0pICUgTlVNX1JJTkdTXTsKPiBAQCAtMTA0 Myw3ICsxMDQzLDcgQEAgc3RhdGljIHZvaWQgY2hlY2tfZ3B1X29rKHZvaWQpCj4gIAo+ICAJaWd0 X2Fzc2VydChmbGFncyA9PSAwKTsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQg PSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAlnZW1fcXVpZXNjZW50X2dwdShmZCk7Cj4g IAljbG9zZShmZCk7Cj4gIH0KPiBAQCAtMTA1OSw3ICsxMDU5LDcgQEAgaWd0X21haW4KPiAgCQlp bnQgZmQ7Cj4gIAo+ICAJCWJvb2wgaGFzX3Jlc2V0X3N0YXRzOwo+IC0JCWZkID0gZHJtX29wZW5f YW55KCk7Cj4gKwkJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAkJZGV2aWQgPSBp bnRlbF9nZXRfZHJtX2RldmlkKGZkKTsKPiAgCj4gIAkJaGFzX3Jlc2V0X3N0YXRzID0gZ2VtX2hh c19yZXNldF9zdGF0cyhmZCk7Cj4gQEAgLTEwODAsNyArMTA4MCw3IEBAIGlndF9tYWluCj4gIAkJ bmFtZSA9IGN1cnJlbnRfcmluZy0+bmFtZTsKPiAgCj4gIAkJaWd0X2ZpeHR1cmUgewo+IC0JCQlp bnQgZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCQkJaW50IGZkID0gZHJtX29wZW5fYW55KE9QRU5f SU5URUwpOwo+ICAJCQlnZW1fcmVxdWlyZV9yaW5nKGZkLCBjdXJyZW50X3JpbmctPmV4ZWMpOwo+ ICAJCQljbG9zZShmZCk7Cj4gIAkJfQo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fcmluZ19zeW5j X2xvb3AuYyBiL3Rlc3RzL2dlbV9yaW5nX3N5bmNfbG9vcC5jCj4gaW5kZXggNGI4ODUzMC4uZDQ5 MDRlNCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fcmluZ19zeW5jX2xvb3AuYwo+ICsrKyBiL3Rl c3RzL2dlbV9yaW5nX3N5bmNfbG9vcC5jCj4gQEAgLTk4LDcgKzk4LDcgQEAgaWd0X3NpbXBsZV9t YWluCj4gIAlpbnQgZmQ7Cj4gIAlpbnQgZGV2aWQ7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnko KTsKPiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAJZGV2aWQgPSBpbnRlbF9n ZXRfZHJtX2RldmlkKGZkKTsKPiAgCWdlbV9yZXF1aXJlX3JpbmcoZmQsIEk5MTVfRVhFQ19CTFQp Owo+ICAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX3JpbmdmaWxsLmMgYi90ZXN0cy9nZW1fcmlu Z2ZpbGwuYwo+IGluZGV4IDg1YjAxZWEuLjZhM2U1ZTUgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2Vt X3JpbmdmaWxsLmMKPiArKysgYi90ZXN0cy9nZW1fcmluZ2ZpbGwuYwo+IEBAIC0yMDIsNyArMjAy LDcgQEAgaWd0X21haW4KPiAgCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKPiAgCj4gIAlpZ3Rf Zml4dHVyZSB7Cj4gLQkJZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCQlmZCA9IGRybV9vcGVuX2Fu eShPUEVOX0lOVEVMKTsKPiAgCj4gIAkJYnVmbWdyID0gZHJtX2ludGVsX2J1Zm1ncl9nZW1faW5p dChmZCwgNDA5Nik7Cj4gIAkJZHJtX2ludGVsX2J1Zm1ncl9nZW1fZW5hYmxlX3JldXNlKGJ1Zm1n cik7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9zZXFub193cmFwLmMgYi90ZXN0cy9nZW1fc2Vx bm9fd3JhcC5jCj4gaW5kZXggNDNkYTQ1MC4uN2QzZjQ5NiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9n ZW1fc2Vxbm9fd3JhcC5jCj4gKysrIGIvdGVzdHMvZ2VtX3NlcW5vX3dyYXAuYwo+IEBAIC0xODYs NyArMTg2LDcgQEAgc3RhdGljIHZvaWQgcnVuX3N5bmNfdGVzdChpbnQgbnVtX2J1ZmZlcnMsIGJv b2wgdmVyaWZ5KQo+ICAJdW5zaWduZWQgaW50ICpwX2RzdDEsICpwX2RzdDI7Cj4gIAlzdHJ1Y3Qg aWd0X2J1ZiAqc19zcmMsICpzX2RzdDsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJ ZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJZ2VtX3F1aWVzY2VudF9ncHUo ZmQpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX3NldF90aWxpbmdfdnNfYmx0LmMgYi90 ZXN0cy9nZW1fc2V0X3RpbGluZ192c19ibHQuYwo+IGluZGV4IDk1NjMwOGEuLjQ1MWY2ZDcgMTAw NjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX3NldF90aWxpbmdfdnNfYmx0LmMKPiArKysgYi90ZXN0cy9n ZW1fc2V0X3RpbGluZ192c19ibHQuYwo+IEBAIC0yMzUsNyArMjM1LDcgQEAgaWd0X21haW4KPiAg CQlmb3IgKGkgPSAwOyBpIDwgMTAyNCoyNTY7IGkrKykKPiAgCQkJZGF0YVtpXSA9IGk7Cj4gIAo+ IC0JCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRF TCk7Cj4gIAo+ICAJCWJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZmQsIDQwOTYp Owo+ICAJCWRybV9pbnRlbF9idWZtZ3JfZ2VtX2VuYWJsZV9yZXVzZShidWZtZ3IpOwo+IGRpZmYg LS1naXQgYS90ZXN0cy9nZW1fc2V0X3RpbGluZ192c19ndHQuYyBiL3Rlc3RzL2dlbV9zZXRfdGls aW5nX3ZzX2d0dC5jCj4gaW5kZXggMDA2ZjUwYS4uYmYyYjViYSAxMDA2NDQKPiAtLS0gYS90ZXN0 cy9nZW1fc2V0X3RpbGluZ192c19ndHQuYwo+ICsrKyBiL3Rlc3RzL2dlbV9zZXRfdGlsaW5nX3Zz X2d0dC5jCj4gQEAgLTYxLDcgKzYxLDcgQEAgaWd0X3NpbXBsZV9tYWluCj4gIAo+ICAJaWd0X3Nr aXBfb25fc2ltdWxhdGlvbigpOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9 IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAlpZiAoSVNfR0VOMihpbnRlbF9nZXRf ZHJtX2RldmlkKGZkKSkpCj4gIAkJdGlsZV9oZWlnaHQgPSAxNjsKPiBkaWZmIC0tZ2l0IGEvdGVz dHMvZ2VtX3NldF90aWxpbmdfdnNfcHdyaXRlLmMgYi90ZXN0cy9nZW1fc2V0X3RpbGluZ192c19w d3JpdGUuYwo+IGluZGV4IGE0YmRjNjQuLjRmOGQ2OGEgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2Vt X3NldF90aWxpbmdfdnNfcHdyaXRlLmMKPiArKysgYi90ZXN0cy9nZW1fc2V0X3RpbGluZ192c19w d3JpdGUuYwo+IEBAIC01OCw3ICs1OCw3IEBAIGlndF9zaW1wbGVfbWFpbgo+ICAKPiAgCWlndF9z a2lwX29uX3NpbXVsYXRpb24oKTsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQg PSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJZm9yIChpID0gMDsgaSA8IE9CSkVD VF9TSVpFLzQ7IGkrKykKPiAgCQlkYXRhW2ldID0gaTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2Vt X3N0b3JlZHdfYmF0Y2hlc19sb29wLmMgYi90ZXN0cy9nZW1fc3RvcmVkd19iYXRjaGVzX2xvb3Au Ywo+IGluZGV4IGRjYzExYTUuLmQ2YzNlMDcgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX3N0b3Jl ZHdfYmF0Y2hlc19sb29wLmMKPiArKysgYi90ZXN0cy9nZW1fc3RvcmVkd19iYXRjaGVzX2xvb3Au Ywo+IEBAIC0xMzcsNyArMTM3LDcgQEAgaWd0X21haW4KPiAgCWlndF9za2lwX29uX3NpbXVsYXRp b24oKTsKPiAgCj4gIAlpZ3RfZml4dHVyZSB7Cj4gLQkJZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiAr CQlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCQlkZXZpZCA9IGludGVsX2dldF9k cm1fZGV2aWQoZmQpOwo+ICAKPiAgCQloYXNfcHBndHQgPSBnZW1fdXNlc19hbGlhc2luZ19wcGd0 dChmZCk7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9zdG9yZWR3X2xvb3BfYmx0LmMgYi90ZXN0 cy9nZW1fc3RvcmVkd19sb29wX2JsdC5jCj4gaW5kZXggNDRlNDZhOC4uYzhjZmY4ZCAxMDA2NDQK PiAtLS0gYS90ZXN0cy9nZW1fc3RvcmVkd19sb29wX2JsdC5jCj4gKysrIGIvdGVzdHMvZ2VtX3N0 b3JlZHdfbG9vcF9ibHQuYwo+IEBAIC0xMTcsNyArMTE3LDcgQEAgaWd0X3NpbXBsZV9tYWluCj4g IAlpbnQgZmQ7Cj4gIAlpbnQgZGV2aWQ7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiAr CWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAJZGV2aWQgPSBpbnRlbF9nZXRfZHJt X2RldmlkKGZkKTsKPiAgCj4gIAloYXNfcHBndHQgPSBnZW1fdXNlc19hbGlhc2luZ19wcGd0dChm ZCk7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9zdG9yZWR3X2xvb3BfYnNkLmMgYi90ZXN0cy9n ZW1fc3RvcmVkd19sb29wX2JzZC5jCj4gaW5kZXggZTUzNGMxNi4uZTMwOTU2OSAxMDA2NDQKPiAt LS0gYS90ZXN0cy9nZW1fc3RvcmVkd19sb29wX2JzZC5jCj4gKysrIGIvdGVzdHMvZ2VtX3N0b3Jl ZHdfbG9vcF9ic2QuYwo+IEBAIC0xMTcsNyArMTE3LDcgQEAgaWd0X3NpbXBsZV9tYWluCj4gIAlp bnQgZmQ7Cj4gIAlpbnQgZGV2aWQ7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZk ID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAJZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2Rl dmlkKGZkKTsKPiAgCj4gIAloYXNfcHBndHQgPSBnZW1fdXNlc19hbGlhc2luZ19wcGd0dChmZCk7 Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9zdG9yZWR3X2xvb3BfcmVuZGVyLmMgYi90ZXN0cy9n ZW1fc3RvcmVkd19sb29wX3JlbmRlci5jCj4gaW5kZXggNDhmYjZkNC4uZTY0OTBmYiAxMDA2NDQK PiAtLS0gYS90ZXN0cy9nZW1fc3RvcmVkd19sb29wX3JlbmRlci5jCj4gKysrIGIvdGVzdHMvZ2Vt X3N0b3JlZHdfbG9vcF9yZW5kZXIuYwo+IEBAIC0xMTcsNyArMTE3LDcgQEAgaWd0X3NpbXBsZV9t YWluCj4gIAlpbnQgZmQ7Cj4gIAlpbnQgZGV2aWQ7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnko KTsKPiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAJZGV2aWQgPSBpbnRlbF9n ZXRfZHJtX2RldmlkKGZkKTsKPiAgCj4gIAloYXNfcHBndHQgPSBnZW1fdXNlc19hbGlhc2luZ19w cGd0dChmZCk7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9zdG9yZWR3X2xvb3BfdmVib3guYyBi L3Rlc3RzL2dlbV9zdG9yZWR3X2xvb3BfdmVib3guYwo+IGluZGV4IDg2NDNkZDMuLjllY2YzNjYg MTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VtX3N0b3JlZHdfbG9vcF92ZWJveC5jCj4gKysrIGIvdGVz dHMvZ2VtX3N0b3JlZHdfbG9vcF92ZWJveC5jCj4gQEAgLTEwMSw3ICsxMDEsNyBAQCBpZ3Rfc2lt cGxlX21haW4KPiAgewo+ICAJaW50IGZkOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4g KwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAlpZ3RfcmVxdWlyZShnZW1f aGFzX3ZlYm94KGZkKSk7Cj4gIAlpZ3RfcmVxdWlyZShnZW1fdXNlc19hbGlhc2luZ19wcGd0dChm ZCkpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fc3RyZXNzLmMgYi90ZXN0cy9nZW1fc3RyZXNz LmMKPiBpbmRleCA4MDQ2ODRmLi4yYWMzNWFkIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9zdHJl c3MuYwo+ICsrKyBiL3Rlc3RzL2dlbV9zdHJlc3MuYwo+IEBAIC04NTcsNyArODU3LDcgQEAgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAJaWd0X3NpbXBsZV9pbml0X3BhcnNlX29w dHMoJmFyZ2MsIGFyZ3YsImRzOmc6Yzp0OnJidXhtbzpmcDoiLAo+ICAJCQkJICAgbG9uZ19vcHRp b25zLCBOVUxMLCBwYXJzZV9vcHRpb25zKTsKPiAgCj4gLQlkcm1fZmQgPSBkcm1fb3Blbl9hbnko KTsKPiArCWRybV9mZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCWRldmlkID0gaW50 ZWxfZ2V0X2RybV9kZXZpZChkcm1fZmQpOwo+ICAKPiAgCS8qIHN0YXJ0IG91ciBsaXR0bGUgaGVs cGVyIGVhcmx5IGJlZm9yZSB0b28gbWF5IGFsbG9jYXRpb25zIG9jY3VyICovCj4gZGlmZiAtLWdp dCBhL3Rlc3RzL2dlbV90aHJlYWRlZF9hY2Nlc3NfdGlsZWQuYyBiL3Rlc3RzL2dlbV90aHJlYWRl ZF9hY2Nlc3NfdGlsZWQuYwo+IGluZGV4IDE2YTUwYWQuLjY4Y2FkNTYgMTAwNjQ0Cj4gLS0tIGEv dGVzdHMvZ2VtX3RocmVhZGVkX2FjY2Vzc190aWxlZC5jCj4gKysrIGIvdGVzdHMvZ2VtX3RocmVh ZGVkX2FjY2Vzc190aWxlZC5jCj4gQEAgLTk4LDcgKzk4LDcgQEAgaWd0X3NpbXBsZV9tYWluCj4g IAo+ICAJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55 KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCWlndF9hc3NlcnQoZmQg Pj0gMCk7Cj4gIAo+ICAJYnVmbWdyID0gZHJtX2ludGVsX2J1Zm1ncl9nZW1faW5pdChmZCwgNDA5 Nik7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV90aWxlZF9ibGl0cy5jIGIvdGVzdHMvZ2VtX3Rp bGVkX2JsaXRzLmMKPiBpbmRleCAzZmNlYjgxLi5lOWY3ZTg3IDEwMDY0NAo+IC0tLSBhL3Rlc3Rz L2dlbV90aWxlZF9ibGl0cy5jCj4gKysrIGIvdGVzdHMvZ2VtX3RpbGVkX2JsaXRzLmMKPiBAQCAt MjAzLDcgKzIwMyw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiAgCWlndF9z dWJ0ZXN0X2luaXQoYXJnYywgYXJndik7Cj4gIAo+ICAJaWd0X2ZpeHR1cmUgewo+IC0JCWZkID0g ZHJtX29wZW5fYW55KCk7Cj4gKwkJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ ICAJCWJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZmQsIDQwOTYpOwo+ICAJCWRy bV9pbnRlbF9idWZtZ3JfZ2VtX2VuYWJsZV9yZXVzZShidWZtZ3IpOwo+IGRpZmYgLS1naXQgYS90 ZXN0cy9nZW1fdGlsZWRfZmVuY2VfYmxpdHMuYyBiL3Rlc3RzL2dlbV90aWxlZF9mZW5jZV9ibGl0 cy5jCj4gaW5kZXggYzg1MjIwNy4uYmYwZTIwNCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fdGls ZWRfZmVuY2VfYmxpdHMuYwo+ICsrKyBiL3Rlc3RzL2dlbV90aWxlZF9mZW5jZV9ibGl0cy5jCj4g QEAgLTExMSw3ICsxMTEsNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCj4gIAlpZ3Rfc2tpcF9vbl9z aW11bGF0aW9uKCk7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZkID0gZHJtX29w ZW5fYW55KE9QRU5fSU5URUwpOwo+ICAJY291bnQgPSAzICogZ2VtX2FwZXJ0dXJlX3NpemUoZmQp IC8gKDEwMjQqMTAyNCkgLyAyOwo+ICAJaWYgKGNvdW50ID4gaW50ZWxfZ2V0X3RvdGFsX3JhbV9t YigpICogOSAvIDEwKSB7Cj4gIAkJY291bnQgPSBpbnRlbF9nZXRfdG90YWxfcmFtX21iKCkgKiA5 IC8gMTA7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV90aWxlZF9wYXJ0aWFsX3B3cml0ZV9wcmVh ZC5jIGIvdGVzdHMvZ2VtX3RpbGVkX3BhcnRpYWxfcHdyaXRlX3ByZWFkLmMKPiBpbmRleCA4ZGVh ODJlLi5hNWUzODI1IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV90aWxlZF9wYXJ0aWFsX3B3cml0 ZV9wcmVhZC5jCj4gKysrIGIvdGVzdHMvZ2VtX3RpbGVkX3BhcnRpYWxfcHdyaXRlX3ByZWFkLmMK PiBAQCAtMjYyLDcgKzI2Miw3IEBAIGlndF9tYWluCj4gIAlzcmFuZG9tKDB4ZGVhZGJlZWYpOwo+ ICAKPiAgCWlndF9maXh0dXJlIHsKPiAtCQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJCWZkID0g ZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCQlidWZtZ3IgPSBkcm1faW50ZWxfYnVm bWdyX2dlbV9pbml0KGZkLCA0MDk2KTsKPiAgCQkvL2RybV9pbnRlbF9idWZtZ3JfZ2VtX2VuYWJs ZV9yZXVzZShidWZtZ3IpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fdGlsZWRfcHJlYWQuYyBi L3Rlc3RzL2dlbV90aWxlZF9wcmVhZC5jCj4gaW5kZXggZmRjNTE3My4uOGRkZmQzMiAxMDA2NDQK PiAtLS0gYS90ZXN0cy9nZW1fdGlsZWRfcHJlYWQuYwo+ICsrKyBiL3Rlc3RzL2dlbV90aWxlZF9w cmVhZC5jCj4gQEAgLTEyMCw3ICsxMjAsNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCXVpbnQzMl90 IGhhbmRsZTsKPiAgCXVpbnQzMl90IGRldmlkOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7 Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAloYW5kbGUgPSBjcmVh dGVfYm8oZmQpOwo+ICAJZ2VtX2dldF90aWxpbmcoZmQsIGhhbmRsZSwgJnRpbGluZywgJnN3aXp6 bGUpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fdGlsZWRfcHJlYWRfcHdyaXRlLmMgYi90ZXN0 cy9nZW1fdGlsZWRfcHJlYWRfcHdyaXRlLmMKPiBpbmRleCAzZDhmZGM5Li4yNmVmYzIwIDEwMDY0 NAo+IC0tLSBhL3Rlc3RzL2dlbV90aWxlZF9wcmVhZF9wd3JpdGUuYwo+ICsrKyBiL3Rlc3RzL2dl bV90aWxlZF9wcmVhZF9wd3JpdGUuYwo+IEBAIC0xMTAsNyArMTEwLDcgQEAgaWd0X3NpbXBsZV9t YWluCj4gIAl1aW50MzJfdCBoYW5kbGUsIGhhbmRsZV90YXJnZXQ7Cj4gIAlpbnQgY291bnQ7Cj4g IAkKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lO VEVMKTsKPiAgCWNvdW50ID0gU0xPV19RVUlDSyhpbnRlbF9nZXRfdG90YWxfcmFtX21iKCkgKiA5 IC8gMTAsIDgpIDsKPiAgCj4gIAlmb3IgKGkgPSAwOyBpIDwgY291bnQvMjsgaSsrKSB7Cj4gZGlm ZiAtLWdpdCBhL3Rlc3RzL2dlbV90aWxlZF9zd2FwcGluZy5jIGIvdGVzdHMvZ2VtX3RpbGVkX3N3 YXBwaW5nLmMKPiBpbmRleCAyMzYxZGZjLi42NjY2Mzg4IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dl bV90aWxlZF9zd2FwcGluZy5jCj4gKysrIGIvdGVzdHMvZ2VtX3RpbGVkX3N3YXBwaW5nLmMKPiBA QCAtMTkwLDcgKzE5MCw3IEBAIGlndF9tYWluCj4gIAo+ICAJCWludGVsX3B1cmdlX3ZtX2NhY2hl cygpOwo+ICAKPiAtCQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJCWZkID0gZHJtX29wZW5fYW55 KE9QRU5fSU5URUwpOwo+ICAKPiAgCQljaGVja19tZW1vcnlfbGF5b3V0KCk7Cj4gIAo+IGRpZmYg LS1naXQgYS90ZXN0cy9nZW1fdGlsZWRfd2IuYyBiL3Rlc3RzL2dlbV90aWxlZF93Yi5jCj4gaW5k ZXggYjZlZmQ2ZS4uZmVlNDY1OSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fdGlsZWRfd2IuYwo+ ICsrKyBiL3Rlc3RzL2dlbV90aWxlZF93Yi5jCj4gQEAgLTE0MCw3ICsxNDAsNyBAQCBpZ3Rfc2lt cGxlX21haW4KPiAgCXVpbnQzMl90IHRpbGluZywgc3dpenpsZTsKPiAgCXVpbnQzMl90IGhhbmRs ZTsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9hbnkoT1BF Tl9JTlRFTCk7Cj4gIAo+ICAJaGFuZGxlID0gY3JlYXRlX2JvKGZkKTsKPiAgCWdldF90aWxpbmco ZmQsIGhhbmRsZSwgJnRpbGluZywgJnN3aXp6bGUpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1f dGlsZWRfd2MuYyBiL3Rlc3RzL2dlbV90aWxlZF93Yy5jCj4gaW5kZXggYjBmN2E2NS4uYmM1ZjBm NyAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fdGlsZWRfd2MuYwo+ICsrKyBiL3Rlc3RzL2dlbV90 aWxlZF93Yy5jCj4gQEAgLTEzNSw3ICsxMzUsNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCXVpbnQz Ml90IHRpbGluZywgc3dpenpsZTsKPiAgCXVpbnQzMl90IGhhbmRsZTsKPiAgCj4gLQlmZCA9IGRy bV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAlnZW1f cmVxdWlyZV9tbWFwX3djKGZkKTsKPiAgCj4gIAloYW5kbGUgPSBjcmVhdGVfYm8oZmQpOwo+IGRp ZmYgLS1naXQgYS90ZXN0cy9nZW1fdGlsaW5nX21heF9zdHJpZGUuYyBiL3Rlc3RzL2dlbV90aWxp bmdfbWF4X3N0cmlkZS5jCj4gaW5kZXggZmNlMWFjNy4uODU5NGQzNyAxMDA2NDQKPiAtLS0gYS90 ZXN0cy9nZW1fdGlsaW5nX21heF9zdHJpZGUuYwo+ICsrKyBiL3Rlc3RzL2dlbV90aWxpbmdfbWF4 X3N0cmlkZS5jCj4gQEAgLTcxLDcgKzcxLDcgQEAgaWd0X3NpbXBsZV9tYWluCj4gIAlpbnQgdGls ZV93aWR0aCA9IDUxMjsKPiAgCWludCB0aWxlX2hlaWdodCA9IDg7Cj4gIAo+IC0JZmQgPSBkcm1f b3Blbl9hbnkoKTsKPiArCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCWRl dmlkID0gaW50ZWxfZ2V0X2RybV9kZXZpZChmZCk7Cj4gIAo+IGRpZmYgLS1naXQgYS90ZXN0cy9n ZW1fdW5mZW5jZV9hY3RpdmVfYnVmZmVycy5jIGIvdGVzdHMvZ2VtX3VuZmVuY2VfYWN0aXZlX2J1 ZmZlcnMuYwo+IGluZGV4IDEyNTU2OGUuLjdlYWJhMjEgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2Vt X3VuZmVuY2VfYWN0aXZlX2J1ZmZlcnMuYwo+ICsrKyBiL3Rlc3RzL2dlbV91bmZlbmNlX2FjdGl2 ZV9idWZmZXJzLmMKPiBAQCAtNzcsNyArNzcsNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCWZvciAo aSA9IDA7IGkgPCAxMDI0KjI1NjsgaSsrKQo+ICAJCWRhdGFbaV0gPSBpOwo+ICAKPiAtCWZkID0g ZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4g IAlidWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0KGZkLCA0MDk2KTsKPiAgCWRybV9p bnRlbF9idWZtZ3JfZ2VtX2VuYWJsZV9yZXVzZShidWZtZ3IpOwo+IGRpZmYgLS1naXQgYS90ZXN0 cy9nZW1fdW5yZWZfYWN0aXZlX2J1ZmZlcnMuYyBiL3Rlc3RzL2dlbV91bnJlZl9hY3RpdmVfYnVm ZmVycy5jCj4gaW5kZXggOGM4ZWZhYS4uY2Y3ZGQyYyAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1f dW5yZWZfYWN0aXZlX2J1ZmZlcnMuYwo+ICsrKyBiL3Rlc3RzL2dlbV91bnJlZl9hY3RpdmVfYnVm ZmVycy5jCj4gQEAgLTYwLDcgKzYwLDcgQEAgaWd0X3NpbXBsZV9tYWluCj4gIAo+ICAJaWd0X3Nr aXBfb25fc2ltdWxhdGlvbigpOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9 IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAlidWZtZ3IgPSBkcm1faW50ZWxfYnVm bWdyX2dlbV9pbml0KGZkLCA0MDk2KTsKPiAgCWlndF9hc3NlcnQoYnVmbWdyKTsKPiBkaWZmIC0t Z2l0IGEvdGVzdHMvZ2VtX3VzZXJwdHJfYmxpdHMuYyBiL3Rlc3RzL2dlbV91c2VycHRyX2JsaXRz LmMKPiBpbmRleCA5NjFhNWFmLi5jYTM0MTczIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV91c2Vy cHRyX2JsaXRzLmMKPiArKysgYi90ZXN0cy9nZW1fdXNlcnB0cl9ibGl0cy5jCj4gQEAgLTc3OSw3 ICs3NzksNyBAQCBzdGF0aWMgaW50IHRlc3RfZG1hYnVmKHZvaWQpCj4gIAlpbnQgZG1hX2J1Zl9m ZCA9IC0xOwo+ICAJaW50IHJldDsKPiAgCj4gLQlmZDEgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZk MSA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAloYW5kbGUgPSBjcmVhdGVfdXNl cnB0cl9ibyhmZDEsIHNpemVvZihsaW5lYXIpKTsKPiAgCW1lbXNldChnZXRfaGFuZGxlX3B0ciho YW5kbGUpLCBjb3VudGVyLCBzaXplb2YobGluZWFyKSk7Cj4gQEAgLTc5NSw3ICs3OTUsNyBAQCBz dGF0aWMgaW50IHRlc3RfZG1hYnVmKHZvaWQpCj4gIAkJaWd0X2Fzc2VydF9sdGUoMCwgZG1hX2J1 Zl9mZCk7Cj4gIAl9Cj4gIAo+IC0JZmQyID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZDIgPSBkcm1f b3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAloYW5kbGVfaW1wb3J0ID0gcHJpbWVfZmRfdG9faGFu ZGxlKGZkMiwgZG1hX2J1Zl9mZCk7Cj4gIAljaGVja19ibyhmZDEsIGhhbmRsZSwgMSwgZmQyLCBo YW5kbGVfaW1wb3J0KTsKPiAgCj4gQEAgLTEzMTUsNyArMTMxNSw3IEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKPiAgCWlndF9maXh0dXJlIHsKPiAgCQlpbnQgcmV0Owo+ICAKPiAt CQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJCWZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwp Owo+ICAJCWlndF9hc3NlcnQoZmQgPj0gMCk7Cj4gIAo+ICAJCXJldCA9IGhhc191c2VycHRyKGZk KTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX3dhaXQuYyBiL3Rlc3RzL2dlbV93YWl0LmMKPiBp bmRleCA2NzMxN2RkLi4zZDc5ZjhiIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV93YWl0LmMKPiAr KysgYi90ZXN0cy9nZW1fd2FpdC5jCj4gQEAgLTI2Miw3ICsyNjIsNyBAQCBpbnQgZHJtX2ZkOwo+ ICBpZ3RfbWFpbgo+ICB7Cj4gIAlpZ3RfZml4dHVyZQo+IC0JCWRybV9mZCA9IGRybV9vcGVuX2Fu eSgpOwo+ICsJCWRybV9mZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAlpZ3Rf c3VidGVzdCgicmVuZGVyX3RpbWVvdXQiKQo+ICAJCXJlbmRlcl90aW1lb3V0KGRybV9mZCk7Cj4g ZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV93b3JrYXJvdW5kcy5jIGIvdGVzdHMvZ2VtX3dvcmthcm91 bmRzLmMKPiBpbmRleCBmMWRhM2VmLi4wNGQwMWNhIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV93 b3JrYXJvdW5kcy5jCj4gKysrIGIvdGVzdHMvZ2VtX3dvcmthcm91bmRzLmMKPiBAQCAtMTg4LDcg KzE4OCw3IEBAIGlndF9tYWluCj4gIAkJY2hhciAqbGluZSA9IE5VTEw7Cj4gIAkJc2l6ZV90IGxp bmVfc2l6ZTsKPiAgCj4gLQkJZHJtX2ZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJZHJtX2ZkID0g ZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCQlidWZtZ3IgPSBkcm1faW50ZWxfYnVm bWdyX2dlbV9pbml0KGRybV9mZCwgNDA5Nik7Cj4gIAkJZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2Rl dmlkKGRybV9mZCk7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV93cml0ZV9yZWFkX3Jpbmdfc3dp dGNoLmMgYi90ZXN0cy9nZW1fd3JpdGVfcmVhZF9yaW5nX3N3aXRjaC5jCj4gaW5kZXggZGE1Nzlk YS4uZWI4N2I3MCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fd3JpdGVfcmVhZF9yaW5nX3N3aXRj aC5jCj4gKysrIGIvdGVzdHMvZ2VtX3dyaXRlX3JlYWRfcmluZ19zd2l0Y2guYwo+IEBAIC0xNTYs NyArMTU2LDcgQEAgaWd0X21haW4KPiAgCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKPiAgCj4g IAlpZ3RfZml4dHVyZSB7Cj4gLQkJZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCQlmZCA9IGRybV9v cGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAkJLyogVGVzdCByZXF1aXJlcyBNSV9GTFVTSF9E VyBhbmQgTUlfQ09ORF9CQVRDSF9CVUZGRVJfRU5EICovCj4gIAkJaWd0X3JlcXVpcmUoaW50ZWxf Z2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKSA+PSA2KTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMv Z2VuM19taXhlZF9ibGl0cy5jIGIvdGVzdHMvZ2VuM19taXhlZF9ibGl0cy5jCj4gaW5kZXggNjIw Mzk4Mi4uN2QwMDY3OCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW4zX21peGVkX2JsaXRzLmMKPiAr KysgYi90ZXN0cy9nZW4zX21peGVkX2JsaXRzLmMKPiBAQCAtNDY1LDcgKzQ2NSw3IEBAIGludCBt YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiAgCj4gIAlpZ3Rfc2ltcGxlX2luaXQoYXJnYywg YXJndik7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZkID0gZHJtX29wZW5fYW55 KE9QRU5fSU5URUwpOwo+ICAKPiAgCWlndF9yZXF1aXJlKElTX0dFTjMoaW50ZWxfZ2V0X2RybV9k ZXZpZChmZCkpKTsKPiAgCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbjNfcmVuZGVyX2xpbmVhcl9i bGl0cy5jIGIvdGVzdHMvZ2VuM19yZW5kZXJfbGluZWFyX2JsaXRzLmMKPiBpbmRleCA1ZWQ0Yzgy Li4xNTgwYzNmIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbjNfcmVuZGVyX2xpbmVhcl9ibGl0cy5j Cj4gKysrIGIvdGVzdHMvZ2VuM19yZW5kZXJfbGluZWFyX2JsaXRzLmMKPiBAQCAtMzMzLDcgKzMz Myw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiAgCj4gIAlpZ3Rfc2ltcGxl X2luaXQoYXJnYywgYXJndik7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZkID0g ZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCWlndF9yZXF1aXJlKElTX0dFTjMoaW50 ZWxfZ2V0X2RybV9kZXZpZChmZCkpKTsKPiAgCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbjNfcmVu ZGVyX21peGVkX2JsaXRzLmMgYi90ZXN0cy9nZW4zX3JlbmRlcl9taXhlZF9ibGl0cy5jCj4gaW5k ZXggNWU1ZTQxNy4uNTk3MTVlYSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW4zX3JlbmRlcl9taXhl ZF9ibGl0cy5jCj4gKysrIGIvdGVzdHMvZ2VuM19yZW5kZXJfbWl4ZWRfYmxpdHMuYwo+IEBAIC0z NTMsNyArMzUzLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAKPiAgCWln dF9zaW1wbGVfaW5pdChhcmdjLCBhcmd2KTsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ ICsJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJaWd0X3JlcXVpcmUoSVNf R0VOMyhpbnRlbF9nZXRfZHJtX2RldmlkKGZkKSkpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMv Z2VuM19yZW5kZXJfdGlsZWR4X2JsaXRzLmMgYi90ZXN0cy9nZW4zX3JlbmRlcl90aWxlZHhfYmxp dHMuYwo+IGluZGV4IDRmMzA5ZjcuLjJhMTFiNWEgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvZ2VuM19y ZW5kZXJfdGlsZWR4X2JsaXRzLmMKPiArKysgYi90ZXN0cy9nZW4zX3JlbmRlcl90aWxlZHhfYmxp dHMuYwo+IEBAIC0zNDAsNyArMzQwLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQo+ICAKPiAgCWlndF9zaW1wbGVfaW5pdChhcmdjLCBhcmd2KTsKPiAgCj4gLQlmZCA9IGRybV9v cGVuX2FueSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJaWd0 X3JlcXVpcmUoSVNfR0VOMyhpbnRlbF9nZXRfZHJtX2RldmlkKGZkKSkpOwo+ICAKPiBkaWZmIC0t Z2l0IGEvdGVzdHMvZ2VuM19yZW5kZXJfdGlsZWR5X2JsaXRzLmMgYi90ZXN0cy9nZW4zX3JlbmRl cl90aWxlZHlfYmxpdHMuYwo+IGluZGV4IDU3ZWQ5ODQuLmIxNjFkMWUgMTAwNjQ0Cj4gLS0tIGEv dGVzdHMvZ2VuM19yZW5kZXJfdGlsZWR5X2JsaXRzLmMKPiArKysgYi90ZXN0cy9nZW4zX3JlbmRl cl90aWxlZHlfYmxpdHMuYwo+IEBAIC0zNDAsNyArMzQwLDcgQEAgaW50IG1haW4oaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQo+ICAKPiAgCWlndF9zaW1wbGVfaW5pdChhcmdjLCBhcmd2KTsKPiAgCj4g LQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7 Cj4gIAo+ICAJaWd0X3JlcXVpcmUoSVNfR0VOMyhpbnRlbF9nZXRfZHJtX2RldmlkKGZkKSkpOwo+ ICAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VuN19mb3JjZXdha2VfbXQuYyBiL3Rlc3RzL2dlbjdf Zm9yY2V3YWtlX210LmMKPiBpbmRleCA4MzM3ODQ3Li4xOGE3ZGJmIDEwMDY0NAo+IC0tLSBhL3Rl c3RzL2dlbjdfZm9yY2V3YWtlX210LmMKPiArKysgYi90ZXN0cy9nZW43X2ZvcmNld2FrZV9tdC5j Cj4gQEAgLTEzMCw3ICsxMzAsNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCXN0cnVjdCB0aHJlYWQg dFsxNl07Cj4gIAlpbnQgaTsKPiAgCj4gLQl0WzBdLmZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwl0 WzBdLmZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAJdFswXS5tbWlvID0gaWdmeF9n ZXRfbW1pbygpOwo+ICAKPiAgCWZvciAoaSA9IDI7IGkgPCAxNjsgaSsrKSB7Cj4gZGlmZiAtLWdp dCBhL3Rlc3RzL2ttc18zZC5jIGIvdGVzdHMva21zXzNkLmMKPiBpbmRleCBmZGMwNWIxLi5jMDZk YjZjIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2ttc18zZC5jCj4gKysrIGIvdGVzdHMva21zXzNkLmMK PiBAQCAtMzcsNyArMzcsNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCXNpemVfdCBsZW5ndGg7Cj4g IAlpbnQgbW9kZV9jb3VudCwgY29ubmVjdG9yX2lkOwo+ICAKPiAtCWRybV9mZCA9IGRybV9vcGVu X2FueV9tYXN0ZXIoKTsKPiArCWRybV9mZCA9IGRybV9vcGVuX2FueV9tYXN0ZXIoT1BFTl9JTlRF TCk7Cj4gIAlyZXMgPSBkcm1Nb2RlR2V0UmVzb3VyY2VzKGRybV9mZCk7Cj4gIAo+ICAJaWd0X2Fz c2VydChkcm1TZXRDbGllbnRDYXAoZHJtX2ZkLCBEUk1fQ0xJRU5UX0NBUF9TVEVSRU9fM0QsIDEp ID49IDApOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfYWRkZmIuYyBiL3Rlc3RzL2ttc19hZGRm Yi5jCj4gaW5kZXggMjhhZmRmMC4uYWEzOWE3YiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9rbXNfYWRk ZmIuYwo+ICsrKyBiL3Rlc3RzL2ttc19hZGRmYi5jCj4gQEAgLTM1NSw3ICszNTUsNyBAQCBpbnQg Z2VuOwo+ICBpZ3RfbWFpbgo+ICB7Cj4gIAlpZ3RfZml4dHVyZSB7Cj4gLQkJZmQgPSBkcm1fb3Bl bl9hbnlfbWFzdGVyKCk7Cj4gKwkJZmQgPSBkcm1fb3Blbl9hbnlfbWFzdGVyKE9QRU5fSU5URUwp Owo+ICAJCWdlbiA9IGludGVsX2dlbihpbnRlbF9nZXRfZHJtX2RldmlkKGZkKSk7Cj4gIAl9Cj4g IAo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfY3Vyc29yX2NyYy5jIGIvdGVzdHMva21zX2N1cnNv cl9jcmMuYwo+IGluZGV4IGZjYTgyNDguLjAyNGM4ZTMgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21z X2N1cnNvcl9jcmMuYwo+ICsrKyBiL3Rlc3RzL2ttc19jdXJzb3JfY3JjLmMKPiBAQCAtNTIyLDcg KzUyMiw3IEBAIGlndF9tYWluCj4gIAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7Cj4gIAo+ICAJ aWd0X2ZpeHR1cmUgewo+IC0JCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fYW55X21hc3RlcigpOwo+ ICsJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fYW55X21hc3RlcihPUEVOX0lOVEVMKTsKPiAgCj4g IAkJZGF0YS5kZXZpZCA9IGludGVsX2dldF9kcm1fZGV2aWQoZGF0YS5kcm1fZmQpOwo+ICAKPiBk aWZmIC0tZ2l0IGEvdGVzdHMva21zX2ZiY19jcmMuYyBiL3Rlc3RzL2ttc19mYmNfY3JjLmMKPiBp bmRleCBiNmRlMjE4Li40ZGZhZmFiIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2ttc19mYmNfY3JjLmMK PiArKysgYi90ZXN0cy9rbXNfZmJjX2NyYy5jCj4gQEAgLTUwMyw3ICs1MDMsNyBAQCBpZ3RfbWFp bgo+ICAJCWNoYXIgYnVmWzY0XTsKPiAgCQlGSUxFICpzdGF0dXM7Cj4gIAo+IC0JCWRhdGEuZHJt X2ZkID0gZHJtX29wZW5fYW55X21hc3RlcigpOwo+ICsJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5f YW55X21hc3RlcihPUEVOX0lOVEVMKTsKPiAgCQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2Rl KCk7Cj4gIAo+ICAJCWRhdGEuZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRhdGEuZHJtX2Zk KTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2ZlbmNlX3Bpbl9sZWFrLmMgYi90ZXN0cy9rbXNf ZmVuY2VfcGluX2xlYWsuYwo+IGluZGV4IDRkM2QzN2EuLjRmMWJjZGIgMTAwNjQ0Cj4gLS0tIGEv dGVzdHMva21zX2ZlbmNlX3Bpbl9sZWFrLmMKPiArKysgYi90ZXN0cy9rbXNfZmVuY2VfcGluX2xl YWsuYwo+IEBAIC0yMTUsNyArMjE1LDcgQEAgaWd0X3NpbXBsZV9tYWluCj4gIAo+ICAJaWd0X3Nr aXBfb25fc2ltdWxhdGlvbigpOwo+ICAKPiAtCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fYW55X21h c3RlcigpOwo+ICsJZGF0YS5kcm1fZmQgPSBkcm1fb3Blbl9hbnlfbWFzdGVyKE9QRU5fSU5URUwp Owo+ICAKPiAgCWRhdGEuZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRhdGEuZHJtX2ZkKTsK PiAgCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19mbGlwLmMgYi90ZXN0cy9rbXNfZmxpcC5jCj4g aW5kZXggMjVjOTI0My4uMGI0ZjU5MyAxMDA2NDQKPiAtLS0gYS90ZXN0cy9rbXNfZmxpcC5jCj4g KysrIGIvdGVzdHMva21zX2ZsaXAuYwo+IEBAIC0xNzAwLDkgKzE3MDAsOSBAQCBpbnQgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gIAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7Cj4gIAo+ ICAJaWd0X2ZpeHR1cmUgewo+IC0JCWRybV9mZCA9IGRybV9vcGVuX2FueV9tYXN0ZXIoKTsKPiAr CQlkcm1fZmQgPSBkcm1fb3Blbl9hbnlfbWFzdGVyKE9QRU5fSU5URUwpOwo+ICAKPiAtCQlpZ3Rf ZW5hYmxlX2Nvbm5lY3RvcnMoKTsKPiArCQlpZ3RfZW5hYmxlX2Nvbm5lY3RvcnMoT1BFTl9JTlRF TCk7Cj4gIAo+ICAJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKPiAgCQlpZ3RfaW5z dGFsbF9leGl0X2hhbmRsZXIoa21zX2ZsaXBfZXhpdF9oYW5kbGVyKTsKPiBkaWZmIC0tZ2l0IGEv dGVzdHMva21zX2ZsaXBfZXZlbnRfbGVhay5jIGIvdGVzdHMva21zX2ZsaXBfZXZlbnRfbGVhay5j Cj4gaW5kZXggNGU5ZjU4YS4uZGViNDBmOSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9rbXNfZmxpcF9l dmVudF9sZWFrLmMKPiArKysgYi90ZXN0cy9rbXNfZmxpcF9ldmVudF9sZWFrLmMKPiBAQCAtNzMs NyArNzMsNyBAQCBzdGF0aWMgYm9vbCB0ZXN0KGRhdGFfdCAqZGF0YSwgZW51bSBwaXBlIHBpcGUs IGlndF9vdXRwdXRfdCAqb3V0cHV0KQo+ICAJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmZmJb MF0pOwo+ICAJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgQ09NTUlUX0xFR0FD WSk7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZkID0gZHJtX29wZW5fYW55KE9Q RU5fSU5URUwpOwo+ICAKPiAgCXJldCA9IGRybURyb3BNYXN0ZXIoZGF0YS0+ZHJtX2ZkKTsKPiAg CWlndF9hc3NlcnRfZXEocmV0LCAwKTsKPiBAQCAtMTE0LDcgKzExNCw3IEBAIGlndF9zaW1wbGVf bWFpbgo+ICAKPiAgCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKPiAgCj4gLQlkYXRhLmRybV9m ZCA9IGRybV9vcGVuX2FueV9tYXN0ZXIoKTsKPiArCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fYW55 X21hc3RlcihPUEVOX0lOVEVMKTsKPiAgCWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsK PiAgCj4gIAlpZ3RfZGlzcGxheV9pbml0KCZkYXRhLmRpc3BsYXksIGRhdGEuZHJtX2ZkKTsKPiBk aWZmIC0tZ2l0IGEvdGVzdHMva21zX2ZsaXBfdGlsaW5nLmMgYi90ZXN0cy9rbXNfZmxpcF90aWxp bmcuYwo+IGluZGV4IDMxODEyNjAuLjY1NzA2ZjQgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21zX2Zs aXBfdGlsaW5nLmMKPiArKysgYi90ZXN0cy9rbXNfZmxpcF90aWxpbmcuYwo+IEBAIC0xMzMsNyAr MTMzLDcgQEAgaWd0X21haW4KPiAgCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKPiAgCj4gIAlp Z3RfZml4dHVyZSB7Cj4gLQkJZGF0YS5kcm1fZmQgPSBkcm1fb3Blbl9hbnlfbWFzdGVyKCk7Cj4g KwkJZGF0YS5kcm1fZmQgPSBkcm1fb3Blbl9hbnlfbWFzdGVyKE9QRU5fSU5URUwpOwo+ICAJCWRh dGEuZ2VuID0gaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZGF0YS5kcm1fZmQpKTsKPiAg Cj4gIAkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOwo+IGRpZmYgLS1naXQgYS90ZXN0 cy9rbXNfZm9yY2VfY29ubmVjdG9yLmMgYi90ZXN0cy9rbXNfZm9yY2VfY29ubmVjdG9yLmMKPiBp bmRleCA0MmFhYTdmLi4xN2I1ODc3IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2ttc19mb3JjZV9jb25u ZWN0b3IuYwo+ICsrKyBiL3Rlc3RzL2ttc19mb3JjZV9jb25uZWN0b3IuYwo+IEBAIC00Miw3ICs0 Miw3IEBAIGlndF9tYWluCj4gIAlpbnQgc3RhcnRfbl9tb2RlczsKPiAgCj4gIAlpZ3RfZml4dHVy ZSB7Cj4gLQkJZHJtX2ZkID0gZHJtX29wZW5fYW55X21hc3RlcigpOwo+ICsJCWRybV9mZCA9IGRy bV9vcGVuX2FueV9tYXN0ZXIoT1BFTl9JTlRFTCk7Cj4gIAkJcmVzID0gZHJtTW9kZUdldFJlc291 cmNlcyhkcm1fZmQpOwo+ICAKPiAgCQkvKiBmaW5kIHRoZSB2Z2EgY29ubmVjdG9yICovCj4gZGlm ZiAtLWdpdCBhL3Rlc3RzL2ttc19tbWlvX3ZzX2NzX2ZsaXAuYyBiL3Rlc3RzL2ttc19tbWlvX3Zz X2NzX2ZsaXAuYwo+IGluZGV4IGIyNGM3ZjQuLjFjMDg4YzIgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMv a21zX21taW9fdnNfY3NfZmxpcC5jCj4gKysrIGIvdGVzdHMva21zX21taW9fdnNfY3NfZmxpcC5j Cj4gQEAgLTUxNyw3ICs1MTcsNyBAQCBpZ3RfbWFpbgo+ICAJaWd0X3NraXBfb25fc2ltdWxhdGlv bigpOwo+ICAKPiAgCWlndF9maXh0dXJlIHsKPiAtCQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2Fu eV9tYXN0ZXIoKTsKPiArCQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2FueV9tYXN0ZXIoT1BFTl9J TlRFTCk7Cj4gIAo+ICAJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKPiAgCj4gZGlm ZiAtLWdpdCBhL3Rlc3RzL2ttc19waXBlX2NyY19iYXNpYy5jIGIvdGVzdHMva21zX3BpcGVfY3Jj X2Jhc2ljLmMKPiBpbmRleCBiYmVkZDU4Li5lOTdkMDVmIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2tt c19waXBlX2NyY19iYXNpYy5jCj4gKysrIGIvdGVzdHMva21zX3BpcGVfY3JjX2Jhc2ljLmMKPiBA QCAtMjI2LDkgKzIyNiw5IEBAIGlndF9tYWluCj4gIAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7 Cj4gIAo+ICAJaWd0X2ZpeHR1cmUgewo+IC0JCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fYW55X21h c3RlcigpOwo+ICsJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fYW55X21hc3RlcihPUEVOX0lOVEVM KTsKPiAgCj4gLQkJaWd0X2VuYWJsZV9jb25uZWN0b3JzKCk7Cj4gKwkJaWd0X2VuYWJsZV9jb25u ZWN0b3JzKE9QRU5fSU5URUwpOwo+ICAKPiAgCQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2Rl KCk7Cj4gIAo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfcGxhbmUuYyBiL3Rlc3RzL2ttc19wbGFu ZS5jCj4gaW5kZXggZmZkMzFlMC4uMWVhN2IzYyAxMDA2NDQKPiAtLS0gYS90ZXN0cy9rbXNfcGxh bmUuYwo+ICsrKyBiL3Rlc3RzL2ttc19wbGFuZS5jCj4gQEAgLTQxMCw3ICs0MTAsNyBAQCBpZ3Rf bWFpbgo+ICAJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+ICAKPiAgCWlndF9maXh0dXJlIHsK PiAtCQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2FueV9tYXN0ZXIoKTsKPiArCQlkYXRhLmRybV9m ZCA9IGRybV9vcGVuX2FueV9tYXN0ZXIoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJCWttc3Rlc3Rfc2V0 X3Z0X2dyYXBoaWNzX21vZGUoKTsKPiAgCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19wc3Jfc2lu a19jcmMuYyBiL3Rlc3RzL2ttc19wc3Jfc2lua19jcmMuYwo+IGluZGV4IGJhNmZiMWQuLjRlNDI5 OWQgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21zX3Bzcl9zaW5rX2NyYy5jCj4gKysrIGIvdGVzdHMv a21zX3Bzcl9zaW5rX2NyYy5jCj4gQEAgLTUxMSw3ICs1MTEsNyBAQCBpbnQgbWFpbihpbnQgYXJn YywgY2hhciAqYXJndltdKQo+ICAJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+ICAKPiAgCWln dF9maXh0dXJlIHsKPiAtCQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2FueV9tYXN0ZXIoKTsKPiAr CQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2FueV9tYXN0ZXIoT1BFTl9JTlRFTCk7Cj4gIAkJa21z dGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOwo+ICAJCWRhdGEuZGV2aWQgPSBpbnRlbF9nZXRf ZHJtX2RldmlkKGRhdGEuZHJtX2ZkKTsKPiAgCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19wd3Jp dGVfY3JjLmMgYi90ZXN0cy9rbXNfcHdyaXRlX2NyYy5jCj4gaW5kZXggYThlNDBlZi4uMDc1YTE1 MCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9rbXNfcHdyaXRlX2NyYy5jCj4gKysrIGIvdGVzdHMva21z X3B3cml0ZV9jcmMuYwo+IEBAIC0xOTMsNyArMTkzLDcgQEAgaWd0X3NpbXBsZV9tYWluCj4gIAlp Z3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7Cj4gIAo+ICAJaWd0X2ZpeHR1cmUgewo+IC0JCWRhdGEu ZHJtX2ZkID0gZHJtX29wZW5fYW55X21hc3RlcigpOwo+ICsJCWRhdGEuZHJtX2ZkID0gZHJtX29w ZW5fYW55X21hc3RlcihPUEVOX0lOVEVMKTsKPiAgCj4gIAkJZGF0YS5kZXZpZCA9IGludGVsX2dl dF9kcm1fZGV2aWQoZGF0YS5kcm1fZmQpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX3Jl bmRlci5jIGIvdGVzdHMva21zX3JlbmRlci5jCj4gaW5kZXggMTc1OWVhYS4uM2JlYWUwYSAxMDA2 NDQKPiAtLS0gYS90ZXN0cy9rbXNfcmVuZGVyLmMKPiArKysgYi90ZXN0cy9rbXNfcmVuZGVyLmMK PiBAQCAtMjM3LDcgKzIzNyw3IEBAIGlndF9tYWluCj4gIAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9u KCk7Cj4gIAo+ICAJaWd0X2ZpeHR1cmUgewo+IC0JCWRybV9mZCA9IGRybV9vcGVuX2FueV9tYXN0 ZXIoKTsKPiArCQlkcm1fZmQgPSBkcm1fb3Blbl9hbnlfbWFzdGVyKE9QRU5fSU5URUwpOwo+ICAK PiAgCQlidWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0KGRybV9mZCwgNDA5Nik7Cj4g IAkJZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRybV9mZCk7Cj4gZGlmZiAtLWdpdCBhL3Rl c3RzL2ttc19yb3RhdGlvbl9jcmMuYyBiL3Rlc3RzL2ttc19yb3RhdGlvbl9jcmMuYwo+IGluZGV4 IGE1NzY5MmUuLmZiZmEyN2UgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21zX3JvdGF0aW9uX2NyYy5j Cj4gKysrIGIvdGVzdHMva21zX3JvdGF0aW9uX2NyYy5jCj4gQEAgLTIyOSw3ICsyMjksNyBAQCBp Z3RfbWFpbgo+ICAJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+ICAKPiAgCWlndF9maXh0dXJl IHsKPiAtCQlkYXRhLmdmeF9mZCA9IGRybV9vcGVuX2FueV9tYXN0ZXIoKTsKPiArCQlkYXRhLmdm eF9mZCA9IGRybV9vcGVuX2FueV9tYXN0ZXIoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJCWttc3Rlc3Rf c2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKPiAgCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19zZXRt b2RlLmMgYi90ZXN0cy9rbXNfc2V0bW9kZS5jCj4gaW5kZXggNTUyMGRjYy4uMmI1ZTliNyAxMDA2 NDQKPiAtLS0gYS90ZXN0cy9rbXNfc2V0bW9kZS5jCj4gKysrIGIvdGVzdHMva21zX3NldG1vZGUu Ywo+IEBAIC03MTAsNyArNzEwLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ ICAJCSAgICAgIm9ubHkgb25lIG9mIC1kIGFuZCAtdCBpcyBhY2NlcHRlZFxuIik7Cj4gIAo+ICAJ aWd0X2ZpeHR1cmUgewo+IC0JCWRybV9mZCA9IGRybV9vcGVuX2FueV9tYXN0ZXIoKTsKPiArCQlk cm1fZmQgPSBkcm1fb3Blbl9hbnlfbWFzdGVyKE9QRU5fSU5URUwpOwo+ICAJCWlmICghZHJ5X3J1 bikKPiAgCQkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOwo+ICAKPiBkaWZmIC0tZ2l0 IGEvdGVzdHMva21zX3NpbmtfY3JjX2Jhc2ljLmMgYi90ZXN0cy9rbXNfc2lua19jcmNfYmFzaWMu Ywo+IGluZGV4IGQyY2M3ZWQuLmVjNjQ2NzUgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21zX3Npbmtf Y3JjX2Jhc2ljLmMKPiArKysgYi90ZXN0cy9rbXNfc2lua19jcmNfYmFzaWMuYwo+IEBAIC0xNzEs NyArMTcxLDcgQEAgaWd0X3NpbXBsZV9tYWluCj4gIAo+ICAJaWd0X3NraXBfb25fc2ltdWxhdGlv bigpOwo+ICAKPiAtCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fYW55X21hc3RlcigpOwo+ICsJZGF0 YS5kcm1fZmQgPSBkcm1fb3Blbl9hbnlfbWFzdGVyKE9QRU5fSU5URUwpOwo+ICAKPiAgCWttc3Rl c3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKPiAgCWlndF9kaXNwbGF5X2luaXQoJmRhdGEuZGlz cGxheSwgZGF0YS5kcm1fZmQpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfdW5pdmVyc2FsX3Bs YW5lLmMgYi90ZXN0cy9rbXNfdW5pdmVyc2FsX3BsYW5lLmMKPiBpbmRleCAzOWRkMGFhLi5iZDQ1 NTM0IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2ttc191bml2ZXJzYWxfcGxhbmUuYwo+ICsrKyBiL3Rl c3RzL2ttc191bml2ZXJzYWxfcGxhbmUuYwo+IEBAIC02NjYsNyArNjY2LDcgQEAgaWd0X21haW4K PiAgCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKPiAgCj4gIAlpZ3RfZml4dHVyZSB7Cj4gLQkJ ZGF0YS5kcm1fZmQgPSBkcm1fb3Blbl9hbnlfbWFzdGVyKCk7Cj4gKwkJZGF0YS5kcm1fZmQgPSBk cm1fb3Blbl9hbnlfbWFzdGVyKE9QRU5fSU5URUwpOwo+ICAKPiAgCQlrbXN0ZXN0X3NldF92dF9n cmFwaGljc19tb2RlKCk7Cj4gIAo+IGRpZmYgLS1naXQgYS90ZXN0cy9wbV9scHNwLmMgYi90ZXN0 cy9wbV9scHNwLmMKPiBpbmRleCA1MGIzZGQ5Li40NTgyNTY5IDEwMDY0NAo+IC0tLSBhL3Rlc3Rz L3BtX2xwc3AuYwo+ICsrKyBiL3Rlc3RzL3BtX2xwc3AuYwo+IEBAIC0yMjYsNyArMjI2LDcgQEAg aWd0X21haW4KPiAgCWlndF9maXh0dXJlIHsKPiAgCQlpbnQgaTsKPiAgCj4gLQkJZHJtX2ZkID0g ZHJtX29wZW5fYW55X21hc3RlcigpOwo+ICsJCWRybV9mZCA9IGRybV9vcGVuX2FueV9tYXN0ZXIo T1BFTl9JTlRFTCk7Cj4gIAkJaWd0X3JlcXVpcmUoZHJtX2ZkID49IDApOwo+ICAKPiAgCQlkZXZp ZCA9IGludGVsX2dldF9kcm1fZGV2aWQoZHJtX2ZkKTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvcG1f cmM2X3Jlc2lkZW5jeS5jIGIvdGVzdHMvcG1fcmM2X3Jlc2lkZW5jeS5jCj4gaW5kZXggYTk0NWI0 Ny4uZWE5OTg5ZiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9wbV9yYzZfcmVzaWRlbmN5LmMKPiArKysg Yi90ZXN0cy9wbV9yYzZfcmVzaWRlbmN5LmMKPiBAQCAtMTQxLDcgKzE0MSw3IEBAIGlndF9tYWlu Cj4gIAo+ICAJLyogVXNlIGRybV9vcGVuX2FueSB0byB2ZXJpZnkgZGV2aWNlIGV4aXN0ZW5jZSAq Lwo+ICAJaWd0X2ZpeHR1cmUgewo+IC0JCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJZmQgPSBk cm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAkJZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2Rldmlk KGZkKTsKPiAgCQljbG9zZShmZCk7Cj4gIAo+IGRpZmYgLS1naXQgYS90ZXN0cy9wbV9ycG0uYyBi L3Rlc3RzL3BtX3JwbS5jCj4gaW5kZXggOTFkZjkzYS4uMjAwZGE3NiAxMDA2NDQKPiAtLS0gYS90 ZXN0cy9wbV9ycG0uYwo+ICsrKyBiL3Rlc3RzL3BtX3JwbS5jCj4gQEAgLTcyNCw3ICs3MjQsNyBA QCBzdGF0aWMgdm9pZCBzZXR1cF9ub25fZ3JhcGhpY3NfcnVudGltZV9wbSh2b2lkKQo+ICAKPiAg c3RhdGljIHZvaWQgc2V0dXBfZW52aXJvbm1lbnQodm9pZCkKPiAgewo+IC0JZHJtX2ZkID0gZHJt X29wZW5fYW55X21hc3RlcigpOwo+ICsJZHJtX2ZkID0gZHJtX29wZW5fYW55X21hc3RlcihPUEVO X0lOVEVMKTsKPiAgCj4gIAlpbml0X21vZGVfc2V0X2RhdGEoJm1zX2RhdGEpOwo+ICAKPiBkaWZm IC0tZ2l0IGEvdGVzdHMvcG1fcnBzLmMgYi90ZXN0cy9wbV9ycHMuYwo+IGluZGV4IDYyODllMWIu LmUyYzg1NWIgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvcG1fcnBzLmMKPiArKysgYi90ZXN0cy9wbV9y cHMuYwo+IEBAIC01NzAsNyArNTcwLDcgQEAgc3RhdGljIHZvaWQgYmxvY2tpbmcodm9pZCkKPiAg CWludCBwcmVfZnJlcXNbTlVNRlJFUV07Cj4gIAlpbnQgcG9zdF9mcmVxc1tOVU1GUkVRXTsKPiAg Cj4gLQlpbnQgZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWludCBmZCA9IGRybV9vcGVuX2FueShP UEVOX0lOVEVMKTsKPiAgCWlndF9hc3NlcnRfbHRlKDAsIGZkKTsKPiAgCj4gIAkvKgo+IEBAIC02 MjYsNyArNjI2LDcgQEAgaWd0X21haW4KPiAgCQlpbnQgcmV0Owo+ICAKPiAgCQkvKiBVc2UgZHJt X29wZW5fYW55IHRvIHZlcmlmeSBkZXZpY2UgZXhpc3RlbmNlICovCj4gLQkJZHJtX2ZkID0gZHJt X29wZW5fYW55KCk7Cj4gKwkJZHJtX2ZkID0gZHJtX29wZW5fYW55KE9QRU5fSU5URUwpOwo+ICAK PiAgCQlkbyB7Cj4gIAkJCWludCB2YWwgPSAtMTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvcHJpbWVf c2VsZl9pbXBvcnQuYyBiL3Rlc3RzL3ByaW1lX3NlbGZfaW1wb3J0LmMKPiBpbmRleCAyMGViMTE1 Li42NGMxYzAzIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL3ByaW1lX3NlbGZfaW1wb3J0LmMKPiArKysg Yi90ZXN0cy9wcmltZV9zZWxmX2ltcG9ydC5jCj4gQEAgLTkwLDggKzkwLDggQEAgc3RhdGljIHZv aWQgdGVzdF93aXRoX2ZkX2R1cCh2b2lkKQo+ICAKPiAgCWNvdW50ZXIgPSAwOwo+ICAKPiAtCWZk MSA9IGRybV9vcGVuX2FueSgpOwo+IC0JZmQyID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZDEgPSBk cm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gKwlmZDIgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRF TCk7Cj4gIAo+ICAJaGFuZGxlID0gZ2VtX2NyZWF0ZShmZDEsIEJPX1NJWkUpOwo+ICAKPiBAQCAt MTE4LDggKzExOCw4IEBAIHN0YXRpYyB2b2lkIHRlc3Rfd2l0aF90d29fYm9zKHZvaWQpCj4gIAo+ ICAJY291bnRlciA9IDA7Cj4gIAo+IC0JZmQxID0gZHJtX29wZW5fYW55KCk7Cj4gLQlmZDIgPSBk cm1fb3Blbl9hbnkoKTsKPiArCWZkMSA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiArCWZk MiA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAloYW5kbGUxID0gZ2VtX2NyZWF0 ZShmZDEsIEJPX1NJWkUpOwo+ICAJaGFuZGxlMiA9IGdlbV9jcmVhdGUoZmQxLCBCT19TSVpFKTsK PiBAQCAtMTQ5LDggKzE0OSw4IEBAIHN0YXRpYyB2b2lkIHRlc3Rfd2l0aF9vbmVfYm9fdHdvX2Zp bGVzKHZvaWQpCj4gIAl1aW50MzJfdCBoYW5kbGVfaW1wb3J0LCBoYW5kbGVfb3BlbiwgaGFuZGxl X29yaWcsIGZsaW5rX25hbWU7Cj4gIAlpbnQgZG1hX2J1Zl9mZDEsIGRtYV9idWZfZmQyOwo+ICAK PiAtCWZkMSA9IGRybV9vcGVuX2FueSgpOwo+IC0JZmQyID0gZHJtX29wZW5fYW55KCk7Cj4gKwlm ZDEgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gKwlmZDIgPSBkcm1fb3Blbl9hbnkoT1BF Tl9JTlRFTCk7Cj4gIAo+ICAJaGFuZGxlX29yaWcgPSBnZW1fY3JlYXRlKGZkMSwgQk9fU0laRSk7 Cj4gIAlkbWFfYnVmX2ZkMSA9IHByaW1lX2hhbmRsZV90b19mZChmZDEsIGhhbmRsZV9vcmlnKTsK PiBAQCAtMTc2LDggKzE3Niw4IEBAIHN0YXRpYyB2b2lkIHRlc3Rfd2l0aF9vbmVfYm8odm9pZCkK PiAgCXVpbnQzMl90IGhhbmRsZSwgaGFuZGxlX2ltcG9ydDEsIGhhbmRsZV9pbXBvcnQyLCBoYW5k bGVfc2VsZmltcG9ydDsKPiAgCWludCBkbWFfYnVmX2ZkOwo+ICAKPiAtCWZkMSA9IGRybV9vcGVu X2FueSgpOwo+IC0JZmQyID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZDEgPSBkcm1fb3Blbl9hbnko T1BFTl9JTlRFTCk7Cj4gKwlmZDIgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJ aGFuZGxlID0gZ2VtX2NyZWF0ZShmZDEsIEJPX1NJWkUpOwo+ICAKPiBAQCAtMjYwLDcgKzI2MCw3 IEBAIHN0YXRpYyB2b2lkIHRlc3RfcmVpbXBvcnRfY2xvc2VfcmFjZSh2b2lkKQo+ICAKPiAgCS8q IEFsbG9jYXRlIGV4aXQgaGFuZGxlciBmZHMgaW4gaGVyZSBzbyB0aGF0IHdlIGRvbnQgc2NyZXcK PiAgCSAqIHVwIHRoZSBjb3VudHMgKi8KPiAtCWZha2UgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZh a2UgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ICAJb2JqX2NvdW50ID0gZ2V0X29i amVjdF9jb3VudCgpOwo+ICAKPiBAQCAtMjY4LDcgKzI2OCw3IEBAIHN0YXRpYyB2b2lkIHRlc3Rf cmVpbXBvcnRfY2xvc2VfcmFjZSh2b2lkKQo+ICAKPiAgCXRocmVhZHMgPSBjYWxsb2MobnVtX3Ro cmVhZHMsIHNpemVvZihwdGhyZWFkX3QpKTsKPiAgCj4gLQlmZHNbMF0gPSBkcm1fb3Blbl9hbnko KTsKPiArCWZkc1swXSA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAloYW5kbGUg PSBnZW1fY3JlYXRlKGZkc1swXSwgQk9fU0laRSk7Cj4gIAo+IEBAIC0zNTAsMTEgKzM1MCwxMSBA QCBzdGF0aWMgdm9pZCB0ZXN0X2V4cG9ydF9jbG9zZV9yYWNlKHZvaWQpCj4gIAo+ICAJLyogQWxs b2NhdGUgZXhpdCBoYW5kbGVyIGZkcyBpbiBoZXJlIHNvIHRoYXQgd2UgZG9udCBzY3Jldwo+ICAJ ICogdXAgdGhlIGNvdW50cyAqLwo+IC0JZmFrZSA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmFrZSA9 IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAlvYmpfY291bnQgPSBnZXRfb2JqZWN0 X2NvdW50KCk7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9hbnkoKTsKPiArCWZkID0gZHJtX29wZW5f YW55KE9QRU5fSU5URUwpOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsr KSB7Cj4gIAkJciA9IHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWRzW2ldLCBOVUxMLAo+IEBAIC0zOTEs NyArMzkxLDcgQEAgc3RhdGljIHZvaWQgdGVzdF9sbHNlZWtfc2l6ZSh2b2lkKQo+ICAKPiAgCWNv dW50ZXIgPSAwOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVu X2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAo+ICAJZm9yIChpID0gMDsgaSA8IDEwOyBpKyspIHsK PiBAQCAtNDE4LDcgKzQxOCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfbGxzZWVrX2JhZCh2b2lkKQo+ ICAKPiAgCWNvdW50ZXIgPSAwOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9 IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCj4gIAo+ICAJaGFuZGxlID0gZ2VtX2NyZWF0 ZShmZCwgQk9fU0laRSk7Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL3RlbXBsYXRlLmMgYi90ZXN0cy90 ZW1wbGF0ZS5jCj4gaW5kZXggMjRmZDg1MC4uYTk2YTIxZSAxMDA2NDQKPiAtLS0gYS90ZXN0cy90 ZW1wbGF0ZS5jCj4gKysrIGIvdGVzdHMvdGVtcGxhdGUuYwo+IEBAIC01OSw3ICs1OSw3IEBAIGlu dCBkcm1fZmQ7Cj4gIGlndF9tYWluCj4gIHsKPiAgCWlndF9maXh0dXJlIHsKPiAtCQlkcm1fZmQg PSBkcm1fb3Blbl9hbnkoKTsKPiArCQlkcm1fZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7 Cj4gIAkJaWd0X3JlcXVpcmUoZHJtX2ZkID49IDApOwo+ICAKPiAgCQkvKiBTZXQgdXAgb3RoZXIg aW50ZXJlc3Rpbmcgc3R1ZmYgc2hhcmVkIGJ5IGFsbCB0ZXN0cy4gKi8KPiBkaWZmIC0tZ2l0IGEv dGVzdHMvdGVzdGRpc3BsYXkuYyBiL3Rlc3RzL3Rlc3RkaXNwbGF5LmMKPiBpbmRleCBmODY0OTQw Li5mZGIyZjA0IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL3Rlc3RkaXNwbGF5LmMKPiArKysgYi90ZXN0 cy90ZXN0ZGlzcGxheS5jCj4gQEAgLTc0NCw3ICs3NDQsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCj4gIAkgICAgc3BlY2lmaWVkX21vZGVfbnVtID09IC0xICYmICF0ZXN0X3N0 ZXJlb19tb2RlcykKPiAgCQl0ZXN0X2FsbF9tb2RlcyA9IDE7Cj4gIAo+IC0JZHJtX2ZkID0gZHJt X29wZW5fYW55KCk7Cj4gKwlkcm1fZmQgPSBkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCk7Cj4gIAo+ ICAJaWYgKHRlc3Rfc3RlcmVvX21vZGVzICYmCj4gIAkgICAgZHJtU2V0Q2xpZW50Q2FwKGRybV9m ZCwgRFJNX0NMSUVOVF9DQVBfU1RFUkVPXzNELCAxKSA8IDApIHsKPiBkaWZmIC0tZ2l0IGEvdG9v bHMvaW50ZWxfZGlzcGxheV9wb2xsZXIuYyBiL3Rvb2xzL2ludGVsX2Rpc3BsYXlfcG9sbGVyLmMK PiBpbmRleCAyZWFiNmM0Li42Y2ViYjA5IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2ludGVsX2Rpc3Bs YXlfcG9sbGVyLmMKPiArKysgYi90b29scy9pbnRlbF9kaXNwbGF5X3BvbGxlci5jCj4gQEAgLTEy MTAsNyArMTIxMCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCj4gIAkJfQo+ ICAJfQo+ICAKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwlmZCA9IGRybV9vcGVuX2FueShP UEVOX0lOVEVMKTsKPiAgCWRldmlkID0gaW50ZWxfZ2V0X2RybV9kZXZpZChmZCk7Cj4gIAljbG9z ZShmZCk7Cj4gIAo+IGRpZmYgLS1naXQgYS90b29scy9pbnRlbF9ncHVfZnJlcXVlbmN5LmMgYi90 b29scy9pbnRlbF9ncHVfZnJlcXVlbmN5LmMKPiBpbmRleCBjNTM1OWMwLi4wYTNlNWQ5IDEwMDY0 NAo+IC0tLSBhL3Rvb2xzL2ludGVsX2dwdV9mcmVxdWVuY3kuYwo+ICsrKyBiL3Rvb2xzL2ludGVs X2dwdV9mcmVxdWVuY3kuYwo+IEBAIC0zMDgsNyArMzA4LDcgQEAgaW50IG1haW4oaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkKPiAgCWJvb2wgd3JpdGUsIGZhaWwsIHRhcmdldHNbTUFYKzFdID0ge2Zh bHNlfTsKPiAgCWludCBpLCB0cnkgPSAxLCBzZXRfZnJlcVtNQVgrMV0gPSB7MH07Cj4gIAo+IC0J ZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRybV9vcGVuX2FueSgpKTsKPiArCWRldmlkID0g aW50ZWxfZ2V0X2RybV9kZXZpZChkcm1fb3Blbl9hbnkoT1BFTl9JTlRFTCkpOwo+ICAJZGV2aWNl ID0gZHJtX2dldF9jYXJkKCk7Cj4gIAo+ICAJd3JpdGUgPSBwYXJzZShhcmdjLCBhcmd2LCB0YXJn ZXRzLCBBUlJBWV9TSVpFKHRhcmdldHMpLCBzZXRfZnJlcSk7Cj4gZGlmZiAtLWdpdCBhL3Rvb2xz L2ludGVsX2wzX3Bhcml0eS5jIGIvdG9vbHMvaW50ZWxfbDNfcGFyaXR5LmMKPiBpbmRleCBhNGI3 ZDczLi5jYTcyMjIxIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2ludGVsX2wzX3Bhcml0eS5jCj4gKysr IGIvdG9vbHMvaW50ZWxfbDNfcGFyaXR5LmMKPiBAQCAtMTg5LDcgKzE4OSw3IEBAIGludCBtYWlu KGludCBhcmdjLCBjaGFyICphcmd2W10pCj4gIAlpbnQgcm93ID0gMCwgYmFuayA9IDAsIHNiYW5r ID0gMDsKPiAgCWludCBmZFtSRUFMX01BWF9TTElDRVNdID0gezB9LCByZXQsIGk7Cj4gIAlpbnQg YWN0aW9uID0gJzAnOwo+IC0JaW50IGRybV9mZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJaW50IGRy bV9mZCA9IGRybV9vcGVuX2FueShPUEVOX0lOVEVMKTsKPiAgCWludCBkYWVtb25pemUgPSAwOwo+ ICAJZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRybV9mZCk7Cj4gIAo+IGRpZmYgLS1naXQg YS90b29scy9pbnRlbF9wZXJmX2NvdW50ZXJzLmMgYi90b29scy9pbnRlbF9wZXJmX2NvdW50ZXJz LmMKPiBpbmRleCA3MzlmOTI2Li5jOGJkYTJkIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2ludGVsX3Bl cmZfY291bnRlcnMuYwo+ICsrKyBiL3Rvb2xzL2ludGVsX3BlcmZfY291bnRlcnMuYwo+IEBAIC00 NTQsNyArNDU0LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gIAlpbnQgZmQ7Cj4g IAlpbnQgbDsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJZmQgPSBkcm1fb3Blbl9h bnkoT1BFTl9JTlRFTCk7Cj4gIAlkZXZpZCA9IGludGVsX2dldF9kcm1fZGV2aWQoZmQpOwo+ICAK PiAgCWJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZmQsIDQwOTYpOwo+IC0tIAo+ IDIuNC4xCj4gCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29y cG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK