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 1fvfAO-0006ng-L7 for pgsql-hackers@arkaria.postgresql.org; Fri, 31 Aug 2018 08:52:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fvfAN-0007d1-0G for pgsql-hackers@arkaria.postgresql.org; Fri, 31 Aug 2018 08:52:31 +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 1fvfAL-0007cs-JH for pgsql-hackers@lists.postgresql.org; Fri, 31 Aug 2018 08:52:30 +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 1fvfAF-0004mN-P9 for pgsql-hackers@postgresql.org; Fri, 31 Aug 2018 08:52:28 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id C14BE21E13; Fri, 31 Aug 2018 04:52:22 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Fri, 31 Aug 2018 04:52:22 -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=m8cr7qV8sEOFk8TUPTye5ukjGG8X2 TrGfKbsmRN/1ks=; b=nL2OExxVKYDODuS+Z7o8pQp0EnC3xPJ+HkPaaMURvWjL9 j5FrKeJ6VAavy0vYxUOO1qRIMzq6cfgaWZxNtOdUFKCnCwGYCd3ibYV6Pjw48R2e FdGlVJy9Ofr9kengFsCChJjF9XGtMuPzSb7PbomOj/o3zNKtSJkx8gdH0TPBnlUp 6lIVANDxn5oy7qRBqm0kxC0vlz7p99mOsA7r3DwfgFwm5JHDAbp2NZf6qisdGzKg 1CAh2MhXq7lOkiLrxcVxO6uFN4/eL+kakBZM+2uoDdCZOY5IC7IL8VeYBL3ZTSdU ekj9T0XLFQS7GZVSp4AmLIlbqpEIvIM/QRoH2yk6Q== X-ME-Proxy: X-ME-Sender: Received: from april.pezone.net (x4db4a708.dyn.telefonica.de [77.180.167.8]) by mail.messagingengine.com (Postfix) with ESMTPA id D513810292; Fri, 31 Aug 2018 04:52:19 -0400 (EDT) Subject: Re: remove ancient pre-dlopen dynloader code 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 From: Peter Eisentraut Openpgp: preference=signencrypt Autocrypt: addr=peter.eisentraut@2ndquadrant.com; prefer-encrypt=mutual; keydata= xsFNBFUUt6kBEADZd9NNTBJbHmAXXJgPGOdd6Q73l80oifIVgn2tRxP9dYkCfTlo/yLqbKTl JNqTcyM6XrJDnB2sMEUGYCewYZXl+9C4bBJWyNqcEI1ae9u71vEq/fknFLArJ+2wN+f7QuRx Q8d94ZJAiJQ5g3fNk2HVeedCQCKP5dCzU+ZLt2dbsx1PDZLjTO9gf+JswWuGFb5wY5PZVM5V hq66Xk7ZJzHuARacza2RT7J2fkMmQBY+kr7L98Perb0GhafnlhXB0PvUB+N3xpmggMfwuhTu BngS/G/r3GvemxJuFxouw8xsMqrsfdksJXA2gLXYtwRCssdPV3PO0rlD9twqDo8URfIJ5fb6 1g/MV8aTOKjg3Q8MpJPtkwJqN4o3PvbwYdedeFnOVkkYAJdu/aX1v1BeCBDu7Hy3sF52scD3 pQbyQSl9vUDpTLarASAxNbAV0NRJE8dp4vfW6AH1ccryGiFqw/czPK/iN0+MT8wsjAW6WW4w hvjm5UPA1KTwi3ZT8eT5uycuH7QpuNk7LnGGXQ6KaRALFywzkr0A0V0AvFNa+l4wstMaXaB6 dmMXyF0/hfryqyOeu1gAdq4q0/PNC2dPgb/6uoh4eMjN6A5GXcprilhz5DulmsilY21hfSoU S64ODed96pKhprsOxjZiDRsN1QM5MwB+uwVWUNfsX7fIxE0BrwARAQABzSdQZXRlciBFaXNl bnRyYXV0IDxwZXRlckBlaXNlbnRyYXV0Lm9yZz7CwXoEEwEIACQCGwMFCwkIBwMFFQoJCAsF FgIDAQACHgECF4AFAlUUuKQCGQEACgkQoZ8SQ+xBJp8llw//RbGoXnF72FZTlOFsnNyxnWbF vViPCfdAlZl1GGK9OYCvV1dp/956HuhB0wpaGQHiBmQfOPJf/jLOPjXFYm2iEChEycrBChuE j4TSYemMp5BSPILYk9Uwd16kVD/+U6fQfK6H5pOhfBvbM6asMnmpY2wQuvktxHvaGlytFw84 EzFWNZtAZfxkw28w3AhIQkKe9hJanfyDL750RcbyEr8AAHty5IErrvS7tM5vQwIeh5BF26ND CyKPRdZgOgMpcwFfROKBDpAt052CgWIpNdhBdfIKlkCs4/ILxmC3rT/Mb/qZiHcoMMwEu6k+ T7vRAFZZAk62Yrr/U8/vUGKlzRZQoo86fyojCfI0ibCIc0z8rwCVY9P40G9wD9BTCZS/z8Vh jjpBlNnIKw2hM6hbxavKndCJjFFJD08rXrTyrLF/of18xD37vNdYooP9VATB5QjOWFRrscSZ 4a89e+to3m7YVnd4xdXwGp47dYusoax84C8tg1gZrH38ol9dPmnKX6GZrXeS7tH9k8VeUpJ8 HQbRThQRWAT936QpYbLConBmOtmbLmjQOGtiXPo1oK57X/7U/WBja5vWmm2q+Yxtt+3uHGVg DdDU4CJpXo4lX0v2n3QV5EBSW9hjdF3bNfl6GFBb1pPEhqNcMDUc7zkx/2uENdAdk/BnqMgH umip7b0pVfvOwU0EVRS3qQEQAJf6p0P7D+hMYUgCPkvgrcz6OJYsAYdUMUmokfqmkKwK0oJM ew8TNGM53ocKAgQGma5f10rwbZNPlpVPNRX5hwUmwVlcwSut0oE+JfUBH7mpysWvpF05RKIy q9RCoJZrAbXS7Tig56A1QD8IcM00rERZMcCOlI1+q9m4u9AOI+0LyGGSH+VvoyDHD/Jew4R2 TmPEF8Pu7lYiNYK88Q6u0kBkc+Tz3BNlyc6fi3HxnFfp0b75HLXPSTu2SwA/0Q31wHZXwrEU BR9KgSn/qbgy8ydPc97i82fhiFE3cbGexfPrQSMYmDGi+dcQ0s+AMQwC3XyMC0JkHpYUuFkR QdlIvaIhgFUUN2Vr4xF2ADaNTNFc4DYaiPHFAgHZw+3pZWqS4uIiWgJynrEaHw4F3QWU8/JB iyEWDhNq4WBrRA0u914TCCAoFOOKMnRdl8eJrRQKM/5/lXbHFjjlI/LDKhLRFsuQsnJJ3331 RjCzpHPZG5/p5KR1RHiAXa0p/DW5lXyq21hS3kjDlleoHqOxCN/cy0Jgz7qLDq1vZoCl67Sy RAH60c2Xu4may9SVltmot0OzWVHdrfS+85FQGp9580DaeLio7YMFKy2bfEvwQJ/c9xD2QPB+ oSb3V8ueSznXBG5+dyfOsZFRPxceA0wA2rSWZSjxLdKxvyGTj9vsCjaDu13rABEBAAHCwV8E GAEIAAkFAlUUt6kCGwwACgkQoZ8SQ+xBJp+HJhAAxmSTsC5y7p9Zu+nnLpucv/h88oEx985e qWeXzQiwM3pfRZS+PdTH9TyzHK0KOgKoAiubk0vt+BrT91D9d0G5kVQaTctAErGBoMkTaZJT XVEcNphiPzysdSqvprjojMp1y7rG8AP+Xd6m0rE1LRnkRRm8HyI8vdXsuLQPITGWXDLMjaNq AOV3BUnzkgtjMuIYw7SCr+12ZOb5dEKvaG4kjC4kaJ/TLbuBhVANcXkC90yp0AOZLs/cB1Dj OAXno/RUUruJ3r27a+pFv768UAi9QWcdw58yPxreMNMLqAgsS9oTHwHfGNWcB2dJ4UW+GMLJ hTf9TjQ2f+N/sIx5XMQ9pYw6CAJMK29qPx6/ZayrPxf22EXf0D3zTwIEZgwfSkynFVwV25L7 awQq60fifdMYheSxq7GbhpsixmcD+e161cCmLIt75YDt5bQ0B1yf7EmxG8n7pGZAOM6LoNsU fkSldba5XVwh8LuN5mK0nQBELGW6Os4TDq4REggLpfcvFC215zpuo0iCGnmE/Bns4nowqUSP u4tkWL+nxW4qgv8wo8HJ52jd79EJ8iqfIBoidBfy9AIUiEUApGQzWPu6yWcI8fY0rN5D+tc+ Yw1Zt6Mm+huYJpgCRsTcfzEcahnBn521CWcWvhW1ff3KFileFMtNmnBBhMncmRKHphtTKEpN 3jI= Organization: 2ndQuadrant Message-ID: Date: Fri, 31 Aug 2018 10:52:18 +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: <20180816141005.nkw5nwkmoip57ui6@alap3.anarazel.de> Content-Type: multipart/mixed; boundary="------------8CD32FEAC49BA140136629E7" 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. --------------8CD32FEAC49BA140136629E7 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit 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. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------8CD32FEAC49BA140136629E7 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-Refactor-dlopen-support.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Refactor-dlopen-support.patch" RnJvbSA0NTExMjM4ZmI2ZWFiMzM3ZTY5N2U2MDgwZjFhMWYzM2JhMTE0Zjk5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlcl9lQGdteC5u ZXQ+CkRhdGU6IFdlZCwgMjkgQXVnIDIwMTggMjA6NTc6MDcgKzAyMDAKU3ViamVjdDogW1BB VENIXSBSZWZhY3RvciBkbG9wZW4oKSBzdXBwb3J0CgpOb3dhZGF5cywgYWxsIHBsYXRmb3Jt cyBleGNlcHQgV2luZG93cyBhbmQgb2xkZXIgSFAtVVggaGF2ZSBzdGFuZGFyZApkbG9wZW4o KSBzdXBwb3J0LiAgU28gaGF2aW5nIGEgc2VwYXJhdGUgaW1wbGVtZW50YXRpb24gcGVyIHBs YXRmb3JtCnVuZGVyIHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyLyBpcyBhIGJpdCBleGNl c3NpdmUuICBJbnN0ZWFkLCB0cmVhdApkbG9wZW4oKSBsaWtlIG90aGVyIGxpYnJhcnkgZnVu Y3Rpb25zIHRoYXQgaGFwcGVuIHRvIGJlIG1pc3NpbmcKc29tZXRpbWVzIGFuZCBwdXQgYSBy ZXBsYWNlbWVudCBpbXBsZW1lbnRhdGlvbiB1bmRlciBzcmMvcG9ydC8uCi0tLQogY29uZmln dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDMgKysrKysrKysr LS0KIGNvbmZpZ3VyZS5pbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4 ICstLQogc3JjL2JhY2tlbmQvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIHNyYy9iYWNrZW5kL3BvcnQvLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAgICB8 ICAxIC0KIHNyYy9iYWNrZW5kL3BvcnQvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9haXguYyAgICAgICAgICAgICAg fCAgNyAtLQogc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvYWl4LmggICAgICAgICAgICAg IHwgMzkgLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvY3lnd2luLmMg ICAgICAgICAgIHwgIDMgLQogc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvY3lnd2luLmgg ICAgICAgICAgIHwgMzYgLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIv ZGFyd2luLmMgICAgICAgICAgIHwgMzUgLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9wb3J0L2R5 bmxvYWRlci9kYXJ3aW4uaCAgICAgICAgICAgfCAgOCAtLS0KIHNyYy9iYWNrZW5kL3BvcnQv ZHlubG9hZGVyL2ZyZWVic2QuYyAgICAgICAgICB8ICA3IC0tCiBzcmMvYmFja2VuZC9wb3J0 L2R5bmxvYWRlci9mcmVlYnNkLmggICAgICAgICAgfCAzOCAtLS0tLS0tLS0tCiBzcmMvYmFj a2VuZC9wb3J0L2R5bmxvYWRlci9ocHV4LmMgICAgICAgICAgICAgfCA2OCAtLS0tLS0tLS0t LS0tLS0tLS0KIHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2hwdXguaCAgICAgICAgICAg ICB8IDI1IC0tLS0tLS0KIHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2xpbnV4LmMgICAg ICAgICAgICB8ICA3IC0tCiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9saW51eC5oICAg ICAgICAgICAgfCAzOCAtLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9u ZXRic2QuYyAgICAgICAgICAgfCAgNyAtLQogc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIv bmV0YnNkLmggICAgICAgICAgIHwgMzggLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvcG9ydC9k eW5sb2FkZXIvb3BlbmJzZC5jICAgICAgICAgIHwgIDcgLS0KIHNyYy9iYWNrZW5kL3BvcnQv ZHlubG9hZGVyL29wZW5ic2QuaCAgICAgICAgICB8IDM4IC0tLS0tLS0tLS0KIHNyYy9iYWNr ZW5kL3BvcnQvZHlubG9hZGVyL3NvbGFyaXMuYyAgICAgICAgICB8ICA3IC0tCiBzcmMvYmFj a2VuZC9wb3J0L2R5bmxvYWRlci9zb2xhcmlzLmggICAgICAgICAgfCAzOCAtLS0tLS0tLS0t CiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci93aW4zMi5oICAgICAgICAgICAgfCAxOSAt LS0tLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgICAgICAgICAgIHwg IDEgLQogc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9kZm1nci5jICAgICAgICAgICAgICAgIHwg MzEgKysrKy0tLS0KIHNyYy9pbmNsdWRlLy5naXRpZ25vcmUgICAgICAgICAgICAgICAgICAg ICAgICB8ICAxIC0KIHNyYy9pbmNsdWRlL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA0ICstCiBzcmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbiAgICAgICAgICAgICAg ICAgICAgfCAgOCArKysKIHNyYy9pbmNsdWRlL3BvcnQuaCAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDIzICsrKysrKwogc3JjL2luY2x1ZGUvdXRpbHMvZHluYW1pY19sb2FkZXIu aCAgICAgICAgICAgIHwgMjUgLS0tLS0tLQogLi4uL3BvcnQvZHlubG9hZGVyL3dpbjMyLmMg PT4gcG9ydC9kbG9wZW4uY30gIHwgNzIgKysrKysrKysrKysrKysrKystLQogc3JjL3Rvb2xz L21zdmMvSW5zdGFsbC5wbSAgICAgICAgICAgICAgICAgICAgIHwgIDUgKy0KIHNyYy90b29s cy9tc3ZjL01rdmNidWlsZC5wbSAgICAgICAgICAgICAgICAgICB8ICAzIC0KIHNyYy90b29s cy9tc3ZjL1NvbHV0aW9uLnBtICAgICAgICAgICAgICAgICAgICB8ICA3IC0tCiBzcmMvdG9v bHMvbXN2Yy9jbGVhbi5iYXQgICAgICAgICAgICAgICAgICAgICAgfCAgMSAtCiAzNiBmaWxl cyBjaGFuZ2VkLCAxNjMgaW5zZXJ0aW9ucygrKSwgNTM5IGRlbGV0aW9ucygtKQogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2FpeC5jCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvYWl4LmgKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9jeWd3aW4uYwogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2N5Z3dpbi5oCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvZGFyd2luLmMKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9kYXJ3aW4uaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2ZyZWVic2Qu YwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2ZyZWVi c2QuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2hw dXguYwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2hw dXguaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2xp bnV4LmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9s aW51eC5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIv bmV0YnNkLmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRl ci9uZXRic2QuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BvcnQvZHlubG9h ZGVyL29wZW5ic2QuYwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BvcnQvZHlu bG9hZGVyL29wZW5ic2QuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BvcnQv ZHlubG9hZGVyL3NvbGFyaXMuYwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3Bv cnQvZHlubG9hZGVyL3NvbGFyaXMuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5k L3BvcnQvZHlubG9hZGVyL3dpbjMyLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVk ZS91dGlscy9keW5hbWljX2xvYWRlci5oCiByZW5hbWUgc3JjL3tiYWNrZW5kL3BvcnQvZHlu bG9hZGVyL3dpbjMyLmMgPT4gcG9ydC9kbG9wZW4uY30gKDUxJSkKCmRpZmYgLS1naXQgYS9j b25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggZGQ5NGM1YmJhYi4uZGQ3Nzc0MmM0NiAxMDA3 NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMTUwNjAsNyArMTUwNjAs NyBAQCBmaQogTElCU19pbmNsdWRpbmdfcmVhZGxpbmU9IiRMSUJTIgogTElCUz1gZWNobyAi JExJQlMiIHwgc2VkIC1lICdzLy1sZWRpdC8vZycgLWUgJ3MvLWxyZWFkbGluZS8vZydgCiAK LWZvciBhY19mdW5jIGluIGNicnQgY2xvY2tfZ2V0dGltZSBkbG9wZW4gZmRhdGFzeW5jIGdl dGlmYWRkcnMgZ2V0cGVlcnVjcmVkIGdldHJsaW1pdCBtYnN0b3djc19sIG1lbW1vdmUgcG9s bCBwb3NpeF9mYWxsb2NhdGUgcHN0YXQgcHRocmVhZF9pc190aHJlYWRlZF9ucCByZWFkbGlu ayBzZXRwcm9jdGl0bGUgc2V0cHJvY3RpdGxlX2Zhc3Qgc2V0c2lkIHNobV9vcGVuIHN5bWxp bmsgc3luY19maWxlX3JhbmdlIHV0aW1lIHV0aW1lcyB3Y3N0b21ic19sCitmb3IgYWNfZnVu YyBpbiBjYnJ0IGNsb2NrX2dldHRpbWUgZmRhdGFzeW5jIGdldGlmYWRkcnMgZ2V0cGVlcnVj cmVkIGdldHJsaW1pdCBtYnN0b3djc19sIG1lbW1vdmUgcG9sbCBwb3NpeF9mYWxsb2NhdGUg cHN0YXQgcHRocmVhZF9pc190aHJlYWRlZF9ucCByZWFkbGluayBzZXRwcm9jdGl0bGUgc2V0 cHJvY3RpdGxlX2Zhc3Qgc2V0c2lkIHNobV9vcGVuIHN5bWxpbmsgc3luY19maWxlX3Jhbmdl IHV0aW1lIHV0aW1lcyB3Y3N0b21ic19sCiBkbyA6CiAgIGFzX2FjX3Zhcj1gJGFzX2VjaG8g ImFjX2N2X2Z1bmNfJGFjX2Z1bmMiIHwgJGFzX3RyX3NoYAogYWNfZm5fY19jaGVja19mdW5j ICIkTElORU5PIiAiJGFjX2Z1bmMiICIkYXNfYWNfdmFyIgpAQCAtMTUyNTIsNiArMTUyNTIs MzAgQEAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgogX0FDRU9GCiAKIAorYWNfZm5fY19j aGVja19kZWNsICIkTElORU5PIiAiUlRMRF9HTE9CQUwiICJhY19jdl9oYXZlX2RlY2xfUlRM RF9HTE9CQUwiICIjaW5jbHVkZSA8ZGxmY24uaD4KKyIKK2lmIHRlc3QgIngkYWNfY3ZfaGF2 ZV9kZWNsX1JUTERfR0xPQkFMIiA9IHh5ZXM7IHRoZW4gOgorICBhY19oYXZlX2RlY2w9MQor ZWxzZQorICBhY19oYXZlX2RlY2w9MAorZmkKKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VP RgorI2RlZmluZSBIQVZFX0RFQ0xfUlRMRF9HTE9CQUwgJGFjX2hhdmVfZGVjbAorX0FDRU9G CithY19mbl9jX2NoZWNrX2RlY2wgIiRMSU5FTk8iICJSVExEX05PVyIgImFjX2N2X2hhdmVf ZGVjbF9SVExEX05PVyIgIiNpbmNsdWRlIDxkbGZjbi5oPgorIgoraWYgdGVzdCAieCRhY19j dl9oYXZlX2RlY2xfUlRMRF9OT1ciID0geHllczsgdGhlbiA6CisgIGFjX2hhdmVfZGVjbD0x CitlbHNlCisgIGFjX2hhdmVfZGVjbD0wCitmaQorCitjYXQgPj5jb25mZGVmcy5oIDw8X0FD RU9GCisjZGVmaW5lIEhBVkVfREVDTF9SVExEX05PVyAkYWNfaGF2ZV9kZWNsCitfQUNFT0YK KworCiBIQVZFX0lQVjY9bm8KIGFjX2ZuX2NfY2hlY2tfdHlwZSAiJExJTkVOTyIgInN0cnVj dCBzb2NrYWRkcl9pbjYiICJhY19jdl90eXBlX3N0cnVjdF9zb2NrYWRkcl9pbjYiICIkYWNf aW5jbHVkZXNfZGVmYXVsdAogI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KQEAgLTE1NDYxLDYg KzE1NDg1LDE5IEBAIGVzYWMKIAogZmkKIAorYWNfZm5fY19jaGVja19mdW5jICIkTElORU5P IiAiZGxvcGVuIiAiYWNfY3ZfZnVuY19kbG9wZW4iCitpZiB0ZXN0ICJ4JGFjX2N2X2Z1bmNf ZGxvcGVuIiA9IHh5ZXM7IHRoZW4gOgorICAkYXNfZWNobyAiI2RlZmluZSBIQVZFX0RMT1BF TiAxIiA+PmNvbmZkZWZzLmgKKworZWxzZQorICBjYXNlICIgJExJQk9CSlMgIiBpbgorICAq IiBkbG9wZW4uJGFjX29iamV4dCAiKiApIDs7CisgICopIExJQk9CSlM9IiRMSUJPQkpTIGRs b3Blbi4kYWNfb2JqZXh0IgorIDs7Citlc2FjCisKK2ZpCisKIGFjX2ZuX2NfY2hlY2tfZnVu YyAiJExJTkVOTyIgImZscyIgImFjX2N2X2Z1bmNfZmxzIgogaWYgdGVzdCAieCRhY19jdl9m dW5jX2ZscyIgPSB4eWVzOyB0aGVuIDoKICAgJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9GTFMg MSIgPj5jb25mZGVmcy5oCkBAIC0xOTAxNiw3ICsxOTA1Myw3IEBAIGZpCiBhY19jb25maWdf ZmlsZXM9IiRhY19jb25maWdfZmlsZXMgR05VbWFrZWZpbGUgc3JjL01ha2VmaWxlLmdsb2Jh bCIKIAogCi1hY19jb25maWdfbGlua3M9IiRhY19jb25maWdfbGlua3Mgc3JjL2JhY2tlbmQv cG9ydC9keW5sb2FkZXIuYzpzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci8ke3RlbXBsYXRl fS5jIHNyYy9iYWNrZW5kL3BvcnQvcGdfc2VtYS5jOiR7U0VNQV9JTVBMRU1FTlRBVElPTn0g c3JjL2JhY2tlbmQvcG9ydC9wZ19zaG1lbS5jOiR7U0hNRU1fSU1QTEVNRU5UQVRJT059IHNy Yy9pbmNsdWRlL2R5bmxvYWRlci5oOnNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyLyR7dGVt cGxhdGV9Lmggc3JjL2luY2x1ZGUvcGdfY29uZmlnX29zLmg6c3JjL2luY2x1ZGUvcG9ydC8k e3RlbXBsYXRlfS5oIHNyYy9NYWtlZmlsZS5wb3J0OnNyYy9tYWtlZmlsZXMvTWFrZWZpbGUu JHt0ZW1wbGF0ZX0iCithY19jb25maWdfbGlua3M9IiRhY19jb25maWdfbGlua3Mgc3JjL2Jh Y2tlbmQvcG9ydC9wZ19zZW1hLmM6JHtTRU1BX0lNUExFTUVOVEFUSU9OfSBzcmMvYmFja2Vu ZC9wb3J0L3BnX3NobWVtLmM6JHtTSE1FTV9JTVBMRU1FTlRBVElPTn0gc3JjL2luY2x1ZGUv cGdfY29uZmlnX29zLmg6c3JjL2luY2x1ZGUvcG9ydC8ke3RlbXBsYXRlfS5oIHNyYy9NYWtl ZmlsZS5wb3J0OnNyYy9tYWtlZmlsZXMvTWFrZWZpbGUuJHt0ZW1wbGF0ZX0iCiAKIAogaWYg dGVzdCAiJFBPUlROQU1FIiA9ICJ3aW4zMiI7IHRoZW4KQEAgLTE5NzM3LDEwICsxOTc3NCw4 IEBAIGRvCiAgICAgInNyYy9iYWNrZW5kL3BvcnQvdGFzLnMiKSBDT05GSUdfTElOS1M9IiRD T05GSUdfTElOS1Mgc3JjL2JhY2tlbmQvcG9ydC90YXMuczpzcmMvYmFja2VuZC9wb3J0L3Rh cy8ke3Rhc19maWxlfSIgOzsKICAgICAiR05VbWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRD T05GSUdfRklMRVMgR05VbWFrZWZpbGUiIDs7CiAgICAgInNyYy9NYWtlZmlsZS5nbG9iYWwi KSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc3JjL01ha2VmaWxlLmdsb2JhbCIgOzsK LSAgICAic3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIuYyIpIENPTkZJR19MSU5LUz0iJENP TkZJR19MSU5LUyBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci5jOnNyYy9iYWNrZW5kL3Bv cnQvZHlubG9hZGVyLyR7dGVtcGxhdGV9LmMiIDs7CiAgICAgInNyYy9iYWNrZW5kL3BvcnQv cGdfc2VtYS5jIikgQ09ORklHX0xJTktTPSIkQ09ORklHX0xJTktTIHNyYy9iYWNrZW5kL3Bv cnQvcGdfc2VtYS5jOiR7U0VNQV9JTVBMRU1FTlRBVElPTn0iIDs7CiAgICAgInNyYy9iYWNr ZW5kL3BvcnQvcGdfc2htZW0uYyIpIENPTkZJR19MSU5LUz0iJENPTkZJR19MSU5LUyBzcmMv YmFja2VuZC9wb3J0L3BnX3NobWVtLmM6JHtTSE1FTV9JTVBMRU1FTlRBVElPTn0iIDs7Ci0g ICAgInNyYy9pbmNsdWRlL2R5bmxvYWRlci5oIikgQ09ORklHX0xJTktTPSIkQ09ORklHX0xJ TktTIHNyYy9pbmNsdWRlL2R5bmxvYWRlci5oOnNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVy LyR7dGVtcGxhdGV9LmgiIDs7CiAgICAgInNyYy9pbmNsdWRlL3BnX2NvbmZpZ19vcy5oIikg Q09ORklHX0xJTktTPSIkQ09ORklHX0xJTktTIHNyYy9pbmNsdWRlL3BnX2NvbmZpZ19vcy5o OnNyYy9pbmNsdWRlL3BvcnQvJHt0ZW1wbGF0ZX0uaCIgOzsKICAgICAic3JjL01ha2VmaWxl LnBvcnQiKSBDT05GSUdfTElOS1M9IiRDT05GSUdfTElOS1Mgc3JjL01ha2VmaWxlLnBvcnQ6 c3JjL21ha2VmaWxlcy9NYWtlZmlsZS4ke3RlbXBsYXRlfSIgOzsKICAgICAiY2hlY2tfd2lu MzJfc3ltbGlua3MiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgY2hlY2tf d2luMzJfc3ltbGlua3MiIDs7CmRpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1 cmUuaW4KaW5kZXggMzI4MGFmYTBkYS4uM2FkYTQ4YjVmOSAxMDA2NDQKLS0tIGEvY29uZmln dXJlLmluCisrKyBiL2NvbmZpZ3VyZS5pbgpAQCAtMTU0NCw3ICsxNTQ0LDcgQEAgUEdBQ19G VU5DX1dDU1RPTUJTX0wKIExJQlNfaW5jbHVkaW5nX3JlYWRsaW5lPSIkTElCUyIKIExJQlM9 YGVjaG8gIiRMSUJTIiB8IHNlZCAtZSAncy8tbGVkaXQvL2cnIC1lICdzLy1scmVhZGxpbmUv L2cnYAogCi1BQ19DSEVDS19GVU5DUyhbY2JydCBjbG9ja19nZXR0aW1lIGRsb3BlbiBmZGF0 YXN5bmMgZ2V0aWZhZGRycyBnZXRwZWVydWNyZWQgZ2V0cmxpbWl0IG1ic3Rvd2NzX2wgbWVt bW92ZSBwb2xsIHBvc2l4X2ZhbGxvY2F0ZSBwc3RhdCBwdGhyZWFkX2lzX3RocmVhZGVkX25w IHJlYWRsaW5rIHNldHByb2N0aXRsZSBzZXRwcm9jdGl0bGVfZmFzdCBzZXRzaWQgc2htX29w ZW4gc3ltbGluayBzeW5jX2ZpbGVfcmFuZ2UgdXRpbWUgdXRpbWVzIHdjc3RvbWJzX2xdKQor QUNfQ0hFQ0tfRlVOQ1MoW2NicnQgY2xvY2tfZ2V0dGltZSBmZGF0YXN5bmMgZ2V0aWZhZGRy cyBnZXRwZWVydWNyZWQgZ2V0cmxpbWl0IG1ic3Rvd2NzX2wgbWVtbW92ZSBwb2xsIHBvc2l4 X2ZhbGxvY2F0ZSBwc3RhdCBwdGhyZWFkX2lzX3RocmVhZGVkX25wIHJlYWRsaW5rIHNldHBy b2N0aXRsZSBzZXRwcm9jdGl0bGVfZmFzdCBzZXRzaWQgc2htX29wZW4gc3ltbGluayBzeW5j X2ZpbGVfcmFuZ2UgdXRpbWUgdXRpbWVzIHdjc3RvbWJzX2xdKQogCiBBQ19SRVBMQUNFX0ZV TkNTKGZzZWVrbykKIGNhc2UgJGhvc3Rfb3MgaW4KQEAgLTE1NzAsNiArMTU3MCw4IEBAIEFD X0NIRUNLX0RFQ0xTKFtzdHJsY2F0LCBzdHJsY3B5LCBzdHJubGVuXSkKICMgVGhpcyBpcyBw cm9iYWJseSBvbmx5IHByZXNlbnQgb24gbWFjT1MsIGJ1dCBtYXkgYXMgd2VsbCBjaGVjayBh bHdheXMKIEFDX0NIRUNLX0RFQ0xTKEZfRlVMTEZTWU5DLCBbXSwgW10sIFsjaW5jbHVkZSA8 ZmNudGwuaD5dKQogCitBQ19DSEVDS19ERUNMUyhbUlRMRF9HTE9CQUwsIFJUTERfTk9XXSwg W10sIFtdLCBbI2luY2x1ZGUgPGRsZmNuLmg+XSkKKwogSEFWRV9JUFY2PW5vCiBBQ19DSEVD S19UWVBFKFtzdHJ1Y3Qgc29ja2FkZHJfaW42XSwKICAgICAgICAgW0FDX0RFRklORShIQVZF X0lQVjYsIDEsIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSBzdXBwb3J0IGZvciBJUHY2Ll0p CkBAIC0xNjU4LDcgKzE2NjAsNyBAQCBlbHNlCiAgIEFDX0NIRUNLX0ZVTkNTKFtmcGNsYXNz IGZwX2NsYXNzIGZwX2NsYXNzX2QgY2xhc3NdLCBbYnJlYWtdKQogZmkKIAotQUNfUkVQTEFD RV9GVU5DUyhbY3J5cHQgZmxzIGdldG9wdCBnZXRydXNhZ2UgaW5ldF9hdG9uIG1rZHRlbXAg cmFuZG9tIHJpbnQgc3JhbmRvbSBzdHJlcnJvciBzdHJsY2F0IHN0cmxjcHkgc3Rybmxlbl0p CitBQ19SRVBMQUNFX0ZVTkNTKFtjcnlwdCBkbG9wZW4gZmxzIGdldG9wdCBnZXRydXNhZ2Ug aW5ldF9hdG9uIG1rZHRlbXAgcmFuZG9tIHJpbnQgc3JhbmRvbSBzdHJlcnJvciBzdHJsY2F0 IHN0cmxjcHkgc3Rybmxlbl0pCiAKIGNhc2UgJGhvc3Rfb3MgaW4KIApAQCAtMjM4MiwxMCAr MjM4NCw4IEBAIEFDX1NVQlNUKHZwYXRoX2J1aWxkKQogQUNfQ09ORklHX0ZJTEVTKFtHTlVt YWtlZmlsZSBzcmMvTWFrZWZpbGUuZ2xvYmFsXSkKIAogQUNfQ09ORklHX0xJTktTKFsKLSAg c3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIuYzpzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRl ci8ke3RlbXBsYXRlfS5jCiAgIHNyYy9iYWNrZW5kL3BvcnQvcGdfc2VtYS5jOiR7U0VNQV9J TVBMRU1FTlRBVElPTn0KICAgc3JjL2JhY2tlbmQvcG9ydC9wZ19zaG1lbS5jOiR7U0hNRU1f SU1QTEVNRU5UQVRJT059Ci0gIHNyYy9pbmNsdWRlL2R5bmxvYWRlci5oOnNyYy9iYWNrZW5k L3BvcnQvZHlubG9hZGVyLyR7dGVtcGxhdGV9LmgKICAgc3JjL2luY2x1ZGUvcGdfY29uZmln X29zLmg6c3JjL2luY2x1ZGUvcG9ydC8ke3RlbXBsYXRlfS5oCiAgIHNyYy9NYWtlZmlsZS5w b3J0OnNyYy9tYWtlZmlsZXMvTWFrZWZpbGUuJHt0ZW1wbGF0ZX0KIF0pCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL01ha2VmaWxlCmluZGV4IDI1 YWY1MTRmYmEuLjNhNThiZjY2ODUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL01ha2VmaWxl CisrKyBiL3NyYy9iYWNrZW5kL01ha2VmaWxlCkBAIC0yOTMsNyArMjkzLDcgQEAgaWZlcSAo JChQT1JUTkFNRSksIHdpbjMyKQogZW5kaWYKIAogZGlzdGNsZWFuOiBjbGVhbgotCXJtIC1m IHBvcnQvdGFzLnMgcG9ydC9keW5sb2FkZXIuYyBwb3J0L3BnX3NlbWEuYyBwb3J0L3BnX3No bWVtLmMKKwlybSAtZiBwb3J0L3Rhcy5zIHBvcnQvcGdfc2VtYS5jIHBvcnQvcGdfc2htZW0u YwogCiBtYWludGFpbmVyLWNsZWFuOiBkaXN0Y2xlYW4KIAkkKE1BS0UpIC1DIGNhdGFsb2cg JEAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BvcnQvLmdpdGlnbm9yZSBiL3NyYy9iYWNr ZW5kL3BvcnQvLmdpdGlnbm9yZQppbmRleCA5ZjRmMWFmNWU5Li40ZWYzNmI4MmM3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wb3J0Ly5naXRpZ25vcmUKKysrIGIvc3JjL2JhY2tlbmQv cG9ydC8uZ2l0aWdub3JlCkBAIC0xLDQgKzEsMyBAQAotL2R5bmxvYWRlci5jCiAvcGdfc2Vt YS5jCiAvcGdfc2htZW0uYwogL3Rhcy5zCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3J0 L01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvcG9ydC9NYWtlZmlsZQppbmRleCBhYmExZTkyZmUx Li5mNDEyMGJlYzU1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3J0L01ha2VmaWxlCisr KyBiL3NyYy9iYWNrZW5kL3BvcnQvTWFrZWZpbGUKQEAgLTIxLDcgKzIxLDcgQEAgc3ViZGly ID0gc3JjL2JhY2tlbmQvcG9ydAogdG9wX2J1aWxkZGlyID0gLi4vLi4vLi4KIGluY2x1ZGUg JCh0b3BfYnVpbGRkaXIpL3NyYy9NYWtlZmlsZS5nbG9iYWwKIAotT0JKUyA9IGF0b21pY3Mu byBkeW5sb2FkZXIubyBwZ19zZW1hLm8gcGdfc2htZW0ubyAkKFRBUykKK09CSlMgPSBhdG9t aWNzLm8gcGdfc2VtYS5vIHBnX3NobWVtLm8gJChUQVMpCiAKIGlmZXEgKCQoUE9SVE5BTUUp LCB3aW4zMikKIFNVQkRJUlMgKz0gd2luMzIKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bv cnQvZHlubG9hZGVyL2FpeC5jIGIvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvYWl4LmMK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmNmVjMjU3ZTcuLjAwMDAwMDAwMDAK LS0tIGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvYWl4LmMKKysrIC9kZXYvbnVsbApA QCAtMSw3ICswLDAgQEAKLS8qCi0gKiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9haXgu YwotICoKLSAqIER1bW15IGZpbGUgdXNlZCBmb3Igbm90aGluZyBhdCB0aGlzIHBvaW50Ci0g KgotICogc2VlIGFpeC5oCi0gKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BvcnQvZHlu bG9hZGVyL2FpeC5oIGIvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvYWl4LmgKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmNGY1ZDVhMWEuLjAwMDAwMDAwMDAKLS0tIGEv c3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvYWl4LmgKKysrIC9kZXYvbnVsbApAQCAtMSwz OSArMCwwIEBACi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBhaXguaAotICoJICBw cm90b3R5cGVzIGZvciBBSVgtc3BlY2lmaWMgcm91dGluZXMKLSAqCi0gKgotICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTgsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2Yg dGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQotICoKLSAqIHNyYy9iYWNrZW5kL3BvcnQv ZHlubG9hZGVyL2FpeC5oCi0gKgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKi8KLQotI2lm bmRlZiBQT1JUX1BST1RPU19ICi0jZGVmaW5lIFBPUlRfUFJPVE9TX0gKLQotI2luY2x1ZGUg PGRsZmNuLmg+Ci0jaW5jbHVkZSAidXRpbHMvZHluYW1pY19sb2FkZXIuaCIJLyogcGdybWlu Y2x1ZGUgaWdub3JlICovCi0KLS8qCi0gKiBJbiBzb21lIG9sZGVyIHN5c3RlbXMsIHRoZSBS VExEX05PVyBmbGFnIGlzbid0IGRlZmluZWQgYW5kIHRoZSBtb2RlCi0gKiBhcmd1bWVudCB0 byBkbG9wZW4gbXVzdCBhbHdheXMgYmUgMS4gIFRoZSBSVExEX0dMT0JBTCBmbGFnIGlzIHdh bnRlZAotICogaWYgYXZhaWxhYmxlLCBidXQgaXQgZG9lc24ndCBleGlzdCBldmVyeXdoZXJl LgotICogSWYgaXQgZG9lc24ndCBleGlzdCwgc2V0IGl0IHRvIDAgc28gaXQgaGFzIG5vIGVm ZmVjdC4KLSAqLwotI2lmbmRlZiBSVExEX05PVwotI2RlZmluZSBSVExEX05PVyAxCi0jZW5k aWYKLSNpZm5kZWYgUlRMRF9HTE9CQUwKLSNkZWZpbmUgUlRMRF9HTE9CQUwgMAotI2VuZGlm Ci0KLSNkZWZpbmUgIHBnX2Rsb3BlbihmKQlkbG9wZW4oKGYpLCBSVExEX05PVyB8IFJUTERf R0xPQkFMKQotI2RlZmluZSAgcGdfZGxzeW0oaCwgZikgKChQR0Z1bmN0aW9uKSBkbHN5bSho LCBmKSkKLSNkZWZpbmUgIHBnX2RsY2xvc2UoaCkJZGxjbG9zZShoKQotI2RlZmluZSAgcGdf ZGxlcnJvcigpCWRsZXJyb3IoKQotCi0jZW5kaWYJCQkJCQkJLyogUE9SVF9QUk9UT1NfSCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvY3lnd2luLmMgYi9z cmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9jeWd3aW4uYwpkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggNWM1MmJmNjE0Ny4uMDAwMDAwMDAwMAotLS0gYS9zcmMvYmFja2VuZC9w b3J0L2R5bmxvYWRlci9jeWd3aW4uYworKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAot Lyogc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvY3lnd2luLmMgKi8KLQotLyogRHVtbXkg ZmlsZSB1c2VkIGZvciBub3RoaW5nIGF0IHRoaXMgcG9pbnQ7IHNlZSBjeWd3aW4uaCAqLwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvY3lnd2luLmggYi9zcmMv YmFja2VuZC9wb3J0L2R5bmxvYWRlci9jeWd3aW4uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggZWYwNWU2YjQxNi4uMDAwMDAwMDAwMAotLS0gYS9zcmMvYmFja2VuZC9wb3J0 L2R5bmxvYWRlci9jeWd3aW4uaAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS8q LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqIER5bmFtaWMgbG9hZGVyIGRlY2xhcmF0aW9u cyBmb3IgQ3lnd2luCi0gKgotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTgs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCi0gKiBQb3J0aW9ucyBDb3B5 cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5p YQotICoKLSAqIHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2N5Z3dpbi5oCi0gKgotICot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0gICovCi0jaWZuZGVmIFBPUlRfUFJPVE9TX0gKLSNkZWZp bmUgUE9SVF9QUk9UT1NfSAotCi0jaW5jbHVkZSA8ZGxmY24uaD4KLSNpbmNsdWRlICJ1dGls cy9keW5hbWljX2xvYWRlci5oIgkvKiBwZ3JtaW5jbHVkZSBpZ25vcmUgKi8KLQotLyoKLSAq IEluIHNvbWUgb2xkZXIgc3lzdGVtcywgdGhlIFJUTERfTk9XIGZsYWcgaXNuJ3QgZGVmaW5l ZCBhbmQgdGhlIG1vZGUKLSAqIGFyZ3VtZW50IHRvIGRsb3BlbiBtdXN0IGFsd2F5cyBiZSAx LiAgVGhlIFJUTERfR0xPQkFMIGZsYWcgaXMgd2FudGVkCi0gKiBpZiBhdmFpbGFibGUsIGJ1 dCBpdCBkb2Vzbid0IGV4aXN0IGV2ZXJ5d2hlcmUuCi0gKiBJZiBpdCBkb2Vzbid0IGV4aXN0 LCBzZXQgaXQgdG8gMCBzbyBpdCBoYXMgbm8gZWZmZWN0LgotICovCi0jaWZuZGVmIFJUTERf Tk9XCi0jZGVmaW5lIFJUTERfTk9XIDEKLSNlbmRpZgotI2lmbmRlZiBSVExEX0dMT0JBTAot I2RlZmluZSBSVExEX0dMT0JBTCAwCi0jZW5kaWYKLQotI2RlZmluZSBwZ19kbG9wZW4oZikJ ZGxvcGVuKChmKSwgUlRMRF9OT1cgfCBSVExEX0dMT0JBTCkKLSNkZWZpbmUgcGdfZGxzeW0J CWRsc3ltCi0jZGVmaW5lIHBnX2RsY2xvc2UJCWRsY2xvc2UKLSNkZWZpbmUgcGdfZGxlcnJv cgkJZGxlcnJvcgotCi0jZW5kaWYJCQkJCQkJLyogUE9SVF9QUk9UT1NfSCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvZGFyd2luLmMgYi9zcmMvYmFja2Vu ZC9wb3J0L2R5bmxvYWRlci9kYXJ3aW4uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggNjVmYTBlMzlmMi4uMDAwMDAwMDAwMAotLS0gYS9zcmMvYmFja2VuZC9wb3J0L2R5bmxv YWRlci9kYXJ3aW4uYworKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBE eW5hbWljIGxvYWRpbmcgc3VwcG9ydCBmb3IgbWFjT1MgKERhcndpbikKLSAqCi0gKiBzcmMv YmFja2VuZC9wb3J0L2R5bmxvYWRlci9kYXJ3aW4uYwotICovCi0jaW5jbHVkZSAicG9zdGdy ZXMuaCIKLQotI2luY2x1ZGUgPGRsZmNuLmg+Ci0KLSNpbmNsdWRlICJkeW5sb2FkZXIuaCIK LQotCi12b2lkICoKLXBnX2Rsb3Blbihjb25zdCBjaGFyICpmaWxlbmFtZSkKLXsKLQlyZXR1 cm4gZGxvcGVuKGZpbGVuYW1lLCBSVExEX05PVyB8IFJUTERfR0xPQkFMKTsKLX0KLQotdm9p ZAotcGdfZGxjbG9zZSh2b2lkICpoYW5kbGUpCi17Ci0JZGxjbG9zZShoYW5kbGUpOwotfQot Ci1QR0Z1bmN0aW9uCi1wZ19kbHN5bSh2b2lkICpoYW5kbGUsIGNvbnN0IGNoYXIgKmZ1bmNu YW1lKQotewotCXJldHVybiBkbHN5bShoYW5kbGUsIGZ1bmNuYW1lKTsKLX0KLQotY2hhciAq Ci1wZ19kbGVycm9yKHZvaWQpCi17Ci0JcmV0dXJuIGRsZXJyb3IoKTsKLX0KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2Rhcndpbi5oIGIvc3JjL2JhY2tlbmQv cG9ydC9keW5sb2FkZXIvZGFyd2luLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDI5MmEzMWRlMTMuLjAwMDAwMDAwMDAKLS0tIGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2Fk ZXIvZGFyd2luLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLS8qIHNyYy9iYWNr ZW5kL3BvcnQvZHlubG9hZGVyL2Rhcndpbi5oICovCi0KLSNpbmNsdWRlICJmbWdyLmgiCi0K LXZvaWQJICAgKnBnX2Rsb3Blbihjb25zdCBjaGFyICpmaWxlbmFtZSk7Ci1QR0Z1bmN0aW9u CXBnX2Rsc3ltKHZvaWQgKmhhbmRsZSwgY29uc3QgY2hhciAqZnVuY25hbWUpOwotdm9pZAkJ cGdfZGxjbG9zZSh2b2lkICpoYW5kbGUpOwotY2hhcgkgICAqcGdfZGxlcnJvcih2b2lkKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2ZyZWVic2QuYyBiL3Ny Yy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2ZyZWVic2QuYwpkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggNDFiOTZlYmFmMC4uMDAwMDAwMDAwMAotLS0gYS9zcmMvYmFja2VuZC9w b3J0L2R5bmxvYWRlci9mcmVlYnNkLmMKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAK LS8qCi0gKiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9mcmVlYnNkLmMKLSAqCi0gKiBE dW1teSBmaWxlIHVzZWQgZm9yIG5vdGhpbmcgYXQgdGhpcyBwb2ludAotICoKLSAqIHNlZSBm cmVlYnNkLmgKLSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIv ZnJlZWJzZC5oIGIvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvZnJlZWJzZC5oCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYmRkMDNjYjNhLi4wMDAwMDAwMDAwCi0tLSBh L3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2ZyZWVic2QuaAorKysgL2Rldi9udWxsCkBA IC0xLDM4ICswLDAgQEAKLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoKLSAqIGZyZWVic2Qu aAotICoJICBwb3J0LXNwZWNpZmljIHByb3RvdHlwZXMgZm9yIEZyZWVCU0QKLSAqCi0gKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxOCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50 cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCi0gKgotICogc3JjL2JhY2tlbmQv cG9ydC9keW5sb2FkZXIvZnJlZWJzZC5oCi0gKgotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0g Ki8KLSNpZm5kZWYgUE9SVF9QUk9UT1NfSAotI2RlZmluZSBQT1JUX1BST1RPU19ICi0KLSNp bmNsdWRlIDxkbGZjbi5oPgotCi0jaW5jbHVkZSAidXRpbHMvZHluYW1pY19sb2FkZXIuaCIJ LyogcGdybWluY2x1ZGUgaWdub3JlICovCi0KLS8qCi0gKiBJbiBzb21lIG9sZGVyIHN5c3Rl bXMsIHRoZSBSVExEX05PVyBmbGFnIGlzbid0IGRlZmluZWQgYW5kIHRoZSBtb2RlCi0gKiBh cmd1bWVudCB0byBkbG9wZW4gbXVzdCBhbHdheXMgYmUgMS4gIFRoZSBSVExEX0dMT0JBTCBm bGFnIGlzIHdhbnRlZAotICogaWYgYXZhaWxhYmxlLCBidXQgaXQgZG9lc24ndCBleGlzdCBl dmVyeXdoZXJlLgotICogSWYgaXQgZG9lc24ndCBleGlzdCwgc2V0IGl0IHRvIDAgc28gaXQg aGFzIG5vIGVmZmVjdC4KLSAqLwotI2lmbmRlZiBSVExEX05PVwotI2RlZmluZSBSVExEX05P VyAxCi0jZW5kaWYKLSNpZm5kZWYgUlRMRF9HTE9CQUwKLSNkZWZpbmUgUlRMRF9HTE9CQUwg MAotI2VuZGlmCi0KLSNkZWZpbmUgcGdfZGxvcGVuKGYpCWRsb3BlbigoZiksIFJUTERfTk9X IHwgUlRMRF9HTE9CQUwpCi0jZGVmaW5lIHBnX2Rsc3ltCQlkbHN5bQotI2RlZmluZSBwZ19k bGNsb3NlCQlkbGNsb3NlCi0jZGVmaW5lIHBnX2RsZXJyb3IJCWRsZXJyb3IKLQotI2VuZGlm CQkJCQkJCS8qIFBPUlRfUFJPVE9TX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bv cnQvZHlubG9hZGVyL2hwdXguYyBiL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2hwdXgu YwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDgyZGQ3NjAzYi4uMDAwMDAwMDAw MAotLS0gYS9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9ocHV4LmMKKysrIC9kZXYvbnVs bApAQCAtMSw2OCArMCwwIEBACi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBkeW5s b2FkZXIuYwotICoJICBkeW5hbWljIGxvYWRlciBmb3IgSFAtVVggdXNpbmcgdGhlIHNoYXJl ZCBsaWJyYXJ5IG1lY2hhbmlzbQotICoKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5 Ni0yMDE4LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAotICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEKLSAqCi0gKgotICogSURFTlRJRklDQVRJT04KLSAqCSAgc3JjL2JhY2tlbmQv cG9ydC9keW5sb2FkZXIvaHB1eC5jCi0gKgotICoJTk9URVMKLSAqCQlhbGwgZnVuY3Rpb25z IGFyZSBkZWZpbmVkIGhlcmUgLS0gaXQncyBpbXBvc3NpYmxlIHRvIHRyYWNlIHRoZQotICoJ CXNobF8qIHJvdXRpbmVzIGZyb20gdGhlIGJ1bmRsZWQgSFAtVVggZGVidWdnZXIuCi0gKgot ICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKi8KLSNpbmNsdWRlICJwb3N0Z3Jlcy5oIgotCi0v KiBTeXN0ZW0gaW5jbHVkZXMgKi8KLSNpbmNsdWRlIDxhLm91dC5oPgotI2luY2x1ZGUgPGRs Lmg+Ci0KLSNpbmNsdWRlICJkeW5sb2FkZXIuaCIKLSNpbmNsdWRlICJ1dGlscy9keW5hbWlj X2xvYWRlci5oIgotCi12b2lkICoKLXBnX2Rsb3Blbihjb25zdCBjaGFyICpmaWxlbmFtZSkK LXsKLQkvKgotCSAqIFVzZSBCSU5EX0lNTUVESUFURSBzbyB0aGF0IHVuZGVmaW5lZCBzeW1i b2xzIGNhdXNlIGEgZmFpbHVyZSByZXR1cm4KLQkgKiBmcm9tIHNobF9sb2FkKCksIHJhdGhl ciB0aGFuIGFuIGFib3J0KCkgbGF0ZXIgb24gd2hlbiB3ZSBhdHRlbXB0IHRvCi0JICogY2Fs bCB0aGUgbGlicmFyeSEKLQkgKi8KLQlzaGxfdAkJaGFuZGxlID0gc2hsX2xvYWQoZmlsZW5h bWUsCi0JCQkJCQkJCSAgQklORF9JTU1FRElBVEUgfCBCSU5EX1ZFUkJPU0UgfCBEWU5BTUlD X1BBVEgsCi0JCQkJCQkJCSAgMEwpOwotCi0JcmV0dXJuICh2b2lkICopIGhhbmRsZTsKLX0K LQotUEdGdW5jdGlvbgotcGdfZGxzeW0odm9pZCAqaGFuZGxlLCBjb25zdCBjaGFyICpmdW5j bmFtZSkKLXsKLQlQR0Z1bmN0aW9uCWY7Ci0KLQlpZiAoc2hsX2ZpbmRzeW0oKHNobF90ICop ICYgaGFuZGxlLCBmdW5jbmFtZSwgVFlQRV9QUk9DRURVUkUsICZmKSA9PSAtMSkKLQkJZiA9 IChQR0Z1bmN0aW9uKSBOVUxMOwotCXJldHVybiBmOwotfQotCi12b2lkCi1wZ19kbGNsb3Nl KHZvaWQgKmhhbmRsZSkKLXsKLQlzaGxfdW5sb2FkKChzaGxfdCkgaGFuZGxlKTsKLX0KLQot Y2hhciAqCi1wZ19kbGVycm9yKHZvaWQpCi17Ci0Jc3RhdGljIGNoYXIgZXJybXNnW10gPSAi c2hsX2xvYWQgZmFpbGVkIjsKLQotCWlmIChlcnJubykKLQkJcmV0dXJuIHN0cmVycm9yKGVy cm5vKTsKLQotCXJldHVybiBlcnJtc2c7Ci19CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w b3J0L2R5bmxvYWRlci9ocHV4LmggYi9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9ocHV4 LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjYmM0Njk2MGUuLjAwMDAwMDAw MDAKLS0tIGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvaHB1eC5oCisrKyAvZGV2L251 bGwKQEAgLTEsMjUgKzAsMCBAQAotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKgotICogZHlu bG9hZGVyLmgKLSAqCSAgZHluYW1pYyBsb2FkZXIgZm9yIEhQLVVYIHVzaW5nIHRoZSBzaGFy ZWQgbGlicmFyeSBtZWNoYW5pc20KLSAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5 OTYtMjAxOCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKLSAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBD YWxpZm9ybmlhCi0gKgotICoKLSAqIElERU5USUZJQ0FUSU9OCi0gKgkgIHNyYy9iYWNrZW5k L3BvcnQvZHlubG9hZGVyL2hwdXguaAotICoKLSAqCU5PVEVTCi0gKgkJYWxsIGZ1bmN0aW9u cyBhcmUgZGVmaW5lZCBoZXJlIC0tIGl0J3MgaW1wb3NzaWJsZSB0byB0cmFjZSB0aGUKLSAq CQlzaGxfKiByb3V0aW5lcyBmcm9tIHRoZSBidW5kbGVkIEhQLVVYIGRlYnVnZ2VyLgotICoK LSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICovCi0vKiBTeXN0ZW0gaW5jbHVkZXMgKi8KLSNp bmNsdWRlICJmbWdyLmgiCi0KLWV4dGVybiB2b2lkICpwZ19kbG9wZW4oY29uc3QgY2hhciAq ZmlsZW5hbWUpOwotZXh0ZXJuIFBHRnVuY3Rpb24gcGdfZGxzeW0odm9pZCAqaGFuZGxlLCBj b25zdCBjaGFyICpmdW5jbmFtZSk7Ci1leHRlcm4gdm9pZCBwZ19kbGNsb3NlKHZvaWQgKmhh bmRsZSk7Ci1leHRlcm4gY2hhciAqcGdfZGxlcnJvcih2b2lkKTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2xpbnV4LmMgYi9zcmMvYmFja2VuZC9wb3J0L2R5 bmxvYWRlci9saW51eC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTI2NTc2 ZThmLi4wMDAwMDAwMDAwCi0tLSBhL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2xpbnV4 LmMKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLS8qCi0gKiBzcmMvYmFja2VuZC9w b3J0L2R5bmxvYWRlci9saW51eC5jCi0gKgotICogRHVtbXkgZmlsZSB1c2VkIGZvciBub3Ro aW5nIGF0IHRoaXMgcG9pbnQKLSAqCi0gKiBzZWUgbGludXguaAotICovCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9saW51eC5oIGIvc3JjL2JhY2tlbmQvcG9y dC9keW5sb2FkZXIvbGludXguaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJl YjNkNjNmOC4uMDAwMDAwMDAwMAotLS0gYS9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9s aW51eC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLyotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0gKgotICogbGludXguaAotICoJCVBvcnQtc3BlY2lmaWMgcHJvdG90eXBlcyBm b3IgTGludXgKLSAqCi0gKgotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTgs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCi0gKiBQb3J0aW9ucyBDb3B5 cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5p YQotICoKLSAqIHNyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL2xpbnV4LmgKLSAqCi0gKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSAqLwotI2lmbmRlZiBQT1JUX1BST1RPU19ICi0jZGVmaW5l IFBPUlRfUFJPVE9TX0gKLQotI2luY2x1ZGUgInV0aWxzL2R5bmFtaWNfbG9hZGVyLmgiCS8q IHBncm1pbmNsdWRlIGlnbm9yZSAqLwotI2luY2x1ZGUgPGRsZmNuLmg+Ci0KLS8qCi0gKiBJ biBzb21lIG9sZGVyIHN5c3RlbXMsIHRoZSBSVExEX05PVyBmbGFnIGlzbid0IGRlZmluZWQg YW5kIHRoZSBtb2RlCi0gKiBhcmd1bWVudCB0byBkbG9wZW4gbXVzdCBhbHdheXMgYmUgMS4g IFRoZSBSVExEX0dMT0JBTCBmbGFnIGlzIHdhbnRlZAotICogaWYgYXZhaWxhYmxlLCBidXQg aXQgZG9lc24ndCBleGlzdCBldmVyeXdoZXJlLgotICogSWYgaXQgZG9lc24ndCBleGlzdCwg c2V0IGl0IHRvIDAgc28gaXQgaGFzIG5vIGVmZmVjdC4KLSAqLwotI2lmbmRlZiBSVExEX05P VwotI2RlZmluZSBSVExEX05PVyAxCi0jZW5kaWYKLSNpZm5kZWYgUlRMRF9HTE9CQUwKLSNk ZWZpbmUgUlRMRF9HTE9CQUwgMAotI2VuZGlmCi0KLSNkZWZpbmUgcGdfZGxvcGVuKGYpCWRs b3BlbigoZiksIFJUTERfTk9XIHwgUlRMRF9HTE9CQUwpCi0jZGVmaW5lIHBnX2Rsc3ltCQlk bHN5bQotI2RlZmluZSBwZ19kbGNsb3NlCQlkbGNsb3NlCi0jZGVmaW5lIHBnX2RsZXJyb3IJ CWRsZXJyb3IKLQotI2VuZGlmCQkJCQkJCS8qIFBPUlRfUFJPVE9TX0ggKi8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL25ldGJzZC5jIGIvc3JjL2JhY2tlbmQv cG9ydC9keW5sb2FkZXIvbmV0YnNkLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDhmN2Y1Njg2NGQuLjAwMDAwMDAwMDAKLS0tIGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2Fk ZXIvbmV0YnNkLmMKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLS8qCi0gKiBzcmMv YmFja2VuZC9wb3J0L2R5bmxvYWRlci9uZXRic2QuYwotICoKLSAqIER1bW15IGZpbGUgdXNl ZCBmb3Igbm90aGluZyBhdCB0aGlzIHBvaW50Ci0gKgotICogc2VlIG5ldGJzZC5oCi0gKi8K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL25ldGJzZC5oIGIvc3Jj L2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvbmV0YnNkLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGYzYzM4ZWI5OGEuLjAwMDAwMDAwMDAKLS0tIGEvc3JjL2JhY2tlbmQvcG9y dC9keW5sb2FkZXIvbmV0YnNkLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0v Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBuZXRic2QuaAotICoJICBwb3J0LXNwZWNp ZmljIHByb3RvdHlwZXMgZm9yIE5ldEJTRAotICoKLSAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDE4LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAotICog UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5 IG9mIENhbGlmb3JuaWEKLSAqCi0gKiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9uZXRi c2QuaAotICoKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICovCi0jaWZuZGVmIFBPUlRfUFJP VE9TX0gKLSNkZWZpbmUgUE9SVF9QUk9UT1NfSAotCi0jaW5jbHVkZSA8ZGxmY24uaD4KLQot I2luY2x1ZGUgInV0aWxzL2R5bmFtaWNfbG9hZGVyLmgiCS8qIHBncm1pbmNsdWRlIGlnbm9y ZSAqLwotCi0vKgotICogSW4gc29tZSBvbGRlciBzeXN0ZW1zLCB0aGUgUlRMRF9OT1cgZmxh ZyBpc24ndCBkZWZpbmVkIGFuZCB0aGUgbW9kZQotICogYXJndW1lbnQgdG8gZGxvcGVuIG11 c3QgYWx3YXlzIGJlIDEuICBUaGUgUlRMRF9HTE9CQUwgZmxhZyBpcyB3YW50ZWQKLSAqIGlm IGF2YWlsYWJsZSwgYnV0IGl0IGRvZXNuJ3QgZXhpc3QgZXZlcnl3aGVyZS4KLSAqIElmIGl0 IGRvZXNuJ3QgZXhpc3QsIHNldCBpdCB0byAwIHNvIGl0IGhhcyBubyBlZmZlY3QuCi0gKi8K LSNpZm5kZWYgUlRMRF9OT1cKLSNkZWZpbmUgUlRMRF9OT1cgMQotI2VuZGlmCi0jaWZuZGVm IFJUTERfR0xPQkFMCi0jZGVmaW5lIFJUTERfR0xPQkFMIDAKLSNlbmRpZgotCi0jZGVmaW5l IHBnX2Rsb3BlbihmKQlkbG9wZW4oKGYpLCBSVExEX05PVyB8IFJUTERfR0xPQkFMKQotI2Rl ZmluZSBwZ19kbHN5bQkJZGxzeW0KLSNkZWZpbmUgcGdfZGxjbG9zZQkJZGxjbG9zZQotI2Rl ZmluZSBwZ19kbGVycm9yCQlkbGVycm9yCi0KLSNlbmRpZgkJCQkJCQkvKiBQT1JUX1BST1RP U19IICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9vcGVuYnNk LmMgYi9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9vcGVuYnNkLmMKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDZhOGUxZDg5ZDcuLjAwMDAwMDAwMDAKLS0tIGEvc3JjL2Jh Y2tlbmQvcG9ydC9keW5sb2FkZXIvb3BlbmJzZC5jCisrKyAvZGV2L251bGwKQEAgLTEsNyAr MCwwIEBACi0vKgotICogc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvb3BlbmJzZC5jCi0g KgotICogRHVtbXkgZmlsZSB1c2VkIGZvciBub3RoaW5nIGF0IHRoaXMgcG9pbnQKLSAqCi0g KiBzZWUgb3BlbmJzZC5oCi0gKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BvcnQvZHlu bG9hZGVyL29wZW5ic2QuaCBiL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL29wZW5ic2Qu aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzhiZmJlZDY5NC4uMDAwMDAwMDAw MAotLS0gYS9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9vcGVuYnNkLmgKKysrIC9kZXYv bnVsbApAQCAtMSwzOCArMCwwIEBACi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBv cGVuYnNkLmgKLSAqCSAgcG9ydC1zcGVjaWZpYyBwcm90b3R5cGVzIGZvciBPcGVuQlNECi0g KgotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTgsIFBvc3RncmVTUUwgR2xv YmFsIERldmVsb3BtZW50IEdyb3VwCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQs IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQotICoKLSAqIHNyYy9i YWNrZW5kL3BvcnQvZHlubG9hZGVyL29wZW5ic2QuaAotICoKLSAqLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotICovCi0jaWZuZGVmIFBPUlRfUFJPVE9TX0gKLSNkZWZpbmUgUE9SVF9QUk9UT1Nf SAotCi0jaW5jbHVkZSA8ZGxmY24uaD4KLQotI2luY2x1ZGUgInV0aWxzL2R5bmFtaWNfbG9h ZGVyLmgiCS8qIHBncm1pbmNsdWRlIGlnbm9yZSAqLwotCi0vKgotICogSW4gc29tZSBvbGRl ciBzeXN0ZW1zLCB0aGUgUlRMRF9OT1cgZmxhZyBpc24ndCBkZWZpbmVkIGFuZCB0aGUgbW9k ZQotICogYXJndW1lbnQgdG8gZGxvcGVuIG11c3QgYWx3YXlzIGJlIDEuICBUaGUgUlRMRF9H TE9CQUwgZmxhZyBpcyB3YW50ZWQKLSAqIGlmIGF2YWlsYWJsZSwgYnV0IGl0IGRvZXNuJ3Qg ZXhpc3QgZXZlcnl3aGVyZS4KLSAqIElmIGl0IGRvZXNuJ3QgZXhpc3QsIHNldCBpdCB0byAw IHNvIGl0IGhhcyBubyBlZmZlY3QuCi0gKi8KLSNpZm5kZWYgUlRMRF9OT1cKLSNkZWZpbmUg UlRMRF9OT1cgMQotI2VuZGlmCi0jaWZuZGVmIFJUTERfR0xPQkFMCi0jZGVmaW5lIFJUTERf R0xPQkFMIDAKLSNlbmRpZgotCi0jZGVmaW5lIHBnX2Rsb3BlbihmKQlkbG9wZW4oKGYpLCBS VExEX05PVyB8IFJUTERfR0xPQkFMKQotI2RlZmluZSBwZ19kbHN5bQkJZGxzeW0KLSNkZWZp bmUgcGdfZGxjbG9zZQkJZGxjbG9zZQotI2RlZmluZSBwZ19kbGVycm9yCQlkbGVycm9yCi0K LSNlbmRpZgkJCQkJCQkvKiBQT1JUX1BST1RPU19IICovCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wb3J0L2R5bmxvYWRlci9zb2xhcmlzLmMgYi9zcmMvYmFja2VuZC9wb3J0L2R5bmxv YWRlci9zb2xhcmlzLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5YWRjZWRj NWUuLjAwMDAwMDAwMDAKLS0tIGEvc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvc29sYXJp cy5jCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0vKgotICogc3JjL2JhY2tlbmQv cG9ydC9keW5sb2FkZXIvc29sYXJpcy5jCi0gKgotICogRHVtbXkgZmlsZSB1c2VkIGZvciBu b3RoaW5nIGF0IHRoaXMgcG9pbnQKLSAqCi0gKiBzZWUgc29sYXJpcy5oCi0gKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL3NvbGFyaXMuaCBiL3NyYy9iYWNr ZW5kL3BvcnQvZHlubG9hZGVyL3NvbGFyaXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggYjU4M2MyNjZjZi4uMDAwMDAwMDAwMAotLS0gYS9zcmMvYmFja2VuZC9wb3J0L2R5 bmxvYWRlci9zb2xhcmlzLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBzb2xhcmlzLmgKLSAqCSAgcG9ydC1zcGVjaWZp YyBwcm90b3R5cGVzIGZvciBTb2xhcmlzCi0gKgotICoKLSAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5Ni0yMDE4LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAot ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJz aXR5IG9mIENhbGlmb3JuaWEKLSAqCi0gKiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci9z b2xhcmlzLmgKLSAqCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqLwotI2lmbmRlZiBQT1JU X1BST1RPU19ICi0jZGVmaW5lIFBPUlRfUFJPVE9TX0gKLQotI2luY2x1ZGUgPGRsZmNuLmg+ Ci0jaW5jbHVkZSAidXRpbHMvZHluYW1pY19sb2FkZXIuaCIJLyogcGdybWluY2x1ZGUgaWdu b3JlICovCi0KLS8qCi0gKiBJbiBzb21lIG9sZGVyIHN5c3RlbXMsIHRoZSBSVExEX05PVyBm bGFnIGlzbid0IGRlZmluZWQgYW5kIHRoZSBtb2RlCi0gKiBhcmd1bWVudCB0byBkbG9wZW4g bXVzdCBhbHdheXMgYmUgMS4gIFRoZSBSVExEX0dMT0JBTCBmbGFnIGlzIHdhbnRlZAotICog aWYgYXZhaWxhYmxlLCBidXQgaXQgZG9lc24ndCBleGlzdCBldmVyeXdoZXJlLgotICogSWYg aXQgZG9lc24ndCBleGlzdCwgc2V0IGl0IHRvIDAgc28gaXQgaGFzIG5vIGVmZmVjdC4KLSAq LwotI2lmbmRlZiBSVExEX05PVwotI2RlZmluZSBSVExEX05PVyAxCi0jZW5kaWYKLSNpZm5k ZWYgUlRMRF9HTE9CQUwKLSNkZWZpbmUgUlRMRF9HTE9CQUwgMAotI2VuZGlmCi0KLSNkZWZp bmUgcGdfZGxvcGVuKGYpCWRsb3BlbigoZiksIFJUTERfTk9XIHwgUlRMRF9HTE9CQUwpCi0j ZGVmaW5lIHBnX2Rsc3ltCQlkbHN5bQotI2RlZmluZSBwZ19kbGNsb3NlCQlkbGNsb3NlCi0j ZGVmaW5lIHBnX2RsZXJyb3IJCWRsZXJyb3IKLQotI2VuZGlmCQkJCQkJCS8qIFBPUlRfUFJP VE9TX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL3dpbjMy LmggYi9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci93aW4zMi5oCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBkZGJmODY2NTIwLi4wMDAwMDAwMDAwCi0tLSBhL3NyYy9iYWNr ZW5kL3BvcnQvZHlubG9hZGVyL3dpbjMyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCww IEBACi0vKgotICogc3JjL2JhY2tlbmQvcG9ydC9keW5sb2FkZXIvd2luMzIuaAotICovCi0j aWZuZGVmIFBPUlRfUFJPVE9TX0gKLSNkZWZpbmUgUE9SVF9QUk9UT1NfSAotCi0jaW5jbHVk ZSAidXRpbHMvZHluYW1pY19sb2FkZXIuaCIJLyogcGdybWluY2x1ZGUgaWdub3JlICovCi0K LSNkZWZpbmUgcGdfZGxvcGVuKGYpCWRsb3BlbigoZiksIDEpCi0jZGVmaW5lIHBnX2Rsc3lt CQlkbHN5bQotI2RlZmluZSBwZ19kbGNsb3NlCQlkbGNsb3NlCi0jZGVmaW5lIHBnX2RsZXJy b3IJCWRsZXJyb3IKLQotY2hhcgkgICAqZGxlcnJvcih2b2lkKTsKLWludAkJCWRsY2xvc2Uo dm9pZCAqaGFuZGxlKTsKLXZvaWQJICAgKmRsc3ltKHZvaWQgKmhhbmRsZSwgY29uc3QgY2hh ciAqc3ltYm9sKTsKLXZvaWQJICAgKmRsb3Blbihjb25zdCBjaGFyICpwYXRoLCBpbnQgbW9k ZSk7Ci0KLSNlbmRpZgkJCQkJCQkvKiBQT1JUX1BST1RPU19IICovCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3Rt YXN0ZXIvcG9zdG1hc3Rlci5jCmluZGV4IDIyMTVlYmJiNWEuLjZkMjBiMTAyZjkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCisrKyBiL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBAIC0xMjQsNyArMTI0LDYgQEAKICNp bmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIK ICNpbmNsdWRlICJ1dGlscy9kYXRldGltZS5oIgotI2luY2x1ZGUgInV0aWxzL2R5bmFtaWNf bG9hZGVyLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNpbmNsdWRlICJ1dGls cy9waWRmaWxlLmgiCiAjaW5jbHVkZSAidXRpbHMvcHNfc3RhdHVzLmgiCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2RmbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy9m bWdyL2RmbWdyLmMKaW5kZXggMWIwZGJhZDgyYy4uYzJhMjU3MjU4ZCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvZm1nci9kZm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2ZtZ3IvZGZtZ3IuYwpAQCAtMTYsMTEgKzE2LDE0IEBACiAKICNpbmNsdWRlIDxzeXMvc3Rh dC5oPgogCi0jaW5jbHVkZSAiZHlubG9hZGVyLmgiCisjaWZkZWYgSEFWRV9ETE9QRU4KKyNp bmNsdWRlIDxkbGZjbi5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJmbWdyLmgiCiAjaW5jbHVk ZSAibGliL3N0cmluZ2luZm8uaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRl ICJzdG9yYWdlL3NobWVtLmgiCi0jaW5jbHVkZSAidXRpbHMvZHluYW1pY19sb2FkZXIuaCIK ICNpbmNsdWRlICJ1dGlscy9oc2VhcmNoLmgiCiAKIApAQCAtMTEzLDcgKzExNiw3IEBAIGxv YWRfZXh0ZXJuYWxfZnVuY3Rpb24oY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIg KmZ1bmNuYW1lLAogCSAqIHNob3VsZCBkZWNsYXJlIGl0cyBzZWNvbmQgYXJndW1lbnQgYXMg ImNvbnN0IGNoYXIgKiIsIGJ1dCBvbGRlcgogCSAqIHBsYXRmb3JtcyBtaWdodCBub3QsIHNv IGZvciB0aGUgdGltZSBiZWluZyB3ZSBqdXN0IGNhc3QgYXdheSBjb25zdC4KIAkgKi8KLQly ZXR2YWwgPSAoUEdGdW5jdGlvbikgcGdfZGxzeW0obGliX2hhbmRsZSwgKGNoYXIgKikgZnVu Y25hbWUpOworCXJldHZhbCA9IChQR0Z1bmN0aW9uKSBkbHN5bShsaWJfaGFuZGxlLCAoY2hh ciAqKSBmdW5jbmFtZSk7CiAKIAlpZiAocmV0dmFsID09IE5VTEwgJiYgc2lnbmFsTm90Rm91 bmQpCiAJCWVyZXBvcnQoRVJST1IsCkBAIC0xNjIsNyArMTY1LDcgQEAgUEdGdW5jdGlvbgog bG9va3VwX2V4dGVybmFsX2Z1bmN0aW9uKHZvaWQgKmZpbGVoYW5kbGUsIGNvbnN0IGNoYXIg KmZ1bmNuYW1lKQogewogCS8qIGFzIGFib3ZlLCBjYXN0IGF3YXkgY29uc3QgZm9yIHRoZSB0 aW1lIGJlaW5nICovCi0JcmV0dXJuIChQR0Z1bmN0aW9uKSBwZ19kbHN5bShmaWxlaGFuZGxl LCAoY2hhciAqKSBmdW5jbmFtZSk7CisJcmV0dXJuIChQR0Z1bmN0aW9uKSBkbHN5bShmaWxl aGFuZGxlLCAoY2hhciAqKSBmdW5jbmFtZSk7CiB9CiAKIApAQCAtMjI4LDEwICsyMzEsMTAg QEAgaW50ZXJuYWxfbG9hZF9saWJyYXJ5KGNvbnN0IGNoYXIgKmxpYm5hbWUpCiAjZW5kaWYK IAkJZmlsZV9zY2FubmVyLT5uZXh0ID0gTlVMTDsKIAotCQlmaWxlX3NjYW5uZXItPmhhbmRs ZSA9IHBnX2Rsb3BlbihmaWxlX3NjYW5uZXItPmZpbGVuYW1lKTsKKwkJZmlsZV9zY2FubmVy LT5oYW5kbGUgPSBkbG9wZW4oZmlsZV9zY2FubmVyLT5maWxlbmFtZSwgUlRMRF9OT1cgfCBS VExEX0dMT0JBTCk7CiAJCWlmIChmaWxlX3NjYW5uZXItPmhhbmRsZSA9PSBOVUxMKQogCQl7 Ci0JCQlsb2FkX2Vycm9yID0gKGNoYXIgKikgcGdfZGxlcnJvcigpOworCQkJbG9hZF9lcnJv ciA9IGRsZXJyb3IoKTsKIAkJCWZyZWUoKGNoYXIgKikgZmlsZV9zY2FubmVyKTsKIAkJCS8q IGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzIG1pZ2h0IG5vdCBiZSBhcHByb3ByaWF0ZSBoZXJl PyAqLwogCQkJZXJlcG9ydChFUlJPUiwKQEAgLTI0Miw3ICsyNDUsNyBAQCBpbnRlcm5hbF9s b2FkX2xpYnJhcnkoY29uc3QgY2hhciAqbGlibmFtZSkKIAogCQkvKiBDaGVjayB0aGUgbWFn aWMgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGNvbXBhdGliaWxpdHkgKi8KIAkJbWFnaWNfZnVu YyA9IChQR01vZHVsZU1hZ2ljRnVuY3Rpb24pCi0JCQlwZ19kbHN5bShmaWxlX3NjYW5uZXIt PmhhbmRsZSwgUEdfTUFHSUNfRlVOQ1RJT05fTkFNRV9TVFJJTkcpOworCQkJZGxzeW0oZmls ZV9zY2FubmVyLT5oYW5kbGUsIFBHX01BR0lDX0ZVTkNUSU9OX05BTUVfU1RSSU5HKTsKIAkJ aWYgKG1hZ2ljX2Z1bmMpCiAJCXsKIAkJCWNvbnN0IFBnX21hZ2ljX3N0cnVjdCAqbWFnaWNf ZGF0YV9wdHIgPSAoKm1hZ2ljX2Z1bmMpICgpOwpAQCAtMjUzLDggKzI1Niw4IEBAIGludGVy bmFsX2xvYWRfbGlicmFyeShjb25zdCBjaGFyICpsaWJuYW1lKQogCQkJCS8qIGNvcHkgZGF0 YSBibG9jayBiZWZvcmUgdW5saW5raW5nIGxpYnJhcnkgKi8KIAkJCQlQZ19tYWdpY19zdHJ1 Y3QgbW9kdWxlX21hZ2ljX2RhdGEgPSAqbWFnaWNfZGF0YV9wdHI7CiAKLQkJCQkvKiB0cnkg dG8gdW5saW5rIGxpYnJhcnkgKi8KLQkJCQlwZ19kbGNsb3NlKGZpbGVfc2Nhbm5lci0+aGFu ZGxlKTsKKwkJCQkvKiB0cnkgdG8gY2xvc2UgbGlicmFyeSAqLworCQkJCWRsY2xvc2UoZmls ZV9zY2FubmVyLT5oYW5kbGUpOwogCQkJCWZyZWUoKGNoYXIgKikgZmlsZV9zY2FubmVyKTsK IAogCQkJCS8qIGlzc3VlIHN1aXRhYmxlIGNvbXBsYWludCAqLwpAQCAtMjYzLDggKzI2Niw4 IEBAIGludGVybmFsX2xvYWRfbGlicmFyeShjb25zdCBjaGFyICpsaWJuYW1lKQogCQl9CiAJ CWVsc2UKIAkJewotCQkJLyogdHJ5IHRvIHVubGluayBsaWJyYXJ5ICovCi0JCQlwZ19kbGNs b3NlKGZpbGVfc2Nhbm5lci0+aGFuZGxlKTsKKwkJCS8qIHRyeSB0byBjbG9zZSBsaWJyYXJ5 ICovCisJCQlkbGNsb3NlKGZpbGVfc2Nhbm5lci0+aGFuZGxlKTsKIAkJCWZyZWUoKGNoYXIg KikgZmlsZV9zY2FubmVyKTsKIAkJCS8qIGNvbXBsYWluICovCiAJCQllcmVwb3J0KEVSUk9S LApAQCAtMjc2LDcgKzI3OSw3IEBAIGludGVybmFsX2xvYWRfbGlicmFyeShjb25zdCBjaGFy ICpsaWJuYW1lKQogCQkvKgogCQkgKiBJZiB0aGUgbGlicmFyeSBoYXMgYSBfUEdfaW5pdCgp IGZ1bmN0aW9uLCBjYWxsIGl0LgogCQkgKi8KLQkJUEdfaW5pdCA9IChQR19pbml0X3QpIHBn X2Rsc3ltKGZpbGVfc2Nhbm5lci0+aGFuZGxlLCAiX1BHX2luaXQiKTsKKwkJUEdfaW5pdCA9 IChQR19pbml0X3QpIGRsc3ltKGZpbGVfc2Nhbm5lci0+aGFuZGxlLCAiX1BHX2luaXQiKTsK IAkJaWYgKFBHX2luaXQpCiAJCQkoKlBHX2luaXQpICgpOwogCkBAIC00MzYsMTIgKzQzOSwx MiBAQCBpbnRlcm5hbF91bmxvYWRfbGlicmFyeShjb25zdCBjaGFyICpsaWJuYW1lKQogCQkJ LyoKIAkJCSAqIElmIHRoZSBsaWJyYXJ5IGhhcyBhIF9QR19maW5pKCkgZnVuY3Rpb24sIGNh bGwgaXQuCiAJCQkgKi8KLQkJCVBHX2ZpbmkgPSAoUEdfZmluaV90KSBwZ19kbHN5bShmaWxl X3NjYW5uZXItPmhhbmRsZSwgIl9QR19maW5pIik7CisJCQlQR19maW5pID0gKFBHX2Zpbmlf dCkgZGxzeW0oZmlsZV9zY2FubmVyLT5oYW5kbGUsICJfUEdfZmluaSIpOwogCQkJaWYgKFBH X2ZpbmkpCiAJCQkJKCpQR19maW5pKSAoKTsKIAogCQkJY2xlYXJfZXh0ZXJuYWxfZnVuY3Rp b25faGFzaChmaWxlX3NjYW5uZXItPmhhbmRsZSk7Ci0JCQlwZ19kbGNsb3NlKGZpbGVfc2Nh bm5lci0+aGFuZGxlKTsKKwkJCWRsY2xvc2UoZmlsZV9zY2FubmVyLT5oYW5kbGUpOwogCQkJ ZnJlZSgoY2hhciAqKSBmaWxlX3NjYW5uZXIpOwogCQkJLyogcHJ2IGRvZXMgbm90IGNoYW5n ZSAqLwogCQl9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS8uZ2l0aWdub3JlIGIvc3JjL2lu Y2x1ZGUvLmdpdGlnbm9yZQppbmRleCA0OWQxMDhkYmVkLi41MTgxOWZiNGRkIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS8uZ2l0aWdub3JlCisrKyBiL3NyYy9pbmNsdWRlLy5naXRpZ25v cmUKQEAgLTMsNCArMywzIEBACiAvcGdfY29uZmlnLmgKIC9wZ19jb25maWdfZXh0LmgKIC9w Z19jb25maWdfb3MuaAotL2R5bmxvYWRlci5oCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9N YWtlZmlsZSBiL3NyYy9pbmNsdWRlL01ha2VmaWxlCmluZGV4IDkwMWVkZGJkNDQuLjZiZGZk N2RiOTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL01ha2VmaWxlCisrKyBiL3NyYy9pbmNs dWRlL01ha2VmaWxlCkBAIC01NCw3ICs1NCw3IEBAIGluc3RhbGw6IGFsbCBpbnN0YWxsZGly cwogCSAgY3AgJChzcmNkaXIpLyQkZGlyLyouaCAnJChERVNURElSKSQoaW5jbHVkZWRpcl9z ZXJ2ZXIpJy8kJGRpci8gfHwgZXhpdDsgXAogCWRvbmUKIGlmZXEgKCQodnBhdGhfYnVpbGQp LHllcykKLQlmb3IgZmlsZSBpbiBkeW5sb2FkZXIuaCBjYXRhbG9nL3NjaGVtYXBnLmggY2F0 YWxvZy9wZ18qX2QuaCBwYXJzZXIvZ3JhbS5oIHN0b3JhZ2UvbHdsb2NrbmFtZXMuaCB1dGls cy9wcm9iZXMuaDsgZG8gXAorCWZvciBmaWxlIGluIGNhdGFsb2cvc2NoZW1hcGcuaCBjYXRh bG9nL3BnXypfZC5oIHBhcnNlci9ncmFtLmggc3RvcmFnZS9sd2xvY2tuYW1lcy5oIHV0aWxz L3Byb2Jlcy5oOyBkbyBcCiAJICBjcCAkJGZpbGUgJyQoREVTVERJUikkKGluY2x1ZGVkaXJf c2VydmVyKScvJCRmaWxlIHx8IGV4aXQ7IFwKIAlkb25lCiBlbmRpZgpAQCAtODIsNCArODIs NCBAQCBjbGVhbjoKIAlybSAtZiBjYXRhbG9nL3NjaGVtYXBnLmggY2F0YWxvZy9wZ18qX2Qu aCBjYXRhbG9nL2hlYWRlci1zdGFtcAogCiBkaXN0Y2xlYW4gbWFpbnRhaW5lci1jbGVhbjog Y2xlYW4KLQlybSAtZiBwZ19jb25maWcuaCBwZ19jb25maWdfZXh0LmggcGdfY29uZmlnX29z LmggZHlubG9hZGVyLmggc3RhbXAtaCBzdGFtcC1leHQtaAorCXJtIC1mIHBnX2NvbmZpZy5o IHBnX2NvbmZpZ19leHQuaCBwZ19jb25maWdfb3MuaCBzdGFtcC1oIHN0YW1wLWV4dC1oCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbiBiL3NyYy9pbmNsdWRlL3Bn X2NvbmZpZy5oLmluCmluZGV4IDM0N2Q1YjU2ZGMuLjQwOTRlMjI3NzYgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCisrKyBiL3NyYy9pbmNsdWRlL3BnX2NvbmZp Zy5oLmluCkBAIC0xNTgsNiArMTU4LDE0IEBACiAgICBkb24ndC4gKi8KICN1bmRlZiBIQVZF X0RFQ0xfUE9TSVhfRkFEVklTRQogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg ZGVjbGFyYXRpb24gb2YgYFJUTERfR0xPQkFMJywgYW5kIHRvIDAgaWYgeW91CisgICBkb24n dC4gKi8KKyN1bmRlZiBIQVZFX0RFQ0xfUlRMRF9HTE9CQUwKKworLyogRGVmaW5lIHRvIDEg aWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBSVExEX05PVycsIGFuZCB0byAwIGlm IHlvdQorICAgZG9uJ3QuICovCisjdW5kZWYgSEFWRV9ERUNMX1JUTERfTk9XCisKIC8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgc25wcmludGYnLCBh bmQgdG8gMCBpZiB5b3UKICAgIGRvbid0LiAqLwogI3VuZGVmIEhBVkVfREVDTF9TTlBSSU5U RgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9ydC5oIGIvc3JjL2luY2x1ZGUvcG9ydC5o CmluZGV4IDc0YTlkYzRkNGQuLmNmZTU5ODJkYjQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3BvcnQuaAorKysgYi9zcmMvaW5jbHVkZS9wb3J0LmgKQEAgLTQwMCw2ICs0MDAsMjkgQEAg ZXh0ZXJuIHZvaWQgc3JhbmRvbSh1bnNpZ25lZCBpbnQgc2VlZCk7CiAjZGVmaW5lIFNTTF9n ZXRfY3VycmVudF9jb21wcmVzc2lvbih4KSAwCiAjZW5kaWYKIAorI2lmbmRlZiBIQVZFX0RM T1BFTgorZXh0ZXJuIHZvaWQgKmRsb3Blbihjb25zdCBjaGFyICpmaWxlLCBpbnQgbW9kZSk7 CitleHRlcm4gdm9pZCAqZGxzeW0odm9pZCAqaGFuZGxlLCBjb25zdCBjaGFyICpzeW1ib2wp OworZXh0ZXJuIGludCBkbGNsb3NlKHZvaWQgKmhhbmRsZSk7CitleHRlcm4gY2hhciAqZGxl cnJvcih2b2lkKTsKKyNlbmRpZgorCisvKgorICogSW4gc29tZSBvbGRlciBzeXN0ZW1zLCB0 aGUgUlRMRF9OT1cgZmxhZyBpc24ndCBkZWZpbmVkIGFuZCB0aGUgbW9kZQorICogYXJndW1l bnQgdG8gZGxvcGVuIG11c3QgYWx3YXlzIGJlIDEuCisgKi8KKyNpZm5kZWYgSEFWRV9ERUNM X1JUTERfTk9XCisjZGVmaW5lIFJUTERfTk9XIDEKKyNlbmRpZgorCisvKgorICogVGhlIFJU TERfR0xPQkFMIGZsYWcgaXMgd2FudGVkIGlmIGF2YWlsYWJsZSwgYnV0IGl0IGRvZXNuJ3Qg ZXhpc3QKKyAqIGV2ZXJ5d2hlcmUuICBJZiBpdCBkb2Vzbid0IGV4aXN0LCBzZXQgaXQgdG8g MCBzbyBpdCBoYXMgbm8gZWZmZWN0LgorICovCisjaWZuZGVmIEhBVkVfREVDTF9SVExEX0dM T0JBTAorI2RlZmluZSBSVExEX0dMT0JBTCAwCisjZW5kaWYKKwogLyogdGhyZWFkLmggKi8K IGV4dGVybiBjaGFyICpwcVN0cmVycm9yKGludCBlcnJudW0sIGNoYXIgKnN0cmVycmJ1Ziwg c2l6ZV90IGJ1Zmxlbik7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2R5bmFt aWNfbG9hZGVyLmggYi9zcmMvaW5jbHVkZS91dGlscy9keW5hbWljX2xvYWRlci5oCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjQ1NWI1MmNhLi4wMDAwMDAwMDAwCi0tLSBh L3NyYy9pbmNsdWRlL3V0aWxzL2R5bmFtaWNfbG9hZGVyLmgKKysrIC9kZXYvbnVsbApAQCAt MSwyNSArMCwwIEBACi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCi0gKiBkeW5hbWljX2xv YWRlci5oCi0gKgotICoKLSAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAx OCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKLSAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9y bmlhCi0gKgotICogc3JjL2luY2x1ZGUvdXRpbHMvZHluYW1pY19sb2FkZXIuaAotICoKLSAq LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotICovCi0jaWZuZGVmIERZTkFNSUNfTE9BREVSX0gKLSNk ZWZpbmUgRFlOQU1JQ19MT0FERVJfSAotCi0jaW5jbHVkZSAiZm1nci5oIgotCi0KLWV4dGVy biB2b2lkICpwZ19kbG9wZW4oY29uc3QgY2hhciAqZmlsZW5hbWUpOwotZXh0ZXJuIFBHRnVu Y3Rpb24gcGdfZGxzeW0odm9pZCAqaGFuZGxlLCBjb25zdCBjaGFyICpmdW5jbmFtZSk7Ci1l eHRlcm4gdm9pZCBwZ19kbGNsb3NlKHZvaWQgKmhhbmRsZSk7Ci1leHRlcm4gY2hhciAqcGdf ZGxlcnJvcih2b2lkKTsKLQotI2VuZGlmCQkJCQkJCS8qIERZTkFNSUNfTE9BREVSX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL3dpbjMyLmMgYi9zcmMv cG9ydC9kbG9wZW4uYwpzaW1pbGFyaXR5IGluZGV4IDUxJQpyZW5hbWUgZnJvbSBzcmMvYmFj a2VuZC9wb3J0L2R5bmxvYWRlci93aW4zMi5jCnJlbmFtZSB0byBzcmMvcG9ydC9kbG9wZW4u YwppbmRleCBjNTk4MjNlMzY3Li44OTc0MDdjM2FmIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wb3J0L2R5bmxvYWRlci93aW4zMi5jCisrKyBiL3NyYy9wb3J0L2Rsb3Blbi5jCkBAIC0x LDExICsxLDY5IEBACi0vKiBzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci93aW4zMi5jICov CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBkbG9wZW4uYworICoJICBkeW5hbWlj IGxvYWRlciBmb3IgcGxhdGZvcm1zIHdpdGhvdXQgZGxvcGVuKCkKKyAqCisgKiBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxOCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0 aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9O CisgKgkgIHNyYy9wb3J0L2Rsb3Blbi5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KIAotI2luY2x1ZGUgInBvc3RncmVzLmgiCisjaW5jbHVkZSAiYy5oIgogCi1jaGFyCSAg ICpkbGVycm9yKHZvaWQpOwotaW50CQkJZGxjbG9zZSh2b2lkICpoYW5kbGUpOwotdm9pZAkg ICAqZGxzeW0odm9pZCAqaGFuZGxlLCBjb25zdCBjaGFyICpzeW1ib2wpOwotdm9pZAkgICAq ZGxvcGVuKGNvbnN0IGNoYXIgKnBhdGgsIGludCBtb2RlKTsKKyNpZiBkZWZpbmVkKF9faHB1 eCkKKworLyogU3lzdGVtIGluY2x1ZGVzICovCisjaW5jbHVkZSA8YS5vdXQuaD4KKyNpbmNs dWRlIDxkbC5oPgorCit2b2lkICoKK2Rsb3Blbihjb25zdCBjaGFyICpmaWxlLCBpbnQgbW9k ZSkKK3sKKwlpbnQJCWZsYWdzID0gMDsKKworCWlmIChtb2RlICYgUlRMRF9OT1cpCisJCWZs YWdzIHw9IEJJTkRfSU1NRURJQVRFOworI2lmZGVmIE5PVF9VU0VECisJaWYgKG1vZGUgJiBS VExEX0xBWlkpCisJCWZsYWdzIHw9IEJJTkRfREVGRVJSRUQ7CisjZW5kaWYKKworCXJldHVy biBzaGxfbG9hZChmaWxlbmFtZSwgZmxhZ3MgfCBCSU5EX1ZFUkJPU0UsIDBMKTsKK30KKwor dm9pZCAqCitkbHN5bSh2b2lkICpoYW5kbGUsIGNvbnN0IGNoYXIgKnN5bWJvbCkKK3sKKwl2 b2lkCSAgICp2YWx1ZTsKKworCWlmIChzaGxfZmluZHN5bSgoc2hsX3QgKikgJiBoYW5kbGUs IHN5bWJvbCwgVFlQRV9QUk9DRURVUkUsICZ2YWx1ZSkgPT0gLTEpCisJCXJldHVybiBOVUxM OworCXJldHVybiB2YWx1ZTsKK30KKworaW50CitkbGNsb3NlKHZvaWQgKmhhbmRsZSkKK3sK KwlyZXR1cm4gc2hsX3VubG9hZCgoc2hsX3QpIGhhbmRsZSk7Cit9CisKK2NoYXIgKgorZGxl cnJvcih2b2lkKQoreworCXN0YXRpYyBjaGFyIGVycm1zZ1tdID0gInNobF9sb2FkIGZhaWxl ZCI7CisKKwlpZiAoZXJybm8pCisJCXJldHVybiBzdHJlcnJvcihlcnJubyk7CisKKwlyZXR1 cm4gZXJybXNnOworfQorCisjZWxpZiBkZWZpbmVkKFdJTjMyKQogCiBzdGF0aWMgY2hhciBs YXN0X2R5bl9lcnJvcls1MTJdOwogCkBAIC04MywzICsxNDEsNSBAQCBkbG9wZW4oY29uc3Qg Y2hhciAqcGF0aCwgaW50IG1vZGUpCiAJbGFzdF9keW5fZXJyb3JbMF0gPSAwOwogCXJldHVy biAodm9pZCAqKSBoOwogfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy90b29scy9tc3Zj L0luc3RhbGwucG0gYi9zcmMvdG9vbHMvbXN2Yy9JbnN0YWxsLnBtCmluZGV4IDYwYjU2Mzlk ZjguLmM4YWUxYTBkYzcgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9tc3ZjL0luc3RhbGwucG0K KysrIGIvc3JjL3Rvb2xzL21zdmMvSW5zdGFsbC5wbQpAQCAtNjU0LDcgKzY1NCw3IEBAIHN1 YiBDb3B5SW5jbHVkZUZpbGVzCiAJCSdQdWJsaWMgaGVhZGVycycsICR0YXJnZXQgLiAnL2lu Y2x1ZGUvJywKIAkJJ3NyYy9pbmNsdWRlLycsICAgJ3Bvc3RncmVzX2V4dC5oJywKIAkJJ3Bn X2NvbmZpZy5oJywgICAgJ3BnX2NvbmZpZ19leHQuaCcsCi0JCSdwZ19jb25maWdfb3MuaCcs ICdkeW5sb2FkZXIuaCcsCisJCSdwZ19jb25maWdfb3MuaCcsCiAJCSdwZ19jb25maWdfbWFu dWFsLmgnKTsKIAlsY29weSgnc3JjL2luY2x1ZGUvbGlicHEvbGlicHEtZnMuaCcsICR0YXJn ZXQgLiAnL2luY2x1ZGUvbGlicHEvJykKIAkgIHx8IGNyb2FrICdDb3VsZCBub3QgY29weSBs aWJwcS1mcy5oJzsKQEAgLTY3OCw4ICs2NzgsNyBAQCBzdWIgQ29weUluY2x1ZGVGaWxlcwog CUNvcHlGaWxlcygKIAkJJ1NlcnZlciBoZWFkZXJzJywKIAkJJHRhcmdldCAuICcvaW5jbHVk ZS9zZXJ2ZXIvJywKLQkJJ3NyYy9pbmNsdWRlLycsICdwZ19jb25maWcuaCcsICdwZ19jb25m aWdfZXh0LmgnLCAncGdfY29uZmlnX29zLmgnLAotCQknZHlubG9hZGVyLmgnKTsKKwkJJ3Ny Yy9pbmNsdWRlLycsICdwZ19jb25maWcuaCcsICdwZ19jb25maWdfZXh0LmgnLCAncGdfY29u ZmlnX29zLmgnKTsKIAlDb3B5RmlsZXMoCiAJCSdHcmFtbWFyIGhlYWRlcicsCiAJCSR0YXJn ZXQgLiAnL2luY2x1ZGUvc2VydmVyL3BhcnNlci8nLApkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xz L21zdmMvTWt2Y2J1aWxkLnBtIGIvc3JjL3Rvb2xzL21zdmMvTWt2Y2J1aWxkLnBtCmluZGV4 IDQ1NDNkODdkODMuLmVmYTk3NWEwYmYgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9tc3ZjL01r dmNidWlsZC5wbQorKysgYi9zcmMvdG9vbHMvbXN2Yy9Na3ZjYnVpbGQucG0KQEAgLTE1NSw5 ICsxNTUsNiBAQCBzdWIgbWt2Y2J1aWxkCiAJJHBvc3RncmVzLT5BZGRJbmNsdWRlRGlyKCdz cmMvYmFja2VuZCcpOwogCSRwb3N0Z3Jlcy0+QWRkRGlyKCdzcmMvYmFja2VuZC9wb3J0L3dp bjMyJyk7CiAJJHBvc3RncmVzLT5BZGRGaWxlKCdzcmMvYmFja2VuZC91dGlscy9mbWdydGFi LmMnKTsKLQkkcG9zdGdyZXMtPlJlcGxhY2VGaWxlKAotCQknc3JjL2JhY2tlbmQvcG9ydC9k eW5sb2FkZXIuYycsCi0JCSdzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci93aW4zMi5jJyk7 CiAJJHBvc3RncmVzLT5SZXBsYWNlRmlsZSgnc3JjL2JhY2tlbmQvcG9ydC9wZ19zZW1hLmMn LAogCQknc3JjL2JhY2tlbmQvcG9ydC93aW4zMl9zZW1hLmMnKTsKIAkkcG9zdGdyZXMtPlJl cGxhY2VGaWxlKCdzcmMvYmFja2VuZC9wb3J0L3BnX3NobWVtLmMnLApkaWZmIC0tZ2l0IGEv c3JjL3Rvb2xzL21zdmMvU29sdXRpb24ucG0gYi9zcmMvdG9vbHMvbXN2Yy9Tb2x1dGlvbi5w bQppbmRleCA3ZDdjZThiMDMxLi42OGNmODEyZjAxIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMv bXN2Yy9Tb2x1dGlvbi5wbQorKysgYi9zcmMvdG9vbHMvbXN2Yy9Tb2x1dGlvbi5wbQpAQCAt MzIxLDEzICszMjEsNiBAQCBzdWIgR2VuZXJhdGVGaWxlcwogCQkJJ3NyYy9pbmNsdWRlL3N0 b3JhZ2UvbHdsb2NrbmFtZXMuaCcpOwogCX0KIAotCWlmIChJc05ld2VyKAotCQkJJ3NyYy9p bmNsdWRlL2R5bmxvYWRlci5oJywgJ3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL3dpbjMy LmgnKSkKLQl7Ci0JCWNvcHlGaWxlKCdzcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci93aW4z Mi5oJywKLQkJCSdzcmMvaW5jbHVkZS9keW5sb2FkZXIuaCcpOwotCX0KLQogCWlmIChJc05l d2VyKCdzcmMvaW5jbHVkZS91dGlscy9wcm9iZXMuaCcsICdzcmMvYmFja2VuZC91dGlscy9w cm9iZXMuZCcpKQogCXsKIAkJcHJpbnQgIkdlbmVyYXRpbmcgcHJvYmVzLmguLi5cbiI7CmRp ZmYgLS1naXQgYS9zcmMvdG9vbHMvbXN2Yy9jbGVhbi5iYXQgYi9zcmMvdG9vbHMvbXN2Yy9j bGVhbi5iYXQKaW5kZXggMWQ5Y2Q0MGJkYi4uN2EyM2EyYjU1ZiAxMDA3NTUKLS0tIGEvc3Jj L3Rvb2xzL21zdmMvY2xlYW4uYmF0CisrKyBiL3NyYy90b29scy9tc3ZjL2NsZWFuLmJhdApA QCAtNDAsNyArNDAsNiBAQCBSRU0gRGVsZXRlIGZpbGVzIGNyZWF0ZWQgd2l0aCBHZW5lcmF0 ZUZpbGVzKCkgaW4gU29sdXRpb24ucG0KIGlmIGV4aXN0IHNyY1xpbmNsdWRlXHBnX2NvbmZp Zy5oIGRlbCAvcSBzcmNcaW5jbHVkZVxwZ19jb25maWcuaAogaWYgZXhpc3Qgc3JjXGluY2x1 ZGVccGdfY29uZmlnX2V4dC5oIGRlbCAvcSBzcmNcaW5jbHVkZVxwZ19jb25maWdfZXh0LmgK IGlmIGV4aXN0IHNyY1xpbmNsdWRlXHBnX2NvbmZpZ19vcy5oIGRlbCAvcSBzcmNcaW5jbHVk ZVxwZ19jb25maWdfb3MuaAotaWYgZXhpc3Qgc3JjXGluY2x1ZGVcZHlubG9hZGVyLmggZGVs IC9xIHNyY1xpbmNsdWRlXGR5bmxvYWRlci5oCiBpZiAlRElTVCU9PTEgaWYgZXhpc3Qgc3Jj XGJhY2tlbmRccGFyc2VyXGdyYW0uaCBkZWwgL3Egc3JjXGJhY2tlbmRccGFyc2VyXGdyYW0u aAogaWYgZXhpc3Qgc3JjXGluY2x1ZGVcdXRpbHNcZXJyY29kZXMuaCBkZWwgL3Egc3JjXGlu Y2x1ZGVcdXRpbHNcZXJyY29kZXMuaAogaWYgZXhpc3Qgc3JjXGluY2x1ZGVcdXRpbHNcZm1n cm9pZHMuaCBkZWwgL3Egc3JjXGluY2x1ZGVcdXRpbHNcZm1ncm9pZHMuaAotLSAKMi4xOC4w Cgo= --------------8CD32FEAC49BA140136629E7--