From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 72B0A2BD8; Thu, 29 Mar 2018 20:09:31 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Mar 2018 11:09:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,378,1517904000"; d="scan'208";a="215883776" Received: from irsmsx103.ger.corp.intel.com ([163.33.3.157]) by fmsmga006.fm.intel.com with ESMTP; 29 Mar 2018 11:09:28 -0700 Received: from irsmsx102.ger.corp.intel.com ([169.254.2.164]) by IRSMSX103.ger.corp.intel.com ([169.254.3.61]) with mapi id 14.03.0319.002; Thu, 29 Mar 2018 19:09:27 +0100 From: "Wodkowski, PawelX" To: Maxime Coquelin , "Tan, Jianfeng" , Victor Kaplansky CC: "dev@dpdk.org" , "stable@dpdk.org" , "Yang, Yi Y" , "Harris, James R" , "Yang, Ziye" , "Liu, Changpeng" , "Stojaczyk, DariuszX" , Yuanhan Liu Thread-Topic: [PATCH] vhost: fix segfault as handle set_mem_table message Thread-Index: AQHTXgZrlzCne6HYM0y7DBrZO8ttJaMpQVKAgAskwgCAAAJMgICy59RAgABEHYCAABwpMIAAe0wAgAAax6A= Date: Thu, 29 Mar 2018 18:09:26 +0000 Message-ID: References: <1510746068-143223-1-git-send-email-jianfeng.tan@intel.com> <20171205141954.GF9111@yliu-dev> <1c5d3010-c7a9-a2b1-909e-dd43cde24af1@redhat.com> <54d0d0be-fd46-2e93-af6e-d71efefe3f34@redhat.com> In-Reply-To: <54d0d0be-fd46-2e93-af6e-d71efefe3f34@redhat.com> Accept-Language: pl-PL, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYzg1YWRlMTUtNzFjMi00Y2JmLTg3YjctNGE1YTgzZWE0MDhmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6IkkxS1lhUWhTY2I0MkVpY2hERkVPVWc0eVBYalN5czVlWWdUdm0rRmNtc289In0= x-ctpclassification: CTP_IC x-originating-ip: [163.33.239.181] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] vhost: fix segfault as handle set_mem_table message X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Mar 2018 18:09:33 -0000 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gW21h aWx0bzptYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbV0NCj4gU2VudDogVGh1cnNkYXksIE1hcmNo IDI5LCAyMDE4IDY6MzggUE0NCj4gVG86IFdvZGtvd3NraSwgUGF3ZWxYIDxwYXdlbHgud29ka293 c2tpQGludGVsLmNvbT47IFRhbiwgSmlhbmZlbmcNCj4gPGppYW5mZW5nLnRhbkBpbnRlbC5jb20+ OyBWaWN0b3IgS2FwbGFuc2t5IDx2a2FwbGFuc0ByZWRoYXQuY29tPg0KPiBDYzogZGV2QGRwZGsu b3JnOyBzdGFibGVAZHBkay5vcmc7IFlhbmcsIFlpIFkgPHlpLnkueWFuZ0BpbnRlbC5jb20+Ow0K PiBIYXJyaXMsIEphbWVzIFIgPGphbWVzLnIuaGFycmlzQGludGVsLmNvbT47IFlhbmcsIFppeWUN Cj4gPHppeWUueWFuZ0BpbnRlbC5jb20+OyBMaXUsIENoYW5ncGVuZyA8Y2hhbmdwZW5nLmxpdUBp bnRlbC5jb20+Ow0KPiBTdG9qYWN6eWssIERhcml1c3pYIDxkYXJpdXN6eC5zdG9qYWN6eWtAaW50 ZWwuY29tPjsgWXVhbmhhbiBMaXUNCj4gPHlsaXVAZnJpZGF5bGludXgub3JnPg0KPiBTdWJqZWN0 OiBSZTogW1BBVENIXSB2aG9zdDogZml4IHNlZ2ZhdWx0IGFzIGhhbmRsZSBzZXRfbWVtX3RhYmxl IG1lc3NhZ2UNCj4gDQo+IEhpIFBhd2VsLA0KPiANCj4gT24gMDMvMjkvMjAxOCAwMjo1NyBQTSwg V29ka293c2tpLCBQYXdlbFggd3JvdGU6DQo+ID4+Pj4+Pj4gRFBESyB2aG9zdC11c2VyIGhhbmRs ZXMgdGhpcyBtZXNzYWdlIHJ1ZGVseSBieSB1bm1hcCBhbGwgZXhpc3RpbmcNCj4gPj4+Pj4+PiBy ZWdpb25zIGFuZCBtYXAgbmV3IG9uZXMuIFRoaXMgbWlnaHQgbGVhZCB0byBzZWdmYXVsdCBpZiB0 aGVyZQ0KPiA+Pj4+Pj4+IGlzIHBtZCB0aHJlYWQganVzdCB0cnlpbmcgdG8gdG91Y2ggdGhvc2Ug dW5tYXBwZWQgbWVtb3J5DQo+IHJlZ2lvbnMuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBCdXQgZm9y IG1vc3QgY2FzZXMsIGV4Y2VwdCBWTSBtZW1vcnkgaG90cGx1ZywNCj4gPj4+Pg0KPiA+Pj4+IEZZ SSwgVmljdG9yIGlzIHdvcmtpbmcgb24gaW1wbGVtZW50aW5nIGEgbG9jay1sZXNzIHByb3RlY3Rp b24NCj4gbWVjaGFuaXNtDQo+ID4+Pj4gdG8gcHJldmVudCBjcmFzaGVzIGluIHN1Y2ggY2FzZXMu IEl0IGlzIGludGVuZGVkIGZpcnN0IHRvIHByb3RlY3QNCj4gPj4+PiBsb2dfYmFzZSBpbiBjYXNl IG9mIG11bHRpcXVldWUgKyBsaXZlLW1pZ3JhdGlvbiwgYnV0IHdvdWxkIHNvbHZlIHRoaQ0KPiA+ Pj4+IGlzc3VlIHRvby4NCj4gPj4+DQo+ID4+PiBCcmluZyB0aGlzIGlzc3VlIGJhY2sgZm9yIGRp c2N1c3Npb24uDQo+ID4+Pg0KPiA+Pj4gUmVwb3J0ZWQgYnkgU1BESyBndXlzLCBldmVuIHdpdGgg cGVyLXF1ZXVlIGxvY2ssIHRoZXkgY291bGQgc3RpbGwgcnVuDQo+IGludG8NCj4gPj4gY3Jhc2gg YXMgb2YgbWVtb3J5IGhvdCBwbHVnIG9yIHVucGx1Zy4NCj4gPj4+IEluIGRldGFpbCwgeW91IGFk ZCB0aGUgbG9jayBpbiBhbiBpbnRlcm5hbCBzdHJ1Y3QsIHZob3N0X3F1ZXVlIHdoaWNoIGlzLA0K PiA+PiB1bmZvcnR1bmF0ZWx5LCBub3QgdmlzaWJsZSB0byB0aGUgZXh0ZXJuYWwgZGF0YXBhdGgs IGxpa2Ugdmhvc3Qtc2NzaSBpbiBTUERLLg0KPiA+Pg0KPiA+PiBZZXMsIEkgYWdyZWUgY3VycmVu dCBzb2x1dGlvbiBpcyBub3QgZW5vdWdoDQo+ID4+DQo+ID4+PiBUaGUgbWVtb3J5IGhvdCBwbHVn IGFuZCB1bnBsdWcgd291bGQgYmUgdGhlIG1haW4gaXNzdWUgZnJvbSBTUERLDQo+IHNpZGUgc28N Cj4gPj4gZmFyLiBGb3IgdGhpcyBzcGVjaWZpYyBpc3N1ZSwgSSB0aGluayB3ZSBjYW4gY29udGlu dWUgdGhpcyBwYXRjaCB0byBmaWx0ZXIgb3V0DQo+IHRoZQ0KPiA+PiBjaGFuZ2VkIHJlZ2lvbnMs IGFuZCBrZWVwIHVuY2hhbmdlZCByZWdpb25zIG5vdCByZW1hcHBlZC4NCj4gPj4+DQo+ID4+PiBC dXQgSSBrbm93IHRoYXQgdGhlIHBlci12cSBsb2NrIGlzIG5vdCBvbmx5IHRvIHJlc29sdmUgdGhl IG1lbW9yeSB0YWJsZQ0KPiBpc3N1ZSwNCj4gPj4gc29tZSBvdGhlciB2aG9zdC11c2VyIG1lc3Nh Z2VzIGNvdWxkIGFsc28gbGVhZCB0byBwcm9ibGVtcz8gSWYgeWVzLCBzaGFsbA0KPiB3ZQ0KPiA+ PiB0YWtlIGEgc3RlcCBiYWNrLCB0byB0aGluayBhYm91dCBob3cgdG8gc29sdmUgdGhpcyBraW5k IG9mIGlzc3VlcyBmb3INCj4gYmFja2VuZHMsDQo+ID4+IGxpa2Ugdmhvc3Qtc2NzaS4NCj4gPj4N Cj4gPj4gUmlnaHQsIGFueSBtZXNzYWdlIHRoYXQgY2FuIGNoYW5nZSB0aGUgZGV2aWNlIG9yIHZp cnRxdWV1ZSBzdGF0ZXMgY2FuIGJlDQo+ID4+IHByb2JsZW1hdGljLg0KPiA+Pg0KPiA+Pj4gVGhv dWdodHM/DQo+ID4+DQo+ID4+IEluIGFub3RoZXIgdGhyZWFkLCBTUERLIHBlb3BsZSBwcm9wb3Nl ZCB0byBkZXN0cm95IGFuZCByZS1jcmVhdGUgdGhlDQo+ID4+IGRldmljZSBmb3IgZXZlcnkgbWVz c2FnZS4gSSB0aGluayB0aGlzIGlzIG5vdCBhY2NlcHRhYmxlLg0KPiA+DQo+ID4gQmFja2VuZCBt dXN0IGtub3cgd2hpY2ggcGFydCBvZiBkZXZpY2UgaXMgb3V0ZGF0ZWQgKG1lbW9yeSB0YWJsZSwg cmluZw0KPiA+IHBvc2l0aW9uIGV0Yykgc28gaXQgY2FuIHRha2UgcmlnaHQgYWN0aW9uIGhlcmUu IEkgIGRvbid0IGluc2lzdCBvbiBkZXN0cm95L2NyZWF0ZQ0KPiA+IHNjaGVtZSBidXQgdGhpcyBz b2x2ZSBtb3N0IG9mIHRob3NlIHByb2JsZW1zIChpZiBub3QgYWxsKS4gaWYgd2Ugd2lsbCBoYXZl DQo+IGFub3RoZXINCj4gPiB3b3JraW5nIHNvbHV0aW9uIHRoaXMgaXMgcGVyZmVjdGx5IGZpbmUg Zm9yIG1lLg0KPiA+DQo+ID4+DQo+ID4+IEkgcHJvcG9zZWQgYW4gYWx0ZXJuYXRpdmUgdGhhdCBJ IHRoaW5rIHdvdWxkIHdvcms6DQo+ID4+IC0gZXh0ZXJuYWwgYmFja2VuZHMgJiBhcHBsaWNhdGlv bnMgaW1wbGVtZW50cyB0aGUNCj4gLnZyaW5nX3N0YXRlX2NoYW5nZWQoKQ0KPiA+PiAgICAgY2Fs bGJhY2suIE9uIGRpc2FibGUgaXQgc3RvcHMgcHJvY2Vzc2luZyB0aGUgcmluZ3MgYW5kIG9ubHkg cmV0dXJuDQo+ID4+ICAgICBvbmNlIGFsbCBkZXNjcmlwdG9yIGJ1ZmZlcnMgYXJlIHByb2Nlc3Nl ZC4gT24gZW5hYmxlLCB0aGV5IHJlc3VtZSB0aGUNCj4gPj4gICAgIHJpbmdzIHByb2Nlc3Npbmcu DQo+ID4+IC0gSW4gdmhvc3QgbGliLCB3ZSBpbXBsZW1lbnQgdmhvc3RfdnJpbmdfcGF1c2UgYW5k IHZob3N0X3ZyaW5nX3Jlc3VtZQ0KPiA+PiAgICAgZnVuY3Rpb25zLiBJbiBwYXVzZSBmdW5jdGlv biwgd2Ugc2F2ZSBkZXZpY2Ugc3RhdGUgKGVuYWJsZSBvcg0KPiA+PiAgICAgZGlzYWJsZSkgaW4g YSB2YXJpYWJsZSwgYW5kIGlmIHRoZSByaW5nIGlzIGVuYWJsZWQgYXQgZGV2aWNlIGxldmVsIGl0 DQo+ID4+ICAgICBjYWxscyAudnJpbmdfc3RhdGVfY2hhbmdlZCgpIHdpdGggZGlzYWJsZWQgc3Rh dGUuIEluIHJlc3VtZSwgaXQgY2hlY2tzDQo+ID4+ICAgICB0aGUgdnJpbmcgc3RhdGUgaW4gdGhl IGRldmljZSBhbmQgY2FsbCAudnJpbmdfc3RhdGVfY2hhbmdlZCgpIHdpdGgNCj4gPj4gICAgIGVu YWJsZSBzdGF0ZSBpZiBpdCB3YXMgZW5hYmxlZCBpbiBkZXZpY2Ugc3RhdGUuDQo+ID4NCj4gPiBU aGlzIHdpbGwgYmUgbm90IGVub3VnaC4gV2UgbmVlZCB0byBrbm93IHdoYXQgZXhhY3RseSBjaGFu Z2VkLiBBcyBmb3INCj4gcmluZw0KPiA+IHN0YXRlIGl0IGlzIHN0cmFpZ2h0IGZvcndhcmQgdG8g c2F2ZS9mZXRjaCBuZXcgcmluZyBzdGF0ZSBidXQgZWcuIGZvciBzZXQgbWVtDQo+ID4gdGFibGUg d2UgbmVlZCB0byBmaW5pc2ggYWxsIElPLCByZW1vdmUgY3VycmVudGx5IHJlZ2lzdGVyZWQgUkRN QSBtZW1vcnkuDQo+ID4gVGhlbiwgd2hlbiBuZXcgbWVtb3J5IHRhYmxlIGlzIGF2YWlsYWJsZSB3 ZSBuZWVkIHRvIHJlZ2lzdGVyIGl0IGFnYWluIGZvcg0KPiA+IFJETUEgdGhlbiByZXN1bWUgSU8u DQo+IA0KPiBZZXMsIHRoYXQncyB3aGF0IEkgbWVhbnQgd2hlbiBJIHNhaWQgIm9ubHkgcmV0dXJu IG9uY2UgYWxsIGRlc2MgYnVmZmVycw0KPiBhcmUgcHJvY2Vzc2VkIi4NCj4gDQo+IFRoZXNlIG1l c3NhZ2VzIGFyZSBxdWl0ZSByYXJlLCBJIGRvbid0IHRoaW5rIGl0IGlzIHJlYWxseSBhIHByb2Js ZW0gdG8NCj4gZmluaXNoIGFsbCBJTyB3aGVuIGl0IGhhcHBlbnMsIGFuZCB0aGF0J3Mgd2hhdCBo YXBwZW5lZCB3aXRoIHlvdXINCj4gaW5pdGlhbCBwYXRjaC4NCj4gDQoNClN1cmUsIHRoaXMgd2ls bCBiZSBxdWl0ZSBlYXN5IHRvIHVzZSB0aGlzIHdvcmthcm91bmQuIFdlIHdpbGwgdHJlYXQgZGlz YWJsaW5nDQoqYW55IHJpbmcqIGFzIGRlc3Ryb3kgZGV2aWNlIGFuZCBlbmFibGluZyAqYWxsIHJp bmdzKiBhcyBuZXcgZGV2aWNlIGV2ZW50Lg0KDQo+IEkgYWdyZWUgd2UgbXVzdCBjb25zaWRlciBh IHNvbHV0aW9uIGFzIHlvdSBwcm9wb3NlIGJlbG93LCBidXQgbXkNCj4gcHJvcG9zYWwgY291bGQg ZWFzaWx5IGJlIGltcGxlbWVudGVkIGZvciB2MTguMDUuIFdoZXJlYXMgeW91ciBwYXRjaA0KPiBi ZWxvdyBpcyBxdWl0ZSBhIGJpZyBjaGFuZ2UsIGFuZCBJIHRoaW5rIGl0IGlzIGEgYml0IHRvbyBs YXRlIGFzDQo+IGludGVncmF0aW9uIGRlYWRsaW5lIGZvciB2MTguMDUgaXMgQXByaWwgNnRoLg0K DQpBZ3JlZSwgaXQgaXMgdG9vIGxhdGUgZm9yIHYxOC4wNSB0byBkbyB0aGF0LiBTbyBsZXQncyB1 c2UgeW91ciBzb2x1dGlvbiBmb3IgdjE4LjA1DQphbmQgZGV2ZWxvcCBmaW5hbCBmaXggZm9yIG5l eHQgcmVsZWFzZS4NCg0KPiANCj4gPg0KPiA+Pg0KPiA+PiBTbywgSSB0aGluayB0aGF0IHdvdWxk IHdvcmsgYnV0IEkgaGFkbid0IGhhZCBhIGNsZWFyIHJlcGx5IGZyb20gU1BESw0KPiA+PiBwZW9w bGUgcHJvdmluZyBpdCB3b3VsZG4ndC4NCj4gPj4NCj4gPj4gVGhleSBhc2tlZCB3ZSByZXZlcnQg VmljdG9yJ3MgcGF0Y2gsIGJ1dCBJIGRvbid0IHNlZSB0aGUgbmVlZCBhcyBpdCBkb2VzDQo+ID4+ IG5vdCBodXJ0IFNQREsgKGJ1dCBkb2Vzbid0IHByb3RlY3QgYW55dGhpbmcgZm9yIHRoZW0gSSBh Z3JlZSksIHdoaWxlIGl0DQo+ID4+IHJlYWxseSBmaXhlcyByZWFsIGlzc3VlcyB3aXRoIGludGVy bmFsIE5ldCBiYWNrZW5kLg0KPiA+Pg0KPiA+PiBXaGF0IGRvIHlvdSB0aGluayBvZiBteSBwcm9w b3NhbD8gRG8geW91IHNlZSBvdGhlciBhbHRlcm5hdGl2ZT8NCj4gPj4NCj4gPg0KPiA+IEFzIFZp Y3RvciBpcyBhbHJlYWR5IHdvcmtpbmcgb24gdGhlIHNvbHV0aW9uLCBjYW4geW91IHBvc3Qgc29t ZSBpbmZvIGFib3V0DQo+IGhvdw0KPiA+IHlvdSBwbGFuIHRvIHNvbHZlIGl0PyBJIHdhcyB0aGlu a2luZyBhYm91dCBzb21ldGhpbmcgbGlrZSBjb2RlIGJlbGxvdyAoc29ycnkNCj4gZm9yDQo+ID4g aG93IHRoaXMgY29kZSBsb29rIGxpa2UgYnV0IHRoaXMgaXMgbXkgd29yay1pbi1wcm9ncmVzcyAg dG8gc2VlIGlmIHRoaXMgbWFrZQ0KPiBhbnkNCj4gPiBzZW5zZSBoZXJlKS4gVGhpcyBjb2RlIGFs bG93IHRvOg0KPiA+IDEuICBub3QgaW50cm9kdWNpbmcgY2hhbmdlcyBsaWtlIGh0dHA6Ly9kcGRr Lm9yZy9tbC9hcmNoaXZlcy9kZXYvMjAxOC0NCj4gTWFyY2gvMDkzOTIyLmh0bWwNCj4gPiAgICAg ICBiZWNhdXNlIGJhY2tlbmQgd2lsbCBoYW5kbGUgdGhpcyBieSBpdHMgb3duLg0KPiANCj4gUmln aHQsIGJ1dCB3ZSBtYXkgYW55d2F5IGhhdmUgdG8gZGVjbGFyZSB0aGUgcGF5bG9hZCBmb3IgdGhl c2UgYmFja2VuZA0KPiBzcGVjaWZpYyBtZXNzYWdlcyBpbiB2aG9zdCBsaWIgYXMgaXQgbWF5IGJl IGJpZ2dlciB0aGFuIGV4aXN0aW5nDQo+IHBheWxvYWRzLg0KPiANCj4gPiAyLiB2aXJ0aW8tbmV0 IHNwZWNpZmljIG1lc3NhZ2VzIGNhbiBiZSBtb3ZlZCBvdXQgb2YgZ2VuZXJpYyB2aG9zdF91c2Vy LmMNCj4gZmlsZQ0KPiA+IDMuIHZpcnRxdWV1ZSBsb2NraW5nIHN0dWZmIGNhbiBiZSBtb3ZlZCB0 byB2aXJpdG8tbmV0IHNwZWNpZmljIGJhY2tlbmQuDQo+ID4NCj4gPiBQbHMgbGV0IG1lIGtub3cg d2hhdCB5b3UgdGhpbmsuDQo+IA0KPiBUaGFua3MgZm9yIHNoYXJpbmcsIHBsZWFzZSBmaW5kIGEg ZmV3IGNvbW1lbnRzIGJlbG93Og0KPiANCj4gPg0KPiA+IC0tLQ0KPiA+ICAgbGliL2xpYnJ0ZV92 aG9zdC9NYWtlZmlsZSAgICAgICAgIHwgICAyICstDQo+ID4gICBsaWIvbGlicnRlX3Zob3N0L3J0 ZV92aG9zdC5oICAgICAgfCAgNjAgKysrKysrKysrKysrKysrKysrLQ0KPiA+ICAgbGliL2xpYnJ0 ZV92aG9zdC9ydGVfdmhvc3RfdXNlci5oIHwgMTIwDQo+ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrDQo+ID4gICBsaWIvbGlicnRlX3Zob3N0L3Zob3N0LmggICAgICAgICAg fCAgMTQgLS0tLS0NCj4gPiAgIGxpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jICAgICB8ICAz MCArKysrKysrKysrDQo+ID4gICBsaWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuaCAgICAgfCAg ODggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICAgNiBmaWxlcyBjaGFuZ2VkLCAy MDkgaW5zZXJ0aW9ucygrKSwgMTA1IGRlbGV0aW9ucygtKQ0KPiA+ICAgY3JlYXRlIG1vZGUgMTAw NjQ0IGxpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0X3VzZXIuaA0KPiA+DQo+ID4gZGlmZiAtLWdp dCBhL2xpYi9saWJydGVfdmhvc3QvTWFrZWZpbGUgYi9saWIvbGlicnRlX3Zob3N0L01ha2VmaWxl DQo+ID4gaW5kZXggNWQ2YzZhYmFlZDUxLi4wNzQzOWExODZkOTEgMTAwNjQ0DQo+ID4gLS0tIGEv bGliL2xpYnJ0ZV92aG9zdC9NYWtlZmlsZQ0KPiA+ICsrKyBiL2xpYi9saWJydGVfdmhvc3QvTWFr ZWZpbGUNCj4gPiBAQCAtMjUsNiArMjUsNiBAQCBTUkNTLSQoQ09ORklHX1JURV9MSUJSVEVfVkhP U1QpIDo9IGZkX21hbi5jDQo+IGlvdGxiLmMgc29ja2V0LmMgdmhvc3QuYyBcDQo+ID4gICAJCQkJ CXZob3N0X3VzZXIuYyB2aXJ0aW9fbmV0LmMNCj4gPg0KPiA+ICAgIyBpbnN0YWxsIGluY2x1ZGVz DQo+ID4gLVNZTUxJTkstJChDT05GSUdfUlRFX0xJQlJURV9WSE9TVCktaW5jbHVkZSArPSBydGVf dmhvc3QuaA0KPiA+ICtTWU1MSU5LLSQoQ09ORklHX1JURV9MSUJSVEVfVkhPU1QpLWluY2x1ZGUg Kz0gcnRlX3Zob3N0LmgNCj4gcnRlX3Zob3N0X3VzZXIuaA0KPiA+DQo+ID4gICBpbmNsdWRlICQo UlRFX1NESykvbWsvcnRlLmxpYi5taw0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zob3N0 L3J0ZV92aG9zdC5oIGIvbGliL2xpYnJ0ZV92aG9zdC9ydGVfdmhvc3QuaA0KPiA+IGluZGV4IGQz MzIwNjk5NzQ1My4uN2I3Njk1MjYzOGRjIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9saWJydGVfdmhv c3QvcnRlX3Zob3N0LmgNCj4gPiArKysgYi9saWIvbGlicnRlX3Zob3N0L3J0ZV92aG9zdC5oDQo+ ID4gQEAgLTE2LDEyICsxNiwxMyBAQA0KPiA+ICAgI2luY2x1ZGUgPHJ0ZV9tZW1vcnkuaD4NCj4g PiAgICNpbmNsdWRlIDxydGVfbWVtcG9vbC5oPg0KPiA+DQo+ID4gKyNpbmNsdWRlIDxydGVfdmhv c3RfdXNlci5oPg0KPiA+ICsNCj4gPiAgICNpZmRlZiBfX2NwbHVzcGx1cw0KPiA+ICAgZXh0ZXJu ICJDIiB7DQo+ID4gICAjZW5kaWYNCj4gPg0KPiA+ICAgLyogVGhlc2UgYXJlIG5vdCBDKystYXdh cmUuICovDQo+ID4gLSNpbmNsdWRlIDxsaW51eC92aG9zdC5oPg0KPiA+ICAgI2luY2x1ZGUgPGxp bnV4L3ZpcnRpb19yaW5nLmg+DQo+ID4NCj4gPiAgICNkZWZpbmUgUlRFX1ZIT1NUX1VTRVJfQ0xJ RU5UCQkoMVVMTCA8PCAwKQ0KPiA+IEBAIC02NSw2ICs2Niw1MSBAQCBzdHJ1Y3QgcnRlX3Zob3N0 X3ZyaW5nIHsNCj4gPiAgIH07DQo+ID4NCj4gPiAgIC8qKg0KPiA+ICsgKiBWaG9zdCBsaWJyYXJ5 IHN0YXJ0ZWQgcHJvY2Vzc2luZyBnaXZlbiB2aG9zdCB1c2VyIG1lc3NhZ2UuDQo+ID4gKyAqDQo+ ID4gKyAqIFRoaXMgc3RhdGUgc2hvdWxkIGJlIHVzZWQgZWcuIHRvIHN0b3AgcmluZ3MgcHJvY2Vz c2luZyBpbiBjYXNlIG9mDQo+ID4gKyAqIFNFVF9NRU1fVEFCTEUgbWVzc2FnZS4NCj4gPiArICoN Cj4gPiArICogQmFja2VuZCBpcyBhbGxvd2VkIHRvIHJldHVybiBhbnkgcmVzdWx0IG9mDQo+IFJU RV9WSE9TVF9VU0VSX01FU1NBR0VfUkVTVUxUXyouDQo+ID4gKyAqLw0KPiA+ICsjZGVmaW5lIFJU RV9WSE9TVF9VU0VSX01TR19TVEFSVCAwDQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogVmhvc3Qg bGlicmFyeSBpcyBmaW5pc2hpbmcgcHJvY2Vzc2luZyBnaXZlbiB2aG9zdCB1c2VyIG1lc3NhZ2Uu DQo+ID4gKyAqIElmIGJhY2tlbmQgaGF2ZSBoYW5kbGVkIHRoZSBtZXNzYWdlIHByb2R1Y2VkIHJl c3BvbnNlIGlzIHBhc3NlZCBhcw0KPiBtZXNzYWdlDQo+ID4gKyAqIHBhcmFtZXRlci4gSWYgcmVz cG9uc2UgaXMgbmVlZGVkIGl0IHdpbGwgYmUgc2VuZCBhZnRlciByZXR1cm5pbmcuDQo+ID4gKyAq DQo+ID4gKyAqIFRoaXMgc3RhdGUgbWlnaHQgYmUgdXNlZCB0byByZXN1bWUgcmluZyBwcm9jZXNz aW5nIGluIGNhc2Ugb2YNCj4gU0VUX01FTV9UQUJMRQ0KPiA+ICsgKiBtZXNzYWdlLg0KPiA+ICsg Kg0KPiA+ICsgKiBSZXR1cm5pbmcgUlRFX1ZIT1NUX1VTRVJfTVNHX1JFU1VMVF9GQUlMRUQgd2ls bCB0cmlnZ2VyIGZhaWx1cmUNCj4gYWN0aW9uIGluDQo+ID4gKyAqIHZob3N0IGxpYnJhcnkuDQo+ ID4gKyAqLw0KPiA+ICsjZGVmaW5lIFJURV9WSE9TVF9VU0VSX01TR19FTkQgMQ0KPiA+ICsNCj4g PiArLyoqDQo+ID4gKyAqIEJhY2tlbmQgdW5kZXJzdG9vZCB0aGUgbWVzc2FnZSBidXQgcHJvY2Vz c2luZyBpdCBmYWlsZWQgZm9yIHNvbWUNCj4gcmVhc29uLg0KPiA+ICsgKiB2aG9zdCBsaWJyYXJ5 IHdpbGwgdGFrZSB0aGUgZmFpbHVyZSBhY3Rpb24gLSBjaGFuY2UgY2xvc2luZyBleGlzdGluZw0K PiA+ICsgKiBjb25uZWN0aW9uLg0KPiA+ICsgKi8NCj4gPiArI2RlZmluZSBSVEVfVkhPU1RfVVNF Ul9NU0dfUkVTVUxUX0ZBSUxFRCAtMQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIEJhY2tlbmQg dW5kZXJzdG9vZCB0aGUgbWVzc2FnZSBhbmQgaGFuZGxlZCBpdCBlbnRpcmx5LiBCYWNrZW5kIGlz DQo+IHJlc3BvbnNpYmxlDQo+ID4gKyAqIGZvciBmaWxsaW5nIG1lc3NhZ2Ugb2JqZWN0IHdpdGgg cmlnaHQgcmVzcG9uc2UgZGF0YS4NCj4gPiArICovDQo+ID4gKyNkZWZpbmUgUlRFX1ZIT1NUX1VT RVJfTVNHX1JFU1VMVF9IQU5ETEVEIDANCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBCYWNrZW5k IGlnbm9yZWQgdGhlIG1lc3NhZ2Ugb3IgdW5kZXJzdG9vZCBhbmQgdG9vayBzb21lIGFjdGlvbi4g SW4NCj4gZWl0aGVyDQo+ID4gKyAqIGNhc2UgdGhlIG1lc3NhZ2UgbmVlZCB0byBiZSBmdXJ0aGVy IHByb2Nlc3NlZCBieSB2aG9zdCBsaWJyYXJ5Lg0KPiA+ICsgKg0KPiA+ICsgKiBCYWNrZW5kIGlz IG5vdCBhbGxvd2VkIHRvIGNoYW5nZSBwYXNzZWQgbWVzc2FnZS4NCj4gPiArICovDQo+ID4gKyNk ZWZpbmUgUlRFX1ZIT1NUX1VTRVJfTVNHX1JFU1VMVF9PSyAxDQo+ID4gKw0KPiA+ICsNCj4gPiAr LyoqDQo+ID4gICAgKiBEZXZpY2UgYW5kIHZyaW5nIG9wZXJhdGlvbnMuDQo+ID4gICAgKi8NCj4g PiAgIHN0cnVjdCB2aG9zdF9kZXZpY2Vfb3BzIHsNCj4gPiBAQCAtODQsNyArMTMwLDE3IEBAIHN0 cnVjdCB2aG9zdF9kZXZpY2Vfb3BzIHsNCj4gPiAgIAlpbnQgKCpuZXdfY29ubmVjdGlvbikoaW50 IHZpZCk7DQo+ID4gICAJdm9pZCAoKmRlc3Ryb3lfY29ubmVjdGlvbikoaW50IHZpZCk7DQo+ID4N Cj4gPiAtCXZvaWQgKnJlc2VydmVkWzJdOyAvKio8IFJlc2VydmVkIGZvciBmdXR1cmUgZXh0ZW5z aW9uICovDQo+ID4gKwkvKioNCj4gPiArCSAqIEJhY2tlbmQgY2FsbGJhY2sgZm9yIHVzZXIgbWVz c2FnZS4NCj4gPiArCSAqDQo+ID4gKwkgKiBAcGFyYW0gdmlkIGlkIG9mIHZob3N0IGRldmljZQ0K PiA+ICsJICogQHBhcmFtIG1zZyBtZXNzYWdlIG9iamVjdC4NCj4gPiArCSAqIEBwYXJhbSBwaGFz ZSBSVEVfVkhPU1RfVVNFUl9NU0dfU1RBUlQgb3INCj4gUlRFX1ZIT1NUX1VTRVJfTVNHX0VORA0K PiA+ICsJICogQHJldHVybiBvbmUgb2YgUlRFX1ZIT1NUX1VTRVJfTUVTU0FHRV9SRVNVTFRfKg0K PiA+ICsJICovDQo+ID4gKwlpbnQgKCp1c2VyX21lc3NhZ2VfaGFuZGxlcikoaW50IHZpZCwgc3Ry dWN0IFZob3N0VXNlck1zZyAqbXNnLCBpbnQNCj4gcGhhc2UpOw0KPiANCj4gSSB0aGluayBpdCB3 b3VsZCBkZXNlcnZlIGEgZGVkaWNhdGVkIHN0cnVjdCBmb3IgdHdvIHJlYXNvbnM6DQo+ICAgMS4g VGhpcyBpcyBzcGVjaWZpYyB0byBiYWNrZW5kIGltcGxlbWVudGF0aW9uLCB3aGVyZWFzIHRoZSBh Ym92ZSBzdHJ1Y3QNCj4gd2FzIGludHJvZHVjZWQgZm9yIHRoZSBhcHBsaWNhdGlvbiB1c2luZyB0 aGUgYmFja2VuZHMuDQoNCkFncmVlLCB0aGUgYWRkaXRpb25hbCBkZWRpY2F0ZWQgc3RydWN0dXJl IGNhbiBiZSB1c2VmdWwgZm9yIGFwcGxpY2F0aW9uIGJ1dA0KdGhpcyBpcyBub3QgdGhlIGNhc2Ug aGVyZS4NCkFzIGFscmVhZHkgcHJvdmVuIGhlcmUgaHR0cDovL2RwZGsub3JnL2Rldi9wYXRjaHdv cmsvcGF0Y2gvMzY1ODIvDQp0aGVyZSBhcmUgYW5kIHdpbGwgYmUgdmlydGlvIGV4dGVuc2lvbnMg aW4gdGhlIGZ1dHVyZSBmb3IgcGFydGljdWxhciBiYWNrZW5kDQp0aGF0IHZob3N0X3VzZXIuYyBz aG91bGRuJ3QgcmVhbGx5IGNhcmUgYWJvdXQuIEFueXdheSBpZiB0aGVyZSB3aWxsIGJlIG5vIA0K b3RoZXIgb3B0aW9uIHdlIHdpbGwgdXNlIHRoaXMgQVBJIHlvdSBwcm9wb3NlZCBidXQgSSBwcmVm ZXJlIGhhdmluZyB0aGlzDQpoYW5kbGVyLg0KDQo+ICAgMi4gVGhlcmUgaXMgbm90IGEgbG90IHJv b20gcmVtYWluaW5nIGluIHRoaXMgc3RydWN0IGJlZm9yZSBicmVha2luZyB0aGUNCj4gQUJJLg0K DQpUcnVlLiBCdXQsIGZyb20gb3RoZXIgc2lkZSwgd2hhdCBpcyB0aGUgYmVuZWZpdCBvZiBoYXZp bmcgIlJlc2VydmVkIGZvciANCmZ1dHVyZSBleHRlbnNpb24iIGZpZWxkcyBpZiB3ZSBhcmUgYWZy YWlkIG9mIHVzaW5nIGl0IHdoZW4gbmVlZGVkLg0KDQo+ICAgMy4gKDMgcmVhc29ucyBpbiBmYWN0 IDopICkgSXQgaXMgdG8gaGFuZGxlIHZob3N0LXVzZXIgbWVzc2FnZXMsIHNvIGl0DQo+IHdvdWxk IGJlIGJldHRlciBpbiBydGVfdmhvc3RfdXNlci5oLg0KPiANCg0KSSdtIHN1cmUgSSBjYW4gZG8g aXQgYmV0dGVyIGFuZCBtYWtlIGl0IG1vcmUgZ2VuZXJpYyA7KQ0KDQo+ID4gKw0KPiA+ICsJdm9p ZCAqcmVzZXJ2ZWRbMV07IC8qKjwgUmVzZXJ2ZWQgZm9yIGZ1dHVyZSBleHRlbnNpb24gKi8NCj4g PiAgIH07DQo+ID4NCj4gPiAgIC8qKg0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zob3N0 L3J0ZV92aG9zdF91c2VyLmgNCj4gYi9saWIvbGlicnRlX3Zob3N0L3J0ZV92aG9zdF91c2VyLmgN Cj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uZjc2Nzhk MzNhY2MzDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2xpYi9saWJydGVfdmhvc3QvcnRl X3Zob3N0X3VzZXIuaA0KPiA+IEBAIC0wLDAgKzEsMTIwIEBADQo+ID4gKyNpZm5kZWYgX1ZIT1NU X1JURV9WSE9TVF9VU0VSX0hfDQo+ID4gKyNkZWZpbmUgX1ZIT1NUX1JURV9WSE9TVF9VU0VSX0hf DQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ID4gKw0KPiA+ICsjaWZkZWYgX19j cGx1c3BsdXMNCj4gPiArZXh0ZXJuICJDIiB7DQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiArLyog VGhlc2UgYXJlIG5vdCBDKystYXdhcmUuICovDQo+ID4gKyNpbmNsdWRlIDxsaW51eC92aG9zdC5o Pg0KPiA+ICsNCj4gPiArLyogcmVmZXIgdG8gaHcvdmlydGlvL3Zob3N0LXVzZXIuYyAqLw0KPiA+ ICsNCj4gPiArc3RydWN0IHZob3N0X2lvdGxiX21zZyB7DQo+ID4gKwlfX3U2NCBpb3ZhOw0KPiA+ ICsJX191NjQgc2l6ZTsNCj4gPiArCV9fdTY0IHVhZGRyOw0KPiA+ICsjZGVmaW5lIFZIT1NUX0FD Q0VTU19STyAgICAgIDB4MQ0KPiA+ICsjZGVmaW5lIFZIT1NUX0FDQ0VTU19XTyAgICAgIDB4Mg0K PiA+ICsjZGVmaW5lIFZIT1NUX0FDQ0VTU19SVyAgICAgIDB4Mw0KPiA+ICsJX191OCBwZXJtOw0K PiA+ICsjZGVmaW5lIFZIT1NUX0lPVExCX01JU1MgICAgICAgICAgIDENCj4gPiArI2RlZmluZSBW SE9TVF9JT1RMQl9VUERBVEUgICAgICAgICAyDQo+ID4gKyNkZWZpbmUgVkhPU1RfSU9UTEJfSU5W QUxJREFURSAgICAgMw0KPiA+ICsjZGVmaW5lIFZIT1NUX0lPVExCX0FDQ0VTU19GQUlMICAgIDQN Cj4gPiArCV9fdTggdHlwZTsNCj4gPiArfTsNCj4gPiArDQo+ID4gKyNkZWZpbmUgVkhPU1RfTUVN T1JZX01BWF9OUkVHSU9OUyA4DQo+ID4gKw0KPiA+ICsjZGVmaW5lIFZIT1NUX1VTRVJfUFJPVE9D T0xfRl9NUQkwDQo+ID4gKyNkZWZpbmUgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX0xPR19TSE1GRAkx DQo+ID4gKyNkZWZpbmUgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX1JBUlAJMg0KPiA+ICsjZGVmaW5l IFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9SRVBMWV9BQ0sJMw0KPiA+ICsjZGVmaW5lIFZIT1NUX1VT RVJfUFJPVE9DT0xfRl9ORVRfTVRVIDQNCj4gPiArI2RlZmluZSBWSE9TVF9VU0VSX1BST1RPQ09M X0ZfU0xBVkVfUkVRIDUNCj4gPiArDQo+ID4gK3R5cGVkZWYgZW51bSBWaG9zdFVzZXJSZXF1ZXN0 IHsNCj4gPiArCVZIT1NUX1VTRVJfTk9ORSA9IDAsDQo+ID4gKwlWSE9TVF9VU0VSX0dFVF9GRUFU VVJFUyA9IDEsDQo+ID4gKwlWSE9TVF9VU0VSX1NFVF9GRUFUVVJFUyA9IDIsDQo+ID4gKwlWSE9T VF9VU0VSX1NFVF9PV05FUiA9IDMsDQo+ID4gKwlWSE9TVF9VU0VSX1JFU0VUX09XTkVSID0gNCwN Cj4gPiArCVZIT1NUX1VTRVJfU0VUX01FTV9UQUJMRSA9IDUsDQo+ID4gKwlWSE9TVF9VU0VSX1NF VF9MT0dfQkFTRSA9IDYsDQo+ID4gKwlWSE9TVF9VU0VSX1NFVF9MT0dfRkQgPSA3LA0KPiA+ICsJ VkhPU1RfVVNFUl9TRVRfVlJJTkdfTlVNID0gOCwNCj4gPiArCVZIT1NUX1VTRVJfU0VUX1ZSSU5H X0FERFIgPSA5LA0KPiA+ICsJVkhPU1RfVVNFUl9TRVRfVlJJTkdfQkFTRSA9IDEwLA0KPiA+ICsJ VkhPU1RfVVNFUl9HRVRfVlJJTkdfQkFTRSA9IDExLA0KPiA+ICsJVkhPU1RfVVNFUl9TRVRfVlJJ TkdfS0lDSyA9IDEyLA0KPiA+ICsJVkhPU1RfVVNFUl9TRVRfVlJJTkdfQ0FMTCA9IDEzLA0KPiA+ ICsJVkhPU1RfVVNFUl9TRVRfVlJJTkdfRVJSID0gMTQsDQo+ID4gKwlWSE9TVF9VU0VSX0dFVF9Q Uk9UT0NPTF9GRUFUVVJFUyA9IDE1LA0KPiA+ICsJVkhPU1RfVVNFUl9TRVRfUFJPVE9DT0xfRkVB VFVSRVMgPSAxNiwNCj4gPiArCVZIT1NUX1VTRVJfR0VUX1FVRVVFX05VTSA9IDE3LA0KPiA+ICsJ VkhPU1RfVVNFUl9TRVRfVlJJTkdfRU5BQkxFID0gMTgsDQo+ID4gKwlWSE9TVF9VU0VSX1NFTkRf UkFSUCA9IDE5LA0KPiA+ICsJVkhPU1RfVVNFUl9ORVRfU0VUX01UVSA9IDIwLA0KPiA+ICsJVkhP U1RfVVNFUl9TRVRfU0xBVkVfUkVRX0ZEID0gMjEsDQo+ID4gKwlWSE9TVF9VU0VSX0lPVExCX01T RyA9IDIyLA0KPiA+ICsJVkhPU1RfVVNFUl9NQVgNCj4gPiArfSBWaG9zdFVzZXJSZXF1ZXN0Ow0K PiA+ICsNCj4gPiArdHlwZWRlZiBlbnVtIFZob3N0VXNlclNsYXZlUmVxdWVzdCB7DQo+ID4gKwlW SE9TVF9VU0VSX1NMQVZFX05PTkUgPSAwLA0KPiA+ICsJVkhPU1RfVVNFUl9TTEFWRV9JT1RMQl9N U0cgPSAxLA0KPiA+ICsJVkhPU1RfVVNFUl9TTEFWRV9NQVgNCj4gPiArfSBWaG9zdFVzZXJTbGF2 ZVJlcXVlc3Q7DQo+ID4gKw0KPiA+ICt0eXBlZGVmIHN0cnVjdCBWaG9zdFVzZXJNZW1vcnlSZWdp b24gew0KPiA+ICsJdWludDY0X3QgZ3Vlc3RfcGh5c19hZGRyOw0KPiA+ICsJdWludDY0X3QgbWVt b3J5X3NpemU7DQo+ID4gKwl1aW50NjRfdCB1c2Vyc3BhY2VfYWRkcjsNCj4gPiArCXVpbnQ2NF90 IG1tYXBfb2Zmc2V0Ow0KPiA+ICt9IFZob3N0VXNlck1lbW9yeVJlZ2lvbjsNCj4gPiArDQo+ID4g K3R5cGVkZWYgc3RydWN0IFZob3N0VXNlck1lbW9yeSB7DQo+ID4gKwl1aW50MzJfdCBucmVnaW9u czsNCj4gPiArCXVpbnQzMl90IHBhZGRpbmc7DQo+ID4gKwlWaG9zdFVzZXJNZW1vcnlSZWdpb24N Cj4gcmVnaW9uc1tWSE9TVF9NRU1PUllfTUFYX05SRUdJT05TXTsNCj4gPiArfSBWaG9zdFVzZXJN ZW1vcnk7DQo+ID4gKw0KPiA+ICt0eXBlZGVmIHN0cnVjdCBWaG9zdFVzZXJMb2cgew0KPiA+ICsJ dWludDY0X3QgbW1hcF9zaXplOw0KPiA+ICsJdWludDY0X3QgbW1hcF9vZmZzZXQ7DQo+ID4gK30g Vmhvc3RVc2VyTG9nOw0KPiA+ICsNCj4gPiArdHlwZWRlZiBzdHJ1Y3QgVmhvc3RVc2VyTXNnIHsN Cj4gPiArCXVuaW9uIHsNCj4gPiArCQlWaG9zdFVzZXJSZXF1ZXN0IG1hc3RlcjsNCj4gPiArCQlW aG9zdFVzZXJTbGF2ZVJlcXVlc3Qgc2xhdmU7DQo+ID4gKwl9IHJlcXVlc3Q7DQo+ID4gKw0KPiA+ ICsjZGVmaW5lIFZIT1NUX1VTRVJfVkVSU0lPTl9NQVNLICAgICAweDMNCj4gPiArI2RlZmluZSBW SE9TVF9VU0VSX1JFUExZX01BU0sgICAgICAgKDB4MSA8PCAyKQ0KPiA+ICsjZGVmaW5lIFZIT1NU X1VTRVJfTkVFRF9SRVBMWQkJKDB4MSA8PCAzKQ0KPiA+ICsJdWludDMyX3QgZmxhZ3M7DQo+ID4g Kwl1aW50MzJfdCBzaXplOyAvKiB0aGUgZm9sbG93aW5nIHBheWxvYWQgc2l6ZSAqLw0KPiA+ICsJ dW5pb24gew0KPiA+ICsjZGVmaW5lIFZIT1NUX1VTRVJfVlJJTkdfSURYX01BU0sgICAweGZmDQo+ ID4gKyNkZWZpbmUgVkhPU1RfVVNFUl9WUklOR19OT0ZEX01BU0sgICgweDE8PDgpDQo+ID4gKwkJ dWludDY0X3QgdTY0Ow0KPiA+ICsJCXN0cnVjdCB2aG9zdF92cmluZ19zdGF0ZSBzdGF0ZTsNCj4g PiArCQlzdHJ1Y3Qgdmhvc3RfdnJpbmdfYWRkciBhZGRyOw0KPiA+ICsJCVZob3N0VXNlck1lbW9y eSBtZW1vcnk7DQo+ID4gKwkJVmhvc3RVc2VyTG9nICAgIGxvZzsNCj4gPiArCQlzdHJ1Y3Qgdmhv c3RfaW90bGJfbXNnIGlvdGxiOw0KPiA+ICsJfSBwYXlsb2FkOw0KPiANCj4gV2UnbGwgbmVlZCB0 aGUgYmFja2VuZC1zcGVjaWZpYyBwYXlsb2FkcyB0byBiZSBkZWNsYXJlZCBoZXJlIHNvIHRoYXQg d2UNCj4ga25vdyB0aGUgbWF4IG1lc3NhZ2Ugc2l6ZSBmb3IgaW5wdXQgdmFsaWRhdGlvbi4NCj4g DQoNClRydWUsIEkgZGlkIG5vdCBjb25zaWRlcmVkIHRoaXMuDQpIb3cgYWJvdXQgbWFraW5nIHBh eWxvYWQgYSAndm9pZCAqJy4gQWxsb2NhdGluZyBidWZmZXIgZHluYW1pY2FsbHkgd2lsbCBhbGxv dyB0bw0KaGlkZSB0aG9zZSBzdHJ1Y3R1cmVzIGFuZCBkZWNyZWFzZSBzaXplIG9mIHRoaXMgcGF0 Y2guDQoNCj4gPiArCWludCBmZHNbVkhPU1RfTUVNT1JZX01BWF9OUkVHSU9OU107DQo+ID4gK30g X19hdHRyaWJ1dGUoKHBhY2tlZCkpIFZob3N0VXNlck1zZzsNCj4gPiArDQo+ID4gKyNkZWZpbmUg VkhPU1RfVVNFUl9IRFJfU0laRSBvZmZzZXRvZihWaG9zdFVzZXJNc2csIHBheWxvYWQudTY0KQ0K PiA+ICsNCj4gPiArI2lmZGVmIF9fY3BsdXNwbHVzDQo+ID4gK30NCj4gPiArI2VuZGlmDQo+ID4g Kw0KPiA+ICsjZW5kaWYgLyogX1ZIT1NUX1JURV9WSE9TVF9VU0VSX0hfICovDQo+ID4gZGlmZiAt LWdpdCBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3QuaCBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3Qu aA0KPiA+IGluZGV4IGQ5NDdiYzllM2IzZi4uNDJhMTQ3NDA5NWEzIDEwMDY0NA0KPiA+IC0tLSBh L2xpYi9saWJydGVfdmhvc3Qvdmhvc3QuaA0KPiA+ICsrKyBiL2xpYi9saWJydGVfdmhvc3Qvdmhv c3QuaA0KPiA+IEBAIC0xNDEsMjAgKzE0MSw2IEBAIHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgew0K PiA+DQo+ID4gICAjZGVmaW5lIFZJUlRJT19GX0lPTU1VX1BMQVRGT1JNIDMzDQo+ID4NCj4gPiAt c3RydWN0IHZob3N0X2lvdGxiX21zZyB7DQo+ID4gLQlfX3U2NCBpb3ZhOw0KPiA+IC0JX191NjQg c2l6ZTsNCj4gPiAtCV9fdTY0IHVhZGRyOw0KPiA+IC0jZGVmaW5lIFZIT1NUX0FDQ0VTU19STyAg ICAgIDB4MQ0KPiA+IC0jZGVmaW5lIFZIT1NUX0FDQ0VTU19XTyAgICAgIDB4Mg0KPiA+IC0jZGVm aW5lIFZIT1NUX0FDQ0VTU19SVyAgICAgIDB4Mw0KPiA+IC0JX191OCBwZXJtOw0KPiA+IC0jZGVm aW5lIFZIT1NUX0lPVExCX01JU1MgICAgICAgICAgIDENCj4gPiAtI2RlZmluZSBWSE9TVF9JT1RM Ql9VUERBVEUgICAgICAgICAyDQo+ID4gLSNkZWZpbmUgVkhPU1RfSU9UTEJfSU5WQUxJREFURSAg ICAgMw0KPiA+IC0jZGVmaW5lIFZIT1NUX0lPVExCX0FDQ0VTU19GQUlMICAgIDQNCj4gPiAtCV9f dTggdHlwZTsNCj4gPiAtfTsNCj4gPg0KPiA+ICAgI2RlZmluZSBWSE9TVF9JT1RMQl9NU0cgMHgx DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMgYi9s aWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+IGluZGV4IDkwZWQyMTEyZTBhZi4uMTU1 MzJlMTgyYjU4IDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5j DQo+ID4gKysrIGIvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMNCj4gPiBAQCAtMTMwMSw2 ICsxMzAxLDcgQEAgdmhvc3RfdXNlcl9tc2dfaGFuZGxlcihpbnQgdmlkLCBpbnQgZmQpDQo+ID4g ICAJc3RydWN0IHZpcnRpb19uZXQgKmRldjsNCj4gPiAgIAlzdHJ1Y3QgVmhvc3RVc2VyTXNnIG1z ZzsNCj4gPiAgIAlpbnQgcmV0Ow0KPiA+ICsJaW50IHVzZXJfaGFuZGxlcl9yZXN1bHQ7DQo+ID4g ICAJaW50IHVubG9ja19yZXF1aXJlZCA9IDA7DQo+ID4NCj4gPiAgIAlkZXYgPSBnZXRfZGV2aWNl KHZpZCk7DQo+ID4gQEAgLTEzNDcsNiArMTM0OCwyNiBAQCB2aG9zdF91c2VyX21zZ19oYW5kbGVy KGludCB2aWQsIGludCBmZCkNCj4gPiAgIAkJcmV0dXJuIC0xOw0KPiA+ICAgCX0NCj4gPg0KPiA+ ICsNCj4gPiArCWlmIChkZXYtPm5vdGlmeV9vcHMtPnVzZXJfbWVzc2FnZV9oYW5kbGVyKSB7DQo+ ID4gKwkJdXNlcl9oYW5kbGVyX3Jlc3VsdCA9IGRldi0+bm90aWZ5X29wcy0NCj4gPnVzZXJfbWVz c2FnZV9oYW5kbGVyKA0KPiA+ICsJCQkJZGV2LT52aWQsICZtc2csDQo+IFJURV9WSE9TVF9VU0VS X01TR19TVEFSVCk7DQo+ID4gKw0KPiA+ICsJCXN3aXRjaCAodXNlcl9oYW5kbGVyX3Jlc3VsdCkg ew0KPiA+ICsJCWNhc2UgUlRFX1ZIT1NUX1VTRVJfTVNHX1JFU1VMVF9GQUlMRUQ6DQo+ID4gKwkJ CVJURV9MT0coRVJSLCBWSE9TVF9DT05GSUcsDQo+ID4gKwkJCQkiVXNlciBtZXNzYWdlIGhhbmRs ZXIgZmFpbGVkXG4iKTsNCj4gPiArCQkJcmV0dXJuIC0xOw0KPiA+ICsJCWNhc2UgUlRFX1ZIT1NU X1VTRVJfTVNHX1JFU1VMVF9IQU5ETEVEOg0KPiA+ICsJCQlSVEVfTE9HKERFQlVHLCBWSE9TVF9D T05GSUcsDQo+ID4gKwkJCQkiVXNlciBtZXNzYWdlIGhhbmRsZWQgYnkgYmFja2VuZFxuIik7DQo+ ID4gKwkJCWdvdG8gbXNnX2hhbmRsZWQ7DQo+ID4gKwkJY2FzZSBSVEVfVkhPU1RfVVNFUl9NU0df UkVTVUxUX09LOg0KPiA+ICsJCQlicmVhazsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ID4gKw0KPiA+ ICsNCj4gPiAgIAkvKg0KPiA+ICAgCSAqIE5vdGU6IHdlIGRvbid0IGxvY2sgYWxsIHF1ZXVlcyBv biBWSE9TVF9VU0VSX0dFVF9WUklOR19CQVNFDQo+ID4gICAJICogYW5kIFZIT1NUX1VTRVJfUkVT RVRfT1dORVIsIHNpbmNlIGl0IGlzIHNlbnQgd2hlbiB2aXJ0aW8gc3RvcHMNCj4gPiBAQCAtMTQ4 NSw2ICsxNTA2LDE1IEBAIHZob3N0X3VzZXJfbXNnX2hhbmRsZXIoaW50IHZpZCwgaW50IGZkKQ0K PiA+ICAgCWlmICh1bmxvY2tfcmVxdWlyZWQpDQo+ID4gICAJCXZob3N0X3VzZXJfdW5sb2NrX2Fs bF9xdWV1ZV9wYWlycyhkZXYpOw0KPiA+DQo+ID4gK21zZ19oYW5kbGVkOg0KPiA+ICsJaWYgKGRl di0+bm90aWZ5X29wcy0+dXNlcl9tZXNzYWdlX2hhbmRsZXIpIHsNCj4gPiArCQl1c2VyX2hhbmRs ZXJfcmVzdWx0ID0gZGV2LT5ub3RpZnlfb3BzLQ0KPiA+dXNlcl9tZXNzYWdlX2hhbmRsZXIoDQo+ ID4gKwkJCQlkZXYtPnZpZCwgJm1zZywNCj4gUlRFX1ZIT1NUX1VTRVJfTVNHX0VORCk7DQo+ID4g Kw0KPiA+ICsJCWlmICh1c2VyX2hhbmRsZXJfcmVzdWx0ID09DQo+IFJURV9WSE9TVF9VU0VSX01T R19SRVNVTFRfRkFJTEVEKQ0KPiA+ICsJCQlyZXR1cm4gLTE7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ ICAgCWlmIChtc2cuZmxhZ3MgJiBWSE9TVF9VU0VSX05FRURfUkVQTFkpIHsNCj4gPiAgIAkJbXNn LnBheWxvYWQudTY0ID0gISFyZXQ7DQo+ID4gICAJCW1zZy5zaXplID0gc2l6ZW9mKG1zZy5wYXls b2FkLnU2NCk7DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5o IGIvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmgNCj4gPiBpbmRleCBkNGJkNjA0YjlkNmIu LmNmM2YwZGEwZWM0MSAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3Vz ZXIuaA0KPiA+ICsrKyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5oDQo+ID4gQEAgLTEw LDE3ICsxMCw2IEBADQo+ID4NCj4gPiAgICNpbmNsdWRlICJydGVfdmhvc3QuaCINCj4gPg0KPiA+ IC0vKiByZWZlciB0byBody92aXJ0aW8vdmhvc3QtdXNlci5jICovDQo+ID4gLQ0KPiA+IC0jZGVm aW5lIFZIT1NUX01FTU9SWV9NQVhfTlJFR0lPTlMgOA0KPiA+IC0NCj4gPiAtI2RlZmluZSBWSE9T VF9VU0VSX1BST1RPQ09MX0ZfTVEJMA0KPiA+IC0jZGVmaW5lIFZIT1NUX1VTRVJfUFJPVE9DT0xf Rl9MT0dfU0hNRkQJMQ0KPiA+IC0jZGVmaW5lIFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9SQVJQCTIN Cj4gPiAtI2RlZmluZSBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfUkVQTFlfQUNLCTMNCj4gPiAtI2Rl ZmluZSBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfTkVUX01UVSA0DQo+ID4gLSNkZWZpbmUgVkhPU1Rf VVNFUl9QUk9UT0NPTF9GX1NMQVZFX1JFUSA1DQo+ID4gLQ0KPiA+ICAgI2RlZmluZSBWSE9TVF9V U0VSX1BST1RPQ09MX0ZFQVRVUkVTCSgoMVVMTCA8PA0KPiBWSE9TVF9VU0VSX1BST1RPQ09MX0Zf TVEpIHwgXA0KPiA+ICAgCQkJCQkgKDFVTEwgPDwNCj4gVkhPU1RfVVNFUl9QUk9UT0NPTF9GX0xP R19TSE1GRCkgfFwNCj4gPiAgIAkJCQkJICgxVUxMIDw8DQo+IFZIT1NUX1VTRVJfUFJPVE9DT0xf Rl9SQVJQKSB8IFwNCj4gPiBAQCAtMjgsODMgKzE3LDYgQEANCj4gPiAgIAkJCQkJICgxVUxMIDw8 DQo+IFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9ORVRfTVRVKSB8IFwNCj4gPiAgIAkJCQkJICgxVUxM IDw8DQo+IFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9TTEFWRV9SRVEpKQ0KPiA+DQo+ID4gLXR5cGVk ZWYgZW51bSBWaG9zdFVzZXJSZXF1ZXN0IHsNCj4gPiAtCVZIT1NUX1VTRVJfTk9ORSA9IDAsDQo+ ID4gLQlWSE9TVF9VU0VSX0dFVF9GRUFUVVJFUyA9IDEsDQo+ID4gLQlWSE9TVF9VU0VSX1NFVF9G RUFUVVJFUyA9IDIsDQo+ID4gLQlWSE9TVF9VU0VSX1NFVF9PV05FUiA9IDMsDQo+ID4gLQlWSE9T VF9VU0VSX1JFU0VUX09XTkVSID0gNCwNCj4gPiAtCVZIT1NUX1VTRVJfU0VUX01FTV9UQUJMRSA9 IDUsDQo+ID4gLQlWSE9TVF9VU0VSX1NFVF9MT0dfQkFTRSA9IDYsDQo+ID4gLQlWSE9TVF9VU0VS X1NFVF9MT0dfRkQgPSA3LA0KPiA+IC0JVkhPU1RfVVNFUl9TRVRfVlJJTkdfTlVNID0gOCwNCj4g PiAtCVZIT1NUX1VTRVJfU0VUX1ZSSU5HX0FERFIgPSA5LA0KPiA+IC0JVkhPU1RfVVNFUl9TRVRf VlJJTkdfQkFTRSA9IDEwLA0KPiA+IC0JVkhPU1RfVVNFUl9HRVRfVlJJTkdfQkFTRSA9IDExLA0K PiA+IC0JVkhPU1RfVVNFUl9TRVRfVlJJTkdfS0lDSyA9IDEyLA0KPiA+IC0JVkhPU1RfVVNFUl9T RVRfVlJJTkdfQ0FMTCA9IDEzLA0KPiA+IC0JVkhPU1RfVVNFUl9TRVRfVlJJTkdfRVJSID0gMTQs DQo+ID4gLQlWSE9TVF9VU0VSX0dFVF9QUk9UT0NPTF9GRUFUVVJFUyA9IDE1LA0KPiA+IC0JVkhP U1RfVVNFUl9TRVRfUFJPVE9DT0xfRkVBVFVSRVMgPSAxNiwNCj4gPiAtCVZIT1NUX1VTRVJfR0VU X1FVRVVFX05VTSA9IDE3LA0KPiA+IC0JVkhPU1RfVVNFUl9TRVRfVlJJTkdfRU5BQkxFID0gMTgs DQo+ID4gLQlWSE9TVF9VU0VSX1NFTkRfUkFSUCA9IDE5LA0KPiA+IC0JVkhPU1RfVVNFUl9ORVRf U0VUX01UVSA9IDIwLA0KPiA+IC0JVkhPU1RfVVNFUl9TRVRfU0xBVkVfUkVRX0ZEID0gMjEsDQo+ ID4gLQlWSE9TVF9VU0VSX0lPVExCX01TRyA9IDIyLA0KPiA+IC0JVkhPU1RfVVNFUl9NQVgNCj4g PiAtfSBWaG9zdFVzZXJSZXF1ZXN0Ow0KPiA+IC0NCj4gPiAtdHlwZWRlZiBlbnVtIFZob3N0VXNl clNsYXZlUmVxdWVzdCB7DQo+ID4gLQlWSE9TVF9VU0VSX1NMQVZFX05PTkUgPSAwLA0KPiA+IC0J VkhPU1RfVVNFUl9TTEFWRV9JT1RMQl9NU0cgPSAxLA0KPiA+IC0JVkhPU1RfVVNFUl9TTEFWRV9N QVgNCj4gPiAtfSBWaG9zdFVzZXJTbGF2ZVJlcXVlc3Q7DQo+ID4gLQ0KPiA+IC10eXBlZGVmIHN0 cnVjdCBWaG9zdFVzZXJNZW1vcnlSZWdpb24gew0KPiA+IC0JdWludDY0X3QgZ3Vlc3RfcGh5c19h ZGRyOw0KPiA+IC0JdWludDY0X3QgbWVtb3J5X3NpemU7DQo+ID4gLQl1aW50NjRfdCB1c2Vyc3Bh Y2VfYWRkcjsNCj4gPiAtCXVpbnQ2NF90IG1tYXBfb2Zmc2V0Ow0KPiA+IC19IFZob3N0VXNlck1l bW9yeVJlZ2lvbjsNCj4gPiAtDQo+ID4gLXR5cGVkZWYgc3RydWN0IFZob3N0VXNlck1lbW9yeSB7 DQo+ID4gLQl1aW50MzJfdCBucmVnaW9uczsNCj4gPiAtCXVpbnQzMl90IHBhZGRpbmc7DQo+ID4g LQlWaG9zdFVzZXJNZW1vcnlSZWdpb24NCj4gcmVnaW9uc1tWSE9TVF9NRU1PUllfTUFYX05SRUdJ T05TXTsNCj4gPiAtfSBWaG9zdFVzZXJNZW1vcnk7DQo+ID4gLQ0KPiA+IC10eXBlZGVmIHN0cnVj dCBWaG9zdFVzZXJMb2cgew0KPiA+IC0JdWludDY0X3QgbW1hcF9zaXplOw0KPiA+IC0JdWludDY0 X3QgbW1hcF9vZmZzZXQ7DQo+ID4gLX0gVmhvc3RVc2VyTG9nOw0KPiA+IC0NCj4gPiAtdHlwZWRl ZiBzdHJ1Y3QgVmhvc3RVc2VyTXNnIHsNCj4gPiAtCXVuaW9uIHsNCj4gPiAtCQlWaG9zdFVzZXJS ZXF1ZXN0IG1hc3RlcjsNCj4gPiAtCQlWaG9zdFVzZXJTbGF2ZVJlcXVlc3Qgc2xhdmU7DQo+ID4g LQl9IHJlcXVlc3Q7DQo+ID4gLQ0KPiA+IC0jZGVmaW5lIFZIT1NUX1VTRVJfVkVSU0lPTl9NQVNL ICAgICAweDMNCj4gPiAtI2RlZmluZSBWSE9TVF9VU0VSX1JFUExZX01BU0sgICAgICAgKDB4MSA8 PCAyKQ0KPiA+IC0jZGVmaW5lIFZIT1NUX1VTRVJfTkVFRF9SRVBMWQkJKDB4MSA8PCAzKQ0KPiA+ IC0JdWludDMyX3QgZmxhZ3M7DQo+ID4gLQl1aW50MzJfdCBzaXplOyAvKiB0aGUgZm9sbG93aW5n IHBheWxvYWQgc2l6ZSAqLw0KPiA+IC0JdW5pb24gew0KPiA+IC0jZGVmaW5lIFZIT1NUX1VTRVJf VlJJTkdfSURYX01BU0sgICAweGZmDQo+ID4gLSNkZWZpbmUgVkhPU1RfVVNFUl9WUklOR19OT0ZE X01BU0sgICgweDE8PDgpDQo+ID4gLQkJdWludDY0X3QgdTY0Ow0KPiA+IC0JCXN0cnVjdCB2aG9z dF92cmluZ19zdGF0ZSBzdGF0ZTsNCj4gPiAtCQlzdHJ1Y3Qgdmhvc3RfdnJpbmdfYWRkciBhZGRy Ow0KPiA+IC0JCVZob3N0VXNlck1lbW9yeSBtZW1vcnk7DQo+ID4gLQkJVmhvc3RVc2VyTG9nICAg IGxvZzsNCj4gPiAtCQlzdHJ1Y3Qgdmhvc3RfaW90bGJfbXNnIGlvdGxiOw0KPiA+IC0JfSBwYXls b2FkOw0KPiA+IC0JaW50IGZkc1tWSE9TVF9NRU1PUllfTUFYX05SRUdJT05TXTsNCj4gPiAtfSBf X2F0dHJpYnV0ZSgocGFja2VkKSkgVmhvc3RVc2VyTXNnOw0KPiA+IC0NCj4gPiAtI2RlZmluZSBW SE9TVF9VU0VSX0hEUl9TSVpFIG9mZnNldG9mKFZob3N0VXNlck1zZywgcGF5bG9hZC51NjQpDQo+ ID4gLQ0KPiA+ICAgLyogVGhlIHZlcnNpb24gb2YgdGhlIHByb3RvY29sIHdlIHN1cHBvcnQgKi8N Cj4gPiAgICNkZWZpbmUgVkhPU1RfVVNFUl9WRVJTSU9OICAgIDB4MQ0KPiA+DQo+ID4NCg==