From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbg154.qq.com (smtpbg154.qq.com [15.184.224.54]) by sourceware.org (Postfix) with ESMTPS id 4F52E385771E for ; Thu, 11 Jan 2024 10:56:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4F52E385771E 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 4F52E385771E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=15.184.224.54 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704970596; cv=none; b=UrvnPqGKIOaur+puWzjfp1yR1+xd0WFledwa5INvgFU9ysD7sLLzS4kdPNkeJvT9wV395IPk+Z6FV9MkmBjFFEupLqJ9v6cVfsbU4+LI8BpDOL5oUeIggCT5ZV5u30B5kvXSpESXVMbGwYFOTwivAVldTpJcgfxK9PeXtClGojc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704970596; c=relaxed/simple; bh=4kvvG0GuwZfKuTJR0KdVE0N/YQPE5UdsWApJSXot/IY=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=dLrKIj6tnrtqFYSF4Rp/QxdCH9nyeCrWdnVzb29cUY75G5F0fqXOv9oNEwY7PH8XEGmS6/6kDPBzdyhho+ahCujwKJs5i2FKnfnIEVbFQpu7kgw+Rhbqif959/irfVNX8ks/d45pbDGgVumMmQ40HjKau7yJ5kkyD5nOa5bmz54= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp68t1704970559tn3e7poi Received: from LAPTOP-EPITNQBU ( [121.35.183.89]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 11 Jan 2024 18:55:57 +0800 (CST) X-QQ-SSF: 00400000000000G0V000000A0000000 X-QQ-FEAT: W+onFc5Tw4MJ8ybjBlan2AeAIwdD+Z6QgbvOd/4/ppn5w7eKUJdCufSXz+fKq WW+j5C6z+ZJa4Lw8QQmVT+27+FfzwvlfW/KsaPoh9RfbW/fO8oej8BSmZPFjrVGAqadRqQR NU7OeVU1iCsGMglj7GlFQnr6vtq2pR8uHkiO1AO9hYL+2hotY6Fa6AKweHw3Oz1Pt56O+Yc PcBuZRpm7VR7NhcQlCJGbwdxRMsBaMMQX7zyD+NIK3cwBDaCvkS2Exx18TQJEdVLnZkOPrw uMcVjT0H3B05MQ7wUbLAAGSIzgDSlUBMlB4EO2Zz2ePZO5u+ve6IQ6BBzNW31mf4YIC2Gro iYRk+v6kKPCYryO8YDjUco/grtgnZf48QvH+dWBnqOpWDr7trgOaZfIbFnnLFaZGE/xsJgc wdJKxZW8Gc0QqFZ4lZLLhmm4m4hxg79ct56D/9sID6k= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 9422500014427028583 Date: Thu, 11 Jan 2024 18:55:57 +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: <16F768CA1057F6E1+202401111757407810113@rivai.ai>, X-Priority: 3 X-GUID: B028C889-1A56-4DC4-AFF8-80958C2397B6 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart627446185113_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-10.3 required=5.0 tests=BAYES_00,BODY_8BITS,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,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_NextPart627446185113_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 WWVzLg0KDQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCuWPkeS7tuS6 uu+8miBqb3NodWENCuWPkemAgeaXtumXtO+8miAyMDI0LTAxLTExIDE4OjU0 DQrmlLbku7bkurrvvJoganV6aGUuemhvbmdAcml2YWkuYWk7IGdjYy1wYXRj aGVzDQrmioTpgIHvvJogSmltIFdpbHNvbjsgcGFsbWVyOyBhbmRyZXc7IHBo aWxpcHAudG9tc2ljaDsgamVmZnJleWFsYXc7IGNocmlzdG9waC5tdWVsbG5l cjsgamlubWE7IGNvb3Blci5xdQ0K5Li76aKY77yaIFJl77yaW1BBVENIIHY1 XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lm aWMgaW50cmluc2ljcy4NCkRvIHlvdSBtZWFuIHJlbW92aW5nIFRBUkdFVF9Y VEhFQURWRUNUT1IgZm9yIHNleHQvemV4dCBwYXR0ZXJucw0KYW5kIHRoZW4g cmVzZW5kaW5nIHRoZSAgIlJJU0MtVjogSGFuZGxlIGRpZmZlcmVuY2VzIGJl dHdlZW4gWFRoZWFkdmVjdG9yDQphbmQgVmVjdG9yIiBwYXRjaD8NCiANCiAN CiANCiANCiANCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K5Y+R5Lu25Lq677ya anV6aGUuemhvbmdAcml2YWkuYWkgPGp1emhlLnpob25nQHJpdmFpLmFpPg0K 5Y+R6YCB5pe26Ze077yaMjAyNOW5tDHmnIgxMeaXpSjmmJ/mnJ/lm5spIDE3 OjU3DQrmlLbku7bkurrvvJoiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1 YUBsaW51eC5hbGliYWJhLmNvbT47ICJnY2MtcGF0Y2hlcyI8Z2NjLXBhdGNo ZXNAZ2NjLmdudS5vcmc+DQrmioTjgIDpgIHvvJpKaW0gV2lsc29uPGppbS53 aWxzb24uZ2NjQGdtYWlsLmNvbT47IHBhbG1lcjxwYWxtZXJAZGFiYmVsdC5j b20+OyBhbmRyZXc8YW5kcmV3QHNpZml2ZS5jb20+OyAicGhpbGlwcC50b21z aWNoIjxwaGlsaXBwLnRvbXNpY2hAdnJ1bGwuZXU+OyBqZWZmcmV5YWxhdzxq ZWZmcmV5YWxhd0BnbWFpbC5jb20+OyAiY2hyaXN0b3BoLm11ZWxsbmVyIjxj aHJpc3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+OyAiY29vcGVyLmpvc2h1YSI8 Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNvbT47IGppbm1hPGppbm1h QGxpbnV4LmFsaWJhYmEuY29tPjsgImNvb3Blci5xdSI8Y29vcGVyLnF1QGxp bnV4LmFsaWJhYmEuY29tPg0K5Li744CA6aKY77yaUmU6IFtQQVRDSCB2NV0g UklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNpZmlj IGludHJpbnNpY3MuDQogDQogDQpMR1RNLiBDb3VsZCB5b3UgcmVzZW5kIHRo ZSBwYXRjaCAiUklTQy1WOiBIYW5kbGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBY VGhlYWR2ZWN0b3IgYW5kIFZlY3Rvcg0KIA0KIA0KVGhhbmtzLg0KanV6aGUu emhvbmdAcml2YWkuYWkNCiANCiANCkZyb206IEp1biBTaGEgKEpvc2h1YSkN CkRhdGU6IDIwMjQtMDEtMTEgMTc6NTINClRvOiBnY2MtcGF0Y2hlcw0KQ0M6 IGppbS53aWxzb24uZ2NjOyBwYWxtZXI7IGFuZHJldzsgcGhpbGlwcC50b21z aWNoOyBqZWZmcmV5YWxhdzsgY2hyaXN0b3BoLm11ZWxsbmVyOyBqdXpoZS56 aG9uZzsgSnVuIFNoYSAoSm9zaHVhKTsgSmluIE1hOyBYaWFubWlhbyBRdQ0K U3ViamVjdDogW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4 dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4NCiANClRoaXMgcGF0 Y2ggb25seSBpbnZvbHZlcyB0aGUgZ2VuZXJhdGlvbiBvZiB4dGhlYWR2ZWN0 b3INCnNwZWNpYWwgbG9hZC9zdG9yZSBpbnN0cnVjdGlvbnMgYW5kIHZleHQg aW5zdHJ1Y3Rpb25zLg0KIA0KZ2NjL0NoYW5nZUxvZzoNCiANCiogY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0KKGNsYXNz IHRoX2xvYWRzdG9yZV93aWR0aCk6IERlZmluZSBuZXcgYnVpbHRpbiBiYXNl cy4NCihjbGFzcyB0aF9leHRyYWN0KTogRGVmaW5lIG5ldyBidWlsdGluIGJh c2VzLg0KKEJBU0UpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gYmFzZXMuDQoqIGNv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaDoNCkRl ZmluZSBuZXcgYnVpbHRpbiBjbGFzcy4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MNCihzdHJ1Y3QgdGhfbG9hZHN0 b3JlX3dpZHRoX2RlZik6IERlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuDQoo c3RydWN0IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoX2RlZik6DQpEZWZp bmUgbmV3IGJ1aWx0aW4gc2hhcGVzLg0KKHN0cnVjdCB0aF9leHRyYWN0X2Rl Zik6IERlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuDQooU0hBUEUpOiBEZWZp bmUgbmV3IGJ1aWx0aW4gc2hhcGVzLg0KKiBjb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oOg0KRGVmaW5lIG5ldyBidWlsdGlu IHNoYXBlcy4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy5jYyAoREVGX1JWVl9GVU5DVElPTik6DQoqIGNvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMuaCAoZW51bSByZXF1aXJlZF9leHQpOg0KKHN0 cnVjdCBmdW5jdGlvbl9ncm91cF9pbmZvKToNCiogY29uZmlnL3Jpc2N2L3Qt cmlzY3Y6IEFkZCB0aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRl Zg0KKiBjb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kDQooQHByZWRfbW92 X3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KTogQWRkIG5ldyBwYXR0ZXJu cy4NCigqcHJlZF9tb3Zfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBM aWtld2lzZS4NCihAcHJlZF9zdG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxt b2RlPik6IExpa2V3aXNlLg0KKEBwcmVkX3N0cmlkZWRfbG9hZF93aWR0aDx2 bG1lbV9vcF9hdHRyPjxtb2RlPik6IExpa2V3aXNlLg0KKEBwcmVkX3N0cmlk ZWRfc3RvcmVfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtld2lz ZS4NCihAcHJlZF9pbmRleGVkX2xvYWRfd2lkdGg8dmxtZW1fb3BfYXR0cj48 bW9kZT4pOiBMaWtld2lzZS4NCihAcHJlZF9pbmRleGVkXzx2bG1lbV9vcmRl cl9hdHRyPnN0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KToNCihA cHJlZF90aF9leHRyYWN0PG1vZGU+KTogTGlrZXdpc2UuDQooKnByZWRfdGhf ZXh0cmFjdDxtb2RlPik6IExpa2V3aXNlLg0KKiBjb25maWcvcmlzY3YvdGhl YWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWY6IE5ldyBmaWxlLg0K IA0KZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQogDQoqIGdjYy50YXJnZXQv cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGItdnNiLmM6IE5ldyB0ZXN0Lg0K KiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2Iu YzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZl Y3Rvci92bGgtdnNoLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYzogTmV3IHRlc3QuDQoqIGdj Yy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3LmM6IE5l dyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Iv dmx3dS12c3cuYzogTmV3IHRlc3QuDQpDby1hdXRob3JlZC1ieTogSmluIE1h IDxqaW5tYUBsaW51eC5hbGliYWJhLmNvbT4NCkNvLWF1dGhvcmVkLWJ5OiBY aWFubWlhbyBRdSA8Y29vcGVyLnF1QGxpbnV4LmFsaWJhYmEuY29tPg0KQ28t YXV0aG9yZWQtYnk6IENocmlzdG9waCBNw7xsbG5lciA8Y2hyaXN0b3BoLm11 ZWxsbmVyQHZydWxsLmV1Pg0KLS0tDQouLi4vcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLWJhc2VzLmNjICAgICAgfCAxMzkgKysrKysrKysrKw0KLi4u L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oICAgICAgIHwg IDMxICsrKw0KLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFw ZXMuY2MgICAgIHwgMTYwICsrKysrKysrKysrDQouLi4vcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oICAgICAgfCAgIDMgKw0KZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgICAgIHwgIDcw ICsrKysrDQpnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy5oICAgICAgfCAgIDMgKw0KZ2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2ICAg ICAgICAgICAgICAgICAgICAgIHwgICAxICsNCi4uLi9yaXNjdi90aGVhZC12 ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiB8ICAzOSArKysNCmdjYy9j b25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kICAgICAgICAgICAgICB8IDI1 MCArKysrKysrKysrKysrKysrKysNCi4uLi9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3ZsYi12c2IuYyAgICAgICAgICB8ICA2OCArKysrKw0KLi4uL3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYyAgICAgICAgIHwgIDY4ICsr KysrDQouLi4vcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMgICAg ICAgICAgfCAgNjggKysrKysNCi4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9y L3ZsaHUtdnNoLmMgICAgICAgICB8ICA2OCArKysrKw0KLi4uL3Jpc2N2L3J2 di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jICAgICAgICAgIHwgIDY4ICsrKysr DQouLi4vcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1LXZzdy5jICAgICAg ICAgfCAgNjggKysrKysNCjE1IGZpbGVzIGNoYW5nZWQsIDExMDQgaW5zZXJ0 aW9ucygrKQ0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy9jb25maWcvcmlzY3Yv dGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYNCmNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L3h0aGVhZHZlY3Rvci92bGItdnNiLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rv ci92bGJ1LXZzYi5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5j DQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYw0KY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3Zsdy12c3cuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9y L3Zsd3UtdnN3LmMNCiANCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYyBiL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjDQppbmRleCAx YWE2ZTNjNjY2NS4uYjZmNmU0ZmYzN2UgMTAwNjQ0DQotLS0gYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0KKysr IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFz ZXMuY2MNCkBAIC0yMTQxLDYgKzIxNDEsODMgQEAgcHVibGljOg0KICAgfQ0K fTsNCisvKiBJbXBsZW1lbnRzDQorICogdGgudmwoYi9oL3cpW3VdLnYvdGgu dnMoYi9oL3cpW3VdLnYvdGgudmxzKGIvaC93KVt1XS52L3RoLnZzcyhiL2gv dylbdV0udi8NCisgKiB0aC52bHgoYi9oL3cpW3VdLnYvdGgudnNbdV14KGIv aC93KS52DQorICogY29kZWdlbi4gICovDQordGVtcGxhdGU8Ym9vbCBTVE9S RV9QLCBsc3RfdHlwZSBMU1RfVFlQRSwgaW50IFVOU1BFQz4NCitjbGFzcyB0 aF9sb2Fkc3RvcmVfd2lkdGggOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0KK3sN CitwdWJsaWM6DQorICBib29sIGFwcGx5X3RhaWxfcG9saWN5X3AgKCkgY29u c3Qgb3ZlcnJpZGUgeyByZXR1cm4gIVNUT1JFX1A7IH0NCisgIGJvb2wgYXBw bHlfbWFza19wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAh U1RPUkVfUDsgfQ0KKw0KKyAgdW5zaWduZWQgaW50IGNhbGxfcHJvcGVydGll cyAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJikgY29uc3Qgb3ZlcnJpZGUN CisgIHsNCisgICAgaWYgKFNUT1JFX1ApDQorICAgICAgcmV0dXJuIENQX1dS SVRFX01FTU9SWTsNCisgICAgZWxzZQ0KKyAgICAgIHJldHVybiBDUF9SRUFE X01FTU9SWTsNCisgIH0NCisNCisgIGJvb2wgY2FuX2JlX292ZXJsb2FkZWRf cCAoZW51bSBwcmVkaWNhdGlvbl90eXBlX2luZGV4IHByZWQpIGNvbnN0IG92 ZXJyaWRlDQorICB7DQorICAgIGlmIChTVE9SRV9QIHx8IExTVF9UWVBFID09 IExTVF9JTkRFWEVEKQ0KKyAgICAgIHJldHVybiB0cnVlOw0KKyAgICByZXR1 cm4gcHJlZCAhPSBQUkVEX1RZUEVfbm9uZTsNCisgIH0NCisNCisgIHJ0eCBl eHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQ0K KyAgew0KKyAgICBnY2NfYXNzZXJ0IChUQVJHRVRfWFRIRUFEVkVDVE9SKTsN CisgICAgaWYgKExTVF9UWVBFID09IExTVF9JTkRFWEVEKQ0KKyAgICAgIHsN CisgaWYgKFNUT1JFX1ApDQorICAgcmV0dXJuIGUudXNlX2V4YWN0X2luc24g KA0KKyAgICAgY29kZV9mb3JfcHJlZF9pbmRleGVkX3N0b3JlX3dpZHRoIChV TlNQRUMsIFVOU1BFQywNCisgICAgICAgIGUudmVjdG9yX21vZGUgKCkpKTsN CisgZWxzZQ0KKyAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuICgNCisgICAg IGNvZGVfZm9yX3ByZWRfaW5kZXhlZF9sb2FkX3dpZHRoIChVTlNQRUMsIGUu dmVjdG9yX21vZGUgKCkpKTsNCisgICAgICB9DQorICAgIGVsc2UgaWYgKExT VF9UWVBFID09IExTVF9TVFJJREVEKQ0KKyAgICAgIHsNCisgaWYgKFNUT1JF X1ApDQorICAgcmV0dXJuIGUudXNlX2NvbnRpZ3VvdXNfc3RvcmVfaW5zbiAo DQorICAgICBjb2RlX2Zvcl9wcmVkX3N0cmlkZWRfc3RvcmVfd2lkdGggKFVO U1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyBlbHNlDQorICAgcmV0dXJu IGUudXNlX2NvbnRpZ3VvdXNfbG9hZF9pbnNuICgNCisgICAgIGNvZGVfZm9y X3ByZWRfc3RyaWRlZF9sb2FkX3dpZHRoIChVTlNQRUMsIGUudmVjdG9yX21v ZGUgKCkpKTsNCisgICAgICB9DQorICAgIGVsc2UNCisgICAgICB7DQorIGlm IChTVE9SRV9QKQ0KKyAgIHJldHVybiBlLnVzZV9jb250aWd1b3VzX3N0b3Jl X2luc24gKA0KKyAgICAgY29kZV9mb3JfcHJlZF9zdG9yZV93aWR0aCAoVU5T UEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7DQorIGVsc2UNCisgICByZXR1cm4g ZS51c2VfY29udGlndW91c19sb2FkX2luc24gKA0KKyAgICAgY29kZV9mb3Jf cHJlZF9tb3Zfd2lkdGggKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0K KyAgICAgIH0NCisgIH0NCit9Ow0KKw0KKy8qIEltcGxlbWVudHMgdmV4dC54 LnYuICAqLw0KK2NsYXNzIHRoX2V4dHJhY3QgOiBwdWJsaWMgZnVuY3Rpb25f YmFzZQ0KK3sNCitwdWJsaWM6DQorICBib29sIGFwcGx5X3ZsX3AgKCkgY29u c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJvb2wgYXBwbHlf dGFpbF9wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz ZTsgfQ0KKyAgYm9vbCBhcHBseV9tYXNrX3BvbGljeV9wICgpIGNvbnN0IG92 ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICBib29sIHVzZV9tYXNrX3By ZWRpY2F0aW9uX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7 IH0NCisgIGJvb2wgaGFzX21lcmdlX29wZXJhbmRfcCAoKSBjb25zdCBvdmVy cmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KKw0KKyAgcnR4IGV4cGFuZCAoZnVu Y3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAg IGdjY19hc3NlcnQgKFRBUkdFVF9YVEhFQURWRUNUT1IpOw0KKyAgICByZXR1 cm4gZS51c2VfZXhhY3RfaW5zbiAoY29kZV9mb3JfcHJlZF90aF9leHRyYWN0 IChlLnZlY3Rvcl9tb2RlICgpKSk7DQorICB9DQorfTsNCisNCi8qIEJlbG93 IGltcGxlbWVudHMgYXJlIHZlY3RvciBjcnlwdG8gKi8NCi8qIEltcGxlbWVu dHMgdmFuZG4uW3Z2LHZ4XSAqLw0KY2xhc3MgdmFuZG4gOiBwdWJsaWMgZnVu Y3Rpb25fYmFzZQ0KQEAgLTI2MDMsNiArMjY4MCwzNyBAQCBzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHNlZ19pbmRleGVkX2xvYWQ8VU5TUEVDX09SREVSRUQ+ IHZsb3hzZWdfb2JqOw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCBzZWdfaW5k ZXhlZF9zdG9yZTxVTlNQRUNfVU5PUkRFUkVEPiB2c3V4c2VnX29iajsNCnN0 YXRpYyBDT05TVEVYUFIgY29uc3Qgc2VnX2luZGV4ZWRfc3RvcmU8VU5TUEVD X09SREVSRUQ+IHZzb3hzZWdfb2JqOw0Kc3RhdGljIENPTlNURVhQUiBjb25z dCB2bHNlZ2ZmIHZsc2VnZmZfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUs IFVOU1BFQ19USF9WTEI+IHZsYl9vYmo7DQorc3RhdGljIENPTlNURVhQUiBj b25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklE RSwgVU5TUEVDX1RIX1ZMQlU+IHZsYnVfb2JqOw0KK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9T VFJJREUsIFVOU1BFQ19USF9WTEg+IHZsaF9vYmo7DQorc3RhdGljIENPTlNU RVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklU X1NUUklERSwgVU5TUEVDX1RIX1ZMSFU+IHZsaHVfb2JqOw0KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1Rf VU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTFc+IHZsd19vYmo7DQorc3RhdGlj IENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExT VF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMV1U+IHZsd3Vfb2JqOw0KK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUs IExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMQj4gdnNiX29iajsNCitz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVl LCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEg+IHZzaF9vYmo7DQor c3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1 ZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxXPiB2c3dfb2JqOw0K K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZh bHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0I+IHZsc2Jfb2JqOw0K K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZh bHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0JVPiB2bHNidV9vYmo7 DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8 ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxTSD4gdmxzaF9vYmo7 DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8 ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxTSFU+IHZsc2h1X29i ajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0 aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNXPiB2bHN3X29i ajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0 aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNXVT4gdmxzd3Vf b2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dp ZHRoPHRydWUsIExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxTQj4gdnNzYl9v Ymo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lk dGg8dHJ1ZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNIPiB2c3NoX29i ajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0 aDx0cnVlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU1c+IHZzc3dfb2Jq Ow0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRo PGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEI+IHZseGJfb2Jq Ow0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRo PGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEJVPiB2bHhidV9v Ymo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lk dGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYSD4gdmx4aF9v Ymo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lk dGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYSFU+IHZseGh1 X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93 aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhXPiB2bHh3 X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93 aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhXVT4gdmx4 d3Vfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYQj4gdnN4 Yl9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVf d2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhIPiB2c3ho X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93 aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWFc+IHZzeHdf b2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dp ZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVlNVWEI+IHZzdXhi X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93 aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZTVVhIPiB2c3V4 aF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVf d2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WU1VYVz4gdnN1 eHdfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfZXh0cmFjdCB2 ZXh0X3hfdl9vYmo7DQovKiBDcnlwdG8gVmVjdG9yICovDQpzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHZhbmRuIHZhbmRuX29iajsNCkBAIC0yODk0LDYgKzMw MDIsMzcgQEAgQkFTRSAodmxveHNlZykNCkJBU0UgKHZzdXhzZWcpDQpCQVNF ICh2c294c2VnKQ0KQkFTRSAodmxzZWdmZikNCitCQVNFICh2bGIpDQorQkFT RSAodmxoKQ0KK0JBU0UgKHZsdykNCitCQVNFICh2bGJ1KQ0KK0JBU0UgKHZs aHUpDQorQkFTRSAodmx3dSkNCitCQVNFICh2c2IpDQorQkFTRSAodnNoKQ0K K0JBU0UgKHZzdykNCitCQVNFICh2bHNiKQ0KK0JBU0UgKHZsc2gpDQorQkFT RSAodmxzdykNCitCQVNFICh2bHNidSkNCitCQVNFICh2bHNodSkNCitCQVNF ICh2bHN3dSkNCitCQVNFICh2c3NiKQ0KK0JBU0UgKHZzc2gpDQorQkFTRSAo dnNzdykNCitCQVNFICh2bHhiKQ0KK0JBU0UgKHZseGgpDQorQkFTRSAodmx4 dykNCitCQVNFICh2bHhidSkNCitCQVNFICh2bHhodSkNCitCQVNFICh2bHh3 dSkNCitCQVNFICh2c3hiKQ0KK0JBU0UgKHZzeGgpDQorQkFTRSAodnN4dykN CitCQVNFICh2c3V4YikNCitCQVNFICh2c3V4aCkNCitCQVNFICh2c3V4dykN CitCQVNFICh2ZXh0X3hfdikNCi8qIENyeXB0byB2ZWN0b3IgKi8NCkJBU0Ug KHZhbmRuKQ0KQkFTRSAodmJyZXYpDQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaCBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgNCmlu ZGV4IDg3YzdmNDNhNDIzLi4xZjJjOTRkMzU0MSAxMDA2NDQNCi0tLSBhL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgN CisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LWJhc2VzLmgNCkBAIC0yODAsNiArMjgwLDM3IEBAIGV4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB2bG94c2VnOw0KZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZzdXhzZWc7DQpleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3QgdnNveHNlZzsNCmV4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB2bHNlZ2ZmOw0KK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB2bGI7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X2Jhc2UgKmNvbnN0IHZsaDsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3Qgdmx3Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpj b25zdCB2bGJ1Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB2bGh1Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2 bHd1Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c2I7 DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzaDsNCitl eHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN3Ow0KK2V4dGVy biBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHNiOw0KK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHNoOw0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHN3Ow0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB2bHNidTsNCitleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3QgdmxzaHU7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX2Jhc2UgKmNvbnN0IHZsc3d1Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2c3NiOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2c3NoOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB2c3N3Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpj b25zdCB2bHhiOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB2bHhoOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2 bHh3Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHhi dTsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4aHU7 DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZseHd1Ow0K K2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3hiOw0KK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3hoOw0KK2V4dGVy biBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3h3Ow0KK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3V4YjsNCitleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eGg7DQorZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzdXh3Ow0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB2ZXh0X3hfdjsNCi8qIEJlbG93IGZ1bmN0 aW9uX2Jhc2UgYXJlIFZlY3RybyBDcnlwdG8qLw0KZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZhbmRuOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX2Jhc2UgKmNvbnN0IHZicmV2Ow0KZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYyBiL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5j Yw0KaW5kZXggMWU0ZjRkNTNkZTYuLjhlOTBiMTdhOTRiIDEwMDY0NA0KLS0t IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hh cGVzLmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy1zaGFwZXMuY2MNCkBAIC0yMTEsNiArMjExLDE0NiBAQCBzdHJ1 Y3QgaW5kZXhlZF9sb2Fkc3RvcmVfZGVmIDogcHVibGljIGZ1bmN0aW9uX3No YXBlDQogICB9DQp9Ow0KKy8qIEFkZCBvbmUgZnVuY3Rpb24gaW5zdGFuY2Ug Zm9yIEdST1VQLCB1c2luZyBvcGVyYW5kIHN1ZmZpeCBhdCBpbmRleCBPSSwN CisgICBtb2RlIHN1ZmZpeCBhdCBpbmRleCBQQUlSICYmIGJpIGFuZCBwcmVk aWNhdGlvbiBzdWZmaXggYXQgaW5kZXggcHJlZF9pZHguICAqLw0KK3N0YXRp YyB2b2lkDQorYnVpbGRfdGhfbG9hZHN0b3JlIChmdW5jdGlvbl9idWlsZGVy ICZiLCBjb25zdCBmdW5jdGlvbl9ncm91cF9pbmZvICZncm91cCwNCisgICAg IHVuc2lnbmVkIGludCBwcmVkX2lkeCwgdW5zaWduZWQgaW50IHZlY190eXBl X2lkeCkNCit7DQorICBhdXRvX3ZlYzx0cmVlLCA1PiBhcmd1bWVudF90eXBl czsNCisgIGZ1bmN0aW9uX2luc3RhbmNlIGZ1bmN0aW9uX2luc3RhbmNlIChn cm91cC5iYXNlX25hbWUsICpncm91cC5iYXNlLA0KKyAgICAgICAgKmdyb3Vw LnNoYXBlLA0KKyAgICAgICAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190 eXBlX2lkeF0sDQorICAgICAgICBncm91cC5wcmVkc1twcmVkX2lkeF0sICZn cm91cC5vcHNfaW5mb3MpOw0KKyAgdHJlZSByZXR1cm5fdHlwZSA9IGdyb3Vw Lm9wc19pbmZvcy5yZXQuZ2V0X3RyZWVfdHlwZSAoDQorICAgIGdyb3VwLm9w c19pbmZvcy50eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4KTsNCisgIGIuYWxs b2NhdGVfYXJndW1lbnRfdHlwZXMgKGZ1bmN0aW9uX2luc3RhbmNlLCBhcmd1 bWVudF90eXBlcyk7DQorICBiLmFwcGx5X3ByZWRpY2F0aW9uIChmdW5jdGlv bl9pbnN0YW5jZSwgcmV0dXJuX3R5cGUsIGFyZ3VtZW50X3R5cGVzKTsNCisN CisgIGlmIChUQVJHRVRfWFRIRUFEVkVDVE9SICYmICFjaGVja190eXBlIChy ZXR1cm5fdHlwZSwgYXJndW1lbnRfdHlwZXMpKQ0KKyAgICByZXR1cm47DQor DQorICB0cmVlIHR5cGUgPSBidWlsdGluX3R5cGVzW2dyb3VwLm9wc19pbmZv cy50eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4XS52ZWN0b3I7DQorICBpZiAo c3Ryc3RyIChncm91cC5iYXNlX25hbWUsICJsIikNCisgICAgICAmJiBzdHJz dHIgKGdyb3VwLmJhc2VfbmFtZSwgInUiKQ0KKyAgICAgICYmICFUWVBFX1VO U0lHTkVEIChUUkVFX1RZUEUgKHR5cGUpKSkNCisgICAgcmV0dXJuOw0KKw0K KyAgaWYgKHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAibCIpDQorICAgICAg JiYgIXN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAidSIpDQorICAgICAgJiYg VFlQRV9VTlNJR05FRCAoVFJFRV9UWVBFICh0eXBlKSkpDQorICAgIHJldHVy bjsNCisNCisgIG1hY2hpbmVfbW9kZSBtb2RlID0gVFlQRV9NT0RFICh0eXBl KTsNCisgIGludCBzZXcgPSBHRVRfTU9ERV9CSVRTSVpFIChHRVRfTU9ERV9J Tk5FUiAobW9kZSkpOw0KKyAgaWYgKHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1l LCAiaCIpICYmIHNldyA9PSA4KQ0KKyAgICByZXR1cm47DQorDQorICBpZiAo c3Ryc3RyIChncm91cC5iYXNlX25hbWUsICJ3IikgJiYgKHNldyA9PSA4IHx8 IHNldyA9PTE2KSkNCisgICAgcmV0dXJuOw0KKw0KKyAgYi5hZGRfb3Zlcmxv YWRlZF9mdW5jdGlvbiAoZnVuY3Rpb25faW5zdGFuY2UsICpncm91cC5zaGFw ZSk7DQorICBiLmFkZF91bmlxdWVfZnVuY3Rpb24gKGZ1bmN0aW9uX2luc3Rh bmNlLCAoKmdyb3VwLnNoYXBlKSwgcmV0dXJuX3R5cGUsDQorIGFyZ3VtZW50 X3R5cGVzKTsNCit9DQorDQorLyogdGhfbG9hZHN0b3JlX3dpZHRoX2RlZiBj bGFzcy4gICovDQorc3RydWN0IHRoX2xvYWRzdG9yZV93aWR0aF9kZWYgOiBw dWJsaWMgYnVpbGRfYmFzZQ0KK3sNCisgICB2b2lkIGJ1aWxkIChmdW5jdGlv bl9idWlsZGVyICZiLA0KKyAgICAgICBjb25zdCBmdW5jdGlvbl9ncm91cF9p bmZvICZncm91cCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgZm9yICh1 bnNpZ25lZCBpbnQgcHJlZF9pZHggPSAwOyBncm91cC5wcmVkc1twcmVkX2lk eF0gIT0gTlVNX1BSRURfVFlQRVM7DQorICAgICAgICsrcHJlZF9pZHgpDQor ICAgICAgew0KKyBmb3IgKHVuc2lnbmVkIGludCB2ZWNfdHlwZV9pZHggPSAw Ow0KKyAgICAgIGdyb3VwLm9wc19pbmZvcy50eXBlc1t2ZWNfdHlwZV9pZHhd LmluZGV4ICE9IE5VTV9WRUNUT1JfVFlQRVM7DQorICAgICAgKyt2ZWNfdHlw ZV9pZHgpDQorICAgew0KKyAgICAgYnVpbGRfdGhfbG9hZHN0b3JlIChiLCBn cm91cCwgcHJlZF9pZHgsIHZlY190eXBlX2lkeCk7DQorICAgfQ0KKyAgICAg IH0NCisgIH0NCisNCisgIGNoYXIgKmdldF9uYW1lIChmdW5jdGlvbl9idWls ZGVyICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsDQor ICAgYm9vbCBvdmVybG9hZGVkX3ApIGNvbnN0IG92ZXJyaWRlDQorICB7DQor ICAgIC8qIFJldHVybiBudWxscHRyIGlmIGl0IGNhbiBub3QgYmUgb3Zlcmxv YWRlZC4gICovDQorICAgIGlmIChvdmVybG9hZGVkX3AgJiYgIWluc3RhbmNl LmJhc2UtPmNhbl9iZV9vdmVybG9hZGVkX3AgKGluc3RhbmNlLnByZWQpKQ0K KyAgICAgIHJldHVybiBudWxscHRyOw0KKw0KKyAgICBiLmFwcGVuZF9uYW1l ICgiX19yaXNjdl90aF8iKTsNCisgICAgYi5hcHBlbmRfbmFtZSAoaW5zdGFu Y2UuYmFzZV9uYW1lKTsNCisNCisgICAgLyogdm9wX3YgLS0+IHZvcF92Xzx0 eXBlPi4gICovDQorICAgIGlmICghb3ZlcmxvYWRlZF9wKQ0KKyAgICAgIHsN CisgLyogdm9wIC0tPiB2b3Bfdi4gICovDQorIGIuYXBwZW5kX25hbWUgKG9w ZXJhbmRfc3VmZml4ZXNbaW5zdGFuY2Uub3BfaW5mby0+b3BdKTsNCisgLyog dm9wX3YgLS0+IHZvcF92Xzx0eXBlPi4gICovDQorIGIuYXBwZW5kX25hbWUg KHR5cGVfc3VmZml4ZXNbaW5zdGFuY2UudHlwZS5pbmRleF0udmVjdG9yKTsN CisgICAgICB9DQorDQorICAgIC8qIEFjY29yZGluZyB0byBydnYtaW50cmlu c2ljLWRvYywgaXQgZG9lcyBub3QgYWRkICJfbSIgc3VmZml4DQorICAgICAg IGZvciB2b3BfbSBDKysgb3ZlcmxvYWRlZCBBUEkuICAqLw0KKyAgICBpZiAo b3ZlcmxvYWRlZF9wICYmIGluc3RhbmNlLnByZWQgPT0gUFJFRF9UWVBFX20p DQorICAgICAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7DQorICAgIGIuYXBw ZW5kX25hbWUgKHByZWRpY2F0aW9uX3N1ZmZpeGVzW2luc3RhbmNlLnByZWRd KTsNCisgICAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7DQorICB9DQorfTsN CisNCisNCisvKiB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aF9kZWYgY2xh c3MuICAqLw0KK3N0cnVjdCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aF9k ZWYgOiBwdWJsaWMgZnVuY3Rpb25fc2hhcGUNCit7DQorICB2b2lkIGJ1aWxk IChmdW5jdGlvbl9idWlsZGVyICZiLA0KKyAgICAgICBjb25zdCBmdW5jdGlv bl9ncm91cF9pbmZvICZncm91cCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisg ICAgZm9yICh1bnNpZ25lZCBpbnQgcHJlZF9pZHggPSAwOyBncm91cC5wcmVk c1twcmVkX2lkeF0gIT0gTlVNX1BSRURfVFlQRVM7DQorICsrcHJlZF9pZHgp DQorICAgICAgew0KKyBmb3IgKHVuc2lnbmVkIGludCB2ZWNfdHlwZV9pZHgg PSAwOw0KKyAgICAgIGdyb3VwLm9wc19pbmZvcy50eXBlc1t2ZWNfdHlwZV9p ZHhdLmluZGV4ICE9IE5VTV9WRUNUT1JfVFlQRVM7DQorICAgICAgKyt2ZWNf dHlwZV9pZHgpDQorICAgew0KKyAgICB0cmVlIGluZGV4X3R5cGUgPSBncm91 cC5vcHNfaW5mb3MuYXJnc1sxXS5nZXRfdHJlZV90eXBlICgNCisgICAgICAg Z3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXgpOw0K KyAgICBpZiAoIWluZGV4X3R5cGUpDQorICAgICAgIGNvbnRpbnVlOw0KKyAg ICBidWlsZF90aF9sb2Fkc3RvcmUgKGIsIGdyb3VwLCBwcmVkX2lkeCwgdmVj X3R5cGVfaWR4KTsNCisgICB9DQorICAgICAgfQ0KKyAgfQ0KKw0KKyAgY2hh ciAqZ2V0X25hbWUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0 aW9uX2luc3RhbmNlICZpbnN0YW5jZSwNCisgICBib29sIG92ZXJsb2FkZWRf cCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisNCisgICAgLyogUmV0dXJuIG51 bGxwdHIgaWYgaXQgY2FuIG5vdCBiZSBvdmVybG9hZGVkLiAgKi8NCisgICAg aWYgKG92ZXJsb2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2FuX2JlX292 ZXJsb2FkZWRfcCAoaW5zdGFuY2UucHJlZCkpDQorICAgICAgcmV0dXJuIG51 bGxwdHI7DQorDQorICAgIGIuYXBwZW5kX25hbWUgKCJfX3Jpc2N2X3RoXyIp Ow0KKyAgICBiLmFwcGVuZF9uYW1lIChpbnN0YW5jZS5iYXNlX25hbWUpOw0K KyAgICAvKiB2b3BfdiAtLT4gdm9wX3ZfPHR5cGU+LiAgKi8NCisgICAgaWYg KCFvdmVybG9hZGVkX3ApDQorICAgICAgew0KKyAvKiB2b3AgLS0+IHZvcF92 LiAgKi8NCisgYi5hcHBlbmRfbmFtZSAob3BlcmFuZF9zdWZmaXhlc1tpbnN0 YW5jZS5vcF9pbmZvLT5vcF0pOw0KKyAvKiB2b3BfdiAtLT4gdm9wX3ZfPHR5 cGU+LiAgKi8NCisgYi5hcHBlbmRfbmFtZSAodHlwZV9zdWZmaXhlc1tpbnN0 YW5jZS50eXBlLmluZGV4XS52ZWN0b3IpOw0KKyAgICAgIH0NCisNCisgICAg LyogQWNjb3JkaW5nIHRvIHJ2di1pbnRyaW5zaWMtZG9jLCBpdCBkb2VzIG5v dCBhZGQgIl9tIiBzdWZmaXgNCisgICAgICAgZm9yIHZvcF9tIEMrKyBvdmVy bG9hZGVkIEFQSS4gICovDQorICAgIGlmIChvdmVybG9hZGVkX3AgJiYgaW5z dGFuY2UucHJlZCA9PSBQUkVEX1RZUEVfbSkNCisgICAgICByZXR1cm4gYi5m aW5pc2hfbmFtZSAoKTsNCisgICAgYi5hcHBlbmRfbmFtZSAocHJlZGljYXRp b25fc3VmZml4ZXNbaW5zdGFuY2UucHJlZF0pOw0KKyAgICByZXR1cm4gYi5m aW5pc2hfbmFtZSAoKTsNCisgIH0NCit9Ow0KKw0KLyogYWx1X2RlZiBjbGFz cy4gICovDQpzdHJ1Y3QgYWx1X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlDQp7 DQpAQCAtNjMyLDYgKzc3MiwyMyBAQCBzdHJ1Y3QgcmVkdWNfYWx1X2RlZiA6 IHB1YmxpYyBidWlsZF9iYXNlDQogICB9DQp9Ow0KKy8qIHRoX2V4dHJhY3Rf ZGVmIGNsYXNzLiAgKi8NCitzdHJ1Y3QgdGhfZXh0cmFjdF9kZWYgOiBwdWJs aWMgYnVpbGRfYmFzZQ0KK3sNCisgIGNoYXIgKmdldF9uYW1lIChmdW5jdGlv bl9idWlsZGVyICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFu Y2UsDQorICAgICAgYm9vbCBvdmVybG9hZGVkX3ApIGNvbnN0IG92ZXJyaWRl DQorICB7DQorICAgIGIuYXBwZW5kX25hbWUgKCJfX3Jpc2N2X3RoXyIpOw0K KyAgICBiLmFwcGVuZF9uYW1lIChpbnN0YW5jZS5iYXNlX25hbWUpOw0KKw0K KyAgICBpZiAob3ZlcmxvYWRlZF9wKQ0KKyAgICAgIHJldHVybiBiLmZpbmlz aF9uYW1lICgpOw0KKyAgICBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVz W2luc3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rvcik7DQorICAgIGIuYXBwZW5k X25hbWUgKHR5cGVfc3VmZml4ZXNbaW5zdGFuY2UudHlwZS5pbmRleF0uc2Nh bGFyKTsNCisgICAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7DQorICB9DQor fTsNCisNCi8qIHNjYWxhcl9tb3ZlX2RlZiBjbGFzcy4gICovDQpzdHJ1Y3Qg c2NhbGFyX21vdmVfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UNCnsNCkBAIC0x MDk0LDYgKzEyNTEsOCBAQCBTSEFQRSh2c2V0dmwsIHZzZXR2bCkNClNIQVBF KHZzZXR2bCwgdnNldHZsbWF4KQ0KU0hBUEUobG9hZHN0b3JlLCBsb2Fkc3Rv cmUpDQpTSEFQRShpbmRleGVkX2xvYWRzdG9yZSwgaW5kZXhlZF9sb2Fkc3Rv cmUpDQorU0hBUEUodGhfbG9hZHN0b3JlX3dpZHRoLCB0aF9sb2Fkc3RvcmVf d2lkdGgpDQorU0hBUEUodGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIHRo X2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoKQ0KU0hBUEUoYWx1LCBhbHUpDQpT SEFQRShhbHVfZnJtLCBhbHVfZnJtKQ0KU0hBUEUod2lkZW5fYWx1LCB3aWRl bl9hbHUpDQpAQCAtMTEwNiw2ICsxMjY1LDcgQEAgU0hBUEUobW92ZSwgbW92 ZSkNClNIQVBFKG1hc2tfYWx1LCBtYXNrX2FsdSkNClNIQVBFKHJlZHVjX2Fs dSwgcmVkdWNfYWx1KQ0KU0hBUEUocmVkdWNfYWx1X2ZybSwgcmVkdWNfYWx1 X2ZybSkNCitTSEFQRSh0aF9leHRyYWN0LCB0aF9leHRyYWN0KQ0KU0hBUEUo c2NhbGFyX21vdmUsIHNjYWxhcl9tb3ZlKQ0KU0hBUEUodnVuZGVmaW5lZCwg dnVuZGVmaW5lZCkNClNIQVBFKG1pc2MsIG1pc2MpDQpkaWZmIC0tZ2l0IGEv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVz LmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1z aGFwZXMuaA0KaW5kZXggYWMyYTI4Y2UwMTcuLmE3NjI0ZDBmYWJkIDEwMDY0 NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMtc2hhcGVzLmgNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLXNoYXBlcy5oDQpAQCAtMjgsNiArMjgsOCBAQCBleHRl cm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHZzZXR2bDsNCmV4dGVy biBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnNldHZsbWF4Ow0KZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBsb2Fkc3RvcmU7DQpl eHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGluZGV4ZWRfbG9h ZHN0b3JlOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9z aGFwZSAqY29uc3QgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGg7DQpleHRl cm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGFsdTsNCmV4dGVybiBj b25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgYWx1X2ZybTsNCmV4dGVybiBj b25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qgd2lkZW5fYWx1Ow0KQEAgLTQx LDYgKzQzLDcgQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25z dCBtYXNrX2FsdTsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29u c3QgcmVkdWNfYWx1Ow0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpj b25zdCByZWR1Y19hbHVfZnJtOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3No YXBlICpjb25zdCBzY2FsYXJfbW92ZTsNCitleHRlcm4gY29uc3QgZnVuY3Rp b25fc2hhcGUgKmNvbnN0IHRoX2V4dHJhY3Q7DQpleHRlcm4gY29uc3QgZnVu Y3Rpb25fc2hhcGUgKmNvbnN0IHZ1bmRlZmluZWQ7DQpleHRlcm4gY29uc3Qg ZnVuY3Rpb25fc2hhcGUgKmNvbnN0IG1pc2M7DQpleHRlcm4gY29uc3QgZnVu Y3Rpb25fc2hhcGUgKmNvbnN0IHZzZXQ7DQpkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgYi9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYw0KaW5kZXggMjVl MGI2ZTU2ZGUuLjQ0YjlmZWMxODk4IDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MNCisrKyBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjDQpAQCAtOTM0 LDYgKzkzNCwzMiBAQCBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdf dHlwZV9pbmZvIGV4dF92Y3JlYXRlX2FyZ3NbXQ0KICAgPSB7cnZ2X2FyZ190 eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksDQogICAgICBydnZfYXJnX3R5 cGVfaW5mb19lbmR9Ow0KKy8qIEEgbGlzdCBvZiBhcmdzIGZvciB2ZWN0b3Jf dHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLCBzaXplX3QpDQorICog ZnVuY3Rpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2Fy Z190eXBlX2luZm8gc2NhbGFyX2NvbnN0X3B0cl9zaXplX2FyZ3NbXQ0KKyAg PSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NjYWxhcl9jb25zdF9w dHIpLA0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NpemUp LCBydnZfYXJnX3R5cGVfaW5mb19lbmR9Ow0KKw0KKy8qIEEgbGlzdCBvZiBh cmdzIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAq LCBlZXc4X2luZGV4X3R5cGUpDQorICogZnVuY3Rpb24uICAqLw0KK3N0YXRp YyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gc2NhbGFyX2Nv bnN0X3B0cl9pbmRleF9hcmdzW10NCisgID0ge3J2dl9hcmdfdHlwZV9pbmZv IChSVlZfQkFTRV9zY2FsYXJfY29uc3RfcHRyKSwNCisgICAgIHJ2dl9hcmdf dHlwZV9pbmZvIChSVlZfQkFTRV91bnNpZ25lZF92ZWN0b3IpLCBydnZfYXJn X3R5cGVfaW5mb19lbmR9Ow0KKw0KKy8qIEEgbGlzdCBvZiBhcmdzIGZvciB2 b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIGVldzhfaW5kZXhfdHlwZSwgdmVj dG9yX3R5cGUpDQorICogZnVuY3Rpb24uICAqLw0KK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gc2NhbGFyX3B0cl9pbmRleF9h cmdzW10NCisgID0ge3J2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zY2Fs YXJfcHRyKSwNCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV91 bnNpZ25lZF92ZWN0b3IpLA0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJW Vl9CQVNFX3ZlY3RvciksIHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07DQorDQor LyogQSBsaXN0IG9mIGFyZ3MgZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUg Kiwgc2l6ZV90LCB2ZWN0b3JfdHlwZSkNCisgKiBmdW5jdGlvbi4gICovDQor c3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyBzY2Fs YXJfcHRyX3NpemVfYXJnc1tdDQorICA9IHtydnZfYXJnX3R5cGVfaW5mbyAo UlZWX0JBU0Vfc2NhbGFyX3B0ciksDQorICAgICBydnZfYXJnX3R5cGVfaW5m byAoUlZWX0JBU0Vfc2l6ZSksIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFT RV92ZWN0b3IpLA0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm9fZW5kfTsNCisN Ci8qIEEgbGlzdCBvZiBub25lIHByZWRzIHRoYXQgd2lsbCBiZSByZWdpc3Rl cmVkIGZvciBpbnRyaW5zaWMgZnVuY3Rpb25zLiAgKi8NCnN0YXRpYyBDT05T VEVYUFIgY29uc3QgcHJlZGljYXRpb25fdHlwZV9pbmRleCBub25lX3ByZWRz W10NCiAgID0ge1BSRURfVFlQRV9ub25lLCBOVU1fUFJFRF9UWVBFU307DQpA QCAtMTQ1NSw2ICsxNDgxLDE0IEBAIHN0YXRpYyBDT05TVEVYUFIgY29uc3Qg cnZ2X29wX2luZm8gaXVfc2hpZnRfdnZ2X29wcw0KICAgICAgcnZ2X2FyZ190 eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlICov DQogICAgICBzaGlmdF92dl9hcmdzIC8qIEFyZ3MgKi99Ow0KKy8qIEEgc3Rh dGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHNjYWxhcl90eXBlIGZ1bmMg KHZlY3Rvcl90eXBlLCBzaXplX3QpDQorICogZnVuY3Rpb24gcmVnaXN0cmF0 aW9uLiAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8g aXVfeF9zX3Vfb3BzDQorICA9IHtpdV9vcHMsICAgICAgICAgIC8qIFR5cGVz ICovDQorICAgICBPUF9UWVBFX3Z4LCAgICAgICAgLyogU3VmZml4ICovDQor ICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyKSwgLyog UmV0dXJuIHR5cGUgKi8NCisgICAgIHZfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99 Ow0KKw0KLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVj dG9yX3R5cGUgZnVuYyAodmVjdG9yX3R5cGUsIHNpemVfdCkNCiAgKiBmdW5j dGlvbiByZWdpc3RyYXRpb24uICovDQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHJ2dl9vcF9pbmZvIGl1X3NoaWZ0X3Z2eF9vcHMNCkBAIC0yNjM4LDYgKzI2 NzIsMzggQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBh bGxfdl92Y3JlYXRlX2xtdWw0X3gyX29wcw0KICAgICAgcnZ2X2FyZ190eXBl X2luZm8gKFJWVl9CQVNFX3ZsbXVsX2V4dF94MiksIC8qIFJldHVybiB0eXBl ICovDQogICAgICBleHRfdmNyZWF0ZV9hcmdzIC8qIEFyZ3MgKi99Ow0KKy8q IEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBl IGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosDQorICogc2l6ZV90KSBmdW5j dGlvbiByZWdpc3RyYXRpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgcnZ2X29wX2luZm8gYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29w cw0KKyAgPSB7YWxsX29wcywgICAvKiBUeXBlcyAgKi8NCisgICAgIE9QX1RZ UEVfdiwgICAvKiBTdWZmaXggICovDQorICAgICBydnZfYXJnX3R5cGVfaW5m byAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgICovDQorICAg ICBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJncyAvKiBBcmdzICovfTsNCisN CisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2b2lkIGZ1 bmMgKHNjYWxhcl90eXBlICosIHNpemVfdCwNCisgKiB2ZWN0b3JfdHlwZSkg ZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAgKi8NCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMN CisgID0ge2FsbF9vcHMsIC8qIFR5cGVzICAqLw0KKyAgICAgT1BfVFlQRV92 LCAvKiBTdWZmaXggICovDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZW X0JBU0Vfdm9pZCksIC8qIFJldHVybiB0eXBlICAqLw0KKyAgICAgc2NhbGFy X3B0cl9zaXplX2FyZ3MgLyogQXJncyAqL307DQorDQorLyogQSBzdGF0aWMg b3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29u c3Qgc2NhbGFyX3R5cGUgKiwNCisgKiBpbmRleF90eXBlKSBmdW5jdGlvbiBy ZWdpc3RyYXRpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2 X29wX2luZm8gYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMNCisg ID0ge2FsbF9vcHMsICAgLyogVHlwZXMgICovDQorICAgICBPUF9UWVBFX3Ys ICAgLyogU3VmZml4ICAqLw0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJW Vl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlICAqLw0KKyAgICAgc2Nh bGFyX2NvbnN0X3B0cl9pbmRleF9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KKy8q IEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZvaWQgZnVuYyAo c2NhbGFyX3R5cGUgKiwgaW5kZXhfdHlwZSwNCisgKiB2ZWN0b3JfdHlwZSkg ZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAgKi8NCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3NjYWxhcl9wdHJfaW5kZXhfb3Bz DQorICA9IHthbGxfb3BzLCAvKiBUeXBlcyAgKi8NCisgICAgIE9QX1RZUEVf diwgLyogU3VmZml4ICAqLw0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJW Vl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlwZSAgKi8NCisgICAgIHNjYWxh cl9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsNCisNCi8qIEEgc3RhdGlj IG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKHZl Y3Rvcl90eXBlKS4NCiAgICBTb21lIGlucyBqdXN0IHN1cHBvcnRzIFNFVz0z Miwgc3VjaCBhcyBjcnlwdG8gdmVjdG9sIFp2a2cgZXh0ZW5zaW9uLg0KICAq IGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICovDQpAQCAtMjgxNiw2ICsyODgy LDEwIEBAIHN0YXRpYyBmdW5jdGlvbl9ncm91cF9pbmZvIGZ1bmN0aW9uX2dy b3Vwc1tdID0gew0KI2RlZmluZSBERUZfUlZWX0ZVTkNUSU9OKE5BTUUsIFNI QVBFLCBQUkVEUywgT1BTX0lORk8pICAgICAgICAgICAgICAgICAgICAgICAg IFwNCiAgIHsjTkFNRSwgJmJhc2VzOjpOQU1FLCAmc2hhcGVzOjpTSEFQRSwg UFJFRFMsIE9QU19JTkZPLCBSRVFVSVJFRF9FWFRFTlNJT05TfSwNCiNpbmNs dWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiINCisj dW5kZWYgREVGX1JWVl9GVU5DVElPTg0KKyNkZWZpbmUgREVGX1JWVl9GVU5D VElPTihOQU1FLCBTSEFQRSwgUFJFRFMsIE9QU19JTkZPKSAgICAgICAgICAg ICAgICAgICAgICAgICBcDQorICB7I05BTUUsICZiYXNlczo6TkFNRSwgJnNo YXBlczo6U0hBUEUsIFBSRURTLCBPUFNfSU5GTywgUkVRVUlSRURfRVhURU5T SU9OU30sDQorI2luY2x1ZGUgInRoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5j dGlvbnMuZGVmIg0KfTsNCi8qIFRoZSBSVlYgdHlwZXMsIHdpdGggdGhlaXIg YnVpbHQtaW4NCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMuaA0KaW5kZXggNTRjODgyNGZmOTIuLjIyZmVkNjBi NGMzIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMuaA0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMuaA0KQEAgLTEyMyw2ICsxMjMsNyBAQCBlbnVtIHJl cXVpcmVkX2V4dA0KICAgWlZLTkhCX0VYVCwgIC8qIENyeXB0byB2ZWN0b3Ig WnZrbmhiIHN1Yi1leHQgKi8NCiAgIFpWS1NFRF9FWFQsICAvKiBDcnlwdG8g dmVjdG9yIFp2a3NlZCBzdWItZXh0ICovDQogICBaVktTSF9FWFQsICAgLyog Q3J5cHRvIHZlY3RvciBadmtzaCBzdWItZXh0ICovDQorICBYVEhFQURWRUNU T1JfRVhULCAgIC8qIFhUaGVhZFZlY3RvciBleHRlbnNpb24gKi8NCn07DQov KiBFbnVtZXJhdGVzIHRoZSBSVlYgb3BlcmFuZCB0eXBlcy4gICovDQpAQCAt MjUyLDYgKzI1Myw4IEBAIHN0cnVjdCBmdW5jdGlvbl9ncm91cF9pbmZvDQog ICAgICAgICByZXR1cm4gVEFSR0VUX1pWS1NFRDsNCiAgICAgICBjYXNlIFpW S1NIX0VYVDoNCiAgICAgICAgIHJldHVybiBUQVJHRVRfWlZLU0g7DQorICAg ICAgY2FzZSBYVEhFQURWRUNUT1JfRVhUOg0KKyByZXR1cm4gVEFSR0VUX1hU SEVBRFZFQ1RPUjsNCiAgICAgICBkZWZhdWx0Og0KICAgICAgICAgZ2NjX3Vu cmVhY2hhYmxlICgpOw0KICAgICB9DQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9yaXNjdi90LXJpc2N2IGIvZ2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2DQpp bmRleCAzMmRlNmI4NTFjMS4uMzg0OTQzMjBkOGIgMTAwNjQ0DQotLS0gYS9n Y2MvY29uZmlnL3Jpc2N2L3QtcmlzY3YNCisrKyBiL2djYy9jb25maWcvcmlz Y3YvdC1yaXNjdg0KQEAgLTEsNiArMSw3IEBADQpSSVNDVl9CVUlMVElOU19I ID0gJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMuaCBcDQogICAkKHNyY2RpcikvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy5kZWYgXA0KICAgJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiBcDQorICAgICAg ICQoc3JjZGlyKS9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5z LWZ1bmN0aW9ucy5kZWYgXA0KICAgcmlzY3YtdmVjdG9yLXR5cGUtaW5kZXhl ci5nZW4uZGVmDQpyaXNjdi1idWlsdGlucy5vOiAkKHNyY2RpcikvY29uZmln L3Jpc2N2L3Jpc2N2LWJ1aWx0aW5zLmNjICQoQ09ORklHX0gpIFwNCmRpZmYg LS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlu cy1mdW5jdGlvbnMuZGVmIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0 b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZg0KbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5mZDNiYTI5YmFlOQ0KLS0tIC9kZXYv bnVsbA0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVp bHRpbnMtZnVuY3Rpb25zLmRlZg0KQEAgLTAsMCArMSwzOSBAQA0KKyNpZm5k ZWYgREVGX1JWVl9GVU5DVElPTg0KKyNkZWZpbmUgREVGX1JWVl9GVU5DVElP TihOQU1FLCBTSEFQRSwgUFJFRFMsIE9QU19JTkZPKQ0KKyNlbmRpZg0KKw0K KyNkZWZpbmUgUkVRVUlSRURfRVhURU5TSU9OUyBYVEhFQURWRUNUT1JfRVhU DQorREVGX1JWVl9GVU5DVElPTiAodmxiLCB0aF9sb2Fkc3RvcmVfd2lkdGgs IGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQ0KK0RF Rl9SVlZfRlVOQ1RJT04gKHZsaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxs X3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykNCitERUZfUlZW X0ZVTkNUSU9OICh2bHcsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVk cywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpDQorREVGX1JWVl9GVU5D VElPTiAodmxidSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBh bGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykNCitERUZfUlZWX0ZVTkNUSU9O ICh2bGh1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92 X3NjYWxhcl9jb25zdF9wdHJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZs d3UsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2Nh bGFyX2NvbnN0X3B0cl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnNiLCB0 aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFy X3B0cl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnNoLCB0aF9sb2Fkc3Rv cmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9vcHMp DQorREVGX1JWVl9GVU5DVElPTiAodnN3LCB0aF9sb2Fkc3RvcmVfd2lkdGgs IG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9vcHMpDQorREVGX1JW Vl9GVU5DVElPTiAodmxzYiwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3By ZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQ0KK0RFRl9S VlZfRlVOQ1RJT04gKHZsc2gsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9w cmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2bHN3LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxf cHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMpDQorREVG X1JWVl9GVU5DVElPTiAodmxzYnUsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVs bF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykNCitE RUZfUlZWX0ZVTkNUSU9OICh2bHNodSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBm dWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQ0K K0RFRl9SVlZfRlVOQ1RJT04gKHZsc3d1LCB0aF9sb2Fkc3RvcmVfd2lkdGgs IGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMp DQorREVGX1JWVl9GVU5DVElPTiAodnNzYiwgdGhfbG9hZHN0b3JlX3dpZHRo LCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMpDQor REVGX1JWVl9GVU5DVElPTiAodnNzaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBu b25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMpDQorREVG X1JWVl9GVU5DVElPTiAodnNzdywgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25l X21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMpDQorREVGX1JW Vl9GVU5DVElPTiAodmx4YiwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgs IGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3Bz KQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZseGgsIHRoX2luZGV4ZWRfbG9hZHN0 b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRy X2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHh3LCB0aF9pbmRl eGVkX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFy X2NvbnN0X3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmx4 YnUsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBh bGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZV TkNUSU9OICh2bHhodSwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1 bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQ0K K0RFRl9SVlZfRlVOQ1RJT04gKHZseHd1LCB0aF9pbmRleGVkX2xvYWRzdG9y ZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9p bmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnN4YiwgdGhfaW5kZXhl ZF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFy X3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnN4aCwgdGhf aW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zf c2NhbGFyX3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnN4 dywgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywg YWxsX3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElP TiAodnN1eGIsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25lX21f cHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZf RlVOQ1RJT04gKHZzdXhoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwg bm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcykNCitE RUZfUlZWX0ZVTkNUSU9OICh2c3V4dywgdGhfaW5kZXhlZF9sb2Fkc3RvcmVf d2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9pbmRleF9v cHMpDQorREVGX1JWVl9GVU5DVElPTiAodmV4dF94X3YsIHRoX2V4dHJhY3Qs IG5vbmVfcHJlZHMsIGl1X3hfc191X29wcykNCisjdW5kZWYgUkVRVUlSRURf RVhURU5TSU9OUw0KKw0KKyN1bmRlZiBERUZfUlZWX0ZVTkNUSU9ODQpkaWZm IC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQgYi9n Y2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZA0KaW5kZXggNjk2Yjgx NTI1MmQuLjVmZTliYTA4YzRlIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9y aXNjdi90aGVhZC12ZWN0b3IubWQNCisrKyBiL2djYy9jb25maWcvcmlzY3Yv dGhlYWQtdmVjdG9yLm1kDQpAQCAtMSw3ICsxLDk1IEBADQooZGVmaW5lX2Nf ZW51bSAidW5zcGVjIiBbDQorICBVTlNQRUNfVEhfVkxCDQorICBVTlNQRUNf VEhfVkxCVQ0KKyAgVU5TUEVDX1RIX1ZMSA0KKyAgVU5TUEVDX1RIX1ZMSFUN CisgIFVOU1BFQ19USF9WTFcNCisgIFVOU1BFQ19USF9WTFdVDQorDQorICBV TlNQRUNfVEhfVkxTQg0KKyAgVU5TUEVDX1RIX1ZMU0JVDQorICBVTlNQRUNf VEhfVkxTSA0KKyAgVU5TUEVDX1RIX1ZMU0hVDQorICBVTlNQRUNfVEhfVkxT Vw0KKyAgVU5TUEVDX1RIX1ZMU1dVDQorDQorICBVTlNQRUNfVEhfVkxYQg0K KyAgVU5TUEVDX1RIX1ZMWEJVDQorICBVTlNQRUNfVEhfVkxYSA0KKyAgVU5T UEVDX1RIX1ZMWEhVDQorICBVTlNQRUNfVEhfVkxYVw0KKyAgVU5TUEVDX1RI X1ZMWFdVDQorDQorICBVTlNQRUNfVEhfVlNVWEINCisgIFVOU1BFQ19USF9W U1VYSA0KKyAgVU5TUEVDX1RIX1ZTVVhXDQorDQogICBVTlNQRUNfVEhfVldM RFNUDQpdKQ0KKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WTE1F TV9PUCBbDQorICBVTlNQRUNfVEhfVkxCIFVOU1BFQ19USF9WTEJVDQorICBV TlNQRUNfVEhfVkxIIFVOU1BFQ19USF9WTEhVDQorICBVTlNQRUNfVEhfVkxX IFVOU1BFQ19USF9WTFdVDQorXSkNCisNCisoZGVmaW5lX2ludF9pdGVyYXRv ciBVTlNQRUNfVEhfVkxTTUVNX09QIFsNCisgIFVOU1BFQ19USF9WTFNCIFVO U1BFQ19USF9WTFNCVQ0KKyAgVU5TUEVDX1RIX1ZMU0ggVU5TUEVDX1RIX1ZM U0hVDQorICBVTlNQRUNfVEhfVkxTVyBVTlNQRUNfVEhfVkxTV1UNCitdKQ0K Kw0KKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WTFhNRU1fT1Ag Ww0KKyAgVU5TUEVDX1RIX1ZMWEIgVU5TUEVDX1RIX1ZMWEJVDQorICBVTlNQ RUNfVEhfVkxYSCBVTlNQRUNfVEhfVkxYSFUNCisgIFVOU1BFQ19USF9WTFhX IFVOU1BFQ19USF9WTFhXVQ0KK10pDQorDQorKGRlZmluZV9pbnRfYXR0ciB2 bG1lbV9vcF9hdHRyIFsNCisgIChVTlNQRUNfVEhfVkxCICJiIikgKFVOU1BF Q19USF9WTEJVICJidSIpDQorICAoVU5TUEVDX1RIX1ZMSCAiaCIpIChVTlNQ RUNfVEhfVkxIVSAiaHUiKQ0KKyAgKFVOU1BFQ19USF9WTFcgInciKSAoVU5T UEVDX1RIX1ZMV1UgInd1IikNCisgIChVTlNQRUNfVEhfVkxTQiAiYiIpIChV TlNQRUNfVEhfVkxTQlUgImJ1IikNCisgIChVTlNQRUNfVEhfVkxTSCAiaCIp IChVTlNQRUNfVEhfVkxTSFUgImh1IikNCisgIChVTlNQRUNfVEhfVkxTVyAi dyIpIChVTlNQRUNfVEhfVkxTV1UgInd1IikNCisgIChVTlNQRUNfVEhfVkxY QiAiYiIpIChVTlNQRUNfVEhfVkxYQlUgImJ1IikNCisgIChVTlNQRUNfVEhf VkxYSCAiaCIpIChVTlNQRUNfVEhfVkxYSFUgImh1IikNCisgIChVTlNQRUNf VEhfVkxYVyAidyIpIChVTlNQRUNfVEhfVkxYV1UgInd1IikNCisgIChVTlNQ RUNfVEhfVlNVWEIgImIiKQ0KKyAgKFVOU1BFQ19USF9WU1VYSCAiaCIpDQor ICAoVU5TUEVDX1RIX1ZTVVhXICJ3IikNCitdKQ0KKw0KKyhkZWZpbmVfaW50 X2F0dHIgdmxtZW1fb3JkZXJfYXR0ciBbDQorICAoVU5TUEVDX1RIX1ZMWEIg IiIpDQorICAoVU5TUEVDX1RIX1ZMWEggIiIpDQorICAoVU5TUEVDX1RIX1ZM WFcgIiIpDQorICAoVU5TUEVDX1RIX1ZTVVhCICJ1IikNCisgIChVTlNQRUNf VEhfVlNVWEggInUiKQ0KKyAgKFVOU1BFQ19USF9WU1VYVyAidSIpDQorXSkN CisNCisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVlNNRU1fT1Ag Ww0KKyAgVU5TUEVDX1RIX1ZMQg0KKyAgVU5TUEVDX1RIX1ZMSA0KKyAgVU5T UEVDX1RIX1ZMVw0KK10pDQorDQorKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5T UEVDX1RIX1ZTU01FTV9PUCBbDQorICBVTlNQRUNfVEhfVkxTQg0KKyAgVU5T UEVDX1RIX1ZMU0gNCisgIFVOU1BFQ19USF9WTFNXDQorXSkNCisNCisoZGVm aW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVlNYTUVNX09QIFsNCisgIFVO U1BFQ19USF9WTFhCDQorICBVTlNQRUNfVEhfVkxYSA0KKyAgVU5TUEVDX1RI X1ZMWFcNCisgIFVOU1BFQ19USF9WU1VYQg0KKyAgVU5TUEVDX1RIX1ZTVVhI DQorICBVTlNQRUNfVEhfVlNVWFcNCitdKQ0KKw0KKGRlZmluZV9tb2RlX2l0 ZXJhdG9yIFZfVkxTX1ZUIFtWIFZMUyBWVF0pDQooZGVmaW5lX21vZGVfaXRl cmF0b3IgVl9WQl9WTFNfVlQgW1YgVkIgVkxTIFZUXSkNCkBAIC0xMDAsMyAr MTg4LDE2NSBAQA0KICAgfQ0KICAgWyhzZXRfYXR0ciAidHlwZSIgInZsZG0s dnN0bSx2bWFsdSx2bWFsdSx2bWFsdSIpDQogICAgKHNldF9hdHRyICJtb2Rl IiAiPE1PREU+IildKQ0KKw0KKyhkZWZpbmVfZXhwYW5kICJAcHJlZF9tb3Zf d2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iDQorICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWX1ZMUyAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIpDQorICAg IChpZl90aGVuX2Vsc2U6Vl9WTFMNCisgICAgICAodW5zcGVjOjxWTT4NCisg WyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIp DQorIChtYXRjaF9vcGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIp DQorIChtYXRjaF9vcGVyYW5kIDUgImNvbnN0X2ludF9vcGVyYW5kIikNCisg KG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJhbmQiKQ0KKyAobWF0 Y2hfb3BlcmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCIpDQorIChyZWc6U0kg VkxfUkVHTlVNKQ0KKyAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19U SF9WTE1FTV9PUCkNCisgICAgICAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAzICJ2 ZWN0b3JfbW92ZV9vcGVyYW5kIikNCisgICAgICAobWF0Y2hfb3BlcmFuZDpW X1ZMUyAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIpKSldDQorICAiVEFSR0VU X1hUSEVBRFZFQ1RPUiINCisgIHt9KQ0KKw0KKyhkZWZpbmVfaW5zbl9hbmRf c3BsaXQgIipwcmVkX21vdl93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIN CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZfVkxTIDAgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAgICAgIj12ciwgICAgdnIsICAgIHZkLCAgICAgbSwgICAg dnIsICAgIHZyIikNCisgICAgKGlmX3RoZW5fZWxzZTpWX1ZMUw0KKyAgICAg ICh1bnNwZWM6PFZNPg0KKyBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0 b3JfbWFza19vcGVyYW5kIiAgICAidm1XYzEsICAgV2MxLCAgICB2bSwgdm1X YzEsICAgV2MxLCAgIFdjMSIpDQorIChtYXRjaF9vcGVyYW5kIDQgInZlY3Rv cl9sZW5ndGhfb3BlcmFuZCIgICAgICAgIiAgIHJLLCAgICBySywgICAgckss ICAgIHJLLCAgICBySywgICAgcksiKQ0KKyAobWF0Y2hfb3BlcmFuZCA1ICJj b25zdF9pbnRfb3BlcmFuZCIgICAiICAgIGksICAgICBpLCAgICAgaSwgICAg IGksICAgICBpLCAgICAgaSIpDQorIChtYXRjaF9vcGVyYW5kIDYgImNvbnN0 X2ludF9vcGVyYW5kIiAgICIgICAgaSwgICAgIGksICAgICBpLCAgICAgaSwg ICAgIGksICAgICBpIikNCisgKG1hdGNoX29wZXJhbmQgNyAiY29uc3RfaW50 X29wZXJhbmQiICAgIiAgICBpLCAgICAgaSwgICAgIGksICAgICBpLCAgICAg aSwgICAgIGkiKQ0KKyAocmVnOlNJIFZMX1JFR05VTSkNCisgKHJlZzpTSSBW VFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhfVkxNRU1fT1ApDQorICAgICAgKG1h dGNoX29wZXJhbmQ6Vl9WTFMgMyAicmVnX29yX21lbV9vcGVyYW5kIiAgICAg ICAiICAgIG0sICAgICBtLCAgICAgbSwgICAgdnIsICAgIHZyLCAgICB2ciIp DQorICAgICAgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMiAidmVjdG9yX21lcmdl X29wZXJhbmQiICAgICAiICAgIDAsICAgIHZ1LCAgICB2dSwgICAgdnUsICAg IHZ1LCAgICAgMCIpKSldDQorICAiKFRBUkdFVF9YVEhFQURWRUNUT1INCisg ICAgJiYgKHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzBdLCA8TU9ERT5t b2RlKQ0KKyB8fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1szXSwgPE1P REU+bW9kZSkpKSINCisgICJADQorICAgdmw8dmxtZW1fb3BfYXR0cj4udlx0 JTAsJTMlcDENCisgICB2bDx2bG1lbV9vcF9hdHRyPi52XHQlMCwlMw0KKyAg IHZsPHZsbWVtX29wX2F0dHI+LnZcdCUwLCUzLCUxLnQNCisgICB2czx2bG1l bV9vcF9hdHRyPi52XHQlMywlMCVwMQ0KKyAgIHZtdi52LnZcdCUwLCUzDQor ICAgdm12LnYudlx0JTAsJTMiDQorICAiJiYgcmlzY3ZfdmVjdG9yOjp3aG9s ZV9yZWdfdG9fcmVnX21vdmVfcCAob3BlcmFuZHMsIDxNT0RFPm1vZGUsIDcp Ig0KKyAgWyhzZXQgKG1hdGNoX2R1cCAwKSAobWF0Y2hfZHVwIDMpKV0NCisg ICIiDQorICBbKHNldF9hdHRyICJ0eXBlIiAidmxkZSx2bGRlLHZsZGUsdnN0 ZSx2aW1vdix2aW1vdiIpDQorICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+ IildKQ0KKw0KKyhkZWZpbmVfaW5zbiAiQHByZWRfc3RvcmVfd2lkdGg8dmxt ZW1fb3BfYXR0cj48bW9kZT4iDQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpW SSAwICJtZW1vcnlfb3BlcmFuZCIgIittIikNCisgKGlmX3RoZW5fZWxzZTpW SQ0KKyAgICh1bnNwZWM6PFZNPg0KKyAgICAgWyhtYXRjaF9vcGVyYW5kOjxW TT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2MxIikNCisgICAgICAo bWF0Y2hfb3BlcmFuZCAzICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQiICAgICIg ICBySyIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNCAiY29uc3RfaW50X29w ZXJhbmQiICIgICAgaSIpDQorICAgICAgKHJlZzpTSSBWTF9SRUdOVU0pDQor ICAgICAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhfVlNNRU1f T1ApDQorICAgKG1hdGNoX29wZXJhbmQ6VkkgMiAicmVnaXN0ZXJfb3BlcmFu ZCIgIiAgICB2ciIpDQorICAgKG1hdGNoX2R1cCAwKSkpXQ0KKyAgIlRBUkdF VF9YVEhFQURWRUNUT1IiDQorICAidnM8dmxtZW1fb3BfYXR0cj4udlx0JTIs JTAlcDEiDQorICBbKHNldF9hdHRyICJ0eXBlIiAidnN0ZSIpDQorICAgKHNl dF9hdHRyICJtb2RlIiAiPE1PREU+IikNCisgICAoc2V0IChhdHRyICJhdmxf dHlwZV9pZHgiKSAoY29uc3RfaW50IDQpKQ0KKyAgIChzZXRfYXR0ciAidmxf b3BfaWR4IiAiMyIpXSkNCisNCisoZGVmaW5lX2luc24gIkBwcmVkX3N0cmlk ZWRfbG9hZF93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiINCisgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlZJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAg ICI9dnIsICAgIHZyLCAgICB2ZCIpDQorIChpZl90aGVuX2Vsc2U6VkkNCisg ICAodW5zcGVjOjxWTT4NCisgICAgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEg InZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2bVdjMSwgICBXYzEsICAgIHZtIikN CisgICAgICAobWF0Y2hfb3BlcmFuZCA1ICJ2ZWN0b3JfbGVuZ3RoX29wZXJh bmQiICAgICIgICBySywgICAgckssICAgIHJLIikNCisgICAgICAobWF0Y2hf b3BlcmFuZCA2ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgICBpLCAgICAgaSwg ICAgIGkiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDcgImNvbnN0X2ludF9v cGVyYW5kIiAiICAgIGksICAgICBpLCAgICAgaSIpDQorICAgICAgKG1hdGNo X29wZXJhbmQgOCAiY29uc3RfaW50X29wZXJhbmQiICIgICAgaSwgICAgIGks ICAgICBpIikNCisgICAgICAocmVnOlNJIFZMX1JFR05VTSkNCisgICAgICAo cmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WTFNNRU1fT1ApDQor ICAgKHVuc3BlYzpWSQ0KKyAgICAgWyhtYXRjaF9vcGVyYW5kOlZJIDMgIm1l bW9yeV9vcGVyYW5kIiAiICAgIG0sICAgICBtLCAgICAgbSIpDQorICAgICAg KG1hdGNoX29wZXJhbmQgNCAicG1vZGVfcmVnX29yXzBfb3BlcmFuZCIgICAi ICAgckosICAgIHJKLCAgICBySiIpXSBVTlNQRUNfVEhfVkxTTUVNX09QKQ0K KyAgIChtYXRjaF9vcGVyYW5kOlZJIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5k IiAgICAgICIgICAgMCwgICAgdnUsICAgIHZ1IikpKV0NCisgICJUQVJHRVRf WFRIRUFEVkVDVE9SIg0KKyAgInZsczx2bG1lbV9vcF9hdHRyPi52XHQlMCwl MywlejQlcDEiDQorICBbKHNldF9hdHRyICJ0eXBlIiAidmxkcyIpDQorICAg KHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQ0KKw0KKyhkZWZpbmVfaW5z biAiQHByZWRfc3RyaWRlZF9zdG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxt b2RlPiINCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJIDAgIm1lbW9yeV9v cGVyYW5kIiAiK20iKQ0KKyAoaWZfdGhlbl9lbHNlOlZJDQorICAgKHVuc3Bl Yzo8Vk0+DQorICAgICBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3Jf bWFza19vcGVyYW5kIiAidm1XYzEiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5k IDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIgICAgIiAgIHJLIikNCisgICAg ICAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgICBp IikNCisgICAgICAocmVnOlNJIFZMX1JFR05VTSkNCisgICAgICAocmVnOlNJ IFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WU1NNRU1fT1ApDQorICAgKHVu c3BlYzpWSQ0KKyAgICAgWyhtYXRjaF9vcGVyYW5kIDIgInBtb2RlX3JlZ19v cl8wX29wZXJhbmQiICAgIiAgIHJKIikNCisgICAgICAobWF0Y2hfb3BlcmFu ZDpWSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAiICAgdnIiKV0gVU5T UEVDX1RIX1ZTU01FTV9PUCkNCisgICAobWF0Y2hfZHVwIDApKSldDQorICAi VEFSR0VUX1hUSEVBRFZFQ1RPUiINCisgICJ2c3M8dmxtZW1fb3BfYXR0cj4u dlx0JTMsJTAsJXoyJXAxIg0KKyAgWyhzZXRfYXR0ciAidHlwZSIgInZzdHMi KQ0KKyAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpDQorICAgKHNldCAo YXR0ciAiYXZsX3R5cGVfaWR4IikgKGNvbnN0X2ludCA1KSldKQ0KKw0KKyhk ZWZpbmVfaW5zbiAiQHByZWRfaW5kZXhlZF9sb2FkX3dpZHRoPHZsbWVtX29w X2F0dHI+PG1vZGU+Ig0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgICAgICAiPXZkLCB2cix2ZCwgdnIiKQ0KKyAo aWZfdGhlbl9lbHNlOlZJDQorICAgKHVuc3BlYzo8Vk0+DQorICAgICBbKG1h dGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAgIiB2 bSxXYzEsdm0sV2MxIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA1ICJ2ZWN0 b3JfbGVuZ3RoX29wZXJhbmQiICAgICAiIHJLLCBySyxySywgcksiKQ0KKyAg ICAgIChtYXRjaF9vcGVyYW5kIDYgImNvbnN0X2ludF9vcGVyYW5kIiAiICBp LCAgaSwgaSwgIGkiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDcgImNvbnN0 X2ludF9vcGVyYW5kIiAiICBpLCAgaSwgaSwgIGkiKQ0KKyAgICAgIChtYXRj aF9vcGVyYW5kIDggImNvbnN0X2ludF9vcGVyYW5kIiAiICBpLCAgaSwgaSwg IGkiKQ0KKyAgICAgIChyZWc6U0kgVkxfUkVHTlVNKQ0KKyAgICAgIChyZWc6 U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZMWE1FTV9PUCkNCisgICAo dW5zcGVjOlZJDQorICAgICBbKG1hdGNoX29wZXJhbmQgMyAicG1vZGVfcmVn X29yXzBfb3BlcmFuZCIgICAgIiBySiwgckosckosIHJKIikNCisgICAgICAo bWVtOkJMSyAoc2NyYXRjaCkpDQorICAgICAgKG1hdGNoX29wZXJhbmQ6Vkkg NCAicmVnaXN0ZXJfb3BlcmFuZCIgIiB2ciwgdnIsdnIsIHZyIildIFVOU1BF Q19USF9WTFhNRU1fT1ApDQorICAgKG1hdGNoX29wZXJhbmQ6VkkgMiAidmVj dG9yX21lcmdlX29wZXJhbmQiICAgICAgICIgdnUsIHZ1LCAwLCAgMCIpKSld DQorICAiVEFSR0VUX1hUSEVBRFZFQ1RPUiINCisgICJ2bHg8dmxtZW1fb3Bf YXR0cj4udlx0JTAsKCV6MyksJTQlcDEiDQorICBbKHNldF9hdHRyICJ0eXBl IiAidmxkdXgiKQ0KKyAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkN CisNCisoZGVmaW5lX2luc24gIkBwcmVkX2luZGV4ZWRfPHZsbWVtX29yZGVy X2F0dHI+c3RvcmVfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iDQorICBb KHNldCAobWVtOkJMSyAoc2NyYXRjaCkpDQorICh1bnNwZWM6QkxLDQorICAg Wyh1bnNwZWM6PFZNPg0KKyAgICAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMCAi dmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2MxIikNCisgICAgICAobWF0Y2hf b3BlcmFuZCA0ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQiICAgICIgICBySyIp DQorICAgICAgKG1hdGNoX29wZXJhbmQgNSAiY29uc3RfaW50X29wZXJhbmQi ICIgICAgaSIpDQorICAgICAgKHJlZzpTSSBWTF9SRUdOVU0pDQorICAgICAg KHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhfVlNYTUVNX09QKQ0K KyAgICAobWF0Y2hfb3BlcmFuZCAxICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5k IiAgICAgICIgIHJKIikNCisgICAgKG1hdGNoX29wZXJhbmQ6VkkgMiAicmVn aXN0ZXJfb3BlcmFuZCIgIiAgdnIiKQ0KKyAgICAobWF0Y2hfb3BlcmFuZDpW SSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAgIiAgdnIiKV0gVU5TUEVDX1RIX1ZT WE1FTV9PUCkpXQ0KKyAgIlRBUkdFVF9YVEhFQURWRUNUT1IiDQorICAidnM8 dmxtZW1fb3JkZXJfYXR0cj54PHZsbWVtX29wX2F0dHI+LnZcdCUzLCglejEp LCUyJXAwIg0KKyAgWyhzZXRfYXR0ciAidHlwZSIgInZzdHV4IikNCisgICAo c2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pDQorDQorKGRlZmluZV9leHBh bmQgIkBwcmVkX3RoX2V4dHJhY3Q8bW9kZT4iDQorICBbKHNldCAobWF0Y2hf b3BlcmFuZDo8VkVMPiAwICJyZWdpc3Rlcl9vcGVyYW5kIikNCisgKHVuc3Bl Yzo8VkVMPg0KKyAgIFsodmVjX3NlbGVjdDo8VkVMPg0KKyAgICAgIChtYXRj aF9vcGVyYW5kOlZfVkxTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIikNCisgICAg ICAocGFyYWxsZWwgWyhtYXRjaF9vcGVyYW5kOkRJIDIgInJlZ2lzdGVyX29w ZXJhbmQiICJyIildKSkNCisgICAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBV TlNQRUNfVlBSRURJQ0FURSkpXQ0KKyAgIlRBUkdFVF9YVEhFQURWRUNUT1Ii DQore30pDQorDQorKGRlZmluZV9pbnNuICIqcHJlZF90aF9leHRyYWN0PG1v ZGU+Ig0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0 ZXJfb3BlcmFuZCIgICAiPXIiKQ0KKyAgKHVuc3BlYzo8VkVMPg0KKyAgICBb KHZlY19zZWxlY3Q6PFZFTD4NCisgICAgICAgKG1hdGNoX29wZXJhbmQ6Vl9W TFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2ciIpDQorICAgICAgIChwYXJh bGxlbCBbKG1hdGNoX29wZXJhbmQ6REkgMiAicmVnaXN0ZXJfb3BlcmFuZCIg InIiKV0pKQ0KKyAgICAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNf VlBSRURJQ0FURSkpXQ0KKyAgIlRBUkdFVF9YVEhFQURWRUNUT1IiDQorICAi dmV4dC54LnZcdCUwLCUxLCUyIg0KKyAgWyhzZXRfYXR0ciAidHlwZSIgInZp bW92dngiKQ0KKyAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkNCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L3h0aGVhZHZlY3Rvci92bGItdnNiLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGItdnNiLmMNCm5ldyBm aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uM2MxMmMxMjQ1 OTcNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuYw0KQEAgLTAs MCArMSw2OCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBk Zy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWls cDMyZCAtTzMiIH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rp b24tYm9kaWVzICIqKiIgIiIgfSB9ICovDQorI2luY2x1ZGUgInJpc2N2X3Ro X3ZlY3Rvci5oIg0KKw0KKy8qDQorKiogZjE6DQorKiogdGgudnNldGl2bGlc dHplcm8sNCxlMzIsbTEsdHUsbWENCisqKiB0aC52bGJcLnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCkNCisqKiB0aC52bGJcLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkNCisqKiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2WzAtOV0r LFxzKnZbMC05XSsNCisqKiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2WzAt OV0rLFxzKnZbMC05XSsNCisqKiB0aC52c2JcLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjEgKHZvaWQgKiBpbiwg dm9pZCAqb3V0KQ0KK3sNCisgICAgdmludDMybTFfdCB2ID0gX19yaXNjdl90 aF92bGJfdl9pMzJtMSAoaW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYyID0g X19yaXNjdl90aF92bGJfdl9pMzJtMV90dSAodiwgaW4sIDQpOw0KKyAgICB2 aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z2X2kzMm0xICh2MiwgdjIs IDQpOw0KKyAgICB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z2X2kz Mm0xX3R1ICh2MywgdjIsIHYyLCA0KTsNCisgICAgX19yaXNjdl90aF92c2Jf dl9pMzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjI6DQor KiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQor KiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52 c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQ0KKyoqIHRoLnZsYi52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52dlx0 dlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSsNCisqKiB0aC52YWRkXC52 dlx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqdlswLTldKyxccyp2MC50 DQorKiogdGgudnNiLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiBy ZXQNCisqLw0KK3ZvaWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0KQ0KK3sN CisgICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAg IGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZpbnQzMm0x X3QgdiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTEgKGluLCA0KTsNCisgICAg dmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTFfbSAobWFz aywgaW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRk X3Z2X2kzMm0xICh2MiwgdjIsIDQpOw0KKyAgICB2aW50MzJtMV90IHY0ID0g X19yaXNjdl92YWRkX3Z2X2kzMm0xX20gKG1hc2ssIHYzLCB2MywgNCk7DQor ICAgIF9fcmlzY3ZfdGhfdnNiX3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30N CisNCisvKg0KKyoqIGYzOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6 ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpDQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUs bXUNCisqKiB0aC52bGJcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisq KiB0aC52bGIudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50DQorKiog dGgudmFkZFwudnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rDQor KiogdGgudmFkZFwudnZcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKnZb MC05XSssXHMqdjAudA0KKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYzICh2b2lkICogaW4sIHZv aWQgKm91dCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMy X3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0K KyAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xIChp biwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYl92 X2kzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsNCisgICAgdmludDMybTFf dCB2MyA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMSAodjIsIHYyLCA0KTsNCisg ICAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMV90dW11 IChtYXNrLCB2MywgdjIsIHYyLCA0KTsNCisgICAgX19yaXNjdl90aF92c2Jf dl9pMzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zs YnUtdnNiLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KaW5kZXggMDAwMDAwMDAwMDAuLjMwYmVmMzY5Mzc1DQotLS0gL2Rldi9u dWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jDQpAQCAtMCwwICsxLDY4IEBADQor LyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1t YXJjaD1ydjMyZ2N4dGhlYWR2ZWN0b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioq IiAiIiB9IH0gKi8NCisjaW5jbHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgiDQor DQorLyoNCisqKiBmMToNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixt MSx0dSxtYQ0KKyoqIHRoLnZsYnVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkNCisqKiB0aC52bGJ1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQor KiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisq KiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoq IHRoLnZzYlwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0K KyovDQordm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90 IHgpDQorew0KKyAgICB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGJ1 X3ZfdTMybTEgKGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jp c2N2X3RoX3ZsYnVfdl91MzJtMV90dSAodiwgaW4sIDQpOw0KKyAgICB2dWlu dDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwg NCk7DQorICAgIHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3Uz Mm0xX3R1ICh2MywgdjIsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnNi X3ZfdTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisNCisvKg0KKyoqIGYyOg0K KyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQ0K KyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgu dnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdGEsbWENCisqKiB0aC52bGJ1LnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZp XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgudmFkZFwudmlc dHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50DQorKiog dGgudnNiLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisq Lw0KK3ZvaWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4 KQ0KK3sNCisgICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47 DQorICAgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZ1 aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4sIDQp Ow0KKyAgICB2dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxidV92X3Uz Mm0xX20gKG1hc2ssIGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjMgPSBf X3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOw0KKyAgICB2dWlu dDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV9tIChtYXNrLCB2 MywgLTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92c2Jfdl91MzJtMSAob3V0 LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjM6DQorKiogdGgudnNldHZs aVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVy byw0LGUzMixtMSx0dSxtdQ0KKyoqIHRoLnZsYnVcLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkNCisqKiB0aC52bGJ1LnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05 XSssXHMqLTE2DQorKiogdGgudmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2 WzAtOV0rLFxzKi0xNixccyp2MC50DQorKiogdGgudnNiLnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjMgKHZvaWQg KiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wz Ml90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFzbSB2b2xhdGls ZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZ1aW50MzJtMV90IHYgPSBfX3Jp c2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4sIDQpOw0KKyAgICB2dWludDMybTFf dCB2MiA9IF9fcmlzY3ZfdGhfdmxidV92X3UzMm0xX3R1bXUgKG1hc2ssIHYs IGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRf dnhfdTMybTEgKHYyLCAtMTYsIDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9 IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0x NiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnNiX3ZfdTMybTEgKG91dCwgdjQs IDQpOw0KK30NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgt dnNoLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAw MC4uM2M4YjVjY2MxNmINCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12 c2guYw0KQEAgLTAsMCArMSw2OCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVj dG9yIC1tYWJpPWlscDMyZCAtTzMiIH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg Y2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovDQorI2luY2x1 ZGUgInJpc2N2X3RoX3ZlY3Rvci5oIg0KKw0KKy8qDQorKiogZjE6DQorKiog dGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWENCisqKiB0aC52bGhc LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52bGhcLnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52YWRkXC52aVx0dlswLTld Kyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0r LFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgudnNoXC52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYxICh2b2lkICog aW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQ0KK3sNCisgICAgdmludDMybTFf dCB2ID0gX19yaXNjdl90aF92bGhfdl9pMzJtMSAoaW4sIDQpOw0KKyAgICB2 aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGhfdl9pMzJtMV90dSAodiwg aW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4 X2kzMm0xICh2MiwgLTE2LCA0KTsNCisgICAgdmludDMybTFfdCB2NCA9IF9f cmlzY3ZfdmFkZF92eF9pMzJtMV90dSAodjMsIHYyLCAtMTYsIDQpOw0KKyAg ICBfX3Jpc2N2X3RoX3ZzaF92X2kzMm0xIChvdXQsIHY0LCA0KTsNCit9DQor DQorLyoNCisqKiBmMjoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVy byxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14 MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1h DQorKiogdGgudmxoLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudA0K KyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQor KiogdGgudmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0x Nixccyp2MC50DQorKiogdGgudnNoLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAq b3V0LCBpbnQzMl90IHgpDQorew0KKyAgICB2Ym9vbDMyX3QgbWFzayA9ICoo dmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1v cnkiKTsNCisgICAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGhfdl9p MzJtMSAoaW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYyID0gX19yaXNjdl90 aF92bGhfdl9pMzJtMV9tIChtYXNrLCBpbiwgNCk7DQorICAgIHZpbnQzMm0x X3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCAtMTYsIDQpOw0K KyAgICB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX20g KG1hc2ssIHYzLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3ZzaF92X2kz Mm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBmMzoNCisqKiB0 aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0 aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRp dmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11DQorKiogdGgudmxoXC52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmxoLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxz KnZbMC05XSssXHMqLTE2DQorKiogdGgudmFkZFwudmlcdHZbMS05XVswLTld Pyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50DQorKiogdGgudnNoLnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjMg KHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpDQorew0KKyAgICB2 Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZv bGF0aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdmludDMybTFfdCB2ID0g X19yaXNjdl90aF92bGhfdl9pMzJtMSAoaW4sIDQpOw0KKyAgICB2aW50MzJt MV90IHYyID0gX19yaXNjdl90aF92bGhfdl9pMzJtMV90dW11IChtYXNrLCB2 LCBpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRf dnhfaTMybTEgKHYyLCAtMTYsIDQpOw0KKyAgICB2aW50MzJtMV90IHY0ID0g X19yaXNjdl92YWRkX3Z4X2kzMm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgLTE2 LCA0KTsNCisgICAgX19yaXNjdl90aF92c2hfdl9pMzJtMSAob3V0LCB2NCwg NCk7DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1 LXZzaC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAw MDAuLmI3YzAwNDA0ZjE4DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1 LXZzaC5jDQpAQCAtMCwwICsxLDY4IEBADQorLyogeyBkZy1kbyBjb21waWxl IH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2 ZWN0b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAqLw0KKy8qIHsgZGctZmluYWwg eyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCisjaW5j bHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgiDQorDQorLyoNCisqKiBmMToNCisq KiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQ0KKyoqIHRoLnZs aHVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52bGh1XC52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmFkZFwudmlcdHZb MC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0aC52YWRkXC52aVx0dlsw LTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZzaFwudlx0dlswLTld KywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMSAodm9p ZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpDQorew0KKyAgICB2dWlu dDMybTFfdCB2ID0gX19yaXNjdl90aF92bGh1X3ZfdTMybTEgKGluLCA0KTsN CisgICAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJt MV90dSAodiwgaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MyA9IF9fcmlz Y3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZ1aW50MzJt MV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1ICh2MywgdjIsIC0x NiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnNoX3ZfdTMybTEgKG91dCwgdjQs IDQpOw0KK30NCisNCisvKg0KKyoqIGYyOg0KKyoqIHRoLnZzZXR2bGlcdFth LXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudnNldGl2bGlcdHplcm8sNCxl MzIsbTEsdGEsbWENCisqKiB0aC52bGh1LnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05 XSssXHMqLTE2DQorKiogdGgudmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2 WzAtOV0rLFxzKi0xNixccyp2MC50DQorKiogdGgudnNoLnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjIgKHZvaWQg KiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wz Ml90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFzbSB2b2xhdGls ZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZ1aW50MzJtMV90IHYgPSBfX3Jp c2N2X3RoX3ZsaHVfdl91MzJtMSAoaW4sIDQpOw0KKyAgICB2dWludDMybTFf dCB2MiA9IF9fcmlzY3ZfdGhfdmxodV92X3UzMm0xX20gKG1hc2ssIGluLCA0 KTsNCisgICAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMy bTEgKHYyLCAtMTYsIDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlz Y3ZfdmFkZF92eF91MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsNCisgICAg X19yaXNjdl90aF92c2hfdl91MzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KKw0K Ky8qDQorKiogZjM6DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8s ZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQ0K KyoqIHRoLnZsaHVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0 aC52bGh1LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudA0KKyoqIHRo LnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgu dmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2 MC50DQorKiogdGgudnNoLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisq KiByZXQNCisqLw0KK3ZvaWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1 aW50MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29s MzJfdCopaW47DQorICAgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7 DQorICAgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJt MSAoaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhf dmxodV92X3UzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsNCisgICAgdnVp bnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYs IDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91 MzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7DQorICAgIF9fcmlz Y3ZfdGhfdnNoX3ZfdTMybTEgKG91dCwgdjQsIDQpOw0KK30NCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVh ZHZlY3Rvci92bHctdnN3LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3LmMNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uMTdhNTMwMTJhY2YNCi0t LSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYw0KQEAgLTAsMCArMSw2 OCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAt TzMiIH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9k aWVzICIqKiIgIiIgfSB9ICovDQorI2luY2x1ZGUgInJpc2N2X3RoX3ZlY3Rv ci5oIg0KKw0KKy8qDQorKiogZjE6DQorKiogdGgudnNldGl2bGlcdHplcm8s NCxlMzIsbTEsdHUsbWENCisqKiB0aC52bHdcLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkNCisqKiB0aC52bHdcLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkNCisqKiB0aC52YWRkXC52eFx0dlswLTldKyxccyp2WzAtOV0rLFxzKlth LXgwLTldKw0KKyoqIHRoLnZhZGRcLnZ4XHR2WzAtOV0rLFxzKnZbMC05XSss XHMqW2EteDAtOV0rDQorKiogdGgudnN3XC52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYxICh2b2lkICogaW4sIHZv aWQgKm91dCwgaW50MzJfdCB4KQ0KK3sNCisgICAgdmludDMybTFfdCB2ID0g X19yaXNjdl90aF92bHdfdl9pMzJtMSAoaW4sIDQpOw0KKyAgICB2aW50MzJt MV90IHYyID0gX19yaXNjdl90aF92bHdfdl9pMzJtMV90dSAodiwgaW4sIDQp Ow0KKyAgICB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0x ICh2MiwgeCwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3Zh ZGRfdnhfaTMybTFfdHUgKHYzLCB2MiwgeCwgNCk7DQorICAgIF9fcmlzY3Zf dGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisNCisvKg0KKyoq IGYyOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0 YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQor KiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdGEsbWENCisqKiB0aC52 bHcudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50DQorKiogdGgudmFk ZFwudnhcdHZbMC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsNCisqKiB0 aC52YWRkXC52eFx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqW2EteDAt OV0rLFxzKnYwLnQNCisqKiB0aC52c3cudlx0dlswLTldKywwXChbYS14MC05 XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMiAodm9pZCAqIGluLCB2b2lk ICpvdXQsIGludDMyX3QgeCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0g Kih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1l bW9yeSIpOw0KKyAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd192 X2kzMm0xIChpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2 X3RoX3Zsd192X2kzMm0xX20gKG1hc2ssIGluLCA0KTsNCisgICAgdmludDMy bTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIHgsIDQpOw0K KyAgICB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX20g KG1hc2ssIHYzLCB4LCA0KTsNCisgICAgX19yaXNjdl90aF92c3dfdl9pMzJt MSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjM6DQorKiogdGgu dnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgu dmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZs aVx0emVybyw0LGUzMixtMSx0dSxtdQ0KKyoqIHRoLnZsd1wudlx0dlswLTld KywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZsdy52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52eFx0dlswLTldKyxccyp2 WzAtOV0rLFxzKlthLXgwLTldKw0KKyoqIHRoLnZhZGRcLnZ4XHR2WzEtOV1b MC05XT8sXHMqdlswLTldKyxccypbYS14MC05XSssXHMqdjAudA0KKyoqIHRo LnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8N Cit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQ0K K3sNCisgICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQor ICAgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZpbnQz Mm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTEgKGluLCA0KTsNCisg ICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTFfdHVt dSAobWFzaywgdiwgaW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYzID0gX19y aXNjdl92YWRkX3Z4X2kzMm0xICh2MiwgeCwgNCk7DQorICAgIHZpbnQzMm0x X3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfdHVtdSAobWFzaywgdjMs IHYyLCB4LCA0KTsNCisgICAgX19yaXNjdl90aF92c3dfdl9pMzJtMSAob3V0 LCB2NCwgNCk7DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rv ci92bHd1LXZzdy5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMDAuLmIxODdjZmM4NTJiDQotLS0gL2Rldi9udWxsDQorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rv ci92bHd1LXZzdy5jDQpAQCAtMCwwICsxLDY4IEBADQorLyogeyBkZy1kbyBj b21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4 dGhlYWR2ZWN0b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8N CisjaW5jbHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgiDQorDQorLyoNCisqKiBm MToNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQ0KKyoq IHRoLnZsd3VcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52 bHd1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmFkZFwu dmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0aC52YWRkXC52 aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZzd1wudlx0 dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBm MSAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpDQorew0KKyAg ICB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTEgKGlu LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vf dl91MzJtMV90dSAodiwgaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MyA9 IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZ1 aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1ICh2Mywg djIsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnN3X3ZfdTMybTEgKG91 dCwgdjQsIDQpOw0KK30NCisNCisvKg0KKyoqIGYyOg0KKyoqIHRoLnZzZXR2 bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudnNldGl2bGlcdHpl cm8sNCxlMzIsbTEsdGEsbWENCisqKiB0aC52bHd1LnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxz KnZbMC05XSssXHMqLTE2DQorKiogdGgudmFkZFwudmlcdHZbMS05XVswLTld Pyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50DQorKiogdGgudnN3LnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjIg KHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQ0KK3sNCisgICAg dmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFzbSB2 b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZ1aW50MzJtMV90IHYg PSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMSAoaW4sIDQpOw0KKyAgICB2dWlu dDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3dV92X3UzMm0xX20gKG1hc2ss IGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRf dnhfdTMybTEgKHYyLCAtMTYsIDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9 IF9fcmlzY3ZfdmFkZF92eF91MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsN CisgICAgX19yaXNjdl90aF92c3dfdl91MzJtMSAob3V0LCB2NCwgNCk7DQor fQ0KKw0KKy8qDQorKiogZjM6DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0r LHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0 dSxtdQ0KKyoqIHRoLnZsd3VcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkN CisqKiB0aC52bHd1LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudA0K KyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQor KiogdGgudmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0x Nixccyp2MC50DQorKiogdGgudnN3LnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAq b3V0LCB1aW50MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wzMl90IG1hc2sgPSAq KHZib29sMzJfdCopaW47DQorICAgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVt b3J5Iik7DQorICAgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd3Vf dl91MzJtMSAoaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MiA9IF9fcmlz Y3ZfdGhfdmx3dV92X3UzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsNCisg ICAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYy LCAtMTYsIDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFk ZF92eF91MzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7DQorICAg IF9fcmlzY3ZfdGhfdnN3X3ZfdTMybTEgKG91dCwgdjQsIDQpOw0KK30NCi0t IA0KMi4xNy4xDQogDQogDQogDQogDQo= ------=_001_NextPart627446185113_=------