From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Souza, Jose" Subject: Re: [PATCH v8 1/3] drm/i915/psr: Make PSR registers relative to transcoders Date: Thu, 22 Aug 2019 17:22:55 +0000 Message-ID: <9dd5990c8e9a4bb873a9287edfd30c9e7016af13.camel@intel.com> References: <20190820223325.27490-1-jose.souza@intel.com> <20190821043601.GB30506@intel.com> <2efd129e-519c-89a9-650e-f7068ca792ee@intel.com> <0f11a204-1745-faa9-a534-5c4d009404d3@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id BC82B6EBD9 for ; Fri, 23 Aug 2019 07:57:47 +0000 (UTC) In-Reply-To: <0f11a204-1745-faa9-a534-5c4d009404d3@intel.com> Content-Language: en-US Content-ID: <39C605DF1BB40C4D9A89CE295B1F2F79@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Gupta, Anshuman" Cc: "intel-gfx@lists.freedesktop.org" , "De Marchi, Lucas" , "Pandiyan, Dhinakaran" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE5LTA4LTIyIGF0IDIyOjM5ICswNTMwLCBHdXB0YSwgQW5zaHVtYW4gd3JvdGU6 DQo+IA0KPiBPbiA4LzIyLzIwMTkgMTA6MTkgUE0sIFNvdXphLCBKb3NlIHdyb3RlOg0KPiA+IE9u IFRodSwgMjAxOS0wOC0yMiBhdCAyMTozNyArMDUzMCwgR3VwdGEsIEFuc2h1bWFuIHdyb3RlOg0K PiA+ID4gT24gOC8yMi8yMDE5IDE6MzYgQU0sIFNvdXphLCBKb3NlIHdyb3RlOg0KPiA+ID4gPiBP biBXZWQsIDIwMTktMDgtMjEgYXQgMTA6MDYgKzA1MzAsIEFuc2h1bWFuIEd1cHRhIHdyb3RlOg0K PiA+ID4gPiA+IE9uIDIwMTktMDgtMjAgYXQgMTU6MzM6MjMgLTA3MDAsIEpvc8OpIFJvYmVydG8g ZGUgU291emEgd3JvdGU6DQo+ID4gPiA+ID4gPiBQU1IgcmVnaXN0ZXJzIGFyZSBhIG1lc3MsIHNv bWUgaGF2ZSB0aGUgZnVsbCBhZGRyZXNzIHdoaWxlDQo+ID4gPiA+ID4gPiBvdGhlcnMNCj4gPiA+ ID4gPiA+IGp1c3QNCj4gPiA+ID4gPiA+IGhhdmUgdGhlIGFkZGl0aW9uYWwgb2Zmc2V0IGZyb20g cHNyX21taW9fYmFzZS4NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gRm9yIEJEVysgcHNyX21t aW9fYmFzZSBpcyBub3RoaW5nIG1vcmUgdGhhbg0KPiA+ID4gPiA+ID4gVFJBTlNDT0RFUl9FRFBf T0ZGU0VUICsNCj4gPiA+ID4gPiA+IDB4ODAwIGFuZCB1c2luZyBpdCBtYWtlcyBtb3JlIGRpZmZp Y3VsdCBmb3IgcGVvcGxlIHdpdGggYW4NCj4gPiA+ID4gPiA+IFBTUg0KPiA+ID4gPiA+ID4gcmVn aXN0ZXIgYWRkcmVzcyBvciBQU1IgcmVnaXN0ZXIgbmFtZSBmcm9tIGZyb20gQlNwZWMgYXMNCj4g PiA+ID4gPiA+IGk5MTUNCj4gPiA+ID4gPiA+IGFsc28NCj4gPiA+ID4gPiA+IGRvbid0IG1hdGNo IHRoZSBCU3BlYyBuYW1lcy4NCj4gPiA+ID4gPiA+IEZvciBIU1cgcHNyX21taW9fYmFzZSBpcyBf RERJX0JVRl9DVExfQSArIDB4ODAwIGFuZCBQU1INCj4gPiA+ID4gPiA+IHJlZ2lzdGVycw0KPiA+ ID4gPiA+ID4gYXJlDQo+ID4gPiA+ID4gPiBvbmx5IGF2YWlsYWJsZSBpbiBERElBLg0KPiA+ID4g PiA+ID4gDQo+ID4gPiA+ID4gPiBPdGhlciByZWFzb24gdG8gbWFrZSByZWxhdGl2ZSB0byB0cmFu c2NvZGVyIGlzIHRoYXQgc2luY2UNCj4gPiA+ID4gPiA+IEJEVw0KPiA+ID4gPiA+ID4gZXZlcnkN Cj4gPiA+ID4gPiA+IHRyYW5zY29kZXIgaGF2ZSBQU1IgcmVnaXN0ZXJzLCBzbyBpbiB0aGVvcnkg aXQgc2hvdWxkIGJlDQo+ID4gPiA+ID4gPiBwb3NzaWJsZQ0KPiA+ID4gPiA+ID4gdG8NCj4gPiA+ ID4gPiA+IGhhdmUgUFNSIGVuYWJsZWQgaW4gYSBub24tZURQIHRyYW5zY29kZXIuDQo+ID4gPiA+ ID4gPiANCj4gPiA+ID4gPiA+IFNvIGZvciBCRFcrIHdlIGNhbiB1c2UgX1RSQU5TMigpIHRvIGdl dCB0aGUgcmVnaXN0ZXIgb2Zmc2V0DQo+ID4gPiA+ID4gPiBvZg0KPiA+ID4gPiA+ID4gYW55DQo+ ID4gPiA+ID4gPiBQU1IgcmVnaXN0ZXIgaW4gYW55IHRyYW5zY29kZXIgd2hpbGUgZm9yIEhTVyB3 ZSBoYXZlDQo+ID4gPiA+ID4gPiBfSFNXX1BTUl9BREoNCj4gPiA+ID4gPiA+IHRoYXQgd2lsbCBj YWxjdWxhdGUgdGhlIHJlZ2lzdGVyIG9mZnNldCBmb3IgdGhlIHNpbmdsZSBQU1INCj4gPiA+ID4g PiA+IGluc3RhbmNlLA0KPiA+ID4gPiA+ID4gbm90aW5nIHRoYXQgd2UgYXJlIGFscmVhZHkgZ3Vh cmRlZCBhYm91dCB0cnlpbmcgdG8gZW5hYmxlDQo+ID4gPiA+ID4gPiBQU1INCj4gPiA+ID4gPiA+ IGluDQo+ID4gPiA+ID4gPiBvdGhlcg0KPiA+ID4gPiA+ID4gcG9ydCB0aGFuIERESUEgb24gSFNX IGJ5IHRoZSAnaWYgKGRpZ19wb3J0LT5iYXNlLnBvcnQgIT0NCj4gPiA+ID4gPiA+IFBPUlRfQSkn DQo+ID4gPiA+ID4gPiBpbg0KPiA+ID4gPiA+ID4gaW50ZWxfcHNyX2NvbXB1dGVfY29uZmlnKCks IHRoaXMgY2hlY2sgc2hvdWxkIG9ubHkgYmUgdmFsaWQNCj4gPiA+ID4gPiA+IGZvcg0KPiA+ID4g PiA+ID4gSFNXDQo+ID4gPiA+ID4gPiBhbmQgd2lsbCBiZSBjaGFuZ2VkIGluIGZ1dHVyZS4NCj4g PiA+ID4gPiA+IFBTUjIgcmVnaXN0ZXJzIGFuZCBQU1JfRVZFTlQgd2FzIGFkZGVkIGFmdGVyIEhh c3dlbGwgc28NCj4gPiA+ID4gPiA+IHRoYXQgaXMNCj4gPiA+ID4gPiA+IHdoeQ0KPiA+ID4gPiA+ ID4gX1BTUl9BREooKSBpcyBub3QgdXNlZCBpbiBzb21lIG1hY3Jvcy4NCj4gPiA+ID4gPiA+IA0K PiA+ID4gPiA+ID4gVGhlIG9ubHkgcmVnaXN0ZXJzIHRoYXQgY2FuIG5vdCBiZSByZWxhdGl2ZSB0 byB0cmFuc2NvZGVyDQo+ID4gPiA+ID4gPiBhcmUNCj4gPiA+ID4gPiA+IFBTUl9JTVIgYW5kIFBT Ul9JSVIgdGhhdCBhcmUgbm90IHJlbGF0aXZlIHRvIGFueXRoaW5nLCBzbw0KPiA+ID4gPiA+ID4g a2VlcGluZw0KPiA+ID4gPiA+ID4gaXQNCj4gPiA+ID4gPiA+IGhhcmRjb2RlZC4gVGhhdCBjaGFu Z2VkIGZvciBUR0wgYnV0IGl0IHdpbGwgYmUgaGFuZGxlZCBpbg0KPiA+ID4gPiA+ID4gYW5vdGhl cg0KPiA+ID4gPiA+ID4gcGF0Y2guDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IEFsc28gcmVt b3ZpbmcgQkRXX0VEUF9QU1JfQkFTRSBmcm9tIEdWVCBiZWNhdXNlIGl0IGlzIG5vdA0KPiA+ID4g PiA+ID4gdXNlZA0KPiA+ID4gPiA+ID4gYXMNCj4gPiA+ID4gPiA+IGl0DQo+ID4gPiA+ID4gPiBp cyB0aGUgb25seSBQU1IgcmVnaXN0ZXIgdGhhdCBHVlQgaGF2ZS4NCj4gPiA+ID4gPiA+IA0KPiA+ ID4gPiA+ID4gdjU6DQo+ID4gPiA+ID4gPiAtIE1hY3JvcyBjaGFuZ2VkIHRvIGJlIG1vcmUgZXhw bGljaXQgYWJvdXQgSFNXIChEaGluYWthcmFuKQ0KPiA+ID4gPiA+ID4gLSBTcXVhc2hlZCB3aXRo IHRoZSBwYXRjaCB0aGF0IGFkZGVkIHRoZSB0cmFuIHBhcmFtZXRlciB0bw0KPiA+ID4gPiA+ID4g dGhlDQo+ID4gPiA+ID4gPiBtYWNyb3MgKERoaW5ha2FyYW4pDQo+ID4gPiA+ID4gPiANCj4gPiA+ ID4gPiA+IHY2Og0KPiA+ID4gPiA+ID4gLSBDaGVja2luZyBmb3IgaW50ZXJydXB0aW9uIGVycm9y cyBhZnRlciBtb2R1bGUgcmVsb2FkIGluDQo+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+IHRy YW5zY29kZXIgdGhhdCB3aWxsIGJlIHVzZWQgKERoaW5ha2FyYW4pDQo+ID4gPiA+ID4gPiAtIFVz aW5nIGxvd2VyY2FzZSB0byB0aGUgcmVnaXN0ZXJzIG9mZnNldHMNCj4gPiA+ID4gPiA+IA0KPiA+ ID4gPiA+ID4gdjc6DQo+ID4gPiA+ID4gPiAtIFJlbW92aW5nIElTX0hBU1dFTEwoKSBmcm9tIHJl Z2lzdGVycyBtYWNyb3MoSmFuaSkNCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gQ2M6IERoaW5h a2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPg0KPiA+ID4gPiA+ ID4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPg0KPiA+ID4gPiA+ ID4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+DQo+ ID4gPiA+ID4gPiBDYzogWmhpIFdhbmcgPHpoaS5hLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gPiA+ ID4gUmV2aWV3ZWQtYnk6IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlAaW50ZWwuY29t Pg0KPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9z ZS5zb3V6YUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBMdWNhcyBEZSBN YXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+IC0tLQ0KPiA+ID4g PiA+ID4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYyB8IDEwNA0K PiA+ID4gPiA+ID4gKysrKysrKysrKysrKy0NCj4gPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4g LS0tLS0tDQo+ID4gPiA+ID4gPiAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaGFuZGxlcnMu YyAgICAgIHwgICAyICstDQo+ID4gPiA+ID4gPiAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYyAgICAgIHwgIDE4ICsrLS0NCj4gPiA+ID4gPiA+ICAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgfCAgIDUgKy0NCj4gPiA+ID4gPiA+ICAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAgICAgfCAgNTcNCj4gPiA+ID4gPiA+ICsr KysrKysrKy0tLS0NCj4gPiA+ID4gPiA+ICAgIDUgZmlsZXMgY2hhbmdlZCwgMTEzIGluc2VydGlv bnMoKyksIDczIGRlbGV0aW9ucygtKQ0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYw0KPiA+ID4gPiA+ ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jDQo+ID4gPiA+ID4g PiBpbmRleCAzYmZiNzIwNTYwYzIuLjc3MjMyZjZiY2ExNyAxMDA2NDQNCj4gPiA+ID4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMNCj4gPiA+ID4gPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMNCj4gPiA+ID4g PiA+IEBAIC0zOTAsNyArMzkwLDcgQEAgc3RhdGljIHZvaWQgaHN3X3Bzcl9zZXR1cF9hdXgoc3Ry dWN0DQo+ID4gPiA+ID4gPiBpbnRlbF9kcA0KPiA+ID4gPiA+ID4gKmludGVsX2RwKQ0KPiA+ID4g PiA+ID4gICAgDQo+ID4gPiA+ID4gPiAgICAJQlVJTERfQlVHX09OKHNpemVvZihhdXhfbXNnKSA+ IDIwKTsNCj4gPiA+ID4gPiA+ICAgIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGF1eF9tc2cpOyBp ICs9IDQpDQo+ID4gPiA+ID4gPiAtCQlJOTE1X1dSSVRFKEVEUF9QU1JfQVVYX0RBVEEoaSA+PiAy KSwNCj4gPiA+ID4gPiA+ICsJCUk5MTVfV1JJVEUoRURQX1BTUl9BVVhfREFUQShkZXZfcHJpdi0N Cj4gPiA+ID4gPiA+ID4gcHNyLnRyYW5zY29kZXIsIGkNCj4gPiA+ID4gPiA+ID4gPiAyKSwNCj4g PiA+ID4gPiA+ICAgIAkJCSAgIGludGVsX2RwX3BhY2tfYXV4KCZhdXhfbXNnW2ldLA0KPiA+ID4g PiA+ID4gc2l6ZW9mKGF1eF9tc2cpIC0gaSkpOw0KPiA+ID4gPiA+ID4gICAgDQo+ID4gPiA+ID4g PiAgICAJYXV4X2Nsb2NrX2RpdmlkZXIgPSBpbnRlbF9kcC0NCj4gPiA+ID4gPiA+ID4gZ2V0X2F1 eF9jbG9ja19kaXZpZGVyKGludGVsX2RwLA0KPiA+ID4gPiA+ID4gMCk7DQo+ID4gPiA+ID4gPiBA QCAtNDAxLDcgKzQwMSw3IEBAIHN0YXRpYyB2b2lkIGhzd19wc3Jfc2V0dXBfYXV4KHN0cnVjdA0K PiA+ID4gPiA+ID4gaW50ZWxfZHANCj4gPiA+ID4gPiA+ICppbnRlbF9kcCkNCj4gPiA+ID4gPiA+ ICAgIA0KPiA+ID4gPiA+ID4gICAgCS8qIFNlbGVjdCBvbmx5IHZhbGlkIGJpdHMgZm9yIFNSRF9B VVhfQ1RMICovDQo+ID4gPiA+ID4gPiAgICAJYXV4X2N0bCAmPSBwc3JfYXV4X21hc2s7DQo+ID4g PiA+ID4gPiAtCUk5MTVfV1JJVEUoRURQX1BTUl9BVVhfQ1RMLCBhdXhfY3RsKTsNCj4gPiA+ID4g PiA+ICsJSTkxNV9XUklURShFRFBfUFNSX0FVWF9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVy KSwNCj4gPiA+ID4gPiA+IGF1eF9jdGwpOw0KPiA+ID4gPiA+ID4gICAgfQ0KPiA+ID4gPiA+ID4g ICAgDQo+ID4gPiA+ID4gPiAgICBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfZW5hYmxlX3Npbmsoc3Ry dWN0IGludGVsX2RwDQo+ID4gPiA+ID4gPiAqaW50ZWxfZHApDQo+ID4gPiA+ID4gPiBAQCAtNDkx LDggKzQ5MSw5IEBAIHN0YXRpYyB2b2lkIGhzd19hY3RpdmF0ZV9wc3IxKHN0cnVjdA0KPiA+ID4g PiA+ID4gaW50ZWxfZHANCj4gPiA+ID4gPiA+ICppbnRlbF9kcCkNCj4gPiA+ID4gPiA+ICAgIAlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4KQ0KPiA+ID4gPiA+ID4gICAgCQl2YWwgfD0gRURQ X1BTUl9DUkNfRU5BQkxFOw0KPiA+ID4gPiA+ID4gICAgDQo+ID4gPiA+ID4gPiAtCXZhbCB8PSBJ OTE1X1JFQUQoRURQX1BTUl9DVEwpICYNCj4gPiA+ID4gPiA+IEVEUF9QU1JfUkVTVE9SRV9QU1Jf QUNUSVZFX0NUWF9NQVNLOw0KPiA+ID4gPiA+ID4gLQlJOTE1X1dSSVRFKEVEUF9QU1JfQ1RMLCB2 YWwpOw0KPiA+ID4gPiA+ID4gKwl2YWwgfD0gKEk5MTVfUkVBRChFRFBfUFNSX0NUTChkZXZfcHJp di0NCj4gPiA+ID4gPiA+ID4gcHNyLnRyYW5zY29kZXIpKSAmDQo+ID4gPiA+ID4gPiArCQlFRFBf UFNSX1JFU1RPUkVfUFNSX0FDVElWRV9DVFhfTUFTSyk7DQo+ID4gPiA+ID4gPiArCUk5MTVfV1JJ VEUoRURQX1BTUl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSwgdmFsKTsNCj4gPiA+ID4g PiA+ICAgIH0NCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4gICAgc3RhdGljIHZvaWQgaHN3 X2FjdGl2YXRlX3BzcjIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4gPiA+ID4gPiA+IEBA IC01MjgsOSArNTI5LDkgQEAgc3RhdGljIHZvaWQgaHN3X2FjdGl2YXRlX3BzcjIoc3RydWN0DQo+ ID4gPiA+ID4gPiBpbnRlbF9kcA0KPiA+ID4gPiA+ID4gKmludGVsX2RwKQ0KPiA+ID4gPiA+ID4g ICAgCSAqIFBTUjIgSFcgaXMgaW5jb3JyZWN0bHkgdXNpbmcgRURQX1BTUl9UUDFfVFAzX1NFTCBh bmQNCj4gPiA+ID4gPiA+IEJTcGVjDQo+ID4gPiA+ID4gPiBpcw0KPiA+ID4gPiA+ID4gICAgCSAq IHJlY29tbWVuZGluZyBrZWVwIHRoaXMgYml0IHVuc2V0IHdoaWxlIFBTUjIgaXMNCj4gPiA+ID4g PiA+IGVuYWJsZWQuDQo+ID4gPiA+ID4gPiAgICAJICovDQo+ID4gPiA+ID4gPiAtCUk5MTVfV1JJ VEUoRURQX1BTUl9DVEwsIDApOw0KPiA+ID4gPiA+ID4gKwlJOTE1X1dSSVRFKEVEUF9QU1JfQ1RM KGRldl9wcml2LT5wc3IudHJhbnNjb2RlciksIDApOw0KPiA+ID4gPiA+ID4gICAgDQo+ID4gPiA+ ID4gPiAtCUk5MTVfV1JJVEUoRURQX1BTUjJfQ1RMLCB2YWwpOw0KPiA+ID4gPiA+ID4gKwlJOTE1 X1dSSVRFKEVEUF9QU1IyX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpLA0KPiA+ID4gPiA+ ID4gdmFsKTsNCj4gPiA+ID4gPiA+ICAgIH0NCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4g ICAgc3RhdGljIGJvb2wgaW50ZWxfcHNyMl9jb25maWdfdmFsaWQoc3RydWN0IGludGVsX2RwDQo+ ID4gPiA+ID4gPiAqaW50ZWxfZHAsDQo+ID4gPiA+ID4gPiBAQCAtNjA2LDEwICs2MDcsOSBAQCB2 b2lkIGludGVsX3Bzcl9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QNCj4gPiA+ID4gPiA+IGludGVsX2Rw DQo+ID4gPiA+ID4gPiAqaW50ZWxfZHAsDQo+ID4gPiA+ID4gPiAgICANCj4gPiA+ID4gPiA+ICAg IAkvKg0KPiA+ID4gPiA+ID4gICAgCSAqIEhTVyBzcGVjIGV4cGxpY2l0bHkgc2F5cyBQU1IgaXMg dGllZCB0byBwb3J0IEEuDQo+ID4gPiA+ID4gPiAtCSAqIEJEVysgcGxhdGZvcm1zIHdpdGggRERJ IGltcGxlbWVudGF0aW9uIG9mIFBTUiBoYXZlDQo+ID4gPiA+ID4gPiBkaWZmZXJlbnQNCj4gPiA+ ID4gPiA+IC0JICogUFNSIHJlZ2lzdGVycyBwZXIgdHJhbnNjb2RlciBhbmQgd2Ugb25seSBpbXBs ZW1lbnQNCj4gPiA+ID4gPiA+IHRyYW5zY29kZXIgRURQDQo+ID4gPiA+ID4gPiAtCSAqIG9uZXMu IFNpbmNlIGJ5IERpc3BsYXkgZGVzaWduIHRyYW5zY29kZXIgRURQIGlzIHRpZWQNCj4gPiA+ID4g PiA+IHRvIHBvcnQNCj4gPiA+ID4gPiA+IEENCj4gPiA+ID4gPiA+IC0JICogd2UgY2FuIHNhZmVs eSBlc2NhcGUgYmFzZWQgb24gdGhlIHBvcnQgQS4NCj4gPiA+ID4gPiA+ICsJICogQkRXKyBwbGF0 Zm9ybXMgaGF2ZSBhIGluc3RhbmNlIG9mIFBTUiByZWdpc3RlcnMgcGVyDQo+ID4gPiA+ID4gPiB0 cmFuc2NvZGVyIGJ1dA0KPiA+ID4gPiA+ID4gKwkgKiBmb3Igbm93IGl0IG9ubHkgc3VwcG9ydHMg b25lIGluc3RhbmNlIG9mIFBTUiwgc28NCj4gPiA+ID4gPiA+IGxldHMga2VlcA0KPiA+ID4gPiA+ ID4gaXQNCj4gPiA+ID4gPiA+ICsJICogaGFyZGNvZGVkIHRvIFBPUlRfQQ0KPiA+ID4gPiA+ID4g ICAgCSAqLw0KPiA+ID4gPiA+ID4gICAgCWlmIChkaWdfcG9ydC0+YmFzZS5wb3J0ICE9IFBPUlRf QSkgew0KPiA+ID4gPiA+ID4gICAgCQlEUk1fREVCVUdfS01TKCJQU1IgY29uZGl0aW9uIGZhaWxl ZDogUG9ydCBub3QNCj4gPiA+ID4gPiA+IHN1cHBvcnRlZFxuIik7DQo+ID4gPiA+ID4gPiBAQCAt NjQ5LDggKzY0OSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bzcl9hY3RpdmF0ZShzdHJ1Y3QNCj4g PiA+ID4gPiA+IGludGVsX2RwDQo+ID4gPiA+ID4gPiAqaW50ZWxfZHApDQo+ID4gPiA+ID4gPiAg ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0NCj4gPiA+ID4gPiA+IGRwX3Rv X2k5MTUoaW50ZWxfZHApOw0KPiA+ID4gPiA+ID4gICAgDQo+ID4gPiA+ID4gPiAgICAJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gOSkNCj4gPiA+ID4gPiA+IC0JCVdBUk5fT04oSTkxNV9SRUFE KEVEUF9QU1IyX0NUTCkgJg0KPiA+ID4gPiA+ID4gRURQX1BTUjJfRU5BQkxFKTsNCj4gPiA+ID4g PiA+IC0JV0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUl9DVEwpICYgRURQX1BTUl9FTkFCTEUpOw0K PiA+ID4gPiA+ID4gKwkJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUjJfQ1RMKGRldl9wcml2LQ0K PiA+ID4gPiA+ID4gPiBwc3IudHJhbnNjb2RlcikpICYgRURQX1BTUjJfRU5BQkxFKTsNCj4gPiA+ ID4gPiA+ICsJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUl9DVEwoZGV2X3ByaXYtDQo+ID4gPiA+ ID4gPiA+IHBzci50cmFuc2NvZGVyKSkgJg0KPiA+ID4gPiA+ID4gRURQX1BTUl9FTkFCTEUpOw0K PiA+ID4gPiA+ID4gICAgCVdBUk5fT04oZGV2X3ByaXYtPnBzci5hY3RpdmUpOw0KPiA+ID4gPiA+ ID4gICAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wc3IubG9jayk7DQo+ID4gPiA+ ID4gPiAgICANCj4gPiA+ID4gPiA+IEBAIC03MjAsMTkgKzcyMCwzNyBAQCBzdGF0aWMgdm9pZA0K PiA+ID4gPiA+ID4gaW50ZWxfcHNyX2VuYWJsZV9zb3VyY2Uoc3RydWN0DQo+ID4gPiA+ID4gPiBp bnRlbF9kcCAqaW50ZWxfZHAsDQo+ID4gPiA+ID4gPiAgICAJaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPCAxMSkNCj4gPiA+ID4gPiA+ICAgIAkJbWFzayB8PSBFRFBfUFNSX0RFQlVHX01BU0tfRElT UF9SRUdfV1JJVEU7DQo+ID4gPiA+ID4gPiAgICANCj4gPiA+ID4gPiA+IC0JSTkxNV9XUklURShF RFBfUFNSX0RFQlVHLCBtYXNrKTsNCj4gPiA+ID4gPiA+ICsJSTkxNV9XUklURShFRFBfUFNSX0RF QlVHKGRldl9wcml2LT5wc3IudHJhbnNjb2RlciksDQo+ID4gPiA+ID4gPiBtYXNrKTsNCj4gPiA+ ID4gPiA+ICAgIH0NCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4gICAgc3RhdGljIHZvaWQg aW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQoc3RydWN0DQo+ID4gPiA+ID4gPiBkcm1faTkxNV9wcml2 YXRlDQo+ID4gPiA+ID4gPiAqZGV2X3ByaXYsDQo+ID4gPiA+ID4gPiAgICAJCQkJICAgIGNvbnN0 IHN0cnVjdA0KPiA+ID4gPiA+ID4gaW50ZWxfY3J0Y19zdGF0ZQ0KPiA+ID4gPiA+ID4gKmNydGNf c3RhdGUpDQo+ID4gPiA+ID4gPiAgICB7DQo+ID4gPiA+ID4gPiAgICAJc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCA9IGRldl9wcml2LT5wc3IuZHA7DQo+ID4gPiA+ID4gPiArCXUzMiB2YWw7DQo+ ID4gPiA+ID4gPiAgICANCj4gPiA+ID4gPiA+ICAgIAlXQVJOX09OKGRldl9wcml2LT5wc3IuZW5h YmxlZCk7DQo+ID4gPiA+ID4gPiAgICANCj4gPiA+ID4gPiA+ICAgIAlkZXZfcHJpdi0+cHNyLnBz cjJfZW5hYmxlZCA9DQo+ID4gPiA+ID4gPiBpbnRlbF9wc3IyX2VuYWJsZWQoZGV2X3ByaXYsDQo+ ID4gPiA+ID4gPiBjcnRjX3N0YXRlKTsNCj4gPiA+ID4gPiA+ICAgIAlkZXZfcHJpdi0+cHNyLmJ1 c3lfZnJvbnRidWZmZXJfYml0cyA9IDA7DQo+ID4gPiA+ID4gPiAgICAJZGV2X3ByaXYtPnBzci5w aXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLQ0KPiA+ID4gPiA+ID4gPiBiYXNlLmNydGMp LQ0KPiA+ID4gPiA+ID4gPiBwaXBlOw0KPiA+ID4gPiA+ID4gKwlkZXZfcHJpdi0+cHNyLnRyYW5z Y29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiA+ICsJLyoNCj4gPiA+ID4gPiA+ICsJICogSWYgYSBQU1IgZXJyb3IgaGFwcGVuZWQgYW5k IHRoZSBkcml2ZXIgaXMgcmVsb2FkZWQsDQo+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+IEVE UF9QU1JfSUlSDQo+ID4gPiA+ID4gPiArCSAqIHdpbGwgc3RpbGwga2VlcCB0aGUgZXJyb3Igc2V0 IGV2ZW4gYWZ0ZXIgdGhlIHJlc2V0DQo+ID4gPiA+ID4gPiBkb25lIGluDQo+ID4gPiA+ID4gPiB0 aGUNCj4gPiA+ID4gPiA+ICsJICogaXJxX3ByZWluc3RhbGwgYW5kIGlycV91bmluc3RhbGwgaG9v a3MuDQo+ID4gPiA+ID4gPiArCSAqIEFuZCBlbmFibGluZyBpbiB0aGlzIHNpdHVhdGlvbiBjYXVz ZSB0aGUgc2NyZWVuIHRvDQo+ID4gPiA+ID4gPiBmcmVlemUgaW4NCj4gPiA+ID4gPiA+IHRoZQ0K PiA+ID4gPiA+ID4gKwkgKiBmaXJzdCB0aW1lIHRoYXQgUFNSIEhXIHRyaWVzIHRvIGFjdGl2YXRl IHNvIGxldHMNCj4gPiA+ID4gPiA+IGtlZXAgUFNSDQo+ID4gPiA+ID4gPiBkaXNhYmxlZA0KPiA+ ID4gPiA+ID4gKwkgKiB0byBhdm9pZCBhbnkgcmVuZGVyaW5nIHByb2JsZW1zLg0KPiA+ID4gPiA+ ID4gKwkgKi8NCj4gPiA+ID4gPiA+ICsJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1JfSUlSKTsNCj4g PiA+ID4gPiA+ICsJdmFsICY9IEVEUF9QU1JfRVJST1IoZWRwX3Bzcl9zaGlmdChkZXZfcHJpdi0N Cj4gPiA+ID4gPiA+ID4gcHNyLnRyYW5zY29kZXIpKTsNCj4gPiA+ID4gPiA+ICsJaWYgKHZhbCkg ew0KPiA+ID4gPiA+ID4gKwkJZGV2X3ByaXYtPnBzci5zaW5rX25vdF9yZWxpYWJsZSA9IHRydWU7 DQo+ID4gPiA+ID4gPiArCQlEUk1fREVCVUdfS01TKCJQU1IgaW50ZXJydXB0aW9uIGVycm9yIHNl dCwgbm90DQo+ID4gPiA+ID4gPiBlbmFibGluZw0KPiA+ID4gPiA+ID4gUFNSXG4iKTsNCj4gPiA+ ID4gPiA+ICsJCXJldHVybjsNCj4gPiA+ID4gPiA+ICsJfQ0KPiA+ID4gPiA+ID4gICAgDQo+ID4g PiA+ID4gPiAgICAJRFJNX0RFQlVHX0tNUygiRW5hYmxpbmcgUFNSJXNcbiIsDQo+ID4gPiA+ID4g PiAgICAJCSAgICAgIGRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkID8gIjIiIDogIjEiKTsNCj4g PiA+ID4gPiA+IEBAIC03ODIsMjAgKzgwMCwyNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfZXhp dChzdHJ1Y3QNCj4gPiA+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+ID4g PiA+ID4gICAgCXUzMiB2YWw7DQo+ID4gPiA+ID4gPiAgICANCj4gPiA+ID4gPiA+ICAgIAlpZiAo IWRldl9wcml2LT5wc3IuYWN0aXZlKSB7DQo+ID4gPiA+ID4gPiAtCQlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA5KQ0KPiA+ID4gPiA+ID4gLQkJCVdBUk5fT04oSTkxNV9SRUFEKEVEUF9QU1Iy X0NUTCkgJg0KPiA+ID4gPiA+ID4gRURQX1BTUjJfRU5BQkxFKTsNCj4gPiA+ID4gPiA+IC0JCVdB Uk5fT04oSTkxNV9SRUFEKEVEUF9QU1JfQ1RMKSAmDQo+ID4gPiA+ID4gPiBFRFBfUFNSX0VOQUJM RSk7DQo+ID4gPiA+ID4gPiArCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7DQo+ID4g PiA+ID4gPiArCQkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1IyX0NUTChkZXZfcHJpdi0NCj4gPiA+ ID4gPiA+ID4gcHNyLnRyYW5zY29kZXIpKTsNCj4gPiA+ID4gPiA+ICsJCQlXQVJOX09OKHZhbCAm IEVEUF9QU1IyX0VOQUJMRSk7DQo+ID4gPiA+ID4gPiArCQl9DQo+ID4gPiA+ID4gPiArDQo+ID4g PiA+ID4gPiArCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUl9DVEwoZGV2X3ByaXYtDQo+ID4gPiA+ ID4gPiA+IHBzci50cmFuc2NvZGVyKSk7DQo+ID4gPiA+ID4gPiArCQlXQVJOX09OKHZhbCAmIEVE UF9QU1JfRU5BQkxFKTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICAgIAkJcmV0dXJuOw0K PiA+ID4gPiA+ID4gICAgCX0NCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4gICAgCWlmIChk ZXZfcHJpdi0+cHNyLnBzcjJfZW5hYmxlZCkgew0KPiA+ID4gPiA+ID4gLQkJdmFsID0gSTkxNV9S RUFEKEVEUF9QU1IyX0NUTCk7DQo+ID4gPiA+ID4gPiArCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BT UjJfQ1RMKGRldl9wcml2LQ0KPiA+ID4gPiA+ID4gPiBwc3IudHJhbnNjb2RlcikpOw0KPiA+ID4g PiA+ID4gICAgCQlXQVJOX09OKCEodmFsICYgRURQX1BTUjJfRU5BQkxFKSk7DQo+ID4gPiA+ID4g PiAtCQlJOTE1X1dSSVRFKEVEUF9QU1IyX0NUTCwgdmFsICYNCj4gPiA+ID4gPiA+IH5FRFBfUFNS Ml9FTkFCTEUpOw0KPiA+ID4gPiA+ID4gKwkJdmFsICY9IH5FRFBfUFNSMl9FTkFCTEU7DQo+ID4g PiA+ID4gPiArCQlJOTE1X1dSSVRFKEVEUF9QU1IyX0NUTChkZXZfcHJpdi0NCj4gPiA+ID4gPiA+ ID4gcHNyLnRyYW5zY29kZXIpLA0KPiA+ID4gPiA+ID4gdmFsKTsNCj4gPiA+ID4gPiA+ICAgIAl9 IGVsc2Ugew0KPiA+ID4gPiA+ID4gLQkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1JfQ1RMKTsNCj4g PiA+ID4gPiA+ICsJCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX0NUTChkZXZfcHJpdi0NCj4gPiA+ ID4gPiA+ID4gcHNyLnRyYW5zY29kZXIpKTsNCj4gPiA+ID4gPiA+ICAgIAkJV0FSTl9PTighKHZh bCAmIEVEUF9QU1JfRU5BQkxFKSk7DQo+ID4gPiA+ID4gPiAtCQlJOTE1X1dSSVRFKEVEUF9QU1Jf Q1RMLCB2YWwgJiB+RURQX1BTUl9FTkFCTEUpOw0KPiA+ID4gPiA+ID4gKwkJdmFsICY9IH5FRFBf UFNSX0VOQUJMRTsNCj4gPiA+ID4gPiA+ICsJCUk5MTVfV1JJVEUoRURQX1BTUl9DVEwoZGV2X3By aXYtDQo+ID4gPiA+ID4gPiA+IHBzci50cmFuc2NvZGVyKSwgdmFsKTsNCj4gPiA+ID4gPiA+ICAg IAl9DQo+ID4gPiA+ID4gPiAgICAJZGV2X3ByaXYtPnBzci5hY3RpdmUgPSBmYWxzZTsNCj4gPiA+ ID4gPiA+ICAgIH0NCj4gPiA+ID4gPiA+IEBAIC04MTcsMTAgKzg0MiwxMCBAQCBzdGF0aWMgdm9p ZA0KPiA+ID4gPiA+ID4gaW50ZWxfcHNyX2Rpc2FibGVfbG9ja2VkKHN0cnVjdA0KPiA+ID4gPiA+ ID4gaW50ZWxfZHAgKmludGVsX2RwKQ0KPiA+ID4gPiA+ID4gICAgCWludGVsX3Bzcl9leGl0KGRl dl9wcml2KTsNCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4gICAgCWlmIChkZXZfcHJpdi0+ cHNyLnBzcjJfZW5hYmxlZCkgew0KPiA+ID4gPiA+ID4gLQkJcHNyX3N0YXR1cyA9IEVEUF9QU1Iy X1NUQVRVUzsNCj4gPiA+ID4gPiA+ICsJCXBzcl9zdGF0dXMgPSBFRFBfUFNSMl9TVEFUVVMoZGV2 X3ByaXYtDQo+ID4gPiA+ID4gPiA+IHBzci50cmFuc2NvZGVyKTsNCj4gPiA+ID4gPiA+ICAgIAkJ cHNyX3N0YXR1c19tYXNrID0gRURQX1BTUjJfU1RBVFVTX1NUQVRFX01BU0s7DQo+ID4gPiA+ID4g PiAgICAJfSBlbHNlIHsNCj4gPiA+ID4gPiA+IC0JCXBzcl9zdGF0dXMgPSBFRFBfUFNSX1NUQVRV UzsNCj4gPiA+ID4gPiA+ICsJCXBzcl9zdGF0dXMgPSBFRFBfUFNSX1NUQVRVUyhkZXZfcHJpdi0N Cj4gPiA+ID4gPiA+ID4gcHNyLnRyYW5zY29kZXIpOw0KPiA+ID4gPiA+ID4gICAgCQlwc3Jfc3Rh dHVzX21hc2sgPSBFRFBfUFNSX1NUQVRVU19TVEFURV9NQVNLOw0KPiA+ID4gPiA+ID4gICAgCX0N Cj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4gQEAgLTk2Myw3ICs5ODgsOCBAQCBpbnQgaW50 ZWxfcHNyX3dhaXRfZm9yX2lkbGUoY29uc3QNCj4gPiA+ID4gPiA+IHN0cnVjdA0KPiA+ID4gPiA+ ID4gaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUsDQo+ID4gPiA+ID4gPiAgICAJICog ZGVmZW5zaXZlIGVub3VnaCB0byBjb3ZlciBldmVyeXRoaW5nLg0KPiA+ID4gPiA+ID4gICAgCSAq Lw0KPiA+ID4gPiA+ID4gICAgDQo+ID4gPiA+ID4gPiAtCXJldHVybiBfX2ludGVsX3dhaXRfZm9y X3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLA0KPiA+ID4gPiA+ID4gRURQX1BTUl9TVEFUVVMs DQo+ID4gPiA+ID4gPiArCXJldHVybiBfX2ludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJp di0+dW5jb3JlLA0KPiA+ID4gPiA+ID4gKwkJCQkJIEVEUF9QU1JfU1RBVFVTKGRldl9wcmkNCj4g PiA+ID4gPiA+IHYtDQo+ID4gPiA+ID4gPiA+IHBzci50cmFuc2NvZGVyKSwNCj4gPiA+ID4gPiA+ ICAgIAkJCQkJIEVEUF9QU1JfU1RBVFVTX1NUQVRFX00NCj4gPiA+ID4gPiA+IEFTSywNCj4gPiA+ ID4gPiA+ICAgIAkJCQkJIEVEUF9QU1JfU1RBVFVTX1NUQVRFX0kNCj4gPiA+ID4gPiA+IERMRSwg MiwNCj4gPiA+ID4gPiA+IDUwLA0KPiA+ID4gPiA+ID4gICAgCQkJCQkgb3V0X3ZhbHVlKTsNCj4g PiA+ID4gPiA+IEBAIC05NzksMTAgKzEwMDUsMTAgQEAgc3RhdGljIGJvb2wNCj4gPiA+ID4gPiA+ IF9fcHNyX3dhaXRfZm9yX2lkbGVfbG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlDQo+ID4g PiA+ID4gPiAqZGV2X3ByaXYpDQo+ID4gPiA+ID4gPiAgICAJCXJldHVybiBmYWxzZTsNCj4gPiA+ ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4gICAgCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJfZW5hYmxl ZCkgew0KPiA+ID4gPiA+ID4gLQkJcmVnID0gRURQX1BTUjJfU1RBVFVTOw0KPiA+ID4gPiA+ID4g KwkJcmVnID0gRURQX1BTUjJfU1RBVFVTKGRldl9wcml2LQ0KPiA+ID4gPiA+ID4gPiBwc3IudHJh bnNjb2Rlcik7DQo+ID4gPiA+ID4gPiAgICAJCW1hc2sgPSBFRFBfUFNSMl9TVEFUVVNfU1RBVEVf TUFTSzsNCj4gPiA+ID4gPiA+ICAgIAl9IGVsc2Ugew0KPiA+ID4gPiA+ID4gLQkJcmVnID0gRURQ X1BTUl9TVEFUVVM7DQo+ID4gPiA+ID4gPiArCQlyZWcgPSBFRFBfUFNSX1NUQVRVUyhkZXZfcHJp di0+cHNyLnRyYW5zY29kZXIpOw0KPiA+ID4gPiA+ID4gICAgCQltYXNrID0gRURQX1BTUl9TVEFU VVNfU1RBVEVfTUFTSzsNCj4gPiA+ID4gPiA+ICAgIAl9DQo+ID4gPiA+ID4gPiAgICANCj4gPiA+ ID4gPiA+IEBAIC0xMjA4LDM2ICsxMjM0LDI0IEBAIHZvaWQgaW50ZWxfcHNyX2ZsdXNoKHN0cnVj dA0KPiA+ID4gPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ID4gPiA+ID4gPiAg ICAgKi8NCj4gPiA+ID4gPiA+ICAgIHZvaWQgaW50ZWxfcHNyX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+ID4gPiA+ID4gICAgew0KPiA+ID4gPiA+ID4gLQl1MzIg dmFsOw0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4gICAgCWlmICghSEFTX1BTUihkZXZfcHJp dikpDQo+ID4gPiA+ID4gPiAgICAJCXJldHVybjsNCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ ID4gLQlkZXZfcHJpdi0+cHNyX21taW9fYmFzZSA9IElTX0hBU1dFTEwoZGV2X3ByaXYpID8NCj4g PiA+ID4gPiA+IC0JCUhTV19FRFBfUFNSX0JBU0UgOiBCRFdfRURQX1BTUl9CQVNFOw0KPiA+ID4g PiA+ID4gLQ0KPiA+ID4gPiA+ID4gICAgCWlmICghZGV2X3ByaXYtPnBzci5zaW5rX3N1cHBvcnQp DQo+ID4gPiA+ID4gPiAgICAJCXJldHVybjsNCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4g KwlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpDQo+ID4gPiA+ID4gPiArCQkvKg0KPiA+ID4gPiA+ ID4gKwkJICogSFNXIGRvbid0IGhhdmUgUFNSIHJlZ2lzdGVycyBvbiB0aGUgc2FtZQ0KPiA+ID4g PiA+ID4gc3BhY2UgYXMNCj4gPiA+ID4gPiA+IHRyYW5zY29kZXINCj4gPiA+ID4gPiA+ICsJCSAq IHNvIHNldCB0aGlzIHRvIGEgdmFsdWUgdGhhdCB3aGVuIHN1YnRyYWN0IHRvDQo+ID4gPiA+ID4g PiB0aGUNCj4gPiA+ID4gPiA+IHJlZ2lzdGVyDQo+ID4gPiA+ID4gPiArCQkgKiBpbiB0cmFuc2Nv ZGVyIHNwYWNlIHJlc3VsdHMgaW4gdGhlIHJpZ2h0DQo+ID4gPiA+ID4gPiBvZmZzZXQgZm9yDQo+ ID4gPiA+ID4gPiBIU1cNCj4gPiA+ID4gPiA+ICsJCSAqLw0KPiA+ID4gPiA+ID4gKwkJZGV2X3By aXYtPmhzd19wc3JfbW1pb19hZGp1c3QgPSBfU1JEX0NUTF9FRFAgLQ0KPiA+ID4gPiA+ID4gX0hT V19FRFBfUFNSX0JBU0U7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiAgICAJaWYgKGk5MTVf bW9kcGFyYW1zLmVuYWJsZV9wc3IgPT0gLTEpDQo+ID4gPiA+ID4gPiAgICAJCWlmIChJTlRFTF9H RU4oZGV2X3ByaXYpIDwgOSB8fCAhZGV2X3ByaXYtDQo+ID4gPiA+ID4gPiA+IHZidC5wc3IuZW5h YmxlKQ0KPiA+ID4gPiA+ID4gICAgCQkJaTkxNV9tb2RwYXJhbXMuZW5hYmxlX3BzciA9IDA7DQo+ ID4gPiA+ID4gPiAgICANCj4gPiA+ID4gPiA+IC0JLyoNCj4gPiA+ID4gPiA+IC0JICogSWYgYSBQ U1IgZXJyb3IgaGFwcGVuZWQgYW5kIHRoZSBkcml2ZXIgaXMgcmVsb2FkZWQsDQo+ID4gPiA+ID4g PiB0aGUNCj4gPiA+ID4gPiA+IEVEUF9QU1JfSUlSDQo+ID4gPiA+ID4gPiAtCSAqIHdpbGwgc3Rp bGwga2VlcCB0aGUgZXJyb3Igc2V0IGV2ZW4gYWZ0ZXIgdGhlIHJlc2V0DQo+ID4gPiA+ID4gPiBk b25lIGluDQo+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+IC0JICogaXJxX3ByZWluc3RhbGwg YW5kIGlycV91bmluc3RhbGwgaG9va3MuDQo+ID4gPiA+ID4gPiAtCSAqIEFuZCBlbmFibGluZyBp biB0aGlzIHNpdHVhdGlvbiBjYXVzZSB0aGUgc2NyZWVuIHRvDQo+ID4gPiA+ID4gPiBmcmVlemUg aW4NCj4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4gLQkgKiBmaXJzdCB0aW1lIHRoYXQgUFNS IEhXIHRyaWVzIHRvIGFjdGl2YXRlIHNvIGxldHMNCj4gPiA+ID4gPiA+IGtlZXAgUFNSDQo+ID4g PiA+ID4gPiBkaXNhYmxlZA0KPiA+ID4gPiA+ID4gLQkgKiB0byBhdm9pZCBhbnkgcmVuZGVyaW5n IHByb2JsZW1zLg0KPiA+ID4gPiA+ID4gLQkgKi8NCj4gPiA+ID4gPiA+IC0JdmFsID0gSTkxNV9S RUFEKEVEUF9QU1JfSUlSKTsNCj4gPiA+ID4gPiA+IC0JdmFsICY9IEVEUF9QU1JfRVJST1IoZWRw X3Bzcl9zaGlmdChUUkFOU0NPREVSX0VEUCkpOw0KPiA+ID4gPiA+ID4gLQlpZiAodmFsKSB7DQo+ ID4gPiA+ID4gPiAtCQlEUk1fREVCVUdfS01TKCJQU1IgaW50ZXJydXB0aW9uIGVycm9yIHNldFxu Iik7DQo+ID4gPiA+ID4gPiAtCQlkZXZfcHJpdi0+cHNyLnNpbmtfbm90X3JlbGlhYmxlID0gdHJ1 ZTsNCj4gPiA+ID4gPiA+IC0JfQ0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+IEVhcmxpZXIgRURQ X1BTUl9JSVIgd2FzIGJlaW5nIGNoZWNrZWQgb25seSBpbiBkcml2ZXIgaW5pdA0KPiA+ID4gPiA+ IHBhdGgsDQo+ID4gPiA+ID4gbm93IGl0IGhhcyBiZWVuIGNoZWNrZWQgZm9yIGV2ZXJ5IG1vZGVz ZXQvZmFzdHNldCBwYXRoIGluDQo+ID4gPiA+ID4gaW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQoKS4g SXMgaXQgb2sgPw0KPiA+ID4gPiA+IElmIGl0IGlzIGp1c3RpZmllZCB3aHkgYXJlIHdlIG5vdCBj aGVja2luZyBpdCBpbg0KPiA+ID4gPiA+IGludGVsX3Bzcl9mbHVzaCgpDQo+ID4gPiA+ID4gdGhl cmUgYWxzbyBpdCBlbmFibGVzIHBzci4NCj4gPiA+ID4gDQo+ID4gPiA+IEkgbW92ZWQgaXQgcHJp bWFyaWx5IGJlY2F1c2Ugb24gaW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQoKSB3ZQ0KPiA+ID4gPiBo YXZlDQo+ID4gPiA+IHRoZQ0KPiA+ID4gPiB0cmFuc2NvZGVyIHRoYXQgd2lsbCBiZSB1c2VkLCBk b2luZyBvbiBpbml0IHdlIHdvdWxkIG5lZWQgdG8NCj4gPiA+ID4gY2hlY2sNCj4gPiA+ID4gZm9y DQo+ID4gPiA+IGFsbCB0cmFuc2NvZGVycyBhbmQgaW4gY2FzZSBvZiBhIGVycm9yIHNldCBpbiBv bmUgdHJhbnNjb2RlciB3ZQ0KPiA+ID4gPiB3b3VsZA0KPiA+ID4gPiBuZWVkIHRvIGZhaWwgaW5p dGlhbGl6YXRpb24gYXMgUFNSIGNvdWxkIGJlIGVuYWJsZWQgb24gdGhhdA0KPiA+ID4gPiB0cmFu c2NvZGVyLg0KPiA+ID4gVGhhdCBpcyBjb3JyZWN0LCBidXQgd2l0aCB0aGlzIEVEUF9QU1JfSUlS IGVycm9yIGlzIGdldHRpbmcNCj4gPiA+IGNoZWNrZWQNCj4gPiA+IGluDQo+ID4gPiBldmVyeSBt b2Rlc2V0L2Zhc3RzZXQgd2hpY2ggaXMgcmVkdW5kYW50LCBhcyBpdCBpcyBhbHJlYWR5IGJlaW5n DQo+ID4gPiBjaGVjaw0KPiA+ID4gYXQgaW50ZXJydXB0IGhhbmRsZXIuDQo+ID4gPiBJTU8gaXQg c2hvdWxkIGJlIG9ubHkgY2hlY2tlZCBzb21laG93IGF0IGluaXRlbF9wc3JfaW5pdCgpLCBldmVu DQo+ID4gPiBjb21tZW50DQo+ID4gPiBhbHNvIHJlZmxlY3Qgc2FtZSB0aGluZyAoIklmIGEgUFNS IGVycm9yIGhhcHBlbmVkIGFuZCB0aGUgZHJpdmVyDQo+ID4gPiBpcw0KPiA+ID4gcmVsb2FkZWQu Li4iKS4NCj4gPiA+IElmIHRoZXJlIG5vIG90aGVyIHdheSB0byBoYW5kbGUgdGhpcywgY29tbWVu dCBzaG91bGQgYmUgY2hhbmdlDQo+ID4gPiBhY2NvcmRpbmdseS4NCj4gPiANCj4gPiBPbmx5IG9u IGZ1bGwgbW9kZXNldHMsIG9uIHJlYWwgd29ybGQgaXQgd2lsbCBoYXBwZW4gb25seSBvbmNlIGF0 DQo+ID4gZXZlcnkNCj4gQUZBSVUgaW50ZWxfcHNyX3VwZGF0ZSgpIG1heSBhbHNvIGNhbGwgaW50 ZWxfcHNyX2VuYWJsZV9sb2NrZWQoKSwNCj4gd2hpY2ggDQo+IG1lYW5zIGV2ZW4gb24gZmFzdHNl dCB0aGlzIHRoaXMgd2lsbCBnZXQgY2hlY2tlZCA/DQoNClllcyBidXQgaW4gOTklIG9mIHRoZSB0 aW1lcyBpdCB3aWxsIGZhbGwgaW50byB0aGUgY2FzZSB3ZXJlIFBTUiB3YXMNCmVuYWJsZWQgYW5k IHRoZSBtb2Rlc2V0IHN0aWxsIGFsbG93cyBQU1IsIHNvIGl0IHdpbGwgZG8gbm90aGluZy4NCg0K DQo+ID4gYm9vdCBhbHNvIHJlYWQgYSByZWdpc3RlciBpcyBub3QgYSBleHBlbnNpdmUgb3BlcmF0 aW9uLg0KPiA+IA0KPiA+IEkgd2lsbCBtZXJnZSB0aGlzIGFzIGl0IGlzLCBpZiBzb21lb25lIGVs c2UgYWxzbyB0aGlua3MgdGhhdCB0aGUNCj4gPiBjb21tZW50IGlzIG5lY2Vzc2FyeSBJIHdpbGwg YWRkIG9uIHRvcC4NCj4gPiANCj4gPiANCj4gPiA+ID4gTm8gbmVlZCB0byBkbyB0aGF0IG9uIGlu dGVsX3Bzcl9mbHVzaCgpIGJlY2F1c2UgUFNSDQo+ID4gPiA+IGludGVycnVwdGlvbnMNCj4gPiA+ ID4gY2FuDQo+ID4gPiA+IGJlIHRyaWdnZXJlZCBldmVuIHdpdGggUFNSIGluYWN0aXZlLg0KPiA+ ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+ID4gPiAgICAJLyogU2V0IGxpbmtfc3RhbmRieSB4IGxp bmtfb2ZmIGRlZmF1bHRzICovDQo+ID4gPiA+ID4gPiAgICAJaWYgKElTX0hBU1dFTEwoZGV2X3By aXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpDQo+ID4gPiA+ID4gPiAgICAJCS8qIEhTVyBh bmQgQkRXIHJlcXVpcmUgd29ya2Fyb3VuZHMgdGhhdCB3ZQ0KPiA+ID4gPiA+ID4gZG9uJ3QNCj4g PiA+ID4gPiA+IGltcGxlbWVudC4gKi8NCj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndnQvaGFuZGxlcnMuYw0KPiA+ID4gPiA+ID4gYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndnQvaGFuZGxlcnMuYw0KPiA+ID4gPiA+ID4gaW5kZXggMjVmNzgxOTZiOTY0Li40 NWE5MTI0ZTUzYjYgMTAwNjQ0DQo+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndnQvaGFuZGxlcnMuYw0KPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3Z0L2hhbmRsZXJzLmMNCj4gPiA+ID4gPiA+IEBAIC0yNzk2LDcgKzI3OTYsNyBAQCBzdGF0aWMg aW50DQo+ID4gPiA+ID4gPiBpbml0X2Jyb2Fkd2VsbF9tbWlvX2luZm8oc3RydWN0DQo+ID4gPiA+ ID4gPiBpbnRlbF9ndnQgKmd2dCkNCj4gPiA+ID4gPiA+ICAgIAlNTUlPX0QoQ0hJQ0tFTl9QSVBF U0xfMShQSVBFX0MpLCBEX0JEV19QTFVTKTsNCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4g ICAgCU1NSU9fRChXTV9NSVNDLCBEX0JEVyk7DQo+ID4gPiA+ID4gPiAtCU1NSU9fRChfTU1JTyhC RFdfRURQX1BTUl9CQVNFKSwgRF9CRFcpOw0KPiA+ID4gPiA+ID4gKwlNTUlPX0QoX01NSU8oX1NS RF9DVExfRURQKSwgRF9CRFcpOw0KPiA+ID4gPiA+ID4gICAgDQo+ID4gPiA+ID4gPiAgICAJTU1J T19EKF9NTUlPKDB4NjY3MWMpLCBEX0JEV19QTFVTKTsNCj4gPiA+ID4gPiA+ICAgIAlNTUlPX0Qo X01NSU8oMHg2NmMwMCksIERfQkRXX1BMVVMpOw0KPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jDQo+ID4gPiA+ID4gPiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jDQo+ID4gPiA+ID4gPiBpbmRleCBiMzkyMjZkN2Y4 ZDIuLjZlNDgyNGRhYWZhZSAxMDA2NDQNCj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jDQo+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYw0KPiA+ID4gPiA+ID4gQEAgLTIxMzIsNyArMjEzMiw3IEBAIHBz cl9zb3VyY2Vfc3RhdHVzKHN0cnVjdA0KPiA+ID4gPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZQ0KPiA+ ID4gPiA+ID4gKmRldl9wcml2LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pDQo+ID4gPiA+ID4gPiAgICAJ CQkiQlVGX09OIiwNCj4gPiA+ID4gPiA+ICAgIAkJCSJUR19PTiINCj4gPiA+ID4gPiA+ICAgIAkJ fTsNCj4gPiA+ID4gPiA+IC0JCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSMl9TVEFUVVMpOw0KPiA+ ID4gPiA+ID4gKwkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1IyX1NUQVRVUyhkZXZfcHJpdi0NCj4g PiA+ID4gPiA+ID4gcHNyLnRyYW5zY29kZXIpKTsNCj4gPiA+ID4gPiA+ICAgIAkJc3RhdHVzX3Zh bCA9ICh2YWwgJiBFRFBfUFNSMl9TVEFUVVNfU1RBVEVfTUFTSykNCj4gPiA+ID4gPiA+ICAgIAkJ CSAgICAgIEVEUF9QU1IyX1NUQVRVU19TVEFURV9TSElGVDsNCj4gPiA+ID4gPiA+ICAgIAkJaWYg KHN0YXR1c192YWwgPCBBUlJBWV9TSVpFKGxpdmVfc3RhdHVzKSkNCj4gPiA+ID4gPiA+IEBAIC0y MTQ4LDcgKzIxNDgsNyBAQCBwc3Jfc291cmNlX3N0YXR1cyhzdHJ1Y3QNCj4gPiA+ID4gPiA+IGRy bV9pOTE1X3ByaXZhdGUNCj4gPiA+ID4gPiA+ICpkZXZfcHJpdiwgc3RydWN0IHNlcV9maWxlICpt KQ0KPiA+ID4gPiA+ID4gICAgCQkJIlNSRE9GRkFDSyIsDQo+ID4gPiA+ID4gPiAgICAJCQkiU1JE RU5UX09OIiwNCj4gPiA+ID4gPiA+ICAgIAkJfTsNCj4gPiA+ID4gPiA+IC0JCXZhbCA9IEk5MTVf UkVBRChFRFBfUFNSX1NUQVRVUyk7DQo+ID4gPiA+ID4gPiArCQl2YWwgPSBJOTE1X1JFQUQoRURQ X1BTUl9TVEFUVVMoZGV2X3ByaXYtDQo+ID4gPiA+ID4gPiA+IHBzci50cmFuc2NvZGVyKSk7DQo+ ID4gPiA+ID4gPiAgICAJCXN0YXR1c192YWwgPSAodmFsICYgRURQX1BTUl9TVEFUVVNfU1RBVEVf TUFTSykNCj4gPiA+ID4gPiA+ICAgIAkJCSAgICAgIEVEUF9QU1JfU1RBVFVTX1NUQVRFX1NISUZU Ow0KPiA+ID4gPiA+ID4gICAgCQlpZiAoc3RhdHVzX3ZhbCA8IEFSUkFZX1NJWkUobGl2ZV9zdGF0 dXMpKQ0KPiA+ID4gPiA+ID4gQEAgLTIxOTEsMTAgKzIxOTEsMTAgQEAgc3RhdGljIGludA0KPiA+ ID4gPiA+ID4gaTkxNV9lZHBfcHNyX3N0YXR1cyhzdHJ1Y3QNCj4gPiA+ID4gPiA+IHNlcV9maWxl ICptLCB2b2lkICpkYXRhKQ0KPiA+ID4gPiA+ID4gICAgCQlnb3RvIHVubG9jazsNCj4gPiA+ID4g PiA+ICAgIA0KPiA+ID4gPiA+ID4gICAgCWlmIChwc3ItPnBzcjJfZW5hYmxlZCkgew0KPiA+ID4g PiA+ID4gLQkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1IyX0NUTCk7DQo+ID4gPiA+ID4gPiArCQl2 YWwgPSBJOTE1X1JFQUQoRURQX1BTUjJfQ1RMKGRldl9wcml2LQ0KPiA+ID4gPiA+ID4gPiBwc3Iu dHJhbnNjb2RlcikpOw0KPiA+ID4gPiA+ID4gICAgCQllbmFibGVkID0gdmFsICYgRURQX1BTUjJf RU5BQkxFOw0KPiA+ID4gPiA+ID4gICAgCX0gZWxzZSB7DQo+ID4gPiA+ID4gPiAtCQl2YWwgPSBJ OTE1X1JFQUQoRURQX1BTUl9DVEwpOw0KPiA+ID4gPiA+ID4gKwkJdmFsID0gSTkxNV9SRUFEKEVE UF9QU1JfQ1RMKGRldl9wcml2LQ0KPiA+ID4gPiA+ID4gPiBwc3IudHJhbnNjb2RlcikpOw0KPiA+ ID4gPiA+ID4gICAgCQllbmFibGVkID0gdmFsICYgRURQX1BTUl9FTkFCTEU7DQo+ID4gPiA+ID4g PiAgICAJfQ0KPiA+ID4gPiA+ID4gICAgCXNlcV9wcmludGYobSwgIlNvdXJjZSBQU1IgY3RsOiAl cyBbMHglMDh4XVxuIiwNCj4gPiA+ID4gPiA+IEBAIC0yMjA3LDcgKzIyMDcsOCBAQCBzdGF0aWMg aW50IGk5MTVfZWRwX3Bzcl9zdGF0dXMoc3RydWN0DQo+ID4gPiA+ID4gPiBzZXFfZmlsZSAqbSwg dm9pZCAqZGF0YSkNCj4gPiA+ID4gPiA+ICAgIAkgKiBTS0wrIFBlcmYgY291bnRlciBpcyByZXNl dCB0byAwIGV2ZXJ5dGltZSBEQyBzdGF0ZQ0KPiA+ID4gPiA+ID4gaXMNCj4gPiA+ID4gPiA+IGVu dGVyZWQNCj4gPiA+ID4gPiA+ICAgIAkgKi8NCj4gPiA+ID4gPiA+ICAgIAlpZiAoSVNfSEFTV0VM TChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkgew0KPiA+ID4gPiA+ID4gLQkJ dmFsID0gSTkxNV9SRUFEKEVEUF9QU1JfUEVSRl9DTlQpICYNCj4gPiA+ID4gPiA+IEVEUF9QU1Jf UEVSRl9DTlRfTUFTSzsNCj4gPiA+ID4gPiA+ICsJCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX1BF UkZfQ05UKGRldl9wcml2LQ0KPiA+ID4gPiA+ID4gPiBwc3IudHJhbnNjb2RlcikpOw0KPiA+ID4g PiA+ID4gKwkJdmFsICY9IEVEUF9QU1JfUEVSRl9DTlRfTUFTSzsNCj4gPiA+ID4gPiA+ICAgIAkJ c2VxX3ByaW50ZihtLCAiUGVyZm9ybWFuY2UgY291bnRlcjogJXVcbiIsDQo+ID4gPiA+ID4gPiB2 YWwpOw0KPiA+ID4gPiA+ID4gICAgCX0NCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4gQEAg LTIyMjUsOCArMjIyNiwxMSBAQCBzdGF0aWMgaW50DQo+ID4gPiA+ID4gPiBpOTE1X2VkcF9wc3Jf c3RhdHVzKHN0cnVjdA0KPiA+ID4gPiA+ID4gc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpDQo+ID4g PiA+ID4gPiAgICAJCSAqIFJlYWRpbmcgYWxsIDMgcmVnaXN0ZXJzIGJlZm9yZSBoYW5kIHRvDQo+ ID4gPiA+ID4gPiBtaW5pbWl6ZQ0KPiA+ID4gPiA+ID4gY3Jvc3NpbmcgYQ0KPiA+ID4gPiA+ID4g ICAgCQkgKiBmcmFtZSBib3VuZGFyeSBiZXR3ZWVuIHJlZ2lzdGVyIHJlYWRzDQo+ID4gPiA+ID4g PiAgICAJCSAqLw0KPiA+ID4gPiA+ID4gLQkJZm9yIChmcmFtZSA9IDA7IGZyYW1lIDwgUFNSMl9T VV9TVEFUVVNfRlJBTUVTOw0KPiA+ID4gPiA+ID4gZnJhbWUgKz0NCj4gPiA+ID4gPiA+IDMpDQo+ ID4gPiA+ID4gPiAtCQkJc3VfZnJhbWVzX3ZhbFtmcmFtZSAvIDNdID0NCj4gPiA+ID4gPiA+IEk5 MTVfUkVBRChQU1IyX1NVX1NUQVRVUyhmcmFtZSkpOw0KPiA+ID4gPiA+ID4gKwkJZm9yIChmcmFt ZSA9IDA7IGZyYW1lIDwgUFNSMl9TVV9TVEFUVVNfRlJBTUVTOw0KPiA+ID4gPiA+ID4gZnJhbWUg Kz0NCj4gPiA+ID4gPiA+IDMpIHsNCj4gPiA+ID4gPiA+ICsJCQl2YWwgPQ0KPiA+ID4gPiA+ID4g STkxNV9SRUFEKFBTUjJfU1VfU1RBVFVTKGRldl9wcml2LQ0KPiA+ID4gPiA+ID4gPiBwc3IudHJh bnNjb2RlciwNCj4gPiA+ID4gPiA+ICsJCQkJCQkgICAgICAgZnJhbWUpKTsNCj4gPiA+ID4gPiA+ ICsJCQlzdV9mcmFtZXNfdmFsW2ZyYW1lIC8gM10gPSB2YWw7DQo+ID4gPiA+ID4gPiArCQl9DQo+ ID4gPiA+ID4gPiAgICANCj4gPiA+ID4gPiA+ICAgIAkJc2VxX3B1dHMobSwgIkZyYW1lOlx0UFNS MiBTVSBibG9ja3M6XG4iKTsNCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gPiA+ID4gPiA+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+ID4gPiA+ID4gaW5kZXggZWIzMWMxNjU2Y2Vh Li5iZTk5OTc5MWFiY2EgMTAwNjQ0DQo+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oDQo+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oDQo+ID4gPiA+ID4gPiBAQCAtNDc5LDYgKzQ3OSw3IEBAIHN0cnVjdCBpOTE1X3Bz ciB7DQo+ID4gPiA+ID4gPiAgICAJYm9vbCBlbmFibGVkOw0KPiA+ID4gPiA+ID4gICAgCXN0cnVj dCBpbnRlbF9kcCAqZHA7DQo+ID4gPiA+ID4gPiAgICAJZW51bSBwaXBlIHBpcGU7DQo+ID4gPiA+ ID4gPiArCWVudW0gdHJhbnNjb2RlciB0cmFuc2NvZGVyOw0KPiA+ID4gPiA+ID4gICAgCWJvb2wg YWN0aXZlOw0KPiA+ID4gPiA+ID4gICAgCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOw0KPiA+ID4g PiA+ID4gICAgCXVuc2lnbmVkIGJ1c3lfZnJvbnRidWZmZXJfYml0czsNCj4gPiA+ID4gPiA+IEBA IC0xMzMwLDExICsxMzMxLDExIEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsNCj4gPiA+ID4g PiA+ICAgIAkgKi8NCj4gPiA+ID4gPiA+ICAgIAl1MzIgZ3Bpb19tbWlvX2Jhc2U7DQo+ID4gPiA+ ID4gPiAgICANCj4gPiA+ID4gPiA+ICsJdTMyIGhzd19wc3JfbW1pb19hZGp1c3Q7DQo+ID4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gPiAgICAJLyogTU1JTyBiYXNlIGFkZHJlc3MgZm9yIE1JUEkgcmVn cyAqLw0KPiA+ID4gPiA+ID4gICAgCXUzMiBtaXBpX21taW9fYmFzZTsNCj4gPiA+ID4gPiA+ICAg IA0KPiA+ID4gPiA+ID4gLQl1MzIgcHNyX21taW9fYmFzZTsNCj4gPiA+ID4gPiA+IC0NCj4gPiA+ ID4gPiA+ICAgIAl1MzIgcHBzX21taW9fYmFzZTsNCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ ID4gICAgCXdhaXRfcXVldWVfaGVhZF90IGdtYnVzX3dhaXRfcXVldWU7DQo+ID4gPiA+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaA0KPiA+ID4gPiA+ID4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oDQo+ID4gPiA+ID4gPiBpbmRleCAyYWJk MTk5MDkzYzUuLmEwOTJiMzRjMjY5ZCAxMDA2NDQNCj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgNCj4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmgNCj4gPiA+ID4gPiA+IEBAIC00MTg2LDEwICs0MTg2LDE3IEBAIGVu dW0gew0KPiA+ID4gPiA+ID4gICAgI2RlZmluZSBQSVBFU1JDKHRyYW5zKQkJX01NSU9fVFJBTlMy KHRyYW5zLA0KPiA+ID4gPiA+ID4gX1BJUEVBU1JDKQ0KPiA+ID4gPiA+ID4gICAgI2RlZmluZSBQ SVBFX01VTFQodHJhbnMpCV9NTUlPX1RSQU5TMih0cmFucywNCj4gPiA+ID4gPiA+IF9QSVBFX01V TFRfQSkNCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4gLS8qIEhTVysgZURQIFBTUiByZWdp c3RlcnMgKi8NCj4gPiA+ID4gPiA+IC0jZGVmaW5lIEhTV19FRFBfUFNSX0JBU0UJMHg2NDgwMA0K PiA+ID4gPiA+ID4gLSNkZWZpbmUgQkRXX0VEUF9QU1JfQkFTRQkweDZmODAwDQo+ID4gPiA+ID4g PiAtI2RlZmluZSBFRFBfUFNSX0NUTAkJCQlfTU1JTyhkDQo+ID4gPiA+ID4gPiBldl9wcml2LQ0K PiA+ID4gPiA+ID4gPiBwc3JfbW1pb19iYXNlICsgMCkNCj4gPiA+ID4gPiA+ICsvKg0KPiA+ID4g PiA+ID4gKyAqIEhTVysgZURQIFBTUiByZWdpc3RlcnMNCj4gPiA+ID4gPiA+ICsgKg0KPiA+ID4g PiA+ID4gKyAqIEhTVyBQU1IgcmVnaXN0ZXJzIGFyZSByZWxhdGl2ZSB0byBERElBKF9ERElfQlVG X0NUTF9BICsNCj4gPiA+ID4gPiA+IDB4ODAwKQ0KPiA+ID4gPiA+ID4gd2l0aCBqdXN0IG9uZQ0K PiA+ID4gPiA+ID4gKyAqIGluc3RhbmNlIG9mIGl0DQo+ID4gPiA+ID4gPiArICovDQo+ID4gPiA+ ID4gPiArI2RlZmluZSBfSFNXX0VEUF9QU1JfQkFTRQkJCTB4NjQ4MDANCj4gPiA+ID4gPiA+ICsj ZGVmaW5lIF9TUkRfQ1RMX0EJCQkJMHg2MDgwMA0KPiA+ID4gPiA+ID4gKyNkZWZpbmUgX1NSRF9D VExfRURQCQkJCTB4NmY4MDANCj4gPiA+ID4gPiA+ICsjZGVmaW5lIF9QU1JfQURKKHRyYW4sIHJl ZykJCQkoX1RSQU5TDQo+ID4gPiA+ID4gPiAyKHRyYW4sDQo+ID4gPiA+ID4gPiByZWcpIC0gZGV2 X3ByaXYtPmhzd19wc3JfbW1pb19hZGp1c3QpDQo+ID4gPiA+ID4gPiArI2RlZmluZSBFRFBfUFNS X0NUTCh0cmFuKQkJCV9NTUlPKF9QU1JfQURKKA0KPiA+ID4gPiA+ID4gdHJhbiwNCj4gPiA+ID4g PiA+IF9TUkRfQ1RMX0EpKQ0KPiA+ID4gPiA+ID4gICAgI2RlZmluZSAgIEVEUF9QU1JfRU5BQkxF CQkJKDEgPDwgMzEpDQo+ID4gPiA+ID4gPiAgICAjZGVmaW5lICAgQkRXX1BTUl9TSU5HTEVfRlJB TUUJCQkoMSA8PA0KPiA+ID4gPiA+ID4gMzApDQo+ID4gPiA+ID4gPiAgICAjZGVmaW5lICAgRURQ X1BTUl9SRVNUT1JFX1BTUl9BQ1RJVkVfQ1RYX01BU0sJKDEgPDwNCj4gPiA+ID4gPiA+IDI5KSAv KiBTVw0KPiA+ID4gPiA+ID4gY2FuJ3QgbW9kaWZ5ICovDQo+ID4gPiA+ID4gPiBAQCAtNDIyNiwx NiArNDIzMywyMiBAQCBlbnVtIHsNCj4gPiA+ID4gPiA+ICAgICNkZWZpbmUgICBFRFBfUFNSX1RS QU5TQ09ERVJfQV9TSElGVAkJOA0KPiA+ID4gPiA+ID4gICAgI2RlZmluZSAgIEVEUF9QU1JfVFJB TlNDT0RFUl9FRFBfU0hJRlQJCTANCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4gLSNkZWZp bmUgRURQX1BTUl9BVVhfQ1RMCQkJCV9NTUlPKGQNCj4gPiA+ID4gPiA+IGV2X3ByaXYtDQo+ID4g PiA+ID4gPiA+IHBzcl9tbWlvX2Jhc2UgKyAweDEwKQ0KPiA+ID4gPiA+ID4gKyNkZWZpbmUgX1NS RF9BVVhfQ1RMX0EJCQkJMHg2MDgxMA0KPiA+ID4gPiA+ID4gKyNkZWZpbmUgX1NSRF9BVVhfQ1RM X0VEUAkJCTB4NmY4MTANCj4gPiA+ID4gPiA+ICsjZGVmaW5lIEVEUF9QU1JfQVVYX0NUTCh0cmFu KQkJCV9NTUlPKF8NCj4gPiA+ID4gPiA+IFBTUl9BREooDQo+ID4gPiA+ID4gPiB0cmFuLCBfU1JE X0FVWF9DVExfQSkpDQo+ID4gPiA+ID4gPiAgICAjZGVmaW5lICAgRURQX1BTUl9BVVhfQ1RMX1RJ TUVfT1VUX01BU0sJCSgzIDw8DQo+ID4gPiA+ID4gPiAyNikNCj4gPiA+ID4gPiA+ICAgICNkZWZp bmUgICBFRFBfUFNSX0FVWF9DVExfTUVTU0FHRV9TSVpFX01BU0sJKDB4MWYNCj4gPiA+ID4gPiA+ IDw8IDIwKQ0KPiA+ID4gPiA+ID4gICAgI2RlZmluZSAgIEVEUF9QU1JfQVVYX0NUTF9QUkVDSEFS R0VfMlVTX01BU0sJKDB4ZiA8PA0KPiA+ID4gPiA+ID4gMTYpDQo+ID4gPiA+ID4gPiAgICAjZGVm aW5lICAgRURQX1BTUl9BVVhfQ1RMX0VSUk9SX0lOVEVSUlVQVAkoMSA8PA0KPiA+ID4gPiA+ID4g MTEpDQo+ID4gPiA+ID4gPiAgICAjZGVmaW5lICAgRURQX1BTUl9BVVhfQ1RMX0JJVF9DTE9DS18y WF9NQVNLCSgweDdmZikNCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4gLSNkZWZpbmUgRURQ X1BTUl9BVVhfREFUQShpKQkJCV9NTUlPKGQNCj4gPiA+ID4gPiA+IGV2X3ByaXYtDQo+ID4gPiA+ ID4gPiA+IHBzcl9tbWlvX2Jhc2UgKyAweDE0ICsgKGkpICogNCkgLyogNSByZWdpc3RlcnMgKi8N Cj4gPiA+ID4gPiA+ICsjZGVmaW5lIF9TUkRfQVVYX0RBVEFfQQkJCQkweDYwODE0DQo+ID4gPiA+ ID4gPiArI2RlZmluZSBfU1JEX0FVWF9EQVRBX0VEUAkJCTB4NmY4MTQNCj4gPiA+ID4gPiA+ICsj ZGVmaW5lIEVEUF9QU1JfQVVYX0RBVEEodHJhbiwgaSkJCV9NTUlPKF9QU1JfQURKKA0KPiA+ID4g PiA+ID4gdHJhbiwNCj4gPiA+ID4gPiA+IF9TUkRfQVVYX0RBVEFfQSkgKyAoaSkgKyA0KSAvKiA1 IHJlZ2lzdGVycyAqLw0KPiA+ID4gPiA+ID4gICAgDQo+ID4gPiA+ID4gPiAtI2RlZmluZSBFRFBf UFNSX1NUQVRVUwkJCQlfTU1JTyhkDQo+ID4gPiA+ID4gPiBldl9wcml2LQ0KPiA+ID4gPiA+ID4g PiBwc3JfbW1pb19iYXNlICsgMHg0MCkNCj4gPiA+ID4gPiA+ICsjZGVmaW5lIF9TUkRfU1RBVFVT X0EJCQkJMHg2MDg0MA0KPiA+ID4gPiA+ID4gKyNkZWZpbmUgX1NSRF9TVEFUVVNfRURQCQkJCTB4 NmY4NDANCj4gPiA+ID4gPiA+ICsjZGVmaW5lIEVEUF9QU1JfU1RBVFVTKHRyYW4pCQkJX01NSU8o Xw0KPiA+ID4gPiA+ID4gUFNSX0FESigNCj4gPiA+ID4gPiA+IHRyYW4sIF9TUkRfU1RBVFVTX0Ep KQ0KPiA+ID4gPiA+ID4gICAgI2RlZmluZSAgIEVEUF9QU1JfU1RBVFVTX1NUQVRFX01BU0sJCSg3 IDw8DQo+ID4gPiA+ID4gPiAyOSkNCj4gPiA+ID4gPiA+ICAgICNkZWZpbmUgICBFRFBfUFNSX1NU QVRVU19TVEFURV9TSElGVAkJMjkNCj4gPiA+ID4gPiA+ICAgICNkZWZpbmUgICBFRFBfUFNSX1NU QVRVU19TVEFURV9JRExFCQkoMCA8PA0KPiA+ID4gPiA+ID4gMjkpDQo+ID4gPiA+ID4gPiBAQCAt NDI2MCwxMCArNDI3MywxNSBAQCBlbnVtIHsNCj4gPiA+ID4gPiA+ICAgICNkZWZpbmUgICBFRFBf UFNSX1NUQVRVU19TRU5ESU5HX1RQMQkJKDEgPDwNCj4gPiA+ID4gPiA+IDQpDQo+ID4gPiA+ID4g PiAgICAjZGVmaW5lICAgRURQX1BTUl9TVEFUVVNfSURMRV9NQVNLCQkweGYNCj4gPiA+ID4gPiA+ ICAgIA0KPiA+ID4gPiA+ID4gLSNkZWZpbmUgRURQX1BTUl9QRVJGX0NOVAkJX01NSU8oZGV2X3By aXYtDQo+ID4gPiA+ID4gPiA+IHBzcl9tbWlvX2Jhc2UgKw0KPiA+ID4gPiA+ID4gMHg0NCkNCj4g PiA+ID4gPiA+ICsjZGVmaW5lIF9TUkRfUEVSRl9DTlRfQQkJCTB4NjA4NDQNCj4gPiA+ID4gPiA+ ICsjZGVmaW5lIF9TUkRfUEVSRl9DTlRfRURQCQkweDZmODQ0DQo+ID4gPiA+ID4gPiArI2RlZmlu ZSBFRFBfUFNSX1BFUkZfQ05UKHRyYW4pCQlfTU1JTyhfUFNSX0FESigNCj4gPiA+ID4gPiA+IHRy YW4sDQo+ID4gPiA+ID4gPiBfU1JEX1BFUkZfQ05UX0EpKQ0KPiA+ID4gPiA+ID4gICAgI2RlZmlu ZSAgIEVEUF9QU1JfUEVSRl9DTlRfTUFTSwkJMHhmZmZmZmYNCj4gPiA+ID4gPiA+ICAgIA0KPiA+ ID4gPiA+ID4gLSNkZWZpbmUgRURQX1BTUl9ERUJVRwkJCQlfTU1JTyhkDQo+ID4gPiA+ID4gPiBl dl9wcml2LQ0KPiA+ID4gPiA+ID4gPiBwc3JfbW1pb19iYXNlICsgMHg2MCkgLyogUFNSX01BU0sg b24gU0tMKyAqLw0KPiA+ID4gPiA+ID4gKy8qIFBTUl9NQVNLIG9uIFNLTCsgKi8NCj4gPiA+ID4g PiA+ICsjZGVmaW5lIF9TUkRfREVCVUdfQQkJCQkweDYwODYwDQo+ID4gPiA+ID4gPiArI2RlZmlu ZSBfU1JEX0RFQlVHX0VEUAkJCQkweDZmODYwDQo+ID4gPiA+ID4gPiArI2RlZmluZSBFRFBfUFNS X0RFQlVHKHRyYW4pCQkJX01NSU8oXw0KPiA+ID4gPiA+ID4gUFNSX0FESigNCj4gPiA+ID4gPiA+ IHRyYW4sIF9TUkRfREVCVUdfQSkpDQo+ID4gPiA+ID4gPiAgICAjZGVmaW5lICAgRURQX1BTUl9E RUJVR19NQVNLX01BWF9TTEVFUCAgICAgICAgICgxIDw8IDI4KQ0KPiA+ID4gPiA+ID4gICAgI2Rl ZmluZSAgIEVEUF9QU1JfREVCVUdfTUFTS19MUFNQICAgICAgICAgICAgICAoMSA8PCAyNykNCj4g PiA+ID4gPiA+ICAgICNkZWZpbmUgICBFRFBfUFNSX0RFQlVHX01BU0tfTUVNVVAgICAgICAgICAg ICAgKDEgPDwgMjYpDQo+ID4gPiA+ID4gPiBAQCAtNDI3MSw3ICs0Mjg5LDkgQEAgZW51bSB7DQo+ ID4gPiA+ID4gPiAgICAjZGVmaW5lICAgRURQX1BTUl9ERUJVR19NQVNLX0RJU1BfUkVHX1dSSVRF ICAgICgxIDw8IDE2KQ0KPiA+ID4gPiA+ID4gLyoNCj4gPiA+ID4gPiA+IFJlc2VydmVkIGluIElD TCsgKi8NCj4gPiA+ID4gPiA+ICAgICNkZWZpbmUgICBFRFBfUFNSX0RFQlVHX0VYSVRfT05fUElY RUxfVU5ERVJSVU4gKDEgPDwgMTUpDQo+ID4gPiA+ID4gPiAvKg0KPiA+ID4gPiA+ID4gU0tMKw0K PiA+ID4gPiA+ID4gKi8NCj4gPiA+ID4gPiA+ICAgIA0KPiA+ID4gPiA+ID4gLSNkZWZpbmUgRURQ X1BTUjJfQ1RMCQkJX01NSU8oMHg2ZjkwMCkNCj4gPiA+ID4gPiA+ICsjZGVmaW5lIF9QU1IyX0NU TF9BCQkJMHg2MDkwMA0KPiA+ID4gPiA+ID4gKyNkZWZpbmUgX1BTUjJfQ1RMX0VEUAkJCTB4NmY5 MDANCj4gPiA+ID4gPiA+ICsjZGVmaW5lIEVEUF9QU1IyX0NUTCh0cmFuKQkJX01NSU9fVFJBTlMy KHRyYW4sDQo+ID4gPiA+ID4gPiBfUFNSMl9DVExfQSkNCj4gPiA+ID4gPiA+ICAgICNkZWZpbmUg ICBFRFBfUFNSMl9FTkFCTEUJCSgxIDw8IDMxKQ0KPiA+ID4gPiA+ID4gICAgI2RlZmluZSAgIEVE UF9TVV9UUkFDS19FTkFCTEUJCSgxIDw8IDMwKQ0KPiA+ID4gPiA+ID4gICAgI2RlZmluZSAgIEVE UF9ZX0NPT1JESU5BVEVfVkFMSUQJKDEgPDwgMjYpIC8qIEdMSyBhbmQNCj4gPiA+ID4gPiA+IENO TCsgKi8NCj4gPiA+ID4gPiA+IEBAIC00MjkzLDggKzQzMTMsOCBAQCBlbnVtIHsNCj4gPiA+ID4g PiA+ICAgICNkZWZpbmUgX1BTUl9FVkVOVF9UUkFOU19CCQkJMHg2MTg0OA0KPiA+ID4gPiA+ID4g ICAgI2RlZmluZSBfUFNSX0VWRU5UX1RSQU5TX0MJCQkweDYyODQ4DQo+ID4gPiA+ID4gPiAgICAj ZGVmaW5lIF9QU1JfRVZFTlRfVFJBTlNfRAkJCTB4NjM4NDgNCj4gPiA+ID4gPiA+IC0jZGVmaW5l IF9QU1JfRVZFTlRfVFJBTlNfRURQCQkJMHg2Rjg0OA0KPiA+ID4gPiA+ID4gLSNkZWZpbmUgUFNS X0VWRU5UKHRyYW5zKQkJCV9NTUlPX1RSQU5TMih0cg0KPiA+ID4gPiA+ID4gYW5zLA0KPiA+ID4g PiA+ID4gX1BTUl9FVkVOVF9UUkFOU19BKQ0KPiA+ID4gPiA+ID4gKyNkZWZpbmUgX1BTUl9FVkVO VF9UUkFOU19FRFAJCQkweDZmODQ4DQo+ID4gPiA+ID4gPiArI2RlZmluZSBQU1JfRVZFTlQodHJh bikJCQkJX01NSU9fVA0KPiA+ID4gPiA+ID4gUkFOUzIodHINCj4gPiA+ID4gPiA+IGFuLCBfUFNS X0VWRU5UX1RSQU5TX0EpDQo+ID4gPiA+ID4gPiAgICAjZGVmaW5lICBQU1JfRVZFTlRfUFNSMl9X RF9USU1FUl9FWFBJUkUJCSgxIDw8DQo+ID4gPiA+ID4gPiAxNykNCj4gPiA+ID4gPiA+ICAgICNk ZWZpbmUgIFBTUl9FVkVOVF9QU1IyX0RJU0FCTEVECQkoMSA8PCAxNikNCj4gPiA+ID4gPiA+ICAg ICNkZWZpbmUgIFBTUl9FVkVOVF9TVV9ESVJUWV9GSUZPX1VOREVSUlVOCSgxIDw8DQo+ID4gPiA+ ID4gPiAxNSkNCj4gPiA+ID4gPiA+IEBAIC00MzEyLDE1ICs0MzMyLDE2IEBAIGVudW0gew0KPiA+ ID4gPiA+ID4gICAgI2RlZmluZSAgUFNSX0VWRU5UX0xQU1BfTU9ERV9FWElUCQkoMSA8PA0KPiA+ ID4gPiA+ID4gMSkNCj4gPiA+ID4gPiA+ICAgICNkZWZpbmUgIFBTUl9FVkVOVF9QU1JfRElTQUJM RQkJCSgxIDw8DQo+ID4gPiA+ID4gPiAwKQ0KPiA+ID4gPiA+ID4gICAgDQo+ID4gPiA+ID4gPiAt I2RlZmluZSBFRFBfUFNSMl9TVEFUVVMJCQlfTU1JTygweDZmOTQwKQ0KPiA+ID4gPiA+ID4gKyNk ZWZpbmUgX1BTUjJfU1RBVFVTX0EJCQkweDYwOTQwDQo+ID4gPiA+ID4gPiArI2RlZmluZSBfUFNS Ml9TVEFUVVNfRURQCQkweDZmOTQwDQo+ID4gPiA+ID4gPiArI2RlZmluZSBFRFBfUFNSMl9TVEFU VVModHJhbikJCV9NTUlPX1RSQU5TMih0cg0KPiA+ID4gPiA+ID4gYW4sDQo+ID4gPiA+ID4gPiBf UFNSMl9TVEFUVVNfQSkNCj4gPiA+ID4gPiA+ICAgICNkZWZpbmUgRURQX1BTUjJfU1RBVFVTX1NU QVRFX01BU0sgICAgICgweGYgPDwgMjgpDQo+ID4gPiA+ID4gPiAgICAjZGVmaW5lIEVEUF9QU1Iy X1NUQVRVU19TVEFURV9TSElGVCAgICAyOA0KPiA+ID4gPiA+ID4gICAgDQo+ID4gPiA+ID4gPiAt I2RlZmluZSBfUFNSMl9TVV9TVEFUVVNfMAkJMHg2RjkxNA0KPiA+ID4gPiA+ID4gLSNkZWZpbmUg X1BTUjJfU1VfU1RBVFVTXzEJCTB4NkY5MTgNCj4gPiA+ID4gPiA+IC0jZGVmaW5lIF9QU1IyX1NV X1NUQVRVU18yCQkweDZGOTFDDQo+ID4gPiA+ID4gPiAtI2RlZmluZSBfUFNSMl9TVV9TVEFUVVMo aW5kZXgpCQlfTU1JTyhfUElDS19FVkUNCj4gPiA+ID4gPiA+IE4oKGluZGV4DQo+ID4gPiA+ID4g PiApLCBfUFNSMl9TVV9TVEFUVVNfMCwgX1BTUjJfU1VfU1RBVFVTXzEpKQ0KPiA+ID4gPiA+ID4g LSNkZWZpbmUgUFNSMl9TVV9TVEFUVVMoZnJhbWUpCQkoX1BTUjJfU1VfU1RBVFUNCj4gPiA+ID4g PiA+IFMoKGZyYW1lDQo+ID4gPiA+ID4gPiApIC8gMykpDQo+ID4gPiA+ID4gPiArI2RlZmluZSBf UFNSMl9TVV9TVEFUVVNfQQkJMHg2MDkxNA0KPiA+ID4gPiA+ID4gKyNkZWZpbmUgX1BTUjJfU1Vf U1RBVFVTX0VEUAkJMHg2ZjkxNA0KPiA+ID4gPiA+ID4gKyNkZWZpbmUgX1BTUjJfU1VfU1RBVFVT KHRyYW4sIGluZGV4KQlfTU1JTyhfVFJBTlMyKHQNCj4gPiA+ID4gPiA+IHJhbiwNCj4gPiA+ID4g PiA+IF9QU1IyX1NVX1NUQVRVU19BKSArIChpbmRleCkgKiA0KQ0KPiA+ID4gPiA+ID4gKyNkZWZp bmUgUFNSMl9TVV9TVEFUVVModHJhbiwgZnJhbWUpCShfUFNSMl9TVV9TVEFUVQ0KPiA+ID4gPiA+ ID4gUyh0cmFuLA0KPiA+ID4gPiA+ID4gKGZyYW1lKSAvIDMpKQ0KPiA+ID4gPiA+ID4gICAgI2Rl ZmluZSBQU1IyX1NVX1NUQVRVU19TSElGVChmcmFtZSkJKCgoZnJhbWUpICUgMykNCj4gPiA+ID4g PiA+ICogMTApDQo+ID4gPiA+ID4gPiAgICAjZGVmaW5lIFBTUjJfU1VfU1RBVFVTX01BU0soZnJh bWUpCSgweDNmZiA8PA0KPiA+ID4gPiA+ID4gUFNSMl9TVV9TVEFUVVNfU0hJRlQoZnJhbWUpKQ0K PiA+ID4gPiA+ID4gICAgI2RlZmluZSBQU1IyX1NVX1NUQVRVU19GUkFNRVMJCTgNCj4gPiA+ID4g PiA+IC0tIA0KPiA+ID4gPiA+ID4gMi4yMi4xDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gPiA+ID4g PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0DQo+ID4gPiA+ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnDQo+ID4gPiA+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4