Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pUmKC-00026l-I4 for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Feb 2023 10:26:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pUmKB-0004h4-CO for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Feb 2023 10:26:11 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pUmK9-0004gs-UR for pgsql-hackers@lists.postgresql.org; Wed, 22 Feb 2023 10:26:10 +0000 Received: from new4-smtp.messagingengine.com ([66.111.4.230]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pUmJx-0001Dy-4Q for pgsql-hackers@postgresql.org; Wed, 22 Feb 2023 10:26:09 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailnew.nyi.internal (Postfix) with ESMTP id 8A752581E46 for ; Wed, 22 Feb 2023 05:25:53 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Wed, 22 Feb 2023 05:25:53 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1677061553; x=1677068753; bh=en9/qFfcNZLV30jruXKGnDvj8JLG OGzrCQK4RCpBYxc=; b=IFZdCXtIR+qho+CpMgCDcw6L3Eiz7dEwzNmODGNogikr yQyB1E0bNrPb3gMNBUjqvjEl9A4VXh0gOYp6gthNWaFZj2rGBz4Hh6Ntqm9fdzrn 7gP716ejvdwOK6xbo6dDeYW7rGkzPO//ZUxeR+5bqmNTV9mVI/5juYqjkNrIQ1hQ kzcITj4jAxWIgYp1w+q5zbVOI7rxVe17NbuJLVaUBnOuOdfXpIf5YXyOqT0AU2UF axgw2erkIZzaUGJTUvehXAMrZoJa1SSFnlkaqKgSwCLR5uaj2EbHKoRuIIWZ4vhT IuPsFRfZVuU8Is/xyKLi96TREpx1xcGmwsL1so7Jtw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudejledgudehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfuffhvfhfjgesmhdtre ertdefjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdr vghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrth htvghrnhepkeetteefheevhfdvledtfeegleeutdekkeekveeifeeuffevjeeujeehffej ieejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepph gvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Wed, 22 Feb 2023 05:25:52 -0500 (EST) Content-Type: multipart/mixed; boundary="------------KcbtNCIOb4Snrj7xGGgNAqH4" Message-ID: <40c43d0d-ae4b-fe34-2667-771b3718384e@enterprisedb.com> Date: Wed, 22 Feb 2023 11:25:50 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: Transparent column encryption Content-Language: en-US From: Peter Eisentraut To: pgsql-hackers References: <89157929-c2b6-817b-6025-8e4b2d89d88f@enterprisedb.com> <48a9f2c2-4a57-27d8-7c53-16a23a01014e@enterprisedb.com> <79f08a39-a7da-5157-cef4-378fb60c18f8@enterprisedb.com> <258c5064-437e-f41e-7537-5e8c343c33cc@enterprisedb.com> <6bd99fea-3298-854d-d37f-554151342f36@enterprisedb.com> <963aa100-7e78-3463-0645-700eaaa325f2@enterprisedb.com> <06830254-6d87-86b2-0280-bf2eee7736a5@enterprisedb.com> <75f394fa-f539-1875-079c-c654deceed41@enterprisedb.com> <8bcedb49-1496-0755-bd24-1cbabf30ec84@enterprisedb.com> <1034b6f1-ccab-8a22-c843-71104ebedf01@enterprisedb.com> In-Reply-To: <1034b6f1-ccab-8a22-c843-71104ebedf01@enterprisedb.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------KcbtNCIOb4Snrj7xGGgNAqH4 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit New patch. Per some feedback, I have renamed this feature. People didn't like the "transparent", for various reasons. The new name I came up with is "automatic client-side column-level encryption". This also matches the terminology used in other products better. (Maybe the acronym ACSCLE -- pronounced "a chuckle" -- will catch on.) I'm also using various subsets of that name when the context is clear. Other changes since v15: - CEKs and CMKs now have USAGE privileges. (There are some TODO markers where I got too bored with boilerplate. I will fill those in, but the idea should be clear.) - Renamed attrealtypid to attusertypid. (It wasn't really "real".) - Added corresponding attusertypmod. - Removed attencalg, it's now stored in atttypmod. (The last three together make the whole attribute storage work more sensibly and smoothly.) - Various documentation changes (review by Mark Dilger) - Added more explicit documentation that this feature is not to protect against an "evil DBA". --------------KcbtNCIOb4Snrj7xGGgNAqH4 Content-Type: text/plain; charset=UTF-8; name="v16-0001-Automatic-client-side-column-level-encryption.patch" Content-Disposition: attachment; filename*0="v16-0001-Automatic-client-side-column-level-encryption.patch" Content-Transfer-Encoding: base64 RnJvbSBkYjY2NTg2ZjE0N2FiZWJiYTlkMjJlYTQxNmFlNzkwMzJlYmFkNWJiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCAyMiBGZWIgMjAyMyAxMToxMToxNSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjE2XSBBdXRvbWF0aWMgY2xpZW50LXNpZGUgY29sdW1uLWxldmVsIGVuY3J5 cHRpb24KClRoaXMgZmVhdHVyZSBlbmFibGVzIHRoZSBhdXRvbWF0aWMgZW5jcnlwdGlvbiBh bmQgZGVjcnlwdGlvbiBvZgpwYXJ0aWN1bGFyIGNvbHVtbnMgaW4gdGhlIGNsaWVudC4gIFRo ZSBkYXRhIGZvciB0aG9zZSBjb2x1bW5zIHRoZW4Kb25seSBldmVyIGFwcGVhcnMgaW4gY2lw aGVydGV4dCBvbiB0aGUgc2VydmVyLCBzbyBpdCBpcyBwcm90ZWN0ZWQgZnJvbQpEQkFzLCBz eXNhZG1pbnMsIGNsb3VkIG9wZXJhdG9ycywgZXRjLiBhcyB3ZWxsIGFzIGFjY2lkZW50YWwg bGVha2FnZQp0byBzZXJ2ZXIgbG9ncywgZmlsZS1zeXN0ZW0gYmFja3VwcywgZXRjLiAgVGhl IGNhbm9uaWNhbCB1c2UgY2FzZSBmb3IKdGhpcyBmZWF0dXJlIGlzIHN0b3JpbmcgY3JlZGl0 IGNhcmQgbnVtYmVycyBlbmNyeXB0ZWQsIGluIGFjY29yZGFuY2UKd2l0aCBQQ0kgRFNTLCBh cyB3ZWxsIGFzIHNpbWlsYXIgc2l0dWF0aW9ucyBpbnZvbHZpbmcgc29jaWFsIHNlY3VyaXR5 Cm51bWJlcnMgZXRjLiAgT25lIGNhbid0IGRvIGFueSBjb21wdXRhdGlvbnMgd2l0aCBlbmNy eXB0ZWQgdmFsdWVzIG9uCnRoZSBzZXJ2ZXIsIGJ1dCBmb3IgdGhlc2UgdXNlIGNhc2VzLCB0 aGF0IGlzIG5vdCBuZWNlc3NhcnkuICBUaGlzCmZlYXR1cmUgZG9lcyBzdXBwb3J0IGRldGVy bWluaXN0aWMgZW5jcnlwdGlvbiBhcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUKZGVmYXVsdCBy YW5kb21pemVkIGVuY3J5cHRpb24sIHNvIGluIHRoYXQgbW9kZSBvbmUgY2FuIGRvIGVxdWFs aXR5Cmxvb2t1cHMsIGF0IHRoZSBjb3N0IG9mIHNvbWUgc2VjdXJpdHkuCgpUaGlzIGZ1bmN0 aW9uYWxpdHkgYWxzbyBleGlzdHMgaW4gb3RoZXIgZGF0YWJhc2UgcHJvZHVjdHMsIGFuZCB0 aGUKb3ZlcmFsbCBjb25jZXB0cyB3ZXJlIG1vc3RseSBhZG9wdGVkIGZyb20gdGhlcmUuCgoo Tm90ZTogVGhpcyBmZWF0dXJlIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggYW55IG9uLWRpc2sg ZW5jcnlwdGlvbgpmZWF0dXJlLiAgQm90aCBjYW4gZXhpc3QgaW5kZXBlbmRlbnRseS4pCgpZ b3UgZGVjbGFyZSBhIGNvbHVtbiBhcyBlbmNyeXB0ZWQgaW4gYSBDUkVBVEUgVEFCTEUgc3Rh dGVtZW50LiAgVGhlCmNvbHVtbiB2YWx1ZSBpcyBlbmNyeXB0ZWQgYnkgYSBzeW1tZXRyaWMg a2V5IGNhbGxlZCB0aGUgY29sdW1uCmVuY3J5cHRpb24ga2V5IChDRUspLiAgVGhlIENFSyBp cyBhIGNhdGFsb2cgb2JqZWN0LiAgVGhlIENFSyBrZXkKbWF0ZXJpYWwgaXMgaW4gdHVybiBl bmNyeXB0ZWQgYnkgYW4gYXN5bW1ldHJpYyBrZXkgY2FsbGVkIHRoZSBjb2x1bW4KbWFzdGVy IGtleSAoQ01LKS4gIFRoZSBDTUsgaXMgbm90IHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UgYnV0 IHNvbWV3aGVyZQp3aGVyZSB0aGUgY2xpZW50IGNhbiBnZXQgdG8gaXQsIGZvciBleGFtcGxl IGluIGEgZmlsZSBvciBpbiBhIGtleQptYW5hZ2VtZW50IHN5c3RlbS4gIFdoZW4gYSBzZXJ2 ZXIgc2VuZHMgcm93cyBjb250YWluaW5nIGVuY3J5cHRlZApjb2x1bW4gdmFsdWVzIHRvIHRo ZSBjbGllbnQsIGl0IGZpcnN0IHNlbmRzIHRoZSByZXF1aXJlZCBDTUsgYW5kIENFSwppbmZv cm1hdGlvbiAobmV3IHByb3RvY29sIG1lc3NhZ2VzKSwgd2hpY2ggdGhlIGNsaWVudCBuZWVk cyB0byByZWNvcmQuClRoZW4sIHRoZSBjbGllbnQgY2FuIHVzZSB0aGlzIGluZm9ybWF0aW9u IHRvIGF1dG9tYXRpY2FsbHkgZGVjcnlwdCB0aGUKaW5jb21pbmcgcm93IGRhdGEgYW5kIGZv cndhcmQgaXQgaW4gcGxhaW50ZXh0IHRvIHRoZSBhcHBsaWNhdGlvbi4KCkZvciB0aGUgQ01L cywgbGlicHEgaGFzIGEgbmV3IGNvbm5lY3Rpb24gcGFyYW1ldGVyICJjbWtsb29rdXAiIHRo YXQKc3BlY2lmaWVzIHZpYSBhIG1pbmktbGFuZ3VhZ2Ugd2hlcmUgdG8gZ2V0IHRoZSBrZXlz LiAgUmlnaHQgbm93LCB5b3UKY2FuIHVzZSAiZmlsZSIgdG8gcmVhZCBpdCBmcm9tIGEgZmls ZSwgb3IgInJ1biIgdG8gcnVuIHNvbWUgcHJvZ3JhbSwKd2hpY2ggY291bGQgZ2V0IGl0IGZy b20gYSBLTVMuCgpUaGUgZ2VuZXJhbCBpZGVhIHdvdWxkIGJlIGZvciBhbiBhcHBsaWNhdGlv biB0byBoYXZlIG9uZSBDTUsgcGVyIGFyZWEKb2Ygc2VjcmV0IHN0dWZmLCBmb3IgZXhhbXBs ZSwgZm9yIGNyZWRpdCBjYXJkIGRhdGEuICBUaGUgQ01LIGNhbiBiZQpyb3RhdGVkOiBlYWNo IENFSyBjYW4gYmUgcmVwcmVzZW50ZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIGRhdGFiYXNl LAplbmNyeXB0ZWQgYnkgYSBkaWZmZXJlbnQgQ01LLiAgKFRoZSBDRUsgY2FuJ3QgYmUgcm90 YXRlZCBlYXNpbHksIHNpbmNlCnRoYXQgd291bGQgcmVxdWlyZSByZWFkaW5nIG91dCBhbGwg dGhlIGRhdGEgZnJvbSBhIHRhYmxlL2NvbHVtbiBhbmQKcmVlbmNyeXB0aW5nIGl0LiAgV2Ug Y291bGQvc2hvdWxkIGFkZCBzb21lIGN1c3RvbSB0b29saW5nIGZvciB0aGF0LApidXQgaXQg d291bGRuJ3QgYmUgYSByb3V0aW5lIG9wZXJhdGlvbi4pCgpTZXZlcmFsIGVuY3J5cHRpb24g YWxnb3JpdGhtcyBhcmUgcHJvdmlkZWQuICBUaGUgQ01LIHByb2Nlc3MgdXNlcwpSU0FFU19P QUVQX1NIQV8xIG9yIF8yNTYuICBUaGUgQ0VLIHByb2Nlc3MgdXNlcwpBRUFEX0FFU18qX0NC Q19ITUFDX1NIQV8qIHdpdGggc2V2ZXJhbCBzdHJlbmd0aHMuCgpJbiB0aGUgc2VydmVyLCB0 aGUgZW5jcnlwdGVkIGRhdHVtcyBhcmUgc3RvcmVkIGluIHR5cGVzIGNhbGxlZApwZ19lbmNy eXB0ZWRfcm5kIGFuZCBwZ19lbmNyeXB0ZWRfZGV0IChmb3IgcmFuZG9taXplZCBhbmQKZGV0 ZXJtaW5pc3RpYyBlbmNyeXB0aW9uKS4gIFRoZXNlIGFyZSBlc3NlbnRpYWxseSBjb3VzaW5z IG9mIGJ5dGVhLgpGb3IgdGhlIHJlc3Qgb2YgdGhlIGRhdGFiYXNlIHN5c3RlbSBiZWxvdyB0 aGUgcHJvdG9jb2wgaGFuZGxpbmcsIHRoZXJlCmlzIG5vdGhpbmcgc3BlY2lhbCBhYm91dCB0 aG9zZS4gIEZvciBleGFtcGxlLCBwZ19lbmNyeXB0ZWRfcm5kIGhhcyBubwpvcGVyYXRvcnMg YXQgYWxsLCBwZ19lbmNyeXB0ZWRfZGV0IGhhcyBvbmx5IGFuIGVxdWFsaXR5IG9wZXJhdG9y LgpwZ19hdHRyaWJ1dGUgaGFzIGEgbmV3IGNvbHVtbiBhdHRyZWFsdHlwaWQgdGhhdCBzdG9y ZXMgdGhlIG9yaWdpbmFsCnR5cGUgb2YgdGhlIGRhdGEgaW4gdGhlIGNvbHVtbi4gIFRoaXMg aXMgb25seSB1c2VkIGZvciBwcm92aWRpbmcgaXQgdG8KY2xpZW50cywgc28gdGhhdCBoaWdo ZXItbGV2ZWwgY2xpZW50cyBjYW4gY29udmVydCB0aGUgZGVjcnlwdGVkIHZhbHVlCnRvIHRo ZWlyIGFwcHJvcHJpYXRlIGRhdGEgdHlwZXMgaW4gdGhlaXIgZW52aXJvbm1lbnRzLgoKVGhl IHByb3RvY29sIGV4dGVuc2lvbnMgYXJlIGd1YXJkZWQgYnkgYSBuZXcgcHJvdG9jb2wgZXh0 ZW5zaW9uIG9wdGlvbgoiX3BxXy5jb2x1bW5fZW5jcnlwdGlvbiIuICBJZiB0aGlzIGlzIG5v dCBzZXQsIG5vdGhpbmcgY2hhbmdlcywgdGhlCnByb3RvY29sIHN0YXlzIHRoZSBzYW1lLCBh bmQgbm8gZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIGhhcHBlbnMuCgpUbyBnZXQgYXV0b21h dGljYWxseSBlbmNyeXB0ZWQgZGF0YSBpbnRvIHRoZSBkYXRhYmFzZSAoYXMgb3Bwb3NlZCB0 bwpyZWFkaW5nIGl0IG91dCksIGl0IGlzIHJlcXVpcmVkIHRvIHVzZSBwcm90b2NvbC1sZXZl bCBwcmVwYXJlZApzdGF0ZW1lbnRzIChpLmUuLCBleHRlbmRlZCBxdWVyeSkuICBUaGUgY2xp ZW50IG11c3QgZmlyc3QgcHJlcGFyZSBhCnN0YXRlbWVudCwgdGhlbiBkZXNjcmliZSB0aGUg c3RhdGVtZW50IHRvIGdldCBwYXJhbWV0ZXIgbWV0YWRhdGEsCndoaWNoIGluZGljYXRlcyB3 aGljaCBwYXJhbWV0ZXJzIGFyZSB0byBiZSBlbmNyeXB0ZWQgYW5kIGhvdy4gIGxpYnBxJ3MK UFFleGVjUGFyYW1zKCkgZG9lcyB0aGlzIGludGVybmFsbHkuICBGb3IgdGhlIGFzeW5jaHJv bm91cyBpbnRlcmZhY2VzLAphZGRpdGlvbmFsIGxpYnBxIGZ1bmN0aW9ucyBhcmUgYWRkZWQg dG8gYmUgYWJsZSB0byBwYXNzIHRoZSBkZXNjcmliZQpyZXN1bHQgYmFjayBpbnRvIHRoZSBz dGF0ZW1lbnQgZXhlY3V0aW9uIGZ1bmN0aW9uLiAgKE90aGVyIGNsaWVudCBBUElzCnRoYXQg aGF2ZSBhICJzdGF0ZW1lbnQgaGFuZGxlIiBjb25jZXB0IGNvdWxkIGRvIHRoaXMgbW9yZSBl bGVnYW50bHkKYW5kIHByb2JhYmx5IHdpdGhvdXQgYW55IEFQSSBjaGFuZ2VzLikgIHBzcWwg YWxzbyBzdXBwb3J0cyB0aGlzIGlmIHRoZQpcYmluZCBjb21tYW5kIGlzIHVzZWQuCgpBbm90 aGVyIGNoYWxsZW5nZSBpcyB0aGF0IHRoZSBwYXJzZSBhbmFseXNpcyBtdXN0IGNoZWNrIHdo aWNoCnVuZGVybHlpbmcgY29sdW1uIGEgcGFyYW1ldGVyIGNvcnJlc3BvbmRzIHRvLiAgVGhp cyBpcyBzaW1pbGFyIHRvCnJlc29yaWd0YmwgYW5kIHJlc29yaWdjb2wgaW4gdGhlIG9wcG9z aXRlIGRpcmVjdGlvbi4KCkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3Jn L21lc3NhZ2UtaWQvZmxhdC84OTE1NzkyOS1jMmI2LTgxN2ItNjAyNS04ZTRiMmQ4OWQ4OGYl NDBlbnRlcnByaXNlZGIuY29tCi0tLQogZG9jL3NyYy9zZ21sL2Fjcm9ueW1zLnNnbWwgICAg ICAgICAgICAgICAgICAgIHwgIDE4ICsKIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAg ICAgICAgICAgICAgICAgICB8IDMxNyArKysrKysrCiBkb2Mvc3JjL3NnbWwvY2hhcnNldC5z Z21sICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKwogZG9jL3NyYy9zZ21sL2RhdGF0eXBl LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDU1ICsrCiBkb2Mvc3JjL3NnbWwvZGRsLnNn bWwgICAgICAgICAgICAgICAgICAgICAgICAgfCA0NDQgKysrKysrKysrCiBkb2Mvc3JjL3Nn bWwvZnVuYy5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjYgKwogZG9jL3NyYy9z Z21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDI2ICsKIGRvYy9zcmMv c2dtbC9saWJwcS5zZ21sICAgICAgICAgICAgICAgICAgICAgICB8IDMyMiArKysrKysrCiBk b2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbCAgICAgICAgICAgICAgICAgICAgfCA0NDEgKysr KysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICAgICAgICAg fCAgIDYgKwogLi4uL3NnbWwvcmVmL2FsdGVyX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21s IHwgMTk3ICsrKysKIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXku c2dtbCB8IDEzNCArKysKIGRvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sICAgICAgICAg ICAgICAgICB8ICAgMiArCiBkb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbCAgICAgICAgICAg ICAgICAgICAgfCAgMTAgKwogLi4uL3JlZi9jcmVhdGVfY29sdW1uX2VuY3J5cHRpb25fa2V5 LnNnbWwgICAgIHwgMTcwICsrKysKIC4uLi9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21hc3Rl cl9rZXkuc2dtbCAgICB8IDEwNyArKysKIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxl LnNnbWwgICAgICAgICAgICB8ICA1NSArLQogLi4uL3NnbWwvcmVmL2Ryb3BfY29sdW1uX2Vu Y3J5cHRpb25fa2V5LnNnbWwgIHwgMTEyICsrKwogZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2Nv bHVtbl9tYXN0ZXJfa2V5LnNnbWwgIHwgMTEyICsrKwogZG9jL3NyYy9zZ21sL3JlZi9ncmFu dC5zZ21sICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiBkb2Mvc3JjL3NnbWwvcmVmL3Bn X2R1bXAuc2dtbCAgICAgICAgICAgICAgICAgfCAgNDIgKwogZG9jL3NyYy9zZ21sL3JlZi9w Z19kdW1wYWxsLnNnbWwgICAgICAgICAgICAgIHwgIDI3ICsKIGRvYy9zcmMvc2dtbC9yZWYv cHNxbC1yZWYuc2dtbCAgICAgICAgICAgICAgICB8ICAzOSArCiBkb2Mvc3JjL3NnbWwvcmVm ZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2JhY2tlbmQvYWNj ZXNzL2NvbW1vbi9wcmludHNpbXBsZS5jICAgICAgIHwgICA3ICsKIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9jb21tb24vcHJpbnR0dXAuYyAgICAgICAgICB8IDIyMiArKysrLQogc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi90dXBkZXNjLmMgICAgICAgICAgIHwgIDEyICsKIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jICAgICAgICB8ICAgMiArLQogc3JjL2Jh Y2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMv YmFja2VuZC9jYXRhbG9nL2FjbGNoay5jICAgICAgICAgICAgICAgICAgfCAgNjAgKysKIHNy Yy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jICAgICAgICAgICAgICB8ICAxOCArCiBz cmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyAgICAgICAgICAgICAgICAgICAgfCAgNDIgKy0K IHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICAgICB8IDI3MiAr KysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jICAgICAgICAgICB8 IDI4OCArKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlICAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAgICAgICAgICAg ICAgICAgfCAgMTcgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jICAgICAg ICAgICAgIHwgNDM5ICsrKysrKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvY3JlYXRlYXMu YyAgICAgICAgICAgICAgIHwgIDMyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRz LmMgICAgICAgICAgICAgICB8ICAxNSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90 cmlnZ2VyLmMgICAgICAgICAgfCAgMTIgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24u YnVpbGQgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xh YmVsLmMgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYyAgICAgICAgICAgICAgfCAyMDQgKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3ZhcmlhYmxlLmMgICAgICAgICAgICAgICB8ICAgNyArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmlldy5jICAgICAgICAgICAgICAgICAgIHwgIDIwICsKIHNyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAxODcgKysrLQogc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3BhcmFtLmMgICAgICAgICAgICAgIHwgMTU3ICsrKysKIHNyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgICAgICAgICAgICB8ICAxMiArLQogc3JjL2Jh Y2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgICAgICAgICAgIHwgIDE5ICstCiBzcmMv YmFja2VuZC90Y29wL3Bvc3RncmVzLmMgICAgICAgICAgICAgICAgICAgfCAgNjQgKysKIHNy Yy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICA1MyArKwog c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jICAgICAgICAgICAgICAgICAgIHwgIDE4ICsK IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMgICAgICAgICAgICAgICB8IDEwNiAr KysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jICAgICAgICAgICB8ICA4 MyArKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwg ICA0ICstCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNoZS5jICAgICAgICAgICAg fCAgNDIgKwogc3JjL2JhY2tlbmQvdXRpbHMvbWIvbWJ1dGlscy5jICAgICAgICAgICAgICAg IHwgIDE4ICstCiBzcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgICAgICAgICAgICAgICAgICAg ICAgfCAgNDQgKwogc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jICAgICAgICAgICAgICAg ICAgIHwgICA0ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMgICAg ICAgICAgfCAgIDIgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9kYi5jICAgICAgICAg ICAgICAgIHwgICA5ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAg ICAgICAgICAgfCAzNzcgKysrKysrKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggICAg ICAgICAgICAgICAgICAgICB8ICAzNSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0 LmMgICAgICAgICAgICAgICAgfCAgMTQgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwu YyAgICAgICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsICAgICAgICAgICAgICB8ICA3MiArKwogc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUu YyAgICAgICAgICAgICAgICAgICAgICAgfCAxOTEgKysrLQogc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmggICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iaW4vcHNxbC9oZWxw LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmluL3BzcWwvc2V0 dGluZ3MuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wc3FsL3N0 YXJ0dXAuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsKIHNyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICA2NyArLQogc3JjL2NvbW1vbi9N YWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9jb21tb24v Y29sZW5jLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwNCArKysKIHNyYy9jb21t b24vbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5j bHVkZS9hY2Nlc3MvcHJpbnR0dXAuaCAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9kZXBlbmRlbmN5LmggICAgICAgICAgICAgIHwgICAzICsKIHNyYy9p bmNsdWRlL2NhdGFsb2cvaGVhcC5oICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMv aW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgfCAgIDMgKwogc3Jj L2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCAgICAgICAgICAgICAgIHwgICA2ICsKIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQgICAgICAgICAgICAgICB8ICAgNSArCiBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgICAgICAgICAgICAgfCAgIDUgKwog c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaCAgICAgICAgICAgIHwgIDExICsK IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmggICAgICAgICAgICB8ICA0NiAr CiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaCAgICAgICAgfCAgNDYg Kwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCAgICAgICAgIHwgIDQ3 ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BjbGFzcy5kYXQgICAgICAgICAgICB8ICAg MiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZXJhdG9yLmRhdCAgICAgICAgICAgfCAg MTAgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQgICAgICAgICAgIHwg ICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8 ICA0MSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuZGF0ICAgICAgICAgICAgICAg fCAgMTIgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmggICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMuaCAgICAgICAgICAg ICB8ICAyNiArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaCAgICAgICAgICAg ICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvY29tbW9uL2NvbGVuYy5oICAgICAgICAgICAgICAg ICAgIHwgIDUxICsrCiBzcmMvaW5jbHVkZS9saWJwcS9saWJwcS1iZS5oICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAg ICAgICAgIHwgIDQzICstCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAg ICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmggICAg ICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oICAgICAg ICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wuaCAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAg ICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL3V0aWxzL3BsYW5jYWNoZS5oICAg ICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS91dGlscy9zeXNjYWNoZS5oICAg ICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUg ICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMu dHh0ICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25u ZWN0LmMgICAgICAgICAgICAgfCAgNDYgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5j cnlwdC1vcGVuc3NsLmMgICAgIHwgODQyICsrKysrKysrKysrKysrKysrKwogc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oICAgICAgICAgICAgIHwgIDMzICsKIHNyYy9pbnRl cmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYyAgICAgICAgICAgICAgICB8IDY2NSArKysrKysrKysr KysrLQogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMgICAgICAgICAgIHwg MTM5ICsrLQogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtdHJhY2UuYyAgICAgICAgICAgICAg IHwgIDU1ICstCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oICAgICAgICAgICAg ICAgfCAgMjAgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggICAgICAgICAg ICAgIHwgIDM2ICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkICAgICAgICAg ICAgICB8ICAgMiArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL3QvMDAzX2VuY3J5cHQucGwg ICAgICAgICB8ICA3MCArKwogc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC8uZ2l0aWdub3Jl ICAgICAgICAgIHwgICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvTWFrZWZpbGUg ICAgICAgICAgICB8ICAgNyArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L21lc29uLmJ1 aWxkICAgICAgICAgfCAgMjMgKwogc3JjL3Rlc3QvTWFrZWZpbGUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi8uZ2l0 aWdub3JlICAgICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vTWFr ZWZpbGUgICAgICAgICAgIHwgIDMxICsKIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL21l c29uLmJ1aWxkICAgICAgICB8ICAyNCArCiAuLi4vdC8wMDFfY29sdW1uX2VuY3J5cHRpb24u cGwgICAgICAgICAgICAgICAgfCAyNTUgKysrKysrCiAuLi4vY29sdW1uX2VuY3J5cHRpb24v dC8wMDJfY21rX3JvdGF0aW9uLnBsICAgfCAxMTIgKysrCiBzcmMvdGVzdC9jb2x1bW5fZW5j cnlwdGlvbi90ZXN0X2NsaWVudC5jICAgICAgfCAxNjEgKysrKwogLi4uL2NvbHVtbl9lbmNy eXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwgICAgIHwgIDU4ICsrCiBzcmMvdGVzdC9tZXNv bi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0ICAgIHwgMzUzICsrKysrKysrCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dCAgfCAgMzcgKy0KIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0ICAgICAgICB8ICAgOCArCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0ICAgICAgfCAgMTIgKy0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHlwZV9zYW5pdHkub3V0ICAgICB8ICAgNiAr LQogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAy ICstCiBzcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jICAgICAgICAgICAgfCAg IDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbHVtbl9lbmNyeXB0aW9uLnNxbCAgICB8 IDI2NSArKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbCAg ICAgICB8ICAxMyArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHlwZV9zYW5pdHkuc3FsICAg ICAgICAgIHwgICAyICsKIDE0MiBmaWxlcyBjaGFuZ2VkLCA5Njg2IGluc2VydGlvbnMoKyks IDg1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBk b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKIGNyZWF0ZSBt b2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9r ZXkuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nv bHVtbl9tYXN0ZXJfa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwv cmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYwogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy9jb21tb24vY29sZW5jLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL2luY2x1ZGUvY29tbW9uL2NvbGVuYy5oCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC1vcGVuc3NsLmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvaW50ZXJmYWNlcy9saWJwcS90LzAwM19lbmNyeXB0LnBsCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGlnbm9yZQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxl CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vbWVzb24u YnVpbGQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90 LzAwMV9jb2x1bW5fZW5jcnlwdGlvbi5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0 L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAyX2Nta19yb3RhdGlvbi5wbAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMKIGNyZWF0 ZSBtb2RlIDEwMDc1NSBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X3J1bl9kZWNy eXB0LnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9j b2x1bW5fZW5jcnlwdGlvbi5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9jb2x1bW5fZW5jcnlwdGlvbi5zcWwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvYWNyb255bXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9hY3Jvbnltcy5zZ21sCmluZGV4IDJk ZjY1NTlhY2MuLjNhNWYyYzI1NGMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9hY3Jvbnlt cy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9hY3Jvbnltcy5zZ21sCkBAIC01Niw2ICs1Niwx NSBAQCA8dGl0bGU+QWNyb255bXM8L3RpdGxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zh cmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48YWNyb255bT5D RUs8L2Fjcm9ueW0+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBDb2x1bW4gRW5jcnlwdGlvbiBLZXk7IHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtY29sdW1u LWVuY3J5cHRpb24iLz4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zh cmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48YWNyb255bT5D SURSPC9hY3JvbnltPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC02Nyw2ICs3NiwxNSBA QCA8dGl0bGU+QWNyb255bXM8L3RpdGxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxp c3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48YWNyb255bT5DTUs8 L2Fjcm9ueW0+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBD b2x1bW4gTWFzdGVyIEtleTsgc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1jb2x1bW4tZW5jcnlw dGlvbiIvPgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxhY3JvbnltPkNQQU48L2Fj cm9ueW0+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggYzFl NDA0ODA1NC4uODA4ZjI5NjY5ZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTEwNSw2ICsxMDUs MjEgQEAgPHRpdGxlPlN5c3RlbSBDYXRhbG9nczwvdGl0bGU+CiAgICAgICA8ZW50cnk+Y29s bGF0aW9ucyAobG9jYWxlIGluZm9ybWF0aW9uKTwvZW50cnk+CiAgICAgIDwvcm93PgogCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xl bmNrZXkiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3RydWN0bmFtZT48L2xpbms+PC9l bnRyeT4KKyAgICAgIDxlbnRyeT5jb2x1bW4gZW5jcnlwdGlvbiBrZXlzPC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJj YXRhbG9nLXBnLWNvbGVuY2tleWRhdGEiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8 L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+Y29sdW1uIGVuY3J5 cHRpb24ga2V5IGRhdGE8L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sbWFzdGVya2V5Ij48c3Ry dWN0bmFtZT5wZ19jb2xtYXN0ZXJrZXk8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+Cisg ICAgICA8ZW50cnk+Y29sdW1uIG1hc3RlciBrZXlzPC9lbnRyeT4KKyAgICAgPC9yb3c+CisK ICAgICAgPHJvdz4KICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNv bnN0cmFpbnQiPjxzdHJ1Y3RuYW1lPnBnX2NvbnN0cmFpbnQ8L3N0cnVjdG5hbWU+PC9saW5r PjwvZW50cnk+CiAgICAgICA8ZW50cnk+Y2hlY2sgY29uc3RyYWludHMsIHVuaXF1ZSBjb25z dHJhaW50cywgcHJpbWFyeSBrZXkgY29uc3RyYWludHMsIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnRzPC9lbnRyeT4KQEAgLTEzNjAsNiArMTM3NSw0NCBAQCA8dGl0bGU+PHN0cnVjdG5hbWU+ cGdfYXR0cmlidXRlPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KICAgICAgIDwvcGFy YT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+YXR0Y2VrPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lk PC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGct Y29sZW5ja2V5Ij48c3RydWN0bmFtZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5hbWU+PC9saW5r Pi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBJZiB0aGUgY29sdW1uIGlzIGVuY3J5cHRlZCwgYSByZWZlcmVu Y2UgdG8gdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSwgZWxzZSAwLgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5hdHR1c2VydHlwaWQ8L3N0cnVjdGZpZWxkPiA8dHlw ZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxv Zy1wZy10eXBlIj48c3RydWN0bmFtZT5wZ190eXBlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0 cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgSWYgdGhlIGNvbHVtbiBpcyBlbmNyeXB0ZWQsIHRoZW4gdGhpcyBjb2x1 bW4gaW5kaWNhdGVzIHRoZSB0eXBlIG9mIHRoZQorICAgICAgIGVuY3J5cHRlZCBkYXRhIHRo YXQgaXMgcmVwb3J0ZWQgdG8gdGhlIGNsaWVudC4gIElmIHRoZSBjb2x1bW4gaXMgbm90Cisg ICAgICAgZW5jcnlwdGVkLCB0aGVuIDAuICBGb3IgZW5jcnlwdGVkIGNvbHVtbnMsIHRoZSBm aWVsZAorICAgICAgIDxzdHJ1Y3RmaWVsZD5hdHR0eXBpZDwvc3RydWN0ZmllbGQ+IGlzIGVp dGhlcgorICAgICAgIDx0eXBlPnBnX2VuY3J5cHRlZF9kZXQ8L3R5cGU+IG9yIDx0eXBlPnBn X2VuY3J5cHRlZF9ybmQ8L3R5cGU+LgorICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+YXR0dXNlcnR5cG1vZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiB0aGUgY29sdW1uIGlzIGVu Y3J5cHRlZCwgdGhlbiB0aGlzIGNvbHVtbiBpbmRpY2F0ZXMgdGhlIHR5cGUKKyAgICAgICBt b2RpZmllciAoYW5hbG9nb3VzIHRvIDxzdHJ1Y3RmaWVsZD5hdHR0eXBtb2Q8L3N0cnVjdGZp ZWxkPikgdGhhdCBpcworICAgICAgIHJlcG9ydGVkIHRvIHRoZSBjbGllbnQuICBJZiB0aGUg Y29sdW1uIGlzIG5vdCBlbmNyeXB0ZWQsIHRoZW4gLTEuICBGb3IKKyAgICAgICBlbmNyeXB0 ZWQgY29sdW1ucywgdGhlIGZpZWxkIDxzdHJ1Y3RmaWVsZD5hdHR0eXBtb2Q8L3N0cnVjdGZp ZWxkPikKKyAgICAgICBjb250YWlucyB0aGUgaWRlbnRpZmllciBvZiB0aGUgZW5jcnlwdGlv biBhbGdvcml0aG07IHNlZSA8eHJlZgorICAgICAgIGxpbmtlbmQ9InByb3RvY29sLWNlayIv PiBmb3IgcG9zc2libGUgdmFsdWVzLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3Rm aWVsZD5hdHRpbmhjb3VudDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CkBAIC0y NDY3LDYgKzI1MjAsMjcwIEBAIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xsYXRpb248L3N0 cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgogICA8L3BhcmE+CiAgPC9zZWN0MT4KIAorIDxz ZWN0MSBpZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+ cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25l PSJjYXRhbG9nLXBnLWNvbGVuY2tleSI+CisgICA8cHJpbWFyeT5wZ19jb2xlbmNrZXk8L3By aW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0 cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPiBjb250YWlucyBpbmZvcm1hdGlv bgorICAgYWJvdXQgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgaW4gdGhlIGRhdGFiYXNl LiAgVGhlIGFjdHVhbCBrZXkgbWF0ZXJpYWwKKyAgIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlv biBrZXlzIGlzIGluIHRoZSBjYXRhbG9nIDxsaW5rCisgICBsaW5rZW5kPSJjYXRhbG9nLXBn LWNvbGVuY2tleWRhdGEiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0cnVjdG5h bWU+PC9saW5rPi4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0 bmFtZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRn cm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5v aWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRl bnRpZmllcgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jZWtuYW1lPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIENvbHVtbiBlbmNyeXB0aW9uIGtleSBuYW1lCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPmNla25hbWVzcGFjZTwvc3RydWN0ZmllbGQ+IDx0eXBl Pm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLW5hbWVzcGFjZSI+PHN0cnVjdG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1Y3RuYW1lPjwv bGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgY29u dGFpbnMgdGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+Y2Vrb3duZXI8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+ CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdXRoaWQi PjxzdHJ1Y3RuYW1lPnBnX2F1dGhpZDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVs ZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIE93bmVyIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+Y2VrYWNsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YWNsaXRl bVtdPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQWNjZXNz IHByaXZpbGVnZXM7IHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtcHJpdiIvPiBmb3IgZGV0YWls cworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+Cisg ICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJjYXRh bG9nLXBnLWNvbGVuY2tleWRhdGEiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sZW5j a2V5ZGF0YTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0 YWxvZy1wZy1jb2xlbmNrZXlkYXRhIj4KKyAgIDxwcmltYXJ5PnBnX2NvbGVuY2tleWRhdGE8 L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFsb2cg PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5ZGF0YTwvc3RydWN0bmFtZT4gY29udGFpbnMgdGhl IGtleQorICAgbWF0ZXJpYWwgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5cy4gIEVhY2ggY29s dW1uIGVuY3J5cHRpb24ga2V5IG9iamVjdCBjYW4KKyAgIGNvbnRhaW4gc2V2ZXJhbCB2ZXJz aW9ucyBvZiB0aGUga2V5IG1hdGVyaWFsLCBlYWNoIGVuY3J5cHRlZCB3aXRoIGEKKyAgIGRp ZmZlcmVudCBjb2x1bW4gbWFzdGVyIGtleS4gIFRoYXQgYWxsb3dzIHRoZSBncmFkdWFsIHJv dGF0aW9uIG9mIHRoZQorICAgY29sdW1uIG1hc3RlciBrZXlzLiAgVGh1cywgPGxpdGVyYWw+ KGNrZGNla2lkLCBja2RjbWtpZCk8L2xpdGVyYWw+IGlzIGEKKyAgIHVuaXF1ZSBrZXkgb2Yg dGhpcyB0YWJsZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIGtleSBtYXRlcmlh bCBvZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIHNob3VsZCBuZXZlciBiZSBkZWNyeXB0ZWQg aW5zaWRlCisgICB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuICBJdCBpcyBtZWFudCB0byBiZSBz ZW50IGFzLWlzIHRvIHRoZSBjbGllbnQsIHdoZXJlCisgICBpdCBpcyBkZWNyeXB0ZWQgdXNp bmcgdGhlIGFzc29jaWF0ZWQgY29sdW1uIG1hc3RlciBrZXksIGFuZCB0aGVuIHVzZWQgdG8K KyAgIGVuY3J5cHQgb3IgZGVjcnlwdCBjb2x1bW4gdmFsdWVzLgorICA8L3BhcmE+CisKKyAg PHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0cnVj dG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhl YWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBl CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8 dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5ja2RjZWtpZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwv dHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNv bGVuY2tleSI+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPjwvbGluaz4u PHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgVGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSB0aGlzIGVudHJ5IGJl bG9uZ3MgdG8KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tkY21raWQ8 L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxp bmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xtYXN0ZXJrZXkiPjxzdHJ1Y3RuYW1lPnBnX2Nv bG1hc3RlcmtleTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVj dGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBjb2x1 bW4gbWFzdGVyIGtleSB0aGF0IHRoZSBrZXkgbWF0ZXJpYWwgaXMgZW5jcnlwdGVkIHdpdGgK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tkY21rYWxnPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSB1c2VkIGZvciBlbmNyeXB0aW5nIHRo ZSBrZXkgbWF0ZXJpYWw7IHNlZQorICAgICAgIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNt ayIvPiBmb3IgcG9zc2libGUgdmFsdWVzLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5ja2RlbmN2YWw8L3N0cnVjdGZpZWxkPiA8dHlwZT5ieXRlYTwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBrZXkgbWF0ZXJpYWwgb2Yg dGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBrZXksIGVuY3J5cHRlZCB1c2luZyB0aGUKKyAgICAg ICByZWZlcmVuY2VkIGNvbHVtbiBtYXN0ZXIga2V5CisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgor IDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctY29sbWFzdGVya2V5Ij4KKyAg PHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbG1hc3RlcmtleTwvc3RydWN0bmFtZT48L3RpdGxl PgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy1jb2xtYXN0ZXJrZXkiPgorICAg PHByaW1hcnk+cGdfY29sbWFzdGVya2V5PC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKwor ICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX2NvbG1hc3RlcmtleTwv c3RydWN0bmFtZT4gY29udGFpbnMgaW5mb3JtYXRpb24KKyAgIGFib3V0IGNvbHVtbiBtYXN0 ZXIga2V5cy4gIFRoZSBrZXlzIHRoZW1zZWx2ZXMgYXJlIG5vdCBzdG9yZWQgaW4gdGhlCisg ICBkYXRhYmFzZS4gIFRoZSBjYXRhbG9nIGVudHJ5IG9ubHkgY29udGFpbnMgaW5mb3JtYXRp b24gdGhhdCBpcyB1c2VkIGJ5CisgICBjbGllbnRzIHRvIGxvY2F0ZSB0aGUga2V5cywgZm9y IGV4YW1wbGUgaW4gYSBmaWxlIG9yIGluIGEga2V5IG1hbmFnZW1lbnQKKyAgIHN5c3RlbS4K KyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xt YXN0ZXJrZXk8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xz PSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBE ZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwv dGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jbWtuYW1lPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIENvbHVtbiBtYXN0ZXIga2V5IG5hbWUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+Y21rbmFtZXNwYWNlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgor ICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctbmFtZXNwYWNl Ij48c3RydWN0bmFtZT5wZ19uYW1lc3BhY2U8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0 ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBUaGUgT0lEIG9mIHRoZSBuYW1lc3BhY2UgdGhhdCBjb250YWlucyB0aGlzIGNv bHVtbiBtYXN0ZXIga2V5CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNt a293bmVyPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVu Y2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXV0aGlkIj48c3RydWN0bmFtZT5wZ19h dXRoaWQ8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVs ZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBPd25lciBvZiB0aGUg Y29sdW1uIG1hc3RlciBrZXkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ Y21rcmVhbG08L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgQSA8cXVvdGU+cmVhbG08L3F1b3RlPiBhc3NvY2lh dGVkIHdpdGggdGhpcyBjb2x1bW4gbWFzdGVyIGtleS4gIFRoaXMgaXMKKyAgICAgICBhIGZy ZWVseSBjaG9zZW4gc3RyaW5nIHRoYXQgaXMgdXNlZCBieSBjbGllbnRzIHRvIGRldGVybWlu ZSBob3cgdG8gbG9vaworICAgICAgIHVwIHRoZSBrZXkuICBBIHR5cGljYWwgY29uZmlndXJh dGlvbiB3b3VsZCBwdXQgYWxsIENNS3MgdGhhdCBhcmUgbG9va2VkCisgICAgICAgdXAgaW4g dGhlIHNhbWUgd2F5IGludG8gdGhlIHNhbWUgcmVhbG0uCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPmNta2FjbDwvc3RydWN0ZmllbGQ+IDx0eXBlPmFjbGl0ZW1bXTwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFjY2VzcyBwcml2 aWxlZ2VzOyBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXByaXYiLz4gZm9yIGRldGFpbHMKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90 Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iY2F0YWxvZy1w Zy1jb25zdHJhaW50Ij4KICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbnN0cmFpbnQ8L3N0 cnVjdG5hbWU+PC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NoYXJzZXQu c2dtbCBiL2RvYy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwKaW5kZXggMzAzMjM5MmI4MC4uZjMw MjZmZmY4MyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvY2hhcnNldC5zZ21sCkBAIC0xNzIxLDYgKzE3MjEsMTYgQEAgPHRpdGxl PkF1dG9tYXRpYyBDaGFyYWN0ZXIgU2V0IENvbnZlcnNpb24gQmV0d2VlbiBTZXJ2ZXIgYW5k IENsaWVudDwvdGl0bGU+CiAgICAgIEp1c3QgYXMgZm9yIHRoZSBzZXJ2ZXIsIHVzZSBvZiA8 bGl0ZXJhbD5TUUxfQVNDSUk8L2xpdGVyYWw+IGlzIHVud2lzZQogICAgICB1bmxlc3MgeW91 IGFyZSB3b3JraW5nIHdpdGggYWxsLUFTQ0lJIGRhdGEuCiAgICAgPC9wYXJhPgorCisgICAg PHBhcmE+CisgICAgIFdoZW4gYXV0b21hdGljIGNsaWVudC1zaWRlIGNvbHVtbi1sZXZlbCBl bmNyeXB0aW9uIGlzIHVzZWQsIHRoZW4gbm8KKyAgICAgZW5jb2RpbmcgY29udmVyc2lvbiBp cyBwb3NzaWJsZS4gIChUaGUgZW5jb2RpbmcgY29udmVyc2lvbiBoYXBwZW5zIG9uIHRoZQor ICAgICBzZXJ2ZXIsIGFuZCB0aGUgc2VydmVyIGNhbm5vdCBsb29rIGluc2lkZSBhbnkgZW5j cnlwdGVkIGNvbHVtbiB2YWx1ZXMuKQorICAgICBJZiBhdXRvbWF0aWMgY2xpZW50LXNpZGUg Y29sdW1uLWxldmVsIGVuY3J5cHRpb24gaXMgZW5hYmxlZCBmb3IgYQorICAgICBzZXNzaW9u LCB0aGVuIHRoZSBzZXJ2ZXIgZW5mb3JjZXMgdGhhdCB0aGUgY2xpZW50IGVuY29kaW5nIG1h dGNoZXMgdGhlCisgICAgIHNlcnZlciBlbmNvZGluZywgYW5kIGFueSBhdHRlbXB0cyB0byBj aGFuZ2UgdGhlIGNsaWVudCBlbmNvZGluZyB3aWxsIGJlCisgICAgIHJlamVjdGVkIGJ5IHRo ZSBzZXJ2ZXIuCisgICAgPC9wYXJhPgogICAgPC9zZWN0Mj4KIAogICAgPHNlY3QyIGlkPSJt dWx0aWJ5dGUtY29udmVyc2lvbnMtc3VwcG9ydGVkIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9kYXRhdHlwZS5zZ21sIGIvZG9jL3NyYy9zZ21sL2RhdGF0eXBlLnNnbWwKaW5kZXgg NDY3YjQ5YjE5OS4uNjdmY2UxNjg3MiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RhdGF0 eXBlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RhdGF0eXBlLnNnbWwKQEAgLTUzNjAsNCAr NTM2MCw1OSBAQCA8dGl0bGU+UHNldWRvLVR5cGVzPC90aXRsZT4KIAogICA8L3NlY3QxPgog CisgIDxzZWN0MSBpZD0iZGF0YXR5cGUtZW5jcnlwdGVkIj4KKyAgIDx0aXRsZT5UeXBlcyBS ZWxhdGVkIHRvIEVuY3J5cHRpb248L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBBbiBlbmNy eXB0ZWQgY29sdW1uIHZhbHVlIChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLWNvbHVtbi1lbmNy eXB0aW9uIi8+KSBpcworICAgIGludGVybmFsbHkgc3RvcmVkIHVzaW5nIHRoZSB0eXBlcwor ICAgIDx0eXBlPnBnX2VuY3J5cHRlZF9ybmQ8L3R5cGU+IChmb3IgcmFuZG9taXplZCBlbmNy eXB0aW9uKSBvcgorICAgIDx0eXBlPnBnX2VuY3J5cHRlZF9kZXQ8L3R5cGU+IChmb3IgZGV0 ZXJtaW5pc3RpYyBlbmNyeXB0aW9uKTsgc2VlIDx4cmVmCisgICAgbGlua2VuZD0iZGF0YXR5 cGUtZW5jcnlwdGVkLXRhYmxlIi8+LiAgTW9zdCBvZiB0aGUgZGF0YWJhc2Ugc3lzdGVtIHRy ZWF0cworICAgIHRoZXNlIGFzIG5vcm1hbCB0eXBlcy4gIEZvciBleGFtcGxlLCB0aGUgdHlw ZSA8dHlwZT5wZ19lbmNyeXB0ZWRfZGV0PC90eXBlPiBoYXMKKyAgICBhbiBlcXVhbHMgb3Bl cmF0b3IgdGhhdCBhbGxvd3MgbG9va3VwIG9mIGVuY3J5cHRlZCB2YWx1ZXMuICBJdCBpcywK KyAgICBob3dldmVyLCBub3QgYWxsb3dlZCB0byBjcmVhdGUgYSB0YWJsZSB1c2luZyBvbmUg b2YgdGhlc2UgdHlwZXMgZGlyZWN0bHkKKyAgICBhcyBhIGNvbHVtbiB0eXBlLgorICAgPC9w YXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgZXh0ZXJuYWwgcmVwcmVzZW50YXRpb24gb2Yg dGhlc2UgdHlwZXMgaXMgdGhlIHN0cmluZworICAgIDxsaXRlcmFsPmVuY3J5cHRlZCQ8L2xp dGVyYWw+IGZvbGxvd2VkIGJ5IGhleGFkZWNpbWFsIGJ5dGUgdmFsdWVzLCBmb3IKKyAgICBl eGFtcGxlCisgICAgPGxpdGVyYWw+ZW5jcnlwdGVkJDNhYWNkMDYzZDJkM2ExYTA0MTE5ZGY3 Njg3NGUwYjk3ODVlYTQ2NjE3N2YxOGZlOWMwYTFhMzEzZWFmMDljOTg8L2xpdGVyYWw+Lgor ICAgIENsaWVudHMgdGhhdCBkb24ndCBzdXBwb3J0IGF1dG9tYXRpYyBjbGllbnQtc2lkZSBj b2x1bW4tbGV2ZWwgZW5jcnlwdGlvbgorICAgIG9yIGhhdmUgZGlzYWJsZWQgaXQgd2lsbCBz ZWUgdGhlIGVuY3J5cHRlZCB2YWx1ZXMgaW4gdGhpcyBmb3JtYXQuICBDbGllbnRzCisgICAg dGhhdCBzdXBwb3J0IGF1dG9tYXRpYyBjbGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwgZW5jcnlw dGlvbiB3aWxsIG5vdCBzZWUKKyAgICB0aGVzZSB0eXBlcyBpbiByZXN1bHQgc2V0cywgYXMg dGhlIHByb3RvY29sIGxheWVyIHdpbGwgdHJhbnNsYXRlIHRoZW0gYmFjaworICAgIHRvIHRo ZSBkZWNsYXJlZCB1bmRlcmx5aW5nIHR5cGUgaW4gdGhlIHRhYmxlIGRlZmluaXRpb24uCisg ICA8L3BhcmE+CisKKyAgICA8dGFibGUgaWQ9ImRhdGF0eXBlLWVuY3J5cHRlZC10YWJsZSI+ CisgICAgIDx0aXRsZT5UeXBlcyBSZWxhdGVkIHRvIEVuY3J5cHRpb248L3RpdGxlPgorICAg ICA8dGdyb3VwIGNvbHM9IjMiPgorICAgICAgPGNvbHNwZWMgY29sbmFtZT0iY29sMSIgY29s d2lkdGg9IjEqIi8+CisgICAgICA8Y29sc3BlYyBjb2xuYW1lPSJjb2wyIiBjb2x3aWR0aD0i MyoiLz4KKyAgICAgIDxjb2xzcGVjIGNvbG5hbWU9ImNvbDMiIGNvbHdpZHRoPSIyKiIvPgor ICAgICAgPHRoZWFkPgorICAgICAgIDxyb3c+CisgICAgICAgIDxlbnRyeT5OYW1lPC9lbnRy eT4KKyAgICAgICAgPGVudHJ5PlN0b3JhZ2UgU2l6ZTwvZW50cnk+CisgICAgICAgIDxlbnRy eT5EZXNjcmlwdGlvbjwvZW50cnk+CisgICAgICAgPC9yb3c+CisgICAgICA8L3RoZWFkPgor ICAgICAgPHRib2R5PgorICAgICAgIDxyb3c+CisgICAgICAgIDxlbnRyeT48dHlwZT5wZ19l bmNyeXB0ZWRfZGV0PC90eXBlPjwvZW50cnk+CisgICAgICAgIDxlbnRyeT4xIG9yIDQgYnl0 ZXMgcGx1cyB0aGUgYWN0dWFsIGJpbmFyeSBzdHJpbmc8L2VudHJ5PgorICAgICAgICA8ZW50 cnk+ZW5jcnlwdGVkIGNvbHVtbiB2YWx1ZSwgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uPC9l bnRyeT4KKyAgICAgICA8L3Jvdz4KKyAgICAgICA8cm93PgorICAgICAgICA8ZW50cnk+PHR5 cGU+cGdfZW5jcnlwdGVkX3JuZDwvdHlwZT48L2VudHJ5PgorICAgICAgICA8ZW50cnk+MSBv ciA0IGJ5dGVzIHBsdXMgdGhlIGFjdHVhbCBiaW5hcnkgc3RyaW5nPC9lbnRyeT4KKyAgICAg ICAgPGVudHJ5PmVuY3J5cHRlZCBjb2x1bW4gdmFsdWUsIHJhbmRvbWl6ZWQgZW5jcnlwdGlv bjwvZW50cnk+CisgICAgICAgPC9yb3c+CisgICAgICA8L3Rib2R5PgorICAgICA8L3Rncm91 cD4KKyAgICA8L3RhYmxlPgorICA8L3NlY3QxPgogIDwvY2hhcHRlcj4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA4 ZGM4ZDdhMGNlLi5kZmU3M2NhNzRjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC0xMjM4LDYgKzEyMzgsNDQwIEBA IDx0aXRsZT5FeGNsdXNpb24gQ29uc3RyYWludHM8L3RpdGxlPgogICA8L3NlY3QyPgogIDwv c2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImRkbC1jb2x1bW4tZW5jcnlwdGlvbiI+CisgIDx0aXRs ZT5BdXRvbWF0aWMgQ2xpZW50LXNpZGUgQ29sdW1uLWxldmVsIEVuY3J5cHRpb248L3RpdGxl PgorCisgIDxwYXJhPgorICAgV2l0aCA8Zmlyc3R0ZXJtPmF1dG9tYXRpYyBjbGllbnQtc2lk ZSBjb2x1bW4tbGV2ZWwgZW5jcnlwdGlvbjwvZmlyc3R0ZXJtPiwKKyAgIGNvbHVtbnMgY2Fu IGJlIHN0b3JlZCBlbmNyeXB0ZWQgaW4gdGhlIGRhdGFiYXNlLiAgVGhlIGVuY3J5cHRpb24g YW5kCisgICBkZWNyeXB0aW9uIGhhcHBlbnMgYXV0b21hdGljYWxseSBvbiB0aGUgY2xpZW50 LCBzbyB0aGF0IHRoZSBwbGFpbnRleHQgdmFsdWUKKyAgIGlzIG5ldmVyIHNlZW4gaW4gdGhl IGRhdGFiYXNlIGluc3RhbmNlIG9yIG9uIHRoZSBzZXJ2ZXIgaG9zdGluZyB0aGUKKyAgIGRh dGFiYXNlLiAgVGhlIGRyYXdiYWNrIGlzIHRoYXQgbW9zdCBvcGVyYXRpb25zLCBzdWNoIGFz IGZ1bmN0aW9uIGNhbGxzIG9yCisgICBzb3J0aW5nLCBhcmUgbm90IHBvc3NpYmxlIG9uIGVu Y3J5cHRlZCB2YWx1ZXMuCisgIDwvcGFyYT4KKworICA8c2VjdDI+CisgICA8dGl0bGU+VXNp bmcgQXV0b21hdGljIENsaWVudC1zaWRlIENvbHVtbi1sZXZlbCBFbmNyeXB0aW9uPC90aXRs ZT4KKworICA8cGFyYT4KKyAgIEF1dG9tYXRpYyBjbGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwg ZW5jcnlwdGlvbiB1c2VzIHR3byBsZXZlbHMgb2YKKyAgIGNyeXB0b2dyYXBoaWMga2V5cy4g IFRoZSBhY3R1YWwgY29sdW1uIHZhbHVlIGlzIGVuY3J5cHRlZCB1c2luZyBhIHN5bW1ldHJp YworICAgYWxnb3JpdGhtLCBzdWNoIGFzIEFFUywgdXNpbmcgYSA8Zmlyc3R0ZXJtPmNvbHVt biBlbmNyeXB0aW9uCisgICBrZXk8L2ZpcnN0dGVybT4gKDxhY3JvbnltPkNFSzwvYWNyb255 bT4pLiAgVGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBpcyBpbgorICAgdHVybiBlbmNyeXB0 ZWQgdXNpbmcgYW4gYXN5bW1ldHJpYyBhbGdvcml0aG0sIHN1Y2ggYXMgUlNBLCB1c2luZyBh CisgICA8Zmlyc3R0ZXJtPmNvbHVtbiBtYXN0ZXIga2V5PC9maXJzdHRlcm0+ICg8YWNyb255 bT5DTUs8L2Fjcm9ueW0+KS4gIFRoZQorICAgZW5jcnlwdGVkIENFSyBpcyBzdG9yZWQgaW4g dGhlIGRhdGFiYXNlIHN5c3RlbS4gIFRoZSBDTUsgaXMgbm90IHN0b3JlZCBpbgorICAgdGhl IGRhdGFiYXNlIHN5c3RlbTsgaXQgaXMgc3RvcmVkIG9uIHRoZSBjbGllbnQgb3Igc29tZXdo ZXJlIHdoZXJlIHRoZQorICAgY2xpZW50IGNhbiBhY2Nlc3MgaXQsIHN1Y2ggYXMgaW4gYSBs b2NhbCBmaWxlIG9yIGluIGEga2V5IG1hbmFnZW1lbnQKKyAgIHN5c3RlbS4gIFRoZSBkYXRh YmFzZSBzeXN0ZW0gb25seSByZWNvcmRzIHdoZXJlIHRoZSBDTUsgaXMgc3RvcmVkIGFuZAor ICAgcHJvdmlkZXMgdGhpcyBpbmZvcm1hdGlvbiB0byB0aGUgY2xpZW50LiAgV2hlbiByb3dz IGNvbnRhaW5pbmcgZW5jcnlwdGVkCisgICBjb2x1bW5zIGFyZSBzZW50IHRvIHRoZSBjbGll bnQsIHRoZSBzZXJ2ZXIgZmlyc3Qgc2VuZHMgYW55IG5lY2Vzc2FyeSBDTUsKKyAgIGluZm9y bWF0aW9uLCBmb2xsb3dlZCBieSBhbnkgcmVxdWlyZWQgQ0VLLiAgVGhlIGNsaWVudCB0aGVu IGxvb2tzIHVwIHRoZQorICAgQ01LIGFuZCB1c2VzIHRoYXQgdG8gZGVjcnlwdCB0aGUgQ0VL LiAgVGhlbiBpdCBkZWNyeXB0cyBpbmNvbWluZyByb3cgZGF0YQorICAgdXNpbmcgdGhlIENF SyBhbmQgcHJvdmlkZXMgdGhlIGRlY3J5cHRlZCByb3cgZGF0YSB0byB0aGUgYXBwbGljYXRp b24uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEhlcmUgaXMgYW4gZXhhbXBsZSBkZWNs YXJpbmcgYSBjb2x1bW4gYXMgZW5jcnlwdGVkOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRF IFRBQkxFIGN1c3RvbWVycyAoCisgICAgaWQgaW50IFBSSU1BUlkgS0VZLAorICAgIG5hbWUg dGV4dCBOT1QgTlVMTCwKKyAgICAuLi4KKyAgICBjcmVkaXRjYXJkX251bSB0ZXh0IDxlbXBo YXNpcz5FTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSk8L2Vt cGhhc2lzPgorKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4K KyAgIENvbHVtbiBlbmNyeXB0aW9uIHN1cHBvcnRzIDxmaXJzdHRlcm0+cmFuZG9taXplZDwv Zmlyc3R0ZXJtPgorICAgKGFsc28ga25vd24gYXMgPGZpcnN0dGVybT5wcm9iYWJpbGlzdGlj PC9maXJzdHRlcm0+KSBhbmQKKyAgIDxmaXJzdHRlcm0+ZGV0ZXJtaW5pc3RpYzwvZmlyc3R0 ZXJtPiBlbmNyeXB0aW9uLiAgVGhlIGFib3ZlIGV4YW1wbGUgdXNlcworICAgcmFuZG9taXpl ZCBlbmNyeXB0aW9uLCB3aGljaCBpcyB0aGUgZGVmYXVsdC4gIFJhbmRvbWl6ZWQgZW5jcnlw dGlvbiB1c2VzIGEKKyAgIHJhbmRvbSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgZm9yIGVhY2gg ZW5jcnlwdGlvbiwgc28gdGhhdCBldmVuIGlmIHRoZQorICAgcGxhaW50ZXh0IG9mIHR3byBy b3dzIGlzIGVxdWFsLCB0aGUgZW5jcnlwdGVkIHZhbHVlcyB3aWxsIGJlIGRpZmZlcmVudC4K KyAgIFRoaXMgcHJldmVudHMgc29tZW9uZSB3aXRoIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIGRh dGFiYXNlIHNlcnZlciBmcm9tIG1ha2luZworICAgY29tcHV0YXRpb25zIHN1Y2ggYXMgZGlz dGluY3QgY291bnRzIG9uIHRoZSBlbmNyeXB0ZWQgdmFsdWVzLgorICAgRGV0ZXJtaW5pc3Rp YyBlbmNyeXB0aW9uIHVzZXMgYSBmaXhlZCBpbml0aWFsaXphdGlvbiB2ZWN0b3IuICBUaGlz IHJlZHVjZXMKKyAgIHNlY3VyaXR5LCBidXQgaXQgYWxsb3dzIGVxdWFsaXR5IHNlYXJjaGVz IG9uIGVuY3J5cHRlZCB2YWx1ZXMuICBUaGUKKyAgIGZvbGxvd2luZyBleGFtcGxlIGRlY2xh cmVzIGEgY29sdW1uIHdpdGggZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uOgorPHByb2dyYW1s aXN0aW5nPgorQ1JFQVRFIFRBQkxFIGVtcGxveWVlcyAoCisgICAgaWQgaW50IFBSSU1BUlkg S0VZLAorICAgIG5hbWUgdGV4dCBOT1QgTlVMTCwKKyAgICAuLi4KKyAgICBzc24gdGV4dCBF TkNSWVBURUQgV0lUSCAoCisgICAgICAgIGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEs IDxlbXBoYXNpcz5lbmNyeXB0aW9uX3R5cGUgPSBkZXRlcm1pbmlzdGljPC9lbXBoYXNpcz4p CispOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgTnVs bCB2YWx1ZXMgYXJlIG5vdCBlbmNyeXB0ZWQgYnkgYXV0b21hdGljIGNsaWVudC1zaWRlIGNv bHVtbi1sZXZlbAorICAgZW5jcnlwdGlvbjsgbnVsbCB2YWx1ZXMgc2VudCBieSB0aGUgY2xp ZW50IGFyZSB2aXNpYmxlIGFzIG51bGwgdmFsdWVzIGluCisgICB0aGUgZGF0YWJhc2UuICBJ ZiB0aGUgZmFjdCB0aGF0IGEgdmFsdWUgaXMgbnVsbCBuZWVkcyB0byBiZSBoaWRkZW4gZnJv bSB0aGUKKyAgIHNlcnZlciwgdGhpcyBpbmZvcm1hdGlvbiBuZWVkcyB0byBiZSBlbmNvZGVk IGludG8gYSBub25udWxsIHZhbHVlIGluIHRoZQorICAgY2xpZW50IHNvbWVob3cuCisgIDwv cGFyYT4KKyAgPC9zZWN0Mj4KKworICA8c2VjdDI+CisgICA8dGl0bGU+UmVhZGluZyBhbmQg V3JpdGluZyBFbmNyeXB0ZWQgQ29sdW1uczwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIFJl YWRpbmcgYW5kIHdyaXRpbmcgZW5jcnlwdGVkIGNvbHVtbnMgaXMgbWVhbnQgdG8gYmUgaGFu ZGxlZCBhdXRvbWF0aWNhbGx5CisgICAgYnkgdGhlIGNsaWVudCBsaWJyYXJ5L2RyaXZlciBh bmQgc2hvdWxkIGJlIG1vc3RseSB0cmFuc3BhcmVudCB0byB0aGUKKyAgICBhcHBsaWNhdGlv biBjb2RlLCBpZiBjZXJ0YWluIHByZXJlcXVpc2l0ZXMgYXJlIGZ1bGZpbGxlZDoKKworICAg IDxpdGVtaXplZGxpc3Q+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAg IFRoZSBjbGllbnQgbGlicmFyeSBuZWVkcyB0byBzdXBwb3J0IGF1dG9tYXRpYyBjbGllbnQt c2lkZSBjb2x1bW4tbGV2ZWwKKyAgICAgICBlbmNyeXB0aW9uLiAgTm90IGFsbCBjbGllbnQg bGlicmFyaWVzIGRvLiAgRnVydGhlcm1vcmUsIHRoZSBjbGllbnQKKyAgICAgICBsaWJyYXJ5 IG1pZ2h0IHJlcXVpcmUgdGhhdCBhdXRvbWF0aWMgY2xpZW50LXNpZGUgY29sdW1uLWxldmVs CisgICAgICAgZW5jcnlwdGlvbiBpcyBleHBsaWNpdGx5IGVuYWJsZWQgYXQgY29ubmVjdGlv biB0aW1lLiAgU2VlIHRoZQorICAgICAgIGRvY3VtZW50YXRpb24gb2YgdGhlIGNsaWVudCBs aWJyYXJ5IGZvciBkZXRhaWxzLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgor CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIENvbHVtbiBtYXN0ZXIg a2V5cyBhbmQgY29sdW1uIGVuY3J5cHRpb24ga2V5cyBoYXZlIGJlZW4gc2V0IHVwLCBhbmQg dGhlCisgICAgICAgY2xpZW50IGxpYnJhcnkgaGFzIGJlZW4gY29uZmlndXJlZCB0byBiZSBh YmxlIHRvIGxvb2sgdXAgY29sdW1uIG1hc3RlcgorICAgICAgIGtleXMgZnJvbSB0aGUga2V5 IHN0b3JlIG9yIGtleSBtYW5hZ2VtZW50IHN5c3RlbS4KKyAgICAgIDwvcGFyYT4KKyAgICAg PC9saXN0aXRlbT4KKyAgICA8L2l0ZW1pemVkbGlzdD4KKyAgIDwvcGFyYT4KKworICAgPHBh cmE+CisgICAgUmVhZGluZyBmcm9tIGVuY3J5cHRlZCBjb2x1bW5zIHdpbGwgdGhlbiB3b3Jr IGF1dG9tYXRpY2FsbHkuICBGb3IgZXhhbXBsZSwKKyAgICB1c2luZyB0aGUgYWJvdmUgZXhh bXBsZSwKKzxwcm9ncmFtbGlzdGluZz4KK1NFTEVDVCBzc24gRlJPTSBlbXBsb3llZXMgV0hF UkUgaWQgPSA1OworPC9wcm9ncmFtbGlzdGluZz4KKyAgICB3b3VsZCByZXR1cm4gdGhlIHVu ZW5jcnlwdGVkIHZhbHVlIGZvciB0aGUgPGxpdGVyYWw+c3NuPC9saXRlcmFsPiBjb2x1bW4K KyAgICBpbiBhbnkgcm93cyBmb3VuZC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAg V3JpdGluZyB0byBlbmNyeXB0ZWQgY29sdW1ucyByZXF1aXJlcyB0aGF0IHRoZSBleHRlbmRl ZCBxdWVyeSBwcm90b2NvbAorICAgIChwcm90b2NvbC1sZXZlbCBwcmVwYXJlZCBzdGF0ZW1l bnRzKSBiZSB1c2VkLCBzbyB0aGF0IHRoZSB2YWx1ZXMgdG8gYmUKKyAgICBlbmNyeXB0ZWQg YXJlIHN1cHBsaWVkIHNlcGFyYXRlbHkgZnJvbSB0aGUgU1FMIGNvbW1hbmQuICBGb3IgZXhh bXBsZSwKKyAgICB1c2luZywgc2F5LCBwc3FsIG9yIGxpYnBxLCB0aGUgZm9sbG93aW5nIHdv dWxkIG5vdCB3b3JrOgorPHByb2dyYW1saXN0aW5nPgorLS0gV1JPTkchCitJTlNFUlQgSU5U TyBzc24gKGlkLCBuYW1lLCBzc24pIFZBTFVFUyAoMSwgJ1NvbWVvbmUnLCAnMTIzNDUnKTsK KzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgVGhpcyB3b3VsZCBsZWFrIHRoZSB1bmVuY3J5cHRl ZCB2YWx1ZSA8bGl0ZXJhbD4xMjM0NTwvbGl0ZXJhbD4gdG8gdGhlCisgICAgc2VydmVyLCB0 aHVzIGRlZmVhdGluZyB0aGUgcG9pbnQgb2YgY2xpZW50LXNpZGUgY29sdW1uLWxldmVsIGVu Y3J5cHRpb24uCisgICAgKEFuZCBldmVuIGlnbm9yaW5nIHRoYXQsIGl0IGNvdWxkIG5vdCB3 b3JrIGJlY2F1c2UgdGhlIHNlcnZlciBkb2VzIG5vdAorICAgIGhhdmUgYWNjZXNzIHRvIHRo ZSBrZXlzIHRvIHBlcmZvcm0gdGhlIGVuY3J5cHRpb24uKSAgTm90ZSB0aGF0IHVzaW5nCisg ICAgc2VydmVyLXNpZGUgcHJlcGFyZWQgc3RhdGVtZW50cyB1c2luZyB0aGUgU1FMIGNvbW1h bmRzCisgICAgPGNvbW1hbmQ+UFJFUEFSRTwvY29tbWFuZD4gYW5kIDxjb21tYW5kPkVYRUNV VEU8L2NvbW1hbmQ+IGlzIGVxdWFsbHkKKyAgICBpbmNvcnJlY3QsIHNpbmNlIHRoYXQgd291 bGQgYWxzbyBsZWFrIHRoZSBwYXJhbWV0ZXJzIHByb3ZpZGVkIHRvCisgICAgPGNvbW1hbmQ+ RVhFQ1VURTwvY29tbWFuZD4gdG8gdGhlIHNlcnZlci4KKyAgIDwvcGFyYT4KKworICAgPHBh cmE+CisgICAgVGhpcyBzaG93cyBhIGNvcnJlY3QgaW52b2NhdGlvbiBpbiBsaWJwcSAod2l0 aG91dCBlcnJvciBjaGVja2luZyk6Cis8cHJvZ3JhbWxpc3Rpbmc+CitQR3Jlc3VsdCAgICpy ZXM7Citjb25zdCBjaGFyICp2YWx1ZXNbXSA9IHsiMSIsICJTb21lb25lIiwgIjEyMzQ1In07 CisKK3JlcyA9IFBRZXhlY1BhcmFtcyhjb25uLCAiSU5TRVJUIElOVE8gZW1wbG95ZWVzIChp ZCwgbmFtZSwgc3NuKSBWQUxVRVMgKCQxLCAkMiwgJDMpIiwKKyAgICAgICAgICAgICAgICAg ICAzLCBOVUxMLCB2YWx1ZXMsIE5VTEwsIE5VTEwsIDApOworPC9wcm9ncmFtbGlzdGluZz4K KyAgICBIaWdoZXItbGV2ZWwgY2xpZW50IGxpYnJhcmllcyBtaWdodCB1c2UgdGhlIHByb3Rv Y29sLWxldmVsIHByZXBhcmVkCisgICAgc3RhdGVtZW50cyBhdXRvbWF0aWNhbGx5IGFuZCB0 aHVzIHdvbid0IHJlcXVpcmUgYW55IGNvZGUgY2hhbmdlcy4KKyAgIDwvcGFyYT4KKworICAg PHBhcmE+CisgICAgPGFwcGxpY2F0aW9uPnBzcWw8L2FwcGxpY2F0aW9uPiBwcm92aWRlcyB0 aGUgY29tbWFuZAorICAgIDxsaXRlcmFsPlxiaW5kPC9saXRlcmFsPiB0byBydW4gc3RhdGVt ZW50cyB3aXRoIHBhcmFtZXRlcnMgbGlrZSB0aGlzOgorPHByb2dyYW1saXN0aW5nPgorSU5T RVJUIElOVE8gZW1wbG95ZWVzIChpZCwgbmFtZSwgc3NuKSBWQUxVRVMgKCQxLCAkMiwgJDMp IFxiaW5kICcxJyAnU29tZW9uZScsICcxMjM0NScgXGcKKzwvcHJvZ3JhbWxpc3Rpbmc+Cisg ICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFNpbWlsYXJseSwgaWYgZGV0ZXJtaW5pc3Rp YyBlbmNyeXB0aW9uIGlzIHVzZWQsIHBhcmFtZXRlcnMgbmVlZCB0byBiZSB1c2VkCisgICAg aW4gc2VhcmNoIGNvbmRpdGlvbnMgdXNpbmcgZW5jcnlwdGVkIGNvbHVtbnM6Cis8cHJvZ3Jh bWxpc3Rpbmc+CitTRUxFQ1QgKiBGUk9NIGVtcGxveWVlcyBXSEVSRSBzc24gPSAkMSBcYmlu ZCAnMTIzNDUnIFxnCis8L3Byb2dyYW1saXN0aW5nPgorICAgPC9wYXJhPgorICA8L3NlY3Qy PgorCisgIDxzZWN0Mj4KKyAgIDx0aXRsZT5TZXR0aW5nIHVwIEF1dG9tYXRpYyBDbGllbnQt c2lkZSBDb2x1bW4tbGV2ZWwgRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBU aGUgc3RlcHMgdG8gc2V0IHVwIGF1dG9tYXRpYyBjbGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwg ZW5jcnlwdGlvbiBmb3IgYQorICAgZGF0YWJhc2UgYXJlOgorCisgICA8b3JkZXJlZGxpc3Q+ CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSB0aGUga2V5IG1h dGVyaWFsIGZvciB0aGUgQ01LLCBmb3IgZXhhbXBsZSwgdXNpbmcgYSBjcnlwdG9ncmFwaGlj CisgICAgICBsaWJyYXJ5IG9yIHRvb2xraXQsIG9yIGEga2V5IG1hbmFnZW1lbnQgc3lzdGVt LiAgU2VjdXJlIGFjY2VzcyB0byB0aGUKKyAgICAgIGtleSBhcyBhcHByb3ByaWF0ZSwgdXNp bmcgYWNjZXNzIGNvbnRyb2wsIHBhc3N3b3JkcywgZXRjLgorICAgICA8L3BhcmE+CisgICAg PC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWdp c3RlciB0aGUgQ01LIGluIHRoZSBkYXRhYmFzZSB1c2luZyB0aGUgU1FMIGNvbW1hbmQgPHhy ZWYKKyAgICAgIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiLz4uCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8 cGFyYT4KKyAgICAgIENyZWF0ZSB0aGUgKHVuZW5jcnlwdGVkKSBrZXkgbWF0ZXJpYWwgZm9y IHRoZSBDRUsgaW4gYSB0ZW1wb3JhcnkKKyAgICAgIGxvY2F0aW9uLiAgKEl0IHdpbGwgYmUg ZW5jcnlwdGVkIGluIHRoZSBuZXh0IHN0ZXAuICBEZXBlbmRpbmcgb24gdGhlCisgICAgICBh dmFpbGFibGUgdG9vbHMsIGl0IG1pZ2h0IGJlIHBvc3NpYmxlIGFuZCBzZW5zaWJsZSB0byBj b21iaW5lIHRoZXNlIHR3bworICAgICAgc3RlcHMuKQorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBFbmNyeXB0 IHRoZSBjcmVhdGVkIENFSyBrZXkgbWF0ZXJpYWwgdXNpbmcgdGhlIENNSyAoY3JlYXRlZCBl YXJsaWVyKS4KKyAgICAgIChUaGUgdW5lbmNyeXB0ZWQgdmVyc2lvbiBvZiB0aGUgQ0VLIGtl eSBtYXRlcmlhbCBjYW4gbm93IGJlIGRpc3Bvc2VkCisgICAgICBvZi4pCisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIFJlZ2lzdGVyIHRoZSBDRUsgaW4gdGhlIGRhdGFiYXNlIHVzaW5nIHRoZSBTUUwgY29t bWFuZCA8eHJlZgorICAgICAgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlv bi1rZXkiLz4uICBUaGlzIGNvbW1hbmQKKyAgICAgIDxxdW90ZT51cGxvYWRzPC9xdW90ZT4g dGhlIGVuY3J5cHRlZCBDRUsga2V5IG1hdGVyaWFsIGNyZWF0ZWQgaW4gdGhlCisgICAgICBw cmV2aW91cyBzdGVwIHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIuICBUaGUgbG9jYWwgY29weSBv ZiB0aGUgQ0VLIGtleQorICAgICAgbWF0ZXJpYWwgY2FuIHRoZW4gYmUgcmVtb3ZlZC4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgQ3JlYXRlIGVuY3J5cHRlZCBjb2x1bW5zIHVzaW5nIHRoZSBjcmVhdGVk IENFSy4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgQ29uZmlndXJlIHRoZSBjbGllbnQgbGlicmFyeS9kcml2 ZXIgdG8gYmUgYWJsZSB0byBsb29rIHVwIHRoZSBDTUsKKyAgICAgIGNyZWF0ZWQgZWFybGll ci4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L29yZGVyZWRsaXN0Pgor CisgICBPbmNlIHRoaXMgaXMgZG9uZSwgdmFsdWVzIGNhbiBiZSB3cml0dGVuIHRvIGFuZCBy ZWFkIGZyb20gdGhlIGVuY3J5cHRlZAorICAgY29sdW1ucyBpbiBhIHRyYW5zcGFyZW50IHdh eS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgTm90ZSB0aGF0IHRoZXNlIHN0ZXBzIHNo b3VsZCBub3QgYmUgcnVuIG9uIHRoZSBkYXRhYmFzZSBzZXJ2ZXIsIGJ1dCBvbiBzb21lCisg ICBjbGllbnQgbWFjaGluZS4gIE5laXRoZXIgdGhlIENNSyBub3IgdGhlIHVuZW5jcnlwdGVk IENFSyBzaG91bGQgZXZlciBhcHBlYXIKKyAgIG9uIHRoZSBkYXRhYmFzZSBzZXJ2ZXIgaG9z dC4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIHNwZWNpZmljIGRldGFpbHMgb2Yg dGhpcyBzZXR1cCBkZXBlbmQgb24gdGhlIGRlc2lyZWQgQ01LIHN0b3JhZ2UKKyAgIG1lY2hh bmlzbS9rZXkgbWFuYWdlbWVudCBzeXN0ZW0gYXMgd2VsbCBhcyB0aGUgY2xpZW50IGxpYnJh cmllcyB0byBiZSB1c2VkLgorICAgVGhlIGZvbGxvd2luZyBleGFtcGxlIHVzZXMgdGhlIDxj b21tYW5kPm9wZW5zc2w8L2NvbW1hbmQ+IGNvbW1hbmQtbGluZSB0b29sCisgICB0byBzZXQg dXAgdGhlIGtleXMuCisKKyAgIDxvcmRlcmVkbGlzdD4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgQ3JlYXRlIHRoZSBrZXkgbWF0ZXJpYWwgZm9yIHRoZSBDTUsgYW5k IHdyaXRlIGl0IHRvIGEgZmlsZToKKzxwcm9ncmFtbGlzdGluZz4KK29wZW5zc2wgZ2VucGtl eSAtYWxnb3JpdGhtIHJzYSAtb3V0IGNtazEucGVtCis8L3Byb2dyYW1saXN0aW5nPgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBSZWdpc3RlciB0aGUgQ01LIGluIHRoZSBkYXRhYmFzZToKKzxwcm9ncmFt bGlzdGluZz4KK3BzcWwgLi4uIC1jICJDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSIK KzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSB0aGUgdW5lbmNyeXB0 ZWQgQ0VLIGtleSBtYXRlcmlhbCBpbiBhIGZpbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitvcGVu c3NsIHJhbmQgLW91dCBjZWsxLmJpbiA0OAorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIChT ZWUgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtY2VrLXRhYmxlIi8+IGZvciByZXF1aXJlZCBr ZXkgbGVuZ3Rocy4pCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEVuY3J5cHQgdGhlIGNyZWF0ZWQgQ0VLIGtl eSBtYXRlcmlhbDoKKzxwcm9ncmFtbGlzdGluZz4KK29wZW5zc2wgcGtleXV0bCAtZW5jcnlw dCAtaW5rZXkgY21rMS5wZW0gLXBrZXlvcHQgcnNhX3BhZGRpbmdfbW9kZTpvYWVwIC1pbiBj ZWsxLmJpbiAtb3V0IGNlazEuYmluLmVuYworcm0gY2VrMS5iaW4KKzwvcHJvZ3JhbWxpc3Rp bmc+CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIFJlZ2lzdGVyIHRoZSBDRUsgaW4gdGhlIGRhdGFiYXNlOgor PHByb2dyYW1saXN0aW5nPgorIyBjb252ZXJ0IGZpbGUgY29udGVudHMgdG8gaGV4IGVuY29k aW5nOyB0aGlzIGlzIGp1c3Qgb25lIHBvc3NpYmxlIHdheQorY2VrZW5jaGV4PSQocGVybCAt MG5lICdwcmludCB1bnBhY2sgIkgqIicgY2VrMS5iaW4uZW5jKQorcHNxbCAuLi4gLWMgIkNS RUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBXSVRIIFZBTFVFUyAoY29sdW1uX21h c3Rlcl9rZXkgPSBjbWsxLCBlbmNyeXB0ZWRfdmFsdWUgPSAnXFx4JHtjZWtlbmNoZXh9Jyki CitybSBjZWsxLmJpbi5lbmMKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENy ZWF0ZSBlbmNyeXB0ZWQgY29sdW1ucyBhcyBzaG93biBpbiB0aGUgZXhhbXBsZXMgYWJvdmUu CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAg ICA8cGFyYT4KKyAgICAgIENvbmZpZ3VyZSB0aGUgbGlicHEgZm9yIENNSyBsb29rdXAgKHNl ZSBhbHNvIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLWNvbm5lY3QtY21rbG9va3VwIi8+KToKKzxw cm9ncmFtbGlzdGluZz4KK1BHQ01LTE9PS1VQPSIqPWZpbGU6JFBXRC8lay5wZW0iCitleHBv cnQgUEdDTUtMT09LVVAKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgIDwvcGFyYT4KKworICAg ICA8cGFyYT4KKyAgICAgIEFkZGl0aW9uYWxseSwgbGlicHEgcmVxdWlyZXMgdGhhdCB0aGUg Y29ubmVjdGlvbiBwYXJhbWV0ZXIgPHhyZWYKKyAgICAgIGxpbmtlbmQ9ImxpYnBxLWNvbm5l Y3QtY29sdW1uLWVuY3J5cHRpb24iLz4gYmUgc2V0IGluIG9yZGVyIHRvIGFjdGl2YXRlCisg ICAgICB0aGUgYXV0b21hdGljIGNsaWVudC1zaWRlIGNvbHVtbi1sZXZlbCBlbmNyeXB0aW9u IGZ1bmN0aW9uYWxpdHkuICBUaGlzCisgICAgICBzaG91bGQgYmUgZG9uZSBpbiB0aGUgY29u bmVjdGlvbiBwYXJhbWV0ZXJzIG9mIHRoZSBhcHBsaWNhdGlvbiwgYnV0IGFuCisgICAgICBl bnZpcm9ubWVudCB2YXJpYWJsZSAoPGVudmFyPlBHQ09MVU1ORU5DUllQVElPTjwvZW52YXI+ KSBpcyBhbHNvCisgICAgICBhdmFpbGFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgorICAgPC9vcmRlcmVkbGlzdD4KKyAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxz ZWN0Mj4KKyAgIDx0aXRsZT5HdWlkYW5jZSBvbiBVc2luZyBBdXRvbWF0aWMgQ2xpZW50LXNp ZGUgQ29sdW1uLWxldmVsIEVuY3J5cHRpb248L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBU aGlzIHNlY3Rpb24gY29udGFpbnMgc29tZSBpbmZvcm1hdGlvbiBvbiB3aGVuIGl0IGlzIG9y IGlzIG5vdCBhcHByb3ByaWF0ZQorICAgIHRvIHVzZSBhdXRvbWF0aWMgY2xpZW50LXNpZGUg Y29sdW1uLWxldmVsIGVuY3J5cHRpb24sIGFuZCB3aGF0IHByZWNhdXRpb25zCisgICAgbmVl ZCB0byBiZSB0YWtlbiB0byBtYWludGFpbiBpdHMgc2VjdXJpdHkuCisgICA8L3BhcmE+CisK KyAgIDxwYXJhPgorICAgIEluIGdlbmVyYWwsIGNvbHVtbiBlbmNyeXB0aW9uIGlzIG5ldmVy IGEgcmVwbGFjZW1lbnQgZm9yIGFkZGl0aW9uYWwKKyAgICBzZWN1cml0eSBhbmQgZW5jcnlw dGlvbiB0ZWNobmlxdWVzIHN1Y2ggYXMgdHJhbnNwb3J0IGVuY3J5cHRpb24KKyAgICAoU1NM L1RMUyksIHN0b3JhZ2UgZW5jcnlwdGlvbiwgc3Ryb25nIGFjY2VzcyBjb250cm9sLCBhbmQg cGFzc3dvcmQKKyAgICBzZWN1cml0eS4gIENvbHVtbiBlbmNyeXB0aW9uIG9ubHkgdGFyZ2V0 cyBzcGVjaWZpYyB1c2UgY2FzZXMgYW5kIHNob3VsZCBiZQorICAgIHVzZWQgaW4gY29uanVu Y3Rpb24gd2l0aCBhZGRpdGlvbmFsIHNlY3VyaXR5IG1lYXN1cmVzLgorICAgPC9wYXJhPgor CisgICA8cGFyYT4KKyAgICBBIHR5cGljYWwgdXNlIGNhc2UgZm9yIGNvbHVtbiBlbmNyeXB0 aW9uIGlzIHRvIGVuY3J5cHQgc3BlY2lmaWMgdmFsdWVzCisgICAgd2l0aCBhZGRpdGlvbmFs IHNlY3VyaXR5IHJlcXVpcmVtZW50cywgZm9yIGV4YW1wbGUgY3JlZGl0IGNhcmQgbnVtYmVy cy4KKyAgICBUaGlzIGFsbG93cyB5b3UgdG8gc3RvcmUgdGhhdCBzZWN1cml0eS1zZW5zaXRp dmUgZGF0YSB0b2dldGhlciB3aXRoIHRoZQorICAgIHJlc3Qgb2YgeW91ciBkYXRhICh0aHVz IGdldHRpbmcgdmFyaW91cyBiZW5lZml0cywgc3VjaCBhcyByZWZlcmVudGlhbAorICAgIGlu dGVncml0eSwgY29uc2lzdGVudCBiYWNrdXBzKSwgd2hpbGUgZ2l2aW5nIGFjY2VzcyB0byB0 aGF0IGRhdGEgb25seSB0bworICAgIHNwZWNpZmljIGNsaWVudHMgYW5kIHByZXZlbnRpbmcg YWNjaWRlbnRhbCBsZWFrYWdlIG9uIHRoZSBzZXJ2ZXIgc2lkZQorICAgIChzZXJ2ZXIgbG9n cywgZmlsZSBzeXN0ZW0gYmFja3VwcywgZXRjLikuCisgICA8L3BhcmE+CisKKyAgIDxwYXJh PgorICAgIFdoZW4gdXNpbmcgcGFyYW1ldGVycyB0byBwcm92aWRlIHZhbHVlcyB0byBpbnNl cnQgb3Igc2VhcmNoIGJ5LCBjYXJlIG11c3QKKyAgICBiZSB0YWtlbiB0aGF0IHZhbHVlcyBt ZWFudCB0byBiZSBlbmNyeXB0ZWQgYXJlIG5vdCBhY2NpZGVudGFsbHkgbGVha2VkIHRvCisg ICAgdGhlIHNlcnZlci4gIFRoZSBzZXJ2ZXIgd2lsbCB0ZWxsIHRoZSBjbGllbnQgd2hpY2gg cGFyYW1ldGVycyB0byBlbmNyeXB0LAorICAgIGJhc2VkIG9uIHRoZSBzY2hlbWEgZGVmaW5p dGlvbiBvbiB0aGUgc2VydmVyLiAgQnV0IGlmIHRoZSBxdWVyeSBvciBjbGllbnQKKyAgICBh cHBsaWNhdGlvbiBpcyBmYXVsdHksIHZhbHVlcyBtZWFudCB0byBiZSBlbmNyeXB0ZWQgbWln aHQgYWNjaWRlbnRhbGx5IGJlCisgICAgYXNzb2NpYXRlZCB3aXRoIHBhcmFtZXRlcnMgdGhh dCB0aGUgc2VydmVyIGRvZXMgbm90IHRoaW5rIG5lZWQgdG8gYmUKKyAgICBlbmNyeXB0ZWQu ICBBZGRpdGlvbmFsIHJvYnVzdG5lc3MgY2FuIGJlIGFjaGlldmVkIGJ5IGZvcmNpbmcgZW5j cnlwdGlvbiBvZgorICAgIGNlcnRhaW4gcGFyYW1ldGVycyBpbiB0aGUgY2xpZW50IGxpYnJh cnkgKHNlZSBpdHMgZG9jdW1lbnRhdGlvbjsgZm9yCisgICAgPGFwcGxpY2F0aW9uPmxpYnBx PC9hcHBsaWNhdGlvbj4sIHNlZSA8eHJlZgorICAgIGxpbmtlbmQ9ImxpYnBxLWNvbm5lY3Qt Y29sdW1uLWVuY3J5cHRpb24iLz4pLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBD b2x1bW4gZW5jcnlwdGlvbiBjYW5ub3QgaGlkZSB0aGUgZXhpc3RlbmNlIG9yIGFic2VuY2Ug b2YgZGF0YSwgaXQgY2FuCisgICAgb25seSBkaXNndWlzZSB0aGUgcGFydGljdWxhciBkYXRh IHRoYXQgaXMga25vd24gdG8gZXhpc3QuICBGb3IgZXhhbXBsZSwKKyAgICBzdG9yaW5nIGEg Y2xlYXJ0ZXh0IHBlcnNvbiBuYW1lIGFuZCBhbiBlbmNyeXB0ZWQgY3JlZGl0IGNhcmQgbnVt YmVyCisgICAgaW5kaWNhdGVzIHRoYXQgdGhlIHBlcnNvbiBoYXMgYSBjcmVkaXQgY2FyZC4g IFRoYXQgbWlnaHQgbm90IHJldmVhbCB0b28KKyAgICBtdWNoIGlmIHRoZSBkYXRhYmFzZSBp cyBmb3IgYW4gb25saW5lIHN0b3JlIGFuZCB0aGVyZSBpcyBvdGhlciBkYXRhIG5lYXJieQor ICAgIHRoYXQgc2hvd3MgdGhhdCB0aGUgcGVyc29uIGhhcyByZWNlbnRseSBtYWRlIHB1cmNo YXNlcy4gIEJ1dCBpbiBhbm90aGVyCisgICAgZXhhbXBsZSwgc3RvcmluZyBhIGNsZWFydGV4 dCBwZXJzb24gbmFtZSBhbmQgYW4gZW5jcnlwdGVkIGRpYWdub3NpcyBpbiBhCisgICAgbWVk aWNhbCBkYXRhYmFzZSBwcm9iYWJseSBpbmRpY2F0ZXMgdGhhdCB0aGUgcGVyc29uIGhhcyBh IG1lZGljYWwgaXNzdWUuCisgICAgRGVwZW5kaW5nIG9uIHRoZSBjaXJjdW1zdGFuY2VzLCB0 aGF0IG1pZ2h0IG5vdCBieSBpdHNlbGYgYmUgc3VmZmljaWVudAorICAgIHNlY3VyaXR5Lgor ICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBFbmNyeXB0aW9uIGNhbm5vdCBjb21wbGV0 ZWx5IGhpZGUgdGhlIGxlbmd0aCBvZiB2YWx1ZXMuICBUaGUgZW5jcnlwdGlvbgorICAgIG1l dGhvZHMgd2lsbCBwYWQgdmFsdWVzIHRvIG11bHRpcGxlcyBvZiB0aGUgdW5kZXJseWluZyBj aXBoZXIncyBibG9jayBzaXplCisgICAgKHVzdWFsbHkgMTYgYnl0ZXMpLCBzbyBzb21lIGxl bmd0aCBkaWZmZXJlbmNlcyB3aWxsIGJlIHVuaWZpZWQgdGhpcyB3YXkuCisgICAgVGhlcmUg aXMgbm8gY29uY2VybiBpZiBhbGwgdmFsdWVzIGFyZSBvZiB0aGUgc2FtZSBsZW5ndGgsIGJ1 dCBpZiB0aGVyZSBhcmUKKyAgICBzaWduZmljYW50IGxlbmd0aCBkaWZmZXJlbmNlcyBiZXR3 ZWVuIHZhbGlkIHZhbHVlcyBhbmQgdGhhdCBsZW5ndGgKKyAgICBpbmZvcm1hdGlvbiBpcyBz ZWN1cml0eS1zZW5zaXRpdmUsIHRoZW4gYXBwbGljYXRpb24tc3BlY2lmaWMgd29ya2Fyb3Vu ZHMKKyAgICBzdWNoIGFzIHBhZGRpbmcgd291bGQgbmVlZCB0byBiZSBhcHBsaWVkLiAgSG93 IHRvIGRvIHRoYXQgc2VjdXJlbHkgaXMKKyAgICBiZXlvbmQgdGhlIHNjb3BlIG9mIHRoaXMg bWFudWFsLiAgTm90ZSB0aGF0IGNvbHVtbiBlbmNyeXB0aW9uIGlzIGFwcGxpZWQKKyAgICB0 byB0aGUgdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3RvcmVkIHZhbHVlLCBzbyBsZW5n dGggZGlmZmVyZW5jZXMgY2FuCisgICAgYmUgbGVha2VkIGV2ZW4gZm9yIGZpeGVkLWxlbmd0 aCBjb2x1bW4gdHlwZXMgKGUuZy4gIDx0eXBlPmJpZ2ludDwvdHlwZT4sCisgICAgd2hvc2Ug bGFyZ2VzdCBkZWNpbWFsIHJlcHJlc2VudGF0aW9uIGlzIGxvbmdlciB0aGFuIDE2IGJ5dGVz KS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQ29sdW1uIGVuY3J5cHRpb24gcHJv dmlkZXMgb25seSBwYXJ0aWFsIHByb3RlY3Rpb24gYWdhaW5zdCBhIG1hbGljaW91cworICAg IHVzZXIgd2l0aCB3cml0ZSBhY2Nlc3MgdG8gdGhlIHRhYmxlLiAgT25jZSBlbmNyeXB0ZWQs IGFueSBtb2RpZmljYXRpb25zIHRvCisgICAgYSBzdG9yZWQgdmFsdWUgb24gdGhlIHNlcnZl ciBzaWRlIHdpbGwgY2F1c2UgYSBkZWNyeXB0aW9uIGZhaWx1cmUgb24gdGhlCisgICAgY2xp ZW50LiAgSG93ZXZlciwgYSB1c2VyIHdpdGggd3JpdGUgYWNjZXNzIGNhbiBzdGlsbCBmcmVl bHkgc3dhcCBlbmNyeXB0ZWQKKyAgICB2YWx1ZXMgYmV0d2VlbiByb3dzIG9yIGNvbHVtbnMg KG9yIGV2ZW4gc2VwYXJhdGUgZGF0YWJhc2UgY2x1c3RlcnMpIGFzCisgICAgbG9uZyBhcyB0 aGV5IHdlcmUgZW5jcnlwdGVkIHdpdGggdGhlIHNhbWUga2V5LiAgQXR0YWNrZXJzIGNhbiBh bHNvIHJlbW92ZQorICAgIHZhbHVlcyBieSByZXBsYWNpbmcgdGhlbSB3aXRoIG51bGxzLCBh bmQgdXNlcnMgd2l0aCBvd25lcnNoaXAgb3ZlciB0aGUKKyAgICB0YWJsZSBzY2hlbWEgY2Fu IHJlcGxhY2UgZW5jcnlwdGlvbiBrZXlzIG9yIHN0cmlwIGVuY3J5cHRpb24gZnJvbSB0aGUK KyAgICBjb2x1bW5zIGVudGlyZWx5LiAgQWxsIG9mIHRoaXMgaXMgdG8gc2F5OiBQcm9wZXIg YWNjZXNzIGNvbnRyb2wgaXMgc3RpbGwKKyAgICBvZiB2aXRhbCBpbXBvcnRhbmNlIHdoZW4g dXNpbmcgdGhpcyBmZWF0dXJlLgorICAgPC9wYXJhPgorCisgICA8dGlwPgorICAgIDxwYXJh PgorICAgICBPbmUgbWlnaHQgYmUgaW5jbGluZWQgdG8gdGhpbmsgb2YgdGhlIGNsaWVudC1z aWRlIGNvbHVtbi1sZXZlbCBlbmNyeXB0aW9uCisgICAgIGZlYXR1cmUgYXMgYSBtZWNoYW5p c20gZm9yIGFwcGxpY2F0aW9uIHdyaXRlcnMgYW5kIHVzZXJzIHRvIHByb3RlY3QKKyAgICAg dGhlbXNlbHZlcyBhZ2FpbnN0IGFuIDxxdW90ZT5ldmlsIERCQTwvcXVvdGU+LCBidXQgdGhh dCBpcyBub3QgdGhlCisgICAgIGludGVuZGVkIHB1cnBvc2UuICBSYXRoZXIsIGl0IGlzIChh bHNvKSBhIHRvb2wgZm9yIHRoZSBEQkEgdG8gY29udHJvbAorICAgICB3aGljaCBkYXRhIHRo ZXkgZG8gbm90IHdhbnQgKGluIHBsYWludGV4dCkgb24gdGhlIHNlcnZlci4KKyAgICA8L3Bh cmE+CisgICA8L3RpcD4KKworICAgPHBhcmE+CisgICAgV2hlbiB1c2luZyBhc3ltbWV0cmlj IENNSyBhbGdvcml0aG1zIHRvIGVuY3J5cHQgQ0VLcywgdGhlCisgICAgPHF1b3RlPnB1Ymxp YzwvcXVvdGU+IGhhbGYgb2YgdGhlIENNSyBjYW4gYmUgdXNlZCB0byByZXBsYWNlIGV4aXN0 aW5nCisgICAgY29sdW1uIGVuY3J5cHRpb24ga2V5cyB3aXRoIGtleXMgb2YgYW4gYXR0YWNr ZXIncyBjaG9vc2luZywgY29tcHJvbWlzaW5nCisgICAgY29uZmlkZW50aWFsaXR5IGFuZCBh dXRoZW50aWNpdHkgZm9yIHZhbHVlcyBlbmNyeXB0ZWQgdW5kZXIgdGhhdCBDTUsuICBGb3IK KyAgICB0aGlzIHJlYXNvbiwgaXQncyBpbXBvcnRhbnQgdG8ga2VlcCBib3RoIHRoZSBwcml2 YXRlCisgICAgPGVtcGhhc2lzPmFuZDwvZW1waGFzaXM+IHB1YmxpYyBoYWx2ZXMgb2YgdGhl IENNSyBrZXkgcGFpciBjb25maWRlbnRpYWwuCisgICA8L3BhcmE+CisKKyAgIDxub3RlPgor ICAgIDxwYXJhPgorICAgICBTdG9yaW5nIGRhdGEgc3VjaCBjcmVkaXQgY2FyZCBkYXRhLCBt ZWRpY2FsIGRhdGEsIGFuZCBzbyBvbiBpcyB1c3VhbGx5CisgICAgIHN1YmplY3QgdG8gZ292 ZXJubWVudCBvciBpbmR1c3RyeSByZWd1bGF0aW9ucy4gIFRoaXMgc2VjdGlvbiBpcyBub3Qg bWVhbnQKKyAgICAgdG8gcHJvdmlkZSBjb21wbGV0ZSBpbnN0cnVjdGlvbnMgb24gaG93IHRv IGRvIHRoaXMgY29ycmVjdGx5LiAgUGxlYXNlCisgICAgIHNlZWsgYWRkaXRpb25hbCBhZHZp Y2Ugd2hlbiBlbmdhZ2luZyBpbiBzdWNoIHByb2plY3RzLgorICAgIDwvcGFyYT4KKyAgIDwv bm90ZT4KKyAgPC9zZWN0Mj4KKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJkZGwtc3lzdGVt LWNvbHVtbnMiPgogICA8dGl0bGU+U3lzdGVtIENvbHVtbnM8L3RpdGxlPgogCkBAIC0xOTg1 LDYgKzI0MTksMTQgQEAgPHRpdGxlPlByaXZpbGVnZXM8L3RpdGxlPgogICAgICAgIHNlcnZl ci4gIEdyYW50ZWVzIG1heSBhbHNvIGNyZWF0ZSwgYWx0ZXIsIG9yIGRyb3AgdGhlaXIgb3du IHVzZXIKICAgICAgICBtYXBwaW5ncyBhc3NvY2lhdGVkIHdpdGggdGhhdCBzZXJ2ZXIuCiAg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBGb3IgY29sdW1uIG1hc3RlciBr ZXlzLCBhbGxvd3MgdGhlIGNyZWF0aW9uIG9mIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMKKyAg ICAgICB1c2luZyB0aGUgbWFzdGVyIGtleS4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIEZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzLCBhbGxvd3MgdGhlIHVzZSBv ZiB0aGUga2V5IGluIHRoZSBjcmVhdGlvbgorICAgICAgIG9mIHRhYmxlIGNvbHVtbnMuCisg ICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAK QEAgLTIxNTEsNiArMjU5Myw4IEBAIDx0aXRsZT5BQ0wgUHJpdmlsZWdlIEFiYnJldmlhdGlv bnM8L3RpdGxlPgogICAgICAgPGVudHJ5PjxsaXRlcmFsPlVTQUdFPC9saXRlcmFsPjwvZW50 cnk+CiAgICAgICA8ZW50cnk+PGxpdGVyYWw+VTwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAg PGVudHJ5PgorICAgICAgIDxsaXRlcmFsPkNPTFVNTiBFTkNSWVBUSU9OIEtFWTwvbGl0ZXJh bD4sCisgICAgICAgPGxpdGVyYWw+Q09MVU1OIE1BU1RFUiBLRVk8L2xpdGVyYWw+LAogICAg ICAgIDxsaXRlcmFsPkRPTUFJTjwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+Rk9SRUlH TiBEQVRBIFdSQVBQRVI8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPkZPUkVJR04gU0VS VkVSPC9saXRlcmFsPiwKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9k b2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmluZGV4IDBjYmRmNjM2MzIuLjEzN2MwZTM2NmYgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1 bmMuc2dtbApAQCAtMjMzNDksNiArMjMzNDksMzIgQEAgPHRpdGxlPlNjaGVtYSBWaXNpYmls aXR5IElucXVpcnkgRnVuY3Rpb25zPC90aXRsZT4KICAgICAgPC90aGVhZD4KIAogICAgICA8 dGJvZHk+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgIDxpbmRleHRlcm0+ CisgICAgICAgICA8cHJpbWFyeT5wZ19jZWtfaXNfdmlzaWJsZTwvcHJpbWFyeT4KKyAgICAg ICAgPC9pbmRleHRlcm0+CisgICAgICAgIDxmdW5jdGlvbj5wZ19jZWtfaXNfdmlzaWJsZTwv ZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5jZWs8L3BhcmFtZXRlcj4gPHR5cGU+b2lkPC90eXBl PiApCisgICAgICAgIDxyZXR1cm52YWx1ZT5ib29sZWFuPC9yZXR1cm52YWx1ZT4KKyAgICAg ICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIElzIGNvbHVtbiBlbmNyeXB0aW9u IGtleSB2aXNpYmxlIGluIHNlYXJjaCBwYXRoPworICAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNf dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGlu ZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5PnBnX2Nta19pc192aXNpYmxlPC9wcmltYXJ5 PgorICAgICAgICA8L2luZGV4dGVybT4KKyAgICAgICAgPGZ1bmN0aW9uPnBnX2Nta19pc192 aXNpYmxlPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPmNtazwvcGFyYW1ldGVyPiA8dHlwZT5v aWQ8L3R5cGU+ICkKKyAgICAgICAgPHJldHVybnZhbHVlPmJvb2xlYW48L3JldHVybnZhbHVl PgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSXMgY29sdW1uIG1h c3RlciBrZXkgdmlzaWJsZSBpbiBzZWFyY2ggcGF0aD8KKyAgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgIDwvcm93PgorCiAgICAgICA8cm93PgogICAgICAgIDxlbnRyeSByb2xlPSJm dW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CiAgICAgICAg IDxpbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCBi L2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCmluZGV4IDdjMDFhNTQxZmUuLjgxODAzOGQ4 NjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9nbG9zc2FyeS5zZ21sCkBAIC0zODksNiArMzg5LDMyIEBAIDx0aXRsZT5HbG9z c2FyeTwvdGl0bGU+CiAgICA8L2dsb3NzZGVmPgogICA8L2dsb3NzZW50cnk+CiAKKyAgPGds b3NzZW50cnkgaWQ9Imdsb3NzYXJ5LWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgICA8Z2xv c3N0ZXJtPkNvbHVtbiBlbmNyeXB0aW9uIGtleTwvZ2xvc3N0ZXJtPgorICAgPGdsb3NzZGVm PgorICAgIDxwYXJhPgorICAgICBBIGNyeXB0b2dyYXBoaWMga2V5IHVzZWQgdG8gZW5jcnlw dCBjb2x1bW4gdmFsdWVzIHdoZW4gdXNpbmcgYXV0b21hdGljCisgICAgIGNsaWVudC1zaWRl IGNvbHVtbi1sZXZlbCBlbmNyeXB0aW9uICg8eHJlZgorICAgICBsaW5rZW5kPSJkZGwtY29s dW1uLWVuY3J5cHRpb24iLz4pLiAgQ29sdW1uIGVuY3J5cHRpb24ga2V5cyBhcmUgc3RvcmVk IGluCisgICAgIHRoZSBkYXRhYmFzZSBlbmNyeXB0ZWQgYnkgYW5vdGhlciBrZXksIHRoZSA8 Z2xvc3N0ZXJtCisgICAgIGxpbmtlbmQ9Imdsb3NzYXJ5LWNvbHVtbi1tYXN0ZXIta2V5Ij5j b2x1bW4gbWFzdGVyIGtleTwvZ2xvc3N0ZXJtPi4KKyAgICA8L3BhcmE+CisgICA8L2dsb3Nz ZGVmPgorICA8L2dsb3NzZW50cnk+CisKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LWNv bHVtbi1tYXN0ZXIta2V5Ij4KKyAgIDxnbG9zc3Rlcm0+Q29sdW1uIG1hc3RlciBrZXk8L2ds b3NzdGVybT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSBjcnlwdG9ncmFw aGljIGtleSB1c2VkIHRvIGVuY3J5cHQgPGdsb3NzdGVybQorICAgICBsaW5rZW5kPSJnbG9z c2FyeS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPmNvbHVtbiBlbmNyeXB0aW9uCisgICAgIGtl eXM8L2dsb3NzdGVybT4uICAoU28gdGhlIGNvbHVtbiBtYXN0ZXIga2V5IGlzIGEgPGZpcnN0 dGVybT5rZXkKKyAgICAgZW5jcnlwdGlvbiBrZXk8L2ZpcnN0dGVybT4uKSAgQ29sdW1uIG1h c3RlciBrZXlzIGFyZSBzdG9yZWQgb3V0c2lkZSB0aGUKKyAgICAgZGF0YWJhc2Ugc3lzdGVt LCBmb3IgZXhhbXBsZSBpbiBhIGtleSBtYW5hZ2VtZW50IHN5c3RlbS4KKyAgICA8L3BhcmE+ CisgICA8L2dsb3NzZGVmPgorICA8L2dsb3NzZW50cnk+CisKICAgPGdsb3NzZW50cnkgaWQ9 Imdsb3NzYXJ5LWNvbW1pdCI+CiAgICA8Z2xvc3N0ZXJtPkNvbW1pdDwvZ2xvc3N0ZXJtPgog ICAgPGdsb3NzZGVmPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwgYi9k b2Mvc3JjL3NnbWwvbGlicHEuc2dtbAppbmRleCAwZTdhZTcwYzcwLi5kOTA2OWU4OTdmIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv bGlicHEuc2dtbApAQCAtMTk2NCw2ICsxOTY0LDE0MSBAQCA8dGl0bGU+UGFyYW1ldGVyIEtl eSBXb3JkczwvdGl0bGU+CiAgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAg ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtY29u bmVjdC1jb2x1bW4tZW5jcnlwdGlvbiIgeHJlZmxhYmVsPSJjb2x1bW5fZW5jcnlwdGlvbiI+ CisgICAgICA8dGVybT48bGl0ZXJhbD5jb2x1bW5fZW5jcnlwdGlvbjwvbGl0ZXJhbD48L3Rl cm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIElmIHNldCB0 byA8bGl0ZXJhbD5vbjwvbGl0ZXJhbD4sIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+LCBvcgor ICAgICAgICA8bGl0ZXJhbD4xPC9saXRlcmFsPiwgdGhpcyBlbmFibGVzIGF1dG9tYXRpYyBj bGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwKKyAgICAgICAgZW5jcnlwdGlvbiBmb3IgdGhlIGNv bm5lY3Rpb24uICBJZiBlbmNyeXB0ZWQgY29sdW1ucyBhcmUgcXVlcmllZCBhbmQKKyAgICAg ICAgdGhpcyBpcyBub3QgZW5hYmxlZCwgdGhlIGVuY3J5cHRlZCB2YWx1ZXMgYXJlIHJldHVy bmVkLiAgU2VlIDx4cmVmCisgICAgICAgIGxpbmtlbmQ9ImRkbC1jb2x1bW4tZW5jcnlwdGlv biIvPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzCisgICAgICAgIGZlYXR1cmUu CisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtY29ubmVjdC1jbWtsb29rdXAi IHhyZWZsYWJlbD0iY21rbG9va3VwIj4KKyAgICAgIDx0ZXJtPjxsaXRlcmFsPmNta2xvb2t1 cDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+Cisg ICAgICAgIFRoaXMgc3BlY2lmaWVzIGhvdyBsaWJwcSBzaG91bGQgbG9vayB1cCBjb2x1bW4g bWFzdGVyIGtleXMgKENNS3MpIGluCisgICAgICAgIG9yZGVyIHRvIGRlY3J5cHQgdGhlIGNv bHVtbiBlbmNyeXB0aW9uIGtleXMgKENFS3MpLgorICAgICAgICBUaGUgdmFsdWUgaXMgYSBs aXN0IG9mIDxsaXRlcmFsPmtleT12YWx1ZTwvbGl0ZXJhbD4gZW50cmllcyBzZXBhcmF0ZWQK KyAgICAgICAgYnkgc2VtaWNvbG9ucy4gIEVhY2gga2V5IGlzIHRoZSBuYW1lIG9mIGEga2V5 IHJlYWxtLCBvcgorICAgICAgICA8bGl0ZXJhbD4qPC9saXRlcmFsPiB0byBtYXRjaCBhbGwg cmVhbG1zLiAgVGhlIHZhbHVlIGlzIGEKKyAgICAgICAgPGxpdGVyYWw+c2NoZW1lOmRhdGE8 L2xpdGVyYWw+IHNwZWNpZmljYXRpb24uICBUaGUgc2NoZW1lIHNwZWNpZmllcworICAgICAg ICB0aGUgbWV0aG9kIHRvIGxvb2sgdXAgdGhlIGtleSwgdGhlIHJlbWFpbmluZyBkYXRhIGlz IHNwZWNpZmljIHRvIHRoZQorICAgICAgICBzY2hlbWUuICBQbGFjZWhvbGRlcnMgYXJlIHJl cGxhY2VkIGluIHRoZSByZW1haW5pbmcgZGF0YSBhcyBmb2xsb3dzOgorCisgICAgICAgIDx2 YXJpYWJsZWxpc3Q+CisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJt PjxsaXRlcmFsPiVhPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgVGhlIENNSyBhbGdvcml0aG0gbmFtZSAo c2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNtay10YWJsZSIvPikKKyAgICAgICAgICAg PC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJh bD4lajwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAg ICA8cGFyYT4KKyAgICAgICAgICAgIFRoZSBDTUsgYWxnb3JpdGhtIG5hbWUgaW4gSlNPTiBX ZWIgQWxnb3JpdGhtcyBmb3JtYXQgKHNlZSA8eHJlZgorICAgICAgICAgICAgbGlua2VuZD0i cHJvdG9jb2wtY21rLXRhYmxlIi8+KS4gIFRoaXMgaXMgdXNlZnVsIGZvciBpbnRlcmZhY2lu ZworICAgICAgICAgICAgd2l0aCBzb21lIGtleSBtYW5hZ2VtZW50IHN5c3RlbXMgdGhhdCB1 c2UgdGhlc2UgbmFtZXMuCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3Rp dGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2YXJsaXN0ZW50 cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+JWs8L2xpdGVyYWw+PC90ZXJtPgorICAg ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBUaGUg Q01LIGtleSBuYW1lCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVt PgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+JXA8L2xpdGVyYWw+PC90ZXJtPgorICAgICAg ICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBUaGUgbmFt ZSBvZiBhIHRlbXBvcmFyeSBmaWxlIHdpdGggdGhlIGVuY3J5cHRlZCBDRUsgZGF0YSAob25s eSBmb3IKKyAgICAgICAgICAgIHRoZSA8bGl0ZXJhbD5ydW48L2xpdGVyYWw+IHNjaGVtZSkK KyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8 dGVybT48bGl0ZXJhbD4lcjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVt PgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFRoZSByZWFsbSBuYW1lCisgICAg ICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJs aXN0ZW50cnk+CisgICAgICAgIDwvdmFyaWFibGVsaXN0PgorICAgICAgIDwvcGFyYT4KKwor ICAgICAgIDxwYXJhPgorICAgICAgICBBdmFpbGFibGUgc2NoZW1lcyBhcmU6CisgICAgICAg IDx2YXJpYWJsZWxpc3Q+CisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0 ZXJtPjxsaXRlcmFsPmZpbGU8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRl bT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBMb2FkIHRoZSBrZXkgbWF0ZXJp YWwgZnJvbSBhIGZpbGUuICBUaGUgcmVtYWluaW5nIGRhdGEgaXMgdGhlIGZpbGUKKyAgICAg ICAgICAgIG5hbWUuICBVc2UgdGhpcyBpZiB0aGUgQ01LcyBhcmUga2VwdCBpbiBhIGZpbGUg b24gdGhlIGZpbGUgc3lzdGVtLgorICAgICAgICAgICA8L3BhcmE+CisKKyAgICAgICAgICAg PHBhcmE+CisgICAgICAgICAgICBUaGUgZmlsZSBzY2hlbWUgZG9lcyBub3Qgc3VwcG9ydCB0 aGUgQ01LIGFsZ29yaXRobQorICAgICAgICAgICAgPGxpdGVyYWw+dW5zcGVjaWZpZWQ8L2xp dGVyYWw+LgorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAg ICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAg ICAgICAgIDx0ZXJtPjxsaXRlcmFsPnJ1bjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAg PGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFJ1biB0aGUgc3Bl Y2lmaWVkIGNvbW1hbmQgdG8gZGVjcnlwdCB0aGUgQ0VLLiAgVGhlIHJlbWFpbmluZyBkYXRh CisgICAgICAgICAgICBpcyBhIHNoZWxsIGNvbW1hbmQuICBVc2UgdGhpcyB3aXRoIGtleSBt YW5hZ2VtZW50IHN5c3RlbXMgdGhhdAorICAgICAgICAgICAgcGVyZm9ybSB0aGUgZGVjcnlw dGlvbiB0aGVtc2VsdmVzLiAgVGhlIGNvbW1hbmQgbXVzdCBwcmludCB0aGUKKyAgICAgICAg ICAgIGRlY3J5cHRlZCBwbGFpbnRleHQgb24gdGhlIHN0YW5kYXJkIG91dHB1dC4KKyAgICAg ICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxp c3RlbnRyeT4KKyAgICAgICAgPC92YXJpYWJsZWxpc3Q+CisgICAgICAgPC9wYXJhPgorCisg ICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGVtcHR5LgorICAg ICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBFeGFtcGxlOgorPHByb2dy YW1saXN0aW5nPgorY21rbG9va3VwPSJyMT1maWxlOi9zb21lL3doZXJlL3NlY3JldHMvJWsu cGVtOyo9ZmlsZTovZWxzZS93aGVyZS8lci8lay5wZW0iCis8L3Byb2dyYW1saXN0aW5nPgor ICAgICAgICBUaGlzIHNwZWNpZmljYXRpb24gc2F5cywgZm9yIGtleXMgaW4gcmVhbG0gPHF1 b3RlPnIxPC9xdW90ZT4sIGxvYWQKKyAgICAgICAgdGhlbSBmcm9tIHRoZSBzcGVjaWZpZWQg ZmlsZSwgcmVwbGFjaW5nIDxsaXRlcmFsPiVrPC9saXRlcmFsPiBieSB0aGUKKyAgICAgICAg a2V5IG5hbWUuICBGb3Iga2V5cyBpbiBvdGhlciByZWFsbXMsIGxvYWQgdGhlbSBmcm9tIHRo ZSBmaWxlLAorICAgICAgICByZXBsYWNpbmcgcmVhbG0gYW5kIGtleSBuYW1lcyBhcyBzcGVj aWZpZWQuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEFuIGV4 YW1wbGUgZm9yIGludGVyYWN0aW5nIHdpdGggYSAoaHlwb3RoZXRpY2FsKSBrZXkgbWFuYWdl bWVudAorICAgICAgICBzeXN0ZW06Cis8cHJvZ3JhbWxpc3Rpbmc+CitjbWtsb29rdXA9Iio9 cnVuOmFjbWVrbXMgZGVjcnlwdCAtLWtleSAlayAtLWFsZyAlYSAtLWluZmlsZSAnJXAnIgor PC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgor ICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgIDwvcGFyYT4K ICAgPC9zZWN0Mj4KQEAgLTI4NjQsNiArMjk5OSwzMiBAQCA8dGl0bGU+TWFpbiBGdW5jdGlv bnM8L3RpdGxlPgogICAgICAgICAgICAgPGZpbGVuYW1lPnNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9udW1lcmljLmM6Om51bWVyaWNfc2VuZCgpPC9maWxlbmFtZT4gYW5kCiAgICAgICAgICAg ICA8ZmlsZW5hbWU+c3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYzo6bnVtZXJpY19y ZWN2KCk8L2ZpbGVuYW1lPi4KICAgICAgICAgICAgPC9wYXJhPgorCisgICAgICAgICAgIDxw YXJhPgorICAgICAgICAgICAgV2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkLCB0 aGUgc2Vjb25kLWxlYXN0LXNpZ25pZmljYW50CisgICAgICAgICAgICBoYWxmLWJ5dGUgb2Yg dGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHdoZXRoZXIgZW5jcnlwdGlvbiBzaG91bGQgYmUK KyAgICAgICAgICAgIGZvcmNlZCBmb3IgYSBwYXJhbWV0ZXIuICBTZXQgdGhpcyBoYWxmLWJ5 dGUgdG8gb25lIHRvIGZvcmNlCisgICAgICAgICAgICBlbmNyeXB0aW9uLiAgRm9yIGV4YW1w bGUsIHVzZSB0aGUgQyBjb2RlIGxpdGVyYWwKKyAgICAgICAgICAgIDxsaXRlcmFsPjB4MTA8 L2xpdGVyYWw+IHRvIHNwZWNpZnkgdGV4dCBmb3JtYXQgd2l0aCBmb3JjZWQKKyAgICAgICAg ICAgIGVuY3J5cHRpb24uICBJZiB0aGUgYXJyYXkgcG9pbnRlciBpcyBudWxsIHRoZW4gZW5j cnlwdGlvbiBpcyBub3QKKyAgICAgICAgICAgIGZvcmNlZCBmb3IgYW55IHBhcmFtZXRlci4K KyAgICAgICAgICAgPC9wYXJhPgorCisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAg UGFyYW1ldGVycyBjb3JyZXNwb25kaW5nIHRvIGVuY3J5cHRlZCBjb2x1bW5zIG11c3QgYmUg cGFzc2VkIGluCisgICAgICAgICAgICB0ZXh0IGZvcm1hdC4gIFNwZWNpZnlpbmcgYmluYXJ5 IGZvcm1hdCBmb3Igc3VjaCBhIHBhcmFtZXRlciB3aWxsCisgICAgICAgICAgICByZXN1bHQg aW4gYW4gZXJyb3IuCisgICAgICAgICAgIDwvcGFyYT4KKworICAgICAgICAgICA8cGFyYT4K KyAgICAgICAgICAgIElmIGVuY3J5cHRpb24gaXMgZm9yY2VkIGZvciBhIHBhcmFtZXRlciBi dXQgdGhlIHBhcmFtZXRlciBkb2VzIG5vdAorICAgICAgICAgICAgY29ycmVzcG9uZCB0byBh biBlbmNyeXB0ZWQgY29sdW1uIG9uIHRoZSBzZXJ2ZXIsIHRoZW4gdGhlIGNhbGwKKyAgICAg ICAgICAgIHdpbGwgZmFpbCBhbmQgdGhlIHBhcmFtZXRlciB3aWxsIG5vdCBiZSBzZW50LiAg VGhpcyBjYW4gYmUgdXNlZAorICAgICAgICAgICAgZm9yIGFkZGl0aW9uYWwgc2VjdXJpdHkg YWdhaW5zdCBhIGNvbXByb21pc2VkIHNlcnZlci4gIChUaGUKKyAgICAgICAgICAgIGRyYXdi YWNrIGlzIHRoYXQgYXBwbGljYXRpb24gY29kZSB0aGVuIG5lZWRzIHRvIGJlIGtlcHQgdXAg dG8gZGF0ZQorICAgICAgICAgICAgd2l0aCBrbm93bGVkZ2UgYWJvdXQgd2hpY2ggY29sdW1u cyBhcmUgZW5jcnlwdGVkIHJhdGhlciB0aGFuCisgICAgICAgICAgICBsZXR0aW5nIHRoZSBz ZXJ2ZXIgc3BlY2lmeSB0aGlzLikKKyAgICAgICAgICAgPC9wYXJhPgogICAgICAgICAgIDwv bGlzdGl0ZW0+CiAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIApAQCAtMjg3Niw2ICszMDM3 LDEzIEBAIDx0aXRsZT5NYWluIEZ1bmN0aW9uczwvdGl0bGU+CiAgICAgICAgICAgICB0byBv YnRhaW4gZGlmZmVyZW50IHJlc3VsdCBjb2x1bW5zIGluIGRpZmZlcmVudCBmb3JtYXRzLAog ICAgICAgICAgICAgYWx0aG91Z2ggdGhhdCBpcyBwb3NzaWJsZSBpbiB0aGUgdW5kZXJseWlu ZyBwcm90b2NvbC4pCiAgICAgICAgICAgIDwvcGFyYT4KKworICAgICAgICAgICA8cGFyYT4K KyAgICAgICAgICAgIElmIGNvbHVtbiBlbmNyeXB0aW9uIGlzIHVzZWQsIHRoZW4gZW5jcnlw dGVkIGNvbHVtbnMgd2lsbCBiZQorICAgICAgICAgICAgcmV0dXJuZWQgaW4gdGV4dCBmb3Jt YXQgaW5kZXBlbmRlbnQgb2YgdGhpcyBzZXR0aW5nLiAgQXBwbGljYXRpb25zCisgICAgICAg ICAgICBjYW4gY2hlY2sgdGhlIGZvcm1hdCBvZiBlYWNoIHJlc3VsdCBjb2x1bW4gd2l0aCA8 eHJlZgorICAgICAgICAgICAgbGlua2VuZD0ibGlicHEtUFFmZm9ybWF0Ii8+IGJlZm9yZSBh Y2Nlc3NpbmcgaXQuCisgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgICA8L2xpc3RpdGVt PgogICAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAgICAgICAgIDwvdmFyaWFibGVsaXN0PgpA QCAtMzAyOCw2ICszMTk2LDQ0IEBAIDx0aXRsZT5NYWluIEZ1bmN0aW9uczwvdGl0bGU+CiAg ICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlz dGVudHJ5IGlkPSJsaWJwcS1QUWV4ZWNQcmVwYXJlZERlc2NyaWJlZCI+CisgICAgICA8dGVy bT48ZnVuY3Rpb24+UFFleGVjUHJlcGFyZWREZXNjcmliZWQ8L2Z1bmN0aW9uPjxpbmRleHRl cm0+PHByaW1hcnk+UFFleGVjUHJlcGFyZWREZXNjcmliZWQ8L3ByaW1hcnk+PC9pbmRleHRl cm0+PC90ZXJtPgorCisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAg IFNlbmRzIGEgcmVxdWVzdCB0byBleGVjdXRlIGEgcHJlcGFyZWQgc3RhdGVtZW50IHdpdGgg Z2l2ZW4KKyAgICAgICAgcGFyYW1ldGVycywgYW5kIHdhaXRzIGZvciB0aGUgcmVzdWx0LCB3 aXRoIHN1cHBvcnQgZm9yIGVuY3J5cHRlZCBjb2x1bW5zLgorPHN5bm9wc2lzPgorUEdyZXN1 bHQgKlBRZXhlY1ByZXBhcmVkRGVzY3JpYmVkKFBHY29ubiAqY29ubiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzdG10TmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgblBhcmFtcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICogY29uc3QgKnBhcmFtVmFsdWVzLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1MZW5n dGhzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFy YW1Gb3JtYXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1 bHRGb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEdyZXN1bHQg KnBhcmFtRGVzYyk7Cis8L3N5bm9wc2lzPgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxw YXJhPgorICAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQcmVwYXJlZERlc2Ny aWJlZCIvPiBpcyBsaWtlIDx4cmVmCisgICAgICAgIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1By ZXBhcmVkIi8+IHdpdGggYWRkaXRpb25hbCBzdXBwb3J0IGZvciBlbmNyeXB0ZWQKKyAgICAg ICAgY29sdW1ucy4gIFRoZSBwYXJhbWV0ZXIgPHBhcmFtZXRlcj5wYXJhbURlc2M8L3BhcmFt ZXRlcj4gbXVzdCBiZSBhCisgICAgICAgIHJlc3VsdCBzZXQgb2J0YWluZWQgZnJvbSA8eHJl ZiBsaW5rZW5kPSJsaWJwcS1QUWRlc2NyaWJlUHJlcGFyZWQiLz4gb24KKyAgICAgICAgdGhl IHNhbWUgcHJlcGFyZWQgc3RhdGVtZW50LgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxw YXJhPgorICAgICAgICBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgdXNlZCBpZiBhIHN0YXRlbWVu dCBwYXJhbWV0ZXIgY29ycmVzcG9uZHMgdG8gYW4KKyAgICAgICAgdW5kZXJseWluZyBlbmNy eXB0ZWQgY29sdW1uLiAgSW4gdGhhdCBzaXR1YXRpb24sIHRoZSBwcmVwYXJlZAorICAgICAg ICBzdGF0ZW1lbnQgbmVlZHMgdG8gYmUgZGVzY3JpYmVkIGZpcnN0IHNvIHRoYXQgbGlicHEg Y2FuIG9idGFpbiB0aGUKKyAgICAgICAgbmVjZXNzYXJ5IGtleSBhbmQgb3RoZXIgaW5mb3Jt YXRpb24gZnJvbSB0aGUgc2VydmVyLiAgV2hlbiB0aGF0IGlzCisgICAgICAgIGRvbmUsIHRo ZSBwYXJhbWV0ZXJzIGNvcnJlc3BvbmRpbmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMgYXJlCisg ICAgICAgIGF1dG9tYXRpY2FsbHkgZW5jcnlwdGVkIGFwcHJvcHJpYXRlbHkgYmVmb3JlIGJl aW5nIHNlbnQgdG8gdGhlIHNlcnZlci4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3Rp dGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVudHJ5IGlkPSJs aWJwcS1QUWRlc2NyaWJlUHJlcGFyZWQiPgogICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRZGVz Y3JpYmVQcmVwYXJlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWRlc2NyaWJl UHJlcGFyZWQ8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgogCkBAIC0zODc4LDYgKzQw ODQsMjggQEAgPHRpdGxlPlJldHJpZXZpbmcgUXVlcnkgUmVzdWx0IEluZm9ybWF0aW9uPC90 aXRsZT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2 YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRZmlzZW5jcnlwdGVkIj4KKyAgICAgPHRlcm0+PGZ1 bmN0aW9uPlBRZmlzZW5jcnlwdGVkPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBR ZmlzZW5jcnlwdGVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKworICAgICA8bGlz dGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBSZXR1cm5zIHdoZXRoZXIgdGhlIHZhbHVl IGZvciB0aGUgZ2l2ZW4gY29sdW1uIGNhbWUgZnJvbSBhbiBlbmNyeXB0ZWQKKyAgICAgICBj b2x1bW4uICBDb2x1bW4gbnVtYmVycyBzdGFydCBhdCAwLgorPHN5bm9wc2lzPgoraW50IFBR ZmlzZW5jcnlwdGVkKGNvbnN0IFBHcmVzdWx0ICpyZXMsCisgICAgICAgICAgICAgICAgICAg aW50IGNvbHVtbl9udW1iZXIpOworPC9zeW5vcHNpcz4KKyAgICAgIDwvcGFyYT4KKworICAg ICAgPHBhcmE+CisgICAgICAgRW5jcnlwdGVkIGNvbHVtbiB2YWx1ZXMgYXJlIGF1dG9tYXRp Y2FsbHkgZGVjcnlwdGVkLCBzbyB0aGlzIGZ1bmN0aW9uCisgICAgICAgaXMgbm90IG5lY2Vz c2FyeSB0byBhY2Nlc3MgdGhlIGNvbHVtbiB2YWx1ZS4gIEl0IGNhbiBiZSB1c2VkIGZvciBl eHRyYQorICAgICAgIHNlY3VyaXR5IHRvIGNoZWNrIHdoZXRoZXIgdGhlIHZhbHVlIHdhcyBz dG9yZWQgZW5jcnlwdGVkIHdoZW4gb25lCisgICAgICAgdGhvdWdodCBpdCBzaG91bGQgYmUu CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+ CisKICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUWZzaXplIj4KICAgICAgPHRlcm0+ PGZ1bmN0aW9uPlBRZnNpemU8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFmc2l6 ZTwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAKQEAgLTQwNTksNiArNDI4NywzMSBA QCA8dGl0bGU+UmV0cmlldmluZyBRdWVyeSBSZXN1bHQgSW5mb3JtYXRpb248L3RpdGxlPgog ICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgPHZhcmxpc3Rl bnRyeSBpZD0ibGlicHEtUFFwYXJhbWlzZW5jcnlwdGVkIj4KKyAgICAgPHRlcm0+PGZ1bmN0 aW9uPlBRcGFyYW1pc2VuY3J5cHRlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5Q UXBhcmFtaXNlbmNyeXB0ZWQ8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorCisgICAg IDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJldHVybnMgd2hldGhlciB0aGUg dmFsdWUgZm9yIHRoZSBnaXZlbiBwYXJhbWV0ZXIgaXMgZGVzdGluZWQgZm9yIGFuCisgICAg ICAgZW5jcnlwdGVkIGNvbHVtbi4gIFBhcmFtZXRlciBudW1iZXJzIHN0YXJ0IGF0IDAuCis8 c3lub3BzaXM+CitpbnQgUFFwYXJhbWlzZW5jcnlwdGVkKGNvbnN0IFBHcmVzdWx0ICpyZXMs IGludCBwYXJhbV9udW1iZXIpOworPC9zeW5vcHNpcz4KKyAgICAgIDwvcGFyYT4KKworICAg ICAgPHBhcmE+CisgICAgICAgVmFsdWVzIGZvciBwYXJhbWV0ZXJzIGRlc3RpbmVkIGZvciBl bmNyeXB0ZWQgY29sdW1ucyBhcmUgYXV0b21hdGljYWxseQorICAgICAgIGVuY3J5cHRlZCwg c28gdGhpcyBmdW5jdGlvbiBpcyBub3QgbmVjZXNzYXJ5IHRvIHByZXBhcmUgdGhlIHBhcmFt ZXRlcgorICAgICAgIHZhbHVlLiAgSXQgY2FuIGJlIHVzZWQgZm9yIGV4dHJhIHNlY3VyaXR5 IHRvIGNoZWNrIHdoZXRoZXIgdGhlIHZhbHVlCisgICAgICAgd2lsbCBiZSBzdG9yZWQgZW5j cnlwdGVkIHdoZW4gb25lIHRob3VnaHQgaXQgc2hvdWxkIGJlLiAgKEJ1dCBzZWUgYWxzbwor ICAgICAgIGF0IDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkRGVzY3JpYmVk Ii8+IGZvciBhbm90aGVyIHdheSB0byBkbyB0aGF0LikKKyAgICAgICBUaGlzIGZ1bmN0aW9u IGlzIG9ubHkgdXNlZnVsIHdoZW4gaW5zcGVjdGluZyB0aGUgcmVzdWx0IG9mIDx4cmVmCisg ICAgICAgbGlua2VuZD0ibGlicHEtUFFkZXNjcmliZVByZXBhcmVkIi8+LiAgRm9yIG90aGVy IHR5cGVzIG9mIHJlc3VsdHMgaXQKKyAgICAgICB3aWxsIHJldHVybiBmYWxzZS4KKyAgICAg IDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAg IDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRcHJpbnQiPgogICAgICA8dGVybT48ZnVuY3Rp b24+UFFwcmludDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUXByaW50PC9wcmlt YXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KIApAQCAtNDU4NCw2ICs0ODM3LDcgQEAgPHRpdGxl PkFzeW5jaHJvbm91cyBDb21tYW5kIFByb2Nlc3Npbmc8L3RpdGxlPgogICAgPHhyZWYgbGlu a2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQYXJhbXMiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJs aWJwcS1QUXNlbmRQcmVwYXJlIi8+LAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5k UXVlcnlQcmVwYXJlZCIvPiwKKyAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5 UHJlcGFyZWREZXNjcmliZWQiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRE ZXNjcmliZVByZXBhcmVkIi8+LCBhbmQKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2Vu ZERlc2NyaWJlUG9ydGFsIi8+LAogICAgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aCA8eHJlZiBs aW5rZW5kPSJsaWJwcS1QUWdldFJlc3VsdCIvPiB0byBkdXBsaWNhdGUKQEAgLTQ1OTEsNiAr NDg0NSw3IEBAIDx0aXRsZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQcm9jZXNzaW5nPC90aXRs ZT4KICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1BhcmFtcyIvPiwKICAgIDx4cmVm IGxpbmtlbmQ9ImxpYnBxLVBRcHJlcGFyZSIvPiwKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBx LVBRZXhlY1ByZXBhcmVkIi8+LAorICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUHJl cGFyZWREZXNjcmliZWQiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWRlc2NyaWJl UHJlcGFyZWQiLz4sIGFuZAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFkZXNjcmliZVBv cnRhbCIvPgogICAgcmVzcGVjdGl2ZWx5LgpAQCAtNDY0Nyw2ICs0OTAyLDEzIEBAIDx0aXRs ZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQcm9jZXNzaW5nPC90aXRsZT4KICAgICAgICA8eHJl ZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQYXJhbXMiLz4sIGl0IGFsbG93cyBvbmx5IG9uZSBj b21tYW5kIGluIHRoZQogICAgICAgIHF1ZXJ5IHN0cmluZy4KICAgICAgIDwvcGFyYT4KKwor ICAgICAgPHBhcmE+CisgICAgICAgSWYgY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZCwg dGhlbiB0aGlzIGZ1bmN0aW9uIGlzIG5vdAorICAgICAgIGFzeW5jaHJvbm91cy4gIFRvIGdl dCBhc3luY2hyb25vdXMgYmVoYXZpb3IsIDx4cmVmCisgICAgICAgbGlua2VuZD0ibGlicHEt UFFzZW5kUHJlcGFyZSIvPiBmb2xsb3dlZCBieSA8eHJlZgorICAgICAgIGxpbmtlbmQ9Imxp YnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQiLz4gc2hvdWxkIGJlIGNhbGxlZCBp bmRpdmlkdWFsbHkuCisgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92 YXJsaXN0ZW50cnk+CiAKQEAgLTQ3MDEsNiArNDk2Myw0NSBAQCA8dGl0bGU+QXN5bmNocm9u b3VzIENvbW1hbmQgUHJvY2Vzc2luZzwvdGl0bGU+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAg PC92YXJsaXN0ZW50cnk+CiAKKyAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUXNlbmRR dWVyeVByZXBhcmVkRGVzY3JpYmVkIj4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRc2VuZFF1 ZXJ5UHJlcGFyZWREZXNjcmliZWQ8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFz ZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJlZDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+ CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgU2VuZHMgYSByZXF1 ZXN0IHRvIGV4ZWN1dGUgYSBwcmVwYXJlZCBzdGF0ZW1lbnQgd2l0aCBnaXZlbgorICAgICAg IHBhcmFtZXRlcnMsIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIHJlc3VsdChzKSwgd2l0aCBz dXBwb3J0IGZvciBlbmNyeXB0ZWQgY29sdW1ucy4KKzxzeW5vcHNpcz4KK2ludCBQUXNlbmRR dWVyeVByZXBhcmVkRGVzY3JpYmVkKFBHY29ubiAqY29ubiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IG5QYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBjaGFyICogY29uc3QgKnBhcmFtVmFsdWVzLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgKnBhcmFtRm9ybWF0cywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHRGb3JtYXQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQR3Jlc3VsdCAqcGFyYW1EZXNjKTsK Kzwvc3lub3BzaXM+CisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIDx4 cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQiLz4gaXMg bGlrZSA8eHJlZgorICAgICAgIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWQi Lz4gd2l0aCBhZGRpdGlvbmFsIHN1cHBvcnQgZm9yIGVuY3J5cHRlZAorICAgICAgIGNvbHVt bnMuICBUaGUgcGFyYW1ldGVyIDxwYXJhbWV0ZXI+cGFyYW1EZXNjPC9wYXJhbWV0ZXI+IG11 c3QgYmUgYQorICAgICAgIHJlc3VsdCBzZXQgb2J0YWluZWQgZnJvbSA8eHJlZiBsaW5rZW5k PSJsaWJwcS1QUXNlbmREZXNjcmliZVByZXBhcmVkIi8+IG9uCisgICAgICAgdGhlIHNhbWUg cHJlcGFyZWQgc3RhdGVtZW50LgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAg ICAgICBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgdXNlZCBpZiBhIHN0YXRlbWVudCBwYXJhbWV0 ZXIgY29ycmVzcG9uZHMgdG8gYW4KKyAgICAgICB1bmRlcmx5aW5nIGVuY3J5cHRlZCBjb2x1 bW4uICBJbiB0aGF0IHNpdHVhdGlvbiwgdGhlIHByZXBhcmVkCisgICAgICAgc3RhdGVtZW50 IG5lZWRzIHRvIGJlIGRlc2NyaWJlZCBmaXJzdCBzbyB0aGF0IGxpYnBxIGNhbiBvYnRhaW4g dGhlCisgICAgICAgbmVjZXNzYXJ5IGtleSBhbmQgb3RoZXIgaW5mb3JtYXRpb24gZnJvbSB0 aGUgc2VydmVyLiAgV2hlbiB0aGF0IGlzCisgICAgICAgZG9uZSwgdGhlIHBhcmFtZXRlcnMg Y29ycmVzcG9uZGluZyB0byBlbmNyeXB0ZWQgY29sdW1ucyBhcmUKKyAgICAgICBhdXRvbWF0 aWNhbGx5IGVuY3J5cHRlZCBhcHByb3ByaWF0ZWx5IGJlZm9yZSBiZWluZyBzZW50IHRvIHRo ZSBzZXJ2ZXIuCisgICAgICAgU2VlIGFsc28gdW5kZXIgPHhyZWYgbGlua2VuZD0ibGlicHEt UFFleGVjUHJlcGFyZWREZXNjcmliZWQiLz4uCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlz dGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICA8dmFybGlzdGVudHJ5IGlkPSJs aWJwcS1QUXNlbmREZXNjcmliZVByZXBhcmVkIj4KICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBR c2VuZERlc2NyaWJlUHJlcGFyZWQ8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFz ZW5kRGVzY3JpYmVQcmVwYXJlZDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAKQEAg LTQ3NTEsNiArNTA1Miw3IEBAIDx0aXRsZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQcm9jZXNz aW5nPC90aXRsZT4KICAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVBh cmFtcyIvPiwKICAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRQcmVwYXJlIi8+ LAogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWQiLz4s CisgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZERlc2Ny aWJlZCIvPiwKICAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmREZXNjcmliZVBy ZXBhcmVkIi8+LAogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZERlc2NyaWJl UG9ydGFsIi8+LCBvcgogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRcGlwZWxpbmVT eW5jIi8+CkBAIC03Nzg0LDYgKzgwODYsMjYgQEAgPHRpdGxlPkVudmlyb25tZW50IFZhcmlh YmxlczwvdGl0bGU+CiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogCisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgPHByaW1h cnk+PGVudmFyPlBHQ01LTE9PS1VQPC9lbnZhcj48L3ByaW1hcnk+CisgICAgICA8L2luZGV4 dGVybT4KKyAgICAgIDxlbnZhcj5QR0NNS0xPT0tVUDwvZW52YXI+IGJlaGF2ZXMgdGhlIHNh bWUgYXMgdGhlIDx4cmVmCisgICAgICBsaW5rZW5kPSJsaWJwcS1jb25uZWN0LWNta2xvb2t1 cCIvPiBjb25uZWN0aW9uIHBhcmFtZXRlci4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgPGluZGV4dGVybT4K KyAgICAgICA8cHJpbWFyeT48ZW52YXI+UEdDT0xVTU5FTkNSWVBUSU9OPC9lbnZhcj48L3By aW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDxlbnZhcj5QR0NPTFVNTkVOQ1JZ UFRJT048L2VudmFyPiBiZWhhdmVzIHRoZSBzYW1lIGFzIHRoZSA8eHJlZgorICAgICAgbGlu a2VuZD0ibGlicHEtY29ubmVjdC1jb2x1bW4tZW5jcnlwdGlvbiIvPiBjb25uZWN0aW9uIHBh cmFtZXRlci4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKICAgICA8bGlzdGl0 ZW0+CiAgICAgIDxwYXJhPgogICAgICAgPGluZGV4dGVybT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9wcm90b2NvbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwKaW5k ZXggOTNmYzcxNjdkNC4uNTJjMjliZjhkYSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3By b3RvY29sLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwKQEAgLTExMDks NiArMTEwOSw3NiBAQCA8dGl0bGU+UGlwZWxpbmluZzwvdGl0bGU+CiAgICA8L3BhcmE+CiAg IDwvc2VjdDI+CiAKKyAgPHNlY3QyIGlkPSJwcm90b2NvbC1mbG93LWNvbHVtbi1lbmNyeXB0 aW9uIj4KKyAgIDx0aXRsZT5BdXRvbWF0aWMgQ2xpZW50LXNpZGUgQ29sdW1uLWxldmVsIEVu Y3J5cHRpb248L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBBdXRvbWF0aWMgY2xpZW50LXNp ZGUgY29sdW1uLWxldmVsIGVuY3J5cHRpb24gaXMgZW5hYmxlZCBieSBzZW5kaW5nIHRoZQor ICAgIHBhcmFtZXRlciA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRlcmFs PiB3aXRoIGEgdmFsdWUgb2YKKyAgICA8bGl0ZXJhbD4xPC9saXRlcmFsPiBpbiB0aGUgU3Rh cnR1cE1lc3NhZ2UuICBUaGlzIGlzIGEgcHJvdG9jb2wgZXh0ZW5zaW9uCisgICAgdGhhdCBl bmFibGVzIGEgZmV3IGFkZGl0aW9uYWwgcHJvdG9jb2wgbWVzc2FnZXMgYW5kIGFkZHMgYWRk aXRpb25hbCBmaWVsZHMKKyAgICB0byBleGlzdGluZyBwcm90b2NvbCBtZXNzYWdlcy4gIENs aWVudCBkcml2ZXJzIHNob3VsZCBvbmx5IGFjdGl2YXRlIHRoaXMKKyAgICBwcm90b2NvbCBl eHRlbnNpb24gd2hlbiByZXF1ZXN0ZWQgYnkgdGhlIHVzZXIsIGZvciBleGFtcGxlIHRocm91 Z2ggYQorICAgIGNvbm5lY3Rpb24gcGFyYW1ldGVyLgorICAgPC9wYXJhPgorCisgICA8cGFy YT4KKyAgICBXaGVuIGF1dG9tYXRpYyBjbGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwgZW5jcnlw dGlvbiBpcyBlbmFibGVkLCB0aGUKKyAgICBtZXNzYWdlcyBDb2x1bW5NYXN0ZXJLZXkgYW5k IENvbHVtbkVuY3J5cHRpb25LZXkgY2FuIGFwcGVhciBiZWZvcmUKKyAgICBSb3dEZXNjcmlw dGlvbiBhbmQgUGFyYW1ldGVyRGVzY3JpcHRpb24gbWVzc2FnZXMuICBDbGllbnRzIHNob3Vs ZCBjb2xsZWN0CisgICAgdGhlIGluZm9ybWF0aW9uIGluIHRoZXNlIG1lc3NhZ2VzIGFuZCBr ZWVwIHRoZW0gZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUKKyAgICBjb25uZWN0aW9uLiAgQSBz ZXJ2ZXIgaXMgbm90IHJlcXVpcmVkIHRvIHJlc2VuZCB0aGUga2V5IGluZm9ybWF0aW9uIGZv cgorICAgIGVhY2ggc3RhdGVtZW50IGN5Y2xlIGlmIGl0IHdhcyBhbHJlYWR5IHNlbnQgZHVy aW5nIHRoaXMgY29ubmVjdGlvbi4gIElmIGEKKyAgICBzZXJ2ZXIgcmVzZW5kcyBhIGtleSB0 aGF0IHRoZSBjbGllbnQgaGFzIGFscmVhZHkgc3RvcmVkICh0aGF0IGlzLCBhIGtleQorICAg IGhhdmluZyBhbiBJRCBlcXVhbCB0byBvbmUgYWxyZWFkeSBzdG9yZWQpLCB0aGUgbmV3IGlu Zm9ybWF0aW9uIHNob3VsZAorICAgIHJlcGxhY2UgdGhlIG9sZC4gIChUaGlzIGNvdWxkIGhh cHBlbiwgZm9yIGV4YW1wbGUsIGlmIHRoZSBrZXkgd2FzIGFsdGVyZWQKKyAgICBieSBzZXJ2 ZXItc2lkZSBEREwgY29tbWFuZHMuKQorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBB IGNsaWVudCBzdXBwb3J0aW5nIGF1dG9tYXRpYyBjb2x1bW4tbGV2ZWwgZW5jcnlwdGlvbiBz aG91bGQgYXV0b21hdGljYWxseQorICAgIGRlY3J5cHQgdGhlIGNvbHVtbiB2YWx1ZSBmaWVs ZHMgb2YgRGF0YVJvdyBtZXNzYWdlcyBjb3JyZXNwb25kaW5nIHRvCisgICAgZW5jcnlwdGVk IGNvbHVtbnMsIGFuZCBpdCBzaG91bGQgYXV0b21hdGljYWxseSBlbmNyeXB0IHRoZSBwYXJh bWV0ZXIgdmFsdWUKKyAgICBmaWVsZHMgb2YgQmluZCBtZXNzYWdlcyBjb3JyZXNwb25kaW5n IHRvIGVuY3J5cHRlZCBjb2x1bW5zLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBX aGVuIGNvbHVtbiBlbmNyeXB0aW9uIGlzIHVzZWQsIGZvcm1hdCBzcGVjaWZpY2F0aW9ucyAo dGV4dC9iaW5hcnkpIGluIHRoZQorICAgIHZhcmlvdXMgcHJvdG9jb2wgbWVzc2FnZXMgYXBw bHkgdG8gdGhlIGNpcGhlcnRleHQuICBUaGUgcGxhaW50ZXh0IGluc2lkZQorICAgIHRoZSBj aXBoZXJ0ZXh0IGlzIGFsd2F5cyBpbiB0ZXh0IGZvcm1hdCwgYnV0IHRoaXMgaXMgaW52aXNp YmxlIHRvIHRoZQorICAgIHByb3RvY29sLiAgRXZlbiB0aG91Z2ggdGhlIGNpcGhlcnRleHQg Y291bGQgaW4gdGhlb3J5IGJlIHNlbnQgaW4gZWl0aGVyCisgICAgdGV4dCBvciBiaW5hcnkg Zm9ybWF0LCB0aGUgc2VydmVyIHdpbGwgYWx3YXlzIHNlbmQgaXQgaW4gYmluYXJ5IGlmIHRo ZQorICAgIGNvbHVtbi1sZXZlbCBlbmNyeXB0aW9uIHByb3RvY29sIG9wdGlvbiBpcyBlbmFi bGVkLiAgVGhhdCB3YXksIGEgY2xpZW50CisgICAgbGlicmFyeSBvbmx5IG5lZWRzIHRvIHN1 cHBvcnQgZGVjcnlwdGluZyBkYXRhIHNlbnQgaW4gYmluYXJ5IGFuZCBkb2VzIG5vdAorICAg IGhhdmUgdG8gc3VwcG9ydCBkZWNvZGluZyB0aGUgdGV4dCBmb3JtYXQgb2YgdGhlIGVuY3J5 cHRpb24tcmVsYXRlZCB0eXBlcworICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZGF0YXR5cGUt ZW5jcnlwdGVkIi8+KS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgV2hlbiBkZXRl cm1pbmlzdGljIGVuY3J5cHRpb24gaXMgdXNlZCwgY2xpZW50cyBuZWVkIHRvIHRha2UgY2Fy ZSB0bworICAgIHJlcHJlc2VudCBwbGFpbnRleHQgdG8gYmUgZW5jcnlwdGVkIGluIGEgY29u c2lzdGVudCBmb3JtLiAgRm9yIGV4YW1wbGUsCisgICAgZW5jcnlwdGluZyBhbiBpbnRlZ2Vy IHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmcgPGxpdGVyYWw+MTAwPC9saXRlcmFsPiBhbmQK KyAgICBhbiBpbnRlZ2VyIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmcgPGxpdGVyYWw+KzEw MDwvbGl0ZXJhbD4gd291bGQgcmVzdWx0CisgICAgaW4gdHdvIGRpZmZlcmVudCBjaXBoZXJ0 ZXh0cywgdGh1cyBkZWZlYXRpbmcgdGhlIG1haW4gcG9pbnQgb2YKKyAgICBkZXRlcm1pbmlz dGljIGVuY3J5cHRpb24uICBUaGlzIHByb3RvY29sIHNwZWNpZmljYXRpb24gcmVxdWlyZXMg dGhlCisgICAgcGxhaW50ZXh0IHRvIGJlIGluIDxxdW90ZT5jYW5vbmljYWw8L3F1b3RlPiBm b3JtLCB3aGljaCBpcyB0aGUgZm9ybSB0aGF0CisgICAgaXMgcHJvZHVjZWQgYnkgdGhlIHNl cnZlciB3aGVuIGl0IG91dHB1dHMgYSBwYXJ0aWN1bGFyIHZhbHVlIGluIHRleHQKKyAgICBm b3JtYXQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFdoZW4gYXV0b21hdGljIGNs aWVudC1zaWRlIGNvbHVtbi1sZXZlbCBlbmNyeXB0aW9uIGlzIGVuYWJsZWQsIHRoZSBjbGll bnQKKyAgICBlbmNvZGluZyBtdXN0IG1hdGNoIHRoZSBzZXJ2ZXIgZW5jb2RpbmcuICBUaGlz IGVuc3VyZXMgdGhhdCBhbGwgdmFsdWVzCisgICAgZW5jcnlwdGVkIG9yIGRlY3J5cHRlZCBi eSB0aGUgY2xpZW50IG1hdGNoIHRoZSBzZXJ2ZXIgZW5jb2RpbmcuCisgICA8L3BhcmE+CisK KyAgIDxwYXJhPgorICAgIFRoZSBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbnMgdXNlZCBmb3Ig YXV0b21hdGljIGNsaWVudC1zaWRlIGNvbHVtbi1sZXZlbAorICAgIGVuY3J5cHRpb24gYXJl IGRlc2NyaWJlZCBpbiA8eHJlZgorICAgIGxpbmtlbmQ9InByb3RvY29sLWNvbHVtbi1lbmNy eXB0aW9uLWNyeXB0byIvPi4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mj4KKwogICA8c2VjdDIg aWQ9InByb3RvY29sLWZsb3ctZnVuY3Rpb24tY2FsbCI+CiAgICA8dGl0bGU+RnVuY3Rpb24g Q2FsbDwvdGl0bGU+CiAKQEAgLTQwNjEsNiArNDEzMSwxNDAgQEAgPHRpdGxlPk1lc3NhZ2Ug Rm9ybWF0czwvdGl0bGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5Pgog CisgICA8dmFybGlzdGVudHJ5IGlkPSJwcm90b2NvbC1tZXNzYWdlLWZvcm1hdHMtQ29sdW1u RW5jcnlwdGlvbktleSI+CisgICAgPHRlcm0+Q29sdW1uRW5jcnlwdGlvbktleSAoQik8L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgbWVzc2FnZSBj YW4gb25seSBhcHBlYXIgaWYgdGhlIHByb3RvY29sIGV4dGVuc2lvbgorICAgICAgPGxpdGVy YWw+X3BxXy5jb2x1bW5fZW5jcnlwdGlvbjwvbGl0ZXJhbD4gaXMgZW5hYmxlZC4gIChTZWUg PHhyZWYKKyAgICAgIGxpbmtlbmQ9InByb3RvY29sLWZsb3ctY29sdW1uLWVuY3J5cHRpb24i Lz4uKQorICAgICA8L3BhcmE+CisKKyAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgIDx2YXJs aXN0ZW50cnk+CisgICAgICAgPHRlcm0+Qnl0ZTEoJ1knKTwvdGVybT4KKyAgICAgICA8bGlz dGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWRlbnRpZmllcyB0aGUgbWVzc2Fn ZSBhcyBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBtZXNzYWdlLgorICAgICAgICA8L3BhcmE+ CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8 dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBMZW5ndGggb2YgbWVzc2FnZSBjb250 ZW50cyBpbiBieXRlcywgaW5jbHVkaW5nIHNlbGYuCisgICAgICAgIDwvcGFyYT4KKyAgICAg ICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0 ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgor ICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBzZXNzaW9uLXNwZWNpZmljIGlkZW50aWZp ZXIgb2YgdGhlIGtleS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8 dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgor ICAgICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIG1hc3RlciBrZXkgdXNlZCB0byBlbmNy eXB0IHRoaXMga2V5LgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAg ICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0 ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+Cisg ICAgICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgYWxnb3JpdGhtIHVzZWQgdG8gZW5jcnlw dCB0aGlzIGtleS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVy bT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAg ICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgZm9sbG93aW5nIGtleSBtYXRlcmlhbC4KKyAgICAg ICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5CeXRlPHJlcGxhY2VhYmxl Pm48L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxw YXJhPgorICAgICAgICAgVGhlIGtleSBtYXRlcmlhbCwgZW5jcnlwdGVkIHdpdGggdGhlIG1h c3RlciBrZXkgcmVmZXJlbmNlZCBhYm92ZS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwv bGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPC92YXJpYWJsZWxpc3Q+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5IGlkPSJwcm90b2NvbC1tZXNzYWdlLWZvcm1hdHMtQ29sdW1uTWFzdGVyS2V5Ij4KKyAg ICA8dGVybT5Db2x1bW5NYXN0ZXJLZXkgKEIpPC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+CisgICAgICBUaGlzIG1lc3NhZ2UgY2FuIG9ubHkgYXBwZWFyIGlmIHRoZSBw cm90b2NvbCBleHRlbnNpb24KKyAgICAgIDxsaXRlcmFsPl9wcV8uY29sdW1uX2VuY3J5cHRp b248L2xpdGVyYWw+IGlzIGVuYWJsZWQuICAoU2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJw cm90b2NvbC1mbG93LWNvbHVtbi1lbmNyeXB0aW9uIi8+LikKKyAgICAgPC9wYXJhPgorCisg ICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJt PkJ5dGUxKCd5Jyk8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4K KyAgICAgICAgIElkZW50aWZpZXMgdGhlIG1lc3NhZ2UgYXMgYSBjb2x1bW4gbWFzdGVyIGtl eSBtZXNzYWdlLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAg IDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJt PkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAg ICAgICBMZW5ndGggb2YgbWVzc2FnZSBjb250ZW50cyBpbiBieXRlcywgaW5jbHVkaW5nIHNl bGYuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJs aXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8 L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRo ZSBzZXNzaW9uLXNwZWNpZmljIGlkZW50aWZpZXIgb2YgdGhlIGtleS4KKyAgICAgICAgPC9w YXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg ICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5TdHJpbmc8L3Rlcm0+CisgICAgICAg PGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBr ZXkuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJs aXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+U3RyaW5n PC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBU aGUga2V5J3MgcmVhbG0uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgor ICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0PgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0icHJv dG9jb2wtbWVzc2FnZS1mb3JtYXRzLUNvbW1hbmRDb21wbGV0ZSI+CiAgICAgPHRlcm0+Q29t bWFuZENvbXBsZXRlIChCKTwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC01MTU3LDYgKzUz NjEsNDUgQEAgPHRpdGxlPk1lc3NhZ2UgRm9ybWF0czwvdGl0bGU+CiAgICAgICAgPC9saXN0 aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5PgogICAgICA8L3ZhcmlhYmxlbGlzdD4KKwor ICAgICA8cGFyYT4KKyAgICAgIElmIHRoZSBwcm90b2NvbCBleHRlbnNpb24gPGxpdGVyYWw+ X3BxXy5jb2x1bW5fZW5jcnlwdGlvbjwvbGl0ZXJhbD4gaXMKKyAgICAgIGVuYWJsZWQgKHNl ZSA8eHJlZiBsaW5rZW5kPSJwcm90b2NvbC1mbG93LWNvbHVtbi1lbmNyeXB0aW9uIi8+KSwg dGhlbgorICAgICAgdGhlcmUgaXMgYWxzbyB0aGUgZm9sbG93aW5nIGZvciBlYWNoIHBhcmFt ZXRlcjoKKyAgICAgPC9wYXJhPgorCisgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICA8dmFy bGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRl bT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZiB0aGlzIHBhcmFtZXRlciBpcyB0byBi ZSBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZQorICAgICAgICAgaWRlbnRpZmllciBv ZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IHRvIHVzZSwgZWxzZSB6ZXJvLgorICAgICAg ICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5Pgor CisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAg ICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZiB0aGlzIHBhcmFt ZXRlciBpcyB0byBiZSBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZQorICAgICAgICAg aWRlbnRpZmllciBvZiB0aGUgZW5jcnlwdGlvbiBhbGdvcml0aG0sIGVsc2UgemVyby4KKyAg ICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQxNjwvdGVybT4K KyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhpcyBpcyB1 c2VkIGFzIGEgYml0IGZpZWxkIG9mIGZsYWdzLiAgSWYgdGhlIGNvbHVtbiBpcworICAgICAg ICAgZW5jcnlwdGVkIGFuZCBiaXQgMHgwMSBpcyBzZXQsIHRoZSBjb2x1bW4gdXNlcyBkZXRl cm1pbmlzdGljCisgICAgICAgICBlbmNyeXB0aW9uLCBvdGhlcndpc2UgcmFuZG9taXplZCBl bmNyeXB0aW9uLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAg IDwvdmFybGlzdGVudHJ5PgorICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CiAKQEAgLTU1NDUsNiArNTc4OCwzNCBAQCA8dGl0bGU+ TWVzc2FnZSBGb3JtYXRzPC90aXRsZT4KICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92 YXJsaXN0ZW50cnk+CiAgICAgIDwvdmFyaWFibGVsaXN0PgorCisgICAgIDxwYXJhPgorICAg ICAgSWYgdGhlIHByb3RvY29sIGV4dGVuc2lvbiA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNy eXB0aW9uPC9saXRlcmFsPiBpcworICAgICAgZW5hYmxlZCAoc2VlIDx4cmVmIGxpbmtlbmQ9 InByb3RvY29sLWZsb3ctY29sdW1uLWVuY3J5cHRpb24iLz4pLCB0aGVuCisgICAgICB0aGVy ZSBpcyBhbHNvIHRoZSBmb2xsb3dpbmcgZm9yIGVhY2ggZmllbGQ6CisgICAgIDwvcGFyYT4K KworICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8 dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgor ICAgICAgICAgSWYgdGhlIGZpZWxkIGlzIGVuY3J5cHRlZCwgdGhpcyBzcGVjaWZpZXMgdGhl IGlkZW50aWZpZXIgb2YgdGhlCisgICAgICAgICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgdG8g dXNlLCBlbHNlIHplcm8uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgor ICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAg PHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4K KyAgICAgICAgIElmIHRoZSBmaWVsZCBpcyBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRo ZSBpZGVudGlmaWVyIG9mIHRoZQorICAgICAgICAgZW5jcnlwdGlvbiBhbGdvcml0aG0sIGVs c2UgemVyby4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8 L3Zhcmxpc3RlbnRyeT4KKyAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICAgPC9saXN0aXRlbT4K ICAgIDwvdmFybGlzdGVudHJ5PgogCkBAIC03MzcwLDYgKzc2NDEsMTc2IEBAIDx0aXRsZT5M b2dpY2FsIFJlcGxpY2F0aW9uIE1lc3NhZ2UgRm9ybWF0czwvdGl0bGU+CiAgIDwvdmFyaWFi bGVsaXN0PgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9InByb3RvY29sLWNvbHVtbi1lbmNy eXB0aW9uLWNyeXB0byI+CisgIDx0aXRsZT5BdXRvbWF0aWMgQ2xpZW50LXNpZGUgQ29sdW1u LWxldmVsIEVuY3J5cHRpb24gQ3J5cHRvZ3JhcGh5PC90aXRsZT4KKworICA8cGFyYT4KKyAg IFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyB1 c2VkIGJ5IHRoZSBhdXRvbWF0aWMKKyAgIGNsaWVudC1zaWRlIGNvbHVtbi1sZXZlbCBlbmNy eXB0aW9uIGZ1bmN0aW9uYWxpdHkuICBBIGNsaWVudCB0aGF0IHN1cHBvcnRzCisgICB0aGlz IGZ1bmN0aW9uYWxpdHkgbmVlZHMgdG8gaW1wbGVtZW50IHRoZXNlIG9wZXJhdGlvbnMgYXMg c3BlY2lmaWVkIGhlcmUgaW4KKyAgIG9yZGVyIHRvIGJlIGFibGUgdG8gaW50ZXJvcGVyYXRl IHdpdGggb3RoZXIgY2xpZW50cy4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgQ29sdW1u IGVuY3J5cHRpb24ga2V5IGFsZ29yaXRobXMgYW5kIGNvbHVtbiBtYXN0ZXIga2V5IGFsZ29y aXRobXMgYXJlCisgICBpZGVudGlmaWVkIGJ5IGludGVnZXJzIGluIHRoZSBwcm90b2NvbCBt ZXNzYWdlcyBhbmQgdGhlIHN5c3RlbSBjYXRhbG9ncy4KKyAgIEFkZGl0aW9uYWwgYWxnb3Jp dGhtcyBtYXkgYmUgYWRkZWQgdG8gdGhpcyBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIHdpdGhv dXQgYQorICAgY2hhbmdlIGluIHRoZSBwcm90b2NvbCB2ZXJzaW9uIG51bWJlci4gIENsaWVu dHMgc2hvdWxkIGltcGxlbWVudCBzdXBwb3J0CisgICBmb3IgYWxsIHRoZSBhbGdvcml0aG1z IHNwZWNpZmllZCBoZXJlLiAgSWYgYSBjbGllbnQgZW5jb3VudGVycyBhbiBhbGdvcml0aG0K KyAgIGlkZW50aWZpZXIgaXQgZG9lcyBub3QgcmVjb2duaXplIG9yIGRvZXMgbm90IHN1cHBv cnQsIGl0IG11c3QgcmFpc2UgYW4KKyAgIGVycm9yLiAgQSBzdWl0YWJsZSBlcnJvciBtZXNz YWdlIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgYXBwbGljYXRpb24gb3IKKyAgIHVzZXIu CisgIDwvcGFyYT4KKworICA8c2VjdDIgaWQ9InByb3RvY29sLWNtayI+CisgICA8dGl0bGU+ Q29sdW1uIE1hc3RlciBLZXlzPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgVGhlIGN1cnJl bnRseSBkZWZpbmVkIGFsZ29yaXRobXMgZm9yIGNvbHVtbiBtYXN0ZXIga2V5cyBhcmUgbGlz dGVkIGluCisgICAgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtY21rLXRhYmxlIi8+LgorICAg PC9wYXJhPgorCisgICA8IS0tIHNlZSBhbHNvIHNyYy9pbmNsdWRlL2NvbW1vbi9jb2xlbmMu aCAtLT4KKworICAgPHRhYmxlIGlkPSJwcm90b2NvbC1jbWstdGFibGUiPgorICAgIDx0aXRs ZT5Db2x1bW4gTWFzdGVyIEtleSBBbGdvcml0aG1zPC90aXRsZT4KKyAgICA8dGdyb3VwIGNv bHM9IjQiPgorICAgICA8dGhlYWQ+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5Qb3N0 Z3JlU1FMIElEPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+TmFtZTwvZW50cnk+CisgICAgICAg PGVudHJ5PkpXQSAoPHVsaW5rIHVybD0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3Jm Yzc1MTgiPlJGQyA3NTE4PC91bGluaz4pIG5hbWU8L2VudHJ5PgorICAgICAgIDxlbnRyeT5E ZXNjcmlwdGlvbjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90aGVhZD4KKyAgICAg PHRib2R5PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+MTwvZW50cnk+CisgICAgICAg PGVudHJ5PjxsaXRlcmFsPnVuc3BlY2lmaWVkPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAg PGVudHJ5Pihub25lKTwvZW50cnk+CisgICAgICAgPGVudHJ5PmludGVycHJldGVkIGJ5IGNs aWVudDwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5 PjI8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5SU0FFU19PQUVQX1NIQV8xPC9s aXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPlJTQS1PQUVQPC9saXRl cmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5PlJTQUVTIE9BRVAgdXNpbmcgZGVmYXVsdCBw YXJhbWV0ZXJzICg8dWxpbmsKKyAgICAgICB1cmw9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcv aHRtbC9yZmM4MDE3Ij5SRkMgODAxNzwvdWxpbms+L1BLQ1MgIzEpPC9lbnRyeT4KKyAgICAg IDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+MzwvZW50cnk+CisgICAgICAg PGVudHJ5PjxsaXRlcmFsPlJTQUVTX09BRVBfU0hBXzI1NjwvbGl0ZXJhbD48L2VudHJ5Pgor ICAgICAgIDxlbnRyeT48bGl0ZXJhbD5SU0EtT0FFUC0yNTY8L2xpdGVyYWw+PC9lbnRyeT4K KyAgICAgICA8ZW50cnk+UlNBRVMgT0FFUCB1c2luZyBTSEEtMjU2IGFuZCBNR0YxIHdpdGgg U0hBLTI1NiAoPHVsaW5rCisgICAgICAgdXJsPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0 bWwvcmZjODAxNyI+UkZDCisgICAgICAgODAxNzwvdWxpbms+L1BLQ1MgIzEpPC9lbnRyeT4K KyAgICAgIDwvcm93PgorICAgICA8L3Rib2R5PgorICAgIDwvdGdyb3VwPgorICAgPC90YWJs ZT4KKyAgPC9zZWN0Mj4KKworICA8c2VjdDIgaWQ9InByb3RvY29sLWNlayI+CisgICA8dGl0 bGU+Q29sdW1uIEVuY3J5cHRpb24gS2V5czwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIFRo ZSBjdXJyZW50bHkgZGVmaW5lZCBhbGdvcml0aG1zIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBr ZXlzIGFyZSBsaXN0ZWQgaW4KKyAgICA8eHJlZiBsaW5rZW5kPSJwcm90b2NvbC1jZWstdGFi bGUiLz4uCisgICA8L3BhcmE+CisKKyAgIDwhLS0gc2VlIGFsc28gc3JjL2luY2x1ZGUvY29t bW9uL2NvbGVuYy5oIC0tPgorCisgICA8cGFyYT4KKyAgICBUaGUga2V5IG1hdGVyaWFsIG9m IGEgY29sdW1uIGVuY3J5cHRpb24ga2V5IGNvbnNpc3RzIG9mIHRocmVlIGNvbXBvbmVudHMs CisgICAgY29uY2F0ZW5hdGVkIGluIHRoaXMgb3JkZXI6IHRoZSBNQUMga2V5LCB0aGUgZW5j cnlwdGlvbiBrZXksIGFuZCB0aGUgSVYKKyAgICBrZXkuICA8eHJlZiBsaW5rZW5kPSJwcm90 b2NvbC1jZWstdGFibGUiLz4gc2hvd3MgdGhlIHRvdGFsIGxlbmd0aCB0aGF0IGEKKyAgICBr ZXkgZ2VuZXJhdGVkIGZvciBlYWNoIGFsZ29yaXRobSBpcyByZXF1aXJlZCB0byBoYXZlLiAg VGhlIE1BQyBrZXkgYW5kIHRoZQorICAgIGVuY3J5cHRpb24ga2V5IGFyZSB1c2VkIGJ5IHRo ZSByZWZlcmVuY2VkIGVuY3J5cHRpb24gYWxnb3JpdGhtczsgc2VlIHRoZXJlCisgICAgZm9y IGRldGFpbHMuICBUaGUgSVYga2V5IGlzIHVzZWQgZm9yIGNvbXB1dGluZyB0aGUgc3RhdGlj IGluaXRpYWxpemF0aW9uCisgICAgdmVjdG9yIGZvciBkZXRlcm1pbmlzdGljIGVuY3J5cHRp b247IGl0IGlzIHVudXNlZCBmb3IgcmFuZG9taXplZAorICAgIGVuY3J5cHRpb24uCisgICA8 L3BhcmE+CisKKyAgIDwhLS0gc2VlIGFsc28gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9y Zy9kb2MvaHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSNzZWN0 aW9uLTIuOCAtLT4KKyAgIDx0YWJsZSBpZD0icHJvdG9jb2wtY2VrLXRhYmxlIj4KKyAgICA8 dGl0bGU+Q29sdW1uIEVuY3J5cHRpb24gS2V5IEFsZ29yaXRobXM8L3RpdGxlPgorICAgIDx0 Z3JvdXAgY29scz0iNyI+CisgICAgIDx0aGVhZD4KKyAgICAgIDxyb3c+CisgICAgICAgPGVu dHJ5PlBvc3RncmVTUUwgSUQ8L2VudHJ5PgorICAgICAgIDxlbnRyeT5OYW1lPC9lbnRyeT4K KyAgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAgICAgIDxlbnRyeT5NQUMg a2V5IGxlbmd0aCAob2N0ZXRzKTwvZW50cnk+CisgICAgICAgPGVudHJ5PkVuY3J5cHRpb24g a2V5IGxlbmd0aCAob2N0ZXRzKTwvZW50cnk+CisgICAgICAgPGVudHJ5PklWIGtleSBsZW5n dGggKG9jdGV0cyk8L2VudHJ5PgorICAgICAgIDxlbnRyeT5Ub3RhbCBrZXkgbGVuZ3RoIChv Y3RldHMpPC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICA8L3RoZWFkPgorICAgICA8dGJv ZHk+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4zMjc2ODwvZW50cnk+CisgICAgICAg PGVudHJ5PjxsaXRlcmFsPkFFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2PC9saXRlcmFs PjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx1bGluayB1cmw9Imh0dHBzOi8vZGF0YXRyYWNr ZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtbWNncmV3LWFlYWQtYWVzLWNiYy1obWFjLXNo YTItMDUiLz48L2VudHJ5PgorICAgICAgIDxlbnRyeT4xNjwvZW50cnk+CisgICAgICAgPGVu dHJ5PjE2PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MTY8L2VudHJ5PgorICAgICAgIDxlbnRy eT40ODwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5 PjMyNzY5PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+QUVBRF9BRVNfMTkyX0NC Q19ITUFDX1NIQV8zODQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHVsaW5r IHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1tY2dy ZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIvPjwvZW50cnk+CisgICAgICAgPGVudHJ5 PjI0PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MjQ8L2VudHJ5PgorICAgICAgIDxlbnRyeT4y NDwvZW50cnk+CisgICAgICAgPGVudHJ5PjcyPC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAg ICAgPHJvdz4KKyAgICAgICA8ZW50cnk+MzI3NzA8L2VudHJ5PgorICAgICAgIDxlbnRyeT48 bGl0ZXJhbD5BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDwvbGl0ZXJhbD48L2VudHJ5 PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJsPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYu b3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+ PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MjQ8L2VudHJ5PgorICAgICAgIDxlbnRyeT4zMjwv ZW50cnk+CisgICAgICAgPGVudHJ5PjI0PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+OTA8L2Vu dHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4zMjc3MTwv ZW50cnk+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPkFFQURfQUVTXzI1Nl9DQkNfSE1BQ19T SEFfNTEyPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx1bGluayB1cmw9Imh0 dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtbWNncmV3LWFlYWQt YWVzLWNiYy1obWFjLXNoYTItMDUiLz48L2VudHJ5PgorICAgICAgIDxlbnRyeT4zMjwvZW50 cnk+CisgICAgICAgPGVudHJ5PjMyPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MzI8L2VudHJ5 PgorICAgICAgIDxlbnRyeT45NjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90Ym9k eT4KKyAgICA8L3Rncm91cD4KKyAgIDwvdGFibGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSA8 cXVvdGU+YXNzb2NpYXRlZCBkYXRhPC9xdW90ZT4gaW4gdGhlc2UgYWxnb3JpdGhtcyBjb25z aXN0cyBvZiA0CisgICAgYnl0ZXM6IFRoZSBBU0NJSSBsZXR0ZXJzIDxsaXRlcmFsPlA8L2xp dGVyYWw+IGFuZCA8bGl0ZXJhbD5HPC9saXRlcmFsPgorICAgIChieXRlIHZhbHVlcyA4MCBh bmQgNzEpLCBmb2xsb3dlZCBieSB0aGUgdmVyc2lvbiBudW1iZXIgYXMgYSAxNi1iaXQKKyAg ICB1bnNpZ25lZCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4gIFRoZSB2ZXJzaW9u IG51bWJlciBpcyBjdXJyZW50bHkKKyAgICBhbHdheXMgMS4gIChUaGlzIGlzIGludGVuZGVk IHRvIGFsbG93IGZvciBwb3NzaWJsZSBpbmNvbXBhdGlibGUgY2hhbmdlcyBvcgorICAgIGV4 dGVuc2lvbnMgaW4gdGhlIGZ1dHVyZS4pCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAg IFRoZSBsZW5ndGggb2YgdGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciBpcyAxNiBvY3RldHMg Zm9yIGFsbCBDRUsgYWxnb3JpdGhtCisgICAgdmFyaWFudHMuICBGb3IgcmFuZG9taXplZCBl bmNyeXB0aW9uLCB0aGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yIHNob3VsZCBiZQorICAgIChj cnlwdG9ncmFwaGljYWxseSBzdHJvbmcpIHJhbmRvbSBieXRlcy4gIEZvciBkZXRlcm1pbmlz dGljIGVuY3J5cHRpb24sCisgICAgdGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciBpcyBjb25z dHJ1Y3RlZCBhcworPHByb2dyYW1saXN0aW5nPgorU1VCU1RSSU5HKDxyZXBsYWNlYWJsZT5I TUFDPC9yZXBsYWNlYWJsZT4oPHJlcGxhY2VhYmxlPks8L3JlcGxhY2VhYmxlPiwgPHJlcGxh Y2VhYmxlPlA8L3JlcGxhY2VhYmxlPikgRk9SIDxyZXBsYWNlYWJsZT5JVkxFTjwvcmVwbGFj ZWFibGU+KQorPC9wcm9ncmFtbGlzdGluZz4KKyAgICB3aGVyZSA8cmVwbGFjZWFibGU+SE1B QzwvcmVwbGFjZWFibGU+IGlzIHRoZSBITUFDIGZ1bmN0aW9uIGFzc29jaWF0ZWQgd2l0aAor ICAgIHRoZSBhbGdvcml0aG0sIDxyZXBsYWNlYWJsZT5LPC9yZXBsYWNlYWJsZT4gaXMgdGhl IElWIGtleSwgYW5kCisgICAgPHJlcGxhY2VhYmxlPlA8L3JlcGxhY2VhYmxlPiBpcyB0aGUg cGxhaW50ZXh0IHRvIGJlIGVuY3J5cHRlZC4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mj4KKyA8 L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJwcm90b2NvbC1jaGFuZ2VzIj4KICAgPHRpdGxlPlN1 bW1hcnkgb2YgQ2hhbmdlcyBzaW5jZSBQcm90b2NvbCAyLjA8L3RpdGxlPgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2FsbGZpbGVzLnNnbWwKaW5kZXggNTRiNWYyMmQ2ZS4uYTczMGU1ZDY1MCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvYWxsZmlsZXMuc2dtbApAQCAtOCw2ICs4LDggQEAKIDwhRU5USVRZIGFib3J0ICAgICAg ICAgICAgICBTWVNURU0gImFib3J0LnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJBZ2dyZWdhdGUg ICAgIFNZU1RFTSAiYWx0ZXJfYWdncmVnYXRlLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJDb2xs YXRpb24gICAgIFNZU1RFTSAiYWx0ZXJfY29sbGF0aW9uLnNnbWwiPgorPCFFTlRJVFkgYWx0 ZXJDb2x1bW5FbmNyeXB0aW9uS2V5IFNZU1RFTSAiYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25f a2V5LnNnbWwiPgorPCFFTlRJVFkgYWx0ZXJDb2x1bW5NYXN0ZXJLZXkgU1lTVEVNICJhbHRl cl9jb2x1bW5fbWFzdGVyX2tleS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyQ29udmVyc2lvbiAg ICBTWVNURU0gImFsdGVyX2NvbnZlcnNpb24uc2dtbCI+CiA8IUVOVElUWSBhbHRlckRhdGFi YXNlICAgICAgU1lTVEVNICJhbHRlcl9kYXRhYmFzZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVy RGVmYXVsdFByaXZpbGVnZXMgU1lTVEVNICJhbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dt bCI+CkBAIC02Miw2ICs2NCw4IEBACiA8IUVOVElUWSBjcmVhdGVBZ2dyZWdhdGUgICAgU1lT VEVNICJjcmVhdGVfYWdncmVnYXRlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlQ2FzdCAgICAg ICAgIFNZU1RFTSAiY3JlYXRlX2Nhc3Quc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVDb2xsYXRp b24gICAgU1lTVEVNICJjcmVhdGVfY29sbGF0aW9uLnNnbWwiPgorPCFFTlRJVFkgY3JlYXRl Q29sdW1uRW5jcnlwdGlvbktleSBTWVNURU0gImNyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9r ZXkuc2dtbCI+Cis8IUVOVElUWSBjcmVhdGVDb2x1bW5NYXN0ZXJLZXkgU1lTVEVNICJjcmVh dGVfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVDb252ZXJzaW9u ICAgU1lTVEVNICJjcmVhdGVfY29udmVyc2lvbi5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZURh dGFiYXNlICAgICBTWVNURU0gImNyZWF0ZV9kYXRhYmFzZS5zZ21sIj4KIDwhRU5USVRZIGNy ZWF0ZURvbWFpbiAgICAgICBTWVNURU0gImNyZWF0ZV9kb21haW4uc2dtbCI+CkBAIC0xMDks NiArMTEzLDggQEAKIDwhRU5USVRZIGRyb3BBZ2dyZWdhdGUgICAgICBTWVNURU0gImRyb3Bf YWdncmVnYXRlLnNnbWwiPgogPCFFTlRJVFkgZHJvcENhc3QgICAgICAgICAgIFNZU1RFTSAi ZHJvcF9jYXN0LnNnbWwiPgogPCFFTlRJVFkgZHJvcENvbGxhdGlvbiAgICAgIFNZU1RFTSAi ZHJvcF9jb2xsYXRpb24uc2dtbCI+Cis8IUVOVElUWSBkcm9wQ29sdW1uRW5jcnlwdGlvbktl eSBTWVNURU0gImRyb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwiPgorPCFFTlRJVFkg ZHJvcENvbHVtbk1hc3RlcktleSBTWVNURU0gImRyb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dt bCI+CiA8IUVOVElUWSBkcm9wQ29udmVyc2lvbiAgICAgU1lTVEVNICJkcm9wX2NvbnZlcnNp b24uc2dtbCI+CiA8IUVOVElUWSBkcm9wRGF0YWJhc2UgICAgICAgU1lTVEVNICJkcm9wX2Rh dGFiYXNlLnNnbWwiPgogPCFFTlRJVFkgZHJvcERvbWFpbiAgICAgICAgIFNZU1RFTSAiZHJv cF9kb21haW4uc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2Nv bHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1 bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwLi42NTVlMWUwMGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApAQCAtMCwwICsxLDE5NyBAQAor PCEtLQorZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dt bAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwt YWx0ZXItY29sdW1uLWVuY3J5cHRpb24ta2V5Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1h bHRlci1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICA8cHJpbWFyeT5BTFRFUiBDT0xVTU4g RU5DUllQVElPTiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4K KyAgPHJlZmVudHJ5dGl0bGU+QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9yZWZlbnRy eXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNR TCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKwor IDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5BTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVk8 L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmNoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiBhIGNv bHVtbiBlbmNyeXB0aW9uIGtleTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8 cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBL RVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBBREQgVkFMVUUgKAorICAgIENP TFVNTl9NQVNURVJfS0VZID0gPHJlcGxhY2VhYmxlPmNtazwvcmVwbGFjZWFibGU+LAorICAg IFsgQUxHT1JJVEhNID0gPHJlcGxhY2VhYmxlPmFsZ29yaXRobTwvcmVwbGFjZWFibGU+LCBd CisgICAgRU5DUllQVEVEX1ZBTFVFID0gPHJlcGxhY2VhYmxlPmVuY3ZhbDwvcmVwbGFjZWFi bGU+CispCisKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+bmFt ZTwvcmVwbGFjZWFibGU+IERST1AgVkFMVUUgKAorICAgIENPTFVNTl9NQVNURVJfS0VZID0g PHJlcGxhY2VhYmxlPmNtazwvcmVwbGFjZWFibGU+CispCisKK0FMVEVSIENPTFVNTiBFTkNS WVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8 cmVwbGFjZWFibGU+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gT1dORVIgVE8geyA8 cmVwbGFjZWFibGU+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1JPTEUgfCBD VVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04g S0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIFNDSEVNQSA8cmVwbGFj ZWFibGU+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lu b3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+ CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5BTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVk8 L2NvbW1hbmQ+IGNoYW5nZXMgdGhlIGRlZmluaXRpb24gb2YgYQorICAgY29sdW1uIGVuY3J5 cHRpb24ga2V5LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgZmlyc3QgZm9ybSBh ZGRzIG5ldyBlbmNyeXB0ZWQga2V5IGRhdGEgdG8gYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXks CisgICB3aGljaCBtdXN0IGJlIGVuY3J5cHRlZCB3aXRoIGEgZGlmZmVyZW50IGNvbHVtbiBt YXN0ZXIga2V5IHRoYW4gdGhlCisgICBleGlzdGluZyBrZXkgZGF0YS4gIFRoZSBzZWNvbmQg Zm9ybSByZW1vdmVzIGEga2V5IGRhdGEgZW50cnkgZm9yIGEgZ2l2ZW4KKyAgIGNvbHVtbiBt YXN0ZXIga2V5LiAgVG9nZXRoZXIsIHRoZXNlIGZvcm1zIGNhbiBiZSB1c2VkIGZvciBjb2x1 bW4gbWFzdGVyIGtleQorICAgcm90YXRpb24uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAg IFlvdSBtdXN0IG93biB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IHRvIHVzZSA8Y29tbWFu ZD5BTFRFUiBDT0xVTU4KKyAgIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPi4gIFRvIGFsdGVy IHRoZSBvd25lciwgeW91IG11c3QgYWxzbyBiZSBhIGRpcmVjdCBvcgorICAgaW5kaXJlY3Qg bWVtYmVyIG9mIHRoZSBuZXcgb3duaW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZl CisgICA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgY29sdW1u IGVuY3J5cHRpb24ga2V5J3MKKyAgIHNjaGVtYS4gIChUaGVzZSByZXN0cmljdGlvbnMgZW5m b3JjZSB0aGF0IGFsdGVyaW5nIHRoZSBvd25lciBkb2Vzbid0IGRvCisgICBhbnl0aGluZyB5 b3UgY291bGRuJ3QgZG8gYnkgZHJvcHBpbmcgYW5kIHJlY3JlYXRpbmcgdGhlIGNvbHVtbiBl bmNyeXB0aW9uCisgICBrZXkuICBIb3dldmVyLCBhIHN1cGVydXNlciBjYW4gYWx0ZXIgb3du ZXJzaGlwIG9mIGFueSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkKKyAgIGFueXdheS4pCisgIDwv cGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVy czwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUg KG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCkgb2YgYW4gZXhpc3RpbmcgY29sdW1uIGVu Y3J5cHRpb24KKyAgICAgIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVw bGFjZWFibGU+Y21rPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IHRo YXQgd2FzIHVzZWQgdG8gZW5jcnlwdCB0aGlzIGNvbHVtbgorICAgICAgZW5jcnlwdGlvbiBr ZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPmFsZ29yaXRo bTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSB0aGF0IHdhcyB1c2VkIHRvIGVuY3J5 cHQgdGhlIGtleSBtYXRlcmlhbCBvZgorICAgICAgdGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBr ZXkuICBTZWUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5 cHRpb24ta2V5Ii8+IGZvciBkZXRhaWxzCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVt PgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+ PHJlcGxhY2VhYmxlPmVuY3ZhbDwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBrZXkgbWF0ZXJpYWwgb2YgdGhpcyBjb2x1 bW4gZW5jcnlwdGlvbiBrZXksIGVuY3J5cHRlZCB3aXRoIHRoZQorICAgICAgc3BlY2lmaWVk IGNvbHVtbiBtYXN0ZXIga2V5IHVzaW5nIHRoZSBzcGVjaWZpZWQgYWxnb3JpdGhtLiAgVGhl IHZhbHVlCisgICAgICBtdXN0IGJlIGEgPHR5cGU+Ynl0ZWE8L3R5cGU+LWNvbXBhdGlibGUg bGl0ZXJhbC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlz dGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5ldyBuYW1lIG9mIHRoZSBjb2x1bW4g ZW5jcnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmV3IG93bmVyIG9mIHRo ZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVt PgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+ PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxl PjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5ldyBz Y2hlbWEgZm9yIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0Pgor IDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+ CisKKyAgPHBhcmE+CisgICBUbyByb3RhdGUgdGhlIG1hc3RlciBrZXlzIHVzZWQgdG8gZW5j cnlwdCBhIGdpdmVuIGNvbHVtbiBlbmNyeXB0aW9uIGtleSwKKyAgIHVzZSBhIGNvbW1hbmQg c2VxdWVuY2UgbGlrZSB0aGlzOgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgQ09MVU1OIEVO Q1JZUFRJT04gS0VZIGNlazEgQUREIFZBTFVFICgKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9 IGNtazIsCisgICAgRU5DUllQVEVEX1ZBTFVFID0gJ1x4MDEwMjAyMDQuLi4nCispOworCitB TFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFICgKKyAgICBDT0xV TU5fTUFTVEVSX0tFWSA9IGNtazEKKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+ CisKKyAgPHBhcmE+CisgICBUbyByZW5hbWUgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSA8 bGl0ZXJhbD5jZWsxPC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+Y2VrMjwvbGl0ZXJhbD46 Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBS RU5BTUUgVE8gY2VrMjsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFRvIGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSA8bGl0ZXJhbD5jZWsxPC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+am9lPC9saXRlcmFs PjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsx IE9XTkVSIFRPIGpvZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+ CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8 cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkFMVEVSIENPTFVNTiBFTkNSWVBUSU9O IEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGluIHRoZQorICAgU1FMIHN0YW5kYXJkLgorICA8 L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNv PC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48 eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPjwvbWVt YmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcC1jb2x1bW4tZW5jcnlw dGlvbi1rZXkiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8 L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5f bWFzdGVyX2tleS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fbWFzdGVy X2tleS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjdmMGU2 NTZlZjAKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2NvbHVt bl9tYXN0ZXJfa2V5LnNnbWwKQEAgLTAsMCArMSwxMzQgQEAKKzwhLS0KK2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtYWx0ZXItY29sdW1uLW1hc3Rlci1r ZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWFsdGVyLWNvbHVtbi1tYXN0ZXIta2V5Ij4K KyAgPHByaW1hcnk+QUxURVIgQ09MVU1OIE1BU1RFUiBLRVk8L3ByaW1hcnk+CisgPC9pbmRl eHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+QUxURVIgQ09MVU1OIE1B U1RFUiBLRVk8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgor ICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+ CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkFMVEVSIENPTFVN TiBNQVNURVIgS0VZPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgdGhlIGRlZmlu aXRpb24gb2YgYSBjb2x1bW4gbWFzdGVyIGtleTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVk aXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitBTFRFUiBDT0xVTU4gTUFT VEVSIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+ICggUkVBTE0gPSA8cmVw bGFjZWFibGU+cmVhbG08L3JlcGxhY2VhYmxlPiApCisKK0FMVEVSIENPTFVNTiBNQVNURVIg S0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyZXBsYWNl YWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSA8 cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRPIHsgPHJlcGxhY2VhYmxl Pm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xFIHwgQ1VSUkVOVF9VU0VS IHwgU0VTU0lPTl9VU0VSIH0KK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIDxyZXBsYWNlYWJs ZT5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIFNDSEVNQSA8cmVwbGFjZWFibGU+bmV3X3NjaGVt YTwvcmVwbGFjZWFibGU+Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8 cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+Cisg ICA8Y29tbWFuZD5BTFRFUiBDT0xVTU4gTUFTVEVSIEtFWTwvY29tbWFuZD4gY2hhbmdlcyB0 aGUgZGVmaW5pdGlvbiBvZiBhCisgICBjb2x1bW4gbWFzdGVyIGtleS4KKyAgPC9wYXJhPgor CisgIDxwYXJhPgorICAgVGhlIGZpcnN0IGZvcm0gY2hhbmdlcyB0aGUgcGFyYW1ldGVycyBv ZiBhIGNvbHVtbiBtYXN0ZXIga2V5LiAgU2VlIDx4cmVmCisgICBsaW5rZW5kPSJzcWwtY3Jl YXRlLWNvbHVtbi1tYXN0ZXIta2V5Ii8+IGZvciBkZXRhaWxzLgorICA8L3BhcmE+CisKKyAg PHBhcmE+CisgICBZb3UgbXVzdCBvd24gdGhlIGNvbHVtbiBtYXN0ZXIga2V5IHRvIHVzZSA8 Y29tbWFuZD5BTFRFUiBDT0xVTU4gTUFTVEVSCisgICBLRVk8L2NvbW1hbmQ+LiAgVG8gYWx0 ZXIgdGhlIG93bmVyLCB5b3UgbXVzdCBhbHNvIGJlIGEgZGlyZWN0IG9yIGluZGlyZWN0Cisg ICBtZW1iZXIgb2YgdGhlIG5ldyBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhh dmUKKyAgIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZSBjb2x1 bW4gbWFzdGVyIGtleSdzIHNjaGVtYS4KKyAgIChUaGVzZSByZXN0cmljdGlvbnMgZW5mb3Jj ZSB0aGF0IGFsdGVyaW5nIHRoZSBvd25lciBkb2Vzbid0IGRvIGFueXRoaW5nIHlvdQorICAg Y291bGRuJ3QgZG8gYnkgZHJvcHBpbmcgYW5kIHJlY3JlYXRpbmcgdGhlIGNvbHVtbiBtYXN0 ZXIga2V5LiAgSG93ZXZlciwgYQorICAgc3VwZXJ1c2VyIGNhbiBhbHRlciBvd25lcnNoaXAg b2YgYW55IGNvbHVtbiBtYXN0ZXIga2V5IGFueXdheS4pCisgIDwvcGFyYT4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAg PHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgKG9wdGlvbmFsbHkgc2No ZW1hLXF1YWxpZmllZCkgb2YgYW4gZXhpc3RpbmcgY29sdW1uIG1hc3RlciBrZXkuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2 YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5ld19uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8 cGFyYT4KKyAgICAgIFRoZSBuZXcgbmFtZSBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkuCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAg IDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+CisgICAgICBUaGUgbmV3IG93bmVyIG9mIHRoZSBjb2x1bW4gbWFzdGVyIGtl eS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRl bT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmV3IHNjaGVtYSBmb3IgdGhlIGNvbHVtbiBt YXN0ZXIga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVG8gcmVuYW1l IHRoZSBjb2x1bW4gbWFzdGVyIGtleSA8bGl0ZXJhbD5jbWsxPC9saXRlcmFsPiB0bworICAg PGxpdGVyYWw+Y21rMjwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBDT0xV TU4gTUFTVEVSIEtFWSBjbWsxIFJFTkFNRSBUTyBjbWsyOworPC9wcm9ncmFtbGlzdGluZz4K KyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hhbmdlIHRoZSBvd25lciBvZiB0aGUg Y29sdW1uIG1hc3RlciBrZXkgPGxpdGVyYWw+Y21rMTwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRl cmFsPmpvZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBDT0xVTU4gTUFT VEVSIEtFWSBjbWsxIE9XTkVSIFRPIGpvZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgor IDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90 aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkFMVEVSIENPTFVN TiBNQVNURVIgS0VZPC9jb21tYW5kPiBzdGF0ZW1lbnQgaW4gdGhlCisgICBTUUwgc3RhbmRh cmQuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8 bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiLz48 L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3AtY29sdW1uLW1h c3Rlci1rZXkiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8 L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbAppbmRleCA1YjQzYzU2YjEzLi4xY2Fm OWJmYTU2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbApAQCAtMjgsNiArMjgsOCBAQAogICBD QVNUICg8cmVwbGFjZWFibGU+c291cmNlX3R5cGU8L3JlcGxhY2VhYmxlPiBBUyA8cmVwbGFj ZWFibGU+dGFyZ2V0X3R5cGU8L3JlcGxhY2VhYmxlPikgfAogICBDT0xMQVRJT04gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAog ICBDT0xVTU4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlbGF0aW9uX25hbWU8 L3JlcGxhY2VhYmxlPi48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25h bWU8L3JlcGxhY2VhYmxlPiB8CisgIENPTFVNTiBFTkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CisgIENP TFVNTiBNQVNURVIgS0VZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3Rf bmFtZTwvcmVwbGFjZWFibGU+IHwKICAgQ09OU1RSQUlOVCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29uc3RyYWludF9uYW1lPC9yZXBsYWNlYWJsZT4gT04gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIENP TlNUUkFJTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbnN0cmFpbnRfbmFt ZTwvcmVwbGFjZWFibGU+IE9OIERPTUFJTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZG9tYWluX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIENPTlZFUlNJT04gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfApkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2NvcHkuc2dtbAppbmRleCBjMjViNTJkMGNiLi5lYmNiZjVkMDBhIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvcHku c2dtbApAQCAtNTU1LDYgKzU1NSwxNiBAQCA8dGl0bGU+Tm90ZXM8L3RpdGxlPgogICAgIG51 bGwgc3RyaW5ncyB0byBudWxsIHZhbHVlcyBhbmQgdW5xdW90ZWQgbnVsbCBzdHJpbmdzIHRv IGVtcHR5IHN0cmluZ3MuCiAgICA8L3BhcmE+CiAKKyAgIDxwYXJhPgorICAgIDxjb21tYW5k PkNPUFk8L2NvbW1hbmQ+IGRvZXMgbm90IHN1cHBvcnQgYXV0b21hdGljIGNsaWVudC1zaWRl CisgICAgY29sdW1uLWxldmVsIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbjsgaXRzIGlucHV0 IG9yIG91dHB1dCBkYXRhIHdpbGwKKyAgICBhbHdheXMgYmUgdGhlIGNpcGhlcnRleHQuICBU aGlzIGlzIHVzdWFsbHkgc3VpdGFibGUgZm9yIGJhY2t1cHMgKHNlZSBhbHNvCisgICAgPHhy ZWYgbGlua2VuZD0iYXBwLXBnZHVtcCIvPikuICBJZiBhdXRvbWF0aWMgY2xpZW50LXNpZGUg ZW5jcnlwdGlvbiBvcgorICAgIGRlY3J5cHRpb24gaXMgd2FudGVkLCA8Y29tbWFuZD5JTlNF UlQ8L2NvbW1hbmQ+IGFuZAorICAgIDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4gbmVlZCB0 byBiZSB1c2VkIGluc3RlYWQgdG8gd3JpdGUgYW5kIHJlYWQgdGhlCisgICAgZGF0YS4KKyAg IDwvcGFyYT4KKwogIDwvcmVmc2VjdDE+CiAKICA8cmVmc2VjdDE+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjU2ZmIyNTNkYWQKLS0tIC9kZXYv bnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9r ZXkuc2dtbApAQCAtMCwwICsxLDE3MCBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlv bgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1r ZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1r ZXkiPgorICA8cHJpbWFyeT5DUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9wcmltYXJ5 PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkNSRUFU RSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+ NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50 czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZu YW1lPkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3JlZm5hbWU+CisgIDxyZWZwdXJw b3NlPmRlZmluZSBhIG5ldyBjb2x1bW4gZW5jcnlwdGlvbiBrZXk8L3JlZnB1cnBvc2U+Cisg PC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorQ1JFQVRF IENPTFVNTiBFTkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+ IFdJVEggVkFMVUVTICgKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IDxyZXBsYWNlYWJsZT5j bWs8L3JlcGxhY2VhYmxlPiwKKyAgICBbIEFMR09SSVRITSA9IDxyZXBsYWNlYWJsZT5hbGdv cml0aG08L3JlcGxhY2VhYmxlPiwgXQorICAgIEVOQ1JZUFRFRF9WQUxVRSA9IDxyZXBsYWNl YWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxlPgorKQorWyAsIC4uLiBdCis8L3N5bm9wc2lzPgor IDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlv bjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5DUkVBVEUgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZPC9jb21tYW5kPiBkZWZpbmVzIGEgbmV3IGNvbHVtbgorICAgZW5jcnlwdGlv biBrZXkuICBBIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBpcyB1c2VkIGZvciBjbGllbnQtc2lk ZSBlbmNyeXB0aW9uCisgICBvZiB0YWJsZSBjb2x1bW5zIHRoYXQgaGF2ZSBiZWVuIGRlZmlu ZWQgYXMgZW5jcnlwdGVkLiAgVGhlIGtleSBtYXRlcmlhbCBvZgorICAgYSBjb2x1bW4gZW5j cnlwdGlvbiBrZXkgaXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSdzIHN5c3RlbSBjYXRhbG9n cywKKyAgIGVuY3J5cHRlZCAod3JhcHBlZCkgYnkgYSBjb2x1bW4gbWFzdGVyIGtleSAod2hp Y2ggaW4gdHVybiBpcyBvbmx5CisgICBhY2Nlc3NpYmxlIHRvIHRoZSBjbGllbnQsIG5vdCB0 aGUgZGF0YWJhc2Ugc2VydmVyKS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgQSBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBtb3JlIHRoYW4gb25l IGNvbHVtbiBtYXN0ZXIKKyAgIGtleS4gIFRvIHNwZWNpZnkgdGhhdCwgc3BlY2lmeSBtb3Jl IHRoYW4gb25lIHBhcmVudGhlc2l6ZWQgZGVmaW5pdGlvbiAoc2VlCisgICBhbHNvIHRoZSBl eGFtcGxlcykuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8 dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJs aXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPjwv dGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSBv ZiB0aGUgbmV3IGNvbHVtbiBlbmNyeXB0aW9uIGtleS4gIFRoZSBuYW1lIGNhbiBiZQorICAg ICAgc2NoZW1hLXF1YWxpZmllZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVw bGFjZWFibGU+Y21rPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IHRo YXQgd2FzIHVzZWQgdG8gZW5jcnlwdCB0aGlzIGNvbHVtbgorICAgICAgZW5jcnlwdGlvbiBr ZXkuICBZb3UgbXVzdCBoYXZlIDxsaXRlcmFsPlVTQUdFPC9saXRlcmFsPiBwcml2aWxlZ2Ug b24gdGhlCisgICAgICBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48cmVwbGFjZWFibGU+YWxnb3JpdGhtPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisK KyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGVuY3J5cHRpb24gYWxn b3JpdGhtIHRoYXQgd2FzIHVzZWQgdG8gZW5jcnlwdCB0aGUga2V5IG1hdGVyaWFsIG9mCisg ICAgICB0aGlzIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4gIFN1cHBvcnRlZCBhbGdvcml0aG1z IGFyZToKKyAgICAgIDxpdGVtaXplZGxpc3Q+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICA8cGFyYT48bGl0ZXJhbD51bnNwZWNpZmllZDwvbGl0ZXJhbD48L3BhcmE+CisgICAgICAg PC9saXN0aXRlbT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPjxsaXRlcmFs PlJTQUVTX09BRVBfU0hBXzE8L2xpdGVyYWw+PC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+ CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT48bGl0ZXJhbD5SU0FFU19PQUVQ X1NIQV8yNTY8L2xpdGVyYWw+PC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8 L2l0ZW1pemVkbGlzdD4KKyAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAgVGhp cyBpcyBpbmZvcm1hdGlvbmFsIG9ubHkuICBUaGUgc3BlY2lmaWVkIHZhbHVlIGlzIHByb3Zp ZGVkIHRvIHRoZQorICAgICAgY2xpZW50LCB3aGljaCBtYXkgdXNlIGl0IGZvciBkZWNyeXB0 aW5nIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgb24gdGhlCisgICAgICBjbGllbnQgc2lk ZS4gIEJ1dCBhIGNsaWVudCBpcyBhbHNvIGZyZWUgdG8gaWdub3JlIHRoaXMgaW5mb3JtYXRp b24gYW5kCisgICAgICBmaWd1cmUgb3V0IGhvdyB0byBhcnJhbmdlIHRoZSBkZWNyeXB0aW9u IGluIHNvbWUgb3RoZXIgd2F5LiAgSW4gdGhhdAorICAgICAgY2FzZSwgc3BlY2lmeWluZyB0 aGUgYWxnb3JpdGhtIGFzIDxsaXRlcmFsPnVuc3BlY2lmaWVkPC9saXRlcmFsPiB3b3VsZCBi ZQorICAgICAgYXBwcm9wcmlhdGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJl cGxhY2VhYmxlPmVuY3ZhbDwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxpc3RpdGVt PgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBrZXkgbWF0ZXJpYWwgb2YgdGhpcyBjb2x1bW4g ZW5jcnlwdGlvbiBrZXksIGVuY3J5cHRlZCB3aXRoIHRoZQorICAgICAgc3BlY2lmaWVkIGNv bHVtbiBtYXN0ZXIga2V5IHVzaW5nIHRoZSBzcGVjaWZpZWQgYWxnb3JpdGhtLiAgVGhlIHZh bHVlCisgICAgICBtdXN0IGJlIGEgPHR5cGU+Ynl0ZWE8L3R5cGU+LWNvbXBhdGlibGUgbGl0 ZXJhbC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxwcm9ncmFtbGlzdGluZz4K K0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBXSVRIIFZBTFVFUyAoCisgICAg Q09MVU1OX01BU1RFUl9LRVkgPSBjbWsxLAorICAgIEVOQ1JZUFRFRF9WQUxVRSA9ICdceDAx MDIwMjA0Li4uJworKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFRvIHNwZWNpZnkgbW9yZSB0aGFuIG9uZSBhc3NvY2lhdGVkIGNvbHVtbiBtYXN0 ZXIga2V5OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtF WSBjZWsxIFdJVEggVkFMVUVTICgKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IGNtazEsCisg ICAgRU5DUllQVEVEX1ZBTFVFID0gJ1x4MDEwMjAyMDQuLi4nCispLAorKAorICAgIENPTFVN Tl9NQVNURVJfS0VZID0gY21rMiwKKyAgICBFTkNSWVBURURfVkFMVUUgPSAnXHhGMUYyRjJG NC4uLicKKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4K KworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxw YXJhPgorICAgVGhlcmUgaXMgbm8gPGNvbW1hbmQ+Q1JFQVRFIENPTFVNTiBFTkNSWVBUSU9O IEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGluCisgICB0aGUgU1FMIHN0YW5kYXJkLgorICA8 L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNv PC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48 eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1i ZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wLWNvbHVtbi1lbmNyeXB0 aW9uLWtleSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3Jl YXRlLWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8 L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uNmFhYTEwODhkMQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKQEAgLTAsMCArMSwxMDcgQEAK KzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwK K1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWNy ZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtY3JlYXRl LWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyAgPHByaW1hcnk+Q1JFQVRFIENPTFVNTiBNQVNURVIg S0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRy eXRpdGxlPkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWTwvcmVmZW50cnl0aXRsZT4KKyAgPG1h bnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBT dGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4K KyAgPHJlZm5hbWU+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZPC9yZWZuYW1lPgorICA8cmVm cHVycG9zZT5kZWZpbmUgYSBuZXcgY29sdW1uIG1hc3RlciBrZXk8L3JlZnB1cnBvc2U+Cisg PC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorQ1JFQVRF IENPTFVNTiBNQVNURVIgS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gWyBX SVRIICgKKyAgICBbIFJFQUxNID0gPHJlcGxhY2VhYmxlPnJlYWxtPC9yZXBsYWNlYWJsZT4g XQorKSBdCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFu ZD5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IGRlZmluZXMgYSBuZXcgY29s dW1uIG1hc3RlcgorICAga2V5LiAgQSBjb2x1bW4gbWFzdGVyIGtleSBpcyB1c2VkIHRvIGVu Y3J5cHQgY29sdW1uIGVuY3J5cHRpb24ga2V5cywgd2hpY2gKKyAgIGFyZSB0aGUga2V5cyB0 aGF0IGFjdHVhbGx5IGVuY3J5cHQgdGhlIGNvbHVtbiBkYXRhLiAgVGhlIGtleSBtYXRlcmlh bCBvZgorICAgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IGlzIG5vdCBzdG9yZWQgaW4gdGhlIGRh dGFiYXNlLiAgVGhlIGRlZmluaXRpb24gb2YgYQorICAgY29sdW1uIG1hc3RlciBrZXkgcmVj b3JkcyBpbmZvcm1hdGlvbiB0aGF0IHdpbGwgYWxsb3cgYSBjbGllbnQgdG8gbG9jYXRlCisg ICB0aGUga2V5IG1hdGVyaWFsLCBmb3IgZXhhbXBsZSBpbiBhIGZpbGUgb3IgaW4gYSBrZXkg bWFuYWdlbWVudCBzeXN0ZW0uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4K KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxh Y2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBU aGUgbmFtZSBvZiB0aGUgbmV3IGNvbHVtbiBtYXN0ZXIga2V5LiAgVGhlIG5hbWUgY2FuIGJl CisgICAgICBzY2hlbWEtcXVhbGlmaWVkLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJt PjxyZXBsYWNlYWJsZT5yZWFsbTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgaXMgYW4gb3B0aW9uYWwgc3RyaW5nIHRo YXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgY29sdW1uIG1hc3RlcgorICAgICAga2V5cyBp bnRvIGdyb3VwcyBmb3IgbG9va3VwIGJ5IGNsaWVudHMuICBUaGUgaW50ZW50IGlzIHRoYXQg YWxsIGNvbHVtbgorICAgICAgbWFzdGVyIGtleXMgdGhhdCBhcmUgc3RvcmVkIGluIHRoZSBz YW1lIHN5c3RlbSAoZmlsZSBzeXN0ZW0gbG9jYXRpb24sCisgICAgICBrZXkgbWFuYWdlbWVu dCBzeXN0ZW0sIGV0Yy4pIHNob3VsZCBiZSBpbiB0aGUgc2FtZSByZWFsbS4gIEEgY2xpZW50 CisgICAgICB3b3VsZCB0aGVuIGJlIGNvbmZpZ3VyZWQgdG8gbG9vayB1cCBhbGwga2V5cyBp biBhIGdpdmVuIHJlYWxtIGluIGEKKyAgICAgIGNlcnRhaW4gd2F5LiAgU2VlIHRoZSBkb2N1 bWVudGF0aW9uIG9mIHRoZSByZXNwZWN0aXZlIGNsaWVudCBsaWJyYXJ5IGZvcgorICAgICAg ZnVydGhlciB1c2FnZSBpbnN0cnVjdGlvbnMuCisgICAgIDwvcGFyYT4KKworICAgICA8cGFy YT4KKyAgICAgIFRoZSBkZWZhdWx0IGlzIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFibGVs aXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwv dGl0bGU+CisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBj bWsxIChyZWFsbSA9ICdteXJlYWxtJyk7Cis8L3Byb2dyYW1saXN0aW5nPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkNSRUFURSBDT0xVTU4gTUFTVEVS IEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGluCisgICB0aGUgU1FMIHN0YW5kYXJkLgorICA8 L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNv PC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48 eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29sdW1uLW1hc3Rlci1rZXkiLz48L21lbWJlcj4K KyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3AtY29sdW1uLW1hc3Rlci1rZXki Lz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1 bW4tZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVm c2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApp bmRleCBhMDNkZWU0YWZlLi5kMTU0OWM3ZjQ1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Rh YmxlLnNnbWwKQEAgLTIyLDcgKzIyLDcgQEAKICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3Bz aXM+CiBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkgfCBURU1QIH0g fCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gKCBbCi0gIHsgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsg U1RPUkFHRSB7IFBMQUlOIHwgRVhURVJOQUwgfCBFWFRFTkRFRCB8IE1BSU4gfCBERUZBVUxU IH0gXSBbIENPTVBSRVNTSU9OIDxyZXBsYWNlYWJsZT5jb21wcmVzc2lvbl9tZXRob2Q8L3Jl cGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNl YWJsZT4gXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3Ry YWludDwvcmVwbGFjZWFibGU+IFsgLi4uIF0gXQorICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBbIEVOQ1JZUFRFRCBXSVRI ICggPHJlcGxhY2VhYmxlPmVuY3J5cHRpb25fb3B0aW9uczwvcmVwbGFjZWFibGU+ICkgXSBb IFNUT1JBR0UgeyBQTEFJTiB8IEVYVEVSTkFMIHwgRVhURU5ERUQgfCBNQUlOIHwgREVGQVVM VCB9IF0gWyBDT01QUkVTU0lPTiA8cmVwbGFjZWFibGU+Y29tcHJlc3Npb25fbWV0aG9kPC9y ZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVwbGFj ZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX2NvbnN0 cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KICAgICB8IDxyZXBsYWNlYWJsZT50YWJs ZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4KICAgICB8IExJS0UgPHJlcGxhY2VhYmxlPnNv dXJjZV90YWJsZTwvcmVwbGFjZWFibGU+IFsgPHJlcGxhY2VhYmxlPmxpa2Vfb3B0aW9uPC9y ZXBsYWNlYWJsZT4gLi4uIF0gfQogICAgIFssIC4uLiBdCkBAIC04Nyw3ICs4Nyw3IEBACiAK IDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5saWtlX29wdGlv bjwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCi17IElOQ0xVRElORyB8IEVYQ0xVRElO RyB9IHsgQ09NTUVOVFMgfCBDT01QUkVTU0lPTiB8IENPTlNUUkFJTlRTIHwgREVGQVVMVFMg fCBHRU5FUkFURUQgfCBJREVOVElUWSB8IElOREVYRVMgfCBTVEFUSVNUSUNTIHwgU1RPUkFH RSB8IEFMTCB9Cit7IElOQ0xVRElORyB8IEVYQ0xVRElORyB9IHsgQ09NTUVOVFMgfCBDT01Q UkVTU0lPTiB8IENPTlNUUkFJTlRTIHwgREVGQVVMVFMgfCBFTkNSWVBURUQgfCBHRU5FUkFU RUQgfCBJREVOVElUWSB8IElOREVYRVMgfCBTVEFUSVNUSUNTIHwgU1RPUkFHRSB8IEFMTCB9 CiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJ0aXRp b25fYm91bmRfc3BlYzwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCkBAIC0zNTEsNiAr MzUxLDQ3IEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgICA8L2xpc3RpdGVtPgog ICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0 YWJsZS1wYXJtcy1lbmNyeXB0ZWQiPgorICAgIDx0ZXJtPjxsaXRlcmFsPkVOQ1JZUFRFRCBX SVRIICggPHJlcGxhY2VhYmxlPmVuY3J5cHRpb25fb3B0aW9uczwvcmVwbGFjZWFibGU+ICk8 L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBF bmFibGVzIGF1dG9tYXRpYyBjbGllbnQtc2lkZSBjb2x1bW4tbGV2ZWwgZW5jcnlwdGlvbiBm b3IgdGhlIGNvbHVtbi4KKyAgICAgIDxyZXBsYWNlYWJsZT5lbmNyeXB0aW9uX29wdGlvbnM8 L3JlcGxhY2VhYmxlPiBhcmUgY29tbWEtc2VwYXJhdGVkCisgICAgICA8bGl0ZXJhbD5rZXk9 dmFsdWU8L2xpdGVyYWw+IHNwZWNpZmljYXRpb25zLiAgVGhlIGZvbGxvd2luZyBvcHRpb25z IGFyZQorICAgICAgYXZhaWxhYmxlOgorICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICA8 dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5jb2x1bW5fZW5jcnlwdGlv bl9rZXk8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8 cGFyYT4KKyAgICAgICAgICBTcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBlbmNy eXB0aW9uIGtleSB0byB1c2UuICBTcGVjaWZ5aW5nCisgICAgICAgICAgdGhpcyBpcyBtYW5k YXRvcnkuICBZb3UgbXVzdCBoYXZlIDxsaXRlcmFsPlVTQUdFPC9saXRlcmFsPiBwcml2aWxl Z2UKKyAgICAgICAgICBvbiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LgorICAgICAgICAg PC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5Pgor ICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmVuY3J5cHRp b25fdHlwZTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAg IDxwYXJhPgorICAgICAgICAgIDxsaXRlcmFsPnJhbmRvbWl6ZWQ8L2xpdGVyYWw+ICh0aGUg ZGVmYXVsdCkgb3IgPGxpdGVyYWw+ZGV0ZXJtaW5pc3RpYzwvbGl0ZXJhbD4KKyAgICAgICAg IDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRyeT4K KyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5hbGdvcml0 aG08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFy YT4KKyAgICAgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gdG8gdXNlLiAgVGhlIGRl ZmF1bHQgaXMKKyAgICAgICAgICA8bGl0ZXJhbD5BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hB XzI1NjwvbGl0ZXJhbD4uCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+ CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZh cmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXRhYmxlLXBhcm1zLWluaGVyaXRzIj4KICAgICA8 dGVybT48bGl0ZXJhbD5JTkhFUklUUyAoIDxyZXBsYWNlYWJsZT5wYXJlbnRfdGFibGU8L3Jl cGxhY2VhYmxlPiBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+ CkBAIC03MDQsNiArNzQ1LDE2IEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgICAg ICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICAgIDx2YXJs aXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1saWtlLW9wdC1lbmNyeXB0ZWQi PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5JTkNMVURJTkcgRU5DUllQVEVEPC9saXRlcmFs PjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgQ29sdW1uIGVuY3J5cHRpb24gc3BlY2lmaWNhdGlvbnMgZm9yIHRoZSBjb3BpZWQgY29s dW1uIGRlZmluaXRpb25zCisgICAgICAgICAgd2lsbCBiZSBjb3BpZWQuICBCeSBkZWZhdWx0 LCBuZXcgY29sdW1ucyB3aWxsIGJlIHVuZW5jcnlwdGVkLgorICAgICAgICAgPC9wYXJhPgor ICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgICAg PHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXRhYmxlLXBhcm1zLWxpa2Utb3B0LWdlbmVy YXRlZCI+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPklOQ0xVRElORyBHRU5FUkFURUQ8L2xp dGVyYWw+PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZjJhYzFiZWIwOAotLS0gL2Rldi9udWxsCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApAQCAt MCwwICsxLDExMiBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9lbmNy eXB0aW9uX2tleS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVm ZW50cnkgaWQ9InNxbC1kcm9wLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgPGluZGV4dGVy bSB6b25lPSJzcWwtZHJvcC1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICA8cHJpbWFyeT5E Uk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKwor IDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5EUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtF WTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZt aXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3Jl Zm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBDT0xVTU4gRU5DUllQ VElPTiBLRVk8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPnJlbW92ZSBhIGNvbHVtbiBlbmNy eXB0aW9uIGtleTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3Bz aXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBbIElGIEVY SVNUUyBdIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gWyBDQVNDQURFIHwgUkVT VFJJQ1QgXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1h bmQ+RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVk8L2NvbW1hbmQ+IHJlbW92ZXMgYSBwcmV2 aW91c2x5IGRlZmluZWQKKyAgIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4gIFRvIGJlIGFibGUg dG8gZHJvcCBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleSwgeW91CisgICBtdXN0IGJlIGl0cyBv d25lci4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRs ZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICAgPHZhcmlhYmxlbGlzdD4KKyAgICA8dmFybGlz dGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJt PgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBEbyBub3QgdGhyb3cg YW4gZXJyb3IgaWYgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkb2VzIG5vdCBleGlzdC4K KyAgICAgICBBIG5vdGljZSBpcyBpc3N1ZWQgaW4gdGhpcyBjYXNlLgorICAgICAgPC9wYXJh PgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgPHRlcm0+PHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPjwv dGVybT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgbmFt ZSAob3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0aGUgY29sdW1uIGVuY3J5cHRp b24ga2V5LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlz dGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+Q0FT Q0FERTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgor ICAgICAgIEF1dG9tYXRpY2FsbHkgZHJvcCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRoZSBj b2x1bW4gZW5jcnlwdGlvbiBrZXksCisgICAgICAgYW5kIGluIHR1cm4gYWxsIG9iamVjdHMg dGhhdCBkZXBlbmQgb24gdGhvc2Ugb2JqZWN0cworICAgICAgIChzZWUgPHhyZWYgbGlua2Vu ZD0iZGRsLWRlcGVuZCIvPikuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+Cisg ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48 bGl0ZXJhbD5SRVNUUklDVDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAg ICAgIDxwYXJhPgorICAgICAgIFJlZnVzZSB0byBkcm9wIHRoZSBjb2x1bW4gZW5jcnlwdGlv biBrZXkgaWYgYW55IG9iamVjdHMgZGVwZW5kIG9uIGl0LiAgVGhpcworICAgICAgIGlzIHRo ZSBkZWZhdWx0LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFy bGlzdGVudHJ5PgorICAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxwcm9ncmFt bGlzdGluZz4KK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazE7Cis8L3Byb2dyYW1s aXN0aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29t bWFuZD5EUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGlu CisgICB0aGUgU1FMIHN0YW5kYXJkLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICAgIDxzaW1wbGVsaXN0 IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlci1j b2x1bW4tZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlu a2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAg PC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmZhZTk1ZTA5ZDEKLS0tIC9kZXYvbnVsbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApAQCAtMCww ICsxLDExMiBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9tYXN0ZXJf a2V5LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBp ZD0ic3FsLWRyb3AtY29sdW1uLW1hc3Rlci1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3Fs LWRyb3AtY29sdW1uLW1hc3Rlci1rZXkiPgorICA8cHJpbWFyeT5EUk9QIENPTFVNTiBNQVNU RVIgS0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZl bnRyeXRpdGxlPkRST1AgQ09MVU1OIE1BU1RFUiBLRVk8L3JlZmVudHJ5dGl0bGU+CisgIDxt YW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2Ug U3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+ CisgIDxyZWZuYW1lPkRST1AgQ09MVU1OIE1BU1RFUiBLRVk8L3JlZm5hbWU+CisgIDxyZWZw dXJwb3NlPnJlbW92ZSBhIGNvbHVtbiBtYXN0ZXIga2V5PC9yZWZwdXJwb3NlPgorIDwvcmVm bmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0RST1AgQ09MVU1O IE1BU1RFUiBLRVkgWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFi bGU+IFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNp c2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+ IHJlbW92ZXMgYSBwcmV2aW91c2x5IGRlZmluZWQKKyAgIGNvbHVtbiBtYXN0ZXIga2V5LiAg VG8gYmUgYWJsZSB0byBkcm9wIGEgY29sdW1uIG1hc3RlciBrZXksIHlvdQorICAgbXVzdCBi ZSBpdHMgb3duZXIuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgor ICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgIDx2YXJpYWJsZWxpc3Q+CisgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFs PjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgRG8gbm90 IHRocm93IGFuIGVycm9yIGlmIHRoZSBjb2x1bW4gbWFzdGVyIGtleSBkb2VzIG5vdCBleGlz dC4KKyAgICAgICBBIG5vdGljZSBpcyBpc3N1ZWQgaW4gdGhpcyBjYXNlLgorICAgICAgPC9w YXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxl PjwvdGVybT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUg bmFtZSAob3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0aGUgY29sdW1uIG1hc3Rl ciBrZXkuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0 ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5DQVND QURFPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+Cisg ICAgICAgQXV0b21hdGljYWxseSBkcm9wIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhlIGNv bHVtbiBtYXN0ZXIga2V5LAorICAgICAgIGFuZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRoYXQg ZGVwZW5kIG9uIHRob3NlIG9iamVjdHMKKyAgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRk bC1kZXBlbmQiLz4pLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwv dmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVy YWw+UkVTVFJJQ1Q8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8 cGFyYT4KKyAgICAgICBSZWZ1c2UgdG8gZHJvcCB0aGUgY29sdW1uIG1hc3RlciBrZXkgaWYg YW55IG9iamVjdHMgZGVwZW5kIG9uIGl0LiAgVGhpcworICAgICAgIGlzIHRoZSBkZWZhdWx0 LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5 PgorICAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxwcm9ncmFtbGlzdGluZz4K K0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY2VrMTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJh PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5 PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkRST1AgQ09M VU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgorICAgdGhlIFNRTCBzdGFu ZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRs ZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgor ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29sdW1uLW1hc3Rlci1rZXki Lz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1 bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0 MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAppbmRleCAzNWJmMDMzMmM4Li5m NzEyZjhlOWU0IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sCkBAIC00Niw2ICs0NiwxNiBAQAogICAg IFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248 L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQogICAgIFsgR1JB TlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0 aW9uPC9yZXBsYWNlYWJsZT4gXQogCitHUkFOVCB7IFVTQUdFIHwgQUxMIFsgUFJJVklMRUdF UyBdIH0KKyAgICBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgPHJlcGxhY2VhYmxlPmNla19u YW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXQorICAgIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsg V0lUSCBHUkFOVCBPUFRJT04gXQorICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorCitH UkFOVCB7IFVTQUdFIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiBDT0xVTU4gTUFT VEVSIEtFWSA8cmVwbGFjZWFibGU+Y21rX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisg ICAgVE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlv bjwvcmVwbGFjZWFibGU+IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisgICAgWyBH UkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmlj YXRpb248L3JlcGxhY2VhYmxlPiBdCisKIEdSQU5UIHsgVVNBR0UgfCBBTEwgWyBQUklWSUxF R0VTIF0gfQogICAgIE9OIERPTUFJTiA8cmVwbGFjZWFibGU+ZG9tYWluX25hbWU8L3JlcGxh Y2VhYmxlPiBbLCAuLi5dCiAgICAgVE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gWyBXSVRIIEdSQU5U IE9QVElPTiBdCkBAIC01MTMsNyArNTIzLDcgQEAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3Rp dGxlPgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBQcml2aWxlZ2VzIG9uIGRhdGFi YXNlcywgdGFibGVzcGFjZXMsIHNjaGVtYXMsIGxhbmd1YWdlcywgYW5kCisgICAgUHJpdmls ZWdlcyBvbiBkYXRhYmFzZXMsIHRhYmxlc3BhY2VzLCBzY2hlbWFzLCBrZXlzLCBsYW5ndWFn ZXMsIGFuZAogICAgIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUKICAgICA8cHJvZHVj dG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbnMuCiAgICA8L3BhcmE+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvcGdfZHVtcC5zZ21sCmluZGV4IDJjOTM4Y2Q3ZTEuLmJiMmUxMjE0OGMgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcC5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvcGdfZHVtcC5zZ21sCkBAIC03MTUsNiArNzE1LDQ4IEBAIDx0aXRsZT5PcHRp b25zPC90aXRsZT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5Pgog CisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48b3B0aW9uPi0tZGVjcnlwdC1l bmNyeXB0ZWQtY29sdW1uczwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBvcHRpb24gY2F1c2VzIHRoZSB2YWx1ZXMgb2Yg YWxsIGVuY3J5cHRlZCBjb2x1bW5zIHRvIGJlIGRlY3J5cHRlZAorICAgICAgICBhbmQgd3Jp dHRlbiB0byB0aGUgb3V0cHV0IGluIHBsYWludGV4dC4gIEJ5IGRlZmF1bHQsIHRoZSB2YWx1 ZXMgb2YKKyAgICAgICAgZW5jcnlwdGVkIGNvbHVtbnMgYXJlIHdyaXR0ZW4gdG8gdGhlIGR1 bXAgaW4gY2lwaGVydGV4dCAodGhhdCBpcywgdGhleQorICAgICAgICBhcmUgbm90IGRlY3J5 cHRlZCkuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMg b3B0aW9uIHR1cm5zIG9uIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBjb25uZWN0aW9uIG9wdGlv biBpbgorICAgICAgICA8YXBwbGljYXRpb24+bGlicHE8L2FwcGxpY2F0aW9uPiAoc2VlIDx4 cmVmCisgICAgICAgIGxpbmtlbmQ9ImxpYnBxLWNvbm5lY3QtY29sdW1uLWVuY3J5cHRpb24i Lz4pLiAgQ29sdW1uIG1hc3RlciBrZXkKKyAgICAgICAgbG9va3VwIG11c3QgYmUgY29uZmln dXJlZCBieSB0aGUgdXNlciwgZWl0aGVyIHRocm91Z2ggYSBjb25uZWN0aW9uCisgICAgICAg IG9wdGlvbiBvciBhbiBlbnZpcm9ubWVudCBzZXR0aW5nIChzZWUgPHhyZWYKKyAgICAgICAg bGlua2VuZD0ibGlicHEtY29ubmVjdC1jbWtsb29rdXAiLz4pLgorICAgICAgIDwvcGFyYT4K KworICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9wdGlvbiByZXF1aXJlcyB0aGF0IDxv cHRpb24+LS1pbnNlcnRzPC9vcHRpb24+LAorICAgICAgICA8b3B0aW9uPi0tY29sdW1uLWlu c2VydHM8L29wdGlvbj4gb3IKKyAgICAgICAgPG9wdGlvbj4tLXJvd3MtcGVyLWluc2VydDwv b3B0aW9uPiBpcyBhbHNvIHNwZWNpZmllZC4KKyAgICAgICAgKDxjb21tYW5kPkNPUFk8L2Nv bW1hbmQ+IGRvZXMgbm90IHN1cHBvcnQgY29sdW1uIGRlY3J5cHRpb24uKQorICAgICAgIDwv cGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBGb3Igcm91dGluZSBiYWNrdXBzLCB0 aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBhcHByb3ByaWF0ZSBhbmQgbW9zdAorICAgICAgICBl ZmZpY2llbnQuICBUaGlzIG9wdGlvbiBpcyBzdWl0YWJsZSBpZiB0aGUgZGF0YSBpcyBtZWFu dCB0byBiZQorICAgICAgICBpbnNwZWN0ZWQgb3IgZXhwb3J0ZWQgZm9yIG90aGVyIHB1cnBv c2VzLiAgKEJ1dCB0aGVuIGl0IGlzIHJlY29tbWVuZGVkCisgICAgICAgIHRvIG5vdCBkbyB0 aGlzIG9uIHRoZSBzYW1lIGhvc3QgYXMgdGhlIHNlcnZlciwgdG8gYXZvaWQgZXhwb3NpbmcK KyAgICAgICAgdW5lbmNyeXB0ZWQgZGF0YSB0aGF0IGlzIG1lYW50IHRvIGJlIGtlcHQgZW5j cnlwdGVkIG9uIHRoZSBzZXJ2ZXIuKQorICAgICAgICBOb3RlIHRoYXQgYSBkdW1wIGNyZWF0 ZWQgd2l0aCB0aGlzIG9wdGlvbiBjYW5ub3QgYmUgcmVzdG9yZWQgaW50byBhCisgICAgICAg IGRhdGFiYXNlIHdpdGggY29sdW1uIGVuY3J5cHRpb24uCisgICAgICAgPC9wYXJhPgorICAg ICAgIDwhLS0KKyAgICAgICAgICAgWFhYOiBUaGUgbGF0dGVyIHdvdWxkIHJlcXVpcmUgYW5v dGhlciBwZ19kdW1wIG9wdGlvbiB0byBwdXQgb3V0CisgICAgICAgICAgIElOU0VSVCAuLi4g XGJpbmQgLi4uIFxnIGNvbW1hbmRzLgorICAgICAgIC0tPgorICAgICAgPC9saXN0aXRlbT4K KyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgIDx0 ZXJtPjxvcHRpb24+LS1kaXNhYmxlLWRvbGxhci1xdW90aW5nPC9vcHRpb24+PC90ZXJtPgog ICAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1w YWxsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dtbAppbmRleCBlNjJk MDVlNWFiLi40YmY2MGM3MjlmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1 bXBhbGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dtbApAQCAt MjU5LDYgKzI1OSwzMyBAQCA8dGl0bGU+T3B0aW9uczwvdGl0bGU+CiAgICAgICA8L2xpc3Rp dGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5PgorICAg ICAgPHRlcm0+PG9wdGlvbj4tLWRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnM8L29wdGlvbj48 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMg b3B0aW9uIGNhdXNlcyB0aGUgdmFsdWVzIG9mIGFsbCBlbmNyeXB0ZWQgY29sdW1ucyB0byBi ZSBkZWNyeXB0ZWQKKyAgICAgICAgYW5kIHdyaXR0ZW4gdG8gdGhlIG91dHB1dCBpbiBwbGFp bnRleHQuICBCeSBkZWZhdWx0LCB0aGUgdmFsdWVzIG9mCisgICAgICAgIGVuY3J5cHRlZCBj b2x1bW5zIGFyZSB3cml0dGVuIHRvIHRoZSBkdW1wIGluIGNpcGhlcnRleHQgKHRoYXQgaXMs IHRoZXkKKyAgICAgICAgYXJlIG5vdCBkZWNyeXB0ZWQpLgorICAgICAgIDwvcGFyYT4KKwor ICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9wdGlvbiByZXF1aXJlcyB0aGF0IDxvcHRp b24+LS1pbnNlcnRzPC9vcHRpb24+LAorICAgICAgICA8b3B0aW9uPi0tY29sdW1uLWluc2Vy dHM8L29wdGlvbj4gb3IKKyAgICAgICAgPG9wdGlvbj4tLXJvd3MtcGVyLWluc2VydDwvb3B0 aW9uPiBpcyBhbHNvIHNwZWNpZmllZC4KKyAgICAgICAgKDxjb21tYW5kPkNPUFk8L2NvbW1h bmQ+IGRvZXMgbm90IHN1cHBvcnQgY29sdW1uIGRlY3J5cHRpb24uKQorICAgICAgIDwvcGFy YT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBGb3Igcm91dGluZSBiYWNrdXBzLCB0aGUg ZGVmYXVsdCBiZWhhdmlvciBpcyBhcHByb3ByaWF0ZSBhbmQgbW9zdAorICAgICAgICBlZmZp Y2llbnQuICBUaGlzIG9wdGlvbiBpcyBzdWl0YWJsZSBpZiB0aGUgZGF0YSBpcyBtZWFudCB0 byBiZQorICAgICAgICBpbnNwZWN0ZWQgb3IgZXhwb3J0ZWQgZm9yIG90aGVyIHB1cnBvc2Vz LiAgTm90ZSB0aGF0IGEgZHVtcCBjcmVhdGVkCisgICAgICAgIHdpdGggdGhpcyBvcHRpb24g Y2Fubm90IGJlIHJlc3RvcmVkIGludG8gYSBkYXRhYmFzZSB3aXRoIGNvbHVtbgorICAgICAg ICBlbmNyeXB0aW9uLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAg IDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgICA8dGVybT48 b3B0aW9uPi0tZGlzYWJsZS1kb2xsYXItcXVvdGluZzwvb3B0aW9uPjwvdGVybT4KICAgICAg IDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCBkYzY1MjhkYzExLi5l NjhiODQ0MGJlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0xNDIwLDYgKzE0MjAs MzQgQEAgPHRpdGxlPk1ldGEtQ29tbWFuZHM8L3RpdGxlPgogICAgICAgPC92YXJsaXN0ZW50 cnk+CiAKIAorICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iYXBwLXBzcWwtbWV0YS1jb21tYW5k LWRjZWsiPgorICAgICAgICA8dGVybT48bGl0ZXJhbD5cZGNla1srXSBbIDxsaW5rIGxpbmtl bmQ9ImFwcC1wc3FsLXBhdHRlcm5zIj48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cGF0dGVybjwvcmVwbGFjZWFibGU+PC9saW5rPiBdPC9saXRlcmFsPjwvdGVybT4KKyAgICAg ICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgTGlzdHMgY29sdW1uIGVu Y3J5cHRpb24ga2V5cy4gIElmIDxyZXBsYWNlYWJsZQorICAgICAgICBjbGFzcz0icGFyYW1l dGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gaXMgc3BlY2lmaWVkLCBvbmx5IGNvbHVtbgor ICAgICAgICBlbmNyeXB0aW9uIGtleXMgd2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHBhdHRlcm4g YXJlIGxpc3RlZC4gIElmCisgICAgICAgIDxsaXRlcmFsPis8L2xpdGVyYWw+IGlzIGFwcGVu ZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUsIGVhY2ggb2JqZWN0IGlzCisgICAgICAgIGxpc3Rl ZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRlc2NyaXB0aW9uLgorICAgICAgICA8L3BhcmE+Cisg ICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworCisgICAgICA8 dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1tZXRhLWNvbW1hbmQtZGNtayI+CisgICAgICAg IDx0ZXJtPjxsaXRlcmFsPlxkY21rWytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0 dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNl YWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgIDxwYXJhPgorICAgICAgICBMaXN0cyBjb2x1bW4gbWFzdGVyIGtleXMuICBJZiA8 cmVwbGFjZWFibGUKKyAgICAgICAgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFj ZWFibGU+IGlzIHNwZWNpZmllZCwgb25seSBjb2x1bW4KKyAgICAgICAgbWFzdGVyIGtleXMg d2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHBhdHRlcm4gYXJlIGxpc3RlZC4gIElmCisgICAgICAg IDxsaXRlcmFsPis8L2xpdGVyYWw+IGlzIGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUs IGVhY2ggb2JqZWN0IGlzCisgICAgICAgIGxpc3RlZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRl c2NyaXB0aW9uLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAg ICA8L3Zhcmxpc3RlbnRyeT4KKworCiAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNx bC1tZXRhLWNvbW1hbmQtZGNvbmZpZyI+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxkY29u ZmlnWytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xp dGVyYWw+PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CkBAIC00MDI2LDYgKzQwNTQsMTcg QEAgPHRpdGxlPlZhcmlhYmxlczwvdGl0bGU+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAg ICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iYXBwLXBzcWwt dmFyaWFibGVzLWhpZGUtY29sdW1uLWVuY3J5cHRpb24iPgorICAgICAgICA8dGVybT48dmFy bmFtZT5ISURFX0NPTFVNTl9FTkNSWVBUSU9OPC92YXJuYW1lPjwvdGVybT4KKyAgICAgICAg PGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElmIHRoaXMgdmFyaWFibGUg aXMgc2V0IHRvIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+LCBjb2x1bW4gZW5jcnlwdGlvbgor ICAgICAgICAgZGV0YWlscyBhcmUgbm90IGRpc3BsYXllZC4gVGhpcyBpcyBtYWlubHkgdXNl ZnVsIGZvciByZWdyZXNzaW9uCisgICAgICAgICB0ZXN0cy4KKyAgICAgICAgPC9wYXJhPgor ICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgIDx2 YXJsaXN0ZW50cnkgaWQ9ImFwcC1wc3FsLXZhcmlhYmxlcy1oaWRlLXRvYXN0LWNvbXByZXNz aW9uIj4KICAgICAgICAgPHRlcm0+PHZhcm5hbWU+SElERV9UT0FTVF9DT01QUkVTU0lPTjwv dmFybmFtZT48L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApp bmRleCBlMTFiNGI2MTMwLi5jODk4OTk3OTE1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv cmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC0z Niw2ICszNiw4IEBAIDx0aXRsZT5TUUwgQ29tbWFuZHM8L3RpdGxlPgogICAgJmFib3J0Owog ICAgJmFsdGVyQWdncmVnYXRlOwogICAgJmFsdGVyQ29sbGF0aW9uOworICAgJmFsdGVyQ29s dW1uRW5jcnlwdGlvbktleTsKKyAgICZhbHRlckNvbHVtbk1hc3RlcktleTsKICAgICZhbHRl ckNvbnZlcnNpb247CiAgICAmYWx0ZXJEYXRhYmFzZTsKICAgICZhbHRlckRlZmF1bHRQcml2 aWxlZ2VzOwpAQCAtOTAsNiArOTIsOCBAQCA8dGl0bGU+U1FMIENvbW1hbmRzPC90aXRsZT4K ICAgICZjcmVhdGVBZ2dyZWdhdGU7CiAgICAmY3JlYXRlQ2FzdDsKICAgICZjcmVhdGVDb2xs YXRpb247CisgICAmY3JlYXRlQ29sdW1uRW5jcnlwdGlvbktleTsKKyAgICZjcmVhdGVDb2x1 bW5NYXN0ZXJLZXk7CiAgICAmY3JlYXRlQ29udmVyc2lvbjsKICAgICZjcmVhdGVEYXRhYmFz ZTsKICAgICZjcmVhdGVEb21haW47CkBAIC0xMzcsNiArMTQxLDggQEAgPHRpdGxlPlNRTCBD b21tYW5kczwvdGl0bGU+CiAgICAmZHJvcEFnZ3JlZ2F0ZTsKICAgICZkcm9wQ2FzdDsKICAg ICZkcm9wQ29sbGF0aW9uOworICAgJmRyb3BDb2x1bW5FbmNyeXB0aW9uS2V5OworICAgJmRy b3BDb2x1bW5NYXN0ZXJLZXk7CiAgICAmZHJvcENvbnZlcnNpb247CiAgICAmZHJvcERhdGFi YXNlOwogICAgJmRyb3BEb21haW47CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv Y29tbW9uL3ByaW50c2ltcGxlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50 c2ltcGxlLmMKaW5kZXggZWY4MTgyMjhhYy4uYTAwNTQ1MDgwZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHNpbXBsZS5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vcHJpbnRzaW1wbGUuYwpAQCAtMjAsNyArMjAsOSBAQAogCiAjaW5j bHVkZSAiYWNjZXNzL3ByaW50c2ltcGxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBl LmgiCisjaW5jbHVkZSAibGlicHEvbGlicHEtYmUuaCIKICNpbmNsdWRlICJsaWJwcS9wcWZv cm1hdC5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0 aW5zLmgiCiAKIC8qCkBAIC00Niw2ICs0OCwxMSBAQCBwcmludHNpbXBsZV9zdGFydHVwKERl c3RSZWNlaXZlciAqc2VsZiwgaW50IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR1cGRlc2MpCiAJ CXBxX3NlbmRpbnQxNigmYnVmLCBhdHRyLT5hdHRsZW4pOwogCQlwcV9zZW5kaW50MzIoJmJ1 ZiwgYXR0ci0+YXR0dHlwbW9kKTsKIAkJcHFfc2VuZGludDE2KCZidWYsIDApOwkvKiBmb3Jt YXQgY29kZSAqLworCQlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxl ZCkKKwkJeworCQkJcHFfc2VuZGludDMyKCZidWYsIDApOwkvKiBDRUsgKi8KKwkJCXBxX3Nl bmRpbnQzMigmYnVmLCAwKTsJLyogQ0VLIGFsZyAqLworCQl9CiAJfQogCiAJcHFfZW5kbWVz c2FnZSgmYnVmKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJp bnR0dXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYwppbmRleCA3 MmZhZWI1ZGZhLi42M2EzZDliMGY5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv Y29tbW9uL3ByaW50dHVwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmlu dHR1cC5jCkBAIC0xNSwxMyArMTUsMjggQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVzLmgi CiAKKyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MvcHJpbnR0 dXAuaCIKKyNpbmNsdWRlICJhY2Nlc3Mvc2tleS5oIgorI2luY2x1ZGUgImFjY2Vzcy90YWJs ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0 ZXJrZXkuaCIKICNpbmNsdWRlICJsaWJwcS9saWJwcS5oIgorI2luY2x1ZGUgImxpYnBxL2xp YnBxLWJlLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKKyNpbmNsdWRlICJtaXNj YWRtaW4uaCIKICNpbmNsdWRlICJ0Y29wL3BxdWVyeS5oIgorI2luY2x1ZGUgInV0aWxzL2Fy cmF5LmgiCisjaW5jbHVkZSAidXRpbHMvYXJyYXlhY2Nlc3MuaCIKKyNpbmNsdWRlICJ1dGls cy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCisjaW5jbHVkZSAi dXRpbHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRl ICJ1dGlscy9tZW1kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisjaW5j bHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIAogCiBz dGF0aWMgdm9pZCBwcmludHR1cF9zdGFydHVwKERlc3RSZWNlaXZlciAqc2VsZiwgaW50IG9w ZXJhdGlvbiwKQEAgLTE1MSw2ICsxNjYsMTU2IEBAIHByaW50dHVwX3N0YXJ0dXAoRGVzdFJl Y2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0aW9uLCBUdXBsZURlc2MgdHlwZWluZm8pCiAJICov CiB9CiAKKy8qCisgKiBTZW5kIENvbHVtbk1hc3RlcktleSBtZXNzYWdlLCB1bmxlc3MgaXQn cyBhbHJlYWR5IGJlZW4gc2VudCBpbiB0aGlzIHNlc3Npb24KKyAqIGZvciB0aGlzIGtleS4K KyAqLworTGlzdAkgICAqY21rX3NlbnQgPSBOSUw7CisKK3N0YXRpYyB2b2lkCitjbWtfY2hh bmdlX2NiKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCit7CisJ bGlzdF9mcmVlKGNta19zZW50KTsKKwljbWtfc2VudCA9IE5JTDsKK30KKworc3RhdGljIHZv aWQKK01heWJlU2VuZENvbHVtbk1hc3RlcktleU1lc3NhZ2UoT2lkIGNta2lkKQoreworCUhl YXBUdXBsZQl0dXBsZTsKKwlGb3JtX3BnX2NvbG1hc3RlcmtleSBjbWtmb3JtOworCURhdHVt CQlkYXR1bTsKKwlib29sCQlpc251bGw7CisJU3RyaW5nSW5mb0RhdGEgYnVmOworCXN0YXRp YyBib29sIHJlZ2lzdGVyZWRfaW52YWwgPSBmYWxzZTsKKwlNZW1vcnlDb250ZXh0IG9sZGNv bnRleHQ7CisKKwlBc3NlcnQoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxl ZCk7CisKKwlpZiAobGlzdF9tZW1iZXJfb2lkKGNta19zZW50LCBjbWtpZCkpCisJCXJldHVy bjsKKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1 bShjbWtpZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4gbWFzdGVyIGtleSAldSIsIGNt a2lkKTsKKwljbWtmb3JtID0gKEZvcm1fcGdfY29sbWFzdGVya2V5KSBHRVRTVFJVQ1QodHVw bGUpOworCisJcHFfYmVnaW5tZXNzYWdlKCZidWYsICd5Jyk7IC8qIENvbHVtbk1hc3Rlcktl eSAqLworCXBxX3NlbmRpbnQzMigmYnVmLCBjbWtmb3JtLT5vaWQpOworCXBxX3NlbmRzdHJp bmcoJmJ1ZiwgTmFtZVN0cihjbWtmb3JtLT5jbWtuYW1lKSk7CisJZGF0dW0gPSBTeXNDYWNo ZUdldEF0dHIoQ01LT0lELCB0dXBsZSwgQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rcmVhbG0s ICZpc251bGwpOworCUFzc2VydCghaXNudWxsKTsKKwlwcV9zZW5kc3RyaW5nKCZidWYsIFRl eHREYXR1bUdldENTdHJpbmcoZGF0dW0pKTsKKwlwcV9lbmRtZXNzYWdlKCZidWYpOworCisJ UmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKworCWlmICghcmVnaXN0ZXJlZF9pbnZhbCkKKwl7 CisJCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKENNS09JRCwgY21rX2NoYW5nZV9j YiwgKERhdHVtKSAwKTsKKwkJcmVnaXN0ZXJlZF9pbnZhbCA9IHRydWU7CisJfQorCisJb2xk Y29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsKKwlj bWtfc2VudCA9IGxhcHBlbmRfb2lkKGNta19zZW50LCBjbWtpZCk7CisJTWVtb3J5Q29udGV4 dFN3aXRjaFRvKG9sZGNvbnRleHQpOworfQorCisvKgorICogU2VuZCBDb2x1bW5FbmNyeXB0 aW9uS2V5IG1lc3NhZ2UsIHVubGVzcyBpdCdzIGFscmVhZHkgYmVlbiBzZW50IGluIHRoaXMK KyAqIHNlc3Npb24gZm9yIHRoaXMga2V5LgorICovCitMaXN0CSAgICpjZWtfc2VudCA9IE5J TDsKKworc3RhdGljIHZvaWQKK2Nla19jaGFuZ2VfY2IoRGF0dW0gYXJnLCBpbnQgY2FjaGVp ZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlsaXN0X2ZyZWUoY2VrX3NlbnQpOworCWNla19z ZW50ID0gTklMOworfQorCit2b2lkCitNYXliZVNlbmRDb2x1bW5FbmNyeXB0aW9uS2V5TWVz c2FnZShPaWQgYXR0Y2VrKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlTY2FuS2V5RGF0YSBz a2V5WzFdOworCVN5c1NjYW5EZXNjIHNkOworCVJlbGF0aW9uCXJlbDsKKwlib29sCQlmb3Vu ZCA9IGZhbHNlOworCXN0YXRpYyBib29sIHJlZ2lzdGVyZWRfaW52YWwgPSBmYWxzZTsKKwlN ZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwlBc3NlcnQoTXlQcm9jUG9ydC0+Y29sdW1u X2VuY3J5cHRpb25fZW5hYmxlZCk7CisKKwlpZiAobGlzdF9tZW1iZXJfb2lkKGNla19zZW50 LCBhdHRjZWspKQorCQlyZXR1cm47CisKKwkvKgorCSAqIFdlIHJlYWxseSBvbmx5IG5lZWQg ZGF0YSBmcm9tIHBnX2NvbGVuY2tleWRhdGEsIGJ1dCBiZWZvcmUgd2Ugc2NhbgorCSAqIHRo YXQsIGxldCdzIGNoZWNrIHRoYXQgYW4gZW50cnkgZXhpc3RzIGluIHBnX2NvbGVuY2tleSwg c28gdGhhdCBpZgorCSAqIHRoZXJlIGFyZSBjYXRhbG9nIGluY29uc2lzdGVuY2llcywgd2Ug Y2FuIGxvY2F0ZSB0aGVtIGJldHRlci4KKwkgKi8KKwlpZiAoIVNlYXJjaFN5c0NhY2hlRXhp c3RzMShDRUtPSUQsIE9iamVjdElkR2V0RGF0dW0oYXR0Y2VrKSkpCisJCWVsb2coRVJST1Is ICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXUiLCBh dHRjZWspOworCisJLyoKKwkgKiBOb3cgc2NhbiBwZ19jb2xlbmNrZXlkYXRhLgorCSAqLwor CVNjYW5LZXlJbml0KCZza2V5WzBdLAorCQkJCUFudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2Rj ZWtpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0 SWRHZXREYXR1bShhdHRjZWspKTsKKwlyZWwgPSB0YWJsZV9vcGVuKENvbHVtbkVuY0tleURh dGFSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCXNkID0gc3lzdGFibGVfYmVnaW5z Y2FuKHJlbCwgQ29sdW1uRW5jS2V5Q2VraWRDbWtpZEluZGV4SWQsIHRydWUsIE5VTEwsIDEs IHNrZXkpOworCisJd2hpbGUgKCh0dXBsZSA9IHN5c3RhYmxlX2dldG5leHQoc2QpKSkKKwl7 CisJCUZvcm1fcGdfY29sZW5ja2V5ZGF0YSBja2Rmb3JtID0gKEZvcm1fcGdfY29sZW5ja2V5 ZGF0YSkgR0VUU1RSVUNUKHR1cGxlKTsKKwkJRGF0dW0JCWRhdHVtOworCQlib29sCQlpc251 bGw7CisJCWJ5dGVhCSAgICpiYTsKKwkJU3RyaW5nSW5mb0RhdGEgYnVmOworCisJCU1heWJl U2VuZENvbHVtbk1hc3RlcktleU1lc3NhZ2UoY2tkZm9ybS0+Y2tkY21raWQpOworCisJCWRh dHVtID0gaGVhcF9nZXRhdHRyKHR1cGxlLCBBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tkZW5j dmFsLCBSZWxhdGlvbkdldERlc2NyKHJlbCksICZpc251bGwpOworCQlBc3NlcnQoIWlzbnVs bCk7CisJCWJhID0gcGdfZGV0b2FzdF9kYXR1bV9wYWNrZWQoKGJ5dGVhICopIERhdHVtR2V0 UG9pbnRlcihkYXR1bSkpOworCisJCXBxX2JlZ2lubWVzc2FnZSgmYnVmLCAnWScpOyAvKiBD b2x1bW5FbmNyeXB0aW9uS2V5ICovCisJCXBxX3NlbmRpbnQzMigmYnVmLCBja2Rmb3JtLT5j a2RjZWtpZCk7CisJCXBxX3NlbmRpbnQzMigmYnVmLCBja2Rmb3JtLT5ja2RjbWtpZCk7CisJ CXBxX3NlbmRpbnQzMigmYnVmLCBja2Rmb3JtLT5ja2RjbWthbGcpOworCQlwcV9zZW5kaW50 MzIoJmJ1ZiwgVkFSU0laRV9BTllfRVhIRFIoYmEpKTsKKwkJcHFfc2VuZGJ5dGVzKCZidWYs IFZBUkRBVEFfQU5ZKGJhKSwgVkFSU0laRV9BTllfRVhIRFIoYmEpKTsKKwkJcHFfZW5kbWVz c2FnZSgmYnVmKTsKKworCQlmb3VuZCA9IHRydWU7CisJfQorCisJLyoKKwkgKiBUaGlzIGlz IGEgdXNlci1mYWNpbmcgbWVzc2FnZSwgYmVjYXVzZSB3aXRoIEFMVEVSIGl0IGlzIHBvc3Np YmxlIHRvCisJICogZGVsZXRlIGFsbCBkYXRhIGVudHJpZXMgZm9yIGEgQ0VLLgorCSAqLwor CWlmICghZm91bmQpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9PQkpFQ1QpLAorCQkJCWVycm1zZygibm8gZGF0YSBmb3IgY29sdW1uIGVuY3J5 cHRpb24ga2V5IFwiJXNcIiIsIGdldF9jZWtfbmFtZShhdHRjZWssIGZhbHNlKSkpOworCisJ c3lzdGFibGVfZW5kc2NhbihzZCk7CisJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOworCisJ aWYgKCFyZWdpc3RlcmVkX2ludmFsKQorCXsKKwkJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2Fs bGJhY2soQ0VLREFUQU9JRCwgY2VrX2NoYW5nZV9jYiwgKERhdHVtKSAwKTsKKwkJcmVnaXN0 ZXJlZF9pbnZhbCA9IHRydWU7CisJfQorCisJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRT d2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsKKwljZWtfc2VudCA9IGxhcHBlbmRfb2lkKGNl a19zZW50LCBhdHRjZWspOworCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsK K30KKwogLyoKICAqIFNlbmRSb3dEZXNjcmlwdGlvbk1lc3NhZ2UgLS0tIHNlbmQgYSBSb3dE ZXNjcmlwdGlvbiBtZXNzYWdlIHRvIHRoZSBmcm9udGVuZAogICoKQEAgLTE2Nyw2ICszMzIs NyBAQCBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0luZm8gYnVmLCBUdXBsZURl c2MgdHlwZWluZm8sCiAJCQkJCQkgIExpc3QgKnRhcmdldGxpc3QsIGludDE2ICpmb3JtYXRz KQogewogCWludAkJCW5hdHRzID0gdHlwZWluZm8tPm5hdHRzOworCXNpemVfdAkJc3o7CiAJ aW50CQkJaTsKIAlMaXN0Q2VsbCAgICp0bGlzdF9pdGVtID0gbGlzdF9oZWFkKHRhcmdldGxp c3QpOwogCkBAIC0xODMsMTQgKzM0OSwxNyBAQCBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdl KFN0cmluZ0luZm8gYnVmLCBUdXBsZURlc2MgdHlwZWluZm8sCiAJICogSGF2ZSB0byBvdmVy ZXN0aW1hdGUgdGhlIHNpemUgb2YgdGhlIGNvbHVtbi1uYW1lcywgdG8gYWNjb3VudCBmb3IK IAkgKiBjaGFyYWN0ZXIgc2V0IG92ZXJoZWFkLgogCSAqLwotCWVubGFyZ2VTdHJpbmdJbmZv KGJ1ZiwgKE5BTUVEQVRBTEVOICogTUFYX0NPTlZFUlNJT05fR1JPV1RIIC8qIGF0dG5hbWUg Ki8KLQkJCQkJCQkrIHNpemVvZihPaWQpCS8qIHJlc29yaWd0YmwgKi8KLQkJCQkJCQkrIHNp emVvZihBdHRyTnVtYmVyKQkvKiByZXNvcmlnY29sICovCi0JCQkJCQkJKyBzaXplb2YoT2lk KQkvKiBhdHR0eXBpZCAqLwotCQkJCQkJCSsgc2l6ZW9mKGludDE2KSAvKiBhdHRsZW4gKi8K LQkJCQkJCQkrIHNpemVvZihpbnQzMikgLyogYXR0eXBtb2QgKi8KLQkJCQkJCQkrIHNpemVv ZihpbnQxNikgLyogZm9ybWF0ICovCi0JCQkJCQkJKSAqIG5hdHRzKTsKKwlzeiA9IChOQU1F REFUQUxFTiAqIE1BWF9DT05WRVJTSU9OX0dST1dUSCAvKiBhdHRuYW1lICovCisJCSAgKyBz aXplb2YoT2lkKQkvKiByZXNvcmlndGJsICovCisJCSAgKyBzaXplb2YoQXR0ck51bWJlcikJ LyogcmVzb3JpZ2NvbCAqLworCQkgICsgc2l6ZW9mKE9pZCkJLyogYXR0dHlwaWQgKi8KKwkJ ICArIHNpemVvZihpbnQxNikgLyogYXR0bGVuICovCisJCSAgKyBzaXplb2YoaW50MzIpIC8q IGF0dHlwbW9kICovCisJCSAgKyBzaXplb2YoaW50MTYpKTsgLyogZm9ybWF0ICovCisJaWYg KE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXN6ICs9IChzaXpl b2YoaW50MzIpCQkvKiBhdHRjZWtpZCAqLworCQkJICAgKyBzaXplb2YoaW50MzIpKTsJLyog YXR0ZW5jYWxnICovCisJZW5sYXJnZVN0cmluZ0luZm8oYnVmLCBzeiAqIG5hdHRzKTsKIAog CWZvciAoaSA9IDA7IGkgPCBuYXR0czsgKytpKQogCXsKQEAgLTIwMCw2ICszNjksOCBAQCBT ZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0luZm8gYnVmLCBUdXBsZURlc2MgdHlw ZWluZm8sCiAJCU9pZAkJCXJlc29yaWd0Ymw7CiAJCUF0dHJOdW1iZXIJcmVzb3JpZ2NvbDsK IAkJaW50MTYJCWZvcm1hdDsKKwkJT2lkCQkJYXR0Y2VraWQgPSBJbnZhbGlkT2lkOworCQlp bnQzMgkJYXR0ZW5jYWxnID0gMDsKIAogCQkvKgogCQkgKiBJZiBjb2x1bW4gaXMgYSBkb21h aW4sIHNlbmQgdGhlIGJhc2UgdHlwZSBhbmQgdHlwbW9kIGluc3RlYWQuCkBAIC0yMzEsNiAr NDAyLDI5IEBAIFNlbmRSb3dEZXNjcmlwdGlvbk1lc3NhZ2UoU3RyaW5nSW5mbyBidWYsIFR1 cGxlRGVzYyB0eXBlaW5mbywKIAkJZWxzZQogCQkJZm9ybWF0ID0gMDsKIAorCQlpZiAoTXlQ cm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCAmJiB0eXBlX2lzX2VuY3J5cHRl ZChhdHR0eXBpZCkpCisJCXsKKwkJCUhlYXBUdXBsZQl0cDsKKwkJCUZvcm1fcGdfYXR0cmli dXRlIG9yaWdfYXR0OworCisJCQl0cCA9IFNlYXJjaFN5c0NhY2hlMihBVFROVU0sIE9iamVj dElkR2V0RGF0dW0ocmVzb3JpZ3RibCksIEludDE2R2V0RGF0dW0ocmVzb3JpZ2NvbCkpOwor CQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCQllbG9nKEVSUk9SLCAiY2FjaGUg bG9va3VwIGZhaWxlZCBmb3IgYXR0cmlidXRlICVkIG9mIHJlbGF0aW9uICV1IiwgcmVzb3Jp Z2NvbCwgcmVzb3JpZ3RibCk7CisJCQlvcmlnX2F0dCA9IChGb3JtX3BnX2F0dHJpYnV0ZSkg R0VUU1RSVUNUKHRwKTsKKwkJCU1heWJlU2VuZENvbHVtbkVuY3J5cHRpb25LZXlNZXNzYWdl KG9yaWdfYXR0LT5hdHRjZWspOworCQkJYXR0dHlwaWQgPSBvcmlnX2F0dC0+YXR0dXNlcnR5 cGlkOworCQkJYXR0dHlwbW9kID0gb3JpZ19hdHQtPmF0dHVzZXJ0eXBtb2Q7CisJCQlhdHRj ZWtpZCA9IG9yaWdfYXR0LT5hdHRjZWs7CisJCQlhdHRlbmNhbGcgPSBvcmlnX2F0dC0+YXR0 dHlwbW9kOworCQkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKworCQkJLyoKKwkJCSAqIEVuY3J5 cHRlZCB0eXBlcyBhcmUgYWx3YXlzIHNlbnQgaW4gYmluYXJ5IHdoZW4gY29sdW1uCisJCQkg KiBlbmNyeXB0aW9uIGlzIGVuYWJsZWQuCisJCQkgKi8KKwkJCWZvcm1hdCA9IDE7CisJCX0K KwogCQlwcV93cml0ZXN0cmluZyhidWYsIE5hbWVTdHIoYXR0LT5hdHRuYW1lKSk7CiAJCXBx X3dyaXRlaW50MzIoYnVmLCByZXNvcmlndGJsKTsKIAkJcHFfd3JpdGVpbnQxNihidWYsIHJl c29yaWdjb2wpOwpAQCAtMjM4LDYgKzQzMiwxMSBAQCBTZW5kUm93RGVzY3JpcHRpb25NZXNz YWdlKFN0cmluZ0luZm8gYnVmLCBUdXBsZURlc2MgdHlwZWluZm8sCiAJCXBxX3dyaXRlaW50 MTYoYnVmLCBhdHQtPmF0dGxlbik7CiAJCXBxX3dyaXRlaW50MzIoYnVmLCBhdHR0eXBtb2Qp OwogCQlwcV93cml0ZWludDE2KGJ1ZiwgZm9ybWF0KTsKKwkJaWYgKE15UHJvY1BvcnQtPmNv bHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsKKwkJCXBxX3dyaXRlaW50MzIoYnVmLCBh dHRjZWtpZCk7CisJCQlwcV93cml0ZWludDMyKGJ1ZiwgYXR0ZW5jYWxnKTsKKwkJfQogCX0K IAogCXBxX2VuZG1lc3NhZ2VfcmV1c2UoYnVmKTsKQEAgLTI3MSw2ICs0NzAsMTMgQEAgcHJp bnR0dXBfcHJlcGFyZV9pbmZvKERSX3ByaW50dHVwICpteVN0YXRlLCBUdXBsZURlc2MgdHlw ZWluZm8sIGludCBudW1BdHRycykKIAkJaW50MTYJCWZvcm1hdCA9IChmb3JtYXRzID8gZm9y bWF0c1tpXSA6IDApOwogCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyID0gVHVwbGVEZXNjQXR0 cih0eXBlaW5mbywgaSk7CiAKKwkJLyoKKwkJICogRW5jcnlwdGVkIHR5cGVzIGFyZSBhbHdh eXMgc2VudCBpbiBiaW5hcnkgd2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBpcworCQkgKiBlbmFi bGVkLgorCQkgKi8KKwkJaWYgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJs ZWQgJiYgdHlwZV9pc19lbmNyeXB0ZWQoYXR0ci0+YXR0dHlwaWQpKQorCQkJZm9ybWF0ID0g MTsKKwogCQl0aGlzU3RhdGUtPmZvcm1hdCA9IGZvcm1hdDsKIAkJaWYgKGZvcm1hdCA9PSAw KQogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2Mu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCmluZGV4IDcyYTJjM2Qz ZGIuLmY4NmJhMjk5YzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24v dHVwZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCkBA IC00NTksNiArNDU5LDEyIEBAIGVxdWFsVHVwbGVEZXNjcyhUdXBsZURlc2MgdHVwZGVzYzEs IFR1cGxlRGVzYyB0dXBkZXNjMikKIAkJCXJldHVybiBmYWxzZTsKIAkJaWYgKGF0dHIxLT5h dHRpc2xvY2FsICE9IGF0dHIyLT5hdHRpc2xvY2FsKQogCQkJcmV0dXJuIGZhbHNlOworCQlp ZiAoYXR0cjEtPmF0dGNlayAhPSBhdHRyMi0+YXR0Y2VrKQorCQkJcmV0dXJuIGZhbHNlOwor CQlpZiAoYXR0cjEtPmF0dHVzZXJ0eXBpZCAhPSBhdHRyMi0+YXR0dXNlcnR5cGlkKQorCQkJ cmV0dXJuIGZhbHNlOworCQlpZiAoYXR0cjEtPmF0dHVzZXJ0eXBtb2QgIT0gYXR0cjItPmF0 dHVzZXJ0eXBtb2QpCisJCQlyZXR1cm4gZmFsc2U7CiAJCWlmIChhdHRyMS0+YXR0aW5oY291 bnQgIT0gYXR0cjItPmF0dGluaGNvdW50KQogCQkJcmV0dXJuIGZhbHNlOwogCQlpZiAoYXR0 cjEtPmF0dGNvbGxhdGlvbiAhPSBhdHRyMi0+YXR0Y29sbGF0aW9uKQpAQCAtNjI5LDYgKzYz NSw5IEBAIFR1cGxlRGVzY0luaXRFbnRyeShUdXBsZURlc2MgZGVzYywKIAlhdHQtPmF0dGdl bmVyYXRlZCA9ICdcMCc7CiAJYXR0LT5hdHRpc2Ryb3BwZWQgPSBmYWxzZTsKIAlhdHQtPmF0 dGlzbG9jYWwgPSB0cnVlOworCWF0dC0+YXR0Y2VrID0gMDsKKwlhdHQtPmF0dHVzZXJ0eXBp ZCA9IDA7CisJYXR0LT5hdHR1c2VydHlwbW9kID0gLTE7CiAJYXR0LT5hdHRpbmhjb3VudCA9 IDA7CiAJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBhcmUgbm90IHByZXNlbnQgaW4gdHVw bGVkZXNjcyAqLwogCkBAIC02OTAsNiArNjk5LDkgQEAgVHVwbGVEZXNjSW5pdEJ1aWx0aW5F bnRyeShUdXBsZURlc2MgZGVzYywKIAlhdHQtPmF0dGdlbmVyYXRlZCA9ICdcMCc7CiAJYXR0 LT5hdHRpc2Ryb3BwZWQgPSBmYWxzZTsKIAlhdHQtPmF0dGlzbG9jYWwgPSB0cnVlOworCWF0 dC0+YXR0Y2VrID0gMDsKKwlhdHQtPmF0dHVzZXJ0eXBpZCA9IDA7CisJYXR0LT5hdHR1c2Vy dHlwbW9kID0gLTE7CiAJYXR0LT5hdHRpbmhjb3VudCA9IDA7CiAJLyogdmFyaWFibGUtbGVu Z3RoIGZpZWxkcyBhcmUgbm90IHByZXNlbnQgaW4gdHVwbGVkZXNjcyAqLwogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jCmluZGV4IDI0YmFiNTg0OTkuLmNjNDgw Njk5MzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0 ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jCkBAIC0z MzEsNyArMzMxLDcgQEAgY2hlY2tfaGFzaF9mdW5jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBp bnQxNiBhbXByb2NudW0sIE9pZCBhcmd0eXBlKQogCQkJCSBhcmd0eXBlID09IEJPT0xPSUQp CiAJCQkgLyogb2theSwgYWxsb3dlZCB1c2Ugb2YgaGFzaGNoYXIoKSAqLyA7CiAJCWVsc2Ug aWYgKChmdW5jaWQgPT0gRl9IQVNIVkFSTEVOQSB8fCBmdW5jaWQgPT0gRl9IQVNIVkFSTEVO QUVYVEVOREVEKSAmJgotCQkJCSBhcmd0eXBlID09IEJZVEVBT0lEKQorCQkJCSAoYXJndHlw ZSA9PSBCWVRFQU9JRCB8fCBhcmd0eXBlID09IFBHX0VOQ1JZUFRFRF9ERVRPSUQpKQogCQkJ IC8qIG9rYXksIGFsbG93ZWQgdXNlIG9mIGhhc2h2YXJsZW5hKCkgKi8gOwogCQllbHNlCiAJ CQlyZXN1bHQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFr ZWZpbGUgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCmluZGV4IGE2MDEwN2JmOTQu LjdiOTU3NTYzNWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUK KysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNzIsNyArNzIsOCBAQCBD QVRBTE9HX0hFQURFUlMgOj0gXAogCXBnX2NvbGxhdGlvbi5oIHBnX3BhcmFtZXRlcl9hY2wu aCBwZ19wYXJ0aXRpb25lZF90YWJsZS5oIFwKIAlwZ19yYW5nZS5oIHBnX3RyYW5zZm9ybS5o IFwKIAlwZ19zZXF1ZW5jZS5oIHBnX3B1YmxpY2F0aW9uLmggcGdfcHVibGljYXRpb25fbmFt ZXNwYWNlLmggXAotCXBnX3B1YmxpY2F0aW9uX3JlbC5oIHBnX3N1YnNjcmlwdGlvbi5oIHBn X3N1YnNjcmlwdGlvbl9yZWwuaAorCXBnX3B1YmxpY2F0aW9uX3JlbC5oIHBnX3N1YnNjcmlw dGlvbi5oIHBnX3N1YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfY29sbWFzdGVya2V5LmggcGdf Y29sZW5ja2V5LmggcGdfY29sZW5ja2V5ZGF0YS5oCiAKIEdFTkVSQVRFRF9IRUFERVJTIDo9 ICQoQ0FUQUxPR19IRUFERVJTOiUuaD0lX2QuaCkgc2NoZW1hcGcuaCBzeXN0ZW1fZmtfaW5m by5oCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IGM0MjMyMzQ0YWEuLmEzNTQ3YzZjYWUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAtMzMsNyArMzMsOSBAQAogI2luY2x1ZGUgImNh dGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19jbGFzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5j a2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29udmVy c2lvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2UuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgiCkBAIC0yNDcsNiArMjQ5LDEyIEBAIHJlc3RyaWN0 X2FuZF9jaGVja19ncmFudChib29sIGlzX2dyYW50LCBBY2xNb2RlIGF2YWlsX2dvcHRpb25z LCBib29sIGFsbF9wcml2cywKIAkJY2FzZSBPQkpFQ1RfU0VRVUVOQ0U6CiAJCQl3aG9sZV9t YXNrID0gQUNMX0FMTF9SSUdIVFNfU0VRVUVOQ0U7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpF Q1RfQ0VLOgorCQkJd2hvbGVfbWFzayA9IEFDTF9BTExfUklHSFRTX0NFSzsKKwkJCWJyZWFr OworCQljYXNlIE9CSkVDVF9DTUs6CisJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNf Q01LOworCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgogCQkJd2hvbGVfbWFz ayA9IEFDTF9BTExfUklHSFRTX0RBVEFCQVNFOwogCQkJYnJlYWs7CkBAIC00NzMsNiArNDgx LDE0IEBAIEV4ZWN1dGVHcmFudFN0bXQoR3JhbnRTdG10ICpzdG10KQogCQkJYWxsX3ByaXZp bGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19TRVFVRU5DRTsKIAkJCWVycm9ybXNnID0gZ2V0dGV4 dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBzZXF1ZW5jZSIpOwogCQkJ YnJlYWs7CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FM TF9SSUdIVFNfQ0VLOworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJp dmlsZWdlIHR5cGUgJXMgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSIpOworCQkJYnJlYWs7 CisJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdI VFNfQ01LOworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdl IHR5cGUgJXMgZm9yIGNvbHVtbiBtYXN0ZXIga2V5Iik7CisJCQlicmVhazsKIAkJY2FzZSBP QkpFQ1RfREFUQUJBU0U6CiAJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX0RB VEFCQVNFOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdl IHR5cGUgJXMgZm9yIGRhdGFiYXNlIik7CkBAIC01OTcsNiArNjEzLDEyIEBAIEV4ZWNHcmFu dFN0bXRfb2lkcyhJbnRlcm5hbEdyYW50ICppc3RtdCkKIAkJY2FzZSBPQkpFQ1RfU0VRVUVO Q0U6CiAJCQlFeGVjR3JhbnRfUmVsYXRpb24oaXN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2Ug T0JKRUNUX0NFSzoKKwkJCUV4ZWNHcmFudF9jb21tb24oaXN0bXQsIENvbHVtbkVuY0tleVJl bGF0aW9uSWQsIEFDTF9BTExfUklHSFRTX0NFSywgTlVMTCk7CisJCQlicmVhazsKKwkJY2Fz ZSBPQkpFQ1RfQ01LOgorCQkJRXhlY0dyYW50X2NvbW1vbihpc3RtdCwgQ29sdW1uTWFzdGVy S2V5UmVsYXRpb25JZCwgQUNMX0FMTF9SSUdIVFNfQ01LLCBOVUxMKTsKKwkJCWJyZWFrOwog CQljYXNlIE9CSkVDVF9EQVRBQkFTRToKIAkJCUV4ZWNHcmFudF9jb21tb24oaXN0bXQsIERh dGFiYXNlUmVsYXRpb25JZCwgQUNMX0FMTF9SSUdIVFNfREFUQUJBU0UsIE5VTEwpOwogCQkJ YnJlYWs7CkBAIC02NzYsNiArNjk4LDI2IEBAIG9iamVjdE5hbWVzVG9PaWRzKE9iamVjdFR5 cGUgb2JqdHlwZSwgTGlzdCAqb2JqbmFtZXMsIGJvb2wgaXNfZ3JhbnQpCiAJCQkJb2JqZWN0 cyA9IGxhcHBlbmRfb2lkKG9iamVjdHMsIHJlbE9pZCk7CiAJCQl9CiAJCQlicmVhazsKKwkJ Y2FzZSBPQkpFQ1RfQ0VLOgorCQkJZm9yZWFjaChjZWxsLCBvYmpuYW1lcykKKwkJCXsKKwkJ CQlMaXN0CSAgICpjZWtuYW1lID0gKExpc3QgKikgbGZpcnN0KGNlbGwpOworCQkJCU9pZAkJ CW9pZDsKKworCQkJCW9pZCA9IGdldF9jZWtfb2lkKGNla25hbWUsIGZhbHNlKTsKKwkJCQlv YmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgb2lkKTsKKwkJCX0KKwkJCWJyZWFrOwor CQljYXNlIE9CSkVDVF9DTUs6CisJCQlmb3JlYWNoKGNlbGwsIG9iam5hbWVzKQorCQkJewor CQkJCUxpc3QJICAgKmNta25hbWUgPSAoTGlzdCAqKSBsZmlyc3QoY2VsbCk7CisJCQkJT2lk CQkJb2lkOworCisJCQkJb2lkID0gZ2V0X2Nta19vaWQoY21rbmFtZSwgZmFsc2UpOworCQkJ CW9iamVjdHMgPSBsYXBwZW5kX29pZChvYmplY3RzLCBvaWQpOworCQkJfQorCQkJYnJlYWs7 CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgogCQkJZm9yZWFjaChjZWxsLCBvYmpuYW1lcykK IAkJCXsKQEAgLTI2OTMsNiArMjczNSwxMiBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQg YWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0FHR1JFR0FU RToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIGFn Z3JlZ2F0ZSAlcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJ CQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiBl bmNyeXB0aW9uIGtleSAlcyIpOworCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX0NN SzoKKwkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIGNv bHVtbiBtYXN0ZXIga2V5ICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpFQ1Rf Q09MTEFUSU9OOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmll ZCBmb3IgY29sbGF0aW9uICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI3OTgsNiArMjg0Niw3 IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlw ZSwKIAkJCQkJY2FzZSBPQkpFQ1RfQU1QUk9DOgogCQkJCQljYXNlIE9CSkVDVF9BVFRSSUJV VEU6CiAJCQkJCWNhc2UgT0JKRUNUX0NBU1Q6CisJCQkJCWNhc2UgT0JKRUNUX0NFS0RBVEE6 CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFVTFQ6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFDTDoK IAkJCQkJY2FzZSBPQkpFQ1RfRE9NQ09OU1RSQUlOVDoKQEAgLTI4MjgsNiArMjg3NywxMiBA QCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUs CiAJCQkJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9v cCgibXVzdCBiZSBvd25lciBvZiBhZ2dyZWdhdGUgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJ CQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUg b3duZXIgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5ICVzIik7CisJCQkJCQlicmVhazsKKwkJ CQkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJl IG93bmVyIG9mIGNvbHVtbiBtYXN0ZXIga2V5ICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJ Y2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0 IGJlIG93bmVyIG9mIGNvbGxhdGlvbiAlcyIpOwogCQkJCQkJYnJlYWs7CkBAIC0yOTM4LDYg KzI5OTMsNyBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBl IG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJCQkJY2FzZSBPQkpFQ1Rf QVRUUklCVVRFOgogCQkJCQljYXNlIE9CSkVDVF9DQVNUOgorCQkJCQljYXNlIE9CSkVDVF9D RUtEQVRBOgogCQkJCQljYXNlIE9CSkVDVF9ERUZBVUxUOgogCQkJCQljYXNlIE9CSkVDVF9E RUZBQ0w6CiAJCQkJCWNhc2UgT0JKRUNUX0RPTUNPTlNUUkFJTlQ6CkBAIC0zMDE5LDYgKzMw NzUsMTAgQEAgcGdfYWNsbWFzayhPYmplY3RUeXBlIG9ianR5cGUsIE9pZCBvYmplY3Rfb2lk LCBBdHRyTnVtYmVyIGF0dG51bSwgT2lkIHJvbGVpZCwKIAkJY2FzZSBPQkpFQ1RfVEFCTEU6 CiAJCWNhc2UgT0JKRUNUX1NFUVVFTkNFOgogCQkJcmV0dXJuIHBnX2NsYXNzX2FjbG1hc2so b2JqZWN0X29pZCwgcm9sZWlkLCBtYXNrLCBob3cpOworCQljYXNlIE9CSkVDVF9DRUs6CisJ CQlyZXR1cm4gb2JqZWN0X2FjbG1hc2soQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgb2JqZWN0 X29pZCwgcm9sZWlkLCBtYXNrLCBob3cpOworCQljYXNlIE9CSkVDVF9DTUs6CisJCQlyZXR1 cm4gb2JqZWN0X2FjbG1hc2soQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgb2JqZWN0X29p ZCwgcm9sZWlkLCBtYXNrLCBob3cpOwogCQljYXNlIE9CSkVDVF9EQVRBQkFTRToKIAkJCXJl dHVybiBvYmplY3RfYWNsbWFzayhEYXRhYmFzZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJv bGVpZCwgbWFzaywgaG93KTsKIAkJY2FzZSBPQkpFQ1RfRlVOQ1RJT046CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvZGVwZW5kZW5jeS5jCmluZGV4IGY4YTEzNmJhMGEuLmNhYjZjZmQxNDAgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBAIC0zMCw3ICszMCwxMCBAQAogI2luY2x1ZGUgImNh dGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoX21lbWJlcnMu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X2NvbGVuY2tleS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnZlcnNpb24uaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2RhdGFiYXNlLmgiCkBAIC0xNTMsNiArMTU2LDkgQEAgc3RhdGljIGNvbnN0IE9pZCBv YmplY3RfY2xhc3Nlc1tdID0gewogCVR5cGVSZWxhdGlvbklkLAkJCQkvKiBPQ0xBU1NfVFlQ RSAqLwogCUNhc3RSZWxhdGlvbklkLAkJCQkvKiBPQ0xBU1NfQ0FTVCAqLwogCUNvbGxhdGlv blJlbGF0aW9uSWQsCQkvKiBPQ0xBU1NfQ09MTEFUSU9OICovCisJQ29sdW1uRW5jS2V5UmVs YXRpb25JZCwJCS8qIE9DTEFTU19DRUsgKi8KKwlDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25J ZCwJLyogT0NMQVNTX0NFS0RBVEEgKi8KKwlDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLAkv KiBPQ0xBU1NfQ01LICovCiAJQ29uc3RyYWludFJlbGF0aW9uSWQsCQkvKiBPQ0xBU1NfQ09O U1RSQUlOVCAqLwogCUNvbnZlcnNpb25SZWxhdGlvbklkLAkJLyogT0NMQVNTX0NPTlZFUlNJ T04gKi8KIAlBdHRyRGVmYXVsdFJlbGF0aW9uSWQsCQkvKiBPQ0xBU1NfREVGQVVMVCAqLwpA QCAtMTQ5Myw2ICsxNDk5LDkgQEAgZG9EZWxldGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpv YmplY3QsIGludCBmbGFncykKIAogCQljYXNlIE9DTEFTU19DQVNUOgogCQljYXNlIE9DTEFT U19DT0xMQVRJT046CisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJY2FzZSBPQ0xBU1NfQ0VLREFU QToKKwkJY2FzZSBPQ0xBU1NfQ01LOgogCQljYXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQlj YXNlIE9DTEFTU19MQU5HVUFHRToKIAkJY2FzZSBPQ0xBU1NfT1BDTEFTUzoKQEAgLTI4NTks NiArMjg2OCwxNSBAQCBnZXRPYmplY3RDbGFzcyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmpl Y3QpCiAJCWNhc2UgQ29sbGF0aW9uUmVsYXRpb25JZDoKIAkJCXJldHVybiBPQ0xBU1NfQ09M TEFUSU9OOwogCisJCWNhc2UgQ29sdW1uRW5jS2V5UmVsYXRpb25JZDoKKwkJCXJldHVybiBP Q0xBU1NfQ0VLOworCisJCWNhc2UgQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQ6CisJCQly ZXR1cm4gT0NMQVNTX0NFS0RBVEE7CisKKwkJY2FzZSBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlv bklkOgorCQkJcmV0dXJuIE9DTEFTU19DTUs7CisKIAkJY2FzZSBDb25zdHJhaW50UmVsYXRp b25JZDoKIAkJCXJldHVybiBPQ0xBU1NfQ09OU1RSQUlOVDsKIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpp bmRleCA0ZjAwNjgyMGI4Li5kZjI4MmM3OTZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL2hlYXAuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpAQCAtNDIs NiArNDIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGFydGl0aW9uLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXR0cmRlZi5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19j b2xsYXRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX2ZvcmVpZ25fdGFibGUuaCIKQEAgLTUxMSw3ICs1MTIsMTQgQEAg Q2hlY2tBdHRyaWJ1dGVOYW1lc1R5cGVzKFR1cGxlRGVzYyB0dXBkZXNjLCBjaGFyIHJlbGtp bmQsCiAJCQkJCQkgICBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpLT5hdHR0eXBpZCwKIAkJ CQkJCSAgIFR1cGxlRGVzY0F0dHIodHVwZGVzYywgaSktPmF0dGNvbGxhdGlvbiwKIAkJCQkJ CSAgIE5JTCwgLyogYXNzdW1lIHdlJ3JlIGNyZWF0aW5nIGEgbmV3IHJvd3R5cGUgKi8KLQkJ CQkJCSAgIGZsYWdzKTsKKwkJCQkJCSAgIGZsYWdzIHwKKwkJCQkJCSAgIC8qCisJCQkJCQkJ KiBBbGxvdyBlbmNyeXB0ZWQgdHlwZXMgaWYgQ0VLIGhhcyBiZWVuIHByb3ZpZGVkLAorCQkJ CQkJCSogd2hpY2ggbWVhbnMgdGhpcyB0eXBlIGhhcyBiZWVuIGludGVybmFsbHkKKwkJCQkJ CQkqIGdlbmVyYXRlZC4gIFdlIGRvbid0IHdhbnQgdG8gYWxsb3cgZXhwbGljaXRseQorCQkJ CQkJCSogdXNpbmcgdGhlc2UgdHlwZXMuCisJCQkJCQkJKi8KKwkJCQkJCSAgIChUdXBsZURl c2NBdHRyKHR1cGRlc2MsIGkpLT5hdHRjZWsgPyBDSEtBVFlQRV9FTkNSWVBURUQgOiAwKSk7 CiAJfQogfQogCkBAIC02NTMsNiArNjYxLDIxIEBAIENoZWNrQXR0cmlidXRlVHlwZShjb25z dCBjaGFyICphdHRuYW1lLAogCQkJCQkJICAgZmxhZ3MpOwogCX0KIAorCS8qCisJICogRW5j cnlwdGVkIHR5cGVzIGFyZSBub3QgYWxsb3dlZCBleHBsaWN0bHkgYXMgY29sdW1uIHR5cGVz LiAgTW9zdAorCSAqIGNhbGxlcnMgcnVuIHRoaXMgY2hlY2sgYmVmb3JlIHRyYW5zZm9ybWlu ZyB0aGUgY29sdW1uIGRlZmluaXRpb24gdG8gdXNlCisJICogdGhlIGVuY3J5cHRlZCB0eXBl cy4gIFNvbWUgY2FsbGVycyBjYWxsIGl0IGFnYWluIGFmdGVyOyB0aG9zZSBzaG91bGQKKwkg KiBzZXQgdGhlIENIS0FUWVBFX0VOQ1JZUFRFRCB0byBsZXQgdGhpcyBwYXNzLgorCSAqLwor CWlmICh0eXBlX2lzX2VuY3J5cHRlZChhdHR0eXBpZCkgJiYgIShmbGFncyAmIENIS0FUWVBF X0VOQ1JZUFRFRCkpCisJeworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9UQUJMRV9ERUZJTklUSU9OKSwKKwkJCQkgZXJyYmFja3RyYWNlKCksCisJ CQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBoYXMgaW50ZXJuYWwgdHlwZSAlcyIsCisJCQkJ CQlhdHRuYW1lLCBmb3JtYXRfdHlwZV9iZShhdHR0eXBpZCkpKSk7CisJfQorCiAJLyoKIAkg KiBUaGlzIG1pZ2h0IG5vdCBiZSBzdHJpY3RseSBpbnZhbGlkIHBlciBTUUwgc3RhbmRhcmQs IGJ1dCBpdCBpcyBwcmV0dHkKIAkgKiB1c2VsZXNzLCBhbmQgaXQgY2Fubm90IGJlIGR1bXBl ZCwgc28gd2UgbXVzdCBkaXNhbGxvdyBpdC4KQEAgLTc0OSw2ICs3NzIsOSBAQCBJbnNlcnRQ Z0F0dHJpYnV0ZVR1cGxlcyhSZWxhdGlvbiBwZ19hdHRyaWJ1dGVfcmVsLAogCQlzbG90W3Ns b3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0Z2VuZXJhdGVkIC0g MV0gPSBDaGFyR2V0RGF0dW0oYXR0cnMtPmF0dGdlbmVyYXRlZCk7CiAJCXNsb3Rbc2xvdENv dW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRpc2Ryb3BwZWQgLSAxXSA9 IEJvb2xHZXREYXR1bShhdHRycy0+YXR0aXNkcm9wcGVkKTsKIAkJc2xvdFtzbG90Q291bnRd LT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGlzbG9jYWwgLSAxXSA9IEJvb2xH ZXREYXR1bShhdHRycy0+YXR0aXNsb2NhbCk7CisJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3Zh bHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRjZWsgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0o YXR0cnMtPmF0dGNlayk7CisJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3Bn X2F0dHJpYnV0ZV9hdHR1c2VydHlwaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oYXR0cnMt PmF0dHVzZXJ0eXBpZCk7CisJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3Bn X2F0dHJpYnV0ZV9hdHR1c2VydHlwbW9kIC0gMV0gPSBJbnQzMkdldERhdHVtKGF0dHJzLT5h dHR1c2VydHlwbW9kKTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdf YXR0cmlidXRlX2F0dGluaGNvdW50IC0gMV0gPSBJbnQzMkdldERhdHVtKGF0dHJzLT5hdHRp bmhjb3VudCk7CiAJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJp YnV0ZV9hdHRjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oYXR0cnMtPmF0dGNv bGxhdGlvbik7CiAJCWlmIChhdHRvcHRpb25zICYmIGF0dG9wdGlvbnNbbmF0dHNdICE9IChE YXR1bSkgMCkKQEAgLTg0MCw2ICs4NjYsMjAgQEAgQWRkTmV3QXR0cmlidXRlVHVwbGVzKE9p ZCBuZXdfcmVsX29pZCwKIAkJCQkJCQkgdHVwZGVzYy0+YXR0cnNbaV0uYXR0Y29sbGF0aW9u KTsKIAkJCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5E RU5DWV9OT1JNQUwpOwogCQl9CisKKwkJaWYgKE9pZElzVmFsaWQodHVwZGVzYy0+YXR0cnNb aV0uYXR0Y2VrKSkKKwkJeworCQkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBDb2x1 bW5FbmNLZXlSZWxhdGlvbklkLAorCQkJCQkJCSB0dXBkZXNjLT5hdHRyc1tpXS5hdHRjZWsp OworCQkJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBERVBFTkRF TkNZX05PUk1BTCk7CisJCX0KKworCQlpZiAoT2lkSXNWYWxpZCh0dXBkZXNjLT5hdHRyc1tp XS5hdHR1c2VydHlwaWQpKQorCQl7CisJCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQs IFR5cGVSZWxhdGlvbklkLAorCQkJCQkJCSB0dXBkZXNjLT5hdHRyc1tpXS5hdHR1c2VydHlw aWQpOworCQkJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBERVBF TkRFTkNZX05PUk1BTCk7CisJCX0KIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMKaW5kZXggMTRlNTdhZGVlMi4uMDBmOTE0YmM1ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVz cGFjZS5jCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRlbmN5 LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2F1dGhpZC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2NvbGxhdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29udmVyc2lvbi5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2UuaCIKQEAgLTE5OTcsNiArMTk5OSwyNTQg QEAgT3BmYW1pbHlJc1Zpc2libGUoT2lkIG9wZmlkKQogCXJldHVybiB2aXNpYmxlOwogfQog CisvKgorICogZ2V0X2Nla19vaWQgLSBmaW5kIGEgQ0VLIGJ5IHBvc3NpYmx5IHF1YWxpZmll ZCBuYW1lCisgKi8KK09pZAorZ2V0X2Nla19vaWQoTGlzdCAqbmFtZXMsIGJvb2wgbWlzc2lu Z19vaykKK3sKKwljaGFyCSAgICpzY2hlbWFuYW1lOworCWNoYXIJICAgKmNla25hbWU7CisJ T2lkCQkJbmFtZXNwYWNlSWQ7CisJT2lkCQkJY2Vrb2lkID0gSW52YWxpZE9pZDsKKwlMaXN0 Q2VsbCAgICpsOworCisJLyogZGVjb25zdHJ1Y3QgdGhlIG5hbWUgbGlzdCAqLworCURlY29u c3RydWN0UXVhbGlmaWVkTmFtZShuYW1lcywgJnNjaGVtYW5hbWUsICZjZWtuYW1lKTsKKwor CWlmIChzY2hlbWFuYW1lKQorCXsKKwkJLyogdXNlIGV4YWN0IHNjaGVtYSBnaXZlbiAqLwor CQluYW1lc3BhY2VJZCA9IExvb2t1cEV4cGxpY2l0TmFtZXNwYWNlKHNjaGVtYW5hbWUsIG1p c3Npbmdfb2spOworCQlpZiAobWlzc2luZ19vayAmJiAhT2lkSXNWYWxpZChuYW1lc3BhY2VJ ZCkpCisJCQljZWtvaWQgPSBJbnZhbGlkT2lkOworCQllbHNlCisJCQljZWtvaWQgPSBHZXRT eXNDYWNoZU9pZDIoQ0VLTkFNRU5TUCwgQW51bV9wZ19jb2xlbmNrZXlfb2lkLAorCQkJCQkJ CQkJIFBvaW50ZXJHZXREYXR1bShjZWtuYW1lKSwKKwkJCQkJCQkJCSBPYmplY3RJZEdldERh dHVtKG5hbWVzcGFjZUlkKSk7CisJfQorCWVsc2UKKwl7CisJCS8qIHNlYXJjaCBmb3IgaXQg aW4gc2VhcmNoIHBhdGggKi8KKwkJcmVjb21wdXRlTmFtZXNwYWNlUGF0aCgpOworCisJCWZv cmVhY2gobCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJeworCQkJbmFtZXNwYWNlSWQgPSBsZmly c3Rfb2lkKGwpOworCisJCQlpZiAobmFtZXNwYWNlSWQgPT0gbXlUZW1wTmFtZXNwYWNlKQor CQkJCWNvbnRpbnVlOwkJLyogZG8gbm90IGxvb2sgaW4gdGVtcCBuYW1lc3BhY2UgKi8KKwor CQkJY2Vrb2lkID0gR2V0U3lzQ2FjaGVPaWQyKENFS05BTUVOU1AsIEFudW1fcGdfY29sZW5j a2V5X29pZCwKKwkJCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0oY2VrbmFtZSksCisJCQkJCQkJ CQkgT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOworCQkJaWYgKE9pZElzVmFsaWQo Y2Vrb2lkKSkKKwkJCQlyZXR1cm4gY2Vrb2lkOworCQl9CisJfQorCisJLyogTm90IGZvdW5k IGluIHBhdGggKi8KKwlpZiAoIU9pZElzVmFsaWQoY2Vrb2lkKSAmJiAhbWlzc2luZ19vaykK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpF Q1QpLAorCQkJCSBlcnJtc2coImNvbHVtbiBlbmNyeXB0aW9uIGtleSBcIiVzXCIgZG9lcyBu b3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJcmV0dXJu IGNla29pZDsKK30KKworLyoKKyAqIENFS0lzVmlzaWJsZQorICoJCURldGVybWluZSB3aGV0 aGVyIGEgQ0VLIChpZGVudGlmaWVkIGJ5IE9JRCkgaXMgdmlzaWJsZSBpbiB0aGUKKyAqCQlj dXJyZW50IHNlYXJjaCBwYXRoLiAgVmlzaWJsZSBtZWFucyAid291bGQgYmUgZm91bmQgYnkg c2VhcmNoaW5nCisgKgkJZm9yIHRoZSB1bnF1YWxpZmllZCBwYXJzZXIgbmFtZSIuCisgKi8K K2Jvb2wKK0NFS0lzVmlzaWJsZShPaWQgY2VraWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlG b3JtX3BnX2NvbGVuY2tleSBmb3JtOworCU9pZAkJCW5hbWVzcGFjZTsKKwlib29sCQl2aXNp YmxlOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENFS09JRCwgT2JqZWN0SWRHZXREYXR1 bShjZWtpZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5ICV1Iiwg Y2VraWQpOworCWZvcm0gPSAoRm9ybV9wZ19jb2xlbmNrZXkpIEdFVFNUUlVDVCh0dXApOwor CisJcmVjb21wdXRlTmFtZXNwYWNlUGF0aCgpOworCisJLyoKKwkgKiBRdWljayBjaGVjazog aWYgaXQgYWluJ3QgaW4gdGhlIHBhdGggYXQgYWxsLCBpdCBhaW4ndCB2aXNpYmxlLiBJdGVt cyBpbgorCSAqIHRoZSBzeXN0ZW0gbmFtZXNwYWNlIGFyZSBzdXJlbHkgaW4gdGhlIHBhdGgg YW5kIHNvIHdlIG5lZWRuJ3QgZXZlbiBkbworCSAqIGxpc3RfbWVtYmVyX29pZCgpIGZvciB0 aGVtLgorCSAqLworCW5hbWVzcGFjZSA9IGZvcm0tPmNla25hbWVzcGFjZTsKKwlpZiAobmFt ZXNwYWNlICE9IFBHX0NBVEFMT0dfTkFNRVNQQUNFICYmCisJCSFsaXN0X21lbWJlcl9vaWQo YWN0aXZlU2VhcmNoUGF0aCwgbmFtZXNwYWNlKSkKKwkJdmlzaWJsZSA9IGZhbHNlOworCWVs c2UKKwl7CisJCS8qCisJCSAqIElmIGl0IGlzIGluIHRoZSBwYXRoLCBpdCBtaWdodCBzdGls bCBub3QgYmUgdmlzaWJsZTsgaXQgY291bGQgYmUKKwkJICogaGlkZGVuIGJ5IGFub3RoZXIg cGFyc2VyIG9mIHRoZSBzYW1lIG5hbWUgZWFybGllciBpbiB0aGUgcGF0aC4gU28KKwkJICog d2UgbXVzdCBkbyBhIHNsb3cgY2hlY2sgZm9yIGNvbmZsaWN0aW5nIENFS3MuCisJCSAqLwor CQljaGFyCSAgICpuYW1lID0gTmFtZVN0cihmb3JtLT5jZWtuYW1lKTsKKwkJTGlzdENlbGwg ICAqbDsKKworCQl2aXNpYmxlID0gZmFsc2U7CisJCWZvcmVhY2gobCwgYWN0aXZlU2VhcmNo UGF0aCkKKwkJeworCQkJT2lkCQkJbmFtZXNwYWNlSWQgPSBsZmlyc3Rfb2lkKGwpOworCisJ CQlpZiAobmFtZXNwYWNlSWQgPT0gbXlUZW1wTmFtZXNwYWNlKQorCQkJCWNvbnRpbnVlOwkJ LyogZG8gbm90IGxvb2sgaW4gdGVtcCBuYW1lc3BhY2UgKi8KKworCQkJaWYgKG5hbWVzcGFj ZUlkID09IG5hbWVzcGFjZSkKKwkJCXsKKwkJCQkvKiBGb3VuZCBpdCBmaXJzdCBpbiBwYXRo ICovCisJCQkJdmlzaWJsZSA9IHRydWU7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAoU2Vh cmNoU3lzQ2FjaGVFeGlzdHMyKENFS05BTUVOU1AsCisJCQkJCQkJCQkgIFBvaW50ZXJHZXRE YXR1bShuYW1lKSwKKwkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkp KQorCQkJeworCQkJCS8qIEZvdW5kIHNvbWV0aGluZyBlbHNlIGZpcnN0IGluIHBhdGggKi8K KwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOwor CisJcmV0dXJuIHZpc2libGU7Cit9CisKKy8qCisgKiBnZXRfY21rX29pZCAtIGZpbmQgYSBD TUsgYnkgcG9zc2libHkgcXVhbGlmaWVkIG5hbWUKKyAqLworT2lkCitnZXRfY21rX29pZChM aXN0ICpuYW1lcywgYm9vbCBtaXNzaW5nX29rKQoreworCWNoYXIJICAgKnNjaGVtYW5hbWU7 CisJY2hhcgkgICAqY21rbmFtZTsKKwlPaWQJCQluYW1lc3BhY2VJZDsKKwlPaWQJCQljbWtv aWQgPSBJbnZhbGlkT2lkOworCUxpc3RDZWxsICAgKmw7CisKKwkvKiBkZWNvbnN0cnVjdCB0 aGUgbmFtZSBsaXN0ICovCisJRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lKG5hbWVzLCAmc2No ZW1hbmFtZSwgJmNta25hbWUpOworCisJaWYgKHNjaGVtYW5hbWUpCisJeworCQkvKiB1c2Ug ZXhhY3Qgc2NoZW1hIGdpdmVuICovCisJCW5hbWVzcGFjZUlkID0gTG9va3VwRXhwbGljaXRO YW1lc3BhY2Uoc2NoZW1hbmFtZSwgbWlzc2luZ19vayk7CisJCWlmIChtaXNzaW5nX29rICYm ICFPaWRJc1ZhbGlkKG5hbWVzcGFjZUlkKSkKKwkJCWNta29pZCA9IEludmFsaWRPaWQ7CisJ CWVsc2UKKwkJCWNta29pZCA9IEdldFN5c0NhY2hlT2lkMihDTUtOQU1FTlNQLCBBbnVtX3Bn X2NvbG1hc3RlcmtleV9vaWQsCisJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKGNta25hbWUp LAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKwl9CisJZWxz ZQorCXsKKwkJLyogc2VhcmNoIGZvciBpdCBpbiBzZWFyY2ggcGF0aCAqLworCQlyZWNvbXB1 dGVOYW1lc3BhY2VQYXRoKCk7CisKKwkJZm9yZWFjaChsLCBhY3RpdmVTZWFyY2hQYXRoKQor CQl7CisJCQluYW1lc3BhY2VJZCA9IGxmaXJzdF9vaWQobCk7CisKKwkJCWlmIChuYW1lc3Bh Y2VJZCA9PSBteVRlbXBOYW1lc3BhY2UpCisJCQkJY29udGludWU7CQkvKiBkbyBub3QgbG9v ayBpbiB0ZW1wIG5hbWVzcGFjZSAqLworCisJCQljbWtvaWQgPSBHZXRTeXNDYWNoZU9pZDIo Q01LTkFNRU5TUCwgQW51bV9wZ19jb2xtYXN0ZXJrZXlfb2lkLAorCQkJCQkJCQkJIFBvaW50 ZXJHZXREYXR1bShjbWtuYW1lKSwKKwkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVz cGFjZUlkKSk7CisJCQlpZiAoT2lkSXNWYWxpZChjbWtvaWQpKQorCQkJCXJldHVybiBjbWtv aWQ7CisJCX0KKwl9CisKKwkvKiBOb3QgZm91bmQgaW4gcGF0aCAqLworCWlmICghT2lkSXNW YWxpZChjbWtvaWQpICYmICFtaXNzaW5nX29rKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVycm1zZygiY29sdW1u IG1hc3RlciBrZXkgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCU5hbWVMaXN0VG9T dHJpbmcobmFtZXMpKSkpOworCXJldHVybiBjbWtvaWQ7Cit9CisKKy8qCisgKiBDTUtJc1Zp c2libGUKKyAqCQlEZXRlcm1pbmUgd2hldGhlciBhIENNSyAoaWRlbnRpZmllZCBieSBPSUQp IGlzIHZpc2libGUgaW4gdGhlCisgKgkJY3VycmVudCBzZWFyY2ggcGF0aC4gIFZpc2libGUg bWVhbnMgIndvdWxkIGJlIGZvdW5kIGJ5IHNlYXJjaGluZworICoJCWZvciB0aGUgdW5xdWFs aWZpZWQgcGFyc2VyIG5hbWUiLgorICovCitib29sCitDTUtJc1Zpc2libGUoT2lkIGNta2lk KQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ19jb2xtYXN0ZXJrZXkgZm9ybTsKKwlP aWQJCQluYW1lc3BhY2U7CisJYm9vbAkJdmlzaWJsZTsKKworCXR1cCA9IFNlYXJjaFN5c0Nh Y2hlMShDTUtPSUQsIE9iamVjdElkR2V0RGF0dW0oY21raWQpKTsKKwlpZiAoIUhlYXBUdXBs ZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IGNvbHVtbiBtYXN0ZXIga2V5ICV1IiwgY21raWQpOworCWZvcm0gPSAoRm9ybV9wZ19jb2xt YXN0ZXJrZXkpIEdFVFNUUlVDVCh0dXApOworCisJcmVjb21wdXRlTmFtZXNwYWNlUGF0aCgp OworCisJLyoKKwkgKiBRdWljayBjaGVjazogaWYgaXQgYWluJ3QgaW4gdGhlIHBhdGggYXQg YWxsLCBpdCBhaW4ndCB2aXNpYmxlLiBJdGVtcyBpbgorCSAqIHRoZSBzeXN0ZW0gbmFtZXNw YWNlIGFyZSBzdXJlbHkgaW4gdGhlIHBhdGggYW5kIHNvIHdlIG5lZWRuJ3QgZXZlbiBkbwor CSAqIGxpc3RfbWVtYmVyX29pZCgpIGZvciB0aGVtLgorCSAqLworCW5hbWVzcGFjZSA9IGZv cm0tPmNta25hbWVzcGFjZTsKKwlpZiAobmFtZXNwYWNlICE9IFBHX0NBVEFMT0dfTkFNRVNQ QUNFICYmCisJCSFsaXN0X21lbWJlcl9vaWQoYWN0aXZlU2VhcmNoUGF0aCwgbmFtZXNwYWNl KSkKKwkJdmlzaWJsZSA9IGZhbHNlOworCWVsc2UKKwl7CisJCS8qCisJCSAqIElmIGl0IGlz IGluIHRoZSBwYXRoLCBpdCBtaWdodCBzdGlsbCBub3QgYmUgdmlzaWJsZTsgaXQgY291bGQg YmUKKwkJICogaGlkZGVuIGJ5IGFub3RoZXIgcGFyc2VyIG9mIHRoZSBzYW1lIG5hbWUgZWFy bGllciBpbiB0aGUgcGF0aC4gU28KKwkJICogd2UgbXVzdCBkbyBhIHNsb3cgY2hlY2sgZm9y IGNvbmZsaWN0aW5nIENNS3MuCisJCSAqLworCQljaGFyCSAgICpuYW1lID0gTmFtZVN0cihm b3JtLT5jbWtuYW1lKTsKKwkJTGlzdENlbGwgICAqbDsKKworCQl2aXNpYmxlID0gZmFsc2U7 CisJCWZvcmVhY2gobCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJeworCQkJT2lkCQkJbmFtZXNw YWNlSWQgPSBsZmlyc3Rfb2lkKGwpOworCisJCQlpZiAobmFtZXNwYWNlSWQgPT0gbXlUZW1w TmFtZXNwYWNlKQorCQkJCWNvbnRpbnVlOwkJLyogZG8gbm90IGxvb2sgaW4gdGVtcCBuYW1l c3BhY2UgKi8KKworCQkJaWYgKG5hbWVzcGFjZUlkID09IG5hbWVzcGFjZSkKKwkJCXsKKwkJ CQkvKiBGb3VuZCBpdCBmaXJzdCBpbiBwYXRoICovCisJCQkJdmlzaWJsZSA9IHRydWU7CisJ CQkJYnJlYWs7CisJCQl9CisJCQlpZiAoU2VhcmNoU3lzQ2FjaGVFeGlzdHMyKENNS05BTUVO U1AsCisJCQkJCQkJCQkgIFBvaW50ZXJHZXREYXR1bShuYW1lKSwKKwkJCQkJCQkJCSAgT2Jq ZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpKQorCQkJeworCQkJCS8qIEZvdW5kIHNvbWV0 aGluZyBlbHNlIGZpcnN0IGluIHBhdGggKi8KKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0K KworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHZpc2libGU7Cit9CisKIC8q CiAgKiBsb29rdXBfY29sbGF0aW9uCiAgKgkJSWYgdGhlcmUncyBhIGNvbGxhdGlvbiBvZiB0 aGUgZ2l2ZW4gbmFtZS9uYW1lc3BhY2UsIGFuZCBpdCB3b3JrcwpAQCAtNDU2Nyw2ICs0ODE3 LDI4IEBAIHBnX29wZmFtaWx5X2lzX3Zpc2libGUoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19S RVRVUk5fQk9PTChPcGZhbWlseUlzVmlzaWJsZShvaWQpKTsKIH0KIAorRGF0dW0KK3BnX2Nl a19pc192aXNpYmxlKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJb2lkID0gUEdfR0VU QVJHX09JRCgwKTsKKworCWlmICghU2VhcmNoU3lzQ2FjaGVFeGlzdHMxKENFS09JRCwgT2Jq ZWN0SWRHZXREYXR1bShvaWQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVS Tl9CT09MKENFS0lzVmlzaWJsZShvaWQpKTsKK30KKworRGF0dW0KK3BnX2Nta19pc192aXNp YmxlKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJb2lkID0gUEdfR0VUQVJHX09JRCgw KTsKKworCWlmICghU2VhcmNoU3lzQ2FjaGVFeGlzdHMxKENNS09JRCwgT2JqZWN0SWRHZXRE YXR1bShvaWQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKENN S0lzVmlzaWJsZShvaWQpKTsKK30KKwogRGF0dW0KIHBnX2NvbGxhdGlvbl9pc192aXNpYmxl KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9n L29iamVjdGFkZHJlc3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5j CmluZGV4IDJmNjg4MTY2ZTEuLjZjNGFiOWFjNTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2Jq ZWN0YWRkcmVzcy5jCkBAIC0yOSw3ICsyOSwxMCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdf YXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoX21lbWJlcnMuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tl eS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0 ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2NvbnZlcnNpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFi YXNlLmgiCkBAIC0xOTEsNiArMTk0LDQ4IEBAIHN0YXRpYyBjb25zdCBPYmplY3RQcm9wZXJ0 eVR5cGUgT2JqZWN0UHJvcGVydHlbXSA9CiAJCU9CSkVDVF9DT0xMQVRJT04sCiAJCXRydWUK IAl9LAorCXsKKwkJImNvbHVtbiBlbmNyeXB0aW9uIGtleSIsCisJCUNvbHVtbkVuY0tleVJl bGF0aW9uSWQsCisJCUNvbHVtbkVuY0tleU9pZEluZGV4SWQsCisJCUNFS09JRCwKKwkJQ0VL TkFNRU5TUCwKKwkJQW51bV9wZ19jb2xlbmNrZXlfb2lkLAorCQlBbnVtX3BnX2NvbGVuY2tl eV9jZWtuYW1lLAorCQlBbnVtX3BnX2NvbGVuY2tleV9jZWtuYW1lc3BhY2UsCisJCUFudW1f cGdfY29sZW5ja2V5X2Nla293bmVyLAorCQlBbnVtX3BnX2NvbGVuY2tleV9jZWthY2wsCisJ CU9CSkVDVF9DRUssCisJCXRydWUKKwl9LAorCXsKKwkJImNvbHVtbiBlbmNyeXB0aW9uIGtl eSBkYXRhIiwKKwkJQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQsCisJCUNvbHVtbkVuY0tl eURhdGFPaWRJbmRleElkLAorCQlDRUtEQVRBT0lELAorCQktMSwKKwkJQW51bV9wZ19jb2xl bmNrZXlkYXRhX29pZCwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVt YmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCS0x LAorCQlmYWxzZQorCX0sCisJeworCQkiY29sdW1uIG1hc3RlciBrZXkiLAorCQlDb2x1bW5N YXN0ZXJLZXlSZWxhdGlvbklkLAorCQlDb2x1bW5NYXN0ZXJLZXlPaWRJbmRleElkLAorCQlD TUtPSUQsCisJCUNNS05BTUVOU1AsCisJCUFudW1fcGdfY29sbWFzdGVya2V5X29pZCwKKwkJ QW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFtZSwKKwkJQW51bV9wZ19jb2xtYXN0ZXJrZXlf Y21rbmFtZXNwYWNlLAorCQlBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtvd25lciwKKwkJQW51 bV9wZ19jb2xtYXN0ZXJrZXlfY21rYWNsLAorCQlPQkpFQ1RfQ01LLAorCQl0cnVlCisJfSwK IAl7CiAJCSJjb25zdHJhaW50IiwKIAkJQ29uc3RyYWludFJlbGF0aW9uSWQsCkBAIC03MjMs NiArNzY4LDE4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJewog CQkiY29sbGF0aW9uIiwgT0JKRUNUX0NPTExBVElPTgogCX0sCisJLyogT0NMQVNTX0NFSyAq LworCXsKKwkJImNvbHVtbiBlbmNyeXB0aW9uIGtleSIsIE9CSkVDVF9DRUsKKwl9LAorCS8q IE9DTEFTU19DRUtEQVRBICovCisJeworCQkiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEi LCBPQkpFQ1RfQ0VLREFUQQorCX0sCisJLyogT0NMQVNTX0NNSyAqLworCXsKKwkJImNvbHVt biBtYXN0ZXIga2V5IiwgT0JKRUNUX0NNSworCX0sCiAJLyogT0NMQVNTX0NPTlNUUkFJTlQg Ki8KIAl7CiAJCSJ0YWJsZSBjb25zdHJhaW50IiwgT0JKRUNUX1RBQkNPTlNUUkFJTlQKQEAg LTEwMjksNiArMTA4NiwxNiBAQCBnZXRfb2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0 eXBlLCBOb2RlICpvYmplY3QsCiAJCQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJ CX0KIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCQlhZGRyZXNzLmNsYXNz SWQgPSBDb2x1bW5FbmNLZXlSZWxhdGlvbklkOworCQkJCWFkZHJlc3Mub2JqZWN0SWQgPSBn ZXRfY2VrX29pZChjYXN0Tm9kZShMaXN0LCBvYmplY3QpLCBtaXNzaW5nX29rKTsKKwkJCQlh ZGRyZXNzLm9iamVjdFN1YklkID0gMDsKKwkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX0NN SzoKKwkJCQlhZGRyZXNzLmNsYXNzSWQgPSBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkOwor CQkJCWFkZHJlc3Mub2JqZWN0SWQgPSBnZXRfY21rX29pZChjYXN0Tm9kZShMaXN0LCBvYmpl Y3QpLCBtaXNzaW5nX29rKTsKKwkJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKKwkJCQli cmVhazsKIAkJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgogCQkJY2FzZSBPQkpFQ1RfRVhURU5T SU9OOgogCQkJY2FzZSBPQkpFQ1RfVEFCTEVTUEFDRToKQEAgLTExMDgsNiArMTE3NSwyMSBA QCBnZXRfb2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3Qs CiAJCQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJCX0KIAkJCQlicmVhazsKKwkJ CWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJCQkJeworCQkJCQlMaXN0CSAgICpjZWtuYW1lID0g bGluaXRpYWxfbm9kZShMaXN0LCBjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKKwkJCQkJTGlz dAkgICAqY21rbmFtZSA9IGxzZWNvbmRfbm9kZShMaXN0LCBjYXN0Tm9kZShMaXN0LCBvYmpl Y3QpKTsKKwkJCQkJT2lkCQkJY2VraWQ7CisJCQkJCU9pZAkJCWNta2lkOworCisJCQkJCWNl a2lkID0gZ2V0X2Nla19vaWQoY2VrbmFtZSwgbWlzc2luZ19vayk7CisJCQkJCWNta2lkID0g Z2V0X2Nta19vaWQoY21rbmFtZSwgbWlzc2luZ19vayk7CisKKwkJCQkJYWRkcmVzcy5jbGFz c0lkID0gQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQ7CisJCQkJCWFkZHJlc3Mub2JqZWN0 SWQgPSBnZXRfY2VrZGF0YV9vaWQoY2VraWQsIGNta2lkLCBtaXNzaW5nX29rKTsKKwkJCQkJ YWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CisJCQkJfQorCQkJCWJyZWFrOwogCQkJY2FzZSBP QkpFQ1RfVFJBTlNGT1JNOgogCQkJCXsKIAkJCQkJVHlwZU5hbWUgICAqdHlwZW5hbWUgPSBs aW5pdGlhbF9ub2RlKFR5cGVOYW1lLCBjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKQEAgLTIz MTEsNiArMjM5Myw4IEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdT KQogCQljYXNlIE9CSkVDVF9GT1JFSUdOX1RBQkxFOgogCQljYXNlIE9CSkVDVF9DT0xVTU46 CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNl IE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1Rf Q09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKQEAgLTIzNjcsNiAr MjQ1MSw3IEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQkJ YnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FNT1A6CiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoKKwkJ Y2FzZSBPQkpFQ1RfQ0VLREFUQToKIAkJCW9iam5vZGUgPSAoTm9kZSAqKSBsaXN0X21ha2Uy KG5hbWUsIGFyZ3MpOwogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0ZVTkNUSU9OOgpAQCAt MjQ4OSw2ICsyNTc0LDggQEAgY2hlY2tfb2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlkLCBP YmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFkZHJlc3MgYWRkcmVzcywKIAkJCQlhY2xjaGVj a19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIG9ianR5cGUsCiAJCQkJCQkJICAgc3RyVmFs KG9iamVjdCkpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJY2FzZSBPQkpF Q1RfQ01LOgogCQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCWNhc2UgT0JKRUNUX0NPTlZF UlNJT046CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CkBAIC0yNTc1LDYgKzI2NjIsNyBAQCBj aGVja19vYmplY3Rfb3duZXJzaGlwKE9pZCByb2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwg T2JqZWN0QWRkcmVzcyBhZGRyZXNzLAogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FNT1A6 CiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoKKwkJY2FzZSBPQkpFQ1RfQ0VLREFUQToKIAkJY2Fz ZSBPQkpFQ1RfREVGQVVMVDoKIAkJY2FzZSBPQkpFQ1RfREVGQUNMOgogCQljYXNlIE9CSkVD VF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CkBAIC0zMDQwLDYgKzMxMjgsOTIgQEAgZ2V0T2Jq ZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Np bmdfb2spCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBPQ0xBU1NfQ0VLOgorCQkJewor CQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ19jb2xlbmNrZXkgZm9ybTsKKwkJCQlj aGFyCSAgICpuc3BuYW1lOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENFS09JRCwK KwkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdf b2spCisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1u IGVuY3J5cHRpb24ga2V5ICV1IiwKKwkJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJ CWJyZWFrOworCQkJCX0KKworCQkJCWZvcm0gPSAoRm9ybV9wZ19jb2xlbmNrZXkpIEdFVFNU UlVDVCh0dXApOworCisJCQkJLyogUXVhbGlmeSB0aGUgbmFtZSBpZiBub3QgdmlzaWJsZSBp biBzZWFyY2ggcGF0aCAqLworCQkJCWlmIChDRUtJc1Zpc2libGUob2JqZWN0LT5vYmplY3RJ ZCkpCisJCQkJCW5zcG5hbWUgPSBOVUxMOworCQkJCWVsc2UKKwkJCQkJbnNwbmFtZSA9IGdl dF9uYW1lc3BhY2VfbmFtZShmb3JtLT5jZWtuYW1lc3BhY2UpOworCisJCQkJYXBwZW5kU3Ry aW5nSW5mbygmYnVmZmVyLCBfKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXMiKSwKKwkJCQkJ CQkJIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKG5zcG5hbWUsCisJCQkJCQkJCQkJCQkJ CQlOYW1lU3RyKGZvcm0tPmNla25hbWUpKSk7CisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7 CisJCQkJYnJlYWs7CisJCQl9CisKKwkJY2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJCXsKKwkJ CQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfY29sZW5ja2V5ZGF0YSBjZWtkYXRhOwor CisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENFS0RBVEFPSUQsIE9iamVjdElkR2V0RGF0 dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXAp KQorCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhICV1IiwK KwkJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJCWJyZWFrOworCQkJCX0KKworCQkJ CWNla2RhdGEgPSAoRm9ybV9wZ19jb2xlbmNrZXlkYXRhKSBHRVRTVFJVQ1QodHVwKTsKKwor CQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygiY29sdW1uIGVuY3J5cHRpb24ga2V5 IGRhdGEgb2YgJXMgZm9yICVzIiksCisJCQkJCQkJCSBnZXRPYmplY3REZXNjcmlwdGlvbigm KE9iamVjdEFkZHJlc3Mpe0NvbHVtbkVuY0tleVJlbGF0aW9uSWQsIGNla2RhdGEtPmNrZGNl a2lkfSwgZmFsc2UpLAorCQkJCQkJCQkgZ2V0T2JqZWN0RGVzY3JpcHRpb24oJihPYmplY3RB ZGRyZXNzKXtDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjZWtkYXRhLT5ja2RjbWtpZH0s IGZhbHNlKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJ CX0KKworCQljYXNlIE9DTEFTU19DTUs6CisJCQl7CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJ CQlGb3JtX3BnX2NvbG1hc3RlcmtleSBmb3JtOworCQkJCWNoYXIJICAgKm5zcG5hbWU7CisK KwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQ01LT0lELAorCQkJCQkJCQkJICBPYmplY3RJ ZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFs aWQodHVwKSkKKwkJCQl7CisJCQkJCWlmICghbWlzc2luZ19vaykKKwkJCQkJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXUi LAorCQkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJ CQkJZm9ybSA9IChGb3JtX3BnX2NvbG1hc3RlcmtleSkgR0VUU1RSVUNUKHR1cCk7CisKKwkJ CQkvKiBRdWFsaWZ5IHRoZSBuYW1lIGlmIG5vdCB2aXNpYmxlIGluIHNlYXJjaCBwYXRoICov CisJCQkJaWYgKENNS0lzVmlzaWJsZShvYmplY3QtPm9iamVjdElkKSkKKwkJCQkJbnNwbmFt ZSA9IE5VTEw7CisJCQkJZWxzZQorCQkJCQluc3BuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1l KGZvcm0tPmNta25hbWVzcGFjZSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIs IF8oImNvbHVtbiBtYXN0ZXIga2V5ICVzIiksCisJCQkJCQkJCSBxdW90ZV9xdWFsaWZpZWRf aWRlbnRpZmllcihuc3BuYW1lLAorCQkJCQkJCQkJCQkJCQkJTmFtZVN0cihmb3JtLT5jbWtu YW1lKSkpOworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJyZWFrOworCQkJfQor CiAJCWNhc2UgT0NMQVNTX0NPTlNUUkFJTlQ6CiAJCQl7CiAJCQkJSGVhcFR1cGxlCWNvblR1 cDsKQEAgLTQ0NDAsNiArNDYxNCwxOCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29u c3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb2xsYXRpb24iKTsKIAkJCWJyZWFrOwogCisJ CWNhc2UgT0NMQVNTX0NFSzoKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwg ImNvbHVtbiBlbmNyeXB0aW9uIGtleSIpOworCQkJYnJlYWs7CisKKwkJY2FzZSBPQ0xBU1Nf Q0VLREFUQToKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgImNvbHVtbiBl bmNyeXB0aW9uIGtleSBkYXRhIik7CisJCQlicmVhazsKKworCQljYXNlIE9DTEFTU19DTUs6 CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb2x1bW4gbWFzdGVyIGtl eSIpOworCQkJYnJlYWs7CisKIAkJY2FzZSBPQ0xBU1NfQ09OU1RSQUlOVDoKIAkJCWdldENv bnN0cmFpbnRUeXBlRGVzY3JpcHRpb24oJmJ1ZmZlciwgb2JqZWN0LT5vYmplY3RJZCwKIAkJ CQkJCQkJCQkgbWlzc2luZ19vayk7CkBAIC00OTA1LDYgKzUwOTEsMTA4IEBAIGdldE9iamVj dElkZW50aXR5UGFydHMoY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJCWJyZWFr OwogCQkJfQogCisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHVw OworCQkJCUZvcm1fcGdfY29sZW5ja2V5IGZvcm07CisJCQkJY2hhcgkgICAqc2NoZW1hOwor CisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENFS09JRCwgT2JqZWN0SWRHZXREYXR1bShv YmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJ CQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUg bG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5ICV1IiwKKwkJCQkJCQkg b2JqZWN0LT5vYmplY3RJZCk7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQlmb3JtID0gKEZv cm1fcGdfY29sZW5ja2V5KSBHRVRTVFJVQ1QodHVwKTsKKwkJCQlzY2hlbWEgPSBnZXRfbmFt ZXNwYWNlX25hbWVfb3JfdGVtcChmb3JtLT5jZWtuYW1lc3BhY2UpOworCQkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKKwkJCQkJCQkJCSAgIHF1b3RlX3F1YWxpZmllZF9p ZGVudGlmaWVyKHNjaGVtYSwKKwkJCQkJCQkJCQkJCQkJCQkgIE5hbWVTdHIoZm9ybS0+Y2Vr bmFtZSkpKTsKKwkJCQlpZiAob2JqbmFtZSkKKwkJCQkJKm9iam5hbWUgPSBsaXN0X21ha2Uy KHNjaGVtYSwgcHN0cmR1cChOYW1lU3RyKGZvcm0tPmNla25hbWUpKSk7CisJCQkJUmVsZWFz ZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJY2FzZSBPQ0xBU1NfQ0VL REFUQToKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfY29sZW5ja2V5 ZGF0YSBmb3JtOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENFS0RBVEFPSUQsIE9i amVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxl SXNWYWxpZCh0dXApKQorCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxv ZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSBkYXRhICV1IiwKKwkJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJCWJyZWFrOwor CQkJCX0KKwkJCQlmb3JtID0gKEZvcm1fcGdfY29sZW5ja2V5ZGF0YSkgR0VUU1RSVUNUKHR1 cCk7CisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLAorCQkJCQkJCQkgIm9mICVzIGZv ciAlcyIsCisJCQkJCQkJCSBnZXRPYmplY3RJZGVudGl0eVBhcnRzKCYoT2JqZWN0QWRkcmVz cyl7Q29sdW1uRW5jS2V5UmVsYXRpb25JZCwgZm9ybS0+Y2tkY2VraWR9LCBOVUxMLCBOVUxM LCBmYWxzZSksCisJCQkJCQkJCSBnZXRPYmplY3RJZGVudGl0eVBhcnRzKCYoT2JqZWN0QWRk cmVzcyl7Q29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgZm9ybS0+Y2tkY21raWR9LCBOVUxM LCBOVUxMLCBmYWxzZSkpOworCisJCQkJaWYgKG9iam5hbWUpCisJCQkJeworCQkJCQlIZWFw VHVwbGUJdHVwMjsKKwkJCQkJRm9ybV9wZ19jb2xlbmNrZXkgZm9ybTI7CisJCQkJCWNoYXIJ ICAgKnNjaGVtYTsKKworCQkJCQl0dXAyID0gU2VhcmNoU3lzQ2FjaGUxKENFS09JRCwgT2Jq ZWN0SWRHZXREYXR1bShmb3JtLT5ja2RjZWtpZCkpOworCQkJCQlpZiAoIUhlYXBUdXBsZUlz VmFsaWQodHVwMikpCisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBm b3IgY29sdW1uIGVuY3J5cHRpb24ga2V5ICV1IiwgZm9ybS0+Y2tkY2VraWQpOworCQkJCQlm b3JtMiA9IChGb3JtX3BnX2NvbGVuY2tleSkgR0VUU1RSVUNUKHR1cDIpOworCQkJCQlzY2hl bWEgPSBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcChmb3JtMi0+Y2VrbmFtZXNwYWNlKTsK KwkJCQkJKm9iam5hbWUgPSBsaXN0X21ha2UyKHNjaGVtYSwgcHN0cmR1cChOYW1lU3RyKGZv cm0yLT5jZWtuYW1lKSkpOworCQkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwMik7CisJCQkJfQor CQkJCWlmIChvYmphcmdzKQorCQkJCXsKKwkJCQkJSGVhcFR1cGxlCXR1cDI7CisJCQkJCUZv cm1fcGdfY29sbWFzdGVya2V5IGZvcm0yOworCQkJCQljaGFyCSAgICpzY2hlbWE7CisKKwkJ CQkJdHVwMiA9IFNlYXJjaFN5c0NhY2hlMShDTUtPSUQsIE9iamVjdElkR2V0RGF0dW0oZm9y bS0+Y2tkY21raWQpKTsKKwkJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cDIpKQorCQkJ CQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBtYXN0ZXIg a2V5ICV1IiwgZm9ybS0+Y2tkY21raWQpOworCQkJCQlmb3JtMiA9IChGb3JtX3BnX2NvbG1h c3RlcmtleSkgR0VUU1RSVUNUKHR1cDIpOworCQkJCQlzY2hlbWEgPSBnZXRfbmFtZXNwYWNl X25hbWVfb3JfdGVtcChmb3JtMi0+Y21rbmFtZXNwYWNlKTsKKwkJCQkJaWYgKG9iamFyZ3Mp CisJCQkJCQkqb2JqYXJncyA9IGxpc3RfbWFrZTIoc2NoZW1hLCBwc3RyZHVwKE5hbWVTdHIo Zm9ybTItPmNta25hbWUpKSk7CisJCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXAyKTsKKwkJCQl9 CisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJY2Fz ZSBPQ0xBU1NfQ01LOgorCQkJeworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ19j b2xtYXN0ZXJrZXkgZm9ybTsKKwkJCQljaGFyCSAgICpzY2hlbWE7CisKKwkJCQl0dXAgPSBT ZWFyY2hTeXNDYWNoZTEoQ01LT0lELCBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0 SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCQl7CisJCQkJCWlm ICghbWlzc2luZ19vaykKKwkJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVk IGZvciBjb2x1bW4gbWFzdGVyIGtleSAldSIsCisJCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQp OworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJZm9ybSA9IChGb3JtX3BnX2NvbG1hc3Rlcmtl eSkgR0VUU1RSVUNUKHR1cCk7CisJCQkJc2NoZW1hID0gZ2V0X25hbWVzcGFjZV9uYW1lX29y X3RlbXAoZm9ybS0+Y21rbmFtZXNwYWNlKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KCZidWZmZXIsCisJCQkJCQkJCQkgICBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihzY2hl bWEsCisJCQkJCQkJCQkJCQkJCQkJICBOYW1lU3RyKGZvcm0tPmNta25hbWUpKSk7CisJCQkJ aWYgKG9iam5hbWUpCisJCQkJCSpvYmpuYW1lID0gbGlzdF9tYWtlMihzY2hlbWEsIHBzdHJk dXAoTmFtZVN0cihmb3JtLT5jbWtuYW1lKSkpOworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXAp OworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgT0NMQVNTX0NPTlNUUkFJTlQ6CiAJCQl7 CiAJCQkJSGVhcFR1cGxlCWNvblR1cDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKaW5kZXggNDhm NzM0OGY5MS4uNjlmNjE3NWM2MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv TWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKQEAgLTE5LDYg KzE5LDcgQEAgT0JKUyA9IFwKIAlhbmFseXplLm8gXAogCWFzeW5jLm8gXAogCWNsdXN0ZXIu byBcCisJY29sZW5jY21kcy5vIFwKIAljb2xsYXRpb25jbWRzLm8gXAogCWNvbW1lbnQubyBc CiAJY29uc3RyYWludC5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Fs dGVyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCmluZGV4IGJlYTUxYjNhZjEu LjU5YzIzZTllZjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwpAQCAtMjIsNyArMjIsOSBAQAog I2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVz cGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNzLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlv bi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19ldmVudF90 cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19mb3JlaWduX2RhdGFfd3JhcHBlci5o IgpAQCAtMTE4LDYgKzEyMCwxMiBAQCByZXBvcnRfbmFtZXNwYWNlX2NvbmZsaWN0KE9pZCBj bGFzc0lkLCBjb25zdCBjaGFyICpuYW1lLCBPaWQgbnNwT2lkKQogCiAJc3dpdGNoIChjbGFz c0lkKQogCXsKKwkJY2FzZSBDb2x1bW5FbmNLZXlSZWxhdGlvbklkOgorCQkJbXNnZm10ID0g Z2V0dGV4dF9ub29wKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wiIGFscmVhZHkgZXhp c3RzIGluIHNjaGVtYSBcIiVzXCIiKTsKKwkJCWJyZWFrOworCQljYXNlIENvbHVtbk1hc3Rl cktleVJlbGF0aW9uSWQ6CisJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3AoImNvbHVtbiBtYXN0 ZXIga2V5IFwiJXNcIiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEgXCIlc1wiIik7CisJCQli cmVhazsKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRpb25JZDoKIAkJCUFzc2VydChPaWRJc1Zh bGlkKG5zcE9pZCkpOwogCQkJbXNnZm10ID0gZ2V0dGV4dF9ub29wKCJjb252ZXJzaW9uIFwi JXNcIiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEgXCIlc1wiIik7CkBAIC0zNzksNiArMzg3 LDggQEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1lU3RtdCAqc3RtdCkKIAkJCXJldHVybiBSZW5h bWVUeXBlKHN0bXQpOwogCiAJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKKwkJY2FzZSBPQkpF Q1RfQ0VLOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoK IAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1RfRVZFTlRfVFJJR0dF UjoKQEAgLTUyNyw2ICs1MzcsOCBAQCBFeGVjQWx0ZXJPYmplY3RTY2hlbWFTdG10KEFsdGVy T2JqZWN0U2NoZW1hU3RtdCAqc3RtdCwKIAogCQkJLyogZ2VuZXJpYyBjb2RlIHBhdGggKi8K IAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2Ug T0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9D T05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9GVU5DVElPTjoKQEAgLTY0Myw2ICs2NTUsOSBA QCBBbHRlck9iamVjdE5hbWVzcGFjZV9vaWQoT2lkIGNsYXNzSWQsIE9pZCBvYmppZCwgT2lk IG5zcE9pZCwKIAkJCWJyZWFrOwogCiAJCWNhc2UgT0NMQVNTX0NBU1Q6CisJCWNhc2UgT0NM QVNTX0NFSzoKKwkJY2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJY2FzZSBPQ0xBU1NfQ01LOgog CQljYXNlIE9DTEFTU19DT05TVFJBSU5UOgogCQljYXNlIE9DTEFTU19ERUZBVUxUOgogCQlj YXNlIE9DTEFTU19MQU5HVUFHRToKQEAgLTg3Niw2ICs4OTEsOCBAQCBFeGVjQWx0ZXJPd25l clN0bXQoQWx0ZXJPd25lclN0bXQgKnN0bXQpCiAKIAkJCS8qIEdlbmVyaWMgY2FzZXMgKi8K IAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2Ug T0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9D T05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9GVU5DVElPTjoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Nv bGVuY2NtZHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zYWRh NmQ1YWViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5j Y21kcy5jCkBAIC0wLDAgKzEsNDM5IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiBjb2xlbmNjbWRzLmMKKyAqCSAgY29sdW1uLWVuY3J5cHRpb24tcmVsYXRlZCBjb21tYW5k cyBzdXBwb3J0IGNvZGUKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAy MywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9y bmlhCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2NvbW1h bmRzL2NvbGVuY2NtZHMuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaW5j bHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIK KyNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cu aCIKKyNpbmNsdWRlICJjYXRhbG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9n L2luZGV4aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5j a2V5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25h bWVzcGFjZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2NvbGVuY2NtZHMuaCIKKyNpbmNsdWRl ICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgi CisjaW5jbHVkZSAiY29tbW9uL2NvbGVuYy5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgor I2luY2x1ZGUgInV0aWxzL2FjbC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisj aW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgiCisj aW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworc3RhdGljIHZvaWQKK3BhcnNlX2Nla19h dHRyaWJ1dGVzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZGVmaW5pdGlvbiwgT2lkICpj bWtvaWRfcCwgaW50ICphbGdfcCwgY2hhciAqKmVuY3ZhbF9wKQoreworCUxpc3RDZWxsICAg KmxjOworCURlZkVsZW0gICAgKmNta0VsID0gTlVMTDsKKwlEZWZFbGVtICAgICphbGdFbCA9 IE5VTEw7CisJRGVmRWxlbSAgICAqZW5jdmFsRWwgPSBOVUxMOworCU9pZAkJCWNta29pZCA9 IEludmFsaWRPaWQ7CisJaW50CQkJYWxnID0gMDsKKwljaGFyCSAgICplbmN2YWwgPSBOVUxM OworCisJQXNzZXJ0KGNta29pZF9wKTsKKworCWZvcmVhY2gobGMsIGRlZmluaXRpb24pCisJ eworCQlEZWZFbGVtICAgICpkZWZlbCA9IGxmaXJzdF9ub2RlKERlZkVsZW0sIGxjKTsKKwkJ RGVmRWxlbSAgICoqZGVmZWxwOworCisJCWlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJj b2x1bW5fbWFzdGVyX2tleSIpID09IDApCisJCQlkZWZlbHAgPSAmY21rRWw7CisJCWVsc2Ug aWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImFsZ29yaXRobSIpID09IDApCisJCQlkZWZl bHAgPSAmYWxnRWw7CisJCWVsc2UgaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImVuY3J5 cHRlZF92YWx1ZSIpID09IDApCisJCQlkZWZlbHAgPSAmZW5jdmFsRWw7CisJCWVsc2UKKwkJ eworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJS T1IpLAorCQkJCQkgZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgYXR0cmlidXRlIFwi JXNcIiBub3QgcmVjb2duaXplZCIsCisJCQkJCQkJZGVmZWwtPmRlZm5hbWUpLAorCQkJCQkg cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVmZWwtPmxvY2F0aW9uKSkpOworCQl9CisJ CWlmICgqZGVmZWxwICE9IE5VTEwpCisJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShkZWZl bCwgcHN0YXRlKTsKKwkJKmRlZmVscCA9IGRlZmVsOworCX0KKworCWlmIChjbWtFbCkKKwl7 CisJCUxpc3QJICAgKnZhbCA9IGRlZkdldFF1YWxpZmllZE5hbWUoY21rRWwpOworCisJCWNt a29pZCA9IGdldF9jbWtfb2lkKHZhbCwgZmFsc2UpOworCX0KKwllbHNlCisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJt c2coImF0dHJpYnV0ZSBcIiVzXCIgbXVzdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJImNvbHVt bl9tYXN0ZXJfa2V5IikpKTsKKworCWlmIChhbGdFbCkKKwl7CisJCWNoYXIJICAgKnZhbCA9 IGRlZkdldFN0cmluZyhhbGdFbCk7CisKKwkJaWYgKCFhbGdfcCkKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1z ZygiYXR0cmlidXRlIFwiJXNcIiBtdXN0IG5vdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJCSJh bGdvcml0aG0iKSkpOworCisJCWFsZyA9IGdldF9jbWthbGdfbnVtKHZhbCk7CisJCWlmICgh YWxnKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURf UEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJZXJybXNnKCJ1bnJlY29nbml6ZWQgZW5jcnlwdGlv biBhbGdvcml0aG06ICVzIiwgdmFsKSk7CisJfQorCWVsc2UKKwl7CisJCWlmIChhbGdfcCkK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9S KSwKKwkJCQkJIGVycm1zZygiYXR0cmlidXRlIFwiJXNcIiBtdXN0IGJlIHNwZWNpZmllZCIs CisJCQkJCQkJImFsZ29yaXRobSIpKSk7CisJfQorCisJaWYgKGVuY3ZhbEVsKQorCXsKKwkJ aWYgKCFlbmN2YWxfcCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiYXR0cmlidXRlIFwiJXNcIiBtdXN0 IG5vdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJCSJlbmNyeXB0ZWRfdmFsdWUiKSkpOworCisJ CWVuY3ZhbCA9IGRlZkdldFN0cmluZyhlbmN2YWxFbCk7CisJfQorCWVsc2UKKwl7CisJCWlm IChlbmN2YWxfcCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiYXR0cmlidXRlIFwiJXNcIiBtdXN0IGJl IHNwZWNpZmllZCIsCisJCQkJCQkJImVuY3J5cHRlZF92YWx1ZSIpKSk7CisJfQorCisJKmNt a29pZF9wID0gY21rb2lkOworCWlmIChhbGdfcCkKKwkJKmFsZ19wID0gYWxnOworCWlmIChl bmN2YWxfcCkKKwkJKmVuY3ZhbF9wID0gZW5jdmFsOworfQorCitzdGF0aWMgdm9pZAoraW5z ZXJ0X2Nla2RhdGFfcmVjb3JkKE9pZCBjZWtvaWQsIE9pZCBjbWtvaWQsIGludCBhbGcsIGNo YXIgKmVuY3ZhbCkKK3sKKwlPaWQJCQljZWtkYXRhb2lkOworCVJlbGF0aW9uCXJlbDsKKwlE YXR1bQkJdmFsdWVzW05hdHRzX3BnX2NvbGVuY2tleWRhdGFdID0gezB9OworCWJvb2wJCW51 bGxzW05hdHRzX3BnX2NvbGVuY2tleWRhdGFdID0gezB9OworCUhlYXBUdXBsZQl0dXA7CisJ T2JqZWN0QWRkcmVzcyBteXNlbGY7CisJT2JqZWN0QWRkcmVzcyBvdGhlcjsKKworCXJlbCA9 IHRhYmxlX29wZW4oQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxv Y2spOworCisJY2VrZGF0YW9pZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIENvbHVtbkVu Y0tleURhdGFPaWRJbmRleElkLCBBbnVtX3BnX2NvbGVuY2tleWRhdGFfb2lkKTsKKwl2YWx1 ZXNbQW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShj ZWtkYXRhb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlkYXRhX2NrZGNla2lkIC0g MV0gPSBPYmplY3RJZEdldERhdHVtKGNla29pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5j a2V5ZGF0YV9ja2RjbWtpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShjbWtvaWQpOworCXZh bHVlc1tBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tkY21rYWxnIC0gMV0gPSBJbnQzMkdldERh dHVtKGFsZyk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RlbmN2YWwgLSAx XSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoYnl0ZWFpbiwgQ1N0cmluZ0dldERhdHVtKGVuY3Zh bCkpOworCisJdHVwID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwg dmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKKwloZWFw X2ZyZWV0dXBsZSh0dXApOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIENvbHVtbkVu Y0tleURhdGFSZWxhdGlvbklkLCBjZWtkYXRhb2lkKTsKKworCS8qIGRlcGVuZGVuY3kgY2Vr ZGF0YSAtPiBjZWsgKi8KKwlPYmplY3RBZGRyZXNzU2V0KG90aGVyLCBDb2x1bW5FbmNLZXlS ZWxhdGlvbklkLCBjZWtvaWQpOworCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmb3Ro ZXIsIERFUEVOREVOQ1lfQVVUTyk7CisKKwkvKiBkZXBlbmRlbmN5IGNla2RhdGEgLT4gY21r ICovCisJT2JqZWN0QWRkcmVzc1NldChvdGhlciwgQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25J ZCwgY21rb2lkKTsKKwlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJm90aGVyLCBERVBF TkRFTkNZX05PUk1BTCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7Cit9CisKK09i amVjdEFkZHJlc3MKK0NyZWF0ZUNFSyhQYXJzZVN0YXRlICpwc3RhdGUsIERlZmluZVN0bXQg KnN0bXQpCit7CisJT2lkCQkJbmFtZXNwYWNlSWQ7CisJY2hhcgkgICAqY2VrbmFtZXN0cjsK KwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVJlbGF0aW9uCXJlbDsKKwlPYmplY3RBZGRyZXNz IG15c2VsZjsKKwlPaWQJCQljZWtvaWQ7CisJTGlzdENlbGwgICAqbGM7CisJTmFtZURhdGEJ Y2VrbmFtZTsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX2NvbGVuY2tleV0gPSB7MH07CisJ Ym9vbAkJbnVsbHNbTmF0dHNfcGdfY29sZW5ja2V5XSA9IHswfTsKKwlIZWFwVHVwbGUJdHVw OworCisJbmFtZXNwYWNlSWQgPSBRdWFsaWZpZWROYW1lR2V0Q3JlYXRpb25OYW1lc3BhY2Uo c3RtdC0+ZGVmbmFtZXMsICZjZWtuYW1lc3RyKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9h Y2xjaGVjayhOYW1lc3BhY2VSZWxhdGlvbklkLCBuYW1lc3BhY2VJZCwgR2V0VXNlcklkKCks IEFDTF9DUkVBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNo ZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1NDSEVNQSwgZ2V0X25hbWVzcGFjZV9uYW1l KG5hbWVzcGFjZUlkKSk7CisKKwlyZWwgPSB0YWJsZV9vcGVuKENvbHVtbkVuY0tleVJlbGF0 aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJaWYgKFNlYXJjaFN5c0NhY2hlRXhpc3Rz MihDRUtOQU1FTlNQLCBQb2ludGVyR2V0RGF0dW0oY2VrbmFtZXN0ciksIE9iamVjdElkR2V0 RGF0dW0obmFtZXNwYWNlSWQpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVS UkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlv biBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwgY2VrbmFtZXN0cikpOworCisJY2Vrb2lk ID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgQ29sdW1uRW5jS2V5T2lkSW5kZXhJZCwgQW51 bV9wZ19jb2xlbmNrZXlfb2lkKTsKKworCWZvcmVhY2ggKGxjLCBzdG10LT5kZWZpbml0aW9u KQorCXsKKwkJTGlzdAkgICAqZGVmaW5pdGlvbiA9IGxmaXJzdF9ub2RlKExpc3QsIGxjKTsK KwkJT2lkCQkJY21rb2lkID0gMDsKKwkJaW50CQkJYWxnOworCQljaGFyCSAgICplbmN2YWw7 CisKKwkJcGFyc2VfY2VrX2F0dHJpYnV0ZXMocHN0YXRlLCBkZWZpbml0aW9uLCAmY21rb2lk LCAmYWxnLCAmZW5jdmFsKTsKKworCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soQ29s dW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21rb2lkLCBHZXRVc2VySWQoKSwgQUNMX1VTQUdF KTsKKwkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCWFjbGNoZWNrX2Vycm9y KGFjbHJlc3VsdCwgT0JKRUNUX0NNSywgZ2V0X2Nta19uYW1lKGNta29pZCwgZmFsc2UpKTsK KworCQkvKiBwZ19jb2xlbmNrZXlkYXRhICovCisJCWluc2VydF9jZWtkYXRhX3JlY29yZChj ZWtvaWQsIGNta29pZCwgYWxnLCBlbmN2YWwpOworCX0KKworCS8qIHBnX2NvbGVuY2tleSAq LworCW5hbWVzdHJjcHkoJmNla25hbWUsIGNla25hbWVzdHIpOworCXZhbHVlc1tBbnVtX3Bn X2NvbGVuY2tleV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oY2Vrb2lkKTsKKwl2YWx1 ZXNbQW51bV9wZ19jb2xlbmNrZXlfY2VrbmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZjZWtu YW1lKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlfY2VrbmFtZXNwYWNlIC0gMV0gPSBP YmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNr ZXlfY2Vrb3duZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oR2V0VXNlcklkKCkpOworCW51 bGxzW0FudW1fcGdfY29sZW5ja2V5X2Nla2FjbCAtIDFdID0gdHJ1ZTsKKworCXR1cCA9IGhl YXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOwor CUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7CisJaGVhcF9mcmVldHVwbGUodHVwKTsK KworCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBj ZWtvaWQpOworCXJlY29yZERlcGVuZGVuY3lPbk93bmVyKENvbHVtbkVuY0tleVJlbGF0aW9u SWQsIGNla29pZCwgR2V0VXNlcklkKCkpOworCisJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNs dXNpdmVMb2NrKTsKKworCUludm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKENvbHVtbkVuY0tl eVJlbGF0aW9uSWQsIGNla29pZCwgMCk7CisKKwlyZXR1cm4gbXlzZWxmOworfQorCitPYmpl Y3RBZGRyZXNzCitBbHRlckNvbHVtbkVuY3J5cHRpb25LZXkoUGFyc2VTdGF0ZSAqcHN0YXRl LCBBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10ICpzdG10KQoreworCU9pZAkJCWNla29p ZDsKKwlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CisKKwljZWtvaWQgPSBnZXRfY2VrX29pZChz dG10LT5jZWtuYW1lLCBmYWxzZSk7CisKKwlpZiAoIW9iamVjdF9vd25lcmNoZWNrKENvbHVt bkVuY0tleVJlbGF0aW9uSWQsIGNla29pZCwgR2V0VXNlcklkKCkpKQorCQlhY2xjaGVja19l cnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIE9CSkVDVF9DRUssIE5hbWVMaXN0VG9TdHJpbmco c3RtdC0+Y2VrbmFtZSkpOworCisJaWYgKHN0bXQtPmlzRHJvcCkKKwl7CisJCU9pZAkJCWNt a29pZCA9IDA7CisJCU9pZAkJCWNla2RhdGFvaWQ7CisJCU9iamVjdEFkZHJlc3Mgb2JqOwor CisJCXBhcnNlX2Nla19hdHRyaWJ1dGVzKHBzdGF0ZSwgc3RtdC0+ZGVmaW5pdGlvbiwgJmNt a29pZCwgTlVMTCwgTlVMTCk7CisJCWNla2RhdGFvaWQgPSBnZXRfY2VrZGF0YV9vaWQoY2Vr b2lkLCBjbWtvaWQsIGZhbHNlKTsKKwkJT2JqZWN0QWRkcmVzc1NldChvYmosIENvbHVtbkVu Y0tleURhdGFSZWxhdGlvbklkLCBjZWtkYXRhb2lkKTsKKwkJcGVyZm9ybURlbGV0aW9uKCZv YmosIERST1BfQ0FTQ0FERSwgMCk7CisJfQorCWVsc2UKKwl7CisJCU9pZAkJCWNta29pZCA9 IDA7CisJCWludAkJCWFsZzsKKwkJY2hhcgkgICAqZW5jdmFsOworCQlBY2xSZXN1bHQJYWNs cmVzdWx0OworCisJCXBhcnNlX2Nla19hdHRyaWJ1dGVzKHBzdGF0ZSwgc3RtdC0+ZGVmaW5p dGlvbiwgJmNta29pZCwgJmFsZywgJmVuY3ZhbCk7CisKKwkJYWNscmVzdWx0ID0gb2JqZWN0 X2FjbGNoZWNrKENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCwgR2V0VXNlcklk KCksIEFDTF9VU0FHRSk7CisJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQlh Y2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9DTUssIGdldF9jbWtfbmFtZShjbWtv aWQsIGZhbHNlKSk7CisKKwkJaWYgKGdldF9jZWtkYXRhX29pZChjZWtvaWQsIGNta29pZCwg dHJ1ZSkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfRFVQTElD QVRFX09CSkVDVCksCisJCQkJCWVycm1zZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNc IiBhbHJlYWR5IGhhcyBkYXRhIGZvciBtYXN0ZXIga2V5IFwiJXNcIiIsCisJCQkJCQkgICBO YW1lTGlzdFRvU3RyaW5nKHN0bXQtPmNla25hbWUpLCBnZXRfY21rX25hbWUoY21rb2lkLCBm YWxzZSkpKTsKKwkJaW5zZXJ0X2Nla2RhdGFfcmVjb3JkKGNla29pZCwgY21rb2lkLCBhbGcs IGVuY3ZhbCk7CisJfQorCisJSW52b2tlT2JqZWN0UG9zdEFsdGVySG9vayhDb2x1bW5FbmNL ZXlSZWxhdGlvbklkLCBjZWtvaWQsIDApOworCU9iamVjdEFkZHJlc3NTZXQoYWRkcmVzcywg Q29sdW1uRW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkKTsKKworCXJldHVybiBhZGRyZXNzOwor fQorCitPYmplY3RBZGRyZXNzCitDcmVhdGVDTUsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZp bmVTdG10ICpzdG10KQoreworCU9pZAkJCW5hbWVzcGFjZUlkOworCWNoYXIJICAgKmNta25h bWVzdHI7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlSZWxhdGlvbglyZWw7CisJT2JqZWN0 QWRkcmVzcyBteXNlbGY7CisJT2lkCQkJY21rb2lkOworCUxpc3RDZWxsICAgKmxjOworCURl ZkVsZW0gICAgKnJlYWxtRWwgPSBOVUxMOworCWNoYXIJICAgKnJlYWxtOworCU5hbWVEYXRh CWNta25hbWU7CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19jb2xtYXN0ZXJrZXldID0gezB9 OworCWJvb2wJCW51bGxzW05hdHRzX3BnX2NvbG1hc3RlcmtleV0gPSB7MH07CisJSGVhcFR1 cGxlCXR1cDsKKworCW5hbWVzcGFjZUlkID0gUXVhbGlmaWVkTmFtZUdldENyZWF0aW9uTmFt ZXNwYWNlKHN0bXQtPmRlZm5hbWVzLCAmY21rbmFtZXN0cik7CisKKwlhY2xyZXN1bHQgPSBv YmplY3RfYWNsY2hlY2soTmFtZXNwYWNlUmVsYXRpb25JZCwgbmFtZXNwYWNlSWQsIEdldFVz ZXJJZCgpLCBBQ0xfQ1JFQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQor CQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9TQ0hFTUEsIGdldF9uYW1lc3Bh Y2VfbmFtZShuYW1lc3BhY2VJZCkpOworCisJcmVsID0gdGFibGVfb3BlbihDb2x1bW5NYXN0 ZXJLZXlSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCWlmIChTZWFyY2hTeXND YWNoZUV4aXN0czIoQ01LTkFNRU5TUCwgUG9pbnRlckdldERhdHVtKGNta25hbWVzdHIpLCBP YmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ ZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCWVycm1zZygiY29sdW1u IG1hc3RlciBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwgY21rbmFtZXN0cikpOworCisJ Zm9yZWFjaChsYywgc3RtdC0+ZGVmaW5pdGlvbikKKwl7CisJCURlZkVsZW0gICAgKmRlZmVs ID0gbGZpcnN0X25vZGUoRGVmRWxlbSwgbGMpOworCQlEZWZFbGVtICAgKipkZWZlbHA7CisK KwkJaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgInJlYWxtIikgPT0gMCkKKwkJCWRlZmVs cCA9ICZyZWFsbUVsOworCQllbHNlCisJCXsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShl cnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiY29sdW1uIG1h c3RlciBrZXkgYXR0cmlidXRlIFwiJXNcIiBub3QgcmVjb2duaXplZCIsCisJCQkJCQkJZGVm ZWwtPmRlZm5hbWUpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVmZWwt PmxvY2F0aW9uKSkpOworCQl9CisJCWlmICgqZGVmZWxwICE9IE5VTEwpCisJCQllcnJvckNv bmZsaWN0aW5nRGVmRWxlbShkZWZlbCwgcHN0YXRlKTsKKwkJKmRlZmVscCA9IGRlZmVsOwor CX0KKworCWlmIChyZWFsbUVsKQorCQlyZWFsbSA9IGRlZkdldFN0cmluZyhyZWFsbUVsKTsK KwllbHNlCisJCXJlYWxtID0gIiI7CisKKwljbWtvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgo cmVsLCBDb2x1bW5NYXN0ZXJLZXlPaWRJbmRleElkLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9v aWQpOworCW5hbWVzdHJjcHkoJmNta25hbWUsIGNta25hbWVzdHIpOworCXZhbHVlc1tBbnVt X3BnX2NvbG1hc3RlcmtleV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oY21rb2lkKTsK Kwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFtZSAtIDFdID0gTmFtZUdldERh dHVtKCZjbWtuYW1lKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFtZXNw YWNlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKTsKKwl2YWx1ZXNbQW51 bV9wZ19jb2xtYXN0ZXJrZXlfY21rb3duZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oR2V0 VXNlcklkKCkpOworCXZhbHVlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtyZWFsbSAtIDFd ID0gQ1N0cmluZ0dldFRleHREYXR1bShyZWFsbSk7CisJbnVsbHNbQW51bV9wZ19jb2xtYXN0 ZXJrZXlfY21rYWNsIC0gMV0gPSB0cnVlOworCisJdHVwID0gaGVhcF9mb3JtX3R1cGxlKFJl bGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxlSW5z ZXJ0KHJlbCwgdHVwKTsKKwloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJcmVjb3JkRGVwZW5k ZW5jeU9uT3duZXIoQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21rb2lkLCBHZXRVc2Vy SWQoKSk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgQ29sdW1uTWFzdGVyS2V5UmVs YXRpb25JZCwgY21rb2lkKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9j ayk7CisKKwlJbnZva2VPYmplY3RQb3N0Q3JlYXRlSG9vayhDb2x1bW5NYXN0ZXJLZXlSZWxh dGlvbklkLCBjbWtvaWQsIDApOworCisJcmV0dXJuIG15c2VsZjsKK30KKworT2JqZWN0QWRk cmVzcworQWx0ZXJDb2x1bW5NYXN0ZXJLZXkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlckNv bHVtbk1hc3RlcktleVN0bXQgKnN0bXQpCit7CisJT2lkCQkJY21rb2lkOworCVJlbGF0aW9u CXJlbDsKKwlIZWFwVHVwbGUJdHVwOworCUhlYXBUdXBsZQluZXd0dXA7CisJT2JqZWN0QWRk cmVzcyBhZGRyZXNzOworCUxpc3RDZWxsICAgKmxjOworCURlZkVsZW0gICAgKnJlYWxtRWwg PSBOVUxMOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfY29sbWFzdGVya2V5XSA9IHswfTsK Kwlib29sCQludWxsc1tOYXR0c19wZ19jb2xtYXN0ZXJrZXldID0gezB9OworCWJvb2wJCXJl cGxhY2VzW05hdHRzX3BnX2NvbG1hc3RlcmtleV0gPSB7MH07CisKKwljbWtvaWQgPSBnZXRf Y21rX29pZChzdG10LT5jbWtuYW1lLCBmYWxzZSk7CisKKwlyZWwgPSB0YWJsZV9vcGVuKENv bHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJdHVwID0g U2VhcmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShjbWtvaWQpKTsKKwor CWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9v a3VwIGZhaWxlZCBmb3IgY29sdW1uIG1hc3RlciBrZXkgJXUiLCBjbWtvaWQpOworCisJaWYg KCFvYmplY3Rfb3duZXJjaGVjayhDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjbWtvaWQs IEdldFVzZXJJZCgpKSkKKwkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBP QkpFQ1RfQ01LLCBOYW1lTGlzdFRvU3RyaW5nKHN0bXQtPmNta25hbWUpKTsKKworCWZvcmVh Y2gobGMsIHN0bXQtPmRlZmluaXRpb24pCisJeworCQlEZWZFbGVtICAgICpkZWZlbCA9IGxm aXJzdF9ub2RlKERlZkVsZW0sIGxjKTsKKwkJRGVmRWxlbSAgICoqZGVmZWxwOworCisJCWlm IChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJyZWFsbSIpID09IDApCisJCQlkZWZlbHAgPSAm cmVhbG1FbDsKKwkJZWxzZQorCQl7CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImNvbHVtbiBtYXN0ZXIg a2V5IGF0dHJpYnV0ZSBcIiVzXCIgbm90IHJlY29nbml6ZWQiLAorCQkJCQkJCWRlZmVsLT5k ZWZuYW1lKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGRlZmVsLT5sb2Nh dGlvbikpKTsKKwkJfQorCQlpZiAoKmRlZmVscCAhPSBOVUxMKQorCQkJZXJyb3JDb25mbGlj dGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisJCSpkZWZlbHAgPSBkZWZlbDsKKwl9CisK KwlpZiAocmVhbG1FbCkKKwl7CisJCXZhbHVlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWty ZWFsbSAtIDFdID0gQ1N0cmluZ0dldFRleHREYXR1bShkZWZHZXRTdHJpbmcocmVhbG1FbCkp OworCQlyZXBsYWNlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtyZWFsbSAtIDFdID0gdHJ1 ZTsKKwl9CisKKwluZXd0dXAgPSBoZWFwX21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0 RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscywgcmVwbGFjZXMpOworCisJQ2F0YWxvZ1R1cGxl VXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCBuZXd0dXApOworCisJSW52b2tlT2JqZWN0UG9z dEFsdGVySG9vayhDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjbWtvaWQsIDApOworCisJ T2JqZWN0QWRkcmVzc1NldChhZGRyZXNzLCBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBj bWtvaWQpOworCisJaGVhcF9mcmVldHVwbGUobmV3dHVwKTsKKwlSZWxlYXNlU3lzQ2FjaGUo dHVwKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1 cm4gYWRkcmVzczsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NyZWF0 ZWFzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jcmVhdGVhcy5jCmluZGV4IGQ2YzZkNTE0 ZjMuLjk2ODViNzg4NmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NyZWF0 ZWFzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY3JlYXRlYXMuYwpAQCAtNTAsNiAr NTAsNyBAQAogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3Jscy5o IgogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNo ZS5oIgogCiB0eXBlZGVmIHN0cnVjdAogewpAQCAtMjA1LDYgKzIwNiwyNiBAQCBjcmVhdGVf Y3Rhc19ub2RhdGEoTGlzdCAqdGxpc3QsIEludG9DbGF1c2UgKmludG8pCiAJCQkJCQkJCWZv cm1hdF90eXBlX2JlKGNvbC0+dHlwZU5hbWUtPnR5cGVPaWQpKSwKIAkJCQkJCSBlcnJoaW50 KCJVc2UgdGhlIENPTExBVEUgY2xhdXNlIHRvIHNldCB0aGUgY29sbGF0aW9uIGV4cGxpY2l0 bHkuIikpKTsKIAorCQkJaWYgKHR5cGVfaXNfZW5jcnlwdGVkKGV4cHJUeXBlKChOb2RlICop IHRsZS0+ZXhwcikpKQorCQkJeworCQkJCUhlYXBUdXBsZQl0cDsKKwkJCQlGb3JtX3BnX2F0 dHJpYnV0ZSBvcmlnX2F0dDsKKworCQkJCWlmICghdGxlLT5yZXNvcmlndGJsIHx8ICF0bGUt PnJlc29yaWdjb2wpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJZXJyY29kZShFUlJD T0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkJCWVycm1zZygidW5kZXJs eWluZyB0YWJsZSBhbmQgY29sdW1uIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIGZvciBlbmNy eXB0ZWQgdGFibGUgY29sdW1uIikpOworCisJCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTIoQVRU TlVNLCBPYmplY3RJZEdldERhdHVtKHRsZS0+cmVzb3JpZ3RibCksIEludDE2R2V0RGF0dW0o dGxlLT5yZXNvcmlnY29sKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJ CQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGF0dHJpYnV0ZSAlZCBv ZiByZWxhdGlvbiAldSIsIHRsZS0+cmVzb3JpZ2NvbCwgdGxlLT5yZXNvcmlndGJsKTsKKwkJ CQlvcmlnX2F0dCA9IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHRwKTsKKwkJCQlj b2wtPnR5cGVOYW1lID0gbWFrZVR5cGVOYW1lRnJvbU9pZChvcmlnX2F0dC0+YXR0dXNlcnR5 cGlkLAorCQkJCQkJCQkJCQkJCW9yaWdfYXR0LT5hdHR1c2VydHlwbW9kKTsKKwkJCQljb2wt PmVuY3J5cHRpb24gPSBtYWtlQ29sdW1uRW5jcnlwdGlvbihvcmlnX2F0dCk7CisJCQkJUmVs ZWFzZVN5c0NhY2hlKHRwKTsKKwkJCX0KKwogCQkJYXR0ckxpc3QgPSBsYXBwZW5kKGF0dHJM aXN0LCBjb2wpOwogCQl9CiAJfQpAQCAtNTE0LDYgKzUzNSwxNyBAQCBpbnRvcmVsX3N0YXJ0 dXAoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0aW9uLCBUdXBsZURlc2MgdHlwZWlu Zm8pCiAJCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29sLT50eXBlTmFtZS0+dHlwZU9pZCkpLAog CQkJCQkgZXJyaGludCgiVXNlIHRoZSBDT0xMQVRFIGNsYXVzZSB0byBzZXQgdGhlIGNvbGxh dGlvbiBleHBsaWNpdGx5LiIpKSk7CiAKKwkJaWYgKHR5cGVfaXNfZW5jcnlwdGVkKGF0dHJp YnV0ZS0+YXR0dHlwaWQpKQorCQl7CisJCQkvKgorCQkJICogV2UgZG9uJ3QgaGF2ZSB0aGUg cmVxdWlyZWQgaW5mb3JtYXRpb24gYXZhaWxhYmxlIGhlcmUsIHNvCisJCQkgKiBwcmV2ZW50 IGl0IGZvciBub3cuCisJCQkgKi8KKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygiZW5jcnlw dGVkIGNvbHVtbnMgbm90IHlldCBpbXBsZW1lbnRlZCBmb3IgdGhpcyBjb21tYW5kIikpKTsK KwkJfQorCiAJCWF0dHJMaXN0ID0gbGFwcGVuZChhdHRyTGlzdCwgY29sKTsKIAl9CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9kcm9wY21kcy5jCmluZGV4IDgyYmRhMTU4ODkuLmI0YzY4MTAwNWEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYwpAQCAtMjc2LDYgKzI3NiwyMCBAQCBkb2VzX25v dF9leGlzdF9za2lwcGluZyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCkKIAkJ CQluYW1lID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKIAkJ CX0KIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9DRUs6CisJCQlpZiAoIXNjaGVtYV9kb2Vz X25vdF9leGlzdF9za2lwcGluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpLCAmbXNnLCAmbmFt ZSkpCisJCQl7CisJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJjb2x1bW4gZW5jcnlwdGlvbiBr ZXkgXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyIpOworCQkJCW5hbWUgPSBOYW1l TGlzdFRvU3RyaW5nKGNhc3ROb2RlKExpc3QsIG9iamVjdCkpOworCQkJfQorCQkJYnJlYWs7 CisJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCWlmICghc2NoZW1hX2RvZXNfbm90X2V4aXN0X3Nr aXBwaW5nKGNhc3ROb2RlKExpc3QsIG9iamVjdCksICZtc2csICZuYW1lKSkKKwkJCXsKKwkJ CQltc2cgPSBnZXR0ZXh0X25vb3AoImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNcIiBkb2VzIG5v dCBleGlzdCwgc2tpcHBpbmciKTsKKwkJCQluYW1lID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0 Tm9kZShMaXN0LCBvYmplY3QpKTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9D T05WRVJTSU9OOgogCQkJaWYgKCFzY2hlbWFfZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmcoY2Fz dE5vZGUoTGlzdCwgb2JqZWN0KSwgJm1zZywgJm5hbWUpKQogCQkJewpAQCAtNTAzLDYgKzUx Nyw3IEBAIGRvZXNfbm90X2V4aXN0X3NraXBwaW5nKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9k ZSAqb2JqZWN0KQogCQljYXNlIE9CSkVDVF9BTU9QOgogCQljYXNlIE9CSkVDVF9BTVBST0M6 CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKKwkJY2FzZSBPQkpFQ1RfQ0VLREFUQToKIAkJ Y2FzZSBPQkpFQ1RfREVGQVVMVDoKIAkJY2FzZSBPQkpFQ1RfREVGQUNMOgogCQljYXNlIE9C SkVDVF9ET01DT05TVFJBSU5UOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXZlbnRfdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5j CmluZGV4IGQ0YjAwZDFhODIuLjRjMTYyOGNmN2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9l dmVudF90cmlnZ2VyLmMKQEAgLTk1MSw2ICs5NTEsOSBAQCBFdmVudFRyaWdnZXJTdXBwb3J0 c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYnR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoK IAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQljYXNl IE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJCWNhc2UgT0JKRUNUX0NN SzoKIAkJY2FzZSBPQkpFQ1RfQ09MVU1OOgogCQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJ CWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CkBAIC0xMDI3LDYgKzEwMzAsOSBAQCBFdmVudFRy aWdnZXJTdXBwb3J0c09iamVjdENsYXNzKE9iamVjdENsYXNzIG9iamNsYXNzKQogCQljYXNl IE9DTEFTU19UWVBFOgogCQljYXNlIE9DTEFTU19DQVNUOgogCQljYXNlIE9DTEFTU19DT0xM QVRJT046CisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJY2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJ Y2FzZSBPQ0xBU1NfQ01LOgogCQljYXNlIE9DTEFTU19DT05TVFJBSU5UOgogCQljYXNlIE9D TEFTU19DT05WRVJTSU9OOgogCQljYXNlIE9DTEFTU19ERUZBVUxUOgpAQCAtMjA1Niw2ICsy MDYyLDkgQEAgc3RyaW5naWZ5X2dyYW50X29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQog CQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKIAkJY2Fz ZSBPQkpFQ1RfQ0FTVDoKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVDVF9DRUtE QVRBOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJ Y2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKQEAgLTIx MzksNiArMjE0OCw5IEBAIHN0cmluZ2lmeV9hZGVmcHJpdnNfb2JqdHlwZShPYmplY3RUeXBl IG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklC VVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2Ug T0JKRUNUX0NFS0RBVEE6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09M TEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9ERUZB VUxUOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAppbmRleCA0MmNjZWQ5ZWJlLi40YjVh YzMwNDQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZApAQCAtNyw2ICs3LDcgQEAg YmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAnYW5hbHl6ZS5jJywKICAgJ2FzeW5jLmMn LAogICAnY2x1c3Rlci5jJywKKyAgJ2NvbGVuY2NtZHMuYycsCiAgICdjb2xsYXRpb25jbWRz LmMnLAogICAnY29tbWVudC5jJywKICAgJ2NvbnN0cmFpbnQuYycsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2VjbGFiZWwuYwppbmRleCA3ZmYxNmUzMjc2Li45M2Q2MWM5NmFkIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3NlY2xhYmVsLmMKQEAgLTY2LDYgKzY2LDkgQEAgU2VjTGFiZWxTdXBwb3J0c09iamVj dFR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCWNh c2UgT0JKRUNUX0FUVFJJQlVURToKIAkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJY2FzZSBPQkpF Q1RfQ0VLOgorCQljYXNlIE9CSkVDVF9DRUtEQVRBOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJ CWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJ Y2FzZSBPQkpFQ1RfREVGQVVMVDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXgg NjJkOTkxN2NhMy4uYzMwYjU5MjY1YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMK QEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BhcnRpdGlvbi5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F0dHJkZWYu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfY29sbGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb25zdHJhaW50Lmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kZXBlbmQuaCIKQEAgLTYxLDYgKzYyLDcgQEAKICNp bmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHlwZWNt ZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy91c2VyLmgiCisjaW5jbHVkZSAiY29tbW9uL2Nv bGVuYy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZm9y ZWlnbi9mZHdhcGkuaCIKICNpbmNsdWRlICJmb3JlaWduL2ZvcmVpZ24uaCIKQEAgLTYzNyw2 ICs2MzksNyBAQCBzdGF0aWMgTGlzdCAqR2V0UGFyZW50ZWRGb3JlaWduS2V5UmVmcyhSZWxh dGlvbiBwYXJ0aXRpb24pOwogc3RhdGljIHZvaWQgQVREZXRhY2hDaGVja05vRm9yZWlnbktl eVJlZnMoUmVsYXRpb24gcGFydGl0aW9uKTsKIHN0YXRpYyBjaGFyIEdldEF0dHJpYnV0ZUNv bXByZXNzaW9uKE9pZCBhdHR0eXBpZCwgY2hhciAqY29tcHJlc3Npb24pOwogc3RhdGljIGNo YXIgR2V0QXR0cmlidXRlU3RvcmFnZShPaWQgYXR0dHlwaWQsIGNvbnN0IGNoYXIgKnN0b3Jh Z2Vtb2RlKTsKK3N0YXRpYyB2b2lkIEdldENvbHVtbkVuY3J5cHRpb24oY29uc3QgTGlzdCAq Y29sZGVmZW5jcnlwdGlvbiwgRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cik7CiAKIAogLyogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpAQCAtOTM2LDYgKzkzOSwxNiBAQCBEZWZpbmVSZWxhdGlvbihDcmVhdGVTdG10 ICpzdG10LCBjaGFyIHJlbGtpbmQsIE9pZCBvd25lcklkLAogCQkJYXR0ci0+YXR0Y29tcHJl c3Npb24gPSBHZXRBdHRyaWJ1dGVDb21wcmVzc2lvbihhdHRyLT5hdHR0eXBpZCwKIAkJCQkJ CQkJCQkJCQkJICAgY29sRGVmLT5jb21wcmVzc2lvbik7CiAKKwkJaWYgKGNvbERlZi0+ZW5j cnlwdGlvbikKKwkJeworCQkJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCQkJR2V0Q29sdW1u RW5jcnlwdGlvbihjb2xEZWYtPmVuY3J5cHRpb24sIGF0dHIpOworCQkJYWNscmVzdWx0ID0g b2JqZWN0X2FjbGNoZWNrKENvbHVtbkVuY0tleVJlbGF0aW9uSWQsIGF0dHItPmF0dGNlaywg R2V0VXNlcklkKCksIEFDTF9VU0FHRSk7CisJCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNL X09LKQorCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX0NFSywgZ2V0X2Nl a19uYW1lKGF0dHItPmF0dGNlaywgZmFsc2UpKTsKKwkJfQorCiAJCWlmIChjb2xEZWYtPnN0 b3JhZ2VfbmFtZSkKIAkJCWF0dHItPmF0dHN0b3JhZ2UgPSBHZXRBdHRyaWJ1dGVTdG9yYWdl KGF0dHItPmF0dHR5cGlkLCBjb2xEZWYtPnN0b3JhZ2VfbmFtZSk7CiAJfQpAQCAtMjU2Miwx MyArMjU3NSw0MyBAQCBNZXJnZUF0dHJpYnV0ZXMoTGlzdCAqc2NoZW1hLCBMaXN0ICpzdXBl cnMsIGNoYXIgcmVscGVyc2lzdGVuY2UsCiAJCQkJT2lkCQkJZGVmQ29sbElkOwogCiAJCQkJ LyoKLQkJCQkgKiBZZXMsIHRyeSB0byBtZXJnZSB0aGUgdHdvIGNvbHVtbiBkZWZpbml0aW9u cy4gVGhleSBtdXN0Ci0JCQkJICogaGF2ZSB0aGUgc2FtZSB0eXBlLCB0eXBtb2QsIGFuZCBj b2xsYXRpb24uCisJCQkJICogWWVzLCB0cnkgdG8gbWVyZ2UgdGhlIHR3byBjb2x1bW4gZGVm aW5pdGlvbnMuCiAJCQkJICovCiAJCQkJZXJlcG9ydChOT1RJQ0UsCiAJCQkJCQkoZXJybXNn KCJtZXJnaW5nIG11bHRpcGxlIGluaGVyaXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4gXCIl c1wiIiwKIAkJCQkJCQkJYXR0cmlidXRlTmFtZSkpKTsKIAkJCQlkZWYgPSAoQ29sdW1uRGVm ICopIGxpc3RfbnRoKGluaFNjaGVtYSwgZXhpc3RfYXR0bm8gLSAxKTsKKworCQkJCS8qCisJ CQkJICogQ2hlY2sgZW5jcnlwdGlvbiBwYXJhbWV0ZXIuICBBbGwgcGFyZW50cyBtdXN0IGhh dmUgdGhlIHNhbWUKKwkJCQkgKiBlbmNyeXB0aW9uIHNldHRpbmdzIGZvciBhIGNvbHVtbi4K KwkJCQkgKi8KKwkJCQlpZiAoKGRlZi0+ZW5jcnlwdGlvbiAmJiAhYXR0cmlidXRlLT5hdHRj ZWspIHx8CisJCQkJCSghZGVmLT5lbmNyeXB0aW9uICYmIGF0dHJpYnV0ZS0+YXR0Y2VrKSkK KwkJCQl7CisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBoYXMg YW4gZW5jcnlwdGlvbiBzcGVjaWZpY2F0aW9uIGNvbmZsaWN0IiwKKwkJCQkJCQkJCWF0dHJp YnV0ZU5hbWUpKSk7CisJCQkJfQorCQkJCWVsc2UgaWYgKGRlZi0+ZW5jcnlwdGlvbiAmJiBh dHRyaWJ1dGUtPmF0dGNlaykKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIE1lcmdpbmcgdGhl IGVuY3J5cHRpb24gcHJvcGVydGllcyBvZiB0d28gZW5jcnlwdGVkCisJCQkJCSAqIHBhcmVu dCBjb2x1bW5zIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuICBSaWdodCBub3csIHRoaXMKKwkJ CQkJICogd291bGQgY29uZnVzZSB0aGUgY2hlY2tzIG9mIHRoZSB0eXBlIGV0Yy4gYmVsb3cg KHdlCisJCQkJCSAqIG11c3QgY2hlY2sgdGhlIHBoeXNpY2FsIGFuZCB0aGUgcmVhbCB0eXBl cyBhZ2FpbnN0IGVhY2gKKwkJCQkJICogb3RoZXIsIHJlc3BlY3RpdmVseSksIHdoaWNoIG1p Z2h0IHJlcXVpcmUgYSBsYXJnZXIKKwkJCQkJICogcmVzdHJ1Y3R1cmluZy4gIEZvciBub3cs IGp1c3QgZ2l2ZSB1cCBoZXJlLgorCQkJCQkgKi8KKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJ IGVycm1zZygibXVsdGlwbGUgaW5oZXJpdGFuY2Ugb2YgZW5jcnlwdGVkIGNvbHVtbnMgaXMg bm90IGltcGxlbWVudGVkIikpKTsKKwkJCQl9CisKKwkJCQkvKgorCQkJCSAqIE11c3QgaGF2 ZSB0aGUgc2FtZSB0eXBlLCB0eXBtb2QsIGFuZCBjb2xsYXRpb24uCisJCQkJICovCiAJCQkJ dHlwZW5hbWVUeXBlSWRBbmRNb2QoTlVMTCwgZGVmLT50eXBlTmFtZSwgJmRlZlR5cGVJZCwg JmRlZnR5cG1vZCk7CiAJCQkJaWYgKGRlZlR5cGVJZCAhPSBhdHRyaWJ1dGUtPmF0dHR5cGlk IHx8CiAJCQkJCWRlZnR5cG1vZCAhPSBhdHRyaWJ1dGUtPmF0dHR5cG1vZCkKQEAgLTI2NDEs NiArMjY4NCwxMiBAQCBNZXJnZUF0dHJpYnV0ZXMoTGlzdCAqc2NoZW1hLCBMaXN0ICpzdXBl cnMsIGNoYXIgcmVscGVyc2lzdGVuY2UsCiAJCQkJZGVmLT5jb2xuYW1lID0gcHN0cmR1cChh dHRyaWJ1dGVOYW1lKTsKIAkJCQlkZWYtPnR5cGVOYW1lID0gbWFrZVR5cGVOYW1lRnJvbU9p ZChhdHRyaWJ1dGUtPmF0dHR5cGlkLAogCQkJCQkJCQkJCQkJCWF0dHJpYnV0ZS0+YXR0dHlw bW9kKTsKKwkJCQlpZiAodHlwZV9pc19lbmNyeXB0ZWQoYXR0cmlidXRlLT5hdHR0eXBpZCkp CisJCQkJeworCQkJCQlkZWYtPnR5cGVOYW1lID0gbWFrZVR5cGVOYW1lRnJvbU9pZChhdHRy aWJ1dGUtPmF0dHVzZXJ0eXBpZCwKKwkJCQkJCQkJCQkJCQkJYXR0cmlidXRlLT5hdHR1c2Vy dHlwbW9kKTsKKwkJCQkJZGVmLT5lbmNyeXB0aW9uID0gbWFrZUNvbHVtbkVuY3J5cHRpb24o YXR0cmlidXRlKTsKKwkJCQl9CiAJCQkJZGVmLT5pbmhjb3VudCA9IDE7CiAJCQkJZGVmLT5p c19sb2NhbCA9IGZhbHNlOwogCQkJCWRlZi0+aXNfbm90X251bGwgPSBhdHRyaWJ1dGUtPmF0 dG5vdG51bGw7CkBAIC0yOTE5LDYgKzI5NjgsMzQgQEAgTWVyZ2VBdHRyaWJ1dGVzKExpc3Qg KnNjaGVtYSwgTGlzdCAqc3VwZXJzLCBjaGFyIHJlbHBlcnNpc3RlbmNlLAogCQkJCQkJCQkg ZXJyZGV0YWlsKCIlcyB2ZXJzdXMgJXMiLCBkZWYtPmNvbXByZXNzaW9uLCBuZXdkZWYtPmNv bXByZXNzaW9uKSkpOwogCQkJCX0KIAorCQkJCS8qCisJCQkJICogQ2hlY2sgZW5jcnlwdGlv biBwYXJhbWV0ZXIuICBBbGwgcGFyZW50cyBhbmQgY2hpbGRyZW4gbXVzdAorCQkJCSAqIGhh dmUgdGhlIHNhbWUgZW5jcnlwdGlvbiBzZXR0aW5ncyBmb3IgYSBjb2x1bW4uCisJCQkJICov CisJCQkJaWYgKChkZWYtPmVuY3J5cHRpb24gJiYgIW5ld2RlZi0+ZW5jcnlwdGlvbikgfHwK KwkJCQkJKCFkZWYtPmVuY3J5cHRpb24gJiYgbmV3ZGVmLT5lbmNyeXB0aW9uKSkKKwkJCQl7 CisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQ RV9NSVNNQVRDSCksCisJCQkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBoYXMgYW4gZW5j cnlwdGlvbiBzcGVjaWZpY2F0aW9uIGNvbmZsaWN0IiwKKwkJCQkJCQkJCWF0dHJpYnV0ZU5h bWUpKSk7CisJCQkJfQorCQkJCWVsc2UgaWYgKGRlZi0+ZW5jcnlwdGlvbiAmJiBuZXdkZWYt PmVuY3J5cHRpb24pCisJCQkJeworCQkJCQlGb3JtRGF0YV9wZ19hdHRyaWJ1dGUgYSwgbmV3 YTsKKworCQkJCQlHZXRDb2x1bW5FbmNyeXB0aW9uKGRlZi0+ZW5jcnlwdGlvbiwgJmEpOwor CQkJCQlHZXRDb2x1bW5FbmNyeXB0aW9uKG5ld2RlZi0+ZW5jcnlwdGlvbiwgJm5ld2EpOwor CisJCQkJCWlmIChhLmF0dHR5cGlkICE9IG5ld2EuYXR0dHlwaWQgfHwKKwkJCQkJCWEuYXR0 dHlwbW9kICE9IG5ld2EuYXR0dHlwbW9kIHx8CisJCQkJCQlhLmF0dGNlayAhPSBuZXdhLmF0 dGNlaykKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVf REFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGhh cyBhbiBlbmNyeXB0aW9uIHNwZWNpZmljYXRpb24gY29uZmxpY3QiLAorCQkJCQkJCQkJCWF0 dHJpYnV0ZU5hbWUpKSk7CisJCQkJfQorCiAJCQkJLyogTWFyayB0aGUgY29sdW1uIGFzIGxv Y2FsbHkgZGVmaW5lZCAqLwogCQkJCWRlZi0+aXNfbG9jYWwgPSB0cnVlOwogCQkJCS8qIE1l cmdlIG9mIE5PVCBOVUxMIGNvbnN0cmFpbnRzID0gT1IgJ2VtIHRvZ2V0aGVyICovCkBAIC02 ODYxLDYgKzY5MzgsMTkgQEAgQVRFeGVjQWRkQ29sdW1uKExpc3QgKip3cXVldWUsIEFsdGVy ZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCWF0dHJpYnV0ZS5hdHRpc2xvY2Fs ID0gY29sRGVmLT5pc19sb2NhbDsKIAlhdHRyaWJ1dGUuYXR0aW5oY291bnQgPSBjb2xEZWYt PmluaGNvdW50OwogCWF0dHJpYnV0ZS5hdHRjb2xsYXRpb24gPSBjb2xsT2lkOworCWlmIChj b2xEZWYtPmVuY3J5cHRpb24pCisJeworCQlHZXRDb2x1bW5FbmNyeXB0aW9uKGNvbERlZi0+ ZW5jcnlwdGlvbiwgJmF0dHJpYnV0ZSk7CisJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVj ayhDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBhdHRyaWJ1dGUuYXR0Y2VrLCBHZXRVc2VySWQo KSwgQUNMX1VTQUdFKTsKKwkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCWFj bGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX0NFSywgZ2V0X2Nla19uYW1lKGF0dHJp YnV0ZS5hdHRjZWssIGZhbHNlKSk7CisJfQorCWVsc2UKKwl7CisJCWF0dHJpYnV0ZS5hdHRj ZWsgPSAwOworCQlhdHRyaWJ1dGUuYXR0dXNlcnR5cGlkID0gMDsKKwkJYXR0cmlidXRlLmF0 dHVzZXJ0eXBtb2QgPSAtMTsKKwl9CiAKIAlSZWxlYXNlU3lzQ2FjaGUodHlwZVR1cGxlKTsK IApAQCAtMTI2OTIsNiArMTI3ODIsOSBAQCBBVEV4ZWNBbHRlckNvbHVtblR5cGUoQWx0ZXJl ZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCQljYXNlIE9DTEFTU19UWVBFOgog CQkJY2FzZSBPQ0xBU1NfQ0FTVDoKIAkJCWNhc2UgT0NMQVNTX0NPTExBVElPTjoKKwkJCWNh c2UgT0NMQVNTX0NFSzoKKwkJCWNhc2UgT0NMQVNTX0NFS0RBVEE6CisJCQljYXNlIE9DTEFT U19DTUs6CiAJCQljYXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQkJY2FzZSBPQ0xBU1NfTEFO R1VBR0U6CiAJCQljYXNlIE9DTEFTU19MQVJHRU9CSkVDVDoKQEAgLTE5MjkxLDMgKzE5Mzg0 LDExMCBAQCBHZXRBdHRyaWJ1dGVTdG9yYWdlKE9pZCBhdHR0eXBpZCwgY29uc3QgY2hhciAq c3RvcmFnZW1vZGUpCiAKIAlyZXR1cm4gY3N0b3JhZ2U7CiB9CisKKy8qCisgKiByZXNvbHZl IGNvbHVtbiBlbmNyeXB0aW9uIHNwZWNpZmljYXRpb24KKyAqLworc3RhdGljIHZvaWQKK0dl dENvbHVtbkVuY3J5cHRpb24oY29uc3QgTGlzdCAqY29sZGVmZW5jcnlwdGlvbiwgRm9ybV9w Z19hdHRyaWJ1dGUgYXR0cikKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKwlMaXN0CSAgICpjZWsg PSBOVUxMOworCU9pZAkJCWNla29pZDsKKwlib29sCQllbmNkZXQgPSBmYWxzZTsKKwlpbnQJ CQlhbGcgPSBQR19DRUtfQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY7CisKKwlmb3Jl YWNoKGxjLCBjb2xkZWZlbmNyeXB0aW9uKQorCXsKKwkJRGVmRWxlbSAgICAqZWwgPSBsZmly c3Rfbm9kZShEZWZFbGVtLCBsYyk7CisKKwkJaWYgKHN0cmNtcChlbC0+ZGVmbmFtZSwgImNv bHVtbl9lbmNyeXB0aW9uX2tleSIpID09IDApCisJCQljZWsgPSBkZWZHZXRRdWFsaWZpZWRO YW1lKGVsKTsKKwkJZWxzZSBpZiAoc3RyY21wKGVsLT5kZWZuYW1lLCAiZW5jcnlwdGlvbl90 eXBlIikgPT0gMCkKKwkJeworCQkJY2hhcgkgICAqdmFsID0gc3RyVmFsKGxpbml0aWFsKGNh c3ROb2RlKFR5cGVOYW1lLCBlbC0+YXJnKS0+bmFtZXMpKTsKKworCQkJaWYgKHN0cmNtcCh2 YWwsICJkZXRlcm1pbmlzdGljIikgPT0gMCkKKwkJCQllbmNkZXQgPSB0cnVlOworCQkJZWxz ZSBpZiAoc3RyY21wKHZhbCwgInJhbmRvbWl6ZWQiKSA9PSAwKQorCQkJCWVuY2RldCA9IGZh bHNlOworCQkJZWxzZQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJZXJybXNnKCJ1bnJlY29nbml6 ZWQgZW5jcnlwdGlvbiB0eXBlOiAlcyIsIHZhbCkpOworCQl9CisJCWVsc2UgaWYgKHN0cmNt cChlbC0+ZGVmbmFtZSwgImFsZ29yaXRobSIpID09IDApCisJCXsKKwkJCWNoYXIJICAgKnZh bCA9IHN0clZhbChlbC0+YXJnKTsKKworCQkJYWxnID0gZ2V0X2Nla2FsZ19udW0odmFsKTsK KworCQkJaWYgKCFhbGcpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQllcnJtc2coInVucmVjb2du aXplZCBlbmNyeXB0aW9uIGFsZ29yaXRobTogJXMiLCB2YWwpKTsKKwkJfQorCQllbHNlCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVU RVJfVkFMVUUpLAorCQkJCQllcnJtc2coInVucmVjb2duaXplZCBjb2x1bW4gZW5jcnlwdGlv biBwYXJhbWV0ZXI6ICVzIiwgZWwtPmRlZm5hbWUpKTsKKwl9CisKKwlpZiAoIWNlaykKKwkJ ZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9DT0xVTU5fREVG SU5JVElPTiksCisJCQkJZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgbXVzdCBiZSBz cGVjaWZpZWQiKSk7CisKKwljZWtvaWQgPSBnZXRfY2VrX29pZChjZWssIGZhbHNlKTsKKwor CWF0dHItPmF0dGNlayA9IGNla29pZDsKKwlhdHRyLT5hdHR1c2VydHlwaWQgPSBhdHRyLT5h dHR0eXBpZDsKKwlhdHRyLT5hdHR1c2VydHlwbW9kID0gYXR0ci0+YXR0dHlwbW9kOworCisJ Lyogb3ZlcnJpZGUgcGh5c2ljYWwgdHlwZSAqLworCWlmIChlbmNkZXQpCisJCWF0dHItPmF0 dHR5cGlkID0gUEdfRU5DUllQVEVEX0RFVE9JRDsKKwllbHNlCisJCWF0dHItPmF0dHR5cGlk ID0gUEdfRU5DUllQVEVEX1JORE9JRDsKKwlnZXRfdHlwbGVuYnl2YWxhbGlnbihhdHRyLT5h dHR0eXBpZCwKKwkJCQkJCSAmYXR0ci0+YXR0bGVuLCAmYXR0ci0+YXR0Ynl2YWwsICZhdHRy LT5hdHRhbGlnbik7CisJYXR0ci0+YXR0c3RvcmFnZSA9IGdldF90eXBzdG9yYWdlKGF0dHIt PmF0dHR5cGlkKTsKKwlhdHRyLT5hdHRjb2xsYXRpb24gPSBJbnZhbGlkT2lkOworCisJYXR0 ci0+YXR0dHlwbW9kID0gYWxnOworfQorCisvKgorICogQ29uc3RydWN0IGlucHV0IHRvIEdl dENvbHVtbkVuY3J5cHRpb24oKSwgZm9yIHN5bnRoZXNpemluZyBhIGNvbHVtbgorICogZGVm aW5pdGlvbi4KKyAqLworTGlzdCAqCittYWtlQ29sdW1uRW5jcnlwdGlvbihjb25zdCBGb3Jt RGF0YV9wZ19hdHRyaWJ1dGUgKmF0dHIpCit7CisJTGlzdAkgICAqcmVzdWx0OworCUhlYXBU dXBsZQl0dXA7CisJRm9ybV9wZ19jb2xlbmNrZXkgZm9ybTsKKwljaGFyCSAgICpuc3BuYW1l OworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENFS09JRCwgT2JqZWN0SWRHZXREYXR1bShh dHRyLT5hdHRjZWspKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhF UlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAl dSIsIGF0dHItPmF0dGNlayk7CisKKwlmb3JtID0gKEZvcm1fcGdfY29sZW5ja2V5KSBHRVRT VFJVQ1QodHVwKTsKKwluc3BuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lKGZvcm0tPmNla25h bWVzcGFjZSk7CisKKwlyZXN1bHQgPSBsaXN0X21ha2UzKG1ha2VEZWZFbGVtKCJjb2x1bW5f ZW5jcnlwdGlvbl9rZXkiLAorCQkJCQkJCQkJKE5vZGUgKikgbGlzdF9tYWtlMihtYWtlU3Ry aW5nKG5zcG5hbWUpLCBtYWtlU3RyaW5nKHBzdHJkdXAoTmFtZVN0cihmb3JtLT5jZWtuYW1l KSkpKSwKKwkJCQkJCQkJCS0xKSwKKwkJCQkJCW1ha2VEZWZFbGVtKCJlbmNyeXB0aW9uX3R5 cGUiLAorCQkJCQkJCQkJKE5vZGUgKikgbWFrZVR5cGVOYW1lKGF0dHItPmF0dHR5cGlkID09 IFBHX0VOQ1JZUFRFRF9ERVRPSUQgPworCQkJCQkJCQkJCQkJCQkgICJkZXRlcm1pbmlzdGlj IiA6ICJyYW5kb21pemVkIiksCisJCQkJCQkJCQktMSksCisJCQkJCQltYWtlRGVmRWxlbSgi YWxnb3JpdGhtIiwKKwkJCQkJCQkJCShOb2RlICopIG1ha2VTdHJpbmcocHN0cmR1cChnZXRf Y2VrYWxnX25hbWUoYXR0ci0+YXR0dHlwbW9kKSkpLAorCQkJCQkJCQkJLTEpKTsKKworCVJl bGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHJlc3VsdDsKK30KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy92YXJpYWJsZS5jCmluZGV4IGJiMGY1ZGU0YzIuLmNlYzJkYWE5YzMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdmFyaWFibGUuYwpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94 bG9ncHJlZmV0Y2hlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5j bHVkZSAiY29tbW9uL3N0cmluZy5oIgorI2luY2x1ZGUgImxpYnBxL2xpYnBxLWJlLmgiCiAj aW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNs dWRlICJwb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKQEAgLTcwNiw3ICs3MDcsMTEgQEAgY2hl Y2tfY2xpZW50X2VuY29kaW5nKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291 cmNlIHNvdXJjZSkKIAkgKi8KIAlpZiAoUHJlcGFyZUNsaWVudEVuY29kaW5nKGVuY29kaW5n KSA8IDApCiAJewotCQlpZiAoSXNUcmFuc2FjdGlvblN0YXRlKCkpCisJCWlmIChNeVByb2NQ b3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQkJR1VDX2NoZWNrX2VycmRldGFp bCgiQ29udmVyc2lvbiBiZXR3ZWVuICVzIGFuZCAlcyBpcyBub3QgcG9zc2libGUgd2hlbiBj b2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkLiIsCisJCQkJCQkJCWNhbm9uaWNhbF9uYW1l LAorCQkJCQkJCQlHZXREYXRhYmFzZUVuY29kaW5nTmFtZSgpKTsKKwkJZWxzZSBpZiAoSXNU cmFuc2FjdGlvblN0YXRlKCkpCiAJCXsKIAkJCS8qIE11c3QgYmUgYSBnZW51aW5lIG5vLXN1 Y2gtY29udmVyc2lvbiBwcm9ibGVtICovCiAJCQlHVUNfY2hlY2tfZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy92aWV3LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMKaW5kZXggZmY5OGM3 NzNmNS4uMTcxZGNhMzgwMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmll dy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYwpAQCAtODgsNiArODgsMjYg QEAgRGVmaW5lVmlydHVhbFJlbGF0aW9uKFJhbmdlVmFyICpyZWxhdGlvbiwgTGlzdCAqdGxp c3QsIGJvb2wgcmVwbGFjZSwKIAkJCWVsc2UKIAkJCQlBc3NlcnQoIU9pZElzVmFsaWQoZGVm LT5jb2xsT2lkKSk7CiAKKwkJCWlmICh0eXBlX2lzX2VuY3J5cHRlZChleHByVHlwZSgoTm9k ZSAqKSB0bGUtPmV4cHIpKSkKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHA7CisJCQkJRm9ybV9w Z19hdHRyaWJ1dGUgb3JpZ19hdHQ7CisKKwkJCQlpZiAoIXRsZS0+cmVzb3JpZ3RibCB8fCAh dGxlLT5yZXNvcmlnY29sKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCWVycmNvZGUo RVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJCQllcnJtc2coInVu ZGVybHlpbmcgdGFibGUgYW5kIGNvbHVtbiBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCBmb3Ig ZW5jcnlwdGVkIHZpZXcgY29sdW1uIikpOworCisJCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTIo QVRUTlVNLCBPYmplY3RJZEdldERhdHVtKHRsZS0+cmVzb3JpZ3RibCksIEludDE2R2V0RGF0 dW0odGxlLT5yZXNvcmlnY29sKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHRwKSkK KwkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGF0dHJpYnV0ZSAl ZCBvZiByZWxhdGlvbiAldSIsIHRsZS0+cmVzb3JpZ2NvbCwgdGxlLT5yZXNvcmlndGJsKTsK KwkJCQlvcmlnX2F0dCA9IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHRwKTsKKwkJ CQlkZWYtPnR5cGVOYW1lID0gbWFrZVR5cGVOYW1lRnJvbU9pZChvcmlnX2F0dC0+YXR0dXNl cnR5cGlkLAorCQkJCQkJCQkJCQkJCW9yaWdfYXR0LT5hdHR1c2VydHlwbW9kKTsKKwkJCQlk ZWYtPmVuY3J5cHRpb24gPSBtYWtlQ29sdW1uRW5jcnlwdGlvbihvcmlnX2F0dCk7CisJCQkJ UmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJCX0KKwogCQkJYXR0ckxpc3QgPSBsYXBwZW5kKGF0 dHJMaXN0LCBkZWYpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMv bm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCBkYzg0 MTVhNjkzLi5jODFiYzE1MTI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2Rl RnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMzk4Myw2 ICszOTgzLDggQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2Rl LAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FMSyhjb2xkZWYtPmNvbXByZXNzaW9u KSkKIAkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoY29sZGVmLT5lbmNyeXB0aW9u KSkKKwkJCQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKFdBTEsoY29sZGVmLT5yYXdfZGVmYXVs dCkpCiAJCQkJCXJldHVybiB0cnVlOwogCQkJCWlmIChXQUxLKGNvbGRlZi0+Y29sbENsYXVz ZSkpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQppbmRleCBhMDEzODM4MmExLi45ZjRiMWU3ZDk0IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTI4MCw2ICsyODAsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkp OwogCiAldHlwZSA8bm9kZT4Jc3RtdCB0b3BsZXZlbF9zdG10IHNjaGVtYV9zdG10IHJvdXRp bmVfYm9keV9zdG10CiAJCUFsdGVyRXZlbnRUcmlnU3RtdCBBbHRlckNvbGxhdGlvblN0bXQK KwkJQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCBBbHRlckNvbHVtbk1hc3RlcktleVN0 bXQKIAkJQWx0ZXJEYXRhYmFzZVN0bXQgQWx0ZXJEYXRhYmFzZVNldFN0bXQgQWx0ZXJEb21h aW5TdG10IEFsdGVyRW51bVN0bXQKIAkJQWx0ZXJGZHdTdG10IEFsdGVyRm9yZWlnblNlcnZl clN0bXQgQWx0ZXJHcm91cFN0bXQKIAkJQWx0ZXJPYmplY3REZXBlbmRzU3RtdCBBbHRlck9i amVjdFNjaGVtYVN0bXQgQWx0ZXJPd25lclN0bXQKQEAgLTQxOSw2ICs0MjAsNyBAQCBzdGF0 aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAq YWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCiAldHlwZSA8bGlzdD4JcGFyc2VfdG9wbGV2ZWwg c3RtdG11bHRpIHJvdXRpbmVfYm9keV9zdG10X2xpc3QKIAkJCQlPcHRUYWJsZUVsZW1lbnRM aXN0IFRhYmxlRWxlbWVudExpc3QgT3B0SW5oZXJpdCBkZWZpbml0aW9uCisJCQkJbGlzdF9v Zl9kZWZpbml0aW9ucwogCQkJCU9wdFR5cGVkVGFibGVFbGVtZW50TGlzdCBUeXBlZFRhYmxl RWxlbWVudExpc3QKIAkJCQlyZWxvcHRpb25zIG9wdF9yZWxvcHRpb25zCiAJCQkJT3B0V2l0 aCBvcHRfZGVmaW5pdGlvbiBmdW5jX2FyZ3MgZnVuY19hcmdzX2xpc3QKQEAgLTU5Miw2ICs1 OTQsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVs bmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPG5vZGU+CVRhYmxl Q29uc3RyYWludCBUYWJsZUxpa2VDbGF1c2UKICV0eXBlIDxpdmFsPglUYWJsZUxpa2VPcHRp b25MaXN0IFRhYmxlTGlrZU9wdGlvbgogJXR5cGUgPHN0cj4JCWNvbHVtbl9jb21wcmVzc2lv biBvcHRfY29sdW1uX2NvbXByZXNzaW9uIGNvbHVtbl9zdG9yYWdlIG9wdF9jb2x1bW5fc3Rv cmFnZQorJXR5cGUgPGxpc3Q+CW9wdF9jb2x1bW5fZW5jcnlwdGlvbgogJXR5cGUgPGxpc3Q+ CUNvbFF1YWxMaXN0CiAldHlwZSA8bm9kZT4JQ29sQ29uc3RyYWludCBDb2xDb25zdHJhaW50 RWxlbSBDb25zdHJhaW50QXR0cgogJXR5cGUgPGl2YWw+CWtleV9tYXRjaApAQCAtNjkwLDgg KzY5Myw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpy ZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJREVUQUNIIERJQ1RJT05B UlkgRElTQUJMRV9QIERJU0NBUkQgRElTVElOQ1QgRE8gRE9DVU1FTlRfUCBET01BSU5fUAog CURPVUJMRV9QIERST1AKIAotCUVBQ0ggRUxTRSBFTkFCTEVfUCBFTkNPRElORyBFTkNSWVBU RUQgRU5EX1AgRU5VTV9QIEVTQ0FQRSBFVkVOVCBFWENFUFQKLQlFWENMVURFIEVYQ0xVRElO RyBFWENMVVNJVkUgRVhFQ1VURSBFWElTVFMgRVhQTEFJTiBFWFBSRVNTSU9OCisJRUFDSCBF TFNFIEVOQUJMRV9QIEVOQ09ESU5HIEVOQ1JZUFRJT04gRU5DUllQVEVEIEVORF9QIEVOVU1f UCBFU0NBUEUKKwlFVkVOVCBFWENFUFQgRVhDTFVERSBFWENMVURJTkcgRVhDTFVTSVZFIEVY RUNVVEUgRVhJU1RTIEVYUExBSU4gRVhQUkVTU0lPTgogCUVYVEVOU0lPTiBFWFRFUk5BTCBF WFRSQUNUCiAKIAlGQUxTRV9QIEZBTUlMWSBGRVRDSCBGSUxURVIgRklOQUxJWkUgRklSU1Rf UCBGTE9BVF9QIEZPTExPV0lORyBGT1IKQEAgLTcxNCw3ICs3MTcsNyBAQCBzdGF0aWMgTm9k ZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNl cywgTm9kZSAqcXVlcnkpOwogCUxFQURJTkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVWRUwg TElLRSBMSU1JVCBMSVNURU4gTE9BRCBMT0NBTAogCUxPQ0FMVElNRSBMT0NBTFRJTUVTVEFN UCBMT0NBVElPTiBMT0NLX1AgTE9DS0VEIExPR0dFRAogCi0JTUFQUElORyBNQVRDSCBNQVRD SEVEIE1BVEVSSUFMSVpFRCBNQVhWQUxVRSBNRVJHRSBNRVRIT0QKKwlNQVBQSU5HIE1BU1RF UiBNQVRDSCBNQVRDSEVEIE1BVEVSSUFMSVpFRCBNQVhWQUxVRSBNRVJHRSBNRVRIT0QKIAlN SU5VVEVfUCBNSU5WQUxVRSBNT0RFIE1PTlRIX1AgTU9WRQogCiAJTkFNRV9QIE5BTUVTIE5B VElPTkFMIE5BVFVSQUwgTkNIQVIgTkVXIE5FWFQgTkZDIE5GRCBORktDIE5GS0QgTk8gTk9O RQpAQCAtOTQyLDYgKzk0NSw4IEBAIHRvcGxldmVsX3N0bXQ6CiBzdG10OgogCQkJQWx0ZXJF dmVudFRyaWdTdG10CiAJCQl8IEFsdGVyQ29sbGF0aW9uU3RtdAorCQkJfCBBbHRlckNvbHVt bkVuY3J5cHRpb25LZXlTdG10CisJCQl8IEFsdGVyQ29sdW1uTWFzdGVyS2V5U3RtdAogCQkJ fCBBbHRlckRhdGFiYXNlU3RtdAogCQkJfCBBbHRlckRhdGFiYXNlU2V0U3RtdAogCQkJfCBB bHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdApAQCAtMzcwMCwxNCArMzcwNSwxNSBAQCBUeXBl ZFRhYmxlRWxlbWVudDoKIAkJCXwgVGFibGVDb25zdHJhaW50CQkJCQl7ICQkID0gJDE7IH0K IAkJOwogCi1jb2x1bW5EZWY6CUNvbElkIFR5cGVuYW1lIG9wdF9jb2x1bW5fc3RvcmFnZSBv cHRfY29sdW1uX2NvbXByZXNzaW9uIGNyZWF0ZV9nZW5lcmljX29wdGlvbnMgQ29sUXVhbExp c3QKK2NvbHVtbkRlZjoJQ29sSWQgVHlwZW5hbWUgb3B0X2NvbHVtbl9lbmNyeXB0aW9uIG9w dF9jb2x1bW5fc3RvcmFnZSBvcHRfY29sdW1uX2NvbXByZXNzaW9uIGNyZWF0ZV9nZW5lcmlj X29wdGlvbnMgQ29sUXVhbExpc3QKIAkJCQl7CiAJCQkJCUNvbHVtbkRlZiAqbiA9IG1ha2VO b2RlKENvbHVtbkRlZik7CiAKIAkJCQkJbi0+Y29sbmFtZSA9ICQxOwogCQkJCQluLT50eXBl TmFtZSA9ICQyOwotCQkJCQluLT5zdG9yYWdlX25hbWUgPSAkMzsKLQkJCQkJbi0+Y29tcHJl c3Npb24gPSAkNDsKKwkJCQkJbi0+ZW5jcnlwdGlvbiA9ICQzOworCQkJCQluLT5zdG9yYWdl X25hbWUgPSAkNDsKKwkJCQkJbi0+Y29tcHJlc3Npb24gPSAkNTsKIAkJCQkJbi0+aW5oY291 bnQgPSAwOwogCQkJCQluLT5pc19sb2NhbCA9IHRydWU7CiAJCQkJCW4tPmlzX25vdF9udWxs ID0gZmFsc2U7CkBAIC0zNzE2LDggKzM3MjIsOCBAQCBjb2x1bW5EZWY6CUNvbElkIFR5cGVu YW1lIG9wdF9jb2x1bW5fc3RvcmFnZSBvcHRfY29sdW1uX2NvbXByZXNzaW9uIGNyZWF0ZV9n ZW5lcgogCQkJCQluLT5yYXdfZGVmYXVsdCA9IE5VTEw7CiAJCQkJCW4tPmNvb2tlZF9kZWZh dWx0ID0gTlVMTDsKIAkJCQkJbi0+Y29sbE9pZCA9IEludmFsaWRPaWQ7Ci0JCQkJCW4tPmZk d29wdGlvbnMgPSAkNTsKLQkJCQkJU3BsaXRDb2xRdWFsTGlzdCgkNiwgJm4tPmNvbnN0cmFp bnRzLCAmbi0+Y29sbENsYXVzZSwKKwkJCQkJbi0+ZmR3b3B0aW9ucyA9ICQ2OworCQkJCQlT cGxpdENvbFF1YWxMaXN0KCQ3LCAmbi0+Y29uc3RyYWludHMsICZuLT5jb2xsQ2xhdXNlLAog CQkJCQkJCQkJIHl5c2Nhbm5lcik7CiAJCQkJCW4tPmxvY2F0aW9uID0gQDE7CiAJCQkJCSQk ID0gKE5vZGUgKikgbjsKQEAgLTM3NzQsNiArMzc4MCwxMSBAQCBvcHRfY29sdW1uX2NvbXBy ZXNzaW9uOgogCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxMOyB9CiAJCTsKIAor b3B0X2NvbHVtbl9lbmNyeXB0aW9uOgorCQkJRU5DUllQVEVEIFdJVEggJygnIGRlZl9saXN0 ICcpJwkJCXsgJCQgPSAkNDsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxM OyB9CisJCTsKKwogY29sdW1uX3N0b3JhZ2U6CiAJCQlTVE9SQUdFIENvbElkCQkJCQkJCXsg JCQgPSAkMjsgfQogCQkJfCBTVE9SQUdFIERFRkFVTFQJCQkJCQl7ICQkID0gcHN0cmR1cCgi ZGVmYXVsdCIpOyB9CkBAIC00MDM0LDYgKzQwNDUsNyBAQCBUYWJsZUxpa2VPcHRpb246CiAJ CQkJfCBDT01QUkVTU0lPTgkJeyAkJCA9IENSRUFURV9UQUJMRV9MSUtFX0NPTVBSRVNTSU9O OyB9CiAJCQkJfCBDT05TVFJBSU5UUwkJeyAkJCA9IENSRUFURV9UQUJMRV9MSUtFX0NPTlNU UkFJTlRTOyB9CiAJCQkJfCBERUZBVUxUUwkJCXsgJCQgPSBDUkVBVEVfVEFCTEVfTElLRV9E RUZBVUxUUzsgfQorCQkJCXwgRU5DUllQVEVECQkJeyAkJCA9IENSRUFURV9UQUJMRV9MSUtF X0VOQ1JZUFRFRDsgfQogCQkJCXwgSURFTlRJVFlfUAkJeyAkJCA9IENSRUFURV9UQUJMRV9M SUtFX0lERU5USVRZOyB9CiAJCQkJfCBHRU5FUkFURUQJCQl7ICQkID0gQ1JFQVRFX1RBQkxF X0xJS0VfR0VORVJBVEVEOyB9CiAJCQkJfCBJTkRFWEVTCQkJeyAkJCA9IENSRUFURV9UQUJM RV9MSUtFX0lOREVYRVM7IH0KQEAgLTYyNzAsNiArNjI4MiwzMyBAQCBEZWZpbmVTdG10Ogog CQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwog CQkJCX0KKwkJCXwgQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhbnlfbmFtZSBXSVRI IFZBTFVFUyBsaXN0X29mX2RlZmluaXRpb25zCisJCQkJeworCQkJCQlEZWZpbmVTdG10ICpu ID0gbWFrZU5vZGUoRGVmaW5lU3RtdCk7CisKKwkJCQkJbi0+a2luZCA9IE9CSkVDVF9DRUs7 CisJCQkJCW4tPmRlZm5hbWVzID0gJDU7CisJCQkJCW4tPmRlZmluaXRpb24gPSAkODsKKwkJ CQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQ1JFQVRFIENPTFVNTiBNQVNURVIg S0VZIGFueV9uYW1lCisJCQkJeworCQkJCQlEZWZpbmVTdG10ICpuID0gbWFrZU5vZGUoRGVm aW5lU3RtdCk7CisKKwkJCQkJbi0+a2luZCA9IE9CSkVDVF9DTUs7CisJCQkJCW4tPmRlZm5h bWVzID0gJDU7CisJCQkJCW4tPmRlZmluaXRpb24gPSBOSUw7CisJCQkJCSQkID0gKE5vZGUg KikgbjsKKwkJCQl9CisJCQl8IENSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBhbnlfbmFtZSBX SVRIIGRlZmluaXRpb24KKwkJCQl7CisJCQkJCURlZmluZVN0bXQgKm4gPSBtYWtlTm9kZShE ZWZpbmVTdG10KTsKKworCQkJCQluLT5raW5kID0gT0JKRUNUX0NNSzsKKwkJCQkJbi0+ZGVm bmFtZXMgPSAkNTsKKwkJCQkJbi0+ZGVmaW5pdGlvbiA9ICQ3OworCQkJCQkkJCA9IChOb2Rl ICopIG47CisJCQkJfQogCQk7CiAKIGRlZmluaXRpb246ICcoJyBkZWZfbGlzdCAnKScJCQkJ CQl7ICQkID0gJDI7IH0KQEAgLTYyODksNiArNjMyOCwxMCBAQCBkZWZfZWxlbToJQ29sTGFi ZWwgJz0nIGRlZl9hcmcKIAkJCQl9CiAJCTsKIAorbGlzdF9vZl9kZWZpbml0aW9uczogZGVm aW5pdGlvbgkJCQkJCXsgJCQgPSBsaXN0X21ha2UxKCQxKTsgfQorCQkJfCBsaXN0X29mX2Rl ZmluaXRpb25zICcsJyBkZWZpbml0aW9uCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KKwkJ OworCiAvKiBOb3RlOiBhbnkgc2ltcGxlIGlkZW50aWZpZXIgd2lsbCBiZSByZXR1cm5lZCBh cyBhIHR5cGUgbmFtZSEgKi8KIGRlZl9hcmc6CWZ1bmNfdHlwZQkJCQkJCXsgJCQgPSAoTm9k ZSAqKSAkMTsgfQogCQkJfCByZXNlcnZlZF9rZXl3b3JkCQkJCXsgJCQgPSAoTm9kZSAqKSBt YWtlU3RyaW5nKHBzdHJkdXAoJDEpKTsgfQpAQCAtNjgwMCw2ICs2ODQzLDggQEAgb2JqZWN0 X3R5cGVfYW55X25hbWU6CiAJCQl8IElOREVYCQkJCQkJCQkJeyAkJCA9IE9CSkVDVF9JTkRF WDsgfQogCQkJfCBGT1JFSUdOIFRBQkxFCQkJCQkJCXsgJCQgPSBPQkpFQ1RfRk9SRUlHTl9U QUJMRTsgfQogCQkJfCBDT0xMQVRJT04JCQkJCQkJCXsgJCQgPSBPQkpFQ1RfQ09MTEFUSU9O OyB9CisJCQl8IENPTFVNTiBFTkNSWVBUSU9OIEtFWQkJCQkJeyAkJCA9IE9CSkVDVF9DRUs7 IH0KKwkJCXwgQ09MVU1OIE1BU1RFUiBLRVkJCQkJCQl7ICQkID0gT0JKRUNUX0NNSzsgfQog CQkJfCBDT05WRVJTSU9OX1AJCQkJCQkJeyAkJCA9IE9CSkVDVF9DT05WRVJTSU9OOyB9CiAJ CQl8IFNUQVRJU1RJQ1MJCQkJCQkJeyAkJCA9IE9CSkVDVF9TVEFUSVNUSUNfRVhUOyB9CiAJ CQl8IFRFWFRfUCBTRUFSQ0ggUEFSU0VSCQkJCQl7ICQkID0gT0JKRUNUX1RTUEFSU0VSOyB9 CkBAIC03NjExLDYgKzc2NTYsMjQgQEAgcHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2Jq cyA9ICQyOwogCQkJCQkkJCA9IG47CiAJCQkJfQorCQkJfCBDT0xVTU4gRU5DUllQVElPTiBL RVkgYW55X25hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFy Z2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOworCisJCQkJCW4tPnRhcmd0eXBl ID0gQUNMX1RBUkdFVF9PQkpFQ1Q7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpFQ1RfQ0VLOwor CQkJCQluLT5vYmpzID0gJDQ7CisJCQkJCSQkID0gbjsKKwkJCQl9CisJCQl8IENPTFVNTiBN QVNURVIgS0VZIGFueV9uYW1lX2xpc3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQgKm4gPSAo UHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKKworCQkJCQluLT50 YXJndHlwZSA9IEFDTF9UQVJHRVRfT0JKRUNUOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNU X0NNSzsKKwkJCQkJbi0+b2JqcyA9ICQ0OworCQkJCQkkJCA9IG47CisJCQkJfQogCQkJfCBE QVRBQkFTRSBuYW1lX2xpc3QKIAkJCQl7CiAJCQkJCVByaXZUYXJnZXQgKm4gPSAoUHJpdlRh cmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKQEAgLTkxNDAsNiArOTIwMywy NiBAQCBSZW5hbWVTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlw ZXMgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkk JCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBL RVkgYW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4g PSBtYWtlTm9kZShSZW5hbWVTdG10KTsKKworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNU X0NFSzsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJCW4tPm5ld25hbWUg PSAkODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICop IG47CisJCQkJfQorCQkJfCBBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBhbnlfbmFtZSBSRU5B TUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFt ZVN0bXQpOworCisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfQ01LOworCQkJCQluLT5v YmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ4OworCQkJCQluLT5t aXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCQl8 IEFMVEVSIENPTlZFUlNJT05fUCBhbnlfbmFtZSBSRU5BTUUgVE8gbmFtZQogCQkJCXsKIAkJ CQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOwpAQCAtOTgxNyw2ICs5 OTAwLDI2IEBAIEFsdGVyT2JqZWN0U2NoZW1hU3RtdDoKIAkJCQkJbi0+bWlzc2luZ19vayA9 IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVkgYW55X25hbWUgU0VUIFNDSEVNQSBuYW1lCisJCQkJeworCQkJ CQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck9iamVjdFNjaGVt YVN0bXQpOworCisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfQ0VLOworCQkJCQluLT5v YmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDg7CisJCQkJCW4t Pm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJ CXwgQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgYW55X25hbWUgU0VUIFNDSEVNQSBuYW1lCisJ CQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck9i amVjdFNjaGVtYVN0bXQpOworCisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfQ01LOwor CQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDg7 CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOwor CQkJCX0KIAkJCXwgQUxURVIgQ09OVkVSU0lPTl9QIGFueV9uYW1lIFNFVCBTQ0hFTUEgbmFt ZQogCQkJCXsKIAkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUoQWx0 ZXJPYmplY3RTY2hlbWFTdG10KTsKQEAgLTEwMTQ4LDYgKzEwMjUxLDI0IEBAIEFsdGVyT3du ZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dORVIg VE8gUm9sZVNwZWMKIAkJCQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KKwkJCXwgQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGFueV9uYW1l IE9XTkVSIFRPIFJvbGVTcGVjCisJCQkJeworCQkJCQlBbHRlck93bmVyU3RtdCAqbiA9IG1h a2VOb2RlKEFsdGVyT3duZXJTdG10KTsKKworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNU X0NFSzsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJCW4tPm5ld293bmVy ID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIENPTFVN TiBNQVNURVIgS0VZIGFueV9uYW1lIE9XTkVSIFRPIFJvbGVTcGVjCisJCQkJeworCQkJCQlB bHRlck93bmVyU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT3duZXJTdG10KTsKKworCQkJCQlu LT5vYmplY3RUeXBlID0gT0JKRUNUX0NNSzsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikg JDU7CisJCQkJCW4tPm5ld293bmVyID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJ CQl9CiAJCQl8IEFMVEVSIENPTlZFUlNJT05fUCBhbnlfbmFtZSBPV05FUiBUTyBSb2xlU3Bl YwogCQkJCXsKIAkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck93bmVy U3RtdCk7CkBAIC0xMTMwNCw2ICsxMTQyNSw1MiBAQCBBbHRlckNvbGxhdGlvblN0bXQ6IEFM VEVSIENPTExBVElPTiBhbnlfbmFtZSBSRUZSRVNIIFZFUlNJT05fUAogCQk7CiAKIAorLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisgKgorICoJCUFMVEVSIENPTFVNTiBFTkNSWVBUSU9O IEtFWQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworQWx0ZXJDb2x1bW5FbmNy eXB0aW9uS2V5U3RtdDoKKwkJCUFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhbnlfbmFt ZSBBRERfUCBWQUxVRV9QIGRlZmluaXRpb24KKwkJCQl7CisJCQkJCUFsdGVyQ29sdW1uRW5j cnlwdGlvbktleVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlT dG10KTsKKworCQkJCQluLT5jZWtuYW1lID0gJDU7CisJCQkJCW4tPmlzRHJvcCA9IGZhbHNl OworCQkJCQluLT5kZWZpbml0aW9uID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJ CQl9CisJCQl8IEFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhbnlfbmFtZSBEUk9QIFZB TFVFX1AgZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5 U3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQpOworCisJ CQkJCW4tPmNla25hbWUgPSAkNTsKKwkJCQkJbi0+aXNEcm9wID0gdHJ1ZTsKKwkJCQkJbi0+ ZGVmaW5pdGlvbiA9ICQ4OworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisK KworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJCUFMVEVSIENPTFVNTiBNQVNU RVIgS0VZCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitBbHRlckNvbHVtbk1h c3RlcktleVN0bXQ6CisJCQlBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBhbnlfbmFtZSBkZWZp bml0aW9uCisJCQkJeworCQkJCQlBbHRlckNvbHVtbk1hc3RlcktleVN0bXQgKm4gPSBtYWtl Tm9kZShBbHRlckNvbHVtbk1hc3RlcktleVN0bXQpOworCisJCQkJCW4tPmNta25hbWUgPSAk NTsKKwkJCQkJbi0+ZGVmaW5pdGlvbiA9ICQ2OworCQkJCQkkJCA9IChOb2RlICopIG47CisJ CQkJfQorCQk7CisKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICoJCUFMVEVS IFNZU1RFTQpAQCAtMTY3OTEsNiArMTY5NTgsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJ CQl8IEVOQUJMRV9QCiAJCQl8IEVOQ09ESU5HCiAJCQl8IEVOQ1JZUFRFRAorCQkJfCBFTkNS WVBUSU9OCiAJCQl8IEVOVU1fUAogCQkJfCBFU0NBUEUKIAkJCXwgRVZFTlQKQEAgLTE2ODU0 LDYgKzE3MDIyLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBMT0NLRUQKIAkJCXwg TE9HR0VECiAJCQl8IE1BUFBJTkcKKwkJCXwgTUFTVEVSCiAJCQl8IE1BVENICiAJCQl8IE1B VENIRUQKIAkJCXwgTUFURVJJQUxJWkVECkBAIC0xNzMzNyw2ICsxNzUwNiw3IEBAIGJhcmVf bGFiZWxfa2V5d29yZDoKIAkJCXwgRU5BQkxFX1AKIAkJCXwgRU5DT0RJTkcKIAkJCXwgRU5D UllQVEVECisJCQl8IEVOQ1JZUFRJT04KIAkJCXwgRU5EX1AKIAkJCXwgRU5VTV9QCiAJCQl8 IEVTQ0FQRQpAQCAtMTc0MjUsNiArMTc1OTUsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJ CQl8IExPQ0tFRAogCQkJfCBMT0dHRUQKIAkJCXwgTUFQUElORworCQkJfCBNQVNURVIKIAkJ CXwgTUFUQ0gKIAkJCXwgTUFUQ0hFRAogCQkJfCBNQVRFUklBTElaRUQKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9wYXJhbS5jIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3BhcmFtLmMKaW5kZXggMjI0MDI4NGYyMS4uYThhMTg1NWFhMCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3BhcmFtLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3BhcmFtLmMKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJjYXRh bG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfcGFyYW0uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgi CiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2Fj aGUuaCIKIApAQCAtMzU3LDMgKzM1OCwxNTkgQEAgcXVlcnlfY29udGFpbnNfZXh0ZXJuX3Bh cmFtc193YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKIAlyZXR1cm4gZXhwcmVz c2lvbl90cmVlX3dhbGtlcihub2RlLCBxdWVyeV9jb250YWluc19leHRlcm5fcGFyYW1zX3dh bGtlciwKIAkJCQkJCQkJICBjb250ZXh0KTsKIH0KKworLyoKKyAqIFdhbGsgYSBxdWVyeSB0 cmVlIGFuZCBmaW5kIG91dCB3aGF0IHRhYmxlcyBhbmQgY29sdW1ucyBhIHBhcmFtZXRlciBp cworICogYXNzb2NpYXRlZCB3aXRoLgorICoKKyAqIFdlIG5lZWQgdG8gZmluZCAxKSBwYXJh bWV0ZXJzIHdyaXR0ZW4gZGlyZWN0bHkgaW50byBhIHRhYmxlIGNvbHVtbiwgYW5kIDIpCisg KiBiaW5hcnkgcHJlZGljYXRlcyByZWxhdGluZyBhIHBhcmFtZXRlciB0byBhIHRhYmxlIGNv bHVtbi4KKyAqCisgKiBXZSBqdXN0IG5lZWQgdG8gZmluZCBWYXIgYW5kIFBhcmFtIG5vZGVz IGluIGFwcHJvcHJpYXRlIHBsYWNlcy4gIFdlIGRvbid0CisgKiBuZWVkIHRvIGRvIGhhcmRl ciB0aGluZ3MgbGlrZSBsb29raW5nIHRocm91Z2ggY2FzdHMsIHNpbmNlIHRoaXMgaXMgdXNl ZCBmb3IKKyAqIGNvbHVtbiBlbmNyeXB0aW9uLCBhbmQgZW5jcnlwdGVkIGNvbHVtbnMgY2Fu J3QgYmUgdXNlZnVsbHkgY2FzdCB0bworICogYW55dGhpbmcuCisgKi8KKworc3RydWN0IGZp bmRfcGFyYW1fb3JpZ3NfY29udGV4dAoreworCWNvbnN0IFF1ZXJ5ICpxdWVyeTsKKwlPaWQJ CSAgICpwYXJhbV9vcmlnX3RibHM7CisJQXR0ck51bWJlciAqcGFyYW1fb3JpZ19jb2xzOwor fTsKKworc3RhdGljIGJvb2wKK2ZpbmRfcGFyYW1fb3JpZ3Nfd2Fsa2VyKE5vZGUgKm5vZGUs IHN0cnVjdCBmaW5kX3BhcmFtX29yaWdzX2NvbnRleHQgKmNvbnRleHQpCit7CisJaWYgKG5v ZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKElzQShub2RlLCBPcEV4cHIp IHx8IElzQShub2RlLCBEaXN0aW5jdEV4cHIpIHx8IElzQShub2RlLCBOdWxsSWZFeHByKSkK Kwl7CisJCU9wRXhwcgkgICAqb3BleHByID0gKE9wRXhwciAqKSBub2RlOworCisJCWlmIChs aXN0X2xlbmd0aChvcGV4cHItPmFyZ3MpID09IDIpCisJCXsKKwkJCU5vZGUJICAgKmxleHBy ID0gbGluaXRpYWwob3BleHByLT5hcmdzKTsKKwkJCU5vZGUJICAgKnJleHByID0gbHNlY29u ZChvcGV4cHItPmFyZ3MpOworCQkJVmFyCQkgICAqdiA9IE5VTEw7CisJCQlQYXJhbQkgICAq cCA9IE5VTEw7CisKKwkJCWlmIChJc0EobGV4cHIsIFZhcikgJiYgSXNBKHJleHByLCBQYXJh bSkpCisJCQl7CisJCQkJdiA9IGNhc3ROb2RlKFZhciwgbGV4cHIpOworCQkJCXAgPSBjYXN0 Tm9kZShQYXJhbSwgcmV4cHIpOworCQkJfQorCQkJZWxzZSBpZiAoSXNBKHJleHByLCBWYXIp ICYmIElzQShsZXhwciwgUGFyYW0pKQorCQkJeworCQkJCXYgPSBjYXN0Tm9kZShWYXIsIHJl eHByKTsKKwkJCQlwID0gY2FzdE5vZGUoUGFyYW0sIGxleHByKTsKKwkJCX0KKworCQkJaWYg KHYgJiYgcCkKKwkJCXsKKwkJCQlSYW5nZVRibEVudHJ5ICpydGU7CisKKwkJCQlydGUgPSBy dF9mZXRjaCh2LT52YXJubywgY29udGV4dC0+cXVlcnktPnJ0YWJsZSk7CisJCQkJaWYgKHJ0 ZS0+cnRla2luZCA9PSBSVEVfUkVMQVRJT04pCisJCQkJeworCQkJCQljb250ZXh0LT5wYXJh bV9vcmlnX3RibHNbcC0+cGFyYW1pZCAtIDFdID0gcnRlLT5yZWxpZDsKKwkJCQkJY29udGV4 dC0+cGFyYW1fb3JpZ19jb2xzW3AtPnBhcmFtaWQgLSAxXSA9IHYtPnZhcmF0dG5vOworCQkJ CX0KKwkJCX0KKwkJfQorCQlyZXR1cm4gZmFsc2U7CisJfQorCisJLyoKKwkgKiBUYXJnZXRF bnRyeSBpbiBhIHF1ZXJ5IHdpdGggYSByZXN1bHQgcmVsYXRpb24KKwkgKi8KKwlpZiAoSXNB KG5vZGUsIFRhcmdldEVudHJ5KSAmJiBjb250ZXh0LT5xdWVyeS0+cmVzdWx0UmVsYXRpb24g PiAwKQorCXsKKwkJVGFyZ2V0RW50cnkgKnRlID0gKFRhcmdldEVudHJ5ICopIG5vZGU7CisJ CVJhbmdlVGJsRW50cnkgKnJlc3J0ZTsKKworCQlyZXNydGUgPSBydF9mZXRjaChjb250ZXh0 LT5xdWVyeS0+cmVzdWx0UmVsYXRpb24sIGNvbnRleHQtPnF1ZXJ5LT5ydGFibGUpOworCQlp ZiAocmVzcnRlLT5ydGVraW5kID09IFJURV9SRUxBVElPTikKKwkJeworCQkJRXhwcgkgICAq ZXhwciA9IHRlLT5leHByOworCisJCQkvKgorCQkJICogSWYgaXQncyBhIFJlbGFiZWxUeXBl LCBsb29rIGluc2lkZS4gIChGb3IgZW5jcnlwdGVkIGNvbHVtbnMsCisJCQkgKiB0aGlzIHdv dWxkIHR5cGljYWxseSBiZSBhIHR5cG1vZCBhZGp1c3RtZW50LikKKwkJCSAqLworCQkJaWYg KElzQShleHByLCBSZWxhYmVsVHlwZSkpCisJCQkJZXhwciA9IGNhc3ROb2RlKFJlbGFiZWxU eXBlLCBleHByKS0+YXJnOworCisJCQkvKgorCQkJICogUGFyYW0gZGlyZWN0bHkgaW4gYSB0 YXJnZXQgbGlzdAorCQkJICovCisJCQlpZiAoSXNBKGV4cHIsIFBhcmFtKSkKKwkJCXsKKwkJ CQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBleHByOworCisJCQkJY29udGV4dC0+cGFyYW1f b3JpZ190YmxzW3AtPnBhcmFtaWQgLSAxXSA9IHJlc3J0ZS0+cmVsaWQ7CisJCQkJY29udGV4 dC0+cGFyYW1fb3JpZ19jb2xzW3AtPnBhcmFtaWQgLSAxXSA9IHRlLT5yZXNubzsKKwkJCX0K KworCQkJLyoKKwkJCSAqIElmIGl0J3MgYSBWYXIsIGNoZWNrIHdoZXRoZXIgaXQgY29ycmVz cG9uZHMgdG8gYSBWQUxVRVMgbGlzdAorCQkJICogd2l0aCB0b3AtbGV2ZWwgcGFyYW1ldGVy cy4gIFRoaXMgY292ZXJzIG11bHRpLXJvdyBJTlNFUlRTLgorCQkJICovCisJCQllbHNlIGlm IChJc0EoZXhwciwgVmFyKSkKKwkJCXsKKwkJCQlWYXIJCSAgICp2ID0gKFZhciAqKSBleHBy OworCQkJCVJhbmdlVGJsRW50cnkgKnNyY3J0ZTsKKworCQkJCXNyY3J0ZSA9IHJ0X2ZldGNo KHYtPnZhcm5vLCBjb250ZXh0LT5xdWVyeS0+cnRhYmxlKTsKKwkJCQlpZiAoc3JjcnRlLT5y dGVraW5kID09IFJURV9WQUxVRVMpCisJCQkJeworCQkJCQlMaXN0Q2VsbCAgICpsYzsKKwor CQkJCQlmb3JlYWNoKGxjLCBzcmNydGUtPnZhbHVlc19saXN0cykKKwkJCQkJeworCQkJCQkJ TGlzdAkgICAqdmFsdWVzX2xpc3QgPSBsZmlyc3Rfbm9kZShMaXN0LCBsYyk7CisJCQkJCQlF eHByCSAgICp2YWx1ZSA9IGxpc3RfbnRoKHZhbHVlc19saXN0LCB2LT52YXJhdHRubyAtIDEp OworCisJCQkJCQlpZiAoSXNBKHZhbHVlLCBSZWxhYmVsVHlwZSkpCisJCQkJCQkJdmFsdWUg PSBjYXN0Tm9kZShSZWxhYmVsVHlwZSwgdmFsdWUpLT5hcmc7CisKKwkJCQkJCWlmIChJc0Eo dmFsdWUsIFBhcmFtKSkKKwkJCQkJCXsKKwkJCQkJCQlQYXJhbQkgICAqcCA9IChQYXJhbSAq KSB2YWx1ZTsKKworCQkJCQkJCWNvbnRleHQtPnBhcmFtX29yaWdfdGJsc1twLT5wYXJhbWlk IC0gMV0gPSByZXNydGUtPnJlbGlkOworCQkJCQkJCWNvbnRleHQtPnBhcmFtX29yaWdfY29s c1twLT5wYXJhbWlkIC0gMV0gPSB0ZS0+cmVzbm87CisJCQkJCQl9CisJCQkJCX0KKwkJCQl9 CisJCQl9CisJCX0KKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWlmIChJc0Eobm9kZSwgUXVl cnkpKQorCXsKKwkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKChRdWVyeSAqKSBub2RlLCBm aW5kX3BhcmFtX29yaWdzX3dhbGtlciwgY29udGV4dCwgMCk7CisJfQorCisJcmV0dXJuIGV4 cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgZmluZF9wYXJhbV9vcmlnc193YWxrZXIsIGNv bnRleHQpOworfQorCit2b2lkCitmaW5kX3BhcmFtX29yaWdzKExpc3QgKnF1ZXJ5X2xpc3Qs IE9pZCAqKnBhcmFtX29yaWdfdGJscywgQXR0ck51bWJlciAqKnBhcmFtX29yaWdfY29scykK K3sKKwlzdHJ1Y3QgZmluZF9wYXJhbV9vcmlnc19jb250ZXh0IGNvbnRleHQ7CisJTGlzdENl bGwgICAqbGM7CisKKwljb250ZXh0LnBhcmFtX29yaWdfdGJscyA9ICpwYXJhbV9vcmlnX3Ri bHM7CisJY29udGV4dC5wYXJhbV9vcmlnX2NvbHMgPSAqcGFyYW1fb3JpZ19jb2xzOworCisJ Zm9yZWFjaChsYywgcXVlcnlfbGlzdCkKKwl7CisJCVF1ZXJ5CSAgICpxdWVyeSA9IGxmaXJz dF9ub2RlKFF1ZXJ5LCBsYyk7CisKKwkJY29udGV4dC5xdWVyeSA9IHF1ZXJ5OworCQlxdWVy eV90cmVlX3dhbGtlcihxdWVyeSwgZmluZF9wYXJhbV9vcmlnc193YWxrZXIsICZjb250ZXh0 LCAwKTsKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRp bGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCBmOTIx OGY0OGFhLi44ZDkwMjI5MmNkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMK QEAgLTEwMzUsOCArMTAzNSwxNiBAQCB0cmFuc2Zvcm1UYWJsZUxpa2VDbGF1c2UoQ3JlYXRl U3RtdENvbnRleHQgKmN4dCwgVGFibGVMaWtlQ2xhdXNlICp0YWJsZV9saWtlX2NsYQogCQkg Ki8KIAkJZGVmID0gbWFrZU5vZGUoQ29sdW1uRGVmKTsKIAkJZGVmLT5jb2xuYW1lID0gcHN0 cmR1cChhdHRyaWJ1dGVOYW1lKTsKLQkJZGVmLT50eXBlTmFtZSA9IG1ha2VUeXBlTmFtZUZy b21PaWQoYXR0cmlidXRlLT5hdHR0eXBpZCwKLQkJCQkJCQkJCQkJYXR0cmlidXRlLT5hdHR0 eXBtb2QpOworCQlpZiAodHlwZV9pc19lbmNyeXB0ZWQoYXR0cmlidXRlLT5hdHR0eXBpZCkp CisJCXsKKwkJCWRlZi0+dHlwZU5hbWUgPSBtYWtlVHlwZU5hbWVGcm9tT2lkKGF0dHJpYnV0 ZS0+YXR0dXNlcnR5cGlkLAorCQkJCQkJCQkJCQkJYXR0cmlidXRlLT5hdHR1c2VydHlwbW9k KTsKKwkJCWlmICh0YWJsZV9saWtlX2NsYXVzZS0+b3B0aW9ucyAmIENSRUFURV9UQUJMRV9M SUtFX0VOQ1JZUFRFRCkKKwkJCQlkZWYtPmVuY3J5cHRpb24gPSBtYWtlQ29sdW1uRW5jcnlw dGlvbihhdHRyaWJ1dGUpOworCQl9CisJCWVsc2UKKwkJCWRlZi0+dHlwZU5hbWUgPSBtYWtl VHlwZU5hbWVGcm9tT2lkKGF0dHJpYnV0ZS0+YXR0dHlwaWQsCisJCQkJCQkJCQkJCQlhdHRy aWJ1dGUtPmF0dHR5cG1vZCk7CiAJCWRlZi0+aW5oY291bnQgPSAwOwogCQlkZWYtPmlzX2xv Y2FsID0gdHJ1ZTsKIAkJZGVmLT5pc19ub3RfbnVsbCA9IGF0dHJpYnV0ZS0+YXR0bm90bnVs bDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jIGIv c3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKaW5kZXggMjU1MjMyN2Q5MC4u NzllYzljNGQxZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFz dGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKQEAgLTIy MTAsMTIgKzIyMTAsMjcgQEAgUHJvY2Vzc1N0YXJ0dXBQYWNrZXQoUG9ydCAqcG9ydCwgYm9v bCBzc2xfZG9uZSwgYm9vbCBnc3NfZG9uZSkKIAkJCQkJCQkJCXZhbHB0ciksCiAJCQkJCQkJ IGVycmhpbnQoIlZhbGlkIHZhbHVlcyBhcmU6IFwiZmFsc2VcIiwgMCwgXCJ0cnVlXCIsIDEs IFwiZGF0YWJhc2VcIi4iKSkpOwogCQkJfQorCQkJZWxzZSBpZiAoc3RyY21wKG5hbWVwdHIs ICJfcHFfLmNvbHVtbl9lbmNyeXB0aW9uIikgPT0gMCkKKwkJCXsKKwkJCQkvKgorCQkJCSAq IFJpZ2h0IG5vdywgdGhlIG9ubHkgYWNjZXB0ZWQgdmFsdWUgaXMgIjEiLiAgVGhpcyBnaXZl cyByb29tCisJCQkJICogdG8gZXhwYW5kIHRoaXMgaW50byBhIHZlcnNpb24gbnVtYmVyLCBm b3IgZXhhbXBsZS4KKwkJCQkgKi8KKwkJCQlpZiAoc3RyY21wKHZhbHB0ciwgIjEiKSA9PSAw KQorCQkJCQlwb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkID0gdHJ1ZTsKKwkJCQll bHNlCisJCQkJCWVyZXBvcnQoRkFUQUwsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZB TElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQkJIGVycm1zZygiaW52YWxpZCB2YWx1ZSBm b3IgcGFyYW1ldGVyIFwiJXNcIjogXCIlc1wiIiwKKwkJCQkJCQkJCSJjb2x1bW5fZW5jcnlw dGlvbiIsCisJCQkJCQkJCQl2YWxwdHIpLAorCQkJCQkJCSBlcnJoaW50KCJWYWxpZCB2YWx1 ZXMgYXJlOiAxLiIpKSk7CisJCQl9CiAJCQllbHNlIGlmIChzdHJuY21wKG5hbWVwdHIsICJf cHFfLiIsIDUpID09IDApCiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBBbnkgb3B0aW9uIGJlZ2lu bmluZyB3aXRoIF9wcV8uIGlzIHJlc2VydmVkIGZvciB1c2UgYXMgYQotCQkJCSAqIHByb3Rv Y29sLWxldmVsIG9wdGlvbiwgYnV0IGF0IHByZXNlbnQgbm8gc3VjaCBvcHRpb25zIGFyZQot CQkJCSAqIGRlZmluZWQuCisJCQkJICogcHJvdG9jb2wtbGV2ZWwgb3B0aW9uLgogCQkJCSAq LwogCQkJCXVucmVjb2duaXplZF9wcm90b2NvbF9vcHRpb25zID0KIAkJCQkJbGFwcGVuZCh1 bnJlY29nbml6ZWRfcHJvdG9jb2xfb3B0aW9ucywgcHN0cmR1cChuYW1lcHRyKSk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgYi9zcmMvYmFja2VuZC90Y29w L3Bvc3RncmVzLmMKaW5kZXggY2FiNzA5YjA3Yi4uYzVhY2RkMGRjMiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9z dGdyZXMuYwpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIm5vZGVzL3ByaW50LmgiCiAj aW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgogI2luY2x1ZGUgInBhcnNlci9hbmFs eXplLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3BhcmFtLmgiCiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlci5oIgogI2luY2x1ZGUgInBnX2dldG9wdC5oIgogI2luY2x1ZGUgInBnX3Ry YWNlLmgiCkBAIC03MSw2ICs3Miw3IEBACiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIK ICNpbmNsdWRlICJ1dGlscy9wc19zdGF0dXMuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdy LmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy90aW1l b3V0LmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1wLmgiCiAKQEAgLTE4MTUsNiArMTgx NywxNiBAQCBleGVjX2JpbmRfbWVzc2FnZShTdHJpbmdJbmZvIGlucHV0X21lc3NhZ2UpCiAJ CQllbHNlCiAJCQkJcGZvcm1hdCA9IDA7CS8qIGRlZmF1bHQgPSB0ZXh0ICovCiAKKwkJCWlm ICh0eXBlX2lzX2VuY3J5cHRlZChwdHlwZSkpCisJCQl7CisJCQkJaWYgKHBmb3JtYXQgJiAw eEYwKQorCQkJCQlwZm9ybWF0ICY9IH4weEYwOworCQkJCWVsc2UKKwkJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1BST1RPQ09MX1ZJT0xBVElPTiksCisJ CQkJCQkJIGVycm1zZygicGFyYW1ldGVyICQlZCBjb3JyZXNwb25kcyB0byBhbiBlbmNyeXB0 ZWQgY29sdW1uLCBidXQgdGhlIHBhcmFtZXRlciB2YWx1ZSB3YXMgbm90IGVuY3J5cHRlZCIs IHBhcmFtbm8gKyAxKSkpOworCQkJfQorCiAJCQlpZiAocGZvcm1hdCA9PSAwKQkvKiB0ZXh0 IG1vZGUgKi8KIAkJCXsKIAkJCQlPaWQJCQl0eXBpbnB1dDsKQEAgLTI1NjAsNiArMjU3Miw4 IEBAIHN0YXRpYyB2b2lkCiBleGVjX2Rlc2NyaWJlX3N0YXRlbWVudF9tZXNzYWdlKGNvbnN0 IGNoYXIgKnN0bXRfbmFtZSkKIHsKIAlDYWNoZWRQbGFuU291cmNlICpwc3JjOworCU9pZAkJ ICAgKnBhcmFtX29yaWdfdGJsczsKKwlBdHRyTnVtYmVyICpwYXJhbV9vcmlnX2NvbHM7CiAK IAkvKgogCSAqIFN0YXJ0IHVwIGEgdHJhbnNhY3Rpb24gY29tbWFuZC4gKE5vdGUgdGhhdCB0 aGlzIHdpbGwgbm9ybWFsbHkgY2hhbmdlCkBAIC0yNjE4LDExICsyNjMyLDYxIEBAIGV4ZWNf ZGVzY3JpYmVfc3RhdGVtZW50X21lc3NhZ2UoY29uc3QgY2hhciAqc3RtdF9uYW1lKQogCQkJ CQkJCQkJCQkJCQkgKiBtZXNzYWdlIHR5cGUgKi8KIAlwcV9zZW5kaW50MTYoJnJvd19kZXNj cmlwdGlvbl9idWYsIHBzcmMtPm51bV9wYXJhbXMpOwogCisJLyoKKwkgKiBJZiBjb2x1bW4g ZW5jcnlwdGlvbiBpcyBlbmFibGVkLCBmaW5kIHRoZSBhc3NvY2lhdGVkIHRhYmxlcyBhbmQg Y29sdW1ucworCSAqIGZvciBhbnkgcGFyYW1ldGVycywgc28gdGhhdCB3ZSBjYW4gZGV0ZXJt aW5lIGVuY3J5cHRpb24gaW5mb3JtYXRpb24gZm9yCisJICogdGhlbS4KKwkgKi8KKwlpZiAo TXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCAmJiBwc3JjLT5udW1fcGFy YW1zKQorCXsKKwkJcGFyYW1fb3JpZ190YmxzID0gcGFsbG9jMF9hcnJheShPaWQsIHBzcmMt Pm51bV9wYXJhbXMpOworCQlwYXJhbV9vcmlnX2NvbHMgPSBwYWxsb2MwX2FycmF5KEF0dHJO dW1iZXIsIHBzcmMtPm51bV9wYXJhbXMpOworCisJCVJldmFsaWRhdGVDYWNoZWRRdWVyeShw c3JjLCBOVUxMKTsKKwkJZmluZF9wYXJhbV9vcmlncyhwc3JjLT5xdWVyeV9saXN0LCAmcGFy YW1fb3JpZ190YmxzLCAmcGFyYW1fb3JpZ19jb2xzKTsKKwl9CisKIAlmb3IgKGludCBpID0g MDsgaSA8IHBzcmMtPm51bV9wYXJhbXM7IGkrKykKIAl7CiAJCU9pZAkJCXB0eXBlID0gcHNy Yy0+cGFyYW1fdHlwZXNbaV07CisJCU9pZAkJCXBjZWtpZCA9IEludmFsaWRPaWQ7CisJCWlu dAkJCXBjZWthbGcgPSAwOworCQlpbnQxNgkJcGZsYWdzID0gMDsKKworCQlpZiAoTXlQcm9j UG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCAmJiB0eXBlX2lzX2VuY3J5cHRlZChw dHlwZSkpCisJCXsKKwkJCU9pZAkJCXBvcmlndGJsID0gcGFyYW1fb3JpZ190YmxzW2ldOwor CQkJQXR0ck51bWJlcglwb3JpZ2NvbCA9IHBhcmFtX29yaWdfY29sc1tpXTsKKwkJCUhlYXBU dXBsZQl0cDsKKwkJCUZvcm1fcGdfYXR0cmlidXRlIG9yaWdfYXR0OworCisJCQlpZiAocG9y aWd0YmwgPT0gSW52YWxpZE9pZCB8fCBwb3JpZ2NvbCA9PSBJbnZhbGlkQXR0ck51bWJlcikK KwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05P VF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygicGFyYW1ldGVyICQlZCBjb3JyZXNwb25k cyB0byBhbiBlbmNyeXB0ZWQgY29sdW1uLCBidXQgYW4gdW5kZXJseWluZyB0YWJsZSBhbmQg Y29sdW1uIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIiwgaSArIDEpKSk7CisKKwkJCXRwID0g U2VhcmNoU3lzQ2FjaGUyKEFUVE5VTSwgT2JqZWN0SWRHZXREYXR1bShwb3JpZ3RibCksIElu dDE2R2V0RGF0dW0ocG9yaWdjb2wpKTsKKwkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0cCkp CisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGF0dHJpYnV0ZSAl ZCBvZiByZWxhdGlvbiAldSIsIHBvcmlnY29sLCBwb3JpZ3RibCk7CisJCQlvcmlnX2F0dCA9 IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHRwKTsKKwkJCXB0eXBlID0gb3JpZ19h dHQtPmF0dHVzZXJ0eXBpZDsKKwkJCXBjZWtpZCA9IG9yaWdfYXR0LT5hdHRjZWs7CisJCQlw Y2VrYWxnID0gb3JpZ19hdHQtPmF0dHR5cG1vZDsKKwkJCVJlbGVhc2VTeXNDYWNoZSh0cCk7 CisKKwkJCWlmIChwc3JjLT5wYXJhbV90eXBlc1tpXSA9PSBQR19FTkNSWVBURURfREVUT0lE KQorCQkJCXBmbGFncyB8PSAweDAxOworCisJCQlNYXliZVNlbmRDb2x1bW5FbmNyeXB0aW9u S2V5TWVzc2FnZShwY2VraWQpOworCQl9CiAKIAkJcHFfc2VuZGludDMyKCZyb3dfZGVzY3Jp cHRpb25fYnVmLCAoaW50KSBwdHlwZSk7CisJCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5j cnlwdGlvbl9lbmFibGVkKQorCQl7CisJCQlwcV9zZW5kaW50MzIoJnJvd19kZXNjcmlwdGlv bl9idWYsIChpbnQpIHBjZWtpZCk7CisJCQlwcV9zZW5kaW50MzIoJnJvd19kZXNjcmlwdGlv bl9idWYsIHBjZWthbGcpOworCQkJcHFfc2VuZGludDE2KCZyb3dfZGVzY3JpcHRpb25fYnVm LCBwZmxhZ3MpOworCQl9CiAJfQogCXBxX2VuZG1lc3NhZ2VfcmV1c2UoJnJvd19kZXNjcmlw dGlvbl9idWYpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBi L3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IGM3ZDlkOTZiNDUuLjBhMTdlYjQ0 ODYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiY29t bWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL2NsdXN0ZXIuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9jb2xlbmNjbWRzLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvY29sbGF0aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2NvbW1lbnQuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb252ZXJzaW9uY21kcy5oIgpA QCAtMTM3LDYgKzEzOCw4IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRBc1JlYWRPbmx5KE5v ZGUgKnBhcnNldHJlZSkKIAlzd2l0Y2ggKG5vZGVUYWcocGFyc2V0cmVlKSkKIAl7CiAJCWNh c2UgVF9BbHRlckNvbGxhdGlvblN0bXQ6CisJCWNhc2UgVF9BbHRlckNvbHVtbkVuY3J5cHRp b25LZXlTdG10OgorCQljYXNlIFRfQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10OgogCQljYXNl IFRfQWx0ZXJEYXRhYmFzZVJlZnJlc2hDb2xsU3RtdDoKIAkJY2FzZSBUX0FsdGVyRGF0YWJh c2VTZXRTdG10OgogCQljYXNlIFRfQWx0ZXJEYXRhYmFzZVN0bXQ6CkBAIC0xNDQxLDYgKzE0 NDQsMTQgQEAgUHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJ CQkJCQkJCQkJCXN0bXQtPmRlZmluaXRpb24sCiAJCQkJCQkJCQkJCQkJCQkmc2Vjb25kYXJ5 T2JqZWN0KTsKIAkJCQkJCQlicmVhazsKKwkJCQkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCQkJ CQlBc3NlcnQoc3RtdC0+YXJncyA9PSBOSUwpOworCQkJCQkJCWFkZHJlc3MgPSBDcmVhdGVD RUsocHN0YXRlLCBzdG10KTsKKwkJCQkJCQlicmVhazsKKwkJCQkJCWNhc2UgT0JKRUNUX0NN SzoKKwkJCQkJCQlBc3NlcnQoc3RtdC0+YXJncyA9PSBOSUwpOworCQkJCQkJCWFkZHJlc3Mg PSBDcmVhdGVDTUsocHN0YXRlLCBzdG10KTsKKwkJCQkJCQlicmVhazsKIAkJCQkJCWNhc2Ug T0JKRUNUX0NPTExBVElPTjoKIAkJCQkJCQlBc3NlcnQoc3RtdC0+YXJncyA9PSBOSUwpOwog CQkJCQkJCWFkZHJlc3MgPSBEZWZpbmVDb2xsYXRpb24ocHN0YXRlLApAQCAtMTkwMyw2ICsx OTE0LDE0IEBAIFByb2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJ YWRkcmVzcyA9IEFsdGVyQ29sbGF0aW9uKChBbHRlckNvbGxhdGlvblN0bXQgKikgcGFyc2V0 cmVlKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBUX0FsdGVyQ29sdW1uRW5jcnlwdGlvbktl eVN0bXQ6CisJCQkJYWRkcmVzcyA9IEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleShwc3RhdGUs IChBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10ICopIHBhcnNldHJlZSk7CisJCQkJYnJl YWs7CisKKwkJCWNhc2UgVF9BbHRlckNvbHVtbk1hc3RlcktleVN0bXQ6CisJCQkJYWRkcmVz cyA9IEFsdGVyQ29sdW1uTWFzdGVyS2V5KHBzdGF0ZSwgKEFsdGVyQ29sdW1uTWFzdGVyS2V5 U3RtdCAqKSBwYXJzZXRyZWUpOworCQkJCWJyZWFrOworCiAJCQlkZWZhdWx0OgogCQkJCWVs b2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJCSAoaW50KSBu b2RlVGFnKHBhcnNldHJlZSkpOwpAQCAtMjIyNSw2ICsyMjQ0LDEyIEBAIEFsdGVyT2JqZWN0 VHlwZUNvbW1hbmRUYWcoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9DT0xV TU46CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfVEFCTEU7CiAJCQlicmVhazsKKwkJY2FzZSBP QkpFQ1RfQ0VLOgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX0NPTFVNTl9FTkNSWVBUSU9OX0tF WTsKKwkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9DTUs6CisJCQl0YWcgPSBDTURUQUdfQUxU RVJfQ09MVU1OX01BU1RFUl9LRVk7CisJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfQ09OVkVS U0lPTjoKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9DT05WRVJTSU9OOwogCQkJYnJlYWs7CkBA IC0yNjQwLDYgKzI2NjUsMTIgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUp CiAJCQkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJCQkJdGFnID0gQ01EVEFHX0RS T1BfU1RBVElTVElDUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJ CQl0YWcgPSBDTURUQUdfRFJPUF9DT0xVTU5fRU5DUllQVElPTl9LRVk7CisJCQkJCWJyZWFr OworCQkJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCQkJdGFnID0gQ01EVEFHX0RST1BfQ09MVU1O X01BU1RFUl9LRVk7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1bHQ6CiAJCQkJCXRhZyA9IENN RFRBR19VTktOT1dOOwogCQkJfQpAQCAtMjc2MCw2ICsyNzkxLDEyIEBAIENyZWF0ZUNvbW1h bmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJ CQkJdGFnID0gQ01EVEFHX0NSRUFURV9DT0xMQVRJT047CiAJCQkJCWJyZWFrOworCQkJCWNh c2UgT0JKRUNUX0NFSzoKKwkJCQkJdGFnID0gQ01EVEFHX0NSRUFURV9DT0xVTU5fRU5DUllQ VElPTl9LRVk7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCQkJdGFn ID0gQ01EVEFHX0NSRUFURV9DT0xVTU5fTUFTVEVSX0tFWTsKKwkJCQkJYnJlYWs7CiAJCQkJ Y2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKIAkJCQkJdGFnID0gQ01EVEFHX0NSRUFURV9B Q0NFU1NfTUVUSE9EOwogCQkJCQlicmVhazsKQEAgLTMwNjMsNiArMzEwMCwxNCBAQCBDcmVh dGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9D T0xMQVRJT047CiAJCQlicmVhazsKIAorCQljYXNlIFRfQWx0ZXJDb2x1bW5FbmNyeXB0aW9u S2V5U3RtdDoKKwkJCXRhZyA9IENNRFRBR19BTFRFUl9DT0xVTU5fRU5DUllQVElPTl9LRVk7 CisJCQlicmVhazsKKworCQljYXNlIFRfQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10OgorCQkJ dGFnID0gQ01EVEFHX0FMVEVSX0NPTFVNTl9NQVNURVJfS0VZOworCQkJYnJlYWs7CisKIAkJ Y2FzZSBUX1ByZXBhcmVTdG10OgogCQkJdGFnID0gQ01EVEFHX1BSRVBBUkU7CiAJCQlicmVh azsKQEAgLTM2ODgsNiArMzczMywxNCBAQCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9kZSAqcGFy c2V0cmVlKQogCQkJbGV2ID0gTE9HU1RNVF9EREw7CiAJCQlicmVhazsKIAorCQljYXNlIFRf QWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdDoKKwkJCWxldiA9IExPR1NUTVRfRERMOwor CQkJYnJlYWs7CisKKwkJY2FzZSBUX0FsdGVyQ29sdW1uTWFzdGVyS2V5U3RtdDoKKwkJCWxl diA9IExPR1NUTVRfRERMOworCQkJYnJlYWs7CisKIAkJCS8qIGFscmVhZHktcGxhbm5lZCBx dWVyaWVzICovCiAJCWNhc2UgVF9QbGFubmVkU3RtdDoKIAkJCXsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wu YwppbmRleCA4Zjc1MjJkMTAzLi5iOTM0ZjE2MDc0IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvYWNsLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCkBA IC04MDAsNiArODAwLDE0IEBAIGFjbGRlZmF1bHQoT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQg b3duZXJJZCkKIAkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwogCQkJb3duZXJf ZGVmYXVsdCA9IEFDTF9BTExfUklHSFRTX1NFUVVFTkNFOwogCQkJYnJlYWs7CisJCWNhc2Ug T0JKRUNUX0NFSzoKKwkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOworCQkJb3du ZXJfZGVmYXVsdCA9IEFDTF9BTExfUklHSFRTX0NFSzsKKwkJCWJyZWFrOworCQljYXNlIE9C SkVDVF9DTUs6CisJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsKKwkJCW93bmVy X2RlZmF1bHQgPSBBQ0xfQUxMX1JJR0hUU19DTUs7CisJCQlicmVhazsKIAkJY2FzZSBPQkpF Q1RfREFUQUJBU0U6CiAJCQkvKiBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGdyYW50 IHNvbWUgcmlnaHRzIGJ5IGRlZmF1bHQgKi8KIAkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfQ1JF QVRFX1RFTVAgfCBBQ0xfQ09OTkVDVDsKQEAgLTkxMSw2ICs5MTksMTIgQEAgYWNsZGVmYXVs dF9zcWwoUEdfRlVOQ1RJT05fQVJHUykKIAkJY2FzZSAncyc6CiAJCQlvYmp0eXBlID0gT0JK RUNUX1NFUVVFTkNFOwogCQkJYnJlYWs7CisJCWNhc2UgJ1knOgorCQkJb2JqdHlwZSA9IE9C SkVDVF9DRUs7CisJCQlicmVhazsKKwkJY2FzZSAneSc6CisJCQlvYmp0eXBlID0gT0JKRUNU X0NNSzsKKwkJCWJyZWFrOwogCQljYXNlICdkJzoKIAkJCW9ianR5cGUgPSBPQkpFQ1RfREFU QUJBU0U7CiAJCQlicmVhazsKQEAgLTI5MTUsNiArMjkyOSwxMCBAQCBjb252ZXJ0X2NvbHVt bl9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCkKIH0KIAogCisvLyBUT0RPOiBo YXNfY29sdW1uX2VuY3J5cHRpb25fa2V5X3ByaXZpbGVnZSB2YXJpYW50cworLy8gVE9ETzog aGFzX2NvbHVtbl9tYXN0ZXJfa2V5X3ByaXZpbGVnZSB2YXJpYW50cworCisKIC8qCiAgKiBo YXNfZGF0YWJhc2VfcHJpdmlsZWdlIHZhcmlhbnRzCiAgKgkJVGhlc2UgYXJlIGFsbCBuYW1l ZCAiaGFzX2RhdGFiYXNlX3ByaXZpbGVnZSIgYXQgdGhlIFNRTCBsZXZlbC4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvdmFybGVuYS5jCmluZGV4IDE3MGIzYTM4MjAuLmZhZjVhNjg4NDkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3ZhcmxlbmEuYwpAQCAtNjc5LDYgKzY3OSwxMTIgQEAgdW5rbm93bnNlbmQo UEdfRlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fQllURUFfUChwcV9lbmR0eXBzZW5kKCZi dWYpKTsKIH0KIAorLyoKKyAqIHBnX2VuY3J5cHRlZF9pbiAtCisgKgorICogSW5wdXQgZnVu Y3Rpb24gZm9yIHBnX2VuY3J5cHRlZF8qIHR5cGVzLgorICoKKyAqIFRoZSBmb3JtYXQgYW5k IGFkZGl0aW9uYWwgY2hlY2tzIGVuc3VyZSB0aGF0IG9uZSBjYW5ub3QgZWFzaWx5IGluc2Vy dCBhCisgKiB2YWx1ZSBkaXJlY3RseSBpbnRvIGFuIGVuY3J5cHRlZCBjb2x1bW4gYnkgYWNj aWRlbnQuICAoVGhhdCdzIHdoeSB3ZSBkb24ndAorICoganVzdCB1c2UgdGhlIGJ5dGVhIGZv cm1hdCwgZm9yIGV4YW1wbGUuKSAgQnV0IHdlIHN0aWxsIGhhdmUgdG8gc3VwcG9ydAorICog ZGlyZWN0IGluc2VydHMgaW50byBlbmNyeXB0ZWQgY29sdW1ucywgZm9yIGV4YW1wbGUgZm9y IHJlc3RvcmluZyBiYWNrdXBzCisgKiBtYWRlIGJ5IHBnX2R1bXAuCisgKi8KK0RhdHVtCitw Z19lbmNyeXB0ZWRfaW4oUEdfRlVOQ1RJT05fQVJHUykKK3sKKwljaGFyCSAgICppbnB1dFRl eHQgPSBQR19HRVRBUkdfQ1NUUklORygwKTsKKwljaGFyCSAgICppcDsKKwlzaXplX3QJCWhl eGxlbjsKKwlpbnQJCQliYzsKKwlieXRlYQkgICAqcmVzdWx0OworCisJaWYgKHN0cm5jbXAo aW5wdXRUZXh0LCAiZW5jcnlwdGVkJCIsIDEwKSAhPSAwKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJ CWVycm1zZygiaW52YWxpZCBpbnB1dCB2YWx1ZSBmb3IgZW5jcnlwdGVkIGNvbHVtbiB2YWx1 ZTogXCIlc1wiIiwKKwkJCQkJICAgaW5wdXRUZXh0KSk7CisKKwlpcCA9IGlucHV0VGV4dCAr IDEwOworCWhleGxlbiA9IHN0cmxlbihpcCk7CisKKwkvKiBzYW5pdHkgY2hlY2sgdG8gY2F0 Y2ggb2J2aW91cyBtaXN0YWtlcyAqLworCWlmIChoZXhsZW4gLyAyIDwgMzIgfHwgKGhleGxl biAvIDIpICUgMTYgIT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQllcnJtc2coImludmFsaWQg aW5wdXQgdmFsdWUgZm9yIGVuY3J5cHRlZCBjb2x1bW4gdmFsdWU6IFwiJXNcIiIsCisJCQkJ CSAgIGlucHV0VGV4dCkpOworCisJYmMgPSBoZXhsZW4gLyAyICsgVkFSSERSU1o7CS8qIG1h eGltdW0gcG9zc2libGUgbGVuZ3RoICovCisJcmVzdWx0ID0gcGFsbG9jKGJjKTsKKwliYyA9 IGhleF9kZWNvZGUoaXAsIGhleGxlbiwgVkFSREFUQShyZXN1bHQpKTsKKwlTRVRfVkFSU0la RShyZXN1bHQsIGJjICsgVkFSSERSU1opOyAvKiBhY3R1YWwgbGVuZ3RoICovCisKKwlQR19S RVRVUk5fQllURUFfUChyZXN1bHQpOworfQorCisvKgorICogcGdfZW5jcnlwdGVkX291dCAt CisgKgorICogT3V0cHV0IGZ1bmN0aW9uIGZvciBwZ19lbmNyeXB0ZWRfKiB0eXBlcy4KKyAq CisgKiBUaGlzIG91dHB1dCBpcyBzZWVuIHdoZW4gcmVhZGluZyBhbiBlbmNyeXB0ZWQgY29s dW1uIHdpdGhvdXQgY29sdW1uCisgKiBlbmNyeXB0aW9uIG1vZGUgZW5hYmxlZC4gIFRoZXJl Zm9yZSwgdGhlIG91dHB1dCBmb3JtYXQgaXMgY2hvc2VuIHNvIHRoYXQgaXQKKyAqIGlzIGVh c2lseSByZWNvZ25pemFibGUuCisgKi8KK0RhdHVtCitwZ19lbmNyeXB0ZWRfb3V0KFBHX0ZV TkNUSU9OX0FSR1MpCit7CisJYnl0ZWEJICAgKnZsZW5hID0gUEdfR0VUQVJHX0JZVEVBX1BQ KDApOworCWNoYXIJICAgKnJlc3VsdDsKKwljaGFyCSAgICpycDsKKworCXJwID0gcmVzdWx0 ID0gcGFsbG9jKFZBUlNJWkVfQU5ZX0VYSERSKHZsZW5hKSAqIDIgKyAxMCArIDEpOworCW1l bWNweShycCwgImVuY3J5cHRlZCQiLCAxMCk7CisJcnAgKz0gMTA7CisJcnAgKz0gaGV4X2Vu Y29kZShWQVJEQVRBX0FOWSh2bGVuYSksIFZBUlNJWkVfQU5ZX0VYSERSKHZsZW5hKSwgcnAp OworCSpycCA9ICdcMCc7CisJUEdfUkVUVVJOX0NTVFJJTkcocmVzdWx0KTsKK30KKworLyoK KyAqIHBnX2VuY3J5cHRlZF9yZWN2IC0KKyAqCisgKiBSZWNlaXZlIGZ1bmN0aW9uIGZvciBw Z19lbmNyeXB0ZWRfKiB0eXBlcy4KKyAqLworRGF0dW0KK3BnX2VuY3J5cHRlZF9yZWN2KFBH X0ZVTkNUSU9OX0FSR1MpCit7CisJU3RyaW5nSW5mbwlidWYgPSAoU3RyaW5nSW5mbykgUEdf R0VUQVJHX1BPSU5URVIoMCk7CisJYnl0ZWEJICAgKnJlc3VsdDsKKwlpbnQJCQluYnl0ZXM7 CisKKwluYnl0ZXMgPSBidWYtPmxlbiAtIGJ1Zi0+Y3Vyc29yOworCS8qIHNhbml0eSBjaGVj ayB0byBjYXRjaCBvYnZpb3VzIG1pc3Rha2VzICovCisJaWYgKG5ieXRlcyA8IDMyKQorCQll cmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX0JJTkFSWV9SRVBS RVNFTlRBVElPTiksCisJCQkJZXJybXNnKCJpbnZhbGlkIGJpbmFyeSBpbnB1dCB2YWx1ZSBm b3IgZW5jcnlwdGVkIGNvbHVtbiB2YWx1ZSIpKTsKKwlyZXN1bHQgPSAoYnl0ZWEgKikgcGFs bG9jKG5ieXRlcyArIFZBUkhEUlNaKTsKKwlTRVRfVkFSU0laRShyZXN1bHQsIG5ieXRlcyAr IFZBUkhEUlNaKTsKKwlwcV9jb3B5bXNnYnl0ZXMoYnVmLCBWQVJEQVRBKHJlc3VsdCksIG5i eXRlcyk7CisJUEdfUkVUVVJOX0JZVEVBX1AocmVzdWx0KTsKK30KKworLyoKKyAqIHBnX2Vu Y3J5cHRlZF9zZW5kIC0KKyAqCisgKiBTZW5kIGZ1bmN0aW9uIGZvciBwZ19lbmNyeXB0ZWRf KiB0eXBlcy4KKyAqLworRGF0dW0KK3BnX2VuY3J5cHRlZF9zZW5kKFBHX0ZVTkNUSU9OX0FS R1MpCit7CisJYnl0ZWEJICAgKnZsZW5hID0gUEdfR0VUQVJHX0JZVEVBX1BfQ09QWSgwKTsK KworCS8qIGp1c3QgcmV0dXJuIGlucHV0ICovCisJUEdfUkVUVVJOX0JZVEVBX1AodmxlbmEp OworfQorCiAKIC8qID09PT09PT09PT0gUFVCTElDIFJPVVRJTkVTID09PT09PT09PT0gKi8K IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCBjMDczODIwNTFkLi43 YWQxNTkxMTBmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2Fj aGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpAQCAtMjQs NyArMjQsMTAgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Ftb3AuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX2FtcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2FzdC5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19j b2xlbmNrZXlkYXRhLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbGFuZ3VhZ2UuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgpAQCAtMjY1OCw2ICsyNjYxLDI1IEBA IHR5cGVfaXNfbXVsdGlyYW5nZShPaWQgdHlwaWQpCiAJcmV0dXJuIChnZXRfdHlwdHlwZSh0 eXBpZCkgPT0gVFlQVFlQRV9NVUxUSVJBTkdFKTsKIH0KIAorYm9vbAordHlwZV9pc19lbmNy eXB0ZWQoT2lkIHR5cGlkKQoreworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2VhcmNoU3lz Q2FjaGUxKFRZUEVPSUQsIE9iamVjdElkR2V0RGF0dW0odHlwaWQpKTsKKwlpZiAoSGVhcFR1 cGxlSXNWYWxpZCh0cCkpCisJeworCQlGb3JtX3BnX3R5cGUgdHlwdHVwID0gKEZvcm1fcGdf dHlwZSkgR0VUU1RSVUNUKHRwKTsKKwkJYm9vbAkJcmVzdWx0OworCisJCXJlc3VsdCA9ICh0 eXB0dXAtPnR5cGNhdGVnb3J5ID09IFRZUENBVEVHT1JZX0VOQ1JZUFRFRCk7CisJCVJlbGVh c2VTeXNDYWNoZSh0cCk7CisJCXJldHVybiByZXN1bHQ7CisJfQorCWVsc2UKKwkJcmV0dXJu IGZhbHNlOworfQorCiAvKgogICogZ2V0X3R5cGVfY2F0ZWdvcnlfcHJlZmVycmVkCiAgKgpA QCAtMzY4MywzICszNzA1LDY0IEBAIGdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQs IGJvb2wgbWlzc2luZ19vaykKIAogCXJldHVybiBzdWJuYW1lOwogfQorCitjaGFyICoKK2dl dF9jZWtfbmFtZShPaWQgY2VraWQsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlIZWFwVHVwbGUJ dHVwOworCWNoYXIJICAgKmNla25hbWU7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQ0VL T0lELCBPYmplY3RJZEdldERhdHVtKGNla2lkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFs aWQodHVwKSkKKwl7CisJCWlmICghbWlzc2luZ19vaykKKwkJCWVsb2coRVJST1IsICJjYWNo ZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXUiLCBjZWtpZCk7 CisJCXJldHVybiBOVUxMOworCX0KKworCWNla25hbWUgPSBwc3RyZHVwKE5hbWVTdHIoKChG b3JtX3BnX2NvbGVuY2tleSkgR0VUU1RSVUNUKHR1cCkpLT5jZWtuYW1lKSk7CisKKwlSZWxl YXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiBjZWtuYW1lOworfQorCitPaWQKK2dldF9j ZWtkYXRhX29pZChPaWQgY2VraWQsIE9pZCBjbWtpZCwgYm9vbCBtaXNzaW5nX29rKQorewor CU9pZAkJCWNla2RhdGFpZDsKKworCWNla2RhdGFpZCA9IEdldFN5c0NhY2hlT2lkMihDRUtE QVRBQ0VLQ01LLCBBbnVtX3BnX2NvbGVuY2tleWRhdGFfb2lkLAorCQkJCQkJCQlPYmplY3RJ ZEdldERhdHVtKGNla2lkKSwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShjbWtpZCkpOwor CWlmICghT2lkSXNWYWxpZChjZWtkYXRhaWQpICYmICFtaXNzaW5nX29rKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJ IGVycm1zZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBoYXMgbm8gZGF0YSBmb3Ig bWFzdGVyIGtleSBcIiVzXCIiLAorCQkJCQkJZ2V0X2Nla19uYW1lKGNla2lkLCBmYWxzZSks IGdldF9jbWtfbmFtZShjbWtpZCwgZmFsc2UpKSkpOworCisJcmV0dXJuIGNla2RhdGFpZDsK K30KKworY2hhciAqCitnZXRfY21rX25hbWUoT2lkIGNta2lkLCBib29sIG1pc3Npbmdfb2sp Cit7CisJSGVhcFR1cGxlCXR1cDsKKwljaGFyCSAgICpjbWtuYW1lOworCisJdHVwID0gU2Vh cmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShjbWtpZCkpOworCisJaWYg KCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJeworCQlpZiAoIW1pc3Npbmdfb2spCisJCQll bG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIG1hc3RlciBrZXkg JXUiLCBjbWtpZCk7CisJCXJldHVybiBOVUxMOworCX0KKworCWNta25hbWUgPSBwc3RyZHVw KE5hbWVTdHIoKChGb3JtX3BnX2NvbG1hc3RlcmtleSkgR0VUU1RSVUNUKHR1cCkpLT5jbWtu YW1lKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiBjbWtuYW1lOwor fQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgYi9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCA3N2MyYmEzZjhmLi5k NDBhZjEzZWZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2Fj aGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwpAQCAtOTcs OCArOTcsNiBAQCBzdGF0aWMgZGxpc3RfaGVhZCBzYXZlZF9wbGFuX2xpc3QgPSBETElTVF9T VEFUSUNfSU5JVChzYXZlZF9wbGFuX2xpc3QpOwogc3RhdGljIGRsaXN0X2hlYWQgY2FjaGVk X2V4cHJlc3Npb25fbGlzdCA9IERMSVNUX1NUQVRJQ19JTklUKGNhY2hlZF9leHByZXNzaW9u X2xpc3QpOwogCiBzdGF0aWMgdm9pZCBSZWxlYXNlR2VuZXJpY1BsYW4oQ2FjaGVkUGxhblNv dXJjZSAqcGxhbnNvdXJjZSk7Ci1zdGF0aWMgTGlzdCAqUmV2YWxpZGF0ZUNhY2hlZFF1ZXJ5 KENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UsCi0JCQkJCQkJCSAgIFF1ZXJ5RW52aXJv bm1lbnQgKnF1ZXJ5RW52KTsKIHN0YXRpYyBib29sIENoZWNrQ2FjaGVkUGxhbihDYWNoZWRQ bGFuU291cmNlICpwbGFuc291cmNlKTsKIHN0YXRpYyBDYWNoZWRQbGFuICpCdWlsZENhY2hl ZFBsYW4oQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZSwgTGlzdCAqcWxpc3QsCiAJCQkJ CQkJCSAgIFBhcmFtTGlzdEluZm8gYm91bmRQYXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQgKnF1 ZXJ5RW52KTsKQEAgLTU1MSw3ICs1NDksNyBAQCBSZWxlYXNlR2VuZXJpY1BsYW4oQ2FjaGVk UGxhblNvdXJjZSAqcGxhbnNvdXJjZSkKICAqIGhhZCB0byBkbyByZS1hbmFseXNpcywgYW5k IE5JTCBvdGhlcndpc2UuICAoVGhpcyBpcyByZXR1cm5lZCBqdXN0IHRvIHNhdmUKICAqIGEg dHJlZSBjb3B5aW5nIHN0ZXAgaW4gYSBzdWJzZXF1ZW50IEJ1aWxkQ2FjaGVkUGxhbiBjYWxs LikKICAqLwotc3RhdGljIExpc3QgKgorTGlzdCAqCiBSZXZhbGlkYXRlQ2FjaGVkUXVlcnko Q2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZSwKIAkJCQkJICBRdWVyeUVudmlyb25tZW50 ICpxdWVyeUVudikKIHsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5 c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNoZS5jCmluZGV4IDk0 YWJlZGU1MTIuLmViNDMyMjYwZGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Nh Y2hlL3N5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUu YwpAQCAtMjksNyArMjksMTAgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhfbWVtYmVy cy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jYXN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2NvbGxhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19jb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgpAQCAt MjE5LDYgKzIyMiwzMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNhY2hlZGVzYyBjYWNoZWlu Zm9bXSA9IHsKIAkJCUFudW1fcGdfY2FzdF9jYXN0dGFyZ2V0KSwKIAkJMjU2CiAJfSwKKwlb Q0VLREFUQUNFS0NNS10gPSB7CisJCUNvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLAorCQlD b2x1bW5FbmNLZXlDZWtpZENta2lkSW5kZXhJZCwKKwkJS0VZKEFudW1fcGdfY29sZW5ja2V5 ZGF0YV9ja2RjZWtpZCwKKwkJCUFudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RjbWtpZCksCisJ CTgKKwl9LAorCVtDRUtEQVRBT0lEXSA9IHsKKwkJQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9u SWQsCisJCUNvbHVtbkVuY0tleURhdGFPaWRJbmRleElkLAorCQlLRVkoQW51bV9wZ19jb2xl bmNrZXlkYXRhX29pZCksCisJCTgKKwl9LAorCVtDRUtOQU1FTlNQXSA9IHsKKwkJQ29sdW1u RW5jS2V5UmVsYXRpb25JZCwKKwkJQ29sdW1uRW5jS2V5TmFtZU5zcEluZGV4SWQsCisJCUtF WShBbnVtX3BnX2NvbGVuY2tleV9jZWtuYW1lLAorCQkJQW51bV9wZ19jb2xlbmNrZXlfY2Vr bmFtZXNwYWNlKSwKKwkJOAorCX0sCisJW0NFS09JRF0gPSB7CisJCUNvbHVtbkVuY0tleVJl bGF0aW9uSWQsCisJCUNvbHVtbkVuY0tleU9pZEluZGV4SWQsCisJCUtFWShBbnVtX3BnX2Nv bGVuY2tleV9vaWQpLAorCQk4CisJfSwKIAlbQ0xBQU1OQU1FTlNQXSA9IHsKIAkJT3BlcmF0 b3JDbGFzc1JlbGF0aW9uSWQsCiAJCU9wY2xhc3NBbU5hbWVOc3BJbmRleElkLApAQCAtMjMz LDYgKzI2MiwxOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNhY2hlZGVzYyBjYWNoZWluZm9b XSA9IHsKIAkJS0VZKEFudW1fcGdfb3BjbGFzc19vaWQpLAogCQk4CiAJfSwKKwlbQ01LTkFN RU5TUF0gPSB7CisJCUNvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsCisJCUNvbHVtbk1hc3Rl cktleU5hbWVOc3BJbmRleElkLAorCQlLRVkoQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFt ZSwKKwkJCUFudW1fcGdfY29sbWFzdGVya2V5X2Nta25hbWVzcGFjZSksCisJCTgKKwl9LAor CVtDTUtPSURdID0geworCQlDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLAorCQlDb2x1bW5N YXN0ZXJLZXlPaWRJbmRleElkLAorCQlLRVkoQW51bV9wZ19jb2xtYXN0ZXJrZXlfb2lkKSwK KwkJOAorCX0sCiAJW0NPTExOQU1FRU5DTlNQXSA9IHsKIAkJQ29sbGF0aW9uUmVsYXRpb25J ZCwKIAkJQ29sbGF0aW9uTmFtZUVuY05zcEluZGV4SWQsCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9tYi9tYnV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9tYi9tYnV0aWxz LmMKaW5kZXggMDMzNjQ3MDExYi4uNGI2YmU2OGYyNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvbWIvbWJ1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL21idXRp bHMuYwpAQCAtMzYsNyArMzYsOSBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNp bmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImxpYnBxL2xpYnBxLWJl LmgiCiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIK ICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxz LmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKQEAgLTEzMCw2ICsxMzIsMTIgQEAg UHJlcGFyZUNsaWVudEVuY29kaW5nKGludCBlbmNvZGluZykKIAkJZW5jb2RpbmcgPT0gUEdf U1FMX0FTQ0lJKQogCQlyZXR1cm4gMDsKIAorCS8qCisJICogQ2Fubm90IGRvIGNvbnZlcnNp b24gd2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkLgorCSAqLworCWlmIChNeVBy b2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQlyZXR1cm4gLTE7CisKIAlp ZiAoSXNUcmFuc2FjdGlvblN0YXRlKCkpCiAJewogCQkvKgpAQCAtMjM3LDYgKzI0NSwxMiBA QCBTZXRDbGllbnRFbmNvZGluZyhpbnQgZW5jb2RpbmcpCiAJCXJldHVybiAwOwogCX0KIAor CS8qCisJICogQ2Fubm90IGRvIGNvbnZlcnNpb24gd2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBp cyBlbmFibGVkLgorCSAqLworCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9l bmFibGVkKQorCQlyZXR1cm4gLTE7CisKIAkvKgogCSAqIFNlYXJjaCB0aGUgY2FjaGUgZm9y IHRoZSBlbnRyeSBwcmV2aW91c2x5IHByZXBhcmVkIGJ5CiAJICogUHJlcGFyZUNsaWVudEVu Y29kaW5nOyBpZiB0aGVyZSBpc24ndCBvbmUsIHdlIGxvc2UuICBXaGlsZSBhdCBpdCwKQEAg LTI5Nyw3ICszMTEsOSBAQCBJbml0aWFsaXplQ2xpZW50RW5jb2Rpbmcodm9pZCkKIAkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1zZygi Y29udmVyc2lvbiBiZXR3ZWVuICVzIGFuZCAlcyBpcyBub3Qgc3VwcG9ydGVkIiwKIAkJCQkJ CXBnX2VuYzJuYW1lX3RibFtwZW5kaW5nX2NsaWVudF9lbmNvZGluZ10ubmFtZSwKLQkJCQkJ CUdldERhdGFiYXNlRW5jb2RpbmdOYW1lKCkpKSk7CisJCQkJCQlHZXREYXRhYmFzZUVuY29k aW5nTmFtZSgpKSwKKwkJCQkgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJs ZWQpID8KKwkJCQkgZXJyZGV0YWlsKCJFbmNvZGluZyBjb252ZXJzaW9uIGlzIG5vdCBwb3Nz aWJsZSB3aGVuIGNvbHVtbiBlbmNyeXB0aW9uIGlzIGVuYWJsZWQuIikgOiAwKSk7CiAJfQog CiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYyBiL3NyYy9iaW4v cGdfZHVtcC9jb21tb24uYwppbmRleCBhNDNmMmU1NTUzLi5lNjc0NjJjODFhIDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2Nv bW1vbi5jCkBAIC0xOCw3ICsxOCw5IEBACiAjaW5jbHVkZSA8Y3R5cGUuaD4KIAogI2luY2x1 ZGUgImNhdGFsb2cvcGdfY2xhc3NfZC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5j a2V5X2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbl9kLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXlfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf ZXh0ZW5zaW9uX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZV9kLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvcl9kLmgiCkBAIC0yMDEsNiArMjAzLDEyIEBA IGdldFNjaGVtYURhdGEoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXNQdHIpCiAJcGdf bG9nX2luZm8oInJlYWRpbmcgdXNlci1kZWZpbmVkIGNvbGxhdGlvbnMiKTsKIAkodm9pZCkg Z2V0Q29sbGF0aW9ucyhmb3V0LCAmbnVtQ29sbGF0aW9ucyk7CiAKKwlwZ19sb2dfaW5mbygi cmVhZGluZyBjb2x1bW4gbWFzdGVyIGtleXMiKTsKKwlnZXRDb2x1bW5NYXN0ZXJLZXlzKGZv dXQpOworCisJcGdfbG9nX2luZm8oInJlYWRpbmcgY29sdW1uIGVuY3J5cHRpb24ga2V5cyIp OworCWdldENvbHVtbkVuY3J5cHRpb25LZXlzKGZvdXQpOworCiAJcGdfbG9nX2luZm8oInJl YWRpbmcgdXNlci1kZWZpbmVkIGNvbnZlcnNpb25zIik7CiAJZ2V0Q29udmVyc2lvbnMoZm91 dCwgJm51bUNvbnZlcnNpb25zKTsKIApAQCAtODU5LDYgKzg2Nyw0MiBAQCBmaW5kT3ByQnlP aWQoT2lkIG9pZCkKIAlyZXR1cm4gKE9wckluZm8gKikgZG9iajsKIH0KIAorLyoKKyAqIGZp bmRDZWtCeU9pZAorICoJICBmaW5kcyB0aGUgRHVtcGFibGVPYmplY3QgZm9yIHRoZSBDRUsg d2l0aCB0aGUgZ2l2ZW4gb2lkCisgKgkgIHJldHVybnMgTlVMTCBpZiBub3QgZm91bmQKKyAq LworQ2VrSW5mbyAqCitmaW5kQ2VrQnlPaWQoT2lkIG9pZCkKK3sKKwlDYXRhbG9nSWQJY2F0 SWQ7CisJRHVtcGFibGVPYmplY3QgKmRvYmo7CisKKwljYXRJZC50YWJsZW9pZCA9IENvbHVt bkVuY0tleVJlbGF0aW9uSWQ7CisJY2F0SWQub2lkID0gb2lkOworCWRvYmogPSBmaW5kT2Jq ZWN0QnlDYXRhbG9nSWQoY2F0SWQpOworCUFzc2VydChkb2JqID09IE5VTEwgfHwgZG9iai0+ b2JqVHlwZSA9PSBET19DRUspOworCXJldHVybiAoQ2VrSW5mbyAqKSBkb2JqOworfQorCisv KgorICogZmluZENta0J5T2lkCisgKgkgIGZpbmRzIHRoZSBEdW1wYWJsZU9iamVjdCBmb3Ig dGhlIENNSyB3aXRoIHRoZSBnaXZlbiBvaWQKKyAqCSAgcmV0dXJucyBOVUxMIGlmIG5vdCBm b3VuZAorICovCitDbWtJbmZvICoKK2ZpbmRDbWtCeU9pZChPaWQgb2lkKQoreworCUNhdGFs b2dJZAljYXRJZDsKKwlEdW1wYWJsZU9iamVjdCAqZG9iajsKKworCWNhdElkLnRhYmxlb2lk ID0gQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZDsKKwljYXRJZC5vaWQgPSBvaWQ7CisJZG9i aiA9IGZpbmRPYmplY3RCeUNhdGFsb2dJZChjYXRJZCk7CisJQXNzZXJ0KGRvYmogPT0gTlVM TCB8fCBkb2JqLT5vYmpUeXBlID09IERPX0NNSyk7CisJcmV0dXJuIChDbWtJbmZvICopIGRv Ymo7Cit9CisKIC8qCiAgKiBmaW5kQ29sbGF0aW9uQnlPaWQKICAqCSAgZmluZHMgdGhlIER1 bXBhYmxlT2JqZWN0IGZvciB0aGUgY29sbGF0aW9uIHdpdGggdGhlIGdpdmVuIG9pZApkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jIGIvc3JjL2Jpbi9wZ19kdW1w L2R1bXB1dGlscy5jCmluZGV4IDk3NTNhNmQ4NjguLjBhNTE3OGJjZjEgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYworKysgYi9zcmMvYmluL3BnX2R1bXAvZHVt cHV0aWxzLmMKQEAgLTQ4NCw2ICs0ODQsMTAgQEAgZG8geyBcCiAJCUNPTlZFUlRfUFJJVign QycsICJDUkVBVEUiKTsKIAkJQ09OVkVSVF9QUklWKCdVJywgIlVTQUdFIik7CiAJfQorCWVs c2UgaWYgKHN0cmNtcCh0eXBlLCAiQ09MVU1OIEVOQ1JZUFRJT04gS0VZIikgPT0gMCkKKwkJ Q09OVkVSVF9QUklWKCdVJywgIlVTQUdFIik7CisJZWxzZSBpZiAoc3RyY21wKHR5cGUsICJD T0xVTU4gTUFTVEVSIEtFWSIpID09IDApCisJCUNPTlZFUlRfUFJJVignVScsICJVU0FHRSIp OwogCWVsc2UgaWYgKHN0cmNtcCh0eXBlLCAiREFUQUJBU0UiKSA9PSAwKQogCXsKIAkJQ09O VkVSVF9QUklWKCdDJywgIkNSRUFURSIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCmluZGV4IGFiYTc4 MGVmNGIuLmFmYmE3OWIyZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKQEAgLTg1LDYgKzg1LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgX2Nvbm5QYXJhbXMKIAljaGFyCSAgICpwZ2hvc3Q7CiAJY2hh cgkgICAqdXNlcm5hbWU7CiAJdHJpdmFsdWUJcHJvbXB0UGFzc3dvcmQ7CisJaW50CQkJY29s dW1uX2VuY3J5cHRpb247CiAJLyogSWYgbm90IE5VTEwsIHRoaXMgb3ZlcnJpZGVzIHRoZSBk Ym5hbWUgb2J0YWluZWQgZnJvbSBjb21tYW5kIGxpbmUgKi8KIAkvKiAoYnV0ICpvbmx5KiB0 aGUgREIgbmFtZSwgbm90IGFueXRoaW5nIGVsc2UgaW4gdGhlIGNvbm5zdHJpbmcpICovCiAJ Y2hhcgkgICAqb3ZlcnJpZGVfZGJuYW1lOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNo aXZlci5jCmluZGV4IDI2OWJmY2UwMTkuLmJhZjBkZTMzNDcgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfYmFja3VwX2FyY2hpdmVyLmMKQEAgLTM0MjksNiArMzQyOSw4IEBAIF9nZXRPYmplY3RE ZXNjcmlwdGlvbihQUUV4cEJ1ZmZlciBidWYsIGNvbnN0IFRvY0VudHJ5ICp0ZSkKIAogCS8q IG9iamVjdHMgdGhhdCBkb24ndCByZXF1aXJlIHNwZWNpYWwgZGVjb3JhdGlvbiAqLwogCWlm IChzdHJjbXAodHlwZSwgIkNPTExBVElPTiIpID09IDAgfHwKKwkJc3RyY21wKHR5cGUsICJD T0xVTU4gRU5DUllQVElPTiBLRVkiKSA9PSAwIHx8CisJCXN0cmNtcCh0eXBlLCAiQ09MVU1O IE1BU1RFUiBLRVkiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiQ09OVkVSU0lPTiIpID09 IDAgfHwKIAkJc3RyY21wKHR5cGUsICJET01BSU4iKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBl LCAiRk9SRUlHTiBUQUJMRSIpID09IDAgfHwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXBfZGIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGIuYwppbmRl eCBmNzY2YjY1MDU5Li5jOTBjMjgwM2ZjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv cGdfYmFja3VwX2RiLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9kYi5jCkBA IC0xMzMsOCArMTMzLDggQEAgQ29ubmVjdERhdGFiYXNlKEFyY2hpdmUgKkFIWCwKIAkgKi8K IAlkbwogCXsKLQkJY29uc3QgY2hhciAqa2V5d29yZHNbOF07Ci0JCWNvbnN0IGNoYXIgKnZh bHVlc1s4XTsKKwkJY29uc3QgY2hhciAqa2V5d29yZHNbOV07CisJCWNvbnN0IGNoYXIgKnZh bHVlc1s5XTsKIAkJaW50CQkJaSA9IDA7CiAKIAkJLyoKQEAgLTE1OSw2ICsxNTksMTEgQEAg Q29ubmVjdERhdGFiYXNlKEFyY2hpdmUgKkFIWCwKIAkJfQogCQlrZXl3b3Jkc1tpXSA9ICJm YWxsYmFja19hcHBsaWNhdGlvbl9uYW1lIjsKIAkJdmFsdWVzW2krK10gPSBwcm9nbmFtZTsK KwkJaWYgKGNwYXJhbXMtPmNvbHVtbl9lbmNyeXB0aW9uKQorCQl7CisJCQlrZXl3b3Jkc1tp XSA9ICJjb2x1bW5fZW5jcnlwdGlvbiI7CisJCQl2YWx1ZXNbaSsrXSA9ICIxIjsKKwkJfQog CQlrZXl3b3Jkc1tpXSA9IE5VTEw7CiAJCXZhbHVlc1tpKytdID0gTlVMTDsKIAkJQXNzZXJ0 KGkgPD0gbGVuZ3Rob2Yoa2V5d29yZHMpKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDFhMDZlZWFm NmEuLjJmZDdlNTE5MzggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTQsNiArNTQsNyBAQAogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z190cmlnZ2VyX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGVfZC5oIgorI2luY2x1 ZGUgImNvbW1vbi9jb2xlbmMuaCIKICNpbmNsdWRlICJjb21tb24vY29ubmVjdC5oIgogI2lu Y2x1ZGUgImNvbW1vbi9yZWxwYXRoLmgiCiAjaW5jbHVkZSAiZHVtcHV0aWxzLmgiCkBAIC0y MjgsNiArMjI5LDggQEAgc3RhdGljIHZvaWQgZHVtcEFjY2Vzc01ldGhvZChBcmNoaXZlICpm b3V0LCBjb25zdCBBY2Nlc3NNZXRob2RJbmZvICphbWluZm8pOwogc3RhdGljIHZvaWQgZHVt cE9wY2xhc3MoQXJjaGl2ZSAqZm91dCwgY29uc3QgT3BjbGFzc0luZm8gKm9wY2luZm8pOwog c3RhdGljIHZvaWQgZHVtcE9wZmFtaWx5KEFyY2hpdmUgKmZvdXQsIGNvbnN0IE9wZmFtaWx5 SW5mbyAqb3BmaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wQ29sbGF0aW9uKEFyY2hpdmUgKmZv dXQsIGNvbnN0IENvbGxJbmZvICpjb2xsaW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wQ29sdW1u RW5jcnlwdGlvbktleShBcmNoaXZlICpmb3V0LCBjb25zdCBDZWtJbmZvICpjZWtpbmZvKTsK K3N0YXRpYyB2b2lkIGR1bXBDb2x1bW5NYXN0ZXJLZXkoQXJjaGl2ZSAqZm91dCwgY29uc3Qg Q21rSW5mbyAqY2VraW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wQ29udmVyc2lvbihBcmNoaXZl ICpmb3V0LCBjb25zdCBDb252SW5mbyAqY29udmluZm8pOwogc3RhdGljIHZvaWQgZHVtcFJ1 bGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgUnVsZUluZm8gKnJpbmZvKTsKIHN0YXRpYyB2b2lk IGR1bXBBZ2coQXJjaGl2ZSAqZm91dCwgY29uc3QgQWdnSW5mbyAqYWdnaW5mbyk7CkBAIC0z OTMsNiArMzk2LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXsiYXR0cmli dXRlLWluc2VydHMiLCBub19hcmd1bWVudCwgJmRvcHQuY29sdW1uX2luc2VydHMsIDF9LAog CQl7ImJpbmFyeS11cGdyYWRlIiwgbm9fYXJndW1lbnQsICZkb3B0LmJpbmFyeV91cGdyYWRl LCAxfSwKIAkJeyJjb2x1bW4taW5zZXJ0cyIsIG5vX2FyZ3VtZW50LCAmZG9wdC5jb2x1bW5f aW5zZXJ0cywgMX0sCisJCXsiZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1ucyIsIG5vX2FyZ3Vt ZW50LCAmZG9wdC5jcGFyYW1zLmNvbHVtbl9lbmNyeXB0aW9uLCAxfSwKIAkJeyJkaXNhYmxl LWRvbGxhci1xdW90aW5nIiwgbm9fYXJndW1lbnQsICZkb3B0LmRpc2FibGVfZG9sbGFyX3F1 b3RpbmcsIDF9LAogCQl7ImRpc2FibGUtdHJpZ2dlcnMiLCBub19hcmd1bWVudCwgJmRvcHQu ZGlzYWJsZV90cmlnZ2VycywgMX0sCiAJCXsiZW5hYmxlLXJvdy1zZWN1cml0eSIsIG5vX2Fy Z3VtZW50LCAmZG9wdC5lbmFibGVfcm93X3NlY3VyaXR5LCAxfSwKQEAgLTY4NSw2ICs2ODks OSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkgKiAtLWluc2VydHMgYXJlIGFs cmVhZHkgaW1wbGllZCBhYm92ZSBpZiAtLWNvbHVtbi1pbnNlcnRzIG9yCiAJICogLS1yb3dz LXBlci1pbnNlcnQgd2VyZSBzcGVjaWZpZWQuCiAJICovCisJaWYgKGRvcHQuY3BhcmFtcy5j b2x1bW5fZW5jcnlwdGlvbiAmJiBkb3B0LmR1bXBfaW5zZXJ0cyA9PSAwKQorCQlwZ19mYXRh bCgib3B0aW9uIC0tZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1ucyByZXF1aXJlcyBvcHRpb24g LS1pbnNlcnRzLCAtLXJvd3MtcGVyLWluc2VydCwgb3IgLS1jb2x1bW4taW5zZXJ0cyIpOwor CiAJaWYgKGRvcHQuZG9fbm90aGluZyAmJiBkb3B0LmR1bXBfaW5zZXJ0cyA9PSAwKQogCQlw Z19mYXRhbCgib3B0aW9uIC0tb24tY29uZmxpY3QtZG8tbm90aGluZyByZXF1aXJlcyBvcHRp b24gLS1pbnNlcnRzLCAtLXJvd3MtcGVyLWluc2VydCwgb3IgLS1jb2x1bW4taW5zZXJ0cyIp OwogCkBAIC0xMDU3LDYgKzEwNjQsNyBAQCBoZWxwKGNvbnN0IGNoYXIgKnByb2duYW1lKQog CXByaW50ZihfKCIgIC14LCAtLW5vLXByaXZpbGVnZXMgICAgICAgICAgZG8gbm90IGR1bXAg cHJpdmlsZWdlcyAoZ3JhbnQvcmV2b2tlKVxuIikpOwogCXByaW50ZihfKCIgIC0tYmluYXJ5 LXVwZ3JhZGUgICAgICAgICAgICAgZm9yIHVzZSBieSB1cGdyYWRlIHV0aWxpdGllcyBvbmx5 XG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1jb2x1bW4taW5zZXJ0cyAgICAgICAgICAgICBkdW1w IGRhdGEgYXMgSU5TRVJUIGNvbW1hbmRzIHdpdGggY29sdW1uIG5hbWVzXG4iKSk7CisJcHJp bnRmKF8oIiAgLS1kZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zICBkZWNyeXB0IGVuY3J5cHRl ZCBjb2x1bW5zIGluIHRoZSBvdXRwdXRcbiIpKTsKIAlwcmludGYoXygiICAtLWRpc2FibGUt ZG9sbGFyLXF1b3RpbmcgICAgIGRpc2FibGUgZG9sbGFyIHF1b3RpbmcsIHVzZSBTUUwgc3Rh bmRhcmQgcXVvdGluZ1xuIikpOwogCXByaW50ZihfKCIgIC0tZGlzYWJsZS10cmlnZ2VycyAg ICAgICAgICAgZGlzYWJsZSB0cmlnZ2VycyBkdXJpbmcgZGF0YS1vbmx5IHJlc3RvcmVcbiIp KTsKIAlwcmludGYoXygiICAtLWVuYWJsZS1yb3ctc2VjdXJpdHkgICAgICAgIGVuYWJsZSBy b3cgc2VjdXJpdHkgKGR1bXAgb25seSBjb250ZW50IHVzZXIgaGFzXG4iCkBAIC01NTcyLDYg KzU1ODAsMTY0IEBAIGdldENvbGxhdGlvbnMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1Db2xs YXRpb25zKQogCXJldHVybiBjb2xsaW5mbzsKIH0KIAorLyoKKyAqIGdldENvbHVtbkVuY3J5 cHRpb25LZXlzCisgKgkgIGdldCBpbmZvcm1hdGlvbiBhYm91dCBjb2x1bW4gZW5jcnlwdGlv biBrZXlzCisgKi8KK3ZvaWQKK2dldENvbHVtbkVuY3J5cHRpb25LZXlzKEFyY2hpdmUgKmZv dXQpCit7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJUEdyZXN1bHQgICAqcmVzOworCWludAkJ CW50dXBzOworCUNla0luZm8JICAgKmNla2luZm87CisJaW50CQkJaV90YWJsZW9pZDsKKwlp bnQJCQlpX29pZDsKKwlpbnQJCQlpX2Nla25hbWU7CisJaW50CQkJaV9jZWtuYW1lc3BhY2U7 CisJaW50CQkJaV9jZWtvd25lcjsKKwlpbnQJCQlpX2Nla2FjbDsKKwlpbnQJCQlpX2FjbGRl ZmF1bHQ7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA8IDE2MDAwMCkKKwkJcmV0dXJu OworCisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJYXBwZW5kUFFFeHBCdWZm ZXIocXVlcnksCisJCQkJCSAgIlNFTEVDVCBjZWsudGFibGVvaWQsIGNlay5vaWQsIGNlay5j ZWtuYW1lLCBjZWsuY2VrbmFtZXNwYWNlLCBjZWsuY2Vrb3duZXIsIGNlay5jZWthY2wsIGFj bGRlZmF1bHQoJ1knLCBjZWsuY2Vrb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKKwkJCQkJICAi RlJPTSBwZ19jb2xlbmNrZXkgY2VrIik7CisKKwlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91 dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisKKwludHVwcyA9IFBRbnR1cGxl cyhyZXMpOworCisJaV90YWJsZW9pZCA9IFBRZm51bWJlcihyZXMsICJ0YWJsZW9pZCIpOwor CWlfb2lkID0gUFFmbnVtYmVyKHJlcywgIm9pZCIpOworCWlfY2VrbmFtZSA9IFBRZm51bWJl cihyZXMsICJjZWtuYW1lIik7CisJaV9jZWtuYW1lc3BhY2UgPSBQUWZudW1iZXIocmVzLCAi Y2VrbmFtZXNwYWNlIik7CisJaV9jZWtvd25lciA9IFBRZm51bWJlcihyZXMsICJjZWtvd25l ciIpOworCWlfY2VrYWNsID0gUFFmbnVtYmVyKHJlcywgImNla2FjbCIpOworCWlfYWNsZGVm YXVsdCA9IFBRZm51bWJlcihyZXMsICJhY2xkZWZhdWx0Iik7CisKKwljZWtpbmZvID0gcGdf bWFsbG9jKG50dXBzICogc2l6ZW9mKENla0luZm8pKTsKKworCWZvciAoaW50IGkgPSAwOyBp IDwgbnR1cHM7IGkrKykKKwl7CisJCVBHcmVzdWx0CSAgICpyZXMyOworCQlpbnQJCQkJbnR1 cHMyOworCisJCWNla2luZm9baV0uZG9iai5vYmpUeXBlID0gRE9fQ0VLOworCQljZWtpbmZv W2ldLmRvYmouY2F0SWQudGFibGVvaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlf dGFibGVvaWQpKTsKKwkJY2VraW5mb1tpXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdl dHZhbHVlKHJlcywgaSwgaV9vaWQpKTsKKwkJQXNzaWduRHVtcElkKCZjZWtpbmZvW2ldLmRv YmopOworCQljZWtpbmZvW2ldLmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJl cywgaSwgaV9jZWtuYW1lKSk7CisJCWNla2luZm9baV0uZG9iai5uYW1lc3BhY2UgPSBmaW5k TmFtZXNwYWNlKGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9jZWtuYW1lc3BhY2UpKSk7 CisJCWNla2luZm9baV0uZGFjbC5hY2wgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGks IGlfY2VrYWNsKSk7CisJCWNla2luZm9baV0uZGFjbC5hY2xkZWZhdWx0ID0gcGdfc3RyZHVw KFBRZ2V0dmFsdWUocmVzLCBpLCBpX2FjbGRlZmF1bHQpKTsKKwkJY2VraW5mb1tpXS5kYWNs LnByaXZ0eXBlID0gMDsKKwkJY2VraW5mb1tpXS5kYWNsLmluaXRwcml2cyA9IE5VTEw7CisJ CWNla2luZm9baV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBp X2Nla293bmVyKSk7CisKKwkJcmVzZXRQUUV4cEJ1ZmZlcihxdWVyeSk7CisJCWFwcGVuZFBR RXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkJICAiU0VMRUNUIGNrZGNta2lkLCBja2RjbWthbGcs IGNrZGVuY3ZhbFxuIgorCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGVuY2tleWRh dGFcbiIKKwkJCQkJCSAgIldIRVJFIGNrZGNla2lkID0gJXUiLCBjZWtpbmZvW2ldLmRvYmou Y2F0SWQub2lkKTsKKwkJcmVzMiA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0 YSwgUEdSRVNfVFVQTEVTX09LKTsKKwkJbnR1cHMyID0gUFFudHVwbGVzKHJlczIpOworCQlj ZWtpbmZvW2ldLm51bWRhdGEgPSBudHVwczI7CisJCWNla2luZm9baV0uY2VrY21rcyA9IHBn X21hbGxvYyhzaXplb2YoQ21rSW5mbyAqKSAqIG50dXBzMik7CisJCWNla2luZm9baV0uY2Vr Y21rYWxncyA9IHBnX21hbGxvYyhzaXplb2YoaW50KSAqIG50dXBzMik7CisJCWNla2luZm9b aV0uY2VrZW5jdmFscyA9IHBnX21hbGxvYyhzaXplb2YoY2hhciAqKSAqIG50dXBzMik7CisJ CWZvciAoaW50IGogPSAwOyBqIDwgbnR1cHMyOyBqKyspCisJCXsKKwkJCU9pZAkJCWNrZGNt a2lkOworCisJCQlja2RjbWtpZCA9IGF0b29pZChQUWdldHZhbHVlKHJlczIsIGosIFBRZm51 bWJlcihyZXMyLCAiY2tkY21raWQiKSkpOworCQkJY2VraW5mb1tpXS5jZWtjbWtzW2pdID0g ZmluZENta0J5T2lkKGNrZGNta2lkKTsKKwkJCWNla2luZm9baV0uY2VrY21rYWxnc1tqXSA9 IGF0b2koUFFnZXR2YWx1ZShyZXMyLCBqLCBQUWZudW1iZXIocmVzMiwgImNrZGNta2FsZyIp KSk7CisJCQljZWtpbmZvW2ldLmNla2VuY3ZhbHNbal0gPSBwZ19zdHJkdXAoUFFnZXR2YWx1 ZShyZXMyLCBqLCBQUWZudW1iZXIocmVzMiwgImNrZGVuY3ZhbCIpKSk7CisJCX0KKwkJUFFj bGVhcihyZXMyKTsKKworCQlzZWxlY3REdW1wYWJsZU9iamVjdCgmKGNla2luZm9baV0uZG9i aiksIGZvdXQpOworCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgaV9jZWthY2wpKQorCQkJ Y2VraW5mb1tpXS5kb2JqLmNvbXBvbmVudHMgfD0gRFVNUF9DT01QT05FTlRfQUNMOworCX0K KwlQUWNsZWFyKHJlcyk7CisKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworfQorCisv KgorICogZ2V0Q29sdW1uTWFzdGVyS2V5cworICoJICBnZXQgaW5mb3JtYXRpb24gYWJvdXQg Y29sdW1uIG1hc3RlciBrZXlzCisgKi8KK3ZvaWQKK2dldENvbHVtbk1hc3RlcktleXMoQXJj aGl2ZSAqZm91dCkKK3sKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwlQR3Jlc3VsdCAgICpyZXM7 CisJaW50CQkJbnR1cHM7CisJQ21rSW5mbwkgICAqY21raW5mbzsKKwlpbnQJCQlpX3RhYmxl b2lkOworCWludAkJCWlfb2lkOworCWludAkJCWlfY21rbmFtZTsKKwlpbnQJCQlpX2Nta25h bWVzcGFjZTsKKwlpbnQJCQlpX2Nta293bmVyOworCWludAkJCWlfY21rcmVhbG07CisJaW50 CQkJaV9jbWthY2w7CisJaW50CQkJaV9hY2xkZWZhdWx0OworCisJaWYgKGZvdXQtPnJlbW90 ZVZlcnNpb24gPCAxNjAwMDApCisJCXJldHVybjsKKworCXF1ZXJ5ID0gY3JlYXRlUFFFeHBC dWZmZXIoKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkgICJTRUxFQ1Qg Y21rLnRhYmxlb2lkLCBjbWsub2lkLCBjbWsuY21rbmFtZSwgY21rLmNta25hbWVzcGFjZSwg Y21rLmNta293bmVyLCBjbWsuY21rcmVhbG0sIGNtay5jbWthY2wsIGFjbGRlZmF1bHQoJ3kn LCBjbWsuY21rb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKKwkJCQkJICAiRlJPTSBwZ19jb2xt YXN0ZXJrZXkgY21rIik7CisKKwlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnkt PmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisKKwludHVwcyA9IFBRbnR1cGxlcyhyZXMpOwor CisJaV90YWJsZW9pZCA9IFBRZm51bWJlcihyZXMsICJ0YWJsZW9pZCIpOworCWlfb2lkID0g UFFmbnVtYmVyKHJlcywgIm9pZCIpOworCWlfY21rbmFtZSA9IFBRZm51bWJlcihyZXMsICJj bWtuYW1lIik7CisJaV9jbWtuYW1lc3BhY2UgPSBQUWZudW1iZXIocmVzLCAiY21rbmFtZXNw YWNlIik7CisJaV9jbWtvd25lciA9IFBRZm51bWJlcihyZXMsICJjbWtvd25lciIpOworCWlf Y21rcmVhbG0gPSBQUWZudW1iZXIocmVzLCAiY21rcmVhbG0iKTsKKwlpX2Nta2FjbCA9IFBR Zm51bWJlcihyZXMsICJjbWthY2wiKTsKKwlpX2FjbGRlZmF1bHQgPSBQUWZudW1iZXIocmVz LCAiYWNsZGVmYXVsdCIpOworCisJY21raW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVv ZihDbWtJbmZvKSk7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IG50dXBzOyBpKyspCisJewor CQljbWtpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERPX0NNSzsKKwkJY21raW5mb1tpXS5kb2Jq LmNhdElkLnRhYmxlb2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RhYmxlb2lk KSk7CisJCWNta2luZm9baV0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShy ZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJZCgmY21raW5mb1tpXS5kb2JqKTsKKwkJ Y21raW5mb1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlf Y21rbmFtZSkpOworCQljbWtpbmZvW2ldLmRvYmoubmFtZXNwYWNlID0gZmluZE5hbWVzcGFj ZShhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfY21rbmFtZXNwYWNlKSkpOworCQljbWtp bmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2Nta2Fj bCkpOworCQljbWtpbmZvW2ldLmRhY2wuYWNsZGVmYXVsdCA9IHBnX3N0cmR1cChQUWdldHZh bHVlKHJlcywgaSwgaV9hY2xkZWZhdWx0KSk7CisJCWNta2luZm9baV0uZGFjbC5wcml2dHlw ZSA9IDA7CisJCWNta2luZm9baV0uZGFjbC5pbml0cHJpdnMgPSBOVUxMOworCQljbWtpbmZv W2ldLnJvbG5hbWUgPSBnZXRSb2xlTmFtZShQUWdldHZhbHVlKHJlcywgaSwgaV9jbWtvd25l cikpOworCQljbWtpbmZvW2ldLmNta3JlYWxtID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVz LCBpLCBpX2Nta3JlYWxtKSk7CisKKwkJc2VsZWN0RHVtcGFibGVPYmplY3QoJihjbWtpbmZv W2ldLmRvYmopLCBmb3V0KTsKKwkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGlfY21rYWNs KSkKKwkJCWNta2luZm9baV0uZG9iai5jb21wb25lbnRzIHw9IERVTVBfQ09NUE9ORU5UX0FD TDsKKwl9CisJUFFjbGVhcihyZXMpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsK K30KKwogLyoKICAqIGdldENvbnZlcnNpb25zOgogICoJICByZWFkIGFsbCBjb252ZXJzaW9u cyBpbiB0aGUgc3lzdGVtIGNhdGFsb2dzIGFuZCByZXR1cm4gdGhlbSBpbiB0aGUKQEAgLTgx ODcsNiArODM1Myw5IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZv ICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCWludAkJCWlfdHlwc3RvcmFnZTsKIAlpbnQJ CQlpX2F0dGlkZW50aXR5OwogCWludAkJCWlfYXR0Z2VuZXJhdGVkOworCWludAkJCWlfYXR0 Y2VrOworCWludAkJCWlfYXR0ZW5jYWxnOworCWludAkJCWlfYXR0ZW5jZGV0OwogCWludAkJ CWlfYXR0aXNkcm9wcGVkOwogCWludAkJCWlfYXR0bGVuOwogCWludAkJCWlfYXR0YWxpZ247 CkBAIC04MjQ2LDggKzg0MTUsNyBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRh YmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcykKIAkgKiBjb2xsYXRpb24gaXMgZGlm ZmVyZW50IGZyb20gdGhlaXIgdHlwZSdzIGRlZmF1bHQsIHdlIHVzZSBhIENBU0UgaGVyZSB0 bwogCSAqIHN1cHByZXNzIHVuaW50ZXJlc3RpbmcgYXR0Y29sbGF0aW9ucyBjaGVhcGx5Lgog CSAqLwotCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsCi0JCQkJCQkgIlNFTEVDVFxuIgorCWFw cGVuZFBRRXhwQnVmZmVyKHEsICJTRUxFQ1RcbiIKIAkJCQkJCSAiYS5hdHRyZWxpZCxcbiIK IAkJCQkJCSAiYS5hdHRudW0sXG4iCiAJCQkJCQkgImEuYXR0bmFtZSxcbiIKQEAgLTgyNjAs NyArODQyOCw3IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0 YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCQkJCQkJICJhLmF0dGxlbixcbiIKIAkJCQkJCSAi YS5hdHRhbGlnbixcbiIKIAkJCQkJCSAiYS5hdHRpc2xvY2FsLFxuIgotCQkJCQkJICJwZ19j YXRhbG9nLmZvcm1hdF90eXBlKHQub2lkLCBhLmF0dHR5cG1vZCkgQVMgYXR0dHlwbmFtZSxc biIKKwkJCQkJCSAicGdfY2F0YWxvZy5mb3JtYXRfdHlwZSglcykgQVMgYXR0dHlwbmFtZSxc biIKIAkJCQkJCSAiYXJyYXlfdG9fc3RyaW5nKGEuYXR0b3B0aW9ucywgJywgJykgQVMgYXR0 b3B0aW9ucyxcbiIKIAkJCQkJCSAiQ0FTRSBXSEVOIGEuYXR0Y29sbGF0aW9uIDw+IHQudHlw Y29sbGF0aW9uICIKIAkJCQkJCSAiVEhFTiBhLmF0dGNvbGxhdGlvbiBFTFNFIDAgRU5EIEFT IGF0dGNvbGxhdGlvbixcbiIKQEAgLTgyNjksNyArODQzNywxMCBAQCBnZXRUYWJsZUF0dHJz KEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcykKIAkJ CQkJCSAiJyAnIHx8IHBnX2NhdGFsb2cucXVvdGVfbGl0ZXJhbChvcHRpb25fdmFsdWUpICIK IAkJCQkJCSAiRlJPTSBwZ19jYXRhbG9nLnBnX29wdGlvbnNfdG9fdGFibGUoYXR0ZmR3b3B0 aW9ucykgIgogCQkJCQkJICJPUkRFUiBCWSBvcHRpb25fbmFtZSIKLQkJCQkJCSAiKSwgRScs XG4gICAgJykgQVMgYXR0ZmR3b3B0aW9ucyxcbiIpOworCQkJCQkJICIpLCBFJyxcbiAgICAn KSBBUyBhdHRmZHdvcHRpb25zLFxuIiwKKwkJCQkJCSBmb3V0LT5yZW1vdGVWZXJzaW9uID49 IDE2MDAwMCA/CisJCQkJCQkgIkNBU0UgV0hFTiBhLmF0dHVzZXJ0eXBpZCA8PiAwIFRIRU4g YS5hdHR1c2VydHlwaWQgRUxTRSBhLmF0dHR5cGlkIEVORCwgQ0FTRSBXSEVOIGEuYXR0dXNl cnR5cGlkIDw+IDAgVEhFTiBhLmF0dHVzZXJ0eXBtb2QgRUxTRSBhLmF0dHR5cG1vZCBFTkQi IDoKKwkJCQkJCSAiYS5hdHR0eXBpZCwgYS5hdHR0eXBtb2QiKTsKIAogCWlmIChmb3V0LT5y ZW1vdGVWZXJzaW9uID49IDE0MDAwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwKQEAg LTgyOTUsMTAgKzg0NjYsMjMgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJs ZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAKIAlpZiAoZm91dC0+cmVtb3RlVmVy c2lvbiA+PSAxMjAwMDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsCi0JCQkJCQkJICJh LmF0dGdlbmVyYXRlZFxuIik7CisJCQkJCQkJICJhLmF0dGdlbmVyYXRlZCxcbiIpOworCWVs c2UKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwKKwkJCQkJCQkgIicnIEFTIGF0dGdlbmVy YXRlZCxcbiIpOworCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTYwMDAwKQorCQlh cHBlbmRQUUV4cEJ1ZmZlcihxLAorCQkJCQkJICAiYS5hdHRjZWssXG4iCisJCQkJCQkgICJD QVNFIGEuYXR0dHlwaWQgV0hFTiAldSBUSEVOIHRydWUgV0hFTiAldSBUSEVOIGZhbHNlIEVO RCBBUyBhdHRlbmNkZXQsXG4iCisJCQkJCQkgICJDQVNFIFdIRU4gYS5hdHR0eXBpZCBJTiAo JXUsICV1KSBUSEVOIGEuYXR0dHlwbW9kIEVORCBBUyBhdHRlbmNhbGdcbiIsCisJCQkJCQkg IFBHX0VOQ1JZUFRFRF9ERVRPSUQsIFBHX0VOQ1JZUFRFRF9STkRPSUQsCisJCQkJCQkgIFBH X0VOQ1JZUFRFRF9ERVRPSUQsIFBHX0VOQ1JZUFRFRF9STkRPSUQpOwogCWVsc2UKIAkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocSwKLQkJCQkJCQkgIicnIEFTIGF0dGdlbmVyYXRlZFxuIik7 CisJCQkJCQkJICJOVUxMIEFTIGF0dGNlayxcbiIKKwkJCQkJCQkgIk5VTEwgQVMgYXR0ZW5j ZGV0LFxuIgorCQkJCQkJCSAiTlVMTCBBUyBhdHRlbmNhbGdcbiIpOwogCiAJLyogbmVlZCBs ZWZ0IGpvaW4gdG8gcGdfdHlwZSB0byBub3QgZmFpbCBvbiBkcm9wcGVkIGNvbHVtbnMgLi4u ICovCiAJYXBwZW5kUFFFeHBCdWZmZXIocSwKQEAgLTgzMjMsNiArODUwNyw5IEBAIGdldFRh YmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFi bGVzKQogCWlfdHlwc3RvcmFnZSA9IFBRZm51bWJlcihyZXMsICJ0eXBzdG9yYWdlIik7CiAJ aV9hdHRpZGVudGl0eSA9IFBRZm51bWJlcihyZXMsICJhdHRpZGVudGl0eSIpOwogCWlfYXR0 Z2VuZXJhdGVkID0gUFFmbnVtYmVyKHJlcywgImF0dGdlbmVyYXRlZCIpOworCWlfYXR0Y2Vr ID0gUFFmbnVtYmVyKHJlcywgImF0dGNlayIpOworCWlfYXR0ZW5jZGV0ID0gUFFmbnVtYmVy KHJlcywgImF0dGVuY2RldCIpOworCWlfYXR0ZW5jYWxnID0gUFFmbnVtYmVyKHJlcywgImF0 dGVuY2FsZyIpOwogCWlfYXR0aXNkcm9wcGVkID0gUFFmbnVtYmVyKHJlcywgImF0dGlzZHJv cHBlZCIpOwogCWlfYXR0bGVuID0gUFFmbnVtYmVyKHJlcywgImF0dGxlbiIpOwogCWlfYXR0 YWxpZ24gPSBQUWZudW1iZXIocmVzLCAiYXR0YWxpZ24iKTsKQEAgLTgzODMsNiArODU3MCw5 IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBp bnQgbnVtVGFibGVzKQogCQl0YmluZm8tPnR5cHN0b3JhZ2UgPSAoY2hhciAqKSBwZ19tYWxs b2MobnVtYXR0cyAqIHNpemVvZihjaGFyKSk7CiAJCXRiaW5mby0+YXR0aWRlbnRpdHkgPSAo Y2hhciAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihjaGFyKSk7CiAJCXRiaW5mby0+ YXR0Z2VuZXJhdGVkID0gKGNoYXIgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2YoY2hh cikpOworCQl0YmluZm8tPmF0dGNlayA9IChDZWtJbmZvICoqKSBwZ19tYWxsb2MobnVtYXR0 cyAqIHNpemVvZihDZWtJbmZvICopKTsKKwkJdGJpbmZvLT5hdHRlbmNkZXQgPSAoYm9vbCAq KSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihib29sKSk7CisJCXRiaW5mby0+YXR0ZW5j YWxnID0gKGludCAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihpbnQpKTsKIAkJdGJp bmZvLT5hdHRpc2Ryb3BwZWQgPSAoYm9vbCAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVv Zihib29sKSk7CiAJCXRiaW5mby0+YXR0bGVuID0gKGludCAqKSBwZ19tYWxsb2MobnVtYXR0 cyAqIHNpemVvZihpbnQpKTsKIAkJdGJpbmZvLT5hdHRhbGlnbiA9IChjaGFyICopIHBnX21h bGxvYyhudW1hdHRzICogc2l6ZW9mKGNoYXIpKTsKQEAgLTg0MTAsNiArODYwMCwyMiBAQCBn ZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51 bVRhYmxlcykKIAkJCXRiaW5mby0+YXR0aWRlbnRpdHlbal0gPSAqKFBRZ2V0dmFsdWUocmVz LCByLCBpX2F0dGlkZW50aXR5KSk7CiAJCQl0YmluZm8tPmF0dGdlbmVyYXRlZFtqXSA9ICoo UFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0Z2VuZXJhdGVkKSk7CiAJCQl0YmluZm8tPm5lZWRz X292ZXJyaWRlID0gdGJpbmZvLT5uZWVkc19vdmVycmlkZSB8fCAodGJpbmZvLT5hdHRpZGVu dGl0eVtqXSA9PSBBVFRSSUJVVEVfSURFTlRJVFlfQUxXQVlTKTsKKwkJCWlmICghUFFnZXRp c251bGwocmVzLCByLCBpX2F0dGNlaykpCisJCQl7CisJCQkJT2lkCQlhdHRjZWtpZCA9IGF0 b29pZChQUWdldHZhbHVlKHJlcywgciwgaV9hdHRjZWspKTsKKworCQkJCXRiaW5mby0+YXR0 Y2VrW2pdID0gZmluZENla0J5T2lkKGF0dGNla2lkKTsKKwkJCX0KKwkJCWVsc2UKKwkJCQl0 YmluZm8tPmF0dGNla1tqXSA9IE5VTEw7CisJCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgciwg aV9hdHRlbmNkZXQpKQorCQkJCXRiaW5mby0+YXR0ZW5jZGV0W2pdID0gKFBRZ2V0dmFsdWUo cmVzLCByLCBpX2F0dGVuY2RldClbMF0gPT0gJ3QnKTsKKwkJCWVsc2UKKwkJCQl0YmluZm8t PmF0dGVuY2RldFtqXSA9IDA7CisJCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgciwgaV9hdHRl bmNhbGcpKQorCQkJCXRiaW5mby0+YXR0ZW5jYWxnW2pdID0gYXRvaShQUWdldHZhbHVlKHJl cywgciwgaV9hdHRlbmNhbGcpKTsKKwkJCWVsc2UKKwkJCQl0YmluZm8tPmF0dGVuY2FsZ1tq XSA9IDA7CiAJCQl0YmluZm8tPmF0dGlzZHJvcHBlZFtqXSA9IChQUWdldHZhbHVlKHJlcywg ciwgaV9hdHRpc2Ryb3BwZWQpWzBdID09ICd0Jyk7CiAJCQl0YmluZm8tPmF0dGxlbltqXSA9 IGF0b2koUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0bGVuKSk7CiAJCQl0YmluZm8tPmF0dGFs aWduW2pdID0gKihQUWdldHZhbHVlKHJlcywgciwgaV9hdHRhbGlnbikpOwpAQCAtOTkyOCw2 ICsxMDEzNCwxMiBAQCBkdW1wRHVtcGFibGVPYmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFi bGVPYmplY3QgKmRvYmopCiAJCWNhc2UgRE9fT1BGQU1JTFk6CiAJCQlkdW1wT3BmYW1pbHko Zm91dCwgKGNvbnN0IE9wZmFtaWx5SW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOworCQljYXNl IERPX0NFSzoKKwkJCWR1bXBDb2x1bW5FbmNyeXB0aW9uS2V5KGZvdXQsIChjb25zdCBDZWtJ bmZvICopIGRvYmopOworCQkJYnJlYWs7CisJCWNhc2UgRE9fQ01LOgorCQkJZHVtcENvbHVt bk1hc3RlcktleShmb3V0LCAoY29uc3QgQ21rSW5mbyAqKSBkb2JqKTsKKwkJCWJyZWFrOwog CQljYXNlIERPX0NPTExBVElPTjoKIAkJCWR1bXBDb2xsYXRpb24oZm91dCwgKGNvbnN0IENv bGxJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CkBAIC0xMzMyMSw2ICsxMzUzMywxNDEgQEAg ZHVtcENvbGxhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBDb2xsSW5mbyAqY29sbGluZm8p CiAJZnJlZShxY29sbG5hbWUpOwogfQogCisvKgorICogZHVtcENvbHVtbkVuY3J5cHRpb25L ZXkKKyAqCSAgZHVtcCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgZ2l2ZW4gY29sdW1uIGVuY3J5 cHRpb24ga2V5CisgKi8KK3N0YXRpYyB2b2lkCitkdW1wQ29sdW1uRW5jcnlwdGlvbktleShB cmNoaXZlICpmb3V0LCBjb25zdCBDZWtJbmZvICpjZWtpbmZvKQoreworCUR1bXBPcHRpb25z ICpkb3B0ID0gZm91dC0+ZG9wdDsKKwlQUUV4cEJ1ZmZlciBkZWxxOworCVBRRXhwQnVmZmVy IHF1ZXJ5OworCWNoYXIJICAgKnFjZWtuYW1lOworCisJLyogRG8gbm90aGluZyBpbiBkYXRh LW9ubHkgZHVtcCAqLworCWlmIChkb3B0LT5kYXRhT25seSkKKwkJcmV0dXJuOworCisJZGVs cSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigp OworCisJcWNla25hbWUgPSBwZ19zdHJkdXAoZm10SWQoY2VraW5mby0+ZG9iai5uYW1lKSk7 CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBDT0xVTU4gRU5DUllQVElPTiBL RVkgJXM7XG4iLAorCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxlKGNla2luZm8pKTsKKwor CWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtF WSAlcyBXSVRIIFZBTFVFUyAiLAorCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxlKGNla2lu Zm8pKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgY2VraW5mby0+bnVtZGF0YTsgaSsrKQor CXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIoIik7CisKKwkJYXBwZW5kUFFFeHBC dWZmZXIocXVlcnksICJjb2x1bW5fbWFzdGVyX2tleSA9ICVzLCAiLCBmbXRRdWFsaWZpZWRE dW1wYWJsZShjZWtpbmZvLT5jZWtjbWtzW2ldKSk7CisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAiYWxnb3JpdGhtID0gJyVzJywgIiwgZ2V0X2Nta2FsZ19uYW1lKGNla2luZm8tPmNl a2Nta2FsZ3NbaV0pKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJlbmNyeXB0ZWRf dmFsdWUgPSAiKTsKKwkJYXBwZW5kU3RyaW5nTGl0ZXJhbEFIKHF1ZXJ5LCBjZWtpbmZvLT5j ZWtlbmN2YWxzW2ldLCBmb3V0KTsKKworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiki KTsKKwkJaWYgKGkgPCBjZWtpbmZvLT5udW1kYXRhIC0gMSkKKwkJCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LCAiLCAiKTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwg IjtcbiIpOworCisJaWYgKGNla2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RF RklOSVRJT04pCisJCUFyY2hpdmVFbnRyeShmb3V0LCBjZWtpbmZvLT5kb2JqLmNhdElkLCBj ZWtpbmZvLT5kb2JqLmR1bXBJZCwKKwkJCQkJIEFSQ0hJVkVfT1BUUygudGFnID0gY2VraW5m by0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5uYW1lc3BhY2UgPSBjZWtpbmZvLT5kb2JqLm5h bWVzcGFjZS0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5vd25lciA9IGNla2luZm8tPnJvbG5h bWUsCisJCQkJCQkJCSAgLmRlc2NyaXB0aW9uID0gIkNPTFVNTiBFTkNSWVBUSU9OIEtFWSIs CisJCQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BSRV9EQVRBLAorCQkJCQkJCQkgIC5j cmVhdGVTdG10ID0gcXVlcnktPmRhdGEsCisJCQkJCQkJCSAgLmRyb3BTdG10ID0gZGVscS0+ ZGF0YSkpOworCisJaWYgKGNla2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0NP TU1FTlQpCisJCWR1bXBDb21tZW50KGZvdXQsICJDT0xVTU4gRU5DUllQVElPTiBLRVkiLCBx Y2VrbmFtZSwKKwkJCQkJY2VraW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwgY2Vr aW5mby0+cm9sbmFtZSwKKwkJCQkJY2VraW5mby0+ZG9iai5jYXRJZCwgMCwgY2VraW5mby0+ ZG9iai5kdW1wSWQpOworCisJaWYgKGNla2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9O RU5UX1NFQ0xBQkVMKQorCQlkdW1wU2VjTGFiZWwoZm91dCwgIkNPTFVNTiBFTkNSWVBUSU9O IEtFWSIsIHFjZWtuYW1lLAorCQkJCQkgY2VraW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmou bmFtZSwgY2VraW5mby0+cm9sbmFtZSwKKwkJCQkJIGNla2luZm8tPmRvYmouY2F0SWQsIDAs IGNla2luZm8tPmRvYmouZHVtcElkKTsKKworCWlmIChjZWtpbmZvLT5kb2JqLmR1bXAgJiBE VU1QX0NPTVBPTkVOVF9BQ0wpCisJCWR1bXBBQ0woZm91dCwgY2VraW5mby0+ZG9iai5kdW1w SWQsIEludmFsaWREdW1wSWQsICJDT0xVTU4gRU5DUllQVElPTiBLRVkiLAorCQkJCXFjZWtu YW1lLCBOVUxMLCBjZWtpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLAorCQkJCWNl a2luZm8tPnJvbG5hbWUsICZjZWtpbmZvLT5kYWNsKTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZl cihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworCWZyZWUocWNla25hbWUp OworfQorCisvKgorICogZHVtcENvbHVtbk1hc3RlcktleQorICoJICBkdW1wIHRoZSBkZWZp bml0aW9uIG9mIHRoZSBnaXZlbiBjb2x1bW4gbWFzdGVyIGtleQorICovCitzdGF0aWMgdm9p ZAorZHVtcENvbHVtbk1hc3RlcktleShBcmNoaXZlICpmb3V0LCBjb25zdCBDbWtJbmZvICpj bWtpbmZvKQoreworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKwlQUUV4cEJ1 ZmZlciBkZWxxOworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCWNoYXIJICAgKnFjbWtuYW1lOwor CisJLyogRG8gbm90aGluZyBpbiBkYXRhLW9ubHkgZHVtcCAqLworCWlmIChkb3B0LT5kYXRh T25seSkKKwkJcmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJcXVl cnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJcWNta25hbWUgPSBwZ19zdHJkdXAoZm10 SWQoY21raW5mby0+ZG9iai5uYW1lKSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAi RFJPUCBDT0xVTU4gTUFTVEVSIEtFWSAlcztcbiIsCisJCQkJCSAgZm10UXVhbGlmaWVkRHVt cGFibGUoY21raW5mbykpOworCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUg Q09MVU1OIE1BU1RFUiBLRVkgJXMgV0lUSCAoIiwKKwkJCQkJICBmbXRRdWFsaWZpZWREdW1w YWJsZShjbWtpbmZvKSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgInJlYWxtID0g Iik7CisJYXBwZW5kU3RyaW5nTGl0ZXJhbEFIKHF1ZXJ5LCBjbWtpbmZvLT5jbWtyZWFsbSwg Zm91dCk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIik7XG4iKTsKKworCWlm IChjbWtpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OKQorCQlB cmNoaXZlRW50cnkoZm91dCwgY21raW5mby0+ZG9iai5jYXRJZCwgY21raW5mby0+ZG9iai5k dW1wSWQsCisJCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9IGNta2luZm8tPmRvYmoubmFtZSwK KwkJCQkJCQkJICAubmFtZXNwYWNlID0gY21raW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmou bmFtZSwKKwkJCQkJCQkJICAub3duZXIgPSBjbWtpbmZvLT5yb2xuYW1lLAorCQkJCQkJCQkg IC5kZXNjcmlwdGlvbiA9ICJDT0xVTU4gTUFTVEVSIEtFWSIsCisJCQkJCQkJCSAgLnNlY3Rp b24gPSBTRUNUSU9OX1BSRV9EQVRBLAorCQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gcXVlcnkt PmRhdGEsCisJCQkJCQkJCSAgLmRyb3BTdG10ID0gZGVscS0+ZGF0YSkpOworCisJaWYgKGNt a2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0NPTU1FTlQpCisJCWR1bXBDb21t ZW50KGZvdXQsICJDT0xVTU4gTUFTVEVSIEtFWSIsIHFjbWtuYW1lLAorCQkJCQljbWtpbmZv LT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLCBjbWtpbmZvLT5yb2xuYW1lLAorCQkJCQlj bWtpbmZvLT5kb2JqLmNhdElkLCAwLCBjbWtpbmZvLT5kb2JqLmR1bXBJZCk7CisKKwlpZiAo Y21raW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfU0VDTEFCRUwpCisJCWR1bXBT ZWNMYWJlbChmb3V0LCAiQ09MVU1OIE1BU1RFUiBLRVkiLCBxY21rbmFtZSwKKwkJCQkJIGNt a2luZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIGNta2luZm8tPnJvbG5hbWUsCisJ CQkJCSBjbWtpbmZvLT5kb2JqLmNhdElkLCAwLCBjbWtpbmZvLT5kb2JqLmR1bXBJZCk7CisK KwlpZiAoY21raW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfQUNMKQorCQlkdW1w QUNMKGZvdXQsIGNta2luZm8tPmRvYmouZHVtcElkLCBJbnZhbGlkRHVtcElkLCAiQ09MVU1O IE1BU1RFUiBLRVkiLAorCQkJCXFjbWtuYW1lLCBOVUxMLCBjbWtpbmZvLT5kb2JqLm5hbWVz cGFjZS0+ZG9iai5uYW1lLAorCQkJCWNta2luZm8tPnJvbG5hbWUsICZjbWtpbmZvLT5kYWNs KTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIo cXVlcnkpOworCWZyZWUocWNta25hbWUpOworfQorCiAvKgogICogZHVtcENvbnZlcnNpb24K ICAqCSAgd3JpdGUgb3V0IGEgc2luZ2xlIGNvbnZlcnNpb24gZGVmaW5pdGlvbgpAQCAtMTU0 MDQsNiArMTU3NTEsMjIgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0 IFRhYmxlSW5mbyAqdGJpbmZvKQogCQkJCQkJCQkJCSAgdGJpbmZvLT5hdHR0eXBuYW1lc1tq XSk7CiAJCQkJCX0KIAorCQkJCQlpZiAodGJpbmZvLT5hdHRjZWtbal0pCisJCQkJCXsKKwkJ CQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICIgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNy eXB0aW9uX2tleSA9ICVzLCAiLAorCQkJCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUo dGJpbmZvLT5hdHRjZWtbal0pKTsKKwkJCQkJCS8qCisJCQkJCQkgKiBUbyByZWR1Y2Ugb3V0 cHV0IHNpemUsIHdlIGRvbid0IHByaW50IHRoZSBkZWZhdWx0CisJCQkJCQkgKiBvZiBlbmNy eXB0aW9uX3R5cGUsIGJ1dCB3ZSBkbyBwcmludCB0aGUgZGVmYXVsdCBvZgorCQkJCQkJICog YWxnb3JpdGhtLCBzaW5jZSB3ZSBtaWdodCB3YW50IHRvIGNoYW5nZSB0byBhIG5ldworCQkJ CQkJICogZGVmYXVsdCBhbGdvcml0aG0gc29tZXRpbWUgaW4gdGhlIGZ1dHVyZS4KKwkJCQkJ CSAqLworCQkJCQkJaWYgKHRiaW5mby0+YXR0ZW5jZGV0W2pdKQorCQkJCQkJCWFwcGVuZFBR RXhwQnVmZmVyKHEsICJlbmNyeXB0aW9uX3R5cGUgPSBkZXRlcm1pbmlzdGljLCAiKTsKKwkJ CQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICJhbGdvcml0aG0gPSAnJXMnKSIsCisJCQkJCQkJ CQkJICBnZXRfY2VrYWxnX25hbWUodGJpbmZvLT5hdHRlbmNhbGdbal0pKTsKKwkJCQkJfQor CiAJCQkJCWlmIChwcmludF9kZWZhdWx0KQogCQkJCQl7CiAJCQkJCQlpZiAodGJpbmZvLT5h dHRnZW5lcmF0ZWRbal0gPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQpCkBAIC0xNzk2 Nyw2ICsxODMzMCw4IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBhYmxlT2JqZWN0 ICoqZG9ianMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19BQ0NFU1NfTUVUSE9EOgogCQkJ Y2FzZSBET19PUENMQVNTOgogCQkJY2FzZSBET19PUEZBTUlMWToKKwkJCWNhc2UgRE9fQ0VL OgorCQkJY2FzZSBET19DTUs6CiAJCQljYXNlIERPX0NPTExBVElPTjoKIAkJCWNhc2UgRE9f Q09OVkVSU0lPTjoKIAkJCWNhc2UgRE9fVEFCTEU6CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCBjZGNh MGI5OTNkLi5kNGEyZTU5NWQwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTQ3LDYgKzQ3LDggQEAg dHlwZWRlZiBlbnVtCiAJRE9fQUNDRVNTX01FVEhPRCwKIAlET19PUENMQVNTLAogCURPX09Q RkFNSUxZLAorCURPX0NFSywKKwlET19DTUssCiAJRE9fQ09MTEFUSU9OLAogCURPX0NPTlZF UlNJT04sCiAJRE9fVEFCTEUsCkBAIC0zMzIsNiArMzM0LDkgQEAgdHlwZWRlZiBzdHJ1Y3Qg X3RhYmxlSW5mbwogCWJvb2wJICAgKmF0dGlzZHJvcHBlZDsJLyogdHJ1ZSBpZiBhdHRyIGlz IGRyb3BwZWQ7IGRvbid0IGR1bXAgaXQgKi8KIAljaGFyCSAgICphdHRpZGVudGl0eTsKIAlj aGFyCSAgICphdHRnZW5lcmF0ZWQ7CisJc3RydWN0IF9DZWtJbmZvICoqYXR0Y2VrOworCWlu dAkJICAgKmF0dGVuY2FsZzsKKwlib29sCSAgICphdHRlbmNkZXQ7CiAJaW50CQkgICAqYXR0 bGVuOwkJCS8qIGF0dHJpYnV0ZSBsZW5ndGgsIHVzZWQgYnkgYmluYXJ5X3VwZ3JhZGUgKi8K IAljaGFyCSAgICphdHRhbGlnbjsJCS8qIGF0dHJpYnV0ZSBhbGlnbiwgdXNlZCBieSBiaW5h cnlfdXBncmFkZSAqLwogCWJvb2wJICAgKmF0dGlzbG9jYWw7CQkvKiB0cnVlIGlmIGF0dHIg aGFzIGxvY2FsIGRlZmluaXRpb24gKi8KQEAgLTY2Myw2ICs2NjgsMzIgQEAgdHlwZWRlZiBz dHJ1Y3QgX1N1YnNjcmlwdGlvbkluZm8KIAljaGFyCSAgICpzdWJwdWJsaWNhdGlvbnM7CiB9 IFN1YnNjcmlwdGlvbkluZm87CiAKKy8qCisgKiBUaGUgQ2VrSW5mbyBzdHJ1Y3QgaXMgdXNl ZCB0byByZXByZXNlbnQgY29sdW1uIGVuY3J5cHRpb24ga2V5LgorICovCit0eXBlZGVmIHN0 cnVjdCBfQ2VrSW5mbworeworCUR1bXBhYmxlT2JqZWN0IGRvYmo7CisJRHVtcGFibGVBY2wJ ZGFjbDsKKwljb25zdCBjaGFyICpyb2xuYW1lOworCWludAkJCW51bWRhdGE7CisJLyogVGhl IGZvbGxvd2luZyBhcmUgYXJyYXlzIG9mIG51bWRhdGEgZW50cmllcyBlYWNoOiAqLworCXN0 cnVjdCBfQ21rSW5mbyAqKmNla2Nta3M7CisJaW50CQkgICAqY2VrY21rYWxnczsKKwljaGFy CSAgKipjZWtlbmN2YWxzOworfSBDZWtJbmZvOworCisvKgorICogVGhlIENta0luZm8gc3Ry dWN0IGlzIHVzZWQgdG8gcmVwcmVzZW50IGNvbHVtbiBtYXN0ZXIga2V5LgorICovCit0eXBl ZGVmIHN0cnVjdCBfQ21rSW5mbworeworCUR1bXBhYmxlT2JqZWN0IGRvYmo7CisJRHVtcGFi bGVBY2wJZGFjbDsKKwljb25zdCBjaGFyICpyb2xuYW1lOworCWNoYXIJICAgKmNta3JlYWxt OworfSBDbWtJbmZvOworCiAvKgogICoJY29tbW9uIHV0aWxpdHkgZnVuY3Rpb25zCiAgKi8K QEAgLTY4Myw2ICs3MTQsOCBAQCBleHRlcm4gVGFibGVJbmZvICpmaW5kVGFibGVCeU9pZChP aWQgb2lkKTsKIGV4dGVybiBUeXBlSW5mbyAqZmluZFR5cGVCeU9pZChPaWQgb2lkKTsKIGV4 dGVybiBGdW5jSW5mbyAqZmluZEZ1bmNCeU9pZChPaWQgb2lkKTsKIGV4dGVybiBPcHJJbmZv ICpmaW5kT3ByQnlPaWQoT2lkIG9pZCk7CitleHRlcm4gQ2VrSW5mbyAqZmluZENla0J5T2lk KE9pZCBvaWQpOworZXh0ZXJuIENta0luZm8gKmZpbmRDbWtCeU9pZChPaWQgb2lkKTsKIGV4 dGVybiBDb2xsSW5mbyAqZmluZENvbGxhdGlvbkJ5T2lkKE9pZCBvaWQpOwogZXh0ZXJuIE5h bWVzcGFjZUluZm8gKmZpbmROYW1lc3BhY2VCeU9pZChPaWQgb2lkKTsKIGV4dGVybiBFeHRl bnNpb25JbmZvICpmaW5kRXh0ZW5zaW9uQnlPaWQoT2lkIG9pZCk7CkBAIC03MTAsNiArNzQz LDggQEAgZXh0ZXJuIEFjY2Vzc01ldGhvZEluZm8gKmdldEFjY2Vzc01ldGhvZHMoQXJjaGl2 ZSAqZm91dCwgaW50ICpudW1BY2Nlc3NNZXRob2RzKTsKIGV4dGVybiBPcGNsYXNzSW5mbyAq Z2V0T3BjbGFzc2VzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtT3BjbGFzc2VzKTsKIGV4dGVy biBPcGZhbWlseUluZm8gKmdldE9wZmFtaWxpZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1P cGZhbWlsaWVzKTsKIGV4dGVybiBDb2xsSW5mbyAqZ2V0Q29sbGF0aW9ucyhBcmNoaXZlICpm b3V0LCBpbnQgKm51bUNvbGxhdGlvbnMpOworZXh0ZXJuIHZvaWQgZ2V0Q29sdW1uRW5jcnlw dGlvbktleXMoQXJjaGl2ZSAqZm91dCk7CitleHRlcm4gdm9pZCBnZXRDb2x1bW5NYXN0ZXJL ZXlzKEFyY2hpdmUgKmZvdXQpOwogZXh0ZXJuIENvbnZJbmZvICpnZXRDb252ZXJzaW9ucyhB cmNoaXZlICpmb3V0LCBpbnQgKm51bUNvbnZlcnNpb25zKTsKIGV4dGVybiBUYWJsZUluZm8g KmdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcyk7CiBleHRlcm4gdm9p ZCBnZXRPd25lZFNlcXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50 IG51bVRhYmxlcyk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0 LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggODI2NmMxMTdhMy4u ZDNkYWNkMzlkYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5j CisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAtNjksNiArNjksOCBA QCBlbnVtIGRiT2JqZWN0VHlwZVByaW9yaXRpZXMKIAlQUklPX1RTVEVNUExBVEUsCiAJUFJJ T19UU0RJQ1QsCiAJUFJJT19UU0NPTkZJRywKKwlQUklPX0NNSywKKwlQUklPX0NFSywKIAlQ UklPX0ZEVywKIAlQUklPX0ZPUkVJR05fU0VSVkVSLAogCVBSSU9fVEFCTEUsCkBAIC0xMTEs NiArMTEzLDggQEAgc3RhdGljIGNvbnN0IGludCBkYk9iamVjdFR5cGVQcmlvcml0eVtdID0K IAlQUklPX0FDQ0VTU19NRVRIT0QsCQkJLyogRE9fQUNDRVNTX01FVEhPRCAqLwogCVBSSU9f T1BGQU1JTFksCQkJCS8qIERPX09QQ0xBU1MgKi8KIAlQUklPX09QRkFNSUxZLAkJCQkvKiBE T19PUEZBTUlMWSAqLworCVBSSU9fQ0VLLAkJCQkJLyogRE9fQ0VLICovCisJUFJJT19DTUss CQkJCQkvKiBET19DTUsgKi8KIAlQUklPX0NPTExBVElPTiwJCQkJLyogRE9fQ09MTEFUSU9O ICovCiAJUFJJT19DT05WRVJTSU9OLAkJCS8qIERPX0NPTlZFUlNJT04gKi8KIAlQUklPX1RB QkxFLAkJCQkJLyogRE9fVEFCTEUgKi8KQEAgLTEzMjIsNiArMTMyNiwxNiBAQCBkZXNjcmli ZUR1bXBhYmxlT2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1ZiwgaW50IGJ1 ZnNpemUpCiAJCQkJCSAiT1BFUkFUT1IgRkFNSUxZICVzICAoSUQgJWQgT0lEICV1KSIsCiAJ CQkJCSBvYmotPm5hbWUsIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJCQlyZXR1 cm47CisJCWNhc2UgRE9fQ0VLOgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJCQkg IkNPTFVNTiBFTkNSWVBUSU9OIEtFWSAoSUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmotPmR1 bXBJZCwgb2JqLT5jYXRJZC5vaWQpOworCQkJcmV0dXJuOworCQljYXNlIERPX0NNSzoKKwkJ CXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJICJDT0xVTU4gTUFTVEVSIEtFWSAoSUQg JWQgT0lEICV1KSIsCisJCQkJCSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOworCQkJ cmV0dXJuOwogCQljYXNlIERPX0NPTExBVElPTjoKIAkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6 ZSwKIAkJCQkJICJDT0xMQVRJT04gJXMgIChJRCAlZCBPSUQgJXUpIiwKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cGFsbC5jCmluZGV4IGNkNDIxYzU5NDQuLjY1MzBmYjgxYTIgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBh bGwuYwpAQCAtOTMsNiArOTMsNyBAQCBzdGF0aWMgYm9vbCBkb3N5bmMgPSB0cnVlOwogCiBz dGF0aWMgaW50CWJpbmFyeV91cGdyYWRlID0gMDsKIHN0YXRpYyBpbnQJY29sdW1uX2luc2Vy dHMgPSAwOworc3RhdGljIGludAlkZWNyeXB0X2VuY3J5cHRlZF9jb2x1bW5zID0gMDsKIHN0 YXRpYyBpbnQJZGlzYWJsZV9kb2xsYXJfcXVvdGluZyA9IDA7CiBzdGF0aWMgaW50CWRpc2Fi bGVfdHJpZ2dlcnMgPSAwOwogc3RhdGljIGludAlpZl9leGlzdHMgPSAwOwpAQCAtMTU0LDYg KzE1NSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJeyJhdHRyaWJ1dGUt aW5zZXJ0cyIsIG5vX2FyZ3VtZW50LCAmY29sdW1uX2luc2VydHMsIDF9LAogCQl7ImJpbmFy eS11cGdyYWRlIiwgbm9fYXJndW1lbnQsICZiaW5hcnlfdXBncmFkZSwgMX0sCiAJCXsiY29s dW1uLWluc2VydHMiLCBub19hcmd1bWVudCwgJmNvbHVtbl9pbnNlcnRzLCAxfSwKKwkJeyJk ZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zIiwgbm9fYXJndW1lbnQsICZkZWNyeXB0X2VuY3J5 cHRlZF9jb2x1bW5zLCAxfSwKIAkJeyJkaXNhYmxlLWRvbGxhci1xdW90aW5nIiwgbm9fYXJn dW1lbnQsICZkaXNhYmxlX2RvbGxhcl9xdW90aW5nLCAxfSwKIAkJeyJkaXNhYmxlLXRyaWdn ZXJzIiwgbm9fYXJndW1lbnQsICZkaXNhYmxlX3RyaWdnZXJzLCAxfSwKIAkJeyJleGNsdWRl LWRhdGFiYXNlIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDZ9LApAQCAtNDI0LDYgKzQy Niw4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIocGdkdW1wb3B0cywgIiAtLWJpbmFyeS11cGdyYWRlIik7CiAJaWYgKGNvbHVtbl9p bnNlcnRzKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihwZ2R1bXBvcHRzLCAiIC0tY29sdW1u LWluc2VydHMiKTsKKwlpZiAoZGVjcnlwdF9lbmNyeXB0ZWRfY29sdW1ucykKKwkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocGdkdW1wb3B0cywgIiAtLWRlY3J5cHQtZW5jcnlwdGVkLWNvbHVt bnMiKTsKIAlpZiAoZGlzYWJsZV9kb2xsYXJfcXVvdGluZykKIAkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIocGdkdW1wb3B0cywgIiAtLWRpc2FibGUtZG9sbGFyLXF1b3RpbmciKTsKIAlpZiAo ZGlzYWJsZV90cmlnZ2VycykKQEAgLTY0OSw2ICs2NTMsNyBAQCBoZWxwKHZvaWQpCiAJcHJp bnRmKF8oIiAgLXgsIC0tbm8tcHJpdmlsZWdlcyAgICAgICAgICBkbyBub3QgZHVtcCBwcml2 aWxlZ2VzIChncmFudC9yZXZva2UpXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1iaW5hcnktdXBn cmFkZSAgICAgICAgICAgICBmb3IgdXNlIGJ5IHVwZ3JhZGUgdXRpbGl0aWVzIG9ubHlcbiIp KTsKIAlwcmludGYoXygiICAtLWNvbHVtbi1pbnNlcnRzICAgICAgICAgICAgIGR1bXAgZGF0 YSBhcyBJTlNFUlQgY29tbWFuZHMgd2l0aCBjb2x1bW4gbmFtZXNcbiIpKTsKKwlwcmludGYo XygiICAtLWRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnMgIGRlY3J5cHQgZW5jcnlwdGVkIGNv bHVtbnMgaW4gdGhlIG91dHB1dFxuIikpOwogCXByaW50ZihfKCIgIC0tZGlzYWJsZS1kb2xs YXItcXVvdGluZyAgICAgZGlzYWJsZSBkb2xsYXIgcXVvdGluZywgdXNlIFNRTCBzdGFuZGFy ZCBxdW90aW5nXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1kaXNhYmxlLXRyaWdnZXJzICAgICAg ICAgICBkaXNhYmxlIHRyaWdnZXJzIGR1cmluZyBkYXRhLW9ubHkgcmVzdG9yZVxuIikpOwog CXByaW50ZihfKCIgIC0tZXhjbHVkZS1kYXRhYmFzZT1QQVRURVJOICAgZXhjbHVkZSBkYXRh YmFzZXMgd2hvc2UgbmFtZSBtYXRjaGVzIFBBVFRFUk5cbiIpKTsKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwKaW5kZXggZDkyMjQ3YzkxNS4uZjRmMTNmZDA4NyAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwKQEAgLTY0NSw2ICs2NDUsMTggQEAKIAkJdW5saWtlICAgID0+ IHsgJWR1bXBfdGVzdF9zY2hlbWFfcnVucywgbm9fb3duZXIgPT4gMSwgfSwKIAl9LAogCisJ J0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIE9XTkVSIFRPJyA9PiB7CisJCXJl Z2V4cCA9PiBxci9eQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGR1bXBfdGVzdC5jZWsx IE9XTkVSIFRPIC4rOy9tLAorCQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCAlZHVtcF90ZXN0 X3NjaGVtYV9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7 IGV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLCBub19vd25lciA9PiAxLCB9LAorCX0s CisKKwknQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBPV05FUiBUTycgPT4geworCQly ZWdleHAgPT4gcXIvXkFMVEVSIENPTFVNTiBNQVNURVIgS0VZIGR1bXBfdGVzdC5jbWsxIE9X TkVSIFRPIC4rOy9tLAorCQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCAlZHVtcF90ZXN0X3Nj aGVtYV9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7IGV4 Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLCBub19vd25lciA9PiAxLCB9LAorCX0sCisK IAknQUxURVIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgZHVtbXkgT1dORVIgVE8nID0+IHsKIAkJ cmVnZXhwID0+IHFyL15BTFRFUiBGT1JFSUdOIERBVEEgV1JBUFBFUiBkdW1teSBPV05FUiBU TyAuKzsvbSwKIAkJbGlrZSAgID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9 PiAxLCB9LApAQCAtMTI0NSw2ICsxMjU3LDI2IEBACiAJCWxpa2UgICAgICA9PiB7ICVmdWxs X3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKIAl9LAogCisJJ0NPTU1FTlQgT04g Q09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDU1 LAorCQljcmVhdGVfc3FsICAgPT4gJ0NPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IGR1bXBfdGVzdC5jZWsxCisJCQkJCSAgIElTIFwnY29tbWVudCBvbiBjb2x1bW4gZW5jcnlw dGlvbiBrZXlcJzsnLAorCQlyZWdleHAgPT4KKwkJICBxci9eQ09NTUVOVCBPTiBDT0xVTU4g RU5DUllQVElPTiBLRVkgZHVtcF90ZXN0LmNlazEgSVMgJ2NvbW1lbnQgb24gY29sdW1uIGVu Y3J5cHRpb24ga2V5JzsvbSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsICVkdW1wX3Rlc3Rf c2NoZW1hX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsg ZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsIH0sCisJfSwKKworCSdDT01NRU5UIE9O IENPTFVNTiBNQVNURVIgS0VZIGNtazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDU1LAor CQljcmVhdGVfc3FsICAgPT4gJ0NPTU1FTlQgT04gQ09MVU1OIE1BU1RFUiBLRVkgZHVtcF90 ZXN0LmNtazEKKwkJCQkJICAgSVMgXCdjb21tZW50IG9uIGNvbHVtbiBtYXN0ZXIga2V5XCc7 JywKKwkJcmVnZXhwID0+CisJCSAgcXIvXkNPTU1FTlQgT04gQ09MVU1OIE1BU1RFUiBLRVkg ZHVtcF90ZXN0LmNtazEgSVMgJ2NvbW1lbnQgb24gY29sdW1uIG1hc3RlciBrZXknOy9tLAor CQlsaWtlID0+IHsgJWZ1bGxfcnVucywgJWR1bXBfdGVzdF9zY2hlbWFfcnVucywgc2VjdGlv bl9wcmVfZGF0YSA9PiAxLCB9LAorCQl1bmxpa2UgPT4geyBleGNsdWRlX2R1bXBfdGVzdF9z Y2hlbWEgPT4gMSwgfSwKKwl9LAorCiAJJ0NPTU1FTlQgT04gTEFSR0UgT0JKRUNUIC4uLicg PT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjUsCiAJCWNyZWF0ZV9zcWwgICA9PiAnRE8gJCQK QEAgLTE2NjMsNiArMTY5NSwyNiBAQAogCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlv bl9wcmVfZGF0YSA9PiAxLCB9LAogCX0sCiAKKwknQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9O IEtFWSBjZWsxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MSwKKwkJY3JlYXRlX3NxbCAg ID0+ICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGR1bXBfdGVzdC5jZWsxIFdJVEgg VkFMVUVTIChjb2x1bW5fbWFzdGVyX2tleSA9IGR1bXBfdGVzdC5jbWsxLCBhbGdvcml0aG0g PSAnUlNBRVNfT0FFUF9TSEFfMScsIGVuY3J5cHRlZF92YWx1ZSA9ICdcXHhERUFEQkVFRicp OyIsCisJCXJlZ2V4cCAgICAgICA9PiBxci9eCisJCQlcUUNSRUFURSBDT0xVTU4gRU5DUllQ VElPTiBLRVkgZHVtcF90ZXN0LmNlazEgV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5 ID0gZHVtcF90ZXN0LmNtazEsIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywgZW5j cnlwdGVkX3ZhbHVlID0gXEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsICVk dW1wX3Rlc3Rfc2NoZW1hX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5s aWtlID0+IHsgZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsIH0sCisJfSwKKworCSdD UkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4g NTAsCisJCWNyZWF0ZV9zcWwgICA9PiAiQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGR1bXBf dGVzdC5jbWsxIFdJVEggKHJlYWxtID0gJ215cmVhbG0nKTsiLAorCQlyZWdleHAgICAgICAg PT4gcXIvXgorCQkJXFFDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgZHVtcF90ZXN0LmNtazEg V0lUSCAocmVhbG0gPSAnbXlyZWFsbScpO1xFCisJCQkveG0sCisJCWxpa2UgPT4geyAlZnVs bF9ydW5zLCAlZHVtcF90ZXN0X3NjaGVtYV9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEs IH0sCisJCXVubGlrZSA9PiB7IGV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLCB9LAor CX0sCisKIAknQ1JFQVRFIERBVEFCQVNFIHBvc3RncmVzJyA9PiB7CiAJCXJlZ2V4cCA9PiBx ci9eCiAJCQlcUUNSRUFURSBEQVRBQkFTRSBwb3N0Z3JlcyBXSVRIIFRFTVBMQVRFID0gdGVt cGxhdGUwIFxFCkBAIC0zNDk2LDYgKzM1NDgsMjYgQEAKIAkJdW5saWtlID0+IHsgbm9fcHJp dnMgPT4gMSwgfSwKIAl9LAogCisJJ0dSQU5UIFVTQUdFIE9OIENPTFVNTiBFTkNSWVBUSU9O IEtFWSBjZWsxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA4NSwKKwkJY3JlYXRlX3NxbCAg ID0+ICdHUkFOVCBVU0FHRSBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgZHVtcF90ZXN0LmNl azEgVE8gcmVncmVzc19kdW1wX3Rlc3Rfcm9sZTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJ XFFHUkFOVCBBTEwgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGR1bXBfdGVzdC5jZWsxIFRP IHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7ICVmdWxs X3J1bnMsICVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwg fSwKKwkJdW5saWtlID0+IHsgZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsIG5vX3By aXZzID0+IDEsIH0sCisJfSwKKworCSdHUkFOVCBVU0FHRSBPTiBDT0xVTU4gTUFTVEVSIEtF WSBjbWsxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA4NSwKKwkJY3JlYXRlX3NxbCAgID0+ ICdHUkFOVCBVU0FHRSBPTiBDT0xVTU4gTUFTVEVSIEtFWSBkdW1wX3Rlc3QuY21rMSBUTyBy ZWdyZXNzX2R1bXBfdGVzdF9yb2xlOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUdSQU5U IEFMTCBPTiBDT0xVTU4gTUFTVEVSIEtFWSBkdW1wX3Rlc3QuY21rMSBUTyByZWdyZXNzX2R1 bXBfdGVzdF9yb2xlO1xFCisJCQkveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCAlZHVt cF90ZXN0X3NjaGVtYV9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCisJCXVubGlr ZSA9PiB7IGV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLCBub19wcml2cyA9PiAxLCB9 LAorCX0sCisKIAknR1JBTlQgVVNBR0UgT04gRk9SRUlHTiBEQVRBIFdSQVBQRVIgZHVtbXkn ID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDg1LAogCQljcmVhdGVfc3FsICAgPT4gJ0dSQU5U IFVTQUdFIE9OIEZPUkVJR04gREFUQSBXUkFQUEVSIGR1bW15CmRpZmYgLS1naXQgYS9zcmMv YmluL3BzcWwvY29tbWFuZC5jIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwppbmRleCA5NTUz OTdlZTlkLi4wZDZhNDZkMjRiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvY29tbWFuZC5j CisrKyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKQEAgLTgxNSw3ICs4MTUsMTEgQEAgZXhl Y19jb21tYW5kX2QoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFu Y2gsIGNvbnN0IGNoYXIgKmNtZCkKIAkJCQlzdWNjZXNzID0gZGVzY3JpYmVUYWJsZXNwYWNl cyhwYXR0ZXJuLCBzaG93X3ZlcmJvc2UpOwogCQkJCWJyZWFrOwogCQkJY2FzZSAnYyc6Ci0J CQkJaWYgKHN0cm5jbXAoY21kLCAiZGNvbmZpZyIsIDcpID09IDApCisJCQkJaWYgKHN0cm5j bXAoY21kLCAiZGNlayIsIDQpID09IDApCisJCQkJCXN1Y2Nlc3MgPSBsaXN0Q0VLcyhwYXR0 ZXJuLCBzaG93X3ZlcmJvc2UpOworCQkJCWVsc2UgaWYgKHN0cm5jbXAoY21kLCAiZGNtayIs IDQpID09IDApCisJCQkJCXN1Y2Nlc3MgPSBsaXN0Q01LcyhwYXR0ZXJuLCBzaG93X3ZlcmJv c2UpOworCQkJCWVsc2UgaWYgKHN0cm5jbXAoY21kLCAiZGNvbmZpZyIsIDcpID09IDApCiAJ CQkJCXN1Y2Nlc3MgPSBkZXNjcmliZUNvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzKHBhdHRlcm4s CiAJCQkJCQkJCQkJCQkJCQkgIHNob3dfdmVyYm9zZSwKIAkJCQkJCQkJCQkJCQkJCSAgc2hv d19zeXN0ZW0pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBjOGEwYmI3YjNhLi4wNGQ0MzdmODM2IDEwMDY0 NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYwpAQCAtMTUzMCw3ICsxNTMwLDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMo Y29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAlib29sCQlwcmludFRhYmxlSW5pdGlhbGl6ZWQg PSBmYWxzZTsKIAlpbnQJCQlpOwogCWNoYXIJICAgKnZpZXdfZGVmID0gTlVMTDsKLQljaGFy CSAgICpoZWFkZXJzWzEyXTsKKwljaGFyCSAgICpoZWFkZXJzWzEzXTsKIAlQUUV4cEJ1ZmZl ckRhdGEgdGl0bGU7CiAJUFFFeHBCdWZmZXJEYXRhIHRtcGJ1ZjsKIAlpbnQJCQljb2xzOwpA QCAtMTU0Niw2ICsxNTQ2LDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hh ciAqc2NoZW1hbmFtZSwKIAkJCQlmZHdvcHRzX2NvbCA9IC0xLAogCQkJCWF0dHN0b3JhZ2Vf Y29sID0gLTEsCiAJCQkJYXR0Y29tcHJlc3Npb25fY29sID0gLTEsCisJCQkJYXR0Y2VrbmFt ZV9jb2wgPSAtMSwKIAkJCQlhdHRzdGF0dGFyZ2V0X2NvbCA9IC0xLAogCQkJCWF0dGRlc2Ny X2NvbCA9IC0xOwogCWludAkJCW51bXJvd3M7CkBAIC0xNTY4LDYgKzE1NjksOCBAQCBkZXNj cmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQljaGFyCSAg ICpyZWxhbTsKIAl9CQkJdGFibGVpbmZvOwogCWJvb2wJCXNob3dfY29sdW1uX2RldGFpbHMg PSBmYWxzZTsKKwljb25zdCBjaGFyICphdHR1c2VydHlwaWQ7CisJY29uc3QgY2hhciAqYXR0 dXNlcnR5cG1vZDsKIAogCW15b3B0LmRlZmF1bHRfZm9vdGVyID0gZmFsc2U7CiAJLyogVGhp cyBvdXRwdXQgbG9va3MgY29uZnVzaW5nIGluIGV4cGFuZGVkIG1vZGUuICovCkBAIC0xODQ0 LDcgKzE4NDcsMTcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2No ZW1hbmFtZSwKIAljb2xzID0gMDsKIAlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLCAiU0VMRUNU IGEuYXR0bmFtZSIpOwogCWF0dG5hbWVfY29sID0gY29scysrOwotCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKCZidWYsICIsXG4gIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUoYS5hdHR0eXBpZCwg YS5hdHR0eXBtb2QpIik7CisJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTYwMDAwKQorCXsKKwkJ YXR0dXNlcnR5cGlkID0gIkNBU0UgV0hFTiBhLmF0dHVzZXJ0eXBpZCA8PiAwIFRIRU4gYS5h dHR1c2VydHlwaWQgRUxTRSBhLmF0dHR5cGlkIEVORCI7CisJCWF0dHVzZXJ0eXBtb2QgPSAi Q0FTRSBXSEVOIGEuYXR0dXNlcnR5cGlkIDw+IDAgVEhFTiBhLmF0dHVzZXJ0eXBtb2QgRUxT RSBhLmF0dHR5cG1vZCBFTkQiOworCX0KKwllbHNlCisJeworCQlhdHR1c2VydHlwaWQgPSAi YS5hdHR0eXBpZCI7CisJCWF0dHVzZXJ0eXBtb2QgPSAiYS5hdHR0eXBtb2QiOworCX0KKwlh cHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiLFxuICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKCVz LCAlcykiLCBhdHR1c2VydHlwaWQsIGF0dHVzZXJ0eXBtb2QpOwogCWF0dHR5cGVfY29sID0g Y29scysrOwogCiAJaWYgKHNob3dfY29sdW1uX2RldGFpbHMpCkBAIC0xODU3LDcgKzE4NzAs OCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAog CQkJCQkJCSAiLFxuICBhLmF0dG5vdG51bGwiKTsKIAkJYXR0cmRlZl9jb2wgPSBjb2xzKys7 CiAJCWF0dG5vdG51bGxfY29sID0gY29scysrOwotCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigm YnVmLCAiLFxuICAoU0VMRUNUIGMuY29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxh dGlvbiBjLCBwZ19jYXRhbG9nLnBnX3R5cGUgdFxuIgorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0 cigmYnVmLCAiLFxuIgorCQkJCQkJCSAiICAoU0VMRUNUIGMuY29sbG5hbWUgRlJPTSBwZ19j YXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBwZ19jYXRhbG9nLnBnX3R5cGUgdFxuIgogCQkJCQkJ CSAiICAgV0hFUkUgYy5vaWQgPSBhLmF0dGNvbGxhdGlvbiBBTkQgdC5vaWQgPSBhLmF0dHR5 cGlkIEFORCBhLmF0dGNvbGxhdGlvbiA8PiB0LnR5cGNvbGxhdGlvbikgQVMgYXR0Y29sbGF0 aW9uIik7CiAJCWF0dGNvbGxfY29sID0gY29scysrOwogCQlpZiAocHNldC5zdmVyc2lvbiA+ PSAxMDAwMDApCkBAIC0xOTA5LDYgKzE5MjMsMTggQEAgZGVzY3JpYmVPbmVUYWJsZURldGFp bHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCWF0dGNvbXByZXNzaW9uX2NvbCA9IGNv bHMrKzsKIAkJfQogCisJCS8qIGVuY3J5cHRpb24gaW5mbyAqLworCQlpZiAocHNldC5zdmVy c2lvbiA+PSAxNjAwMDAgJiYKKwkJCSFwc2V0LmhpZGVfY29sdW1uX2VuY3J5cHRpb24gJiYK KwkJCSh0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OIHx8CisJCQkgdGFi bGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9WSUVXIHx8CisJCQkgdGFibGVpbmZvLnJlbGtp bmQgPT0gUkVMS0lORF9NQVRWSUVXIHx8CisJCQkgdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVM S0lORF9QQVJUSVRJT05FRF9UQUJMRSkpCisJCXsKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsICIsXG4gIChTRUxFQ1QgY2VrbmFtZSBGUk9NIHBnX2NvbGVuY2tleSBjZWsgV0hF UkUgY2VrLm9pZCA9IGEuYXR0Y2VrKSBBUyBhdHRjZWtuYW1lIik7CisJCQlhdHRjZWtuYW1l X2NvbCA9IGNvbHMrKzsKKwkJfQorCiAJCS8qIHN0YXRzIHRhcmdldCwgaWYgcmVsZXZhbnQg dG8gcmVsa2luZCAqLwogCQlpZiAodGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9SRUxB VElPTiB8fAogCQkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9JTkRFWCB8fApAQCAt MjAzMiw2ICsyMDU4LDggQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAq c2NoZW1hbmFtZSwKIAkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJTdG9yYWdl Iik7CiAJaWYgKGF0dGNvbXByZXNzaW9uX2NvbCA+PSAwKQogCQloZWFkZXJzW2NvbHMrK10g PSBnZXR0ZXh0X25vb3AoIkNvbXByZXNzaW9uIik7CisJaWYgKGF0dGNla25hbWVfY29sID49 IDApCisJCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiRW5jcnlwdGlvbiIpOwog CWlmIChhdHRzdGF0dGFyZ2V0X2NvbCA+PSAwKQogCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0 ZXh0X25vb3AoIlN0YXRzIHRhcmdldCIpOwogCWlmIChhdHRkZXNjcl9jb2wgPj0gMCkKQEAg LTIxMjQsNiArMjE1MiwxNyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFy ICpzY2hlbWFuYW1lLAogCQkJCQkJCSAgZmFsc2UsIGZhbHNlKTsKIAkJfQogCisJCS8qIENv bHVtbiBlbmNyeXB0aW9uICovCisJCWlmIChhdHRjZWtuYW1lX2NvbCA+PSAwKQorCQl7CisJ CQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgYXR0Y2VrbmFtZV9jb2wpKQorCQkJCXByaW50 VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgYXR0Y2VrbmFtZV9jb2wp LAorCQkJCQkJCQkgIGZhbHNlLCBmYWxzZSk7CisJCQllbHNlCisJCQkJcHJpbnRUYWJsZUFk ZENlbGwoJmNvbnQsICIiLAorCQkJCQkJCQkgIGZhbHNlLCBmYWxzZSk7CisJCX0KKwogCQkv KiBTdGF0aXN0aWNzIHRhcmdldCwgaWYgdGhlIHJlbGtpbmQgc3VwcG9ydHMgdGhpcyBmZWF0 dXJlICovCiAJCWlmIChhdHRzdGF0dGFyZ2V0X2NvbCA+PSAwKQogCQkJcHJpbnRUYWJsZUFk ZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBhdHRzdGF0dGFyZ2V0X2NvbCksCkBA IC00NDc3LDYgKzQ1MTYsMTUyIEBAIGxpc3RDb252ZXJzaW9ucyhjb25zdCBjaGFyICpwYXR0 ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wgc2hvd1N5c3RlbSkKIAlyZXR1cm4gdHJ1ZTsKIH0K IAorLyoKKyAqIFxkY2VrCisgKgorICogTGlzdHMgY29sdW1uIGVuY3J5cHRpb24ga2V5cy4K KyAqLworYm9vbAorbGlzdENFS3MoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3Nl KQoreworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisJUEdyZXN1bHQgICAqcmVzOworCXByaW50 UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7CisKKwlpZiAocHNldC5zdmVyc2lvbiA8IDE2 MDAwMCkKKwl7CisJCWNoYXIJCXN2ZXJidWZbMzJdOworCisJCXBnX2xvZ19lcnJvcigiVGhl IHNlcnZlciAodmVyc2lvbiAlcykgZG9lcyBub3Qgc3VwcG9ydCBjb2x1bW4gZW5jcnlwdGlv bi4iLAorCQkJCQkgZm9ybWF0UEdWZXJzaW9uTnVtYmVyKHBzZXQuc3ZlcnNpb24sIGZhbHNl LAorCQkJCQkJCQkJCSAgIHN2ZXJidWYsIHNpemVvZihzdmVyYnVmKSkpOworCQlyZXR1cm4g dHJ1ZTsKKwl9CisKKwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKwlwcmludGZQUUV4cEJ1 ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1QgIgorCQkJCQkgICJuLm5zcG5hbWUgQVMgXCIl c1wiLCAiCisJCQkJCSAgImNla25hbWUgQVMgXCIlc1wiLCAiCisJCQkJCSAgInBnX2NhdGFs b2cucGdfZ2V0X3VzZXJieWlkKGNla293bmVyKSBBUyBcIiVzXCIsICIKKwkJCQkJICAiY21r bmFtZSBBUyBcIiVzXCIiLAorCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1hIiksCisJCQkJ CSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIp LAorCQkJCQkgIGdldHRleHRfbm9vcCgiTWFzdGVyIGtleSIpKTsKKwlpZiAodmVyYm9zZSkK Kwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIsICIpOworCQlwcmludEFDTENvbHVt bigmYnVmLCAiY2VrYWNsIik7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkg ICIsIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKGNlay5vaWQsICdwZ19jb2xlbmNrZXkn KSBBUyBcIiVzXCIiLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkRlc2NyaXB0aW9uIikpOwor CX0KKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAorCQkJCQkJICJcbkZST00gcGdfY2F0 YWxvZy5wZ19jb2xlbmNrZXkgY2VrICIKKwkJCQkJCSAiTEVGVCBKT0lOIHBnX2NhdGFsb2cu cGdfbmFtZXNwYWNlIG4gT04gbi5vaWQgPSBjZWsuY2VrbmFtZXNwYWNlICIKKwkJCQkJCSAi Sk9JTiBwZ19jYXRhbG9nLnBnX2NvbGVuY2tleWRhdGEgY2tkIE9OIChjZWsub2lkID0gY2tk LmNrZGNla2lkKSAiCisJCQkJCQkgIkpPSU4gcGdfY2F0YWxvZy5wZ19jb2xtYXN0ZXJrZXkg Y21rIE9OIChja2QuY2tkY21raWQgPSBjbWsub2lkKSAiKTsKKworCWlmICghdmFsaWRhdGVT UUxOYW1lUGF0dGVybigmYnVmLCBwYXR0ZXJuLCBmYWxzZSwgZmFsc2UsCisJCQkJCQkJCSJu Lm5zcG5hbWUiLCAiY2VrbmFtZSIsIE5VTEwsCisJCQkJCQkJCSJwZ19jYXRhbG9nLnBnX2Nl a19pc192aXNpYmxlKGNlay5vaWQpIiwKKwkJCQkJCQkJTlVMTCwgMykpCisJeworCQl0ZXJt UFFFeHBCdWZmZXIoJmJ1Zik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlhcHBlbmRQUUV4 cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMSwgMiwgNCIpOworCisJcmVzID0gUFNRTGV4 ZWMoYnVmLmRhdGEpOworCXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwlpZiAoIXJlcykKKwkJ cmV0dXJuIGZhbHNlOworCisJbXlvcHQubnVsbFByaW50ID0gTlVMTDsKKwlteW9wdC50aXRs ZSA9IF8oIkxpc3Qgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5cyIpOworCW15b3B0LnRyYW5z bGF0ZV9oZWFkZXIgPSB0cnVlOworCisJcHJpbnRRdWVyeShyZXMsICZteW9wdCwgcHNldC5x dWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCisJUFFjbGVhcihyZXMpOworCXJl dHVybiB0cnVlOworfQorCisvKgorICogXGRjbWsKKyAqCisgKiBMaXN0cyBjb2x1bW4gbWFz dGVyIGtleXMuCisgKi8KK2Jvb2wKK2xpc3RDTUtzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEgYnVmOworCVBHcmVzdWx0ICAgKnJl czsKKwlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OworCisJaWYgKHBzZXQuc3Zl cnNpb24gPCAxNjAwMDApCisJeworCQljaGFyCQlzdmVyYnVmWzMyXTsKKworCQlwZ19sb2df ZXJyb3IoIlRoZSBzZXJ2ZXIgKHZlcnNpb24gJXMpIGRvZXMgbm90IHN1cHBvcnQgY29sdW1u IGVuY3J5cHRpb24uIiwKKwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJlcihwc2V0LnN2ZXJz aW9uLCBmYWxzZSwKKwkJCQkJCQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3ZlcmJ1ZikpKTsK KwkJcmV0dXJuIHRydWU7CisJfQorCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJp bnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJICAiU0VMRUNUICIKKwkJCQkJICAibi5uc3Bu YW1lIEFTIFwiJXNcIiwgIgorCQkJCQkgICJjbWtuYW1lIEFTIFwiJXNcIiwgIgorCQkJCQkg ICJwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZChjbWtvd25lcikgQVMgXCIlc1wiLCAiCisJ CQkJCSAgImNta3JlYWxtIEFTIFwiJXNcIiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hl bWEiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKKwkJCQkJICBnZXR0ZXh0X25v b3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJSZWFsbSIpKTsKKwlpZiAodmVy Ym9zZSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIsICIpOworCQlwcmludEFD TENvbHVtbigmYnVmLCAiY21rYWNsIik7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJ CQkJCQkgICIsIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKGNtay5vaWQsICdwZ19jb2xt YXN0ZXJrZXknKSBBUyBcIiVzXCIiLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkRlc2NyaXB0 aW9uIikpOworCX0KKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAorCQkJCQkJICJcbkZS T00gcGdfY2F0YWxvZy5wZ19jb2xtYXN0ZXJrZXkgY21rICIKKwkJCQkJCSAiTEVGVCBKT0lO IHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4gT04gbi5vaWQgPSBjbWsuY21rbmFtZXNwYWNl ICIpOworCisJaWYgKCF2YWxpZGF0ZVNRTE5hbWVQYXR0ZXJuKCZidWYsIHBhdHRlcm4sIGZh bHNlLCBmYWxzZSwKKwkJCQkJCQkJIm4ubnNwbmFtZSIsICJjbWtuYW1lIiwgTlVMTCwKKwkJ CQkJCQkJInBnX2NhdGFsb2cucGdfY21rX2lzX3Zpc2libGUoY21rLm9pZCkiLAorCQkJCQkJ CQlOVUxMLCAzKSkKKwl7CisJCXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwkJcmV0dXJuIGZh bHNlOworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxLCAy Iik7CisKKwlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CisJdGVybVBRRXhwQnVmZmVyKCZi dWYpOworCWlmICghcmVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwlteW9wdC5udWxsUHJpbnQg PSBOVUxMOworCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiBjb2x1bW4gbWFzdGVyIGtleXMi KTsKKwlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKKworCXByaW50UXVlcnkocmVz LCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKKworCVBR Y2xlYXIocmVzKTsKKwlyZXR1cm4gdHJ1ZTsKK30KKwogLyoKICAqIFxkY29uZmlnCiAgKgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmggYi9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuaAppbmRleCA1NTRmZTg2NzI1Li4xY2Y4ZjcyMTc2IDEwMDY0NAotLS0gYS9zcmMv YmluL3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaApAQCAt NzYsNiArNzYsMTIgQEAgZXh0ZXJuIGJvb2wgbGlzdERvbWFpbnMoY29uc3QgY2hhciAqcGF0 dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXN0ZW0pOwogLyogXGRjICovCiBleHRl cm4gYm9vbCBsaXN0Q29udmVyc2lvbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJi b3NlLCBib29sIHNob3dTeXN0ZW0pOwogCisvKiBcZGNlayAqLworZXh0ZXJuIGJvb2wgbGlz dENFS3MoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKTsKKworLyogXGRjbWsg Ki8KK2V4dGVybiBib29sIGxpc3RDTUtzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVy Ym9zZSk7CisKIC8qIFxkY29uZmlnICovCiBleHRlcm4gYm9vbCBkZXNjcmliZUNvbmZpZ3Vy YXRpb25QYXJhbWV0ZXJzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSwKIAkJ CQkJCQkJCQkJYm9vbCBzaG93U3lzdGVtKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9o ZWxwLmMgYi9zcmMvYmluL3BzcWwvaGVscC5jCmluZGV4IGU0NWM0YWFjYTUuLjE3Mjk5NjY5 NTkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3Fs L2hlbHAuYwpAQCAtMjUyLDYgKzI1Miw4IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQg aW50IHBhZ2VyKQogCUhFTFAwKCIgIFxcZEFwWytdIFtBTVBUUk4gW09QRlBUUk5dXSAgIGxp c3Qgc3VwcG9ydCBmdW5jdGlvbnMgb2Ygb3BlcmF0b3IgZmFtaWxpZXNcbiIpOwogCUhFTFAw KCIgIFxcZGJbK10gIFtQQVRURVJOXSAgICAgIGxpc3QgdGFibGVzcGFjZXNcbiIpOwogCUhF TFAwKCIgIFxcZGNbUytdIFtQQVRURVJOXSAgICAgIGxpc3QgY29udmVyc2lvbnNcbiIpOwor CUhFTFAwKCIgIFxcZGNla1srXSBbUEFUVEVSTl0gICAgIGxpc3QgY29sdW1uIGVuY3J5cHRp b24ga2V5c1xuIik7CisJSEVMUDAoIiAgXFxkY21rWytdIFtQQVRURVJOXSAgICAgbGlzdCBj b2x1bW4gbWFzdGVyIGtleXNcbiIpOwogCUhFTFAwKCIgIFxcZGNvbmZpZ1srXSBbUEFUVEVS Tl0gIGxpc3QgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzXG4iKTsKIAlIRUxQMCgiICBcXGRD WytdICBbUEFUVEVSTl0gICAgICBsaXN0IGNhc3RzXG4iKTsKIAlIRUxQMCgiICBcXGRkW1Nd ICBbUEFUVEVSTl0gICAgICBzaG93IG9iamVjdCBkZXNjcmlwdGlvbnMgbm90IGRpc3BsYXll ZCBlbHNld2hlcmVcbiIpOwpAQCAtNDEzLDYgKzQxNSw4IEBAIGhlbHBWYXJpYWJsZXModW5z aWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCQkgICIgICAgdHJ1ZSBpZiBsYXN0IHF1ZXJ5IGZh aWxlZCwgZWxzZSBmYWxzZVxuIik7CiAJSEVMUDAoIiAgRkVUQ0hfQ09VTlRcbiIKIAkJICAi ICAgIHRoZSBudW1iZXIgb2YgcmVzdWx0IHJvd3MgdG8gZmV0Y2ggYW5kIGRpc3BsYXkgYXQg YSB0aW1lICgwID0gdW5saW1pdGVkKVxuIik7CisJSEVMUDAoIiAgSElERV9DT0xVTU5fRU5D UllQVElPTlxuIgorCQkgICIgICAgaWYgc2V0LCBjb2x1bW4gZW5jcnlwdGlvbiBkZXRhaWxz IGFyZSBub3QgZGlzcGxheWVkXG4iKTsKIAlIRUxQMCgiICBISURFX1RBQkxFQU1cbiIKIAkJ ICAiICAgIGlmIHNldCwgdGFibGUgYWNjZXNzIG1ldGhvZHMgYXJlIG5vdCBkaXNwbGF5ZWRc biIpOwogCUhFTFAwKCIgIEhJREVfVE9BU1RfQ09NUFJFU1NJT05cbiIKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcHNxbC9zZXR0aW5ncy5oIGIvc3JjL2Jpbi9wc3FsL3NldHRpbmdzLmgKaW5k ZXggNzNkNGIzOTNiYy4uMDEwYmM1YTZkNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3Nl dHRpbmdzLmgKKysrIGIvc3JjL2Jpbi9wc3FsL3NldHRpbmdzLmgKQEAgLTEzNyw2ICsxMzcs NyBAQCB0eXBlZGVmIHN0cnVjdCBfcHNxbFNldHRpbmdzCiAJYm9vbAkJcXVpZXQ7CiAJYm9v bAkJc2luZ2xlbGluZTsKIAlib29sCQlzaW5nbGVzdGVwOworCWJvb2wJCWhpZGVfY29sdW1u X2VuY3J5cHRpb247CiAJYm9vbAkJaGlkZV9jb21wcmVzc2lvbjsKIAlib29sCQloaWRlX3Rh YmxlYW07CiAJaW50CQkJZmV0Y2hfY291bnQ7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv c3RhcnR1cC5jIGIvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYwppbmRleCA1YTI4YjZmNzEzLi42 NzM2NTA1YzNhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvc3RhcnR1cC5jCisrKyBiL3Ny Yy9iaW4vcHNxbC9zdGFydHVwLmMKQEAgLTExODgsNiArMTE4OCwxMyBAQCBoaWRlX2NvbXBy ZXNzaW9uX2hvb2soY29uc3QgY2hhciAqbmV3dmFsKQogCQkJCQkJCSAmcHNldC5oaWRlX2Nv bXByZXNzaW9uKTsKIH0KIAorc3RhdGljIGJvb2wKK2hpZGVfY29sdW1uX2VuY3J5cHRpb25f aG9vayhjb25zdCBjaGFyICpuZXd2YWwpCit7CisJcmV0dXJuIFBhcnNlVmFyaWFibGVCb29s KG5ld3ZhbCwgIkhJREVfQ09MVU1OX0VOQ1JZUFRJT04iLAorCQkJCQkJCSAmcHNldC5oaWRl X2NvbHVtbl9lbmNyeXB0aW9uKTsKK30KKwogc3RhdGljIGJvb2wKIGhpZGVfdGFibGVhbV9o b29rKGNvbnN0IGNoYXIgKm5ld3ZhbCkKIHsKQEAgLTEyNTksNiArMTI2Niw5IEBAIEVzdGFi bGlzaFZhcmlhYmxlU3BhY2Uodm9pZCkKIAlTZXRWYXJpYWJsZUhvb2tzKHBzZXQudmFycywg IlNIT1dfQ09OVEVYVCIsCiAJCQkJCSBzaG93X2NvbnRleHRfc3Vic3RpdHV0ZV9ob29rLAog CQkJCQkgc2hvd19jb250ZXh0X2hvb2spOworCVNldFZhcmlhYmxlSG9va3MocHNldC52YXJz LCAiSElERV9DT0xVTU5fRU5DUllQVElPTiIsCisJCQkJCSBib29sX3N1YnN0aXR1dGVfaG9v aywKKwkJCQkJIGhpZGVfY29sdW1uX2VuY3J5cHRpb25faG9vayk7CiAJU2V0VmFyaWFibGVI b29rcyhwc2V0LnZhcnMsICJISURFX1RPQVNUX0NPTVBSRVNTSU9OIiwKIAkJCQkJIGJvb2xf c3Vic3RpdHV0ZV9ob29rLAogCQkJCQkgaGlkZV9jb21wcmVzc2lvbl9ob29rKTsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuYwppbmRleCA1ZTE4ODJlYWVhLi43MmFkZDY0NzczIDEwMDY0NAotLS0gYS9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5jCkBAIC05MzMsNiArOTMzLDIwIEBAIHN0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBR dWVyeV9mb3JfbGlzdF9vZl9jb2xsYXRpb25zID0gewogCS5yZXN1bHQgPSAiYy5jb2xsbmFt ZSIsCiB9OwogCitzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX2xpc3Rfb2Zf Y2VrcyA9IHsKKwkuY2F0bmFtZSA9ICJwZ19jYXRhbG9nLnBnX2NvbGVuY2tleSBjIiwKKwku dmlzY29uZGl0aW9uID0gInBnX2NhdGFsb2cucGdfY2VrX2lzX3Zpc2libGUoYy5vaWQpIiwK KwkubmFtZXNwYWNlID0gImMuY2VrbmFtZXNwYWNlIiwKKwkucmVzdWx0ID0gImMuY2VrbmFt ZSIsCit9OworCitzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX2xpc3Rfb2Zf Y21rcyA9IHsKKwkuY2F0bmFtZSA9ICJwZ19jYXRhbG9nLnBnX2NvbG1hc3RlcmtleSBjIiwK KwkudmlzY29uZGl0aW9uID0gInBnX2NhdGFsb2cucGdfY21rX2lzX3Zpc2libGUoYy5vaWQp IiwKKwkubmFtZXNwYWNlID0gImMuY21rbmFtZXNwYWNlIiwKKwkucmVzdWx0ID0gImMuY21r bmFtZSIsCit9OworCiBzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX3BhcnRp dGlvbl9vZl90YWJsZSA9IHsKIAkuY2F0bmFtZSA9ICJwZ19jYXRhbG9nLnBnX2NsYXNzIGMx LCBwZ19jYXRhbG9nLnBnX2NsYXNzIGMyLCBwZ19jYXRhbG9nLnBnX2luaGVyaXRzIGkiLAog CS5zZWxjb25kaXRpb24gPSAiYzEub2lkPWkuaW5ocGFyZW50IGFuZCBpLmluaHJlbGlkPWMy Lm9pZCBhbmQgYzIucmVsaXNwYXJ0aXRpb24iLApAQCAtMTIyMyw2ICsxMjM3LDggQEAgc3Rh dGljIGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJeyJD QVNUIiwgTlVMTCwgTlVMTCwgTlVMTH0sIC8qIENhc3RzIGhhdmUgY29tcGxleCBzdHJ1Y3R1 cmVzIGZvciBuYW1lcywgc28KIAkJCQkJCQkJICogc2tpcCBpdCAqLwogCXsiQ09MTEFUSU9O IiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX2NvbGxhdGlvbnN9LAorCXsiQ09M VU1OIEVOQ1JZUFRJT04gS0VZIiwgTlVMTCwgTlVMTCwgTlVMTH0sCisJeyJDT0xVTU4gTUFT VEVSIEtFWSBLRVkiLCBOVUxMLCBOVUxMLCBOVUxMfSwKIAogCS8qCiAJICogQ1JFQVRFIENP TlNUUkFJTlQgVFJJR0dFUiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUgYmVjYXVzZSBpdCBpcyBk ZXNpZ25lZApAQCAtMTcwNSw3ICsxNzIxLDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNo YXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJIlxcY29ubmVjdCIsICJcXGNvbm5p bmZvIiwgIlxcQyIsICJcXGNkIiwgIlxcY29weSIsCiAJCSJcXGNvcHlyaWdodCIsICJcXGNy b3NzdGFidmlldyIsCiAJCSJcXGQiLCAiXFxkYSIsICJcXGRBIiwgIlxcZEFjIiwgIlxcZEFm IiwgIlxcZEFvIiwgIlxcZEFwIiwKLQkJIlxcZGIiLCAiXFxkYyIsICJcXGRjb25maWciLCAi XFxkQyIsICJcXGRkIiwgIlxcZGRwIiwgIlxcZEQiLAorCQkiXFxkYiIsICJcXGRjIiwgIlxc ZGNlayIsICJcXGRjbWsiLCAiXFxkY29uZmlnIiwgIlxcZEMiLCAiXFxkZCIsICJcXGRkcCIs ICJcXGREIiwKIAkJIlxcZGVzIiwgIlxcZGV0IiwgIlxcZGV1IiwgIlxcZGV3IiwgIlxcZEUi LCAiXFxkZiIsCiAJCSJcXGRGIiwgIlxcZEZkIiwgIlxcZEZwIiwgIlxcZEZ0IiwgIlxcZGci LCAiXFxkaSIsICJcXGRsIiwgIlxcZEwiLAogCQkiXFxkbSIsICJcXGRuIiwgIlxcZG8iLCAi XFxkTyIsICJcXGRwIiwgIlxcZFAiLCAiXFxkUGkiLCAiXFxkUHQiLApAQCAtMTk1Miw2ICsx OTY4LDIyIEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQs IGludCBlbmQpCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiQ09MTEFUSU9OIiwgTWF0 Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIsICJSRUZSRVNIIFZFUlNJT04i LCAiUkVOQU1FIFRPIiwgIlNFVCBTQ0hFTUEiKTsKIAorCS8qIEFMVEVSL0RST1AgQ09MVU1O IEVOQ1JZUFRJT04gS0VZICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVJ8RFJPUCIsICJD T0xVTU4iLCAiRU5DUllQVElPTiIsICJLRVkiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFf UVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfY2Vrcyk7CisKKwkvKiBBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJDT0xVTU4iLCAi RU5DUllQVElPTiIsICJLRVkiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkFERCBW QUxVRSAoIiwgIkRST1AgVkFMVUUgKCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiU0VU IFNDSEVNQSIpOworCisJLyogQUxURVIvRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSAqLworCWVs c2UgaWYgKE1hdGNoZXMoIkFMVEVSfERST1AiLCAiQ09MVU1OIiwgIk1BU1RFUiIsICJLRVki KSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfY21r cyk7CisKKwkvKiBBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSAqLworCWVsc2UgaWYgKE1hdGNo ZXMoIkFMVEVSIiwgIkNPTFVNTiIsICJNQVNURVIiLCAiS0VZIiwgTWF0Y2hBbnkpKQorCQlD T01QTEVURV9XSVRIKCIoIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJTRVQgU0NIRU1B Iik7CisKIAkvKiBBTFRFUiBDT05WRVJTSU9OIDxuYW1lPiAqLwogCWVsc2UgaWYgKE1hdGNo ZXMoIkFMVEVSIiwgIkNPTlZFUlNJT04iLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgo Ik9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJTRVQgU0NIRU1BIik7CkBAIC0yODk0LDYgKzI5 MjYsMjYgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwg aW50IGVuZCkKIAkJCUNPTVBMRVRFX1dJVEgoInRydWUiLCAiZmFsc2UiKTsKIAl9CiAKKwkv KiBDUkVBVEUvQUxURVIvRFJPUCBDT0xVTU4gLi4uIEtFWSAqLworCWVsc2UgaWYgKE1hdGNo ZXMoIkNSRUFURXxBTFRFUnxEUk9QIiwgIkNPTFVNTiIpKQorCQlDT01QTEVURV9XSVRIKCJF TkNSWVBUSU9OIiwgIk1BU1RFUiIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURXxBTFRF UnxEUk9QIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OfE1BU1RFUiIpKQorCQlDT01QTEVURV9X SVRIKCJLRVkiKTsKKworCS8qIENSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgKi8KKwll bHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MVU1OIiwgIkVOQ1JZUFRJT04iLCAiS0VZ IiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJXSVRIIik7CisJZWxzZSBpZiAoTWF0 Y2hlcygiQ1JFQVRFIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OIiwgIktFWSIsIE1hdGNoQW55 LCAiV0lUSCIpKQorCQlDT01QTEVURV9XSVRIKCJWQUxVRVMiKTsKKwllbHNlIGlmIChNYXRj aGVzKCJDUkVBVEUiLCAiQ09MVU1OIiwgIkVOQ1JZUFRJT04iLCAiS0VZIiwgTWF0Y2hBbnks ICJXSVRIIiwgIlZBTFVFUyIpKQorCQlDT01QTEVURV9XSVRIKCIoIik7CisKKwkvKiBDUkVB VEUgQ09MVU1OIE1BU1RFUiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAi Q09MVU1OIiwgIk1BU1RFUiIsICJLRVkiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgo IldJVEgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MVU1OIiwgIk1BU1RF UiIsICJLRVkiLCBNYXRjaEFueSwgIldJVEgiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCIpOwor CiAJLyogQ1JFQVRFIERBVEFCQVNFICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwg IkRBVEFCQVNFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJPV05FUiIsICJURU1Q TEFURSIsICJFTkNPRElORyIsICJUQUJMRVNQQUNFIiwKQEAgLTM2MTksNiArMzY3MSw3IEBA IHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQp CiAJCQkgTWF0Y2hlcygiRFJPUCIsICJBQ0NFU1MiLCAiTUVUSE9EIiwgTWF0Y2hBbnkpIHx8 CiAJCQkgKE1hdGNoZXMoIkRST1AiLCAiQUdHUkVHQVRFfEZVTkNUSU9OfFBST0NFRFVSRXxS T1VUSU5FIiwgTWF0Y2hBbnksIE1hdGNoQW55KSAmJgogCQkJICBlbmRzX3dpdGgocHJldl93 ZCwgJyknKSkgfHwKKwkJCSBNYXRjaGVzKCJEUk9QIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9O fE1BU1RFUiIsICJLRVkiLCBNYXRjaEFueSkgfHwKIAkJCSBNYXRjaGVzKCJEUk9QIiwgIkVW RU5UIiwgIlRSSUdHRVIiLCBNYXRjaEFueSkgfHwKIAkJCSBNYXRjaGVzKCJEUk9QIiwgIkZP UkVJR04iLCAiREFUQSIsICJXUkFQUEVSIiwgTWF0Y2hBbnkpIHx8CiAJCQkgTWF0Y2hlcygi RFJPUCIsICJGT1JFSUdOIiwgIlRBQkxFIiwgTWF0Y2hBbnkpIHx8CkBAIC0zOTMxLDYgKzM5 ODQsOCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBp bnQgZW5kKQogCQkJCQkJCQkJCQkiQUxMIFJPVVRJTkVTIElOIFNDSEVNQSIsCiAJCQkJCQkJ CQkJCSJBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSIsCiAJCQkJCQkJCQkJCSJBTEwgVEFCTEVT IElOIFNDSEVNQSIsCisJCQkJCQkJCQkJCSJDT0xVTU4gRU5DUllQVElPTiBLRVkiLAorCQkJ CQkJCQkJCQkiQ09MVU1OIE1BU1RFUiBLRVkiLAogCQkJCQkJCQkJCQkiREFUQUJBU0UiLAog CQkJCQkJCQkJCQkiRE9NQUlOIiwKIAkJCQkJCQkJCQkJIkZPUkVJR04gREFUQSBXUkFQUEVS IiwKQEAgLTQwNDYsNiArNDEwMSwxNiBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAq dGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkJQ09NUExFVEVfV0lUSCgiRlJPTSIpOwog CX0KIAorCS8qIENvbXBsZXRlICJHUkFOVC9SRVZPS0UgKiBPTiBDT0xVTU4gRU5DUllQVElP TnxNQVNURVIgS0VZICoiIHdpdGggVE8vRlJPTSAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVz KCJHUkFOVHxSRVZPS0UiLCBNYXRjaEFueSwgIk9OIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9O fE1BU1RFUiIsICJLRVkiLCBNYXRjaEFueSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygiUkVWT0tF IiwgIkdSQU5UIiwgIk9QVElPTiIsICJGT1IiLCBNYXRjaEFueSwgIk9OIiwgIkNPTFVNTiIs ICJFTkNSWVBUSU9OfE1BU1RFUiIsICJLRVkiLCBNYXRjaEFueSkpCisJeworCQlpZiAoVGFp bE1hdGNoZXMoIkdSQU5UIiwgTWF0Y2hBbnksIE1hdGNoQW55LCBNYXRjaEFueSwgTWF0Y2hB bnksIE1hdGNoQW55LCBNYXRjaEFueSkpCisJCQlDT01QTEVURV9XSVRIKCJUTyIpOworCQll bHNlCisJCQlDT01QTEVURV9XSVRIKCJGUk9NIik7CisJfQorCiAJLyogQ29tcGxldGUgIkdS QU5UL1JFVk9LRSAqIE9OIEZPUkVJR04gREFUQSBXUkFQUEVSICoiIHdpdGggVE8vRlJPTSAq LwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVHxSRVZPS0UiLCBNYXRjaEFueSwgIk9O IiwgIkZPUkVJR04iLCAiREFUQSIsICJXUkFQUEVSIiwgTWF0Y2hBbnkpIHx8CiAJCQkgVGFp bE1hdGNoZXMoIlJFVk9LRSIsICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnks ICJPTiIsICJGT1JFSUdOIiwgIkRBVEEiLCAiV1JBUFBFUiIsIE1hdGNoQW55KSkKZGlmZiAt LWdpdCBhL3NyYy9jb21tb24vTWFrZWZpbGUgYi9zcmMvY29tbW9uL01ha2VmaWxlCmluZGV4 IDExMzAyOWJmN2IuLjczZGNlMTE1MGUgMTAwNjQ0Ci0tLSBhL3NyYy9jb21tb24vTWFrZWZp bGUKKysrIGIvc3JjL2NvbW1vbi9NYWtlZmlsZQpAQCAtNDksNiArNDksNyBAQCBPQkpTX0NP TU1PTiA9IFwKIAlhcmNoaXZlLm8gXAogCWJhc2U2NC5vIFwKIAljaGVja3N1bV9oZWxwZXIu byBcCisJY29sZW5jLm8gXAogCWNvbXByZXNzaW9uLm8gXAogCWNvbmZpZ19pbmZvLm8gXAog CWNvbnRyb2xkYXRhX3V0aWxzLm8gXApkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9jb2xlbmMu YyBiL3NyYy9jb21tb24vY29sZW5jLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMC4uODZjNzM1ODc4ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb21tb24vY29s ZW5jLmMKQEAgLTAsMCArMSwxMDQgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAq IGNvbGVuYy5jCisgKgorICogU2hhcmVkIGNvZGUgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGFs Z29yaXRobXMuCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjMsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICogSURFTlRJRklDQVRJ T04KKyAqCQkgIHNyYy9jb21tb24vY29sZW5jLmMKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICovCisKKyNpZm5kZWYgRlJPTlRFTkQKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorI2Vsc2UK KyNpbmNsdWRlICJwb3N0Z3Jlc19mZS5oIgorI2VuZGlmCisKKyNpbmNsdWRlICJjb21tb24v Y29sZW5jLmgiCisKK2ludAorZ2V0X2Nta2FsZ19udW0oY29uc3QgY2hhciAqbmFtZSkKK3sK KwlpZiAoc3RyY21wKG5hbWUsICJ1bnNwZWNpZmllZCIpID09IDApCisJCXJldHVybiBQR19D TUtfVU5TUEVDSUZJRUQ7CisJZWxzZSBpZiAoc3RyY21wKG5hbWUsICJSU0FFU19PQUVQX1NI QV8xIikgPT0gMCkKKwkJcmV0dXJuIFBHX0NNS19SU0FFU19PQUVQX1NIQV8xOworCWVsc2Ug aWYgKHN0cmNtcChuYW1lLCAiUlNBRVNfT0FFUF9TSEFfMjU2IikgPT0gMCkKKwkJcmV0dXJu IFBHX0NNS19SU0FFU19PQUVQX1NIQV8yNTY7CisJZWxzZQorCQlyZXR1cm4gMDsKK30KKwor Y29uc3QgY2hhciAqCitnZXRfY21rYWxnX25hbWUoaW50IG51bSkKK3sKKwlzd2l0Y2ggKG51 bSkKKwl7CisJCWNhc2UgUEdfQ01LX1VOU1BFQ0lGSUVEOgorCQkJcmV0dXJuICJ1bnNwZWNp ZmllZCI7CisJCWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzE6CisJCQlyZXR1cm4gIlJT QUVTX09BRVBfU0hBXzEiOworCQljYXNlIFBHX0NNS19SU0FFU19PQUVQX1NIQV8yNTY6CisJ CQlyZXR1cm4gIlJTQUVTX09BRVBfU0hBXzI1NiI7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9 CisKKy8qCisgKiBKU09OIFdlYiBBbGdvcml0aG1zIChKV0EpIG5hbWVzIChSRkMgNzUxOCkK KyAqCisgKiBUaGlzIGlzIHVzZWZ1bCBmb3Igc29tZSBrZXkgbWFuYWdlbWVudCBzeXN0ZW1z IHRoYXQgdXNlIHRoZXNlIG5hbWVzCisgKiBuYXRpdmVseS4KKyAqLworY29uc3QgY2hhciAq CitnZXRfY21rYWxnX2p3YV9uYW1lKGludCBudW0pCit7CisJc3dpdGNoIChudW0pCisJewor CQljYXNlIFBHX0NNS19VTlNQRUNJRklFRDoKKwkJCXJldHVybiBOVUxMOworCQljYXNlIFBH X0NNS19SU0FFU19PQUVQX1NIQV8xOgorCQkJcmV0dXJuICJSU0EtT0FFUCI7CisJCWNhc2Ug UEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NjoKKwkJCXJldHVybiAiUlNBLU9BRVAtMjU2IjsK Kwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworaW50CitnZXRfY2VrYWxnX251bShjb25zdCBj aGFyICpuYW1lKQoreworCWlmIChzdHJjbXAobmFtZSwgIkFFQURfQUVTXzEyOF9DQkNfSE1B Q19TSEFfMjU2IikgPT0gMCkKKwkJcmV0dXJuIFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hN QUNfU0hBXzI1NjsKKwllbHNlIGlmIChzdHJjbXAobmFtZSwgIkFFQURfQUVTXzE5Ml9DQkNf SE1BQ19TSEFfMzg0IikgPT0gMCkKKwkJcmV0dXJuIFBHX0NFS19BRUFEX0FFU18xOTJfQ0JD X0hNQUNfU0hBXzM4NDsKKwllbHNlIGlmIChzdHJjbXAobmFtZSwgIkFFQURfQUVTXzI1Nl9D QkNfSE1BQ19TSEFfMzg0IikgPT0gMCkKKwkJcmV0dXJuIFBHX0NFS19BRUFEX0FFU18yNTZf Q0JDX0hNQUNfU0hBXzM4NDsKKwllbHNlIGlmIChzdHJjbXAobmFtZSwgIkFFQURfQUVTXzI1 Nl9DQkNfSE1BQ19TSEFfNTEyIikgPT0gMCkKKwkJcmV0dXJuIFBHX0NFS19BRUFEX0FFU18y NTZfQ0JDX0hNQUNfU0hBXzUxMjsKKwllbHNlCisJCXJldHVybiAwOworfQorCitjb25zdCBj aGFyICoKK2dldF9jZWthbGdfbmFtZShpbnQgbnVtKQoreworCXN3aXRjaCAobnVtKQorCXsK KwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY6CisJCQlyZXR1 cm4gIkFFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2IjsKKwkJY2FzZSBQR19DRUtfQUVB RF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQ6CisJCQlyZXR1cm4gIkFFQURfQUVTXzE5Ml9D QkNfSE1BQ19TSEFfMzg0IjsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFD X1NIQV8zODQ6CisJCQlyZXR1cm4gIkFFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0IjsK KwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTI6CisJCQlyZXR1 cm4gIkFFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEyIjsKKwl9CisKKwlyZXR1cm4gTlVM TDsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vbWVzb24uYnVpbGQgYi9zcmMvY29tbW9u L21lc29uLmJ1aWxkCmluZGV4IDQxYmQ1OGViZGYuLjM2OTVkMzI4NWIgMTAwNjQ0Ci0tLSBh L3NyYy9jb21tb24vbWVzb24uYnVpbGQKKysrIGIvc3JjL2NvbW1vbi9tZXNvbi5idWlsZApA QCAtNCw2ICs0LDcgQEAgY29tbW9uX3NvdXJjZXMgPSBmaWxlcygKICAgJ2FyY2hpdmUuYycs CiAgICdiYXNlNjQuYycsCiAgICdjaGVja3N1bV9oZWxwZXIuYycsCisgICdjb2xlbmMuYycs CiAgICdjb21wcmVzc2lvbi5jJywKICAgJ2NvbnRyb2xkYXRhX3V0aWxzLmMnLAogICAnZW5j bmFtZXMuYycsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0dXAuaCBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9wcmludHR1cC5oCmluZGV4IDc0N2VjYjgwMGQuLmQxOTkw MzM2NTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9wcmludHR1cC5oCisrKyBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9wcmludHR1cC5oCkBAIC0yMCw2ICsyMCw4IEBAIGV4dGVy biBEZXN0UmVjZWl2ZXIgKnByaW50dHVwX2NyZWF0ZV9EUihDb21tYW5kRGVzdCBkZXN0KTsK IAogZXh0ZXJuIHZvaWQgU2V0UmVtb3RlRGVzdFJlY2VpdmVyUGFyYW1zKERlc3RSZWNlaXZl ciAqc2VsZiwgUG9ydGFsIHBvcnRhbCk7CiAKK2V4dGVybiB2b2lkIE1heWJlU2VuZENvbHVt bkVuY3J5cHRpb25LZXlNZXNzYWdlKE9pZCBhdHRjZWspOworCiBleHRlcm4gdm9pZCBTZW5k Um93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0luZm8gYnVmLAogCQkJCQkJCQkJICBUdXBs ZURlc2MgdHlwZWluZm8sIExpc3QgKnRhcmdldGxpc3QsIGludDE2ICpmb3JtYXRzKTsKIApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9kZXBlbmRlbmN5LmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL2RlcGVuZGVuY3kuaAppbmRleCBmZmQ1ZTlkYzgyLi5lYjU5ZTczYzBh IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2RlcGVuZGVuY3kuaAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL2RlcGVuZGVuY3kuaApAQCAtOTIsNiArOTIsOSBAQCB0eXBl ZGVmIGVudW0gT2JqZWN0Q2xhc3MKIAlPQ0xBU1NfVFlQRSwJCQkJLyogcGdfdHlwZSAqLwog CU9DTEFTU19DQVNULAkJCQkvKiBwZ19jYXN0ICovCiAJT0NMQVNTX0NPTExBVElPTiwJCQkv KiBwZ19jb2xsYXRpb24gKi8KKwlPQ0xBU1NfQ0VLLAkJCQkJLyogcGdfY29sZW5ja2V5ICov CisJT0NMQVNTX0NFS0RBVEEsCQkJCS8qIHBnX2NvbGVuY2tleWRhdGEgKi8KKwlPQ0xBU1Nf Q01LLAkJCQkJLyogcGdfY29sbWFzdGVya2V5ICovCiAJT0NMQVNTX0NPTlNUUkFJTlQsCQkJ LyogcGdfY29uc3RyYWludCAqLwogCU9DTEFTU19DT05WRVJTSU9OLAkJCS8qIHBnX2NvbnZl cnNpb24gKi8KIAlPQ0xBU1NfREVGQVVMVCwJCQkJLyogcGdfYXR0cmRlZiAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9n L2hlYXAuaAppbmRleCBkMDFhYjUwNGI2Li43NTg2OTZiNTM5IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL2hlYXAuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAu aApAQCAtMjMsNiArMjMsNyBAQAogI2RlZmluZSBDSEtBVFlQRV9BTllBUlJBWQkJMHgwMQkv KiBhbGxvdyBBTllBUlJBWSAqLwogI2RlZmluZSBDSEtBVFlQRV9BTllSRUNPUkQJCTB4MDIJ LyogYWxsb3cgUkVDT1JEIGFuZCBSRUNPUkRbXSAqLwogI2RlZmluZSBDSEtBVFlQRV9JU19Q QVJUS0VZCQkweDA0CS8qIGF0dG5hbWUgaXMgcGFydCBrZXkgIyBub3QgY29sdW1uICovCisj ZGVmaW5lIENIS0FUWVBFX0VOQ1JZUFRFRAkJMHgwOAkvKiBhbGxvdyBpbnRlcm5hbCBlbmNy eXB0ZWQgdHlwZXMgKi8KIAogdHlwZWRlZiBzdHJ1Y3QgUmF3Q29sdW1uRGVmYXVsdAogewpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggMzE3OWJlMDlkMy4uOWUyYzUyNTZmNyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC02NSw2ICs2NSw5IEBAIGNhdGFsb2df aGVhZGVycyA9IFsKICAgJ3BnX3B1YmxpY2F0aW9uX3JlbC5oJywKICAgJ3BnX3N1YnNjcmlw dGlvbi5oJywKICAgJ3BnX3N1YnNjcmlwdGlvbl9yZWwuaCcsCisgICdwZ19jb2xtYXN0ZXJr ZXkuaCcsCisgICdwZ19jb2xlbmNrZXkuaCcsCisgICdwZ19jb2xlbmNrZXlkYXRhLmgnLAog XQogCiBia2lfZGF0YSA9IFsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IGY2NGEw ZWMyNmIuLmQwYjllODQ1OGQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaApAQCAtMTE1 LDYgKzExNSwxMiBAQCBleHRlcm4gYm9vbCBPcGNsYXNzSXNWaXNpYmxlKE9pZCBvcGNpZCk7 CiBleHRlcm4gT2lkCU9wZmFtaWx5bmFtZUdldE9wZmlkKE9pZCBhbWlkLCBjb25zdCBjaGFy ICpvcGZuYW1lKTsKIGV4dGVybiBib29sIE9wZmFtaWx5SXNWaXNpYmxlKE9pZCBvcGZpZCk7 CiAKK2V4dGVybiBPaWQJZ2V0X2Nla19vaWQoTGlzdCAqbmFtZXMsIGJvb2wgbWlzc2luZ19v ayk7CitleHRlcm4gYm9vbCBDRUtJc1Zpc2libGUoT2lkIGNla2lkKTsKKworZXh0ZXJuIE9p ZAlnZXRfY21rX29pZChMaXN0ICpuYW1lcywgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBi b29sIENNS0lzVmlzaWJsZShPaWQgY21raWQpOworCiBleHRlcm4gT2lkCUNvbGxhdGlvbkdl dENvbGxpZChjb25zdCBjaGFyICpjb2xsbmFtZSk7CiBleHRlcm4gYm9vbCBDb2xsYXRpb25J c1Zpc2libGUoT2lkIGNvbGxpZCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfYW1vcC5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ftb3AuZGF0CmluZGV4 IGM0ZDZhZGNkM2UuLmM1OGI3OWUzYTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfYW1vcC5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdApA QCAtMTAyOCw2ICsxMDI4LDExIEBACiAgIGFtb3ByaWdodHR5cGUgPT4gJ2J5dGVhJywgYW1v cHN0cmF0ZWd5ID0+ICcxJywgYW1vcG9wciA9PiAnPShieXRlYSxieXRlYSknLAogICBhbW9w bWV0aG9kID0+ICdoYXNoJyB9LAogCisjIHBnX2VuY3J5cHRlZF9kZXRfb3BzCit7IGFtb3Bm YW1pbHkgPT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2RldF9vcHMnLCBhbW9wbGVmdHR5cGUgPT4g J3BnX2VuY3J5cHRlZF9kZXQnLAorICBhbW9wcmlnaHR0eXBlID0+ICdwZ19lbmNyeXB0ZWRf ZGV0JywgYW1vcHN0cmF0ZWd5ID0+ICcxJywgYW1vcG9wciA9PiAnPShwZ19lbmNyeXB0ZWRf ZGV0LHBnX2VuY3J5cHRlZF9kZXQpJywKKyAgYW1vcG1ldGhvZCA9PiAnaGFzaCcgfSwKKwog IyB4aWRfb3BzCiB7IGFtb3BmYW1pbHkgPT4gJ2hhc2gveGlkX29wcycsIGFtb3BsZWZ0dHlw ZSA9PiAneGlkJywgYW1vcHJpZ2h0dHlwZSA9PiAneGlkJywKICAgYW1vcHN0cmF0ZWd5ID0+ ICcxJywgYW1vcG9wciA9PiAnPSh4aWQseGlkKScsIGFtb3BtZXRob2QgPT4gJ2hhc2gnIH0s CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKaW5kZXggNWI5NTAxMjlkZS4uMGU5ZTg1 ZWJmMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0Cisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdApAQCAtNDAyLDYgKzQwMiwx MSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvYnl0ZWFfb3BzJywgYW1wcm9jbGVmdHR5 cGUgPT4gJ2J5dGVhJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdieXRlYScsIGFtcHJvY251 bSA9PiAnMicsCiAgIGFtcHJvYyA9PiAnaGFzaHZhcmxlbmFleHRlbmRlZCcgfSwKK3sgYW1w cm9jZmFtaWx5ID0+ICdoYXNoL3BnX2VuY3J5cHRlZF9kZXRfb3BzJywgYW1wcm9jbGVmdHR5 cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ3BnX2Vu Y3J5cHRlZF9kZXQnLCBhbXByb2NudW0gPT4gJzEnLCBhbXByb2MgPT4gJ2hhc2h2YXJsZW5h JyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2RldF9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIGFtcHJvY251bSA9PiAnMicsCisgIGFtcHJvYyA9 PiAnaGFzaHZhcmxlbmFleHRlbmRlZCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdoYXNoL3hp ZF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAneGlkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ ICd4aWQnLCBhbXByb2NudW0gPT4gJzEnLCBhbXByb2MgPT4gJ2hhc2hpbnQ0JyB9LAogeyBh bXByb2NmYW1pbHkgPT4gJ2hhc2gveGlkX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd4aWQn LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKaW5kZXggYjU2MWUxNzc4MS4uNzkx MDE3NWE2YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUu aAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oCkBAIC0xNjQsNiAr MTY0LDE3IEBAIENBVEFMT0cocGdfYXR0cmlidXRlLDEyNDksQXR0cmlidXRlUmVsYXRpb25J ZCkgQktJX0JPT1RTVFJBUCBCS0lfUk9XVFlQRV9PSUQoNzUsCiAJICovCiAJYm9vbAkJYXR0 aXNsb2NhbCBCS0lfREVGQVVMVCh0KTsKIAorCS8qIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAq LworCU9pZAkJCWF0dGNlayBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ19jb2xl bmNrZXkpOworCisJLyoKKwkgKiBVc2VyLXZpc2libGUgdHlwZSBhbmQgdHlwbW9kLCBjdXJy ZW50bHkgdXNlZCBmb3IgZW5jcnlwdGVkIGNvbHVtbnMuCisJICogVGhlc2UgYXJlIG9ubHkg c2V0IHRvIG5vbmRlZmF1bHQgdmFsdWVzIGlmIHRoZXkgYXJlIGRpZmZlcmVudCBmcm9tCisJ ICogYXR0dHlwaWQgYW5kIGF0dHlwbW9kLgorCSAqLworCU9pZAkJCWF0dHVzZXJ0eXBpZCBC S0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ190eXBlKTsKKwlpbnQzMgkJYXR0dXNl cnR5cG1vZCBCS0lfREVGQVVMVCgtMSk7CisKIAkvKiBOdW1iZXIgb2YgdGltZXMgaW5oZXJp dGVkIGZyb20gZGlyZWN0IHBhcmVudCByZWxhdGlvbihzKSAqLwogCWludDMyCQlhdHRpbmhj b3VudCBCS0lfREVGQVVMVCgwKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19jb2xlbmNrZXkuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmgK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzU3ZmExOGEyNwotLS0g L2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmgKQEAg LTAsMCArMSw0NiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfY29sZW5j a2V5LmgKKyAqCSAgZGVmaW5pdGlvbiBvZiB0aGUgImNvbHVtbiBlbmNyeXB0aW9uIGtleSIg c3lzdGVtIGNhdGFsb2cKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAy MywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9y bmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmtleS5oCisgKgorICog Tk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQg ZGVyaXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKi8KKyNpZm5kZWYgUEdfQ09MRU5DS0VZX0gKKyNkZWZpbmUgUEdfQ09MRU5D S0VZX0gKKworI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jb2xlbmNrZXlfZC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfY29s ZW5ja2V5IGRlZmluaXRpb24uIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0 cnVjdCBGb3JtRGF0YV9wZ19jb2xlbmNrZXkKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwor Q0FUQUxPRyhwZ19jb2xlbmNrZXksODIzNCxDb2x1bW5FbmNLZXlSZWxhdGlvbklkKQorewor CU9pZAkJCW9pZDsKKwlOYW1lRGF0YQljZWtuYW1lOworCU9pZAkJCWNla25hbWVzcGFjZSBC S0lfREVGQVVMVChwZ19jYXRhbG9nKSBCS0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7CisJT2lk CQkJY2Vrb3duZXIgQktJX0xPT0tVUChwZ19hdXRoaWQpOworI2lmZGVmIENBVEFMT0dfVkFS TEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCisJYWNsaXRl bQkJY2VrYWNsWzFdIEJLSV9ERUZBVUxUKF9udWxsXyk7CisjZW5kaWYKK30gRm9ybURhdGFf cGdfY29sZW5ja2V5OworCit0eXBlZGVmIEZvcm1EYXRhX3BnX2NvbGVuY2tleSAqRm9ybV9w Z19jb2xlbmNrZXk7CisKK0RFQ0xBUkVfVE9BU1QocGdfY29sZW5ja2V5LCA4MjYzLCA4MjY0 KTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19jb2xlbmNrZXlfb2lkX2luZGV4 LCA4MjQwLCBDb2x1bW5FbmNLZXlPaWRJbmRleElkLCBvbiBwZ19jb2xlbmNrZXkgdXNpbmcg YnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX2NvbGVuY2tl eV9jZWtuYW1lX25zcF9pbmRleCwgODI0MiwgQ29sdW1uRW5jS2V5TmFtZU5zcEluZGV4SWQs IG9uIHBnX2NvbGVuY2tleSB1c2luZyBidHJlZShjZWtuYW1lIG5hbWVfb3BzLCBjZWtuYW1l c3BhY2Ugb2lkX29wcykpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xl bmNrZXlkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzg4 ZTdlNjVhZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29s ZW5ja2V5ZGF0YS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICoKKyAqIHBnX2NvbGVuY2tleWRhdGEuaAorICoJICBkZWZpbml0aW9uIG9mIHRoZSAiY29s dW1uIGVuY3J5cHRpb24ga2V5IGRhdGEiIHN5c3RlbSBjYXRhbG9nCisgKgorICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjMsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2Yg dGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFs b2cvcGdfY29sZW5rZXlkYXRhLmgKKyAqCisgKiBOT1RFUworICoJICBUaGUgQ2F0YWxvZy5w bSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVtYQorICoJICBpbmZv cm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQR19D T0xFTkNLRVlEQVRBX0gKKyNkZWZpbmUgUEdfQ09MRU5DS0VZREFUQV9ICisKKyNpbmNsdWRl ICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0 YV9kLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ19jb2xlbmNrZXlkYXRhIGRl ZmluaXRpb24uIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3Jt RGF0YV9wZ19jb2xlbmNrZXlkYXRhCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFM T0cocGdfY29sZW5ja2V5ZGF0YSw4MjUwLENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkKQor eworCU9pZAkJCW9pZDsKKwlPaWQJCQlja2RjZWtpZCBCS0lfTE9PS1VQKHBnX2NvbGVuY2tl eSk7CisJT2lkCQkJY2tkY21raWQgQktJX0xPT0tVUChwZ19jb2xtYXN0ZXJrZXkpOworCWlu dDMyCQlja2RjbWthbGc7CQkvKiBQR19DTUtfKiB2YWx1ZXMgKi8KKyNpZmRlZiBDQVRBTE9H X1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLworCWJ5 dGVhCQlja2RlbmN2YWwgQktJX0ZPUkNFX05PVF9OVUxMOworI2VuZGlmCit9IEZvcm1EYXRh X3BnX2NvbGVuY2tleWRhdGE7CisKK3R5cGVkZWYgRm9ybURhdGFfcGdfY29sZW5ja2V5ZGF0 YSAqRm9ybV9wZ19jb2xlbmNrZXlkYXRhOworCitERUNMQVJFX1RPQVNUKHBnX2NvbGVuY2tl eWRhdGEsIDgyMzcsIDgyMzgpOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX2Nv bGVuY2tleWRhdGFfb2lkX2luZGV4LCA4MjUxLCBDb2x1bW5FbmNLZXlEYXRhT2lkSW5kZXhJ ZCwgb24gcGdfY29sZW5ja2V5ZGF0YSB1c2luZyBidHJlZShvaWQgb2lkX29wcykpOworREVD TEFSRV9VTklRVUVfSU5ERVgocGdfY29sZW5ja2V5ZGF0YV9ja2RjZWtpZF9ja2RjbWtpZF9p bmRleCwgODI1MiwgQ29sdW1uRW5jS2V5Q2VraWRDbWtpZEluZGV4SWQsIG9uIHBnX2NvbGVu Y2tleWRhdGEgdXNpbmcgYnRyZWUoY2tkY2VraWQgb2lkX29wcywgY2tkY21raWQgb2lkX29w cykpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29s bWFzdGVya2V5LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQzYmZkMzYyNzkKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oCkBA IC0wLDAgKzEsNDcgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX2NvbG1h c3RlcmtleS5oCisgKgkgIGRlZmluaXRpb24gb2YgdGhlICJjb2x1bW4gbWFzdGVyIGtleSIg c3lzdGVtIGNhdGFsb2cKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAy MywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9y bmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaAorICoK KyAqIE5PVEVTCisgKgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUg YW5kIGRlcml2ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICovCisjaWZuZGVmIFBHX0NPTE1BU1RFUktFWV9ICisjZGVmaW5lIFBH X0NPTE1BU1RFUktFWV9ICisKKyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5X2QuaCIKKworLyogLS0tLS0tLS0tLS0tLS0t LQorICoJCXBnX2NvbG1hc3RlcmtleSBkZWZpbml0aW9uLiBjcHAgdHVybnMgdGhpcyBpbnRv CisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfY29sbWFzdGVya2V5CisgKiAtLS0t LS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfY29sbWFzdGVya2V5LDgyMzMsQ29sdW1u TWFzdGVyS2V5UmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CisJTmFtZURhdGEJY21rbmFt ZTsKKwlPaWQJCQljbWtuYW1lc3BhY2UgQktJX0RFRkFVTFQocGdfY2F0YWxvZykgQktJX0xP T0tVUChwZ19uYW1lc3BhY2UpOworCU9pZAkJCWNta293bmVyIEJLSV9MT09LVVAocGdfYXV0 aGlkKTsKKyNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVs ZHMgc3RhcnQgaGVyZSAqLworCXRleHQJCWNta3JlYWxtIEJLSV9GT1JDRV9OT1RfTlVMTDsK KwlhY2xpdGVtCQljbWthY2xbMV0gQktJX0RFRkFVTFQoX251bGxfKTsKKyNlbmRpZgorfSBG b3JtRGF0YV9wZ19jb2xtYXN0ZXJrZXk7CisKK3R5cGVkZWYgRm9ybURhdGFfcGdfY29sbWFz dGVya2V5ICpGb3JtX3BnX2NvbG1hc3RlcmtleTsKKworREVDTEFSRV9UT0FTVChwZ19jb2xt YXN0ZXJrZXksIDgyMzUsIDgyMzYpOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBn X2NvbG1hc3RlcmtleV9vaWRfaW5kZXgsIDgyMzksIENvbHVtbk1hc3RlcktleU9pZEluZGV4 SWQsIG9uIHBnX2NvbG1hc3RlcmtleSB1c2luZyBidHJlZShvaWQgb2lkX29wcykpOworREVD TEFSRV9VTklRVUVfSU5ERVgocGdfY29sbWFzdGVya2V5X2Nta25hbWVfbnNwX2luZGV4LCA4 MjQxLCBDb2x1bW5NYXN0ZXJLZXlOYW1lTnNwSW5kZXhJZCwgb24gcGdfY29sbWFzdGVya2V5 IHVzaW5nIGJ0cmVlKGNta25hbWUgbmFtZV9vcHMsIGNta25hbWVzcGFjZSBvaWRfb3BzKSk7 CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNz LmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BjbGFzcy5kYXQKaW5kZXggYzg2N2Q5 OTU2My4uZmYwNmQ1MmZkMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19v cGNsYXNzLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0CkBA IC0xNjYsNiArMTY2LDggQEAKICAgb3BjaW50eXBlID0+ICdib29sJyB9LAogeyBvcGNtZXRo b2QgPT4gJ2hhc2gnLCBvcGNuYW1lID0+ICdieXRlYV9vcHMnLCBvcGNmYW1pbHkgPT4gJ2hh c2gvYnl0ZWFfb3BzJywKICAgb3BjaW50eXBlID0+ICdieXRlYScgfSwKK3sgb3BjbWV0aG9k ID0+ICdoYXNoJywgb3BjbmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldF9vcHMnLCBvcGNmYW1p bHkgPT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2RldF9vcHMnLAorICBvcGNpbnR5cGUgPT4gJ3Bn X2VuY3J5cHRlZF9kZXQnIH0sCiB7IG9wY21ldGhvZCA9PiAnYnRyZWUnLCBvcGNuYW1lID0+ ICd0aWRfb3BzJywgb3BjZmFtaWx5ID0+ICdidHJlZS90aWRfb3BzJywKICAgb3BjaW50eXBl ID0+ICd0aWQnIH0sCiB7IG9wY21ldGhvZCA9PiAnaGFzaCcsIG9wY25hbWUgPT4gJ3hpZF9v cHMnLCBvcGNmYW1pbHkgPT4gJ2hhc2gveGlkX29wcycsCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX29wZXJhdG9yLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf b3BlcmF0b3IuZGF0CmluZGV4IGIyY2RlYTY2YzQuLjExNDI3OWZhNjQgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0CisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0CkBAIC0zNDU4LDQgKzM0NTgsMTQgQEAKICAgb3By Y29kZSA9PiAnbXVsdGlyYW5nZV9hZnRlcl9tdWx0aXJhbmdlJywgb3BycmVzdCA9PiAnbXVs dGlyYW5nZXNlbCcsCiAgIG9wcmpvaW4gPT4gJ3NjYWxhcmd0am9pbnNlbCcgfSwKIAoreyBv aWQgPT4gJzgyNDcnLCBkZXNjciA9PiAnZXF1YWwnLAorICBvcHJuYW1lID0+ICc9Jywgb3By Y2FubWVyZ2UgPT4gJ2YnLCBvcHJjYW5oYXNoID0+ICd0Jywgb3BybGVmdCA9PiAncGdfZW5j cnlwdGVkX2RldCcsCisgIG9wcnJpZ2h0ID0+ICdwZ19lbmNyeXB0ZWRfZGV0Jywgb3BycmVz dWx0ID0+ICdib29sJywgb3ByY29tID0+ICc9KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlw dGVkX2RldCknLAorICBvcHJuZWdhdGUgPT4gJzw+KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5j cnlwdGVkX2RldCknLCBvcHJjb2RlID0+ICdwZ19lbmNyeXB0ZWRfZGV0X2VxJywgb3BycmVz dCA9PiAnZXFzZWwnLAorICBvcHJqb2luID0+ICdlcWpvaW5zZWwnIH0sCit7IG9pZCA9PiAn ODI0OCcsIGRlc2NyID0+ICdub3QgZXF1YWwnLAorICBvcHJuYW1lID0+ICc8PicsIG9wcmxl ZnQgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBvcHJyaWdodCA9PiAncGdfZW5jcnlwdGVkX2Rl dCcsIG9wcnJlc3VsdCA9PiAnYm9vbCcsCisgIG9wcmNvbSA9PiAnPD4ocGdfZW5jcnlwdGVk X2RldCxwZ19lbmNyeXB0ZWRfZGV0KScsIG9wcm5lZ2F0ZSA9PiAnPShwZ19lbmNyeXB0ZWRf ZGV0LHBnX2VuY3J5cHRlZF9kZXQpJywKKyAgb3ByY29kZSA9PiAncGdfZW5jcnlwdGVkX2Rl dF9uZScsIG9wcnJlc3QgPT4gJ25lcXNlbCcsIG9wcmpvaW4gPT4gJ25lcWpvaW5zZWwnIH0s CisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BmYW1pbHkuZGF0 IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQKaW5kZXggOTE1ODdiOTlk MC4uYzIxMDUyYTNmNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZh bWlseS5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQKQEAg LTEwOCw2ICsxMDgsOCBAQAogICBvcGZtZXRob2QgPT4gJ2hhc2gnLCBvcGZuYW1lID0+ICdi b29sX29wcycgfSwKIHsgb2lkID0+ICcyMjIzJywKICAgb3BmbWV0aG9kID0+ICdoYXNoJywg b3BmbmFtZSA9PiAnYnl0ZWFfb3BzJyB9LAoreyBvaWQgPT4gJzgyNDknLAorICBvcGZtZXRo b2QgPT4gJ2hhc2gnLCBvcGZuYW1lID0+ICdwZ19lbmNyeXB0ZWRfZGV0X29wcycgfSwKIHsg b2lkID0+ICcyNzg5JywKICAgb3BmbWV0aG9kID0+ICdidHJlZScsIG9wZm5hbWUgPT4gJ3Rp ZF9vcHMnIH0sCiB7IG9pZCA9PiAnMjIyNScsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApp bmRleCBlMmE3NjQyYTJiLi4wZDZlMjNjOWM5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQKQEAgLTYzNTUsNiArNjM1NSwxNCBAQAogICBwcm9uYW1lID0+ICdwZ19jb2xsYXRpb25f aXNfdmlzaWJsZScsIHByb2Nvc3QgPT4gJzEwJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBw cm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCiAgIHByb3NyYyA9 PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnIH0sCit7IG9pZCA9PiAnODI2MScsIGRlc2Ny ID0+ICdpcyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgdmlzaWJsZSBpbiBzZWFyY2ggcGF0aD8n LAorICBwcm9uYW1lID0+ICdwZ19jZWtfaXNfdmlzaWJsZScsIHByb2Nvc3QgPT4gJzEwJywg cHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlw ZXMgPT4gJ29pZCcsCisgIHByb3NyYyA9PiAncGdfY2VrX2lzX3Zpc2libGUnIH0sCit7IG9p ZCA9PiAnODI2MicsIGRlc2NyID0+ICdpcyBjb2x1bW4gbWFzdGVyIGtleSB2aXNpYmxlIGlu IHNlYXJjaCBwYXRoPycsCisgIHByb25hbWUgPT4gJ3BnX2Nta19pc192aXNpYmxlJywgcHJv Y29zdCA9PiAnMTAnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3JldHR5cGUgPT4gJ2Jv b2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvc3JjID0+ICdwZ19jbWtfaXNfdmlz aWJsZScgfSwKIAogeyBvaWQgPT4gJzI4NTQnLCBkZXNjciA9PiAnZ2V0IE9JRCBvZiBjdXJy ZW50IHNlc3Npb25cJ3MgdGVtcCBzY2hlbWEsIGlmIGFueScsCiAgIHByb25hbWUgPT4gJ3Bn X215X3RlbXBfc2NoZW1hJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAn cicsCkBAIC0xMTkzNSw0ICsxMTk0MywzNyBAQAogICBwcm9uYW1lID0+ICdhbnlfdmFsdWVf dHJhbnNmbicsIHByb3JldHR5cGUgPT4gJ2FueWVsZW1lbnQnLAogICBwcm9hcmd0eXBlcyA9 PiAnYW55ZWxlbWVudCBhbnllbGVtZW50JywgcHJvc3JjID0+ICdhbnlfdmFsdWVfdHJhbnNm bicgfSwKIAoreyBvaWQgPT4gJzgyNTMnLCBkZXNjciA9PiAnSS9PJywKKyAgcHJvbmFtZSA9 PiAncGdfZW5jcnlwdGVkX2RldF9pbicsIHByb3JldHR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9k ZXQnLCBwcm9hcmd0eXBlcyA9PiAnY3N0cmluZycsCisgIHByb3NyYyA9PiAncGdfZW5jcnlw dGVkX2luJyB9LAoreyBvaWQgPT4gJzgyNTQnLCBkZXNjciA9PiAnSS9PJywKKyAgcHJvbmFt ZSA9PiAncGdfZW5jcnlwdGVkX2RldF9vdXQnLCBwcm9yZXR0eXBlID0+ICdjc3RyaW5nJywg cHJvYXJndHlwZXMgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLAorICBwcm9zcmMgPT4gJ3BnX2Vu Y3J5cHRlZF9vdXQnIH0sCit7IG9pZCA9PiAnODI1NScsIGRlc2NyID0+ICdJL08nLAorICBw cm9uYW1lID0+ICdwZ19lbmNyeXB0ZWRfZGV0X3JlY3YnLCBwcm9yZXR0eXBlID0+ICdwZ19l bmNyeXB0ZWRfZGV0JywgcHJvYXJndHlwZXMgPT4gJ2ludGVybmFsJywKKyAgcHJvc3JjID0+ ICdwZ19lbmNyeXB0ZWRfcmVjdicgfSwKK3sgb2lkID0+ICc4MjU2JywgZGVzY3IgPT4gJ0kv TycsCisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfc2VuZCcsIHByb3JldHR5cGUg PT4gJ2J5dGVhJywgcHJvYXJndHlwZXMgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLAorICBwcm9z cmMgPT4gJ3BnX2VuY3J5cHRlZF9zZW5kJyB9LAorCit7IG9pZCA9PiAnODI1NycsIGRlc2Ny ID0+ICdJL08nLAorICBwcm9uYW1lID0+ICdwZ19lbmNyeXB0ZWRfcm5kX2luJywgcHJvcmV0 dHlwZSA9PiAncGdfZW5jcnlwdGVkX3JuZCcsIHByb2FyZ3R5cGVzID0+ICdjc3RyaW5nJywK KyAgcHJvc3JjID0+ICdwZ19lbmNyeXB0ZWRfaW4nIH0sCit7IG9pZCA9PiAnODI1OCcsIGRl c2NyID0+ICdJL08nLAorICBwcm9uYW1lID0+ICdwZ19lbmNyeXB0ZWRfcm5kX291dCcsIHBy b3JldHR5cGUgPT4gJ2NzdHJpbmcnLCBwcm9hcmd0eXBlcyA9PiAncGdfZW5jcnlwdGVkX3Ju ZCcsCisgIHByb3NyYyA9PiAncGdfZW5jcnlwdGVkX291dCcgfSwKK3sgb2lkID0+ICc4MjU5 JywgZGVzY3IgPT4gJ0kvTycsCisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9ybmRfcmVj dicsIHByb3JldHR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9ybmQnLCBwcm9hcmd0eXBlcyA9PiAn aW50ZXJuYWwnLAorICBwcm9zcmMgPT4gJ3BnX2VuY3J5cHRlZF9yZWN2JyB9LAoreyBvaWQg PT4gJzgyNjAnLCBkZXNjciA9PiAnSS9PJywKKyAgcHJvbmFtZSA9PiAncGdfZW5jcnlwdGVk X3JuZF9zZW5kJywgcHJvcmV0dHlwZSA9PiAnYnl0ZWEnLCBwcm9hcmd0eXBlcyA9PiAncGdf ZW5jcnlwdGVkX3JuZCcsCisgIHByb3NyYyA9PiAncGdfZW5jcnlwdGVkX3NlbmQnIH0sCisK K3sgb2lkID0+ICc4MjQ1JywKKyAgcHJvbmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldF9lcScs IHByb2xlYWtwcm9vZiA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0 eXBlcyA9PiAncGdfZW5jcnlwdGVkX2RldCBwZ19lbmNyeXB0ZWRfZGV0JywgcHJvc3JjID0+ ICdieXRlYWVxJyB9LAoreyBvaWQgPT4gJzgyNDYnLAorICBwcm9uYW1lID0+ICdwZ19lbmNy eXB0ZWRfZGV0X25lJywgcHJvbGVha3Byb29mID0+ICd0JywgcHJvcmV0dHlwZSA9PiAnYm9v bCcsCisgIHByb2FyZ3R5cGVzID0+ICdwZ19lbmNyeXB0ZWRfZGV0IHBnX2VuY3J5cHRlZF9k ZXQnLCBwcm9zcmMgPT4gJ2J5dGVhbmUnIH0sCisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUu ZGF0CmluZGV4IDkyYmNhZjJjNzMuLjg1ZTRiNTU1NGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190 eXBlLmRhdApAQCAtNjkyLDQgKzY5MiwxNiBAQAogICB0eXByZWNlaXZlID0+ICdicmluX21p bm1heF9tdWx0aV9zdW1tYXJ5X3JlY3YnLAogICB0eXBzZW5kID0+ICdicmluX21pbm1heF9t dWx0aV9zdW1tYXJ5X3NlbmQnLCB0eXBhbGlnbiA9PiAnaScsCiAgIHR5cHN0b3JhZ2UgPT4g J3gnLCB0eXBjb2xsYXRpb24gPT4gJ2RlZmF1bHQnIH0sCisKK3sgb2lkID0+ICc4MjQzJywg ZGVzY3IgPT4gJ2VuY3J5cHRlZCBjb2x1bW4gKGRldGVybWluaXN0aWMpJywKKyAgdHlwbmFt ZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIHR5cGxlbiA9PiAnLTEnLCB0eXBieXZhbCA9PiAn ZicsIHR5cHR5cGUgPT4gJ2InLAorICB0eXBjYXRlZ29yeSA9PiAnWScsIHR5cGlucHV0ID0+ ICdwZ19lbmNyeXB0ZWRfZGV0X2luJywgdHlwb3V0cHV0ID0+ICdwZ19lbmNyeXB0ZWRfZGV0 X291dCcsCisgIHR5cHJlY2VpdmUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfcmVjdicsIHR5cHNl bmQgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfc2VuZCcsIHR5cGFsaWduID0+ICdpJywKKyAgdHlw c3RvcmFnZSA9PiAnZScgfSwKK3sgb2lkID0+ICc4MjQ0JywgZGVzY3IgPT4gJ2VuY3J5cHRl ZCBjb2x1bW4gKHJhbmRvbWl6ZWQpJywKKyAgdHlwbmFtZSA9PiAncGdfZW5jcnlwdGVkX3Ju ZCcsIHR5cGxlbiA9PiAnLTEnLCB0eXBieXZhbCA9PiAnZicsIHR5cHR5cGUgPT4gJ2InLAor ICB0eXBjYXRlZ29yeSA9PiAnWScsIHR5cGlucHV0ID0+ICdwZ19lbmNyeXB0ZWRfcm5kX2lu JywgdHlwb3V0cHV0ID0+ICdwZ19lbmNyeXB0ZWRfcm5kX291dCcsCisgIHR5cHJlY2VpdmUg PT4gJ3BnX2VuY3J5cHRlZF9ybmRfcmVjdicsIHR5cHNlbmQgPT4gJ3BnX2VuY3J5cHRlZF9y bmRfc2VuZCcsIHR5cGFsaWduID0+ICdpJywKKyAgdHlwc3RvcmFnZSA9PiAnZScgfSwKKwog XQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3R5cGUuaAppbmRleCA1MTllNTcwYzhjLi4zYzdhYjJhOGZlIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuaAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3R5cGUuaApAQCAtMjk0LDYgKzI5NCw3IEBAIERFQ0xBUkVfVU5J UVVFX0lOREVYKHBnX3R5cGVfdHlwbmFtZV9uc3BfaW5kZXgsIDI3MDQsIFR5cGVOYW1lTnNw SW5kZXhJZCwgb24gcGdfCiAjZGVmaW5lICBUWVBDQVRFR09SWV9VU0VSCQknVScKICNkZWZp bmUgIFRZUENBVEVHT1JZX0JJVFNUUklORwknVicgLyogZXIgLi4uICJ2YXJiaXQiPyAqLwog I2RlZmluZSAgVFlQQ0FURUdPUllfVU5LTk9XTgknWCcKKyNkZWZpbmUgIFRZUENBVEVHT1JZ X0VOQ1JZUFRFRAknWScKICNkZWZpbmUgIFRZUENBVEVHT1JZX0lOVEVSTkFMCSdaJwogCiAj ZGVmaW5lICBUWVBBTElHTl9DSEFSCQkJJ2MnIC8qIGNoYXIgYWxpZ25tZW50IChpLmUuIHVu YWxpZ25lZCkgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVuY2Nt ZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMuaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43MTI3ZTBjYTVlCi0tLSAvZGV2L251bGwKKysr IGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oCkBAIC0wLDAgKzEsMjYgQEAK Ky8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGNvbGVuY2NtZHMuaAorICoJICBwcm90 b3R5cGVzIGZvciBjb2xlbmNjbWRzLmMuCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5Ni0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAor ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJz aXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNj bWRzLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVmIENPTEVO Q0NNRFNfSAorI2RlZmluZSBDT0xFTkNDTURTX0gKKworI2luY2x1ZGUgImNhdGFsb2cvb2Jq ZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisKK2V4dGVy biBPYmplY3RBZGRyZXNzIENyZWF0ZUNFSyhQYXJzZVN0YXRlICpwc3RhdGUsIERlZmluZVN0 bXQgKnN0bXQpOworZXh0ZXJuIE9iamVjdEFkZHJlc3MgQWx0ZXJDb2x1bW5FbmNyeXB0aW9u S2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCAq c3RtdCk7CitleHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVDTUsoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBEZWZpbmVTdG10ICpzdG10KTsKK2V4dGVybiBPYmplY3RBZGRyZXNzIEFsdGVyQ29s dW1uTWFzdGVyS2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJDb2x1bW5NYXN0ZXJLZXlT dG10ICpzdG10KTsKKworI2VuZGlmCQkJCQkJCS8qIENPTEVOQ0NNRFNfSCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmggYi9zcmMvaW5jbHVkZS9j b21tYW5kcy90YWJsZWNtZHMuaAppbmRleCBlN2MyYjkxYTU4Li4xMWY4OGM1OWNlIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaAorKysgYi9zcmMvaW5j bHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaApAQCAtMTA1LDQgKzEwNSw2IEBAIGV4dGVybiB2 b2lkIFJhbmdlVmFyQ2FsbGJhY2tPd25zUmVsYXRpb24oY29uc3QgUmFuZ2VWYXIgKnJlbGF0 aW9uLAogZXh0ZXJuIGJvb2wgUGFydENvbnN0cmFpbnRJbXBsaWVkQnlSZWxDb25zdHJhaW50 KFJlbGF0aW9uIHNjYW5yZWwsCiAJCQkJCQkJCQkJCQkgTGlzdCAqcGFydENvbnN0cmFpbnQp OwogCitleHRlcm4gTGlzdCAqbWFrZUNvbHVtbkVuY3J5cHRpb24oY29uc3QgRm9ybURhdGFf cGdfYXR0cmlidXRlICphdHRyKTsKKwogI2VuZGlmCQkJCQkJCS8qIFRBQkxFQ01EU19IICov CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tb24vY29sZW5jLmggYi9zcmMvaW5jbHVk ZS9jb21tb24vY29sZW5jLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uMjEyNTg3ZDIyMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1vbi9j b2xlbmMuaApAQCAtMCwwICsxLDUxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiBjb2xlbmMuaAorICoKKyAqIFNoYXJlZCBkZWZpbml0aW9ucyBmb3IgY29sdW1uIGVuY3J5 cHRpb24gYWxnb3JpdGhtcy4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYt MjAyMywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBJREVO VElGSUNBVElPTgorICoJCSAgc3JjL2luY2x1ZGUvY29tbW9uL2NvbGVuYy5oCisgKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVmIENPTU1PTl9DT0xFTkNfSAorI2RlZmlu ZSBDT01NT05fQ09MRU5DX0gKKworLyoKKyAqIENvbnN0YW50cyBmb3IgQ01LIGFuZCBDRUsg YWxnb3JpdGhtcy4gIE5vdGUgdGhhdCB0aGVzZSBhcmUgcGFydCBvZiB0aGUKKyAqIHByb3Rv Y29sLiAgSW4gZWl0aGVyIGNhc2UsIGRvbid0IGFzc2lnbiB6ZXJvLCBzbyB0aGF0IHRoYXQg Y2FuIGJlIHVzZWQgYXMKKyAqIGFuIGludmFsaWQgdmFsdWUuCisgKgorICogTmFtZXMgc2hv dWxkIHVzZSBJQU5BLXN0eWxlIGNhcGl0YWxpemF0aW9uIGFuZCBwdW5jdHVhdGlvbiAoIkxJ S0VfVEhJUyIpLgorICoKKyAqIFdoZW4gbWFraW5nIGNoYW5nZXMsIGFsc28gdXBkYXRlIHBy b3RvY29sLnNnbWwuCisgKi8KKworI2RlZmluZSBQR19DTUtfVU5TUEVDSUZJRUQJCQkJMQor I2RlZmluZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMQkJCTIKKyNkZWZpbmUgUEdfQ01LX1JT QUVTX09BRVBfU0hBXzI1NgkJMworCisvKgorICogVGhlc2UgYWxnb3JpdGhtcyBhcmUgcGFy dCBvZiB0aGUgUkZDIDUxMTYgcmVhbG0gb2YgQUVBRCBhbGdvcml0aG1zIChldmVuCisgKiB0 aG91Z2ggdGhleSBuZXZlciBiZWNhbWUgYW4gb2ZmaWNpYWwgSUVURiBzdGFuZGFyZCkuICBT byBmb3IgcHJvcHJpZXR5LCB3ZQorICogdXNlICJwcml2YXRlIHVzZSIgbnVtYmVycyBmcm9t CisgKiA8aHR0cHM6Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvYWVhZC1wYXJhbWV0ZXJz L2FlYWQtcGFyYW1ldGVycy54aHRtbD4uCisgKi8KKyNkZWZpbmUgUEdfQ0VLX0FFQURfQUVT XzEyOF9DQkNfSE1BQ19TSEFfMjU2CTMyNzY4CisjZGVmaW5lIFBHX0NFS19BRUFEX0FFU18x OTJfQ0JDX0hNQUNfU0hBXzM4NAkzMjc2OQorI2RlZmluZSBQR19DRUtfQUVBRF9BRVNfMjU2 X0NCQ19ITUFDX1NIQV8zODQJMzI3NzAKKyNkZWZpbmUgUEdfQ0VLX0FFQURfQUVTXzI1Nl9D QkNfSE1BQ19TSEFfNTEyCTMyNzcxCisKKy8qCisgKiBGdW5jdGlvbnMgdG8gY29udmVydCBi ZXR3ZWVuIG5hbWVzIGFuZCBudW1iZXJzCisgKi8KK2V4dGVybiBpbnQgZ2V0X2Nta2FsZ19u dW0oY29uc3QgY2hhciAqbmFtZSk7CitleHRlcm4gY29uc3QgY2hhciAqZ2V0X2Nta2FsZ19u YW1lKGludCBudW0pOworZXh0ZXJuIGNvbnN0IGNoYXIgKmdldF9jbWthbGdfandhX25hbWUo aW50IG51bSk7CitleHRlcm4gaW50IGdldF9jZWthbGdfbnVtKGNvbnN0IGNoYXIgKm5hbWUp OworZXh0ZXJuIGNvbnN0IGNoYXIgKmdldF9jZWthbGdfbmFtZShpbnQgbnVtKTsKKworI2Vu ZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9saWJwcS9saWJwcS1iZS5oIGIvc3JjL2lu Y2x1ZGUvbGlicHEvbGlicHEtYmUuaAppbmRleCBhYzY0MDdlOWY2Li4zOWEyODZlNThhIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9saWJwcS9saWJwcS1iZS5oCisrKyBiL3NyYy9pbmNs dWRlL2xpYnBxL2xpYnBxLWJlLmgKQEAgLTE2NCw2ICsxNjQsNyBAQCB0eXBlZGVmIHN0cnVj dCBQb3J0CiAJICovCiAJY2hhcgkgICAqZGF0YWJhc2VfbmFtZTsKIAljaGFyCSAgICp1c2Vy X25hbWU7CisJYm9vbAkJY29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZDsKIAljaGFyCSAgICpj bWRsaW5lX29wdGlvbnM7CiAJTGlzdAkgICAqZ3VjX29wdGlvbnM7CiAKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaAppbmRleCBmN2Q3ZjEwZjdkLi40ZTIyNTZmMmM1IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCkBAIC04OCw4ICs4OCw3IEBAIHR5cGVkZWYgdWludDY0IEFjbE1vZGU7 CQkJLyogYSBiaXRtYXNrIG9mIHByaXZpbGVnZSBiaXRzICovCiAjZGVmaW5lIEFDTF9SRUZF UkVOQ0VTCSgxPDw1KQogI2RlZmluZSBBQ0xfVFJJR0dFUgkJKDE8PDYpCiAjZGVmaW5lIEFD TF9FWEVDVVRFCQkoMTw8NykJLyogZm9yIGZ1bmN0aW9ucyAqLwotI2RlZmluZSBBQ0xfVVNB R0UJCSgxPDw4KQkvKiBmb3IgbGFuZ3VhZ2VzLCBuYW1lc3BhY2VzLCBGRFdzLCBhbmQKLQkJ CQkJCQkJICogc2VydmVycyAqLworI2RlZmluZSBBQ0xfVVNBR0UJCSgxPDw4KQkvKiBmb3Ig dmFyaW91cyBvYmplY3QgdHlwZXMgKi8KICNkZWZpbmUgQUNMX0NSRUFURQkJKDE8PDkpCS8q IGZvciBuYW1lc3BhY2VzIGFuZCBkYXRhYmFzZXMgKi8KICNkZWZpbmUgQUNMX0NSRUFURV9U RU1QICgxPDwxMCkgLyogZm9yIGRhdGFiYXNlcyAqLwogI2RlZmluZSBBQ0xfQ09OTkVDVAkJ KDE8PDExKSAvKiBmb3IgZGF0YWJhc2VzICovCkBAIC03MjIsNiArNzIxLDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgQ29sdW1uRGVmCiAJY2hhcgkgICAqY29sbmFtZTsJCS8qIG5hbWUgb2YgY29s dW1uICovCiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0eXBlIG9mIGNvbHVtbiAqLwog CWNoYXIJICAgKmNvbXByZXNzaW9uOwkvKiBjb21wcmVzc2lvbiBtZXRob2QgZm9yIGNvbHVt biAqLworCUxpc3QJICAgKmVuY3J5cHRpb247CQkvKiBlbmNyeXB0aW9uIGluZm8gZm9yIGNv bHVtbiAqLwogCWludAkJCWluaGNvdW50OwkJLyogbnVtYmVyIG9mIHRpbWVzIGNvbHVtbiBp cyBpbmhlcml0ZWQgKi8KIAlib29sCQlpc19sb2NhbDsJCS8qIGNvbHVtbiBoYXMgbG9jYWwg KG5vbi1pbmhlcml0ZWQpIGRlZiduICovCiAJYm9vbAkJaXNfbm90X251bGw7CS8qIE5PVCBO VUxMIGNvbnN0cmFpbnQgc3BlY2lmaWVkPyAqLwpAQCAtNzU4LDExICs3NTgsMTIgQEAgdHlw ZWRlZiBlbnVtIFRhYmxlTGlrZU9wdGlvbgogCUNSRUFURV9UQUJMRV9MSUtFX0NPTVBSRVNT SU9OID0gMSA8PCAxLAogCUNSRUFURV9UQUJMRV9MSUtFX0NPTlNUUkFJTlRTID0gMSA8PCAy LAogCUNSRUFURV9UQUJMRV9MSUtFX0RFRkFVTFRTID0gMSA8PCAzLAotCUNSRUFURV9UQUJM RV9MSUtFX0dFTkVSQVRFRCA9IDEgPDwgNCwKLQlDUkVBVEVfVEFCTEVfTElLRV9JREVOVElU WSA9IDEgPDwgNSwKLQlDUkVBVEVfVEFCTEVfTElLRV9JTkRFWEVTID0gMSA8PCA2LAotCUNS RUFURV9UQUJMRV9MSUtFX1NUQVRJU1RJQ1MgPSAxIDw8IDcsCi0JQ1JFQVRFX1RBQkxFX0xJ S0VfU1RPUkFHRSA9IDEgPDwgOCwKKwlDUkVBVEVfVEFCTEVfTElLRV9FTkNSWVBURUQgPSAx IDw8IDQsCisJQ1JFQVRFX1RBQkxFX0xJS0VfR0VORVJBVEVEID0gMSA8PCA1LAorCUNSRUFU RV9UQUJMRV9MSUtFX0lERU5USVRZID0gMSA8PCA2LAorCUNSRUFURV9UQUJMRV9MSUtFX0lO REVYRVMgPSAxIDw8IDcsCisJQ1JFQVRFX1RBQkxFX0xJS0VfU1RBVElTVElDUyA9IDEgPDwg OCwKKwlDUkVBVEVfVEFCTEVfTElLRV9TVE9SQUdFID0gMSA8PCA5LAogCUNSRUFURV9UQUJM RV9MSUtFX0FMTCA9IFBHX0lOVDMyX01BWAogfSBUYWJsZUxpa2VPcHRpb247CiAKQEAgLTE5 ODAsNiArMTk4MSw5IEBAIHR5cGVkZWYgZW51bSBPYmplY3RUeXBlCiAJT0JKRUNUX0NBU1Qs CiAJT0JKRUNUX0NPTFVNTiwKIAlPQkpFQ1RfQ09MTEFUSU9OLAorCU9CSkVDVF9DRUssCisJ T0JKRUNUX0NFS0RBVEEsCisJT0JKRUNUX0NNSywKIAlPQkpFQ1RfQ09OVkVSU0lPTiwKIAlP QkpFQ1RfREFUQUJBU0UsCiAJT0JKRUNUX0RFRkFVTFQsCkBAIC0yMTY3LDYgKzIxNzEsMzEg QEAgdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJDb2xsYXRpb25TdG10CiB9IEFsdGVyQ29sbGF0aW9u U3RtdDsKIAogCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBBbHRlciBDb2x1bW4g RW5jcnlwdGlvbiBLZXkKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRl ZiBzdHJ1Y3QgQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdAoreworCU5vZGVUYWcJCXR5 cGU7CisJTGlzdAkgICAqY2VrbmFtZTsKKwlib29sCQlpc0Ryb3A7CQkJLyogQUREIG9yIERS T1AgdGhlIGl0ZW1zPyAqLworCUxpc3QJICAgKmRlZmluaXRpb247Cit9IEFsdGVyQ29sdW1u RW5jcnlwdGlvbktleVN0bXQ7CisKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICog QWx0ZXIgQ29sdW1uIE1hc3RlciBLZXkKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq LwordHlwZWRlZiBzdHJ1Y3QgQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10Cit7CisJTm9kZVRh ZwkJdHlwZTsKKwlMaXN0CSAgICpjbWtuYW1lOworCUxpc3QJICAgKmRlZmluaXRpb247Cit9 IEFsdGVyQ29sdW1uTWFzdGVyS2V5U3RtdDsKKworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgKglBbHRlciBEb21haW4KICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJz ZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggYmIzNjIx M2U2Zi4uYzhjZjljNzc3NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlz dC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtMTQ5LDYgKzE0OSw3 IEBAIFBHX0tFWVdPUkQoImVsc2UiLCBFTFNFLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgiZW5hYmxlIiwgRU5BQkxFX1AsIFVOUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVuY29kaW5nIiwgRU5DT0RJTkcsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVuY3J5cHRlZCIsIEVO Q1JZUFRFRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgi ZW5jcnlwdGlvbiIsIEVOQ1JZUFRJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoImVuZCIsIEVORF9QLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgiZW51bSIsIEVOVU1fUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZXNjYXBlIiwgRVNDQVBFLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCkBAIC0yNTAsNiArMjUxLDcgQEAgUEdfS0VZV09SRCgibG9j ayIsIExPQ0tfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgibG9ja2VkIiwgTE9DS0VELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJsb2dnZWQiLCBMT0dHRUQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoIm1hcHBpbmciLCBNQVBQSU5HLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJtYXN0ZXIiLCBNQVNURVIsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoIm1hdGNoIiwgTUFUQ0gsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoIm1hdGNoZWQiLCBN QVRDSEVELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJt YXRlcmlhbGl6ZWQiLCBNQVRFUklBTElaRUQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9wYXJhbS5oIGIv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmgKaW5kZXggZDQ4NjVlNTBmNi4uMjZl MWNkNjE3YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmgK KysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmgKQEAgLTIxLDUgKzIxLDYg QEAgZXh0ZXJuIHZvaWQgc2V0dXBfcGFyc2VfdmFyaWFibGVfcGFyYW1ldGVycyhQYXJzZVN0 YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCU9pZCAqKnBhcmFtVHlwZXMsIGludCAqbnVtUGFy YW1zKTsKIGV4dGVybiB2b2lkIGNoZWNrX3ZhcmlhYmxlX3BhcmFtZXRlcnMoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBRdWVyeSAqcXVlcnkpOwogZXh0ZXJuIGJvb2wgcXVlcnlfY29udGFpbnNf ZXh0ZXJuX3BhcmFtcyhRdWVyeSAqcXVlcnkpOworZXh0ZXJuIHZvaWQgZmluZF9wYXJhbV9v cmlncyhMaXN0ICpxdWVyeV9saXN0LCBPaWQgKipwYXJhbV9vcmlnX3RibHMsIEF0dHJOdW1i ZXIgKipwYXJhbV9vcmlnX2NvbHMpOwogCiAjZW5kaWYJCQkJCQkJLyogUEFSU0VfUEFSQU1f SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMv aW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCBlNzM4YWMxYzA5Li5jMWY2ZmUxNDEw IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMv aW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtMjksNiArMjksOCBAQCBQR19DTURUQUco Q01EVEFHX0FMVEVSX0FDQ0VTU19NRVRIT0QsICJBTFRFUiBBQ0NFU1MgTUVUSE9EIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9BR0dSRUdBVEUsICJB TFRFUiBBR0dSRUdBVEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFH X0FMVEVSX0NBU1QsICJBTFRFUiBDQVNUIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19BTFRFUl9DT0xMQVRJT04sICJBTFRFUiBDT0xMQVRJT04iLCB0cnVlLCBm YWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0FMVEVSX0NPTFVNTl9FTkNSWVBUSU9O X0tFWSwgIkFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxz ZSkKK1BHX0NNRFRBRyhDTURUQUdfQUxURVJfQ09MVU1OX01BU1RFUl9LRVksICJBTFRFUiBD T0xVTU4gTUFTVEVSIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfQUxURVJfQ09OU1RSQUlOVCwgIkFMVEVSIENPTlNUUkFJTlQiLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX0NPTlZFUlNJT04sICJBTFRFUiBDT05W RVJTSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9E QVRBQkFTRSwgIkFMVEVSIERBVEFCQVNFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTg2 LDYgKzg4LDggQEAgUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQUNDRVNTX01FVEhPRCwgIkNS RUFURSBBQ0NFU1MgTUVUSE9EIiwgdHJ1ZSwgZmFsc2UsIGZhbHMKIFBHX0NNRFRBRyhDTURU QUdfQ1JFQVRFX0FHR1JFR0FURSwgIkNSRUFURSBBR0dSRUdBVEUiLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DQVNULCAiQ1JFQVRFIENBU1QiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT0xMQVRJT04s ICJDUkVBVEUgQ09MTEFUSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENN RFRBR19DUkVBVEVfQ09MVU1OX0VOQ1JZUFRJT05fS0VZLCAiQ1JFQVRFIENPTFVNTiBFTkNS WVBUSU9OIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQ1JF QVRFX0NPTFVNTl9NQVNURVJfS0VZLCAiQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ09OU1RSQUlOVCwg IkNSRUFURSBDT05TVFJBSU5UIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19DUkVBVEVfQ09OVkVSU0lPTiwgIkNSRUFURSBDT05WRVJTSU9OIiwgdHJ1ZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfREFUQUJBU0UsICJDUkVBVEUg REFUQUJBU0UiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTM4LDYgKzE0Miw4IEBAIFBH X0NNRFRBRyhDTURUQUdfRFJPUF9BQ0NFU1NfTUVUSE9ELCAiRFJPUCBBQ0NFU1MgTUVUSE9E IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0FHR1JFR0FU RSwgIkRST1AgQUdHUkVHQVRFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19EUk9QX0NBU1QsICJEUk9QIENBU1QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0RST1BfQ09MTEFUSU9OLCAiRFJPUCBDT0xMQVRJT04iLCB0cnVlLCBm YWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RST1BfQ09MVU1OX0VOQ1JZUFRJT05f S0VZLCAiRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkiLCB0cnVlLCBmYWxzZSwgZmFsc2Up CitQR19DTURUQUcoQ01EVEFHX0RST1BfQ09MVU1OX01BU1RFUl9LRVksICJEUk9QIENPTFVN TiBNQVNURVIgS0VZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19E Uk9QX0NPTlNUUkFJTlQsICJEUk9QIENPTlNUUkFJTlQiLCB0cnVlLCBmYWxzZSwgZmFsc2Up CiBQR19DTURUQUcoQ01EVEFHX0RST1BfQ09OVkVSU0lPTiwgIkRST1AgQ09OVkVSU0lPTiIs IHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9EQVRBQkFTRSwg IkRST1AgREFUQUJBU0UiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdXRpbHMvYWNsLmggYi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAppbmRleCBm OGUxMjM4ZmEyLi4wYzczMDIyODMzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9h Y2wuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaApAQCAtMTU5LDYgKzE1OSw4IEBA IHR5cGVkZWYgc3RydWN0IEFycmF5VHlwZSBBY2w7CiAjZGVmaW5lIEFDTF9BTExfUklHSFRT X0NPTFVNTgkJKEFDTF9JTlNFUlR8QUNMX1NFTEVDVHxBQ0xfVVBEQVRFfEFDTF9SRUZFUkVO Q0VTKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19SRUxBVElPTgkJKEFDTF9JTlNFUlR8QUNM X1NFTEVDVHxBQ0xfVVBEQVRFfEFDTF9ERUxFVEV8QUNMX1RSVU5DQVRFfEFDTF9SRUZFUkVO Q0VTfEFDTF9UUklHR0VSfEFDTF9NQUlOVEFJTikKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNf U0VRVUVOQ0UJCShBQ0xfVVNBR0V8QUNMX1NFTEVDVHxBQ0xfVVBEQVRFKQorI2RlZmluZSBB Q0xfQUxMX1JJR0hUU19DRUsJCQkoQUNMX1VTQUdFKQorI2RlZmluZSBBQ0xfQUxMX1JJR0hU U19DTUsJCQkoQUNMX1VTQUdFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19EQVRBQkFTRQkJ KEFDTF9DUkVBVEV8QUNMX0NSRUFURV9URU1QfEFDTF9DT05ORUNUKQogI2RlZmluZSBBQ0xf QUxMX1JJR0hUU19GRFcJCQkoQUNMX1VTQUdFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19G T1JFSUdOX1NFUlZFUiAoQUNMX1VTQUdFKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRp bHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAppbmRleCA0 ZjU0MThiOTcyLi4xZGFjMjRlNGI0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9s c3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaApAQCAtMTYz LDYgKzE2Myw3IEBAIGV4dGVybiBib29sIHR5cGVfaXNfcm93dHlwZShPaWQgdHlwaWQpOwog ZXh0ZXJuIGJvb2wgdHlwZV9pc19lbnVtKE9pZCB0eXBpZCk7CiBleHRlcm4gYm9vbCB0eXBl X2lzX3JhbmdlKE9pZCB0eXBpZCk7CiBleHRlcm4gYm9vbCB0eXBlX2lzX211bHRpcmFuZ2Uo T2lkIHR5cGlkKTsKK2V4dGVybiBib29sIHR5cGVfaXNfZW5jcnlwdGVkKE9pZCB0eXBpZCk7 CiBleHRlcm4gdm9pZCBnZXRfdHlwZV9jYXRlZ29yeV9wcmVmZXJyZWQoT2lkIHR5cGlkLAog CQkJCQkJCQkJCWNoYXIgKnR5cGNhdGVnb3J5LAogCQkJCQkJCQkJCWJvb2wgKnR5cGlzcHJl ZmVycmVkKTsKQEAgLTIwMiw2ICsyMDMsOSBAQCBleHRlcm4gT2lkCWdldF9wdWJsaWNhdGlv bl9vaWQoY29uc3QgY2hhciAqcHVibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBj aGFyICpnZXRfcHVibGljYXRpb25fbmFtZShPaWQgcHViaWQsIGJvb2wgbWlzc2luZ19vayk7 CiBleHRlcm4gT2lkCWdldF9zdWJzY3JpcHRpb25fb2lkKGNvbnN0IGNoYXIgKnN1Ym5hbWUs IGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gY2hhciAqZ2V0X3N1YnNjcmlwdGlvbl9uYW1l KE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBjaGFyICpnZXRfY2VrX25h bWUoT2lkIGNla2lkLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9pZAlnZXRfY2VrZGF0 YV9vaWQoT2lkIGNla2lkLCBPaWQgY21raWQsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4g Y2hhciAqZ2V0X2Nta19uYW1lKE9pZCBjbWtpZCwgYm9vbCBtaXNzaW5nX29rKTsKIAogI2Rl ZmluZSB0eXBlX2lzX2FycmF5KHR5cGlkKSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQpICE9 IEludmFsaWRPaWQpCiAvKiB0eXBlX2lzX2FycmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxh aW4gYXJyYXlzIGFuZCBkb21haW5zIG92ZXIgYXJyYXlzICovCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3BsYW5jYWNo ZS5oCmluZGV4IGE0NDMxODFkNDEuLjhlY2FjYjI5ZGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL3BsYW5jYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3BsYW5jYWNo ZS5oCkBAIC0yMDcsNiArMjA3LDkgQEAgZXh0ZXJuIHZvaWQgQ29tcGxldGVDYWNoZWRQbGFu KENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UsCiBleHRlcm4gdm9pZCBTYXZlQ2FjaGVk UGxhbihDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlKTsKIGV4dGVybiB2b2lkIERyb3BD YWNoZWRQbGFuKENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UpOwogCitleHRlcm4gTGlz dCAqUmV2YWxpZGF0ZUNhY2hlZFF1ZXJ5KENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2Us CisJCQkJCQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52KTsKKwogZXh0ZXJuIHZv aWQgQ2FjaGVkUGxhblNldFBhcmVudENvbnRleHQoQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNv dXJjZSwKIAkJCQkJCQkJCSAgIE1lbW9yeUNvbnRleHQgbmV3Y29udGV4dCk7CiAKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3N5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGls cy9zeXNjYWNoZS5oCmluZGV4IGQ1ZDUwY2VhYjQuLmJmMWQ1MjdjMWEgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3V0aWxzL3N5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMv c3lzY2FjaGUuaApAQCAtNDQsOCArNDQsMTQgQEAgZW51bSBTeXNDYWNoZUlkZW50aWZpZXIK IAlBVVRITkFNRSwKIAlBVVRIT0lELAogCUNBU1RTT1VSQ0VUQVJHRVQsCisJQ0VLREFUQUNF S0NNSywKKwlDRUtEQVRBT0lELAorCUNFS05BTUVOU1AsCisJQ0VLT0lELAogCUNMQUFNTkFN RU5TUCwKIAlDTEFPSUQsCisJQ01LTkFNRU5TUCwKKwlDTUtPSUQsCiAJQ09MTE5BTUVFTkNO U1AsCiAJQ09MTE9JRCwKIAlDT05ERUZBVUxULApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFj ZXMvbGlicHEvTWFrZWZpbGUgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQppbmRl eCBjMThlOTE0MjI4Li4xMGRmZGE4MDE2IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9s aWJwcS9NYWtlZmlsZQorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQpAQCAt NTQsNiArNTQsNyBAQCBlbmRpZgogCiBpZmVxICgkKHdpdGhfc3NsKSxvcGVuc3NsKQogT0JK UyArPSBcCisJZmUtZW5jcnlwdC1vcGVuc3NsLm8gXAogCWZlLXNlY3VyZS1vcGVuc3NsLm8K IGVuZGlmCiAKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0 IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQKaW5kZXggZThiY2M4ODM3MC4u ODg5N2FhMjQzYyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50 eHQKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQKQEAgLTE4NiwzICsx ODYsNyBAQCBQUXBpcGVsaW5lU3RhdHVzICAgICAgICAgIDE4MwogUFFzZXRUcmFjZUZsYWdz ICAgICAgICAgICAxODQKIFBRbWJsZW5Cb3VuZGVkICAgICAgICAgICAgMTg1CiBQUXNlbmRG bHVzaFJlcXVlc3QgICAgICAgIDE4NgorUFFleGVjUHJlcGFyZWREZXNjcmliZWQgICAxODcK K1BRc2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQgMTg4CitQUWZpc2VuY3J5cHRlZCAgICAg ICAgICAgIDE4OQorUFFwYXJhbWlzZW5jcnlwdGVkICAgICAgICAxOTAKZGlmZiAtLWdpdCBh L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYyBiL3NyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLWNvbm5lY3QuYwppbmRleCA1MGI1ZGYzNDkwLi5iZjYxNDllODU5IDEwMDY0NAot LS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKKysrIGIvc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCkBAIC0zNDEsNiArMzQxLDE0IEBAIHN0YXRpYyBj b25zdCBpbnRlcm5hbFBRY29ubmluZm9PcHRpb24gUFFjb25uaW5mb09wdGlvbnNbXSA9IHsK IAkJIlRhcmdldC1TZXNzaW9uLUF0dHJzIiwgIiIsIDE1LCAvKiBzaXplb2YoInByZWZlci1z dGFuZGJ5IikgPSAxNSAqLwogCW9mZnNldG9mKHN0cnVjdCBwZ19jb25uLCB0YXJnZXRfc2Vz c2lvbl9hdHRycyl9LAogCisJeyJjbWtsb29rdXAiLCAiUEdDTUtMT09LVVAiLCAiIiwgTlVM TCwKKwkJIkNNSy1Mb29rdXAiLCAiIiwgNjQsCisJb2Zmc2V0b2Yoc3RydWN0IHBnX2Nvbm4s IGNta2xvb2t1cCl9LAorCisJeyJjb2x1bW5fZW5jcnlwdGlvbiIsICJQR0NPTFVNTkVOQ1JZ UFRJT04iLCAiMCIsIE5VTEwsCisJCSJDb2x1bW4tRW5jcnlwdGlvbiIsICIiLCAxLAorCW9m ZnNldG9mKHN0cnVjdCBwZ19jb25uLCBjb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5nKX0sCisK IAkvKiBUZXJtaW5hdGluZyBlbnRyeSAtLS0gTVVTVCBCRSBMQVNUICovCiAJe05VTEwsIE5V TEwsIE5VTEwsIE5VTEwsCiAJTlVMTCwgTlVMTCwgMH0KQEAgLTE0MTIsNiArMTQyMCwyOCBA QCBjb25uZWN0T3B0aW9uczIoUEdjb25uICpjb25uKQogCQkJZ290byBvb21fZXJyb3I7CiAJ fQogCisJLyoKKwkgKiB2YWxpZGF0ZSBjb2x1bW5fZW5jcnlwdGlvbiBvcHRpb24KKwkgKi8K KwlpZiAoY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fc2V0dGluZykKKwl7CisJCWlmIChzdHJj bXAoY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fc2V0dGluZywgIm9uIikgPT0gMCB8fAorCQkJ c3RyY21wKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX3NldHRpbmcsICJ0cnVlIikgPT0gMCB8 fAorCQkJc3RyY21wKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX3NldHRpbmcsICIxIikgPT0g MCkKKwkJCWNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQgPSB0cnVlOworCQllbHNl IGlmIChzdHJjbXAoY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fc2V0dGluZywgIm9mZiIpID09 IDAgfHwKKwkJCQkgc3RyY21wKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX3NldHRpbmcsICJm YWxzZSIpID09IDAgfHwKKwkJCQkgc3RyY21wKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX3Nl dHRpbmcsICIwIikgPT0gMCkKKwkJCWNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQg PSBmYWxzZTsKKwkJZWxzZQorCQl7CisJCQljb25uLT5zdGF0dXMgPSBDT05ORUNUSU9OX0JB RDsKKwkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJpbnZhbGlkICVzIHZhbHVl OiBcIiVzXCIiLAorCQkJCQkJCQkJImNvbHVtbl9lbmNyeXB0aW9uIiwgY29ubi0+Y29sdW1u X2VuY3J5cHRpb25fc2V0dGluZyk7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9CisKIAkv KgogCSAqIE9ubHkgaWYgd2UgZ2V0IHRoaXMgZmFyIGlzIGl0IGFwcHJvcHJpYXRlIHRvIHRy eSB0byBjb25uZWN0LiAoV2UgbmVlZCBhCiAJICogc3RhdGUgZmxhZywgcmF0aGVyIHRoYW4g anVzdCB0aGUgYm9vbGVhbiByZXN1bHQgb2YgdGhpcyBmdW5jdGlvbiwgaW4KQEAgLTQwMjks NiArNDA1OSwyMiBAQCBmcmVlUEdjb25uKFBHY29ubiAqY29ubikKIAlmcmVlKGNvbm4tPmty YnNydm5hbWUpOwogCWZyZWUoY29ubi0+Z3NzbGliKTsKIAlmcmVlKGNvbm4tPmNvbm5pcCk7 CisJZnJlZShjb25uLT5jbWtsb29rdXApOworCWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+ bmNta3M7IGkrKykKKwl7CisJCWZyZWUoY29ubi0+Y21rc1tpXS5jbWtuYW1lKTsKKwkJZnJl ZShjb25uLT5jbWtzW2ldLmNta3JlYWxtKTsKKwl9CisJZnJlZShjb25uLT5jbWtzKTsKKwlm b3IgKGludCBpID0gMDsgaSA8IGNvbm4tPm5jZWtzOyBpKyspCisJeworCQlpZiAoY29ubi0+ Y2Vrc1tpXS5jZWtkYXRhKQorCQl7CisJCQlleHBsaWNpdF9iemVybyhjb25uLT5jZWtzW2ld LmNla2RhdGEsIGNvbm4tPmNla3NbaV0uY2VrZGF0YWxlbik7CisJCQlmcmVlKGNvbm4tPmNl a3NbaV0uY2VrZGF0YSk7CisJCX0KKwl9CisJZnJlZShjb25uLT5jZWtzKTsKIAkvKiBOb3Rl IHRoYXQgY29ubi0+UGZkZWJ1ZyBpcyBub3Qgb3VycyB0byBjbG9zZSBvciBmcmVlICovCiAJ ZnJlZShjb25uLT53cml0ZV9lcnJfbXNnKTsKIAlmcmVlKGNvbm4tPmluQnVmZmVyKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jIGIv c3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC1vcGVuc3NsLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYWI2YzcwOTY3ZgotLS0gL2Rldi9udWxsCisr KyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jCkBAIC0wLDAg KzEsODQyIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBmZS1lbmNyeXB0LW9w ZW5zc2wuYworICoKKyAqIGNsaWVudC1zaWRlIGNvbHVtbiBlbmNyeXB0aW9uIHN1cHBvcnQg dXNpbmcgT3BlblNTTAorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIz LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3Ju aWEKKyAqCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtZW5jcnlwdC1vcGVuc3NsLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq LworCisjaW5jbHVkZSAicG9zdGdyZXNfZmUuaCIKKworI2luY2x1ZGUgImZlLWVuY3J5cHQu aCIKKyNpbmNsdWRlICJsaWJwcS1pbnQuaCIKKworI2luY2x1ZGUgImNvbW1vbi9jb2xlbmMu aCIKKyNpbmNsdWRlICJwb3J0L3BnX2Jzd2FwLmgiCisKKyNpbmNsdWRlIDxvcGVuc3NsL2V2 cC5oPgorCisKKy8qCisgKiBXaGVuIFRFU1RfRU5DUllQVCBpcyBkZWZpbmVkLCB0aGlzIGZp bGUgYnVpbGRzIGEgc3RhbmRhbG9uZSBwcm9ncmFtIHRoYXQKKyAqIGNoZWNrcyBlbmNyeXB0 aW9uIHRlc3QgY2FzZXMgYWdhaW5zdCB0aGUgc3BlY2lmaWNhdGlvbiBkb2N1bWVudC4KKyAq CisgKiBXZSBoYXZlIHRvIHJlcGxhY2Ugc29tZSBmdW5jdGlvbnMgdGhhdCBhcmUgbm90IGF2 YWlsYWJsZSBpbiB0aGF0CisgKiBlbnZpcm9ubWVudC4KKyAqLworI2lmZGVmIFRFU1RfRU5D UllQVAorCisjZGVmaW5lIGxpYnBxX2dldHRleHQoeCkgKHgpCisjZGVmaW5lIGxpYnBxX2Fw cGVuZF9jb25uX2Vycm9yKGNvbm4sIC4uLikgZG8geyBmcHJpbnRmKHN0ZGVyciwgX19WQV9B UkdTX18pOyBmcHJpbnRmKHN0ZGVyciwgIlxuIik7IGV4aXQoMSk7IH0gd2hpbGUoMCkKKwor I2VuZGlmCQkJCQkJCS8qIFRFU1RfRU5DUllQVCAqLworCisKKy8qCisgKiBEZWNyeXB0IHRo ZSBDRUsgZ2l2ZW4gYnkgImZyb20iIGFuZCAiZnJvbWxlbiIgKGRhdGEgdHlwaWNhbGx5IHNl bnQgZnJvbSB0aGUKKyAqIHNlcnZlcikgdXNpbmcgdGhlIENNSyBpbiBjbWtmaWxlbmFtZS4K KyAqLwordW5zaWduZWQgY2hhciAqCitkZWNyeXB0X2Nla19mcm9tX2ZpbGUoUEdjb25uICpj b25uLCBjb25zdCBjaGFyICpjbWtmaWxlbmFtZSwgaW50IGNta2FsZywKKwkJCQkJICBpbnQg ZnJvbWxlbiwgY29uc3QgdW5zaWduZWQgY2hhciAqZnJvbSwKKwkJCQkJICBpbnQgKnRvbGVu KQoreworCWNvbnN0IEVWUF9NRCAqbWQgPSBOVUxMOworCUVWUF9QS0VZICAgKmtleSA9IE5V TEw7CisJUlNBCQkgICAqcnNhID0gTlVMTDsKKwlCSU8JCSAgICpiaW8gPSBOVUxMOworCUVW UF9QS0VZX0NUWCAqY3R4ID0gTlVMTDsKKwl1bnNpZ25lZCBjaGFyICpvdXQgPSBOVUxMOwor CXNpemVfdAkJb3V0bGVuOworCisJc3dpdGNoIChjbWthbGcpCisJeworCQljYXNlIFBHX0NN S19SU0FFU19PQUVQX1NIQV8xOgorCQkJbWQgPSBFVlBfc2hhMSgpOworCQkJYnJlYWs7CisJ CWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NjoKKwkJCW1kID0gRVZQX3NoYTI1Nigp OworCQkJYnJlYWs7CisJCWNhc2UgUEdfQ01LX1VOU1BFQ0lGSUVEOgorCQkJbGlicHFfYXBw ZW5kX2Nvbm5fZXJyb3IoY29ubiwgInVuc3BlY2lmaWVkIENNSyBhbGdvcml0aG0gbm90IHN1 cHBvcnRlZCB3aXRoIGZpbGUgbG9va3VwIHNjaGVtZSIpOworCQkJZ290byBmYWlsOworCQlk ZWZhdWx0OgorCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgInVuc3VwcG9ydGVk IENNSyBhbGdvcml0aG0gSUQ6ICVkIiwgY21rYWxnKTsKKwkJCWdvdG8gZmFpbDsKKwl9CisK KwliaW8gPSBCSU9fbmV3X2ZpbGUoY21rZmlsZW5hbWUsICJyIik7CisJaWYgKCFiaW8pCisJ eworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY291bGQgbm90IG9wZW4gZmls ZSBcIiVzXCI6ICVtIiwgY21rZmlsZW5hbWUpOworCQlnb3RvIGZhaWw7CisJfQorCisJcnNh ID0gUlNBX25ldygpOworCWlmICghcnNhKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJy b3IoY29ubiwgImNvdWxkIG5vdCBhbGxvY2F0ZSBSU0Egc3RydWN0dXJlOiAlcyIsCisJCQkJ CQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3Rv IGZhaWw7CisJfQorCS8qCisJICogTm90ZTogV2UgbXVzdCBnbyB0aHJvdWdoIEJJTyBhbmQg bm90IHNheSB1c2UgUEVNX3JlYWRfUlNBUHJpdmF0ZUtleSgpCisJICogZGlyZWN0bHkgb24g YSBGSUxFLiAgT3RoZXJ3aXNlLCB3ZSBnZXQgaW50byAibm8gT1BFTlNTTF9BcHBsaW5rIiBo ZWxsCisJICogb24gV2luZG93cyAod2hpY2ggaGFwcGVucyB3aGVuZXZlciB5b3UgcGFzcyBh IHN0ZGlvIGhhbmRsZSBmcm9tIHRoZQorCSAqIGFwcGxpY2F0aW9uIGludG8gT3BlblNTTCku CisJICovCisJcnNhID0gUEVNX3JlYWRfYmlvX1JTQVByaXZhdGVLZXkoYmlvLCAmcnNhLCBO VUxMLCBOVUxMKTsKKwlpZiAoIXJzYSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9y KGNvbm4sICJjb3VsZCBub3QgcmVhZCBSU0EgcHJpdmF0ZSBrZXk6ICVzIiwKKwkJCQkJCQkJ RVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFp bDsKKwl9CisKKwlrZXkgPSBFVlBfUEtFWV9uZXcoKTsKKwlpZiAoIWtleSkKKwl7CisJCWxp YnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb3VsZCBub3QgYWxsb2NhdGUgcHJpdmF0 ZSBrZXkgc3RydWN0dXJlOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5n KEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKCFFVlBfUEtF WV9hc3NpZ25fUlNBKGtleSwgcnNhKSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9y KGNvbm4sICJjb3VsZCBub3QgYXNzaWduIHByaXZhdGUga2V5OiAlcyIsCisJCQkJCQkJCUVS Ul9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7 CisJfQorCisJY3R4ID0gRVZQX1BLRVlfQ1RYX25ldyhrZXksIE5VTEwpOworCWlmICghY3R4 KQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBhbGxv Y2F0ZSBwdWJsaWMga2V5IGFsZ29yaXRobSBjb250ZXh0OiAlcyIsCisJCQkJCQkJCUVSUl9y ZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJ fQorCisJaWYgKEVWUF9QS0VZX2RlY3J5cHRfaW5pdChjdHgpIDw9IDApCisJeworCQlsaWJw cV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiZGVjcnlwdGlvbiBpbml0aWFsaXphdGlvbiBm YWlsZWQ6ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9l cnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoRVZQX1BLRVlfQ1RYX3NldF9y c2FfcGFkZGluZyhjdHgsIFJTQV9QS0NTMV9PQUVQX1BBRERJTkcpIDw9IDAgfHwKKwkJRVZQ X1BLRVlfQ1RYX3NldF9yc2FfbWdmMV9tZChjdHgsIG1kKSA8PSAwIHx8CisJCUVWUF9QS0VZ X0NUWF9zZXRfcnNhX29hZXBfbWQoY3R4LCBtZCkgPD0gMCkKKwl7CisJCWxpYnBxX2FwcGVu ZF9jb25uX2Vycm9yKGNvbm4sICJjb3VsZCBub3Qgc2V0IFJTQSBwYXJhbWV0ZXI6ICVzIiwK KwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJ CWdvdG8gZmFpbDsKKwl9CisKKwkvKiBnZXQgb3V0cHV0IGxlbmd0aCAqLworCWlmIChFVlBf UEtFWV9kZWNyeXB0KGN0eCwgTlVMTCwgJm91dGxlbiwgZnJvbSwgZnJvbWxlbikgPD0gMCkK Kwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJSU0EgZGVjcnlwdGlvbiBz ZXR1cCBmYWlsZWQ6ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJS X2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlvdXQgPSBtYWxsb2Mob3V0 bGVuKTsKKwlpZiAoIW91dCkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4s ICJvdXQgb2YgbWVtb3J5Iik7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoRVZQX1BLRVlf ZGVjcnlwdChjdHgsIG91dCwgJm91dGxlbiwgZnJvbSwgZnJvbWxlbikgPD0gMCkKKwl7CisJ CWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJSU0EgZGVjcnlwdGlvbiBmYWlsZWQ6 ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigp KSk7CisJCWZyZWUob3V0KTsKKwkJb3V0ID0gTlVMTDsKKwkJZ290byBmYWlsOworCX0KKwor CSp0b2xlbiA9IG91dGxlbjsKKworZmFpbDoKKwlFVlBfUEtFWV9DVFhfZnJlZShjdHgpOwor CUVWUF9QS0VZX2ZyZWUoa2V5KTsKKwlCSU9fZnJlZShiaW8pOworCisJcmV0dXJuIG91dDsK K30KKworCisvKgorICogVGhlIHJvdXRpbmVzIGJlbG93IGltcGxlbWVudCB0aGUgQUVBRCBh bGdvcml0aG1zIHNwZWNpZmllZCBpbgorICogPGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5v cmcvZG9jL2h0bWwvZHJhZnQtbWNncmV3LWFlYWQtYWVzLWNiYy1obWFjLXNoYTItMDU+Cisg KiBmb3IgZW5jcnlwdGluZyBhbmQgZGVjcnlwdGluZyBjb2x1bW4gdmFsdWVzLgorICovCisK KyNpZmRlZiBURVNUX0VOQ1JZUFQKKworLyoKKyAqIFRlc3QgZGF0YSBmcm9tCisgKiA8aHR0 cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1tY2dyZXctYWVhZC1h ZXMtY2JjLWhtYWMtc2hhMi0wNSNzZWN0aW9uLTU+CisgKi8KKworLyoKKyAqIFRoZSBkaWZm ZXJlbnQgdGVzdCBjYXNlcyBqdXN0IHVzZSBkaWZmZXJlbnQgcHJlZml4ZXMgb2YgSywgc28g b25lIGNvbnN0YW50CisgKiBpcyBlbm91Z2ggaGVyZS4KKyAqLworc3RhdGljIGNvbnN0IHVu c2lnbmVkIGNoYXIgS1tdID0geworCTB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4 MDUsIDB4MDYsIDB4MDcsIDB4MDgsIDB4MDksIDB4MGEsIDB4MGIsIDB4MGMsIDB4MGQsIDB4 MGUsIDB4MGYsCisJMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxNCwgMHgxNSwgMHgxNiwg MHgxNywgMHgxOCwgMHgxOSwgMHgxYSwgMHgxYiwgMHgxYywgMHgxZCwgMHgxZSwgMHgxZiwK KwkweDIwLCAweDIxLCAweDIyLCAweDIzLCAweDI0LCAweDI1LCAweDI2LCAweDI3LCAweDI4 LCAweDI5LCAweDJhLCAweDJiLCAweDJjLCAweDJkLCAweDJlLCAweDJmLAorCTB4MzAsIDB4 MzEsIDB4MzIsIDB4MzMsIDB4MzQsIDB4MzUsIDB4MzYsIDB4MzcsIDB4MzgsIDB4MzksIDB4 M2EsIDB4M2IsIDB4M2MsIDB4M2QsIDB4M2UsIDB4M2YsCit9OworCitzdGF0aWMgY29uc3Qg dW5zaWduZWQgY2hhciBQW10gPSB7CisJMHg0MSwgMHgyMCwgMHg2MywgMHg2OSwgMHg3MCwg MHg2OCwgMHg2NSwgMHg3MiwgMHgyMCwgMHg3MywgMHg3OSwgMHg3MywgMHg3NCwgMHg2NSwg MHg2ZCwgMHgyMCwKKwkweDZkLCAweDc1LCAweDczLCAweDc0LCAweDIwLCAweDZlLCAweDZm LCAweDc0LCAweDIwLCAweDYyLCAweDY1LCAweDIwLCAweDcyLCAweDY1LCAweDcxLCAweDc1 LAorCTB4NjksIDB4NzIsIDB4NjUsIDB4NjQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4 NjIsIDB4NjUsIDB4MjAsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NzIsIDB4NjUsCisJMHg3NCwg MHgyYywgMHgyMCwgMHg2MSwgMHg2ZSwgMHg2NCwgMHgyMCwgMHg2OSwgMHg3NCwgMHgyMCwg MHg2ZCwgMHg3NSwgMHg3MywgMHg3NCwgMHgyMCwgMHg2MiwKKwkweDY1LCAweDIwLCAweDYx LCAweDYyLCAweDZjLCAweDY1LCAweDIwLCAweDc0LCAweDZmLCAweDIwLCAweDY2LCAweDYx LCAweDZjLCAweDZjLCAweDIwLCAweDY5LAorCTB4NmUsIDB4NzQsIDB4NmYsIDB4MjAsIDB4 NzQsIDB4NjgsIDB4NjUsIDB4MjAsIDB4NjgsIDB4NjEsIDB4NmUsIDB4NjQsIDB4NzMsIDB4 MjAsIDB4NmYsIDB4NjYsCisJMHgyMCwgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg2NSwg MHg2ZSwgMHg2NSwgMHg2ZCwgMHg3OSwgMHgyMCwgMHg3NywgMHg2OSwgMHg3NCwgMHg2OCwg MHg2ZiwKKwkweDc1LCAweDc0LCAweDIwLCAweDY5LCAweDZlLCAweDYzLCAweDZmLCAweDZl LCAweDc2LCAweDY1LCAweDZlLCAweDY5LCAweDY1LCAweDZlLCAweDYzLCAweDY1LAorfTsK Kworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGVzdF9JVltdID0geworCTB4MWEsIDB4 ZjMsIDB4OGMsIDB4MmQsIDB4YzIsIDB4YjksIDB4NmYsIDB4ZmQsIDB4ZDgsIDB4NjYsIDB4 OTQsIDB4MDksIDB4MjMsIDB4NDEsIDB4YmMsIDB4MDQsCit9OworCitzdGF0aWMgY29uc3Qg dW5zaWduZWQgY2hhciB0ZXN0X0FbXSA9IHsKKwkweDU0LCAweDY4LCAweDY1LCAweDIwLCAw eDczLCAweDY1LCAweDYzLCAweDZmLCAweDZlLCAweDY0LCAweDIwLCAweDcwLCAweDcyLCAw eDY5LCAweDZlLCAweDYzLAorCTB4NjksIDB4NzAsIDB4NmMsIDB4NjUsIDB4MjAsIDB4NmYs IDB4NjYsIDB4MjAsIDB4NDEsIDB4NzUsIDB4NjcsIDB4NzUsIDB4NzMsIDB4NzQsIDB4NjUs IDB4MjAsCisJMHg0YiwgMHg2NSwgMHg3MiwgMHg2MywgMHg2YiwgMHg2OCwgMHg2ZiwgMHg2 NiwgMHg2NiwgMHg3MywKK307CisKKyNlbmRpZgkJCQkJCQkvKiBURVNUX0VOQ1JZUFQgKi8K KworCisvKgorICogR2V0IE9wZW5TU0wgY2lwaGVyIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhl IENFSyBhbGdvcml0aG0gbnVtYmVyLgorICovCitzdGF0aWMgY29uc3QgRVZQX0NJUEhFUiAq CitwZ19jZWthbGdfdG9fb3BlbnNzbF9jaXBoZXIoaW50IGNla2FsZykKK3sKKwljb25zdCBF VlBfQ0lQSEVSICpjaXBoZXI7CisKKwlzd2l0Y2ggKGNla2FsZykKKwl7CisJCWNhc2UgUEdf Q0VLX0FFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2OgorCQkJY2lwaGVyID0gRVZQX2Fl c18xMjhfY2JjKCk7CisJCQlicmVhazsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMTkyX0NC Q19ITUFDX1NIQV8zODQ6CisJCQljaXBoZXIgPSBFVlBfYWVzXzE5Ml9jYmMoKTsKKwkJCWJy ZWFrOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJ Y2FzZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTI6CisJCQljaXBoZXIg PSBFVlBfYWVzXzI1Nl9jYmMoKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJY2lwaGVy ID0gTlVMTDsKKwl9CisKKwlyZXR1cm4gY2lwaGVyOworfQorCisvKgorICogR2V0IE9wZW5T U0wgZGlnZXN0IChmb3IgTUFDKSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBDRUsgYWxnb3Jp dGhtIG51bWJlci4KKyAqLworc3RhdGljIGNvbnN0IEVWUF9NRCAqCitwZ19jZWthbGdfdG9f b3BlbnNzbF9tZChpbnQgY2VrYWxnKQoreworCWNvbnN0IEVWUF9NRCAqbWQ7CisKKwlzd2l0 Y2ggKGNla2FsZykKKwl7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1BQ19T SEFfMjU2OgorCQkJbWQgPSBFVlBfc2hhMjU2KCk7CisJCQlicmVhazsKKwkJY2FzZSBQR19D RUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQ6CisJCWNhc2UgUEdfQ0VLX0FFQURf QUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0OgorCQkJbWQgPSBFVlBfc2hhMzg0KCk7CisJCQli cmVhazsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTI6CisJ CQltZCA9IEVWUF9zaGE1MTIoKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJbWQgPSBO VUxMOworCX0KKworCXJldHVybiBtZDsKK30KKworLyoKKyAqIEdldCB0aGUgTUFDIGtleSBs ZW5ndGggKGluIG9jdGV0cykgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgQ0VLIGFsZ29yaXRo bSBudW1iZXIuCisgKgorICogVGhpcyBpcyBNQUNfS0VZX0xFTiBpbiB0aGUgbWNncmV3IHBh cGVyLgorICovCitzdGF0aWMgaW50CittZF9rZXlfbGVuZ3RoKGNvbnN0IEVWUF9NRCAqbWQp Cit7CisJaWYgKG1kID09IEVWUF9zaGEyNTYoKSkKKwkJcmV0dXJuIDE2OworCWVsc2UgaWYg KG1kID09IEVWUF9zaGEzODQoKSkKKwkJcmV0dXJuIDI0OworCWVsc2UgaWYgKG1kID09IEVW UF9zaGE1MTIoKSkKKwkJcmV0dXJuIDMyOworCWVsc2UKKwkJcmV0dXJuIC0xOworfQorCisv KgorICogR2V0IHRoZSBITUFDIG91dHB1dCBsZW5ndGggKGluIG9jdGV0cykgdGhhdCBjb3Jy ZXNwb25kcyB0byB0aGUgQ0VLCisgKiBhbGdvcml0aG0gbnVtYmVyLgorICovCitzdGF0aWMg aW50CittZF9oYXNoX2xlbmd0aChjb25zdCBFVlBfTUQgKm1kKQoreworCWlmIChtZCA9PSBF VlBfc2hhMjU2KCkpCisJCXJldHVybiAzMjsKKwllbHNlIGlmIChtZCA9PSBFVlBfc2hhMzg0 KCkpCisJCXJldHVybiA0ODsKKwllbHNlIGlmIChtZCA9PSBFVlBfc2hhNTEyKCkpCisJCXJl dHVybiA2NDsKKwllbHNlCisJCXJldHVybiAtMTsKK30KKworLyoKKyAqIExlbmd0aCBvZiBh c3NvY2lhdGVkIGRhdGEgKEEgaW4gbWNncmV3IHBhcGVyKQorICovCisjaWZuZGVmIFRFU1Rf RU5DUllQVAorI2RlZmluZSBQR19BRF9MRU4gNAorI2Vsc2UKKyNkZWZpbmUgUEdfQURfTEVO IHNpemVvZih0ZXN0X0EpCisjZW5kaWYKKworLyoKKyAqIENvbXB1dGUgbWVzc2FnZSBhdXRo ZW50aWNhdGlvbiB0YWcgKFQgaW4gdGhlIG1jZ3JldyBwYXBlciksIGZyb20gTUFDIGtleQor ICogYW5kIGNpcGhlcnRleHQuCisgKgorICogUmV0dXJucyBmYWxzZSBvbiBlcnJvciwgd2l0 aCBlcnJvciBtZXNzYWdlIGluIGVycm1zZ3AuCisgKi8KK3N0YXRpYyBib29sCitnZXRfbWVz c2FnZV9hdXRoX3RhZyhjb25zdCBFVlBfTUQgKm1kLAorCQkJCQkgY29uc3QgdW5zaWduZWQg Y2hhciAqbWFjX2tleSwgaW50IG1hY19rZXlfbGVuLAorCQkJCQkgY29uc3QgdW5zaWduZWQg Y2hhciAqZW5jciwgaW50IGVuY3JsZW4sCisJCQkJCSB1bnNpZ25lZCBjaGFyICptZF92YWx1 ZSwgc2l6ZV90ICptZF9sZW5fcCwKKwkJCQkJIGNvbnN0IGNoYXIgKiplcnJtc2dwKQorewor CXN0YXRpYyBjaGFyIG1zZ2J1ZlsxMDI0XTsKKwlFVlBfTURfQ1RYICpldnBfbWRfY3R4ID0g TlVMTDsKKwlFVlBfUEtFWSAgICpwa2V5ID0gTlVMTDsKKwlzaXplX3QJCWJ1ZnNpemU7CisJ dW5zaWduZWQgY2hhciAqYnVmID0gTlVMTDsKKwlpbnQ2NAkJYWw7CisJYm9vbAkJcmVzdWx0 ID0gZmFsc2U7CisKKwlpZiAoZW5jcmxlbiA8IDApCisJeworCQlzbnByaW50Zihtc2didWYs IHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJlbmNyeXB0ZWQgdmFsdWUg aGFzIGludmFsaWQgbGVuZ3RoIikpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBm YWlsOworCX0KKworCWV2cF9tZF9jdHggPSBFVlBfTURfQ1RYX25ldygpOworCisJcGtleSA9 IEVWUF9QS0VZX25ld19yYXdfcHJpdmF0ZV9rZXkoRVZQX1BLRVlfSE1BQywgTlVMTCwgbWFj X2tleSwgbWFjX2tleV9sZW4pOworCWlmICghcGtleSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1 Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBhbGxv Y2F0ZSBrZXkgZm9yIEhNQUM6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5n KEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWls OworCX0KKworCS8qCisJICogQnVpbGQgaW5wdXQgdG8gTUFDIGNhbGwgKEEgfHwgUyB8fCBB TCBpbiBtY2dyZXcgcGFwZXIpCisJICovCisJYnVmc2l6ZSA9IFBHX0FEX0xFTiArIGVuY3Js ZW4gKyBzaXplb2YoaW50NjQpOworCWJ1ZiA9IG1hbGxvYyhidWZzaXplKTsKKwlpZiAoIWJ1 ZikKKwl7CisJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgib3V0IG9mIG1lbW9yeSIpOwor CQlnb3RvIGZhaWw7CisJfQorCS8qIEEgKGFzc29jaWF0ZWQgZGF0YSkgKi8KKyNpZm5kZWYg VEVTVF9FTkNSWVBUCisJYnVmWzBdID0gJ1AnOworCWJ1ZlsxXSA9ICdHJzsKKwkqKGludDE2 ICopIChidWYgKyAyKSA9IHBnX2h0b24xNigxKTsKKyNlbHNlCisJbWVtY3B5KGJ1ZiwgdGVz dF9BLCBzaXplb2YodGVzdF9BKSk7CisjZW5kaWYKKwkvKiBTIChjaXBoZXJ0ZXh0KSAqLwor CW1lbWNweShidWYgKyBQR19BRF9MRU4sIGVuY3IsIGVuY3JsZW4pOworCS8qIEFMIChudW1i ZXIgb2YgKmJpdHMqIGluIEEpICovCisJYWwgPSBwZ19odG9uNjQoUEdfQURfTEVOICogOCk7 CisJbWVtY3B5KGJ1ZiArIFBHX0FEX0xFTiArIGVuY3JsZW4sICZhbCwgc2l6ZW9mKGFsKSk7 CisKKwkvKgorCSAqIENhbGwgTUFDCisJICovCisJaWYgKCFFVlBfRGlnZXN0U2lnbkluaXQo ZXZwX21kX2N0eCwgTlVMTCwgbWQsIE5VTEwsIHBrZXkpKQorCXsKKwkJc25wcmludGYobXNn YnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGlnZXN0IGluaXRp YWxpemF0aW9uIGZhaWxlZDogJXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmco RVJSX2dldF9lcnJvcigpKSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7 CisJfQorCisJaWYgKCFFVlBfRGlnZXN0U2lnblVwZGF0ZShldnBfbWRfY3R4LCBidWYsIGJ1 ZnNpemUpKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkg bGlicHFfZ2V0dGV4dCgiZGlnZXN0IHNpZ25pbmcgZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJf cmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBt c2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduRmluYWwo ZXZwX21kX2N0eCwgbWRfdmFsdWUsIG1kX2xlbl9wKSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1 Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImRpZ2VzdCBzaWduaW5n IGZhaWxlZDogJXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9l cnJvcigpKSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCUFz c2VydCgqbWRfbGVuX3AgPT0gbWRfaGFzaF9sZW5ndGgobWQpKTsKKworCS8qIHRydW5jYXRl IG91dHB1dCB0byBoYWxmIHRoZSBsZW5ndGgsIHBlciBzcGVjICovCisJKm1kX2xlbl9wIC89 IDI7CisKKwlyZXN1bHQgPSB0cnVlOworZmFpbDoKKwlmcmVlKGJ1Zik7CisJRVZQX1BLRVlf ZnJlZShwa2V5KTsKKwlFVlBfTURfQ1RYX2ZyZWUoZXZwX21kX2N0eCk7CisJcmV0dXJuIHJl c3VsdDsKK30KKworLyoKKyAqIERlY3J5cHQgYSBjb2x1bW4gdmFsdWUKKyAqLwordW5zaWdu ZWQgY2hhciAqCitkZWNyeXB0X3ZhbHVlKFBHcmVzdWx0ICpyZXMsIGNvbnN0IFBHQ0VLICpj ZWssIGludCBjZWthbGcsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBpbnQgaW5wdXRs ZW4sIGNvbnN0IGNoYXIgKiplcnJtc2dwKQoreworCXN0YXRpYyBjaGFyIG1zZ2J1ZlsxMDI0 XTsKKworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKml2ID0gTlVMTDsKKwlzaXplX3QJCWl2bGVu OworCisJY29uc3QgRVZQX0NJUEhFUiAqY2lwaGVyOworCWNvbnN0IEVWUF9NRCAqbWQ7CisJ RVZQX0NJUEhFUl9DVFggKmV2cF9jaXBoZXJfY3R4ID0gTlVMTDsKKwlpbnQJCQllbmNfa2V5 X2xlbjsKKwlpbnQJCQltYWNfa2V5X2xlbjsKKwlpbnQJCQlpdl9rZXlfbGVuOworCWludAkJ CWtleV9sZW47CisJY29uc3QgdW5zaWduZWQgY2hhciAqZW5jX2tleTsKKwljb25zdCB1bnNp Z25lZCBjaGFyICptYWNfa2V5OworCXVuc2lnbmVkIGNoYXIgbWRfdmFsdWVbRVZQX01BWF9N RF9TSVpFXTsKKwlzaXplX3QJCW1kX2xlbiA9IHNpemVvZihtZF92YWx1ZSk7CisJc2l6ZV90 CQlidWZzaXplOworCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IE5VTEw7CisJdW5zaWduZWQgY2hh ciAqZGVjcjsKKwlpbnQJCQlkZWNybGVuLAorCQkJCWRlY3JsZW4yOworCisJdW5zaWduZWQg Y2hhciAqcmVzdWx0ID0gTlVMTDsKKworCWNpcGhlciA9IHBnX2Nla2FsZ190b19vcGVuc3Ns X2NpcGhlcihjZWthbGcpOworCWlmICghY2lwaGVyKQorCXsKKwkJc25wcmludGYobXNnYnVm LCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgidW5yZWNvZ25pemVkIGVu Y3J5cHRpb24gYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVkIiksIGNla2FsZyk7CisJCSplcnJt c2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJbWQgPSBwZ19jZWthbGdfdG9f b3BlbnNzbF9tZChjZWthbGcpOworCWlmICghbWQpCisJeworCQlzbnByaW50Zihtc2didWYs IHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJ1bnJlY29nbml6ZWQgZGln ZXN0IGFsZ29yaXRobSBpZGVudGlmaWVyOiAlZCIpLCBjZWthbGcpOworCQkqZXJybXNncCA9 IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWV2cF9jaXBoZXJfY3R4ID0gRVZQX0NJ UEhFUl9DVFhfbmV3KCk7CisKKwlpZiAoIUVWUF9EZWNyeXB0SW5pdF9leChldnBfY2lwaGVy X2N0eCwgY2lwaGVyLCBOVUxMLCBOVUxMLCBOVUxMKSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1 Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImRlY3J5cHRpb24gaW5p dGlhbGl6YXRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmlu ZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFp bDsKKwl9CisKKwllbmNfa2V5X2xlbiA9IEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoZXZw X2NpcGhlcl9jdHgpOworCW1hY19rZXlfbGVuID0gaXZfa2V5X2xlbiA9IG1kX2tleV9sZW5n dGgobWQpOworCWtleV9sZW4gPSBtYWNfa2V5X2xlbiArIGVuY19rZXlfbGVuICsgaXZfa2V5 X2xlbjsKKworCWlmIChjZWstPmNla2RhdGFsZW4gIT0ga2V5X2xlbikKKwl7CisJCXNucHJp bnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImNvbHVt biBlbmNyeXB0aW9uIGtleSBoYXMgd3JvbmcgbGVuZ3RoIGZvciBhbGdvcml0aG0gKGhhczog JXp1LCByZXF1aXJlZDogJWQpIiksCisJCQkJIGNlay0+Y2VrZGF0YWxlbiwga2V5X2xlbik7 CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJbWFjX2tleSA9 IGNlay0+Y2VrZGF0YTsKKwllbmNfa2V5ID0gY2VrLT5jZWtkYXRhICsgbWFjX2tleV9sZW47 CisKKwlpZiAoIWdldF9tZXNzYWdlX2F1dGhfdGFnKG1kLCBtYWNfa2V5LCBtYWNfa2V5X2xl biwKKwkJCQkJCQkgIGlucHV0LCBpbnB1dGxlbiAtIChtZF9oYXNoX2xlbmd0aChtZCkgLyAy KSwKKwkJCQkJCQkgIG1kX3ZhbHVlLCAmbWRfbGVuLAorCQkJCQkJCSAgZXJybXNncCkpCisJ eworCQlnb3RvIGZhaWw7CisJfQorCisJLyogdXNlIGNvbnN0YW50LXRpbWUgY29tcGFyaXNv biwgcGVyIG1jZ3JldyBwYXBlciAqLworCWlmIChDUllQVE9fbWVtY21wKGlucHV0ICsgKGlu cHV0bGVuIC0gbWRfbGVuKSwgbWRfdmFsdWUsIG1kX2xlbikgIT0gMCkKKwl7CisJCSplcnJt c2dwID0gbGlicHFfZ2V0dGV4dCgiTUFDIG1pc21hdGNoIik7CisJCWdvdG8gZmFpbDsKKwl9 CisKKwlpdmxlbiA9IEVWUF9DSVBIRVJfQ1RYX2l2X2xlbmd0aChldnBfY2lwaGVyX2N0eCk7 CisJaXYgPSBpbnB1dDsKKwlpbnB1dCArPSBpdmxlbjsKKwlpbnB1dGxlbiAtPSBpdmxlbjsK KwlpZiAoIUVWUF9EZWNyeXB0SW5pdF9leChldnBfY2lwaGVyX2N0eCwgTlVMTCwgTlVMTCwg ZW5jX2tleSwgaXYpKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwK KwkJCQkgbGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlvbiBpbml0aWFsaXphdGlvbiBmYWlsZWQ6 ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkp OworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWJ1ZnNpemUg PSBpbnB1dGxlbiArIEVWUF9DSVBIRVJfQ1RYX2Jsb2NrX3NpemUoZXZwX2NpcGhlcl9jdHgp ICsgMTsKKyNpZm5kZWYgVEVTVF9FTkNSWVBUCisJYnVmID0gcHFSZXN1bHRBbGxvYyhyZXMs IGJ1ZnNpemUsIGZhbHNlKTsKKyNlbHNlCisJYnVmID0gbWFsbG9jKGJ1ZnNpemUpOworI2Vu ZGlmCisJaWYgKCFidWYpCisJeworCQkqZXJybXNncCA9IGxpYnBxX2dldHRleHQoIm91dCBv ZiBtZW1vcnkiKTsKKwkJZ290byBmYWlsOworCX0KKwlkZWNyID0gYnVmOworCWlmICghRVZQ X0RlY3J5cHRVcGRhdGUoZXZwX2NpcGhlcl9jdHgsIGRlY3IsICZkZWNybGVuLCBpbnB1dCwg aW5wdXRsZW4gLSBtZF9sZW4pKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNn YnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlvbiBmYWlsZWQ6ICVzIiksCisJ CQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJy bXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKwlpZiAoIUVWUF9EZWNyeXB0Rmlu YWxfZXgoZXZwX2NpcGhlcl9jdHgsIGRlY3IgKyBkZWNybGVuLCAmZGVjcmxlbjIpKQorCXsK KwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4 dCgiZGVjcnlwdGlvbiBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3Ry aW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBm YWlsOworCX0KKwlkZWNybGVuICs9IGRlY3JsZW4yOworCUFzc2VydChkZWNybGVuIDwgYnVm c2l6ZSk7CisJZGVjcltkZWNybGVuXSA9ICdcMCc7CisJcmVzdWx0ID0gZGVjcjsKKworZmFp bDoKKwlFVlBfQ0lQSEVSX0NUWF9mcmVlKGV2cF9jaXBoZXJfY3R4KTsKKworCXJldHVybiBy ZXN1bHQ7Cit9CisKKy8qCisgKiBDb21wdXRlIGEgc3ludGhldGljIGluaXRpYWxpemF0aW9u IHZlY3RvciAoU0lWKSwgZm9yIGRldGVybWluaXN0aWMKKyAqIGVuY3J5cHRpb24uCisgKgor ICogUGVyIHByb3RvY29sIHNwZWNpZmljYXRpb24sIHRoZSBTSVYgaXMgY29tcHV0ZWQgYXM6 CisgKgorICogU1VCU1RSSU5HKEhNQUMoSywgUCkgRk9SIElWTEVOKQorICovCisjaWZuZGVm IFRFU1RfRU5DUllQVAorc3RhdGljIGJvb2wKK21ha2Vfc2l2KFBHY29ubiAqY29ubiwKKwkJ IHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZsZW4sCisJCSBjb25zdCBFVlBfTUQgKm1k LAorCQkgY29uc3QgdW5zaWduZWQgY2hhciAqaXZfa2V5LCBpbnQgaXZfa2V5X2xlbiwKKwkJ IGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBsYWludGV4dCwgaW50IHBsYWludGV4dF9sZW4pCit7 CisJRVZQX01EX0NUWCAqZXZwX21kX2N0eCA9IE5VTEw7CisJRVZQX1BLRVkgICAqcGtleSA9 IE5VTEw7CisJdW5zaWduZWQgY2hhciBtZF92YWx1ZVtFVlBfTUFYX01EX1NJWkVdOworCXNp emVfdAkJbWRfbGVuID0gc2l6ZW9mKG1kX3ZhbHVlKTsKKwlib29sCQlyZXN1bHQgPSBmYWxz ZTsKKworCWV2cF9tZF9jdHggPSBFVlBfTURfQ1RYX25ldygpOworCisJcGtleSA9IEVWUF9Q S0VZX25ld19yYXdfcHJpdmF0ZV9rZXkoRVZQX1BLRVlfSE1BQywgTlVMTCwgaXZfa2V5LCBp dl9rZXlfbGVuKTsKKwlpZiAoIXBrZXkpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJv cihjb25uLCAiY291bGQgbm90IGFsbG9jYXRlIGtleSBmb3IgSE1BQzogJXMiLAorCQkJCQkJ CQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBm YWlsOworCX0KKworCWlmICghRVZQX0RpZ2VzdFNpZ25Jbml0KGV2cF9tZF9jdHgsIE5VTEws IG1kLCBOVUxMLCBwa2V5KSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4s ICJkaWdlc3QgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFz b25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQor CisJaWYgKCFFVlBfRGlnZXN0U2lnblVwZGF0ZShldnBfbWRfY3R4LCBwbGFpbnRleHQsIHBs YWludGV4dF9sZW4pKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImRp Z2VzdCBzaWduaW5nIGZhaWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0 cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmICghRVZQ X0RpZ2VzdFNpZ25GaW5hbChldnBfbWRfY3R4LCBtZF92YWx1ZSwgJm1kX2xlbikpCisJewor CQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiZGlnZXN0IHNpZ25pbmcgZmFpbGVk OiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3Io KSkpOworCQlnb3RvIGZhaWw7CisJfQorCUFzc2VydChtZF9sZW4gPT0gbWRfaGFzaF9sZW5n dGgobWQpKTsKKwltZW1jcHkoaXYsIG1kX3ZhbHVlLCBpdmxlbik7CisKKwlyZXN1bHQgPSB0 cnVlOworZmFpbDoKKwlFVlBfUEtFWV9mcmVlKHBrZXkpOworCUVWUF9NRF9DVFhfZnJlZShl dnBfbWRfY3R4KTsKKwlyZXR1cm4gcmVzdWx0OworfQorI2VuZGlmCQkJCQkJCS8qIFRFU1Rf RU5DUllQVCAqLworCisvKgorICogRW5jcnlwdCBhIGNvbHVtbiB2YWx1ZQorICovCit1bnNp Z25lZCBjaGFyICoKK2VuY3J5cHRfdmFsdWUoUEdjb25uICpjb25uLCBjb25zdCBQR0NFSyAq Y2VrLCBpbnQgY2VrYWxnLCBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50ICpuYnl0 ZXNwLCBib29sIGVuY19kZXQpCit7CisJaW50CQkJbmJ5dGVzID0gKm5ieXRlc3A7CisJdW5z aWduZWQgY2hhciBpdltFVlBfTUFYX0lWX0xFTkdUSF07CisJc2l6ZV90CQlpdmxlbjsKKwlj b25zdCBFVlBfQ0lQSEVSICpjaXBoZXI7CisJY29uc3QgRVZQX01EICptZDsKKwlFVlBfQ0lQ SEVSX0NUWCAqZXZwX2NpcGhlcl9jdHggPSBOVUxMOworCWludAkJCWVuY19rZXlfbGVuOwor CWludAkJCW1hY19rZXlfbGVuOworCWludAkJCWl2X2tleV9sZW47CisJaW50CQkJa2V5X2xl bjsKKwljb25zdCB1bnNpZ25lZCBjaGFyICplbmNfa2V5OworCWNvbnN0IHVuc2lnbmVkIGNo YXIgKm1hY19rZXk7CisJY29uc3QgdW5zaWduZWQgY2hhciAqaXZfa2V5OworCXNpemVfdAkJ YnVmc2l6ZTsKKwl1bnNpZ25lZCBjaGFyICpidWYgPSBOVUxMOworCXVuc2lnbmVkIGNoYXIg KmVuY3I7CisJaW50CQkJZW5jcmxlbiwKKwkJCQllbmNybGVuMjsKKworCWNvbnN0IGNoYXIg KmVycm1zZzsKKwl1bnNpZ25lZCBjaGFyIG1kX3ZhbHVlW0VWUF9NQVhfTURfU0laRV07CisJ c2l6ZV90CQltZF9sZW4gPSBzaXplb2YobWRfdmFsdWUpOworCXNpemVfdAkJYnVmMnNpemU7 CisJdW5zaWduZWQgY2hhciAqYnVmMiA9IE5VTEw7CisKKwl1bnNpZ25lZCBjaGFyICpyZXN1 bHQgPSBOVUxMOworCisJY2lwaGVyID0gcGdfY2VrYWxnX3RvX29wZW5zc2xfY2lwaGVyKGNl a2FsZyk7CisJaWYgKCFjaXBoZXIpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihj b25uLCAidW5yZWNvZ25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVk IiwgY2VrYWxnKTsKKwkJZ290byBmYWlsOworCX0KKworCW1kID0gcGdfY2VrYWxnX3RvX29w ZW5zc2xfbWQoY2VrYWxnKTsKKwlpZiAoIW1kKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5f ZXJyb3IoY29ubiwgInVucmVjb2duaXplZCBkaWdlc3QgYWxnb3JpdGhtIGlkZW50aWZpZXI6 ICVkIiwgY2VrYWxnKTsKKwkJZ290byBmYWlsOworCX0KKworCWV2cF9jaXBoZXJfY3R4ID0g RVZQX0NJUEhFUl9DVFhfbmV3KCk7CisKKwlpZiAoIUVWUF9FbmNyeXB0SW5pdF9leChldnBf Y2lwaGVyX2N0eCwgY2lwaGVyLCBOVUxMLCBOVUxMLCBOVUxMKSkKKwl7CisJCWxpYnBxX2Fw cGVuZF9jb25uX2Vycm9yKGNvbm4sICJlbmNyeXB0aW9uIGluaXRpYWxpemF0aW9uIGZhaWxl ZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9y KCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWVuY19rZXlfbGVuID0gRVZQX0NJUEhFUl9D VFhfa2V5X2xlbmd0aChldnBfY2lwaGVyX2N0eCk7CisJbWFjX2tleV9sZW4gPSBpdl9rZXlf bGVuID0gbWRfa2V5X2xlbmd0aChtZCk7CisJa2V5X2xlbiA9IG1hY19rZXlfbGVuICsgZW5j X2tleV9sZW4gKyBpdl9rZXlfbGVuOworCisJaWYgKGNlay0+Y2VrZGF0YWxlbiAhPSBrZXlf bGVuKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvbHVtbiBlbmNy eXB0aW9uIGtleSBoYXMgd3JvbmcgbGVuZ3RoIGZvciBhbGdvcml0aG0gKGhhczogJXp1LCBy ZXF1aXJlZDogJWQpIiwKKwkJCQkJCQkJY2VrLT5jZWtkYXRhbGVuLCBrZXlfbGVuKTsKKwkJ Z290byBmYWlsOworCX0KKworCW1hY19rZXkgPSBjZWstPmNla2RhdGE7CisJZW5jX2tleSA9 IGNlay0+Y2VrZGF0YSArIG1hY19rZXlfbGVuOworCWl2X2tleSA9IGNlay0+Y2VrZGF0YSAr IG1hY19rZXlfbGVuICsgZW5jX2tleV9sZW47CisKKwlpdmxlbiA9IEVWUF9DSVBIRVJfQ1RY X2l2X2xlbmd0aChldnBfY2lwaGVyX2N0eCk7CisJQXNzZXJ0KGl2bGVuIDw9IHNpemVvZihp dikpOworCWlmIChlbmNfZGV0KQorCXsKKyNpZm5kZWYgVEVTVF9FTkNSWVBUCisJCW1ha2Vf c2l2KGNvbm4sIGl2LCBpdmxlbiwgbWQsIGl2X2tleSwgaXZfa2V5X2xlbiwgdmFsdWUsIG5i eXRlcyk7CisjZWxzZQorCQkodm9pZCkgaXZfa2V5OwkvKiB1bnVzZWQgKi8KKwkJbWVtY3B5 KGl2LCB0ZXN0X0lWLCBpdmxlbik7CisjZW5kaWYKKwl9CisJZWxzZQorCQlwZ19zdHJvbmdf cmFuZG9tKGl2LCBpdmxlbik7CisJaWYgKCFFVlBfRW5jcnlwdEluaXRfZXgoZXZwX2NpcGhl cl9jdHgsIE5VTEwsIE5VTEwsIGVuY19rZXksIGl2KSkKKwl7CisJCWxpYnBxX2FwcGVuZF9j b25uX2Vycm9yKGNvbm4sICJlbmNyeXB0aW9uIGluaXRpYWxpemF0aW9uIGZhaWxlZDogJXMi LAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsK KwkJZ290byBmYWlsOworCX0KKworCWJ1ZnNpemUgPSBpdmxlbiArIChuYnl0ZXMgKyAyICog RVZQX0NJUEhFUl9DVFhfYmxvY2tfc2l6ZShldnBfY2lwaGVyX2N0eCkgLSAxKTsKKwlidWYg PSBtYWxsb2MoYnVmc2l6ZSk7CisJaWYgKCFidWYpCisJeworCQlsaWJwcV9hcHBlbmRfY29u bl9lcnJvcihjb25uLCAib3V0IG9mIG1lbW9yeSIpOworCQlnb3RvIGZhaWw7CisJfQorCW1l bWNweShidWYsIGl2LCBpdmxlbik7CisJZW5jciA9IGJ1ZiArIGl2bGVuOworCWlmICghRVZQ X0VuY3J5cHRVcGRhdGUoZXZwX2NpcGhlcl9jdHgsIGVuY3IsICZlbmNybGVuLCB2YWx1ZSwg bmJ5dGVzKSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJlbmNyeXB0 aW9uIGZhaWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJf Z2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKwlpZiAoIUVWUF9FbmNyeXB0Rmlu YWxfZXgoZXZwX2NpcGhlcl9jdHgsIGVuY3IgKyBlbmNybGVuLCAmZW5jcmxlbjIpKQorCXsK KwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImVuY3J5cHRpb24gZmFpbGVkOiAl cyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkp OworCQlnb3RvIGZhaWw7CisJfQorCWVuY3JsZW4gKz0gZW5jcmxlbjI7CisKKwllbmNyIC09 IGl2bGVuOworCWVuY3JsZW4gKz0gaXZsZW47CisKKwlBc3NlcnQoZW5jcmxlbiA8PSBidWZz aXplKTsKKworCWlmICghZ2V0X21lc3NhZ2VfYXV0aF90YWcobWQsIG1hY19rZXksIG1hY19r ZXlfbGVuLAorCQkJCQkJCSAgZW5jciwgZW5jcmxlbiwKKwkJCQkJCQkgIG1kX3ZhbHVlLCAm bWRfbGVuLAorCQkJCQkJCSAgJmVycm1zZykpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigm Y29ubi0+ZXJyb3JNZXNzYWdlLCAiJXNcbiIsIGVycm1zZyk7CisJCWdvdG8gZmFpbDsKKwl9 CisKKwlidWYyc2l6ZSA9IGVuY3JsZW4gKyBtZF9sZW47CisJYnVmMiA9IG1hbGxvYyhidWYy c2l6ZSk7CisJaWYgKCFidWYyKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29u biwgIm91dCBvZiBtZW1vcnkiKTsKKwkJZ290byBmYWlsOworCX0KKwltZW1jcHkoYnVmMiwg ZW5jciwgZW5jcmxlbik7CisJbWVtY3B5KGJ1ZjIgKyBlbmNybGVuLCBtZF92YWx1ZSwgbWRf bGVuKTsKKworCXJlc3VsdCA9IGJ1ZjI7CisJbmJ5dGVzID0gYnVmMnNpemU7CisKK2ZhaWw6 CisJZnJlZShidWYpOworCUVWUF9DSVBIRVJfQ1RYX2ZyZWUoZXZwX2NpcGhlcl9jdHgpOwor CisJKm5ieXRlc3AgPSBuYnl0ZXM7CisJcmV0dXJuIHJlc3VsdDsKK30KKworCisvKgorICog UnVuIHRlc3QgY2FzZXMKKyAqLworI2lmZGVmIFRFU1RfRU5DUllQVAorCitzdGF0aWMgdm9p ZAorZGVidWdfcHJpbnRfaGV4KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHVuc2lnbmVkIGNo YXIgKnZhbCwgaW50IGxlbikKK3sKKwlwcmludGYoIiVzID0iLCBuYW1lKTsKKwlmb3IgKGlu dCBpID0gMDsgaSA8IGxlbjsgaSsrKQorCXsKKwkJaWYgKGkgJSAxNiA9PSAwKQorCQkJcHJp bnRmKCJcbiIpOworCQllbHNlCisJCQlwcmludGYoIiAiKTsKKwkJcHJpbnRmKCIlMDJ4Iiwg dmFsW2ldKTsKKwl9CisJcHJpbnRmKCJcbiIpOworfQorCisvKgorICogSyBhbmQgUCBhcmUg ZnJvbSB0aGUgbWNncmV3IHBhcGVyLCBLX2xlbiBhbmQgUF9sZW4gYXJlIHRoZWlyIHJlc3Bl Y3RpdmUKKyAqIGxlbmd0aHMuICBlbmNyeXB0X3ZhbHVlKCkgcmVxdWlyZXMgdGhlIGtleSBs ZW5ndGggdG8gY29udGFpbiB0aGUgSVYga2V5LCBzbworICogd2UgcGFzcyBpdCBoZXJlLCB0 b28sIGJ1dCBpdCB3aWxsIG5vdCBiZSB1c2VkLgorICovCitzdGF0aWMgdm9pZAordGVzdF9j YXNlKGludCBhbGcsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKkssIHNpemVfdCBLX2xlbiwgc2l6 ZV90IElWX2tleV9sZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKlAsIHNpemVfdCBQX2xlbikK K3sKKwl1bnNpZ25lZCBjaGFyICpDOworCWludAkJCW5ieXRlczsKKwlQR0NFSwkJY2VrOwor CisJbmJ5dGVzID0gUF9sZW47CisJY2VrLmNla2RhdGFsZW4gPSBLX2xlbiArIElWX2tleV9s ZW47CisJY2VrLmNla2RhdGEgPSBtYWxsb2MoY2VrLmNla2RhdGFsZW4pOworCW1lbWNweShj ZWsuY2VrZGF0YSwgSywgS19sZW4pOworCisJQyA9IGVuY3J5cHRfdmFsdWUoTlVMTCwgJmNl aywgYWxnLCBQLCAmbmJ5dGVzLCB0cnVlKTsKKwlkZWJ1Z19wcmludF9oZXgoIkMiLCBDLCBu Ynl0ZXMpOworfQorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCXBy aW50ZigiNS4xXG4iKTsKKwl0ZXN0X2Nhc2UoUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1B Q19TSEFfMjU2LCBLLCAzMiwgMTYsIFAsIHNpemVvZihQKSk7CisJcHJpbnRmKCI1LjJcbiIp OworCXRlc3RfY2FzZShQR19DRUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQsIEss IDQ4LCAyNCwgUCwgc2l6ZW9mKFApKTsKKwlwcmludGYoIjUuM1xuIik7CisJdGVzdF9jYXNl KFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NCwgSywgNTYsIDI0LCBQLCBz aXplb2YoUCkpOworCXByaW50ZigiNS40XG4iKTsKKwl0ZXN0X2Nhc2UoUEdfQ0VLX0FFQURf QUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEyLCBLLCA2NCwgMzIsIFAsIHNpemVvZihQKSk7CisK KwlyZXR1cm4gMDsKK30KKworI2VuZGlmCQkJCQkJCS8qIFRFU1RfRU5DUllQVCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oIGIvc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLjBiNjVmOTEzZGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1lbmNyeXB0LmgKQEAgLTAsMCArMSwzMyBAQAorLyotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKgorICogZmUtZW5jcnlwdC5oCisgKgorICogY2xpZW50LXNpZGUgY29sdW1u IGVuY3J5cHRpb24gc3VwcG9ydAorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5 Ni0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1lbmNyeXB0LmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisj aWZuZGVmIEZFX0VOQ1JZUFRfSAorI2RlZmluZSBGRV9FTkNSWVBUX0gKKworI2luY2x1ZGUg ImxpYnBxLWZlLmgiCisjaW5jbHVkZSAibGlicHEtaW50LmgiCisKK2V4dGVybiB1bnNpZ25l ZCBjaGFyICpkZWNyeXB0X2Nla19mcm9tX2ZpbGUoUEdjb25uICpjb25uLCBjb25zdCBjaGFy ICpjbWtmaWxlbmFtZSwgaW50IGNta2FsZywKKwkJCQkJCQkJCQkJaW50IGZyb21sZW4sIGNv bnN0IHVuc2lnbmVkIGNoYXIgKmZyb20sCisJCQkJCQkJCQkJCWludCAqdG9sZW4pOworCitl eHRlcm4gdW5zaWduZWQgY2hhciAqZGVjcnlwdF92YWx1ZShQR3Jlc3VsdCAqcmVzLCBjb25z dCBQR0NFSyAqY2VrLCBpbnQgY2VrYWxnLAorCQkJCQkJCQkJY29uc3QgdW5zaWduZWQgY2hh ciAqaW5wdXQsIGludCBpbnB1dGxlbiwKKwkJCQkJCQkJCWNvbnN0IGNoYXIgKiplcnJtc2dw KTsKKworZXh0ZXJuIHVuc2lnbmVkIGNoYXIgKmVuY3J5cHRfdmFsdWUoUEdjb25uICpjb25u LCBjb25zdCBQR0NFSyAqY2VrLCBpbnQgY2VrYWxnLAorCQkJCQkJCQkJY29uc3QgdW5zaWdu ZWQgY2hhciAqdmFsdWUsIGludCAqbmJ5dGVzcCwgYm9vbCBlbmNfZGV0KTsKKworI2VuZGlm CQkJCQkJCS8qIEZFX0VOQ1JZUFRfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtZXhlYy5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCmluZGV4 IGVjNjI1NTBlMzguLjdjN2UyYmFjMTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLWV4ZWMuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKQEAg LTI0LDYgKzI0LDggQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNlbmRpZgogCisjaW5jbHVk ZSAiY29tbW9uL2NvbGVuYy5oIgorI2luY2x1ZGUgImZlLWVuY3J5cHQuaCIKICNpbmNsdWRl ICJsaWJwcS1mZS5oIgogI2luY2x1ZGUgImxpYnBxLWludC5oIgogI2luY2x1ZGUgIm1iL3Bn X3djaGFyLmgiCkBAIC03Miw3ICs3NCw4IEBAIHN0YXRpYyBpbnQJUFFzZW5kUXVlcnlHdXRz KFBHY29ubiAqY29ubiwKIAkJCQkJCQljb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMs CiAJCQkJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkJCQkJY29uc3QgaW50ICpw YXJhbUZvcm1hdHMsCi0JCQkJCQkJaW50IHJlc3VsdEZvcm1hdCk7CisJCQkJCQkJaW50IHJl c3VsdEZvcm1hdCwKKwkJCQkJCQlQR3Jlc3VsdCAqcGFyYW1EZXNjKTsKIHN0YXRpYyB2b2lk IHBhcnNlSW5wdXQoUEdjb25uICpjb25uKTsKIHN0YXRpYyBQR3Jlc3VsdCAqZ2V0Q29weVJl c3VsdChQR2Nvbm4gKmNvbm4sIEV4ZWNTdGF0dXNUeXBlIGNvcHl0eXBlKTsKIHN0YXRpYyBi b29sIFBRZXhlY1N0YXJ0KFBHY29ubiAqY29ubik7CkBAIC0xMTgzLDYgKzExODYsNDE0IEBA IHBxU2F2ZVBhcmFtZXRlclN0YXR1cyhQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKm5hbWUs IGNvbnN0IGNoYXIgKnZhbHVlKQogCX0KIH0KIAorLyoKKyAqIHBxU2F2ZUNvbHVtbk1hc3Rl cktleSAtIHNhdmUgY29sdW1uIG1hc3RlciBrZXkgc2VudCBieSBiYWNrZW5kCisgKi8KK2lu dAorcHFTYXZlQ29sdW1uTWFzdGVyS2V5KFBHY29ubiAqY29ubiwgaW50IGtleWlkLCBjb25z dCBjaGFyICprZXluYW1lLAorCQkJCQkgIGNvbnN0IGNoYXIgKmtleXJlYWxtKQoreworCWNo YXIJICAgKmtleW5hbWVfY29weTsKKwljaGFyCSAgICprZXlyZWFsbV9jb3B5OworCWJvb2wJ CWZvdW5kOworCisJa2V5bmFtZV9jb3B5ID0gc3RyZHVwKGtleW5hbWUpOworCWlmICgha2V5 bmFtZV9jb3B5KQorCQlyZXR1cm4gRU9GOworCWtleXJlYWxtX2NvcHkgPSBzdHJkdXAoa2V5 cmVhbG0pOworCWlmICgha2V5cmVhbG1fY29weSkKKwl7CisJCWZyZWUoa2V5bmFtZV9jb3B5 KTsKKwkJcmV0dXJuIEVPRjsKKwl9CisKKwlmb3VuZCA9IGZhbHNlOworCWZvciAoaW50IGkg PSAwOyBpIDwgY29ubi0+bmNta3M7IGkrKykKKwl7CisJCXN0cnVjdCBwZ19jbWsgKmNoZWNr Y21rID0gJmNvbm4tPmNta3NbaV07CisKKwkJLyogcmVwbGFjZSBleGlzdGluZz8gKi8KKwkJ aWYgKGNoZWNrY21rLT5jbWtpZCA9PSBrZXlpZCkKKwkJeworCQkJZnJlZShjaGVja2Ntay0+ Y21rbmFtZSk7CisJCQlmcmVlKGNoZWNrY21rLT5jbWtyZWFsbSk7CisJCQljaGVja2Ntay0+ Y21rbmFtZSA9IGtleW5hbWVfY29weTsKKwkJCWNoZWNrY21rLT5jbWtyZWFsbSA9IGtleXJl YWxtX2NvcHk7CisJCQlmb3VuZCA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCX0KKworCS8q IGFwcGVuZCBuZXc/ICovCisJaWYgKCFmb3VuZCkKKwl7CisJCWludAkJCW5ld25jbWtzOwor CQlzdHJ1Y3QgcGdfY21rICpuZXdjbWtzOworCQlzdHJ1Y3QgcGdfY21rICpuZXdjbWs7CisK KwkJbmV3bmNta3MgPSBjb25uLT5uY21rcyArIDE7CisJCWlmIChuZXduY21rcyA8PSAwKQor CQkJcmV0dXJuIEVPRjsKKwkJbmV3Y21rcyA9IHJlYWxsb2MoY29ubi0+Y21rcywgbmV3bmNt a3MgKiBzaXplb2Yoc3RydWN0IHBnX2NtaykpOworCQlpZiAoIW5ld2Nta3MpCisJCXsKKwkJ CWZyZWUoa2V5bmFtZV9jb3B5KTsKKwkJCWZyZWUoa2V5cmVhbG1fY29weSk7CisJCQlyZXR1 cm4gRU9GOworCQl9CisKKwkJbmV3Y21rID0gJm5ld2Nta3NbbmV3bmNta3MgLSAxXTsKKwkJ bmV3Y21rLT5jbWtpZCA9IGtleWlkOworCQluZXdjbWstPmNta25hbWUgPSBrZXluYW1lX2Nv cHk7CisJCW5ld2Ntay0+Y21rcmVhbG0gPSBrZXlyZWFsbV9jb3B5OworCisJCWNvbm4tPm5j bWtzID0gbmV3bmNta3M7CisJCWNvbm4tPmNta3MgPSBuZXdjbWtzOworCX0KKworCXJldHVy biAwOworfQorCisvKgorICogUmVwbGFjZSBwbGFjZWhvbGRlcnMgaW4gaW5wdXQgc3RyaW5n LiAgUmV0dXJuIHZhbHVlIG1hbGxvYydlZC4KKyAqLworc3RhdGljIGNoYXIgKgorcmVwbGFj ZV9jbWtfcGxhY2Vob2xkZXJzKGNvbnN0IGNoYXIgKmluLCBjb25zdCBjaGFyICpjbWtuYW1l LCBjb25zdCBjaGFyICpjbWtyZWFsbSwgaW50IGNta2FsZywgY29uc3QgY2hhciAqdG1wZmls ZSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEgYnVmOworCisJaW5pdFBRRXhwQnVmZmVyKCZidWYp OworCisJZm9yIChjb25zdCBjaGFyICpwID0gaW47ICpwOyBwKyspCisJeworCQlpZiAocFsw XSA9PSAnJScpCisJCXsKKwkJCXN3aXRjaCAocFsxXSkKKwkJCXsKKwkJCQljYXNlICdhJzoK KwkJCQkJeworCQkJCQkJY29uc3QgY2hhciAqcyA9IGdldF9jbWthbGdfbmFtZShjbWthbGcp OworCisJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCBzID8gcyA6ICJJTlZBTElE Iik7CisJCQkJCX0KKwkJCQkJcCsrOworCQkJCQlicmVhazsKKwkJCQljYXNlICdqJzoKKwkJ CQkJeworCQkJCQkJY29uc3QgY2hhciAqcyA9IGdldF9jbWthbGdfandhX25hbWUoY21rYWxn KTsKKworCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgcyA/IHMgOiAiSU5WQUxJ RCIpOworCQkJCQl9CisJCQkJCXArKzsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSAnayc6CisJ CQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsIGNta25hbWUpOworCQkJCQlwKys7CisJ CQkJCWJyZWFrOworCQkJCWNhc2UgJ3AnOgorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigm YnVmLCB0bXBmaWxlKTsKKwkJCQkJcCsrOworCQkJCQlicmVhazsKKwkJCQljYXNlICdyJzoK KwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgY21rcmVhbG0pOworCQkJCQlwKys7 CisJCQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyQ2hh cigmYnVmLCBwWzBdKTsKKwkJCX0KKwkJfQorCQllbHNlCisJCQlhcHBlbmRQUUV4cEJ1ZmZl ckNoYXIoJmJ1ZiwgcFswXSk7CisJfQorCisJcmV0dXJuIGJ1Zi5kYXRhOworfQorCisjaWZu ZGVmIFVTRV9TU0wKKy8qCisgKiBEdW1teSBpbXBsZW1lbnRhdGlvbiBmb3Igbm9uLVNTTCBi dWlsZHMKKyAqLwordW5zaWduZWQgY2hhciAqCitkZWNyeXB0X2Nla19mcm9tX2ZpbGUoUEdj b25uICpjb25uLCBjb25zdCBjaGFyICpjbWtmaWxlbmFtZSwgaW50IGNta2FsZywKKwkJCQkJ ICBpbnQgZnJvbWxlbiwgY29uc3QgdW5zaWduZWQgY2hhciAqZnJvbSwKKwkJCQkJICBpbnQg KnRvbGVuKQoreworCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb2x1bW4gZW5j cnlwdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGQiKTsKKwlyZXR1cm4gTlVMTDsK K30KKyNlbmRpZgorCisvKgorICogRGVjcnlwdCBhIENFSyB1c2luZyB0aGUgZ2l2ZW4gQ01L LiAgVGhlIGNpcGhlcnRleHQgaXMgcGFzc2VkIGluCisgKiAiZnJvbSIgYW5kICJmcm9tbGVu Ii4gIFJldHVybiB0aGUgZGVjcnlwdGVkIHZhbHVlIGluIGEgbWFsbG9jJ2VkIGFyZWEsIGl0 cworICogbGVuZ3RoIHZpYSAidG9sZW4iLiAgUmV0dXJuIE5VTEwgb24gZXJyb3I7IGFkZCBl cnJvciBtZXNzYWdlcyBkaXJlY3RseSB0bworICogImNvbm4iLgorICovCitzdGF0aWMgdW5z aWduZWQgY2hhciAqCitkZWNyeXB0X2NlayhQR2Nvbm4gKmNvbm4sIGNvbnN0IFBHQ01LICpj bWssIGludCBjbWthbGcsCisJCQlpbnQgZnJvbWxlbiwgY29uc3QgdW5zaWduZWQgY2hhciAq ZnJvbSwKKwkJCWludCAqdG9sZW4pCit7CisJY2hhcgkgICAqY21rbG9va3VwOworCWJvb2wJ CWZvdW5kID0gZmFsc2U7CisJdW5zaWduZWQgY2hhciAqcmVzdWx0ID0gTlVMTDsKKworCWNt a2xvb2t1cCA9IHN0cmR1cChjb25uLT5jbWtsb29rdXAgPyBjb25uLT5jbWtsb29rdXAgOiAi Iik7CisKKwlpZiAoIWNta2xvb2t1cCkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9y KGNvbm4sICJvdXQgb2YgbWVtb3J5Iik7CisJCXJldHVybiBOVUxMOworCX0KKworCS8qCisJ ICogQW5hbHl6ZSBzZW1pY29sb24tc2VwYXJhdGVkIGxpc3QKKwkgKi8KKwlmb3IgKGNoYXIg KnMgPSBzdHJ0b2soY21rbG9va3VwLCAiOyIpOyBzOyBzID0gc3RydG9rKE5VTEwsICI7Iikp CisJeworCQljaGFyCSAgICpzZXA7CisKKwkJLyogc3BsaXQgZm91bmQgdG9rZW4gYXQgJz0n ICovCisJCXNlcCA9IHN0cmNocihzLCAnPScpOworCQlpZiAoIXNlcCkKKwkJeworCQkJbGli cHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgInN5bnRheCBlcnJvciBpbiBDTUsgbG9va3Vw IHNwZWNpZmljYXRpb24sIG1pc3NpbmcgXCIlY1wiOiAlcyIsICc9Jywgcyk7CisJCQlicmVh azsKKwkJfQorCisJCS8qIG1hdGNoaW5nIHJlYWxtPyAqLworCQlpZiAoc3RybmNtcChzLCAi KiIsIHNlcCAtIHMpID09IDAgfHwgc3RybmNtcChzLCBjbWstPmNta3JlYWxtLCBzZXAgLSBz KSA9PSAwKQorCQl7CisJCQljaGFyCSAgICpzZXAyOworCisJCQlmb3VuZCA9IHRydWU7CisK KwkJCXNlcDIgPSBzdHJjaHIoc2VwLCAnOicpOworCQkJaWYgKCFzZXAyKQorCQkJeworCQkJ CWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJzeW50YXggZXJyb3IgaW4gQ01LIGxv b2t1cCBzcGVjaWZpY2F0aW9uLCBtaXNzaW5nIFwiJWNcIjogJXMiLCAnOicsIHMpOworCQkJ CWdvdG8gZmFpbDsKKwkJCX0KKworCQkJaWYgKHN0cm5jbXAoc2VwICsgMSwgImZpbGUiLCBz ZXAyIC0gKHNlcCArIDEpKSA9PSAwKQorCQkJeworCQkJCWNoYXIJICAgKmNta2ZpbGVuYW1l OworCisJCQkJY21rZmlsZW5hbWUgPSByZXBsYWNlX2Nta19wbGFjZWhvbGRlcnMoc2VwMiAr IDEsIGNtay0+Y21rbmFtZSwgY21rLT5jbWtyZWFsbSwgY21rYWxnLCAiSU5WQUxJRCIpOwor CQkJCXJlc3VsdCA9IGRlY3J5cHRfY2VrX2Zyb21fZmlsZShjb25uLCBjbWtmaWxlbmFtZSwg Y21rYWxnLCBmcm9tbGVuLCBmcm9tLCB0b2xlbik7CisJCQkJZnJlZShjbWtmaWxlbmFtZSk7 CisJCQl9CisJCQllbHNlIGlmIChzdHJuY21wKHNlcCArIDEsICJydW4iLCBzZXAyIC0gKHNl cCArIDEpKSA9PSAwKQorCQkJeworCQkJCWNoYXIJCXRtcGZpbGVbTUFYUEdQQVRIXSA9IHsw fTsKKwkJCQlpbnQJCQlmZDsKKwkJCQljaGFyCSAgICpjb21tYW5kOworCQkJCUZJTEUJICAg KmZwOworCQkJCS8qIG9ubHkgbmVlZHMgZW5vdWdoIHJvb20gZm9yIENFSyBrZXkgbWF0ZXJp YWwgKi8KKwkJCQljaGFyCQlidWZbMTAyNF07CisJCQkJc2l6ZV90CQlucmVhZDsKKwkJCQlp bnQJCQlyYzsKKworI2lmbmRlZiBXSU4zMgorCQkJCXsKKwkJCQkJY29uc3QgY2hhciAqdG1w ZGlyOworCisJCQkJCXRtcGRpciA9IGdldGVudigiVE1QRElSIik7CisJCQkJCWlmICghdG1w ZGlyKQorCQkJCQkJdG1wZGlyID0gIi90bXAiOworCQkJCQlzdHJsY3B5KHRtcGZpbGUsIHRt cGRpciwgc2l6ZW9mKHRtcGZpbGUpKTsKKwkJCQkJc3RybGNhdCh0bXBmaWxlLCAiL2xpYnBx LVhYWFhYWCIsIHNpemVvZih0bXBmaWxlKSk7CisJCQkJCWZkID0gbWtzdGVtcCh0bXBmaWxl KTsKKwkJCQkJaWYgKGZkIDwgMCkKKwkJCQkJeworCQkJCQkJbGlicHFfYXBwZW5kX2Nvbm5f ZXJyb3IoY29ubiwgImNvdWxkIG5vdCBydW4gY3JlYXRlIHRlbXBvcmFyeSBmaWxlOiAlbSIp OworCQkJCQkJZ290byBmYWlsOworCQkJCQl9CisJCQkJfQorI2Vsc2UKKwkJCQl7CisJCQkJ CWNoYXIJCXRtcGRpcltNQVhQR1BBVEhdOworCQkJCQlpbnQJCQlyZXQ7CisKKwkJCQkJcmV0 ID0gR2V0VGVtcFBhdGgoTUFYUEdQQVRILCB0bXBkaXIpOworCQkJCQlpZiAocmV0ID09IDAg fHwgcmV0ID4gTUFYUEdQQVRIKQorCQkJCQl7CisJCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9l cnJvcihjb25uLCAiY291bGQgbm90IGxvY2F0ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5OiAlcyIs CisJCQkJCQkJCQkJCQkhcmV0ID8gc3RyZXJyb3IoZXJybm8pIDogIiIpOworCQkJCQkJcmV0 dXJuIGZhbHNlOworCQkJCQl9CisKKwkJCQkJaWYgKEdldFRlbXBGaWxlTmFtZSh0bXBkaXIs ICJsaWJwcSIsIDAsIHRtcGZpbGUpID09IDApCisJCQkJCXsKKwkJCQkJCWxpYnBxX2FwcGVu ZF9jb25uX2Vycm9yKGNvbm4sICJjb3VsZCBub3QgcnVuIGNyZWF0ZSB0ZW1wb3JhcnkgZmls ZTogZXJyb3IgY29kZSAlbHUiLAorCQkJCQkJCQkJCQkJR2V0TGFzdEVycm9yKCkpOworCQkJ CQkJZ290byBmYWlsOworCQkJCQl9CisKKwkJCQkJZmQgPSBvcGVuKHRtcGZpbGUsIE9fV1JP TkxZIHwgT19UUlVOQyB8IFBHX0JJTkFSWSwgMCk7CisJCQkJCWlmIChmZCA8IDApCisJCQkJ CXsKKwkJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb3VsZCBub3QgcnVu IG9wZW4gdGVtcG9yYXJ5IGZpbGU6ICVtIik7CisJCQkJCQlnb3RvIGZhaWw7CisJCQkJCX0K KwkJCQl9CisjZW5kaWYKKwkJCQlpZiAod3JpdGUoZmQsIGZyb20sIGZyb21sZW4pIDwgZnJv bWxlbikKKwkJCQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb3Vs ZCBub3Qgd3JpdGUgdG8gdGVtcG9yYXJ5IGZpbGU6ICVtIik7CisJCQkJCWNsb3NlKGZkKTsK KwkJCQkJdW5saW5rKHRtcGZpbGUpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCQkJCWlm IChjbG9zZShmZCkgPCAwKQorCQkJCXsKKwkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3Io Y29ubiwgImNvdWxkIG5vdCBjbG9zZSB0ZW1wb3JhcnkgZmlsZTogJW0iKTsKKwkJCQkJdW5s aW5rKHRtcGZpbGUpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCisJCQkJY29tbWFuZCA9 IHJlcGxhY2VfY21rX3BsYWNlaG9sZGVycyhzZXAyICsgMSwgY21rLT5jbWtuYW1lLCBjbWst PmNta3JlYWxtLCBjbWthbGcsIHRtcGZpbGUpOworCQkJCWZwID0gcG9wZW4oY29tbWFuZCwg InIiKTsKKwkJCQlpZiAoIWZwKQorCQkJCXsKKwkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJy b3IoY29ubiwgImNvdWxkIG5vdCBydW4gY29tbWFuZCBcIiVzXCI6ICVtIiwgY29tbWFuZCk7 CisJCQkJCWZyZWUoY29tbWFuZCk7CisJCQkJCXVubGluayh0bXBmaWxlKTsKKwkJCQkJZ290 byBmYWlsOworCQkJCX0KKwkJCQlucmVhZCA9IGZyZWFkKGJ1ZiwgMSwgc2l6ZW9mKGJ1Ziks IGZwKTsKKwkJCQlpZiAoZmVycm9yKGZwKSkKKwkJCQl7CisJCQkJCWxpYnBxX2FwcGVuZF9j b25uX2Vycm9yKGNvbm4sICJjb3VsZCBub3QgcmVhZCBmcm9tIGNvbW1hbmQ6ICVtIik7CisJ CQkJCXBjbG9zZShmcCk7CisJCQkJCWZyZWUoY29tbWFuZCk7CisJCQkJCXVubGluayh0bXBm aWxlKTsKKwkJCQkJZ290byBmYWlsOworCQkJCX0KKwkJCQllbHNlIGlmICghZmVvZihmcCkp CisJCQkJeworCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAib3V0cHV0IGZy b20gY29tbWFuZCB0b28gbG9uZyIpOworCQkJCQlwY2xvc2UoZnApOworCQkJCQlmcmVlKGNv bW1hbmQpOworCQkJCQl1bmxpbmsodG1wZmlsZSk7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9 CisJCQkJcmMgPSBwY2xvc2UoZnApOworCQkJCWlmIChyYyAhPSAwKQorCQkJCXsKKwkJCQkJ LyoKKwkJCQkJICogWFhYIHdvdWxkIGxpa2UgdG8gdXNlIHdhaXRfcmVzdWx0X3RvX3N0cihy YykgYnV0IHRoYXQKKwkJCQkJICogY2Fubm90IGJlIGNhbGxlZCBmcm9tIGxpYnBxIGJlY2F1 c2UgaXQgY2FsbHMgZXhpdCgpCisJCQkJCSAqLworCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9l cnJvcihjb25uLCAiY291bGQgbm90IHJ1biBjb21tYW5kIFwiJXNcIiIsIGNvbW1hbmQpOwor CQkJCQlmcmVlKGNvbW1hbmQpOworCQkJCQl1bmxpbmsodG1wZmlsZSk7CisJCQkJCWdvdG8g ZmFpbDsKKwkJCQl9CisJCQkJZnJlZShjb21tYW5kKTsKKwkJCQl1bmxpbmsodG1wZmlsZSk7 CisKKwkJCQlyZXN1bHQgPSBtYWxsb2MobnJlYWQpOworCQkJCWlmICghcmVzdWx0KQorCQkJ CXsKKwkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIm91dCBvZiBtZW1vcnki KTsKKwkJCQkJZ290byBmYWlsOworCQkJCX0KKwkJCQltZW1jcHkocmVzdWx0LCBidWYsIG5y ZWFkKTsKKwkJCQkqdG9sZW4gPSBucmVhZDsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQls aWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiQ01LIGxvb2t1cCBzY2hlbWUgXCIlc1wi IG5vdCByZWNvZ25pemVkIiwgc2VwICsgMSk7CisJCQkJZ290byBmYWlsOworCQkJfQorCQl9 CisJfQorCisJaWYgKCFmb3VuZCkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNv bm4sICJubyBDTUsgbG9va3VwIGZvdW5kIGZvciByZWFsbSBcIiVzXCIiLCBjbWstPmNta3Jl YWxtKTsKKwl9CisKK2ZhaWw6CisJZnJlZShjbWtsb29rdXApOworCXJldHVybiByZXN1bHQ7 Cit9CisKKy8qCisgKiBwcVNhdmVDb2x1bW5FbmNyeXB0aW9uS2V5IC0gc2F2ZSBjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgc2VudCBieSBiYWNrZW5kCisgKi8KK2ludAorcHFTYXZlQ29sdW1u RW5jcnlwdGlvbktleShQR2Nvbm4gKmNvbm4sIGludCBrZXlpZCwgaW50IGNta2lkLCBpbnQg Y21rYWxnLCBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50IGxlbikKK3sKKwlQR0NN SwkgICAqY21rID0gTlVMTDsKKwl1bnNpZ25lZCBjaGFyICpwbGFpbnZhbCA9IE5VTEw7CisJ aW50CQkJcGxhaW52YWxsZW4gPSAwOworCWJvb2wJCWZvdW5kOworCisJZm9yIChpbnQgaSA9 IDA7IGkgPCBjb25uLT5uY21rczsgaSsrKQorCXsKKwkJaWYgKGNvbm4tPmNta3NbaV0uY21r aWQgPT0gY21raWQpCisJCXsKKwkJCWNtayA9ICZjb25uLT5jbWtzW2ldOworCQkJYnJlYWs7 CisJCX0KKwl9CisKKwlpZiAoIWNtaykKKwkJcmV0dXJuIEVPRjsKKworCXBsYWludmFsID0g ZGVjcnlwdF9jZWsoY29ubiwgY21rLCBjbWthbGcsIGxlbiwgdmFsdWUsICZwbGFpbnZhbGxl bik7CisJaWYgKCFwbGFpbnZhbCkKKwkJcmV0dXJuIEVPRjsKKworCWZvdW5kID0gZmFsc2U7 CisJZm9yIChpbnQgaSA9IDA7IGkgPCBjb25uLT5uY2VrczsgaSsrKQorCXsKKwkJc3RydWN0 IHBnX2NlayAqY2hlY2tjZWsgPSAmY29ubi0+Y2Vrc1tpXTsKKworCQkvKiByZXBsYWNlIGV4 aXN0aW5nPyAqLworCQlpZiAoY2hlY2tjZWstPmNla2lkID09IGtleWlkKQorCQl7CisJCQlm cmVlKGNoZWNrY2VrLT5jZWtkYXRhKTsKKwkJCWNoZWNrY2VrLT5jZWtkYXRhID0gcGxhaW52 YWw7CisJCQljaGVja2Nlay0+Y2VrZGF0YWxlbiA9IHBsYWludmFsbGVuOworCQkJZm91bmQg PSB0cnVlOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwkvKiBhcHBlbmQgbmV3PyAqLworCWlm ICghZm91bmQpCisJeworCQlpbnQJCQluZXduY2VrczsKKwkJc3RydWN0IHBnX2NlayAqbmV3 Y2VrczsKKwkJc3RydWN0IHBnX2NlayAqbmV3Y2VrOworCisJCW5ld25jZWtzID0gY29ubi0+ bmNla3MgKyAxOworCQlpZiAobmV3bmNla3MgPD0gMCkKKwkJeworCQkJZnJlZShwbGFpbnZh bCk7CisJCQlyZXR1cm4gRU9GOworCQl9CisJCW5ld2Nla3MgPSByZWFsbG9jKGNvbm4tPmNl a3MsIG5ld25jZWtzICogc2l6ZW9mKHN0cnVjdCBwZ19jZWspKTsKKwkJaWYgKCFuZXdjZWtz KQorCQl7CisJCQlmcmVlKHBsYWludmFsKTsKKwkJCXJldHVybiBFT0Y7CisJCX0KKworCQlu ZXdjZWsgPSAmbmV3Y2Vrc1tuZXduY2VrcyAtIDFdOworCQluZXdjZWstPmNla2lkID0ga2V5 aWQ7CisJCW5ld2Nlay0+Y2VrZGF0YSA9IHBsYWludmFsOworCQluZXdjZWstPmNla2RhdGFs ZW4gPSBwbGFpbnZhbGxlbjsKKworCQljb25uLT5uY2VrcyA9IG5ld25jZWtzOworCQljb25u LT5jZWtzID0gbmV3Y2VrczsKKwl9CisKKwlyZXR1cm4gMDsKK30KIAogLyoKICAqIHBxUm93 UHJvY2Vzc29yCkBAIC0xMjUxLDEzICsxNjYyLDUxIEBAIHBxUm93UHJvY2Vzc29yKFBHY29u biAqY29ubiwgY29uc3QgY2hhciAqKmVycm1zZ3ApCiAJCQlib29sCQlpc2JpbmFyeSA9IChy ZXMtPmF0dERlc2NzW2ldLmZvcm1hdCAhPSAwKTsKIAkJCWNoYXIJICAgKnZhbDsKIAotCQkJ dmFsID0gKGNoYXIgKikgcHFSZXN1bHRBbGxvYyhyZXMsIGNsZW4gKyAxLCBpc2JpbmFyeSk7 Ci0JCQlpZiAodmFsID09IE5VTEwpCisJCQlpZiAocmVzLT5hdHREZXNjc1tpXS5jZWtpZCkK KwkJCXsKKwkJCQkvKiBlbmNyeXB0ZWQgY29sdW1uICovCisjaWZkZWYgVVNFX1NTTAorCQkJ CVBHQ0VLCSAgICpjZWsgPSBOVUxMOworCisJCQkJaWYgKCFpc2JpbmFyeSkKKwkJCQl7CisJ CQkJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgiZW5jcnlwdGVkIGNvbHVtbiB3YXMgbm90 IHNlbnQgaW4gYmluYXJ5IGZvcm1hdCIpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCisJ CQkJZm9yIChpbnQgaiA9IDA7IGogPCBjb25uLT5uY2VrczsgaisrKQorCQkJCXsKKwkJCQkJ aWYgKGNvbm4tPmNla3Nbal0uY2VraWQgPT0gcmVzLT5hdHREZXNjc1tpXS5jZWtpZCkKKwkJ CQkJeworCQkJCQkJY2VrID0gJmNvbm4tPmNla3Nbal07CisJCQkJCQlicmVhazsKKwkJCQkJ fQorCQkJCX0KKwkJCQlpZiAoIWNlaykKKwkJCQl7CisJCQkJCSplcnJtc2dwID0gbGlicHFf Z2V0dGV4dCgiY29sdW1uIGVuY3J5cHRpb24ga2V5IG5vdCBmb3VuZCIpOworCQkJCQlnb3Rv IGZhaWw7CisJCQkJfQorCisJCQkJdmFsID0gKGNoYXIgKikgZGVjcnlwdF92YWx1ZShyZXMs IGNlaywgcmVzLT5hdHREZXNjc1tpXS5jZWthbGcsCisJCQkJCQkJCQkJCSAoY29uc3QgdW5z aWduZWQgY2hhciAqKSBjb2x1bW5zW2ldLnZhbHVlLCBjbGVuLCBlcnJtc2dwKTsKKwkJCQlp ZiAodmFsID09IE5VTEwpCisJCQkJCWdvdG8gZmFpbDsKKyNlbHNlCisJCQkJKmVycm1zZ3Ag PSBsaWJwcV9nZXR0ZXh0KCJjb2x1bW4gZW5jcnlwdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRo aXMgYnVpbGQiKTsKIAkJCQlnb3RvIGZhaWw7CisjZW5kaWYKKwkJCX0KKwkJCWVsc2UKKwkJ CXsKKwkJCQl2YWwgPSAoY2hhciAqKSBwcVJlc3VsdEFsbG9jKHJlcywgY2xlbiArIDEsIGlz YmluYXJ5KTsKKwkJCQlpZiAodmFsID09IE5VTEwpCisJCQkJCWdvdG8gZmFpbDsKIAotCQkJ LyogY29weSBhbmQgemVyby10ZXJtaW5hdGUgdGhlIGRhdGEgKGV2ZW4gaWYgaXQncyBiaW5h cnkpICovCi0JCQltZW1jcHkodmFsLCBjb2x1bW5zW2ldLnZhbHVlLCBjbGVuKTsKLQkJCXZh bFtjbGVuXSA9ICdcMCc7CisJCQkJLyogY29weSBhbmQgemVyby10ZXJtaW5hdGUgdGhlIGRh dGEgKGV2ZW4gaWYgaXQncyBiaW5hcnkpICovCisJCQkJbWVtY3B5KHZhbCwgY29sdW1uc1tp XS52YWx1ZSwgY2xlbik7CisJCQkJdmFsW2NsZW5dID0gJ1wwJzsKKwkJCX0KIAogCQkJdHVw W2ldLmxlbiA9IGNsZW47CiAJCQl0dXBbaV0udmFsdWUgPSB2YWw7CkBAIC0xNTAwLDYgKzE5 NDksOCBAQCBQUXNlbmRRdWVyeVBhcmFtcyhQR2Nvbm4gKmNvbm4sCiAJCQkJICBjb25zdCBp bnQgKnBhcmFtRm9ybWF0cywKIAkJCQkgIGludCByZXN1bHRGb3JtYXQpCiB7CisJUEdyZXN1 bHQgICAqcGFyYW1EZXNjID0gTlVMTDsKKwogCWlmICghUFFzZW5kUXVlcnlTdGFydChjb25u LCB0cnVlKSkKIAkJcmV0dXJuIDA7CiAKQEAgLTE1MTYsNiArMTk2NywzNyBAQCBQUXNlbmRR dWVyeVBhcmFtcyhQR2Nvbm4gKmNvbm4sCiAJCXJldHVybiAwOwogCX0KIAorCWlmIChjb25u LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCXsKKwkJUEdyZXN1bHQgICAqcmVzOwor CQlib29sCQllcnJvcjsKKworCQlpZiAoY29ubi0+cGlwZWxpbmVTdGF0dXMgIT0gUFFfUElQ RUxJTkVfT0ZGKQorCQl7CisJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAic3lu Y2hyb25vdXMgY29tbWFuZCBleGVjdXRpb24gZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBp biBwaXBlbGluZSBtb2RlIik7CisJCQlyZXR1cm4gMDsKKwkJfQorCisJCWlmICghUFFzZW5k UHJlcGFyZShjb25uLCAiIiwgY29tbWFuZCwgblBhcmFtcywgcGFyYW1UeXBlcykpCisJCQly ZXR1cm4gMDsKKwkJZXJyb3IgPSBmYWxzZTsKKwkJd2hpbGUgKChyZXMgPSBQUWdldFJlc3Vs dChjb25uKSkgIT0gTlVMTCkKKwkJeworCQkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0g UEdSRVNfQ09NTUFORF9PSykKKwkJCQllcnJvciA9IHRydWU7CisJCQlQUWNsZWFyKHJlcyk7 CisJCX0KKwkJaWYgKGVycm9yKQorCQkJcmV0dXJuIDA7CisKKwkJcGFyYW1EZXNjID0gUFFk ZXNjcmliZVByZXBhcmVkKGNvbm4sICIiKTsKKwkJaWYgKFBRcmVzdWx0U3RhdHVzKHBhcmFt RGVzYykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwkJCXJldHVybiAwOworCisJCWNvbW1hbmQg PSBOVUxMOworCQlwYXJhbVR5cGVzID0gTlVMTDsKKwl9CisKIAlyZXR1cm4gUFFzZW5kUXVl cnlHdXRzKGNvbm4sCiAJCQkJCQkgICBjb21tYW5kLAogCQkJCQkJICAgIiIsCS8qIHVzZSB1 bm5hbWVkIHN0YXRlbWVudCAqLwpAQCAtMTUyNCw3ICsyMDA2LDggQEAgUFFzZW5kUXVlcnlQ YXJhbXMoUEdjb25uICpjb25uLAogCQkJCQkJICAgcGFyYW1WYWx1ZXMsCiAJCQkJCQkgICBw YXJhbUxlbmd0aHMsCiAJCQkJCQkgICBwYXJhbUZvcm1hdHMsCi0JCQkJCQkgICByZXN1bHRG b3JtYXQpOworCQkJCQkJICAgcmVzdWx0Rm9ybWF0LAorCQkJCQkJICAgcGFyYW1EZXNjKTsK IH0KIAogLyoKQEAgLTE2MzksNiArMjEyMiwyNCBAQCBQUXNlbmRRdWVyeVByZXBhcmVkKFBH Y29ubiAqY29ubiwKIAkJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkJCWNvbnN0 IGludCAqcGFyYW1Gb3JtYXRzLAogCQkJCQlpbnQgcmVzdWx0Rm9ybWF0KQoreworCXJldHVy biBQUXNlbmRRdWVyeVByZXBhcmVkRGVzY3JpYmVkKGNvbm4sIHN0bXROYW1lLCBuUGFyYW1z LCBwYXJhbVZhbHVlcywgcGFyYW1MZW5ndGhzLCBwYXJhbUZvcm1hdHMsIHJlc3VsdEZvcm1h dCwgTlVMTCk7Cit9CisKKy8qCisgKiBQUXNlbmRRdWVyeVByZXBhcmVkRGVzY3JpYmVkCisg KgkJTGlrZSBQUXNlbmRRdWVyeVByZXBhcmVkLCBidXQgd2l0aCBhZGRpdGlvbmFsIGFyZ3Vt ZW50IHRvIHBhc3MKKyAqCQlwYXJhbWV0ZXIgZGVzY3JpcHRpb25zLCBmb3IgY29sdW1uIGVu Y3J5cHRpb24uCisgKi8KK2ludAorUFFzZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJlZChQR2Nv bm4gKmNvbm4sCisJCQkJCQkJIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorCQkJCQkJCSBpbnQg blBhcmFtcywKKwkJCQkJCQkgY29uc3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVzLAorCQkJ CQkJCSBjb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKwkJCQkJCQkgY29uc3QgaW50ICpwYXJh bUZvcm1hdHMsCisJCQkJCQkJIGludCByZXN1bHRGb3JtYXQsCisJCQkJCQkJIFBHcmVzdWx0 ICpwYXJhbURlc2MpCiB7CiAJaWYgKCFQUXNlbmRRdWVyeVN0YXJ0KGNvbm4sIHRydWUpKQog CQlyZXR1cm4gMDsKQEAgLTE2NjQsNyArMjE2NSw4IEBAIFBRc2VuZFF1ZXJ5UHJlcGFyZWQo UEdjb25uICpjb25uLAogCQkJCQkJICAgcGFyYW1WYWx1ZXMsCiAJCQkJCQkgICBwYXJhbUxl bmd0aHMsCiAJCQkJCQkgICBwYXJhbUZvcm1hdHMsCi0JCQkJCQkgICByZXN1bHRGb3JtYXQp OworCQkJCQkJICAgcmVzdWx0Rm9ybWF0LAorCQkJCQkJICAgcGFyYW1EZXNjKTsKIH0KIAog LyoKQEAgLTE3NjIsNyArMjI2NCw4IEBAIFBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4gKmNvbm4s CiAJCQkJY29uc3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVzLAogCQkJCWNvbnN0IGludCAq cGFyYW1MZW5ndGhzLAogCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAotCQkJCWludCBy ZXN1bHRGb3JtYXQpCisJCQkJaW50IHJlc3VsdEZvcm1hdCwKKwkJCQlQR3Jlc3VsdCAqcGFy YW1EZXNjKQogewogCWludAkJCWk7CiAJUEdjbWRRdWV1ZUVudHJ5ICplbnRyeTsKQEAgLTE4 MTAsMTMgKzIzMTMsNDcgQEAgUFFzZW5kUXVlcnlHdXRzKFBHY29ubiAqY29ubiwKIAkJZ290 byBzZW5kRmFpbGVkOwogCiAJLyogU2VuZCBwYXJhbWV0ZXIgZm9ybWF0cyAqLwotCWlmIChu UGFyYW1zID4gMCAmJiBwYXJhbUZvcm1hdHMpCisJaWYgKG5QYXJhbXMgPiAwICYmIChwYXJh bUZvcm1hdHMgfHwgKHBhcmFtRGVzYyAmJiBwYXJhbURlc2MtPnBhcmFtRGVzY3MpKSkKIAl7 CiAJCWlmIChwcVB1dEludChuUGFyYW1zLCAyLCBjb25uKSA8IDApCiAJCQlnb3RvIHNlbmRG YWlsZWQ7CisKIAkJZm9yIChpID0gMDsgaSA8IG5QYXJhbXM7IGkrKykKIAkJewotCQkJaWYg KHBxUHV0SW50KHBhcmFtRm9ybWF0c1tpXSwgMiwgY29ubikgPCAwKQorCQkJaW50CQkJZm9y bWF0ID0gcGFyYW1Gb3JtYXRzID8gcGFyYW1Gb3JtYXRzW2ldIDogMDsKKworCQkJLyogQ2hl Y2sgZm9yY2UgY29sdW1uIGVuY3J5cHRpb24gKi8KKwkJCWlmIChmb3JtYXQgJiAweDEwKQor CQkJeworCQkJCWlmICghKHBhcmFtRGVzYyAmJgorCQkJCQkgIHBhcmFtRGVzYy0+cGFyYW1E ZXNjcyAmJgorCQkJCQkgIHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXS5jZWtpZCkpCisJCQkJ eworCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAicGFyYW1ldGVyIHdpdGgg Zm9yY2VkIGVuY3J5cHRpb24gaXMgbm90IHRvIGJlIGVuY3J5cHRlZCIpOworCQkJCQlnb3Rv IHNlbmRGYWlsZWQ7CisJCQkJfQorCQkJfQorCQkJZm9ybWF0ICY9IH4weDEwOworCisJCQlp ZiAocGFyYW1EZXNjICYmIHBhcmFtRGVzYy0+cGFyYW1EZXNjcykKKwkJCXsKKwkJCQlQR3Jl c1BhcmFtRGVzYyAqcGQgPSAmcGFyYW1EZXNjLT5wYXJhbURlc2NzW2ldOworCisJCQkJaWYg KHBkLT5jZWtpZCkKKwkJCQl7CisJCQkJCWlmIChmb3JtYXQgIT0gMCkKKwkJCQkJeworCQkJ CQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImZvcm1hdCBtdXN0IGJlIHRleHQg Zm9yIGVuY3J5cHRlZCBwYXJhbWV0ZXIiKTsKKwkJCQkJCWdvdG8gc2VuZEZhaWxlZDsKKwkJ CQkJfQorCQkJCQkvKiBTZW5kIGVuY3J5cHRlZCB2YWx1ZSBpbiBiaW5hcnkgKi8KKwkJCQkJ Zm9ybWF0ID0gMTsKKwkJCQkJLyogQW5kIG1hcmsgaXQgYXMgZW5jcnlwdGVkICovCisJCQkJ CWZvcm1hdCB8PSAweDEwOworCQkJCX0KKwkJCX0KKworCQkJaWYgKHBxUHV0SW50KGZvcm1h dCwgMiwgY29ubikgPCAwKQogCQkJCWdvdG8gc2VuZEZhaWxlZDsKIAkJfQogCX0KQEAgLTE4 MzUsOCArMjM3Miw5IEBAIFBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4gKmNvbm4sCiAJCWlmIChw YXJhbVZhbHVlcyAmJiBwYXJhbVZhbHVlc1tpXSkKIAkJewogCQkJaW50CQkJbmJ5dGVzOwor CQkJY29uc3QgY2hhciAqcGFyYW1WYWx1ZTsKIAotCQkJaWYgKHBhcmFtRm9ybWF0cyAmJiBw YXJhbUZvcm1hdHNbaV0gIT0gMCkKKwkJCWlmIChwYXJhbUZvcm1hdHMgJiYgKHBhcmFtRm9y bWF0c1tpXSAmIDB4MDEpICE9IDApCiAJCQl7CiAJCQkJLyogYmluYXJ5IHBhcmFtZXRlciAq LwogCQkJCWlmIChwYXJhbUxlbmd0aHMpCkBAIC0xODUyLDkgKzIzOTAsNTMgQEAgUFFzZW5k UXVlcnlHdXRzKFBHY29ubiAqY29ubiwKIAkJCQkvKiB0ZXh0IHBhcmFtZXRlciwgZG8gbm90 IHVzZSBwYXJhbUxlbmd0aHMgKi8KIAkJCQluYnl0ZXMgPSBzdHJsZW4ocGFyYW1WYWx1ZXNb aV0pOwogCQkJfQorCisJCQlwYXJhbVZhbHVlID0gcGFyYW1WYWx1ZXNbaV07CisKKwkJCWlm IChwYXJhbURlc2MgJiYgcGFyYW1EZXNjLT5wYXJhbURlc2NzICYmIHBhcmFtRGVzYy0+cGFy YW1EZXNjc1tpXS5jZWtpZCkKKwkJCXsKKwkJCQkvKiBlbmNyeXB0ZWQgY29sdW1uICovCisj aWZkZWYgVVNFX1NTTAorCQkJCWJvb2wJCWVuY19kZXQgPSAocGFyYW1EZXNjLT5wYXJhbURl c2NzW2ldLmZsYWdzICYgMHgwMSkgIT0gMDsKKwkJCQlQR0NFSwkgICAqY2VrID0gTlVMTDsK KwkJCQljaGFyCSAgICplbmNfcGFyYW1WYWx1ZTsKKwkJCQlpbnQJCQllbmNfbmJ5dGVzID0g bmJ5dGVzOworCisJCQkJZm9yIChpbnQgaiA9IDA7IGogPCBjb25uLT5uY2VrczsgaisrKQor CQkJCXsKKwkJCQkJaWYgKGNvbm4tPmNla3Nbal0uY2VraWQgPT0gcGFyYW1EZXNjLT5wYXJh bURlc2NzW2ldLmNla2lkKQorCQkJCQl7CisJCQkJCQljZWsgPSAmY29ubi0+Y2Vrc1tqXTsK KwkJCQkJCWJyZWFrOworCQkJCQl9CisJCQkJfQorCQkJCWlmICghY2VrKQorCQkJCXsKKwkJ CQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvbHVtbiBlbmNyeXB0aW9uIGtl eSBub3QgZm91bmQiKTsKKwkJCQkJZ290byBzZW5kRmFpbGVkOworCQkJCX0KKworCQkJCWVu Y19wYXJhbVZhbHVlID0gKGNoYXIgKikgZW5jcnlwdF92YWx1ZShjb25uLCBjZWssIHBhcmFt RGVzYy0+cGFyYW1EZXNjc1tpXS5jZWthbGcsCisJCQkJCQkJCQkJCQkJCShjb25zdCB1bnNp Z25lZCBjaGFyICopIHBhcmFtVmFsdWUsICZlbmNfbmJ5dGVzLCBlbmNfZGV0KTsKKwkJCQlp ZiAoIWVuY19wYXJhbVZhbHVlKQorCQkJCQlnb3RvIHNlbmRGYWlsZWQ7CisKKwkJCQlpZiAo cHFQdXRJbnQoZW5jX25ieXRlcywgNCwgY29ubikgPCAwIHx8CisJCQkJCXBxUHV0bmNoYXIo ZW5jX3BhcmFtVmFsdWUsIGVuY19uYnl0ZXMsIGNvbm4pIDwgMCkKKwkJCQkJZ290byBzZW5k RmFpbGVkOworCisJCQkJZnJlZShlbmNfcGFyYW1WYWx1ZSk7CisjZWxzZQorCQkJCWxpYnBx X2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb2x1bW4gZW5jcnlwdGlvbiBub3Qgc3VwcG9y dGVkIGJ5IHRoaXMgYnVpbGQiKTsKKwkJCQlnb3RvIHNlbmRGYWlsZWQ7CisjZW5kaWYKKwkJ CX0KKwkJCWVsc2UKKwkJCXsKIAkJCWlmIChwcVB1dEludChuYnl0ZXMsIDQsIGNvbm4pIDwg MCB8fAotCQkJCXBxUHV0bmNoYXIocGFyYW1WYWx1ZXNbaV0sIG5ieXRlcywgY29ubikgPCAw KQorCQkJCXBxUHV0bmNoYXIocGFyYW1WYWx1ZSwgbmJ5dGVzLCBjb25uKSA8IDApCiAJCQkJ Z290byBzZW5kRmFpbGVkOworCQkJfQogCQl9CiAJCWVsc2UKIAkJewpAQCAtMjI5MCwxMiAr Mjg3MiwzMSBAQCBQUWV4ZWNQcmVwYXJlZChQR2Nvbm4gKmNvbm4sCiAJCQkgICBjb25zdCBp bnQgKnBhcmFtTGVuZ3RocywKIAkJCSAgIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAogCQkJ ICAgaW50IHJlc3VsdEZvcm1hdCkKK3sKKwlyZXR1cm4gUFFleGVjUHJlcGFyZWREZXNjcmli ZWQoY29ubiwgc3RtdE5hbWUsIG5QYXJhbXMsIHBhcmFtVmFsdWVzLCBwYXJhbUxlbmd0aHMs IHBhcmFtRm9ybWF0cywgcmVzdWx0Rm9ybWF0LCBOVUxMKTsKK30KKworLyoKKyAqIFBRZXhl Y1ByZXBhcmVkRGVzY3JpYmVkCisgKgkJTGlrZSBQUWV4ZWNQcmVwYXJlZCwgYnV0IHdpdGgg YWRkaXRpb25hbCBhcmd1bWVudCB0byBwYXNzIHBhcmFtZXRlcgorICoJCWRlc2NyaXB0aW9u cywgZm9yIGNvbHVtbiBlbmNyeXB0aW9uLgorICovCitQR3Jlc3VsdCAqCitQUWV4ZWNQcmVw YXJlZERlc2NyaWJlZChQR2Nvbm4gKmNvbm4sCisJCQkJCQljb25zdCBjaGFyICpzdG10TmFt ZSwKKwkJCQkJCWludCBuUGFyYW1zLAorCQkJCQkJY29uc3QgY2hhciAqY29uc3QgKnBhcmFt VmFsdWVzLAorCQkJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisJCQkJCQljb25zdCBp bnQgKnBhcmFtRm9ybWF0cywKKwkJCQkJCWludCByZXN1bHRGb3JtYXQsCisJCQkJCQlQR3Jl c3VsdCAqcGFyYW1EZXNjKQogewogCWlmICghUFFleGVjU3RhcnQoY29ubikpCiAJCXJldHVy biBOVUxMOwotCWlmICghUFFzZW5kUXVlcnlQcmVwYXJlZChjb25uLCBzdG10TmFtZSwKLQkJ CQkJCQkgblBhcmFtcywgcGFyYW1WYWx1ZXMsIHBhcmFtTGVuZ3RocywKLQkJCQkJCQkgcGFy YW1Gb3JtYXRzLCByZXN1bHRGb3JtYXQpKQorCWlmICghUFFzZW5kUXVlcnlQcmVwYXJlZERl c2NyaWJlZChjb25uLCBzdG10TmFtZSwKKwkJCQkJCQkJCSAgblBhcmFtcywgcGFyYW1WYWx1 ZXMsIHBhcmFtTGVuZ3RocywKKwkJCQkJCQkJCSAgcGFyYW1Gb3JtYXRzLAorCQkJCQkJCQkJ ICByZXN1bHRGb3JtYXQsIHBhcmFtRGVzYykpCiAJCXJldHVybiBOVUxMOwogCXJldHVybiBQ UWV4ZWNGaW5pc2goY29ubik7CiB9CkBAIC0zNTM5LDcgKzQxNDAsMTcgQEAgUFFmZm9ybWF0 KGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBmaWVsZF9udW0pCiAJaWYgKCFjaGVja19maWVs ZF9udW1iZXIocmVzLCBmaWVsZF9udW0pKQogCQlyZXR1cm4gMDsKIAlpZiAocmVzLT5hdHRE ZXNjcykKKwl7CisJCS8qCisJCSAqIEFuIGVuY3J5cHRlZCBjb2x1bW4gaXMgYWx3YXlzIHBy ZXNlbnRlZCB0byB0aGUgYXBwbGljYXRpb24gaW4gdGV4dAorCQkgKiBmb3JtYXQuICBUaGUg LmZvcm1hdCBmaWVsZCBhcHBsaWVzIHRvIHRoZSBjaXBoZXJ0ZXh0LCB3aGljaCBtaWdodAor CQkgKiBiZSBpbiBlaXRoZXIgZm9ybWF0LCBidXQgdGhlIHBsYWludGV4dCBpbnNpZGUgaXMg YWx3YXlzIGluIHRleHQKKwkJICogZm9ybWF0LgorCQkgKi8KKwkJaWYgKHJlcy0+YXR0RGVz Y3NbZmllbGRfbnVtXS5jZWtpZCAhPSAwKQorCQkJcmV0dXJuIDA7CiAJCXJldHVybiByZXMt PmF0dERlc2NzW2ZpZWxkX251bV0uZm9ybWF0OworCX0KIAllbHNlCiAJCXJldHVybiAwOwog fQpAQCAtMzU3Nyw2ICs0MTg4LDE3IEBAIFBRZm1vZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBp bnQgZmllbGRfbnVtKQogCQlyZXR1cm4gMDsKIH0KIAoraW50CitQUWZpc2VuY3J5cHRlZChj b25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKQoreworCWlmICghY2hlY2tfZmll bGRfbnVtYmVyKHJlcywgZmllbGRfbnVtKSkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChyZXMt PmF0dERlc2NzKQorCQlyZXR1cm4gKHJlcy0+YXR0RGVzY3NbZmllbGRfbnVtXS5jZWtpZCAh PSAwKTsKKwllbHNlCisJCXJldHVybiBmYWxzZTsKK30KKwogY2hhciAqCiBQUWNtZFN0YXR1 cyhQR3Jlc3VsdCAqcmVzKQogewpAQCAtMzc2Miw2ICs0Mzg0LDE3IEBAIFBRcGFyYW10eXBl KGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBwYXJhbV9udW0pCiAJCXJldHVybiBJbnZhbGlk T2lkOwogfQogCitpbnQKK1BRcGFyYW1pc2VuY3J5cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVz LCBpbnQgcGFyYW1fbnVtKQoreworCWlmICghY2hlY2tfcGFyYW1fbnVtYmVyKHJlcywgcGFy YW1fbnVtKSkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChyZXMtPnBhcmFtRGVzY3MpCisJCXJl dHVybiAocmVzLT5wYXJhbURlc2NzW3BhcmFtX251bV0uY2VraWQgIT0gMCk7CisJZWxzZQor CQlyZXR1cm4gZmFsc2U7Cit9CisKIAogLyogUFFzZXRub25ibG9ja2luZzoKICAqCXNldHMg dGhlIFBHY29ubidzIGRhdGFiYXNlIGNvbm5lY3Rpb24gbm9uLWJsb2NraW5nIGlmIHRoZSBh cmcgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9j b2wzLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYwppbmRleCA4YWI2 YTg4NDE2Li4zZTNkODY3NGJlIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9m ZS1wcm90b2NvbDMuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMu YwpAQCAtNDMsNiArNDMsOCBAQCBzdGF0aWMgaW50CWdldFJvd0Rlc2NyaXB0aW9ucyhQR2Nv bm4gKmNvbm4sIGludCBtc2dMZW5ndGgpOwogc3RhdGljIGludAlnZXRQYXJhbURlc2NyaXB0 aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpOwogc3RhdGljIGludAlnZXRBbm90 aGVyVHVwbGUoUEdjb25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKTsKIHN0YXRpYyBpbnQJZ2V0 UGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubik7CitzdGF0aWMgaW50CWdldENvbHVtbk1h c3RlcktleShQR2Nvbm4gKmNvbm4pOworc3RhdGljIGludAlnZXRDb2x1bW5FbmNyeXB0aW9u S2V5KFBHY29ubiAqY29ubik7CiBzdGF0aWMgaW50CWdldE5vdGlmeShQR2Nvbm4gKmNvbm4p Owogc3RhdGljIGludAlnZXRDb3B5U3RhcnQoUEdjb25uICpjb25uLCBFeGVjU3RhdHVzVHlw ZSBjb3B5dHlwZSk7CiBzdGF0aWMgaW50CWdldFJlYWR5Rm9yUXVlcnkoUEdjb25uICpjb25u KTsKQEAgLTI5Nyw2ICsyOTksMTIgQEAgcHFQYXJzZUlucHV0MyhQR2Nvbm4gKmNvbm4pCiAJ CQkJCWlmIChwcUdldEludCgmKGNvbm4tPmJlX2tleSksIDQsIGNvbm4pKQogCQkJCQkJcmV0 dXJuOwogCQkJCQlicmVhazsKKwkJCQljYXNlICd5JzoJCS8qIENvbHVtbiBNYXN0ZXIgS2V5 ICovCisJCQkJCWdldENvbHVtbk1hc3RlcktleShjb25uKTsKKwkJCQkJYnJlYWs7CisJCQkJ Y2FzZSAnWSc6CQkvKiBDb2x1bW4gRW5jcnlwdGlvbiBLZXkgKi8KKwkJCQkJZ2V0Q29sdW1u RW5jcnlwdGlvbktleShjb25uKTsKKwkJCQkJYnJlYWs7CiAJCQkJY2FzZSAnVCc6CQkvKiBS b3cgRGVzY3JpcHRpb24gKi8KIAkJCQkJaWYgKGNvbm4tPmVycm9yX3Jlc3VsdCB8fAogCQkJ CQkJKGNvbm4tPnJlc3VsdCAhPSBOVUxMICYmCkBAIC01NDcsNiArNTU1LDggQEAgZ2V0Um93 RGVzY3JpcHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0aCkKIAkJaW50CQkJdHlw bGVuOwogCQlpbnQJCQlhdHR0eXBtb2Q7CiAJCWludAkJCWZvcm1hdDsKKwkJaW50CQkJY2Vr aWQ7CisJCWludAkJCWNla2FsZzsKIAogCQlpZiAocHFHZXRzKCZjb25uLT53b3JrQnVmZmVy LCBjb25uKSB8fAogCQkJcHFHZXRJbnQoJnRhYmxlaWQsIDQsIGNvbm4pIHx8CkBAIC01NjEs NiArNTcxLDIxIEBAIGdldFJvd0Rlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dM ZW5ndGgpCiAJCQlnb3RvIGFkdmFuY2VfYW5kX2Vycm9yOwogCQl9CiAKKwkJaWYgKGNvbm4t PmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsKKwkJCWlmIChwcUdldEludCgmY2Vr aWQsIDQsIGNvbm4pIHx8CisJCQkJcHFHZXRJbnQoJmNla2FsZywgNCwgY29ubikpCisJCQl7 CisJCQkJZXJybXNnID0gbGlicHFfZ2V0dGV4dCgiaW5zdWZmaWNpZW50IGRhdGEgaW4gXCJU XCIgbWVzc2FnZSIpOworCQkJCWdvdG8gYWR2YW5jZV9hbmRfZXJyb3I7CisJCQl9CisJCX0K KwkJZWxzZQorCQl7CisJCQljZWtpZCA9IDA7CisJCQljZWthbGcgPSAwOworCQl9CisKIAkJ LyoKIAkJICogU2luY2UgcHFHZXRJbnQgdHJlYXRzIDItYnl0ZSBpbnRlZ2VycyBhcyB1bnNp Z25lZCwgd2UgbmVlZCB0bwogCQkgKiBjb2VyY2UgdGhlc2UgcmVzdWx0cyB0byBzaWduZWQg Zm9ybS4KQEAgLTU4Miw4ICs2MDcsMTAgQEAgZ2V0Um93RGVzY3JpcHRpb25zKFBHY29ubiAq Y29ubiwgaW50IG1zZ0xlbmd0aCkKIAkJcmVzdWx0LT5hdHREZXNjc1tpXS50eXBpZCA9IHR5 cGlkOwogCQlyZXN1bHQtPmF0dERlc2NzW2ldLnR5cGxlbiA9IHR5cGxlbjsKIAkJcmVzdWx0 LT5hdHREZXNjc1tpXS5hdHR0eXBtb2QgPSBhdHR0eXBtb2Q7CisJCXJlc3VsdC0+YXR0RGVz Y3NbaV0uY2VraWQgPSBjZWtpZDsKKwkJcmVzdWx0LT5hdHREZXNjc1tpXS5jZWthbGcgPSBj ZWthbGc7CiAKLQkJaWYgKGZvcm1hdCAhPSAxKQorCQlpZiAoKGZvcm1hdCAmIDB4MEYpICE9 IDEpCiAJCQlyZXN1bHQtPmJpbmFyeSA9IDA7CiAJfQogCkBAIC02ODUsMTAgKzcxMiwzMSBA QCBnZXRQYXJhbURlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpCiAJ Zm9yIChpID0gMDsgaSA8IG5wYXJhbXM7IGkrKykKIAl7CiAJCWludAkJCXR5cGlkOworCQlp bnQJCQljZWtpZDsKKwkJaW50CQkJY2VrYWxnOworCQlpbnQJCQlmbGFnczsKIAogCQlpZiAo cHFHZXRJbnQoJnR5cGlkLCA0LCBjb25uKSkKIAkJCWdvdG8gbm90X2Vub3VnaF9kYXRhOwor CQlpZiAoY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJeworCQkJaWYgKHBx R2V0SW50KCZjZWtpZCwgNCwgY29ubikpCisJCQkJZ290byBub3RfZW5vdWdoX2RhdGE7CisJ CQlpZiAocHFHZXRJbnQoJmNla2FsZywgNCwgY29ubikpCisJCQkJZ290byBub3RfZW5vdWdo X2RhdGE7CisJCQlpZiAocHFHZXRJbnQoJmZsYWdzLCAyLCBjb25uKSkKKwkJCQlnb3RvIG5v dF9lbm91Z2hfZGF0YTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWNla2lkID0gMDsKKwkJCWNl a2FsZyA9IDA7CisJCQlmbGFncyA9IDA7CisJCX0KIAkJcmVzdWx0LT5wYXJhbURlc2NzW2ld LnR5cGlkID0gdHlwaWQ7CisJCXJlc3VsdC0+cGFyYW1EZXNjc1tpXS5jZWtpZCA9IGNla2lk OworCQlyZXN1bHQtPnBhcmFtRGVzY3NbaV0uY2VrYWxnID0gY2VrYWxnOworCQlyZXN1bHQt PnBhcmFtRGVzY3NbaV0uZmxhZ3MgPSBmbGFnczsKIAl9CiAKIAkvKiBTdWNjZXNzISAqLwpA QCAtMTQ2OCw2ICsxNTE2LDkyIEBAIGdldFBhcmFtZXRlclN0YXR1cyhQR2Nvbm4gKmNvbm4p CiAJcmV0dXJuIDA7CiB9CiAKKy8qCisgKiBBdHRlbXB0IHRvIHJlYWQgYSBDb2x1bW5NYXN0 ZXJLZXkgbWVzc2FnZS4KKyAqIEVudHJ5OiAneScgbWVzc2FnZSB0eXBlIGFuZCBsZW5ndGgg aGF2ZSBhbHJlYWR5IGJlZW4gY29uc3VtZWQuCisgKiBFeGl0OiByZXR1cm5zIDAgaWYgc3Vj Y2Vzc2Z1bGx5IGNvbnN1bWVkIG1lc3NhZ2UuCisgKgkJIHJldHVybnMgRU9GIGlmIG5vdCBl bm91Z2ggZGF0YS4KKyAqLworc3RhdGljIGludAorZ2V0Q29sdW1uTWFzdGVyS2V5KFBHY29u biAqY29ubikKK3sKKwlpbnQJCQlrZXlpZDsKKwljaGFyCSAgICprZXluYW1lOworCWNoYXIJ ICAgKmtleXJlYWxtOworCWludAkJCXJldDsKKworCS8qIEdldCB0aGUga2V5IElEICovCisJ aWYgKHBxR2V0SW50KCZrZXlpZCwgNCwgY29ubikgIT0gMCkKKwkJcmV0dXJuIEVPRjsKKwkv KiBHZXQgdGhlIGtleSBuYW1lICovCisJaWYgKHBxR2V0cygmY29ubi0+d29ya0J1ZmZlciwg Y29ubikgIT0gMCkKKwkJcmV0dXJuIEVPRjsKKwlrZXluYW1lID0gc3RyZHVwKGNvbm4tPndv cmtCdWZmZXIuZGF0YSk7CisJaWYgKCFrZXluYW1lKQorCQlyZXR1cm4gRU9GOworCS8qIEdl dCB0aGUga2V5IHJlYWxtICovCisJaWYgKHBxR2V0cygmY29ubi0+d29ya0J1ZmZlciwgY29u bikgIT0gMCkKKwkJcmV0dXJuIEVPRjsKKwlrZXlyZWFsbSA9IHN0cmR1cChjb25uLT53b3Jr QnVmZmVyLmRhdGEpOworCWlmICgha2V5cmVhbG0pCisJCXJldHVybiBFT0Y7CisJLyogQW5k IHNhdmUgaXQgKi8KKwlyZXQgPSBwcVNhdmVDb2x1bW5NYXN0ZXJLZXkoY29ubiwga2V5aWQs IGtleW5hbWUsIGtleXJlYWxtKTsKKwlpZiAocmV0ICE9IDApCisJCXBxU2F2ZUVycm9yUmVz dWx0KGNvbm4pOworCisJZnJlZShrZXluYW1lKTsKKwlmcmVlKGtleXJlYWxtKTsKKworCXJl dHVybiByZXQ7Cit9CisKKy8qCisgKiBBdHRlbXB0IHRvIHJlYWQgYSBDb2x1bW5FbmNyeXB0 aW9uS2V5IG1lc3NhZ2UuCisgKiBFbnRyeTogJ1knIG1lc3NhZ2UgdHlwZSBhbmQgbGVuZ3Ro IGhhdmUgYWxyZWFkeSBiZWVuIGNvbnN1bWVkLgorICogRXhpdDogcmV0dXJucyAwIGlmIHN1 Y2Nlc3NmdWxseSBjb25zdW1lZCBtZXNzYWdlLgorICoJCSByZXR1cm5zIEVPRiBpZiBub3Qg ZW5vdWdoIGRhdGEuCisgKi8KK3N0YXRpYyBpbnQKK2dldENvbHVtbkVuY3J5cHRpb25LZXko UEdjb25uICpjb25uKQoreworCWludAkJCWtleWlkOworCWludAkJCWNta2lkOworCWludAkJ CWNta2FsZzsKKwljaGFyCSAgICpidWY7CisJaW50CQkJdmFsbGVuOworCWludAkJCXJldDsK KworCS8qIEdldCB0aGUga2V5IElEICovCisJaWYgKHBxR2V0SW50KCZrZXlpZCwgNCwgY29u bikgIT0gMCkKKwkJcmV0dXJuIEVPRjsKKwkvKiBHZXQgdGhlIENNSyBJRCAqLworCWlmIChw cUdldEludCgmY21raWQsIDQsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJLyogR2V0 IHRoZSBDTUsgYWxnb3JpdGhtICovCisJaWYgKHBxR2V0SW50KCZjbWthbGcsIDQsIGNvbm4p ICE9IDApCisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRoZSBrZXkgZGF0YSBsZW4gKi8KKwlp ZiAocHFHZXRJbnQoJnZhbGxlbiwgNCwgY29ubikgIT0gMCkKKwkJcmV0dXJuIEVPRjsKKwkv KiBHZXQgdGhlIGtleSBkYXRhICovCisJYnVmID0gbWFsbG9jKHZhbGxlbik7CisJaWYgKCFi dWYpCisJCXJldHVybiBFT0Y7CisJaWYgKHBxR2V0bmNoYXIoYnVmLCB2YWxsZW4sIGNvbm4p ICE9IDApCisJeworCQlmcmVlKGJ1Zik7CisJCXJldHVybiBFT0Y7CisJfQorCS8qIEFuZCBz YXZlIGl0ICovCisJcmV0ID0gcHFTYXZlQ29sdW1uRW5jcnlwdGlvbktleShjb25uLCBrZXlp ZCwgY21raWQsIGNta2FsZywgKHVuc2lnbmVkIGNoYXIgKikgYnVmLCB2YWxsZW4pOworCWlm IChyZXQgIT0gMCkKKwkJcHFTYXZlRXJyb3JSZXN1bHQoY29ubik7CisKKwlmcmVlKGJ1Zik7 CisKKwlyZXR1cm4gcmV0OworfQogCiAvKgogICogQXR0ZW1wdCB0byByZWFkIGEgTm90aWZ5 IHJlc3BvbnNlIG1lc3NhZ2UuCkBAIC0yMjg2LDYgKzI0MjAsOSBAQCBidWlsZF9zdGFydHVw X3BhY2tldChjb25zdCBQR2Nvbm4gKmNvbm4sIGNoYXIgKnBhY2tldCwKIAlpZiAoY29ubi0+ Y2xpZW50X2VuY29kaW5nX2luaXRpYWwgJiYgY29ubi0+Y2xpZW50X2VuY29kaW5nX2luaXRp YWxbMF0pCiAJCUFERF9TVEFSVFVQX09QVElPTigiY2xpZW50X2VuY29kaW5nIiwgY29ubi0+ Y2xpZW50X2VuY29kaW5nX2luaXRpYWwpOwogCisJaWYgKGNvbm4tPmNvbHVtbl9lbmNyeXB0 aW9uX2VuYWJsZWQpCisJCUFERF9TVEFSVFVQX09QVElPTigiX3BxXy5jb2x1bW5fZW5jcnlw dGlvbiIsICIxIik7CisKIAkvKiBBZGQgYW55IGVudmlyb25tZW50LWRyaXZlbiBHVUMgc2V0 dGluZ3MgbmVlZGVkICovCiAJZm9yIChuZXh0X2VvID0gb3B0aW9uczsgbmV4dF9lby0+ZW52 TmFtZTsgbmV4dF9lbysrKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBx L2ZlLXRyYWNlLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jCmluZGV4IGFi YWFiNmEwNzMuLjc3NzkxZTgzNDkgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBx L2ZlLXRyYWNlLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtdHJhY2UuYwpAQCAt NDUwLDcgKzQ1MCw4IEBAIHBxVHJhY2VPdXRwdXRTKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1l c3NhZ2UsIGludCAqY3Vyc29yKQogCiAvKiBQYXJhbWV0ZXJEZXNjcmlwdGlvbiAqLwogc3Rh dGljIHZvaWQKLXBxVHJhY2VPdXRwdXR0KEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2Us IGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MpCitwcVRyYWNlT3V0cHV0dChGSUxFICpmLCBj b25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzLAorCQkJICAg Ym9vbCBjb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQogewogCWludAkJCW5maWVsZHM7CiAK QEAgLTQ1OCwxMiArNDU5LDIxIEBAIHBxVHJhY2VPdXRwdXR0KEZJTEUgKmYsIGNvbnN0IGNo YXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MpCiAJbmZpZWxkcyA9IHBx VHJhY2VPdXRwdXRJbnQxNihmLCBtZXNzYWdlLCBjdXJzb3IpOwogCiAJZm9yIChpbnQgaSA9 IDA7IGkgPCBuZmllbGRzOyBpKyspCisJewogCQlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVz c2FnZSwgY3Vyc29yLCByZWdyZXNzKTsKKwkJaWYgKGNvbHVtbl9lbmNyeXB0aW9uX2VuYWJs ZWQpCisJCXsKKwkJCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIHJl Z3Jlc3MpOworCQkJcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgZmFs c2UpOworCQkJcHFUcmFjZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CisJCX0K Kwl9CiB9CiAKIC8qIFJvd0Rlc2NyaXB0aW9uICovCiBzdGF0aWMgdm9pZAotcHFUcmFjZU91 dHB1dFQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wg cmVncmVzcykKK3BxVHJhY2VPdXRwdXRUKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2Us IGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MsCisJCQkgICBib29sIGNvbHVtbl9lbmNyeXB0 aW9uX2VuYWJsZWQpCiB7CiAJaW50CQkJbmZpZWxkczsKIApAQCAtNDc5LDYgKzQ4OSwxMSBA QCBwcVRyYWNlT3V0cHV0VChGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1 cnNvciwgYm9vbCByZWdyZXNzKQogCQlwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwg Y3Vyc29yKTsKIAkJcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgZmFs c2UpOwogCQlwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKKwkJaWYg KGNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsKKwkJCXBxVHJhY2VPdXRwdXRJbnQz MihmLCBtZXNzYWdlLCBjdXJzb3IsIHJlZ3Jlc3MpOworCQkJcHFUcmFjZU91dHB1dEludDMy KGYsIG1lc3NhZ2UsIGN1cnNvciwgZmFsc2UpOworCQl9CiAJfQogfQogCkBAIC01MTQsNiAr NTI5LDMwIEBAIHBxVHJhY2VPdXRwdXRXKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2Us IGludCAqY3Vyc29yLCBpbnQgbGVuZ3RoKQogCQlwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVz c2FnZSwgY3Vyc29yKTsKIH0KIAorLyogQ29sdW1uTWFzdGVyS2V5ICovCitzdGF0aWMgdm9p ZAorcHFUcmFjZU91dHB1dHkoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpj dXJzb3IsIGJvb2wgcmVncmVzcykKK3sKKwlmcHJpbnRmKGYsICJDb2x1bW5NYXN0ZXJLZXlc dCIpOworCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIHJlZ3Jlc3Mp OworCXBxVHJhY2VPdXRwdXRTdHJpbmcoZiwgbWVzc2FnZSwgY3Vyc29yLCBmYWxzZSk7CisJ cHFUcmFjZU91dHB1dFN0cmluZyhmLCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKK30KKwor LyogQ29sdW1uRW5jcnlwdGlvbktleSAqLworc3RhdGljIHZvaWQKK3BxVHJhY2VPdXRwdXRZ KEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jl c3MpCit7CisJaW50CQkJbGVuOworCisJZnByaW50ZihmLCAiQ29sdW1uRW5jcnlwdGlvbktl eVx0Iik7CisJcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVz cyk7CisJcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7 CisJcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgZmFsc2UpOworCWxl biA9IHBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKKwlw cVRyYWNlT3V0cHV0TmNoYXIoZiwgbGVuLCBtZXNzYWdlLCBjdXJzb3IpOworfQorCiAvKiBS ZWFkeUZvclF1ZXJ5ICovCiBzdGF0aWMgdm9pZAogcHFUcmFjZU91dHB1dFooRklMRSAqZiwg Y29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IpCkBAIC02NDcsMTAgKzY4NiwxMiBA QCBwcVRyYWNlT3V0cHV0TWVzc2FnZShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKm1lc3Nh Z2UsIGJvb2wgdG9TZXJ2ZXIpCiAJCQkJZnByaW50Zihjb25uLT5QZmRlYnVnLCAiU3luYyIp OyAvKiBubyBtZXNzYWdlIGNvbnRlbnQgKi8KIAkJCWJyZWFrOwogCQljYXNlICd0JzoJCQkJ LyogUGFyYW1ldGVyIERlc2NyaXB0aW9uICovCi0JCQlwcVRyYWNlT3V0cHV0dChjb25uLT5Q ZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yLCByZWdyZXNzKTsKKwkJCXBxVHJhY2VPdXRw dXR0KGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jlc3MsCisJCQkJ CQkgICBjb25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKTsKIAkJCWJyZWFrOwogCQlj YXNlICdUJzoJCQkJLyogUm93IERlc2NyaXB0aW9uICovCi0JCQlwcVRyYWNlT3V0cHV0VChj b25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yLCByZWdyZXNzKTsKKwkJCXBxVHJh Y2VPdXRwdXRUKGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jlc3Ms CisJCQkJCQkgICBjb25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKTsKIAkJCWJyZWFr OwogCQljYXNlICd2JzoJCQkJLyogTmVnb3RpYXRlIFByb3RvY29sIFZlcnNpb24gKi8KIAkJ CXBxVHJhY2VPdXRwdXR2KGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IpOwpA QCAtNjY1LDYgKzcwNiwxMiBAQCBwcVRyYWNlT3V0cHV0TWVzc2FnZShQR2Nvbm4gKmNvbm4s IGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGJvb2wgdG9TZXJ2ZXIpCiAJCQlmcHJpbnRmKGNvbm4t PlBmZGVidWcsICJUZXJtaW5hdGUiKTsKIAkJCS8qIE5vIG1lc3NhZ2UgY29udGVudCAqLwog CQkJYnJlYWs7CisJCWNhc2UgJ3knOgorCQkJcHFUcmFjZU91dHB1dHkoY29ubi0+UGZkZWJ1 ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwgcmVncmVzcyk7CisJCQlicmVhazsKKwkJY2FzZSAn WSc6CisJCQlwcVRyYWNlT3V0cHV0WShjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vy c29yLCByZWdyZXNzKTsKKwkJCWJyZWFrOwogCQljYXNlICdaJzoJCQkJLyogUmVhZHkgRm9y IFF1ZXJ5ICovCiAJCQlwcVRyYWNlT3V0cHV0Wihjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAm bG9nQ3Vyc29yKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGli cHEvbGlicHEtZmUuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgKaW5kZXgg ZjNkOTIyMDQ5Ni4uY2YzMzlhM2U1MyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGli cHEvbGlicHEtZmUuaAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oCkBA IC0yNjcsNiArMjY3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgcGdyZXNBdHREZXNjCiAJT2lkCQkJ dHlwaWQ7CQkJLyogdHlwZSBpZCAqLwogCWludAkJCXR5cGxlbjsJCQkvKiB0eXBlIHNpemUg Ki8KIAlpbnQJCQlhdHR0eXBtb2Q7CQkvKiB0eXBlLXNwZWNpZmljIG1vZGlmaWVyIGluZm8g Ki8KKwlPaWQJCQljZWtpZDsKKwlpbnQJCQljZWthbGc7CiB9IFBHcmVzQXR0RGVzYzsKIAog LyogLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDM4LDYgKzQ0MCwxNCBAQCBleHRlcm4gUEdyZXN1 bHQgKlBRZXhlY1ByZXBhcmVkKFBHY29ubiAqY29ubiwKIAkJCQkJCQkJY29uc3QgaW50ICpw YXJhbUxlbmd0aHMsCiAJCQkJCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAogCQkJCQkJ CQlpbnQgcmVzdWx0Rm9ybWF0KTsKK2V4dGVybiBQR3Jlc3VsdCAqUFFleGVjUHJlcGFyZWRE ZXNjcmliZWQoUEdjb25uICpjb25uLAorCQkJCQkJCQkJCSBjb25zdCBjaGFyICpzdG10TmFt ZSwKKwkJCQkJCQkJCQkgaW50IG5QYXJhbXMsCisJCQkJCQkJCQkJIGNvbnN0IGNoYXIgKmNv bnN0ICpwYXJhbVZhbHVlcywKKwkJCQkJCQkJCQkgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMs CisJCQkJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAorCQkJCQkJCQkJCSBpbnQg cmVzdWx0Rm9ybWF0LAorCQkJCQkJCQkJCSBQR3Jlc3VsdCAqcGFyYW1EZXNjKTsKIAogLyog SW50ZXJmYWNlIGZvciBtdWx0aXBsZS1yZXN1bHQgb3IgYXN5bmNocm9ub3VzIHF1ZXJpZXMg Ki8KICNkZWZpbmUgUFFfUVVFUllfUEFSQU1fTUFYX0xJTUlUIDY1NTM1CkBAIC00NjEsNiAr NDcxLDE0IEBAIGV4dGVybiBpbnQJUFFzZW5kUXVlcnlQcmVwYXJlZChQR2Nvbm4gKmNvbm4s CiAJCQkJCQkJCWNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAogCQkJCQkJCQljb25zdCBpbnQg KnBhcmFtRm9ybWF0cywKIAkJCQkJCQkJaW50IHJlc3VsdEZvcm1hdCk7CitleHRlcm4gaW50 CVBRc2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQoUEdjb25uICpjb25uLAorCQkJCQkJCQkJ CSBjb25zdCBjaGFyICpzdG10TmFtZSwKKwkJCQkJCQkJCQkgaW50IG5QYXJhbXMsCisJCQkJ CQkJCQkJIGNvbnN0IGNoYXIgKmNvbnN0ICpwYXJhbVZhbHVlcywKKwkJCQkJCQkJCQkgY29u c3QgaW50ICpwYXJhbUxlbmd0aHMsCisJCQkJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1Gb3Jt YXRzLAorCQkJCQkJCQkJCSBpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCQkJCQkJCSBQR3Jlc3Vs dCAqcGFyYW1EZXNjKTsKIGV4dGVybiBpbnQJUFFzZXRTaW5nbGVSb3dNb2RlKFBHY29ubiAq Y29ubik7CiBleHRlcm4gUEdyZXN1bHQgKlBRZ2V0UmVzdWx0KFBHY29ubiAqY29ubik7CiAK QEAgLTUzMSw2ICs1NDksNyBAQCBleHRlcm4gaW50CVBRZmZvcm1hdChjb25zdCBQR3Jlc3Vs dCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBPaWQJUFFmdHlwZShjb25zdCBQR3Jl c3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBpbnQJUFFmc2l6ZShjb25zdCBQ R3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBpbnQJUFFmbW9kKGNvbnN0 IFBHcmVzdWx0ICpyZXMsIGludCBmaWVsZF9udW0pOworZXh0ZXJuIGludAlQUWZpc2VuY3J5 cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBjaGFy ICpQUWNtZFN0YXR1cyhQR3Jlc3VsdCAqcmVzKTsKIGV4dGVybiBjaGFyICpQUW9pZFN0YXR1 cyhjb25zdCBQR3Jlc3VsdCAqcmVzKTsJLyogb2xkIGFuZCB1Z2x5ICovCiBleHRlcm4gT2lk CVBRb2lkVmFsdWUoY29uc3QgUEdyZXN1bHQgKnJlcyk7CS8qIG5ldyBhbmQgaW1wcm92ZWQg Ki8KQEAgLTU0MCw2ICs1NTksNyBAQCBleHRlcm4gaW50CVBRZ2V0bGVuZ3RoKGNvbnN0IFBH cmVzdWx0ICpyZXMsIGludCB0dXBfbnVtLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBpbnQJ UFFnZXRpc251bGwoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHR1cF9udW0sIGludCBmaWVs ZF9udW0pOwogZXh0ZXJuIGludAlQUW5wYXJhbXMoY29uc3QgUEdyZXN1bHQgKnJlcyk7CiBl eHRlcm4gT2lkCVBRcGFyYW10eXBlKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBwYXJhbV9u dW0pOworZXh0ZXJuIGludAlQUXBhcmFtaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJl cywgaW50IHBhcmFtX251bSk7CiAKIC8qIERlc2NyaWJlIHByZXBhcmVkIHN0YXRlbWVudHMg YW5kIHBvcnRhbHMgKi8KIGV4dGVybiBQR3Jlc3VsdCAqUFFkZXNjcmliZVByZXBhcmVkKFBH Y29ubiAqY29ubiwgY29uc3QgY2hhciAqc3RtdCk7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9saWJwcS1pbnQuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWlu dC5oCmluZGV4IGQ3ZWM1ZWQ0MjkuLmNiZmFhN2Y5NWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2xpYnBxLWludC5oCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xp YnBxLWludC5oCkBAIC0xMTIsNiArMTEyLDkgQEAgdW5pb24gcGdyZXN1bHRfZGF0YQogdHlw ZWRlZiBzdHJ1Y3QgcGdyZXNQYXJhbURlc2MKIHsKIAlPaWQJCQl0eXBpZDsJCQkvKiB0eXBl IGlkICovCisJT2lkCQkJY2VraWQ7CisJaW50CQkJY2VrYWxnOworCWludAkJCWZsYWdzOwog fSBQR3Jlc1BhcmFtRGVzYzsKIAogLyoKQEAgLTM0Myw2ICszNDYsMjYgQEAgdHlwZWRlZiBz dHJ1Y3QgcGdfY29ubl9ob3N0CiAJCQkJCQkJCSAqIGZvdW5kIGluIHBhc3N3b3JkIGZpbGUu ICovCiB9IHBnX2Nvbm5faG9zdDsKIAorLyoKKyAqIENvbHVtbiBlbmNyeXB0aW9uIHN1cHBv cnQgZGF0YQorICovCisKKy8qIGNvbHVtbiBtYXN0ZXIga2V5ICovCit0eXBlZGVmIHN0cnVj dCBwZ19jbWsKK3sKKwlPaWQJCQljbWtpZDsKKwljaGFyCSAgICpjbWtuYW1lOworCWNoYXIJ ICAgKmNta3JlYWxtOworfSBQR0NNSzsKKworLyogY29sdW1uIGVuY3J5cHRpb24ga2V5ICov Cit0eXBlZGVmIHN0cnVjdCBwZ19jZWsKK3sKKwlPaWQJCQljZWtpZDsKKwl1bnNpZ25lZCBj aGFyICpjZWtkYXRhOwkJLyogKGRlY3J5cHRlZCkgKi8KKwlzaXplX3QJCWNla2RhdGFsZW47 Cit9IFBHQ0VLOworCiAvKgogICogUEdjb25uIHN0b3JlcyBhbGwgdGhlIHN0YXRlIGRhdGEg YXNzb2NpYXRlZCB3aXRoIGEgc2luZ2xlIGNvbm5lY3Rpb24KICAqIHRvIGEgYmFja2VuZC4K QEAgLTM5Niw2ICs0MTksOCBAQCBzdHJ1Y3QgcGdfY29ubgogCWNoYXIJICAgKnNzbF9taW5f cHJvdG9jb2xfdmVyc2lvbjsJLyogbWluaW11bSBUTFMgcHJvdG9jb2wgdmVyc2lvbiAqLwog CWNoYXIJICAgKnNzbF9tYXhfcHJvdG9jb2xfdmVyc2lvbjsJLyogbWF4aW11bSBUTFMgcHJv dG9jb2wgdmVyc2lvbiAqLwogCWNoYXIJICAgKnRhcmdldF9zZXNzaW9uX2F0dHJzOwkvKiBk ZXNpcmVkIHNlc3Npb24gcHJvcGVydGllcyAqLworCWNoYXIJICAgKmNta2xvb2t1cDsJCS8q IENNSyBsb29rdXAgc3BlY2lmaWNhdGlvbiAqLworCWNoYXIJICAgKmNvbHVtbl9lbmNyeXB0 aW9uX3NldHRpbmc7CS8qIGNvbHVtbl9lbmNyeXB0aW9uIGNvbm5lY3Rpb24gcGFyYW1ldGVy ICgwIG9yIDEpICovCiAKIAkvKiBPcHRpb25hbCBmaWxlIHRvIHdyaXRlIHRyYWNlIGluZm8g dG8gKi8KIAlGSUxFCSAgICpQZmRlYnVnOwpAQCAtNDc3LDYgKzUwMiwxMyBAQCBzdHJ1Y3Qg cGdfY29ubgogCVBHVmVyYm9zaXR5IHZlcmJvc2l0eTsJCS8qIGVycm9yL25vdGljZSBtZXNz YWdlIHZlcmJvc2l0eSAqLwogCVBHQ29udGV4dFZpc2liaWxpdHkgc2hvd19jb250ZXh0Owkv KiB3aGV0aGVyIHRvIHNob3cgQ09OVEVYVCBmaWVsZCAqLwogCVBHbG9iamZ1bmNzICpsb2Jq ZnVuY3M7CQkvKiBwcml2YXRlIHN0YXRlIGZvciBsYXJnZS1vYmplY3QgYWNjZXNzIGZucyAq LworCWJvb2wJCWNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQ7CS8qIHBhcnNlZCB2ZXJzaW9u IG9mIGNvbHVtbl9lbmNyeXB0aW9uX3NldHRpbmcgKi8KKworCS8qIENvbHVtbiBlbmNyeXB0 aW9uIHN1cHBvcnQgZGF0YSAqLworCWludAkJCW5jbWtzOworCVBHQ01LCSAgICpjbWtzOwor CWludAkJCW5jZWtzOworCVBHQ0VLCSAgICpjZWtzOwogCiAJLyogQnVmZmVyIGZvciBkYXRh IHJlY2VpdmVkIGZyb20gYmFja2VuZCBhbmQgbm90IHlldCBwcm9jZXNzZWQgKi8KIAljaGFy CSAgICppbkJ1ZmZlcjsJCS8qIGN1cnJlbnRseSBhbGxvY2F0ZWQgYnVmZmVyICovCkBAIC02 NzMsNiArNzA1LDEwIEBAIGV4dGVybiB2b2lkIHBxU2F2ZU1lc3NhZ2VGaWVsZChQR3Jlc3Vs dCAqcmVzLCBjaGFyIGNvZGUsCiAJCQkJCQkJICAgY29uc3QgY2hhciAqdmFsdWUpOwogZXh0 ZXJuIHZvaWQgcHFTYXZlUGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubiwgY29uc3QgY2hh ciAqbmFtZSwKIAkJCQkJCQkJICBjb25zdCBjaGFyICp2YWx1ZSk7CitleHRlcm4gaW50CXBx U2F2ZUNvbHVtbk1hc3RlcktleShQR2Nvbm4gKmNvbm4sIGludCBrZXlpZCwgY29uc3QgY2hh ciAqa2V5bmFtZSwKKwkJCQkJCQkJICBjb25zdCBjaGFyICprZXlyZWFsbSk7CitleHRlcm4g aW50CXBxU2F2ZUNvbHVtbkVuY3J5cHRpb25LZXkoUEdjb25uICpjb25uLCBpbnQga2V5aWQs IGludCBjbWtpZCwgaW50IGNta2FsZywKKwkJCQkJCQkJCSAgY29uc3QgdW5zaWduZWQgY2hh ciAqdmFsdWUsIGludCBsZW4pOwogZXh0ZXJuIGludAlwcVJvd1Byb2Nlc3NvcihQR2Nvbm4g KmNvbm4sIGNvbnN0IGNoYXIgKiplcnJtc2dwKTsKIGV4dGVybiB2b2lkIHBxQ29tbWFuZFF1 ZXVlQWR2YW5jZShQR2Nvbm4gKmNvbm4pOwogZXh0ZXJuIGludAlQUXNlbmRRdWVyeUNvbnRp bnVlKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqcXVlcnkpOwpkaWZmIC0tZ2l0IGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9t ZXNvbi5idWlsZAppbmRleCA1NzNmZDliNmVhLi5hNmU2YjJhZGE5IDEwMDY0NAotLS0gYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZAorKysgYi9zcmMvaW50ZXJmYWNlcy9s aWJwcS9tZXNvbi5idWlsZApAQCAtMjksNiArMjksNyBAQCBlbmRpZgogCiBpZiBzc2wuZm91 bmQoKQogICBsaWJwcV9zb3VyY2VzICs9IGZpbGVzKCdmZS1zZWN1cmUtY29tbW9uLmMnKQor ICBsaWJwcV9zb3VyY2VzICs9IGZpbGVzKCdmZS1lbmNyeXB0LW9wZW5zc2wuYycpCiAgIGxp YnBxX3NvdXJjZXMgKz0gZmlsZXMoJ2ZlLXNlY3VyZS1vcGVuc3NsLmMnKQogZW5kaWYKIApA QCAtMTE2LDYgKzExNyw3IEBAIHRlc3RzICs9IHsKICAgICAndGVzdHMnOiBbCiAgICAgICAn dC8wMDFfdXJpLnBsJywKICAgICAgICd0LzAwMl9hcGkucGwnLAorICAgICAgJ3QvMDAzX2Vu Y3J5cHQucGwnLAogICAgIF0sCiAgICAgJ2Vudic6IHsnd2l0aF9zc2wnOiBnZXRfb3B0aW9u KCdzc2wnKX0sCiAgIH0sCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMu bWsgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsKaW5kZXggNGRmNTQ0ZWNlZi4uMGMz NmFhNWYzMiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbmxzLm1rCisrKyBi L3NyYy9pbnRlcmZhY2VzL2xpYnBxL25scy5tawpAQCAtMSw2ICsxLDYgQEAKICMgc3JjL2lu dGVyZmFjZXMvbGlicHEvbmxzLm1rCiBDQVRBTE9HX05BTUUgICAgID0gbGlicHEKLUdFVFRF WFRfRklMRVMgICAgPSBmZS1hdXRoLmMgZmUtYXV0aC1zY3JhbS5jIGZlLWNvbm5lY3QuYyBm ZS1leGVjLmMgZmUtZ3NzYXBpLWNvbW1vbi5jIGZlLWxvYmouYyBmZS1taXNjLmMgZmUtcHJv dG9jb2wzLmMgZmUtc2VjdXJlLmMgZmUtc2VjdXJlLWNvbW1vbi5jIGZlLXNlY3VyZS1nc3Nh cGkuYyBmZS1zZWN1cmUtb3BlbnNzbC5jIHdpbjMyLmMgLi4vLi4vcG9ydC90aHJlYWQuYwor R0VUVEVYVF9GSUxFUyAgICA9IGZlLWF1dGguYyBmZS1hdXRoLXNjcmFtLmMgZmUtY29ubmVj dC5jIGZlLWVuY3J5cHQtb3BlbnNzbC5jIGZlLWV4ZWMuYyBmZS1nc3NhcGktY29tbW9uLmMg ZmUtbG9iai5jIGZlLW1pc2MuYyBmZS1wcm90b2NvbDMuYyBmZS1zZWN1cmUuYyBmZS1zZWN1 cmUtY29tbW9uLmMgZmUtc2VjdXJlLWdzc2FwaS5jIGZlLXNlY3VyZS1vcGVuc3NsLmMgd2lu MzIuYyAuLi8uLi9wb3J0L3RocmVhZC5jCiBHRVRURVhUX1RSSUdHRVJTID0gbGlicHFfYXBw ZW5kX2Nvbm5fZXJyb3I6MiBcCiAgICAgICAgICAgICAgICAgICAgbGlicHFfYXBwZW5kX2Vy cm9yOjIgXAogICAgICAgICAgICAgICAgICAgIGxpYnBxX2dldHRleHQgcHFJbnRlcm5hbE5v dGljZToyCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90LzAwM19lbmNyeXB0 LnBsIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdC8wMDNfZW5jcnlwdC5wbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45NGE3NDQxMDM3Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdC8wMDNfZW5jcnlwdC5wbApAQCAtMCwwICsx LDcwIEBACisjIENvcHlyaWdodCAoYykgMjAyMywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxv cG1lbnQgR3JvdXAKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7CisKK3VzZSBQb3N0Z3Jl U1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCitwbGFuIHNraXBfYWxsID0+ ICdPcGVuU1NMIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBidWlsZCcgaWYgJEVOVnt3aXRoX3Nz bH0gbmUgJ29wZW5zc2wnOworCisjIHRlc3QgZGF0YSBmcm9tIGh0dHBzOi8vZGF0YXRyYWNr ZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtbWNncmV3LWFlYWQtYWVzLWNiYy1obWFjLXNo YTItMDUjc2VjdGlvbi01Citjb21tYW5kX2xpa2UoWyAnbGlicHFfdGVzdF9lbmNyeXB0JyBd LAorCXFyezUuMQorQyA9CisxYSBmMyA4YyAyZCBjMiBiOSA2ZiBmZCBkOCA2NiA5NCAwOSAy MyA0MSBiYyAwNAorYzggMGUgZGYgYTMgMmQgZGYgMzkgZDUgZWYgMDAgYzAgYjQgNjggODMg NDIgNzkKK2EyIGU0IDZhIDFiIDgwIDQ5IGY3IDkyIGY3IDZiIGZlIDU0IGI5IDAzIGE5IGM5 CithOSA0YSBjOSBiNCA3YSBkMiA2NSA1YyA1ZiAxMCBmOSBhZSBmNyAxNCAyNyBlMgorZmMg NmYgOWIgM2YgMzkgOWEgMjIgMTQgODkgZjEgNjMgNjIgYzcgMDMgMjMgMzYKKzA5IGQ0IDVh IGM2IDk4IDY0IGUzIDMyIDFjIGY4IDI5IDM1IGFjIDQwIDk2IGM4Cis2ZSAxMyAzMyAxNCBj NSA0MCAxOSBlOCBjYSA3OSA4MCBkZiBhNCBiOSBjZiAxYgorMzggNGMgNDggNmYgM2EgNTQg YzUgMTAgNzggMTUgOGUgZTUgZDcgOWQgZTUgOWYKK2JkIDM0IGQ4IDQ4IGIzIGQ2IDk1IDUw IGE2IDc2IDQ2IDM0IDQ0IDI3IGFkIGU1Cis0YiA4OCA1MSBmZiBiNSA5OCBmNyBmOCAwMCA3 NCBiOSA0NyAzYyA4MiBlMiBkYgorNjUgMmMgM2YgYTMgNmIgMGEgN2MgNWIgMzIgMTkgZmEg YjMgYTMgMGIgYzEgYzQKKzUuMgorQyA9CisxYSBmMyA4YyAyZCBjMiBiOSA2ZiBmZCBkOCA2 NiA5NCAwOSAyMyA0MSBiYyAwNAorZWEgNjUgZGEgNmIgNTkgZTYgMWUgZGIgNDEgOWIgZTYg MmQgMTkgNzEgMmEgZTUKK2QzIDAzIGVlIGI1IDAwIDUyIGQwIGRmIGQ2IDY5IDdmIDc3IDIy IDRjIDhlIGRiCiswMCAwZCAyNyA5YiBkYyAxNCBjMSAwNyAyNiA1NCBiZCAzMCA5NCA0MiAz MCBjNgorNTcgYmUgZDQgY2EgMGMgOWYgNGEgODQgNjYgZjIgMmIgMjIgNmQgMTcgNDYgMjEK KzRiIGY4IGNmIGMyIDQwIDBhIGRkIDlmIDUxIDI2IGU0IDc5IDY2IDNmIGM5IDBiCiszYiBl ZCA3OCA3YSAyZiAwZiBmYyBiZiAzOSAwNCBiZSAyYSA2NCAxZCA1YyAyMQorMDUgYmYgZTUg OTEgYmEgZTIgM2IgMWQgNzQgNDkgZTUgMzIgZWUgZjYgMGEgOWEKK2M4IGJiIDZjIDZiIDAx IGQzIDVkIDQ5IDc4IDdiIGNkIDU3IGVmIDQ4IDQ5IDI3CitmMiA4MCBhZCBjOSAxYSBjMCBj NCBlNyA5YyA3YiAxMSBlZiBjNiAwMCA1NCBlMworODQgOTAgYWMgMGUgNTggOTQgOWIgZmUg NTEgODcgNWQgNzMgM2YgOTMgYWMgMjAKKzc1IDE2IDgwIDM5IGNjIGM3IDMzIGQ3Cis1LjMK K0MgPQorMWEgZjMgOGMgMmQgYzIgYjkgNmYgZmQgZDggNjYgOTQgMDkgMjMgNDEgYmMgMDQK Kzg5IDMxIDI5IGIwIGY0IGVlIDllIGIxIDhkIDc1IGVkIGE2IGYyIGFhIGE5IGYzCis2MCA3 YyA5OCBjNCBiYSAwNCA0NCBkMyA0MSA2MiAxNyAwZCA4OSA2MSA4OCA0ZQorNTggZjIgN2Qg NGEgMzUgYTUgZTMgZTMgMjMgNGEgYTkgOTQgMDQgZjMgMjcgZjUKK2MyIGQ3IDhlIDk4IDZl IDU3IDQ5IDg1IDhiIDg4IGJjIGRkIGMyIGJhIDA1IDIxCis4ZiAxOSA1MSAxMiBkNiBhZCA0 OCBmYSAzYiAxZSA4OSBhYSA3ZiAyMCBkNSA5NgorNjggMmYgMTAgYjMgNjQgOGQgM2IgYjAg YzkgODMgYzMgMTggNWYgNTkgZTMgNmQKKzI4IGY2IDQ3IGMxIGMxIDM5IDg4IGRlIDhlIGEw IGQ4IDIxIDE5IDhjIDE1IDA5Cis3NyBlMiA4YyBhNyA2OCAwOCAwYiBjNyA4YyAzNSBmYSBl ZCA2OSBkOCBjMCBiNworZDkgZjUgMDYgMjMgMjEgOTggYTQgODkgYTEgYTYgYWUgMDMgYTMg MTkgZmIgMzAKK2RkIDEzIDFkIDA1IGFiIDM0IDY3IGRkIDA1IDZmIDhlIDg4IDJiIGFkIDcw IDYzCis3ZiAxZSA5YSA1NCAxZCA5YyAyMyBlNworNS40CitDID0KKzFhIGYzIDhjIDJkIGMy IGI5IDZmIGZkIGQ4IDY2IDk0IDA5IDIzIDQxIGJjIDA0Cis0YSBmZiBhYSBhZCBiNyA4YyAz MSBjNSBkYSA0YiAxYiA1OSAwZCAxMCBmZiBiZAorM2QgZDggZDUgZDMgMDIgNDIgMzUgMjYg OTEgMmQgYTAgMzcgZWMgYmMgYzcgYmQKKzgyIDJjIDMwIDFkIGQ2IDdjIDM3IDNiIGNjIGI1 IDg0IGFkIDNlIDkyIDc5IGMyCitlNiBkMSAyYSAxMyA3NCBiNyA3ZiAwNyA3NSA1MyBkZiA4 MiA5NCAxMCA0NCA2YgorMzYgZWIgZDkgNzAgNjYgMjkgNmEgZTYgNDIgN2UgYTcgNWMgMmUg MDggNDYgYTEKKzFhIDA5IGNjIGY1IDM3IDBkIGM4IDBiIGZlIGNiIGFkIDI4IGM3IDNmIDA5 IGIzCithMyBiNyA1ZSA2NiAyYSAyNSA5NCA0MSAwYSBlNCA5NiBiMiBlMiBlNiA2MCA5ZQor MzEgZTYgZTAgMmMgYzggMzcgZjAgNTMgZDIgMWYgMzcgZmYgNGYgNTEgOTUgMGIKK2JlIDI2 IDM4IGQwIDlkIGQ3IGE0IDkzIDA5IDMwIDgwIDZkIDA3IDAzIGIxIGY2Cis0ZCBkMyBiNCBj MCA4OCBhNyBmNCA1YyAyMSA2OCAzOSA2NCA1YiAyMCAxMiBiZgorMmUgNjIgNjkgYTggYzUg NmEgODEgNmQgYmMgMWIgMjYgNzcgNjEgOTUgNWIgYzUKK30sCisJJ0FFQURfQUVTXypfQ0JD X0hNQUNfU0hBXyogdGVzdCBjYXNlcycpOworCitkb25lX3Rlc3RpbmcoKTsKZGlmZiAtLWdp dCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvLmdpdGlnbm9yZSBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL3Rlc3QvLmdpdGlnbm9yZQppbmRleCA2YmE3OGFkYjY3Li4xODQ2NTk0ZWM1 IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRpZ25vcmUKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC8uZ2l0aWdub3JlCkBAIC0xLDIgKzEsMyBA QAorL2xpYnBxX3Rlc3RfZW5jcnlwdAogL2xpYnBxX3Rlc3RjbGllbnQKIC9saWJwcV91cmlf cmVncmVzcwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9NYWtlZmls ZSBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvTWFrZWZpbGUKaW5kZXggNzVhYzA4Zjk0 My4uYjFlYmFiOTBkNCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9N YWtlZmlsZQorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L01ha2VmaWxlCkBAIC0x NSwxMCArMTUsMTcgQEAgb3ZlcnJpZGUgQ1BQRkxBR1MgOj0gLUkkKGxpYnBxX3NyY2Rpcikg JChDUFBGTEFHUykKIExERkxBR1NfSU5URVJOQUwgKz0gJChsaWJwcV9wZ3BvcnQpCiAKIFBS T0dTID0gbGlicHFfdGVzdGNsaWVudCBsaWJwcV91cmlfcmVncmVzcworaWZlcSAoJCh3aXRo X3NzbCksb3BlbnNzbCkKK1BST0dTICs9IGxpYnBxX3Rlc3RfZW5jcnlwdAorZW5kaWYKKwog CiBhbGw6ICQoUFJPR1MpCiAKICQoUFJPR1MpOiAkKFdJTjMyUkVTKQogCitsaWJwcV90ZXN0 X2VuY3J5cHQ6IC4uL2ZlLWVuY3J5cHQtb3BlbnNzbC5jCisJJChDQykgJChDUFBGTEFHUykg LURURVNUX0VOQ1JZUFQgJChDRkxBR1MpICReICQoTERGTEFHUykgJChMREZMQUdTX0VYKSAk KExJQlMpIC1vICRAJChYKQorCiBjbGVhbiBkaXN0Y2xlYW4gbWFpbnRhaW5lci1jbGVhbjoK IAlybSAtZiAkKFBST0dTKSAqLm8KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBx L3Rlc3QvbWVzb24uYnVpbGQgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L21lc29uLmJ1 aWxkCmluZGV4IGIyYTRiMDZmZDIuLjg3ZDI4MDhiNTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL3Rlc3QvbWVzb24uYnVpbGQKKysrIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvdGVzdC9tZXNvbi5idWlsZApAQCAtMzYsMyArMzYsMjYgQEAgZXhlY3V0YWJsZSgnbGli cHFfdGVzdGNsaWVudCcsCiAgICAgJ2luc3RhbGwnOiBmYWxzZSwKICAgfQogKQorCisKK2xp YnBxX3Rlc3RfZW5jcnlwdF9zb3VyY2VzID0gZmlsZXMoCisgICcuLi9mZS1lbmNyeXB0LW9w ZW5zc2wuYycsCispCisKK2lmIGhvc3Rfc3lzdGVtID09ICd3aW5kb3dzJworICBsaWJwcV90 ZXN0X2VuY3J5cHRfc291cmNlcyArPSByY19iaW5fZ2VuLnByb2Nlc3Mod2luMzJ2ZXJfcmMs IGV4dHJhX2FyZ3M6IFsKKyAgICAnLS1OQU1FJywgJ2xpYnBxX3Rlc3RfZW5jcnlwdCcsCisg ICAgJy0tRklMRURFU0MnLCAnbGlicHEgdGVzdCBwcm9ncmFtJyxdKQorZW5kaWYKKworaWYg c3NsLmZvdW5kKCkKKyAgZXhlY3V0YWJsZSgnbGlicHFfdGVzdF9lbmNyeXB0JywKKyAgICBs aWJwcV90ZXN0X2VuY3J5cHRfc291cmNlcywKKyAgICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBp bmNsdWRlX2RpcmVjdG9yaWVzKCcuLi8uLi8uLi9wb3J0JyksCisgICAgZGVwZW5kZW5jaWVz OiBbZnJvbnRlbmRfY29kZSwgbGlicHEsIHNzbF0sCisgICAgY19hcmdzOiBbJy1EVEVTVF9F TkNSWVBUJ10sCisgICAga3dhcmdzOiBkZWZhdWx0X2Jpbl9hcmdzICsgeworICAgICAgJ2lu c3RhbGwnOiBmYWxzZSwKKyAgICB9CisgICkKK2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9NYWtlZmlsZSBiL3NyYy90ZXN0L01ha2VmaWxlCmluZGV4IGRiZDMxOTI4NzQuLmM4YmEx NzA1MDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L01ha2VmaWxlCisrKyBiL3NyYy90ZXN0L01h a2VmaWxlCkBAIC0yNCw3ICsyNCw3IEBAIGlmZXEgKCQod2l0aF9sZGFwKSx5ZXMpCiBTVUJE SVJTICs9IGxkYXAKIGVuZGlmCiBpZmVxICgkKHdpdGhfc3NsKSxvcGVuc3NsKQotU1VCRElS UyArPSBzc2wKK1NVQkRJUlMgKz0gY29sdW1uX2VuY3J5cHRpb24gc3NsCiBlbmRpZgogCiAj IFRlc3Qgc3VpdGVzIHRoYXQgYXJlIG5vdCBzYWZlIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBy dW4gaWYgc2VsZWN0ZWQKQEAgLTM2LDcgKzM2LDcgQEAgZXhwb3J0IFBHX1RFU1RfRVhUUkEK ICMgY2xlYW4iIGV0YyB0byByZWN1cnNlIGludG8gdGhlbS4gIChXZSBtdXN0IGZpbHRlciBv dXQgdGhvc2UgdGhhdCB3ZQogIyBoYXZlIGNvbmRpdGlvbmFsbHkgaW5jbHVkZWQgaW50byBT VUJESVJTIGFib3ZlLCBlbHNlIHRoZXJlIHdpbGwgYmUKICMgbWFrZSBjb25mdXNpb24uKQot QUxXQVlTX1NVQkRJUlMgPSAkKGZpbHRlci1vdXQgJChTVUJESVJTKSxleGFtcGxlcyBrZXJi ZXJvcyBpY3UgbGRhcCBzc2wpCitBTFdBWVNfU1VCRElSUyA9ICQoZmlsdGVyLW91dCAkKFNV QkRJUlMpLGV4YW1wbGVzIGtlcmJlcm9zIGljdSBsZGFwIHNzbCBjb2x1bW5fZW5jcnlwdGlv bikKIAogIyBXZSB3YW50IHRvIHJlY3Vyc2UgdG8gYWxsIHN1YmRpcnMgZm9yIGFsbCBzdGFu ZGFyZCB0YXJnZXRzLCBleGNlcHQgdGhhdAogIyBpbnN0YWxsY2hlY2sgYW5kIGluc3RhbGwg c2hvdWxkIG5vdCByZWN1cnNlIGludG8gdGhlIHN1YmRpcmVjdG9yeSAibW9kdWxlcyIuCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi8uZ2l0aWdub3JlIGIvc3Jj L3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwLi40NTZkYmY2OWQyCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj L3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGlnbm9yZQpAQCAtMCwwICsxLDMgQEAKKy90 ZXN0X2NsaWVudAorIyBHZW5lcmF0ZWQgYnkgdGVzdCBzdWl0ZQorL3RtcF9jaGVjay8KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlIGIvc3JjL3Rl c3QvY29sdW1uX2VuY3J5cHRpb24vTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uZDVlYWQ4NzRlNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0 L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlCkBAIC0wLDAgKzEsMzEgQEAKKyMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisjCisjIE1ha2VmaWxlIGZvciBzcmMvdGVzdC9jb2x1bW5fZW5jcnlw dGlvbgorIworIyBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMywgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyMgUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyMKKyMgc3Jj L3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vTWFrZWZpbGUKKyMKKyMtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisKK3N1YmRpciA9IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uCit0b3BfYnVpbGRk aXIgPSAuLi8uLi8uLgoraW5jbHVkZSAkKHRvcF9idWlsZGRpcikvc3JjL01ha2VmaWxlLmds b2JhbAorCitleHBvcnQgT1BFTlNTTCBQRVJMCisKK292ZXJyaWRlIENQUEZMQUdTIDo9IC1J JChsaWJwcV9zcmNkaXIpICQoQ1BQRkxBR1MpCitMREZMQUdTX0lOVEVSTkFMICs9IC1MJCh0 b3BfYnVpbGRkaXIpL3NyYy9mZV91dGlscyAtbHBnZmV1dGlscyAkKGxpYnBxX3BncG9ydCkK KworYWxsOiB0ZXN0X2NsaWVudAorCitjaGVjazogYWxsCisJJChwcm92ZV9jaGVjaykKKwor aW5zdGFsbGNoZWNrOgorCSQocHJvdmVfaW5zdGFsbGNoZWNrKQorCitjbGVhbiBkaXN0Y2xl YW4gbWFpbnRhaW5lci1jbGVhbjoKKwlybSAtZiB0ZXN0X2NsaWVudC5vIHRlc3RfY2xpZW50 CisJcm0gLXJmIHRtcF9jaGVjawpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5 cHRpb24vbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9tZXNvbi5i dWlsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40N2Y4OGM0MWNl Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vbWVzb24u YnVpbGQKQEAgLTAsMCArMSwyNCBAQAorY29sdW1uX2VuY3J5cHRpb25fdGVzdF9jbGllbnQg PSBleGVjdXRhYmxlKCd0ZXN0X2NsaWVudCcsCisgIGZpbGVzKCd0ZXN0X2NsaWVudC5jJyks CisgIGRlcGVuZGVuY2llczogW2Zyb250ZW5kX2NvZGUsIGxpYnBxXSwKKyAga3dhcmdzOiBk ZWZhdWx0X2Jpbl9hcmdzICsgeworICAgICdpbnN0YWxsJzogZmFsc2UsCisgIH0sCispCit0 ZXN0cHJlcF90YXJnZXRzICs9IGNvbHVtbl9lbmNyeXB0aW9uX3Rlc3RfY2xpZW50CisKK3Rl c3RzICs9IHsKKyAgJ25hbWUnOiAnY29sdW1uX2VuY3J5cHRpb24nLAorICAnc2QnOiBtZXNv bi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKKyAgJ2JkJzogbWVzb24uY3VycmVudF9idWlsZF9k aXIoKSwKKyAgJ3RhcCc6IHsKKyAgICAndGVzdHMnOiBbCisgICAgICAndC8wMDFfY29sdW1u X2VuY3J5cHRpb24ucGwnLAorICAgICAgJ3QvMDAyX2Nta19yb3RhdGlvbi5wbCcsCisgICAg XSwKKyAgICAnZW52JzogeworICAgICAgJ09QRU5TU0wnOiBvcGVuc3NsLnBhdGgoKSwKKyAg ICAgICdQRVJMJzogcGVybC5wYXRoKCksCisgICAgfSwKKyAgfSwKK30KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBs IGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdC8wMDFfY29sdW1uX2VuY3J5cHRpb24u cGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzU2YWY3MzdhYwot LS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAxX2Nv bHVtbl9lbmNyeXB0aW9uLnBsCkBAIC0wLDAgKzEsMjU1IEBACisjIENvcHlyaWdodCAoYykg MjAyMS0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCit1c2Ug c3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7 Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworbXkg JG9wZW5zc2wgPSAkRU5We09QRU5TU0x9OworbXkgJHBlcmwgPSAkRU5We1BFUkx9OworCisj IENhbiBiZSBjaGFuZ2VkIG1hbnVhbGx5IGZvciB0ZXN0aW5nIG90aGVyIGFsZ29yaXRobXMu ICBOb3RlIHRoYXQKKyMgUlNBRVNfT0FFUF9TSEFfMjU2IHJlcXVpcmVzIE9wZW5TU0wgMS4x LjAuCitteSAkY21rYWxnID0gJ1JTQUVTX09BRVBfU0hBXzEnOworCitteSAkbm9kZSA9IFBv c3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnbm9kZScpOworJG5vZGUtPmluaXQ7Cisk bm9kZS0+c3RhcnQ7CisKKworc3ViIGNyZWF0ZV9jbWsKK3sKKwlteSAoJGNta25hbWUpID0g QF87CisJbXkgJGNta2ZpbGVuYW1lID0gIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRt cF9jaGVja30vJHtjbWtuYW1lfS5wZW0iOworCXN5c3RlbV9vcl9iYWlsICRvcGVuc3NsLCAn Z2VucGtleScsICctYWxnb3JpdGhtJywgJ3JzYScsICctb3V0JywgJGNta2ZpbGVuYW1lOwor CSRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7Q1JFQVRFIENPTFVNTiBNQVNURVIg S0VZICR7Y21rbmFtZX19KTsKKwlyZXR1cm4gJGNta2ZpbGVuYW1lOworfQorCitzdWIgY3Jl YXRlX2NlaworeworCW15ICgkY2VrbmFtZSwgJGJ5dGVzLCAkY21rbmFtZSwgJGNta2ZpbGVu YW1lKSA9IEBfOworCisJbXkgJGRpZ2VzdCA9ICRjbWthbGc7CisJJGRpZ2VzdCA9fiBzLy4q KD89U0hBKS8vOworCSRkaWdlc3QgPX4gcy9fLy9nOworCisJIyBnZW5lcmF0ZSByYW5kb20g Ynl0ZXMKKwlzeXN0ZW1fb3JfYmFpbCAkb3BlbnNzbCwgJ3JhbmQnLCAnLW91dCcsICIke1Bv c3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluIiwgJGJ5 dGVzOworCisJIyBlbmNyeXB0IENFSyB1c2luZyBDTUsKKwlteSBAY21kID0gKAorCQkkb3Bl bnNzbCwgJ3BrZXl1dGwnLCAnLWVuY3J5cHQnLAorCQknLWlua2V5JywgJGNta2ZpbGVuYW1l LAorCQknLXBrZXlvcHQnLCAncnNhX3BhZGRpbmdfbW9kZTpvYWVwJywKKwkJJy1pbicsICIk e1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluIiwK KwkJJy1vdXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nl a25hbWV9LmJpbi5lbmMiCisJKTsKKwlpZiAoJGRpZ2VzdCBuZSAnU0hBMScpCisJeworCQkj IFRoZXNlIG9wdGlvbnMgcmVxdWlyZSBPcGVuU1NMID49MS4xLjAsIHNvIGlmIHRoZSBkaWdl c3QgaXMKKwkJIyBTSEExLCB3aGljaCBpcyB0aGUgZGVmYXVsdCwgb21pdCB0aGUgb3B0aW9u cy4KKwkJcHVzaCBAY21kLAorCQkgICctcGtleW9wdCcsICJyc2FfbWdmMV9tZDokZGlnZXN0 IiwKKwkJICAnLXBrZXlvcHQnLCAicnNhX29hZXBfbWQ6JGRpZ2VzdCI7CisJfQorCXN5c3Rl bV9vcl9iYWlsIEBjbWQ7CisKKwlteSAkY2VrZW5jaGV4ID0gdW5wYWNrKCdIKicsIHNsdXJw X2ZpbGUgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1l fS5iaW4uZW5jIik7CisKKwkjIGNyZWF0ZSBDRUsgaW4gZGF0YWJhc2UKKwkkbm9kZS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgJHtj ZWtuYW1lfSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSAke2Nta25hbWV9LCBh bGdvcml0aG0gPSAnJHtjbWthbGd9JywgZW5jcnlwdGVkX3ZhbHVlID0gJ1xceCR7Y2VrZW5j aGV4fScpO30pOworCisJcmV0dXJuOworfQorCisKK215ICRjbWsxZmlsZW5hbWUgPSBjcmVh dGVfY21rKCdjbWsxJyk7CitteSAkY21rMmZpbGVuYW1lID0gY3JlYXRlX2NtaygnY21rMicp OworY3JlYXRlX2NlaygnY2VrMScsIDQ4LCAnY21rMScsICRjbWsxZmlsZW5hbWUpOworY3Jl YXRlX2NlaygnY2VrMicsIDcyLCAnY21rMicsICRjbWsyZmlsZW5hbWUpOworCiskRU5We1BH Q09MVU1ORU5DUllQVElPTn0gPSAnb24nOworJEVOVntQR0NNS0xPT0tVUH0gPSAnKj1maWxl OicgLiAke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9IC4gJy8lay5wZW0n OworCisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CitDUkVBVEUgVEFCTEUg dGJsMSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5f ZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSwKKyAgICBjIHNtYWxsaW50IEVOQ1JZUFRFRCBXSVRI IChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK30pOworCiskbm9kZS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsIHF7CitJTlNFUlQgSU5UTyB0YmwxIChhLCBiLCBjKSBWQUxV RVMgKDEsICQxLCAkMikgXGJpbmQgJ3ZhbDEnIDExIFxnCitJTlNFUlQgSU5UTyB0YmwxIChh LCBiLCBjKSBWQUxVRVMgKDIsICQxLCAkMikgXGJpbmQgJ3ZhbDInIDIyIFxnCit9KTsKKwor IyBFeHBlY3RlZCBjaXBoZXJ0ZXh0IGxlbmd0aCBpcyAyIGJsb2NrcyBvZiBBRVMgb3V0cHV0 ICgyICogMTYpIHBsdXMKKyMgaGFsZiBTSEEtMjU2IG91dHB1dCAoMTYpIGluIGhleCBlbmNv ZGluZzogKDIgKiAxNiArIDE2KSAqIDIgPSA5NgorbGlrZSgkbm9kZS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsIHF7Q09QWSAoU0VMRUNUICogRlJPTSB0YmwxKSBUTyBTVERPVVR9KSwKKwlx ci8xXHRlbmNyeXB0ZWRcJFswLTlhLWZdezk2fVx0ZW5jcnlwdGVkXCRbMC05YS1mXXs5Nn1c bjJcdGVuY3J5cHRlZFwkWzAtOWEtZl17OTZ9XHRlbmNyeXB0ZWRcJFswLTlhLWZdezk2fS8s CisJJ2luc2VydGVkIGRhdGEgaXMgZW5jcnlwdGVkJyk7CisKK215ICRyZXN1bHQ7CisKKyRy ZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMg RlJPTSB0YmwxIFxnZGVzY30pOworaXMoJHJlc3VsdCwKKwlxKGF8aW50ZWdlcgorYnx0ZXh0 CitjfHNtYWxsaW50KSwKKwkncXVlcnkgcmVzdWx0IGRlc2NyaXB0aW9uIGhhcyBvcmlnaW5h bCB0eXBlJyk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7 U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CitpcygkcmVzdWx0LAorCXEoMXx2YWwxfDEx CisyfHZhbDJ8MjIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0Jyk7CisKK3sKKwlsb2Nh bCAkRU5We1BHQ01LTE9PS1VQfSA9ICcqPXJ1bjpicm9rZW4gJWsgJXAnOworCSRyZXN1bHQg PSAkbm9kZS0+cHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsMX0p OworCWlzbnQoJHJlc3VsdCwgMCwgJ3F1ZXJ5IGZhaWxzIHdpdGggYnJva2VuIGNta2xvb2t1 cCBydW4gc2V0dGluZycpOworfQorCit7CisJbG9jYWwgJEVOVntURVNUV09SS0RJUn0gPSAk e1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9OworCWxvY2FsICRFTlZ7UEdD TUtMT09LVVB9ID0gIio9cnVuOiRwZXJsIC4vdGVzdF9ydW5fZGVjcnlwdC5wbCAlayAlYSAl cCI7CisKKwlteSAkc3Rkb3V0OworCSRyZXN1bHQgPSAkbm9kZS0+cHNxbCgncG9zdGdyZXMn LCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsMX0sIHN0ZG91dCA9PiBcJHN0ZG91dCk7CisJ aXMoJHN0ZG91dCwKKwkJcSgxfHZhbDF8MTEKKzJ8dmFsMnwyMiksCisJCSdkZWNyeXB0ZWQg cXVlcnkgcmVzdWx0IHdpdGggY21rbG9va3VwIHJ1bicpOworfQorCisKKyRub2RlLT5jb21t YW5kX2ZhaWxzX2xpa2UoWyd0ZXN0X2NsaWVudCcsICd0ZXN0MSddLCBxci9ub3QgZW5jcnlw dGVkLywgJ3Rlc3QgY2xpZW50IGZhaWxzIGJlY2F1c2UgcGFyYW1ldGVycyBub3QgZW5jcnlw dGVkJyk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VM RUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CitpcygkcmVzdWx0LAorCXEoMXx2YWwxfDExCisy fHZhbDJ8MjIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IGFmdGVyIHRlc3QgY2xpZW50 IGluc2VydCcpOworCiskbm9kZS0+Y29tbWFuZF9vayhbJ3Rlc3RfY2xpZW50JywgJ3Rlc3Qy J10sICd0ZXN0IGNsaWVudCB0ZXN0IDInKTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKK2lzKCRyZXN1 bHQsCisJcSgxfHZhbDF8MTEKKzJ8dmFsMnwyMgorM3x2YWwzfDMzKSwKKwknZGVjcnlwdGVk IHF1ZXJ5IHJlc3VsdCBhZnRlciB0ZXN0IGNsaWVudCBpbnNlcnQgMicpOworCitsaWtlKCRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtDT1BZIChTRUxFQ1QgKiBGUk9NIHRibDEg V0hFUkUgYSA9IDMpIFRPIFNURE9VVH0pLAorCXFyLzNcdGVuY3J5cHRlZFwkWzAtOWEtZl17 OTZ9LywKKwknaW5zZXJ0ZWQgZGF0YSBpcyBlbmNyeXB0ZWQnKTsKKworCisjIFRlc3RzIHdp dGggYmluYXJ5IGZvcm1hdAorCisjIFN1cHBseWluZyBhIHBhcmFtZXRlciBpbiBiaW5hcnkg Zm9ybWF0IHdoZW4gdGhlIHBhcmFtZXRlciBpcyB0byBiZQorIyBlbmNyeXB0ZWQgcmVzdWx0 cyBpbiBhbiBlcnJvciBmcm9tIGxpYnBxLgorJG5vZGUtPmNvbW1hbmRfZmFpbHNfbGlrZShb J3Rlc3RfY2xpZW50JywgJ3Rlc3QzJ10sCisJcXIvZm9ybWF0IG11c3QgYmUgdGV4dCBmb3Ig ZW5jcnlwdGVkIHBhcmFtZXRlci8sCisJJ3Rlc3QgY2xpZW50IGZhaWxzIGJlY2F1c2UgdG8t YmUtZW5jcnlwdGVkIHBhcmFtZXRlciBpcyBpbiBiaW5hcnkgZm9ybWF0Jyk7CisKKyMgUmVx dWVzdGluZyBhIGJpbmFyeSByZXN1bHQgc2V0IHN0aWxsIGNhdXNlcyBhbnkgZW5jcnlwdGVk IGNvbHVtbnMgdG8KKyMgYmUgcmV0dXJuZWQgYXMgdGV4dCBmcm9tIHRoZSBsaWJwcSBBUEku Ciskbm9kZS0+Y29tbWFuZF9saWtlKFsndGVzdF9jbGllbnQnLCAndGVzdDQnXSwKKwlxci88 MCwwPj0xOlxuPDAsMT49MDp2YWwxXG48MCwyPj0wOjExLywKKwknYmluYXJ5IHJlc3VsdCBz ZXQgd2l0aCBlbmNyeXB0ZWQgY29sdW1uczogZW5jcnlwdGVkIGNvbHVtbnMgcmV0dXJuZWQg YXMgdGV4dCcpOworCisKKyMgVGVzdCBVUERBVEUKKworJG5vZGUtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCBxeworVVBEQVRFIHRibDEgU0VUIGIgPSAkMiBXSEVSRSBhID0gJDEgXGJpbmQg JzMnICd2YWwzdXBkJyBcZworfSk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CitpcygkcmVzdWx0LAor CXEoMXx2YWwxfDExCisyfHZhbDJ8MjIKKzN8dmFsM3VwZHwzMyksCisJJ2RlY3J5cHRlZCBx dWVyeSByZXN1bHQgYWZ0ZXIgdXBkYXRlJyk7CisKKworIyBUZXN0IHZpZXdzCisKKyRub2Rl LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtDUkVBVEUgVklFVyB2MSBBUyBTRUxFQ1QgYSwg YiwgYyBGUk9NIHRibDF9KTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1VQ REFURSB2MSBTRVQgYiA9ICQyIFdIRVJFIGEgPSAkMSBcYmluZCAnMycgJ3ZhbDN1cGQyJyBc Z30pOworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVD VCBhLCBiLCBjIEZST00gdjEgV0hFUkUgYSBJTiAoMSwgMyl9KTsKK2lzKCRyZXN1bHQsCisJ cSgxfHZhbDF8MTEKKzN8dmFsM3VwZDJ8MzMpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0 IGZyb20gdmlldycpOworCisKKyMgVGVzdCBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb24KKwor JG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKK0NSRUFURSBUQUJMRSB0YmwyICgK KyAgICBhIGludCwKKyAgICBiIHRleHQgRU5DUllQVEVEIFdJVEggKGVuY3J5cHRpb25fdHlw ZSA9IGRldGVybWluaXN0aWMsIGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpCispOwor fSk7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXsKK0lOU0VSVCBJTlRPIHRi bDIgKGEsIGIpIFZBTFVFUyAoJDEsICQyKSwgKCQzLCAkNCksICgkNSwgJDYpIFxiaW5kICcx JyAndmFsQScgJzInICd2YWxCJyAnMycgJ3ZhbEEnIFxnCit9KTsKKworJHJlc3VsdCA9ICRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiBGUk9NIHRibDJ9KTsK K2lzKCRyZXN1bHQsCisJcSgxfHZhbEEKKzJ8dmFsQgorM3x2YWxBKSwKKwknZGVjcnlwdGVk IHF1ZXJ5IHJlc3VsdCBpbiB0YWJsZSBmb3IgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uJyk7 CisKK2lzKCRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYiwgY291bnQo KikgRlJPTSB0YmwyIEdST1VQIEJZIGIgT1JERVIgQlkgMn0pLAorCXEodmFsQnwxCit2YWxB fDIpLAorCSdncm91cCBieSBkZXRlcm1pbmlzdGljYWxseSBlbmNyeXB0ZWQgY29sdW1uJyk7 CisKK2lzKCRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSBGUk9NIHRi bDIgV0hFUkUgYiA9ICQxIFxiaW5kICd2YWxCJyBcZ30pLAorCXEoMiksCisJJ3NlbGVjdCBi eSBkZXRlcm1pbmlzdGljYWxseSBlbmNyeXB0ZWQgY29sdW1uJyk7CisKKworIyBUZXN0IG11 bHRpcGxlIGtleXMgaW4gb25lIHRhYmxlCisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgcXF7CitDUkVBVEUgVEFCTEUgdGJsMyAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVO Q1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSwKKyAgICBjIHRl eHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazIsIGFsZ29y aXRobSA9ICdBRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NCcpCispOworfSk7CisKKyRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXsKK0lOU0VSVCBJTlRPIHRibDMgKGEsIGIs IGMpIFZBTFVFUyAoMSwgJDEsICQyKSBcYmluZCAndmFsQjEnICd2YWxDMScgXGcKK30pOwor CiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBi LCBjIEZST00gdGJsM30pOworaXMoJHJlc3VsdCwKKwlxKDF8dmFsQjF8dmFsQzEpLAorCSdk ZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IG11bHRpcGxlIGtleXMnKTsKKworJG5vZGUtPnNhZmVf cHNxbCgncG9zdGdyZXMnLCBxeworSU5TRVJUIElOVE8gdGJsMyAoYSwgYiwgYykgVkFMVUVT ICgkMSwgJDIsICQzKSwgKCQ0LCAkNSwgJDYpIFxiaW5kICcyJyAndmFsQjInICd2YWxDMicg JzMnICd2YWxCMycgJ3ZhbEMzJyBcZworfSk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwzfSk7CitpcygkcmVz dWx0LAorCXEoMXx2YWxCMXx2YWxDMQorMnx2YWxCMnx2YWxDMgorM3x2YWxCM3x2YWxDMyks CisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgbXVsdGlwbGUga2V5cyBhZnRlciBzZWNvbmQg aW5zZXJ0Jyk7CisKKworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9j b2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwgYi9zcmMvdGVzdC9jb2x1 bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMC4uMTRlYWZiOGVjOQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAyX2Nta19yb3RhdGlvbi5wbApAQCAtMCww ICsxLDExMiBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMywgUG9zdGdyZVNRTCBHbG9i YWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBUZXN0IGNvbHVtbiBtYXN0ZXIga2V5IHJvdGF0 aW9uLiAgRmlyc3QsIHdlIGdlbmVyYXRlIENNSzEgYW5kIGEgQ0VLCisjIGVuY3J5cHRlZCB3 aXRoIGl0LiAgVGhlbiB3ZSBhZGQgYSBDTUsyIGFuZCBlbmNyeXB0IHRoZSBDRUsgd2l0aCBp dAorIyBhcyB3ZWxsLiAgKFJlY2FsbCB0aGF0IGEgQ0VLIGNhbiBiZSBhc3NvY2lhdGVkIHdp dGggbXVsdGlwbGUgQ01LcywKKyMgZm9yIHRoaXMgcmVhc29uLiAgVGhhdCdzIHdoeSBwZ19j b2xlbmNrZXlkYXRhIGlzIHNwbGl0IG91dCBmcm9tCisjIHBnX2NvbGVuY2tleS4pICBUaGVu IHdlIHJlbW92ZSBDTUsxLiAgV2UgdGVzdCB0aGF0IHdlIGNhbiBnZXQKKyMgZGVjcnlwdGVk IHF1ZXJ5IHJlc3VsdHMgYXQgZWFjaCBzdGVwLgorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5p bmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6 VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworbXkgJG9wZW5zc2wgPSAkRU5We09Q RU5TU0x9OworCitteSAkY21rYWxnID0gJ1JTQUVTX09BRVBfU0hBXzEnOworCitteSAkbm9k ZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnbm9kZScpOworJG5vZGUtPmlu aXQ7Ciskbm9kZS0+c3RhcnQ7CisKKworc3ViIGNyZWF0ZV9jbWsKK3sKKwlteSAoJGNta25h bWUpID0gQF87CisJbXkgJGNta2ZpbGVuYW1lID0gIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRp bHM6OnRtcF9jaGVja30vJHtjbWtuYW1lfS5wZW0iOworCXN5c3RlbV9vcl9iYWlsICRvcGVu c3NsLCAnZ2VucGtleScsICctYWxnb3JpdGhtJywgJ3JzYScsICctb3V0JywgJGNta2ZpbGVu YW1lOworCSRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7Q1JFQVRFIENPTFVNTiBN QVNURVIgS0VZICR7Y21rbmFtZX19KTsKKwlyZXR1cm4gJGNta2ZpbGVuYW1lOworfQorCisK K215ICRjbWsxZmlsZW5hbWUgPSBjcmVhdGVfY21rKCdjbWsxJyk7CisKKyMgY3JlYXRlIENF SworbXkgKCRjZWtuYW1lLCAkYnl0ZXMpID0gKCdjZWsxJywgNDgpOworCisjIGdlbmVyYXRl IHJhbmRvbSBieXRlcworc3lzdGVtX29yX2JhaWwgJG9wZW5zc2wsICdyYW5kJywgJy1vdXQn LCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJp biIsICRieXRlczsKKworIyBlbmNyeXB0IENFSyB1c2luZyBDTUsKK3N5c3RlbV9vcl9iYWls ICRvcGVuc3NsLCAncGtleXV0bCcsICctZW5jcnlwdCcsCisgICctaW5rZXknLCAkY21rMWZp bGVuYW1lLAorICAnLXBrZXlvcHQnLCAncnNhX3BhZGRpbmdfbW9kZTpvYWVwJywKKyAgJy1p bicsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0u YmluIiwKKyAgJy1vdXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNr fS8ke2Nla25hbWV9LmJpbi5lbmMiOworCitteSAkY2VrZW5jaGV4ID0gdW5wYWNrKCdIKics IHNsdXJwX2ZpbGUgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtj ZWtuYW1lfS5iaW4uZW5jIik7CisKKyMgY3JlYXRlIENFSyBpbiBkYXRhYmFzZQorJG5vZGUt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZ ICR7Y2VrbmFtZX0gV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwgYWxn b3JpdGhtID0gJyRjbWthbGcnLCBlbmNyeXB0ZWRfdmFsdWUgPSAnXFx4JHtjZWtlbmNoZXh9 Jyk7fSk7CisKKyRFTlZ7UEdDT0xVTU5FTkNSWVBUSU9OfSA9ICdvbic7CiskRU5We1BHQ01L TE9PS1VQfSA9ICcqPWZpbGU6JyAuICR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9j aGVja30gLiAnLyVrLnBlbSc7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7 CitDUkVBVEUgVEFCTEUgdGJsMSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRF RCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK30pOworCiskbm9k ZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CitJTlNFUlQgSU5UTyB0YmwxIChhLCBiKSBW QUxVRVMgKDEsICQxKSBcYmluZCAndmFsMScgXGcKK0lOU0VSVCBJTlRPIHRibDEgKGEsIGIp IFZBTFVFUyAoMiwgJDEpIFxiaW5kICd2YWwyJyBcZworfSk7CisKK2lzKCRub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiBGUk9NIHRibDF9KSwKKwlxKDF8dmFs MQorMnx2YWwyKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCB3aXRoIG9uZSBDTUsnKTsK KworCisjIGNyZWF0ZSBuZXcgQ01LCitteSAkY21rMmZpbGVuYW1lID0gY3JlYXRlX2Ntaygn Y21rMicpOworCisjIGVuY3J5cHQgQ0VLIHVzaW5nIG5ldyBDTUsKKyMKKyMgKEhlcmUsIHdl IHN0aWxsIGhhdmUgdGhlIHBsYWludGV4dCBvZiB0aGUgQ0VLIGF2YWlsYWJsZSBmcm9tCisj IGVhcmxpZXIuICBJbiByZWFsaXR5LCBvbmUgd291bGQgZGVjcnlwdCB0aGUgQ0VLIHdpdGgg dGhlIGZpcnN0IENNSworIyBhbmQgdGhlbiByZS1lbmNyeXB0IGl0IHdpdGggdGhlIHNlY29u ZCBDTUsuKQorc3lzdGVtX29yX2JhaWwgJG9wZW5zc2wsICdwa2V5dXRsJywgJy1lbmNyeXB0 JywKKyAgJy1pbmtleScsICRjbWsyZmlsZW5hbWUsCisgICctcGtleW9wdCcsICdyc2FfcGFk ZGluZ19tb2RlOm9hZXAnLAorICAnLWluJywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6 OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4iLAorICAnLW91dCcsICIke1Bvc3RncmVTUUw6 OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluLmVuYyI7CisKKyRjZWtl bmNoZXggPSB1bnBhY2soJ0gqJywgc2x1cnBfZmlsZSAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpV dGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbi5lbmMiKTsKKworIyBhZGQgbmV3IGRh dGEgcmVjb3JkIGZvciBDRUsgaW4gZGF0YWJhc2UKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgcXF7QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZICR7Y2VrbmFtZX0gQUREIFZB TFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazIsIGFsZ29yaXRobSA9ICckY21rYWxnJywg ZW5jcnlwdGVkX3ZhbHVlID0gJ1xceCR7Y2VrZW5jaGV4fScpO30pOworCisKK2lzKCRub2Rl LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiBGUk9NIHRibDF9KSwKKwlx KDF8dmFsMQorMnx2YWwyKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCB3aXRoIHR3byBD TUtzJyk7CisKKworIyBkZWxldGUgQ0VLIHJlY29yZCBmb3IgZmlyc3QgQ01LCiskbm9kZS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAk e2Nla25hbWV9IERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSk7fSk7CisK KworaXMoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiIEZST00g dGJsMX0pLAorCXEoMXx2YWwxCisyfHZhbDIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0 IHdpdGggb25seSBuZXcgQ01LJyk7CisKKworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X2NsaWVudC5jIGIvc3JjL3Rlc3Qv Y29sdW1uX2VuY3J5cHRpb24vdGVzdF9jbGllbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi45YzI1N2EzZGRiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rl c3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9jbGllbnQuYwpAQCAtMCwwICsxLDE2MSBAQAor LyoKKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlc19mZS5oIgorCisjaW5j bHVkZSAibGlicHEtZmUuaCIKKworCisvKgorICogVGVzdCBjYWxscyB0aGF0IGRvbid0IHN1 cHBvcnQgZW5jcnlwdGlvbgorICovCitzdGF0aWMgaW50Cit0ZXN0MShQR2Nvbm4gKmNvbm4p Cit7CisJUEdyZXN1bHQgICAqcmVzOworCWNvbnN0IGNoYXIgKnZhbHVlc1tdID0geyIzIiwg InZhbDMiLCAiMzMifTsKKworCXJlcyA9IFBRcHJlcGFyZShjb25uLCAiIiwgIklOU0VSVCBJ TlRPIHRibDEgKGEsIGIsIGMpIFZBTFVFUyAoJDEsICQyLCAkMykiLAorCQkJCQkzLCBOVUxM KTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsK KwkJZnByaW50ZihzdGRlcnIsICJQUXByZXBhcmUoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBR ZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmVzID0gUFFleGVj UHJlcGFyZWQoY29ubiwgIiIsIDMsIHZhbHVlcywgTlVMTCwgTlVMTCwgMCk7CisJaWYgKFBR cmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYo c3RkZXJyLCAiUFFleGVjUHJlcGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JN ZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8q CisgKiBUZXN0IGZvcmNlZCBlbmNyeXB0aW9uCisgKi8KK3N0YXRpYyBpbnQKK3Rlc3QyKFBH Y29ubiAqY29ubikKK3sKKwlQR3Jlc3VsdCAgICpyZXMsCisJCQkgICAqcmVzMjsKKwljb25z dCBjaGFyICp2YWx1ZXNbXSA9IHsiMyIsICJ2YWwzIiwgIjMzIn07CisJaW50CQkJZm9ybWF0 c1tdID0gezB4MDAsIDB4MTAsIDB4MDB9OworCisJcmVzID0gUFFwcmVwYXJlKGNvbm4sICIi LCAiSU5TRVJUIElOVE8gdGJsMSAoYSwgYiwgYykgVkFMVUVTICgkMSwgJDIsICQzKSIsCisJ CQkJCTMsIE5VTEwpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1B TkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRcHJlcGFyZSgpIGZhaWxlZDogJXNc biIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwly ZXMyID0gUFFkZXNjcmliZVByZXBhcmVkKGNvbm4sICIiKTsKKwlpZiAoUFFyZXN1bHRTdGF0 dXMocmVzMikgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAi UFFkZXNjcmliZVByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2Fn ZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCWlmICghKCFQUXBhcmFtaXNlbmNyeXB0 ZWQocmVzMiwgMCkgJiYKKwkJICBQUXBhcmFtaXNlbmNyeXB0ZWQocmVzMiwgMSkpKQorCXsK KwkJZnByaW50ZihzdGRlcnIsICJ3cm9uZyByZXN1bHRzIGZyb20gUFFwYXJhbWlzZW5jcnlw dGVkKClcbiIpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXMgPSBQUWV4ZWNQcmVwYXJlZERl c2NyaWJlZChjb25uLCAiIiwgMywgdmFsdWVzLCBOVUxMLCBmb3JtYXRzLCAwLCByZXMyKTsK KwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJ ZnByaW50ZihzdGRlcnIsICJQUWV4ZWNQcmVwYXJlZCgpIGZhaWxlZDogJXNcbiIsCisJCQkJ UFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXR1cm4gMDsK K30KKworLyoKKyAqIFRlc3Qgd2hhdCBoYXBwZW5zIHdoZW4geW91IHN1cHBseSBhIGJpbmFy eSBwYXJhbWV0ZXIgdGhhdCBpcyByZXF1aXJlZCB0byBiZQorICogZW5jcnlwdGVkLgorICov CitzdGF0aWMgaW50Cit0ZXN0MyhQR2Nvbm4gKmNvbm4pCit7CisJUEdyZXN1bHQgICAqcmVz OworCWNvbnN0IGNoYXIgKnZhbHVlc1tdID0geyIifTsKKwlpbnQJCQlsZW5ndGhzW10gPSB7 MX07CisJaW50CQkJZm9ybWF0c1tdID0gezF9OworCisJcmVzID0gUFFleGVjUGFyYW1zKGNv bm4sICJJTlNFUlQgSU5UTyB0YmwxIChhLCBiLCBjKSBWQUxVRVMgKDEwMCwgTlVMTCwgJDEp IiwKKwkJCQkJICAgMywgTlVMTCwgdmFsdWVzLCBsZW5ndGhzLCBmb3JtYXRzLCAwKTsKKwlp ZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnBy aW50ZihzdGRlcnIsICJQUWV4ZWNQYXJhbXMoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJy b3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIDA7Cit9CisK Ky8qCisgKiBUZXN0IHdoYXQgaGFwcGVucyB3aGVuIHlvdSByZXF1ZXN0IHJlc3VsdHMgaW4g YmluYXJ5IGFuZCB0aGUgcmVzdWx0IHJvd3MKKyAqIGNvbnRhaW4gYW4gZW5jcnlwdGVkIGNv bHVtbi4KKyAqLworc3RhdGljIGludAordGVzdDQoUEdjb25uICpjb25uKQoreworCVBHcmVz dWx0ICAgKnJlczsKKworCXJlcyA9IFBRZXhlY1BhcmFtcyhjb25uLCAiU0VMRUNUIGEsIGIs IGMgRlJPTSB0YmwxIFdIRVJFIGEgPSAxIiwgMCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwg MSk7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQorCXsK KwkJZnByaW50ZihzdGRlcnIsICJQUWV4ZWNQYXJhbXMoKSBmYWlsZWQ6ICVzXG4iLAorCQkJ CVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJZm9yIChpbnQg cm93ID0gMDsgcm93IDwgUFFudHVwbGVzKHJlcyk7IHJvdysrKQorCQlmb3IgKGludCBjb2wg PSAwOyBjb2wgPCBQUW5maWVsZHMocmVzKTsgY29sKyspCisJCQlwcmludGYoIjwlZCwlZD49 JWQ6JXNcbiIsIHJvdywgY29sLCBQUWZmb3JtYXQocmVzLCBjb2wpLCBQUWdldHZhbHVlKHJl cywgcm93LCBjb2wpKTsKKwlyZXR1cm4gMDsKK30KKworaW50CittYWluKGludCBhcmdjLCBj aGFyICoqYXJndikKK3sKKwlQR2Nvbm4JICAgKmNvbm47CisJaW50CQkJcmV0ID0gMDsKKwor CWNvbm4gPSBQUWNvbm5lY3RkYigiIik7CisJaWYgKFBRc3RhdHVzKGNvbm4pICE9IENPTk5F Q1RJT05fT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIkNvbm5lY3Rpb24gdG8gZGF0YWJh c2UgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVy biAxOworCX0KKworCWlmIChhcmdjIDwgMiB8fCBhcmd2WzFdID09IE5VTEwpCisJCXJldHVy biA4NzsKKwllbHNlIGlmIChzdHJjbXAoYXJndlsxXSwgInRlc3QxIikgPT0gMCkKKwkJcmV0 ID0gdGVzdDEoY29ubik7CisJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0MiIpID09 IDApCisJCXJldCA9IHRlc3QyKGNvbm4pOworCWVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAi dGVzdDMiKSA9PSAwKQorCQlyZXQgPSB0ZXN0Myhjb25uKTsKKwllbHNlIGlmIChzdHJjbXAo YXJndlsxXSwgInRlc3Q0IikgPT0gMCkKKwkJcmV0ID0gdGVzdDQoY29ubik7CisJZWxzZQor CQlyZXQgPSA4ODsKKworCVBRZmluaXNoKGNvbm4pOworCXJldHVybiByZXQ7Cit9CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X3J1bl9kZWNyeXB0LnBs IGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9ydW5fZGVjcnlwdC5wbApuZXcg ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwLi42Njg3MWNiNDM4Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9ydW5fZGVjcnlw dC5wbApAQCAtMCwwICsxLDU4IEBACisjIS91c3IvYmluL3BlcmwKKworIyBUZXN0L3NhbXBs ZSBjb21tYW5kIGZvciBsaWJwcSBjbWtsb29rdXAgcnVuIHNjaGVtZQorIworIyBUaGlzIGp1 c3QgcGxhY2VzIHRoZSBkYXRhIGludG8gdGVtcG9yYXJ5IGZpbGVzIGFuZCBydW5zIHRoZSBv cGVuc3NsCisjIGNvbW1hbmQgb24gaXQuICAoSW4gcHJhY3RpY2UsIHRoaXMgY291bGQgbW9y ZSBzaW1wbHkgYmUgd3JpdHRlbiBhcyBhCisjIHNoZWxsIHNjcmlwdCwgYnV0IHRoaXMgd2F5 IGl0J3MgbW9yZSBwb3J0YWJsZS4pCisKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjMsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK3VzZSBzdHJpY3Q7Cit1c2Ug d2FybmluZ3M7CisKK215ICgkY21rbmFtZSwgJGFsZywgJGZpbGVuYW1lKSA9IEBBUkdWOwor CitkaWUgdW5sZXNzICRhbGcgPX4gJ1JTQUVTX09BRVBfU0hBJzsKKworbXkgJGRpZ2VzdCA9 ICRhbGc7CiskZGlnZXN0ID1+IHMvLiooPz1TSEEpLy87CiskZGlnZXN0ID1+IHMvXy8vZzsK KworbXkgJHRtcGRpciA9ICRFTlZ7VEVTVFdPUktESVJ9OworCitteSAkb3BlbnNzbCA9ICRF TlZ7T1BFTlNTTH07CisKK215IEBjbWQgPSAoCisJJG9wZW5zc2wsICdwa2V5dXRsJywgJy1k ZWNyeXB0JywKKwknLWlua2V5JywgIiR7dG1wZGlyfS8ke2Nta25hbWV9LnBlbSIsICctcGtl eW9wdCcsICdyc2FfcGFkZGluZ19tb2RlOm9hZXAnLAorCSctaW4nLCAkZmlsZW5hbWUsICct b3V0JywgIiR7dG1wZGlyfS9vdXRwdXQudG1wIgorKTsKKworaWYgKCRkaWdlc3QgbmUgJ1NI QTEnKQoreworCSMgVGhlc2Ugb3B0aW9ucyByZXF1aXJlIE9wZW5TU0wgPj0xLjEuMCwgc28g aWYgdGhlIGRpZ2VzdCBpcworCSMgU0hBMSwgd2hpY2ggaXMgdGhlIGRlZmF1bHQsIG9taXQg dGhlIG9wdGlvbnMuCisJcHVzaCBAY21kLAorCSAgJy1wa2V5b3B0JywgInJzYV9tZ2YxX21k OiRkaWdlc3QiLAorCSAgJy1wa2V5b3B0JywgInJzYV9vYWVwX21kOiRkaWdlc3QiOworfQor CitzeXN0ZW0oQGNtZCkgPT0gMCBvciBkaWUgInN5c3RlbSBmYWlsZWQ6ICQ/IjsKKworb3Bl biBteSAkZmgsICc8OnJhdycsICIke3RtcGRpcn0vb3V0cHV0LnRtcCIgb3IgZGllICQhOwor bXkgJGRhdGEgPSAnJzsKKword2hpbGUgKDEpIHsKKwlteSAkc3VjY2VzcyA9IHJlYWQgJGZo LCAkZGF0YSwgMTAwLCBsZW5ndGgoJGRhdGEpOworCWRpZSAkISBpZiBub3QgZGVmaW5lZCAk c3VjY2VzczsKKwlsYXN0IGlmIG5vdCAkc3VjY2VzczsKK30KKworY2xvc2UgJGZoOworCit1 bmxpbmsgIiR7dG1wZGlyfS9vdXRwdXQudG1wIjsKKworYmlubW9kZSBTVERPVVQ7CisKK3By aW50ICRkYXRhOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbWVzb24uYnVpbGQgYi9zcmMvdGVz dC9tZXNvbi5idWlsZAppbmRleCA1ZjNjOWMyYmEyLi5kNTVkZGIxYWI3IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9tZXNvbi5idWlsZAorKysgYi9zcmMvdGVzdC9tZXNvbi5idWlsZApAQCAt OSw2ICs5LDcgQEAgc3ViZGlyKCdzdWJzY3JpcHRpb24nKQogc3ViZGlyKCdtb2R1bGVzJykK IAogaWYgc3NsLmZvdW5kKCkKKyAgc3ViZGlyKCdjb2x1bW5fZW5jcnlwdGlvbicpCiAgIHN1 YmRpcignc3NsJykKIGVuZGlmCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9jb2x1bW5fZW5jcnlwdGlvbi5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMC4uMTkzY2NhY2ZmZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0CkBAIC0wLDAgKzEsMzUzIEBACitc c2V0IEhJREVfQ09MVU1OX0VOQ1JZUFRJT04gZmFsc2UKK0NSRUFURSBST0xFIHJlZ3Jlc3Nf ZW5jX3VzZXIxOworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazEgV0lUSCAoCisgICAg cmVhbG0gPSAndGVzdCcKKyk7CitDT01NRU5UIE9OIENPTFVNTiBNQVNURVIgS0VZIGNtazEg SVMgJ2NvbHVtbiBtYXN0ZXIga2V5JzsKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsx YSBXSVRIICgKKyAgICByZWFsbSA9ICd0ZXN0JworKTsKK0NSRUFURSBDT0xVTU4gTUFTVEVS IEtFWSBjbWsyOworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazJhIFdJVEggKAorICAg IHJlYWxtID0gJ3Rlc3R4JworKTsKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazJhIChy ZWFsbSA9ICd0ZXN0MicpOworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBmYWlsIFdJ VEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3Jp dGhtID0gJ2ZvbycsICAtLSBpbnZhbGlkCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVB REJFRUYnCispOworRVJST1I6ICB1bnJlY29nbml6ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG06 IGZvbworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFdJVEggVkFMVUVTICgK KyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVT X09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsK K0NPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgSVMgJ2NvbHVtbiBlbmNy eXB0aW9uIGtleSc7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBBREQgVkFM VUUgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsCisgICAgYWxnb3JpdGhtID0g J1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVG JworKTsKKy0tIGR1cGxpY2F0ZQorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEg QUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29y aXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhE RUFEQkVFRicKKyk7CitFUlJPUjogIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAiY2VrMSIgYWxy ZWFkeSBoYXMgZGF0YSBmb3IgbWFzdGVyIGtleSAiY21rMWEiCitBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkgZmFpbCBBREQgVkFMVUUgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0g Y21rMWEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5 cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRp b24ga2V5ICJmYWlsIiBkb2VzIG5vdCBleGlzdAorQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9O IEtFWSBjZWsyIFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazIs CisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92 YWx1ZSA9ICdceERFQURCRUVGJworKSwKKygKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNt azJhLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0 ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04g S0VZIGNlazQgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwK KyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3Zh bHVlID0gJ1x4REVBREJFRUYnCispOworQ1JFQVRFIFRBQkxFIHRibF9mYWlsICgKKyAgICBh IGludCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5f ZW5jcnlwdGlvbl9rZXkgPSBub3RleGlzdCkKKyk7CitFUlJPUjogIGNvbHVtbiBlbmNyeXB0 aW9uIGtleSAibm90ZXhpc3QiIGRvZXMgbm90IGV4aXN0CitDUkVBVEUgVEFCTEUgdGJsX2Zh aWwgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJ VEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEsIGFsZ29yaXRobSA9ICdmb28nKQor KTsKK0VSUk9SOiAgdW5yZWNvZ25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtOiBmb28KK0NS RUFURSBUQUJMRSB0YmxfZmFpbCAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMg dGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgZW5j cnlwdGlvbl90eXBlID0gd3JvbmcpCispOworRVJST1I6ICB1bnJlY29nbml6ZWQgZW5jcnlw dGlvbiB0eXBlOiB3cm9uZworQ1JFQVRFIFRBQkxFIHRibF8yOWYzICgKKyAgICBhIGludCwK KyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlw dGlvbl9rZXkgPSBjZWsxKQorKTsKK1xkIHRibF8yOWYzCisgICAgICAgICAgICAgIFRhYmxl ICJwdWJsaWMudGJsXzI5ZjMiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAor IGMgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorCitcZCsgdGJs XzI5ZjMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAi cHVibGljLnRibF8yOWYzIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlICB8IEVuY3J5cHRpb24gfCBTdGF0cyB0YXJnZXQg fCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAor IGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBl eHRlbmRlZCB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAKKyBjICAgICAgfCB0ZXh0 ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZXJuYWwgfCBjZWsx ICAgICAgIHwgICAgICAgICAgICAgIHwgCisKK0NSRUFURSBUQUJMRSB0YmxfNDQ3ZiAoCisg ICAgYSBpbnQsCisgICAgYiB0ZXh0CispOworQUxURVIgVEFCTEUgdGJsXzQ0N2YgQUREIENP TFVNTiBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNl azEpOworXGQgdGJsXzQ0N2YKKyAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50YmxfNDQ3 ZiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0 IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t CisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYiAgICAg IHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAg ICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisKK1xkKyB0YmxfNDQ3ZgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGJsXzQ0N2Yi CisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8 IFN0b3JhZ2UgIHwgRW5jcnlwdGlvbiB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAor LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBh ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxh aW4gICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCAg ICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAg ICAgICB8ICAgICAgICAgICAgICB8IAorIGMgICAgICB8IHRleHQgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8ICAgICAgICAgfCBleHRlcm5hbCB8IGNlazEgICAgICAgfCAgICAgICAg ICAgICAgfCAKKworQ1JFQVRFIFRBQkxFIHRibF80ODk3IChMSUtFIHRibF80NDdmKTsKK0NS RUFURSBUQUJMRSB0YmxfNjk3OCAoTElLRSB0YmxfNDQ3ZiBJTkNMVURJTkcgRU5DUllQVEVE KTsKK1xkKyB0YmxfNDg5NworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRhYmxlICJwdWJsaWMudGJsXzQ4OTciCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxh dGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8IFN0b3JhZ2UgIHwgRW5jcnlwdGlvbiB8IFN0 YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAg IHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAorIGMg ICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRl bmRlZCB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAKKworXGQrIHRibF82OTc4Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50 YmxfNjk3OCIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBE ZWZhdWx0IHwgU3RvcmFnZSAgfCBFbmNyeXB0aW9uIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3Jp cHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAg ICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAg fCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQg fCAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVybmFsIHwgY2VrMSAgICAgICB8 ICAgICAgICAgICAgICB8IAorCitDUkVBVEUgVklFVyB2aWV3XzNiYzkgQVMgU0VMRUNUICog RlJPTSB0YmxfMjlmMzsKK1xkKyB2aWV3XzNiYzkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFZpZXcgInB1YmxpYy52aWV3XzNiYzkiCisgQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8IFN0b3JhZ2UgIHwgRW5jcnlwdGlv biB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwg cGxhaW4gICAgfCAgICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICB8IAorIGMg ICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRl cm5hbCB8IGNlazEgICAgICAgfCAKK1ZpZXcgZGVmaW5pdGlvbjoKKyBTRUxFQ1QgYSwKKyAg ICBiLAorICAgIGMKKyAgIEZST00gdGJsXzI5ZjM7CisKK0NSRUFURSBUQUJMRSB0YmxfMjM4 NiBBUyBTRUxFQ1QgKiBGUk9NIHRibF8yOWYzIFdJVEggTk8gREFUQTsKK1xkKyB0YmxfMjM4 NgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJs aWMudGJsXzIzODYiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgRGVmYXVsdCB8IFN0b3JhZ2UgIHwgRW5jcnlwdGlvbiB8IFN0YXRzIHRhcmdldCB8IERl c2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgCisgYiAg ICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVu ZGVkIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAorIGMgICAgICB8IHRleHQgICAg fCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlcm5hbCB8IGNlazEgICAg ICAgfCAgICAgICAgICAgICAgfCAKKworQ1JFQVRFIFRBQkxFIHRibF8yOTQxIEFTIFNFTEVD VCAqIEZST00gdGJsXzI5ZjMgV0lUSCBEQVRBOworRVJST1I6ICBlbmNyeXB0ZWQgY29sdW1u cyBub3QgeWV0IGltcGxlbWVudGVkIGZvciB0aGlzIGNvbW1hbmQKK1xkKyB0YmxfMjk0MQor LS0gdGVzdCBwYXJ0aXRpb24gZGVjbGFyYXRpb25zCitDUkVBVEUgVEFCTEUgdGJsXzEzZmEg KAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5 cHRpb25fa2V5ID0gY2VrMSkKKykgUEFSVElUSU9OIEJZIFJBTkdFIChhKTsKK0NSRUFURSBU QUJMRSB0YmxfMTNmYV8xIFBBUlRJVElPTiBPRiB0YmxfMTNmYSBGT1IgVkFMVUVTIEZST00g KDEpIFRPICgxMDApOworXGQrIHRibF8xM2ZhCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUGFydGl0aW9uZWQgdGFibGUgInB1YmxpYy50YmxfMTNmYSIKKyBDb2x1bW4g fCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSAg fCBFbmNyeXB0aW9uIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgICB8ICAg ICAgICAgICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZXJuYWwgfCBjZWsxICAgICAgIHwgICAg ICAgICAgICAgIHwgCitQYXJ0aXRpb24ga2V5OiBSQU5HRSAoYSkKK1BhcnRpdGlvbnM6IHRi bF8xM2ZhXzEgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMTAwKQorCitcZCsgdGJsXzEzZmFf MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1Ymxp Yy50YmxfMTNmYV8xIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJs ZSB8IERlZmF1bHQgfCBTdG9yYWdlICB8IEVuY3J5cHRpb24gfCBTdGF0cyB0YXJnZXQgfCBE ZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAorIGIg ICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRl cm5hbCB8IGNlazEgICAgICAgfCAgICAgICAgICAgICAgfCAKK1BhcnRpdGlvbiBvZjogdGJs XzEzZmEgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMTAwKQorUGFydGl0aW9uIGNvbnN0cmFp bnQ6ICgoYSBJUyBOT1QgTlVMTCkgQU5EIChhID49IDEpIEFORCAoYSA8IDEwMCkpCisKKy0t IHRlc3QgaW5oZXJpdGFuY2UKK0NSRUFURSBUQUJMRSB0YmxfMzZmM19hICgKKyAgICBhIGlu dCwKKyAgICBiIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9 IGNlazEpCispOworQ1JFQVRFIFRBQkxFIHRibF8zNmYzX2IgKAorICAgIGEgaW50LAorICAg IGIgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSkK Kyk7CitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfYyAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0 IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsyKQorKTsKK0NS RUFURSBUQUJMRSB0YmxfMzZmM19kICgKKyAgICBhIGludCwKKyAgICBiIHRleHQgRU5DUllQ VEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEsIGVuY3J5cHRpb25fdHlw ZSA9IGRldGVybWluaXN0aWMpCispOworQ1JFQVRFIFRBQkxFIHRibF8zNmYzX2UgKAorICAg IGEgaW50LAorICAgIGIgdGV4dAorKTsKKy0tIG5vdCBpbXBsZW1lbnRlZCAoYnV0IGNvdWxk IGJlIG9rKQorQ1JFQVRFIFRBQkxFIHRibF8zNmYzX2FiIChjIGludCkgSU5IRVJJVFMgKHRi bF8zNmYzX2EsIHRibF8zNmYzX2IpOworTk9USUNFOiAgbWVyZ2luZyBtdWx0aXBsZSBpbmhl cml0ZWQgZGVmaW5pdGlvbnMgb2YgY29sdW1uICJhIgorTk9USUNFOiAgbWVyZ2luZyBtdWx0 aXBsZSBpbmhlcml0ZWQgZGVmaW5pdGlvbnMgb2YgY29sdW1uICJiIgorRVJST1I6ICBtdWx0 aXBsZSBpbmhlcml0YW5jZSBvZiBlbmNyeXB0ZWQgY29sdW1ucyBpcyBub3QgaW1wbGVtZW50 ZWQKK1xkKyB0YmxfMzZmM19hYgorLS0gbm90IGltcGxlbWVudGVkIChidXQgc2hvdWxkIGZh aWwpCitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfYWMgKGMgaW50KSBJTkhFUklUUyAodGJsXzM2 ZjNfYSwgdGJsXzM2ZjNfYyk7CitOT1RJQ0U6ICBtZXJnaW5nIG11bHRpcGxlIGluaGVyaXRl ZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4gImEiCitOT1RJQ0U6ICBtZXJnaW5nIG11bHRpcGxl IGluaGVyaXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4gImIiCitFUlJPUjogIG11bHRpcGxl IGluaGVyaXRhbmNlIG9mIGVuY3J5cHRlZCBjb2x1bW5zIGlzIG5vdCBpbXBsZW1lbnRlZAor Q1JFQVRFIFRBQkxFIHRibF8zNmYzX2FkIChjIGludCkgSU5IRVJJVFMgKHRibF8zNmYzX2Es IHRibF8zNmYzX2QpOworTk9USUNFOiAgbWVyZ2luZyBtdWx0aXBsZSBpbmhlcml0ZWQgZGVm aW5pdGlvbnMgb2YgY29sdW1uICJhIgorTk9USUNFOiAgbWVyZ2luZyBtdWx0aXBsZSBpbmhl cml0ZWQgZGVmaW5pdGlvbnMgb2YgY29sdW1uICJiIgorRVJST1I6ICBtdWx0aXBsZSBpbmhl cml0YW5jZSBvZiBlbmNyeXB0ZWQgY29sdW1ucyBpcyBub3QgaW1wbGVtZW50ZWQKKy0tIGZh aWwKK0NSRUFURSBUQUJMRSB0YmxfMzZmM19hZSAoYyBpbnQpIElOSEVSSVRTICh0YmxfMzZm M19hLCB0YmxfMzZmM19lKTsKK05PVElDRTogIG1lcmdpbmcgbXVsdGlwbGUgaW5oZXJpdGVk IGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYSIKK05PVElDRTogIG1lcmdpbmcgbXVsdGlwbGUg aW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYiIKK0VSUk9SOiAgY29sdW1uICJi IiBoYXMgYW4gZW5jcnlwdGlvbiBzcGVjaWZpY2F0aW9uIGNvbmZsaWN0CistLSBvaworQ1JF QVRFIFRBQkxFIHRibF8zNmYzX2FfMSAoYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5f ZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSwgYyBpbnQpIElOSEVSSVRTICh0YmxfMzZmM19hKTsK K05PVElDRTogIG1vdmluZyBhbmQgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVk IGRlZmluaXRpb24KK0RFVEFJTDogIFVzZXItc3BlY2lmaWVkIGNvbHVtbiBtb3ZlZCB0byB0 aGUgcG9zaXRpb24gb2YgdGhlIGluaGVyaXRlZCBjb2x1bW4uCitcZCsgdGJsXzM2ZjNfYV8x CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMu dGJsXzM2ZjNfYV8xIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJs ZSB8IERlZmF1bHQgfCBTdG9yYWdlICB8IEVuY3J5cHRpb24gfCBTdGF0cyB0YXJnZXQgfCBE ZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAorIGIg ICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRl cm5hbCB8IGNlazEgICAgICAgfCAgICAgICAgICAgICAgfCAKKyBjICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAg ICAgIHwgICAgICAgICAgICAgIHwgCitJbmhlcml0czogdGJsXzM2ZjNfYQorCistLSBmYWls CitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfYV8yIChiIHRleHQgRU5DUllQVEVEIFdJVEggKGNv bHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazIpLCBjIGludCkgSU5IRVJJVFMgKHRibF8zNmYz X2EpOworTk9USUNFOiAgbW92aW5nIGFuZCBtZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhl cml0ZWQgZGVmaW5pdGlvbgorREVUQUlMOiAgVXNlci1zcGVjaWZpZWQgY29sdW1uIG1vdmVk IHRvIHRoZSBwb3NpdGlvbiBvZiB0aGUgaW5oZXJpdGVkIGNvbHVtbi4KK0VSUk9SOiAgY29s dW1uICJiIiBoYXMgYW4gZW5jcnlwdGlvbiBzcGVjaWZpY2F0aW9uIGNvbmZsaWN0CitDUkVB VEUgVEFCTEUgdGJsXzM2ZjNfYV8yIChiIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9l bmNyeXB0aW9uX2tleSA9IGNlazEsIGVuY3J5cHRpb25fdHlwZSA9IGRldGVybWluaXN0aWMp LCBjIGludCkgSU5IRVJJVFMgKHRibF8zNmYzX2EpOworTk9USUNFOiAgbW92aW5nIGFuZCBt ZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgorREVUQUlMOiAg VXNlci1zcGVjaWZpZWQgY29sdW1uIG1vdmVkIHRvIHRoZSBwb3NpdGlvbiBvZiB0aGUgaW5o ZXJpdGVkIGNvbHVtbi4KK0VSUk9SOiAgY29sdW1uICJiIiBoYXMgYW4gZW5jcnlwdGlvbiBz cGVjaWZpY2F0aW9uIGNvbmZsaWN0CitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfYV8yIChiIHRl eHQsIGMgaW50KSBJTkhFUklUUyAodGJsXzM2ZjNfYSk7CitOT1RJQ0U6ICBtb3ZpbmcgYW5k IG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCitERVRBSUw6 ICBVc2VyLXNwZWNpZmllZCBjb2x1bW4gbW92ZWQgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBp bmhlcml0ZWQgY29sdW1uLgorRVJST1I6ICBjb2x1bW4gImIiIGhhcyBhbiBlbmNyeXB0aW9u IHNwZWNpZmljYXRpb24gY29uZmxpY3QKK0RST1AgVEFCTEUgdGJsXzM2ZjNfYiwgdGJsXzM2 ZjNfYywgdGJsXzM2ZjNfZCwgdGJsXzM2ZjNfZTsKKy0tIFNFVCBTQ0hFTUEKK0NSRUFURSBT Q0hFTUEgdGVzdF9zY2hlbWFfY2U7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2Vr MSBTRVQgU0NIRU1BIHRlc3Rfc2NoZW1hX2NlOworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkg Y21rMSBTRVQgU0NIRU1BIHRlc3Rfc2NoZW1hX2NlOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIHRlc3Rfc2NoZW1hX2NlLmNlazEgU0VUIFNDSEVNQSBwdWJsaWM7CitBTFRFUiBD T0xVTU4gTUFTVEVSIEtFWSB0ZXN0X3NjaGVtYV9jZS5jbWsxIFNFVCBTQ0hFTUEgcHVibGlj OworRFJPUCBTQ0hFTUEgdGVzdF9zY2hlbWFfY2U7CistLSBwcml2aWxlZ2VzCitTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OICdyZWdyZXNzX2VuY191c2VyMSc7CistLSBmYWlsCitDUkVB VEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEwIFdJVEggVkFMVUVTICgKKyAgICBjb2x1 bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hB XzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKK0VSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiBtYXN0ZXIga2V5IGNtazEKK1JFU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTjsKK0dSQU5UIFVTQUdFIE9OIENPTFVNTiBNQVNURVIgS0VZ IGNtazEgVE8gcmVncmVzc19lbmNfdXNlcjE7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O ICdyZWdyZXNzX2VuY191c2VyMSc7CistLSBvayBub3cKK0NSRUFURSBDT0xVTU4gRU5DUllQ VElPTiBLRVkgY2VrMTAgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0g Y21rMSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlw dGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBL RVkgY2VrMTA7CistLSBmYWlsCitDUkVBVEUgVEFCTEUgdGJsXzcwNDAgKGEgaW50LCBiIHRl eHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpKTsKK0VS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBjZWsx CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CitHUkFOVCBVU0FHRSBPTiBDT0xVTU4g RU5DUllQVElPTiBLRVkgY2VrMSBUTyByZWdyZXNzX2VuY191c2VyMTsKK1NFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3NfZW5jX3VzZXIxJzsKKy0tIG9rIG5vdworQ1JFQVRF IFRBQkxFIHRibF83MDQwIChhIGludCwgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5f ZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSk7CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047 CitEUk9QIFRBQkxFIHRibF83MDQwOworUkVWT0tFIFVTQUdFIE9OIENPTFVNTiBFTkNSWVBU SU9OIEtFWSBjZWsxIEZST00gcmVncmVzc19lbmNfdXNlcjE7CitSRVZPS0UgVVNBR0UgT04g Q09MVU1OIE1BU1RFUiBLRVkgY21rMSBGUk9NIHJlZ3Jlc3NfZW5jX3VzZXIxOworRFJPUCBD T0xVTU4gTUFTVEVSIEtFWSBjbWsxIFJFU1RSSUNUOyAgLS0gZmFpbAorRVJST1I6ICBjYW5u b3QgZHJvcCBjb2x1bW4gbWFzdGVyIGtleSBjbWsxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBk ZXBlbmQgb24gaXQKK0RFVEFJTDogIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIG9mIGNv bHVtbiBlbmNyeXB0aW9uIGtleSBjZWsxIGZvciBjb2x1bW4gbWFzdGVyIGtleSBjbWsxIGRl cGVuZHMgb24gY29sdW1uIG1hc3RlciBrZXkgY21rMQorY29sdW1uIGVuY3J5cHRpb24ga2V5 IGRhdGEgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5IGNlazQgZm9yIGNvbHVtbiBtYXN0ZXIg a2V5IGNtazEgZGVwZW5kcyBvbiBjb2x1bW4gbWFzdGVyIGtleSBjbWsxCitISU5UOiAgVXNl IERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgor QUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMiBSRU5BTUUgVE8gY21rMzsKK0FMVEVSIENP TFVNTiBNQVNURVIgS0VZIGNtazEgUkVOQU1FIFRPIGNtazM7ICAtLSBmYWlsCitFUlJPUjog IGNvbHVtbiBtYXN0ZXIga2V5ICJjbWszIiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEgInB1 YmxpYyIKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNta3ggUkVOQU1FIFRPIGNta3k7ICAt LSBmYWlsCitFUlJPUjogIGNvbHVtbiBtYXN0ZXIga2V5ICJjbWt4IiBkb2VzIG5vdCBleGlz dAorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazIgUkVOQU1FIFRPIGNlazM7CitB TFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBSRU5BTUUgVE8gY2VrMzsgIC0tIGZh aWwKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJjZWszIiBhbHJlYWR5IGV4aXN0 cyBpbiBzY2hlbWEgInB1YmxpYyIKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWt4 IFJFTkFNRSBUTyBjZWt5OyAgLS0gZmFpbAorRVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBr ZXkgImNla3giIGRvZXMgbm90IGV4aXN0CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdy ZWdyZXNzX2VuY191c2VyMSc7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWszOyAg LS0gZmFpbAorRVJST1I6ICBtdXN0IGJlIG93bmVyIG9mIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSBjZWszCitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNtazM7ICAtLSBmYWlsCitFUlJPUjog IG11c3QgYmUgb3duZXIgb2YgY29sdW1uIG1hc3RlciBrZXkgY21rMworUkVTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OOworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMyBPV05FUiBU TyByZWdyZXNzX2VuY191c2VyMTsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsz IE9XTkVSIFRPIHJlZ3Jlc3NfZW5jX3VzZXIxOworXGRjZWsgY2VrMworICAgICAgICAgTGlz dCBvZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIE93 bmVyICAgICAgIHwgTWFzdGVyIGtleSAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IGNlazMgfCByZWdyZXNzX2VuY191c2Vy MSB8IGNtazJhCisgcHVibGljIHwgY2VrMyB8IHJlZ3Jlc3NfZW5jX3VzZXIxIHwgY21rMwor KDIgcm93cykKKworXGRjbWsgY21rMworICAgICAgICBMaXN0IG9mIGNvbHVtbiBtYXN0ZXIg a2V5cworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBPd25lciAgICAgICB8IFJlYWxtIAorLS0t LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIHB1YmxpYyB8IGNt azMgfCByZWdyZXNzX2VuY191c2VyMSB8IAorKDEgcm93KQorCitTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OICdyZWdyZXNzX2VuY191c2VyMSc7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9O IEtFWSBjZWszOyAgLS0gb2sgbm93CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNtazM7ICAt LSBvayBub3cKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0FMVEVSIENPTFVNTiBF TkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21r MWEpOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoY29s dW1uX21hc3Rlcl9rZXkgPSBjbWsxYSk7ICAtLSBmYWlsCitFUlJPUjogIGNvbHVtbiBlbmNy eXB0aW9uIGtleSAiY2VrMSIgaGFzIG5vIGRhdGEgZm9yIG1hc3RlciBrZXkgImNtazFhIgor QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoY29sdW1uX21h c3Rlcl9rZXkgPSBmYWlsKTsgIC0tIGZhaWwKK0VSUk9SOiAgY29sdW1uIG1hc3RlciBrZXkg ImZhaWwiIGRvZXMgbm90IGV4aXN0CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2Vr MSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLCBhbGdvcml0aG0gPSAn Zm9vJyk7ICAtLSBmYWlsCitFUlJPUjogIGF0dHJpYnV0ZSAiYWxnb3JpdGhtIiBtdXN0IG5v dCBiZSBzcGVjaWZpZWQKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazQ7CitEUk9Q IENPTFVNTiBFTkNSWVBUSU9OIEtFWSBmYWlsOworRVJST1I6ICBjb2x1bW4gZW5jcnlwdGlv biBrZXkgImZhaWwiIGRvZXMgbm90IGV4aXN0CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtF WSBJRiBFWElTVFMgbm9uZXhpc3RlbnQ7CitOT1RJQ0U6ICBjb2x1bW4gZW5jcnlwdGlvbiBr ZXkgIm5vbmV4aXN0ZW50IiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKK0RST1AgQ09MVU1O IE1BU1RFUiBLRVkgY21rMWE7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGZhaWw7CitFUlJP UjogIGNvbHVtbiBtYXN0ZXIga2V5ICJmYWlsIiBkb2VzIG5vdCBleGlzdAorRFJPUCBDT0xV TU4gTUFTVEVSIEtFWSBJRiBFWElTVFMgbm9uZXhpc3RlbnQ7CitOT1RJQ0U6ICBjb2x1bW4g bWFzdGVyIGtleSAibm9uZXhpc3RlbnQiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZworRFJP UCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL29iamVjdF9hZGRyZXNzLm91dAppbmRleCBmYzQyZDQxOGJmLi43N2ZlZGNlOGFhIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dApA QCAtMzgsNiArMzgsOCBAQCBDUkVBVEUgU0VSVkVSICJpbnRlZ2VyIiBGT1JFSUdOIERBVEEg V1JBUFBFUiBhZGRyX2ZkdzsKIENSRUFURSBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3NfYWRk cl91c2VyIFNFUlZFUiAiaW50ZWdlciI7CiBBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9S IFJPTEUgcmVncmVzc19hZGRyX3VzZXIgSU4gU0NIRU1BIHB1YmxpYyBHUkFOVCBBTEwgT04g VEFCTEVTIFRPIHJlZ3Jlc3NfYWRkcl91c2VyOwogQUxURVIgREVGQVVMVCBQUklWSUxFR0VT IEZPUiBST0xFIHJlZ3Jlc3NfYWRkcl91c2VyIFJFVk9LRSBERUxFVEUgT04gVEFCTEVTIEZS T00gcmVncmVzc19hZGRyX3VzZXI7CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgYWRkcl9j bWs7CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGFkZHJfY2VrIFdJVEggVkFMVUVT IChjb2x1bW5fbWFzdGVyX2tleSA9IGFkZHJfY21rLCBhbGdvcml0aG0gPSAnUlNBRVNfT0FF UF9TSEFfMScsIGVuY3J5cHRlZF92YWx1ZSA9ICcnKTsKIC0tIHRoaXMgdHJhbnNmb3JtIHdv dWxkIGJlIHF1aXRlIHVuc2FmZSB0byBsZWF2ZSBseWluZyBhcm91bmQsCiAtLSBleGNlcHQg dGhhdCB0aGUgU1FMIGxhbmd1YWdlIHBheXMgbm8gYXR0ZW50aW9uIHRvIHRyYW5zZm9ybXM6 CiBDUkVBVEUgVFJBTlNGT1JNIEZPUiBpbnQgTEFOR1VBR0UgU1FMICgKQEAgLTEwNyw3ICsx MDksOCBAQCBCRUdJTgogICAgICAgICAoJ3RleHQgc2VhcmNoIHRlbXBsYXRlJyksICgndGV4 dCBzZWFyY2ggY29uZmlndXJhdGlvbicpLAogICAgICAgICAoJ3BvbGljeScpLCAoJ3VzZXIg bWFwcGluZycpLCAoJ2RlZmF1bHQgYWNsJyksICgndHJhbnNmb3JtJyksCiAgICAgICAgICgn b3BlcmF0b3Igb2YgYWNjZXNzIG1ldGhvZCcpLCAoJ2Z1bmN0aW9uIG9mIGFjY2VzcyBtZXRo b2QnKSwKLSAgICAgICAgKCdwdWJsaWNhdGlvbiBuYW1lc3BhY2UnKSwgKCdwdWJsaWNhdGlv biByZWxhdGlvbicpCisgICAgICAgICgncHVibGljYXRpb24gbmFtZXNwYWNlJyksICgncHVi bGljYXRpb24gcmVsYXRpb24nKSwKKyAgICAgICAgKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXkn KSwgKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YScpLCAoJ2NvbHVtbiBtYXN0ZXIga2V5 JykKICAgICBMT09QCiAgICAgICAgIEZPUiBuYW1lcyBJTiBWQUxVRVMgKCd7ZWluc30nKSwg KCd7YWRkcl9uc3AsIHp3ZWl9JyksICgne2VpbnMsIHp3ZWksIGRyZWl9JykKICAgICAgICAg TE9PUApAQCAtMzI3LDYgKzMzMCwyNCBAQCBXQVJOSU5HOiAgZXJyb3IgZm9yIHB1YmxpY2F0 aW9uIHJlbGF0aW9uLHthZGRyX25zcCx6d2VpfSx7fTogYXJndW1lbnQgbGlzdCBsZW5ndAog V0FSTklORzogIGVycm9yIGZvciBwdWJsaWNhdGlvbiByZWxhdGlvbix7YWRkcl9uc3Asendl aX0se2ludGVnZXJ9OiByZWxhdGlvbiAiYWRkcl9uc3AuendlaSIgZG9lcyBub3QgZXhpc3QK IFdBUk5JTkc6ICBlcnJvciBmb3IgcHVibGljYXRpb24gcmVsYXRpb24se2VpbnMsendlaSxk cmVpfSx7fTogYXJndW1lbnQgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKIFdBUk5J Tkc6ICBlcnJvciBmb3IgcHVibGljYXRpb24gcmVsYXRpb24se2VpbnMsendlaSxkcmVpfSx7 aW50ZWdlcn06IGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRl ZDogImVpbnMuendlaS5kcmVpIgorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlw dGlvbiBrZXkse2VpbnN9LHt9OiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImVpbnMiIGRvZXMg bm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7 ZWluc30se2ludGVnZXJ9OiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImVpbnMiIGRvZXMgbm90 IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7YWRk cl9uc3AsendlaX0se306IGNvbHVtbiBlbmNyeXB0aW9uIGtleSAiYWRkcl9uc3AuendlaSIg ZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24g a2V5LHthZGRyX25zcCx6d2VpfSx7aW50ZWdlcn06IGNvbHVtbiBlbmNyeXB0aW9uIGtleSAi YWRkcl9uc3AuendlaSIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29s dW1uIGVuY3J5cHRpb24ga2V5LHtlaW5zLHp3ZWksZHJlaX0se306IGNyb3NzLWRhdGFiYXNl IHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogZWlucy56d2VpLmRyZWkKK1dBUk5J Tkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5LHtlaW5zLHp3ZWksZHJlaX0s e2ludGVnZXJ9OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50 ZWQ6IGVpbnMuendlaS5kcmVpCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0 aW9uIGtleSBkYXRhLHtlaW5zfSx7fTogY29sdW1uIGVuY3J5cHRpb24ga2V5ICJlaW5zIiBk b2VzIG5vdCBleGlzdAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBr ZXkgZGF0YSx7ZWluc30se2ludGVnZXJ9OiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImVpbnMi IGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9u IGtleSBkYXRhLHthZGRyX25zcCx6d2VpfSx7fTogY29sdW1uIGVuY3J5cHRpb24ga2V5ICJh ZGRyX25zcC56d2VpIiBkb2VzIG5vdCBleGlzdAorV0FSTklORzogIGVycm9yIGZvciBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7YWRkcl9uc3AsendlaX0se2ludGVnZXJ9OiBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgImFkZHJfbnNwLnp3ZWkiIGRvZXMgbm90IGV4aXN0CitXQVJO SU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhLHtlaW5zLHp3ZWks ZHJlaX0se306IGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRl ZDogZWlucy56d2VpLmRyZWkKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRp b24ga2V5IGRhdGEse2VpbnMsendlaSxkcmVpfSx7aW50ZWdlcn06IGNyb3NzLWRhdGFiYXNl IHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogZWlucy56d2VpLmRyZWkKK1dBUk5J Tkc6ICBlcnJvciBmb3IgY29sdW1uIG1hc3RlciBrZXkse2VpbnN9LHt9OiBjb2x1bW4gbWFz dGVyIGtleSAiZWlucyIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29s dW1uIG1hc3RlciBrZXkse2VpbnN9LHtpbnRlZ2VyfTogY29sdW1uIG1hc3RlciBrZXkgImVp bnMiIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0ZXIg a2V5LHthZGRyX25zcCx6d2VpfSx7fTogY29sdW1uIG1hc3RlciBrZXkgImFkZHJfbnNwLnp3 ZWkiIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0ZXIg a2V5LHthZGRyX25zcCx6d2VpfSx7aW50ZWdlcn06IGNvbHVtbiBtYXN0ZXIga2V5ICJhZGRy X25zcC56d2VpIiBkb2VzIG5vdCBleGlzdAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4g bWFzdGVyIGtleSx7ZWlucyx6d2VpLGRyZWl9LHt9OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVu Y2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IGVpbnMuendlaS5kcmVpCitXQVJOSU5HOiAgZXJy b3IgZm9yIGNvbHVtbiBtYXN0ZXIga2V5LHtlaW5zLHp3ZWksZHJlaX0se2ludGVnZXJ9OiBj cm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IGVpbnMuendl aS5kcmVpCiAtLSB0aGVzZSBvYmplY3QgdHlwZXMgY2Fubm90IGJlIHF1YWxpZmllZCBuYW1l cwogU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnbGFuZ3VhZ2UnLCAne29uZX0nLCAn e30nKTsKIEVSUk9SOiAgbGFuZ3VhZ2UgIm9uZSIgZG9lcyBub3QgZXhpc3QKQEAgLTQwOSw2 ICs0MzAsOSBAQCBXSVRIIG9iamVjdHMgKHR5cGUsIG5hbWUsIGFyZ3MpIEFTIChWQUxVRVMK ICAgICAoJ3R5cGUnLCAne2FkZHJfbnNwLmdlbmVudW19JywgJ3t9JyksCiAgICAgKCdjYXN0 JywgJ3tpbnQ4fScsICd7aW50NH0nKSwKICAgICAoJ2NvbGxhdGlvbicsICd7ZGVmYXVsdH0n LCAne30nKSwKKyAgICAoJ2NvbHVtbiBlbmNyeXB0aW9uIGtleScsICd7YWRkcl9jZWt9Jywg J3t9JyksCisgICAgKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YScsICd7YWRkcl9jZWt9 JywgJ3thZGRyX2Nta30nKSwKKyAgICAoJ2NvbHVtbiBtYXN0ZXIga2V5JywgJ3thZGRyX2Nt a30nLCAne30nKSwKICAgICAoJ3RhYmxlIGNvbnN0cmFpbnQnLCAne2FkZHJfbnNwLCBnZW50 YWJsZSwgYV9jaGt9JywgJ3t9JyksCiAgICAgKCdkb21haW4gY29uc3RyYWludCcsICd7YWRk cl9uc3AuZ2VuZG9tYWlufScsICd7ZG9tY29uc3RyfScpLAogICAgICgnY29udmVyc2lvbics ICd7cGdfY2F0YWxvZywga29pOF9yX3RvX21pY30nLCAne30nKSwKQEAgLTUwNSw2ICs1Mjks OSBAQCBzdWJzY3JpcHRpb258TlVMTHxyZWdyZXNzX2FkZHJfc3VifHJlZ3Jlc3NfYWRkcl9z dWJ8dAogcHVibGljYXRpb258TlVMTHxhZGRyX3B1YnxhZGRyX3B1Ynx0CiBwdWJsaWNhdGlv biByZWxhdGlvbnxOVUxMfE5VTEx8YWRkcl9uc3AuZ2VudGFibGUgaW4gcHVibGljYXRpb24g YWRkcl9wdWJ8dAogcHVibGljYXRpb24gbmFtZXNwYWNlfE5VTEx8TlVMTHxhZGRyX25zcCBp biBwdWJsaWNhdGlvbiBhZGRyX3B1Yl9zY2hlbWF8dAorY29sdW1uIG1hc3RlciBrZXl8YWRk cl9uc3B8YWRkcl9jbWt8YWRkcl9uc3AuYWRkcl9jbWt8dAorY29sdW1uIGVuY3J5cHRpb24g a2V5fGFkZHJfbnNwfGFkZHJfY2VrfGFkZHJfbnNwLmFkZHJfY2VrfHQKK2NvbHVtbiBlbmNy eXB0aW9uIGtleSBkYXRhfE5VTEx8TlVMTHxvZiBhZGRyX25zcC5hZGRyX2NlayBmb3IgYWRk cl9uc3AuYWRkcl9jbWt8dAogLS0tCiAtLS0gQ2xlYW51cCByZXNvdXJjZXMKIC0tLQpAQCAt NTE3LDYgKzU0NCw4IEBAIGRyb3AgY2FzY2FkZXMgdG8gdXNlciBtYXBwaW5nIGZvciByZWdy ZXNzX2FkZHJfdXNlciBvbiBzZXJ2ZXIgaW50ZWdlcgogRFJPUCBQVUJMSUNBVElPTiBhZGRy X3B1YjsKIERST1AgUFVCTElDQVRJT04gYWRkcl9wdWJfc2NoZW1hOwogRFJPUCBTVUJTQ1JJ UFRJT04gcmVncmVzc19hZGRyX3N1YjsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGFk ZHJfY2VrOworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBhZGRyX2NtazsKIERST1AgU0NIRU1B IGFkZHJfbnNwIENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDE0IG90aGVy IG9iamVjdHMKIERFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdGV4dCBzZWFyY2ggZGljdGlv bmFyeSBhZGRyX3RzX2RpY3QKQEAgLTU0Nyw2ICs1NzYsOSBAQCBXSVRIIG9iamVjdHMgKGNs YXNzaWQsIG9iamlkLCBvYmpzdWJpZCkgQVMgKFZBTFVFUwogICAgICgncGdfdHlwZSc6OnJl Z2NsYXNzLCAwLCAwKSwgLS0gbm8gdHlwZQogICAgICgncGdfY2FzdCc6OnJlZ2NsYXNzLCAw LCAwKSwgLS0gbm8gY2FzdAogICAgICgncGdfY29sbGF0aW9uJzo6cmVnY2xhc3MsIDAsIDAp LCAtLSBubyBjb2xsYXRpb24KKyAgICAoJ3BnX2NvbGVuY2tleSc6OnJlZ2NsYXNzLCAwLCAw KSwgLS0gbm8gY29sdW1uIGVuY3J5cHRpb24ga2V5CisgICAgKCdwZ19jb2xlbmNrZXlkYXRh Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YQor ICAgICgncGdfY29sbWFzdGVya2V5Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4g bWFzdGVyIGtleQogICAgICgncGdfY29uc3RyYWludCc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0g bm8gY29uc3RyYWludAogICAgICgncGdfY29udmVyc2lvbic6OnJlZ2NsYXNzLCAwLCAwKSwg LS0gbm8gY29udmVyc2lvbgogICAgICgncGdfYXR0cmRlZic6OnJlZ2NsYXNzLCAwLCAwKSwg LS0gbm8gZGVmYXVsdCBhdHRyaWJ1dGUKQEAgLTYzNCw1ICs2NjYsOCBAQCBPUkRFUiBCWSBv YmplY3RzLmNsYXNzaWQsIG9iamVjdHMub2JqaWQsIG9iamVjdHMub2Jqc3ViaWQ7CiAoIigi InB1YmxpY2F0aW9uIHJlbGF0aW9uIiIsLCwpIil8KCIoIiJwdWJsaWNhdGlvbiByZWxhdGlv biIiLCwpIil8TlVMTAogKCIoIiJwdWJsaWNhdGlvbiBuYW1lc3BhY2UiIiwsLCkiKXwoIigi InB1YmxpY2F0aW9uIG5hbWVzcGFjZSIiLCwpIil8TlVMTAogKCIoIiJwYXJhbWV0ZXIgQUNM IiIsLCwpIil8KCIoIiJwYXJhbWV0ZXIgQUNMIiIsLCkiKXxOVUxMCisoIigiImNvbHVtbiBt YXN0ZXIga2V5IiIsLCwpIil8KCIoIiJjb2x1bW4gbWFzdGVyIGtleSIiLCwpIil8TlVMTAor KCIoIiJjb2x1bW4gZW5jcnlwdGlvbiBrZXkiIiwsLCkiKXwoIigiImNvbHVtbiBlbmNyeXB0 aW9uIGtleSIiLCwpIil8TlVMTAorKCIoIiJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSIi LCwsKSIpfCgiKCIiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEiIiwsKSIpfE5VTEwKIC0t IHJlc3RvcmUgbm9ybWFsIG91dHB1dCBtb2RlCiBcYVx0CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb2lkam9pbnMub3V0CmluZGV4IDIxNWViODk5YmUuLjIyNmY1ZTQwNGUgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CkBAIC03Myw2ICs3Myw4IEBA IE5PVElDRTogIGNoZWNraW5nIHBnX3R5cGUge3R5cGJhc2V0eXBlfSA9PiBwZ190eXBlIHtv aWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ190eXBlIHt0eXBjb2xsYXRpb259ID0+IHBnX2Nv bGxhdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfYXR0cmlidXRlIHthdHRyZWxp ZH0gPT4gcGdfY2xhc3Mge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7 YXR0dHlwaWR9ID0+IHBnX3R5cGUge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2F0dHJp YnV0ZSB7YXR0Y2VrfSA9PiBwZ19jb2xlbmNrZXkge29pZH0KK05PVElDRTogIGNoZWNraW5n IHBnX2F0dHJpYnV0ZSB7YXR0dXNlcnR5cGlkfSA9PiBwZ190eXBlIHtvaWR9CiBOT1RJQ0U6 ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUge2F0dGNvbGxhdGlvbn0gPT4gcGdfY29sbGF0aW9u IHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19jbGFzcyB7cmVsbmFtZXNwYWNlfSA9PiBw Z19uYW1lc3BhY2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2NsYXNzIHtyZWx0eXBl fSA9PiBwZ190eXBlIHtvaWR9CkBAIC0yNjYsMyArMjY4LDkgQEAgTk9USUNFOiAgY2hlY2tp bmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJkYmlkfSA9PiBwZ19kYXRhYmFzZSB7b2lkfQogTk9U SUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJvd25lcn0gPT4gcGdfYXV0aGlk IHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnN1Ymlk fSA9PiBwZ19zdWJzY3JpcHRpb24ge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNj cmlwdGlvbl9yZWwge3NycmVsaWR9ID0+IHBnX2NsYXNzIHtvaWR9CitOT1RJQ0U6ICBjaGVj a2luZyBwZ19jb2xtYXN0ZXJrZXkge2Nta25hbWVzcGFjZX0gPT4gcGdfbmFtZXNwYWNlIHtv aWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19jb2xtYXN0ZXJrZXkge2Nta293bmVyfSA9PiBw Z19hdXRoaWQge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2NvbGVuY2tleSB7Y2VrbmFt ZXNwYWNlfSA9PiBwZ19uYW1lc3BhY2Uge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2Nv bGVuY2tleSB7Y2Vrb3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQorTk9USUNFOiAgY2hlY2tp bmcgcGdfY29sZW5ja2V5ZGF0YSB7Y2tkY2VraWR9ID0+IHBnX2NvbGVuY2tleSB7b2lkfQor Tk9USUNFOiAgY2hlY2tpbmcgcGdfY29sZW5ja2V5ZGF0YSB7Y2tkY21raWR9ID0+IHBnX2Nv bG1hc3RlcmtleSB7b2lkfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0 eS5vdXQKaW5kZXggMDJmNTM0OGFiMS4uZDQ5M2FjNWY3YyAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CkBAIC0xNTksNyArMTU5LDggQEAgT1JERVIg QlkgMSwgMjsKICB0ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgfCBjaGFyYWN0ZXIgdmFy eWluZwogIHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZSB8IHRpbWVzdGFtcCB3aXRoIHRp bWUgem9uZQogIHR4aWRfc25hcHNob3QgICAgICAgICAgICAgICB8IHBnX3NuYXBzaG90Ci0o NCByb3dzKQorIHBnX2VuY3J5cHRlZF9kZXQgICAgICAgICAgICB8IHBnX2VuY3J5cHRlZF9y bmQKKyg1IHJvd3MpCiAKIFNFTEVDVCBESVNUSU5DVCBwMS5wcm9hcmd0eXBlc1swXTo6cmVn dHlwZSwgcDIucHJvYXJndHlwZXNbMF06OnJlZ3R5cGUKIEZST00gcGdfcHJvYyBBUyBwMSwg cGdfcHJvYyBBUyBwMgpAQCAtMTc1LDEzICsxNzYsMTUgQEAgV0hFUkUgcDEub2lkICE9IHAy Lm9pZCBBTkQKIE9SREVSIEJZIDEsIDI7CiAgICAgICAgICBwcm9hcmd0eXBlcyAgICAgICAg IHwgICAgICAgcHJvYXJndHlwZXMgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBieXRlYSAgICAgICAgICAgICAg ICAgICAgICAgfCBwZ19lbmNyeXB0ZWRfZGV0CiAgYmlnaW50ICAgICAgICAgICAgICAgICAg ICAgIHwgeGlkOAogIHRleHQgICAgICAgICAgICAgICAgICAgICAgICB8IGNoYXJhY3Rlcgog IHRleHQgICAgICAgICAgICAgICAgICAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nCiAgdGlt ZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGggdGltZSB6b25lCiAg Yml0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgYml0IHZhcnlpbmcKICB0eGlkX3NuYXBz aG90ICAgICAgICAgICAgICAgfCBwZ19zbmFwc2hvdAotKDYgcm93cykKKyBwZ19lbmNyeXB0 ZWRfZGV0ICAgICAgICAgICAgfCBwZ19lbmNyeXB0ZWRfcm5kCisoOCByb3dzKQogCiBTRUxF Q1QgRElTVElOQ1QgcDEucHJvYXJndHlwZXNbMV06OnJlZ3R5cGUsIHAyLnByb2FyZ3R5cGVz WzFdOjpyZWd0eXBlCiBGUk9NIHBnX3Byb2MgQVMgcDEsIHBnX3Byb2MgQVMgcDIKQEAgLTE5 NywxMiArMjAwLDEzIEBAIFdIRVJFIHAxLm9pZCAhPSBwMi5vaWQgQU5ECiBPUkRFUiBCWSAx LCAyOwogICAgICAgICAgcHJvYXJndHlwZXMgICAgICAgICB8ICAgICAgIHByb2FyZ3R5cGVz ICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgYnl0ZWEgICAgICAgICAgICAgICAgICAgICAgIHwgcGdfZW5jcnlw dGVkX2RldAogIGludGVnZXIgICAgICAgICAgICAgICAgICAgICB8IHhpZAogIHRpbWVzdGFt cCB3aXRob3V0IHRpbWUgem9uZSB8IHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZQogIGJpdCAg ICAgICAgICAgICAgICAgICAgICAgICB8IGJpdCB2YXJ5aW5nCiAgdHhpZF9zbmFwc2hvdCAg ICAgICAgICAgICAgIHwgcGdfc25hcHNob3QKICBhbnlyYW5nZSAgICAgICAgICAgICAgICAg ICAgfCBhbnltdWx0aXJhbmdlCi0oNSByb3dzKQorKDYgcm93cykKIAogU0VMRUNUIERJU1RJ TkNUIHAxLnByb2FyZ3R5cGVzWzJdOjpyZWd0eXBlLCBwMi5wcm9hcmd0eXBlc1syXTo6cmVn dHlwZQogRlJPTSBwZ19wcm9jIEFTIHAxLCBwZ19wcm9jIEFTIHAyCkBAIC04NzIsNiArODc2 LDggQEAgeGlkOGdlKHhpZDgseGlkOCkKIHhpZDhlcSh4aWQ4LHhpZDgpCiB4aWQ4bmUoeGlk OCx4aWQ4KQogeGlkOGNtcCh4aWQ4LHhpZDgpCitwZ19lbmNyeXB0ZWRfZGV0X2VxKHBnX2Vu Y3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCkKK3BnX2VuY3J5cHRlZF9kZXRfbmUocGdf ZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KQogLS0gcmVzdG9yZSBub3JtYWwgb3V0 cHV0IG1vZGUKIFxhXHQKIC0tIExpc3Qgb2YgZnVuY3Rpb25zIHVzZWQgYnkgbGlicHEncyBm ZS1sb2JqLmMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHlwZV9z YW5pdHkub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90eXBlX3Nhbml0eS5vdXQK aW5kZXggYTY0MGNmYzQ3Ni4uNzQyMjcyMjI1ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC90eXBlX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC90eXBlX3Nhbml0eS5vdXQKQEAgLTc1LDcgKzc1LDkgQEAgT1JERVIgQlkgdDEu b2lkOwogIDQ2MDAgfCBwZ19icmluX2Jsb29tX3N1bW1hcnkKICA0NjAxIHwgcGdfYnJpbl9t aW5tYXhfbXVsdGlfc3VtbWFyeQogIDUwMTcgfCBwZ19tY3ZfbGlzdAotKDYgcm93cykKKyA4 MjQzIHwgcGdfZW5jcnlwdGVkX2RldAorIDgyNDQgfCBwZ19lbmNyeXB0ZWRfcm5kCisoOCBy b3dzKQogCiAtLSBNYWtlIHN1cmUgdHlwYXJyYXkgcG9pbnRzIHRvIGEgInRydWUiIGFycmF5 IHR5cGUgb2Ygb3VyIG93biBiYXNlCiBTRUxFQ1QgdDEub2lkLCB0MS50eXBuYW1lIGFzIGJh c2V0eXBlLCB0Mi50eXBuYW1lIGFzIGFycmF5dHlwZSwKQEAgLTcxNiw2ICs3MTgsOCBAQCBT RUxFQ1Qgb2lkLCB0eXBuYW1lLCB0eXB0eXBlLCB0eXBlbGVtLCB0eXBhcnJheQogICBXSEVS RSBvaWQgPCAxNjM4NCBBTkQKICAgICAtLSBFeGNsdWRlIHBzZXVkb3R5cGVzIGFuZCBjb21w b3NpdGUgdHlwZXMuCiAgICAgdHlwdHlwZSBOT1QgSU4gKCdwJywgJ2MnKSBBTkQKKyAgICAt LSBFeGNsdWRlIGVuY3J5cHRpb24gaW50ZXJuYWwgdHlwZXMuCisgICAgb2lkICE9IEFMTChB UlJBWVsncGdfZW5jcnlwdGVkX2RldCcsICdwZ19lbmNyeXB0ZWRfcm5kJ106OnJlZ3R5cGVb XSkgQU5ECiAgICAgLS0gVGhlc2UgcmVnKiB0eXBlcyBjYW5ub3QgYmUgcGdfdXBncmFkZWQs IHNvIGRpc2NhcmQgdGhlbS4KICAgICBvaWQgIT0gQUxMKEFSUkFZWydyZWdwcm9jJywgJ3Jl Z3Byb2NlZHVyZScsICdyZWdvcGVyJywKICAgICAgICAgICAgICAgICAgICAgICdyZWdvcGVy YXRvcicsICdyZWdjb25maWcnLCAncmVnZGljdGlvbmFyeScsCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJh bGxlbF9zY2hlZHVsZQppbmRleCAxNWUwMTViM2Q2Li41NzdhNmQ0YjJlIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTk4LDcgKzk4LDcgQEAgdGVzdDogcHVibGlj YXRpb24gc3Vic2NyaXB0aW9uCiAjIEFub3RoZXIgZ3JvdXAgb2YgcGFyYWxsZWwgdGVzdHMK ICMgc2VsZWN0X3ZpZXdzIGRlcGVuZHMgb24gY3JlYXRlX3ZpZXcKICMgLS0tLS0tLS0tLQot dGVzdDogc2VsZWN0X3ZpZXdzIHBvcnRhbHNfcDIgZm9yZWlnbl9rZXkgY2x1c3RlciBkZXBl bmRlbmN5IGd1YyBiaXRtYXBvcHMgY29tYm9jaWQgdHNlYXJjaCB0c2RpY3RzIGZvcmVpZ25f ZGF0YSB3aW5kb3cgeG1sbWFwIGZ1bmN0aW9uYWxfZGVwcyBhZHZpc29yeV9sb2NrIGluZGly ZWN0X3RvYXN0IGVxdWl2Y2xhc3MKK3Rlc3Q6IHNlbGVjdF92aWV3cyBwb3J0YWxzX3AyIGZv cmVpZ25fa2V5IGNsdXN0ZXIgZGVwZW5kZW5jeSBndWMgYml0bWFwb3BzIGNvbWJvY2lkIHRz ZWFyY2ggdHNkaWN0cyBmb3JlaWduX2RhdGEgd2luZG93IHhtbG1hcCBmdW5jdGlvbmFsX2Rl cHMgYWR2aXNvcnlfbG9jayBpbmRpcmVjdF90b2FzdCBlcXVpdmNsYXNzIGNvbHVtbl9lbmNy eXB0aW9uCiAKICMgLS0tLS0tLS0tLQogIyBBbm90aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRl c3RzIChKU09OIHJlbGF0ZWQpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BnX3Jl Z3Jlc3NfbWFpbi5jIGIvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzX21haW4uYwppbmRl eCA0Mjc0Mjk5NzVlLi41N2M3ZDJiZWMzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L3BnX3JlZ3Jlc3NfbWFpbi5jCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzc19t YWluLmMKQEAgLTgyLDcgKzgyLDcgQEAgcHNxbF9zdGFydF90ZXN0KGNvbnN0IGNoYXIgKnRl c3RuYW1lLAogCQkJCQkgICBiaW5kaXIgPyBiaW5kaXIgOiAiIiwKIAkJCQkJICAgYmluZGly ID8gIi8iIDogIiIsCiAJCQkJCSAgIGRibGlzdC0+c3RyLAotCQkJCQkgICAiLXYgSElERV9U QUJMRUFNPW9uIC12IEhJREVfVE9BU1RfQ09NUFJFU1NJT049b24iLAorCQkJCQkgICAiLXYg SElERV9UQUJMRUFNPW9uIC12IEhJREVfVE9BU1RfQ09NUFJFU1NJT049b24gLXYgSElERV9D T0xVTU5fRU5DUllQVElPTj1vbiIsCiAJCQkJCSAgIGluZmlsZSwKIAkJCQkJICAgb3V0Zmls ZSk7CiAJaWYgKG9mZnNldCA+PSBzaXplb2YocHNxbF9jbWQpKQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLjZlNjNlNmQ0ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9jb2x1bW5fZW5jcnlwdGlvbi5zcWwKQEAgLTAsMCArMSwyNjUgQEAK K1xzZXQgSElERV9DT0xVTU5fRU5DUllQVElPTiBmYWxzZQorCitDUkVBVEUgUk9MRSByZWdy ZXNzX2VuY191c2VyMTsKKworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazEgV0lUSCAo CisgICAgcmVhbG0gPSAndGVzdCcKKyk7CisKK0NPTU1FTlQgT04gQ09MVU1OIE1BU1RFUiBL RVkgY21rMSBJUyAnY29sdW1uIG1hc3RlciBrZXknOworCitDUkVBVEUgQ09MVU1OIE1BU1RF UiBLRVkgY21rMWEgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdCcKKyk7CisKK0NSRUFURSBD T0xVTU4gTUFTVEVSIEtFWSBjbWsyOworCitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21r MmEgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdHgnCispOworCitBTFRFUiBDT0xVTU4gTUFT VEVSIEtFWSBjbWsyYSAocmVhbG0gPSAndGVzdDInKTsKKworQ1JFQVRFIENPTFVNTiBFTkNS WVBUSU9OIEtFWSBmYWlsIFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9 IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ2ZvbycsICAtLSBpbnZhbGlkCisgICAgZW5jcnlw dGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIGNlazEgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21r MSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVk X3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworCitDT01NRU5UIE9OIENPTFVNTiBFTkNSWVBU SU9OIEtFWSBjZWsxIElTICdjb2x1bW4gZW5jcnlwdGlvbiBrZXknOworCitBTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVkgY2VrMSBBREQgVkFMVUUgKAorICAgIGNvbHVtbl9tYXN0ZXJf a2V5ID0gY21rMWEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAg IGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKKworLS0gZHVwbGljYXRlCitB TFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBBREQgVkFMVUUgKAorICAgIGNvbHVt bl9tYXN0ZXJfa2V5ID0gY21rMWEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hB XzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKKworQUxURVIg Q09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWwgQUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFz dGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywK KyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CisKK0NSRUFURSBDT0xV TU4gRU5DUllQVElPTiBLRVkgY2VrMiBXSVRIIFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rl cl9rZXkgPSBjbWsyLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAg ICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyksCisoCisgICAgY29sdW1uX21h c3Rlcl9rZXkgPSBjbWsyYSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScs CisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworCitDUkVBVEUgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGNlazQgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0 ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisg ICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworCitDUkVBVEUgVEFCTEUg dGJsX2ZhaWwgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQ VEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IG5vdGV4aXN0KQorKTsKKworQ1JF QVRFIFRBQkxFIHRibF9mYWlsICgKKyAgICBhIGludCwKKyAgICBiIHRleHQsCisgICAgYyB0 ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxLCBhbGdv cml0aG0gPSAnZm9vJykKKyk7CisKK0NSRUFURSBUQUJMRSB0YmxfZmFpbCAoCisgICAgYSBp bnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2Vu Y3J5cHRpb25fa2V5ID0gY2VrMSwgZW5jcnlwdGlvbl90eXBlID0gd3JvbmcpCispOworCitD UkVBVEUgVEFCTEUgdGJsXzI5ZjMgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBj IHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpCisp OworCitcZCB0YmxfMjlmMworXGQrIHRibF8yOWYzCisKK0NSRUFURSBUQUJMRSB0YmxfNDQ3 ZiAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0CispOworCitBTFRFUiBUQUJMRSB0YmxfNDQ3 ZiBBREQgQ09MVU1OIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25f a2V5ID0gY2VrMSk7CisKK1xkIHRibF80NDdmCitcZCsgdGJsXzQ0N2YKKworQ1JFQVRFIFRB QkxFIHRibF80ODk3IChMSUtFIHRibF80NDdmKTsKK0NSRUFURSBUQUJMRSB0YmxfNjk3OCAo TElLRSB0YmxfNDQ3ZiBJTkNMVURJTkcgRU5DUllQVEVEKTsKKworXGQrIHRibF80ODk3Citc ZCsgdGJsXzY5NzgKKworQ1JFQVRFIFZJRVcgdmlld18zYmM5IEFTIFNFTEVDVCAqIEZST00g dGJsXzI5ZjM7CisKK1xkKyB2aWV3XzNiYzkKKworQ1JFQVRFIFRBQkxFIHRibF8yMzg2IEFT IFNFTEVDVCAqIEZST00gdGJsXzI5ZjMgV0lUSCBOTyBEQVRBOworCitcZCsgdGJsXzIzODYK KworQ1JFQVRFIFRBQkxFIHRibF8yOTQxIEFTIFNFTEVDVCAqIEZST00gdGJsXzI5ZjMgV0lU SCBEQVRBOworCitcZCsgdGJsXzI5NDEKKworLS0gdGVzdCBwYXJ0aXRpb24gZGVjbGFyYXRp b25zCisKK0NSRUFURSBUQUJMRSB0YmxfMTNmYSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0 IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKSBQQVJU SVRJT04gQlkgUkFOR0UgKGEpOworQ1JFQVRFIFRBQkxFIHRibF8xM2ZhXzEgUEFSVElUSU9O IE9GIHRibF8xM2ZhIEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDEwMCk7CisKK1xkKyB0Ymxf MTNmYQorXGQrIHRibF8xM2ZhXzEKKworCistLSB0ZXN0IGluaGVyaXRhbmNlCisKK0NSRUFU RSBUQUJMRSB0YmxfMzZmM19hICgKKyAgICBhIGludCwKKyAgICBiIHRleHQgRU5DUllQVEVE IFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpCispOworCitDUkVBVEUgVEFC TEUgdGJsXzM2ZjNfYiAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRI IChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKKworQ1JFQVRFIFRBQkxFIHRi bF8zNmYzX2MgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29s dW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMikKKyk7CisKK0NSRUFURSBUQUJMRSB0YmxfMzZm M19kICgKKyAgICBhIGludCwKKyAgICBiIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9l bmNyeXB0aW9uX2tleSA9IGNlazEsIGVuY3J5cHRpb25fdHlwZSA9IGRldGVybWluaXN0aWMp CispOworCitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfZSAoCisgICAgYSBpbnQsCisgICAgYiB0 ZXh0CispOworCistLSBub3QgaW1wbGVtZW50ZWQgKGJ1dCBjb3VsZCBiZSBvaykKK0NSRUFU RSBUQUJMRSB0YmxfMzZmM19hYiAoYyBpbnQpIElOSEVSSVRTICh0YmxfMzZmM19hLCB0Ymxf MzZmM19iKTsKK1xkKyB0YmxfMzZmM19hYgorLS0gbm90IGltcGxlbWVudGVkIChidXQgc2hv dWxkIGZhaWwpCitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfYWMgKGMgaW50KSBJTkhFUklUUyAo dGJsXzM2ZjNfYSwgdGJsXzM2ZjNfYyk7CitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfYWQgKGMg aW50KSBJTkhFUklUUyAodGJsXzM2ZjNfYSwgdGJsXzM2ZjNfZCk7CistLSBmYWlsCitDUkVB VEUgVEFCTEUgdGJsXzM2ZjNfYWUgKGMgaW50KSBJTkhFUklUUyAodGJsXzM2ZjNfYSwgdGJs XzM2ZjNfZSk7CisKKy0tIG9rCitDUkVBVEUgVEFCTEUgdGJsXzM2ZjNfYV8xIChiIHRleHQg RU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpLCBjIGludCkg SU5IRVJJVFMgKHRibF8zNmYzX2EpOworXGQrIHRibF8zNmYzX2FfMQorLS0gZmFpbAorQ1JF QVRFIFRBQkxFIHRibF8zNmYzX2FfMiAoYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5f ZW5jcnlwdGlvbl9rZXkgPSBjZWsyKSwgYyBpbnQpIElOSEVSSVRTICh0YmxfMzZmM19hKTsK K0NSRUFURSBUQUJMRSB0YmxfMzZmM19hXzIgKGIgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29s dW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgZW5jcnlwdGlvbl90eXBlID0gZGV0ZXJtaW5p c3RpYyksIGMgaW50KSBJTkhFUklUUyAodGJsXzM2ZjNfYSk7CitDUkVBVEUgVEFCTEUgdGJs XzM2ZjNfYV8yIChiIHRleHQsIGMgaW50KSBJTkhFUklUUyAodGJsXzM2ZjNfYSk7CisKK0RS T1AgVEFCTEUgdGJsXzM2ZjNfYiwgdGJsXzM2ZjNfYywgdGJsXzM2ZjNfZCwgdGJsXzM2ZjNf ZTsKKworCistLSBTRVQgU0NIRU1BCitDUkVBVEUgU0NIRU1BIHRlc3Rfc2NoZW1hX2NlOwor QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgU0VUIFNDSEVNQSB0ZXN0X3NjaGVt YV9jZTsKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazEgU0VUIFNDSEVNQSB0ZXN0X3Nj aGVtYV9jZTsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSB0ZXN0X3NjaGVtYV9jZS5j ZWsxIFNFVCBTQ0hFTUEgcHVibGljOworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgdGVzdF9z Y2hlbWFfY2UuY21rMSBTRVQgU0NIRU1BIHB1YmxpYzsKK0RST1AgU0NIRU1BIHRlc3Rfc2No ZW1hX2NlOworCisKKy0tIHByaXZpbGVnZXMKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g J3JlZ3Jlc3NfZW5jX3VzZXIxJzsKKy0tIGZhaWwKK0NSRUFURSBDT0xVTU4gRU5DUllQVElP TiBLRVkgY2VrMTAgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21r MSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVk X3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O OworR1JBTlQgVVNBR0UgT04gQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBUTyByZWdyZXNzX2Vu Y191c2VyMTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3NfZW5jX3VzZXIx JzsKKy0tIG9rIG5vdworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxMCBXSVRI IFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAorICAgIGFsZ29yaXRo bSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFE QkVFRicKKyk7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxMDsKKworLS0gZmFp bAorQ1JFQVRFIFRBQkxFIHRibF83MDQwIChhIGludCwgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRI IChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSk7CitSRVNFVCBTRVNTSU9OIEFVVEhP UklaQVRJT047CitHUkFOVCBVU0FHRSBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBU TyByZWdyZXNzX2VuY191c2VyMTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jl c3NfZW5jX3VzZXIxJzsKKy0tIG9rIG5vdworQ1JFQVRFIFRBQkxFIHRibF83MDQwIChhIGlu dCwgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsx KSk7CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CisKK0RST1AgVEFCTEUgdGJsXzcw NDA7CitSRVZPS0UgVVNBR0UgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRlJPTSBy ZWdyZXNzX2VuY191c2VyMTsKK1JFVk9LRSBVU0FHRSBPTiBDT0xVTU4gTUFTVEVSIEtFWSBj bWsxIEZST00gcmVncmVzc19lbmNfdXNlcjE7CisKKworRFJPUCBDT0xVTU4gTUFTVEVSIEtF WSBjbWsxIFJFU1RSSUNUOyAgLS0gZmFpbAorCitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBj bWsyIFJFTkFNRSBUTyBjbWszOworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBSRU5B TUUgVE8gY21rMzsgIC0tIGZhaWwKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNta3ggUkVO QU1FIFRPIGNta3k7ICAtLSBmYWlsCisKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBj ZWsyIFJFTkFNRSBUTyBjZWszOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEg UkVOQU1FIFRPIGNlazM7ICAtLSBmYWlsCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkg Y2VreCBSRU5BTUUgVE8gY2VreTsgIC0tIGZhaWwKKworU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiAncmVncmVzc19lbmNfdXNlcjEnOworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkg Y2VrMzsgIC0tIGZhaWwKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMzsgIC0tIGZhaWwK K1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZ IGNtazMgT1dORVIgVE8gcmVncmVzc19lbmNfdXNlcjE7CitBTFRFUiBDT0xVTU4gRU5DUllQ VElPTiBLRVkgY2VrMyBPV05FUiBUTyByZWdyZXNzX2VuY191c2VyMTsKK1xkY2VrIGNlazMK K1xkY21rIGNtazMKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3NfZW5jX3Vz ZXIxJzsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazM7ICAtLSBvayBub3cKK0RS T1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMzsgIC0tIG9rIG5vdworUkVTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OOworCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9Q IFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhKTsKK0FMVEVSIENPTFVNTiBFTkNS WVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEp OyAgLS0gZmFpbAorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxV RSAoY29sdW1uX21hc3Rlcl9rZXkgPSBmYWlsKTsgIC0tIGZhaWwKK0FMVEVSIENPTFVNTiBF TkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21r MWEsIGFsZ29yaXRobSA9ICdmb28nKTsgIC0tIGZhaWwKKworRFJPUCBDT0xVTU4gRU5DUllQ VElPTiBLRVkgY2VrNDsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWw7CitEUk9Q IENPTFVNTiBFTkNSWVBUSU9OIEtFWSBJRiBFWElTVFMgbm9uZXhpc3RlbnQ7CisKK0RST1Ag Q09MVU1OIE1BU1RFUiBLRVkgY21rMWE7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGZhaWw7 CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIElGIEVYSVNUUyBub25leGlzdGVudDsKKworRFJP UCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0 X2FkZHJlc3Muc3FsCmluZGV4IDFhNmM2MWY0OWQuLjM1YWY0MzAzMmYgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwKQEAgLTQxLDYgKzQxLDggQEAgQ1JF QVRFIFNFUlZFUiAiaW50ZWdlciIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgYWRkcl9mZHc7CiBD UkVBVEUgVVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX2FkZHJfdXNlciBTRVJWRVIgImludGVn ZXIiOwogQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfYWRkcl91 c2VyIElOIFNDSEVNQSBwdWJsaWMgR1JBTlQgQUxMIE9OIFRBQkxFUyBUTyByZWdyZXNzX2Fk ZHJfdXNlcjsKIEFMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2Fk ZHJfdXNlciBSRVZPS0UgREVMRVRFIE9OIFRBQkxFUyBGUk9NIHJlZ3Jlc3NfYWRkcl91c2Vy OworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGFkZHJfY21rOworQ1JFQVRFIENPTFVNTiBF TkNSWVBUSU9OIEtFWSBhZGRyX2NlayBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkg PSBhZGRyX2NtaywgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLCBlbmNyeXB0ZWRf dmFsdWUgPSAnJyk7CiAtLSB0aGlzIHRyYW5zZm9ybSB3b3VsZCBiZSBxdWl0ZSB1bnNhZmUg dG8gbGVhdmUgbHlpbmcgYXJvdW5kLAogLS0gZXhjZXB0IHRoYXQgdGhlIFNRTCBsYW5ndWFn ZSBwYXlzIG5vIGF0dGVudGlvbiB0byB0cmFuc2Zvcm1zOgogQ1JFQVRFIFRSQU5TRk9STSBG T1IgaW50IExBTkdVQUdFIFNRTCAoCkBAIC05OSw3ICsxMDEsOCBAQCBDUkVBVEUgU1RBVElT VElDUyBhZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5nZW50 YWJsZTsKICAgICAgICAgKCd0ZXh0IHNlYXJjaCB0ZW1wbGF0ZScpLCAoJ3RleHQgc2VhcmNo IGNvbmZpZ3VyYXRpb24nKSwKICAgICAgICAgKCdwb2xpY3knKSwgKCd1c2VyIG1hcHBpbmcn KSwgKCdkZWZhdWx0IGFjbCcpLCAoJ3RyYW5zZm9ybScpLAogICAgICAgICAoJ29wZXJhdG9y IG9mIGFjY2VzcyBtZXRob2QnKSwgKCdmdW5jdGlvbiBvZiBhY2Nlc3MgbWV0aG9kJyksCi0g ICAgICAgICgncHVibGljYXRpb24gbmFtZXNwYWNlJyksICgncHVibGljYXRpb24gcmVsYXRp b24nKQorICAgICAgICAoJ3B1YmxpY2F0aW9uIG5hbWVzcGFjZScpLCAoJ3B1YmxpY2F0aW9u IHJlbGF0aW9uJyksCisgICAgICAgICgnY29sdW1uIGVuY3J5cHRpb24ga2V5JyksICgnY29s dW1uIGVuY3J5cHRpb24ga2V5IGRhdGEnKSwgKCdjb2x1bW4gbWFzdGVyIGtleScpCiAgICAg TE9PUAogICAgICAgICBGT1IgbmFtZXMgSU4gVkFMVUVTICgne2VpbnN9JyksICgne2FkZHJf bnNwLCB6d2VpfScpLCAoJ3tlaW5zLCB6d2VpLCBkcmVpfScpCiAgICAgICAgIExPT1AKQEAg LTE3NCw2ICsxNzcsOSBAQCBDUkVBVEUgU1RBVElTVElDUyBhZGRyX25zcC5nZW50YWJsZV9z dGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5nZW50YWJsZTsKICAgICAoJ3R5cGUnLCAne2Fk ZHJfbnNwLmdlbmVudW19JywgJ3t9JyksCiAgICAgKCdjYXN0JywgJ3tpbnQ4fScsICd7aW50 NH0nKSwKICAgICAoJ2NvbGxhdGlvbicsICd7ZGVmYXVsdH0nLCAne30nKSwKKyAgICAoJ2Nv bHVtbiBlbmNyeXB0aW9uIGtleScsICd7YWRkcl9jZWt9JywgJ3t9JyksCisgICAgKCdjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgZGF0YScsICd7YWRkcl9jZWt9JywgJ3thZGRyX2Nta30nKSwK KyAgICAoJ2NvbHVtbiBtYXN0ZXIga2V5JywgJ3thZGRyX2Nta30nLCAne30nKSwKICAgICAo J3RhYmxlIGNvbnN0cmFpbnQnLCAne2FkZHJfbnNwLCBnZW50YWJsZSwgYV9jaGt9JywgJ3t9 JyksCiAgICAgKCdkb21haW4gY29uc3RyYWludCcsICd7YWRkcl9uc3AuZ2VuZG9tYWlufScs ICd7ZG9tY29uc3RyfScpLAogICAgICgnY29udmVyc2lvbicsICd7cGdfY2F0YWxvZywga29p OF9yX3RvX21pY30nLCAne30nKSwKQEAgLTIyOCw2ICsyMzQsOCBAQCBDUkVBVEUgU1RBVElT VElDUyBhZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5nZW50 YWJsZTsKIERST1AgUFVCTElDQVRJT04gYWRkcl9wdWI7CiBEUk9QIFBVQkxJQ0FUSU9OIGFk ZHJfcHViX3NjaGVtYTsKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfYWRkcl9zdWI7CitE Uk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhZGRyX2NlazsKK0RST1AgQ09MVU1OIE1BU1RF UiBLRVkgYWRkcl9jbWs7CiAKIERST1AgU0NIRU1BIGFkZHJfbnNwIENBU0NBREU7CiAKQEAg LTI0Nyw2ICsyNTUsOSBAQCBDUkVBVEUgU1RBVElTVElDUyBhZGRyX25zcC5nZW50YWJsZV9z dGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5nZW50YWJsZTsKICAgICAoJ3BnX3R5cGUnOjpy ZWdjbGFzcywgMCwgMCksIC0tIG5vIHR5cGUKICAgICAoJ3BnX2Nhc3QnOjpyZWdjbGFzcywg MCwgMCksIC0tIG5vIGNhc3QKICAgICAoJ3BnX2NvbGxhdGlvbic6OnJlZ2NsYXNzLCAwLCAw KSwgLS0gbm8gY29sbGF0aW9uCisgICAgKCdwZ19jb2xlbmNrZXknOjpyZWdjbGFzcywgMCwg MCksIC0tIG5vIGNvbHVtbiBlbmNyeXB0aW9uIGtleQorICAgICgncGdfY29sZW5ja2V5ZGF0 YSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEK KyAgICAoJ3BnX2NvbG1hc3RlcmtleSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29sdW1u IG1hc3RlciBrZXkKICAgICAoJ3BnX2NvbnN0cmFpbnQnOjpyZWdjbGFzcywgMCwgMCksIC0t IG5vIGNvbnN0cmFpbnQKICAgICAoJ3BnX2NvbnZlcnNpb24nOjpyZWdjbGFzcywgMCwgMCks IC0tIG5vIGNvbnZlcnNpb24KICAgICAoJ3BnX2F0dHJkZWYnOjpyZWdjbGFzcywgMCwgMCks IC0tIG5vIGRlZmF1bHQgYXR0cmlidXRlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC90eXBlX3Nhbml0eS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC90eXBlX3Nhbml0 eS5zcWwKaW5kZXggNzllYzQxMGE2Yy4uMmJhNGM5YTU0NSAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvdHlwZV9zYW5pdHkuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3R5cGVfc2FuaXR5LnNxbApAQCAtNTQ0LDYgKzU0NCw4IEBAIENSRUFURSBUQUJMRSB0 YWJfY29yZV90eXBlcyBBUyBTRUxFQ1QKICAgV0hFUkUgb2lkIDwgMTYzODQgQU5ECiAgICAg LS0gRXhjbHVkZSBwc2V1ZG90eXBlcyBhbmQgY29tcG9zaXRlIHR5cGVzLgogICAgIHR5cHR5 cGUgTk9UIElOICgncCcsICdjJykgQU5ECisgICAgLS0gRXhjbHVkZSBlbmNyeXB0aW9uIGlu dGVybmFsIHR5cGVzLgorICAgIG9pZCAhPSBBTEwoQVJSQVlbJ3BnX2VuY3J5cHRlZF9kZXQn LCAncGdfZW5jcnlwdGVkX3JuZCddOjpyZWd0eXBlW10pIEFORAogICAgIC0tIFRoZXNlIHJl ZyogdHlwZXMgY2Fubm90IGJlIHBnX3VwZ3JhZGVkLCBzbyBkaXNjYXJkIHRoZW0uCiAgICAg b2lkICE9IEFMTChBUlJBWVsncmVncHJvYycsICdyZWdwcm9jZWR1cmUnLCAncmVnb3Blcics CiAgICAgICAgICAgICAgICAgICAgICAncmVnb3BlcmF0b3InLCAncmVnY29uZmlnJywgJ3Jl Z2RpY3Rpb25hcnknLAoKYmFzZS1jb21taXQ6IDJkZGFiMDEwYzI3NzdjNmE5NjVjZWE4MmRj MWI4MDlkZGMzM2VjYzEKLS0gCjIuMzkuMgoK --------------KcbtNCIOb4Snrj7xGGgNAqH4--