Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fvxsu-0005bO-Ih for pgsql-hackers@arkaria.postgresql.org; Sat, 01 Sep 2018 04:51:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fvxss-0000Ya-1n for pgsql-hackers@arkaria.postgresql.org; Sat, 01 Sep 2018 04:51:42 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fvxsq-0000YT-Mo for pgsql-hackers@lists.postgresql.org; Sat, 01 Sep 2018 04:51:41 +0000 Received: from out1-smtp.messagingengine.com ([66.111.4.25]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fvxsl-0005yn-Ey for pgsql-hackers@postgresql.org; Sat, 01 Sep 2018 04:51:39 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 47B6320F20; Sat, 1 Sep 2018 00:51:34 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Sat, 01 Sep 2018 00:51:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=P1Rb5o7dlRUhwkzRzOgJ8sXMEvKaY xjZ944gIDYvZpQ=; b=ITw8kWwydj7mHsKauILim2KjRAP+GPYfoaxphn0ZrVjRV vhXAhqVr5I330Ulxre1jVFPOcCis7gBl4394Vt9O36fDZ+xfjheMnPrLlTr+uLnf FusWVnO2HPCLl7ZHOyEL9WP1ARqU31yvJdy/tVK+pTl/jUrUkPqkGts2WYihlWtx Tuk54SCpnXwlCIjNDUFr5P3LNDlfnwTpwfBWNFgx88ml3jt8H1KO3ocezjiet/5S V6+OC0pGVHZfZojyUNILBvSRYnuswhCv7rS9zB8VqtB0MqIqxSJ/eVyB/KAsMy1j XrtuBpqk/jXhEN3z5e/O1bO27QHjbxoAi8mcIq5cw== X-ME-Proxy: X-ME-Sender: Received: from april.pezone.net (x50abfb50.dyn.telefonica.de [80.171.251.80]) by mail.messagingengine.com (Postfix) with ESMTPA id A0D4410293; Sat, 1 Sep 2018 00:51:32 -0400 (EDT) Subject: Re: remove ancient pre-dlopen dynloader code From: Peter Eisentraut To: Andres Freund , Tom Lane References: <3e3c7552-978b-486a-1a4a-326ee31d0545@2ndquadrant.com> <20180809123059.32g25qn7dgd33iyq@alap3.anarazel.de> <26726.1533823423@sss.pgh.pa.us> <20180816083107.2f5gxbvlsgvnuit4@alap3.anarazel.de> <8022.1534425734@sss.pgh.pa.us> <20180816135928.qer5o7uxyaeolzet@alap3.anarazel.de> <10102.1534428424@sss.pgh.pa.us> <20180816141005.nkw5nwkmoip57ui6@alap3.anarazel.de> Cc: pgsql-hackers Openpgp: preference=signencrypt Autocrypt: addr=peter.eisentraut@2ndquadrant.com; prefer-encrypt=mutual; keydata= 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 3jI= Organization: 2ndQuadrant Message-ID: <92fe6039-16ea-483a-2cf9-ea58955006ab@2ndquadrant.com> Date: Sat, 1 Sep 2018 06:51:31 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------14C7B35813D4D102178F8943" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------14C7B35813D4D102178F8943 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit On 31/08/2018 10:52, Peter Eisentraut wrote: > On 16/08/2018 16:10, Andres Freund wrote: >>>> If I had my druthers, we'd just remove all that configure magic for >>>> selecting these files and just use ifdefs. Personally I find it >>>> occasionally that they're linked into place, rather than built under >>>> their original name. >>> >>> Even if we all agreed that was an improvement (which I'm not sure of), >>> it wouldn't fix this problem would it? On affected platforms, the >>> file would still be empty after preprocessing. >> >> Well, that depends on what you put into that file, it seems >> realistically combinable with a bunch of non-conditional code... > > How about this: We only have two nonstandard dlopen() implementations > left: Windows and (old) HP-UX. We move those into src/port/dlopen.c and > treat it like a regular libpgport member. That gets rid of all those > duplicative empty per-platform files. Updated patch. It needed some adjustments for Windows, per Appveyor, -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------14C7B35813D4D102178F8943 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v2-0001-Refactor-dlopen-support.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v2-0001-Refactor-dlopen-support.patch" RnJvbSBjYjdiYTY1NWQ0ZWIwMzI0MTJiZTBlNjNkNzVjNGU0Y2QwN2VlMDQ5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlcl9lQGdteC5u ZXQ+CkRhdGU6IFNhdCwgMSBTZXAgMjAxOCAwNjo0MToxNyArMDIwMApTdWJqZWN0OiBbUEFU Q0ggdjJdIFJlZmFjdG9yIGRsb3BlbigpIHN1cHBvcnQKCk5vd2FkYXlzLCBhbGwgcGxhdGZv cm1zIGV4Y2VwdCBXaW5kb3dzIGFuZCBvbGRlciBIUC1VWCBoYXZlIHN0YW5kYXJkCmRsb3Bl bigpIHN1cHBvcnQuICBTbyBoYXZpbmcgYSBzZXBhcmF0ZSBpbXBsZW1lbnRhdGlvbiBwZXIg cGxhdGZvcm0KdW5kZXIgc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvIGlzIGEgYml0IGV4 Y2Vzc2l2ZS4gIEluc3RlYWQsIHRyZWF0CmRsb3BlbigpIGxpa2Ugb3RoZXIgbGlicmFyeSBm dW5jdGlvbnMgdGhhdCBoYXBwZW4gdG8gYmUgbWlzc2luZwpzb21ldGltZXMgYW5kIHB1dCBh IHJlcGxhY2VtZW50IGltcGxlbWVudGF0aW9uIHVuZGVyIHNyYy9wb3J0Ly4KLS0tCiBjb25m aWd1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MyArKysrKysr KystLQogY29uZmlndXJlLmluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDggKy0tCiBzcmMvYmFja2VuZC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMiArLQogc3JjL2JhY2tlbmQvcG9ydC8uZ2l0aWdub3JlICAgICAgICAgICAgICAgICAg IHwgIDEgLQogc3JjL2JhY2tlbmQvcG9ydC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2FpeC5jICAgICAgICAgICAg ICB8ICA3IC0tCiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9haXguaCAgICAgICAgICAg ICAgfCAzOSAtLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9jeWd3aW4u YyAgICAgICAgICAgfCAgMyAtCiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9jeWd3aW4u aCAgICAgICAgICAgfCAzNiAtLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRl ci9kYXJ3aW4uYyAgICAgICAgICAgfCAzNSAtLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3BvcnQv ZHlubG9hZGVyL2Rhcndpbi5oICAgICAgICAgICB8ICA4IC0tLQogc3JjL2JhY2tlbmQvcG9y dC9keW5sb2FkZXIvZnJlZWJzZC5jICAgICAgICAgIHwgIDcgLS0KIHNyYy9iYWNrZW5kL3Bv cnQvZHlubG9hZGVyL2ZyZWVic2QuaCAgICAgICAgICB8IDM4IC0tLS0tLS0tLS0KIHNyYy9i YWNrZW5kL3BvcnQvZHlubG9hZGVyL2hwdXguYyAgICAgICAgICAgICB8IDY4IC0tLS0tLS0t LS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvaHB1eC5oICAgICAgICAg ICAgIHwgMjUgLS0tLS0tLQogc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvbGludXguYyAg ICAgICAgICAgIHwgIDcgLS0KIHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2xpbnV4Lmgg ICAgICAgICAgICB8IDM4IC0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVy L25ldGJzZC5jICAgICAgICAgICB8ICA3IC0tCiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRl ci9uZXRic2QuaCAgICAgICAgICAgfCAzOCAtLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9wb3J0 L2R5bmxvYWRlci9vcGVuYnNkLmMgICAgICAgICAgfCAgNyAtLQogc3JjL2JhY2tlbmQvcG9y dC9keW5sb2FkZXIvb3BlbmJzZC5oICAgICAgICAgIHwgMzggLS0tLS0tLS0tLQogc3JjL2Jh Y2tlbmQvcG9ydC9keW5sb2FkZXIvc29sYXJpcy5jICAgICAgICAgIHwgIDcgLS0KIHNyYy9i YWNrZW5kL3BvcnQvZHlubG9hZGVyL3NvbGFyaXMuaCAgICAgICAgICB8IDM4IC0tLS0tLS0t LS0KIHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL3dpbjMyLmggICAgICAgICAgICB8IDE5 IC0tLS0tCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyAgICAgICAgICAg fCAgMSAtCiBzcmMvYmFja2VuZC91dGlscy9mbWdyL2RmbWdyLmMgICAgICAgICAgICAgICAg fCAzMSArKysrLS0tLQogc3JjL2luY2x1ZGUvLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDEgLQogc3JjL2luY2x1ZGUvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDQgKy0KIHNyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluICAgICAgICAgICAg ICAgICAgICB8ICA4ICsrKwogc3JjL2luY2x1ZGUvcGdfY29uZmlnLmgud2luMzIgICAgICAg ICAgICAgICAgIHwgIDggKysrCiBzcmMvaW5jbHVkZS9wb3J0LmggICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAyMyArKysrKysKIHNyYy9pbmNsdWRlL3V0aWxzL2R5bmFtaWNfbG9h ZGVyLmggICAgICAgICAgICB8IDI1IC0tLS0tLS0KIC4uLi9wb3J0L2R5bmxvYWRlci93aW4z Mi5jID0+IHBvcnQvZGxvcGVuLmN9ICB8IDcyICsrKysrKysrKysrKysrKysrLS0KIHNyYy90 b29scy9tc3ZjL0luc3RhbGwucG0gICAgICAgICAgICAgICAgICAgICB8ICA1ICstCiBzcmMv dG9vbHMvbXN2Yy9Na3ZjYnVpbGQucG0gICAgICAgICAgICAgICAgICAgfCAgNSArLQogc3Jj L3Rvb2xzL21zdmMvU29sdXRpb24ucG0gICAgICAgICAgICAgICAgICAgIHwgIDcgLS0KIHNy Yy90b29scy9tc3ZjL2NsZWFuLmJhdCAgICAgICAgICAgICAgICAgICAgICB8ICAxIC0KIDM3 IGZpbGVzIGNoYW5nZWQsIDE3MiBpbnNlcnRpb25zKCspLCA1NDAgZGVsZXRpb25zKC0pCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvYWl4LmMKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9haXguaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2N5Z3dpbi5jCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvY3lnd2luLmgK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9kYXJ3aW4u YwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2Rhcndp bi5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvZnJl ZWJzZC5jCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIv ZnJlZWJzZC5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcG9ydC9keW5sb2Fk ZXIvaHB1eC5jCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcG9ydC9keW5sb2Fk ZXIvaHB1eC5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcG9ydC9keW5sb2Fk ZXIvbGludXguYwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BvcnQvZHlubG9h ZGVyL2xpbnV4LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9wb3J0L2R5bmxv YWRlci9uZXRic2QuYwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BvcnQvZHlu bG9hZGVyL25ldGJzZC5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcG9ydC9k eW5sb2FkZXIvb3BlbmJzZC5jCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcG9y dC9keW5sb2FkZXIvb3BlbmJzZC5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQv cG9ydC9keW5sb2FkZXIvc29sYXJpcy5jCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tl bmQvcG9ydC9keW5sb2FkZXIvc29sYXJpcy5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2Jh Y2tlbmQvcG9ydC9keW5sb2FkZXIvd2luMzIuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9p bmNsdWRlL3V0aWxzL2R5bmFtaWNfbG9hZGVyLmgKIHJlbmFtZSBzcmMve2JhY2tlbmQvcG9y dC9keW5sb2FkZXIvd2luMzIuYyA9PiBwb3J0L2Rsb3Blbi5jfSAoNTElKQoKZGlmZiAtLWdp dCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCBkZDk0YzViYmFiLi5kZDc3NzQyYzQ2 IDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0xNTA2MCw3ICsx NTA2MCw3IEBAIGZpCiBMSUJTX2luY2x1ZGluZ19yZWFkbGluZT0iJExJQlMiCiBMSUJTPWBl Y2hvICIkTElCUyIgfCBzZWQgLWUgJ3MvLWxlZGl0Ly9nJyAtZSAncy8tbHJlYWRsaW5lLy9n J2AKIAotZm9yIGFjX2Z1bmMgaW4gY2JydCBjbG9ja19nZXR0aW1lIGRsb3BlbiBmZGF0YXN5 bmMgZ2V0aWZhZGRycyBnZXRwZWVydWNyZWQgZ2V0cmxpbWl0IG1ic3Rvd2NzX2wgbWVtbW92 ZSBwb2xsIHBvc2l4X2ZhbGxvY2F0ZSBwc3RhdCBwdGhyZWFkX2lzX3RocmVhZGVkX25wIHJl YWRsaW5rIHNldHByb2N0aXRsZSBzZXRwcm9jdGl0bGVfZmFzdCBzZXRzaWQgc2htX29wZW4g c3ltbGluayBzeW5jX2ZpbGVfcmFuZ2UgdXRpbWUgdXRpbWVzIHdjc3RvbWJzX2wKK2ZvciBh Y19mdW5jIGluIGNicnQgY2xvY2tfZ2V0dGltZSBmZGF0YXN5bmMgZ2V0aWZhZGRycyBnZXRw ZWVydWNyZWQgZ2V0cmxpbWl0IG1ic3Rvd2NzX2wgbWVtbW92ZSBwb2xsIHBvc2l4X2ZhbGxv Y2F0ZSBwc3RhdCBwdGhyZWFkX2lzX3RocmVhZGVkX25wIHJlYWRsaW5rIHNldHByb2N0aXRs ZSBzZXRwcm9jdGl0bGVfZmFzdCBzZXRzaWQgc2htX29wZW4gc3ltbGluayBzeW5jX2ZpbGVf cmFuZ2UgdXRpbWUgdXRpbWVzIHdjc3RvbWJzX2wKIGRvIDoKICAgYXNfYWNfdmFyPWAkYXNf ZWNobyAiYWNfY3ZfZnVuY18kYWNfZnVuYyIgfCAkYXNfdHJfc2hgCiBhY19mbl9jX2NoZWNr X2Z1bmMgIiRMSU5FTk8iICIkYWNfZnVuYyIgIiRhc19hY192YXIiCkBAIC0xNTI1Miw2ICsx NTI1MiwzMCBAQCBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiBfQUNFT0YKIAogCithY19m bl9jX2NoZWNrX2RlY2wgIiRMSU5FTk8iICJSVExEX0dMT0JBTCIgImFjX2N2X2hhdmVfZGVj bF9SVExEX0dMT0JBTCIgIiNpbmNsdWRlIDxkbGZjbi5oPgorIgoraWYgdGVzdCAieCRhY19j dl9oYXZlX2RlY2xfUlRMRF9HTE9CQUwiID0geHllczsgdGhlbiA6CisgIGFjX2hhdmVfZGVj bD0xCitlbHNlCisgIGFjX2hhdmVfZGVjbD0wCitmaQorCitjYXQgPj5jb25mZGVmcy5oIDw8 X0FDRU9GCisjZGVmaW5lIEhBVkVfREVDTF9SVExEX0dMT0JBTCAkYWNfaGF2ZV9kZWNsCitf QUNFT0YKK2FjX2ZuX2NfY2hlY2tfZGVjbCAiJExJTkVOTyIgIlJUTERfTk9XIiAiYWNfY3Zf aGF2ZV9kZWNsX1JUTERfTk9XIiAiI2luY2x1ZGUgPGRsZmNuLmg+CisiCitpZiB0ZXN0ICJ4 JGFjX2N2X2hhdmVfZGVjbF9SVExEX05PVyIgPSB4eWVzOyB0aGVuIDoKKyAgYWNfaGF2ZV9k ZWNsPTEKK2Vsc2UKKyAgYWNfaGF2ZV9kZWNsPTAKK2ZpCisKK2NhdCA+PmNvbmZkZWZzLmgg PDxfQUNFT0YKKyNkZWZpbmUgSEFWRV9ERUNMX1JUTERfTk9XICRhY19oYXZlX2RlY2wKK19B Q0VPRgorCisKIEhBVkVfSVBWNj1ubwogYWNfZm5fY19jaGVja190eXBlICIkTElORU5PIiAi c3RydWN0IHNvY2thZGRyX2luNiIgImFjX2N2X3R5cGVfc3RydWN0X3NvY2thZGRyX2luNiIg IiRhY19pbmNsdWRlc19kZWZhdWx0CiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgpAQCAtMTU0 NjEsNiArMTU0ODUsMTkgQEAgZXNhYwogCiBmaQogCithY19mbl9jX2NoZWNrX2Z1bmMgIiRM SU5FTk8iICJkbG9wZW4iICJhY19jdl9mdW5jX2Rsb3BlbiIKK2lmIHRlc3QgIngkYWNfY3Zf ZnVuY19kbG9wZW4iID0geHllczsgdGhlbiA6CisgICRhc19lY2hvICIjZGVmaW5lIEhBVkVf RExPUEVOIDEiID4+Y29uZmRlZnMuaAorCitlbHNlCisgIGNhc2UgIiAkTElCT0JKUyAiIGlu CisgICoiIGRsb3Blbi4kYWNfb2JqZXh0ICIqICkgOzsKKyAgKikgTElCT0JKUz0iJExJQk9C SlMgZGxvcGVuLiRhY19vYmpleHQiCisgOzsKK2VzYWMKKworZmkKKwogYWNfZm5fY19jaGVj a19mdW5jICIkTElORU5PIiAiZmxzIiAiYWNfY3ZfZnVuY19mbHMiCiBpZiB0ZXN0ICJ4JGFj X2N2X2Z1bmNfZmxzIiA9IHh5ZXM7IHRoZW4gOgogICAkYXNfZWNobyAiI2RlZmluZSBIQVZF X0ZMUyAxIiA+PmNvbmZkZWZzLmgKQEAgLTE5MDE2LDcgKzE5MDUzLDcgQEAgZmkKIGFjX2Nv bmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBHTlVtYWtlZmlsZSBzcmMvTWFrZWZpbGUu Z2xvYmFsIgogCiAKLWFjX2NvbmZpZ19saW5rcz0iJGFjX2NvbmZpZ19saW5rcyBzcmMvYmFj a2VuZC9wb3J0L2R5bmxvYWRlci5jOnNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyLyR7dGVt cGxhdGV9LmMgc3JjL2JhY2tlbmQvcG9ydC9wZ19zZW1hLmM6JHtTRU1BX0lNUExFTUVOVEFU SU9OfSBzcmMvYmFja2VuZC9wb3J0L3BnX3NobWVtLmM6JHtTSE1FTV9JTVBMRU1FTlRBVElP Tn0gc3JjL2luY2x1ZGUvZHlubG9hZGVyLmg6c3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIv JHt0ZW1wbGF0ZX0uaCBzcmMvaW5jbHVkZS9wZ19jb25maWdfb3MuaDpzcmMvaW5jbHVkZS9w b3J0LyR7dGVtcGxhdGV9Lmggc3JjL01ha2VmaWxlLnBvcnQ6c3JjL21ha2VmaWxlcy9NYWtl ZmlsZS4ke3RlbXBsYXRlfSIKK2FjX2NvbmZpZ19saW5rcz0iJGFjX2NvbmZpZ19saW5rcyBz cmMvYmFja2VuZC9wb3J0L3BnX3NlbWEuYzoke1NFTUFfSU1QTEVNRU5UQVRJT059IHNyYy9i YWNrZW5kL3BvcnQvcGdfc2htZW0uYzoke1NITUVNX0lNUExFTUVOVEFUSU9OfSBzcmMvaW5j bHVkZS9wZ19jb25maWdfb3MuaDpzcmMvaW5jbHVkZS9wb3J0LyR7dGVtcGxhdGV9Lmggc3Jj L01ha2VmaWxlLnBvcnQ6c3JjL21ha2VmaWxlcy9NYWtlZmlsZS4ke3RlbXBsYXRlfSIKIAog CiBpZiB0ZXN0ICIkUE9SVE5BTUUiID0gIndpbjMyIjsgdGhlbgpAQCAtMTk3MzcsMTAgKzE5 Nzc0LDggQEAgZG8KICAgICAic3JjL2JhY2tlbmQvcG9ydC90YXMucyIpIENPTkZJR19MSU5L Uz0iJENPTkZJR19MSU5LUyBzcmMvYmFja2VuZC9wb3J0L3Rhcy5zOnNyYy9iYWNrZW5kL3Bv cnQvdGFzLyR7dGFzX2ZpbGV9IiA7OwogICAgICJHTlVtYWtlZmlsZSIpIENPTkZJR19GSUxF Uz0iJENPTkZJR19GSUxFUyBHTlVtYWtlZmlsZSIgOzsKICAgICAic3JjL01ha2VmaWxlLmds b2JhbCIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzcmMvTWFrZWZpbGUuZ2xvYmFs IiA7OwotICAgICJzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci5jIikgQ09ORklHX0xJTktT PSIkQ09ORklHX0xJTktTIHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyLmM6c3JjL2JhY2tl bmQvcG9ydC9keW5sb2FkZXIvJHt0ZW1wbGF0ZX0uYyIgOzsKICAgICAic3JjL2JhY2tlbmQv cG9ydC9wZ19zZW1hLmMiKSBDT05GSUdfTElOS1M9IiRDT05GSUdfTElOS1Mgc3JjL2JhY2tl bmQvcG9ydC9wZ19zZW1hLmM6JHtTRU1BX0lNUExFTUVOVEFUSU9OfSIgOzsKICAgICAic3Jj L2JhY2tlbmQvcG9ydC9wZ19zaG1lbS5jIikgQ09ORklHX0xJTktTPSIkQ09ORklHX0xJTktT IHNyYy9iYWNrZW5kL3BvcnQvcGdfc2htZW0uYzoke1NITUVNX0lNUExFTUVOVEFUSU9OfSIg OzsKLSAgICAic3JjL2luY2x1ZGUvZHlubG9hZGVyLmgiKSBDT05GSUdfTElOS1M9IiRDT05G SUdfTElOS1Mgc3JjL2luY2x1ZGUvZHlubG9hZGVyLmg6c3JjL2JhY2tlbmQvcG9ydC9keW5s b2FkZXIvJHt0ZW1wbGF0ZX0uaCIgOzsKICAgICAic3JjL2luY2x1ZGUvcGdfY29uZmlnX29z LmgiKSBDT05GSUdfTElOS1M9IiRDT05GSUdfTElOS1Mgc3JjL2luY2x1ZGUvcGdfY29uZmln X29zLmg6c3JjL2luY2x1ZGUvcG9ydC8ke3RlbXBsYXRlfS5oIiA7OwogICAgICJzcmMvTWFr ZWZpbGUucG9ydCIpIENPTkZJR19MSU5LUz0iJENPTkZJR19MSU5LUyBzcmMvTWFrZWZpbGUu cG9ydDpzcmMvbWFrZWZpbGVzL01ha2VmaWxlLiR7dGVtcGxhdGV9IiA7OwogICAgICJjaGVj a193aW4zMl9zeW1saW5rcyIpIENPTkZJR19DT01NQU5EUz0iJENPTkZJR19DT01NQU5EUyBj aGVja193aW4zMl9zeW1saW5rcyIgOzsKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2Nv bmZpZ3VyZS5pbgppbmRleCAzMjgwYWZhMGRhLi4zYWRhNDhiNWY5IDEwMDY0NAotLS0gYS9j b25maWd1cmUuaW4KKysrIGIvY29uZmlndXJlLmluCkBAIC0xNTQ0LDcgKzE1NDQsNyBAQCBQ R0FDX0ZVTkNfV0NTVE9NQlNfTAogTElCU19pbmNsdWRpbmdfcmVhZGxpbmU9IiRMSUJTIgog TElCUz1gZWNobyAiJExJQlMiIHwgc2VkIC1lICdzLy1sZWRpdC8vZycgLWUgJ3MvLWxyZWFk bGluZS8vZydgCiAKLUFDX0NIRUNLX0ZVTkNTKFtjYnJ0IGNsb2NrX2dldHRpbWUgZGxvcGVu IGZkYXRhc3luYyBnZXRpZmFkZHJzIGdldHBlZXJ1Y3JlZCBnZXRybGltaXQgbWJzdG93Y3Nf bCBtZW1tb3ZlIHBvbGwgcG9zaXhfZmFsbG9jYXRlIHBzdGF0IHB0aHJlYWRfaXNfdGhyZWFk ZWRfbnAgcmVhZGxpbmsgc2V0cHJvY3RpdGxlIHNldHByb2N0aXRsZV9mYXN0IHNldHNpZCBz aG1fb3BlbiBzeW1saW5rIHN5bmNfZmlsZV9yYW5nZSB1dGltZSB1dGltZXMgd2NzdG9tYnNf bF0pCitBQ19DSEVDS19GVU5DUyhbY2JydCBjbG9ja19nZXR0aW1lIGZkYXRhc3luYyBnZXRp ZmFkZHJzIGdldHBlZXJ1Y3JlZCBnZXRybGltaXQgbWJzdG93Y3NfbCBtZW1tb3ZlIHBvbGwg cG9zaXhfZmFsbG9jYXRlIHBzdGF0IHB0aHJlYWRfaXNfdGhyZWFkZWRfbnAgcmVhZGxpbmsg c2V0cHJvY3RpdGxlIHNldHByb2N0aXRsZV9mYXN0IHNldHNpZCBzaG1fb3BlbiBzeW1saW5r IHN5bmNfZmlsZV9yYW5nZSB1dGltZSB1dGltZXMgd2NzdG9tYnNfbF0pCiAKIEFDX1JFUExB Q0VfRlVOQ1MoZnNlZWtvKQogY2FzZSAkaG9zdF9vcyBpbgpAQCAtMTU3MCw2ICsxNTcwLDgg QEAgQUNfQ0hFQ0tfREVDTFMoW3N0cmxjYXQsIHN0cmxjcHksIHN0cm5sZW5dKQogIyBUaGlz IGlzIHByb2JhYmx5IG9ubHkgcHJlc2VudCBvbiBtYWNPUywgYnV0IG1heSBhcyB3ZWxsIGNo ZWNrIGFsd2F5cwogQUNfQ0hFQ0tfREVDTFMoRl9GVUxMRlNZTkMsIFtdLCBbXSwgWyNpbmNs dWRlIDxmY250bC5oPl0pCiAKK0FDX0NIRUNLX0RFQ0xTKFtSVExEX0dMT0JBTCwgUlRMRF9O T1ddLCBbXSwgW10sIFsjaW5jbHVkZSA8ZGxmY24uaD5dKQorCiBIQVZFX0lQVjY9bm8KIEFD X0NIRUNLX1RZUEUoW3N0cnVjdCBzb2NrYWRkcl9pbjZdLAogICAgICAgICBbQUNfREVGSU5F KEhBVkVfSVBWNiwgMSwgW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIHN1cHBvcnQgZm9yIElQ djYuXSkKQEAgLTE2NTgsNyArMTY2MCw3IEBAIGVsc2UKICAgQUNfQ0hFQ0tfRlVOQ1MoW2Zw Y2xhc3MgZnBfY2xhc3MgZnBfY2xhc3NfZCBjbGFzc10sIFticmVha10pCiBmaQogCi1BQ19S RVBMQUNFX0ZVTkNTKFtjcnlwdCBmbHMgZ2V0b3B0IGdldHJ1c2FnZSBpbmV0X2F0b24gbWtk dGVtcCByYW5kb20gcmludCBzcmFuZG9tIHN0cmVycm9yIHN0cmxjYXQgc3RybGNweSBzdHJu bGVuXSkKK0FDX1JFUExBQ0VfRlVOQ1MoW2NyeXB0IGRsb3BlbiBmbHMgZ2V0b3B0IGdldHJ1 c2FnZSBpbmV0X2F0b24gbWtkdGVtcCByYW5kb20gcmludCBzcmFuZG9tIHN0cmVycm9yIHN0 cmxjYXQgc3RybGNweSBzdHJubGVuXSkKIAogY2FzZSAkaG9zdF9vcyBpbgogCkBAIC0yMzgy LDEwICsyMzg0LDggQEAgQUNfU1VCU1QodnBhdGhfYnVpbGQpCiBBQ19DT05GSUdfRklMRVMo W0dOVW1ha2VmaWxlIHNyYy9NYWtlZmlsZS5nbG9iYWxdKQogCiBBQ19DT05GSUdfTElOS1Mo WwotICBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci5jOnNyYy9iYWNrZW5kL3BvcnQvZHlu bG9hZGVyLyR7dGVtcGxhdGV9LmMKICAgc3JjL2JhY2tlbmQvcG9ydC9wZ19zZW1hLmM6JHtT RU1BX0lNUExFTUVOVEFUSU9OfQogICBzcmMvYmFja2VuZC9wb3J0L3BnX3NobWVtLmM6JHtT SE1FTV9JTVBMRU1FTlRBVElPTn0KLSAgc3JjL2luY2x1ZGUvZHlubG9hZGVyLmg6c3JjL2Jh Y2tlbmQvcG9ydC9keW5sb2FkZXIvJHt0ZW1wbGF0ZX0uaAogICBzcmMvaW5jbHVkZS9wZ19j b25maWdfb3MuaDpzcmMvaW5jbHVkZS9wb3J0LyR7dGVtcGxhdGV9LmgKICAgc3JjL01ha2Vm aWxlLnBvcnQ6c3JjL21ha2VmaWxlcy9NYWtlZmlsZS4ke3RlbXBsYXRlfQogXSkKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvTWFrZWZpbGUKaW5k ZXggMjVhZjUxNGZiYS4uM2E1OGJmNjY4NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvTWFr ZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvTWFrZWZpbGUKQEAgLTI5Myw3ICsyOTMsNyBAQCBp ZmVxICgkKFBPUlROQU1FKSwgd2luMzIpCiBlbmRpZgogCiBkaXN0Y2xlYW46IGNsZWFuCi0J cm0gLWYgcG9ydC90YXMucyBwb3J0L2R5bmxvYWRlci5jIHBvcnQvcGdfc2VtYS5jIHBvcnQv cGdfc2htZW0uYworCXJtIC1mIHBvcnQvdGFzLnMgcG9ydC9wZ19zZW1hLmMgcG9ydC9wZ19z aG1lbS5jCiAKIG1haW50YWluZXItY2xlYW46IGRpc3RjbGVhbgogCSQoTUFLRSkgLUMgY2F0 YWxvZyAkQApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9ydC8uZ2l0aWdub3JlIGIvc3Jj L2JhY2tlbmQvcG9ydC8uZ2l0aWdub3JlCmluZGV4IDlmNGYxYWY1ZTkuLjRlZjM2YjgyYzcg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BvcnQvLmdpdGlnbm9yZQorKysgYi9zcmMvYmFj a2VuZC9wb3J0Ly5naXRpZ25vcmUKQEAgLTEsNCArMSwzIEBACi0vZHlubG9hZGVyLmMKIC9w Z19zZW1hLmMKIC9wZ19zaG1lbS5jCiAvdGFzLnMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BvcnQvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9wb3J0L01ha2VmaWxlCmluZGV4IGFiYTFl OTJmZTEuLmY0MTIwYmVjNTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BvcnQvTWFrZWZp bGUKKysrIGIvc3JjL2JhY2tlbmQvcG9ydC9NYWtlZmlsZQpAQCAtMjEsNyArMjEsNyBAQCBz dWJkaXIgPSBzcmMvYmFja2VuZC9wb3J0CiB0b3BfYnVpbGRkaXIgPSAuLi8uLi8uLgogaW5j bHVkZSAkKHRvcF9idWlsZGRpcikvc3JjL01ha2VmaWxlLmdsb2JhbAogCi1PQkpTID0gYXRv bWljcy5vIGR5bmxvYWRlci5vIHBnX3NlbWEubyBwZ19zaG1lbS5vICQoVEFTKQorT0JKUyA9 IGF0b21pY3MubyBwZ19zZW1hLm8gcGdfc2htZW0ubyAkKFRBUykKIAogaWZlcSAoJChQT1JU TkFNRSksIHdpbjMyKQogU1VCRElSUyArPSB3aW4zMgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcG9ydC9keW5sb2FkZXIvYWl4LmMgYi9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9h aXguYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmY2ZWMyNTdlNy4uMDAwMDAw MDAwMAotLS0gYS9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9haXguYworKysgL2Rldi9u dWxsCkBAIC0xLDcgKzAsMCBAQAotLyoKLSAqIHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVy L2FpeC5jCi0gKgotICogRHVtbXkgZmlsZSB1c2VkIGZvciBub3RoaW5nIGF0IHRoaXMgcG9p bnQKLSAqCi0gKiBzZWUgYWl4LmgKLSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9y dC9keW5sb2FkZXIvYWl4LmggYi9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9haXguaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGY0ZjVkNWExYS4uMDAwMDAwMDAwMAot LS0gYS9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9haXguaAorKysgL2Rldi9udWxsCkBA IC0xLDM5ICswLDAgQEAKLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqIGFpeC5oCi0g KgkgIHByb3RvdHlwZXMgZm9yIEFJWC1zcGVjaWZpYyByb3V0aW5lcwotICoKLSAqCi0gKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxOCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50 cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCi0gKgotICogc3JjL2JhY2tlbmQv cG9ydC9keW5sb2FkZXIvYWl4LmgKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqLwot Ci0jaWZuZGVmIFBPUlRfUFJPVE9TX0gKLSNkZWZpbmUgUE9SVF9QUk9UT1NfSAotCi0jaW5j bHVkZSA8ZGxmY24uaD4KLSNpbmNsdWRlICJ1dGlscy9keW5hbWljX2xvYWRlci5oIgkvKiBw Z3JtaW5jbHVkZSBpZ25vcmUgKi8KLQotLyoKLSAqIEluIHNvbWUgb2xkZXIgc3lzdGVtcywg dGhlIFJUTERfTk9XIGZsYWcgaXNuJ3QgZGVmaW5lZCBhbmQgdGhlIG1vZGUKLSAqIGFyZ3Vt ZW50IHRvIGRsb3BlbiBtdXN0IGFsd2F5cyBiZSAxLiAgVGhlIFJUTERfR0xPQkFMIGZsYWcg aXMgd2FudGVkCi0gKiBpZiBhdmFpbGFibGUsIGJ1dCBpdCBkb2Vzbid0IGV4aXN0IGV2ZXJ5 d2hlcmUuCi0gKiBJZiBpdCBkb2Vzbid0IGV4aXN0LCBzZXQgaXQgdG8gMCBzbyBpdCBoYXMg bm8gZWZmZWN0LgotICovCi0jaWZuZGVmIFJUTERfTk9XCi0jZGVmaW5lIFJUTERfTk9XIDEK LSNlbmRpZgotI2lmbmRlZiBSVExEX0dMT0JBTAotI2RlZmluZSBSVExEX0dMT0JBTCAwCi0j ZW5kaWYKLQotI2RlZmluZSAgcGdfZGxvcGVuKGYpCWRsb3BlbigoZiksIFJUTERfTk9XIHwg UlRMRF9HTE9CQUwpCi0jZGVmaW5lICBwZ19kbHN5bShoLCBmKSAoKFBHRnVuY3Rpb24pIGRs c3ltKGgsIGYpKQotI2RlZmluZSAgcGdfZGxjbG9zZShoKQlkbGNsb3NlKGgpCi0jZGVmaW5l ICBwZ19kbGVycm9yKCkJZGxlcnJvcigpCi0KLSNlbmRpZgkJCQkJCQkvKiBQT1JUX1BST1RP U19IICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9jeWd3aW4u YyBiL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2N5Z3dpbi5jCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA1YzUyYmY2MTQ3Li4wMDAwMDAwMDAwCi0tLSBhL3NyYy9iYWNr ZW5kL3BvcnQvZHlubG9hZGVyL2N5Z3dpbi5jCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww IEBACi0vKiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9jeWd3aW4uYyAqLwotCi0vKiBE dW1teSBmaWxlIHVzZWQgZm9yIG5vdGhpbmcgYXQgdGhpcyBwb2ludDsgc2VlIGN5Z3dpbi5o ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9jeWd3aW4uaCBi L3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2N5Z3dpbi5oCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBlZjA1ZTZiNDE2Li4wMDAwMDAwMDAwCi0tLSBhL3NyYy9iYWNrZW5k L3BvcnQvZHlubG9hZGVyL2N5Z3dpbi5oCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBA QAotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICogRHluYW1pYyBsb2FkZXIgZGVjbGFy YXRpb25zIGZvciBDeWd3aW4KLSAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYt MjAxOCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKLSAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCi0gKgotICogc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvY3lnd2luLmgKLSAq Ci0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgKi8KLSNpZm5kZWYgUE9SVF9QUk9UT1NfSAot I2RlZmluZSBQT1JUX1BST1RPU19ICi0KLSNpbmNsdWRlIDxkbGZjbi5oPgotI2luY2x1ZGUg InV0aWxzL2R5bmFtaWNfbG9hZGVyLmgiCS8qIHBncm1pbmNsdWRlIGlnbm9yZSAqLwotCi0v KgotICogSW4gc29tZSBvbGRlciBzeXN0ZW1zLCB0aGUgUlRMRF9OT1cgZmxhZyBpc24ndCBk ZWZpbmVkIGFuZCB0aGUgbW9kZQotICogYXJndW1lbnQgdG8gZGxvcGVuIG11c3QgYWx3YXlz IGJlIDEuICBUaGUgUlRMRF9HTE9CQUwgZmxhZyBpcyB3YW50ZWQKLSAqIGlmIGF2YWlsYWJs ZSwgYnV0IGl0IGRvZXNuJ3QgZXhpc3QgZXZlcnl3aGVyZS4KLSAqIElmIGl0IGRvZXNuJ3Qg ZXhpc3QsIHNldCBpdCB0byAwIHNvIGl0IGhhcyBubyBlZmZlY3QuCi0gKi8KLSNpZm5kZWYg UlRMRF9OT1cKLSNkZWZpbmUgUlRMRF9OT1cgMQotI2VuZGlmCi0jaWZuZGVmIFJUTERfR0xP QkFMCi0jZGVmaW5lIFJUTERfR0xPQkFMIDAKLSNlbmRpZgotCi0jZGVmaW5lIHBnX2Rsb3Bl bihmKQlkbG9wZW4oKGYpLCBSVExEX05PVyB8IFJUTERfR0xPQkFMKQotI2RlZmluZSBwZ19k bHN5bQkJZGxzeW0KLSNkZWZpbmUgcGdfZGxjbG9zZQkJZGxjbG9zZQotI2RlZmluZSBwZ19k bGVycm9yCQlkbGVycm9yCi0KLSNlbmRpZgkJCQkJCQkvKiBQT1JUX1BST1RPU19IICovCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9kYXJ3aW4uYyBiL3NyYy9i YWNrZW5kL3BvcnQvZHlubG9hZGVyL2Rhcndpbi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA2NWZhMGUzOWYyLi4wMDAwMDAwMDAwCi0tLSBhL3NyYy9iYWNrZW5kL3BvcnQv ZHlubG9hZGVyL2Rhcndpbi5jCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoK LSAqIER5bmFtaWMgbG9hZGluZyBzdXBwb3J0IGZvciBtYWNPUyAoRGFyd2luKQotICoKLSAq IHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2Rhcndpbi5jCi0gKi8KLSNpbmNsdWRlICJw b3N0Z3Jlcy5oIgotCi0jaW5jbHVkZSA8ZGxmY24uaD4KLQotI2luY2x1ZGUgImR5bmxvYWRl ci5oIgotCi0KLXZvaWQgKgotcGdfZGxvcGVuKGNvbnN0IGNoYXIgKmZpbGVuYW1lKQotewot CXJldHVybiBkbG9wZW4oZmlsZW5hbWUsIFJUTERfTk9XIHwgUlRMRF9HTE9CQUwpOwotfQot Ci12b2lkCi1wZ19kbGNsb3NlKHZvaWQgKmhhbmRsZSkKLXsKLQlkbGNsb3NlKGhhbmRsZSk7 Ci19Ci0KLVBHRnVuY3Rpb24KLXBnX2Rsc3ltKHZvaWQgKmhhbmRsZSwgY29uc3QgY2hhciAq ZnVuY25hbWUpCi17Ci0JcmV0dXJuIGRsc3ltKGhhbmRsZSwgZnVuY25hbWUpOwotfQotCi1j aGFyICoKLXBnX2RsZXJyb3Iodm9pZCkKLXsKLQlyZXR1cm4gZGxlcnJvcigpOwotfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvZGFyd2luLmggYi9zcmMvYmFj a2VuZC9wb3J0L2R5bmxvYWRlci9kYXJ3aW4uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMjkyYTMxZGUxMy4uMDAwMDAwMDAwMAotLS0gYS9zcmMvYmFja2VuZC9wb3J0L2R5 bmxvYWRlci9kYXJ3aW4uaAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLyogc3Jj L2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvZGFyd2luLmggKi8KLQotI2luY2x1ZGUgImZtZ3Iu aCIKLQotdm9pZAkgICAqcGdfZGxvcGVuKGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKLVBHRnVu Y3Rpb24JcGdfZGxzeW0odm9pZCAqaGFuZGxlLCBjb25zdCBjaGFyICpmdW5jbmFtZSk7Ci12 b2lkCQlwZ19kbGNsb3NlKHZvaWQgKmhhbmRsZSk7Ci1jaGFyCSAgICpwZ19kbGVycm9yKHZv aWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvZnJlZWJzZC5j IGIvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvZnJlZWJzZC5jCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA0MWI5NmViYWYwLi4wMDAwMDAwMDAwCi0tLSBhL3NyYy9iYWNr ZW5kL3BvcnQvZHlubG9hZGVyL2ZyZWVic2QuYworKysgL2Rldi9udWxsCkBAIC0xLDcgKzAs MCBAQAotLyoKLSAqIHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2ZyZWVic2QuYwotICoK LSAqIER1bW15IGZpbGUgdXNlZCBmb3Igbm90aGluZyBhdCB0aGlzIHBvaW50Ci0gKgotICog c2VlIGZyZWVic2QuaAotICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3J0L2R5bmxv YWRlci9mcmVlYnNkLmggYi9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9mcmVlYnNkLmgK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiZGQwM2NiM2EuLjAwMDAwMDAwMDAK LS0tIGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvZnJlZWJzZC5oCisrKyAvZGV2L251 bGwKQEAgLTEsMzggKzAsMCBAQAotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICogZnJl ZWJzZC5oCi0gKgkgIHBvcnQtc3BlY2lmaWMgcHJvdG90eXBlcyBmb3IgRnJlZUJTRAotICoK LSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDE4LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBS ZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKLSAqCi0gKiBzcmMvYmFj a2VuZC9wb3J0L2R5bmxvYWRlci9mcmVlYnNkLmgKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSAqLwotI2lmbmRlZiBQT1JUX1BST1RPU19ICi0jZGVmaW5lIFBPUlRfUFJPVE9TX0gK LQotI2luY2x1ZGUgPGRsZmNuLmg+Ci0KLSNpbmNsdWRlICJ1dGlscy9keW5hbWljX2xvYWRl ci5oIgkvKiBwZ3JtaW5jbHVkZSBpZ25vcmUgKi8KLQotLyoKLSAqIEluIHNvbWUgb2xkZXIg c3lzdGVtcywgdGhlIFJUTERfTk9XIGZsYWcgaXNuJ3QgZGVmaW5lZCBhbmQgdGhlIG1vZGUK LSAqIGFyZ3VtZW50IHRvIGRsb3BlbiBtdXN0IGFsd2F5cyBiZSAxLiAgVGhlIFJUTERfR0xP QkFMIGZsYWcgaXMgd2FudGVkCi0gKiBpZiBhdmFpbGFibGUsIGJ1dCBpdCBkb2Vzbid0IGV4 aXN0IGV2ZXJ5d2hlcmUuCi0gKiBJZiBpdCBkb2Vzbid0IGV4aXN0LCBzZXQgaXQgdG8gMCBz byBpdCBoYXMgbm8gZWZmZWN0LgotICovCi0jaWZuZGVmIFJUTERfTk9XCi0jZGVmaW5lIFJU TERfTk9XIDEKLSNlbmRpZgotI2lmbmRlZiBSVExEX0dMT0JBTAotI2RlZmluZSBSVExEX0dM T0JBTCAwCi0jZW5kaWYKLQotI2RlZmluZSBwZ19kbG9wZW4oZikJZGxvcGVuKChmKSwgUlRM RF9OT1cgfCBSVExEX0dMT0JBTCkKLSNkZWZpbmUgcGdfZGxzeW0JCWRsc3ltCi0jZGVmaW5l IHBnX2RsY2xvc2UJCWRsY2xvc2UKLSNkZWZpbmUgcGdfZGxlcnJvcgkJZGxlcnJvcgotCi0j ZW5kaWYJCQkJCQkJLyogUE9SVF9QUk9UT1NfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcG9ydC9keW5sb2FkZXIvaHB1eC5jIGIvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIv aHB1eC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODJkZDc2MDNiLi4wMDAw MDAwMDAwCi0tLSBhL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2hwdXguYworKysgL2Rl di9udWxsCkBAIC0xLDY4ICswLDAgQEAKLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAq IGR5bmxvYWRlci5jCi0gKgkgIGR5bmFtaWMgbG9hZGVyIGZvciBIUC1VWCB1c2luZyB0aGUg c2hhcmVkIGxpYnJhcnkgbWVjaGFuaXNtCi0gKgotICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk2LTIwMTgsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCi0gKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkg b2YgQ2FsaWZvcm5pYQotICoKLSAqCi0gKiBJREVOVElGSUNBVElPTgotICoJICBzcmMvYmFj a2VuZC9wb3J0L2R5bmxvYWRlci9ocHV4LmMKLSAqCi0gKglOT1RFUwotICoJCWFsbCBmdW5j dGlvbnMgYXJlIGRlZmluZWQgaGVyZSAtLSBpdCdzIGltcG9zc2libGUgdG8gdHJhY2UgdGhl Ci0gKgkJc2hsXyogcm91dGluZXMgZnJvbSB0aGUgYnVuZGxlZCBIUC1VWCBkZWJ1Z2dlci4K LSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqLwotI2luY2x1ZGUgInBvc3RncmVzLmgi Ci0KLS8qIFN5c3RlbSBpbmNsdWRlcyAqLwotI2luY2x1ZGUgPGEub3V0Lmg+Ci0jaW5jbHVk ZSA8ZGwuaD4KLQotI2luY2x1ZGUgImR5bmxvYWRlci5oIgotI2luY2x1ZGUgInV0aWxzL2R5 bmFtaWNfbG9hZGVyLmgiCi0KLXZvaWQgKgotcGdfZGxvcGVuKGNvbnN0IGNoYXIgKmZpbGVu YW1lKQotewotCS8qCi0JICogVXNlIEJJTkRfSU1NRURJQVRFIHNvIHRoYXQgdW5kZWZpbmVk IHN5bWJvbHMgY2F1c2UgYSBmYWlsdXJlIHJldHVybgotCSAqIGZyb20gc2hsX2xvYWQoKSwg cmF0aGVyIHRoYW4gYW4gYWJvcnQoKSBsYXRlciBvbiB3aGVuIHdlIGF0dGVtcHQgdG8KLQkg KiBjYWxsIHRoZSBsaWJyYXJ5IQotCSAqLwotCXNobF90CQloYW5kbGUgPSBzaGxfbG9hZChm aWxlbmFtZSwKLQkJCQkJCQkJICBCSU5EX0lNTUVESUFURSB8IEJJTkRfVkVSQk9TRSB8IERZ TkFNSUNfUEFUSCwKLQkJCQkJCQkJICAwTCk7Ci0KLQlyZXR1cm4gKHZvaWQgKikgaGFuZGxl OwotfQotCi1QR0Z1bmN0aW9uCi1wZ19kbHN5bSh2b2lkICpoYW5kbGUsIGNvbnN0IGNoYXIg KmZ1bmNuYW1lKQotewotCVBHRnVuY3Rpb24JZjsKLQotCWlmIChzaGxfZmluZHN5bSgoc2hs X3QgKikgJiBoYW5kbGUsIGZ1bmNuYW1lLCBUWVBFX1BST0NFRFVSRSwgJmYpID09IC0xKQot CQlmID0gKFBHRnVuY3Rpb24pIE5VTEw7Ci0JcmV0dXJuIGY7Ci19Ci0KLXZvaWQKLXBnX2Rs Y2xvc2Uodm9pZCAqaGFuZGxlKQotewotCXNobF91bmxvYWQoKHNobF90KSBoYW5kbGUpOwot fQotCi1jaGFyICoKLXBnX2RsZXJyb3Iodm9pZCkKLXsKLQlzdGF0aWMgY2hhciBlcnJtc2db XSA9ICJzaGxfbG9hZCBmYWlsZWQiOwotCi0JaWYgKGVycm5vKQotCQlyZXR1cm4gc3RyZXJy b3IoZXJybm8pOwotCi0JcmV0dXJuIGVycm1zZzsKLX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BvcnQvZHlubG9hZGVyL2hwdXguaCBiL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVy L2hwdXguaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWNiYzQ2OTYwZS4uMDAw MDAwMDAwMAotLS0gYS9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9ocHV4LmgKKysrIC9k ZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0g KiBkeW5sb2FkZXIuaAotICoJICBkeW5hbWljIGxvYWRlciBmb3IgSFAtVVggdXNpbmcgdGhl IHNoYXJlZCBsaWJyYXJ5IG1lY2hhbmlzbQotICoKLSAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDE4LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAotICog UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5 IG9mIENhbGlmb3JuaWEKLSAqCi0gKgotICogSURFTlRJRklDQVRJT04KLSAqCSAgc3JjL2Jh Y2tlbmQvcG9ydC9keW5sb2FkZXIvaHB1eC5oCi0gKgotICoJTk9URVMKLSAqCQlhbGwgZnVu Y3Rpb25zIGFyZSBkZWZpbmVkIGhlcmUgLS0gaXQncyBpbXBvc3NpYmxlIHRvIHRyYWNlIHRo ZQotICoJCXNobF8qIHJvdXRpbmVzIGZyb20gdGhlIGJ1bmRsZWQgSFAtVVggZGVidWdnZXIu Ci0gKgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKi8KLS8qIFN5c3RlbSBpbmNsdWRlcyAq LwotI2luY2x1ZGUgImZtZ3IuaCIKLQotZXh0ZXJuIHZvaWQgKnBnX2Rsb3Blbihjb25zdCBj aGFyICpmaWxlbmFtZSk7Ci1leHRlcm4gUEdGdW5jdGlvbiBwZ19kbHN5bSh2b2lkICpoYW5k bGUsIGNvbnN0IGNoYXIgKmZ1bmNuYW1lKTsKLWV4dGVybiB2b2lkIHBnX2RsY2xvc2Uodm9p ZCAqaGFuZGxlKTsKLWV4dGVybiBjaGFyICpwZ19kbGVycm9yKHZvaWQpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvbGludXguYyBiL3NyYy9iYWNrZW5kL3Bv cnQvZHlubG9hZGVyL2xpbnV4LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIx MjY1NzZlOGYuLjAwMDAwMDAwMDAKLS0tIGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIv bGludXguYworKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotLyoKLSAqIHNyYy9iYWNr ZW5kL3BvcnQvZHlubG9hZGVyL2xpbnV4LmMKLSAqCi0gKiBEdW1teSBmaWxlIHVzZWQgZm9y IG5vdGhpbmcgYXQgdGhpcyBwb2ludAotICoKLSAqIHNlZSBsaW51eC5oCi0gKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2xpbnV4LmggYi9zcmMvYmFja2Vu ZC9wb3J0L2R5bmxvYWRlci9saW51eC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA2YmViM2Q2M2Y4Li4wMDAwMDAwMDAwCi0tLSBhL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9h ZGVyL2xpbnV4LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSAqCi0gKiBsaW51eC5oCi0gKgkJUG9ydC1zcGVjaWZpYyBwcm90b3R5 cGVzIGZvciBMaW51eAotICoKLSAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYt MjAxOCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKLSAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCi0gKgotICogc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvbGludXguaAotICoK LSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICovCi0jaWZuZGVmIFBPUlRfUFJPVE9TX0gKLSNk ZWZpbmUgUE9SVF9QUk9UT1NfSAotCi0jaW5jbHVkZSAidXRpbHMvZHluYW1pY19sb2FkZXIu aCIJLyogcGdybWluY2x1ZGUgaWdub3JlICovCi0jaW5jbHVkZSA8ZGxmY24uaD4KLQotLyoK LSAqIEluIHNvbWUgb2xkZXIgc3lzdGVtcywgdGhlIFJUTERfTk9XIGZsYWcgaXNuJ3QgZGVm aW5lZCBhbmQgdGhlIG1vZGUKLSAqIGFyZ3VtZW50IHRvIGRsb3BlbiBtdXN0IGFsd2F5cyBi ZSAxLiAgVGhlIFJUTERfR0xPQkFMIGZsYWcgaXMgd2FudGVkCi0gKiBpZiBhdmFpbGFibGUs IGJ1dCBpdCBkb2Vzbid0IGV4aXN0IGV2ZXJ5d2hlcmUuCi0gKiBJZiBpdCBkb2Vzbid0IGV4 aXN0LCBzZXQgaXQgdG8gMCBzbyBpdCBoYXMgbm8gZWZmZWN0LgotICovCi0jaWZuZGVmIFJU TERfTk9XCi0jZGVmaW5lIFJUTERfTk9XIDEKLSNlbmRpZgotI2lmbmRlZiBSVExEX0dMT0JB TAotI2RlZmluZSBSVExEX0dMT0JBTCAwCi0jZW5kaWYKLQotI2RlZmluZSBwZ19kbG9wZW4o ZikJZGxvcGVuKChmKSwgUlRMRF9OT1cgfCBSVExEX0dMT0JBTCkKLSNkZWZpbmUgcGdfZGxz eW0JCWRsc3ltCi0jZGVmaW5lIHBnX2RsY2xvc2UJCWRsY2xvc2UKLSNkZWZpbmUgcGdfZGxl cnJvcgkJZGxlcnJvcgotCi0jZW5kaWYJCQkJCQkJLyogUE9SVF9QUk9UT1NfSCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvbmV0YnNkLmMgYi9zcmMvYmFj a2VuZC9wb3J0L2R5bmxvYWRlci9uZXRic2QuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggOGY3ZjU2ODY0ZC4uMDAwMDAwMDAwMAotLS0gYS9zcmMvYmFja2VuZC9wb3J0L2R5 bmxvYWRlci9uZXRic2QuYworKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotLyoKLSAq IHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL25ldGJzZC5jCi0gKgotICogRHVtbXkgZmls ZSB1c2VkIGZvciBub3RoaW5nIGF0IHRoaXMgcG9pbnQKLSAqCi0gKiBzZWUgbmV0YnNkLmgK LSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvbmV0YnNkLmgg Yi9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9uZXRic2QuaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggZjNjMzhlYjk4YS4uMDAwMDAwMDAwMAotLS0gYS9zcmMvYmFja2Vu ZC9wb3J0L2R5bmxvYWRlci9uZXRic2QuaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAg QEAKLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqIG5ldGJzZC5oCi0gKgkgIHBvcnQt c3BlY2lmaWMgcHJvdG90eXBlcyBmb3IgTmV0QlNECi0gKgotICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk2LTIwMTgsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3Vw Ci0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZl cnNpdHkgb2YgQ2FsaWZvcm5pYQotICoKLSAqIHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVy L25ldGJzZC5oCi0gKgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKi8KLSNpZm5kZWYgUE9S VF9QUk9UT1NfSAotI2RlZmluZSBQT1JUX1BST1RPU19ICi0KLSNpbmNsdWRlIDxkbGZjbi5o PgotCi0jaW5jbHVkZSAidXRpbHMvZHluYW1pY19sb2FkZXIuaCIJLyogcGdybWluY2x1ZGUg aWdub3JlICovCi0KLS8qCi0gKiBJbiBzb21lIG9sZGVyIHN5c3RlbXMsIHRoZSBSVExEX05P VyBmbGFnIGlzbid0IGRlZmluZWQgYW5kIHRoZSBtb2RlCi0gKiBhcmd1bWVudCB0byBkbG9w ZW4gbXVzdCBhbHdheXMgYmUgMS4gIFRoZSBSVExEX0dMT0JBTCBmbGFnIGlzIHdhbnRlZAot ICogaWYgYXZhaWxhYmxlLCBidXQgaXQgZG9lc24ndCBleGlzdCBldmVyeXdoZXJlLgotICog SWYgaXQgZG9lc24ndCBleGlzdCwgc2V0IGl0IHRvIDAgc28gaXQgaGFzIG5vIGVmZmVjdC4K LSAqLwotI2lmbmRlZiBSVExEX05PVwotI2RlZmluZSBSVExEX05PVyAxCi0jZW5kaWYKLSNp Zm5kZWYgUlRMRF9HTE9CQUwKLSNkZWZpbmUgUlRMRF9HTE9CQUwgMAotI2VuZGlmCi0KLSNk ZWZpbmUgcGdfZGxvcGVuKGYpCWRsb3BlbigoZiksIFJUTERfTk9XIHwgUlRMRF9HTE9CQUwp Ci0jZGVmaW5lIHBnX2Rsc3ltCQlkbHN5bQotI2RlZmluZSBwZ19kbGNsb3NlCQlkbGNsb3Nl Ci0jZGVmaW5lIHBnX2RsZXJyb3IJCWRsZXJyb3IKLQotI2VuZGlmCQkJCQkJCS8qIFBPUlRf UFJPVE9TX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL29w ZW5ic2QuYyBiL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL29wZW5ic2QuYwpkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmE4ZTFkODlkNy4uMDAwMDAwMDAwMAotLS0gYS9z cmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9vcGVuYnNkLmMKKysrIC9kZXYvbnVsbApAQCAt MSw3ICswLDAgQEAKLS8qCi0gKiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9vcGVuYnNk LmMKLSAqCi0gKiBEdW1teSBmaWxlIHVzZWQgZm9yIG5vdGhpbmcgYXQgdGhpcyBwb2ludAot ICoKLSAqIHNlZSBvcGVuYnNkLmgKLSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9y dC9keW5sb2FkZXIvb3BlbmJzZC5oIGIvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvb3Bl bmJzZC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OGJmYmVkNjk0Li4wMDAw MDAwMDAwCi0tLSBhL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL29wZW5ic2QuaAorKysg L2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoK LSAqIG9wZW5ic2QuaAotICoJICBwb3J0LXNwZWNpZmljIHByb3RvdHlwZXMgZm9yIE9wZW5C U0QKLSAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxOCwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCi0gKgotICog c3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvb3BlbmJzZC5oCi0gKgotICotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0gKi8KLSNpZm5kZWYgUE9SVF9QUk9UT1NfSAotI2RlZmluZSBQT1JUX1BS T1RPU19ICi0KLSNpbmNsdWRlIDxkbGZjbi5oPgotCi0jaW5jbHVkZSAidXRpbHMvZHluYW1p Y19sb2FkZXIuaCIJLyogcGdybWluY2x1ZGUgaWdub3JlICovCi0KLS8qCi0gKiBJbiBzb21l IG9sZGVyIHN5c3RlbXMsIHRoZSBSVExEX05PVyBmbGFnIGlzbid0IGRlZmluZWQgYW5kIHRo ZSBtb2RlCi0gKiBhcmd1bWVudCB0byBkbG9wZW4gbXVzdCBhbHdheXMgYmUgMS4gIFRoZSBS VExEX0dMT0JBTCBmbGFnIGlzIHdhbnRlZAotICogaWYgYXZhaWxhYmxlLCBidXQgaXQgZG9l c24ndCBleGlzdCBldmVyeXdoZXJlLgotICogSWYgaXQgZG9lc24ndCBleGlzdCwgc2V0IGl0 IHRvIDAgc28gaXQgaGFzIG5vIGVmZmVjdC4KLSAqLwotI2lmbmRlZiBSVExEX05PVwotI2Rl ZmluZSBSVExEX05PVyAxCi0jZW5kaWYKLSNpZm5kZWYgUlRMRF9HTE9CQUwKLSNkZWZpbmUg UlRMRF9HTE9CQUwgMAotI2VuZGlmCi0KLSNkZWZpbmUgcGdfZGxvcGVuKGYpCWRsb3Blbigo ZiksIFJUTERfTk9XIHwgUlRMRF9HTE9CQUwpCi0jZGVmaW5lIHBnX2Rsc3ltCQlkbHN5bQot I2RlZmluZSBwZ19kbGNsb3NlCQlkbGNsb3NlCi0jZGVmaW5lIHBnX2RsZXJyb3IJCWRsZXJy b3IKLQotI2VuZGlmCQkJCQkJCS8qIFBPUlRfUFJPVE9TX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL3NvbGFyaXMuYyBiL3NyYy9iYWNrZW5kL3BvcnQv ZHlubG9hZGVyL3NvbGFyaXMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTlh ZGNlZGM1ZS4uMDAwMDAwMDAwMAotLS0gYS9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9z b2xhcmlzLmMKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLS8qCi0gKiBzcmMvYmFj a2VuZC9wb3J0L2R5bmxvYWRlci9zb2xhcmlzLmMKLSAqCi0gKiBEdW1teSBmaWxlIHVzZWQg Zm9yIG5vdGhpbmcgYXQgdGhpcyBwb2ludAotICoKLSAqIHNlZSBzb2xhcmlzLmgKLSAqLwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvc29sYXJpcy5oIGIvc3Jj L2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvc29sYXJpcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBiNTgzYzI2NmNmLi4wMDAwMDAwMDAwCi0tLSBhL3NyYy9iYWNrZW5kL3Bv cnQvZHlubG9hZGVyL3NvbGFyaXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAK LS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqIHNvbGFyaXMuaAotICoJICBwb3J0LXNw ZWNpZmljIHByb3RvdHlwZXMgZm9yIFNvbGFyaXMKLSAqCi0gKgotICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk2LTIwMTgsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVu aXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQotICoKLSAqIHNyYy9iYWNrZW5kL3BvcnQvZHlubG9h ZGVyL3NvbGFyaXMuaAotICoKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICovCi0jaWZuZGVm IFBPUlRfUFJPVE9TX0gKLSNkZWZpbmUgUE9SVF9QUk9UT1NfSAotCi0jaW5jbHVkZSA8ZGxm Y24uaD4KLSNpbmNsdWRlICJ1dGlscy9keW5hbWljX2xvYWRlci5oIgkvKiBwZ3JtaW5jbHVk ZSBpZ25vcmUgKi8KLQotLyoKLSAqIEluIHNvbWUgb2xkZXIgc3lzdGVtcywgdGhlIFJUTERf Tk9XIGZsYWcgaXNuJ3QgZGVmaW5lZCBhbmQgdGhlIG1vZGUKLSAqIGFyZ3VtZW50IHRvIGRs b3BlbiBtdXN0IGFsd2F5cyBiZSAxLiAgVGhlIFJUTERfR0xPQkFMIGZsYWcgaXMgd2FudGVk Ci0gKiBpZiBhdmFpbGFibGUsIGJ1dCBpdCBkb2Vzbid0IGV4aXN0IGV2ZXJ5d2hlcmUuCi0g KiBJZiBpdCBkb2Vzbid0IGV4aXN0LCBzZXQgaXQgdG8gMCBzbyBpdCBoYXMgbm8gZWZmZWN0 LgotICovCi0jaWZuZGVmIFJUTERfTk9XCi0jZGVmaW5lIFJUTERfTk9XIDEKLSNlbmRpZgot I2lmbmRlZiBSVExEX0dMT0JBTAotI2RlZmluZSBSVExEX0dMT0JBTCAwCi0jZW5kaWYKLQot I2RlZmluZSBwZ19kbG9wZW4oZikJZGxvcGVuKChmKSwgUlRMRF9OT1cgfCBSVExEX0dMT0JB TCkKLSNkZWZpbmUgcGdfZGxzeW0JCWRsc3ltCi0jZGVmaW5lIHBnX2RsY2xvc2UJCWRsY2xv c2UKLSNkZWZpbmUgcGdfZGxlcnJvcgkJZGxlcnJvcgotCi0jZW5kaWYJCQkJCQkJLyogUE9S VF9QUk9UT1NfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIv d2luMzIuaCBiL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL3dpbjMyLmgKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkYmY4NjY1MjAuLjAwMDAwMDAwMDAKLS0tIGEvc3Jj L2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvd2luMzIuaAorKysgL2Rldi9udWxsCkBAIC0xLDE5 ICswLDAgQEAKLS8qCi0gKiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci93aW4zMi5oCi0g Ki8KLSNpZm5kZWYgUE9SVF9QUk9UT1NfSAotI2RlZmluZSBQT1JUX1BST1RPU19ICi0KLSNp bmNsdWRlICJ1dGlscy9keW5hbWljX2xvYWRlci5oIgkvKiBwZ3JtaW5jbHVkZSBpZ25vcmUg Ki8KLQotI2RlZmluZSBwZ19kbG9wZW4oZikJZGxvcGVuKChmKSwgMSkKLSNkZWZpbmUgcGdf ZGxzeW0JCWRsc3ltCi0jZGVmaW5lIHBnX2RsY2xvc2UJCWRsY2xvc2UKLSNkZWZpbmUgcGdf ZGxlcnJvcgkJZGxlcnJvcgotCi1jaGFyCSAgICpkbGVycm9yKHZvaWQpOwotaW50CQkJZGxj bG9zZSh2b2lkICpoYW5kbGUpOwotdm9pZAkgICAqZGxzeW0odm9pZCAqaGFuZGxlLCBjb25z dCBjaGFyICpzeW1ib2wpOwotdm9pZAkgICAqZGxvcGVuKGNvbnN0IGNoYXIgKnBhdGgsIGlu dCBtb2RlKTsKLQotI2VuZGlmCQkJCQkJCS8qIFBPUlRfUFJPVE9TX0ggKi8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jIGIvc3JjL2JhY2tlbmQv cG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKaW5kZXggMjIxNWViYmI1YS4uNmQyMGIxMDJmOSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKKysrIGIv c3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKQEAgLTEyNCw3ICsxMjQsNiBA QAogI2luY2x1ZGUgInRjb3AvdGNvcHByb3QuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlu cy5oIgogI2luY2x1ZGUgInV0aWxzL2RhdGV0aW1lLmgiCi0jaW5jbHVkZSAidXRpbHMvZHlu YW1pY19sb2FkZXIuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUg InV0aWxzL3BpZGZpbGUuaCIKICNpbmNsdWRlICJ1dGlscy9wc19zdGF0dXMuaCIKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZGZtZ3IuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2ZtZ3IvZGZtZ3IuYwppbmRleCAxYjBkYmFkODJjLi5jMmEyNTcyNThkIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2RmbWdyLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvZm1nci9kZm1nci5jCkBAIC0xNiwxMSArMTYsMTQgQEAKIAogI2luY2x1ZGUgPHN5 cy9zdGF0Lmg+CiAKLSNpbmNsdWRlICJkeW5sb2FkZXIuaCIKKyNpZmRlZiBIQVZFX0RMT1BF TgorI2luY2x1ZGUgPGRsZmNuLmg+CisjZW5kaWYKKworI2luY2x1ZGUgImZtZ3IuaCIKICNp bmNsdWRlICJsaWIvc3RyaW5naW5mby5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2lu Y2x1ZGUgInN0b3JhZ2Uvc2htZW0uaCIKLSNpbmNsdWRlICJ1dGlscy9keW5hbWljX2xvYWRl ci5oIgogI2luY2x1ZGUgInV0aWxzL2hzZWFyY2guaCIKIAogCkBAIC0xMTMsNyArMTE2LDcg QEAgbG9hZF9leHRlcm5hbF9mdW5jdGlvbihjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3Qg Y2hhciAqZnVuY25hbWUsCiAJICogc2hvdWxkIGRlY2xhcmUgaXRzIHNlY29uZCBhcmd1bWVu dCBhcyAiY29uc3QgY2hhciAqIiwgYnV0IG9sZGVyCiAJICogcGxhdGZvcm1zIG1pZ2h0IG5v dCwgc28gZm9yIHRoZSB0aW1lIGJlaW5nIHdlIGp1c3QgY2FzdCBhd2F5IGNvbnN0LgogCSAq LwotCXJldHZhbCA9IChQR0Z1bmN0aW9uKSBwZ19kbHN5bShsaWJfaGFuZGxlLCAoY2hhciAq KSBmdW5jbmFtZSk7CisJcmV0dmFsID0gKFBHRnVuY3Rpb24pIGRsc3ltKGxpYl9oYW5kbGUs IChjaGFyICopIGZ1bmNuYW1lKTsKIAogCWlmIChyZXR2YWwgPT0gTlVMTCAmJiBzaWduYWxO b3RGb3VuZCkKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTE2Miw3ICsxNjUsNyBAQCBQR0Z1bmN0 aW9uCiBsb29rdXBfZXh0ZXJuYWxfZnVuY3Rpb24odm9pZCAqZmlsZWhhbmRsZSwgY29uc3Qg Y2hhciAqZnVuY25hbWUpCiB7CiAJLyogYXMgYWJvdmUsIGNhc3QgYXdheSBjb25zdCBmb3Ig dGhlIHRpbWUgYmVpbmcgKi8KLQlyZXR1cm4gKFBHRnVuY3Rpb24pIHBnX2Rsc3ltKGZpbGVo YW5kbGUsIChjaGFyICopIGZ1bmNuYW1lKTsKKwlyZXR1cm4gKFBHRnVuY3Rpb24pIGRsc3lt KGZpbGVoYW5kbGUsIChjaGFyICopIGZ1bmNuYW1lKTsKIH0KIAogCkBAIC0yMjgsMTAgKzIz MSwxMCBAQCBpbnRlcm5hbF9sb2FkX2xpYnJhcnkoY29uc3QgY2hhciAqbGlibmFtZSkKICNl bmRpZgogCQlmaWxlX3NjYW5uZXItPm5leHQgPSBOVUxMOwogCi0JCWZpbGVfc2Nhbm5lci0+ aGFuZGxlID0gcGdfZGxvcGVuKGZpbGVfc2Nhbm5lci0+ZmlsZW5hbWUpOworCQlmaWxlX3Nj YW5uZXItPmhhbmRsZSA9IGRsb3BlbihmaWxlX3NjYW5uZXItPmZpbGVuYW1lLCBSVExEX05P VyB8IFJUTERfR0xPQkFMKTsKIAkJaWYgKGZpbGVfc2Nhbm5lci0+aGFuZGxlID09IE5VTEwp CiAJCXsKLQkJCWxvYWRfZXJyb3IgPSAoY2hhciAqKSBwZ19kbGVycm9yKCk7CisJCQlsb2Fk X2Vycm9yID0gZGxlcnJvcigpOwogCQkJZnJlZSgoY2hhciAqKSBmaWxlX3NjYW5uZXIpOwog CQkJLyogZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3MgbWlnaHQgbm90IGJlIGFwcHJvcHJpYXRl IGhlcmU/ICovCiAJCQllcmVwb3J0KEVSUk9SLApAQCAtMjQyLDcgKzI0NSw3IEBAIGludGVy bmFsX2xvYWRfbGlicmFyeShjb25zdCBjaGFyICpsaWJuYW1lKQogCiAJCS8qIENoZWNrIHRo ZSBtYWdpYyBmdW5jdGlvbiB0byBkZXRlcm1pbmUgY29tcGF0aWJpbGl0eSAqLwogCQltYWdp Y19mdW5jID0gKFBHTW9kdWxlTWFnaWNGdW5jdGlvbikKLQkJCXBnX2Rsc3ltKGZpbGVfc2Nh bm5lci0+aGFuZGxlLCBQR19NQUdJQ19GVU5DVElPTl9OQU1FX1NUUklORyk7CisJCQlkbHN5 bShmaWxlX3NjYW5uZXItPmhhbmRsZSwgUEdfTUFHSUNfRlVOQ1RJT05fTkFNRV9TVFJJTkcp OwogCQlpZiAobWFnaWNfZnVuYykKIAkJewogCQkJY29uc3QgUGdfbWFnaWNfc3RydWN0ICpt YWdpY19kYXRhX3B0ciA9ICgqbWFnaWNfZnVuYykgKCk7CkBAIC0yNTMsOCArMjU2LDggQEAg aW50ZXJuYWxfbG9hZF9saWJyYXJ5KGNvbnN0IGNoYXIgKmxpYm5hbWUpCiAJCQkJLyogY29w eSBkYXRhIGJsb2NrIGJlZm9yZSB1bmxpbmtpbmcgbGlicmFyeSAqLwogCQkJCVBnX21hZ2lj X3N0cnVjdCBtb2R1bGVfbWFnaWNfZGF0YSA9ICptYWdpY19kYXRhX3B0cjsKIAotCQkJCS8q IHRyeSB0byB1bmxpbmsgbGlicmFyeSAqLwotCQkJCXBnX2RsY2xvc2UoZmlsZV9zY2FubmVy LT5oYW5kbGUpOworCQkJCS8qIHRyeSB0byBjbG9zZSBsaWJyYXJ5ICovCisJCQkJZGxjbG9z ZShmaWxlX3NjYW5uZXItPmhhbmRsZSk7CiAJCQkJZnJlZSgoY2hhciAqKSBmaWxlX3NjYW5u ZXIpOwogCiAJCQkJLyogaXNzdWUgc3VpdGFibGUgY29tcGxhaW50ICovCkBAIC0yNjMsOCAr MjY2LDggQEAgaW50ZXJuYWxfbG9hZF9saWJyYXJ5KGNvbnN0IGNoYXIgKmxpYm5hbWUpCiAJ CX0KIAkJZWxzZQogCQl7Ci0JCQkvKiB0cnkgdG8gdW5saW5rIGxpYnJhcnkgKi8KLQkJCXBn X2RsY2xvc2UoZmlsZV9zY2FubmVyLT5oYW5kbGUpOworCQkJLyogdHJ5IHRvIGNsb3NlIGxp YnJhcnkgKi8KKwkJCWRsY2xvc2UoZmlsZV9zY2FubmVyLT5oYW5kbGUpOwogCQkJZnJlZSgo Y2hhciAqKSBmaWxlX3NjYW5uZXIpOwogCQkJLyogY29tcGxhaW4gKi8KIAkJCWVyZXBvcnQo RVJST1IsCkBAIC0yNzYsNyArMjc5LDcgQEAgaW50ZXJuYWxfbG9hZF9saWJyYXJ5KGNvbnN0 IGNoYXIgKmxpYm5hbWUpCiAJCS8qCiAJCSAqIElmIHRoZSBsaWJyYXJ5IGhhcyBhIF9QR19p bml0KCkgZnVuY3Rpb24sIGNhbGwgaXQuCiAJCSAqLwotCQlQR19pbml0ID0gKFBHX2luaXRf dCkgcGdfZGxzeW0oZmlsZV9zY2FubmVyLT5oYW5kbGUsICJfUEdfaW5pdCIpOworCQlQR19p bml0ID0gKFBHX2luaXRfdCkgZGxzeW0oZmlsZV9zY2FubmVyLT5oYW5kbGUsICJfUEdfaW5p dCIpOwogCQlpZiAoUEdfaW5pdCkKIAkJCSgqUEdfaW5pdCkgKCk7CiAKQEAgLTQzNiwxMiAr NDM5LDEyIEBAIGludGVybmFsX3VubG9hZF9saWJyYXJ5KGNvbnN0IGNoYXIgKmxpYm5hbWUp CiAJCQkvKgogCQkJICogSWYgdGhlIGxpYnJhcnkgaGFzIGEgX1BHX2ZpbmkoKSBmdW5jdGlv biwgY2FsbCBpdC4KIAkJCSAqLwotCQkJUEdfZmluaSA9IChQR19maW5pX3QpIHBnX2Rsc3lt KGZpbGVfc2Nhbm5lci0+aGFuZGxlLCAiX1BHX2ZpbmkiKTsKKwkJCVBHX2ZpbmkgPSAoUEdf ZmluaV90KSBkbHN5bShmaWxlX3NjYW5uZXItPmhhbmRsZSwgIl9QR19maW5pIik7CiAJCQlp ZiAoUEdfZmluaSkKIAkJCQkoKlBHX2ZpbmkpICgpOwogCiAJCQljbGVhcl9leHRlcm5hbF9m dW5jdGlvbl9oYXNoKGZpbGVfc2Nhbm5lci0+aGFuZGxlKTsKLQkJCXBnX2RsY2xvc2UoZmls ZV9zY2FubmVyLT5oYW5kbGUpOworCQkJZGxjbG9zZShmaWxlX3NjYW5uZXItPmhhbmRsZSk7 CiAJCQlmcmVlKChjaGFyICopIGZpbGVfc2Nhbm5lcik7CiAJCQkvKiBwcnYgZG9lcyBub3Qg Y2hhbmdlICovCiAJCX0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlLy5naXRpZ25vcmUgYi9z cmMvaW5jbHVkZS8uZ2l0aWdub3JlCmluZGV4IDQ5ZDEwOGRiZWQuLjUxODE5ZmI0ZGQgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlLy5naXRpZ25vcmUKKysrIGIvc3JjL2luY2x1ZGUvLmdp dGlnbm9yZQpAQCAtMyw0ICszLDMgQEAKIC9wZ19jb25maWcuaAogL3BnX2NvbmZpZ19leHQu aAogL3BnX2NvbmZpZ19vcy5oCi0vZHlubG9hZGVyLmgKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL01ha2VmaWxlIGIvc3JjL2luY2x1ZGUvTWFrZWZpbGUKaW5kZXggOTAxZWRkYmQ0NC4u NmJkZmQ3ZGI5MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvTWFrZWZpbGUKKysrIGIvc3Jj L2luY2x1ZGUvTWFrZWZpbGUKQEAgLTU0LDcgKzU0LDcgQEAgaW5zdGFsbDogYWxsIGluc3Rh bGxkaXJzCiAJICBjcCAkKHNyY2RpcikvJCRkaXIvKi5oICckKERFU1RESVIpJChpbmNsdWRl ZGlyX3NlcnZlciknLyQkZGlyLyB8fCBleGl0OyBcCiAJZG9uZQogaWZlcSAoJCh2cGF0aF9i dWlsZCkseWVzKQotCWZvciBmaWxlIGluIGR5bmxvYWRlci5oIGNhdGFsb2cvc2NoZW1hcGcu aCBjYXRhbG9nL3BnXypfZC5oIHBhcnNlci9ncmFtLmggc3RvcmFnZS9sd2xvY2tuYW1lcy5o IHV0aWxzL3Byb2Jlcy5oOyBkbyBcCisJZm9yIGZpbGUgaW4gY2F0YWxvZy9zY2hlbWFwZy5o IGNhdGFsb2cvcGdfKl9kLmggcGFyc2VyL2dyYW0uaCBzdG9yYWdlL2x3bG9ja25hbWVzLmgg dXRpbHMvcHJvYmVzLmg7IGRvIFwKIAkgIGNwICQkZmlsZSAnJChERVNURElSKSQoaW5jbHVk ZWRpcl9zZXJ2ZXIpJy8kJGZpbGUgfHwgZXhpdDsgXAogCWRvbmUKIGVuZGlmCkBAIC04Miw0 ICs4Miw0IEBAIGNsZWFuOgogCXJtIC1mIGNhdGFsb2cvc2NoZW1hcGcuaCBjYXRhbG9nL3Bn XypfZC5oIGNhdGFsb2cvaGVhZGVyLXN0YW1wCiAKIGRpc3RjbGVhbiBtYWludGFpbmVyLWNs ZWFuOiBjbGVhbgotCXJtIC1mIHBnX2NvbmZpZy5oIHBnX2NvbmZpZ19leHQuaCBwZ19jb25m aWdfb3MuaCBkeW5sb2FkZXIuaCBzdGFtcC1oIHN0YW1wLWV4dC1oCisJcm0gLWYgcGdfY29u ZmlnLmggcGdfY29uZmlnX2V4dC5oIHBnX2NvbmZpZ19vcy5oIHN0YW1wLWggc3RhbXAtZXh0 LWgKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluIGIvc3JjL2luY2x1 ZGUvcGdfY29uZmlnLmguaW4KaW5kZXggMzQ3ZDViNTZkYy4uNDA5NGUyMjc3NiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4KKysrIGIvc3JjL2luY2x1ZGUvcGdf Y29uZmlnLmguaW4KQEAgLTE1OCw2ICsxNTgsMTQgQEAKICAgIGRvbid0LiAqLwogI3VuZGVm IEhBVkVfREVDTF9QT1NJWF9GQURWSVNFCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZl IHRoZSBkZWNsYXJhdGlvbiBvZiBgUlRMRF9HTE9CQUwnLCBhbmQgdG8gMCBpZiB5b3UKKyAg IGRvbid0LiAqLworI3VuZGVmIEhBVkVfREVDTF9SVExEX0dMT0JBTAorCisvKiBEZWZpbmUg dG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYFJUTERfTk9XJywgYW5kIHRv IDAgaWYgeW91CisgICBkb24ndC4gKi8KKyN1bmRlZiBIQVZFX0RFQ0xfUlRMRF9OT1cKKwog LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBzbnByaW50 ZicsIGFuZCB0byAwIGlmIHlvdQogICAgZG9uJ3QuICovCiAjdW5kZWYgSEFWRV9ERUNMX1NO UFJJTlRGCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC53aW4zMiBiL3Ny Yy9pbmNsdWRlL3BnX2NvbmZpZy5oLndpbjMyCmluZGV4IDdhOTJkODg5OTkuLjY2MThiNDM1 ODcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLndpbjMyCisrKyBiL3Ny Yy9pbmNsdWRlL3BnX2NvbmZpZy5oLndpbjMyCkBAIC0xMjcsNiArMTI3LDE0IEBACiAgICB0 byAwIGlmIHlvdSBkb24ndC4gKi8KICNkZWZpbmUgSEFWRV9ERUNMX0xMVk1PUkNHRVRTWU1C T0xBRERSRVNTSU4gMAogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFy YXRpb24gb2YgYFJUTERfR0xPQkFMJywgYW5kIHRvIDAgaWYgeW91CisgICBkb24ndC4gKi8K KyNkZWZpbmUgSEFWRV9ERUNMX1JUTERfR0xPQkFMIDAKKworLyogRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBSVExEX05PVycsIGFuZCB0byAwIGlmIHlv dQorICAgZG9uJ3QuICovCisjZGVmaW5lIEhBVkVfREVDTF9SVExEX05PVyAwCisKIC8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgc25wcmludGYnLCBh bmQgdG8gMCBpZiB5b3UKICAgIGRvbid0LiAqLwogI2RlZmluZSBIQVZFX0RFQ0xfU05QUklO VEYgMQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9ydC5oIGIvc3JjL2luY2x1ZGUvcG9y dC5oCmluZGV4IDBjZTcyZTUwZTUuLjZkZDRlOTZjZjMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3BvcnQuaAorKysgYi9zcmMvaW5jbHVkZS9wb3J0LmgKQEAgLTQwMyw2ICs0MDMsMjkg QEAgZXh0ZXJuIHZvaWQgc3JhbmRvbSh1bnNpZ25lZCBpbnQgc2VlZCk7CiAjZGVmaW5lIFNT TF9nZXRfY3VycmVudF9jb21wcmVzc2lvbih4KSAwCiAjZW5kaWYKIAorI2lmbmRlZiBIQVZF X0RMT1BFTgorZXh0ZXJuIHZvaWQgKmRsb3Blbihjb25zdCBjaGFyICpmaWxlLCBpbnQgbW9k ZSk7CitleHRlcm4gdm9pZCAqZGxzeW0odm9pZCAqaGFuZGxlLCBjb25zdCBjaGFyICpzeW1i b2wpOworZXh0ZXJuIGludCBkbGNsb3NlKHZvaWQgKmhhbmRsZSk7CitleHRlcm4gY2hhciAq ZGxlcnJvcih2b2lkKTsKKyNlbmRpZgorCisvKgorICogSW4gc29tZSBvbGRlciBzeXN0ZW1z LCB0aGUgUlRMRF9OT1cgZmxhZyBpc24ndCBkZWZpbmVkIGFuZCB0aGUgbW9kZQorICogYXJn dW1lbnQgdG8gZGxvcGVuIG11c3QgYWx3YXlzIGJlIDEuCisgKi8KKyNpZm5kZWYgSEFWRV9E RUNMX1JUTERfTk9XCisjZGVmaW5lIFJUTERfTk9XIDEKKyNlbmRpZgorCisvKgorICogVGhl IFJUTERfR0xPQkFMIGZsYWcgaXMgd2FudGVkIGlmIGF2YWlsYWJsZSwgYnV0IGl0IGRvZXNu J3QgZXhpc3QKKyAqIGV2ZXJ5d2hlcmUuICBJZiBpdCBkb2Vzbid0IGV4aXN0LCBzZXQgaXQg dG8gMCBzbyBpdCBoYXMgbm8gZWZmZWN0LgorICovCisjaWZuZGVmIEhBVkVfREVDTF9SVExE X0dMT0JBTAorI2RlZmluZSBSVExEX0dMT0JBTCAwCisjZW5kaWYKKwogLyogdGhyZWFkLmgg Ki8KIGV4dGVybiBjaGFyICpwcVN0cmVycm9yKGludCBlcnJudW0sIGNoYXIgKnN0cmVycmJ1 Ziwgc2l6ZV90IGJ1Zmxlbik7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2R5 bmFtaWNfbG9hZGVyLmggYi9zcmMvaW5jbHVkZS91dGlscy9keW5hbWljX2xvYWRlci5oCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjQ1NWI1MmNhLi4wMDAwMDAwMDAwCi0t LSBhL3NyYy9pbmNsdWRlL3V0aWxzL2R5bmFtaWNfbG9hZGVyLmgKKysrIC9kZXYvbnVsbApA QCAtMSwyNSArMCwwIEBACi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBkeW5hbWlj X2xvYWRlci5oCi0gKgotICoKLSAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYt MjAxOCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKLSAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCi0gKgotICogc3JjL2luY2x1ZGUvdXRpbHMvZHluYW1pY19sb2FkZXIuaAotICoK LSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICovCi0jaWZuZGVmIERZTkFNSUNfTE9BREVSX0gK LSNkZWZpbmUgRFlOQU1JQ19MT0FERVJfSAotCi0jaW5jbHVkZSAiZm1nci5oIgotCi0KLWV4 dGVybiB2b2lkICpwZ19kbG9wZW4oY29uc3QgY2hhciAqZmlsZW5hbWUpOwotZXh0ZXJuIFBH RnVuY3Rpb24gcGdfZGxzeW0odm9pZCAqaGFuZGxlLCBjb25zdCBjaGFyICpmdW5jbmFtZSk7 Ci1leHRlcm4gdm9pZCBwZ19kbGNsb3NlKHZvaWQgKmhhbmRsZSk7Ci1leHRlcm4gY2hhciAq cGdfZGxlcnJvcih2b2lkKTsKLQotI2VuZGlmCQkJCQkJCS8qIERZTkFNSUNfTE9BREVSX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL3dpbjMyLmMgYi9z cmMvcG9ydC9kbG9wZW4uYwpzaW1pbGFyaXR5IGluZGV4IDUxJQpyZW5hbWUgZnJvbSBzcmMv YmFja2VuZC9wb3J0L2R5bmxvYWRlci93aW4zMi5jCnJlbmFtZSB0byBzcmMvcG9ydC9kbG9w ZW4uYwppbmRleCBjNTk4MjNlMzY3Li44OTc0MDdjM2FmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wb3J0L2R5bmxvYWRlci93aW4zMi5jCisrKyBiL3NyYy9wb3J0L2Rsb3Blbi5jCkBA IC0xLDExICsxLDY5IEBACi0vKiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci93aW4zMi5j ICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBkbG9wZW4uYworICoJICBkeW5h bWljIGxvYWRlciBmb3IgcGxhdGZvcm1zIHdpdGhvdXQgZGxvcGVuKCkKKyAqCisgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxOCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxv cG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBv ZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICoKKyAqIElERU5USUZJQ0FU SU9OCisgKgkgIHNyYy9wb3J0L2Rsb3Blbi5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKi8KIAotI2luY2x1ZGUgInBvc3RncmVzLmgiCisjaW5jbHVkZSAiYy5oIgogCi1jaGFy CSAgICpkbGVycm9yKHZvaWQpOwotaW50CQkJZGxjbG9zZSh2b2lkICpoYW5kbGUpOwotdm9p ZAkgICAqZGxzeW0odm9pZCAqaGFuZGxlLCBjb25zdCBjaGFyICpzeW1ib2wpOwotdm9pZAkg ICAqZGxvcGVuKGNvbnN0IGNoYXIgKnBhdGgsIGludCBtb2RlKTsKKyNpZiBkZWZpbmVkKF9f aHB1eCkKKworLyogU3lzdGVtIGluY2x1ZGVzICovCisjaW5jbHVkZSA8YS5vdXQuaD4KKyNp bmNsdWRlIDxkbC5oPgorCit2b2lkICoKK2Rsb3Blbihjb25zdCBjaGFyICpmaWxlLCBpbnQg bW9kZSkKK3sKKwlpbnQJCWZsYWdzID0gMDsKKworCWlmIChtb2RlICYgUlRMRF9OT1cpCisJ CWZsYWdzIHw9IEJJTkRfSU1NRURJQVRFOworI2lmZGVmIE5PVF9VU0VECisJaWYgKG1vZGUg JiBSVExEX0xBWlkpCisJCWZsYWdzIHw9IEJJTkRfREVGRVJSRUQ7CisjZW5kaWYKKworCXJl dHVybiBzaGxfbG9hZChmaWxlbmFtZSwgZmxhZ3MgfCBCSU5EX1ZFUkJPU0UsIDBMKTsKK30K Kwordm9pZCAqCitkbHN5bSh2b2lkICpoYW5kbGUsIGNvbnN0IGNoYXIgKnN5bWJvbCkKK3sK Kwl2b2lkCSAgICp2YWx1ZTsKKworCWlmIChzaGxfZmluZHN5bSgoc2hsX3QgKikgJiBoYW5k bGUsIHN5bWJvbCwgVFlQRV9QUk9DRURVUkUsICZ2YWx1ZSkgPT0gLTEpCisJCXJldHVybiBO VUxMOworCXJldHVybiB2YWx1ZTsKK30KKworaW50CitkbGNsb3NlKHZvaWQgKmhhbmRsZSkK K3sKKwlyZXR1cm4gc2hsX3VubG9hZCgoc2hsX3QpIGhhbmRsZSk7Cit9CisKK2NoYXIgKgor ZGxlcnJvcih2b2lkKQoreworCXN0YXRpYyBjaGFyIGVycm1zZ1tdID0gInNobF9sb2FkIGZh aWxlZCI7CisKKwlpZiAoZXJybm8pCisJCXJldHVybiBzdHJlcnJvcihlcnJubyk7CisKKwly ZXR1cm4gZXJybXNnOworfQorCisjZWxpZiBkZWZpbmVkKFdJTjMyKQogCiBzdGF0aWMgY2hh ciBsYXN0X2R5bl9lcnJvcls1MTJdOwogCkBAIC04MywzICsxNDEsNSBAQCBkbG9wZW4oY29u c3QgY2hhciAqcGF0aCwgaW50IG1vZGUpCiAJbGFzdF9keW5fZXJyb3JbMF0gPSAwOwogCXJl dHVybiAodm9pZCAqKSBoOwogfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy90b29scy9t c3ZjL0luc3RhbGwucG0gYi9zcmMvdG9vbHMvbXN2Yy9JbnN0YWxsLnBtCmluZGV4IDYwYjU2 MzlkZjguLmM4YWUxYTBkYzcgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9tc3ZjL0luc3RhbGwu cG0KKysrIGIvc3JjL3Rvb2xzL21zdmMvSW5zdGFsbC5wbQpAQCAtNjU0LDcgKzY1NCw3IEBA IHN1YiBDb3B5SW5jbHVkZUZpbGVzCiAJCSdQdWJsaWMgaGVhZGVycycsICR0YXJnZXQgLiAn L2luY2x1ZGUvJywKIAkJJ3NyYy9pbmNsdWRlLycsICAgJ3Bvc3RncmVzX2V4dC5oJywKIAkJ J3BnX2NvbmZpZy5oJywgICAgJ3BnX2NvbmZpZ19leHQuaCcsCi0JCSdwZ19jb25maWdfb3Mu aCcsICdkeW5sb2FkZXIuaCcsCisJCSdwZ19jb25maWdfb3MuaCcsCiAJCSdwZ19jb25maWdf bWFudWFsLmgnKTsKIAlsY29weSgnc3JjL2luY2x1ZGUvbGlicHEvbGlicHEtZnMuaCcsICR0 YXJnZXQgLiAnL2luY2x1ZGUvbGlicHEvJykKIAkgIHx8IGNyb2FrICdDb3VsZCBub3QgY29w eSBsaWJwcS1mcy5oJzsKQEAgLTY3OCw4ICs2NzgsNyBAQCBzdWIgQ29weUluY2x1ZGVGaWxl cwogCUNvcHlGaWxlcygKIAkJJ1NlcnZlciBoZWFkZXJzJywKIAkJJHRhcmdldCAuICcvaW5j bHVkZS9zZXJ2ZXIvJywKLQkJJ3NyYy9pbmNsdWRlLycsICdwZ19jb25maWcuaCcsICdwZ19j b25maWdfZXh0LmgnLCAncGdfY29uZmlnX29zLmgnLAotCQknZHlubG9hZGVyLmgnKTsKKwkJ J3NyYy9pbmNsdWRlLycsICdwZ19jb25maWcuaCcsICdwZ19jb25maWdfZXh0LmgnLCAncGdf Y29uZmlnX29zLmgnKTsKIAlDb3B5RmlsZXMoCiAJCSdHcmFtbWFyIGhlYWRlcicsCiAJCSR0 YXJnZXQgLiAnL2luY2x1ZGUvc2VydmVyL3BhcnNlci8nLApkaWZmIC0tZ2l0IGEvc3JjL3Rv b2xzL21zdmMvTWt2Y2J1aWxkLnBtIGIvc3JjL3Rvb2xzL21zdmMvTWt2Y2J1aWxkLnBtCmlu ZGV4IDQ1NDNkODdkODMuLjE0ZDJhM2M0Y2YgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9tc3Zj L01rdmNidWlsZC5wbQorKysgYi9zcmMvdG9vbHMvbXN2Yy9Na3ZjYnVpbGQucG0KQEAgLTk4 LDcgKzk4LDcgQEAgc3ViIG1rdmNidWlsZAogCSAgZXJhbmQ0OC5jIHNucHJpbnRmLmMgc3Ry bGNhdC5jIHN0cmxjcHkuYyBkaXJtb2QuYyBub2Jsb2NrLmMgcGF0aC5jCiAJICBwZ19zdHJv bmdfcmFuZG9tLmMgcGdjaGVja2Rpci5jIHBnbWtkaXJwLmMgcGdzbGVlcC5jIHBnc3RyY2Fz ZWNtcC5jCiAJICBwcXNpZ25hbC5jIG1rZHRlbXAuYyBxc29ydC5jIHFzb3J0X2FyZy5jIHF1 b3Rlcy5jIHN5c3RlbS5jCi0JICBzcHJvbXB0LmMgdGFyLmMgdGhyZWFkLmMgZ2V0b3B0LmMg Z2V0b3B0X2xvbmcuYyBkaXJlbnQuYworCSAgc3Byb21wdC5jIHRhci5jIHRocmVhZC5jIGdl dG9wdC5jIGdldG9wdF9sb25nLmMgZGlyZW50LmMgZGxvcGVuLmMKIAkgIHdpbjMyZW52LmMg d2luMzJlcnJvci5jIHdpbjMyc2VjdXJpdHkuYyB3aW4zMnNldGxvY2FsZS5jKTsKIAogCXB1 c2goQHBncG9ydGZpbGVzLCAncmludC5jJykgaWYgKCR2c1ZlcnNpb24gPCAnMTIuMDAnKTsK QEAgLTE1NSw5ICsxNTUsNiBAQCBzdWIgbWt2Y2J1aWxkCiAJJHBvc3RncmVzLT5BZGRJbmNs dWRlRGlyKCdzcmMvYmFja2VuZCcpOwogCSRwb3N0Z3Jlcy0+QWRkRGlyKCdzcmMvYmFja2Vu ZC9wb3J0L3dpbjMyJyk7CiAJJHBvc3RncmVzLT5BZGRGaWxlKCdzcmMvYmFja2VuZC91dGls cy9mbWdydGFiLmMnKTsKLQkkcG9zdGdyZXMtPlJlcGxhY2VGaWxlKAotCQknc3JjL2JhY2tl bmQvcG9ydC9keW5sb2FkZXIuYycsCi0JCSdzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci93 aW4zMi5jJyk7CiAJJHBvc3RncmVzLT5SZXBsYWNlRmlsZSgnc3JjL2JhY2tlbmQvcG9ydC9w Z19zZW1hLmMnLAogCQknc3JjL2JhY2tlbmQvcG9ydC93aW4zMl9zZW1hLmMnKTsKIAkkcG9z dGdyZXMtPlJlcGxhY2VGaWxlKCdzcmMvYmFja2VuZC9wb3J0L3BnX3NobWVtLmMnLApkaWZm IC0tZ2l0IGEvc3JjL3Rvb2xzL21zdmMvU29sdXRpb24ucG0gYi9zcmMvdG9vbHMvbXN2Yy9T b2x1dGlvbi5wbQppbmRleCA3ZDdjZThiMDMxLi42OGNmODEyZjAxIDEwMDY0NAotLS0gYS9z cmMvdG9vbHMvbXN2Yy9Tb2x1dGlvbi5wbQorKysgYi9zcmMvdG9vbHMvbXN2Yy9Tb2x1dGlv bi5wbQpAQCAtMzIxLDEzICszMjEsNiBAQCBzdWIgR2VuZXJhdGVGaWxlcwogCQkJJ3NyYy9p bmNsdWRlL3N0b3JhZ2UvbHdsb2NrbmFtZXMuaCcpOwogCX0KIAotCWlmIChJc05ld2VyKAot CQkJJ3NyYy9pbmNsdWRlL2R5bmxvYWRlci5oJywgJ3NyYy9iYWNrZW5kL3BvcnQvZHlubG9h ZGVyL3dpbjMyLmgnKSkKLQl7Ci0JCWNvcHlGaWxlKCdzcmMvYmFja2VuZC9wb3J0L2R5bmxv YWRlci93aW4zMi5oJywKLQkJCSdzcmMvaW5jbHVkZS9keW5sb2FkZXIuaCcpOwotCX0KLQog CWlmIChJc05ld2VyKCdzcmMvaW5jbHVkZS91dGlscy9wcm9iZXMuaCcsICdzcmMvYmFja2Vu ZC91dGlscy9wcm9iZXMuZCcpKQogCXsKIAkJcHJpbnQgIkdlbmVyYXRpbmcgcHJvYmVzLmgu Li5cbiI7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvbXN2Yy9jbGVhbi5iYXQgYi9zcmMvdG9v bHMvbXN2Yy9jbGVhbi5iYXQKaW5kZXggMWQ5Y2Q0MGJkYi4uN2EyM2EyYjU1ZiAxMDA3NTUK LS0tIGEvc3JjL3Rvb2xzL21zdmMvY2xlYW4uYmF0CisrKyBiL3NyYy90b29scy9tc3ZjL2Ns ZWFuLmJhdApAQCAtNDAsNyArNDAsNiBAQCBSRU0gRGVsZXRlIGZpbGVzIGNyZWF0ZWQgd2l0 aCBHZW5lcmF0ZUZpbGVzKCkgaW4gU29sdXRpb24ucG0KIGlmIGV4aXN0IHNyY1xpbmNsdWRl XHBnX2NvbmZpZy5oIGRlbCAvcSBzcmNcaW5jbHVkZVxwZ19jb25maWcuaAogaWYgZXhpc3Qg c3JjXGluY2x1ZGVccGdfY29uZmlnX2V4dC5oIGRlbCAvcSBzcmNcaW5jbHVkZVxwZ19jb25m aWdfZXh0LmgKIGlmIGV4aXN0IHNyY1xpbmNsdWRlXHBnX2NvbmZpZ19vcy5oIGRlbCAvcSBz cmNcaW5jbHVkZVxwZ19jb25maWdfb3MuaAotaWYgZXhpc3Qgc3JjXGluY2x1ZGVcZHlubG9h ZGVyLmggZGVsIC9xIHNyY1xpbmNsdWRlXGR5bmxvYWRlci5oCiBpZiAlRElTVCU9PTEgaWYg ZXhpc3Qgc3JjXGJhY2tlbmRccGFyc2VyXGdyYW0uaCBkZWwgL3Egc3JjXGJhY2tlbmRccGFy c2VyXGdyYW0uaAogaWYgZXhpc3Qgc3JjXGluY2x1ZGVcdXRpbHNcZXJyY29kZXMuaCBkZWwg L3Egc3JjXGluY2x1ZGVcdXRpbHNcZXJyY29kZXMuaAogaWYgZXhpc3Qgc3JjXGluY2x1ZGVc dXRpbHNcZm1ncm9pZHMuaCBkZWwgL3Egc3JjXGluY2x1ZGVcdXRpbHNcZm1ncm9pZHMuaAot LSAKMi4xOC4wCgo= --------------14C7B35813D4D102178F8943--