From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id C344F239; Thu, 8 Nov 2018 04:03:17 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Nov 2018 19:03:16 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,478,1534834800"; d="scan'208";a="90339113" Received: from pgsmsx111.gar.corp.intel.com ([10.108.55.200]) by orsmga008.jf.intel.com with ESMTP; 07 Nov 2018 19:03:15 -0800 Received: from pgsmsx103.gar.corp.intel.com ([169.254.2.114]) by PGSMSX111.gar.corp.intel.com ([169.254.2.208]) with mapi id 14.03.0415.000; Thu, 8 Nov 2018 10:58:56 +0800 From: "Zhao1, Wei" To: Chas Williams <3chas3@gmail.com>, Luca Boccassi , "dev@dpdk.org" CC: "Lu, Wenzhuo" , "Ananyev, Konstantin" , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH] net/ixgbe: reduce PF mailbox interrupt rate Thread-Index: AQHUNKKC3OuJ6g/U/USeuorm26D0SKVEim3QgAAc8QCAAQztkA== Date: Thu, 8 Nov 2018 02:58:55 +0000 Message-ID: References: <20180815141430.13421-1-bluca@debian.org> <45b8b29e-6310-c906-5d22-e9797a81547a@gmail.com> In-Reply-To: <45b8b29e-6310-c906-5d22-e9797a81547a@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [172.30.20.205] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: reduce PF mailbox interrupt rate 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, 08 Nov 2018 03:03:18 -0000 SGnvvIxDaGFzIFdpbGxpYW1zDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBG cm9tOiBDaGFzIFdpbGxpYW1zIFttYWlsdG86M2NoYXMzQGdtYWlsLmNvbV0NCj4gU2VudDogVGh1 cnNkYXksIE5vdmVtYmVyIDgsIDIwMTggMjo1NSBBTQ0KPiBUbzogWmhhbzEsIFdlaSA8d2VpLnpo YW8xQGludGVsLmNvbT47IEx1Y2EgQm9jY2Fzc2kgPGJsdWNhQGRlYmlhbi5vcmc+Ow0KPiBkZXZA ZHBkay5vcmcNCj4gQ2M6IEx1LCBXZW56aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IEFuYW55 ZXYsIEtvbnN0YW50aW4NCj4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBzdGFibGVA ZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIXSBuZXQvaXhnYmU6IHJl ZHVjZSBQRiBtYWlsYm94IGludGVycnVwdCByYXRlDQo+IA0KPiANCj4gDQo+IE9uIDExLzA3LzIw MTggMDQ6MTcgQU0sIFpoYW8xLCBXZWkgd3JvdGU6DQo+ID4gSGksIEx1Y2EgQm9jY2Fzc2kNCj4g Pg0KPiA+ICAgICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBwYXRjaCBpcyB0byByZWR1Y2UgdGhlIG1h aWxib3ggaW50ZXJydXB0IGZyb20gdmYgdG8gcGYsDQo+IGJ1dCB0aGVyZSBzZWVtIHNvbWUgcG9p bnQgbmVlZCBmb3IgZGlzY3Vzc2lvbiBpbiB0aGlzIHBhdGNoLg0KPiA+DQo+ID4gRmlyc3QsIEkg ZG8gbm90IGtub3cgd2h5IGRvIHlvdSBjaGFuZ2UgY29kZSBvZiBmdW5jdGlvbg0KPiA+IGl4Z2Jl X2NoZWNrX21hY19saW5rX3ZmKCksIGJlY2F1c2UgaW4gcnRlX2V0aF9saW5rX2dldF9ub3dhaXQo KSBhbmQNCj4gcnRlX2V0aF9saW5rX2dldCgpLCBpdCB3aWxsIGNhbGwgaXhnYmVfZGV2X2xpbmtf dXBkYXRlKCktDQo+ID5peGdiZV9kZXZfbGlua191cGRhdGVfc2hhcmUoKS0+IGl4Z2JldmZfY2hl Y2tfbGluaygpIGZvciBWRiwgTk9UDQo+IGl4Z2JlX2NoZWNrX21hY19saW5rX3ZmKCkgaW4geW91 ciBwYXRjaCENCj4gPg0KPiA+IFNlY29uZCwgaW4gZnVuY3Rpb24gaXhnYmV2Zl9jaGVja19saW5r KCksIHRoZXJlIGlzIG1haWxib3ggbWVzc2FnZQ0KPiA+IHJlYWQgb3BlcmF0aW9uIGZvciB2Ziwg IiBpZiAobWJ4LT5vcHMucmVhZChodywgJmluX21zZywgMSwgMCkpIiwgdGhhdA0KPiA+IGlzIGl4 Z2JlX3JlYWRfbWJ4X3ZmKCkgLCBUaGlzIHdpbGwgY2F1c2UgaW50ZXJydXB0IGZyb20gdmYgdG8g cGYsIHRoaXMgaXMganVzdA0KPiB0aGUgcG9pbnQgb2YgdGhpcyBwYXRjaCwgaXQgaXMgYWxzbyB0 aGUgcHJvYmxlbSB0aGF0IHlvdSB3YW50IHRvIHNvbHZlLg0KPiA+IFNvLCB5b3UgdXNlIGF1dG9u ZWdfd2FpdF90b19jb21wbGV0ZSBmbGFnIHRvIGNvbnRyb2wgdGhpcyBtYWlsYm94DQo+IG1lc3Nh Z2UgcmVhZCBvcGVyYXRpb24sIG1heWJlIHlvdSB3aWxsIHVzZSBydGVfZXRoX2xpbmtfZ2V0X25v d2FpdCgpLA0KPiBXaGljaCBzZXQgYXV0b25lZ193YWl0X3RvX2NvbXBsZXRlID0gMCwgdGhlbiB0 aGUgaW50ZXJydXB0IGZyb20gdmYgdG8gcGYNCj4gY2FuIGJlIHJlZHVjZWQuDQo+ID4NCj4gPiBC dXQgIEkgZG8gbm90IHRoaW5rIHRoaXMgcGF0Y2ggaXMgbmVjZXNzYXJ5LCBiZWNhdXNlIGluDQo+ ID4gaXhnYmV2Zl9jaGVja19saW5rKCksIGl0LGhhcw0KPiANCj4gSSB0aGluayB5b3UgYXJlIHJp Z2h0IGhlcmUuIFRoaXMgcGF0Y2ggZGF0ZXMgdG8gYmVmb3JlIHRoZSBhZGRpdGlvbiBvZiB0aGUg dmYNCj4gYXJndW1lbnQgdG8gaXhnYmVfZGV2X2xpbmtfdXBkYXRlX3NoYXJlKCkgYW5kIHRoZSBz cGxpdCBvZiAubGlua191cGRhdGUNCj4gYmV0d2VlbiBpeGdiZSBhbmQgaXhnYmV2Zi4gIEF0IG9u ZSBwb2ludCwgdGhpcyBwYXRjaCB3YXMgZXNwZWNpYWxseSBiZW5lZmljaWFsDQo+IGlmIHlvdSB3 ZXJlIHJ1bm5pbmcgYm9uZGluZyAod2hpY2ggdGVuZHMgdG8gbWFrZSBxdWl0ZSBhIGZldyBsaW5r IHN0YXR1cw0KPiBjaGVja3MpLg0KDQpJZiB5b3UgaGF2ZSBvdGhlciBpZGVhIGJhc2VkIG9uIHRo aXMgcGF0Y2gsIEkgYW0gd2lsbGluZyB0byByZXZpZXcgYW5kIGFjay4NCg0KPiANCj4gU28gdGhp cyBwYXRjaCBwcm9iYWJseSBoYXNuJ3QgYmVlbiBoZWxwaW5nIGF0IHRoaXMgcG9pbnQuICBJIHdp bGwgdHJ5IHRvIGdldCBzb21lDQo+IHRpbWUgdG8gbG9jYWxseSB0ZXN0IHRoaXMuDQo+IA0KPiA+ ICINCj4gPiBib29sIG5vX3BmbGlua19jaGVjayA9IHdhaXRfdG9fY29tcGxldGUgPT0gMDsNCj4g Pg0KPiA+ICAgICAgICAgICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCj4gPg0KPiA+ ICAgICAgICAgICAgICAgICAgaWYgKG5vX3BmbGlua19jaGVjaykgew0KPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmICgqc3BlZWQgPT0gSVhHQkVfTElOS19TUEVFRF9VTktO T1dOKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtYWMtPmdldF9saW5rX3N0YXR1cyA9IHRydWU7DQo+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZWxzZQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtYWMtPmdldF9saW5rX3N0YXR1cw0KPiA+ID0gZmFsc2U7DQo+ID4NCj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsNCj4gPiAgICAgICAg ICAgICAgICAgIH0NCj4gPiAiDQo+ID4gQ29tbWVudCBvZiAiZm9yIGEgcXVpY2sgbGluayBzdGF0 dXMgY2hlY2tpbmcsIHdhaXRfdG9fY29tcGVsZXQgPT0gMCwgc2tpcA0KPiBQRiBsaW5rIHN0YXR1 cyBjaGVja2luZyAiIGlzIGNsZWFyLg0KPiA+DQo+ID4gVGhhdCBtZWFucyBpbiBydGVfZXRoX2xp bmtfZ2V0X25vd2FpdCgpLCBjb2RlIHdpbGwgc2tpcCB0aGlzIG1haWxib3gNCj4gPiByZWFkIGlu dGVycnVwdCwgb25seSBpbg0KPiA+IHJ0ZV9ldGhfbGlua19nZXQoKSB0aGVyZSB3aWxsIGJlIHRo aXMgaW50ZXJydXB0LCBzbyBJIHRoaW5rIHdoYXQgeW91DQo+ID4gbmVlZCB0byBpcyBqdXN0IHJl cGxhY2UNCj4gPiBydGVfZXRoX2xpbmtfZ2V0KCkgd2l0aCBydGVfZXRoX2xpbmtfZ2V0X25vd2Fp dCgpIGluIHlvdXIgQVBQLCB0aGF0DQo+ID4gd2lsbCByZWR1Y2UgaW50ZXJydXB0IGZyb20gdmYg dG8gcGYgaW4gbWFpbGJveCByZWFkLg0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPj4gRnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5vcmddIE9u IEJlaGFsZiBPZiBMdWNhIEJvY2Nhc3NpDQo+ID4+IFNlbnQ6IFdlZG5lc2RheSwgQXVndXN0IDE1 LCAyMDE4IDEwOjE1IFBNDQo+ID4+IFRvOiBkZXZAZHBkay5vcmcNCj4gPj4gQ2M6IEx1LCBXZW56 aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gPj4gPGtv bnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBMdWNhIEJvY2Nhc3NpIDxibHVjYUBkZWJpYW4u b3JnPjsNCj4gPj4gc3RhYmxlQGRwZGsub3JnDQo+ID4+IFN1YmplY3Q6IFtkcGRrLWRldl0gW1BB VENIXSBuZXQvaXhnYmU6IHJlZHVjZSBQRiBtYWlsYm94IGludGVycnVwdA0KPiA+PiByYXRlDQo+ ID4+DQo+ID4+IFdlIGhhdmUgb2JzZXJ2ZWQgaGlnaCByYXRlIG9mIE5JQyBQRiBpbnRlcnJ1cHRz IHdoZW4gVk5GIGlzIHVzaW5nDQo+ID4+IERQREsgQVBJcyBydGVfZXRoX2xpbmtfZ2V0X25vd2Fp dCgpIGFuZCBydGVfZXRoX2xpbmtfZ2V0KCkgZnVuY3Rpb25zLA0KPiA+PiBhcyB0aGV5IGFyZSBj YXVzaW5nIFZGIGRyaXZlciB0byBzZW5kIG1hbnkgTUJPWCBBQ0sgbWVzc2FnZXMuDQo+ID4+DQo+ ID4+IFdpdGggdGhlc2UgY2hhbmdlcywgdGhlIGludGVycnVwdCByYXRlcyBnbyBkb3duIHNpZ25p ZmljYW50bHkuIEhlcmUncw0KPiA+PiBzb21lIHRlc3RpbmcgcmVzdWx0czoNCj4gPj4NCj4gPj4g V2l0aG91dCB0aGUgcGF0Y2g6DQo+ID4+DQo+ID4+ICQgZWdyZXAgJ0NQVXxlbnMxZicgL3Byb2Mv aW50ZXJydXB0cyA7IHNsZWVwIDEwOyBlZ3JlcCAnQ1BVfGVuczFmJw0KPiA+PiAvcHJvYy9pbnRl cnJ1cHRzDQo+ID4+ICAgICAgICAgICAgICBDUFUwICAgICAgIENQVTEgICAgICAgQ1BVMiAgICAg ICBDUFUzICAgICAgIENQVTQgICAgICAgQ1BVNSAgICAgICBDUFU2ICAgICAgIENQVTcNCj4gPj4g Q1BVOCAgICAgICBDUFU5ICAgICAgIENQVTEwICAgICAgQ1BVMTEgICAgICBDUFUxMiAgICAgIENQ VTEzICAgICAgQ1BVMTQgICAgICBDUFUxNQ0KPiA+PiAgICAzNDogICAgICAgICA4OCAgICAgICAg ICAwICAgICAgICAgIDAgICAgICAgICAgMCAgICAgICAgICAwICAgICAgICAgNDEgICAgICAgICAz MCAgICAgICAgNTA5ICAgICAgICAgIDAgICAgICAgICAgMA0KPiAzNTANCj4gPj4gMjQgICAgICAg ICA4OCAgICAgICAgMTE0ICAgICAgICA0NjEgICAgICAgIDU2MiAgIFBDSS1NU0kgMTU3Mjg2NC1l ZGdlICAgICAgZW5zMWYwLVR4UngtMA0KPiA+PiAgICAzNTogICAgICAgICA0OSAgICAgICAgIDI0 ICAgICAgICAgIDAgICAgICAgICAgMCAgICAgICAgIDY1ICAgICAgICAxMzAgICAgICAgICA2NCAg ICAgICAgIDI5ICAgICAgICAgNjcgICAgICAgICAgMA0KPiAxMA0KPiA+PiAwICAgICAgICAgIDAg ICAgICAgICA0NiAgICAgICAgIDM4ICAgICAgICA3NjQgICBQQ0ktTVNJIDE1NzI4NjUtZWRnZSAg ICAgIGVuczFmMC1UeFJ4LTENCj4gPj4gICAgMzY6ICAgICAgICAgNTMgICAgICAgICAgMCAgICAg ICAgICAwICAgICAgICAgNjQgICAgICAgICAxNSAgICAgICAgIDg1ICAgICAgICAxMzIgICAgICAg ICA3MSAgICAgICAgMTA4ICAgICAgICAgIDANCj4gPj4gMzAgICAgICAgICAgMCAgICAgICAgMTY1 ICAgICAgICAyMTUgICAgICAgIDMwMyAgICAgICAgMTA0ICAgUENJLU1TSSAxNTcyODY2LWVkZ2Ug ICAgICBlbnMxZjAtDQo+ID4+IFR4UngtMg0KPiA+PiAgICAzNzogICAgICAgICA0NiAgICAgICAg MTk2ICAgICAgICAgIDAgICAgICAgICAgMCAgICAgICAgIDEwICAgICAgICAgNDggICAgICAgICA2 MiAgICAgICAgIDY4ICAgICAgICAgNTEgICAgICAgICAgMA0KPiAwDQo+ID4+IDAgICAgICAgIDEw MyAgICAgICAgIDgyICAgICAgICAgNTQgICAgICAgIDE5MiAgIFBDSS1NU0kgMTU3Mjg2Ny1lZGdl ICAgICAgZW5zMWYwLVR4UngtMw0KPiA+PiAgICAzODogICAgICAgIDIyNiAgICAgICAgICAwICAg ICAgICAgIDAgICAgICAgICAgMCAgICAgICAgMTU5ICAgICAgICAxNDUgICAgICAgIDc0OSAgICAg ICAgMjY1ICAgICAgICAgIDAgICAgICAgICAgMA0KPiA+PiAyMDIgICAgICAgICAgMCAgICAgIDY5 MjI5ICAgICAgICAxNjYgICAgICAgIDQ1MCAgICAgICAgICAwICAgUENJLU1TSSAxNTcyODY4LWVk Z2UgICAgICBlbnMxZjANCj4gPj4gICAgNTI6ICAgICAgICAgOTUgICAgICAgIDg5NiAgICAgICAg ICAwICAgICAgICAgIDAgICAgICAgICAgMCAgICAgICAgIDE4ICAgICAgICAgNTMgICAgICAgICAg MCAgICAgICAgNDk0ICAgICAgICAgIDANCj4gMA0KPiA+PiAwICAgICAgICAgIDAgICAgICAgIDI2 NSAgICAgICAgIDc5ICAgICAgICAxMjQgICBQQ0ktTVNJIDE1NzQ5MTItZWRnZSAgICAgIGVuczFm MS1UeFJ4LTANCj4gPj4gICAgNTM6ICAgICAgICAgNTAgICAgICAgICAgMCAgICAgICAgIDE4ICAg ICAgICAgIDAgICAgICAgICA3MiAgICAgICAgIDMzICAgICAgICAgIDAgICAgICAgIDE2OCAgICAg ICAgMzMwICAgICAgICAgIDANCj4gMA0KPiA+PiAwICAgICAgICAxNDEgICAgICAgICAyMiAgICAg ICAgIDEyICAgICAgICAgNjUgICBQQ0ktTVNJIDE1NzQ5MTMtZWRnZSAgICAgIGVuczFmMS1UeFJ4 LTENCj4gPj4gICAgNTQ6ICAgICAgICAgNjUgICAgICAgICAgMCAgICAgICAgICAwICAgICAgICAg IDAgICAgICAgIDIzOSAgICAgICAgMTA0ICAgICAgICAxNjYgICAgICAgICA0OSAgICAgICAgNDQy ICAgICAgICAgIDANCj4gPj4gMCAgICAgICAgICAwICAgICAgICAxMjYgICAgICAgICAyNiAgICAg ICAgMzA3ICAgICAgICAgIDAgICBQQ0ktTVNJIDE1NzQ5MTQtZWRnZSAgICAgIGVuczFmMS0NCj4g VHhSeC0yDQo+ID4+ICAgIDU1OiAgICAgICAgIDU3ICAgICAgICAgIDAgICAgICAgICAgMCAgICAg ICAgICAwICAgICAgICAxMjMgICAgICAgICAzNSAgICAgICAgIDgzICAgICAgICAgNTQgICAgICAg IDE1NyAgICAgICAgMTA2DQo+ID4+IDAgICAgICAgICAgMCAgICAgICAgIDI2ICAgICAgICAgMjkg ICAgICAgIDMxMiAgICAgICAgIDk3ICAgUENJLU1TSSAxNTc0OTE1LWVkZ2UgICAgICBlbnMxZjEt DQo+IFR4UngtMw0KPiA+PiAgICA1NjogICAgICAgIDIzMiAgICAgICAgICAwICAgICAgMTM5MTAg ICAgICAgICAgMCAgICAgICAgIDE2ICAgICAgICAgMjEgICAgICAgICAgMCAgICAgIDU0NDIyICAg ICAgICAgIDAgICAgICAgICAgMA0KPiA+PiAwICAgICAgICAgMjQgICAgICAgICAyNSAgICAgICAg ICAwICAgICAgICAgNzggICAgICAgICAgMCAgIFBDSS1NU0kgMTU3NDkxNi1lZGdlICAgICAgZW5z MWYxDQo+ID4+ICAgICAgICAgICAgICBDUFUwICAgICAgIENQVTEgICAgICAgQ1BVMiAgICAgICBD UFUzICAgICAgIENQVTQgICAgICAgQ1BVNSAgICAgICBDUFU2ICAgICAgIENQVTcNCj4gPj4gQ1BV OCAgICAgICBDUFU5ICAgICAgIENQVTEwICAgICAgQ1BVMTEgICAgICBDUFUxMiAgICAgIENQVTEz ICAgICAgQ1BVMTQgICAgICBDUFUxNQ0KPiA+PiAgICAzNDogICAgICAgICA4OCAgICAgICAgICAw ICAgICAgICAgIDAgICAgICAgICAgMCAgICAgICAgICAwICAgICAgICAgNDEgICAgICAgICAzMCAg ICAgICAgNTA5ICAgICAgICAgIDAgICAgICAgICAgMA0KPiAzNTANCj4gPj4gMjQgICAgICAgICA4 OCAgICAgICAgMTE5ICAgICAgICA0NjEgICAgICAgIDU2MiAgIFBDSS1NU0kgMTU3Mjg2NC1lZGdl ICAgICAgZW5zMWYwLVR4UngtMA0KPiA+PiAgICAzNTogICAgICAgICA0OSAgICAgICAgIDI0ICAg ICAgICAgIDAgICAgICAgICAgMCAgICAgICAgIDY1ICAgICAgICAxMzAgICAgICAgICA2NCAgICAg ICAgIDI5ICAgICAgICAgNjcgICAgICAgICAgMA0KPiAxMA0KPiA+PiAwICAgICAgICAgIDAgICAg ICAgICA0NiAgICAgICAgIDM4ICAgICAgICA3NzEgICBQQ0ktTVNJIDE1NzI4NjUtZWRnZSAgICAg IGVuczFmMC1UeFJ4LTENCj4gPj4gICAgMzY6ICAgICAgICAgNTMgICAgICAgICAgMCAgICAgICAg ICAwICAgICAgICAgNjQgICAgICAgICAxNSAgICAgICAgIDg1ICAgICAgICAxMzIgICAgICAgICA3 MSAgICAgICAgMTA4ICAgICAgICAgIDANCj4gPj4gMzAgICAgICAgICAgMCAgICAgICAgMTY1ICAg ICAgICAyMTUgICAgICAgIDMwMyAgICAgICAgMTEzICAgUENJLU1TSSAxNTcyODY2LWVkZ2UgICAg ICBlbnMxZjAtDQo+ID4+IFR4UngtMg0KPiA+PiAgICAzNzogICAgICAgICA0NiAgICAgICAgMTk2 ICAgICAgICAgIDAgICAgICAgICAgMCAgICAgICAgIDEwICAgICAgICAgNDggICAgICAgICA2MiAg ICAgICAgIDY4ICAgICAgICAgNTYgICAgICAgICAgMA0KPiAwDQo+ID4+IDAgICAgICAgIDEwMyAg ICAgICAgIDgyICAgICAgICAgNTQgICAgICAgIDE5MiAgIFBDSS1NU0kgMTU3Mjg2Ny1lZGdlICAg ICAgZW5zMWYwLVR4UngtMw0KPiA+PiAgICAzODogICAgICAgIDIyNiAgICAgICAgICAwICAgICAg ICAgIDAgICAgICAgICAgMCAgICAgICAgMTU5ICAgICAgICAxNDUgICAgICAgIDc0OSAgICAgICAg MjY1ICAgICAgICAgIDAgICAgICAgICAgMA0KPiA+PiAyMDIgICAgICAgICAgMCAgICAgIDcxMjgx ICAgICAgICAxNjYgICAgICAgIDQ1MCAgICAgICAgICAwICAgUENJLU1TSSAxNTcyODY4LWVkZ2Ug ICAgICBlbnMxZjANCj4gPj4gICAgNTI6ICAgICAgICAgOTUgICAgICAgIDg5NiAgICAgICAgICAw ICAgICAgICAgIDAgICAgICAgICAgMCAgICAgICAgIDE4ICAgICAgICAgNTMgICAgICAgICAgMCAg ICAgICAgNDk0ICAgICAgICAgIDANCj4gMA0KPiA+PiAwICAgICAgICAgIDAgICAgICAgIDI2NSAg ICAgICAgIDc5ICAgICAgICAxMzMgICBQQ0ktTVNJIDE1NzQ5MTItZWRnZSAgICAgIGVuczFmMS1U eFJ4LTANCj4gPj4gICAgNTM6ICAgICAgICAgNTAgICAgICAgICAgMCAgICAgICAgIDE4ICAgICAg ICAgIDAgICAgICAgICA3MiAgICAgICAgIDMzICAgICAgICAgIDAgICAgICAgIDE3MyAgICAgICAg MzMwICAgICAgICAgIDANCj4gMA0KPiA+PiAwICAgICAgICAxNDEgICAgICAgICAyMiAgICAgICAg IDEyICAgICAgICAgNjUgICBQQ0ktTVNJIDE1NzQ5MTMtZWRnZSAgICAgIGVuczFmMS1UeFJ4LTEN Cj4gPj4gICAgNTQ6ICAgICAgICAgNjUgICAgICAgICAgMCAgICAgICAgICAwICAgICAgICAgIDAg ICAgICAgIDIzOSAgICAgICAgMTA0ICAgICAgICAxNjYgICAgICAgICA0OSAgICAgICAgNDQyICAg ICAgICAgIDANCj4gPj4gMCAgICAgICAgICAwICAgICAgICAxMjYgICAgICAgICAyNiAgICAgICAg MzEyICAgICAgICAgIDAgICBQQ0ktTVNJIDE1NzQ5MTQtZWRnZSAgICAgIGVuczFmMS0NCj4gVHhS eC0yDQo+ID4+ICAgIDU1OiAgICAgICAgIDU3ICAgICAgICAgIDAgICAgICAgICAgMCAgICAgICAg ICAwICAgICAgICAxMjMgICAgICAgICAzNSAgICAgICAgIDgzICAgICAgICAgNTkgICAgICAgIDE1 NyAgICAgICAgMTA2DQo+ID4+IDAgICAgICAgICAgMCAgICAgICAgIDI2ICAgICAgICAgMjkgICAg ICAgIDMxMiAgICAgICAgIDk3ICAgUENJLU1TSSAxNTc0OTE1LWVkZ2UgICAgICBlbnMxZjEtDQo+ IFR4UngtMw0KPiA+PiAgICA1NjogICAgICAgIDIzMiAgICAgICAgICAwICAgICAgMTU5MTAgICAg ICAgICAgMCAgICAgICAgIDE2ICAgICAgICAgMjEgICAgICAgICAgMCAgICAgIDU0NDIyICAgICAg ICAgIDAgICAgICAgICAgMA0KPiA+PiAwICAgICAgICAgMjQgICAgICAgICAyNSAgICAgICAgICAw ICAgICAgICAgNzggICAgICAgICAgMCAgIFBDSS1NU0kgMTU3NDkxNi1lZGdlICAgICAgZW5zMWYx DQo+ID4+DQo+ID4+IER1cmluZyB0aGUgMTBzIGludGVydmFsLCBDUFUyIGp1bXBlZCBieSAyMDAw IGludGVycnVwdHMsIENQVTEyIGJ5DQo+ID4+IDIwNTEgaW50ZXJydXB0cywgZm9yIGFib3V0IDIw MCBpbnRlcnJ1cHRzL3NlY29uZC4gVGhhdCdzIG9uIHRoZSBvcmRlcg0KPiA+PiBvZiB3aGF0IHdl IGV4cGVjdC4gSSB3b3VsZCBoYXZlIGd1ZXNzZWQgMTAwL3MgYnV0IHBlcmhhcHMgdGhlcmUgYXJl DQo+ID4+IHR3byBtYWlsYm94IG1lc3NhZ2VzLg0KPiA+Pg0KPiA+PiBXaXRoIHRoZSBwYXRjaDoN Cj4gPj4NCj4gPj4gJCBlZ3JlcCAnQ1BVfGVuczFmJyAvcHJvYy9pbnRlcnJ1cHRzIDsgc2xlZXAg MTA7IGVncmVwICdDUFV8ZW5zMWYnDQo+ID4+IC9wcm9jL2ludGVycnVwdHMNCj4gPj4gICAgICAg ICAgICAgIENQVTAgICAgICAgQ1BVMSAgICAgICBDUFUyICAgICAgIENQVTMgICAgICAgQ1BVNCAg ICAgICBDUFU1ICAgICAgIENQVTYgICAgICAgQ1BVNw0KPiA+PiBDUFU4ICAgICAgIENQVTkgICAg ICAgQ1BVMTAgICAgICBDUFUxMSAgICAgIENQVTEyICAgICAgQ1BVMTMgICAgICBDUFUxNCAgICAg IENQVTE1DQo+ID4+ICAgIDM0OiAgICAgICAgIDg4ICAgICAgICAgIDAgICAgICAgICAgMCAgICAg ICAgICAwICAgICAgICAgIDAgICAgICAgICAyNSAgICAgICAgIDE5ICAgICAgICAxNzcgICAgICAg ICAgMCAgICAgICAgICAwDQo+IDM1MA0KPiA+PiAyNCAgICAgICAgIDg4ICAgICAgICAxMDAgICAg ICAgIDM2MiAgICAgICAgNTU5ICAgUENJLU1TSSAxNTcyODY0LWVkZ2UgICAgICBlbnMxZjAtVHhS eC0wDQo+ID4+ICAgIDM1OiAgICAgICAgIDQ5ICAgICAgICAgMTkgICAgICAgICAgMCAgICAgICAg ICAwICAgICAgICAgNjUgICAgICAgIDEzMCAgICAgICAgIDY0ICAgICAgICAgMjkgICAgICAgICA2 NyAgICAgICAgICAwDQo+IDEwDQo+ID4+IDAgICAgICAgICAgMCAgICAgICAgIDQ2ICAgICAgICAg MzggICAgICAgIDU0MyAgIFBDSS1NU0kgMTU3Mjg2NS1lZGdlICAgICAgZW5zMWYwLVR4UngtMQ0K PiA+PiAgICAzNjogICAgICAgICA1MyAgICAgICAgICAwICAgICAgICAgIDAgICAgICAgICA2NCAg ICAgICAgIDE1ICAgICAgICAgNTMgICAgICAgICA4NSAgICAgICAgIDcxICAgICAgICAxMDggICAg ICAgICAgMA0KPiAyNA0KPiA+PiAwICAgICAgICAgODUgICAgICAgIDIxNSAgICAgICAgMjkyICAg ICAgICAgMzEgICBQQ0ktTVNJIDE1NzI4NjYtZWRnZSAgICAgIGVuczFmMC1UeFJ4LTINCj4gPj4g ICAgMzc6ICAgICAgICAgNDYgICAgICAgIDE5NiAgICAgICAgICAwICAgICAgICAgIDAgICAgICAg ICAxMCAgICAgICAgIDQzICAgICAgICAgNTcgICAgICAgICAzOSAgICAgICAgIDE5ICAgICAgICAg IDANCj4gMA0KPiA+PiAwICAgICAgICAgNzggICAgICAgICA2OSAgICAgICAgIDQ5ICAgICAgICAx NDkgICBQQ0ktTVNJIDE1NzI4NjctZWRnZSAgICAgIGVuczFmMC1UeFJ4LTMNCj4gPj4gICAgMzg6 ICAgICAgICAyMjYgICAgICAgICAgMCAgICAgICAgICAwICAgICAgICAgIDAgICAgICAgIDE1OSAg ICAgICAgMTQ1ICAgICAgICA3NDkgICAgICAgIDI0NyAgICAgICAgICAwICAgICAgICAgIDANCj4g Pj4gMjAyICAgICAgICAgIDAgICAgICA1ODI1MCAgICAgICAgICAwICAgICAgICA0NTAgICAgICAg ICAgMCAgIFBDSS1NU0kgMTU3Mjg2OC1lZGdlICAgICAgZW5zMWYwDQo+ID4+ICAgIDUyOiAgICAg ICAgIDk1ICAgICAgICA4OTYgICAgICAgICAgMCAgICAgICAgICAwICAgICAgICAgIDAgICAgICAg ICAxOCAgICAgICAgIDUzICAgICAgICAgIDAgICAgICAgIDE4OSAgICAgICAgICAwDQo+IDANCj4g Pj4gMCAgICAgICAgICAwICAgICAgICAyNjUgICAgICAgICA3OSAgICAgICAgIDI1ICAgUENJLU1T SSAxNTc0OTEyLWVkZ2UgICAgICBlbnMxZjEtVHhSeC0wDQo+ID4+ICAgIDUzOiAgICAgICAgIDUw ICAgICAgICAgIDAgICAgICAgICAxOCAgICAgICAgICAwICAgICAgICAgNzIgICAgICAgICAzMyAg ICAgICAgICAwICAgICAgICAgOTAgICAgICAgIDMzMCAgICAgICAgICAwDQo+IDANCj4gPj4gMCAg ICAgICAgMTM2ICAgICAgICAgIDUgICAgICAgICAxMiAgICAgICAgICAwICAgUENJLU1TSSAxNTc0 OTEzLWVkZ2UgICAgICBlbnMxZjEtVHhSeC0xDQo+ID4+ICAgIDU0OiAgICAgICAgIDY1ICAgICAg ICAgIDAgICAgICAgICAgMCAgICAgICAgICAwICAgICAgICAgMTAgICAgICAgIDEwNCAgICAgICAg MTY2ICAgICAgICAgNDkgICAgICAgIDQ0MiAgICAgICAgICAwDQo+IDANCj4gPj4gMCAgICAgICAg MTI2ICAgICAgICAgMjYgICAgICAgIDIyNiAgICAgICAgICAwICAgUENJLU1TSSAxNTc0OTE0LWVk Z2UgICAgICBlbnMxZjEtVHhSeC0yDQo+ID4+ICAgIDU1OiAgICAgICAgIDU3ICAgICAgICAgIDAg ICAgICAgICAgMCAgICAgICAgICAwICAgICAgICAgNjEgICAgICAgICAzNSAgICAgICAgIDgzICAg ICAgICAgMzAgICAgICAgIDE1NyAgICAgICAgMTAxDQo+IDANCj4gPj4gMCAgICAgICAgIDI2ICAg ICAgICAgMTUgICAgICAgIDMxMiAgICAgICAgICAwICAgUENJLU1TSSAxNTc0OTE1LWVkZ2UgICAg ICBlbnMxZjEtVHhSeC0zDQo+ID4+ICAgIDU2OiAgICAgICAgMjMyICAgICAgICAgIDAgICAgICAg MjA2MiAgICAgICAgICAwICAgICAgICAgMTYgICAgICAgICAyMSAgICAgICAgICAwICAgICAgNTQ0 MjIgICAgICAgICAgMCAgICAgICAgICAwDQo+ID4+IDAgICAgICAgICAyNCAgICAgICAgIDI1ICAg ICAgICAgIDAgICAgICAgICA3OCAgICAgICAgICAwICAgUENJLU1TSSAxNTc0OTE2LWVkZ2UgICAg ICBlbnMxZjENCj4gPj4gICAgICAgICAgICAgIENQVTAgICAgICAgQ1BVMSAgICAgICBDUFUyICAg ICAgIENQVTMgICAgICAgQ1BVNCAgICAgICBDUFU1ICAgICAgIENQVTYgICAgICAgQ1BVNw0KPiA+ PiBDUFU4ICAgICAgIENQVTkgICAgICAgQ1BVMTAgICAgICBDUFUxMSAgICAgIENQVTEyICAgICAg Q1BVMTMgICAgICBDUFUxNCAgICAgIENQVTE1DQo+ID4+ICAgIDM0OiAgICAgICAgIDg4ICAgICAg ICAgIDAgICAgICAgICAgMCAgICAgICAgICAwICAgICAgICAgIDAgICAgICAgICAyNSAgICAgICAg IDE5ICAgICAgICAxNzcgICAgICAgICAgMCAgICAgICAgICAwDQo+IDM1MA0KPiA+PiAyNCAgICAg ICAgIDg4ICAgICAgICAxMDIgICAgICAgIDM2MiAgICAgICAgNTYyICAgUENJLU1TSSAxNTcyODY0 LWVkZ2UgICAgICBlbnMxZjAtVHhSeC0wDQo+ID4+ICAgIDM1OiAgICAgICAgIDQ5ICAgICAgICAg MTkgICAgICAgICAgMCAgICAgICAgICAwICAgICAgICAgNjUgICAgICAgIDEzMCAgICAgICAgIDY0 ICAgICAgICAgMjkgICAgICAgICA2NyAgICAgICAgICAwDQo+IDEwDQo+ID4+IDAgICAgICAgICAg MCAgICAgICAgIDQ2ICAgICAgICAgMzggICAgICAgIDU0OCAgIFBDSS1NU0kgMTU3Mjg2NS1lZGdl ICAgICAgZW5zMWYwLVR4UngtMQ0KPiA+PiAgICAzNjogICAgICAgICA1MyAgICAgICAgICAwICAg ICAgICAgIDAgICAgICAgICA2NCAgICAgICAgIDE1ICAgICAgICAgNTMgICAgICAgICA4NSAgICAg ICAgIDcxICAgICAgICAxMDggICAgICAgICAgMA0KPiAyNA0KPiA+PiAwICAgICAgICAgODUgICAg ICAgIDIxNSAgICAgICAgMjkyICAgICAgICAgMzYgICBQQ0ktTVNJIDE1NzI4NjYtZWRnZSAgICAg IGVuczFmMC1UeFJ4LTINCj4gPj4gICAgMzc6ICAgICAgICAgNDYgICAgICAgIDE5NiAgICAgICAg ICAwICAgICAgICAgIDAgICAgICAgICAxMCAgICAgICAgIDQ1ICAgICAgICAgNTcgICAgICAgICAz OSAgICAgICAgIDE5ICAgICAgICAgIDANCj4gMA0KPiA+PiAwICAgICAgICAgNzggICAgICAgICA2 OSAgICAgICAgIDQ5ICAgICAgICAxNTIgICBQQ0ktTVNJIDE1NzI4NjctZWRnZSAgICAgIGVuczFm MC1UeFJ4LTMNCj4gPj4gICAgMzg6ICAgICAgICAyMjYgICAgICAgICAgMCAgICAgICAgICAwICAg ICAgICAgIDAgICAgICAgIDE1OSAgICAgICAgMTQ1ICAgICAgICA3NDkgICAgICAgIDI0NyAgICAg ICAgICAwICAgICAgICAgIDANCj4gPj4gMjAyICAgICAgICAgIDAgICAgICA1ODI1OSAgICAgICAg ICAwICAgICAgICA0NTAgICAgICAgICAgMCAgIFBDSS1NU0kgMTU3Mjg2OC1lZGdlICAgICAgZW5z MWYwDQo+ID4+ICAgIDUyOiAgICAgICAgIDk1ICAgICAgICA4OTYgICAgICAgICAgMCAgICAgICAg ICAwICAgICAgICAgIDAgICAgICAgICAxOCAgICAgICAgIDUzICAgICAgICAgIDAgICAgICAgIDE5 NCAgICAgICAgICAwDQo+IDANCj4gPj4gMCAgICAgICAgICAwICAgICAgICAyNjUgICAgICAgICA3 OSAgICAgICAgIDI1ICAgUENJLU1TSSAxNTc0OTEyLWVkZ2UgICAgICBlbnMxZjEtVHhSeC0wDQo+ ID4+ICAgIDUzOiAgICAgICAgIDUwICAgICAgICAgIDAgICAgICAgICAxOCAgICAgICAgICAwICAg ICAgICAgNzIgICAgICAgICAzMyAgICAgICAgICAwICAgICAgICAgOTUgICAgICAgIDMzMCAgICAg ICAgICAwDQo+IDANCj4gPj4gMCAgICAgICAgMTM2ICAgICAgICAgIDUgICAgICAgICAxMiAgICAg ICAgICAwICAgUENJLU1TSSAxNTc0OTEzLWVkZ2UgICAgICBlbnMxZjEtVHhSeC0xDQo+ID4+ICAg IDU0OiAgICAgICAgIDY1ICAgICAgICAgIDAgICAgICAgICAgMCAgICAgICAgICAwICAgICAgICAg MTAgICAgICAgIDEwNCAgICAgICAgMTY2ICAgICAgICAgNDkgICAgICAgIDQ0MiAgICAgICAgICAw DQo+IDANCj4gPj4gMCAgICAgICAgMTI2ICAgICAgICAgMjYgICAgICAgIDIzMSAgICAgICAgICAw ICAgUENJLU1TSSAxNTc0OTE0LWVkZ2UgICAgICBlbnMxZjEtVHhSeC0yDQo+ID4+ICAgIDU1OiAg ICAgICAgIDU3ICAgICAgICAgIDAgICAgICAgICAgMCAgICAgICAgICAwICAgICAgICAgNjYgICAg ICAgICAzNSAgICAgICAgIDgzICAgICAgICAgMzAgICAgICAgIDE1NyAgICAgICAgMTAxDQo+IDAN Cj4gPj4gMCAgICAgICAgIDI2ICAgICAgICAgMTUgICAgICAgIDMxMiAgICAgICAgICAwICAgUENJ LU1TSSAxNTc0OTE1LWVkZ2UgICAgICBlbnMxZjEtVHhSeC0zDQo+ID4+ICAgIDU2OiAgICAgICAg MjMyICAgICAgICAgIDAgICAgICAgMjA3MSAgICAgICAgICAwICAgICAgICAgMTYgICAgICAgICAy MSAgICAgICAgICAwICAgICAgNTQ0MjIgICAgICAgICAgMCAgICAgICAgICAwDQo+ID4+IDAgICAg ICAgICAyNCAgICAgICAgIDI1ICAgICAgICAgIDAgICAgICAgICA3OCAgICAgICAgICAwICAgUENJ LU1TSSAxNTc0OTE2LWVkZ2UgICAgICBlbnMxZjENCj4gPj4NCj4gPj4gTm90ZSB0aGUgaW50ZXJy dXB0IHJhdGUgaGFzIGdvbmUgd2F5IGRvd24uIER1cmluZyB0aGUgMTBzIGludGVydmFsLA0KPiA+ PiB3ZSBvbmx5IHNhdyBhIGhhbmRmdWwgb2YgaW50ZXJydXB0cy4NCj4gPj4NCj4gPj4gTm90ZSB0 aGF0IHRoaXMgcGF0Y2ggd2FzIG9yaWdpbmFsbHkgcHJvdmlkZWQgYnkgSW50ZWwgZGlyZWN0bHkg dG8NCj4gPj4gQVQmVCBhbmQgVnlhdHRhLCBidXQgdW5mb3J0dW5hdGVseSBJIGFtIHVuYWJsZSB0 byBmaW5kIHJlY29yZHMgb2YgdGhlDQo+IGV4YWN0IGF1dGhvci4NCj4gPj4NCj4gPj4gV2UgaGF2 ZSBiZWVuIHVzaW5nIHRoaXMgaW4gcHJvZHVjdGlvbiBmb3IgbW9yZSB0aGFuIGEgeWVhci4NCj4g Pj4NCj4gPj4gRml4ZXM6IGFmNzUwNzhmZWNlMyAoImZpcnN0IHB1YmxpYyByZWxlYXNlIikNCj4g Pj4gQ2M6IHN0YWJsZUBkcGRrLm9yZw0KPiA+Pg0KPiA+PiBTaWduZWQtb2ZmLWJ5OiBMdWNhIEJv Y2Nhc3NpIDxibHVjYUBkZWJpYW4ub3JnPg0KPiA+PiAtLS0NCj4gPj4gICBkcml2ZXJzL25ldC9p eGdiZS9iYXNlL2l4Z2JlX3ZmLmMgfCAzMyArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t DQo+ID4+ICAgMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygt KQ0KPiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXhnYmUvYmFzZS9peGdiZV92 Zi5jDQo+ID4+IGIvZHJpdmVycy9uZXQvaXhnYmUvYmFzZS9peGdiZV92Zi5jDQo+ID4+IGluZGV4 IDViMjVhNmI0ZDQuLjE2MDg2NjcwYjEgMTAwNjQ0DQo+ID4+IC0tLSBhL2RyaXZlcnMvbmV0L2l4 Z2JlL2Jhc2UvaXhnYmVfdmYuYw0KPiA+PiArKysgYi9kcml2ZXJzL25ldC9peGdiZS9iYXNlL2l4 Z2JlX3ZmLmMNCj4gPj4gQEAgLTU4Niw3ICs1ODYsNiBAQCBzMzIgaXhnYmVfY2hlY2tfbWFjX2xp bmtfdmYoc3RydWN0IGl4Z2JlX2h3DQo+ICpodywNCj4gPj4gaXhnYmVfbGlua19zcGVlZCAqc3Bl ZWQsDQo+ID4+ICAgCXMzMiByZXRfdmFsID0gSVhHQkVfU1VDQ0VTUzsNCj4gPj4gICAJdTMyIGxp bmtzX3JlZzsNCj4gPj4gICAJdTMyIGluX21zZyA9IDA7DQo+ID4+IC0JVU5SRUZFUkVOQ0VEXzFQ QVJBTUVURVIoYXV0b25lZ193YWl0X3RvX2NvbXBsZXRlKTsNCj4gPj4NCj4gPj4gICAJLyogSWYg d2Ugd2VyZSBoaXQgd2l0aCBhIHJlc2V0IGRyb3AgdGhlIGxpbmsgKi8NCj4gPj4gICAJaWYgKCFt YngtPm9wcy5jaGVja19mb3JfcnN0KGh3LCAwKSB8fCAhbWJ4LT50aW1lb3V0KSBAQCAtNjQzLDIz DQo+ID4+ICs2NDIsMjUgQEAgczMyIGl4Z2JlX2NoZWNrX21hY19saW5rX3ZmKHN0cnVjdCBpeGdi ZV9odyAqaHcsDQo+ID4+IGl4Z2JlX2xpbmtfc3BlZWQgKnNwZWVkLA0KPiA+PiAgIAkJKnNwZWVk ID0gSVhHQkVfTElOS19TUEVFRF9VTktOT1dOOw0KPiA+PiAgIAl9DQo+ID4+DQo+ID4+IC0JLyog aWYgdGhlIHJlYWQgZmFpbGVkIGl0IGNvdWxkIGp1c3QgYmUgYSBtYWlsYm94IGNvbGxpc2lvbiwg YmVzdCB3YWl0DQo+ID4+IC0JICogdW50aWwgd2UgYXJlIGNhbGxlZCBhZ2FpbiBhbmQgZG9uJ3Qg cmVwb3J0IGFuIGVycm9yDQo+ID4+IC0JICovDQo+ID4+IC0JaWYgKG1ieC0+b3BzLnJlYWQoaHcs ICZpbl9tc2csIDEsIDApKQ0KPiA+PiAtCQlnb3RvIG91dDsNCj4gPj4gKwlpZiAoYXV0b25lZ193 YWl0X3RvX2NvbXBsZXRlKSB7DQo+ID4+ICsJCS8qIGlmIHRoZSByZWFkIGZhaWxlZCBpdCBjb3Vs ZCBqdXN0IGJlIGEgbWFpbGJveCBjb2xsaXNpb24sIGJlc3QNCj4gPj4gd2FpdA0KPiA+PiArCQkg KiB1bnRpbCB3ZSBhcmUgY2FsbGVkIGFnYWluIGFuZCBkb24ndCByZXBvcnQgYW4gZXJyb3INCj4g Pj4gKwkJICovDQo+ID4+ICsJCWlmIChtYngtPm9wcy5yZWFkKGh3LCAmaW5fbXNnLCAxLCAwKSkN Cj4gPj4gKwkJCWdvdG8gb3V0Ow0KPiA+Pg0KPiA+PiAtCWlmICghKGluX21zZyAmIElYR0JFX1ZU X01TR1RZUEVfQ1RTKSkgew0KPiA+PiAtCQkvKiBtc2cgaXMgbm90IENUUyBhbmQgaXMgTkFDSyB3 ZSBtdXN0IGhhdmUgbG9zdCBDVFMgc3RhdHVzDQo+ID4+ICovDQo+ID4+IC0JCWlmIChpbl9tc2cg JiBJWEdCRV9WVF9NU0dUWVBFX05BQ0spDQo+ID4+ICsJCWlmICghKGluX21zZyAmIElYR0JFX1ZU X01TR1RZUEVfQ1RTKSkgew0KPiA+PiArCQkJLyogbXNnIGlzIG5vdCBDVFMgYW5kIGlzIE5BQ0sg d2UgbXVzdCBoYXZlIGxvc3QgQ1RTDQo+ID4+IHN0YXR1cyAqLw0KPiA+PiArCQkJaWYgKGluX21z ZyAmIElYR0JFX1ZUX01TR1RZUEVfTkFDSykNCj4gPj4gKwkJCQlyZXRfdmFsID0gLTE7DQo+ID4+ ICsJCQlnb3RvIG91dDsNCj4gPj4gKwkJfQ0KPiA+PiArDQo+ID4+ICsJCS8qIHRoZSBwZiBpcyB0 YWxraW5nLCBpZiB3ZSB0aW1lZCBvdXQgaW4gdGhlIHBhc3Qgd2UgcmVpbml0ICovDQo+ID4+ICsJ CWlmICghbWJ4LT50aW1lb3V0KSB7DQo+ID4+ICAgCQkJcmV0X3ZhbCA9IC0xOw0KPiA+PiAtCQln b3RvIG91dDsNCj4gPj4gLQl9DQo+ID4+IC0NCj4gPj4gLQkvKiB0aGUgcGYgaXMgdGFsa2luZywg aWYgd2UgdGltZWQgb3V0IGluIHRoZSBwYXN0IHdlIHJlaW5pdCAqLw0KPiA+PiAtCWlmICghbWJ4 LT50aW1lb3V0KSB7DQo+ID4+IC0JCXJldF92YWwgPSAtMTsNCj4gPj4gLQkJZ290byBvdXQ7DQo+ ID4+ICsJCQlnb3RvIG91dDsNCj4gPj4gKwkJfQ0KPiA+PiAgIAl9DQo+ID4+DQo+ID4+ICAgCS8q IGlmIHdlIHBhc3NlZCBhbGwgdGhlIHRlc3RzIGFib3ZlIHRoZW4gdGhlIGxpbmsgaXMgdXAgYW5k IHdlIG5vDQo+ID4+IC0tDQo+ID4+IDIuMTguMA0KPiA+DQo=