From owner-svn-src-head@freebsd.org Sun Aug 12 05:23:42 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 A6D5E1064C78; Sun, 12 Aug 2018 05:23:41 +0000 (UTC) (envelope-from ohartmann@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 0A5EB79565; Sun, 12 Aug 2018 05:23:40 +0000 (UTC) (envelope-from ohartmann@walstatt.org) Received: from thor.intern.walstatt.dynvpn.de ([85.181.241.189]) by mail.gmx.com (mrgmx102 [212.227.17.168]) with ESMTPSA (Nemesis) id 0M8JyQ-1g9z5X177C-00vyB9; Sun, 12 Aug 2018 07:23:29 +0200 Date: Sun, 12 Aug 2018 07:22:54 +0200 From: "O. Hartmann" To: Matt Macy Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r337670 - in head/sys/cddl: compat/opensolaris/sys contrib/opensolaris/uts/common contrib/opensolaris/uts/common/fs/zfs contrib/opensolaris/uts/common/fs/zfs/sys Message-ID: <20180812072321.1a74466a@thor.intern.walstatt.dynvpn.de> In-Reply-To: <201808120110.w7C1AIL1087851@repo.freebsd.org> References: <201808120110.w7C1AIL1087851@repo.freebsd.org> Organization: WALSTATT User-Agent: OutScare 3.1415926 X-Operating-System: ImNotAnOperatingSystem 3.141592527 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:uqeOQS3IvPvvP8JDSloZW7PKEBVHSueTkB6R8ok6pXUUtQCK3Xy olaY8hiL7V4ZhsaUYl7dkhzSvNQ3dSvIaGLN9Yr5xiXa87vtLJSU4wAQQPAL989QN9rHleC snhzEvlhgvkfOtkPd47UFa/Yfw/0cRU+1EsMKrNrKduDvjjGMl5R8I0+FOZ7htgXNdqaHBP chhDsNOnRUK7rYPcsfr1A== X-UI-Out-Filterresults: notjunk:1;V01:K0:GUxWh0JgUf8=:GxnrVZTA3Gm/34xVNykp9C U7bPhZ1mVAaFYxBQiQJl9SyEwCdJ04Gzvkhlu0qFmxVBnlvKDwQ+ek/tJVWYWuKfW+A+54Kmj D3os2szn9WhbtLL7OD8ROWslxgB4qkYksxZhK6uXVaWRcl4H4xl3BYDbdwSy4NkoEgJ5NuVHc TegmHpFLptiaKZQ1nKDouPvyjYWCCyf+OfFojB3VM8/HSp2vdrQ6g8aw4lvWtIonYaW127g/m yG9DWApKlEC0HMmJ5Ns0JzG8PxlclW6krRJzghtkEbAR4gHYN8cazI0ztXnDYIRUgQ1ZW26Jy Is/+gKxz4at8ZIDMsnYm6Mi05g+vFG4kOG46Arc3XIPyN0atZ5JJUZg9bj60i5RyfrnPkCD/v 55bL1FE1PVjDOwg9NMkPYlSQcL5dTDLrHtU2Zmwn4Q92nxcfyXyKejzIHxDmTi9a+f8tTQKGI 7VTxNrL2wV+C+juy3iI7sDyXudB1R2IS15xhwS+yqe3KsB+/yjraoezw/9lGhN8YD9Scd90xd +Dz131xsnCJDoI9B81Ayl3eyPatHa5zrL07Nh+a4c3zHpeW0/KX6lIwuBRW3BTH/qh4A2myuW 7Oir8N2hFqWie7WrtH2ElVYE8V8Qsa3k8ECWZ3ZaFCF7/ykCrv3D9nJoAFpc35hpgJ97+gDL5 bZCo9xZN6Wol0riEzFUu9hSh5b3Q/JmSGshBWcH3LFBR/d8N9Zs0IooYg1jx9LxtFmGzt8tez V9vwYnveNizMrSKoEg4ky29S0cPf7iZKuAJfhOQ3EtlW0ittz2XA/JxuI/DMMy2082lg1hIWC 2NzJsv/ X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.27 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: Sun, 12 Aug 2018 05:23:42 -0000 LS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQ0KSGFzaDogU0hBNTEyDQoNCkFtIFN1 biwgMTIgQXVnIDIwMTggMDE6MTA6MTggKzAwMDAgKFVUQykNCk1hdHQgTWFjeSA8bW1hY3lARnJl ZUJTRC5vcmc+IHNjaHJpZWI6DQoNCj4gQXV0aG9yOiBtbWFjeQ0KPiBEYXRlOiBTdW4gQXVnIDEy IDAxOjEwOjE4IDIwMTgNCj4gTmV3IFJldmlzaW9uOiAzMzc2NzANCj4gVVJMOiBodHRwczovL3N2 bndlYi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8zMzc2NzANCj4gDQo+IExvZzoNCj4gICBN RlYvWm9MOiBhZGQgZGJ1ZiBzdGF0cw0KPiAgIA0KPiAgIE5COiBkaXNhYmxlZCBwZW5kaW5nIHRo ZSBhZGRpdGlvbiBvZiBLU1RBVF9UWVBFX1JBVyBzdXBwb3J0IHRvIHRoZQ0KPiAgIFNQTA0KPiAg IA0KPiAgIGNvbW1pdCBlMGIwY2E5ODNkNjg5N2JjZGRmMDVhZjJjMGU1ZDAxZmY2NmY5MGRiDQo+ ICAgQXV0aG9yOiBCcmlhbiBCZWhsZW5kb3JmIDxiZWhsZW5kb3JmMUBsbG5sLmdvdj4NCj4gICBE YXRlOiAgIFdlZCBPY3QgMiAxNzoxMToxOSAyMDEzIC0wNzAwDQo+ICAgDQo+ICAgICAgIEFkZCB2 aXNpYmlsaXR5IGluIHRvIGNhY2hlZCBkYnVmcw0KPiAgIA0KPiAgICAgICBDdXJyZW50bHkgdGhl cmUgaXMgbm8gbWVjaGFuaXNtIHRvIGluc3BlY3Qgd2hpY2ggZGJ1ZnMgYXJlIGJlaW5nDQo+ICAg ICAgIGNhY2hlZCBieSB0aGUgc3lzdGVtLiAgVGhlcmUgYXJlIHNvbWUgY29hcnNlIGNvdW50ZXJz IGluIGFyY3N0YXRzDQo+ICAgICAgIGJ5IHRoZXkgb25seSBnaXZlIGEgcm91Z2ggaWRlYSBvZiB3 aGF0J3MgYmVpbmcgY2FjaGVkLiAgVGhpcyBwYXRjaA0KPiAgICAgICBhaW1zIHRvIGltcHJvdmUg dGhlIGN1cnJlbnQgc2l0dWF0aW9uIGJ5IGFkZGluZyBhIG5ldyBkYnVmcyBrc3RhdC4NCj4gICAN Cj4gICAgICAgV2hlbiByZWFkIHRoaXMgbmV3IGtzdGF0IHdpbGwgd2FsayBhbGwgY2FjaGVkIGRi dWZzIGxpbmtlZCBpbiB0bw0KPiAgICAgICB0aGUgZGJ1Zl9oYXNoLiAgRm9yIGVhY2ggZGJ1ZiBp dCB3aWxsIGR1bXAgZGV0YWlsZWQgaW5mb3JtYXRpb24NCj4gICAgICAgYWJvdXQgdGhlIGJ1ZmZl ci4gIEl0IHdpbGwgYWxzbyBkdW1wIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQNCj4gICAg ICAgdGhlIHJlZmVyZW5jZWQgYXJjIGJ1ZmZlciBhbmQgaXRzIHJlbGF0ZWQgZG5vZGUuICBUaGlz IHByb3ZpZGVzIGENCj4gICAgICAgbW9yZSBjb21wbGV0ZSB2aWV3IGluIHRvIGV4YWN0bHkgd2hh dCBpcyBiZWluZyBjYWNoZWQuDQo+ICAgDQo+ICAgICAgIFdpdGggdGhpcyBnZW5lcmljIGluZnJh c3RydWN0dXJlIGluIHBsYWNlIHV0aWxpdGllcyBjYW4gYmUgd3JpdHRlbg0KPiAgICAgICB0byBw b3N0LXByb2Nlc3MgdGhlIGRhdGEgdG8gdW5kZXJzdGFuZCBleGFjdGx5IGhvdyB0aGUgY2FjaGlu ZyBpcw0KPiAgICAgICB3b3JraW5nLiAgRm9yIGV4YW1wbGUsIHRoZSBkYXRhIGNvdWxkIGJlIHBy b2Nlc3NlZCB0byBzaG93IGEgbGlzdA0KPiAgICAgICBvZiBhbGwgY2FjaGVkIGRub2RlcyBhbmQg aG93IG11Y2ggc3BhY2UgdGhleSdyZSBjb25zdW1pbmcuICBPciBhDQo+ICAgICAgIHNpbWlsYXIg bGlzdCBjb3VsZCBiZSBnZW5lcmF0ZWQgYmFzZWQgb24gZG5vZGUgdHlwZS4gIE1hbnkgb3RoZXIN Cj4gICAgICAgd2F5cyB0byBpbnRlcnByZXQgdGhlIGRhdGEgZXhpc3QgYmFzZWQgb24gd2hhdCBr aW5kcyBvZiBxdWVzdGlvbnMNCj4gICAgICAgeW91J3JlIHRyeWluZyB0byBhbnN3ZXIuDQo+ICAg DQo+ICAgICAgIFNpZ25lZC1vZmYtYnk6IEJyaWFuIEJlaGxlbmRvcmYgPGJlaGxlbmRvcmYxQGxs bmwuZ292Pg0KPiAgICAgICBTaWduZWQtb2ZmLWJ5OiBQcmFrYXNoIFN1cnlhIDxzdXJ5YTFAbGxu bC5nb3Y+DQo+IA0KPiBBZGRlZDoNCj4gICBoZWFkL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFy aXMvdXRzL2NvbW1vbi9mcy96ZnMvZGJ1Zl9zdGF0cy5jDQo+IE1vZGlmaWVkOg0KPiAgIGhlYWQv c3lzL2NkZGwvY29tcGF0L29wZW5zb2xhcmlzL3N5cy9rc3RhdC5oDQo+ICAgaGVhZC9zeXMvY2Rk bC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vTWFrZWZpbGUuZmlsZXMNCj4gICBoZWFk L3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvYXJjLmMNCj4g ICBoZWFkL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvZGJ1 Zi5jDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMv emZzL2RtdS5jDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21t b24vZnMvemZzL3N5cy9hcmMuaA0KPiAgIGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJp cy91dHMvY29tbW9uL2ZzL3pmcy9zeXMvZGJ1Zi5oDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250cmli L29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5cy9kbXUuaA0KPiANCj4gTW9kaWZpZWQ6 IGhlYWQvc3lzL2NkZGwvY29tcGF0L29wZW5zb2xhcmlzL3N5cy9rc3RhdC5oDQo+ID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KPiAtLS0gaGVhZC9zeXMvY2RkbC9jb21wYXQvb3BlbnNvbGFyaXMvc3lz L2tzdGF0LmgJU3VuIEF1ZyAxMiAwMDo0NTo1MyAyMDE4DQo+IChyMzM3NjY5KSArKysgaGVhZC9z eXMvY2RkbC9jb21wYXQvb3BlbnNvbGFyaXMvc3lzL2tzdGF0LmgJU3VuIEF1ZyAxMiAwMToxMDox OA0KPiAyMDE4CShyMzM3NjcwKSBAQCAtMzEsNyArMzEsMTggQEANCj4gIA0KPiAgI2luY2x1ZGUg PHN5cy9zeXNjdGwuaD4NCj4gIA0KPiAtI2RlZmluZQlLU1RBVF9UWVBFX05BTUVECTENCj4gKyNk ZWZpbmUJS1NUQVRfVFlQRV9SQVcJCTAJLyogY2FuIGJlIGFueXRoaW5nICovDQo+ICsJCQkJCS8q IGtzX25kYXRhID49IDEgKi8NCj4gKyNkZWZpbmUJS1NUQVRfVFlQRV9OQU1FRAkxCS8qIG5hbWUv dmFsdWUgcGFpciAqLw0KPiArCQkJCQkvKiBrc19uZGF0YSA+PSAxICovDQo+ICsjZGVmaW5lCUtT VEFUX1RZUEVfSU5UUgkJMgkvKiBpbnRlcnJ1cHQgc3RhdGlzdGljcyAqLw0KPiArCQkJCQkvKiBr c19uZGF0YSA9PSAxICovDQo+ICsjZGVmaW5lCUtTVEFUX1RZUEVfSU8JCTMJLyogSS9PIHN0YXRp c3RpY3MgKi8NCj4gKwkJCQkJLyoga3NfbmRhdGEgPT0gMSAqLw0KPiArI2RlZmluZQlLU1RBVF9U WVBFX1RJTUVSCTQJLyogZXZlbnQgdGltZXIgKi8NCj4gKwkJCQkJLyoga3NfbmRhdGEgPj0gMSAq Lw0KPiArDQo+ICsjZGVmaW5lCUtTVEFUX05VTV9UWVBFUwkJNQ0KPiAgDQo+ICAjZGVmaW5lCUtT VEFUX0ZMQUdfVklSVFVBTAkweDAxDQo+ICANCj4gDQo+IE1vZGlmaWVkOiBoZWFkL3N5cy9jZGRs L2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9NYWtlZmlsZS5maWxlcw0KPiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCj4gLS0tIGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91 dHMvY29tbW9uL01ha2VmaWxlLmZpbGVzCVN1biBBdWcgMTINCj4gMDA6NDU6NTMgMjAxOAkocjMz NzY2OSkgKysrDQo+IGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9u L01ha2VmaWxlLmZpbGVzCVN1biBBdWcgMTIgMDE6MTA6MTgNCj4gMjAxOAkocjMzNzY3MCkgQEAg LTcyLDYgKzcyLDcgQEAgWkZTX0NPTU1PTl9PQkpTICs9CQlcDQo+IGJxdWV1ZS5vCQlcIGNpdHlo YXNoLm8JCVwNCj4gIAlkYnVmLm8JCQlcDQo+ICsJZGJ1Zl9zdGF0cy5vCQlcDQo+ICAJZGR0Lm8J CQlcDQo+ICAJZGR0X3phcC5vCQlcDQo+ICAJZG11Lm8JCQlcDQo+IA0KPiBNb2RpZmllZDogaGVh ZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL2FyYy5jDQo+ ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KPiAtLS0gaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5z b2xhcmlzL3V0cy9jb21tb24vZnMvemZzL2FyYy5jCVN1biBBdWcgMTINCj4gMDA6NDU6NTMgMjAx OAkocjMzNzY2OSkgKysrDQo+IGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMv Y29tbW9uL2ZzL3pmcy9hcmMuYwlTdW4gQXVnIDEyIDAxOjEwOjE4DQo+IDIwMTgJKHIzMzc2NzAp IEBAIC01MjMsNiArNTIzLDEwIEBAIHR5cGVkZWYgc3RydWN0IGFyY19zdGF0ZSB7DQo+ICAJICog bm9uLWV2aWN0YWJsZSwgQVJDX0JVRkNfREFUQSwgYW5kIEFSQ19CVUZDX01FVEFEQVRBLg0KPiAg CSAqLw0KPiAgCXJlZmNvdW50X3QgYXJjc19zaXplOw0KPiArCS8qDQo+ICsJICogc3VwcG9ydHMg dGhlICJkYnVmcyIga3N0YXQNCj4gKwkgKi8NCj4gKwlhcmNfc3RhdGVfdHlwZV90IGFyY3Nfc3Rh dGU7DQo+ICB9IGFyY19zdGF0ZV90Ow0KPiAgDQo+ICAvKg0KPiBAQCAtMTExMSw2ICsxMTE1LDEx IEBAIHR5cGVkZWYgc3RydWN0IGwxYXJjX2J1Zl9oZHIgew0KPiAgDQo+ICAJLyogdXBkYXRlZCBh dG9taWNhbGx5ICovDQo+ICAJY2xvY2tfdAkJCWJfYXJjX2FjY2VzczsNCj4gKwl1aW50MzJfdAkJ Yl9tcnVfaGl0czsNCj4gKwl1aW50MzJfdAkJYl9tcnVfZ2hvc3RfaGl0czsNCj4gKwl1aW50MzJf dAkJYl9tZnVfaGl0czsNCj4gKwl1aW50MzJfdAkJYl9tZnVfZ2hvc3RfaGl0czsNCj4gKwl1aW50 MzJfdAkJYl9sMl9oaXRzOw0KPiAgDQo+ICAJLyogc2VsZiBwcm90ZWN0aW5nICovDQo+ICAJcmVm Y291bnRfdAkJYl9yZWZjbnQ7DQo+IEBAIC0xMTI1LDYgKzExMzQsNyBAQCB0eXBlZGVmIHN0cnVj dCBsMmFyY19idWZfaGRyIHsNCj4gIAkvKiBwcm90ZWN0ZWQgYnkgYXJjX2J1Zl9oZHIgbXV0ZXgg Ki8NCj4gIAlsMmFyY19kZXZfdAkJKmJfZGV2OwkJLyogTDJBUkMgZGV2aWNlICovDQo+ICAJdWlu dDY0X3QJCWJfZGFkZHI7CS8qIGRpc2sgYWRkcmVzcywgb2Zmc2V0IGJ5dGUgKi8NCj4gKwl1aW50 MzJfdAkJYl9oaXRzOw0KPiAgDQo+ICAJbGlzdF9ub2RlX3QJCWJfbDJub2RlOw0KPiAgfSBsMmFy Y19idWZfaGRyX3Q7DQo+IEBAIC0yNTUyLDYgKzI1NjIsNTUgQEAgcmVtb3ZlX3JlZmVyZW5jZShh cmNfYnVmX2hkcl90ICpoZHIsIGttdXRleF90ICpoYXNoX2xvDQo+ICB9DQo+ICANCj4gIC8qDQo+ ICsgKiBSZXR1cm5zIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgYXJjIGJ1 ZmZlci4gIFdoZW4gdGhlDQo+ICsgKiBzdGF0ZV9pbmRleCBhcmd1bWVudCBpcyBzZXQgdGhlIGZ1 bmN0aW9uIHdpbGwgY2FsY3VsYXRlIHRoZSBhcmMgaGVhZGVyDQo+ICsgKiBsaXN0IHBvc2l0aW9u IGZvciBpdHMgYXJjIHN0YXRlLiAgU2luY2UgdGhpcyByZXF1aXJlcyBhIGxpbmVhciB0cmF2ZXJz YWwNCj4gKyAqIGNhbGxlcnMgYXJlIHN0cm9uZ2x5IGVuY291cmFnZSBub3QgdG8gZG8gdGhpcy4g IEhvd2V2ZXIsIGl0IGNhbiBiZSBoZWxwZnVsDQo+ICsgKiBmb3IgdGFyZ2V0ZWQgYW5hbHlzaXMg c28gdGhlIGZ1bmN0aW9uYWxpdHkgaXMgcHJvdmlkZWQuDQo+ICsgKi8NCj4gK3ZvaWQNCj4gK2Fy Y19idWZfaW5mbyhhcmNfYnVmX3QgKmFiLCBhcmNfYnVmX2luZm9fdCAqYWJpLCBpbnQgc3RhdGVf aW5kZXgpDQo+ICt7DQo+ICsJYXJjX2J1Zl9oZHJfdCAqaGRyID0gYWItPmJfaGRyOw0KPiArCWwx YXJjX2J1Zl9oZHJfdCAqbDFoZHIgPSBOVUxMOw0KPiArCWwyYXJjX2J1Zl9oZHJfdCAqbDJoZHIg PSBOVUxMOw0KPiArCWFyY19zdGF0ZV90ICpzdGF0ZSA9IE5VTEw7DQo+ICsNCj4gKwltZW1zZXQo YWJpLCAwLCBzaXplb2YgKGFyY19idWZfaW5mb190KSk7DQo+ICsNCj4gKwlpZiAoaGRyID09IE5V TEwpDQo+ICsJCXJldHVybjsNCj4gKw0KPiArCWFiaS0+YWJpX2ZsYWdzID0gaGRyLT5iX2ZsYWdz Ow0KPiArDQo+ICsJaWYgKEhEUl9IQVNfTDFIRFIoaGRyKSkgew0KPiArCQlsMWhkciA9ICZoZHIt PmJfbDFoZHI7DQo+ICsJCXN0YXRlID0gbDFoZHItPmJfc3RhdGU7DQo+ICsJfQ0KPiArCWlmIChI RFJfSEFTX0wySERSKGhkcikpDQo+ICsJCWwyaGRyID0gJmhkci0+Yl9sMmhkcjsNCj4gKw0KPiAr CWlmIChsMWhkcikgew0KPiArCQlhYmktPmFiaV9idWZjbnQgPSBsMWhkci0+Yl9idWZjbnQ7DQo+ ICsJCWFiaS0+YWJpX2FjY2VzcyA9IGwxaGRyLT5iX2FyY19hY2Nlc3M7DQo+ICsJCWFiaS0+YWJp X21ydV9oaXRzID0gbDFoZHItPmJfbXJ1X2hpdHM7DQo+ICsJCWFiaS0+YWJpX21ydV9naG9zdF9o aXRzID0gbDFoZHItPmJfbXJ1X2dob3N0X2hpdHM7DQo+ICsJCWFiaS0+YWJpX21mdV9oaXRzID0g bDFoZHItPmJfbWZ1X2hpdHM7DQo+ICsJCWFiaS0+YWJpX21mdV9naG9zdF9oaXRzID0gbDFoZHIt PmJfbWZ1X2dob3N0X2hpdHM7DQo+ICsJCWFiaS0+YWJpX2hvbGRzID0gcmVmY291bnRfY291bnQo JmwxaGRyLT5iX3JlZmNudCk7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKGwyaGRyKSB7DQo+ICsJCWFi aS0+YWJpX2wyYXJjX2RhdHRyID0gbDJoZHItPmJfZGFkZHI7DQo+ICsJCWFiaS0+YWJpX2wyYXJj X2hpdHMgPSBsMmhkci0+Yl9oaXRzOw0KPiArCX0NCj4gKw0KPiArCWFiaS0+YWJpX3N0YXRlX3R5 cGUgPSBzdGF0ZSA/IHN0YXRlLT5hcmNzX3N0YXRlIDogQVJDX1NUQVRFX0FOT047DQo+ICsJYWJp LT5hYmlfc3RhdGVfY29udGVudHMgPSBhcmNfYnVmX3R5cGUoaGRyKTsNCj4gKwlhYmktPmFiaV9z aXplID0gYXJjX2hkcl9zaXplKGhkcik7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICAgKiBNb3ZlIHRo ZSBzdXBwbGllZCBidWZmZXIgdG8gdGhlIGluZGljYXRlZCBzdGF0ZS4gVGhlIGhhc2ggbG9jaw0K PiAgICogZm9yIHRoZSBidWZmZXIgbXVzdCBiZSBoZWxkIGJ5IHRoZSBjYWxsZXIuDQo+ICAgKi8N Cj4gQEAgLTUyNTgsNiArNTMxNyw3IEBAIGFyY19hY2Nlc3MoYXJjX2J1Zl9oZHJfdCAqaGRyLCBr bXV0ZXhfdCAqaGFzaF9sb2NrKQ0KPiAgCQkJRFRSQUNFX1BST0JFMShuZXdfc3RhdGVfX21mdSwg YXJjX2J1Zl9oZHJfdCAqLCBoZHIpOw0KPiAgCQkJYXJjX2NoYW5nZV9zdGF0ZShhcmNfbWZ1LCBo ZHIsIGhhc2hfbG9jayk7DQo+ICAJCX0NCj4gKwkJYXRvbWljX2luY18zMigmaGRyLT5iX2wxaGRy LmJfbXJ1X2hpdHMpOw0KPiAgCQlBUkNTVEFUX0JVTVAoYXJjc3RhdF9tcnVfaGl0cyk7DQo+ICAJ fSBlbHNlIGlmIChoZHItPmJfbDFoZHIuYl9zdGF0ZSA9PSBhcmNfbXJ1X2dob3N0KSB7DQo+ICAJ CWFyY19zdGF0ZV90CSpuZXdfc3RhdGU7DQo+IEBAIC01MjgzLDYgKzUzNDMsNyBAQCBhcmNfYWNj ZXNzKGFyY19idWZfaGRyX3QgKmhkciwga211dGV4X3QgKmhhc2hfbG9jaykNCj4gIAkJaGRyLT5i X2wxaGRyLmJfYXJjX2FjY2VzcyA9IGRkaV9nZXRfbGJvbHQoKTsNCj4gIAkJYXJjX2NoYW5nZV9z dGF0ZShuZXdfc3RhdGUsIGhkciwgaGFzaF9sb2NrKTsNCj4gIA0KPiArCQlhdG9taWNfaW5jXzMy KCZoZHItPmJfbDFoZHIuYl9tcnVfZ2hvc3RfaGl0cyk7DQo+ICAJCUFSQ1NUQVRfQlVNUChhcmNz dGF0X21ydV9naG9zdF9oaXRzKTsNCj4gIAl9IGVsc2UgaWYgKGhkci0+Yl9sMWhkci5iX3N0YXRl ID09IGFyY19tZnUpIHsNCj4gIAkJLyoNCj4gQEAgLTUyOTUsNiArNTM1Niw3IEBAIGFyY19hY2Nl c3MoYXJjX2J1Zl9oZHJfdCAqaGRyLCBrbXV0ZXhfdCAqaGFzaF9sb2NrKQ0KPiAgCQkgKiB0aGUg aGVhZCBvZiB0aGUgbGlzdCBub3cuDQo+ICAJCSAqLw0KPiAgDQo+ICsJCWF0b21pY19pbmNfMzIo Jmhkci0+Yl9sMWhkci5iX21mdV9oaXRzKTsNCj4gIAkJQVJDU1RBVF9CVU1QKGFyY3N0YXRfbWZ1 X2hpdHMpOw0KPiAgCQloZHItPmJfbDFoZHIuYl9hcmNfYWNjZXNzID0gZGRpX2dldF9sYm9sdCgp Ow0KPiAgCX0gZWxzZSBpZiAoaGRyLT5iX2wxaGRyLmJfc3RhdGUgPT0gYXJjX21mdV9naG9zdCkg ew0KPiBAQCAtNTMxNyw2ICs1Mzc5LDcgQEAgYXJjX2FjY2VzcyhhcmNfYnVmX2hkcl90ICpoZHIs IGttdXRleF90ICpoYXNoX2xvY2spDQo+ICAJCURUUkFDRV9QUk9CRTEobmV3X3N0YXRlX19tZnUs IGFyY19idWZfaGRyX3QgKiwgaGRyKTsNCj4gIAkJYXJjX2NoYW5nZV9zdGF0ZShuZXdfc3RhdGUs IGhkciwgaGFzaF9sb2NrKTsNCj4gIA0KPiArCQlhdG9taWNfaW5jXzMyKCZoZHItPmJfbDFoZHIu Yl9tZnVfZ2hvc3RfaGl0cyk7DQo+ICAJCUFSQ1NUQVRfQlVNUChhcmNzdGF0X21mdV9naG9zdF9o aXRzKTsNCj4gIAl9IGVsc2UgaWYgKGhkci0+Yl9sMWhkci5iX3N0YXRlID09IGFyY19sMmNfb25s eSkgew0KPiAgCQkvKg0KPiBAQCAtNTkxMyw2ICs1OTc2LDcgQEAgdG9wOg0KPiAgDQo+ICAJCQkJ RFRSQUNFX1BST0JFMShsMmFyY19faGl0LCBhcmNfYnVmX2hkcl90ICosIGhkcik7DQo+ICAJCQkJ QVJDU1RBVF9CVU1QKGFyY3N0YXRfbDJfaGl0cyk7DQo+ICsJCQkJYXRvbWljX2luY18zMigmaGRy LT5iX2wyaGRyLmJfaGl0cyk7DQo+ICANCj4gIAkJCQljYiA9IGttZW1femFsbG9jKHNpemVvZiAo bDJhcmNfcmVhZF9jYWxsYmFja190KSwNCj4gIAkJCQkgICAgS01fU0xFRVApOw0KPiANCj4gTW9k aWZpZWQ6IGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pm cy9kYnVmLmMNCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IC0tLSBoZWFkL3N5cy9jZGRsL2Nv bnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvZGJ1Zi5jCVN1biBBdWcgMTINCj4g MDA6NDU6NTMgMjAxOAkocjMzNzY2OSkgKysrDQo+IGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVu c29sYXJpcy91dHMvY29tbW9uL2ZzL3pmcy9kYnVmLmMJU3VuIEF1ZyAxMiAwMToxMDoxOA0KPiAy MDE4CShyMzM3NjcwKSBAQCAtNjQ5LDYgKzY0OSw3IEBAIHJldHJ5OiBmb3IgKGkgPSAwOyBpIDwg REJVRl9NVVRFWEVTOyBpKyspDQo+ICAJCW11dGV4X2luaXQoJmgtPmhhc2hfbXV0ZXhlc1tpXSwg TlVMTCwgTVVURVhfREVGQVVMVCwgTlVMTCk7DQo+ICANCj4gKwlkYnVmX3N0YXRzX2luaXQoaCk7 DQo+ICAJLyoNCj4gIAkgKiBTZXR1cCB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGRidWYgY2FjaGVz LiBXZSBzZXQgdGhlIHNpemVzIG9mIHRoZQ0KPiAgCSAqIGRidWYgY2FjaGUgYW5kIHRoZSBtZXRh ZGF0YSBjYWNoZSB0byAxLzMybmQgYW5kIDEvMTZ0aCAoZGVmYXVsdCkNCj4gQEAgLTY5Miw2ICs2 OTMsOCBAQCBkYnVmX2Zpbmkodm9pZCkNCj4gIHsNCj4gIAlkYnVmX2hhc2hfdGFibGVfdCAqaCA9 ICZkYnVmX2hhc2hfdGFibGU7DQo+ICAJaW50IGk7DQo+ICsNCj4gKwlkYnVmX3N0YXRzX2Rlc3Ry b3koKTsNCj4gIA0KPiAgCWZvciAoaSA9IDA7IGkgPCBEQlVGX01VVEVYRVM7IGkrKykNCj4gIAkJ bXV0ZXhfZGVzdHJveSgmaC0+aGFzaF9tdXRleGVzW2ldKTsNCj4gDQo+IEFkZGVkOiBoZWFkL3N5 cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvZGJ1Zl9zdGF0cy5j DQo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiAtLS0gL2Rldi9udWxsCTAwOjAwOjAwIDE5NzAJ KGVtcHR5LCBiZWNhdXNlIGZpbGUgaXMgbmV3bHkgYWRkZWQpDQo+ICsrKyBoZWFkL3N5cy9jZGRs L2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvZGJ1Zl9zdGF0cy5jCVN1biBB dWcgMTINCj4gMDE6MTA6MTggMjAxOAkocjMzNzY3MCkgQEAgLTAsMCArMSwyNDIgQEANCj4gKy8q DQo+ICsgKiBDRERMIEhFQURFUiBTVEFSVA0KPiArICoNCj4gKyAqIFRoZSBjb250ZW50cyBvZiB0 aGlzIGZpbGUgYXJlIHN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoZQ0KPiArICogQ29tbW9uIERl dmVsb3BtZW50IGFuZCBEaXN0cmlidXRpb24gTGljZW5zZSAodGhlICJMaWNlbnNlIikuDQo+ICsg KiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhl IExpY2Vuc2UuDQo+ICsgKg0KPiArICogWW91IGNhbiBvYnRhaW4gYSBjb3B5IG9mIHRoZSBsaWNl bnNlIGF0IHVzci9zcmMvT1BFTlNPTEFSSVMuTElDRU5TRQ0KPiArICogb3IgaHR0cDovL3d3dy5v cGVuc29sYXJpcy5vcmcvb3MvbGljZW5zaW5nLg0KPiArICogU2VlIHRoZSBMaWNlbnNlIGZvciB0 aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zDQo+ICsgKiBhbmQgbGlt aXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQo+ICsgKg0KPiArICogV2hlbiBkaXN0cmlidXRp bmcgQ292ZXJlZCBDb2RlLCBpbmNsdWRlIHRoaXMgQ0RETCBIRUFERVIgaW4gZWFjaA0KPiArICog ZmlsZSBhbmQgaW5jbHVkZSB0aGUgTGljZW5zZSBmaWxlIGF0IHVzci9zcmMvT1BFTlNPTEFSSVMu TElDRU5TRS4NCj4gKyAqIElmIGFwcGxpY2FibGUsIGFkZCB0aGUgZm9sbG93aW5nIGJlbG93IHRo aXMgQ0RETCBIRUFERVIsIHdpdGggdGhlDQo+ICsgKiBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tl dHMgIltdIiByZXBsYWNlZCB3aXRoIHlvdXIgb3duIGlkZW50aWZ5aW5nDQo+ICsgKiBpbmZvcm1h dGlvbjogUG9ydGlvbnMgQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJd DQo+ICsgKg0KPiArICogQ0RETCBIRUFERVIgRU5EDQo+ICsgKi8NCj4gKw0KPiArI2luY2x1ZGUg PHN5cy96ZnNfY29udGV4dC5oPg0KPiArI2luY2x1ZGUgPHN5cy9kYnVmLmg+DQo+ICsjaW5jbHVk ZSA8c3lzL2RtdV9vYmpzZXQuaD4NCj4gKw0KPiArLyoNCj4gKyAqIENhbGN1bGF0ZSB0aGUgaW5k ZXggb2YgdGhlIGFyYyBoZWFkZXIgZm9yIHRoZSBzdGF0ZSwgZGlzYWJsZWQgYnkgZGVmYXVsdC4N Cj4gKyAqLw0KPiAraW50IHpmc19kYnVmX3N0YXRlX2luZGV4ID0gMDsNCj4gKw0KPiArLyoNCj4g KyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQo+ICsgKiBEYnVmIEhhc2ggUmVhZCBSb3V0aW5lcw0KPiAr ICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NCj4gKyAqLw0KPiArdHlwZWRlZiBzdHJ1Y3QgZGJ1Zl9zdGF0 c190IHsNCj4gKwlrbXV0ZXhfdAkJbG9jazsNCj4gKwlrc3RhdF90CQkJKmtzdGF0Ow0KPiArCWRi dWZfaGFzaF90YWJsZV90CSpoYXNoOw0KPiArCWludAkJCWlkeDsNCj4gK30gZGJ1Zl9zdGF0c190 Ow0KPiArDQo+ICtzdGF0aWMgZGJ1Zl9zdGF0c190IGRidWZfc3RhdHNfaGFzaF90YWJsZTsNCj4g Kw0KPiArc3RhdGljIGludA0KPiArZGJ1Zl9zdGF0c19oYXNoX3RhYmxlX2hlYWRlcnMoY2hhciAq YnVmLCBzaXplX3Qgc2l6ZSkNCj4gK3sNCj4gKwlzaXplID0gc25wcmludGYoYnVmLCBzaXplIC0g MSwNCj4gKwkgICAgIiUtODhzIHwgJS0xMjRzIHwgJXNcbiINCj4gKwkgICAgIiUtMTZzICUtOHMg JS04cyAlLThzICUtOHMgJS04cyAlLThzICUtNXMgJS01cyAlNXMgfCAiDQo+ICsJICAgICIlLTVz ICUtNXMgJS02cyAlLThzICUtNnMgJS04cyAlLTEycyAiDQo+ICsJICAgICIlLTZzICUtNnMgJS02 cyAlLTZzICUtNnMgJS04cyAlLThzICUtOHMgJS01cyB8ICINCj4gKwkgICAgIiUtNnMgJS02cyAl LThzICUtOHMgJS02cyAlLTZzICUtNXMgJS04cyAlLThzXG4iLA0KPiArCSAgICAiZGJ1ZiIsICJh cmNidWYiLCAiZG5vZGUiLCAicG9vbCIsICJvYmpzZXQiLCAib2JqZWN0IiwgImxldmVsIiwNCj4g KwkgICAgImJsa2lkIiwgIm9mZnNldCIsICJkYnNpemUiLCAibWV0YSIsICJzdGF0ZSIsICJkYmhv bGRzIiwgImxpc3QiLA0KPiArCSAgICAiYXR5cGUiLCAiaW5kZXgiLCAiZmxhZ3MiLCAiY291bnQi LCAiYXNpemUiLCAiYWNjZXNzIiwgIm1ydSIsICJnbXJ1IiwNCj4gKwkgICAgIm1mdSIsICJnbWZ1 IiwgImwyIiwgImwyX2RhdHRyIiwgImwyX2FzaXplIiwgImwyX2NvbXAiLCAiYWhvbGRzIiwNCj4g KwkgICAgImR0eXBlIiwgImJ0eXBlIiwgImRhdGFfYnMiLCAibWV0YV9icyIsICJic2l6ZSIsDQo+ ICsJICAgICJsdmxzIiwgImRob2xkcyIsICJibG9ja3MiLCAiZHNpemUiKTsNCj4gKyAgICAgICAg YnVmW3NpemVdID0gJ1wwJzsNCj4gKw0KPiArCXJldHVybiAoMCk7DQo+ICt9DQo+ICsNCj4gK2lu dA0KPiArX19kYnVmX3N0YXRzX2hhc2hfdGFibGVfZGF0YShjaGFyICpidWYsIHNpemVfdCBzaXpl LCBkbXVfYnVmX2ltcGxfdCAqZGIpDQo+ICt7DQo+ICsJYXJjX2J1Zl9pbmZvX3QgYWJpID0geyAw IH07DQo+ICsJZG11X29iamVjdF9pbmZvX3QgZG9pID0geyAwIH07DQo+ICsJZG5vZGVfdCAqZG4g PSBEQl9ETk9ERShkYik7DQo+ICsNCj4gKwlpZiAoZGItPmRiX2J1ZikNCj4gKwkJYXJjX2J1Zl9p bmZvKGRiLT5kYl9idWYsICZhYmksIHpmc19kYnVmX3N0YXRlX2luZGV4KTsNCj4gKw0KPiArCWlm IChkbikNCj4gKwkJX19kbXVfb2JqZWN0X2luZm9fZnJvbV9kbm9kZShkbiwgJmRvaSk7DQo+ICsN Cj4gKwlzaXplID0gc25wcmludGYoYnVmLCBzaXplIC0gMSwNCj4gKwkgICAgIiUtMTZzICUtOGxs dSAlLThsbGQgJS04bGxkICUtOGxsZCAlLThsbHUgJS04bGx1ICUtNWQgJS01ZCAlLTVsdSB8ICIN Cj4gKwkgICAgIiUtNWQgJS01ZCAlLTZsbGQgMHglLTZ4ICUtNmx1ICUtOGxsdSAlLTEybGx1ICIN Cj4gKwkgICAgIiUtNmx1ICUtNmx1ICUtNmx1ICUtNmx1ICUtNmx1ICUtOGxsdSAlLThsbHUgJS04 ZCAlLTVsdSB8ICINCj4gKwkgICAgIiUtNmQgJS02ZCAlLThsdSAlLThsdSAlLTZsbHUgJS02bHUg JS01bHUgJS04bGx1ICUtOGxsdVxuIiwNCj4gKwkgICAgLyogZG11X2J1Zl9pbXBsX3QgKi8NCj4g KwkgICAgc3BhX25hbWUoZG4tPmRuX29ianNldC0+b3Nfc3BhKSwNCj4gKwkgICAgKHVfbG9uZ2xv bmdfdClkbXVfb2Jqc2V0X2lkKGRiLT5kYl9vYmpzZXQpLA0KPiArCSAgICAobG9uZ2xvbmdfdClk Yi0+ZGIuZGJfb2JqZWN0LA0KPiArCSAgICAobG9uZ2xvbmdfdClkYi0+ZGJfbGV2ZWwsDQo+ICsJ ICAgIChsb25nbG9uZ190KWRiLT5kYl9ibGtpZCwNCj4gKwkgICAgKHVfbG9uZ2xvbmdfdClkYi0+ ZGIuZGJfb2Zmc2V0LA0KPiArCSAgICAodV9sb25nbG9uZ190KWRiLT5kYi5kYl9zaXplLA0KPiAr CSAgICAhIWRidWZfaXNfbWV0YWRhdGEoZGIpLA0KPiArCSAgICBkYi0+ZGJfc3RhdGUsDQo+ICsJ ICAgICh1bG9uZ190KXJlZmNvdW50X2NvdW50KCZkYi0+ZGJfaG9sZHMpLA0KPiArCSAgICAvKiBh cmNfYnVmX2luZm9fdCAqLw0KPiArCSAgICBhYmkuYWJpX3N0YXRlX3R5cGUsDQo+ICsJICAgIGFi aS5hYmlfc3RhdGVfY29udGVudHMsDQo+ICsJICAgIChsb25nbG9uZ190KWFiaS5hYmlfc3RhdGVf aW5kZXgsDQo+ICsJICAgIGFiaS5hYmlfZmxhZ3MsDQo+ICsJICAgICh1bG9uZ190KWFiaS5hYmlf YnVmY250LA0KPiArCSAgICAodV9sb25nbG9uZ190KWFiaS5hYmlfc2l6ZSwNCj4gKwkgICAgKHVf bG9uZ2xvbmdfdClhYmkuYWJpX2FjY2VzcywNCj4gKwkgICAgKHVsb25nX3QpYWJpLmFiaV9tcnVf aGl0cywNCj4gKwkgICAgKHVsb25nX3QpYWJpLmFiaV9tcnVfZ2hvc3RfaGl0cywNCj4gKwkgICAg KHVsb25nX3QpYWJpLmFiaV9tZnVfaGl0cywNCj4gKwkgICAgKHVsb25nX3QpYWJpLmFiaV9tZnVf Z2hvc3RfaGl0cywNCj4gKwkgICAgKHVsb25nX3QpYWJpLmFiaV9sMmFyY19oaXRzLA0KPiArCSAg ICAodV9sb25nbG9uZ190KWFiaS5hYmlfbDJhcmNfZGF0dHIsDQo+ICsJICAgICh1X2xvbmdsb25n X3QpYWJpLmFiaV9sMmFyY19hc2l6ZSwNCj4gKwkgICAgYWJpLmFiaV9sMmFyY19jb21wcmVzcywN Cj4gKwkgICAgKHVsb25nX3QpYWJpLmFiaV9ob2xkcywNCj4gKwkgICAgLyogZG11X29iamVjdF9p bmZvX3QgKi8NCj4gKwkgICAgZG9pLmRvaV90eXBlLA0KPiArCSAgICBkb2kuZG9pX2JvbnVzX3R5 cGUsDQo+ICsJICAgICh1bG9uZ190KWRvaS5kb2lfZGF0YV9ibG9ja19zaXplLA0KPiArCSAgICAo dWxvbmdfdClkb2kuZG9pX21ldGFkYXRhX2Jsb2NrX3NpemUsDQo+ICsJICAgICh1X2xvbmdsb25n X3QpZG9pLmRvaV9ib251c19zaXplLA0KPiArCSAgICAodWxvbmdfdClkb2kuZG9pX2luZGlyZWN0 aW9uLA0KPiArCSAgICAodWxvbmdfdClyZWZjb3VudF9jb3VudCgmZG4tPmRuX2hvbGRzKSwNCj4g KwkgICAgKHVfbG9uZ2xvbmdfdClkb2kuZG9pX2ZpbGxfY291bnQsDQo+ICsJICAgICh1X2xvbmds b25nX3QpZG9pLmRvaV9tYXhfb2Zmc2V0KTsNCj4gKyAgICAgICAgYnVmW3NpemVdID0gJ1wwJzsN Cj4gKw0KPiArCXJldHVybiAoc2l6ZSk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK2Ri dWZfc3RhdHNfaGFzaF90YWJsZV9kYXRhKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIHZvaWQgKmRh dGEpDQo+ICt7DQo+ICsJZGJ1Zl9zdGF0c190ICpkc2ggPSAoZGJ1Zl9zdGF0c190ICopZGF0YTsN Cj4gKwlkYnVmX2hhc2hfdGFibGVfdCAqaCA9IGRzaC0+aGFzaDsNCj4gKwlkbXVfYnVmX2ltcGxf dCAqZGI7DQo+ICsJaW50IGxlbmd0aCwgZXJyb3IgPSAwOw0KPiArDQo+ICsJQVNTRVJUM1MoZHNo LT5pZHgsID49LCAwKTsNCj4gKwlBU1NFUlQzUyhkc2gtPmlkeCwgPD0sIGgtPmhhc2hfdGFibGVf bWFzayk7DQo+ICsJbWVtc2V0KGJ1ZiwgMCwgc2l6ZSk7DQo+ICsNCj4gKwltdXRleF9lbnRlcihE QlVGX0hBU0hfTVVURVgoaCwgZHNoLT5pZHgpKTsNCj4gKwlmb3IgKGRiID0gaC0+aGFzaF90YWJs ZVtkc2gtPmlkeF07IGRiICE9IE5VTEw7IGRiID0gZGItPmRiX2hhc2hfbmV4dCkgew0KPiArCQkv Kg0KPiArCQkgKiBSZXR1cm5pbmcgRU5PTUVNIHdpbGwgY2F1c2UgdGhlIGRhdGEgYW5kIGhlYWRl ciBmdW5jdGlvbnMNCj4gKwkJICogdG8gYmUgY2FsbGVkIHdpdGggYSBsYXJnZXIgc2NyYXRjaCBi dWZmZXJzLg0KPiArCQkgKi8NCj4gKwkJaWYgKHNpemUgPCA1MTIpIHsNCj4gKwkJCWVycm9yID0g RU5PTUVNOw0KPiArCQkJYnJlYWs7DQo+ICsJCX0NCj4gKw0KPiArCQltdXRleF9lbnRlcigmZGIt PmRiX210eCk7DQo+ICsJCW11dGV4X2V4aXQoREJVRl9IQVNIX01VVEVYKGgsIGRzaC0+aWR4KSk7 DQo+ICsNCj4gKwkJbGVuZ3RoID0gX19kYnVmX3N0YXRzX2hhc2hfdGFibGVfZGF0YShidWYsIHNp emUsIGRiKTsNCj4gKwkJYnVmICs9IGxlbmd0aDsNCj4gKwkJc2l6ZSAtPSBsZW5ndGg7DQo+ICsN Cj4gKwkJbXV0ZXhfZXhpdCgmZGItPmRiX210eCk7DQo+ICsJCW11dGV4X2VudGVyKERCVUZfSEFT SF9NVVRFWChoLCBkc2gtPmlkeCkpOw0KPiArCX0NCj4gKwltdXRleF9leGl0KERCVUZfSEFTSF9N VVRFWChoLCBkc2gtPmlkeCkpOw0KPiArDQo+ICsJcmV0dXJuIChlcnJvcik7DQo+ICt9DQo+ICsN Cj4gK3N0YXRpYyB2b2lkICoNCj4gK2RidWZfc3RhdHNfaGFzaF90YWJsZV9hZGRyKGtzdGF0X3Qg KmtzcCwgb2ZmX3QgbikNCj4gK3sNCj4gKwlkYnVmX3N0YXRzX3QgKmRzaCA9IGtzcC0+a3NfcHJp dmF0ZTsNCj4gKw0KPiArICAgICAgICBBU1NFUlQoTVVURVhfSEVMRCgmZHNoLT5sb2NrKSk7DQo+ ICsNCj4gKwlpZiAobiA8PSBkc2gtPmhhc2gtPmhhc2hfdGFibGVfbWFzaykgew0KPiArCQlkc2gt PmlkeCA9IG47DQo+ICsJCXJldHVybiAoZHNoKTsNCj4gKwl9DQo+ICsNCj4gKwlyZXR1cm4gKE5V TEwpOw0KPiArfQ0KPiArDQo+ICsjaWZuZGVmIF9fRnJlZUJTRF9fDQo+ICsvKg0KPiArICogWFhY IFRoZSBGcmVlQlNEIFNQTCBpcyBtaXNzaW5nIHN1cHBvcnQgZm9yIEtTVEFUX1RZUEVfUkFXDQo+ ICsgKiB3ZSBjYW4gZW5hYmxlIHRoaXMgYXMgc29vbiBhcyB0aGF0J3MgaW1wbGVtZW50ZWQuIFNl ZSB0aGUNCj4gKyAqIGxpbmRlYnVnZnMgbW9kdWxlIGZvciBzaW1pbGFyIGNhbGxiYWNrIHNlbWFu dGljcy4NCj4gKyAqLw0KPiArc3RhdGljIHZvaWQNCj4gK2RidWZfc3RhdHNfaGFzaF90YWJsZV9p bml0KGRidWZfaGFzaF90YWJsZV90ICpoYXNoKQ0KPiArew0KPiArCWRidWZfc3RhdHNfdCAqZHNo ID0gJmRidWZfc3RhdHNfaGFzaF90YWJsZTsNCj4gKwlrc3RhdF90ICprc3A7DQo+ICsNCj4gKwlt dXRleF9pbml0KCZkc2gtPmxvY2ssIE5VTEwsIE1VVEVYX0RFRkFVTFQsIE5VTEwpOw0KPiArCWRz aC0+aGFzaCA9IGhhc2g7DQo+ICsNCj4gKwlrc3AgPSBrc3RhdF9jcmVhdGUoInpmcyIsIDAsICJk YnVmcyIsICJtaXNjIiwNCj4gKwkgICAgS1NUQVRfVFlQRV9SQVcsIDAsIEtTVEFUX0ZMQUdfVklS VFVBTCk7DQo+ICsJZHNoLT5rc3RhdCA9IGtzcDsNCj4gKw0KPiArCWlmIChrc3ApIHsNCj4gKwkJ a3NwLT5rc19sb2NrID0gJmRzaC0+bG9jazsNCj4gKwkJa3NwLT5rc19uZGF0YSA9IFVJTlQzMl9N QVg7DQo+ICsJCWtzcC0+a3NfcHJpdmF0ZSA9IGRzaDsNCj4gKwkJa3N0YXRfc2V0X3Jhd19vcHMo a3NwLCBkYnVmX3N0YXRzX2hhc2hfdGFibGVfaGVhZGVycywNCj4gKwkJICAgIGRidWZfc3RhdHNf aGFzaF90YWJsZV9kYXRhLCBkYnVmX3N0YXRzX2hhc2hfdGFibGVfYWRkcik7DQo+ICsJCWtzdGF0 X2luc3RhbGwoa3NwKTsNCj4gKwl9DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ICtkYnVm X3N0YXRzX2hhc2hfdGFibGVfZGVzdHJveSh2b2lkKQ0KPiArew0KPiArCWRidWZfc3RhdHNfdCAq ZHNoID0gJmRidWZfc3RhdHNfaGFzaF90YWJsZTsNCj4gKwlrc3RhdF90ICprc3A7DQo+ICsNCj4g Kwlrc3AgPSBkc2gtPmtzdGF0Ow0KPiArCWlmIChrc3ApDQo+ICsJCWtzdGF0X2RlbGV0ZShrc3Ap Ow0KPiArDQo+ICsJbXV0ZXhfZGVzdHJveSgmZHNoLT5sb2NrKTsNCj4gK30NCj4gKyNlbHNlDQo+ ICtzdGF0aWMgdm9pZA0KPiArZGJ1Zl9zdGF0c19oYXNoX3RhYmxlX2luaXQoZGJ1Zl9oYXNoX3Rh YmxlX3QgKmhhc2gpDQo+ICt7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ICtkYnVmX3N0 YXRzX2hhc2hfdGFibGVfZGVzdHJveSh2b2lkKQ0KPiArew0KPiArfQ0KPiArI2VuZGlmDQo+ICsN Cj4gK3ZvaWQNCj4gK2RidWZfc3RhdHNfaW5pdChkYnVmX2hhc2hfdGFibGVfdCAqaGFzaCkNCj4g K3sNCj4gKwlkYnVmX3N0YXRzX2hhc2hfdGFibGVfaW5pdChoYXNoKTsNCj4gK30NCj4gKw0KPiAr dm9pZA0KPiArZGJ1Zl9zdGF0c19kZXN0cm95KHZvaWQpDQo+ICt7DQo+ICsJZGJ1Zl9zdGF0c19o YXNoX3RhYmxlX2Rlc3Ryb3koKTsNCj4gK30NCj4gDQo+IE1vZGlmaWVkOiBoZWFkL3N5cy9jZGRs L2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvZG11LmMNCj4gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09DQo+IC0tLSBoZWFkL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRz L2NvbW1vbi9mcy96ZnMvZG11LmMJU3VuIEF1ZyAxMg0KPiAwMDo0NTo1MyAyMDE4CShyMzM3NjY5 KSArKysNCj4gaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMv emZzL2RtdS5jCVN1biBBdWcgMTIgMDE6MTA6MTgNCj4gMjAxOAkocjMzNzY3MCkgQEAgLTI1MDks MTUgKzI1MDksMTAgQEAgZG11X29iamVjdF93YWl0X3N5bmNlZChvYmpzZXRfdCAqb3MsDQo+IHVp bnQ2NF90IG9iamVjdCkgfSANCj4gIHZvaWQNCj4gLWRtdV9vYmplY3RfaW5mb19mcm9tX2Rub2Rl KGRub2RlX3QgKmRuLCBkbXVfb2JqZWN0X2luZm9fdCAqZG9pKQ0KPiArX19kbXVfb2JqZWN0X2lu Zm9fZnJvbV9kbm9kZShkbm9kZV90ICpkbiwgZG11X29iamVjdF9pbmZvX3QgKmRvaSkNCj4gIHsN Cj4gLQlkbm9kZV9waHlzX3QgKmRucDsNCj4gKwlkbm9kZV9waHlzX3QgKmRucCA9IGRuLT5kbl9w aHlzOw0KPiAgDQo+IC0JcndfZW50ZXIoJmRuLT5kbl9zdHJ1Y3Rfcndsb2NrLCBSV19SRUFERVIp Ow0KPiAtCW11dGV4X2VudGVyKCZkbi0+ZG5fbXR4KTsNCj4gLQ0KPiAtCWRucCA9IGRuLT5kbl9w aHlzOw0KPiAtDQo+ICAJZG9pLT5kb2lfZGF0YV9ibG9ja19zaXplID0gZG4tPmRuX2RhdGFibGtz ejsNCj4gIAlkb2ktPmRvaV9tZXRhZGF0YV9ibG9ja19zaXplID0gZG4tPmRuX2luZGJsa3NoaWZ0 ID8NCj4gIAkgICAgMVVMTCA8PCBkbi0+ZG5faW5kYmxrc2hpZnQgOiAwOw0KPiBAQCAtMjUzNCw2 ICsyNTI5LDE1IEBAIGRtdV9vYmplY3RfaW5mb19mcm9tX2Rub2RlKGRub2RlX3QgKmRuLCBkbXVf b2JqZWN0X2luZg0KPiAgCWRvaS0+ZG9pX2ZpbGxfY291bnQgPSAwOw0KPiAgCWZvciAoaW50IGkg PSAwOyBpIDwgZG5wLT5kbl9uYmxrcHRyOyBpKyspDQo+ICAJCWRvaS0+ZG9pX2ZpbGxfY291bnQg Kz0gQlBfR0VUX0ZJTEwoJmRucC0+ZG5fYmxrcHRyW2ldKTsNCj4gK30NCj4gKw0KPiArdm9pZA0K PiArZG11X29iamVjdF9pbmZvX2Zyb21fZG5vZGUoZG5vZGVfdCAqZG4sIGRtdV9vYmplY3RfaW5m b190ICpkb2kpDQo+ICt7DQo+ICsJcndfZW50ZXIoJmRuLT5kbl9zdHJ1Y3Rfcndsb2NrLCBSV19S RUFERVIpOw0KPiArCW11dGV4X2VudGVyKCZkbi0+ZG5fbXR4KTsNCj4gKw0KPiArCV9fZG11X29i amVjdF9pbmZvX2Zyb21fZG5vZGUoZG4sIGRvaSk7DQo+ICANCj4gIAltdXRleF9leGl0KCZkbi0+ ZG5fbXR4KTsNCj4gIAlyd19leGl0KCZkbi0+ZG5fc3RydWN0X3J3bG9jayk7DQo+IA0KPiBNb2Rp ZmllZDogaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZz L3N5cy9hcmMuaA0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gLS0tIGhlYWQvc3lzL2NkZGwv Y29udHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pmcy9zeXMvYXJjLmgJU3VuIEF1ZyAx Mg0KPiAwMDo0NTo1MyAyMDE4CShyMzM3NjY5KSArKysNCj4gaGVhZC9zeXMvY2RkbC9jb250cmli L29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5cy9hcmMuaAlTdW4gQXVnIDEyDQo+IDAx OjEwOjE4IDIwMTgJKHIzMzc2NzApIEBAIC0xODUsNiArMTg1LDM2IEBAIHR5cGVkZWYgZW51bSBh cmNfc3BhY2VfdHlwZQ0KPiB7IEFSQ19TUEFDRV9OVU1UWVBFUyB9IGFyY19zcGFjZV90eXBlX3Q7 DQo+ICANCj4gK3R5cGVkZWYgZW51bSBhcmNfc3RhdGVfdHlwZSB7DQo+ICsJQVJDX1NUQVRFX0FO T04sDQo+ICsJQVJDX1NUQVRFX01SVSwNCj4gKwlBUkNfU1RBVEVfTVJVX0dIT1NULA0KPiArCUFS Q19TVEFURV9NRlUsDQo+ICsJQVJDX1NUQVRFX01GVV9HSE9TVCwNCj4gKwlBUkNfU1RBVEVfTDJD X09OTFksDQo+ICsJQVJDX1NUQVRFX05VTVRZUEVTDQo+ICt9IGFyY19zdGF0ZV90eXBlX3Q7DQo+ ICsNCj4gK3R5cGVkZWYgc3RydWN0IGFyY19idWZfaW5mbyB7DQo+ICsJYXJjX3N0YXRlX3R5cGVf dAlhYmlfc3RhdGVfdHlwZTsNCj4gKwlhcmNfYnVmX2NvbnRlbnRzX3QJYWJpX3N0YXRlX2NvbnRl bnRzOw0KPiArCXVpbnQ2NF90CQlhYmlfc3RhdGVfaW5kZXg7DQo+ICsJdWludDMyX3QJCWFiaV9m bGFnczsNCj4gKwl1aW50MzJfdAkJYWJpX2J1ZmNudDsNCj4gKwl1aW50NjRfdAkJYWJpX3NpemU7 DQo+ICsJdWludDY0X3QJCWFiaV9zcGE7DQo+ICsJdWludDY0X3QJCWFiaV9hY2Nlc3M7DQo+ICsJ dWludDMyX3QJCWFiaV9tcnVfaGl0czsNCj4gKwl1aW50MzJfdAkJYWJpX21ydV9naG9zdF9oaXRz Ow0KPiArCXVpbnQzMl90CQlhYmlfbWZ1X2hpdHM7DQo+ICsJdWludDMyX3QJCWFiaV9tZnVfZ2hv c3RfaGl0czsNCj4gKwl1aW50MzJfdAkJYWJpX2wyYXJjX2hpdHM7DQo+ICsJdWludDMyX3QJCWFi aV9ob2xkczsNCj4gKwl1aW50NjRfdAkJYWJpX2wyYXJjX2RhdHRyOw0KPiArCXVpbnQ2NF90CQlh YmlfbDJhcmNfYXNpemU7DQo+ICsJZW51bSB6aW9fY29tcHJlc3MJYWJpX2wyYXJjX2NvbXByZXNz Ow0KPiArfSBhcmNfYnVmX2luZm9fdDsNCj4gKw0KPiAgdm9pZCBhcmNfc3BhY2VfY29uc3VtZSh1 aW50NjRfdCBzcGFjZSwgYXJjX3NwYWNlX3R5cGVfdCB0eXBlKTsNCj4gIHZvaWQgYXJjX3NwYWNl X3JldHVybih1aW50NjRfdCBzcGFjZSwgYXJjX3NwYWNlX3R5cGVfdCB0eXBlKTsNCj4gIGJvb2xl YW5fdCBhcmNfaXNfbWV0YWRhdGEoYXJjX2J1Zl90ICpidWYpOw0KPiBAQCAtMjAwLDYgKzIzMCw3 IEBAIGFyY19idWZfdCAqYXJjX2xvYW5fY29tcHJlc3NlZF9idWYoc3BhX3QgKnNwYSwgdWludDY0 Xw0KPiAgdm9pZCBhcmNfcmV0dXJuX2J1ZihhcmNfYnVmX3QgKmJ1Ziwgdm9pZCAqdGFnKTsNCj4g IHZvaWQgYXJjX2xvYW5faW51c2VfYnVmKGFyY19idWZfdCAqYnVmLCB2b2lkICp0YWcpOw0KPiAg dm9pZCBhcmNfYnVmX2Rlc3Ryb3koYXJjX2J1Zl90ICpidWYsIHZvaWQgKnRhZyk7DQo+ICt2b2lk IGFyY19idWZfaW5mbyhhcmNfYnVmX3QgKmJ1ZiwgYXJjX2J1Zl9pbmZvX3QgKmFiaSwgaW50IHN0 YXRlX2luZGV4KTsNCj4gIGludCBhcmNfYnVmX3NpemUoYXJjX2J1Zl90ICpidWYpOw0KPiAgaW50 IGFyY19idWZfbHNpemUoYXJjX2J1Zl90ICpidWYpOw0KPiAgdm9pZCBhcmNfYnVmX2FjY2Vzcyhh cmNfYnVmX3QgKmJ1Zik7DQo+IA0KPiBNb2RpZmllZDogaGVhZC9zeXMvY2RkbC9jb250cmliL29w ZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5cy9kYnVmLmgNCj4gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09DQo+IC0tLSBoZWFkL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1v bi9mcy96ZnMvc3lzL2RidWYuaAlTdW4gQXVnIDEyDQo+IDAwOjQ1OjUzIDIwMTgJKHIzMzc2Njkp ICsrKw0KPiBoZWFkL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96 ZnMvc3lzL2RidWYuaAlTdW4gQXVnIDEyDQo+IDAxOjEwOjE4IDIwMTgJKHIzMzc2NzApIEBAIC0z MzMsNiArMzMzLDkgQEAgdm9pZCBkYnVmX2ZyZWVfcmFuZ2Uoc3RydWN0IGRub2RlDQo+ICpkbiwg dWludDY0X3Qgc3RhcnQsIHZvaWQgZGJ1Zl9uZXdfc2l6ZShkbXVfYnVmX2ltcGxfdCAqZGIsIGlu dCBzaXplLCBkbXVfdHhfdCAqdHgpOw0KPiAgDQo+ICt2b2lkIGRidWZfc3RhdHNfaW5pdChkYnVm X2hhc2hfdGFibGVfdCAqaGFzaCk7DQo+ICt2b2lkIGRidWZfc3RhdHNfZGVzdHJveSh2b2lkKTsN Cj4gKw0KPiAgI2RlZmluZQlEQl9ETk9ERShfZGIpCQkoKF9kYiktPmRiX2Rub2RlX2hhbmRsZS0+ ZG5oX2Rub2RlKQ0KPiAgI2RlZmluZQlEQl9ETk9ERV9MT0NLKF9kYikJKChfZGIpLT5kYl9kbm9k ZV9oYW5kbGUtPmRuaF96cmxvY2spDQo+ICAjZGVmaW5lCURCX0ROT0RFX0VOVEVSKF9kYikJKHpy bF9hZGQoJkRCX0ROT0RFX0xPQ0soX2RiKSkpDQo+IA0KPiBNb2RpZmllZDogaGVhZC9zeXMvY2Rk bC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5cy9kbXUuaA0KPiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0NCj4gLS0tIGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJp cy91dHMvY29tbW9uL2ZzL3pmcy9zeXMvZG11LmgJU3VuIEF1ZyAxMg0KPiAwMDo0NTo1MyAyMDE4 CShyMzM3NjY5KSArKysNCj4gaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9j b21tb24vZnMvemZzL3N5cy9kbXUuaAlTdW4gQXVnIDEyDQo+IDAxOjEwOjE4IDIwMTgJKHIzMzc2 NzApIEBAIC04NTUsNiArODU1LDcgQEAgZXh0ZXJuIGNvbnN0DQo+IGRtdV9vYmplY3RfYnl0ZXN3 YXBfaW5mb190IGRtdV9vdF9ieXRlc3dhDQo+ICAgKiBJZiBkb2kgaXMgTlVMTCwganVzdCBpbmRp Y2F0ZXMgd2hldGhlciB0aGUgb2JqZWN0IGV4aXN0cy4NCj4gICAqLw0KPiAgaW50IGRtdV9vYmpl Y3RfaW5mbyhvYmpzZXRfdCAqb3MsIHVpbnQ2NF90IG9iamVjdCwgZG11X29iamVjdF9pbmZvX3Qg KmRvaSk7DQo+ICt2b2lkIF9fZG11X29iamVjdF9pbmZvX2Zyb21fZG5vZGUoc3RydWN0IGRub2Rl ICpkbiwgZG11X29iamVjdF9pbmZvX3QgKmRvaSk7DQo+ICAvKiBMaWtlIGRtdV9vYmplY3RfaW5m bywgYnV0IGZhc3RlciBpZiB5b3UgaGF2ZSBhIGhlbGQgZG5vZGUgaW4gaGFuZC4gKi8NCj4gIHZv aWQgZG11X29iamVjdF9pbmZvX2Zyb21fZG5vZGUoZG5vZGVfdCAqZG4sIGRtdV9vYmplY3RfaW5m b190ICpkb2kpOw0KPiAgLyogTGlrZSBkbXVfb2JqZWN0X2luZm8sIGJ1dCBmYXN0ZXIgaWYgeW91 IGhhdmUgYSBoZWxkIGRidWYgaW4gaGFuZC4gKi8NCj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18NCj4gc3ZuLXNyYy1oZWFkQGZyZWVic2Qub3JnIG1haWxp bmcgbGlzdA0KPiBodHRwczovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8vc3Zu LXNyYy1oZWFkDQo+IFRvIHVuc3Vic2NyaWJlLCBzZW5kIGFueSBtYWlsIHRvICJzdm4tc3JjLWhl YWQtdW5zdWJzY3JpYmVAZnJlZWJzZC5vcmciDQoNCg0KVGhpcyBjb21taXQgYnJlYWtzIGtlcm5l bCBidWlsZCAob3B0aW9ucyBaRlMgd2l0aGluIGtlcm5lbCBjb25maWcgZmlsZSwgV0lUSF9NRVRB X01PREUpOg0KDQpbLi4uXQ0KbGQ6IGVycm9yOiB1bmRlZmluZWQgc3ltYm9sOiBkYnVmX3N0YXRz X2luaXQNCj4+PiByZWZlcmVuY2VkIGJ5IGRidWYuYw0KPj4+ICAgICAgICAgICAgICAgZGJ1Zi5v OihkYnVmX2luaXQpDQpsZDogZXJyb3I6IHVuZGVmaW5lZCBzeW1ib2w6IGRidWZfc3RhdHNfZGVz dHJveQ0KPj4+IHJlZmVyZW5jZWQgYnkgZGJ1Zi5jDQo+Pj4gICAgICAgICAgICAgICBkYnVmLm86 KGRidWZfZmluaSkNCg0KUmVnYXJkcywNCg0Kb2gNCi0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0t LS0tDQoNCmlMVUVBUk1LQUIwV0lRUVpWWk16QXR3QzJULzg2VHJTNTI4ZnlGaFlsQVVDVzIvRVNn QUtDUkRTNTI4ZnlGaFkNCmxLS1VBZ0NJdC9BMWdrL2FkQ29uYnQ2WGQ0T0NZSllZVitsU2xGRUky aURTQTdGNnhQc3hkVjY0alZRS2tTbU8NCjExck1pUFpURFRhU2VILzMrVm04MG5qUG1lS05BZjRz encvSVpnRTB0aWxWTDNJVEtsUHFhZlUraGlIOFB3YncNCnRlWnQxM1EvWnB0WGk4Uml4d2ZTSm0z TzQzV1NPUS9hSkUxRFZRWjJzeWdHVmxoRVE3dUwNCj1FaWk2DQotLS0tLUVORCBQR1AgU0lHTkFU VVJFLS0tLS0NCg==