From owner-svn-src-head@freebsd.org Sat May 5 20:32:08 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1766CFB98BD for ; Sat, 5 May 2018 20:32:08 +0000 (UTC) (envelope-from o.hartmann@walstatt.org) Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass DE-2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5F4BC7E011; Sat, 5 May 2018 20:32:06 +0000 (UTC) (envelope-from o.hartmann@walstatt.org) Received: from thor.intern.walstatt.dynvpn.de ([77.180.123.97]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0Lp7d2-1ejHKM07hE-00es51; Sat, 05 May 2018 22:31:58 +0200 Date: Sat, 5 May 2018 22:31:24 +0200 From: "O. Hartmann" To: Matthew Macy Cc: bde@freebsd.org, svn-src-head@freebsd.org, Stephen Hurd , "O. Hartmann" Subject: Re: svn commit: r333175 - in head/sys: kern net netinet netinet6 sys: TRAP 12 Message-ID: <20180505223151.580b6522@thor.intern.walstatt.dynvpn.de> In-Reply-To: References: <201805021936.w42JaTlq039053@repo.freebsd.org> <20180503213206.7fba052c@thor.intern.walstatt.dynvpn.de> <20180503222419.4228e8e8@thor.intern.walstatt.dynvpn.de> <20180505110138.6cae0f75@thor.intern.walstatt.dynvpn.de> Organization: WALSTATT User-Agent: OutScare 3.1415926 X-Operating-System: ImNotAnOperatingSystem 3.141592527 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:olFoHfoZDvfDOFjrVRdEjAungMZxeKRmH25y3mMqla0zAvsC4Wu lO9ENTG5Bqz3PtDexCCvIG6BVPxUDlA40ybJlGMF/dIbCGud7vKXTd9yNzLN29Ysc+mdPwn POFNhQcTow9MwL+guy4hS717XAY1WrTY3QSukJuNRkMUiuWYmnhKp98F4Ze/OSgH97s5VOc GxvzqISYZ4TvK8O6rFVsg== X-UI-Out-Filterresults: notjunk:1;V01:K0:LId7pr8kBSk=:7VBbxBIky7pCeolG1unDfP eF/ps0XMMRTo225rf6SI6a77tcy6fJoQEHmtG+etOkL6StxsU1SIU8XTDS0OI0waCQxn0/ot6 gnY2jcg+CNe1GxnL+LPafKoKyan3v8+5NAYLUgbKISOYx9CCRya3dk09RK0Mo59tELUUmCK+u IOsVI11oazlgArJOugoMOhzLOj6MmVJeRyennqEP80EnotXI/GLcVerpqAvfdJNfxUoXJmfdV c55o0VkyrHtIUHLUXYemPgXF1cuPFKL4YDpNSs9bczfZM2oqAUxza70FE2LASmPi92qwbylpl EJcGN5QLNxDFdF1za9XLkyygTue0QBmgqv8PbSBqxRk+lb+bSX2cRA9EoNIK4Zg5HOh2PskxX 5c50R5QJ8PtiGwLqUj4Ie+Ir2EkRQUHV8HrkiKV9wbNKvaOs3EGaDGRc6Pu/fh8Da9aCZIs4J l85+95yFvJS49B6Ii0ccaus+7sKeLWuMIZNgTkQ1ndHee+85siOP4cpCLjih7n/dQ9xc2Udeb bFG0EswUrxsRGmFg7BtPe2cFtsviBuEqtZX5aDeOwr9QgKhFEoM6wSoCRGc1w/6OVP6eJaaOj XWaTCcXUdv7vQWQBDy8b57jc2DkCAI4+hAqUDjSYDTDRZJDAyMUYua/giVR9h9haPQYES6Ssu +D6vLqPu4Ksz8XReERMaSc1qeGn0Y1Rq1eLqhbbALtP2i08MO8OKaOg5BoLkDPkSfsnmb4wt4 UpkMMv1OM1Po3Ns1GVTiK0V2mn/Ud7PN56KXya3P9dKhHG0Jpgrmxa6KdyLbaeZQMIes1epg4 beDY/iP X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 May 2018 20:32:08 -0000 LS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQ0KSGFzaDogU0hBNTEyDQoNCkFtIFNh dCwgNSBNYXkgMjAxOCAxMToyMTo0NyAtMDcwMA0KTWF0dGhldyBNYWN5IDxtbWFjeUBmcmVlYnNk Lm9yZz4gc2NocmllYjoNCg0KPiBwaG9AIGFuZCBzYnJ1bm9AIHRlc3RlZCB0aGUgcGF0Y2ggYmVm b3JlIGNvbW1pdCwgSSBjYW4ndCByZWFkaWx5DQo+IHJlcHJvZHVjZSBldmVuIHRob3VnaCB0aGUg ZGV0YWNoIHBhdGggc2hvdWxkIGJlIGNvbW1vbiBlbm91Z2guIFBsZWFzZQ0KPiB0ZWxsIG1lIGlm IHRoaXMgaGVscHM6DQo+IA0KPiBodHRwczovL3Blb3BsZS5mcmVlYnNkLm9yZy9+bW1hY3kvaW5w Y2IuZGlmZg0KPiANCj4gDQo+IFRoYW5rcy4NCj4gDQoNCg0KVGhlIHByaXZpZGVkIHBhdGNoIHNl ZW1pbmdseSB3b3JrIHNvIGZhciAoRnJlZUJTRCAxMi4wLUNVUlJFTlQgIzQgcjMzMzI3NE06IFNh dCBNYXkgIDUNCjIyOjE5OjA0IENFU1QgMjAxOCBhbWQ2NCkuIEkganVzdCByZWNvbXBpbGUgd29y bGQgYW5kIGtlcm5lbCBvZiByZXZpc2lvbiAzMzMyNzYgYW5kIHRyeQ0KdG8gcHVzaCB0aGUgYm94 IHdpdGggbmUgdHJhZmZpYyAoTkZTIG1vc3RseSkuDQoNCk1heSBJIGFzayBvbiB3aGF0IGhhcmR3 YXJlIHRoZSBtZW50aW9uZWQgdGVzdHMgb2YgeW91cnMgaGFzIGJlZW4gcGVyZm9ybWVkPyBJIGNh biB0ZWxsLA0KdGhhdCBBTEwoISkgYm94ZXMgZXF1aXB0ZWQgd2l0aCBJbnRlbCdzIGkzNTAgTklD cyBhcmUgc3VmZmVyaW5nIHRoZSB2ZXJ5IHNhbWUgcHJvYmxlbS4gSQ0KZGlkbid0IGRhcmUgdG8g bW92ZSBvbiBvbiB0aGUgb3RoZXIgc3lzdGVtcyB3aXRoIGkyMTAsIGkyMTcgb3IgaTIxOSwgYnV0 IHdpdGggdGhlIHBhdGNoDQpwcm92aWRlZCB3b3JraW5nIHNvIGZhciwgSSdsbCB0ZXN0Lg0KDQpU aGFua3MuDQoNCj4gDQo+IE9uIFNhdCwgTWF5IDUsIDIwMTggYXQgMjowMSBBTSwgTy4gSGFydG1h bm4gPG8uaGFydG1hbm5Ad2Fsc3RhdHQub3JnPiB3cm90ZToNCj4gPiAtLS0tLUJFR0lOIFBHUCBT SUdORUQgTUVTU0FHRS0tLS0tDQo+ID4gSGFzaDogU0hBNTEyDQo+ID4NCj4gPiBBbSBUaHUsIDMg TWF5IDIwMTggMjI6MjM6NTIgKzAyMDANCj4gPiAiTy4gSGFydG1hbm4iIDxvaGFydG1hbm5Ad2Fs c3RhdHQub3JnPiBzY2hyaWViOg0KPiA+DQo+ID4NCj4gPiBJJ20gbm90IGZhbWlsaWFyIHdpdGgg a2VybmVsIGRlYnVnZ2luZywgc28gdGhlcmUgYXJlIHNvbWUgc3RydWdnbGVzLg0KPiA+DQo+ID4g QWZ0ZXIgY29tcGlsaW5nIGEgZGVidWdnaW5nIGtlcm5lbCBvbg0KPiA+DQo+ID4gVmVyc2lvbiBT dHJpbmc6IEZyZWVCU0QgMTIuMC1DVVJSRU5UICMyIHIzMzMyNjk6IFNhdCBNYXkgIDUgMDg6MTA6 MzIgQ0VTVCAyMDE4DQo+ID4NCj4gPiBQYW5pYyBTdHJpbmc6IExvY2sgdGNwIG5vdCBleGNsdXNp dmVseSBsb2NrZWQgQCAvdXNyL3NyYy9zeXMvbmV0aW5ldC9pbl9wY2IuYzoxMzkxDQo+ID4NCj4g Pg0KPiA+IEFuZCB0aGlzIGlzIHdoYXQgSSBjYW4gcHJvdmlkZSB5b3Ugd2l0aDoNCj4gPg0KPiA+ DQo+ID4gUmVhZGluZyBzeW1ib2xzDQo+ID4gZnJvbSAvdXNyL29iai91c3Ivc3JjL2FtZDY0LmFt ZDY0L3N5cy9XQUxIQUxMLURFQlVHL2tlcm5lbC5mdWxsLi4uZG9uZS4NCj4gPg0KPiA+IFVucmVh ZCBwb3J0aW9uIG9mIHRoZSBrZXJuZWwgbWVzc2FnZSBidWZmZXI6DQo+ID4gcGFuaWM6IExvY2sg dGNwIG5vdCBleGNsdXNpdmVseSBsb2NrZWQgQCAvdXNyL3NyYy9zeXMvbmV0aW5ldC9pbl9wY2Iu YzoxMzkxDQo+ID4NCj4gPiBjcHVpZCA9IDQNCj4gPiB0aW1lID0gMTUyNTUxMDI5MQ0KPiA+IEtE Qjogc3RhY2sgYmFja3RyYWNlOg0KPiA+IGRiX3RyYWNlX3NlbGZfd3JhcHBlcigpIGF0IGRiX3Ry YWNlX3NlbGZfd3JhcHBlcisweDJiL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZTY3MA0KPiA+IHZwYW5p YygpIGF0IHZwYW5pYysweDFhMy9mcmFtZSAweGZmZmZmZTAwZTQ4NWU2ZDANCj4gPiBwYW5pYygp IGF0IHBhbmljKzB4NDMvZnJhbWUgMHhmZmZmZmUwMGU0ODVlNzMwDQo+ID4gX3J3X3d1bmxvY2tf Y29va2llKCkgYXQgX3J3X3d1bmxvY2tfY29va2llKzB4MTM3L2ZyYW1lIDB4ZmZmZmZlMDBlNDg1 ZTc2MA0KPiA+IGluX3BjYmZyZWUoKSBhdCBpbl9wY2JmcmVlKzB4NTFhL2ZyYW1lIDB4ZmZmZmZl MDBlNDg1ZTdiMA0KPiA+IHRjcF91c3JfZGV0YWNoKCkgYXQgdGNwX3Vzcl9kZXRhY2grMHgxNWUv ZnJhbWUgMHhmZmZmZmUwMGU0ODVlN2YwDQo+ID4gc29mcmVlKCkgYXQgc29mcmVlKzB4MmY0L2Zy YW1lIDB4ZmZmZmZlMDBlNDg1ZTg0MA0KPiA+IHNvY2xvc2UoKSBhdCBzb2Nsb3NlKzB4Mzg3L2Zy YW1lIDB4ZmZmZmZlMDBlNDg1ZThiMA0KPiA+IGNsb3NlZigpIGF0IGNsb3NlZisweDFmNS9mcmFt ZSAweGZmZmZmZTAwZTQ4NWU5NDANCj4gPiBjbG9zZWZwKCkgYXQgY2xvc2VmcCsweGEwL2ZyYW1l IDB4ZmZmZmZlMDBlNDg1ZTk4MA0KPiA+IGFtZDY0X3N5c2NhbGwoKSBhdCBhbWQ2NF9zeXNjYWxs KzB4NmQzL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZWFiMA0KPiA+IGZhc3Rfc3lzY2FsbF9jb21tb24o KSBhdCBmYXN0X3N5c2NhbGxfY29tbW9uKzB4MTAxL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZWFiMA0K PiA+IC0gLS0tIHN5c2NhbGwgKDYsIEZyZWVCU0QgRUxGNjQsIHN5c19jbG9zZSksIHJpcCA9IDB4 ODAxMTFhZGRhLCByc3AgPSAweDdmZmZkZjNmNzIyOCwNCj4gPiByYnAgPSAweDdmZmZkZjNmNzI0 MCAtLS0gS0RCOiBlbnRlcjogcGFuaWMNCj4gPg0KPiA+IF9fY3VydGhyZWFkICgpIGF0IC4vbWFj aGluZS9wY3B1Lmg6MjMxDQo+ID4gMjMxICAgICAgICAgICAgIF9fYXNtKCJtb3ZxICUlZ3M6JTEs JTAiIDogIj1yIiAodGQpDQo+ID4gKGtnZGIpIGJ0DQo+ID4gKGtnZGIpIGJ0DQo+ID4gIzAgIF9f Y3VydGhyZWFkICgpIGF0IC4vbWFjaGluZS9wY3B1Lmg6MjMxDQo+ID4gIzEgIGRvYWR1bXAgKHRl eHRkdW1wPTApIGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5fc2h1dGRvd24uYzozNjUNCj4gPiAj MiAgMHhmZmZmZmZmZjgwNTk3ZDViIGluIGRiX2R1bXAgKGR1bW15PTxvcHRpbWl6ZWQgb3V0Piwg ZHVtbXkyPTx1bmF2YWlsYWJsZT4sDQo+ID4gZHVtbXkzPTx1bmF2YWlsYWJsZT4sIGR1bW15ND08 dW5hdmFpbGFibGU+KSBhdCAvdXNyL3NyYy9zeXMvZGRiL2RiX2NvbW1hbmQuYzo1NzQNCj4gPiAj MyAgMHhmZmZmZmZmZjgwNTk3YWU2IGluIGRiX2NvbW1hbmQgKGxhc3RfY21kcD08b3B0aW1pemVk IG91dD4sDQo+ID4gY21kX3RhYmxlPTxvcHRpbWl6ZWQgIA0KPiA+IG91dD4sIGRvcGFnZXI9PG9w dGltaXplZCBvdXQ+KSBhdCAvdXNyL3NyYy9zeXMvZGRiL2RiX2NvbW1hbmQuYzo0ODEgIzQNCj4g PiBvdXQ+MHhmZmZmZmZmZjgwNTk3ODE0IGluIGRiX2NvbW1hbmRfbG9vcCAoKSBhdCAvdXNyL3Ny Yy9zeXMvZGRiL2RiX2NvbW1hbmQuYzo1MzQgIA0KPiA+ICM1ICAweGZmZmZmZmZmODA1OWIwNGYg aW4gZGJfdHJhcCAodHlwZT08b3B0aW1pemVkIG91dD4sIGNvZGU9PG9wdGltaXplZCBvdXQ+KQ0K PiA+IGF0IC91c3Ivc3JjL3N5cy9kZGIvZGJfbWFpbi5jOjI1MCAjNiAgMHhmZmZmZmZmZjgwOTI0 NDYzIGluIGtkYl90cmFwICh0eXBlPTMsDQo+ID4gY29kZT0tNjE0NTYsIHRmPTxvcHRpbWl6ZWQg b3V0PikgYXQgL3Vzci9zcmMvc3lzL2tlcm4vc3Vicl9rZGIuYzo2OTcgIzcNCj4gPiAweGZmZmZm ZmZmODBjODBhYjcgaW4gdHJhcCAoZnJhbWU9MHhmZmZmZmUwMGU0ODVlNWEwKQ0KPiA+IGF0IC91 c3Ivc3JjL3N5cy9hbWQ2NC9hbWQ2NC90cmFwLmM6NTUwICM4ICA8c2lnbmFsIGhhbmRsZXIgY2Fs bGVkPiAjOSAga2RiX2VudGVyDQo+ID4gKHdoeT0weGZmZmZmZmZmODBkZDdiNTQgInBhbmljIiwg bXNnPTxvcHRpbWl6ZWQgb3V0PikNCj4gPiBhdCAvdXNyL3NyYy9zeXMva2Vybi9zdWJyX2tkYi5j OjQ3OSAjMTAgMHhmZmZmZmZmZjgwOGRiNTAwIGluIHZwYW5pYyAoZm10PTxvcHRpbWl6ZWQNCj4g PiBvdXQ+LCBhcD0weGZmZmZmZTAwZTQ4NWU3MTApIGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5f c2h1dGRvd24uYzo4NTEgIzExDQo+ID4gb3V0PjB4ZmZmZmZmZmY4MDhkYjU5MyBpbiBwYW5pYw0K PiA+IChmbXQ9MHhmZmZmZmZmZjgxMjViYmQ4IDxjbnB1dHNfbXR4PiAiXDI1MVwzMTJcMzMyXDIw MFwzNzdcMzc3XDM3N1wzNzciKQ0KPiA+IGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5fc2h1dGRv d24uYzo3ODkgIzEyIDB4ZmZmZmZmZmY4MDhkNjViNyBpbiBfX3J3X2Fzc2VydA0KPiA+IChjPTB4 ZmZmZmZlMDAxMTFlZTY1MCwgd2hhdD00LCBmaWxlPTB4ZmZmZmZmZmY4MGRjNTE1Nw0KPiA+ICIv dXNyL3NyYy9zeXMvbmV0aW5ldC9pbl9wY2IuYyIsIGxpbmU9MTM5MSkgYXQgL3Vzci9zcmMvc3lz L2tlcm4va2Vybl9yd2xvY2suYzoxNDI2DQo+ID4gIzEzIF9yd193dW5sb2NrX2Nvb2tpZSAoYz0w eGZmZmZmZTAwMTExZWU2NTAsIGZpbGU9MHhmZmZmZmZmZjgwZGM1MTU3DQo+ID4gIi91c3Ivc3Jj L3N5cy9uZXRpbmV0L2luX3BjYi5jIiwgbGluZT0xMzkxKSBhdCAvdXNyL3NyYy9zeXMva2Vybi9r ZXJuX3J3bG9jay5jOjM2Mg0KPiA+ICMxNCAweGZmZmZmZmZmODBhNjhjYWEgaW4gaW5fcGNiZnJl ZSAoaW5wPTB4ZmZmZmY4MDA2NjA1OGIxMCkNCj4gPiBhdCAvdXNyL3NyYy9zeXMvbmV0aW5ldC9p bl9wY2IuYzoxMzkxICMxNSAweGZmZmZmZmZmODBiMDlhNmUgaW4gdGNwX2RldGFjaA0KPiA+IChz bz08b3B0aW1pemVkIG91dD4sIGlucD08b3B0aW1pemVkIG91dD4pIGF0IC91c3Ivc3JjL3N5cy9u ZXRpbmV0L3RjcF91c3JyZXEuYzoyNTgNCj4gPiAjMTYgdGNwX3Vzcl9kZXRhY2ggKHNvPTxvcHRp bWl6ZWQgb3V0PikgYXQgL3Vzci9zcmMvc3lzL25ldGluZXQvdGNwX3VzcnJlcS5jOjI4OSAjMTcN Cj4gPiAweGZmZmZmZmZmODA5N2MzOTQgaW4gc29mcmVlIChzbz0weGZmZmZmODAwMTk4OGQzNTgp DQo+ID4gYXQgL3Vzci9zcmMvc3lzL2tlcm4vdWlwY19zb2NrZXQuYzoxMDMyICMxOCAweGZmZmZm ZmZmODA5N2Q0ODcgaW4gc29jbG9zZQ0KPiA+IChzbz0weGZmZmZmODAwMTk4OGQzNTgpIGF0IC91 c3Ivc3JjL3N5cy9rZXJuL3VpcGNfc29ja2V0LmM6MTEyNiAjMTkNCj4gPiAweGZmZmZmZmZmODA4 ODVhZDUgaW4gZm9fY2xvc2UgKGZwPTxvcHRpbWl6ZWQgb3V0PiwgdGQ9PG9wdGltaXplZCBvdXQ+ KQ0KPiA+IGF0IC91c3Ivc3JjL3N5cy9zeXMvZmlsZS5oOjM0OCAjMjAgX2Zkcm9wIChmcD08b3B0 aW1pemVkIG91dD4sIHRkPTxvcHRpbWl6ZWQgb3V0PikNCj4gPiBhdCAvdXNyL3NyYy9zeXMva2Vy bi9rZXJuX2Rlc2NyaXAuYzoyOTU3ICMyMSBjbG9zZWYgKGZwPTB4ZmZmZmY4MDAwNGVmNGViMCwN Cj4gPiB0ZD0weGZmZmZmODAwMTk4OTE1NjApIGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5fZGVz Y3JpcC5jOjI1MzggIzIyDQo+ID4gMHhmZmZmZmZmZjgwODgyOTIwIGluIGNsb3NlZnAgKGZkcD0w eGZmZmZmODAwMTk1NTM0NTAsIGZkPTEyLCBmcD0weGZmZmZmODAwMDRlZjRlYjAsDQo+ID4gdGQ9 MHhmZmZmZjgwMDE5ODkxNTYwLCBob2xkbGVhZGVycz0wKSBhdCAvdXNyL3NyYy9zeXMva2Vybi9r ZXJuX2Rlc2NyaXAuYzoxMjA4ICMyMw0KPiA+IDB4ZmZmZmZmZmY4MGM4MjAzMyBpbiBzeXNjYWxs ZW50ZXIgKHRkPTB4ZmZmZmY4MDAxOTg5MTU2MCkNCj4gPiBhdCAvdXNyL3NyYy9zeXMvYW1kNjQv YW1kNjQvLi4vLi4va2Vybi9zdWJyX3N5c2NhbGwuYzoxMzUgIzI0IGFtZDY0X3N5c2NhbGwNCj4g PiAodGQ9MHhmZmZmZjgwMDE5ODkxNTYwLCB0cmFjZWQ9MCkgYXQgL3Vzci9zcmMvc3lzL2FtZDY0 L2FtZDY0L3RyYXAuYzo5NDUgIzI1IDxzaWduYWwNCj4gPiBoYW5kbGVyIGNhbGxlZD4gIzI2IDB4 MDAwMDAwMDgwMTExYWRkYSBpbiA/PyAoKSBCYWNrdHJhY2Ugc3RvcHBlZDogQ2Fubm90IGFjY2Vz cw0KPiA+IG1lbW9yeSBhdCBhZGRyZXNzIDB4N2ZmZmRmM2Y3MjI4IChrZ2RiKQ0KPiA+DQo+ID4N Cj4gPg0KPiA+ICANCj4gPj4gLS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQ0KPiA+ PiBIYXNoOiBTSEE1MTINCj4gPj4NCj4gPj4gQW0gVGh1LCAzIE1heSAyMDE4IDEyOjUzOjA1IC0w NzAwDQo+ID4+ICJLLiBNYWN5IiA8a21hY3lAZnJlZWJzZC5vcmc+IHNjaHJpZWI6DQo+ID4+ICAN Cj4gPj4gPiBDYW4geW91IGdpdmUgYW55IGNvbnRleHQgb24gd2hhdCB0aGV5J3JlIGRvaW5nPyBJ biBhZGRpdGlvbiAtIGV2ZW4gb24NCj4gPj4gPiBhIHByb2R1Y3Rpb24ga2VybmVsIGl0J3MgcG9z c2libGUgdG8gY29tcGlsZSBpbiBEREIgdG8gYXQgbGVhc3QgZ2V0IGENCj4gPj4gPiBiYWNrdHJh Y2UuIFlvdXIgcmVwb3J0IG9ubHkgZ2l2ZXMgdXMgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGtub3cg dGhhdCAgDQo+ID4+DQo+ID4+IE5vdCBhdCB0aGUgbW9tZW50LiBUaGUgaW1tZWRpYXRlIGNyYXNo IGNvcnJ1cHRlZCB0aGUgL3Vzci9zcmMgZmlsZXN5c3RlbSBzbyBJIGNhbiBub3QNCj4gPj4gcmVj b21waWxlIGEga2VybmVsLiBFdmVyeSBhdHRlbXB0IHRvIC9ldGMvbmV0c3RhcnQgdGhlIG5ldHdv cmsgb24gdGhlIGJ1Z2d5IGtlcm5lbA0KPiA+PiBlbmRzIHVwIGluIGEgZnVydGhlciBkZXN0cnVj dGlvbiwgc28gSSBzdG9wcGVkIGF0IHRoaXMgdmVyeSBtb21lbnQgYW5kIGhvcGVmdWxseSBJDQo+ ID4+IGNhbiBjb3B5IC91c3Ivc3JjIGZyb20gYSByMzMxNTMgYm94IChyMzMzMTUzIGlzIGZvciBt ZSB0aGUgbGFzdCB3b3JraW5nIHJldmlzaW9uKQ0KPiA+PiB2aWEgVVNCIGZsYXNoIGRyaXZlIGFu ZCByZWNvbXBpbGUgdGhlIGtlcm5lbC4gQnV0IEknbGwgZ28gZm9yIHIzMzMxNTMgZmlyc3Qgc2lu Y2UgSQ0KPiA+PiBuZWVkIHRoZSBzZXJ2ZXIgdXAgdG9tb3Jyb3cgYW5kIEknbGwgdHJ5IG9uIHRo ZSBvdGhlciBib3ggd2hpY2ggaXMgYWxzbyBhZmZlY3RlZCwNCj4gPj4gYnV0IGFsc28gZXF1aXB0 ZWQgd2l0aCB0aGUgaTM1MCBOSUMgb24gd2hpY2ggdGhlIHByb2JsZW0gb2NjdXJzIHZlcnkgcXVp Y2tseS4NCj4gPj4gIA0KPiA+PiA+IHRoZXJlIGlzIF9hbl8gaXNzdWUuIEl0J3MgZGlmZmljdWx0 IHRvIHByb2NlZWQgb24gdGhpcyBhbG9uZS4gSSBkbw0KPiA+PiA+IGhhdmUgYSByZXBvcnQgZnJv bSB0aGUgRnJlZUJTRCBDSSBpbmZyYXN0cnVjdHVyZSB0aGF0IHdlJ3JlIGxvb2tpbmcgaW4NCj4g Pj4gPiB0byBub3cuICBXaXRoIGx1Y2sgdGhhdCBpcyB0aGUgc2FtZSBpc3N1ZS4NCj4gPj4gPg0K PiA+PiA+IC1NDQo+ID4+ID4NCj4gPj4gPiBPbiBUaHUsIE1heSAzLCAyMDE4IGF0IDEyOjMxIFBN LCBPLiBIYXJ0bWFubiA8b2hhcnRtYW5uQHdhbHN0YXR0Lm9yZz4gd3JvdGU6ICANCj4gPj4gPiA+ IC0tLS0tQkVHSU4gUEdQIFNJR05FRCBNRVNTQUdFLS0tLS0NCj4gPj4gPiA+IEhhc2g6IFNIQTUx Mg0KPiA+PiA+ID4NCj4gPj4gPiA+IEFtIFdlZCwgMiBNYXkgMjAxOCAxOTozNjoyOSArMDAwMCAo VVRDKQ0KPiA+PiA+ID4gU3RlcGhlbiBIdXJkIDxzaHVyZEBGcmVlQlNELm9yZz4gc2NocmllYjoN Cj4gPj4gPiA+ICANCj4gPj4gPiA+PiBBdXRob3I6IHNodXJkDQo+ID4+ID4gPj4gRGF0ZTogV2Vk IE1heSAgMiAxOTozNjoyOSAyMDE4DQo+ID4+ID4gPj4gTmV3IFJldmlzaW9uOiAzMzMxNzUNCj4g Pj4gPiA+PiBVUkw6IGh0dHBzOi8vc3Zud2ViLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzMz MzE3NQ0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gTG9nOg0KPiA+PiA+ID4+ICAgU2VwYXJhdGUgbGlz dCBtYW5pcHVsYXRpb24gbG9ja2luZyBmcm9tIHN0YXRlIGNoYW5nZSBpbiBtdWx0aWNhc3QNCj4g Pj4gPiA+Pg0KPiA+PiA+ID4+ICAgTXVsdGljYXN0IGluY29ycmVjdGx5IGNhbGxzIGluIHRvIGRy aXZlcnMgd2l0aCBhIG11dGV4IGhlbGQgY2F1c2luZyBkcml2ZXJzDQo+ID4+ID4gPj4gICB0byBo YXZlIHRvIGdvIHRocm91Z2ggYWxsIG1hbm5lciBvZiBjb250b3J0aW9ucyB0byB1c2UgYSBub24g c2xlZXBhYmxlIGxvY2suDQo+ID4+ID4gPj4gICBTZXJpYWxpemUgbXVsdGljYXN0IHVwZGF0ZXMg aW5zdGVhZC4NCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ICAgU3VibWl0dGVkIGJ5OiAgICAgICBtbWFj eSA8bW1hY3lAbWF0dG1hY3kuaW8+DQo+ID4+ID4gPj4gICBSZXZpZXdlZCBieTogICAgICAgIHNo dXJkLCBzYnJ1bm8NCj4gPj4gPiA+PiAgIFNwb25zb3JlZCBieTogICAgICAgTGltZWxpZ2h0IE5l dHdvcmtzDQo+ID4+ID4gPj4gICBEaWZmZXJlbnRpYWwgUmV2aXNpb246ICAgICAgaHR0cHM6Ly9y ZXZpZXdzLmZyZWVic2Qub3JnL0QxNDk2OQ0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gTW9kaWZpZWQ6 DQo+ID4+ID4gPj4gICBoZWFkL3N5cy9rZXJuL3N1YnJfZ3Rhc2txdWV1ZS5jDQo+ID4+ID4gPj4g ICBoZWFkL3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jDQo+ID4+ID4gPj4gICBoZWFkL3N5cy9uZXQv aWYuYw0KPiA+PiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5ldC9pZ21wLmMNCj4gPj4gPiA+PiAgIGhl YWQvc3lzL25ldGluZXQvaWdtcF92YXIuaA0KPiA+PiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5ldC9p bi5jDQo+ID4+ID4gPj4gICBoZWFkL3N5cy9uZXRpbmV0L2luX21jYXN0LmMNCj4gPj4gPiA+PiAg IGhlYWQvc3lzL25ldGluZXQvaW5fcGNiLmMNCj4gPj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQv aW5fdmFyLmgNCj4gPj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQvaXBfY2FycC5jDQo+ID4+ID4g Pj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9pbjYuYw0KPiA+PiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5l dDYvaW42X2lmYXR0YWNoLmMNCj4gPj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQ2L2luNl9tY2Fz dC5jDQo+ID4+ID4gPj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9pbjZfcGNiLmMNCj4gPj4gPiA+PiAg IGhlYWQvc3lzL25ldGluZXQ2L2luNl92YXIuaA0KPiA+PiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5l dDYvbWxkNi5jDQo+ID4+ID4gPj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9tbGQ2X3Zhci5oDQo+ID4+ ID4gPj4gICBoZWFkL3N5cy9zeXMvZ3Rhc2txdWV1ZS5oDQo+ID4+ID4gPj4NCj4gPj4gPiA+PiBN b2RpZmllZDogaGVhZC9zeXMva2Vybi9zdWJyX2d0YXNrcXVldWUuYw0KPiA+PiA+ID4+ID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KPiA+PiA+ID4+IC0tLSBoZWFkL3N5cy9rZXJuL3N1YnJfZ3Rhc2tx dWV1ZS5jICAgV2VkIE1heSAgMiAxNzo0MTowMCAyMDE4ICAgICAgICAocjMzMzE3NCkNCj4gPj4g PiA+PiArKysgaGVhZC9zeXMva2Vybi9zdWJyX2d0YXNrcXVldWUuYyAgIFdlZCBNYXkgIDIgMTk6 MzY6MjkgMjAxOCAgICAgICAgKHIzMzMxNzUpDQo+ID4+ID4gPj4gQEAgLTUzLDYgKzUzLDcgQEAg c3RhdGljIHZvaWQgZ3Rhc2txdWV1ZV90aHJlYWRfZW5xdWV1ZSh2b2lkICopOw0KPiA+PiA+ID4+ ICBzdGF0aWMgdm9pZCAgZ3Rhc2txdWV1ZV90aHJlYWRfbG9vcCh2b2lkICphcmcpOw0KPiA+PiA+ ID4+DQo+ID4+ID4gPj4gIFRBU0tRR1JPVVBfREVGSU5FKHNvZnRpcnEsIG1wX25jcHVzLCAxKTsN Cj4gPj4gPiA+PiArVEFTS1FHUk9VUF9ERUZJTkUoY29uZmlnLCAxLCAxKTsNCj4gPj4gPiA+Pg0K PiA+PiA+ID4+ICBzdHJ1Y3QgZ3Rhc2txdWV1ZV9idXN5IHsNCj4gPj4gPiA+PiAgICAgICBzdHJ1 Y3QgZ3Rhc2sgICAgKnRiX3J1bm5pbmc7DQo+ID4+ID4gPj4gQEAgLTY2Miw3ICs2NjMsNyBAQCBT WVNJTklUKHRxZ19yZWNvcmRfc21wX3N0YXJ0ZWQsIFNJX1NVQl9TTVAsIFNJX09SREVSX0YNCj4g Pj4gPiA+Pg0KPiA+PiA+ID4+ICB2b2lkDQo+ID4+ID4gPj4gIHRhc2txZ3JvdXBfYXR0YWNoKHN0 cnVjdCB0YXNrcWdyb3VwICpxZ3JvdXAsIHN0cnVjdCBncm91cHRhc2sgKmd0YXNrLA0KPiA+PiA+ ID4+IC0gICAgdm9pZCAqdW5pcSwgaW50IGlycSwgY2hhciAqbmFtZSkNCj4gPj4gPiA+PiArICAg IHZvaWQgKnVuaXEsIGludCBpcnEsIGNvbnN0IGNoYXIgKm5hbWUpDQo+ID4+ID4gPj4gIHsNCj4g Pj4gPiA+PiAgICAgICBjcHVzZXRfdCBtYXNrOw0KPiA+PiA+ID4+ICAgICAgIGludCBxaWQsIGVy cm9yOw0KPiA+PiA+ID4+IEBAIC05NzYsNCArOTc3LDEzIEBAIHZvaWQNCj4gPj4gPiA+PiAgdGFz a3Fncm91cF9kZXN0cm95KHN0cnVjdCB0YXNrcWdyb3VwICpxZ3JvdXApDQo+ID4+ID4gPj4gIHsN Cj4gPj4gPiA+Pg0KPiA+PiA+ID4+ICt9DQo+ID4+ID4gPj4gKw0KPiA+PiA+ID4+ICt2b2lkDQo+ ID4+ID4gPj4gK3Rhc2txZ3JvdXBfY29uZmlnX2d0YXNrX2luaXQodm9pZCAqY3R4LCBzdHJ1Y3Qg Z3JvdXB0YXNrICpndGFzaywgZ3Rhc2tfZm5fdA0KPiA+PiA+ID4+ICpmbiwNCj4gPj4gPiA+PiAr ICAgICBjb25zdCBjaGFyICpuYW1lKQ0KPiA+PiA+ID4+ICt7DQo+ID4+ID4gPj4gKw0KPiA+PiA+ ID4+ICsgICAgIEdST1VQVEFTS19JTklUKGd0YXNrLCAwLCBmbiwgY3R4KTsNCj4gPj4gPiA+PiAr ICAgICB0YXNrcWdyb3VwX2F0dGFjaChxZ3JvdXBfY29uZmlnLCBndGFzaywgZ3Rhc2ssIC0xLCBu YW1lKTsNCj4gPj4gPiA+PiAgfQ0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gTW9kaWZpZWQ6IGhlYWQv c3lzL2tlcm4vc3Vicl93aXRuZXNzLmMNCj4gPj4gPiA+PiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N Cj4gPj4gPiA+PiAtLS0gaGVhZC9zeXMva2Vybi9zdWJyX3dpdG5lc3MuYyAgICAgIFdlZCBNYXkg IDIgMTc6NDE6MDAgMjAxOCAgICAgICAgKHIzMzMxNzQpDQo+ID4+ID4gPj4gKysrIGhlYWQvc3lz L2tlcm4vc3Vicl93aXRuZXNzLmMgICAgICBXZWQgTWF5ICAyIDE5OjM2OjI5IDIwMTggICAgICAg IChyMzMzMTc1KQ0KPiA+PiA+ID4+IEBAIC01MzIsMTggKzUzMiwyMiBAQCBzdGF0aWMgc3RydWN0 IHdpdG5lc3Nfb3JkZXJfbGlzdF9lbnRyeSBvcmRlcl9saXN0c1tdID0NCj4gPj4gPiA+PiAgICAg ICAgKiBJUHY0IG11bHRpY2FzdDoNCj4gPj4gPiA+PiAgICAgICAgKiBwcm90b2NvbCBsb2NrcyBi ZWZvcmUgaW50ZXJmYWNlIGxvY2tzLCBhZnRlciBVRFAgbG9ja3MuDQo+ID4+ID4gPj4gICAgICAg ICovDQo+ID4+ID4gPj4gKyAgICAgeyAiaW5fbXVsdGlfc3giLCAmbG9ja19jbGFzc19zeCB9LA0K PiA+PiA+ID4+ICAgICAgIHsgInVkcGlucCIsICZsb2NrX2NsYXNzX3J3IH0sDQo+ID4+ID4gPj4g LSAgICAgeyAiaW5fbXVsdGlfbXR4IiwgJmxvY2tfY2xhc3NfbXR4X3NsZWVwIH0sDQo+ID4+ID4g Pj4gKyAgICAgeyAiaW5fbXVsdGlfbGlzdF9tdHgiLCAmbG9ja19jbGFzc19tdHhfc2xlZXAgfSwN Cj4gPj4gPiA+PiAgICAgICB7ICJpZ21wX210eCIsICZsb2NrX2NsYXNzX210eF9zbGVlcCB9LA0K PiA+PiA+ID4+ICsgICAgIHsgImlmbmV0X3J3IiwgJmxvY2tfY2xhc3NfcncgfSwNCj4gPj4gPiA+ PiAgICAgICB7ICJpZl9hZGRyX2xvY2siLCAmbG9ja19jbGFzc19ydyB9LA0KPiA+PiA+ID4+ICAg ICAgIHsgTlVMTCwgTlVMTCB9LA0KPiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4gPj4gICAgICAg ICogSVB2NiBtdWx0aWNhc3Q6DQo+ID4+ID4gPj4gICAgICAgICogcHJvdG9jb2wgbG9ja3MgYmVm b3JlIGludGVyZmFjZSBsb2NrcywgYWZ0ZXIgVURQIGxvY2tzLg0KPiA+PiA+ID4+ICAgICAgICAq Lw0KPiA+PiA+ID4+ICsgICAgIHsgImluNl9tdWx0aV9zeCIsICZsb2NrX2NsYXNzX3N4IH0sDQo+ ID4+ID4gPj4gICAgICAgeyAidWRwaW5wIiwgJmxvY2tfY2xhc3NfcncgfSwNCj4gPj4gPiA+PiAt ICAgICB7ICJpbjZfbXVsdGlfbXR4IiwgJmxvY2tfY2xhc3NfbXR4X3NsZWVwIH0sDQo+ID4+ID4g Pj4gKyAgICAgeyAiaW42X211bHRpX2xpc3RfbXR4IiwgJmxvY2tfY2xhc3NfbXR4X3NsZWVwIH0s DQo+ID4+ID4gPj4gICAgICAgeyAibWxkX210eCIsICZsb2NrX2NsYXNzX210eF9zbGVlcCB9LA0K PiA+PiA+ID4+ICsgICAgIHsgImlmbmV0X3J3IiwgJmxvY2tfY2xhc3NfcncgfSwNCj4gPj4gPiA+ PiAgICAgICB7ICJpZl9hZGRyX2xvY2siLCAmbG9ja19jbGFzc19ydyB9LA0KPiA+PiA+ID4+ICAg ICAgIHsgTlVMTCwgTlVMTCB9LA0KPiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4gPj4NCj4gPj4g PiA+PiBNb2RpZmllZDogaGVhZC9zeXMvbmV0L2lmLmMNCj4gPj4gPiA+PiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCj4gPj4gPiA+PiAtLS0gaGVhZC9zeXMvbmV0L2lmLmMgV2VkIE1heSAgMiAxNzo0 MTowMCAyMDE4ICAgICAgICAocjMzMzE3NCkNCj4gPj4gPiA+PiArKysgaGVhZC9zeXMvbmV0L2lm LmMgV2VkIE1heSAgMiAxOTozNjoyOSAyMDE4ICAgICAgICAocjMzMzE3NSkNCj4gPj4gPiA+PiBA QCAtOTg1LDExICs5ODUsMTMgQEAgc3RhdGljIHZvaWQNCj4gPj4gPiA+PiAgaWZfcHVyZ2VtYWRk cnMoc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ID4gPj4gIHsNCj4gPj4gPiA+PiAgICAgICBzdHJ1 Y3QgaWZtdWx0aWFkZHIgKmlmbWE7DQo+ID4+ID4gPj4gLSAgICAgc3RydWN0IGlmbXVsdGlhZGRy ICpuZXh0Ow0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gICAgICAgSUZfQUREUl9XTE9DSyhpZnApOw0K PiA+PiA+ID4+IC0gICAgIFRBSUxRX0ZPUkVBQ0hfU0FGRShpZm1hLCAmaWZwLT5pZl9tdWx0aWFk ZHJzLCBpZm1hX2xpbmssIG5leHQpDQo+ID4+ID4gPj4gKyAgICAgd2hpbGUgKCFUQUlMUV9FTVBU WSgmaWZwLT5pZl9tdWx0aWFkZHJzKSkgew0KPiA+PiA+ID4+ICsgICAgICAgICAgICAgaWZtYSA9 IFRBSUxRX0ZJUlNUKCZpZnAtPmlmX211bHRpYWRkcnMpOw0KPiA+PiA+ID4+ICsgICAgICAgICAg ICAgVEFJTFFfUkVNT1ZFKCZpZnAtPmlmX211bHRpYWRkcnMsIGlmbWEsIGlmbWFfbGluayk7DQo+ ID4+ID4gPj4gICAgICAgICAgICAgICBpZl9kZWxtdWx0aV9sb2NrZWQoaWZwLCBpZm1hLCAxKTsN Cj4gPj4gPiA+PiArICAgICB9DQo+ID4+ID4gPj4gICAgICAgSUZfQUREUl9XVU5MT0NLKGlmcCk7 DQo+ID4+ID4gPj4gIH0NCj4gPj4gPiA+Pg0KPiA+PiA+ID4+IEBAIC0zNDI5LDYgKzM0MzEsMTIg QEAgaWZfYWRkbXVsdGkoc3RydWN0IGlmbmV0ICppZnAsIHN0cnVjdCBzb2NrYWRkciAqc2EsDQo+ ID4+ID4gPj4gICAgICAgc3RydWN0IHNvY2thZGRyX2RsIHNkbDsNCj4gPj4gPiA+PiAgICAgICBp bnQgZXJyb3I7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiArI2lmZGVmIElORVQNCj4gPj4gPiA+PiAr ICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+PiArI2VuZGlmDQo+ ID4+ID4gPj4gKyNpZmRlZiBJTkVUNg0KPiA+PiA+ID4+ICsgICAgIElONl9NVUxUSV9MSVNUX1VO TE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+PiArI2VuZGlmDQo+ID4+ID4gPj4gICAgICAgLyoNCj4g Pj4gPiA+PiAgICAgICAgKiBJZiB0aGUgYWRkcmVzcyBpcyBhbHJlYWR5IHByZXNlbnQsIHJldHVy biBhIG5ldyByZWZlcmVuY2UgdG8gaXQ7DQo+ID4+ID4gPj4gICAgICAgICogb3RoZXJ3aXNlLCBh bGxvY2F0ZSBzdG9yYWdlIGFuZCBzZXQgdXAgYSBuZXcgYWRkcmVzcy4NCj4gPj4gPiA+PiBAQCAt MzYxMCw2ICszNjE4LDkgQEAgaWZfZGVsbXVsdGlfaWZtYShzdHJ1Y3QgaWZtdWx0aWFkZHIgKmlm bWEpDQo+ID4+ID4gPj4gICAgICAgc3RydWN0IGlmbmV0ICppZnA7DQo+ID4+ID4gPj4gICAgICAg aW50IGxhc3RyZWY7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiArI2lmZGVmIElORVQNCj4gPj4gPiA+ PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+PiArI2VuZGlm DQo+ID4+ID4gPj4gICAgICAgaWZwID0gaWZtYS0+aWZtYV9pZnA7DQo+ID4+ID4gPj4gICNpZmRl ZiBESUFHTk9TVElDDQo+ID4+ID4gPj4gICAgICAgaWYgKGlmcCA9PSBOVUxMKSB7DQo+ID4+ID4g Pj4gQEAgLTM3MTEsOCArMzcyMiw3IEBAIGlmX2RlbG11bHRpX2xvY2tlZChzdHJ1Y3QgaWZuZXQg KmlmcCwgc3RydWN0IGlmbXVsdGlhZA0KPiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICBp Zl9mcmVlbXVsdGkobGxfaWZtYSk7DQo+ID4+ID4gPj4gICAgICAgICAgICAgICB9DQo+ID4+ID4g Pj4gICAgICAgfQ0KPiA+PiA+ID4+IC0NCj4gPj4gPiA+PiAtICAgICBpZiAoaWZwICE9IE5VTEwp DQo+ID4+ID4gPj4gKyAgICAgaWYgKGlmcCAhPSBOVUxMICYmIGRldGFjaGluZyA9PSAwKQ0KPiA+ PiA+ID4+ICAgICAgICAgICAgICAgVEFJTFFfUkVNT1ZFKCZpZnAtPmlmX211bHRpYWRkcnMsIGlm bWEsIGlmbWFfbGluayk7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAgICAgICBpZl9mcmVlbXVsdGko aWZtYSk7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiBNb2RpZmllZDogaGVhZC9zeXMvbmV0aW5ldC9p Z21wLmMNCj4gPj4gPiA+PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPj4gPiA+PiAtLS0gaGVh ZC9zeXMvbmV0aW5ldC9pZ21wLmMgICBXZWQgTWF5ICAyIDE3OjQxOjAwIDIwMTggICAgICAgIChy MzMzMTc0KQ0KPiA+PiA+ID4+ICsrKyBoZWFkL3N5cy9uZXRpbmV0L2lnbXAuYyAgIFdlZCBNYXkg IDIgMTk6MzY6MjkgMjAxOCAgICAgICAgKHIzMzMxNzUpDQo+ID4+ID4gPj4gQEAgLTEzNiw3ICsx MzYsNyBAQCBzdGF0aWMgaW50ICAgICAgICBpZ21wX3YzX2VucXVldWVfZ3JvdXBfcmVjb3JkKHN0 cnVjdCBtYnVmcQ0KPiA+PiA+ID4+ICogc3RydWN0IGluX211bHRpICosIGNvbnN0IGludCwgY29u c3QgaW50LCBjb25zdCBpbnQpOw0KPiA+PiA+ID4+ICBzdGF0aWMgaW50ICAgaWdtcF92M19lbnF1 ZXVlX2ZpbHRlcl9jaGFuZ2Uoc3RydWN0IG1idWZxICosDQo+ID4+ID4gPj4gICAgICAgICAgICAg ICAgICAgc3RydWN0IGluX211bHRpICopOw0KPiA+PiA+ID4+IC1zdGF0aWMgdm9pZCAgaWdtcF92 M19wcm9jZXNzX2dyb3VwX3RpbWVycyhzdHJ1Y3QgaWdtcF9pZnNvZnRjICosDQo+ID4+ID4gPj4g K3N0YXRpYyB2b2lkICBpZ21wX3YzX3Byb2Nlc3NfZ3JvdXBfdGltZXJzKHN0cnVjdCBpbl9tdWx0 aV9oZWFkICosDQo+ID4+ID4gPj4gICAgICAgICAgICAgICAgICAgc3RydWN0IG1idWZxICosIHN0 cnVjdCBtYnVmcSAqLCBzdHJ1Y3QgaW5fbXVsdGkgKiwNCj4gPj4gPiA+PiAgICAgICAgICAgICAg ICAgICBjb25zdCBpbnQpOw0KPiA+PiA+ID4+ICBzdGF0aWMgaW50ICAgaWdtcF92M19tZXJnZV9z dGF0ZV9jaGFuZ2VzKHN0cnVjdCBpbl9tdWx0aSAqLA0KPiA+PiA+ID4+IEBAIC0xNjIsMTIgKzE2 MiwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldGlzcl9oYW5kbGVyIGlnbXBfbmggPSB7DQo+ ID4+ID4gPj4gICAqIHRoZW1zZWx2ZXMgYXJlIG5vdCB2aXJ0dWFsaXplZC4NCj4gPj4gPiA+PiAg ICoNCj4gPj4gPiA+PiAgICogTG9ja2luZzoNCj4gPj4gPiA+PiAtICogICogVGhlIHBlcm1pdHRl ZCBsb2NrIG9yZGVyIGlzOiBJTl9NVUxUSV9MT0NLLCBJR01QX0xPQ0ssIElGX0FERFJfTE9DSy4N Cj4gPj4gPiA+PiArICogICogVGhlIHBlcm1pdHRlZCBsb2NrIG9yZGVyIGlzOiBJTl9NVUxUSV9M SVNUX0xPQ0ssIElHTVBfTE9DSywgSUZfQUREUl9MT0NLLg0KPiA+PiA+ID4+ICAgKiAgICBBbnkg bWF5IGJlIHRha2VuIGluZGVwZW5kZW50bHk7IGlmIGFueSBhcmUgaGVsZCBhdCB0aGUgc2FtZQ0K PiA+PiA+ID4+ICAgKiAgICB0aW1lLCB0aGUgYWJvdmUgbG9jayBvcmRlciBtdXN0IGJlIGZvbGxv d2VkLg0KPiA+PiA+ID4+ICAgKiAgKiBBbGwgb3V0cHV0IGlzIGRlbGVnYXRlZCB0byB0aGUgbmV0 aXNyLg0KPiA+PiA+ID4+ICAgKiAgICBOb3cgdGhhdCBHaWFudCBoYXMgYmVlbiBlbGltaW5hdGVk LCB0aGUgbmV0aXNyIG1heSBiZSBpbmxpbmVkLg0KPiA+PiA+ID4+IC0gKiAgKiBJTl9NVUxUSV9M T0NLIGNvdmVycyBpbl9tdWx0aS4NCj4gPj4gPiA+PiArICogICogSU5fTVVMVElfTElTVF9MT0NL IGNvdmVycyBpbl9tdWx0aS4NCj4gPj4gPiA+PiAgICogICogSUdNUF9MT0NLIGNvdmVycyBpZ21w X2lmc29mdGMgYW5kIGFueSBnbG9iYWwgdmFyaWFibGVzIGluIHRoaXMgZmlsZSwNCj4gPj4gPiA+ PiAgICogICAgaW5jbHVkaW5nIHRoZSBvdXRwdXQgcXVldWUuDQo+ID4+ID4gPj4gICAqICAqIElG X0FERFJfTE9DSyBjb3ZlcnMgaWZfbXVsdGlhZGRycywgd2hpY2ggaXMgdXNlZCBmb3IgYSB2YXJp ZXR5IG9mDQo+ID4+ID4gPj4gQEAgLTQ0MSw3ICs0NDEsNyBAQCBzeXNjdGxfaWdtcF9pZmluZm8o U1lTQ1RMX0hBTkRMRVJfQVJHUykNCj4gPj4gPiA+PiAgICAgICBpZiAoZXJyb3IpDQo+ID4+ID4g Pj4gICAgICAgICAgICAgICByZXR1cm4gKGVycm9yKTsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+IC0g ICAgIElOX01VTFRJX0xPQ0soKTsNCj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0so KTsNCj4gPj4gPiA+PiAgICAgICBJR01QX0xPQ0soKTsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ICAg ICAgIGlmIChuYW1lWzBdIDw9IDAgfHwgbmFtZVswXSA+IFZfaWZfaW5kZXgpIHsNCj4gPj4gPiA+ PiBAQCAtNDc1LDcgKzQ3NSw3IEBAIHN5c2N0bF9pZ21wX2lmaW5mbyhTWVNDVExfSEFORExFUl9B UkdTKQ0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gIG91dF9sb2NrZWQ6DQo+ID4+ID4gPj4gICAgICAg SUdNUF9VTkxPQ0soKTsNCj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9VTkxPQ0soKTsNCj4gPj4g PiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0KPiA+PiA+ID4+ICAgICAgIHJldHVy biAoZXJyb3IpOw0KPiA+PiA+ID4+ICB9DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiBAQCAtNTg2LDcg KzU4Niw2IEBAIGlnaV9hbGxvY19sb2NrZWQoLypjb25zdCovIHN0cnVjdCBpZm5ldCAqaWZwKQ0K PiA+PiA+ID4+ICAgICAgIGlnaS0+aWdpX3FpID0gSUdNUF9RSV9JTklUOw0KPiA+PiA+ID4+ICAg ICAgIGlnaS0+aWdpX3FyaSA9IElHTVBfUVJJX0lOSVQ7DQo+ID4+ID4gPj4gICAgICAgaWdpLT5p Z2lfdXJpID0gSUdNUF9VUklfSU5JVDsNCj4gPj4gPiA+PiAtICAgICBTTElTVF9JTklUKCZpZ2kt PmlnaV9yZWxpbm1oZWFkKTsNCj4gPj4gPiA+PiAgICAgICBtYnVmcV9pbml0KCZpZ2ktPmlnaV9n cSwgSUdNUF9NQVhfUkVTUE9OU0VfUEFDS0VUUyk7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAgICAg ICBMSVNUX0lOU0VSVF9IRUFEKCZWX2lnaV9oZWFkLCBpZ2ksIGlnaV9saW5rKTsNCj4gPj4gPiA+ PiBAQCAtNjEyLDExICs2MTEsMTIgQEAgaWdtcF9pZmRldGFjaChzdHJ1Y3QgaWZuZXQgKmlmcCkN Cj4gPj4gPiA+PiAgew0KPiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZ21wX2lmc29mdGMgICAgICpp Z2k7DQo+ID4+ID4gPj4gICAgICAgc3RydWN0IGlmbXVsdGlhZGRyICAgICAgKmlmbWE7DQo+ID4+ ID4gPj4gLSAgICAgc3RydWN0IGluX211bHRpICAgICAgICAgKmlubSwgKnRpbm07DQo+ID4+ID4g Pj4gLQ0KPiA+PiA+ID4+ICsgICAgIHN0cnVjdCBpbl9tdWx0aSAgICAgICAgICppbm07DQo+ID4+ ID4gPj4gKyAgICAgc3RydWN0IGluX211bHRpX2hlYWQgaW5tX2ZyZWVfdG1wOw0KPiA+PiA+ID4+ ICAgICAgIENUUjMoS1RSX0lHTVBWMywgIiVzOiBjYWxsZWQgZm9yIGlmcCAlcCglcykiLCBfX2Z1 bmNfXywgaWZwLA0KPiA+PiA+ID4+ICAgICAgICAgICBpZnAtPmlmX3huYW1lKTsNCj4gPj4gPiA+ Pg0KPiA+PiA+ID4+ICsgICAgIFNMSVNUX0lOSVQoJmlubV9mcmVlX3RtcCk7DQo+ID4+ID4gPj4g ICAgICAgSUdNUF9MT0NLKCk7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAgICAgICBpZ2kgPSAoKHN0 cnVjdCBpbl9pZmluZm8gKilpZnAtPmlmX2FmZGF0YVtBRl9JTkVUXSktPmlpX2lnbXA7DQo+ID4+ ID4gPj4gQEAgLTYzMSwyNCArNjMxLDE1IEBAIGlnbXBfaWZkZXRhY2goc3RydWN0IGlmbmV0ICpp ZnApDQo+ID4+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAoIiVzOiBpZm1hX3Byb3Rv c3BlYyBpcyBOVUxMIiwgX19mdW5jX18pKTsNCj4gPj4gPiA+PiAgI2VuZGlmDQo+ID4+ID4gPj4g ICAgICAgICAgICAgICAgICAgICAgIGlubSA9IChzdHJ1Y3QgaW5fbXVsdGkgKilpZm1hLT5pZm1h X3Byb3Rvc3BlYzsNCj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgaWYgKGlubS0+aW5t X3N0YXRlID09IElHTVBfTEVBVklOR19NRU1CRVIpIHsNCj4gPj4gPiA+PiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTTElTVF9JTlNFUlRfSEVBRCgmaWdpLT5pZ2lfcmVsaW5taGVhZCwN Cj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5tLCBpbm1fbnJl bGUpOw0KPiA+PiA+ID4+IC0gICAgICAgICAgICAgICAgICAgICB9DQo+ID4+ID4gPj4gKyAgICAg ICAgICAgICAgICAgICAgIGlmIChpbm0tPmlubV9zdGF0ZSA9PSBJR01QX0xFQVZJTkdfTUVNQkVS KQ0KPiA+PiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubV9yZWxlX2xvY2tl ZCgmaW5tX2ZyZWVfdG1wLCBpbm0pOw0KPiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICBp bm1fY2xlYXJfcmVjb3JkZWQoaW5tKTsNCj4gPj4gPiA+PiAgICAgICAgICAgICAgIH0NCj4gPj4g PiA+PiAgICAgICAgICAgICAgIElGX0FERFJfUlVOTE9DSyhpZnApOw0KPiA+PiA+ID4+IC0gICAg ICAgICAgICAgLyoNCj4gPj4gPiA+PiAtICAgICAgICAgICAgICAqIEZyZWUgdGhlIGluX211bHRp IHJlZmVyZW5jZShzKSBmb3IgdGhpcyBJR01QIGxpZmVjeWNsZS4NCj4gPj4gPiA+PiAtICAgICAg ICAgICAgICAqLw0KPiA+PiA+ID4+IC0gICAgICAgICAgICAgU0xJU1RfRk9SRUFDSF9TQUZFKGlu bSwgJmlnaS0+aWdpX3JlbGlubWhlYWQsIGlubV9ucmVsZSwNCj4gPj4gPiA+PiAtICAgICAgICAg ICAgICAgICB0aW5tKSB7DQo+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgIFNMSVNUX1JF TU9WRV9IRUFEKCZpZ2ktPmlnaV9yZWxpbm1oZWFkLCBpbm1fbnJlbGUpOw0KPiA+PiA+ID4+IC0g ICAgICAgICAgICAgICAgICAgICBpbm1fcmVsZWFzZV9sb2NrZWQoaW5tKTsNCj4gPj4gPiA+PiAt ICAgICAgICAgICAgIH0NCj4gPj4gPiA+PiArICAgICAgICAgICAgIGlubV9yZWxlYXNlX2xpc3Rf ZGVmZXJyZWQoJmlubV9mcmVlX3RtcCk7DQo+ID4+ID4gPj4gICAgICAgfQ0KPiA+PiA+ID4+IC0N Cj4gPj4gPiA+PiAgICAgICBJR01QX1VOTE9DSygpOw0KPiA+PiA+ID4+ICsNCj4gPj4gPiA+PiAg fQ0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gIC8qDQo+ID4+ID4gPj4gQEAgLTY4NCwxMSArNjc1LDYg QEAgaWdpX2RlbGV0ZV9sb2NrZWQoY29uc3Qgc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ID4gPj4g ICAgICAgICAgICAgICAgICAgICAgIG1idWZxX2RyYWluKCZpZ2ktPmlnaV9ncSk7DQo+ID4+ID4g Pj4NCj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgTElTVF9SRU1PVkUoaWdpLCBpZ2lf bGluayk7DQo+ID4+ID4gPj4gLQ0KPiA+PiA+ID4+IC0gICAgICAgICAgICAgICAgICAgICBLQVNT RVJUKFNMSVNUX0VNUFRZKCZpZ2ktPmlnaV9yZWxpbm1oZWFkKSwNCj4gPj4gPiA+PiAtICAgICAg ICAgICAgICAgICAgICAgICAgICgiJXM6IHRoZXJlIGFyZSBkYW5nbGluZyBpbl9tdWx0aSByZWZl cmVuY2VzIiwNCj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgIF9fZnVuY19fKSk7 DQo+ID4+ID4gPj4gLQ0KPiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICBmcmVlKGlnaSwg TV9JR01QKTsNCj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+PiA+ ID4+ICAgICAgICAgICAgICAgfQ0KPiA+PiA+ID4+IEBAIC03MjIsNyArNzA4LDcgQEAgaWdtcF9p bnB1dF92MV9xdWVyeShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGlwDQo+ID4+ID4g Pj4gICAgICAgfQ0KPiA+PiA+ID4+ICAgICAgIElHTVBTVEFUX0lOQyhpZ3BzX3Jjdl9nZW5fcXVl cmllcyk7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4+ ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+ID4gPj4gICAgICAgSUdNUF9M T0NLKCk7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAgICAgICBpZ2kgPSAoKHN0cnVjdCBpbl9pZmlu Zm8gKilpZnAtPmlmX2FmZGF0YVtBRl9JTkVUXSktPmlpX2lnbXA7DQo+ID4+ID4gPj4gQEAgLTc3 OCw3ICs3NjQsNyBAQCBpZ21wX2lucHV0X3YxX3F1ZXJ5KHN0cnVjdCBpZm5ldCAqaWZwLCBjb25z dCBzdHJ1Y3QgaXANCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ICBvdXRfbG9ja2VkOg0KPiA+PiA+ID4+ ICAgICAgIElHTVBfVU5MT0NLKCk7DQo+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfVU5MT0NLKCk7 DQo+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPj4gPiA+Pg0KPiA+ PiA+ID4+ICAgICAgIHJldHVybiAoMCk7DQo+ID4+ID4gPj4gIH0NCj4gPj4gPiA+PiBAQCAtODE2 LDcgKzgwMiw3IEBAIGlnbXBfaW5wdXRfdjJfcXVlcnkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0 IHN0cnVjdCBpcA0KPiA+PiA+ID4+ICAgICAgICAgICAgICAgSUdNUFNUQVRfSU5DKGlncHNfcmN2 X2dyb3VwX3F1ZXJpZXMpOw0KPiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ IC0gICAgIElOX01VTFRJX0xPQ0soKTsNCj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xP Q0soKTsNCj4gPj4gPiA+PiAgICAgICBJR01QX0xPQ0soKTsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ ICAgICAgIGlnaSA9ICgoc3RydWN0IGluX2lmaW5mbyAqKWlmcC0+aWZfYWZkYXRhW0FGX0lORVRd KS0+aWlfaWdtcDsNCj4gPj4gPiA+PiBAQCAtODcyLDcgKzg1OCw3IEBAIGlnbXBfaW5wdXRfdjJf cXVlcnkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpcA0KPiA+PiA+ID4+DQo+ID4+ ID4gPj4gIG91dF9sb2NrZWQ6DQo+ID4+ID4gPj4gICAgICAgSUdNUF9VTkxPQ0soKTsNCj4gPj4g PiA+PiAtICAgICBJTl9NVUxUSV9VTkxPQ0soKTsNCj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9M SVNUX1VOTE9DSygpOw0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gICAgICAgcmV0dXJuICgwKTsNCj4g Pj4gPiA+PiAgfQ0KPiA+PiA+ID4+IEBAIC04OTksNyArODg1LDcgQEAgaWdtcF92Ml91cGRhdGVf Z3JvdXAoc3RydWN0IGluX211bHRpICppbm0sIGNvbnN0IGludCB0DQo+ID4+ID4gPj4gICAgICAg Q1RSNChLVFJfSUdNUFYzLCAiMHglMDh4OiAlcy8lcyB0aW1lcj0lZCIsIF9fZnVuY19fLA0KPiA+ PiA+ID4+ICAgICAgICAgICBudG9obChpbm0tPmlubV9hZGRyLnNfYWRkciksIGlubS0+aW5tX2lm cC0+aWZfeG5hbWUsIHRpbWVyKTsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+IC0gICAgIElOX01VTFRJ X0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VS VCgpOw0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gICAgICAgc3dpdGNoIChpbm0tPmlubV9zdGF0ZSkg ew0KPiA+PiA+ID4+ICAgICAgIGNhc2UgSUdNUF9OT1RfTUVNQkVSOg0KPiA+PiA+ID4+IEBAIC0x MDExLDcgKzk5Nyw3IEBAIGlnbXBfaW5wdXRfdjNfcXVlcnkoc3RydWN0IGlmbmV0ICppZnAsIGNv bnN0IHN0cnVjdCBpcA0KPiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICBJR01QU1RBVF9J TkMoaWdwc19yY3ZfZ3NyX3F1ZXJpZXMpOw0KPiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPiA+Pg0K PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0soKTsNCj4gPj4gPiA+PiArICAgICBJTl9NVUxU SV9MSVNUX0xPQ0soKTsNCj4gPj4gPiA+PiAgICAgICBJR01QX0xPQ0soKTsNCj4gPj4gPiA+Pg0K PiA+PiA+ID4+ICAgICAgIGlnaSA9ICgoc3RydWN0IGluX2lmaW5mbyAqKWlmcC0+aWZfYWZkYXRh W0FGX0lORVRdKS0+aWlfaWdtcDsNCj4gPj4gPiA+PiBAQCAtMTA5Miw3ICsxMDc4LDcgQEAgaWdt cF9pbnB1dF92M19xdWVyeShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGlwDQo+ID4+ ID4gPj4NCj4gPj4gPiA+PiAgb3V0X2xvY2tlZDoNCj4gPj4gPiA+PiAgICAgICBJR01QX1VOTE9D SygpOw0KPiA+PiA+ID4+IC0gICAgIElOX01VTFRJX1VOTE9DSygpOw0KPiA+PiA+ID4+ICsgICAg IElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAgICAgICByZXR1 cm4gKDApOw0KPiA+PiA+ID4+ICB9DQo+ID4+ID4gPj4gQEAgLTExMDksNyArMTA5NSw3IEBAIGln bXBfaW5wdXRfdjNfZ3JvdXBfcXVlcnkoc3RydWN0IGluX211bHRpICppbm0sIHN0cnVjdA0KPiA+ PiA+ID4+ICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICByZXR2YWw7DQo+ID4+ID4gPj4g ICAgICAgdWludDE2X3QgICAgICAgICAgICAgICAgIG5zcmM7DQo+ID4+ID4gPj4NCj4gPj4gPiA+ PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+ID4+ICsgICAgIElOX01VTFRJ X0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+PiAgICAgICBJR01QX0xPQ0tfQVNTRVJUKCk7 DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAgICAgICByZXR2YWwgPSAwOw0KPiA+PiA+ID4+IEBAIC0x MjQ2LDcgKzEyMzIsNyBAQCBpZ21wX2lucHV0X3YxX3JlcG9ydChzdHJ1Y3QgaWZuZXQgKmlmcCwg Lypjb25zdCovIHN0cnUNCj4gPj4gPiA+PiAgICAgICAgKiBJZiB3ZSBhcmUgYSBtZW1iZXIgb2Yg dGhpcyBncm91cCwgYW5kIG91ciBtZW1iZXJzaGlwIHNob3VsZCBiZQ0KPiA+PiA+ID4+ICAgICAg ICAqIHJlcG9ydGVkLCBzdG9wIG91ciBncm91cCB0aW1lciBhbmQgdHJhbnNpdGlvbiB0byB0aGUg J2xhenknIHN0YXRlLg0KPiA+PiA+ID4+ICAgICAgICAqLw0KPiA+PiA+ID4+IC0gICAgIElOX01V TFRJX0xPQ0soKTsNCj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gPj4g PiA+PiAgICAgICBpbm0gPSBpbm1fbG9va3VwKGlmcCwgaWdtcC0+aWdtcF9ncm91cCk7DQo+ID4+ ID4gPj4gICAgICAgaWYgKGlubSAhPSBOVUxMKSB7DQo+ID4+ID4gPj4gICAgICAgICAgICAgICBz dHJ1Y3QgaWdtcF9pZnNvZnRjICppZ2k7DQo+ID4+ID4gPj4gQEAgLTEzMDUsNyArMTI5MSw3IEBA IGlnbXBfaW5wdXRfdjFfcmVwb3J0KHN0cnVjdCBpZm5ldCAqaWZwLCAvKmNvbnN0Ki8gc3RydQ0K PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ICBvdXRfbG9ja2VkOg0KPiA+ PiA+ID4+IC0gICAgIElOX01VTFRJX1VOTE9DSygpOw0KPiA+PiA+ID4+ICsgICAgIElOX01VTFRJ X0xJU1RfVU5MT0NLKCk7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAgICAgICByZXR1cm4gKDApOw0K PiA+PiA+ID4+ICB9DQo+ID4+ID4gPj4gQEAgLTEzNzMsNyArMTM1OSw3IEBAIGlnbXBfaW5wdXRf djJfcmVwb3J0KHN0cnVjdCBpZm5ldCAqaWZwLCAvKmNvbnN0Ki8gc3RydQ0KPiA+PiA+ID4+ICAg ICAgICAqIHJlcG9ydGVkLCBhbmQgb3VyIGdyb3VwIHRpbWVyIGlzIHBlbmRpbmcgb3IgYWJvdXQg dG8gYmUgcmVzZXQsDQo+ID4+ID4gPj4gICAgICAgICogc3RvcCBvdXIgZ3JvdXAgdGltZXIgYnkg dHJhbnNpdGlvbmluZyB0byB0aGUgJ2xhenknIHN0YXRlLg0KPiA+PiA+ID4+ICAgICAgICAqLw0K PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0soKTsNCj4gPj4gPiA+PiArICAgICBJTl9NVUxU SV9MSVNUX0xPQ0soKTsNCj4gPj4gPiA+PiAgICAgICBpbm0gPSBpbm1fbG9va3VwKGlmcCwgaWdt cC0+aWdtcF9ncm91cCk7DQo+ID4+ID4gPj4gICAgICAgaWYgKGlubSAhPSBOVUxMKSB7DQo+ID4+ ID4gPj4gICAgICAgICAgICAgICBzdHJ1Y3QgaWdtcF9pZnNvZnRjICppZ2k7DQo+ID4+ID4gPj4g QEAgLTE0MTgsNyArMTQwNCw3IEBAIGlnbXBfaW5wdXRfdjJfcmVwb3J0KHN0cnVjdCBpZm5ldCAq aWZwLCAvKmNvbnN0Ki8gc3RydQ0KPiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPiA+Pg0KPiA+PiA+ ID4+ICBvdXRfbG9ja2VkOg0KPiA+PiA+ID4+IC0gICAgIElOX01VTFRJX1VOTE9DSygpOw0KPiA+ PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4+ID4gPj4NCj4gPj4gPiA+ PiAgICAgICByZXR1cm4gKDApOw0KPiA+PiA+ID4+ICB9DQo+ID4+ID4gPj4gQEAgLTE2NDcsNiAr MTYzMyw3IEBAIGlnbXBfZmFzdHRpbW9fdm5ldCh2b2lkKQ0KPiA+PiA+ID4+ICAgICAgIHN0cnVj dCBpZ21wX2lmc29mdGMgICAgICppZ2k7DQo+ID4+ID4gPj4gICAgICAgc3RydWN0IGlmbXVsdGlh ZGRyICAgICAgKmlmbWE7DQo+ID4+ID4gPj4gICAgICAgc3RydWN0IGluX211bHRpICAgICAgICAg KmlubTsNCj4gPj4gPiA+PiArICAgICBzdHJ1Y3QgaW5fbXVsdGlfaGVhZCBpbm1fZnJlZV90bXA7 DQo+ID4+ID4gPj4gICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIGxvb3AsIHVyaV9mYXN0 aHo7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAgICAgICBsb29wID0gMDsNCj4gPj4gPiA+PiBAQCAt MTY2Miw3ICsxNjQ5LDggQEAgaWdtcF9mYXN0dGltb192bmV0KHZvaWQpDQo+ID4+ID4gPj4gICAg ICAgICAgICFWX3N0YXRlX2NoYW5nZV90aW1lcnNfcnVubmluZykNCj4gPj4gPiA+PiAgICAgICAg ICAgICAgIHJldHVybjsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0so KTsNCj4gPj4gPiA+PiArICAgICBTTElTVF9JTklUKCZpbm1fZnJlZV90bXApOw0KPiA+PiA+ID4+ ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+PiA+ID4+ICAgICAgIElHTVBfTE9DSygp Ow0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gICAgICAgLyoNCj4gPj4gPiA+PiBAQCAtMTcyMCw3ICsx NzA4LDcgQEAgaWdtcF9mYXN0dGltb192bmV0KHZvaWQpDQo+ID4+ID4gPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlnaS0+aWdpX3ZlcnNpb24pOw0KPiA+PiA+ID4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+PiA+ID4+ICAgICAgICAgICAgICAg ICAgICAgICBjYXNlIElHTVBfVkVSU0lPTl8zOg0KPiA+PiA+ID4+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlnbXBfdjNfcHJvY2Vzc19ncm91cF90aW1lcnMoaWdpLCAmcXJxLA0KPiA+ PiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbXBfdjNfcHJvY2Vzc19ncm91 cF90aW1lcnMoJmlubV9mcmVlX3RtcCwgJnFycSwNCj4gPj4gPiA+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJnNjcSwgaW5tLCB1cmlfZmFzdGh6KTsNCj4gPj4gPiA+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPj4gPiA+PiAgICAgICAgICAgICAg ICAgICAgICAgfQ0KPiA+PiA+ID4+IEBAIC0xNzI4LDggKzE3MTYsNiBAQCBpZ21wX2Zhc3R0aW1v X3ZuZXQodm9pZCkNCj4gPj4gPiA+PiAgICAgICAgICAgICAgIElGX0FERFJfUlVOTE9DSyhpZnAp Ow0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gICAgICAgICAgICAgICBpZiAoaWdpLT5pZ2lfdmVyc2lv biA9PSBJR01QX1ZFUlNJT05fMykgew0KPiA+PiA+ID4+IC0gICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgaW5fbXVsdGkgICAgICAgICAqdGlubTsNCj4gPj4gPiA+PiAtDQo+ID4+ID4gPj4gICAg ICAgICAgICAgICAgICAgICAgIGlnbXBfZGlzcGF0Y2hfcXVldWUoJnFycSwgMCwgbG9vcCk7DQo+ ID4+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgIGlnbXBfZGlzcGF0Y2hfcXVldWUoJnNjcSwg MCwgbG9vcCk7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiBAQCAtMTczNywxOCArMTcyMywxMyBAQCBp Z21wX2Zhc3R0aW1vX3ZuZXQodm9pZCkNCj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAg ICogRnJlZSB0aGUgaW5fbXVsdGkgcmVmZXJlbmNlKHMpIGZvciB0aGlzDQo+ID4+ID4gPj4gICAg ICAgICAgICAgICAgICAgICAgICAqIElHTVAgbGlmZWN5Y2xlLg0KPiA+PiA+ID4+ICAgICAgICAg ICAgICAgICAgICAgICAgKi8NCj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgU0xJU1Rf Rk9SRUFDSF9TQUZFKGlubSwgJmlnaS0+aWdpX3JlbGlubWhlYWQsDQo+ID4+ID4gPj4gLSAgICAg ICAgICAgICAgICAgICAgICAgICBpbm1fbnJlbGUsIHRpbm0pIHsNCj4gPj4gPiA+PiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTTElTVF9SRU1PVkVfSEVBRCgmaWdpLT5pZ2lfcmVsaW5t aGVhZCwNCj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5tX25y ZWxlKTsNCj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm1fcmVsZWFz ZV9sb2NrZWQoaW5tKTsNCj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+PiA+ ID4+ICsgICAgICAgICAgICAgICAgICAgICBpbm1fcmVsZWFzZV9saXN0X2RlZmVycmVkKCZpbm1f ZnJlZV90bXApOw0KPiA+PiA+ID4+ICAgICAgICAgICAgICAgfQ0KPiA+PiA+ID4+ICAgICAgIH0N Cj4gPj4gPiA+Pg0KPiA+PiA+ID4+ICBvdXRfbG9ja2VkOg0KPiA+PiA+ID4+ICAgICAgIElHTVBf VU5MT0NLKCk7DQo+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ID4+ID4gPj4g KyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPj4gPiA+PiAgfQ0KPiA+PiA+ID4+DQo+ ID4+ID4gPj4gIC8qDQo+ID4+ID4gPj4gQEAgLTE3NjAsNyArMTc0MSw3IEBAIGlnbXBfdjF2Ml9w cm9jZXNzX2dyb3VwX3RpbWVyKHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBjbw0KPiA+PiA+ID4+ICB7 DQo+ID4+ID4gPj4gICAgICAgaW50IHJlcG9ydF90aW1lcl9leHBpcmVkOw0KPiA+PiA+ID4+DQo+ ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+PiArICAgICBJ Tl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4gPj4gICAgICAgSUdNUF9MT0NLX0FT U0VSVCgpOw0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gICAgICAgaWYgKGlubS0+aW5tX3RpbWVyID09 IDApIHsNCj4gPj4gPiA+PiBAQCAtMTgwMiwxNCArMTc4MywxNCBAQCBpZ21wX3YxdjJfcHJvY2Vz c19ncm91cF90aW1lcihzdHJ1Y3QgaW5fbXVsdGkgKmlubSwgY28NCj4gPj4gPiA+PiAgICogTm90 ZTogVW5sb2NrZWQgcmVhZCBmcm9tIGlnaS4NCj4gPj4gPiA+PiAgICovDQo+ID4+ID4gPj4gIHN0 YXRpYyB2b2lkDQo+ID4+ID4gPj4gLWlnbXBfdjNfcHJvY2Vzc19ncm91cF90aW1lcnMoc3RydWN0 IGlnbXBfaWZzb2Z0YyAqaWdpLA0KPiA+PiA+ID4+ICtpZ21wX3YzX3Byb2Nlc3NfZ3JvdXBfdGlt ZXJzKHN0cnVjdCBpbl9tdWx0aV9oZWFkICppbm1oLA0KPiA+PiA+ID4+ICAgICAgc3RydWN0IG1i dWZxICpxcnEsIHN0cnVjdCBtYnVmcSAqc2NxLA0KPiA+PiA+ID4+ICAgICAgc3RydWN0IGluX211 bHRpICppbm0sIGNvbnN0IGludCB1cmlfZmFzdGh6KQ0KPiA+PiA+ID4+ICB7DQo+ID4+ID4gPj4g ICAgICAgaW50IHF1ZXJ5X3Jlc3BvbnNlX3RpbWVyX2V4cGlyZWQ7DQo+ID4+ID4gPj4gICAgICAg aW50IHN0YXRlX2NoYW5nZV9yZXRyYW5zbWl0X3RpbWVyX2V4cGlyZWQ7DQo+ID4+ID4gPj4NCj4g Pj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+ID4+ICsgICAgIElO X01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+PiAgICAgICBJR01QX0xPQ0tfQVNT RVJUKCk7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAgICAgICBxdWVyeV9yZXNwb25zZV90aW1lcl9l eHBpcmVkID0gMDsNCj4gPj4gPiA+PiBAQCAtMTkwNyw4ICsxODg4LDcgQEAgaWdtcF92M19wcm9j ZXNzX2dyb3VwX3RpbWVycyhzdHJ1Y3QgaWdtcF9pZnNvZnRjICppZ2ksDQo+ID4+ID4gPj4gICAg ICAgICAgICAgICAgICAgICAgIGlmIChpbm0tPmlubV9zdGF0ZSA9PSBJR01QX0xFQVZJTkdfTUVN QkVSICYmDQo+ID4+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICBpbm0tPmlubV9zY3J2 ID09IDApIHsNCj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm0tPmlu bV9zdGF0ZSA9IElHTVBfTk9UX01FTUJFUjsNCj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTTElTVF9JTlNFUlRfSEVBRCgmaWdpLT5pZ2lfcmVsaW5taGVhZCwNCj4gPj4g PiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5tLCBpbm1fbnJlbGUpOw0K PiA+PiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubV9yZWxlX2xvY2tlZChp bm1oLCBpbm0pOw0KPiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICB9DQo+ID4+ID4gPj4g ICAgICAgICAgICAgICB9DQo+ID4+ID4gPj4gICAgICAgICAgICAgICBicmVhazsNCj4gPj4gPiA+ PiBAQCAtMTkyOSw3ICsxOTA5LDcgQEAgc3RhdGljIHZvaWQNCj4gPj4gPiA+PiAgaWdtcF92M19z dXBwcmVzc19ncm91cF9yZWNvcmQoc3RydWN0IGluX211bHRpICppbm0pDQo+ID4+ID4gPj4gIHsN Cj4gPj4gPiA+Pg0KPiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+ID4+DQo+ID4+ ID4gPj4gICAgICAgS0FTU0VSVChpbm0tPmlubV9pZ2ktPmlnaV92ZXJzaW9uID09IElHTVBfVkVS U0lPTl8zLA0KPiA+PiA+ID4+ICAgICAgICAgICAgICAgKCIlczogbm90IElHTVB2MyBtb2RlIG9u IGxpbmsiLCBfX2Z1bmNfXykpOw0KPiA+PiA+ID4+IEBAIC0yMDAzLDEzICsxOTgzLDE1IEBAIGln bXBfdjNfY2FuY2VsX2xpbmtfdGltZXJzKHN0cnVjdCBpZ21wX2lmc29mdGMgKmlnaSkNCj4gPj4g PiA+PiAgew0KPiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZm11bHRpYWRkciAgICAgICppZm1hOw0K PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZm5ldCAgICAgICAgICAgICppZnA7DQo+ID4+ID4gPj4g LSAgICAgc3RydWN0IGluX211bHRpICAgICAgICAgKmlubSwgKnRpbm07DQo+ID4+ID4gPj4gKyAg ICAgc3RydWN0IGluX211bHRpICAgICAgICAgKmlubTsNCj4gPj4gPiA+PiArICAgICBzdHJ1Y3Qg aW5fbXVsdGlfaGVhZCBpbm1fZnJlZV90bXA7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAgICAgICBD VFIzKEtUUl9JR01QVjMsICIlczogY2FuY2VsIHYzIHRpbWVycyBvbiBpZnAgJXAoJXMpIiwgX19m dW5jX18sDQo+ID4+ID4gPj4gICAgICAgICAgIGlnaS0+aWdpX2lmcCwgaWdpLT5pZ2lfaWZwLT5p Zl94bmFtZSk7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VS VCgpOw0KPiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4g PiA+PiAgICAgICBJR01QX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4gPj4gKyAgICAgU0xJU1RfSU5J VCgmaW5tX2ZyZWVfdG1wKTsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4g Pj4gICAgICAgICogU3RvcCB0aGUgdjMgR2VuZXJhbCBRdWVyeSBSZXNwb25zZSBvbiB0aGlzIGxp bmsgc3RvbmUgZGVhZC4NCj4gPj4gPiA+PiBAQCAtMjA1MCw3ICsyMDMyLDcgQEAgaWdtcF92M19j YW5jZWxfbGlua190aW1lcnMoc3RydWN0IGlnbXBfaWZzb2Z0YyAqaWdpKQ0KPiA+PiA+ID4+ICAg ICAgICAgICAgICAgICAgICAgICAgKiBtZXNzYWdlIGlzIHNlbnQgdXBzdHJlYW0gdG8gdGhlIG9s ZCBxdWVyaWVyIC0tDQo+ID4+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAqIHRyYW5zaXRp b24gdG8gTk9UIHdvdWxkIGxvc2UgdGhlIGxlYXZlIGFuZCByYWNlLg0KPiA+PiA+ID4+ICAgICAg ICAgICAgICAgICAgICAgICAgKi8NCj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgU0xJ U1RfSU5TRVJUX0hFQUQoJmlnaS0+aWdpX3JlbGlubWhlYWQsIGlubSwgaW5tX25yZWxlKTsNCj4g Pj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgaW5tX3JlbGVfbG9ja2VkKCZpbm1fZnJlZV90 bXAsIGlubSk7DQo+ID4+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgIC8qIEZBTExUSFJPVUdI ICovDQo+ID4+ID4gPj4gICAgICAgICAgICAgICBjYXNlIElHTVBfR19RVUVSWV9QRU5ESU5HX01F TUJFUjoNCj4gPj4gPiA+PiAgICAgICAgICAgICAgIGNhc2UgSUdNUF9TR19RVUVSWV9QRU5ESU5H X01FTUJFUjoNCj4gPj4gPiA+PiBAQCAtMjA2OSwxMCArMjA1MSw4IEBAIGlnbXBfdjNfY2FuY2Vs X2xpbmtfdGltZXJzKHN0cnVjdCBpZ21wX2lmc29mdGMgKmlnaSkNCj4gPj4gPiA+PiAgICAgICAg ICAgICAgIG1idWZxX2RyYWluKCZpbm0tPmlubV9zY3EpOw0KPiA+PiA+ID4+ICAgICAgIH0NCj4g Pj4gPiA+PiAgICAgICBJRl9BRERSX1JVTkxPQ0soaWZwKTsNCj4gPj4gPiA+PiAtICAgICBTTElT VF9GT1JFQUNIX1NBRkUoaW5tLCAmaWdpLT5pZ2lfcmVsaW5taGVhZCwgaW5tX25yZWxlLCB0aW5t KSB7DQo+ID4+ID4gPj4gLSAgICAgICAgICAgICBTTElTVF9SRU1PVkVfSEVBRCgmaWdpLT5pZ2lf cmVsaW5taGVhZCwgaW5tX25yZWxlKTsNCj4gPj4gPiA+PiAtICAgICAgICAgICAgIGlubV9yZWxl YXNlX2xvY2tlZChpbm0pOw0KPiA+PiA+ID4+IC0gICAgIH0NCj4gPj4gPiA+PiArDQo+ID4+ID4g Pj4gKyAgICAgaW5tX3JlbGVhc2VfbGlzdF9kZWZlcnJlZCgmaW5tX2ZyZWVfdG1wKTsNCj4gPj4g PiA+PiAgfQ0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gIC8qDQo+ID4+ID4gPj4gQEAgLTIxOTksNyAr MjE3OSw3IEBAIGlnbXBfdjF2Ml9xdWV1ZV9yZXBvcnQoc3RydWN0IGluX211bHRpICppbm0sIGNv bnN0IGludA0KPiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpcCAgICAgICAgICAgICAgICppcDsNCj4g Pj4gPiA+PiAgICAgICBzdHJ1Y3QgbWJ1ZiAgICAgICAgICAgICAqbTsNCj4gPj4gPiA+Pg0KPiA+ PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4gPj4gKyAgICAgSU5f TVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NF UlQoKTsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ICAgICAgIGlmcCA9IGlubS0+aW5tX2lmcDsNCj4g Pj4gPiA+PiBAQCAtMjI3NiwxMCArMjI1Niw4IEBAIGlnbXBfY2hhbmdlX3N0YXRlKHN0cnVjdCBp bl9tdWx0aSAqaW5tKQ0KPiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZm5ldCAqaWZwOw0KPiA+PiA+ ID4+ICAgICAgIGludCBlcnJvcjsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+IC0gICAgIElOX01VTFRJ X0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4gPj4gLQ0KPiA+PiA+ID4+ICAgICAgIGVycm9yID0gMDsN Cj4gPj4gPiA+PiAtDQo+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4g Pj4gPiA+PiAgICAgICAvKg0KPiA+PiA+ID4+ICAgICAgICAqIFRyeSB0byBkZXRlY3QgaWYgdGhl IHVwcGVyIGxheWVyIGp1c3QgYXNrZWQgdXMgdG8gY2hhbmdlIHN0YXRlDQo+ID4+ID4gPj4gICAg ICAgICogZm9yIGFuIGludGVyZmFjZSB3aGljaCBoYXMgbm93IGdvbmUgYXdheS4NCj4gPj4gPiA+ PiBAQCAtMjM3OSw5ICsyMzU3LDEwIEBAIGlnbXBfaW5pdGlhbF9qb2luKHN0cnVjdCBpbl9tdWx0 aSAqaW5tLCBzdHJ1Y3QgaWdtcF9pZg0KPiA+PiA+ID4+ICAgICAgICAgICAgICAgICogZ3JvdXAg YXJvdW5kIGZvciB0aGUgZmluYWwgSU5DTFVERSB7fSBlbnF1ZXVlLg0KPiA+PiA+ID4+ICAgICAg ICAgICAgICAgICovDQo+ID4+ID4gPj4gICAgICAgICAgICAgICBpZiAoaWdpLT5pZ2lfdmVyc2lv biA9PSBJR01QX1ZFUlNJT05fMyAmJg0KPiA+PiA+ID4+IC0gICAgICAgICAgICAgICAgIGlubS0+ aW5tX3N0YXRlID09IElHTVBfTEVBVklOR19NRU1CRVIpDQo+ID4+ID4gPj4gLSAgICAgICAgICAg ICAgICAgICAgIGlubV9yZWxlYXNlX2xvY2tlZChpbm0pOw0KPiA+PiA+ID4+IC0NCj4gPj4gPiA+ PiArICAgICAgICAgICAgICAgICBpbm0tPmlubV9zdGF0ZSA9PSBJR01QX0xFQVZJTkdfTUVNQkVS KSB7DQo+ID4+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgIE1QQVNTKGlubS0+aW5tX3JlZmNv dW50ID4gMSk7DQo+ID4+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgIGlubV9yZWxlX2xvY2tl ZChOVUxMLCBpbm0pOw0KPiA+PiA+ID4+ICsgICAgICAgICAgICAgfQ0KPiA+PiA+ID4+ICAgICAg ICAgICAgICAgaW5tLT5pbm1fc3RhdGUgPSBJR01QX1JFUE9SVElOR19NRU1CRVI7DQo+ID4+ID4g Pj4NCj4gPj4gPiA+PiAgICAgICAgICAgICAgIHN3aXRjaCAoaWdpLT5pZ2lfdmVyc2lvbikgew0K PiA+PiA+ID4+IEBAIC0yNDczLDcgKzI0NTIsNyBAQCBpZ21wX2hhbmRsZV9zdGF0ZV9jaGFuZ2Uo c3RydWN0IGluX211bHRpICppbm0sIHN0cnVjdA0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gICAgICAg aWZwID0gaW5tLT5pbm1faWZwOw0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElf TE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJU KCk7DQo+ID4+ID4gPj4gICAgICAgSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+ID4+DQo+ID4+ ID4gPj4gICAgICAgS0FTU0VSVChpZ2kgJiYgaWdpLT5pZ2lfaWZwID09IGlmcCwgKCIlczogaW5j b25zaXN0ZW50IGlmcCIsIF9fZnVuY19fKSk7DQo+ID4+ID4gPj4gQEAgLTI1MzEsNyArMjUxMCw3 IEBAIGlnbXBfZmluYWxfbGVhdmUoc3RydWN0IGluX211bHRpICppbm0sIHN0cnVjdCBpZ21wX2lm cw0KPiA+PiA+ID4+ICAgICAgICAgICBfX2Z1bmNfXywgbnRvaGwoaW5tLT5pbm1fYWRkci5zX2Fk ZHIpLCBpbm0tPmlubV9pZnAsDQo+ID4+ID4gPj4gICAgICAgICAgIGlubS0+aW5tX2lmcC0+aWZf eG5hbWUpOw0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQo KTsNCj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4g Pj4gICAgICAgSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gICAgICAg c3dpdGNoIChpbm0tPmlubV9zdGF0ZSkgew0KPiA+PiA+ID4+IEBAIC0yNjU4LDcgKzI2MzcsNyBA QCBpZ21wX3YzX2VucXVldWVfZ3JvdXBfcmVjb3JkKHN0cnVjdCBtYnVmcSAqbXEsIHN0cnVjdA0K PiA+PiA+ID4+ICAgICAgIGluX2FkZHJfdCAgICAgICAgICAgICAgICBuYWRkcjsNCj4gPj4gPiA+ PiAgICAgICB1aW50OF90ICAgICAgICAgICAgICAgICAgbW9kZTsNCj4gPj4gPiA+Pg0KPiA+PiA+ ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4gPj4gKyAgICAgSU5fTVVM VElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gICAgICAgZXJyb3Ig PSAwOw0KPiA+PiA+ID4+ICAgICAgIGlmcCA9IGlubS0+aW5tX2lmcDsNCj4gPj4gPiA+PiBAQCAt MzAxOCw3ICsyOTk3LDcgQEAgaWdtcF92M19lbnF1ZXVlX2ZpbHRlcl9jaGFuZ2Uoc3RydWN0IG1i dWZxICptcSwgc3RydWN0DQo+ID4+ID4gPj4gICAgICAgdWludDhfdCAgICAgICAgICAgICAgICAg IG1vZGUsIG5vdywgdGhlbjsNCj4gPj4gPiA+PiAgICAgICByZWN0eXBlX3QgICAgICAgICAgICAg ICAgY3J0LCBkcnQsIG5ydDsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xP Q0tfQVNTRVJUKCk7DQo+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgp Ow0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gICAgICAgaWYgKGlubS0+aW5tX25zcmMgPT0gMCB8fA0K PiA+PiA+ID4+ICAgICAgICAgICAoaW5tLT5pbm1fc3RbMF0uaXNzX2FzbSA+IDAgJiYgaW5tLT5p bm1fc3RbMV0uaXNzX2FzbSA+IDApKQ0KPiA+PiA+ID4+IEBAIC0zMjIxLDcgKzMyMDAsNyBAQCBp Z21wX3YzX21lcmdlX3N0YXRlX2NoYW5nZXMoc3RydWN0IGluX211bHRpICppbm0sIHN0cnUNCj4g Pj4gPiA+PiAgICAgICBkb21lcmdlID0gMDsNCj4gPj4gPiA+PiAgICAgICByZWNzbGVuID0gMDsN Cj4gPj4gPiA+Pg0KPiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+ID4+ICAgICAg IElHTVBfTE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ ID4gPj4gQEAgLTMzMjAsNyArMzI5OSw3IEBAIGlnbXBfdjNfZGlzcGF0Y2hfZ2VuZXJhbF9xdWVy eShzdHJ1Y3QgaWdtcF9pZnNvZnRjICppZw0KPiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpbl9tdWx0 aSAgICAgICAgICppbm07DQo+ID4+ID4gPj4gICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAg IHJldHZhbCwgbG9vcDsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tf QVNTRVJUKCk7DQo+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0K PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ ICAgICAgIEtBU1NFUlQoaWdpLT5pZ2lfdmVyc2lvbiA9PSBJR01QX1ZFUlNJT05fMywNCj4gPj4g PiA+PiBAQCAtMzYzMiw3ICszNjExLDYgQEAgREJfU0hPV19DT01NQU5EKGlnaV9saXN0LCBkYl9z aG93X2lnaV9saXN0KQ0KPiA+PiA+ID4+ICAgICAgICAgICAgICAgZGJfcHJpbnRmKCIgICAgcWkg JXVcbiIsIGlnaS0+aWdpX3FpKTsNCj4gPj4gPiA+PiAgICAgICAgICAgICAgIGRiX3ByaW50Zigi ICAgIHFyaSAldVxuIiwgaWdpLT5pZ2lfcXJpKTsNCj4gPj4gPiA+PiAgICAgICAgICAgICAgIGRi X3ByaW50ZigiICAgIHVyaSAldVxuIiwgaWdpLT5pZ2lfdXJpKTsNCj4gPj4gPiA+PiAtICAgICAg ICAgICAgIC8qIFNMSVNUX0hFQUQoLGluX211bHRpKSAgIGlnaV9yZWxpbm1oZWFkICovDQo+ID4+ ID4gPj4gICAgICAgICAgICAgICAvKiBzdHJ1Y3QgbWJ1ZnEgICAgaWdpX2dxOyAqLw0KPiA+PiA+ ID4+ICAgICAgICAgICAgICAgZGJfcHJpbnRmKCJcbiIpOw0KPiA+PiA+ID4+ICAgICAgIH0NCj4g Pj4gPiA+Pg0KPiA+PiA+ID4+IE1vZGlmaWVkOiBoZWFkL3N5cy9uZXRpbmV0L2lnbXBfdmFyLmgN Cj4gPj4gPiA+PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPj4gPiA+PiAtLS0gaGVhZC9zeXMv bmV0aW5ldC9pZ21wX3Zhci5oICAgICAgIFdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOCAgICAgICAg KHIzMzMxNzQpDQo+ID4+ID4gPj4gKysrIGhlYWQvc3lzL25ldGluZXQvaWdtcF92YXIuaCAgICAg ICBXZWQgTWF5ICAyIDE5OjM2OjI5IDIwMTggICAgICAgIChyMzMzMTc1KQ0KPiA+PiA+ID4+IEBA IC0yMTQsNyArMjE0LDYgQEAgc3RydWN0IGlnbXBfaWZzb2Z0YyB7DQo+ID4+ID4gPj4gICAgICAg dWludDMyX3QgaWdpX3FpOyAgICAgICAgLyogSUdNUHYzIFF1ZXJ5IEludGVydmFsIChzKSAqLw0K PiA+PiA+ID4+ICAgICAgIHVpbnQzMl90IGlnaV9xcmk7ICAgICAgIC8qIElHTVB2MyBRdWVyeSBS ZXNwb25zZSBJbnRlcnZhbCAocykgKi8NCj4gPj4gPiA+PiAgICAgICB1aW50MzJfdCBpZ2lfdXJp OyAgICAgICAvKiBJR01QdjMgVW5zb2xpY2l0ZWQgUmVwb3J0IEludGVydmFsIChzKSAqLw0KPiA+ PiA+ID4+IC0gICAgIFNMSVNUX0hFQUQoLGluX211bHRpKSAgIGlnaV9yZWxpbm1oZWFkOyAvKiBy ZWxlYXNlZCBncm91cHMgKi8NCj4gPj4gPiA+PiAgICAgICBzdHJ1Y3QgbWJ1ZnEgICAgaWdpX2dx OyAgICAgICAgIC8qIGdlbmVyYWwgcXVlcnkgcmVzcG9uc2VzIHF1ZXVlICovDQo+ID4+ID4gPj4g IH07DQo+ID4+ID4gPj4NCj4gPj4gPiA+Pg0KPiA+PiA+ID4+IE1vZGlmaWVkOiBoZWFkL3N5cy9u ZXRpbmV0L2luLmMNCj4gPj4gPiA+PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPj4gPiA+PiAt LS0gaGVhZC9zeXMvbmV0aW5ldC9pbi5jICAgICBXZWQgTWF5ICAyIDE3OjQxOjAwIDIwMTggICAg ICAgIChyMzMzMTc0KQ0KPiA+PiA+ID4+ICsrKyBoZWFkL3N5cy9uZXRpbmV0L2luLmMgICAgIFdl ZCBNYXkgIDIgMTk6MzY6MjkgMjAxOCAgICAgICAgKHIzMzMxNzUpDQo+ID4+ID4gPj4gQEAgLTYz MiwxMiArNjMyLDEwIEBAIGluX2RpZmFkZHJfaW9jdGwodV9sb25nIGNtZCwgY2FkZHJfdCBkYXRh LCBzdHJ1Y3QgaWZuZQ0KPiA+PiA+ID4+ICAgICAgICAgICAgICAgc3RydWN0IGluX2lmaW5mbyAq aWk7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAgICAgICAgICAgICAgIGlpID0gKChzdHJ1Y3QgaW5f aWZpbmZvICopaWZwLT5pZl9hZmRhdGFbQUZfSU5FVF0pOw0KPiA+PiA+ID4+IC0gICAgICAgICAg ICAgSU5fTVVMVElfTE9DSygpOw0KPiA+PiA+ID4+ICAgICAgICAgICAgICAgaWYgKGlpLT5paV9h bGxob3N0cykgew0KPiA+PiA+ID4+IC0gICAgICAgICAgICAgICAgICAgICAodm9pZClpbl9sZWF2 ZWdyb3VwX2xvY2tlZChpaS0+aWlfYWxsaG9zdHMsIE5VTEwpOw0KPiA+PiA+ID4+ICsgICAgICAg ICAgICAgICAgICAgICAodm9pZClpbl9sZWF2ZWdyb3VwKGlpLT5paV9hbGxob3N0cywgTlVMTCk7 DQo+ID4+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgIGlpLT5paV9hbGxob3N0cyA9IE5VTEw7 DQo+ID4+ID4gPj4gICAgICAgICAgICAgICB9DQo+ID4+ID4gPj4gLSAgICAgICAgICAgICBJTl9N VUxUSV9VTkxPQ0soKTsNCj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAg ICAgICBJRl9BRERSX1dMT0NLKGlmcCk7DQo+ID4+ID4gPj4gQEAgLTk5NCwxMSArOTkyLDEyIEBA IGluX2Jyb2FkY2FzdChzdHJ1Y3QgaW5fYWRkciBpbiwgc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ ID4gPj4gIHZvaWQNCj4gPj4gPiA+PiAgaW5faWZkZXRhY2goc3RydWN0IGlmbmV0ICppZnApDQo+ ID4+ID4gPj4gIHsNCj4gPj4gPiA+PiAtDQo+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTE9DSygp Ow0KPiA+PiA+ID4+ICAgICAgIGluX3BjYnB1cmdlaWYwKCZWX3JpcGNiaW5mbywgaWZwKTsNCj4g Pj4gPiA+PiAgICAgICBpbl9wY2JwdXJnZWlmMCgmVl91ZGJpbmZvLCBpZnApOw0KPiA+PiA+ID4+ ICAgICAgIGluX3BjYnB1cmdlaWYwKCZWX3VsaXRlY2JpbmZvLCBpZnApOw0KPiA+PiA+ID4+ICAg ICAgIGluX3B1cmdlbWFkZHJzKGlmcCk7DQo+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfVU5MT0NL KCk7DQo+ID4+ID4gPj4gIH0NCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ICAvKg0KPiA+PiA+ID4+IEBA IC0xMDExLDEyICsxMDEwLDEyIEBAIGluX2lmZGV0YWNoKHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+ PiA+ID4+ICBzdGF0aWMgdm9pZA0KPiA+PiA+ID4+ICBpbl9wdXJnZW1hZGRycyhzdHJ1Y3QgaWZu ZXQgKmlmcCkNCj4gPj4gPiA+PiAgew0KPiA+PiA+ID4+IC0gICAgIExJU1RfSEVBRCgsaW5fbXVs dGkpIHB1cmdlaW5tczsNCj4gPj4gPiA+PiAtICAgICBzdHJ1Y3QgaW5fbXVsdGkgICAgICAgICAq aW5tLCAqdGlubTsNCj4gPj4gPiA+PiArICAgICBzdHJ1Y3QgaW5fbXVsdGlfaGVhZCBwdXJnZWlu bXM7DQo+ID4+ID4gPj4gKyAgICAgc3RydWN0IGluX211bHRpICAgICAgICAgKmlubTsNCj4gPj4g PiA+PiAgICAgICBzdHJ1Y3QgaWZtdWx0aWFkZHIgICAgICAqaWZtYTsNCj4gPj4gPiA+Pg0KPiA+ PiA+ID4+IC0gICAgIExJU1RfSU5JVCgmcHVyZ2Vpbm1zKTsNCj4gPj4gPiA+PiAtICAgICBJTl9N VUxUSV9MT0NLKCk7DQo+ID4+ID4gPj4gKyAgICAgU0xJU1RfSU5JVCgmcHVyZ2Vpbm1zKTsNCj4g Pj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ ICAgICAgIC8qDQo+ID4+ID4gPj4gICAgICAgICogRXh0cmFjdCBsaXN0IG9mIGluX211bHRpIGFz c29jaWF0ZWQgd2l0aCB0aGUgZGV0YWNoaW5nIGlmcA0KPiA+PiA+ID4+IEBAIC0xMDM0LDE3ICsx MDMzLDEzIEBAIGluX3B1cmdlbWFkZHJzKHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+PiA+ID4+ICAg ICAgICAgICAgICAgICAgICgiJXM6IGlmbWFfcHJvdG9zcGVjIGlzIE5VTEwiLCBfX2Z1bmNfXykp Ow0KPiA+PiA+ID4+ICAjZW5kaWYNCj4gPj4gPiA+PiAgICAgICAgICAgICAgIGlubSA9IChzdHJ1 Y3QgaW5fbXVsdGkgKilpZm1hLT5pZm1hX3Byb3Rvc3BlYzsNCj4gPj4gPiA+PiAtICAgICAgICAg ICAgIExJU1RfSU5TRVJUX0hFQUQoJnB1cmdlaW5tcywgaW5tLCBpbm1fbGluayk7DQo+ID4+ID4g Pj4gKyAgICAgICAgICAgICBpbm1fcmVsZV9sb2NrZWQoJnB1cmdlaW5tcywgaW5tKTsNCj4gPj4g PiA+PiAgICAgICB9DQo+ID4+ID4gPj4gICAgICAgSUZfQUREUl9SVU5MT0NLKGlmcCk7DQo+ID4+ ID4gPj4NCj4gPj4gPiA+PiAtICAgICBMSVNUX0ZPUkVBQ0hfU0FGRShpbm0sICZwdXJnZWlubXMs IGlubV9saW5rLCB0aW5tKSB7DQo+ID4+ID4gPj4gLSAgICAgICAgICAgICBMSVNUX1JFTU9WRShp bm0sIGlubV9saW5rKTsNCj4gPj4gPiA+PiAtICAgICAgICAgICAgIGlubV9yZWxlYXNlX2xvY2tl ZChpbm0pOw0KPiA+PiA+ID4+IC0gICAgIH0NCj4gPj4gPiA+PiArICAgICBpbm1fcmVsZWFzZV9s aXN0X2RlZmVycmVkKCZwdXJnZWlubXMpOw0KPiA+PiA+ID4+ICAgICAgIGlnbXBfaWZkZXRhY2go aWZwKTsNCj4gPj4gPiA+PiAtDQo+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPj4gPiA+PiAgfQ0KPiA+ PiA+ID4+DQo+ID4+ID4gPj4gIHN0cnVjdCBpbl9sbGVudHJ5IHsNCj4gPj4gPiA+Pg0KPiA+PiA+ ID4+IE1vZGlmaWVkOiBoZWFkL3N5cy9uZXRpbmV0L2luX21jYXN0LmMNCj4gPj4gPiA+PiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0NCj4gPj4gPiA+PiAtLS0gaGVhZC9zeXMvbmV0aW5ldC9pbl9tY2Fz dC5jICAgICAgIFdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOCAgICAgICAgKHIzMzMxNzQpDQo+ID4+ ID4gPj4gKysrIGhlYWQvc3lzL25ldGluZXQvaW5fbWNhc3QuYyAgICAgICBXZWQgTWF5ICAyIDE5 OjM2OjI5IDIwMTggICAgICAgIChyMzMzMTc1KQ0KPiA+PiA+ID4+IEBAIC01MSw2ICs1MSw3IEBA IF9fRkJTRElEKCIkRnJlZUJTRCQiKTsNCj4gPj4gPiA+PiAgI2luY2x1ZGUgPHN5cy9zeXNjdGwu aD4NCj4gPj4gPiA+PiAgI2luY2x1ZGUgPHN5cy9rdHIuaD4NCj4gPj4gPiA+PiAgI2luY2x1ZGUg PHN5cy90YXNrcXVldWUuaD4NCj4gPj4gPiA+PiArI2luY2x1ZGUgPHN5cy9ndGFza3F1ZXVlLmg+ DQo+ID4+ID4gPj4gICNpbmNsdWRlIDxzeXMvdHJlZS5oPg0KPiA+PiA+ID4+DQo+ID4+ID4gPj4g ICNpbmNsdWRlIDxuZXQvaWYuaD4NCj4gPj4gPiA+PiBAQCAtNTksNiArNjAsOCBAQCBfX0ZCU0RJ RCgiJEZyZWVCU0QkIik7DQo+ID4+ID4gPj4gICNpbmNsdWRlIDxuZXQvcm91dGUuaD4NCj4gPj4g PiA+PiAgI2luY2x1ZGUgPG5ldC92bmV0Lmg+DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiArI2luY2x1 ZGUgPG5ldC9ldGhlcm5ldC5oPg0KPiA+PiA+ID4+ICsNCj4gPj4gPiA+PiAgI2luY2x1ZGUgPG5l dGluZXQvaW4uaD4NCj4gPj4gPiA+PiAgI2luY2x1ZGUgPG5ldGluZXQvaW5fc3lzdG0uaD4NCj4g Pj4gPiA+PiAgI2luY2x1ZGUgPG5ldGluZXQvaW5fZmliLmg+DQo+ID4+ID4gPj4gQEAgLTkxLDE4 ICs5NCwyNCBAQCBzdGF0aWMgTUFMTE9DX0RFRklORShNX0lQTVNPVVJDRSwgImlwX21zb3VyY2Ui LA0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gIC8qDQo+ID4+ID4gPj4gICAqIExvY2tpbmc6DQo+ID4+ ID4gPj4gLSAqIC0gTG9jayBvcmRlciBpczogR2lhbnQsIElOUF9XTE9DSywgSU5fTVVMVElfTE9D SywgSUdNUF9MT0NLLCBJRl9BRERSX0xPQ0suDQo+ID4+ID4gPj4gKyAqIC0gTG9jayBvcmRlciBp czogR2lhbnQsIElOUF9XTE9DSywgSU5fTVVMVElfTElTVF9MT0NLLCBJR01QX0xPQ0ssDQo+ID4+ ID4gPj4gSUZfQUREUl9MT0NLLg0KPiA+PiA+ID4+ICAgKiAtIFRoZSBJRl9BRERSX0xPQ0sgaXMg aW1wbGljaXRseSB0YWtlbiBieSBpbm1fbG9va3VwKCkgZWFybGllciwgaG93ZXZlcg0KPiA+PiA+ ID4+ICAgKiAgIGl0IGNhbiBiZSB0YWtlbiBieSBjb2RlIGluIG5ldC9pZi5jIGFsc28uDQo+ID4+ ID4gPj4gICAqIC0gaXBfbW9wdGlvbnMgYW5kIGluX21maWx0ZXIgYXJlIGNvdmVyZWQgYnkgdGhl IElOUF9XTE9DSy4NCj4gPj4gPiA+PiAgICoNCj4gPj4gPiA+PiAtICogc3RydWN0IGluX211bHRp IGlzIGNvdmVyZWQgYnkgSU5fTVVMVElfTE9DSy4gVGhlcmUgaXNuJ3Qgc3RyaWN0bHkNCj4gPj4g PiA+PiArICogc3RydWN0IGluX211bHRpIGlzIGNvdmVyZWQgYnkgSU5fTVVMVElfTElTVF9MT0NL LiBUaGVyZSBpc24ndCBzdHJpY3RseQ0KPiA+PiA+ID4+ICAgKiBhbnkgbmVlZCBmb3IgaW5fbXVs dGkgaXRzZWxmIHRvIGJlIHZpcnR1YWxpemVkIC0tIGl0IGlzIGJvdW5kIHRvIGFuIGlmcA0KPiA+ PiA+ID4+ICAgKiBhbnl3YXkgbm8gbWF0dGVyIHdoYXQgaGFwcGVucy4NCj4gPj4gPiA+PiAgICov DQo+ID4+ID4gPj4gLXN0cnVjdCBtdHggaW5fbXVsdGlfbXR4Ow0KPiA+PiA+ID4+IC1NVFhfU1lT SU5JVChpbl9tdWx0aV9tdHgsICZpbl9tdWx0aV9tdHgsICJpbl9tdWx0aV9tdHgiLCBNVFhfREVG KTsNCj4gPj4gPiA+PiArc3RydWN0IG10eCBpbl9tdWx0aV9saXN0X210eDsNCj4gPj4gPiA+PiAr TVRYX1NZU0lOSVQoaW5fbXVsdGlfbXR4LCAmaW5fbXVsdGlfbGlzdF9tdHgsICJpbl9tdWx0aV9s aXN0X210eCIsIE1UWF9ERUYpOw0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gK3N0cnVjdCBtdHggaW5f bXVsdGlfZnJlZV9tdHg7DQo+ID4+ID4gPj4gK01UWF9TWVNJTklUKGluX211bHRpX2ZyZWVfbXR4 LCAmaW5fbXVsdGlfZnJlZV9tdHgsICJpbl9tdWx0aV9mcmVlX210eCIsDQo+ID4+ID4gPj4gTVRY X0RFRik7ICsNCj4gPj4gPiA+PiArc3RydWN0IHN4IGluX211bHRpX3N4Ow0KPiA+PiA+ID4+ICtT WF9TWVNJTklUKGluX211bHRpX3N4LCAmaW5fbXVsdGlfc3gsICJpbl9tdWx0aV9zeCIpOw0KPiA+ PiA+ID4+ICsNCj4gPj4gPiA+PiAgLyoNCj4gPj4gPiA+PiAgICogRnVuY3Rpb25zIHdpdGggbm9u LXN0YXRpYyBsaW5rYWdlIGRlZmluZWQgaW4gdGhpcyBmaWxlIHNob3VsZCBiZQ0KPiA+PiA+ID4+ ICAgKiBkZWNsYXJlZCBpbiBpbl92YXIuaDoNCj4gPj4gPiA+PiBAQCAtMTUxLDYgKzE2MCw3IEBA IHN0YXRpYyBpbnQgICAgICAgIGlubV9pc19pZnBfZGV0YWNoZWQoY29uc3Qgc3RydWN0IGluX211 bHRpDQo+ID4+ID4gPj4gKiBzdGF0aWMgaW50ICAgaW5tX21lcmdlKHN0cnVjdCBpbl9tdWx0aSAq LCAvKmNvbnN0Ki8gc3RydWN0IGluX21maWx0ZXIgKik7DQo+ID4+ID4gPj4gIHN0YXRpYyB2b2lk ICBpbm1fcHVyZ2Uoc3RydWN0IGluX211bHRpICopOw0KPiA+PiA+ID4+ICBzdGF0aWMgdm9pZCAg aW5tX3JlYXAoc3RydWN0IGluX211bHRpICopOw0KPiA+PiA+ID4+ICtzdGF0aWMgdm9pZCBpbm1f cmVsZWFzZShzdHJ1Y3QgaW5fbXVsdGkgKik7DQo+ID4+ID4gPj4gIHN0YXRpYyBzdHJ1Y3QgaXBf bW9wdGlvbnMgKg0KPiA+PiA+ID4+ICAgICAgICAgICAgICAgaW5wX2ZpbmRtb3B0aW9ucyhzdHJ1 Y3QgaW5wY2IgKik7DQo+ID4+ID4gPj4gIHN0YXRpYyB2b2lkICBpbnBfZnJlZW1vcHRpb25zX2lu dGVybmFsKHN0cnVjdCBpcF9tb3B0aW9ucyAqKTsNCj4gPj4gPiA+PiBAQCAtMjE2LDYgKzIyNiw2 NSBAQCBpbm1faXNfaWZwX2RldGFjaGVkKGNvbnN0IHN0cnVjdCBpbl9tdWx0aSAqaW5tKQ0KPiA+ PiA+ID4+ICB9DQo+ID4+ID4gPj4gICNlbmRpZg0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gK3N0YXRp YyBzdHJ1Y3QgZ3JvdXB0YXNrIGZyZWVfZ3Rhc2s7DQo+ID4+ID4gPj4gK3N0YXRpYyBzdHJ1Y3Qg aW5fbXVsdGlfaGVhZCBpbm1fZnJlZV9saXN0Ow0KPiA+PiA+ID4+ICtzdGF0aWMgdm9pZCBpbm1f cmVsZWFzZV90YXNrKHZvaWQgKmFyZyBfX3VudXNlZCk7DQo+ID4+ID4gPj4gK3N0YXRpYyB2b2lk IGlubV9pbml0KHZvaWQpDQo+ID4+ID4gPj4gK3sNCj4gPj4gPiA+PiArICAgICBTTElTVF9JTklU KCZpbm1fZnJlZV9saXN0KTsNCj4gPj4gPiA+PiArICAgICB0YXNrcWdyb3VwX2NvbmZpZ19ndGFz a19pbml0KE5VTEwsICZmcmVlX2d0YXNrLCBpbm1fcmVsZWFzZV90YXNrLCAiaW5tDQo+ID4+ID4g Pj4gcmVsZWFzZSB0YXNrIik7ICt9DQo+ID4+ID4gPj4gKw0KPiA+PiA+ID4+ICtTWVNJTklUKGlu bV9pbml0LCBTSV9TVUJfU01QICsgMSwgU0lfT1JERVJfRklSU1QsDQo+ID4+ID4gPj4gKyAgICAg aW5tX2luaXQsIE5VTEwpOw0KPiA+PiA+ID4+ICsNCj4gPj4gPiA+PiArDQo+ID4+ID4gPj4gK3Zv aWQNCj4gPj4gPiA+PiAraW5tX3JlbGVhc2VfbGlzdF9kZWZlcnJlZChzdHJ1Y3QgaW5fbXVsdGlf aGVhZCAqaW5taCkNCj4gPj4gPiA+PiArew0KPiA+PiA+ID4+ICsNCj4gPj4gPiA+PiArICAgICBp ZiAoU0xJU1RfRU1QVFkoaW5taCkpDQo+ID4+ID4gPj4gKyAgICAgICAgICAgICByZXR1cm47DQo+ ID4+ID4gPj4gKyAgICAgbXR4X2xvY2soJmluX211bHRpX2ZyZWVfbXR4KTsNCj4gPj4gPiA+PiAr ICAgICBTTElTVF9DT05DQVQoJmlubV9mcmVlX2xpc3QsIGlubWgsIGluX211bHRpLCBpbm1fbnJl bGUpOw0KPiA+PiA+ID4+ICsgICAgIG10eF91bmxvY2soJmluX211bHRpX2ZyZWVfbXR4KTsNCj4g Pj4gPiA+PiArICAgICBHUk9VUFRBU0tfRU5RVUVVRSgmZnJlZV9ndGFzayk7DQo+ID4+ID4gPj4g K30NCj4gPj4gPiA+PiArDQo+ID4+ID4gPj4gK3ZvaWQNCj4gPj4gPiA+PiAraW5tX3JlbGVhc2Vf ZGVmZXJyZWQoc3RydWN0IGluX211bHRpICppbm0pDQo+ID4+ID4gPj4gK3sNCj4gPj4gPiA+PiAr ICAgICBzdHJ1Y3QgaW5fbXVsdGlfaGVhZCB0bXA7DQo+ID4+ID4gPj4gKw0KPiA+PiA+ID4+ICsg ICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+PiArICAgICBNUEFTUyhp bm0tPmlubV9yZWZjb3VudCA+IDApOw0KPiA+PiA+ID4+ICsgICAgIGlmICgtLWlubS0+aW5tX3Jl ZmNvdW50ID09IDApIHsNCj4gPj4gPiA+PiArICAgICAgICAgICAgIFNMSVNUX0lOSVQoJnRtcCk7 DQo+ID4+ID4gPj4gKyAgICAgICAgICAgICBpbm0tPmlubV9pZm1hLT5pZm1hX3Byb3Rvc3BlYyA9 IE5VTEw7DQo+ID4+ID4gPj4gKyAgICAgICAgICAgICBTTElTVF9JTlNFUlRfSEVBRCgmdG1wLCBp bm0sIGlubV9ucmVsZSk7DQo+ID4+ID4gPj4gKyAgICAgICAgICAgICBpbm1fcmVsZWFzZV9saXN0 X2RlZmVycmVkKCZ0bXApOw0KPiA+PiA+ID4+ICsgICAgIH0NCj4gPj4gPiA+PiArfQ0KPiA+PiA+ ID4+ICsNCj4gPj4gPiA+PiArc3RhdGljIHZvaWQNCj4gPj4gPiA+PiAraW5tX3JlbGVhc2VfdGFz ayh2b2lkICphcmcgX191bnVzZWQpDQo+ID4+ID4gPj4gK3sNCj4gPj4gPiA+PiArICAgICBzdHJ1 Y3QgaW5fbXVsdGlfaGVhZCBpbm1fZnJlZV90bXA7DQo+ID4+ID4gPj4gKyAgICAgc3RydWN0IGlu X211bHRpICppbm0sICp0aW5tOw0KPiA+PiA+ID4+ICsNCj4gPj4gPiA+PiArICAgICBTTElTVF9J TklUKCZpbm1fZnJlZV90bXApOw0KPiA+PiA+ID4+ICsgICAgIG10eF9sb2NrKCZpbl9tdWx0aV9m cmVlX210eCk7DQo+ID4+ID4gPj4gKyAgICAgU0xJU1RfQ09OQ0FUKCZpbm1fZnJlZV90bXAsICZp bm1fZnJlZV9saXN0LCBpbl9tdWx0aSwgaW5tX25yZWxlKTsNCj4gPj4gPiA+PiArICAgICBtdHhf dW5sb2NrKCZpbl9tdWx0aV9mcmVlX210eCk7DQo+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTE9D SygpOw0KPiA+PiA+ID4+ICsgICAgIFNMSVNUX0ZPUkVBQ0hfU0FGRShpbm0sICZpbm1fZnJlZV90 bXAsIGlubV9ucmVsZSwgdGlubSkgew0KPiA+PiA+ID4+ICsgICAgICAgICAgICAgU0xJU1RfUkVN T1ZFX0hFQUQoJmlubV9mcmVlX3RtcCwgaW5tX25yZWxlKTsNCj4gPj4gPiA+PiArICAgICAgICAg ICAgIE1QQVNTKGlubSk7DQo+ID4+ID4gPj4gKyAgICAgICAgICAgICBpbm1fcmVsZWFzZShpbm0p Ow0KPiA+PiA+ID4+ICsgICAgIH0NCj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9VTkxPQ0soKTsN Cj4gPj4gPiA+PiArfQ0KPiA+PiA+ID4+ICsNCj4gPj4gPiA+PiAgLyoNCj4gPj4gPiA+PiAgICog SW5pdGlhbGl6ZSBhbiBpbl9tZmlsdGVyIHN0cnVjdHVyZSB0byBhIGtub3duIHN0YXRlIGF0IHQw LCB0MQ0KPiA+PiA+ID4+ICAgKiB3aXRoIGFuIGVtcHR5IHNvdXJjZSBmaWx0ZXIgbGlzdC4NCj4g Pj4gPiA+PiBAQCAtMjMyLDcgKzMwMSw3IEBAIGltZl9pbml0KHN0cnVjdCBpbl9tZmlsdGVyICpp bWYsIGNvbnN0IGludCBzdDAsIGNvbnN0DQo+ID4+ID4gPj4gIC8qDQo+ID4+ID4gPj4gICAqIEZ1 bmN0aW9uIGZvciBsb29raW5nIHVwIGFuIGluX211bHRpIHJlY29yZCBmb3IgYW4gSVB2NCBtdWx0 aWNhc3QgYWRkcmVzcw0KPiA+PiA+ID4+ICAgKiBvbiBhIGdpdmVuIGludGVyZmFjZS4gaWZwIG11 c3QgYmUgdmFsaWQuIElmIG5vIHJlY29yZCBmb3VuZCwgcmV0dXJuIE5VTEwuDQo+ID4+ID4gPj4g LSAqIFRoZSBJTl9NVUxUSV9MT0NLIGFuZCBJRl9BRERSX0xPQ0sgb24gaWZwIG11c3QgYmUgaGVs ZC4NCj4gPj4gPiA+PiArICogVGhlIElOX01VTFRJX0xJU1RfTE9DSyBhbmQgSUZfQUREUl9MT0NL IG9uIGlmcCBtdXN0IGJlIGhlbGQuDQo+ID4+ID4gPj4gICAqLw0KPiA+PiA+ID4+ICBzdHJ1Y3Qg aW5fbXVsdGkgKg0KPiA+PiA+ID4+ICBpbm1fbG9va3VwX2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlm cCwgY29uc3Qgc3RydWN0IGluX2FkZHIgaW5hKQ0KPiA+PiA+ID4+IEBAIC0yNDAsNyArMzA5LDcg QEAgaW5tX2xvb2t1cF9sb2NrZWQoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9h DQo+ID4+ID4gPj4gICAgICAgc3RydWN0IGlmbXVsdGlhZGRyICppZm1hOw0KPiA+PiA+ID4+ICAg ICAgIHN0cnVjdCBpbl9tdWx0aSAqaW5tOw0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gLSAgICAgSU5f TVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tf QVNTRVJUKCk7DQo+ID4+ID4gPj4gICAgICAgSUZfQUREUl9MT0NLX0FTU0VSVChpZnApOw0KPiA+ PiA+ID4+DQo+ID4+ID4gPj4gICAgICAgaW5tID0gTlVMTDsNCj4gPj4gPiA+PiBAQCAtMjY0LDcg KzMzMyw3IEBAIGlubV9sb29rdXAoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9h ZGRyIGluYQ0KPiA+PiA+ID4+ICB7DQo+ID4+ID4gPj4gICAgICAgc3RydWN0IGluX211bHRpICpp bm07DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0K PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+PiAg ICAgICBJRl9BRERSX1JMT0NLKGlmcCk7DQo+ID4+ID4gPj4gICAgICAgaW5tID0gaW5tX2xvb2t1 cF9sb2NrZWQoaWZwLCBpbmEpOw0KPiA+PiA+ID4+ICAgICAgIElGX0FERFJfUlVOTE9DSyhpZnAp Ow0KPiA+PiA+ID4+IEBAIC00NTEsNyArNTIwLDcgQEAgaW5fZ2V0bXVsdGkoc3RydWN0IGlmbmV0 ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyICpnDQo+ID4+ID4gPj4gICAgICAgSU5fTVVMVElf TE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ICAgICAgIGlpID0gKHN0cnVjdCBp bl9pZmluZm8gKilpZnAtPmlmX2FmZGF0YVtBRl9JTkVUXTsNCj4gPj4gPiA+PiAtDQo+ID4+ID4g Pj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+ID4gPj4gICAgICAgaW5tID0gaW5t X2xvb2t1cChpZnAsICpncm91cCk7DQo+ID4+ID4gPj4gICAgICAgaWYgKGlubSAhPSBOVUxMKSB7 DQo+ID4+ID4gPj4gICAgICAgICAgICAgICAvKg0KPiA+PiA+ID4+IEBAIC00NjAsMTEgKzUyOSwx MyBAQCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGluX2FkZHIg KmcNCj4gPj4gPiA+PiAgICAgICAgICAgICAgICAqLw0KPiA+PiA+ID4+ICAgICAgICAgICAgICAg S0FTU0VSVChpbm0tPmlubV9yZWZjb3VudCA+PSAxLA0KPiA+PiA+ID4+ICAgICAgICAgICAgICAg ICAgICgiJXM6IGJhZCByZWZjb3VudCAlZCIsIF9fZnVuY19fLCBpbm0tPmlubV9yZWZjb3VudCkp Ow0KPiA+PiA+ID4+IC0gICAgICAgICAgICAgKytpbm0tPmlubV9yZWZjb3VudDsNCj4gPj4gPiA+ PiArICAgICAgICAgICAgIGlubV9hY3F1aXJlX2xvY2tlZChpbm0pOw0KPiA+PiA+ID4+ICAgICAg ICAgICAgICAgKnBpbm0gPSBpbm07DQo+ID4+ID4gPj4gLSAgICAgICAgICAgICByZXR1cm4gKDAp Ow0KPiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPiA+PiAtDQo+ID4+ID4gPj4gKyAgICAgSU5fTVVM VElfTElTVF9VTkxPQ0soKTsNCj4gPj4gPiA+PiArICAgICBpZiAoaW5tICE9IE5VTEwpDQo+ID4+ ID4gPj4gKyAgICAgICAgICAgICByZXR1cm4gKDApOw0KPiA+PiA+ID4+ICsNCj4gPj4gPiA+PiAg ICAgICBtZW1zZXQoJmdzaW4sIDAsIHNpemVvZihnc2luKSk7DQo+ID4+ID4gPj4gICAgICAgZ3Np bi5zaW5fZmFtaWx5ID0gQUZfSU5FVDsNCj4gPj4gPiA+PiAgICAgICBnc2luLnNpbl9sZW4gPSBz aXplb2Yoc3RydWN0IHNvY2thZGRyX2luKTsNCj4gPj4gPiA+PiBAQCAtNDc5LDYgKzU1MCw3IEBA IGluX2dldG11bHRpKHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW5fYWRkciAqZw0K PiA+PiA+ID4+ICAgICAgICAgICAgICAgcmV0dXJuIChlcnJvcik7DQo+ID4+ID4gPj4NCj4gPj4g PiA+PiAgICAgICAvKiBYWFggaWZtYV9wcm90b3NwZWMgbXVzdCBiZSBjb3ZlcmVkIGJ5IElGX0FE RFJfTE9DSyAqLw0KPiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+PiA+ ID4+ICAgICAgIElGX0FERFJfV0xPQ0soaWZwKTsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ICAgICAg IC8qDQo+ID4+ID4gPj4gQEAgLTUwNCwxMCArNTc2LDkgQEAgaW5fZ2V0bXVsdGkoc3RydWN0IGlm bmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyICpnDQo+ID4+ID4gPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICBfX2Z1bmNfXywgaWZtYSwgaW5tLCBpbmV0X250b2FfcigqZ3JvdXAsIGFk ZHJidWYpKTsNCj4gPj4gPiA+PiAgICAgICAgICAgICAgIH0NCj4gPj4gPiA+PiAgI2VuZGlmDQo+ ID4+ID4gPj4gLSAgICAgICAgICAgICArK2lubS0+aW5tX3JlZmNvdW50Ow0KPiA+PiA+ID4+ICsg ICAgICAgICAgICAgaW5tX2FjcXVpcmVfbG9ja2VkKGlubSk7DQo+ID4+ID4gPj4gICAgICAgICAg ICAgICAqcGlubSA9IGlubTsNCj4gPj4gPiA+PiAtICAgICAgICAgICAgIElGX0FERFJfV1VOTE9D SyhpZnApOw0KPiA+PiA+ID4+IC0gICAgICAgICAgICAgcmV0dXJuICgwKTsNCj4gPj4gPiA+PiAr ICAgICAgICAgICAgIGdvdG8gb3V0X2xvY2tlZDsNCj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4g Pj4NCj4gPj4gPiA+PiAgICAgICBJRl9BRERSX1dMT0NLX0FTU0VSVChpZnApOw0KPiA+PiA+ID4+ IEBAIC01MjIsNiArNTkzLDcgQEAgaW5fZ2V0bXVsdGkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0 IHN0cnVjdCBpbl9hZGRyICpnDQo+ID4+ID4gPj4gICAgICAgaW5tID0gbWFsbG9jKHNpemVvZigq aW5tKSwgTV9JUE1BRERSLCBNX05PV0FJVCB8IE1fWkVSTyk7DQo+ID4+ID4gPj4gICAgICAgaWYg KGlubSA9PSBOVUxMKSB7DQo+ID4+ID4gPj4gICAgICAgICAgICAgICBJRl9BRERSX1dVTkxPQ0so aWZwKTsNCj4gPj4gPiA+PiArICAgICAgICAgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ ID4+ID4gPj4gICAgICAgICAgICAgICBpZl9kZWxtdWx0aV9pZm1hKGlmbWEpOw0KPiA+PiA+ID4+ ICAgICAgICAgICAgICAgcmV0dXJuIChFTk9NRU0pOw0KPiA+PiA+ID4+ICAgICAgIH0NCj4gPj4g PiA+PiBAQCAtNTM5LDggKzYxMSw5IEBAIGluX2dldG11bHRpKHN0cnVjdCBpZm5ldCAqaWZwLCBj b25zdCBzdHJ1Y3QgaW5fYWRkciAqZw0KPiA+PiA+ID4+ICAgICAgIGlmbWEtPmlmbWFfcHJvdG9z cGVjID0gaW5tOw0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gICAgICAgKnBpbm0gPSBpbm07DQo+ID4+ ID4gPj4gLQ0KPiA+PiA+ID4+ICsgb3V0X2xvY2tlZDoNCj4gPj4gPiA+PiAgICAgICBJRl9BRERS X1dVTkxPQ0soaWZwKTsNCj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0K PiA+PiA+ID4+ICAgICAgIHJldHVybiAoMCk7DQo+ID4+ID4gPj4gIH0NCj4gPj4gPiA+Pg0KPiA+ PiA+ID4+IEBAIC01NTAsMzYgKzYyMywyOSBAQCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZuZXQgKmlm cCwgY29uc3Qgc3RydWN0IGluX2FkZHIgKmcNCj4gPj4gPiA+PiAgICogSWYgdGhlIHJlZmNvdW50 IGRyb3BzIHRvIDAsIGZyZWUgdGhlIGluX211bHRpIHJlY29yZCBhbmQNCj4gPj4gPiA+PiAgICog ZGVsZXRlIHRoZSB1bmRlcmx5aW5nIGxpbmstbGF5ZXIgbWVtYmVyc2hpcC4NCj4gPj4gPiA+PiAg ICovDQo+ID4+ID4gPj4gLXZvaWQNCj4gPj4gPiA+PiAtaW5tX3JlbGVhc2VfbG9ja2VkKHN0cnVj dCBpbl9tdWx0aSAqaW5tKQ0KPiA+PiA+ID4+ICtzdGF0aWMgdm9pZA0KPiA+PiA+ID4+ICtpbm1f cmVsZWFzZShzdHJ1Y3QgaW5fbXVsdGkgKmlubSkNCj4gPj4gPiA+PiAgew0KPiA+PiA+ID4+ICAg ICAgIHN0cnVjdCBpZm11bHRpYWRkciAqaWZtYTsNCj4gPj4gPiA+PiArICAgICBzdHJ1Y3QgaWZu ZXQgKmlmcDsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJU KCk7DQo+ID4+ID4gPj4gLQ0KPiA+PiA+ID4+ICAgICAgIENUUjIoS1RSX0lHTVBWMywgIiVzOiBy ZWZjb3VudCBpcyAlZCIsIF9fZnVuY19fLCBpbm0tPmlubV9yZWZjb3VudCk7DQo+ID4+ID4gPj4g LQ0KPiA+PiA+ID4+IC0gICAgIGlmICgtLWlubS0+aW5tX3JlZmNvdW50ID4gMCkgew0KPiA+PiA+ ID4+IC0gICAgICAgICAgICAgQ1RSMihLVFJfSUdNUFYzLCAiJXM6IHJlZmNvdW50IGlzIG5vdyAl ZCIsIF9fZnVuY19fLA0KPiA+PiA+ID4+IC0gICAgICAgICAgICAgICAgIGlubS0+aW5tX3JlZmNv dW50KTsNCj4gPj4gPiA+PiAtICAgICAgICAgICAgIHJldHVybjsNCj4gPj4gPiA+PiAtICAgICB9 DQo+ID4+ID4gPj4gLQ0KPiA+PiA+ID4+ICsgICAgIE1QQVNTKGlubS0+aW5tX3JlZmNvdW50ID09 IDApOw0KPiA+PiA+ID4+ICAgICAgIENUUjIoS1RSX0lHTVBWMywgIiVzOiBmcmVlaW5nIGlubSAl cCIsIF9fZnVuY19fLCBpbm0pOw0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gICAgICAgaWZtYSA9IGlu bS0+aW5tX2lmbWE7DQo+ID4+ID4gPj4gKyAgICAgaWZwID0gaW5tLT5pbm1faWZwOw0KPiA+PiA+ ID4+DQo+ID4+ID4gPj4gICAgICAgLyogWFhYIHRoaXMgYWNjZXNzIGlzIG5vdCBjb3ZlcmVkIGJ5 IElGX0FERFJfTE9DSyAqLw0KPiA+PiA+ID4+ICAgICAgIENUUjIoS1RSX0lHTVBWMywgIiVzOiBw dXJnaW5nIGlmbWEgJXAiLCBfX2Z1bmNfXywgaWZtYSk7DQo+ID4+ID4gPj4gLSAgICAgS0FTU0VS VChpZm1hLT5pZm1hX3Byb3Rvc3BlYyA9PSBpbm0sDQo+ID4+ID4gPj4gLSAgICAgICAgICgiJXM6 IGlmbWFfcHJvdG9zcGVjICE9IGlubSIsIF9fZnVuY19fKSk7DQo+ID4+ID4gPj4gLSAgICAgaWZt YS0+aWZtYV9wcm90b3NwZWMgPSBOVUxMOw0KPiA+PiA+ID4+IC0NCj4gPj4gPiA+PiArICAgICBp ZiAoaWZwKQ0KPiA+PiA+ID4+ICsgICAgICAgICAgICAgQ1VSVk5FVF9TRVQoaWZwLT5pZl92bmV0 KTsNCj4gPj4gPiA+PiAgICAgICBpbm1fcHVyZ2UoaW5tKTsNCj4gPj4gPiA+PiAtDQo+ID4+ID4g Pj4gICAgICAgZnJlZShpbm0sIE1fSVBNQUREUik7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAgICAg ICBpZl9kZWxtdWx0aV9pZm1hKGlmbWEpOw0KPiA+PiA+ID4+ICsgICAgIGlmIChpZnApDQo+ID4+ ID4gPj4gKyAgICAgICAgICAgICBDVVJWTkVUX1JFU1RPUkUoKTsNCj4gPj4gPiA+PiAgfQ0KPiA+ PiA+ID4+DQo+ID4+ID4gPj4gIC8qDQo+ID4+ID4gPj4gQEAgLTU5Miw3ICs2NTgsNyBAQCBpbm1f Y2xlYXJfcmVjb3JkZWQoc3RydWN0IGluX211bHRpICppbm0pDQo+ID4+ID4gPj4gIHsNCj4gPj4g PiA+PiAgICAgICBzdHJ1Y3QgaXBfbXNvdXJjZSAgICAgICAqaW1zOw0KPiA+PiA+ID4+DQo+ID4+ ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+PiArICAgICBJTl9N VUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAgICAgICBSQl9G T1JFQUNIKGltcywgaXBfbXNvdXJjZV90cmVlLCAmaW5tLT5pbm1fc3Jjcykgew0KPiA+PiA+ID4+ ICAgICAgICAgICAgICAgaWYgKGltcy0+aW1zX3N0cCkgew0KPiA+PiA+ID4+IEBAIC02MzIsNyAr Njk4LDcgQEAgaW5tX3JlY29yZF9zb3VyY2Uoc3RydWN0IGluX211bHRpICppbm0sIGNvbnN0IGlu X2FkZHJfDQo+ID4+ID4gPj4gICAgICAgc3RydWN0IGlwX21zb3VyY2UgICAgICAgIGZpbmQ7DQo+ ID4+ID4gPj4gICAgICAgc3RydWN0IGlwX21zb3VyY2UgICAgICAgKmltcywgKm5pbXM7DQo+ID4+ ID4gPj4NCj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+ID4+ ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ ICAgICAgIGZpbmQuaW1zX2hhZGRyID0gbnRvaGwobmFkZHIpOw0KPiA+PiA+ID4+ICAgICAgIGlt cyA9IFJCX0ZJTkQoaXBfbXNvdXJjZV90cmVlLCAmaW5tLT5pbm1fc3JjcywgJmZpbmQpOw0KPiA+ PiA+ID4+IEBAIC05NTksNiArMTAyNSw3IEBAIGlubV9tZXJnZShzdHJ1Y3QgaW5fbXVsdGkgKmlu bSwgLypjb25zdCovIHN0cnVjdCBpbl9tZg0KPiA+PiA+ID4+ICAgICAgIHNjaGFuZ2VkID0gMDsN Cj4gPj4gPiA+PiAgICAgICBlcnJvciA9IDA7DQo+ID4+ID4gPj4gICAgICAgbnNyYzEgPSBuc3Jj MCA9IDA7DQo+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+ PiA+ID4+DQo+ID4+ID4gPj4gICAgICAgLyoNCj4gPj4gPiA+PiAgICAgICAgKiBVcGRhdGUgdGhl IHNvdXJjZSBmaWx0ZXJzIGZpcnN0LCBhcyB0aGlzIG1heSBmYWlsLg0KPiA+PiA+ID4+IEBAIC0x MTY1LDYgKzEyMzIsNyBAQCBpbl9qb2luZ3JvdXBfbG9ja2VkKHN0cnVjdCBpZm5ldCAqaWZwLCBj b25zdCBzdHJ1Y3QgaW4NCj4gPj4gPiA+PiAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAg ZXJyb3I7DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAgICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgp Ow0KPiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLX0FTU0VSVCgpOw0KPiA+PiA+ ID4+DQo+ID4+ID4gPj4gICAgICAgQ1RSNChLVFJfSUdNUFYzLCAiJXM6IGpvaW4gMHglMDh4IG9u ICVwKCVzKSkiLCBfX2Z1bmNfXywNCj4gPj4gPiA+PiAgICAgICAgICAgbnRvaGwoZ2luYS0+c19h ZGRyKSwgaWZwLCBpZnAtPmlmX3huYW1lKTsNCj4gPj4gPiA+PiBAQCAtMTE4Niw3ICsxMjU0LDcg QEAgaW5fam9pbmdyb3VwX2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGlu DQo+ID4+ID4gPj4gICAgICAgICAgICAgICBDVFIxKEtUUl9JR01QVjMsICIlczogaW5fZ2V0bXVs dGkoKSBmYWlsdXJlIiwgX19mdW5jX18pOw0KPiA+PiA+ID4+ICAgICAgICAgICAgICAgcmV0dXJu IChlcnJvcik7DQo+ID4+ID4gPj4gICAgICAgfQ0KPiA+PiA+ID4+IC0NCj4gPj4gPiA+PiArICAg ICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gPj4gPiA+PiAgICAgICBDVFIxKEtUUl9JR01QVjMs ICIlczogbWVyZ2UgaW5tIHN0YXRlIiwgX19mdW5jX18pOw0KPiA+PiA+ID4+ICAgICAgIGVycm9y ID0gaW5tX21lcmdlKGlubSwgaW1mKTsNCj4gPj4gPiA+PiAgICAgICBpZiAoZXJyb3IpIHsNCj4g Pj4gPiA+PiBAQCAtMTIwMSwxMCArMTI2OSwxMiBAQCBpbl9qb2luZ3JvdXBfbG9ja2VkKHN0cnVj dCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW4NCj4gPj4gPiA+PiAgICAgICAgICAgICAgIGdv dG8gb3V0X2lubV9yZWxlYXNlOw0KPiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPiA+Pg0KPiA+PiA+ ID4+IC1vdXRfaW5tX3JlbGVhc2U6DQo+ID4+ID4gPj4gKyBvdXRfaW5tX3JlbGVhc2U6DQo+ID4+ ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPj4gPiA+PiAgICAgICBpZiAo ZXJyb3IpIHsNCj4gPj4gPiA+PiArDQo+ID4+ID4gPj4gICAgICAgICAgICAgICBDVFIyKEtUUl9J R01QVjMsICIlczogZHJvcHBpbmcgcmVmIG9uICVwIiwgX19mdW5jX18sIGlubSk7DQo+ID4+ID4g Pj4gLSAgICAgICAgICAgICBpbm1fcmVsZWFzZV9sb2NrZWQoaW5tKTsNCj4gPj4gPiA+PiArICAg ICAgICAgICAgIGlubV9yZWxlYXNlX2RlZmVycmVkKGlubSk7DQo+ID4+ID4gPj4gICAgICAgfSBl bHNlIHsNCj4gPj4gPiA+PiAgICAgICAgICAgICAgICpwaW5tID0gaW5tOw0KPiA+PiA+ID4+ICAg ICAgIH0NCj4gPj4gPiA+PiBAQCAtMTI0OSw2ICsxMzE5LDcgQEAgaW5fbGVhdmVncm91cF9sb2Nr ZWQoc3RydWN0IGluX211bHRpICppbm0sIC8qY29uc3QqLyBzDQo+ID4+ID4gPj4gICAgICAgZXJy b3IgPSAwOw0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gICAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQo KTsNCj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DS19BU1NFUlQoKTsNCj4gPj4g PiA+Pg0KPiA+PiA+ID4+ICAgICAgIENUUjUoS1RSX0lHTVBWMywgIiVzOiBsZWF2ZSBpbm0gJXAs IDB4JTA4eC8lcywgaW1mICVwIiwgX19mdW5jX18sDQo+ID4+ID4gPj4gICAgICAgICAgIGlubSwg bnRvaGwoaW5tLT5pbm1fYWRkci5zX2FkZHIpLA0KPiA+PiA+ID4+IEBAIC0xMjcyLDE4ICsxMzQz LDIwIEBAIGluX2xlYXZlZ3JvdXBfbG9ja2VkKHN0cnVjdCBpbl9tdWx0aSAqaW5tLCAvKmNvbnN0 Ki8gcw0KPiA+PiA+ID4+ICAgICAgICAqIHRoZSB0cmFuc2FjdGlvbiwgaXQgTVVTVCBOT1QgZmFp bC4NCj4gPj4gPiA+PiAgICAgICAgKi8NCj4gPj4gPiA+PiAgICAgICBDVFIxKEtUUl9JR01QVjMs ICIlczogbWVyZ2UgaW5tIHN0YXRlIiwgX19mdW5jX18pOw0KPiA+PiA+ID4+ICsgICAgIElOX01V TFRJX0xJU1RfTE9DSygpOw0KPiA+PiA+ID4+ICAgICAgIGVycm9yID0gaW5tX21lcmdlKGlubSwg aW1mKTsNCj4gPj4gPiA+PiAgICAgICBLQVNTRVJUKGVycm9yID09IDAsICgiJXM6IGZhaWxlZCB0 byBtZXJnZSBpbm0gc3RhdGUiLCBfX2Z1bmNfXykpOw0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gICAg ICAgQ1RSMShLVFJfSUdNUFYzLCAiJXM6IGRvaW5nIGlnbXAgZG93bmNhbGwiLCBfX2Z1bmNfXyk7 DQo+ID4+ID4gPj4gICAgICAgQ1VSVk5FVF9TRVQoaW5tLT5pbm1faWZwLT5pZl92bmV0KTsNCj4g Pj4gPiA+PiAgICAgICBlcnJvciA9IGlnbXBfY2hhbmdlX3N0YXRlKGlubSk7DQo+ID4+ID4gPj4g KyAgICAgaW5tX3JlbGVhc2VfZGVmZXJyZWQoaW5tKTsNCj4gPj4gPiA+PiArICAgICBJTl9NVUxU SV9MSVNUX1VOTE9DSygpOw0KPiA+PiA+ID4+ICAgICAgIENVUlZORVRfUkVTVE9SRSgpOw0KPiA+ PiA+ID4+ICAgICAgIGlmIChlcnJvcikNCj4gPj4gPiA+PiAgICAgICAgICAgICAgIENUUjEoS1RS X0lHTVBWMywgIiVzOiBmYWlsZWQgaWdtcCBkb3duY2FsbCIsIF9fZnVuY19fKTsNCj4gPj4gPiA+ Pg0KPiA+PiA+ID4+ICAgICAgIENUUjIoS1RSX0lHTVBWMywgIiVzOiBkcm9wcGluZyByZWYgb24g JXAiLCBfX2Z1bmNfXywgaW5tKTsNCj4gPj4gPiA+PiAtICAgICBpbm1fcmVsZWFzZV9sb2NrZWQo aW5tKTsNCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ICAgICAgIHJldHVybiAoZXJyb3IpOw0KPiA+PiA+ ID4+ICB9DQo+ID4+ID4gPj4gQEAgLTEzMTUsMTggKzEzODgsNiBAQCBpbl9hZGRtdWx0aShzdHJ1 Y3QgaW5fYWRkciAqYXAsIHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+PiA+ID4+ICB9DQo+ID4+ID4g Pj4NCj4gPj4gPiA+PiAgLyoNCj4gPj4gPiA+PiAtICogTGVhdmUgYW4gSVB2NCBtdWx0aWNhc3Qg Z3JvdXAsIGFzc3VtZWQgdG8gYmUgaW4gZXhjbHVzaXZlICgqLEcpIG1vZGUuDQo+ID4+ID4gPj4g LSAqIFRoaXMgS1BJIGlzIGZvciBsZWdhY3kga2VybmVsIGNvbnN1bWVycyBvbmx5Lg0KPiA+PiA+ ID4+IC0gKi8NCj4gPj4gPiA+Pg0KPiA+PiA+ID4+ICoqKiBESUZGIE9VVFBVVCBUUlVOQ0FURUQg QVQgMTAwMCBMSU5FUyAqKioNCj4gPj4gPiA+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXw0KPiA+PiA+ID4+IHN2bi1zcmMtaGVhZEBmcmVlYnNkLm9yZyBt YWlsaW5nIGxpc3QNCj4gPj4gPiA+PiBodHRwczovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4v bGlzdGluZm8vc3ZuLXNyYy1oZWFkDQo+ID4+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIHNlbmQgYW55 IG1haWwgdG8gInN2bi1zcmMtaGVhZC11bnN1YnNjcmliZUBmcmVlYnNkLm9yZyIgIA0KPiA+PiA+ ID4NCj4gPj4gPiA+DQo+ID4+ID4gPiBBZnRlciAoYXJvdW5kISkgdGhpcyB1cGRhdGUsIHNvbWUg Ym94ZXMgd2l0aCBpMzUwIGR1YWwgcG9ydCBOSUNzIGltbWVkaWF0ZWx5DQo+ID4+ID4gPiBjcmFz aCB3aXRoIEZhdGFsIHRyYXAgMTI6IHBhZ2UgZmF1bHQgYW5kIHNvbWV0aGluZyB3aXRoDQo+ID4+ ID4gPg0KPiA+PiA+ID4gY3VycmVudCBwcm9jZXNzOiAoaXNjLXdvcmtlcjAwMDYpDQo+ID4+ID4g Pg0KPiA+PiA+ID4gLi4uLg0KPiA+PiA+ID4NCj4gPj4gPiA+IFRob3NlIGJveGVzIGRvIG5vdCBo YXZlIGRlYnVnZ2luZyBrZXJuZWwuIFRoZSBzeW1wdG9tYnMgYXJlIHRoZSBzYW1lLiBTaW5nbGUg dXNlcg0KPiA+PiA+ID4ga2VybmVsIHdvcmtzLCBidXQgdGhlIG1vbWVudCBJIHBlcmZvcm0gL2V0 Yy9uZXRzdGFydCBhbmQgYW55IGtpbmQgb2YgbmV0IHRyYWZmaWMNCj4gPj4gPiA+IGVzdGFibGlz aGVzLCB0aGlzIGNyYXAgYmFpbHMgb3V0Lg0KPiA+PiA+ID4NCj4gPj4gPiA+DQo+ID4+ID4gPiAt IC0tDQo+ID4+ID4gPiBPLiBIYXJ0bWFubg0KPiA+PiA+ID4NCj4gPj4gPiA+IEljaCB3aWRlcnNw cmVjaGUgZGVyIE51dHp1bmcgb2RlciDDnGJlcm1pdHRsdW5nIG1laW5lciBEYXRlbiBmw7xyDQo+ ID4+ID4gPiBXZXJiZXp3ZWNrZSBvZGVyIGbDvHIgZGllIE1hcmt0LSBvZGVyIE1laW51bmdzZm9y c2NodW5nICjCpyAyOCBBYnMuIDQgQkRTRykuDQo+ID4+ID4gPiAtLS0tLUJFR0lOIFBHUCBTSUdO QVRVUkUtLS0tLQ0KPiA+PiA+ID4NCj4gPj4gPiA+IGlMVUVBUk1LQUIwV0lRUVpWWk16QXR3QzJU Lzg2VHJTNTI4ZnlGaFlsQVVDV3V0anRnQUtDUkRTNTI4ZnlGaFkNCj4gPj4gPiA+IGxBa3pBZjlQ aGFGVHdOaFFEMnpGN3hTSEoyd2Z2THRvVUVqWmx6R3N1c0FDcDFwYTdKQWZ6MFB5ditsbStYTkoN Cj4gPj4gPiA+IHZMRWxySWYxQ21EenVBOHlibFoveC93T1ZTSmtBZjlDKzUwRFZFdEdxNUgvYkhT RE53em1xcmo4WWdCN1hwU3MNCj4gPj4gPiA+IFBNUlhjK0l3SWExSmdpMnlNKzZUQ1NOU3MxTjVi RVVoVTlCaThlWHk2WTBGU2tBWmVWK3MNCj4gPj4gPiA+ID1TMGJDDQo+ID4+ID4gPiAtLS0tLUVO RCBQR1AgU0lHTkFUVVJFLS0tLS0NCj4gPj4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fDQo+ID4+ID4gPiBzdm4tc3JjLWhlYWRAZnJlZWJzZC5vcmcg bWFpbGluZyBsaXN0DQo+ID4+ID4gPiBodHRwczovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4v bGlzdGluZm8vc3ZuLXNyYy1oZWFkDQo+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgc2VuZCBhbnkg bWFpbCB0byAic3ZuLXNyYy1oZWFkLXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIiAgDQo+ID4+DQo+ ID4+DQo+ID4+DQo+ID4+IC0gLS0NCj4gPj4gTy4gSGFydG1hbm4NCj4gPj4NCj4gPj4gSWNoIHdp ZGVyc3ByZWNoZSBkZXIgTnV0enVuZyBvZGVyIMOcYmVybWl0dGx1bmcgbWVpbmVyIERhdGVuIGbD vHINCj4gPj4gV2VyYmV6d2Vja2Ugb2RlciBmw7xyIGRpZSBNYXJrdC0gb2RlciBNZWludW5nc2Zv cnNjaHVuZyAowqcgMjggQWJzLiA0IEJEU0cpLg0KPiA+PiAtLS0tLUJFR0lOIFBHUCBTSUdOQVRV UkUtLS0tLQ0KPiA+Pg0KPiA+PiBpTFVFQVJNS0FCMFdJUVFaVlpNekF0d0MyVC84NlRyUzUyOGZ5 RmhZbEFVQ1d1dHY4d0FLQ1JEUzUyOGZ5RmhZDQo+ID4+IGxJZTFBZndPQ0FpZ3BYYXdaN0tBakxO cFdqUlQ0RHNyemZxY0M1N01vemlWUXlLK1g5cW9RQTJ2MHBsVk5wUDANCj4gPj4gRkxxaDVka1JY aWlPTHJ5cjlhdUlMVUt5TENOeUFmd0w3Y0ZlMVlSWDdWbnNLNXcvLzhYbTI1dEo3NENYQzhQMA0K PiA+PiBnYW9TcXZEcUNLV1RqNmlOK1EvUGpvTm9oV29JSzc2dGlaQVdQamthSGV1RmJ5cFBhMkcr DQo+ID4+ID1FcEphDQo+ID4+IC0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQ0KPiA+PiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+PiBzdm4tc3Jj LWhlYWRAZnJlZWJzZC5vcmcgbWFpbGluZyBsaXN0DQo+ID4+IGh0dHBzOi8vbGlzdHMuZnJlZWJz ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9zdm4tc3JjLWhlYWQNCj4gPj4gVG8gdW5zdWJzY3JpYmUs IHNlbmQgYW55IG1haWwgdG8gInN2bi1zcmMtaGVhZC11bnN1YnNjcmliZUBmcmVlYnNkLm9yZyIg IA0KPiA+DQo+ID4NCj4gPg0KPiA+IC0gLS0NCj4gPiBPLiBIYXJ0bWFubg0KPiA+DQo+ID4gSWNo IHdpZGVyc3ByZWNoZSBkZXIgTnV0enVuZyBvZGVyIMOcYmVybWl0dGx1bmcgbWVpbmVyIERhdGVu IGbDvHINCj4gPiBXZXJiZXp3ZWNrZSBvZGVyIGbDvHIgZGllIE1hcmt0LSBvZGVyIE1laW51bmdz Zm9yc2NodW5nICjCpyAyOCBBYnMuIDQgQkRTRykuDQo+ID4gLS0tLS1CRUdJTiBQR1AgU0lHTkFU VVJFLS0tLS0NCj4gPg0KPiA+IGlMVUVBUk1LQUIwV0lRUVpWWk16QXR3QzJULzg2VHJTNTI4ZnlG aFlsQVVDV3UxeThnQUtDUkRTNTI4ZnlGaFkNCj4gPiBsRkVvQWY0aVcrNHRTQU9jRzBFUTEvWTJQ TnFMQ1g0QW5wWVRsU2xhRUN4dEZsRFovWGJOT3czVHlWQjlSYlFDDQo+ID4gcUdFOVV4MnhRQkQ0 OGExTmIxSUhWVkM5amk3akFnQ0xPWHpLVXFtY1hrUE52alNnWldaK1NkeWQ1NUNob0xnWQ0KPiA+ IFNreVk4RlNVM0dFRG0yOFdnYVhqUTRvSmgrNy9GZjY5TnN1RFpsdDdpQzI0S1pkUktIMDANCj4g PiA9NGJZKw0KPiA+IC0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLSAgDQo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHN2bi1zcmMtaGVhZEBmcmVl YnNkLm9yZyBtYWlsaW5nIGxpc3QNCj4gaHR0cHM6Ly9saXN0cy5mcmVlYnNkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL3N2bi1zcmMtaGVhZA0KPiBUbyB1bnN1YnNjcmliZSwgc2VuZCBhbnkgbWFpbCB0 byAic3ZuLXNyYy1oZWFkLXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIg0KDQoNCg0KLSAtLSANCk8u IEhhcnRtYW5uDQoNCkljaCB3aWRlcnNwcmVjaGUgZGVyIE51dHp1bmcgb2RlciDDnGJlcm1pdHRs dW5nIG1laW5lciBEYXRlbiBmw7xyDQpXZXJiZXp3ZWNrZSBvZGVyIGbDvHIgZGllIE1hcmt0LSBv ZGVyIE1laW51bmdzZm9yc2NodW5nICjCpyAyOCBBYnMuIDQgQkRTRykuDQotLS0tLUJFR0lOIFBH UCBTSUdOQVRVUkUtLS0tLQ0KDQppTFVFQVJNS0FCMFdJUVFaVlpNekF0d0MyVC84NlRyUzUyOGZ5 RmhZbEFVQ1d1NFV0d0FLQ1JEUzUyOGZ5RmhZDQpsSXoyQWY5bnFyU0dRc2FOVlo5RGNTVFg0b3Jv M1NSLzhlZnRiQzQxZGF0NjdnallJdWI5eERLVWxiZlVQSWtUDQpvR2RQUDl4TzM1K1hPbm16T0s2 eG1MeUpid3Y1QWdDWGU3WGJjQmNHZlEzODB6aEdnbWVaNWljaDJUZDFMZ3hvDQo4dDdpRm8reFR2 K1RpY1EyN3VScUN3S1BjWUViejA2VUtLZ3E5dHRZcWdYWlYxVUl6czVoDQo9L1VaZg0KLS0tLS1F TkQgUEdQIFNJR05BVFVSRS0tLS0tDQo=