From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgsg1.qq.com (smtpbgsg1.qq.com [54.254.200.92]) by sourceware.org (Postfix) with ESMTPS id BD568385DC29 for ; Thu, 11 Jan 2024 12:29:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BD568385DC29 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai ARC-Filter: OpenARC Filter v1.0.0 sourceware.org BD568385DC29 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=54.254.200.92 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704976167; cv=none; b=XY9ytWIsZk7AzfiQ2kJIQ1wVT8tZmw8L/yosJVkWp5yevJ0cjShxBio6Nn2BbkYpEUuc62dkxK2cAhppqpCPG6jNsPLwotk1hxJ+wnEw9fWP91qEaCZHVkmyhEa1wnz7+kf9CuFcuAOiiEIy7QqAarR84x1cU7t+j56xFFDIJ+c= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704976167; c=relaxed/simple; bh=2YjljimmW4dhZPLISoyX7x7VddBTVtB/OccftCNe2Xo=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=X+I3g0ecO4zPcQspzRnXFw+d7P2UbTpwUYIG88e512nFjLg48JfHua45slOmQkUYrYVei3klBvRteRBBI5BQiho+TvTkm0mZzo/yTHJYXnQ7HuWv1mA7WKE5NyWdj5OdQk8tf2+Vz1rLz0kBhVVG65qcscfArrJfmUctrTDK4GM= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp82t1704976127tnmhjq1g Received: from LAPTOP-EPITNQBU ( [121.35.183.89]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 11 Jan 2024 20:28:46 +0800 (CST) X-QQ-SSF: 00400000000000G0V000000A0000000 X-QQ-FEAT: Fe2iws8w5ee7Kg/RdN0MSnch3P9sI9nASSD26OJZN9isWdn8SM6Hw091bTVMB okVgxa7TKwRadA2g8vpaLD920+iH52+7luwi1Qob/S2xG6YbGA0qQtRZd1PhwMtvHbvLYNN dECXIBO7VSK4F+aQnzvLoNXGHraWr2OWredt6QPPvZumDtznXWa7j2hPg3gyBtVEn8diT/0 E3etnK4j7AUsl+AZn/OUnSTspXGwptKcSbCavvmHzvxcxb/5niWK52OG8P6lfF/y58fhf+D pJ8zSxiX8Lx11bD/SPszWzzyVlawLxuWtYaL1APtdQ4foMLRqahYOIEGavaTYajVt97m/Ia /pvFzTBls6vHsoJ34c4SM46CIz/6nhiqE9v0vRz9CiDNqzKsjDRbmSWsRGyHu9dshS/CtBB 3YpYiwrpyvxnQjXtjz0fPOImNiqPUo+VreDs6Wuq3s8= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 14934444627554420037 Date: Thu, 11 Jan 2024 20:28:46 +0800 From: "juzhe.zhong@rivai.ai" To: cooper.joshua , gcc-patches Cc: "Jim Wilson" , palmer , andrew , philipp.tomsich , jeffreyalaw , christoph.muellner , jinma , cooper.qu Subject: =?UTF-8?B?UmU6IFJl77yaW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4=?= References: <06A6BE75C8D4DF3F+202401112013319668485@rivai.ai>, X-Priority: 3 X-GUID: E951B374-6020-44D0-A461-9FEC14FC139E X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart187855875734_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-9.1 required=5.0 tests=BAYES_00,BODY_8BITS,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_LINEPADDING,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart187855875734_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 KHZlY19kdXBsaWNhdGU6UlZWTTFRSSAocmVnOlFJIDE0NykpKSkNCg0KRmlu ZCB0aGUgUlRMIGRlZmluZSBwc2V1ZG8gMTQ3IHRvIG1lLg0KDQpJIGd1ZXNz IGl0IGlzIDEuDQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCuWPkeS7 tuS6uu+8miBqb3NodWENCuWPkemAgeaXtumXtO+8miAyMDI0LTAxLTExIDIw OjE4DQrmlLbku7bkurrvvJoganV6aGUuemhvbmdAcml2YWkuYWk7IGdjYy1w YXRjaGVzDQrmioTpgIHvvJogSmltIFdpbHNvbjsgcGFsbWVyOyBhbmRyZXc7 IHBoaWxpcHAudG9tc2ljaDsgamVmZnJleWFsYXc7IGNocmlzdG9waC5tdWVs bG5lcjsgamlubWE7IGNvb3Blci5xdQ0K5Li76aKY77yaIFJl77yaUmXvvJpb UEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rv ci1zcGVjaWZpYyBpbnRyaW5zaWNzLg0KTm8sIHdlIGhhdmUgZGVidWdnZWQg YW5kIHRoZSBjb2RlIHdvbid0IGVudGVyIHRoaXMgYXV0b3ZlYyBwYXR0ZXJu Lg0KVGhlIHJvb3QgY2F1c2UgaXMgQ1NFLCBpbiBhIHZlcnkgZWFybHkgcGFz cy4NCiANCldoYXQgSSBzZW50IHRvIHlvdSBqdXN0IG5vdyBpcyB0aGUgZHVt cCByZXN1bHQgd2hpY2ggc2hvd3MgdGhlIGRpZmZlcmVuY2UuDQogDQogDQog DQogDQogDQogDQogDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCuWPkeS7tuS6 uu+8mmp1emhlLnpob25nQHJpdmFpLmFpIDxqdXpoZS56aG9uZ0ByaXZhaS5h aT4NCuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTHml6Uo5pif5pyf5Zub KSAyMDoxMw0K5pS25Lu25Lq677yaImNvb3Blci5qb3NodWEiPGNvb3Blci5q b3NodWFAbGludXguYWxpYmFiYS5jb20+OyAiZ2NjLXBhdGNoZXMiPGdjYy1w YXRjaGVzQGdjYy5nbnUub3JnPg0K5oqE44CA6YCB77yaSmltIFdpbHNvbjxq aW0ud2lsc29uLmdjY0BnbWFpbC5jb20+OyBwYWxtZXI8cGFsbWVyQGRhYmJl bHQuY29tPjsgYW5kcmV3PGFuZHJld0BzaWZpdmUuY29tPjsgInBoaWxpcHAu dG9tc2ljaCI8cGhpbGlwcC50b21zaWNoQHZydWxsLmV1PjsgamVmZnJleWFs YXc8amVmZnJleWFsYXdAZ21haWwuY29tPjsgImNocmlzdG9waC5tdWVsbG5l ciI8Y2hyaXN0b3BoLm11ZWxsbmVyQHZydWxsLmV1PjsgamlubWE8amlubWFA bGludXguYWxpYmFiYS5jb20+OyAiY29vcGVyLnF1Ijxjb29wZXIucXVAbGlu dXguYWxpYmFiYS5jb20+DQrkuLvjgIDpopjvvJpSZTogUmXvvJpbUEFUQ0gg djVdIFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVj aWZpYyBpbnRyaW5zaWNzLg0KIA0KIA0KSSBndWVzcyBpdCBpcyBiZWNhdXNl IG9mIHBhdHRlcm5zIGZyb20gYXV0b3ZlY3Rvcml6YXRpb24gcGF0dGVybjoN CiANCiANCjs7IFVzZSBkZWZpbmVfaW5zbl9hbmRfc3BsaXQgdG8gZGVmaW5l IHZzZXh0LnZmMi92emV4dC52ZjIgd2lsbCBoZWxwDQo7OyB0byBjb21iaW5l IGluc3RydWN0aW9ucyBhcyBiZWxvdzoNCjs7ICAgdnNleHQudmYyICsgdnNl eHQudmYyICsgdmFkZC52diA9PT4gdndhZGQudnYNCihkZWZpbmVfaW5zbl9h bmRfc3BsaXQgIjxvcHRhYj48dl9kb3VibGVfdHJ1bmM+PG1vZGU+MiINCiAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6VldFWFRJIDAgInJlZ2lzdGVyX29wZXJh bmQiICI9JnZyIikNCiAgICAoYW55X2V4dGVuZDpWV0VYVEkNCiAgICAgKG1h dGNoX29wZXJhbmQ6PFZfRE9VQkxFX1RSVU5DPiAxICJyZWdpc3Rlcl9vcGVy YW5kIiAidnIiKSkpXQ0KICAiVEFSR0VUX1ZFQ1RPUiAmJiBjYW5fY3JlYXRl X3BzZXVkb19wICgpIg0KICAiIyINCiAgIiYmIDEiDQogIFsoY29uc3RfaW50 IDApXQ0Kew0KICBpbnNuX2NvZGUgaWNvZGUgPSBjb2RlX2Zvcl9wcmVkX3Zm MiAoPENPREU+LCA8TU9ERT5tb2RlKTsNCiAgcmlzY3ZfdmVjdG9yOjplbWl0 X3ZsbWF4X2luc24gKGljb2RlLCByaXNjdl92ZWN0b3I6OlVOQVJZX09QLCBv cGVyYW5kcyk7DQogIERPTkU7DQp9DQogIFsoc2V0X2F0dHIgInR5cGUiICJ2 ZXh0IikNCiAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkNCiANCiAN CiANCmp1emhlLnpob25nQHJpdmFpLmFpDQogDQogDQrlj5Hku7bkurrvvJog am9zaHVhDQrlj5HpgIHml7bpl7TvvJogMjAyNC0wMS0xMSAyMDowNQ0K5pS2 5Lu25Lq677yaIGp1emhlLnpob25nQHJpdmFpLmFpOyBnY2MtcGF0Y2hlcw0K 5oqE6YCB77yaIEppbSBXaWxzb247IHBhbG1lcjsgYW5kcmV3OyBwaGlsaXBw LnRvbXNpY2g7IGplZmZyZXlhbGF3OyBjaHJpc3RvcGgubXVlbGxuZXI7IGpp bm1hOyBjb29wZXIucXUNCuS4u+mimO+8miBSZe+8mlJl77yaW1BBVENIIHY1 XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lm aWMgaW50cmluc2ljcy4NCiANCndpdGhvdXQgQ1NFOg0KKGluc24gMTYgMTUg MTcgMiAoc2V0IChyZWcvdjpSVlZNMkhJIDEzNyBbIG91dHB1dF92YXJfMCBd KQ0KICAgICAgICAoaWZfdGhlbl9lbHNlOlJWVk0ySEkgKHVuc3BlYzpSVlZN RjhCSSBbDQogICAgICAgICAgICAgICAgICAgIChjb25zdF92ZWN0b3I6UlZW TUY4QkkgcmVwZWF0IFsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Y29uc3RfaW50IDEgWzB4MV0pDQogICAgICAgICAgICAgICAgICAgICAgICBd KQ0KICAgICAgICAgICAgICAgICAgICAocmVnOkRJIDE0NikNCiAgICAgICAg ICAgICAgICAgICAgKGNvbnN0X2ludCAyIFsweDJdKSByZXBlYXRlZCB4Mg0K ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDAgWzBdKQ0KICAgICAg ICAgICAgICAgICAgICAocmVnOlNJIDY2IHZsKQ0KICAgICAgICAgICAgICAg ICAgICAocmVnOlNJIDY3IHZ0eXBlKQ0KICAgICAgICAgICAgICAgIF0gVU5T UEVDX1ZQUkVESUNBVEUpDQogICAgICAgICAgICAobXVsdDpSVlZNMkhJIChz aWduX2V4dGVuZDpSVlZNMkhJIChyZWcvdjpSVlZNMVFJIDEzNiBbIG9wMSBd KSkNCiAgICAgICAgICAgICAgICAoc2lnbl9leHRlbmQ6UlZWTTJISSAodmVj X2R1cGxpY2F0ZTpSVlZNMVFJIChyZWc6UUkgMTQ3KSkpKQ0KICAgICAgICAg ICAgKHVuc3BlYzpSVlZNMkhJIFsNCiAgICAgICAgICAgICAgICAgICAgKHJl ZzpTSSAwIHplcm8pDQogICAgICAgICAgICAgICAgXSBVTlNQRUNfVlVOREVG KSkpICAgICAgICAge3ByZWRfZHVhbF93aWRlbl9tdWxzcnZ2bTJoaV9zY2Fs YXJ9DQogDQp3aXRoIENTRToNCihpbnNuIDE2IDE1IDE3IDIgKHNldCAocmVn L3Y6UlZWTTJISSAxMzcgWyBvdXRwdXRfdmFyXzAgXSkNCiAgICAgICAgKGlm X3RoZW5fZWxzZTpSVlZNMkhJICh1bnNwZWM6UlZWTUY4QkkgWw0KICAgICAg ICAgICAgICAgICAgICAoY29uc3RfdmVjdG9yOlJWVk1GOEJJIHJlcGVhdCBb DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxIFsw eDFdKQ0KICAgICAgICAgICAgICAgICAgICAgICAgXSkNCiAgICAgICAgICAg ICAgICAgICAgKHJlZzpESSAxNDYpDQogICAgICAgICAgICAgICAgICAgIChj b25zdF9pbnQgMiBbMHgyXSkgcmVwZWF0ZWQgeDINCiAgICAgICAgICAgICAg ICAgICAgKGNvbnN0X2ludCAwIFswXSkNCiAgICAgICAgICAgICAgICAgICAg KHJlZzpTSSA2NiB2bCkNCiAgICAgICAgICAgICAgICAgICAgKHJlZzpTSSA2 NyB2dHlwZSkNCiAgICAgICAgICAgICAgICBdIFVOU1BFQ19WUFJFRElDQVRF KQ0KICAgICAgICAgICAgKHNpZ25fZXh0ZW5kOlJWVk0ySEkgKHJlZy92OlJW Vk0xUUkgMTM2IFsgb3AxIF0pKQ0KICAgICAgICAgICAgKHVuc3BlYzpSVlZN MkhJIFsNCiAgICAgICAgICAgICAgICAgICAgKHJlZzpTSSAwIHplcm8pDQog ICAgICAgICAgICAgICAgXSBVTlNQRUNfVlVOREVGKSkpICAgICAgICAge3By ZWRfZXh0ZW5kcnZ2bTJoaV92ZjJ9DQogDQogDQogDQogDQogDQogDQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCuWPkeS7tuS6uu+8mmp1emhlLnpob25nQHJp dmFpLmFpIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4NCuWPkemAgeaXtumXtO+8 mjIwMjTlubQx5pyIMTHml6Uo5pif5pyf5ZubKSAxNzozMg0K5pS25Lu25Lq6 77yaImNvb3Blci5qb3NodWEiPGNvb3Blci5qb3NodWFAbGludXguYWxpYmFi YS5jb20+OyAiZ2NjLXBhdGNoZXMiPGdjYy1wYXRjaGVzQGdjYy5nbnUub3Jn Pg0K5oqE44CA6YCB77yaSmltIFdpbHNvbjxqaW0ud2lsc29uLmdjY0BnbWFp bC5jb20+OyBwYWxtZXI8cGFsbWVyQGRhYmJlbHQuY29tPjsgYW5kcmV3PGFu ZHJld0BzaWZpdmUuY29tPjsgInBoaWxpcHAudG9tc2ljaCI8cGhpbGlwcC50 b21zaWNoQHZydWxsLmV1PjsgamVmZnJleWFsYXc8amVmZnJleWFsYXdAZ21h aWwuY29tPjsgImNocmlzdG9waC5tdWVsbG5lciI8Y2hyaXN0b3BoLm11ZWxs bmVyQHZydWxsLmV1PjsgamlubWE8amlubWFAbGludXguYWxpYmFiYS5jb20+ OyAiY29vcGVyLnF1Ijxjb29wZXIucXVAbGludXguYWxpYmFiYS5jb20+DQrk uLvjgIDpopjvvJpSZTogUmXvvJpbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1 cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNzLg0K IA0KIA0KT2suICBMZXQncyBob2xkIG9uICJSSVNDLVY6IEhhbmRsZSBkaWZm ZXJlbmNlcyBiZXR3ZWVuIFhUaGVhZHZlY3RvciBhbmQgVmVjdG9yIiBwYXRj aA0KdW50aWwgeW91IGNhbiByZXByb2R1Y2UgdGhlIGlzc3VlIGZvciBtZS4N CiANCiANCmp1emhlLnpob25nQHJpdmFpLmFpDQogDQogDQrlj5Hku7bkurrv vJogam9zaHVhDQrlj5HpgIHml7bpl7TvvJogMjAyNC0wMS0xMSAxNzoyOQ0K 5pS25Lu25Lq677yaIGp1emhlLnpob25nQHJpdmFpLmFpOyBnY2MtcGF0Y2hl cw0K5oqE6YCB77yaIEppbSBXaWxzb247IHBhbG1lcjsgYW5kcmV3OyBwaGls aXBwLnRvbXNpY2g7IGplZmZyZXlhbGF3OyBjaHJpc3RvcGgubXVlbGxuZXI7 IGppbm1hOyBjb29wZXIucXUNCuS4u+mimO+8miBSZe+8mlJl77yaW1BBVENI IHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3Bl Y2lmaWMgaW50cmluc2ljcy4NCiANClRoZSBzZXh0L3pleHQgaXNzdWUgaXMg bm90IHJlbGF0ZWQgdG8geHRoZWFkdmVjdG9yLXNwZWNpYWwgcGF0dGVybnMu DQpJIGFkZGVkICFUQVJHRVRfWFRIRUFEVkVDVE9SIHRvIHNleHQvemV4dCBw YXR0ZXJucyBpbg0KIlJJU0MtVjogSGFuZGxlIGRpZmZlcmVuY2VzIGJldHdl ZW4gWFRoZWFkdmVjdG9yIGFuZCBWZWN0b3IiDQpUaGF0IGlzIGNhdXNlZCBi eSB0aGUgdndtdWwgcGF0dGVybiwgYnV0IEkgY2Fubm90IHJlcHJvZHVjZSBp dCByaWdodCBub3cuDQogDQogDQogDQogDQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCuWPkeS7tuS6uu+8mmp1emhlLnpob25nQHJpdmFpLmFpIDxqdXpoZS56 aG9uZ0ByaXZhaS5haT4NCuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTHm l6Uo5pif5pyf5ZubKSAxNzoyNA0K5pS25Lu25Lq677yaImNvb3Blci5qb3No dWEiPGNvb3Blci5qb3NodWFAbGludXguYWxpYmFiYS5jb20+OyAiZ2NjLXBh dGNoZXMiPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPg0K5oqE44CA6YCB77ya SmltIFdpbHNvbjxqaW0ud2lsc29uLmdjY0BnbWFpbC5jb20+OyBwYWxtZXI8 cGFsbWVyQGRhYmJlbHQuY29tPjsgYW5kcmV3PGFuZHJld0BzaWZpdmUuY29t PjsgInBoaWxpcHAudG9tc2ljaCI8cGhpbGlwcC50b21zaWNoQHZydWxsLmV1 PjsgamVmZnJleWFsYXc8amVmZnJleWFsYXdAZ21haWwuY29tPjsgImNocmlz dG9waC5tdWVsbG5lciI8Y2hyaXN0b3BoLm11ZWxsbmVyQHZydWxsLmV1Pjsg amlubWE8amlubWFAbGludXguYWxpYmFiYS5jb20+OyAiY29vcGVyLnF1Ijxj b29wZXIucXVAbGludXguYWxpYmFiYS5jb20+DQrkuLvjgIDpopjvvJpSZTog UmXvvJpbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVh ZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNzLg0KIA0KIA0KSSBkb24ndCBz ZWUgYW55IHBhdHRlcm5zIGFyZSBwb3NzaWJsZSBDU0UgaW50byBzZXh0L3pl eHQgcGF0dGVybnM6DQogDQogDQorKGRlZmluZV9leHBhbmQgIkBwcmVkX21v dl93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiINCisgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlZfVkxTIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIikNCisg ICAgKGlmX3RoZW5fZWxzZTpWX1ZMUw0KKyAgICAgICh1bnNwZWM6PFZNPg0K KyBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5k IikNCisgKG1hdGNoX29wZXJhbmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5k IikNCisgKG1hdGNoX29wZXJhbmQgNSAiY29uc3RfaW50X29wZXJhbmQiKQ0K KyAobWF0Y2hfb3BlcmFuZCA2ICJjb25zdF9pbnRfb3BlcmFuZCIpDQorICht YXRjaF9vcGVyYW5kIDcgImNvbnN0X2ludF9vcGVyYW5kIikNCisgKHJlZzpT SSBWTF9SRUdOVU0pDQorIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVD X1RIX1ZMTUVNX09QKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kOlZfVkxTIDMg InZlY3Rvcl9tb3ZlX29wZXJhbmQiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5k OlZfVkxTIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIikpKV0NCisgICJUQVJH RVRfWFRIRUFEVkVDVE9SIg0KKyAge30pDQorDQorKGRlZmluZV9pbnNuX2Fu ZF9zcGxpdCAiKnByZWRfbW92X3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+ Ig0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMCAibm9uaW1tZWRp YXRlX29wZXJhbmQiICAgICAiPXZyLCAgICB2ciwgICAgdmQsICAgICBtLCAg ICB2ciwgICAgdnIiKQ0KKyAgICAoaWZfdGhlbl9lbHNlOlZfVkxTDQorICAg ICAgKHVuc3BlYzo8Vk0+DQorIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZl Y3Rvcl9tYXNrX29wZXJhbmQiICAgICJ2bVdjMSwgICBXYzEsICAgIHZtLCB2 bVdjMSwgICBXYzEsICAgV2MxIikNCisgKG1hdGNoX29wZXJhbmQgNCAidmVj dG9yX2xlbmd0aF9vcGVyYW5kIiAgICAgICAiICAgckssICAgIHJLLCAgICBy SywgICAgckssICAgIHJLLCAgICBySyIpDQorIChtYXRjaF9vcGVyYW5kIDUg ImNvbnN0X2ludF9vcGVyYW5kIiAgICIgICAgaSwgICAgIGksICAgICBpLCAg ICAgaSwgICAgIGksICAgICBpIikNCisgKG1hdGNoX29wZXJhbmQgNiAiY29u c3RfaW50X29wZXJhbmQiICAgIiAgICBpLCAgICAgaSwgICAgIGksICAgICBp LCAgICAgaSwgICAgIGkiKQ0KKyAobWF0Y2hfb3BlcmFuZCA3ICJjb25zdF9p bnRfb3BlcmFuZCIgICAiICAgIGksICAgICBpLCAgICAgaSwgICAgIGksICAg ICBpLCAgICAgaSIpDQorIChyZWc6U0kgVkxfUkVHTlVNKQ0KKyAocmVnOlNJ IFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WTE1FTV9PUCkNCisgICAgICAo bWF0Y2hfb3BlcmFuZDpWX1ZMUyAzICJyZWdfb3JfbWVtX29wZXJhbmQiICAg ICAgICIgICAgbSwgICAgIG0sICAgICBtLCAgICB2ciwgICAgdnIsICAgIHZy IikNCisgICAgICAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAyICJ2ZWN0b3JfbWVy Z2Vfb3BlcmFuZCIgICAgICIgICAgMCwgICAgdnUsICAgIHZ1LCAgICB2dSwg ICAgdnUsICAgICAwIikpKV0NCisgICIoVEFSR0VUX1hUSEVBRFZFQ1RPUg0K KyAgICAmJiAocmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIDxNT0RF Pm1vZGUpDQorIHx8IHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzNdLCA8 TU9ERT5tb2RlKSkpIg0KKyAgIkANCisgICB2bDx2bG1lbV9vcF9hdHRyPi52 XHQlMCwlMyVwMQ0KKyAgIHZsPHZsbWVtX29wX2F0dHI+LnZcdCUwLCUzDQor ICAgdmw8dmxtZW1fb3BfYXR0cj4udlx0JTAsJTMsJTEudA0KKyAgIHZzPHZs bWVtX29wX2F0dHI+LnZcdCUzLCUwJXAxDQorICAgdm12LnYudlx0JTAsJTMN CisgICB2bXYudi52XHQlMCwlMyINCisgICImJiByZWdpc3Rlcl9vcGVyYW5k IChvcGVyYW5kc1swXSwgPE1PREU+bW9kZSkNCisgICAmJiByZWdpc3Rlcl9v cGVyYW5kIChvcGVyYW5kc1szXSwgPE1PREU+bW9kZSkNCisgICAmJiBzYXRp c2ZpZXNfY29uc3RyYWludF92dSAob3BlcmFuZHNbMl0pDQorICAgJiYgSU5U VkFMIChvcGVyYW5kc1s3XSkgPT0gcmlzY3ZfdmVjdG9yOjpWTE1BWCINCisg IFsoc2V0IChtYXRjaF9kdXAgMCkgKG1hdGNoX2R1cCAzKSldDQorICAiIg0K KyAgWyhzZXRfYXR0ciAidHlwZSIgInZsZGUsdmxkZSx2bGRlLHZzdGUsdmlt b3Ysdmltb3YiKQ0KKyAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkN CisNCisoZGVmaW5lX2luc24gIkBwcmVkX3N0b3JlX3dpZHRoPHZsbWVtX29w X2F0dHI+PG1vZGU+Ig0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAi bWVtb3J5X29wZXJhbmQiICIrbSIpDQorIChpZl90aGVuX2Vsc2U6VkkNCisg ICAodW5zcGVjOjxWTT4NCisgICAgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEg InZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2bVdjMSIpDQorICAgICAgKG1hdGNo X29wZXJhbmQgMyAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiAgICAiICAgcksi KQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDQgImNvbnN0X2ludF9vcGVyYW5k IiAiICAgIGkiKQ0KKyAgICAgIChyZWc6U0kgVkxfUkVHTlVNKQ0KKyAgICAg IChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZTTUVNX09QKQ0K KyAgIChtYXRjaF9vcGVyYW5kOlZJIDIgInJlZ2lzdGVyX29wZXJhbmQiICIg ICAgdnIiKQ0KKyAgIChtYXRjaF9kdXAgMCkpKV0NCisgICJUQVJHRVRfWFRI RUFEVkVDVE9SIg0KKyAgInZzPHZsbWVtX29wX2F0dHI+LnZcdCUyLCUwJXAx Ig0KKyAgWyhzZXRfYXR0ciAidHlwZSIgInZzdGUiKQ0KKyAgIChzZXRfYXR0 ciAibW9kZSIgIjxNT0RFPiIpDQorICAgKHNldCAoYXR0ciAiYXZsX3R5cGVf aWR4IikgKGNvbnN0X2ludCA0KSkNCisgICAoc2V0X2F0dHIgInZsX29wX2lk eCIgIjMiKV0pDQorDQorKGRlZmluZV9pbnNuICJAcHJlZF9zdHJpZGVkX2xv YWRfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iDQorICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpWSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAiPXZy LCAgICB2ciwgICAgdmQiKQ0KKyAoaWZfdGhlbl9lbHNlOlZJDQorICAgKHVu c3BlYzo8Vk0+DQorICAgICBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0 b3JfbWFza19vcGVyYW5kIiAidm1XYzEsICAgV2MxLCAgICB2bSIpDQorICAg ICAgKG1hdGNoX29wZXJhbmQgNSAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiAg ICAiICAgckssICAgIHJLLCAgICBySyIpDQorICAgICAgKG1hdGNoX29wZXJh bmQgNiAiY29uc3RfaW50X29wZXJhbmQiICIgICAgaSwgICAgIGksICAgICBp IikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA3ICJjb25zdF9pbnRfb3BlcmFu ZCIgIiAgICBpLCAgICAgaSwgICAgIGkiKQ0KKyAgICAgIChtYXRjaF9vcGVy YW5kIDggImNvbnN0X2ludF9vcGVyYW5kIiAiICAgIGksICAgICBpLCAgICAg aSIpDQorICAgICAgKHJlZzpTSSBWTF9SRUdOVU0pDQorICAgICAgKHJlZzpT SSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhfVkxTTUVNX09QKQ0KKyAgICh1 bnNwZWM6VkkNCisgICAgIFsobWF0Y2hfb3BlcmFuZDpWSSAzICJtZW1vcnlf b3BlcmFuZCIgIiAgICBtLCAgICAgbSwgICAgIG0iKQ0KKyAgICAgIChtYXRj aF9vcGVyYW5kIDQgInBtb2RlX3JlZ19vcl8wX29wZXJhbmQiICAgIiAgIHJK LCAgICBySiwgICAgckoiKV0gVU5TUEVDX1RIX1ZMU01FTV9PUCkNCisgICAo bWF0Y2hfb3BlcmFuZDpWSSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgICAg ICAiICAgIDAsICAgIHZ1LCAgICB2dSIpKSldDQorICAiVEFSR0VUX1hUSEVB RFZFQ1RPUiINCisgICJ2bHM8dmxtZW1fb3BfYXR0cj4udlx0JTAsJTMsJXo0 JXAxIg0KKyAgWyhzZXRfYXR0ciAidHlwZSIgInZsZHMiKQ0KKyAgIChzZXRf YXR0ciAibW9kZSIgIjxNT0RFPiIpXSkNCisNCisoZGVmaW5lX2luc24gIkBw cmVkX3N0cmlkZWRfc3RvcmVfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4i DQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWSSAwICJtZW1vcnlfb3BlcmFu ZCIgIittIikNCisgKGlmX3RoZW5fZWxzZTpWSQ0KKyAgICh1bnNwZWM6PFZN Pg0KKyAgICAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tf b3BlcmFuZCIgInZtV2MxIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA0ICJ2 ZWN0b3JfbGVuZ3RoX29wZXJhbmQiICAgICIgICBySyIpDQorICAgICAgKG1h dGNoX29wZXJhbmQgNSAiY29uc3RfaW50X29wZXJhbmQiICIgICAgaSIpDQor ICAgICAgKHJlZzpTSSBWTF9SRUdOVU0pDQorICAgICAgKHJlZzpTSSBWVFlQ RV9SRUdOVU0pXSBVTlNQRUNfVEhfVlNTTUVNX09QKQ0KKyAgICh1bnNwZWM6 VkkNCisgICAgIFsobWF0Y2hfb3BlcmFuZCAyICJwbW9kZV9yZWdfb3JfMF9v cGVyYW5kIiAgICIgICBySiIpDQorICAgICAgKG1hdGNoX29wZXJhbmQ6Vkkg MyAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgIiAgIHZyIildIFVOU1BFQ19U SF9WU1NNRU1fT1ApDQorICAgKG1hdGNoX2R1cCAwKSkpXQ0KKyAgIlRBUkdF VF9YVEhFQURWRUNUT1IiDQorICAidnNzPHZsbWVtX29wX2F0dHI+LnZcdCUz LCUwLCV6MiVwMSINCisgIFsoc2V0X2F0dHIgInR5cGUiICJ2c3RzIikNCisg ICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKQ0KKyAgIChzZXQgKGF0dHIg ImF2bF90eXBlX2lkeCIpIChjb25zdF9pbnQgNSkpXSkNCisNCisoZGVmaW5l X2luc24gIkBwcmVkX2luZGV4ZWRfbG9hZF93aWR0aDx2bG1lbV9vcF9hdHRy Pjxtb2RlPiINCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJIDAgInJlZ2lz dGVyX29wZXJhbmQiICAgICAgIj12ZCwgdnIsdmQsIHZyIikNCisgKGlmX3Ro ZW5fZWxzZTpWSQ0KKyAgICh1bnNwZWM6PFZNPg0KKyAgICAgWyhtYXRjaF9v cGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgICIgdm0sV2Mx LHZtLFdjMSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNSAidmVjdG9yX2xl bmd0aF9vcGVyYW5kIiAgICAgIiBySywgckssckssIHJLIikNCisgICAgICAo bWF0Y2hfb3BlcmFuZCA2ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgaSwgIGks IGksICBpIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA3ICJjb25zdF9pbnRf b3BlcmFuZCIgIiAgaSwgIGksIGksICBpIikNCisgICAgICAobWF0Y2hfb3Bl cmFuZCA4ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgaSwgIGksIGksICBpIikN CisgICAgICAocmVnOlNJIFZMX1JFR05VTSkNCisgICAgICAocmVnOlNJIFZU WVBFX1JFR05VTSldIFVOU1BFQ19USF9WTFhNRU1fT1ApDQorICAgKHVuc3Bl YzpWSQ0KKyAgICAgWyhtYXRjaF9vcGVyYW5kIDMgInBtb2RlX3JlZ19vcl8w X29wZXJhbmQiICAgICIgckosIHJKLHJKLCBySiIpDQorICAgICAgKG1lbTpC TEsgKHNjcmF0Y2gpKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kOlZJIDQgInJl Z2lzdGVyX29wZXJhbmQiICIgdnIsIHZyLHZyLCB2ciIpXSBVTlNQRUNfVEhf VkxYTUVNX09QKQ0KKyAgIChtYXRjaF9vcGVyYW5kOlZJIDIgInZlY3Rvcl9t ZXJnZV9vcGVyYW5kIiAgICAgICAiIHZ1LCB2dSwgMCwgIDAiKSkpXQ0KKyAg IlRBUkdFVF9YVEhFQURWRUNUT1IiDQorICAidmx4PHZsbWVtX29wX2F0dHI+ LnZcdCUwLCglejMpLCU0JXAxIg0KKyAgWyhzZXRfYXR0ciAidHlwZSIgInZs ZHV4IikNCisgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pDQorDQor KGRlZmluZV9pbnNuICJAcHJlZF9pbmRleGVkXzx2bG1lbV9vcmRlcl9hdHRy PnN0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+Ig0KKyAgWyhzZXQg KG1lbTpCTEsgKHNjcmF0Y2gpKQ0KKyAodW5zcGVjOkJMSw0KKyAgIFsodW5z cGVjOjxWTT4NCisgICAgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDAgInZlY3Rv cl9tYXNrX29wZXJhbmQiICJ2bVdjMSIpDQorICAgICAgKG1hdGNoX29wZXJh bmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiAgICAiICAgcksiKQ0KKyAg ICAgIChtYXRjaF9vcGVyYW5kIDUgImNvbnN0X2ludF9vcGVyYW5kIiAiICAg IGkiKQ0KKyAgICAgIChyZWc6U0kgVkxfUkVHTlVNKQ0KKyAgICAgIChyZWc6 U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZTWE1FTV9PUCkNCisgICAg KG1hdGNoX29wZXJhbmQgMSAicG1vZGVfcmVnX29yXzBfb3BlcmFuZCIgICAg ICAiICBySiIpDQorICAgIChtYXRjaF9vcGVyYW5kOlZJIDIgInJlZ2lzdGVy X29wZXJhbmQiICIgIHZyIikNCisgICAgKG1hdGNoX29wZXJhbmQ6VkkgMyAi cmVnaXN0ZXJfb3BlcmFuZCIgICIgIHZyIildIFVOU1BFQ19USF9WU1hNRU1f T1ApKV0NCisgICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0KKyAgInZzPHZsbWVt X29yZGVyX2F0dHI+eDx2bG1lbV9vcF9hdHRyPi52XHQlMywoJXoxKSwlMiVw MCINCisgIFsoc2V0X2F0dHIgInR5cGUiICJ2c3R1eCIpDQorICAgKHNldF9h dHRyICJtb2RlIiAiPE1PREU+IildKQ0KKw0KKyhkZWZpbmVfZXhwYW5kICJA cHJlZF90aF9leHRyYWN0PG1vZGU+Ig0KKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6PFZFTD4gMCAicmVnaXN0ZXJfb3BlcmFuZCIpDQorICh1bnNwZWM6PFZF TD4NCisgICBbKHZlY19zZWxlY3Q6PFZFTD4NCisgICAgICAobWF0Y2hfb3Bl cmFuZDpWX1ZMU0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIpDQorICAgICAgKHBh cmFsbGVsIFsobWF0Y2hfb3BlcmFuZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5k IiAiciIpXSkpDQorICAgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVD X1ZQUkVESUNBVEUpKV0NCisgICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0KK3t9 KQ0KKw0KKyhkZWZpbmVfaW5zbiAiKnByZWRfdGhfZXh0cmFjdDxtb2RlPiIN CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOjxWRUw+IDAgInJlZ2lzdGVyX29w ZXJhbmQiICAgIj1yIikNCisgICh1bnNwZWM6PFZFTD4NCisgICAgWyh2ZWNf c2VsZWN0OjxWRUw+DQorICAgICAgIChtYXRjaF9vcGVyYW5kOlZfVkxTSSAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAidnIiKQ0KKyAgICAgICAocGFyYWxsZWwg WyhtYXRjaF9vcGVyYW5kOkRJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIild KSkNCisgICAgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1ZQUkVE SUNBVEUpKV0NCisgICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0KKyAgInZleHQu eC52XHQlMCwlMSwlMiINCisgIFsoc2V0X2F0dHIgInR5cGUiICJ2aW1vdnZ4 IikNCisgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pDQogDQogDQog DQpqdXpoZS56aG9uZ0ByaXZhaS5haQ0KIA0KIA0K5Y+R5Lu25Lq677yaIGpv c2h1YQ0K5Y+R6YCB5pe26Ze077yaIDIwMjQtMDEtMTEgMTc6MjENCuaUtuS7 tuS6uu+8miBqdXpoZS56aG9uZ0ByaXZhaS5haTsgZ2NjLXBhdGNoZXMNCuaK hOmAge+8miBKaW0gV2lsc29uOyBwYWxtZXI7IGFuZHJldzsgcGhpbGlwcC50 b21zaWNoOyBqZWZmcmV5YWxhdzsgY2hyaXN0b3BoLm11ZWxsbmVyOyBqaW5t YTsgY29vcGVyLnF1DQrkuLvpopjvvJogUmXvvJpSZe+8mltQQVRDSCB2NV0g UklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNpZmlj IGludHJpbnNpY3MuDQogDQoiSSBkaWRuJ3Qgc2VlIHRoZWFkdmVjdG9yLXNw ZWNpZmljIGV4dGVuc2lvbiBwYXR0ZXJucy4gQ291bGQgeW91IHNob3cgbWU/ Ig0KVGhleSBhcmUgYWxsIGluIHRoZSBmaWxlIHRoZWFkLXZlY3Rvci5tZC4N CiANCkZvciB0aGUgc2V4dC96ZXh0IGlzc3VlLCBwZXJoYXBzIEkgbmVlZCBz b21lIHRpbWUgdG8gcmVwcm9kdWNlIHRoYXQgb3B0aW1pemF0aW9uLA0KYnV0 IEkgY2FuIGNsZWFybHkgcmVtZW1iZXIgaXQgaXMgcmVsYXRlZCB0byB2d211 bC4NCiANCiANCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K5Y+R5Lu25Lq677ya anV6aGUuemhvbmdAcml2YWkuYWkgPGp1emhlLnpob25nQHJpdmFpLmFpPg0K 5Y+R6YCB5pe26Ze077yaMjAyNOW5tDHmnIgxMeaXpSjmmJ/mnJ/lm5spIDE3 OjE3DQrmlLbku7bkurrvvJoiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1 YUBsaW51eC5hbGliYWJhLmNvbT47ICJnY2MtcGF0Y2hlcyI8Z2NjLXBhdGNo ZXNAZ2NjLmdudS5vcmc+DQrmioTjgIDpgIHvvJpKaW0gV2lsc29uPGppbS53 aWxzb24uZ2NjQGdtYWlsLmNvbT47IHBhbG1lcjxwYWxtZXJAZGFiYmVsdC5j b20+OyBhbmRyZXc8YW5kcmV3QHNpZml2ZS5jb20+OyAicGhpbGlwcC50b21z aWNoIjxwaGlsaXBwLnRvbXNpY2hAdnJ1bGwuZXU+OyBqZWZmcmV5YWxhdzxq ZWZmcmV5YWxhd0BnbWFpbC5jb20+OyAiY2hyaXN0b3BoLm11ZWxsbmVyIjxj aHJpc3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+OyBqaW5tYTxqaW5tYUBsaW51 eC5hbGliYWJhLmNvbT47ICJjb29wZXIucXUiPGNvb3Blci5xdUBsaW51eC5h bGliYWJhLmNvbT4NCuS4u+OAgOmimO+8mlJlOiBSZe+8mltQQVRDSCB2NV0g UklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNpZmlj IGludHJpbnNpY3MuDQogDQogDQpZb3UgbWVhbiB3aGljaCBwYXR0ZXJuIG9w dGltaXplZCBzZXh0L3Z6ZXh0IHBhdHRlcm4/DQogDQogDQpJIGRpZG4ndCBz ZWUgdGhlYWR2ZWN0b3Itc3BlY2lmaWMgZXh0ZW5zaW9uIHBhdHRlcm5zLiBD b3VsZCB5b3Ugc2hvdyBtZT8NCiANCiANCiANCiANCmp1emhlLnpob25nQHJp dmFpLmFpDQogDQogDQrlj5Hku7bkurrvvJogam9zaHVhDQrlj5HpgIHml7bp l7TvvJogMjAyNC0wMS0xMSAxNzoxNA0K5pS25Lu25Lq677yaIGp1emhlLnpo b25nQHJpdmFpLmFpOyBnY2MtcGF0Y2hlcw0K5oqE6YCB77yaIEppbSBXaWxz b247IHBhbG1lcjsgYW5kcmV3OyBwaGlsaXBwLnRvbXNpY2g7IGplZmZyZXlh bGF3OyBjaHJpc3RvcGgubXVlbGxuZXI7IGppbm1hOyBjb29wZXIucXUNCuS4 u+mimO+8miBSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBm b3IgeHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3MuDQogDQpUbyBi ZSBzcGVjaWZpYywgaW4gQ1NFIHBhc3MsIHRoZSBpbml0aWFsIHBhdHRlcm4g d2lsbCBiZSBvcHRpbWl6ZWQgaW50byB0aGUgc2V4dC96ZXh0IHBhdHRlcm4u DQogDQogDQogDQogDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCuWPkeS7tuS6 uu+8mmpvc2h1YSA8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNvbT4N CuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTHml6Uo5pif5pyf5ZubKSAx NzoxMQ0K5pS25Lu25Lq677yaImp1emhlLnpob25nQHJpdmFpLmFpIjxqdXpo ZS56aG9uZ0ByaXZhaS5haT47ICJnY2MtcGF0Y2hlcyI8Z2NjLXBhdGNoZXNA Z2NjLmdudS5vcmc+DQrmioTjgIDpgIHvvJpKaW0gV2lsc29uPGppbS53aWxz b24uZ2NjQGdtYWlsLmNvbT47IHBhbG1lcjxwYWxtZXJAZGFiYmVsdC5jb20+ OyBhbmRyZXc8YW5kcmV3QHNpZml2ZS5jb20+OyAicGhpbGlwcC50b21zaWNo IjxwaGlsaXBwLnRvbXNpY2hAdnJ1bGwuZXU+OyBqZWZmcmV5YWxhdzxqZWZm cmV5YWxhd0BnbWFpbC5jb20+OyAiY2hyaXN0b3BoLm11ZWxsbmVyIjxjaHJp c3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+OyBqaW5tYTxqaW5tYUBsaW51eC5h bGliYWJhLmNvbT47ICJjb29wZXIucXUiPGNvb3Blci5xdUBsaW51eC5hbGli YWJhLmNvbT4NCuS4u+OAgOmimO+8mlJl77yaW1BBVENIIHY1XSBSSVNDLVY6 IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmlu c2ljcy4NCiANCiANCnNleHQvemV4dCB3aWxsIGJlIGdlbmVyYXRlZCBpbiBP MiBldmVuIHdpdGhvdXQgY29ycmVzcG9uZGluZyBpbnRyaW5zaWNzLg0KIA0K IA0KIA0KIA0KIA0KIA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQrlj5Hku7bk urrvvJpqdXpoZS56aG9uZ0ByaXZhaS5haSA8anV6aGUuemhvbmdAcml2YWku YWk+DQrlj5HpgIHml7bpl7TvvJoyMDI05bm0MeaciDEx5pelKOaYn+acn+Wb mykgMTc6MDcNCuaUtuS7tuS6uu+8miJjb29wZXIuam9zaHVhIjxjb29wZXIu am9zaHVhQGxpbnV4LmFsaWJhYmEuY29tPjsgImdjYy1wYXRjaGVzIjxnY2Mt cGF0Y2hlc0BnY2MuZ251Lm9yZz4NCuaKhCDpgIHvvJpKaW0gV2lsc29uPGpp bS53aWxzb24uZ2NjQGdtYWlsLmNvbT47IHBhbG1lcjxwYWxtZXJAZGFiYmVs dC5jb20+OyBhbmRyZXc8YW5kcmV3QHNpZml2ZS5jb20+OyAicGhpbGlwcC50 b21zaWNoIjxwaGlsaXBwLnRvbXNpY2hAdnJ1bGwuZXU+OyBqZWZmcmV5YWxh dzxqZWZmcmV5YWxhd0BnbWFpbC5jb20+OyAiY2hyaXN0b3BoLm11ZWxsbmVy IjxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+OyAiY29vcGVyLmpvc2h1 YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNvbT47IGppbm1hPGpp bm1hQGxpbnV4LmFsaWJhYmEuY29tPjsgImNvb3Blci5xdSI8Y29vcGVyLnF1 QGxpbnV4LmFsaWJhYmEuY29tPg0K5Li7IOmimO+8mlJlOiBbUEFUQ0ggdjVd IFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZp YyBpbnRyaW5zaWNzLg0KIA0KIA0KZW51bSByZXF1aXJlZF9leHQNCnsNCiAg VkVDVE9SX0VYVCwgICAvKiBWZWN0b3IgZXh0ZW5zaW9uICovDQorICBYVEhF QURWRUNUT1JfRVhULCAgIC8qIFhUaGVhZFZlY3RvciBleHRlbnNpb24gKi8N CiAgWlZCQl9FWFQsICAgIC8qIENyeXRvIHZlY3RvciBadmJiIHN1Yi1leHQg Ki8NCiAgWlZCQl9PUl9aVktCX0VYVCwgLyogQ3J5dG8gdmVjdG9yIFp2YmIg b3IgenZrYiBzdWItZXh0ICovDQogIFpWQkNfRVhULCAgICAvKiBDcnlwdG8g dmVjdG9yIFp2YmMgc3ViLWV4dCAqLw0KIA0KIA0KIA0KQWRkIHRoZWFkdmVj dG9yIHRvIHRoZSBlbmQgb2YgdGhlIGVudW0uDQogDQogDQorICAgICAgY2Fz ZSBYVEhFQURWRUNUT1JfRVhUOg0KKyByZXR1cm4gVEFSR0VUX1hUSEVBRFZF Q1RPUjsNCiANCiANCiANClNhbWUuDQogDQogDQorICAiJiYgcmVnaXN0ZXJf b3BlcmFuZCAob3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpDQorICAgJiYgcmVn aXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbM10sIDxNT0RFPm1vZGUpDQorICAg JiYgc2F0aXNmaWVzX2NvbnN0cmFpbnRfdnUgKG9wZXJhbmRzWzJdKQ0KKyAg ICYmIElOVFZBTCAob3BlcmFuZHNbN10pID09IHJpc2N2X3ZlY3Rvcjo6VkxN QVgiDQogDQogDQogDQpZb3UgY2FuIHVzZSB3aG9sZV9yZWdfdG9fcmVnX21v dmVfcA0KIA0KIA0KIA0KIA0KQnR3LCBJIHJldmlldyBhZ2FpbiA6ICAgUklT Qy1WOiBIYW5kbGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBYVGhlYWR2ZWN0b3Ig YW5kIFZlY3Rvcg0KIA0KIA0KICAgIChhbnlfZXh0ZW5kOlZXRVhUSSAgICAg IChtYXRjaF9vcGVyYW5kOjxWX0RPVUJMRV9UUlVOQz4gMyAicmVnaXN0ZXJf b3BlcmFuZCIgICAiVzIxLFcyMSxXMjEsVzIxLFc0MixXNDIsVzQyLFc0MixX ODQsVzg0LFc4NCxXODQsICAgdnIsICAgdnIiKSkgICAgKG1hdGNoX29wZXJh bmQ6VldFWFRJIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIiAgICAgICAgICAg IiB2dSwgdnUsICAwLCAgMCwgdnUsIHZ1LCAgMCwgIDAsIHZ1LCB2dSwgIDAs ICAwLCAgIHZ1LCAgICAwIikpKV0tICAiVEFSR0VUX1ZFQ1RPUiIrICAiVEFS R0VUX1ZFQ1RPUiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiIgICAidjxzej5l eHQudmYyXHQlMCwlMyVwMSIgICBbKHNldF9hdHRyICJ0eXBlIiAidmV4dCIp ICAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpQEAgLTM3MTMsNyArMzc0 NCw3IEBAICAgIChhbnlfZXh0ZW5kOlZRRVhUSSAgICAgIChtYXRjaF9vcGVy YW5kOjxWX1FVQURfVFJVTkM+IDMgInJlZ2lzdGVyX29wZXJhbmQiICAgIlc0 MyxXNDMsVzQzLFc0MyxXODYsVzg2LFc4NixXODYsICAgdnIsICAgdnIiKSkg ICAgKG1hdGNoX29wZXJhbmQ6VlFFWFRJIDIgInZlY3Rvcl9tZXJnZV9vcGVy YW5kIiAgICAgICAgICIgdnUsIHZ1LCAgMCwgIDAsIHZ1LCB2dSwgIDAsICAw LCAgIHZ1LCAgICAwIikpKV0tICAiVEFSR0VUX1ZFQ1RPUiIrICAiVEFSR0VU X1ZFQ1RPUiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiIgICAidjxzej5leHQu dmY0XHQlMCwlMyVwMSIgICBbKHNldF9hdHRyICJ0eXBlIiAidmV4dCIpICAg IChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpQEAgLTM3MzQsNyArMzc2NSw3 IEBAICAgIChhbnlfZXh0ZW5kOlZPRVhUSSAgICAgIChtYXRjaF9vcGVyYW5k OjxWX09DVF9UUlVOQz4gMyAicmVnaXN0ZXJfb3BlcmFuZCIgICAiVzg3LFc4 NyxXODcsVzg3LCAgIHZyLCAgIHZyIikpICAgIChtYXRjaF9vcGVyYW5kOlZP RVhUSSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgICAgICAgICIgdnUsIHZ1 LCAgMCwgIDAsICAgdnUsICAgIDAiKSkpXS0gICJUQVJHRVRfVkVDVE9SIisg ICJUQVJHRVRfVkVDVE9SICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SIiAgICJ2 PHN6PmV4dC52ZjhcdCUwLCUzJXAxIiAgIFsoc2V0X2F0dHIgInR5cGUiICJ2 ZXh0IikgICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IikNCldoeSBkbyB5 b3UgYWRkIHRoZXNlICFUQVJHRVJUX1hUSEVBRFZFQ1JUT1IgPw0KIA0KIA0K anV6aGUuemhvbmdAcml2YWkuYWkNCiANCkZyb206IEp1biBTaGEgKEpvc2h1 YSkNCkRhdGU6IDIwMjQtMDEtMTEgMTY6NDYNClRvOiBnY2MtcGF0Y2hlcw0K Q0M6IGppbS53aWxzb24uZ2NjOyBwYWxtZXI7IGFuZHJldzsgcGhpbGlwcC50 b21zaWNoOyBqZWZmcmV5YWxhdzsgY2hyaXN0b3BoLm11ZWxsbmVyOyBqdXpo ZS56aG9uZzsgSnVuIFNoYSAoSm9zaHVhKTsgSmluIE1hOyBYaWFubWlhbyBR dQ0KU3ViamVjdDogW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZv ciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4NCiANClRoaXMg cGF0Y2ggb25seSBpbnZvbHZlcyB0aGUgZ2VuZXJhdGlvbiBvZiB4dGhlYWR2 ZWN0b3INCnNwZWNpYWwgbG9hZC9zdG9yZSBpbnN0cnVjdGlvbnMgYW5kIHZl eHQgaW5zdHJ1Y3Rpb25zLg0KZ2NjL0NoYW5nZUxvZzoNCiogY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0KKGNsYXNzIHRo X2xvYWRzdG9yZV93aWR0aCk6IERlZmluZSBuZXcgYnVpbHRpbiBiYXNlcy4N CihjbGFzcyB0aF9leHRyYWN0KTogRGVmaW5lIG5ldyBidWlsdGluIGJhc2Vz Lg0KKEJBU0UpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gYmFzZXMuDQoqIGNvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaDoNCkRlZmlu ZSBuZXcgYnVpbHRpbiBjbGFzcy4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy1zaGFwZXMuY2MNCihzdHJ1Y3QgdGhfbG9hZHN0b3Jl X3dpZHRoX2RlZik6IERlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuDQooc3Ry dWN0IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoX2RlZik6DQpEZWZpbmUg bmV3IGJ1aWx0aW4gc2hhcGVzLg0KKHN0cnVjdCB0aF9leHRyYWN0X2RlZik6 IERlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuDQooU0hBUEUpOiBEZWZpbmUg bmV3IGJ1aWx0aW4gc2hhcGVzLg0KKiBjb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLXNoYXBlcy5oOg0KRGVmaW5lIG5ldyBidWlsdGluIHNo YXBlcy4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5j YyAoREVGX1JWVl9GVU5DVElPTik6DQoqIGNvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMuaCAoZW51bSByZXF1aXJlZF9leHQpOg0KKHN0cnVj dCBmdW5jdGlvbl9ncm91cF9pbmZvKToNCiogY29uZmlnL3Jpc2N2L3Qtcmlz Y3Y6IEFkZCB0aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZg0K KiBjb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kDQooQHByZWRfbW92X3dp ZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KTogQWRkIG5ldyBwYXR0ZXJucy4N CigqcHJlZF9tb3Zfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtl d2lzZS4NCihAcHJlZF9zdG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2Rl Pik6IExpa2V3aXNlLg0KKEBwcmVkX3N0cmlkZWRfbG9hZF93aWR0aDx2bG1l bV9vcF9hdHRyPjxtb2RlPik6IExpa2V3aXNlLg0KKEBwcmVkX3N0cmlkZWRf c3RvcmVfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtld2lzZS4N CihAcHJlZF9pbmRleGVkX2xvYWRfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9k ZT4pOiBMaWtld2lzZS4NCihAcHJlZF9pbmRleGVkXzx2bG1lbV9vcmRlcl9h dHRyPnN0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KToNCihAcHJl ZF90aF9leHRyYWN0PG1vZGU+KTogTGlrZXdpc2UuDQooKnByZWRfdGhfZXh0 cmFjdDxtb2RlPik6IExpa2V3aXNlLg0KKiBjb25maWcvcmlzY3YvdGhlYWQt dmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWY6IE5ldyBmaWxlLg0KZ2Nj L3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2 L3h0aGVhZHZlY3Rvci92bGItdnNiLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYzogTmV3IHRl c3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgt dnNoLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhl YWR2ZWN0b3IvdmxodS12c2guYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQv cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3LmM6IE5ldyB0ZXN0Lg0K KiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cu YzogTmV3IHRlc3QuDQpDby1hdXRob3JlZC1ieTogSmluIE1hIDxqaW5tYUBs aW51eC5hbGliYWJhLmNvbT4NCkNvLWF1dGhvcmVkLWJ5OiBYaWFubWlhbyBR dSA8Y29vcGVyLnF1QGxpbnV4LmFsaWJhYmEuY29tPg0KQ28tYXV0aG9yZWQt Ynk6IENocmlzdG9waCBNw7xsbG5lciA8Y2hyaXN0b3BoLm11ZWxsbmVyQHZy dWxsLmV1Pg0KLS0tDQouLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LWJhc2VzLmNjICAgICAgfCAxMzkgKysrKysrKysrKw0KLi4uL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oICAgICAgIHwgIDMxICsrKw0K Li4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MgICAg IHwgMTYwICsrKysrKysrKysrDQouLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLXNoYXBlcy5oICAgICAgfCAgIDMgKw0KZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgICAgIHwgIDcwICsrKysrDQpn Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oICAgICAg fCAgIDMgKw0KZ2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2ICAgICAgICAgICAg ICAgICAgICAgIHwgICAxICsNCi4uLi9yaXNjdi90aGVhZC12ZWN0b3ItYnVp bHRpbnMtZnVuY3Rpb25zLmRlZiB8ICAzOSArKysNCmdjYy9jb25maWcvcmlz Y3YvdGhlYWQtdmVjdG9yLm1kICAgICAgICAgICAgICB8IDI1MyArKysrKysr KysrKysrKysrKysNCi4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12 c2IuYyAgICAgICAgICB8ICA2OCArKysrKw0KLi4uL3Jpc2N2L3J2di94dGhl YWR2ZWN0b3IvdmxidS12c2IuYyAgICAgICAgIHwgIDY4ICsrKysrDQouLi4v cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMgICAgICAgICAgfCAg NjggKysrKysNCi4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaHUtdnNo LmMgICAgICAgICB8ICA2OCArKysrKw0KLi4uL3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3Ivdmx3LXZzdy5jICAgICAgICAgIHwgIDY4ICsrKysrDQouLi4vcmlz Y3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1LXZzdy5jICAgICAgICAgfCAgNjgg KysrKysNCjE1IGZpbGVzIGNoYW5nZWQsIDExMDcgaW5zZXJ0aW9ucygrKQ0K Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy9jb25maWcvcmlzY3YvdGhlYWQtdmVj dG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYNCmNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZl Y3Rvci92bGItdnNiLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZz Yi5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jDQpjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di94dGhlYWR2ZWN0b3IvdmxodS12c2guYw0KY3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3Zsdy12c3cuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3 LmMNCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy1iYXNlcy5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjDQppbmRleCA0NmYxYTFkYTMzZS4u M2ViYTc5NDM3NTcgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0KKysrIGIvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MNCkBAIC0y MTI1LDYgKzIxMjUsODMgQEAgcHVibGljOg0KICB9DQp9Ow0KKy8qIEltcGxl bWVudHMNCisgKiB0aC52bChiL2gvdylbdV0udi90aC52cyhiL2gvdylbdV0u di90aC52bHMoYi9oL3cpW3VdLnYvdGgudnNzKGIvaC93KVt1XS52Lw0KKyAq IHRoLnZseChiL2gvdylbdV0udi90aC52c1t1XXgoYi9oL3cpLnYNCisgKiBj b2RlZ2VuLiAgKi8NCit0ZW1wbGF0ZTxib29sIFNUT1JFX1AsIGxzdF90eXBl IExTVF9UWVBFLCBpbnQgVU5TUEVDPg0KK2NsYXNzIHRoX2xvYWRzdG9yZV93 aWR0aCA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlDQorew0KK3B1YmxpYzoNCisg IGJvb2wgYXBwbHlfdGFpbF9wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7 IHJldHVybiAhU1RPUkVfUDsgfQ0KKyAgYm9vbCBhcHBseV9tYXNrX3BvbGlj eV9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICFTVE9SRV9QOyB9DQor DQorICB1bnNpZ25lZCBpbnQgY2FsbF9wcm9wZXJ0aWVzIChjb25zdCBmdW5j dGlvbl9pbnN0YW5jZSAmKSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAgICBp ZiAoU1RPUkVfUCkNCisgICAgICByZXR1cm4gQ1BfV1JJVEVfTUVNT1JZOw0K KyAgICBlbHNlDQorICAgICAgcmV0dXJuIENQX1JFQURfTUVNT1JZOw0KKyAg fQ0KKw0KKyAgYm9vbCBjYW5fYmVfb3ZlcmxvYWRlZF9wIChlbnVtIHByZWRp Y2F0aW9uX3R5cGVfaW5kZXggcHJlZCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsN CisgICAgaWYgKFNUT1JFX1AgfHwgTFNUX1RZUEUgPT0gTFNUX0lOREVYRUQp DQorICAgICAgcmV0dXJuIHRydWU7DQorICAgIHJldHVybiBwcmVkICE9IFBS RURfVFlQRV9ub25lOw0KKyAgfQ0KKw0KKyAgcnR4IGV4cGFuZCAoZnVuY3Rp b25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIGdj Y19hc3NlcnQgKFRBUkdFVF9YVEhFQURWRUNUT1IpOw0KKyAgICBpZiAoTFNU X1RZUEUgPT0gTFNUX0lOREVYRUQpDQorICAgICAgew0KKyBpZiAoU1RPUkVf UCkNCisgICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoDQorICAgICBjb2Rl X2Zvcl9wcmVkX2luZGV4ZWRfc3RvcmVfd2lkdGggKFVOU1BFQywgVU5TUEVD LA0KKyAgICAgICAgICAgIGUudmVjdG9yX21vZGUgKCkpKTsNCisgZWxzZQ0K KyAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuICgNCisgICAgIGNvZGVfZm9y X3ByZWRfaW5kZXhlZF9sb2FkX3dpZHRoIChVTlNQRUMsIGUudmVjdG9yX21v ZGUgKCkpKTsNCisgICAgICB9DQorICAgIGVsc2UgaWYgKExTVF9UWVBFID09 IExTVF9TVFJJREVEKQ0KKyAgICAgIHsNCisgaWYgKFNUT1JFX1ApDQorICAg cmV0dXJuIGUudXNlX2NvbnRpZ3VvdXNfc3RvcmVfaW5zbiAoDQorICAgICBj b2RlX2Zvcl9wcmVkX3N0cmlkZWRfc3RvcmVfd2lkdGggKFVOU1BFQywgZS52 ZWN0b3JfbW9kZSAoKSkpOw0KKyBlbHNlDQorICAgcmV0dXJuIGUudXNlX2Nv bnRpZ3VvdXNfbG9hZF9pbnNuICgNCisgICAgIGNvZGVfZm9yX3ByZWRfc3Ry aWRlZF9sb2FkX3dpZHRoIChVTlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsN CisgICAgICB9DQorICAgIGVsc2UNCisgICAgICB7DQorIGlmIChTVE9SRV9Q KQ0KKyAgIHJldHVybiBlLnVzZV9jb250aWd1b3VzX3N0b3JlX2luc24gKA0K KyAgICAgY29kZV9mb3JfcHJlZF9zdG9yZV93aWR0aCAoVU5TUEVDLCBlLnZl Y3Rvcl9tb2RlICgpKSk7DQorIGVsc2UNCisgICByZXR1cm4gZS51c2VfY29u dGlndW91c19sb2FkX2luc24gKA0KKyAgICAgY29kZV9mb3JfcHJlZF9tb3Zf d2lkdGggKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAgIH0N CisgIH0NCit9Ow0KKw0KKy8qIEltcGxlbWVudHMgdmV4dC54LnYuICAqLw0K K2NsYXNzIHRoX2V4dHJhY3QgOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0KK3sN CitwdWJsaWM6DQorICBib29sIGFwcGx5X3ZsX3AgKCkgY29uc3Qgb3ZlcnJp ZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJvb2wgYXBwbHlfdGFpbF9wb2xp Y3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KKyAg Ym9vbCBhcHBseV9tYXNrX3BvbGljeV9wICgpIGNvbnN0IG92ZXJyaWRlIHsg cmV0dXJuIGZhbHNlOyB9DQorICBib29sIHVzZV9tYXNrX3ByZWRpY2F0aW9u X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJv b2wgaGFzX21lcmdlX29wZXJhbmRfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJl dHVybiBmYWxzZTsgfQ0KKw0KKyAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhw YW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIGdjY19hc3Nl cnQgKFRBUkdFVF9YVEhFQURWRUNUT1IpOw0KKyAgICByZXR1cm4gZS51c2Vf ZXhhY3RfaW5zbiAoY29kZV9mb3JfcHJlZF90aF9leHRyYWN0IChlLnZlY3Rv cl9tb2RlICgpKSk7DQorICB9DQorfTsNCisNCi8qIEJlbG93IGltcGxlbWVu dHMgYXJlIHZlY3RvciBjcnlwdG8gKi8NCi8qIEltcGxlbWVudHMgdmFuZG4u W3Z2LHZ4XSAqLw0KY2xhc3MgdmFuZG4gOiBwdWJsaWMgZnVuY3Rpb25fYmFz ZQ0KQEAgLTI1ODcsNiArMjY2NCwzNyBAQCBzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHNlZ19pbmRleGVkX2xvYWQ8VU5TUEVDX09SREVSRUQ+IHZsb3hzZWdf b2JqOw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCBzZWdfaW5kZXhlZF9zdG9y ZTxVTlNQRUNfVU5PUkRFUkVEPiB2c3V4c2VnX29iajsNCnN0YXRpYyBDT05T VEVYUFIgY29uc3Qgc2VnX2luZGV4ZWRfc3RvcmU8VU5TUEVDX09SREVSRUQ+ IHZzb3hzZWdfb2JqOw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCB2bHNlZ2Zm IHZsc2VnZmZfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9h ZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19U SF9WTEI+IHZsYl9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9s b2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVD X1RIX1ZMQlU+IHZsYnVfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVO U1BFQ19USF9WTEg+IHZsaF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25z dCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwg VU5TUEVDX1RIX1ZMSFU+IHZsaHVfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJ REUsIFVOU1BFQ19USF9WTFc+IHZsd19vYmo7DQorc3RhdGljIENPTlNURVhQ UiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NU UklERSwgVU5TUEVDX1RIX1ZMV1U+IHZsd3Vfb2JqOw0KK3N0YXRpYyBDT05T VEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9VTklU X1NUUklERSwgVU5TUEVDX1RIX1ZMQj4gdnNiX29iajsNCitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfVU5J VF9TVFJJREUsIFVOU1BFQ19USF9WTEg+IHZzaF9vYmo7DQorc3RhdGljIENP TlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1VO SVRfU1RSSURFLCBVTlNQRUNfVEhfVkxXPiB2c3dfb2JqOw0KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1Rf U1RSSURFRCwgVU5TUEVDX1RIX1ZMU0I+IHZsc2Jfb2JqOw0KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1Rf U1RSSURFRCwgVU5TUEVDX1RIX1ZMU0JVPiB2bHNidV9vYmo7DQorc3RhdGlj IENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExT VF9TVFJJREVELCBVTlNQRUNfVEhfVkxTSD4gdmxzaF9vYmo7DQorc3RhdGlj IENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExT VF9TVFJJREVELCBVTlNQRUNfVEhfVkxTSFU+IHZsc2h1X29iajsNCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwg TFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNXPiB2bHN3X29iajsNCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwg TFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNXVT4gdmxzd3Vfb2JqOw0KK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUs IExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxTQj4gdnNzYl9vYmo7DQorc3Rh dGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwg TFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNIPiB2c3NoX29iajsNCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBM U1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU1c+IHZzc3dfb2JqOw0KK3N0YXRp YyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBM U1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEI+IHZseGJfb2JqOw0KK3N0YXRp YyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBM U1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEJVPiB2bHhidV9vYmo7DQorc3Rh dGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2Us IExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYSD4gdmx4aF9vYmo7DQorc3Rh dGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2Us IExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYSFU+IHZseGh1X29iajsNCitz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxz ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhXPiB2bHh3X29iajsNCitz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxz ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhXVT4gdmx4d3Vfb2JqOw0K K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRy dWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYQj4gdnN4Yl9vYmo7DQor c3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1 ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhIPiB2c3hoX29iajsNCitz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVl LCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWFc+IHZzeHdfb2JqOw0KK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUs IExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVlNVWEI+IHZzdXhiX29iajsNCitz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVl LCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZTVVhIPiB2c3V4aF9vYmo7DQor c3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1 ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WU1VYVz4gdnN1eHdfb2JqOw0K K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfZXh0cmFjdCB2ZXh0X3hfdl9v Ymo7DQovKiBDcnlwdG8gVmVjdG9yICovDQpzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHZhbmRuIHZhbmRuX29iajsNCkBAIC0yODc4LDYgKzI5ODYsMzcgQEAg QkFTRSAodmxveHNlZykNCkJBU0UgKHZzdXhzZWcpDQpCQVNFICh2c294c2Vn KQ0KQkFTRSAodmxzZWdmZikNCitCQVNFICh2bGIpDQorQkFTRSAodmxoKQ0K K0JBU0UgKHZsdykNCitCQVNFICh2bGJ1KQ0KK0JBU0UgKHZsaHUpDQorQkFT RSAodmx3dSkNCitCQVNFICh2c2IpDQorQkFTRSAodnNoKQ0KK0JBU0UgKHZz dykNCitCQVNFICh2bHNiKQ0KK0JBU0UgKHZsc2gpDQorQkFTRSAodmxzdykN CitCQVNFICh2bHNidSkNCitCQVNFICh2bHNodSkNCitCQVNFICh2bHN3dSkN CitCQVNFICh2c3NiKQ0KK0JBU0UgKHZzc2gpDQorQkFTRSAodnNzdykNCitC QVNFICh2bHhiKQ0KK0JBU0UgKHZseGgpDQorQkFTRSAodmx4dykNCitCQVNF ICh2bHhidSkNCitCQVNFICh2bHhodSkNCitCQVNFICh2bHh3dSkNCitCQVNF ICh2c3hiKQ0KK0JBU0UgKHZzeGgpDQorQkFTRSAodnN4dykNCitCQVNFICh2 c3V4YikNCitCQVNFICh2c3V4aCkNCitCQVNFICh2c3V4dykNCitCQVNFICh2 ZXh0X3hfdikNCi8qIENyeXB0byB2ZWN0b3IgKi8NCkJBU0UgKHZhbmRuKQ0K QkFTRSAodmJyZXYpDQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaCBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgNCmluZGV4IDExMjJl MzgwMWE3Li41NjVhMDMxMWQyYiAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgNCisrKyBiL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgN CkBAIC0yOTksNiArMjk5LDM3IEBAIGV4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2bG94c2VnOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jh c2UgKmNvbnN0IHZzdXhzZWc7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3QgdnNveHNlZzsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB2bHNlZ2ZmOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB2bGI7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHZsaDsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dmx3Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bGJ1 Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bGh1Ow0K K2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHd1Ow0KK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c2I7DQorZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzaDsNCitleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN3Ow0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB2bHNiOw0KK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB2bHNoOw0KK2V4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2bHN3Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2bHNidTsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3QgdmxzaHU7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2Ug KmNvbnN0IHZsc3d1Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpj b25zdCB2c3NiOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB2c3NoOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2 c3N3Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHhi Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHhoOw0K K2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHh3Ow0KK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHhidTsNCitleHRl cm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4aHU7DQorZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZseHd1Ow0KK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3hiOw0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3hoOw0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB2c3h3Ow0KK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB2c3V4YjsNCitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdnN1eGg7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X2Jhc2UgKmNvbnN0IHZzdXh3Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2ZXh0X3hfdjsNCi8qIEJlbG93IGZ1bmN0aW9uX2Jhc2Ug YXJlIFZlY3RybyBDcnlwdG8qLw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jh c2UgKmNvbnN0IHZhbmRuOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2Ug KmNvbnN0IHZicmV2Ow0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYyBiL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYw0KaW5kZXgg MWU0ZjRkNTNkZTYuLjhlOTBiMTdhOTRiIDEwMDY0NA0KLS0tIGEvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjDQor KysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1z aGFwZXMuY2MNCkBAIC0yMTEsNiArMjExLDE0NiBAQCBzdHJ1Y3QgaW5kZXhl ZF9sb2Fkc3RvcmVfZGVmIDogcHVibGljIGZ1bmN0aW9uX3NoYXBlDQogIH0N Cn07DQorLyogQWRkIG9uZSBmdW5jdGlvbiBpbnN0YW5jZSBmb3IgR1JPVVAs IHVzaW5nIG9wZXJhbmQgc3VmZml4IGF0IGluZGV4IE9JLA0KKyAgIG1vZGUg c3VmZml4IGF0IGluZGV4IFBBSVIgJiYgYmkgYW5kIHByZWRpY2F0aW9uIHN1 ZmZpeCBhdCBpbmRleCBwcmVkX2lkeC4gICovDQorc3RhdGljIHZvaWQNCiti dWlsZF90aF9sb2Fkc3RvcmUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0 IGZ1bmN0aW9uX2dyb3VwX2luZm8gJmdyb3VwLA0KKyAgICAgIHVuc2lnbmVk IGludCBwcmVkX2lkeCwgdW5zaWduZWQgaW50IHZlY190eXBlX2lkeCkNCit7 DQorICBhdXRvX3ZlYzx0cmVlLCA1PiBhcmd1bWVudF90eXBlczsNCisgIGZ1 bmN0aW9uX2luc3RhbmNlIGZ1bmN0aW9uX2luc3RhbmNlIChncm91cC5iYXNl X25hbWUsICpncm91cC5iYXNlLA0KKyAgICAgICAgICAgKmdyb3VwLnNoYXBl LA0KKyAgICAgICAgICAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBl X2lkeF0sDQorICAgICAgICAgICBncm91cC5wcmVkc1twcmVkX2lkeF0sICZn cm91cC5vcHNfaW5mb3MpOw0KKyAgdHJlZSByZXR1cm5fdHlwZSA9IGdyb3Vw Lm9wc19pbmZvcy5yZXQuZ2V0X3RyZWVfdHlwZSAoDQorICAgIGdyb3VwLm9w c19pbmZvcy50eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4KTsNCisgIGIuYWxs b2NhdGVfYXJndW1lbnRfdHlwZXMgKGZ1bmN0aW9uX2luc3RhbmNlLCBhcmd1 bWVudF90eXBlcyk7DQorICBiLmFwcGx5X3ByZWRpY2F0aW9uIChmdW5jdGlv bl9pbnN0YW5jZSwgcmV0dXJuX3R5cGUsIGFyZ3VtZW50X3R5cGVzKTsNCisN CisgIGlmIChUQVJHRVRfWFRIRUFEVkVDVE9SICYmICFjaGVja190eXBlIChy ZXR1cm5fdHlwZSwgYXJndW1lbnRfdHlwZXMpKQ0KKyAgICByZXR1cm47DQor DQorICB0cmVlIHR5cGUgPSBidWlsdGluX3R5cGVzW2dyb3VwLm9wc19pbmZv cy50eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4XS52ZWN0b3I7DQorICBpZiAo c3Ryc3RyIChncm91cC5iYXNlX25hbWUsICJsIikNCisgICAgICAmJiBzdHJz dHIgKGdyb3VwLmJhc2VfbmFtZSwgInUiKQ0KKyAgICAgICYmICFUWVBFX1VO U0lHTkVEIChUUkVFX1RZUEUgKHR5cGUpKSkNCisgICAgcmV0dXJuOw0KKw0K KyAgaWYgKHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAibCIpDQorICAgICAg JiYgIXN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAidSIpDQorICAgICAgJiYg VFlQRV9VTlNJR05FRCAoVFJFRV9UWVBFICh0eXBlKSkpDQorICAgIHJldHVy bjsNCisNCisgIG1hY2hpbmVfbW9kZSBtb2RlID0gVFlQRV9NT0RFICh0eXBl KTsNCisgIGludCBzZXcgPSBHRVRfTU9ERV9CSVRTSVpFIChHRVRfTU9ERV9J Tk5FUiAobW9kZSkpOw0KKyAgaWYgKHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1l LCAiaCIpICYmIHNldyA9PSA4KQ0KKyAgICByZXR1cm47DQorDQorICBpZiAo c3Ryc3RyIChncm91cC5iYXNlX25hbWUsICJ3IikgJiYgKHNldyA9PSA4IHx8 IHNldyA9PTE2KSkNCisgICAgcmV0dXJuOw0KKw0KKyAgYi5hZGRfb3Zlcmxv YWRlZF9mdW5jdGlvbiAoZnVuY3Rpb25faW5zdGFuY2UsICpncm91cC5zaGFw ZSk7DQorICBiLmFkZF91bmlxdWVfZnVuY3Rpb24gKGZ1bmN0aW9uX2luc3Rh bmNlLCAoKmdyb3VwLnNoYXBlKSwgcmV0dXJuX3R5cGUsDQorICAgIGFyZ3Vt ZW50X3R5cGVzKTsNCit9DQorDQorLyogdGhfbG9hZHN0b3JlX3dpZHRoX2Rl ZiBjbGFzcy4gICovDQorc3RydWN0IHRoX2xvYWRzdG9yZV93aWR0aF9kZWYg OiBwdWJsaWMgYnVpbGRfYmFzZQ0KK3sNCisgICB2b2lkIGJ1aWxkIChmdW5j dGlvbl9idWlsZGVyICZiLA0KKyAgICAgICBjb25zdCBmdW5jdGlvbl9ncm91 cF9pbmZvICZncm91cCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgZm9y ICh1bnNpZ25lZCBpbnQgcHJlZF9pZHggPSAwOyBncm91cC5wcmVkc1twcmVk X2lkeF0gIT0gTlVNX1BSRURfVFlQRVM7DQorICAgICAgICsrcHJlZF9pZHgp DQorICAgICAgew0KKyBmb3IgKHVuc2lnbmVkIGludCB2ZWNfdHlwZV9pZHgg PSAwOw0KKyAgICAgIGdyb3VwLm9wc19pbmZvcy50eXBlc1t2ZWNfdHlwZV9p ZHhdLmluZGV4ICE9IE5VTV9WRUNUT1JfVFlQRVM7DQorICAgICAgKyt2ZWNf dHlwZV9pZHgpDQorICAgew0KKyAgICAgYnVpbGRfdGhfbG9hZHN0b3JlIChi LCBncm91cCwgcHJlZF9pZHgsIHZlY190eXBlX2lkeCk7DQorICAgfQ0KKyAg ICAgIH0NCisgIH0NCisNCisgIGNoYXIgKmdldF9uYW1lIChmdW5jdGlvbl9i dWlsZGVyICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2Us DQorICAgIGJvb2wgb3ZlcmxvYWRlZF9wKSBjb25zdCBvdmVycmlkZQ0KKyAg ew0KKyAgICAvKiBSZXR1cm4gbnVsbHB0ciBpZiBpdCBjYW4gbm90IGJlIG92 ZXJsb2FkZWQuICAqLw0KKyAgICBpZiAob3ZlcmxvYWRlZF9wICYmICFpbnN0 YW5jZS5iYXNlLT5jYW5fYmVfb3ZlcmxvYWRlZF9wIChpbnN0YW5jZS5wcmVk KSkNCisgICAgICByZXR1cm4gbnVsbHB0cjsNCisNCisgICAgYi5hcHBlbmRf bmFtZSAoIl9fcmlzY3ZfdGhfIik7DQorICAgIGIuYXBwZW5kX25hbWUgKGlu c3RhbmNlLmJhc2VfbmFtZSk7DQorDQorICAgIC8qIHZvcF92IC0tPiB2b3Bf dl88dHlwZT4uICAqLw0KKyAgICBpZiAoIW92ZXJsb2FkZWRfcCkNCisgICAg ICB7DQorIC8qIHZvcCAtLT4gdm9wX3YuICAqLw0KKyBiLmFwcGVuZF9uYW1l IChvcGVyYW5kX3N1ZmZpeGVzW2luc3RhbmNlLm9wX2luZm8tPm9wXSk7DQor IC8qIHZvcF92IC0tPiB2b3Bfdl88dHlwZT4uICAqLw0KKyBiLmFwcGVuZF9u YW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rv cik7DQorICAgICAgfQ0KKw0KKyAgICAvKiBBY2NvcmRpbmcgdG8gcnZ2LWlu dHJpbnNpYy1kb2MsIGl0IGRvZXMgbm90IGFkZCAiX20iIHN1ZmZpeA0KKyAg ICAgICBmb3Igdm9wX20gQysrIG92ZXJsb2FkZWQgQVBJLiAgKi8NCisgICAg aWYgKG92ZXJsb2FkZWRfcCAmJiBpbnN0YW5jZS5wcmVkID09IFBSRURfVFlQ RV9tKQ0KKyAgICAgIHJldHVybiBiLmZpbmlzaF9uYW1lICgpOw0KKyAgICBi LmFwcGVuZF9uYW1lIChwcmVkaWNhdGlvbl9zdWZmaXhlc1tpbnN0YW5jZS5w cmVkXSk7DQorICAgIHJldHVybiBiLmZpbmlzaF9uYW1lICgpOw0KKyAgfQ0K K307DQorDQorDQorLyogdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGhfZGVm IGNsYXNzLiAgKi8NCitzdHJ1Y3QgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lk dGhfZGVmIDogcHVibGljIGZ1bmN0aW9uX3NoYXBlDQorew0KKyAgdm9pZCBi dWlsZCAoZnVuY3Rpb25fYnVpbGRlciAmYiwNCisgICAgICAgY29uc3QgZnVu Y3Rpb25fZ3JvdXBfaW5mbyAmZ3JvdXApIGNvbnN0IG92ZXJyaWRlDQorICB7 DQorICAgIGZvciAodW5zaWduZWQgaW50IHByZWRfaWR4ID0gMDsgZ3JvdXAu cHJlZHNbcHJlZF9pZHhdICE9IE5VTV9QUkVEX1RZUEVTOw0KKyAgKytwcmVk X2lkeCkNCisgICAgICB7DQorIGZvciAodW5zaWduZWQgaW50IHZlY190eXBl X2lkeCA9IDA7DQorICAgICAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190 eXBlX2lkeF0uaW5kZXggIT0gTlVNX1ZFQ1RPUl9UWVBFUzsNCisgICAgICAr K3ZlY190eXBlX2lkeCkNCisgICB7DQorICAgIHRyZWUgaW5kZXhfdHlwZSA9 IGdyb3VwLm9wc19pbmZvcy5hcmdzWzFdLmdldF90cmVlX3R5cGUgKA0KKyAg ICAgICBncm91cC5vcHNfaW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4XS5pbmRl eCk7DQorICAgIGlmICghaW5kZXhfdHlwZSkNCisgICAgICAgY29udGludWU7 DQorICAgIGJ1aWxkX3RoX2xvYWRzdG9yZSAoYiwgZ3JvdXAsIHByZWRfaWR4 LCB2ZWNfdHlwZV9pZHgpOw0KKyAgIH0NCisgICAgICB9DQorICB9DQorDQor ICBjaGFyICpnZXRfbmFtZSAoZnVuY3Rpb25fYnVpbGRlciAmYiwgY29uc3Qg ZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLA0KKyAgICBib29sIG92ZXJs b2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisNCisgICAgLyogUmV0 dXJuIG51bGxwdHIgaWYgaXQgY2FuIG5vdCBiZSBvdmVybG9hZGVkLiAgKi8N CisgICAgaWYgKG92ZXJsb2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2Fu X2JlX292ZXJsb2FkZWRfcCAoaW5zdGFuY2UucHJlZCkpDQorICAgICAgcmV0 dXJuIG51bGxwdHI7DQorDQorICAgIGIuYXBwZW5kX25hbWUgKCJfX3Jpc2N2 X3RoXyIpOw0KKyAgICBiLmFwcGVuZF9uYW1lIChpbnN0YW5jZS5iYXNlX25h bWUpOw0KKyAgICAvKiB2b3BfdiAtLT4gdm9wX3ZfPHR5cGU+LiAgKi8NCisg ICAgaWYgKCFvdmVybG9hZGVkX3ApDQorICAgICAgew0KKyAvKiB2b3AgLS0+ IHZvcF92LiAgKi8NCisgYi5hcHBlbmRfbmFtZSAob3BlcmFuZF9zdWZmaXhl c1tpbnN0YW5jZS5vcF9pbmZvLT5vcF0pOw0KKyAvKiB2b3BfdiAtLT4gdm9w X3ZfPHR5cGU+LiAgKi8NCisgYi5hcHBlbmRfbmFtZSAodHlwZV9zdWZmaXhl c1tpbnN0YW5jZS50eXBlLmluZGV4XS52ZWN0b3IpOw0KKyAgICAgIH0NCisN CisgICAgLyogQWNjb3JkaW5nIHRvIHJ2di1pbnRyaW5zaWMtZG9jLCBpdCBk b2VzIG5vdCBhZGQgIl9tIiBzdWZmaXgNCisgICAgICAgZm9yIHZvcF9tIEMr KyBvdmVybG9hZGVkIEFQSS4gICovDQorICAgIGlmIChvdmVybG9hZGVkX3Ag JiYgaW5zdGFuY2UucHJlZCA9PSBQUkVEX1RZUEVfbSkNCisgICAgICByZXR1 cm4gYi5maW5pc2hfbmFtZSAoKTsNCisgICAgYi5hcHBlbmRfbmFtZSAocHJl ZGljYXRpb25fc3VmZml4ZXNbaW5zdGFuY2UucHJlZF0pOw0KKyAgICByZXR1 cm4gYi5maW5pc2hfbmFtZSAoKTsNCisgIH0NCit9Ow0KKw0KLyogYWx1X2Rl ZiBjbGFzcy4gICovDQpzdHJ1Y3QgYWx1X2RlZiA6IHB1YmxpYyBidWlsZF9i YXNlDQp7DQpAQCAtNjMyLDYgKzc3MiwyMyBAQCBzdHJ1Y3QgcmVkdWNfYWx1 X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlDQogIH0NCn07DQorLyogdGhfZXh0 cmFjdF9kZWYgY2xhc3MuICAqLw0KK3N0cnVjdCB0aF9leHRyYWN0X2RlZiA6 IHB1YmxpYyBidWlsZF9iYXNlDQorew0KKyAgY2hhciAqZ2V0X25hbWUgKGZ1 bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZp bnN0YW5jZSwNCisgICAgICBib29sIG92ZXJsb2FkZWRfcCkgY29uc3Qgb3Zl cnJpZGUNCisgIHsNCisgICAgYi5hcHBlbmRfbmFtZSAoIl9fcmlzY3ZfdGhf Iik7DQorICAgIGIuYXBwZW5kX25hbWUgKGluc3RhbmNlLmJhc2VfbmFtZSk7 DQorDQorICAgIGlmIChvdmVybG9hZGVkX3ApDQorICAgICAgcmV0dXJuIGIu ZmluaXNoX25hbWUgKCk7DQorICAgIGIuYXBwZW5kX25hbWUgKHR5cGVfc3Vm Zml4ZXNbaW5zdGFuY2UudHlwZS5pbmRleF0udmVjdG9yKTsNCisgICAgYi5h cHBlbmRfbmFtZSAodHlwZV9zdWZmaXhlc1tpbnN0YW5jZS50eXBlLmluZGV4 XS5zY2FsYXIpOw0KKyAgICByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsNCisg IH0NCit9Ow0KKw0KLyogc2NhbGFyX21vdmVfZGVmIGNsYXNzLiAgKi8NCnN0 cnVjdCBzY2FsYXJfbW92ZV9kZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQ0Kew0K QEAgLTEwOTQsNiArMTI1MSw4IEBAIFNIQVBFKHZzZXR2bCwgdnNldHZsKQ0K U0hBUEUodnNldHZsLCB2c2V0dmxtYXgpDQpTSEFQRShsb2Fkc3RvcmUsIGxv YWRzdG9yZSkNClNIQVBFKGluZGV4ZWRfbG9hZHN0b3JlLCBpbmRleGVkX2xv YWRzdG9yZSkNCitTSEFQRSh0aF9sb2Fkc3RvcmVfd2lkdGgsIHRoX2xvYWRz dG9yZV93aWR0aCkNCitTSEFQRSh0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0 aCwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgpDQpTSEFQRShhbHUsIGFs dSkNClNIQVBFKGFsdV9mcm0sIGFsdV9mcm0pDQpTSEFQRSh3aWRlbl9hbHUs IHdpZGVuX2FsdSkNCkBAIC0xMTA2LDYgKzEyNjUsNyBAQCBTSEFQRShtb3Zl LCBtb3ZlKQ0KU0hBUEUobWFza19hbHUsIG1hc2tfYWx1KQ0KU0hBUEUocmVk dWNfYWx1LCByZWR1Y19hbHUpDQpTSEFQRShyZWR1Y19hbHVfZnJtLCByZWR1 Y19hbHVfZnJtKQ0KK1NIQVBFKHRoX2V4dHJhY3QsIHRoX2V4dHJhY3QpDQpT SEFQRShzY2FsYXJfbW92ZSwgc2NhbGFyX21vdmUpDQpTSEFQRSh2dW5kZWZp bmVkLCB2dW5kZWZpbmVkKQ0KU0hBUEUobWlzYywgbWlzYykNCmRpZmYgLS1n aXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1z aGFwZXMuaCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLXNoYXBlcy5oDQppbmRleCBhYzJhMjhjZTAxNy4uYTc2MjRkMGZhYmQg MTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy1zaGFwZXMuaA0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmgNCkBAIC0yOCw2ICsyOCw4IEBA IGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnNldHZsOw0K ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB2c2V0dmxtYXg7 DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGxvYWRzdG9y ZTsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgaW5kZXhl ZF9sb2Fkc3RvcmU7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpj b25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX3NoYXBlICpjb25zdCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aDsN CmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgYWx1Ow0KZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBhbHVfZnJtOw0KZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB3aWRlbl9hbHU7DQpA QCAtNDEsNiArNDMsNyBAQCBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUg KmNvbnN0IG1hc2tfYWx1Ow0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBl ICpjb25zdCByZWR1Y19hbHU7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hh cGUgKmNvbnN0IHJlZHVjX2FsdV9mcm07DQpleHRlcm4gY29uc3QgZnVuY3Rp b25fc2hhcGUgKmNvbnN0IHNjYWxhcl9tb3ZlOw0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9zaGFwZSAqY29uc3QgdGhfZXh0cmFjdDsNCmV4dGVybiBjb25z dCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnVuZGVmaW5lZDsNCmV4dGVybiBj b25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgbWlzYzsNCmV4dGVybiBjb25z dCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnNldDsNCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYyBiL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjDQppbmRl eCAyNWUwYjZlNTZkZS4uNDRiOWZlYzE4OTggMTAwNjQ0DQotLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYw0KKysrIGIv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MNCkBA IC05MzQsNiArOTM0LDMyIEBAIHN0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2 X2FyZ190eXBlX2luZm8gZXh0X3ZjcmVhdGVfYXJnc1tdDQogID0ge3J2dl9h cmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLA0KICAgICAgcnZ2X2Fy Z190eXBlX2luZm9fZW5kfTsNCisvKiBBIGxpc3Qgb2YgYXJncyBmb3IgdmVj dG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwgc2l6ZV90KQ0K KyAqIGZ1bmN0aW9uLiAgKi8NCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2 dl9hcmdfdHlwZV9pbmZvIHNjYWxhcl9jb25zdF9wdHJfc2l6ZV9hcmdzW10N CisgID0ge3J2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zY2FsYXJfY29u c3RfcHRyKSwNCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9z aXplKSwgcnZ2X2FyZ190eXBlX2luZm9fZW5kfTsNCisNCisvKiBBIGxpc3Qg b2YgYXJncyBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5 cGUgKiwgZWV3OF9pbmRleF90eXBlKQ0KKyAqIGZ1bmN0aW9uLiAgKi8NCitz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZvIHNjYWxh cl9jb25zdF9wdHJfaW5kZXhfYXJnc1tdDQorICA9IHtydnZfYXJnX3R5cGVf aW5mbyAoUlZWX0JBU0Vfc2NhbGFyX2NvbnN0X3B0ciksDQorICAgICBydnZf YXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdW5zaWduZWRfdmVjdG9yKSwgcnZ2 X2FyZ190eXBlX2luZm9fZW5kfTsNCisNCisvKiBBIGxpc3Qgb2YgYXJncyBm b3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBlZXc4X2luZGV4X3R5cGUs IHZlY3Rvcl90eXBlKQ0KKyAqIGZ1bmN0aW9uLiAgKi8NCitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZvIHNjYWxhcl9wdHJfaW5k ZXhfYXJnc1tdDQorICA9IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vf c2NhbGFyX3B0ciksDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JB U0VfdW5zaWduZWRfdmVjdG9yKSwNCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZv IChSVlZfQkFTRV92ZWN0b3IpLCBydnZfYXJnX3R5cGVfaW5mb19lbmR9Ow0K Kw0KKy8qIEEgbGlzdCBvZiBhcmdzIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90 eXBlICosIHNpemVfdCwgdmVjdG9yX3R5cGUpDQorICogZnVuY3Rpb24uICAq Lw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8g c2NhbGFyX3B0cl9zaXplX2FyZ3NbXQ0KKyAgPSB7cnZ2X2FyZ190eXBlX2lu Zm8gKFJWVl9CQVNFX3NjYWxhcl9wdHIpLA0KKyAgICAgcnZ2X2FyZ190eXBl X2luZm8gKFJWVl9CQVNFX3NpemUpLCBydnZfYXJnX3R5cGVfaW5mbyAoUlZW X0JBU0VfdmVjdG9yKSwNCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07 DQorDQovKiBBIGxpc3Qgb2Ygbm9uZSBwcmVkcyB0aGF0IHdpbGwgYmUgcmVn aXN0ZXJlZCBmb3IgaW50cmluc2ljIGZ1bmN0aW9ucy4gICovDQpzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHByZWRpY2F0aW9uX3R5cGVfaW5kZXggbm9uZV9w cmVkc1tdDQogID0ge1BSRURfVFlQRV9ub25lLCBOVU1fUFJFRF9UWVBFU307 DQpAQCAtMTQ1NSw2ICsxNDgxLDE0IEBAIHN0YXRpYyBDT05TVEVYUFIgY29u c3QgcnZ2X29wX2luZm8gaXVfc2hpZnRfdnZ2X29wcw0KICAgICAgcnZ2X2Fy Z190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBl ICovDQogICAgICBzaGlmdF92dl9hcmdzIC8qIEFyZ3MgKi99Ow0KKy8qIEEg c3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHNjYWxhcl90eXBlIGZ1 bmMgKHZlY3Rvcl90eXBlLCBzaXplX3QpDQorICogZnVuY3Rpb24gcmVnaXN0 cmF0aW9uLiAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2lu Zm8gaXVfeF9zX3Vfb3BzDQorICA9IHtpdV9vcHMsICAgICAgICAgIC8qIFR5 cGVzICovDQorICAgICBPUF9UWVBFX3Z4LCAgICAgICAgLyogU3VmZml4ICov DQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyKSwg LyogUmV0dXJuIHR5cGUgKi8NCisgICAgIHZfc2l6ZV9hcmdzIC8qIEFyZ3Mg Ki99Ow0KKw0KLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Ig dmVjdG9yX3R5cGUgZnVuYyAodmVjdG9yX3R5cGUsIHNpemVfdCkNCiAgKiBm dW5jdGlvbiByZWdpc3RyYXRpb24uICovDQpzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHJ2dl9vcF9pbmZvIGl1X3NoaWZ0X3Z2eF9vcHMNCkBAIC0yNjM4LDYg KzI2NzIsMzggQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5m byBhbGxfdl92Y3JlYXRlX2xtdWw0X3gyX29wcw0KICAgICAgcnZ2X2FyZ190 eXBlX2luZm8gKFJWVl9CQVNFX3ZsbXVsX2V4dF94MiksIC8qIFJldHVybiB0 eXBlICovDQogICAgICBleHRfdmNyZWF0ZV9hcmdzIC8qIEFyZ3MgKi99Ow0K Ky8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90 eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosDQorICogc2l6ZV90KSBm dW5jdGlvbiByZWdpc3RyYXRpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgcnZ2X29wX2luZm8gYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXpl X29wcw0KKyAgPSB7YWxsX29wcywgICAgICAvKiBUeXBlcyAgKi8NCisgICAg IE9QX1RZUEVfdiwgICAgICAvKiBTdWZmaXggICovDQorICAgICBydnZfYXJn X3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUg ICovDQorICAgICBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJncyAvKiBBcmdz ICovfTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZv ciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIHNpemVfdCwNCisgKiB2ZWN0 b3JfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAgKi8NCitzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3NjYWxhcl9wdHJf c2l6ZV9vcHMNCisgID0ge2FsbF9vcHMsICAgIC8qIFR5cGVzICAqLw0KKyAg ICAgT1BfVFlQRV92LCAgICAvKiBTdWZmaXggICovDQorICAgICBydnZfYXJn X3R5cGVfaW5mbyAoUlZWX0JBU0Vfdm9pZCksIC8qIFJldHVybiB0eXBlICAq Lw0KKyAgICAgc2NhbGFyX3B0cl9zaXplX2FyZ3MgLyogQXJncyAqL307DQor DQorLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9y X3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwNCisgKiBpbmRleF90 eXBlKSBmdW5jdGlvbiByZWdpc3RyYXRpb24uICAqLw0KK3N0YXRpYyBDT05T VEVYUFIgY29uc3QgcnZ2X29wX2luZm8gYWxsX3Zfc2NhbGFyX2NvbnN0X3B0 cl9pbmRleF9vcHMNCisgID0ge2FsbF9vcHMsICAgICAgLyogVHlwZXMgICov DQorICAgICBPUF9UWVBFX3YsICAgICAgLyogU3VmZml4ICAqLw0KKyAgICAg cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVy biB0eXBlICAqLw0KKyAgICAgc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9hcmdz IC8qIEFyZ3MgKi99Ow0KKw0KKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3Jt YXRpb24gZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwgaW5kZXhfdHlw ZSwNCisgKiB2ZWN0b3JfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAg Ki8NCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92 X3NjYWxhcl9wdHJfaW5kZXhfb3BzDQorICA9IHthbGxfb3BzLCAgICAvKiBU eXBlcyAgKi8NCisgICAgIE9QX1RZUEVfdiwgICAgLyogU3VmZml4ICAqLw0K KyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBS ZXR1cm4gdHlwZSAgKi8NCisgICAgIHNjYWxhcl9wdHJfaW5kZXhfYXJncyAv KiBBcmdzICovfTsNCisNCi8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRp b24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKHZlY3Rvcl90eXBlKS4NCiAgICBT b21lIGlucyBqdXN0IHN1cHBvcnRzIFNFVz0zMiwgc3VjaCBhcyBjcnlwdG8g dmVjdG9sIFp2a2cgZXh0ZW5zaW9uLg0KICAqIGZ1bmN0aW9uIHJlZ2lzdHJh dGlvbi4gICovDQpAQCAtMjgxNiw2ICsyODgyLDEwIEBAIHN0YXRpYyBmdW5j dGlvbl9ncm91cF9pbmZvIGZ1bmN0aW9uX2dyb3Vwc1tdID0gew0KI2RlZmlu ZSBERUZfUlZWX0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQUkVEUywgT1BTX0lO Rk8pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgeyNOQU1FLCAmYmFz ZXM6Ok5BTUUsICZzaGFwZXM6OlNIQVBFLCBQUkVEUywgT1BTX0lORk8sIFJF UVVJUkVEX0VYVEVOU0lPTlN9LA0KI2luY2x1ZGUgInJpc2N2LXZlY3Rvci1i dWlsdGlucy1mdW5jdGlvbnMuZGVmIg0KKyN1bmRlZiBERUZfUlZWX0ZVTkNU SU9ODQorI2RlZmluZSBERUZfUlZWX0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQ UkVEUywgT1BTX0lORk8pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg IHsjTkFNRSwgJmJhc2VzOjpOQU1FLCAmc2hhcGVzOjpTSEFQRSwgUFJFRFMs IE9QU19JTkZPLCBSRVFVSVJFRF9FWFRFTlNJT05TfSwNCisjaW5jbHVkZSAi dGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYiDQp9Ow0KLyog VGhlIFJWViB0eXBlcywgd2l0aCB0aGVpciBidWlsdC1pbg0KZGlmZiAtLWdp dCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmgg Yi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQpp bmRleCA1NGM4ODI0ZmY5Mi4uYThlZTM5YTNjYjIgMTAwNjQ0DQotLS0gYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQorKysg Yi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQpA QCAtMTE0LDYgKzExNCw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQg Q1BfV1JJVEVfQ1NSID0gMVUgPDwgNTsNCmVudW0gcmVxdWlyZWRfZXh0DQp7 DQogIFZFQ1RPUl9FWFQsICAgLyogVmVjdG9yIGV4dGVuc2lvbiAqLw0KKyAg WFRIRUFEVkVDVE9SX0VYVCwgICAvKiBYVGhlYWRWZWN0b3IgZXh0ZW5zaW9u ICovDQogIFpWQkJfRVhULCAgICAvKiBDcnl0byB2ZWN0b3IgWnZiYiBzdWIt ZXh0ICovDQogIFpWQkJfT1JfWlZLQl9FWFQsIC8qIENyeXRvIHZlY3RvciBa dmJiIG9yIHp2a2Igc3ViLWV4dCAqLw0KICBaVkJDX0VYVCwgICAgLyogQ3J5 cHRvIHZlY3RvciBadmJjIHN1Yi1leHQgKi8NCkBAIC0yMzQsNiArMjM1LDgg QEAgc3RydWN0IGZ1bmN0aW9uX2dyb3VwX2luZm8NCiAgICB7DQogICAgICBj YXNlIFZFQ1RPUl9FWFQ6DQogICAgICAgIHJldHVybiBUQVJHRVRfVkVDVE9S Ow0KKyAgICAgIGNhc2UgWFRIRUFEVkVDVE9SX0VYVDoNCisgcmV0dXJuIFRB UkdFVF9YVEhFQURWRUNUT1I7DQogICAgICBjYXNlIFpWQkJfRVhUOg0KICAg ICAgICByZXR1cm4gVEFSR0VUX1pWQkI7DQogICAgICBjYXNlIFpWQkJfT1Jf WlZLQl9FWFQ6DQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi90LXJp c2N2IGIvZ2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2DQppbmRleCAzMmRlNmI4 NTFjMS4uMzg0OTQzMjBkOGIgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jp c2N2L3QtcmlzY3YNCisrKyBiL2djYy9jb25maWcvcmlzY3YvdC1yaXNjdg0K QEAgLTEsNiArMSw3IEBADQpSSVNDVl9CVUlMVElOU19IID0gJChzcmNkaXIp L2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaCBcDQogICAg ICAkKHNyY2RpcikvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy5kZWYgXA0KICAgICAgJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiBcDQorICAgICAgICQoc3Jj ZGlyKS9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0 aW9ucy5kZWYgXA0KICAgICAgcmlzY3YtdmVjdG9yLXR5cGUtaW5kZXhlci5n ZW4uZGVmDQpyaXNjdi1idWlsdGlucy5vOiAkKHNyY2RpcikvY29uZmlnL3Jp c2N2L3Jpc2N2LWJ1aWx0aW5zLmNjICQoQ09ORklHX0gpIFwNCmRpZmYgLS1n aXQgYS9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1m dW5jdGlvbnMuZGVmIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3It YnVpbHRpbnMtZnVuY3Rpb25zLmRlZg0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAwMDAwLi5mZDNiYTI5YmFlOQ0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRp bnMtZnVuY3Rpb25zLmRlZg0KQEAgLTAsMCArMSwzOSBAQA0KKyNpZm5kZWYg REVGX1JWVl9GVU5DVElPTg0KKyNkZWZpbmUgREVGX1JWVl9GVU5DVElPTihO QU1FLCBTSEFQRSwgUFJFRFMsIE9QU19JTkZPKQ0KKyNlbmRpZg0KKw0KKyNk ZWZpbmUgUkVRVUlSRURfRVhURU5TSU9OUyBYVEhFQURWRUNUT1JfRVhUDQor REVGX1JWVl9GVU5DVElPTiAodmxiLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1 bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQ0KK0RFRl9S VlZfRlVOQ1RJT04gKHZsaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3By ZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykNCitERUZfUlZWX0ZV TkNUSU9OICh2bHcsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywg YWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpDQorREVGX1JWVl9GVU5DVElP TiAodmxidSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxf dl9zY2FsYXJfY29uc3RfcHRyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2 bGh1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3Nj YWxhcl9jb25zdF9wdHJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsd3Us IHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFy X2NvbnN0X3B0cl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnNiLCB0aF9s b2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0 cl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnNoLCB0aF9sb2Fkc3RvcmVf d2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9vcHMpDQor REVGX1JWVl9GVU5DVElPTiAodnN3LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5v bmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9vcHMpDQorREVGX1JWVl9G VU5DVElPTiAodmxzYiwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRz LCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQ0KK0RFRl9SVlZf RlVOQ1RJT04gKHZsc2gsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVk cywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykNCitERUZfUlZW X0ZVTkNUSU9OICh2bHN3LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJl ZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMpDQorREVGX1JW Vl9GVU5DVElPTiAodmxzYnUsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9w cmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2bHNodSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxs X3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQ0KK0RF Rl9SVlZfRlVOQ1RJT04gKHZsc3d1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1 bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMpDQor REVGX1JWVl9GVU5DVElPTiAodnNzYiwgdGhfbG9hZHN0b3JlX3dpZHRoLCBu b25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMpDQorREVG X1JWVl9GVU5DVElPTiAodnNzaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25l X21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMpDQorREVGX1JW Vl9GVU5DVElPTiAodnNzdywgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21f cHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMpDQorREVGX1JWVl9G VU5DVElPTiAodmx4YiwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1 bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQ0K K0RFRl9SVlZfRlVOQ1RJT04gKHZseGgsIHRoX2luZGV4ZWRfbG9hZHN0b3Jl X3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2lu ZGV4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHh3LCB0aF9pbmRleGVk X2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2Nv bnN0X3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmx4YnUs IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxf dl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNU SU9OICh2bHhodSwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxf cHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQ0KK0RF Rl9SVlZfRlVOQ1RJT04gKHZseHd1LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93 aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRl eF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnN4YiwgdGhfaW5kZXhlZF9s b2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0 cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnN4aCwgdGhfaW5k ZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2Nh bGFyX3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnN4dywg dGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxs X3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAo dnN1eGIsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJl ZHMsIGFsbF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZfRlVO Q1RJT04gKHZzdXhoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9u ZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2c3V4dywgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lk dGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMp DQorREVGX1JWVl9GVU5DVElPTiAodmV4dF94X3YsIHRoX2V4dHJhY3QsIG5v bmVfcHJlZHMsIGl1X3hfc191X29wcykNCisjdW5kZWYgUkVRVUlSRURfRVhU RU5TSU9OUw0KKw0KKyN1bmRlZiBERUZfUlZWX0ZVTkNUSU9ODQpkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQgYi9nY2Mv Y29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZA0KaW5kZXggNjk2YjgxNTI1 MmQuLjBmMzcwMGQ5MjY5IDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNj di90aGVhZC12ZWN0b3IubWQNCisrKyBiL2djYy9jb25maWcvcmlzY3YvdGhl YWQtdmVjdG9yLm1kDQpAQCAtMSw3ICsxLDk1IEBADQooZGVmaW5lX2NfZW51 bSAidW5zcGVjIiBbDQorICBVTlNQRUNfVEhfVkxCDQorICBVTlNQRUNfVEhf VkxCVQ0KKyAgVU5TUEVDX1RIX1ZMSA0KKyAgVU5TUEVDX1RIX1ZMSFUNCisg IFVOU1BFQ19USF9WTFcNCisgIFVOU1BFQ19USF9WTFdVDQorDQorICBVTlNQ RUNfVEhfVkxTQg0KKyAgVU5TUEVDX1RIX1ZMU0JVDQorICBVTlNQRUNfVEhf VkxTSA0KKyAgVU5TUEVDX1RIX1ZMU0hVDQorICBVTlNQRUNfVEhfVkxTVw0K KyAgVU5TUEVDX1RIX1ZMU1dVDQorDQorICBVTlNQRUNfVEhfVkxYQg0KKyAg VU5TUEVDX1RIX1ZMWEJVDQorICBVTlNQRUNfVEhfVkxYSA0KKyAgVU5TUEVD X1RIX1ZMWEhVDQorICBVTlNQRUNfVEhfVkxYVw0KKyAgVU5TUEVDX1RIX1ZM WFdVDQorDQorICBVTlNQRUNfVEhfVlNVWEINCisgIFVOU1BFQ19USF9WU1VY SA0KKyAgVU5TUEVDX1RIX1ZTVVhXDQorDQogIFVOU1BFQ19USF9WV0xEU1QN Cl0pDQorKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZMTUVNX09Q IFsNCisgIFVOU1BFQ19USF9WTEIgVU5TUEVDX1RIX1ZMQlUNCisgIFVOU1BF Q19USF9WTEggVU5TUEVDX1RIX1ZMSFUNCisgIFVOU1BFQ19USF9WTFcgVU5T UEVDX1RIX1ZMV1UNCitdKQ0KKw0KKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVO U1BFQ19USF9WTFNNRU1fT1AgWw0KKyAgVU5TUEVDX1RIX1ZMU0IgVU5TUEVD X1RIX1ZMU0JVDQorICBVTlNQRUNfVEhfVkxTSCBVTlNQRUNfVEhfVkxTSFUN CisgIFVOU1BFQ19USF9WTFNXIFVOU1BFQ19USF9WTFNXVQ0KK10pDQorDQor KGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZMWE1FTV9PUCBbDQor ICBVTlNQRUNfVEhfVkxYQiBVTlNQRUNfVEhfVkxYQlUNCisgIFVOU1BFQ19U SF9WTFhIIFVOU1BFQ19USF9WTFhIVQ0KKyAgVU5TUEVDX1RIX1ZMWFcgVU5T UEVDX1RIX1ZMWFdVDQorXSkNCisNCisoZGVmaW5lX2ludF9hdHRyIHZsbWVt X29wX2F0dHIgWw0KKyAgKFVOU1BFQ19USF9WTEIgImIiKSAoVU5TUEVDX1RI X1ZMQlUgImJ1IikNCisgIChVTlNQRUNfVEhfVkxIICJoIikgKFVOU1BFQ19U SF9WTEhVICJodSIpDQorICAoVU5TUEVDX1RIX1ZMVyAidyIpIChVTlNQRUNf VEhfVkxXVSAid3UiKQ0KKyAgKFVOU1BFQ19USF9WTFNCICJiIikgKFVOU1BF Q19USF9WTFNCVSAiYnUiKQ0KKyAgKFVOU1BFQ19USF9WTFNIICJoIikgKFVO U1BFQ19USF9WTFNIVSAiaHUiKQ0KKyAgKFVOU1BFQ19USF9WTFNXICJ3Iikg KFVOU1BFQ19USF9WTFNXVSAid3UiKQ0KKyAgKFVOU1BFQ19USF9WTFhCICJi IikgKFVOU1BFQ19USF9WTFhCVSAiYnUiKQ0KKyAgKFVOU1BFQ19USF9WTFhI ICJoIikgKFVOU1BFQ19USF9WTFhIVSAiaHUiKQ0KKyAgKFVOU1BFQ19USF9W TFhXICJ3IikgKFVOU1BFQ19USF9WTFhXVSAid3UiKQ0KKyAgKFVOU1BFQ19U SF9WU1VYQiAiYiIpDQorICAoVU5TUEVDX1RIX1ZTVVhIICJoIikNCisgIChV TlNQRUNfVEhfVlNVWFcgInciKQ0KK10pDQorDQorKGRlZmluZV9pbnRfYXR0 ciB2bG1lbV9vcmRlcl9hdHRyIFsNCisgIChVTlNQRUNfVEhfVkxYQiAiIikN CisgIChVTlNQRUNfVEhfVkxYSCAiIikNCisgIChVTlNQRUNfVEhfVkxYVyAi IikNCisgIChVTlNQRUNfVEhfVlNVWEIgInUiKQ0KKyAgKFVOU1BFQ19USF9W U1VYSCAidSIpDQorICAoVU5TUEVDX1RIX1ZTVVhXICJ1IikNCitdKQ0KKw0K KyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WU01FTV9PUCBbDQor ICBVTlNQRUNfVEhfVkxCDQorICBVTlNQRUNfVEhfVkxIDQorICBVTlNQRUNf VEhfVkxXDQorXSkNCisNCisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNf VEhfVlNTTUVNX09QIFsNCisgIFVOU1BFQ19USF9WTFNCDQorICBVTlNQRUNf VEhfVkxTSA0KKyAgVU5TUEVDX1RIX1ZMU1cNCitdKQ0KKw0KKyhkZWZpbmVf aW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WU1hNRU1fT1AgWw0KKyAgVU5TUEVD X1RIX1ZMWEINCisgIFVOU1BFQ19USF9WTFhIDQorICBVTlNQRUNfVEhfVkxY Vw0KKyAgVU5TUEVDX1RIX1ZTVVhCDQorICBVTlNQRUNfVEhfVlNVWEgNCisg IFVOU1BFQ19USF9WU1VYVw0KK10pDQorDQooZGVmaW5lX21vZGVfaXRlcmF0 b3IgVl9WTFNfVlQgW1YgVkxTIFZUXSkNCihkZWZpbmVfbW9kZV9pdGVyYXRv ciBWX1ZCX1ZMU19WVCBbViBWQiBWTFMgVlRdKQ0KQEAgLTEwMCwzICsxODgs MTY4IEBADQogIH0NCiAgWyhzZXRfYXR0ciAidHlwZSIgInZsZG0sdnN0bSx2 bWFsdSx2bWFsdSx2bWFsdSIpDQogICAgKHNldF9hdHRyICJtb2RlIiAiPE1P REU+IildKQ0KKw0KKyhkZWZpbmVfZXhwYW5kICJAcHJlZF9tb3Zfd2lkdGg8 dmxtZW1fb3BfYXR0cj48bW9kZT4iDQorICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpWX1ZMUyAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIpDQorICAgIChpZl90 aGVuX2Vsc2U6Vl9WTFMNCisgICAgICAodW5zcGVjOjxWTT4NCisgWyhtYXRj aF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIpDQorICAo bWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQiKQ0KKyAg KG1hdGNoX29wZXJhbmQgNSAiY29uc3RfaW50X29wZXJhbmQiKQ0KKyAgKG1h dGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJhbmQiKQ0KKyAgKG1hdGNo X29wZXJhbmQgNyAiY29uc3RfaW50X29wZXJhbmQiKQ0KKyAgKHJlZzpTSSBW TF9SRUdOVU0pDQorICAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19U SF9WTE1FTV9PUCkNCisgICAgICAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAzICJ2 ZWN0b3JfbW92ZV9vcGVyYW5kIikNCisgICAgICAobWF0Y2hfb3BlcmFuZDpW X1ZMUyAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIpKSldDQorICAiVEFSR0VU X1hUSEVBRFZFQ1RPUiINCisgIHt9KQ0KKw0KKyhkZWZpbmVfaW5zbl9hbmRf c3BsaXQgIipwcmVkX21vdl93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIN CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZfVkxTIDAgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAgICAgIj12ciwgICAgdnIsICAgIHZkLCAgICAgbSwgICAg dnIsICAgIHZyIikNCisgICAgKGlmX3RoZW5fZWxzZTpWX1ZMUw0KKyAgICAg ICh1bnNwZWM6PFZNPg0KKyBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0 b3JfbWFza19vcGVyYW5kIiAgICAidm1XYzEsICAgV2MxLCAgICB2bSwgdm1X YzEsICAgV2MxLCAgIFdjMSIpDQorICAobWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0 b3JfbGVuZ3RoX29wZXJhbmQiICAgICAgICIgICBySywgICAgckssICAgIHJL LCAgICBySywgICAgckssICAgIHJLIikNCisgIChtYXRjaF9vcGVyYW5kIDUg ImNvbnN0X2ludF9vcGVyYW5kIiAgICAiICAgIGksICAgICBpLCAgICAgaSwg ICAgIGksICAgICBpLCAgICAgaSIpDQorICAobWF0Y2hfb3BlcmFuZCA2ICJj b25zdF9pbnRfb3BlcmFuZCIgICAgIiAgICBpLCAgICAgaSwgICAgIGksICAg ICBpLCAgICAgaSwgICAgIGkiKQ0KKyAgKG1hdGNoX29wZXJhbmQgNyAiY29u c3RfaW50X29wZXJhbmQiICAgICIgICAgaSwgICAgIGksICAgICBpLCAgICAg aSwgICAgIGksICAgICBpIikNCisgIChyZWc6U0kgVkxfUkVHTlVNKQ0KKyAg KHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhfVkxNRU1fT1ApDQor ICAgICAgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMyAicmVnX29yX21lbV9vcGVy YW5kIiAgICAgICAiICAgIG0sICAgICBtLCAgICAgbSwgICAgdnIsICAgIHZy LCAgICB2ciIpDQorICAgICAgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMiAidmVj dG9yX21lcmdlX29wZXJhbmQiICAgICAiICAgIDAsICAgIHZ1LCAgICB2dSwg ICAgdnUsICAgIHZ1LCAgICAgMCIpKSldDQorICAiKFRBUkdFVF9YVEhFQURW RUNUT1INCisgICAgJiYgKHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzBd LCA8TU9ERT5tb2RlKQ0KKyB8fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5k c1szXSwgPE1PREU+bW9kZSkpKSINCisgICJADQorICAgdmw8dmxtZW1fb3Bf YXR0cj4udlx0JTAsJTMlcDENCisgICB2bDx2bG1lbV9vcF9hdHRyPi52XHQl MCwlMw0KKyAgIHZsPHZsbWVtX29wX2F0dHI+LnZcdCUwLCUzLCUxLnQNCisg ICB2czx2bG1lbV9vcF9hdHRyPi52XHQlMywlMCVwMQ0KKyAgIHZtdi52LnZc dCUwLCUzDQorICAgdm12LnYudlx0JTAsJTMiDQorICAiJiYgcmVnaXN0ZXJf b3BlcmFuZCAob3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpDQorICAgJiYgcmVn aXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbM10sIDxNT0RFPm1vZGUpDQorICAg JiYgc2F0aXNmaWVzX2NvbnN0cmFpbnRfdnUgKG9wZXJhbmRzWzJdKQ0KKyAg ICYmIElOVFZBTCAob3BlcmFuZHNbN10pID09IHJpc2N2X3ZlY3Rvcjo6VkxN QVgiDQorICBbKHNldCAobWF0Y2hfZHVwIDApIChtYXRjaF9kdXAgMykpXQ0K KyAgIiINCisgIFsoc2V0X2F0dHIgInR5cGUiICJ2bGRlLHZsZGUsdmxkZSx2 c3RlLHZpbW92LHZpbW92IikNCisgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9E RT4iKV0pDQorDQorKGRlZmluZV9pbnNuICJAcHJlZF9zdG9yZV93aWR0aDx2 bG1lbV9vcF9hdHRyPjxtb2RlPiINCisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlZJIDAgIm1lbW9yeV9vcGVyYW5kIiAgICIrbSIpDQorIChpZl90aGVuX2Vs c2U6VkkNCisgICAodW5zcGVjOjxWTT4NCisgICAgIFsobWF0Y2hfb3BlcmFu ZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2bVdjMSIpDQorICAg ICAgKG1hdGNoX29wZXJhbmQgMyAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiAg ICAiICAgcksiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDQgImNvbnN0X2lu dF9vcGVyYW5kIiAiICAgIGkiKQ0KKyAgICAgIChyZWc6U0kgVkxfUkVHTlVN KQ0KKyAgICAgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZT TUVNX09QKQ0KKyAgIChtYXRjaF9vcGVyYW5kOlZJIDIgInJlZ2lzdGVyX29w ZXJhbmQiICAiICAgIHZyIikNCisgICAobWF0Y2hfZHVwIDApKSldDQorICAi VEFSR0VUX1hUSEVBRFZFQ1RPUiINCisgICJ2czx2bG1lbV9vcF9hdHRyPi52 XHQlMiwlMCVwMSINCisgIFsoc2V0X2F0dHIgInR5cGUiICJ2c3RlIikNCisg ICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKQ0KKyAgIChzZXQgKGF0dHIg ImF2bF90eXBlX2lkeCIpIChjb25zdF9pbnQgNCkpDQorICAgKHNldF9hdHRy ICJ2bF9vcF9pZHgiICIzIildKQ0KKw0KKyhkZWZpbmVfaW5zbiAiQHByZWRf c3RyaWRlZF9sb2FkX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+Ig0KKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAicmVnaXN0ZXJfb3BlcmFuZCIg ICAgICAgIj12ciwgICAgdnIsICAgIHZkIikNCisgKGlmX3RoZW5fZWxzZTpW SQ0KKyAgICh1bnNwZWM6PFZNPg0KKyAgICAgWyhtYXRjaF9vcGVyYW5kOjxW TT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2MxLCAgIFdjMSwgICAg dm0iKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDUgInZlY3Rvcl9sZW5ndGhf b3BlcmFuZCIgICAgIiAgIHJLLCAgICBySywgICAgcksiKQ0KKyAgICAgICht YXRjaF9vcGVyYW5kIDYgImNvbnN0X2ludF9vcGVyYW5kIiAiICAgIGksICAg ICBpLCAgICAgaSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNyAiY29uc3Rf aW50X29wZXJhbmQiICIgICAgaSwgICAgIGksICAgICBpIikNCisgICAgICAo bWF0Y2hfb3BlcmFuZCA4ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgICBpLCAg ICAgaSwgICAgIGkiKQ0KKyAgICAgIChyZWc6U0kgVkxfUkVHTlVNKQ0KKyAg ICAgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZMU01FTV9P UCkNCisgICAodW5zcGVjOlZJDQorICAgICBbKG1hdGNoX29wZXJhbmQ6Vkkg MyAibWVtb3J5X29wZXJhbmQiICAiICAgIG0sICAgICBtLCAgICAgbSIpDQor ICAgICAgKG1hdGNoX29wZXJhbmQgNCAicG1vZGVfcmVnX29yXzBfb3BlcmFu ZCIgICAiICAgckosICAgIHJKLCAgICBySiIpXSBVTlNQRUNfVEhfVkxTTUVN X09QKQ0KKyAgIChtYXRjaF9vcGVyYW5kOlZJIDIgInZlY3Rvcl9tZXJnZV9v cGVyYW5kIiAgICAgICIgICAgMCwgICAgdnUsICAgIHZ1IikpKV0NCisgICJU QVJHRVRfWFRIRUFEVkVDVE9SIg0KKyAgInZsczx2bG1lbV9vcF9hdHRyPi52 XHQlMCwlMywlejQlcDEiDQorICBbKHNldF9hdHRyICJ0eXBlIiAidmxkcyIp DQorICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQ0KKw0KKyhkZWZp bmVfaW5zbiAiQHByZWRfc3RyaWRlZF9zdG9yZV93aWR0aDx2bG1lbV9vcF9h dHRyPjxtb2RlPiINCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJIDAgIm1l bW9yeV9vcGVyYW5kIiAgICIrbSIpDQorIChpZl90aGVuX2Vsc2U6VkkNCisg ICAodW5zcGVjOjxWTT4NCisgICAgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEg InZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2bVdjMSIpDQorICAgICAgKG1hdGNo X29wZXJhbmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiAgICAiICAgcksi KQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDUgImNvbnN0X2ludF9vcGVyYW5k IiAiICAgIGkiKQ0KKyAgICAgIChyZWc6U0kgVkxfUkVHTlVNKQ0KKyAgICAg IChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZTU01FTV9PUCkN CisgICAodW5zcGVjOlZJDQorICAgICBbKG1hdGNoX29wZXJhbmQgMiAicG1v ZGVfcmVnX29yXzBfb3BlcmFuZCIgICAiICAgckoiKQ0KKyAgICAgIChtYXRj aF9vcGVyYW5kOlZJIDMgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICIgICB2 ciIpXSBVTlNQRUNfVEhfVlNTTUVNX09QKQ0KKyAgIChtYXRjaF9kdXAgMCkp KV0NCisgICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0KKyAgInZzczx2bG1lbV9v cF9hdHRyPi52XHQlMywlMCwlejIlcDEiDQorICBbKHNldF9hdHRyICJ0eXBl IiAidnN0cyIpDQorICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IikNCisg ICAoc2V0IChhdHRyICJhdmxfdHlwZV9pZHgiKSAoY29uc3RfaW50IDUpKV0p DQorDQorKGRlZmluZV9pbnNuICJAcHJlZF9pbmRleGVkX2xvYWRfd2lkdGg8 dmxtZW1fb3BfYXR0cj48bW9kZT4iDQorICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpWSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICI9dmQsIHZyLHZkLCB2 ciIpDQorIChpZl90aGVuX2Vsc2U6VkkNCisgICAodW5zcGVjOjxWTT4NCisg ICAgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJh bmQiICAiIHZtLFdjMSx2bSxXYzEiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5k IDUgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIgICAgICIgckssIHJLLHJLLCBy SyIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJh bmQiICAiICBpLCAgaSwgaSwgIGkiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5k IDcgImNvbnN0X2ludF9vcGVyYW5kIiAgIiAgaSwgIGksIGksICBpIikNCisg ICAgICAobWF0Y2hfb3BlcmFuZCA4ICJjb25zdF9pbnRfb3BlcmFuZCIgICIg IGksICBpLCBpLCAgaSIpDQorICAgICAgKHJlZzpTSSBWTF9SRUdOVU0pDQor ICAgICAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhfVkxYTUVN X09QKQ0KKyAgICh1bnNwZWM6VkkNCisgICAgIFsobWF0Y2hfb3BlcmFuZCAz ICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIiAgICAiIHJKLCBySixySiwgckoi KQ0KKyAgICAgIChtZW06QkxLIChzY3JhdGNoKSkNCisgICAgICAobWF0Y2hf b3BlcmFuZDpWSSA0ICJyZWdpc3Rlcl9vcGVyYW5kIiAiIHZyLCB2cix2ciwg dnIiKV0gVU5TUEVDX1RIX1ZMWE1FTV9PUCkNCisgICAobWF0Y2hfb3BlcmFu ZDpWSSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgICAgICAgIiB2dSwgdnUs IDAsICAwIikpKV0NCisgICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0KKyAgInZs eDx2bG1lbV9vcF9hdHRyPi52XHQlMCwoJXozKSwlNCVwMSINCisgIFsoc2V0 X2F0dHIgInR5cGUiICJ2bGR1eCIpDQorICAgKHNldF9hdHRyICJtb2RlIiAi PE1PREU+IildKQ0KKw0KKyhkZWZpbmVfaW5zbiAiQHByZWRfaW5kZXhlZF88 dmxtZW1fb3JkZXJfYXR0cj5zdG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxt b2RlPiINCisgIFsoc2V0IChtZW06QkxLIChzY3JhdGNoKSkNCisgKHVuc3Bl YzpCTEsNCisgICBbKHVuc3BlYzo8Vk0+DQorICAgICBbKG1hdGNoX29wZXJh bmQ6PFZNPiAwICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAidm1XYzEiKQ0KKyAg ICAgIChtYXRjaF9vcGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIg ICAgIiAgIHJLIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9p bnRfb3BlcmFuZCIgIiAgICBpIikNCisgICAgICAocmVnOlNJIFZMX1JFR05V TSkNCisgICAgICAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9W U1hNRU1fT1ApDQorICAgIChtYXRjaF9vcGVyYW5kIDEgInBtb2RlX3JlZ19v cl8wX29wZXJhbmQiICAgICAgIiAgckoiKQ0KKyAgICAobWF0Y2hfb3BlcmFu ZDpWSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiICB2ciIpDQorICAgIChtYXRj aF9vcGVyYW5kOlZJIDMgInJlZ2lzdGVyX29wZXJhbmQiICAiICB2ciIpXSBV TlNQRUNfVEhfVlNYTUVNX09QKSldDQorICAiVEFSR0VUX1hUSEVBRFZFQ1RP UiINCisgICJ2czx2bG1lbV9vcmRlcl9hdHRyPng8dmxtZW1fb3BfYXR0cj4u dlx0JTMsKCV6MSksJTIlcDAiDQorICBbKHNldF9hdHRyICJ0eXBlIiAidnN0 dXgiKQ0KKyAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkNCisNCiso ZGVmaW5lX2V4cGFuZCAiQHByZWRfdGhfZXh0cmFjdDxtb2RlPiINCisgIFso c2V0IChtYXRjaF9vcGVyYW5kOjxWRUw+IDAgInJlZ2lzdGVyX29wZXJhbmQi KQ0KKyAodW5zcGVjOjxWRUw+DQorICAgWyh2ZWNfc2VsZWN0OjxWRUw+DQor ICAgICAgKG1hdGNoX29wZXJhbmQ6Vl9WTFNJIDEgInJlZ2lzdGVyX29wZXJh bmQiKQ0KKyAgICAgIChwYXJhbGxlbCBbKG1hdGNoX29wZXJhbmQ6REkgMiAi cmVnaXN0ZXJfb3BlcmFuZCIgInIiKV0pKQ0KKyAgICAocmVnOlNJIFZUWVBF X1JFR05VTSldIFVOU1BFQ19WUFJFRElDQVRFKSldDQorICAiVEFSR0VUX1hU SEVBRFZFQ1RPUiINCit7fSkNCisNCisoZGVmaW5lX2luc24gIipwcmVkX3Ro X2V4dHJhY3Q8bW9kZT4iDQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDo8VkVM PiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICI9ciIpDQorICAodW5zcGVjOjxW RUw+DQorICAgIFsodmVjX3NlbGVjdDo8VkVMPg0KKyAgICAgICAobWF0Y2hf b3BlcmFuZDpWX1ZMU0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInZyIikNCisg ICAgICAgKHBhcmFsbGVsIFsobWF0Y2hfb3BlcmFuZDpESSAyICJyZWdpc3Rl cl9vcGVyYW5kIiAiciIpXSkpDQorICAgICAocmVnOlNJIFZUWVBFX1JFR05V TSldIFVOU1BFQ19WUFJFRElDQVRFKSldDQorICAiVEFSR0VUX1hUSEVBRFZF Q1RPUiINCisgICJ2ZXh0Lngudlx0JTAsJTEsJTIiDQorICBbKHNldF9hdHRy ICJ0eXBlIiAidmltb3Z2eCIpDQorICAgKHNldF9hdHRyICJtb2RlIiAiPE1P REU+IildKQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12 c2IuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAw Li4zYzEyYzEyNDU5Nw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxiLXZz Yi5jDQpAQCAtMCwwICsxLDY4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0g Ki8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2ZWN0 b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAqLw0KKy8qIHsgZGctZmluYWwgeyBj aGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCisjaW5jbHVk ZSAicmlzY3ZfdGhfdmVjdG9yLmgiDQorDQorLyoNCisqKiBmMToNCisqKiB0 aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQ0KKyoqIHRoLnZsYlwu dlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZsYlwudlx0dlsw LTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZhZGRcLnZ2XHR2WzAtOV0r LFxzKnZbMC05XSssXHMqdlswLTldKw0KKyoqIHRoLnZhZGRcLnZ2XHR2WzAt OV0rLFxzKnZbMC05XSssXHMqdlswLTldKw0KKyoqIHRoLnZzYlwudlx0dlsw LTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMSAo dm9pZCAqIGluLCB2b2lkICpvdXQpDQorew0KKyAgICB2aW50MzJtMV90IHYg PSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xIChpbiwgNCk7DQorICAgIHZpbnQz Mm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xX3R1ICh2LCBpbiwg NCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMy bTEgKHYyLCB2MiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2 X3ZhZGRfdnZfaTMybTFfdHUgKHYzLCB2MiwgdjIsIDQpOw0KKyAgICBfX3Jp c2N2X3RoX3ZzYl92X2kzMm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoN CisqKiBmMjoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxt ZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStc KQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1hDQorKiog dGgudmxiLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudA0KKyoqIHRo LnZhZGRcLnZ2XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldKw0KKyoq IHRoLnZhZGRcLnZ2XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyp2WzAt OV0rLFxzKnYwLnQNCisqKiB0aC52c2Iudlx0dlswLTldKywwXChbYS14MC05 XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMiAodm9pZCAqIGluLCB2b2lk ICpvdXQpDQorew0KKyAgICB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90 KilpbjsNCisgICAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsNCisg ICAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGJfdl9pMzJtMSAoaW4s IDQpOw0KKyAgICB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJfdl9p MzJtMV9tIChtYXNrLCBpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBf X3Jpc2N2X3ZhZGRfdnZfaTMybTEgKHYyLCB2MiwgNCk7DQorICAgIHZpbnQz Mm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTFfbSAobWFzaywgdjMs IHYzLCA0KTsNCisgICAgX19yaXNjdl90aF92c2Jfdl9pMzJtMSAob3V0LCB2 NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjM6DQorKiogdGgudnNldHZsaVx0 W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0 LGUzMixtMSx0dSxtdQ0KKyoqIHRoLnZsYlwudlx0dlswLTldKywwXChbYS14 MC05XStcKQ0KKyoqIHRoLnZsYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp LHYwLnQNCisqKiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2WzAtOV0rLFxz KnZbMC05XSsNCisqKiB0aC52YWRkXC52dlx0dlsxLTldWzAtOV0/LFxzKnZb MC05XSssXHMqdlswLTldKyxccyp2MC50DQorKiogdGgudnNiLnZcdHZbMC05 XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjMgKHZv aWQgKiBpbiwgdm9pZCAqb3V0KQ0KK3sNCisgICAgdmJvb2wzMl90IG1hc2sg PSAqKHZib29sMzJfdCopaW47DQorICAgIGFzbSB2b2xhdGlsZSAoIiI6Ojoi bWVtb3J5Iik7DQorICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxi X3ZfaTMybTEgKGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MiA9IF9fcmlz Y3ZfdGhfdmxiX3ZfaTMybTFfdHVtdSAobWFzaywgdiwgaW4sIDQpOw0KKyAg ICB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z2X2kzMm0xICh2Miwg djIsIDQpOw0KKyAgICB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z2 X2kzMm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgdjIsIDQpOw0KKyAgICBfX3Jp c2N2X3RoX3ZzYl92X2kzMm0xIChvdXQsIHY0LCA0KTsNCit9DQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhl YWR2ZWN0b3IvdmxidS12c2IuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmMNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uMzBiZWYzNjkzNzUN Ci0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmMNCkBAIC0wLDAg KzEsNjggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGct b3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAz MmQgLU8zIiB9ICovDQorLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9u LWJvZGllcyAiKioiICIiIH0gfSAqLw0KKyNpbmNsdWRlICJyaXNjdl90aF92 ZWN0b3IuaCINCisNCisvKg0KKyoqIGYxOg0KKyoqIHRoLnZzZXRpdmxpXHR6 ZXJvLDQsZTMyLG0xLHR1LG1hDQorKiogdGgudmxidVwudlx0dlswLTldKyww XChbYS14MC05XStcKQ0KKyoqIHRoLnZsYnVcLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0r LFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSss XHMqLTE2DQorKiogdGgudnNiXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp DQorKiogcmV0DQorKi8NCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91 dCwgdWludDMyX3QgeCkNCit7DQorICAgIHZ1aW50MzJtMV90IHYgPSBfX3Jp c2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4sIDQpOw0KKyAgICB2dWludDMybTFf dCB2MiA9IF9fcmlzY3ZfdGhfdmxidV92X3UzMm0xX3R1ICh2LCBpbiwgNCk7 DQorICAgIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0x ICh2MiwgLTE2LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2 X3ZhZGRfdnhfdTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsNCisgICAgX19y aXNjdl90aF92c2Jfdl91MzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8q DQorKiogZjI6DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgs bWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQ0KKyoq IHRoLnZsYnUudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50DQorKiog dGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0 aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxz KnYwLnQNCisqKiB0aC52c2Iudlx0dlswLTldKywwXChbYS14MC05XStcKQ0K KyoqIHJldA0KKyovDQordm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQs IHVpbnQzMl90IHgpDQorew0KKyAgICB2Ym9vbDMyX3QgbWFzayA9ICoodmJv b2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnki KTsNCisgICAgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxidV92X3Uz Mm0xIChpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90 aF92bGJ1X3ZfdTMybTFfbSAobWFzaywgaW4sIDQpOw0KKyAgICB2dWludDMy bTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7 DQorICAgIHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0x X20gKG1hc2ssIHYzLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3ZzYl92 X3UzMm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBmMzoNCisq KiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWENCisq KiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZz ZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11DQorKiogdGgudmxidVwudlx0 dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZsYnUudlx0dlswLTld KywwXChbYS14MC05XStcKSx2MC50DQorKiogdGgudmFkZFwudmlcdHZbMC05 XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0aC52YWRkXC52aVx0dlsxLTld WzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQNCisqKiB0aC52c2Iu dlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9p ZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpDQorew0K KyAgICB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisgICAg YXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdnVpbnQzMm0x X3QgdiA9IF9fcmlzY3ZfdGhfdmxidV92X3UzMm0xIChpbiwgNCk7DQorICAg IHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJ1X3ZfdTMybTFfdHVt dSAobWFzaywgdiwgaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MyA9IF9f cmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZ1aW50 MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1bXUgKG1hc2ss IHYzLCB2MiwgLTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92c2Jfdl91MzJt MSAob3V0LCB2NCwgNCk7DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2gu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFk dmVjdG9yL3ZsaC12c2guYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4 IDAwMDAwMDAwMDAwLi4zYzhiNWNjYzE2Yg0KLS0tIC9kZXYvbnVsbA0KKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3IvdmxoLXZzaC5jDQpAQCAtMCwwICsxLDY4IEBADQorLyogeyBkZy1k byBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMy Z2N4dGhlYWR2ZWN0b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0g Ki8NCisjaW5jbHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgiDQorDQorLyoNCisq KiBmMToNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQ0K KyoqIHRoLnZsaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRo LnZsaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZhZGRc LnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgudmFkZFwu dmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0aC52c2hcLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQg ZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpDQorew0KKyAg ICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0xIChpbiwg NCk7DQorICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaF92X2kz Mm0xX3R1ICh2LCBpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBfX3Jp c2N2X3ZhZGRfdnhfaTMybTEgKHYyLCAtMTYsIDQpOw0KKyAgICB2aW50MzJt MV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX3R1ICh2MywgdjIsIC0x NiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnNoX3ZfaTMybTEgKG91dCwgdjQs IDQpOw0KK30NCisNCisvKg0KKyoqIGYyOg0KKyoqIHRoLnZzZXR2bGlcdFth LXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudnNldGl2bGlcdHplcm8sNCxl MzIsbTEsdGEsbWENCisqKiB0aC52bGgudlx0dlswLTldKywwXChbYS14MC05 XStcKSx2MC50DQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTld KyxccyotMTYNCisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZb MC05XSssXHMqLTE2LFxzKnYwLnQNCisqKiB0aC52c2gudlx0dlswLTldKyww XChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMiAodm9pZCAq IGluLCB2b2lkICpvdXQsIGludDMyX3QgeCkNCit7DQorICAgIHZib29sMzJf dCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUg KCIiOjo6Im1lbW9yeSIpOw0KKyAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2 X3RoX3ZsaF92X2kzMm0xIChpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjIg PSBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0xX20gKG1hc2ssIGluLCA0KTsNCisg ICAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIs IC0xNiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRf dnhfaTMybTFfbSAobWFzaywgdjMsIC0xNiwgNCk7DQorICAgIF9fcmlzY3Zf dGhfdnNoX3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisNCisvKg0KKyoq IGYzOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0 YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQor KiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUNCisqKiB0aC52 bGhcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52bGgudlx0 dlswLTldKywwXChbYS14MC05XStcKSx2MC50DQorKiogdGgudmFkZFwudmlc dHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0aC52YWRkXC52aVx0 dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQNCisqKiB0 aC52c2gudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyov DQordm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3QgeCkN Cit7DQorICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOw0K KyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAgICB2aW50 MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0xIChpbiwgNCk7DQor ICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0xX3R1 bXUgKG1hc2ssIHYsIGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MyA9IF9f cmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZpbnQz Mm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfdHVtdSAobWFzaywg djMsIHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3ZzaF92X2kzMm0x IChvdXQsIHY0LCA0KTsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2gu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFk dmVjdG9yL3ZsaHUtdnNoLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwMDAwMC4uYjdjMDA0MDRmMTgNCi0tLSAvZGV2L251bGwNCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFk dmVjdG9yL3ZsaHUtdnNoLmMNCkBAIC0wLDAgKzEsNjggQEANCisvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2 MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovDQorLyog eyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0g fSAqLw0KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCINCisNCisvKg0K KyoqIGYxOg0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1h DQorKiogdGgudmxodVwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoq IHRoLnZsaHVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52 YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZh ZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgudnNo XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2 b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkNCit7 DQorICAgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJt MSAoaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhf dmxodV92X3UzMm0xX3R1ICh2LCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90 IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisg ICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHUg KHYzLCB2MiwgLTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92c2hfdl91MzJt MSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjI6DQorKiogdGgu dnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgu dmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZs aVx0emVybyw0LGUzMixtMSx0YSxtYQ0KKyoqIHRoLnZsaHUudlx0dlswLTld KywwXChbYS14MC05XStcKSx2MC50DQorKiogdGgudmFkZFwudmlcdHZbMC05 XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0aC52YWRkXC52aVx0dlsxLTld WzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQNCisqKiB0aC52c2gu dlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9p ZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpDQorew0K KyAgICB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisgICAg YXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdnVpbnQzMm0x X3QgdiA9IF9fcmlzY3ZfdGhfdmxodV92X3UzMm0xIChpbiwgNCk7DQorICAg IHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGh1X3ZfdTMybTFfbSAo bWFzaywgaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MyA9IF9fcmlzY3Zf dmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZ1aW50MzJtMV90 IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX20gKG1hc2ssIHYzLCAtMTYs IDQpOw0KKyAgICBfX3Jpc2N2X3RoX3ZzaF92X3UzMm0xIChvdXQsIHY0LCA0 KTsNCit9DQorDQorLyoNCisqKiBmMzoNCisqKiB0aC52c2V0dmxpXHRbYS14 MC05XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlswLTld KywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMy LG0xLHR1LG11DQorKiogdGgudmxodVwudlx0dlswLTldKywwXChbYS14MC05 XStcKQ0KKyoqIHRoLnZsaHUudlx0dlswLTldKywwXChbYS14MC05XStcKSx2 MC50DQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyot MTYNCisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSss XHMqLTE2LFxzKnYwLnQNCisqKiB0aC52c2gudlx0dlswLTldKywwXChbYS14 MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMyAodm9pZCAqIGluLCB2 b2lkICpvdXQsIHVpbnQzMl90IHgpDQorew0KKyAgICB2Ym9vbDMyX3QgbWFz ayA9ICoodmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0aWxlICgiIjo6 OiJtZW1vcnkiKTsNCisgICAgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhf dmxodV92X3UzMm0xIChpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYyID0g X19yaXNjdl90aF92bGh1X3ZfdTMybTFfdHVtdSAobWFzaywgdiwgaW4sIDQp Ow0KKyAgICB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJt MSAodjIsIC0xNiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHY0ID0gX19yaXNj dl92YWRkX3Z4X3UzMm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgLTE2LCA0KTsN CisgICAgX19yaXNjdl90aF92c2hfdl91MzJtMSAob3V0LCB2NCwgNCk7DQor fQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYw0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4xN2E1 MzAxMmFjZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jDQpA QCAtMCwwICsxLDY4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisv KiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2ZWN0b3IgLW1h Ymk9aWxwMzJkIC1PMyIgfSAqLw0KKy8qIHsgZGctZmluYWwgeyBjaGVjay1m dW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCisjaW5jbHVkZSAicmlz Y3ZfdGhfdmVjdG9yLmgiDQorDQorLyoNCisqKiBmMToNCisqKiB0aC52c2V0 aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQ0KKyoqIHRoLnZsd1wudlx0dlsw LTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZsd1wudlx0dlswLTldKyww XChbYS14MC05XStcKQ0KKyoqIHRoLnZhZGRcLnZ4XHR2WzAtOV0rLFxzKnZb MC05XSssXHMqW2EteDAtOV0rDQorKiogdGgudmFkZFwudnhcdHZbMC05XSss XHMqdlswLTldKyxccypbYS14MC05XSsNCisqKiB0aC52c3dcLnZcdHZbMC05 XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjEgKHZv aWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpDQorew0KKyAgICB2aW50 MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xIChpbiwgNCk7DQor ICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xX3R1 ICh2LCBpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3Zh ZGRfdnhfaTMybTEgKHYyLCB4LCA0KTsNCisgICAgdmludDMybTFfdCB2NCA9 IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90dSAodjMsIHYyLCB4LCA0KTsNCisg ICAgX19yaXNjdl90aF92c3dfdl9pMzJtMSAob3V0LCB2NCwgNCk7DQorfQ0K Kw0KKy8qDQorKiogZjI6DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHpl cm8sZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxt YQ0KKyoqIHRoLnZsdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQN CisqKiB0aC52YWRkXC52eFx0dlswLTldKyxccyp2WzAtOV0rLFxzKlthLXgw LTldKw0KKyoqIHRoLnZhZGRcLnZ4XHR2WzEtOV1bMC05XT8sXHMqdlswLTld KyxccypbYS14MC05XSssXHMqdjAudA0KKyoqIHRoLnZzdy52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYyICh2b2lk ICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wz Ml90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFzbSB2b2xhdGls ZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlz Y3ZfdGhfdmx3X3ZfaTMybTEgKGluLCA0KTsNCisgICAgdmludDMybTFfdCB2 MiA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTFfbSAobWFzaywgaW4sIDQpOw0K KyAgICB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2 MiwgeCwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRf dnhfaTMybTFfbSAobWFzaywgdjMsIHgsIDQpOw0KKyAgICBfX3Jpc2N2X3Ro X3Zzd192X2kzMm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBm MzoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEs bWENCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoq IHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11DQorKiogdGgudmx3 XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmx3LnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZ4XHR2 WzAtOV0rLFxzKnZbMC05XSssXHMqW2EteDAtOV0rDQorKiogdGgudmFkZFwu dnhcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKlthLXgwLTldKyxccyp2 MC50DQorKiogdGgudnN3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisq KiByZXQNCisqLw0KK3ZvaWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBp bnQzMl90IHgpDQorew0KKyAgICB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wz Ml90KilpbjsNCisgICAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsN CisgICAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHdfdl9pMzJtMSAo aW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHdf dl9pMzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7DQorICAgIHZpbnQzMm0x X3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCB4LCA0KTsNCisg ICAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90dW11 IChtYXNrLCB2MywgdjIsIHgsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3Zzd192 X2kzMm0xIChvdXQsIHY0LCA0KTsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3 dS12c3cuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQppbmRleCAwMDAwMDAwMDAwMC4uYjE4N2NmYzg1MmINCi0tLSAvZGV2L251 bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMNCkBAIC0wLDAgKzEsNjggQEANCisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1h cmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICov DQorLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioi ICIiIH0gfSAqLw0KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCINCisN CisvKg0KKyoqIGYxOg0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0x LHR1LG1hDQorKiogdGgudmx3dVwudlx0dlswLTldKywwXChbYS14MC05XStc KQ0KKyoqIHRoLnZsd3VcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisq KiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoq IHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQorKiog dGgudnN3XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQor Ki8NCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3Qg eCkNCit7DQorICAgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd3Vf dl91MzJtMSAoaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MiA9IF9fcmlz Y3ZfdGhfdmx3dV92X3UzMm0xX3R1ICh2LCBpbiwgNCk7DQorICAgIHZ1aW50 MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0 KTsNCisgICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMy bTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92c3df dl91MzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjI6DQor KiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQor KiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52 c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQ0KKyoqIHRoLnZsd3Uudlx0 dlswLTldKywwXChbYS14MC05XStcKSx2MC50DQorKiogdGgudmFkZFwudmlc dHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0aC52YWRkXC52aVx0 dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQNCisqKiB0 aC52c3cudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyov DQordm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgp DQorew0KKyAgICB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsN CisgICAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdnVp bnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3dV92X3UzMm0xIChpbiwgNCk7 DQorICAgIHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHd1X3ZfdTMy bTFfbSAobWFzaywgaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MyA9IF9f cmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZ1aW50 MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX20gKG1hc2ssIHYz LCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3Zzd192X3UzMm0xIChvdXQs IHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBmMzoNCisqKiB0aC52c2V0dmxp XHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0udlx0 dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJv LDQsZTMyLG0xLHR1LG11DQorKiogdGgudmx3dVwudlx0dlswLTldKywwXChb YS14MC05XStcKQ0KKyoqIHRoLnZsd3Uudlx0dlswLTldKywwXChbYS14MC05 XStcKSx2MC50DQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTld KyxccyotMTYNCisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZb MC05XSssXHMqLTE2LFxzKnYwLnQNCisqKiB0aC52c3cudlx0dlswLTldKyww XChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMyAodm9pZCAq IGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpDQorew0KKyAgICB2Ym9vbDMy X3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0aWxl ICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdnVpbnQzMm0xX3QgdiA9IF9fcmlz Y3ZfdGhfdmx3dV92X3UzMm0xIChpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90 IHYyID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTFfdHVtdSAobWFzaywgdiwg aW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92 eF91MzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHY0ID0g X19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgLTE2 LCA0KTsNCisgICAgX19yaXNjdl90aF92c3dfdl91MzJtMSAob3V0LCB2NCwg NCk7DQorfQ0KLS0gDQoyLjE3LjENCiANCiANCiANCiANCiANCiANCiANCiAN CiANCiANCg== ------=_001_NextPart187855875734_=------