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 1p7rwe-0002c9-RA for pgsql-hackers@arkaria.postgresql.org; Wed, 21 Dec 2022 05:47: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 1p7rwd-0007On-Mt for pgsql-hackers@arkaria.postgresql.org; Wed, 21 Dec 2022 05:47: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 1p7rwc-0007OK-Vv for pgsql-hackers@lists.postgresql.org; Wed, 21 Dec 2022 05:47:11 +0000 Received: from wnew1-smtp.messagingengine.com ([64.147.123.26]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p7rwQ-0004Ex-Al for pgsql-hackers@postgresql.org; Wed, 21 Dec 2022 05:47:10 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailnew.west.internal (Postfix) with ESMTP id BD20B2B066EF for ; Wed, 21 Dec 2022 00:46:54 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Wed, 21 Dec 2022 00:46:54 -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= fm2; t=1671601614; x=1671608814; bh=arqKMRLIKYTmt8pau6vC+Fb0SSi9 RzB1Os1NkAw0vTg=; b=OYR6jDv5vh78rjNz/6jPLT7mgrMPhdBsG3RXu4JOe/qf EZ2sSsxD7xPg8wgtWq/E51HY4DpHRn3Y9W6+fyEN5bvnwBITTkA1xgT+W62cy8gL b8gVwO46Q8fsmDzxbozR9NOetCYce96Ll7dT9AgRXvv27TlyrNIvjrlUBhfvCAh1 5IfE+dai6u0SaiIdMrYZHrftiN0FPKH1xTsMpwwlSEyH4VGLFOp6QYrD6meHYnRG 7yYIFqfDEISnnXKEoSGxMKaONStKA3Hkblg3qEda00lMVSCflsxEl6jvdpzbBQG/ oCMidlWqM+oC+hd76hzHoYOETKh5WOO+J+kpq1WI1Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrgeejgdekkecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurheptgfkffggfgfuhffvfhgjsehmtderre dtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgv ihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhmqeenucggtffrrghtth gvrhhnpeekteetfeehvefhvdeltdefgeeluedtkeekkeevieefueffveejueejheffjeei jeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvg htvghrrdgvihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Wed, 21 Dec 2022 00:46:52 -0500 (EST) Content-Type: multipart/mixed; boundary="------------bE5cIdV7uBwM8Kl9UTo0rizb" Message-ID: Date: Wed, 21 Dec 2022 06:46:51 +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.0 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> In-Reply-To: <8bcedb49-1496-0755-bd24-1cbabf30ec84@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. --------------bE5cIdV7uBwM8Kl9UTo0rizb Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 28.11.22 15:05, Peter Eisentraut wrote: > On 23.11.22 19:39, Peter Eisentraut wrote: >> Here is another updated patch.  Some preliminary work was committed, >> which allowed this patch to get a bit smaller.  I have incorporated >> some recent reviews, and also fixed some issues pointed out by recent >> CI additions (address sanitizer etc.). >> >> The psql situation in this patch is temporary: It still has the \gencr >> command from previous versions, but I plan to fold this into the new >> \bind command. > > I made a bit of progress with this now, based on recent reviews: > > - Cleaned up the libpq API.  PQexecParams() now supports column > encryption transparently. > - psql \bind can be used; \gencr is removed. > - Added psql \dcek and \dcmk commands. > - ALTER COLUMN MASTER KEY to alter realm. And another update. The main changes are that I added an 'unspecified' CMK algorithm, which indicates that the external KMS knows what it is but the database system doesn't. This was discussed a while ago. I also changed some details about how the "cmklookup" works in libpq. Also added more code comments and documentation and rearranged some code. According to my local todo list, this patch is now complete. --------------bE5cIdV7uBwM8Kl9UTo0rizb Content-Type: text/plain; charset=UTF-8; name="v13-0001-Transparent-column-encryption.patch" Content-Disposition: attachment; filename="v13-0001-Transparent-column-encryption.patch" Content-Transfer-Encoding: base64 RnJvbSA1ZjFiN2E1ZWFmZDAyYjkwMzcwZjAwNzQ0MTU0ZmY4NGFmYmQ1OWE1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCAyMSBEZWMgMjAyMiAwNjozNzoxMSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjEzXSBUcmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbgoKVGhpcyBmZWF0 dXJlIGVuYWJsZXMgdGhlIGF1dG9tYXRpYywgdHJhbnNwYXJlbnQgZW5jcnlwdGlvbiBhbmQK ZGVjcnlwdGlvbiBvZiBwYXJ0aWN1bGFyIGNvbHVtbnMgaW4gdGhlIGNsaWVudC4gIFRoZSBk YXRhIGZvciB0aG9zZQpjb2x1bW5zIHRoZW4gb25seSBldmVyIGFwcGVhcnMgaW4gY2lwaGVy dGV4dCBvbiB0aGUgc2VydmVyLCBzbyBpdCBpcwpwcm90ZWN0ZWQgZnJvbSBEQkFzLCBzeXNh ZG1pbnMsIGNsb3VkIG9wZXJhdG9ycywgZXRjLiBhcyB3ZWxsIGFzCmFjY2lkZW50YWwgbGVh a2FnZSB0byBzZXJ2ZXIgbG9ncywgZmlsZS1zeXN0ZW0gYmFja3VwcywgZXRjLiAgVGhlCmNh bm9uaWNhbCB1c2UgY2FzZSBmb3IgdGhpcyBmZWF0dXJlIGlzIHN0b3JpbmcgY3JlZGl0IGNh cmQgbnVtYmVycwplbmNyeXB0ZWQsIGluIGFjY29yZGFuY2Ugd2l0aCBQQ0kgRFNTLCBhcyB3 ZWxsIGFzIHNpbWlsYXIgc2l0dWF0aW9ucwppbnZvbHZpbmcgc29jaWFsIHNlY3VyaXR5IG51 bWJlcnMgZXRjLiAgT25lIGNhbid0IGRvIGFueSBjb21wdXRhdGlvbnMKd2l0aCBlbmNyeXB0 ZWQgdmFsdWVzIG9uIHRoZSBzZXJ2ZXIsIGJ1dCBmb3IgdGhlc2UgdXNlIGNhc2VzLCB0aGF0 IGlzCm5vdCBuZWNlc3NhcnkuICBUaGlzIGZlYXR1cmUgZG9lcyBzdXBwb3J0IGRldGVybWlu aXN0aWMgZW5jcnlwdGlvbiBhcwphbiBhbHRlcm5hdGl2ZSB0byB0aGUgZGVmYXVsdCByYW5k b21pemVkIGVuY3J5cHRpb24sIHNvIGluIHRoYXQgbW9kZQpvbmUgY2FuIGRvIGVxdWFsaXR5 IGxvb2t1cHMsIGF0IHRoZSBjb3N0IG9mIHNvbWUgc2VjdXJpdHkuCgpUaGlzIGZ1bmN0aW9u YWxpdHkgYWxzbyBleGlzdHMgaW4gb3RoZXIgZGF0YWJhc2UgcHJvZHVjdHMsIGFuZCB0aGUK b3ZlcmFsbCBjb25jZXB0cyB3ZXJlIG1vc3RseSBhZG9wdGVkIGZyb20gdGhlcmUuCgooTm90 ZTogVGhpcyBmZWF0dXJlIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggYW55IG9uLWRpc2sgZW5j cnlwdGlvbgpmZWF0dXJlLiAgQm90aCBjYW4gZXhpc3QgaW5kZXBlbmRlbnRseS4pCgpZb3Ug ZGVjbGFyZSBhIGNvbHVtbiBhcyBlbmNyeXB0ZWQgaW4gYSBDUkVBVEUgVEFCTEUgc3RhdGVt ZW50LiAgVGhlCmNvbHVtbiB2YWx1ZSBpcyBlbmNyeXB0ZWQgYnkgYSBzeW1tZXRyaWMga2V5 IGNhbGxlZCB0aGUgY29sdW1uCmVuY3J5cHRpb24ga2V5IChDRUspLiAgVGhlIENFSyBpcyBh IGNhdGFsb2cgb2JqZWN0LiAgVGhlIENFSyBrZXkKbWF0ZXJpYWwgaXMgaW4gdHVybiBlbmNy eXB0ZWQgYnkgYW4gYXN5bW1ldHJpYyBrZXkgY2FsbGVkIHRoZSBjb2x1bW4KbWFzdGVyIGtl eSAoQ01LKS4gIFRoZSBDTUsgaXMgbm90IHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UgYnV0IHNv bWV3aGVyZQp3aGVyZSB0aGUgY2xpZW50IGNhbiBnZXQgdG8gaXQsIGZvciBleGFtcGxlIGlu IGEgZmlsZSBvciBpbiBhIGtleQptYW5hZ2VtZW50IHN5c3RlbS4gIFdoZW4gYSBzZXJ2ZXIg c2VuZHMgcm93cyBjb250YWluaW5nIGVuY3J5cHRlZApjb2x1bW4gdmFsdWVzIHRvIHRoZSBj bGllbnQsIGl0IGZpcnN0IHNlbmRzIHRoZSByZXF1aXJlZCBDTUsgYW5kIENFSwppbmZvcm1h dGlvbiAobmV3IHByb3RvY29sIG1lc3NhZ2VzKSwgd2hpY2ggdGhlIGNsaWVudCBuZWVkcyB0 byByZWNvcmQuClRoZW4sIHRoZSBjbGllbnQgY2FuIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRv IGF1dG9tYXRpY2FsbHkgZGVjcnlwdCB0aGUKaW5jb21pbmcgcm93IGRhdGEgYW5kIGZvcndh cmQgaXQgaW4gcGxhaW50ZXh0IHRvIHRoZSBhcHBsaWNhdGlvbi4KCkZvciB0aGUgQ01Lcywg bGlicHEgaGFzIGEgbmV3IGNvbm5lY3Rpb24gcGFyYW1ldGVyICJjbWtsb29rdXAiIHRoYXQK c3BlY2lmaWVzIHZpYSBhIG1pbmktbGFuZ3VhZ2Ugd2hlcmUgdG8gZ2V0IHRoZSBrZXlzLiAg UmlnaHQgbm93LCB5b3UKY2FuIHVzZSAiZmlsZSIgdG8gcmVhZCBpdCBmcm9tIGEgZmlsZSwg b3IgInJ1biIgdG8gcnVuIHNvbWUgcHJvZ3JhbSwKd2hpY2ggY291bGQgZ2V0IGl0IGZyb20g YSBLTVMuCgpUaGUgZ2VuZXJhbCBpZGVhIHdvdWxkIGJlIGZvciBhbiBhcHBsaWNhdGlvbiB0 byBoYXZlIG9uZSBDTUsgcGVyIGFyZWEKb2Ygc2VjcmV0IHN0dWZmLCBmb3IgZXhhbXBsZSwg Zm9yIGNyZWRpdCBjYXJkIGRhdGEuICBUaGUgQ01LIGNhbiBiZQpyb3RhdGVkOiBlYWNoIENF SyBjYW4gYmUgcmVwcmVzZW50ZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIGRhdGFiYXNlLApl bmNyeXB0ZWQgYnkgYSBkaWZmZXJlbnQgQ01LLiAgKFRoZSBDRUsgY2FuJ3QgYmUgcm90YXRl ZCBlYXNpbHksIHNpbmNlCnRoYXQgd291bGQgcmVxdWlyZSByZWFkaW5nIG91dCBhbGwgdGhl IGRhdGEgZnJvbSBhIHRhYmxlL2NvbHVtbiBhbmQKcmVlbmNyeXB0aW5nIGl0LiAgV2UgY291 bGQvc2hvdWxkIGFkZCBzb21lIGN1c3RvbSB0b29saW5nIGZvciB0aGF0LApidXQgaXQgd291 bGRuJ3QgYmUgYSByb3V0aW5lIG9wZXJhdGlvbi4pCgpTZXZlcmFsIGVuY3J5cHRpb24gYWxn b3JpdGhtcyBhcmUgcHJvdmlkZWQuICBUaGUgQ01LIHByb2Nlc3MgdXNlcwpSU0FFU19PQUVQ X1NIQV8xIG9yIF8yNTYuICBUaGUgQ0VLIHByb2Nlc3MgdXNlcwpBRUFEX0FFU18qX0NCQ19I TUFDX1NIQV8qIHdpdGggc2V2ZXJhbCBzdHJlbmd0aHMuCgpJbiB0aGUgc2VydmVyLCB0aGUg ZW5jcnlwdGVkIGRhdHVtcyBhcmUgc3RvcmVkIGluIHR5cGVzIGNhbGxlZApwZ19lbmNyeXB0 ZWRfcm5kIGFuZCBwZ19lbmNyeXB0ZWRfZGV0IChmb3IgcmFuZG9taXplZCBhbmQKZGV0ZXJt aW5pc3RpYyBlbmNyeXB0aW9uKS4gIFRoZXNlIGFyZSBlc3NlbnRpYWxseSBjb3VzaW5zIG9m IGJ5dGVhLgpGb3IgdGhlIHJlc3Qgb2YgdGhlIGRhdGFiYXNlIHN5c3RlbSBiZWxvdyB0aGUg cHJvdG9jb2wgaGFuZGxpbmcsIHRoZXJlCmlzIG5vdGhpbmcgc3BlY2lhbCBhYm91dCB0aG9z ZS4gIEZvciBleGFtcGxlLCBwZ19lbmNyeXB0ZWRfcm5kIGhhcyBubwpvcGVyYXRvcnMgYXQg YWxsLCBwZ19lbmNyeXB0ZWRfZGV0IGhhcyBvbmx5IGFuIGVxdWFsaXR5IG9wZXJhdG9yLgpw Z19hdHRyaWJ1dGUgaGFzIGEgbmV3IGNvbHVtbiBhdHRyZWFsdHlwaWQgdGhhdCBzdG9yZXMg dGhlIG9yaWdpbmFsCnR5cGUgb2YgdGhlIGRhdGEgaW4gdGhlIGNvbHVtbi4gIFRoaXMgaXMg b25seSB1c2VkIGZvciBwcm92aWRpbmcgaXQgdG8KY2xpZW50cywgc28gdGhhdCBoaWdoZXIt bGV2ZWwgY2xpZW50cyBjYW4gY29udmVydCB0aGUgZGVjcnlwdGVkIHZhbHVlCnRvIHRoZWly IGFwcHJvcHJpYXRlIGRhdGEgdHlwZXMgaW4gdGhlaXIgZW52aXJvbm1lbnRzLgoKVGhlIHBy b3RvY29sIGV4dGVuc2lvbnMgYXJlIGd1YXJkZWQgYnkgYSBuZXcgcHJvdG9jb2wgZXh0ZW5z aW9uIG9wdGlvbgoiX3BxXy5jb2x1bW5fZW5jcnlwdGlvbiIuICBJZiB0aGlzIGlzIG5vdCBz ZXQsIG5vdGhpbmcgY2hhbmdlcywgdGhlCnByb3RvY29sIHN0YXlzIHRoZSBzYW1lLCBhbmQg bm8gZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIGhhcHBlbnMuCgpUbyBnZXQgdHJhbnNwYXJl bnRseSBlbmNyeXB0ZWQgZGF0YSBpbnRvIHRoZSBkYXRhYmFzZSAoYXMgb3Bwb3NlZCB0bwpy ZWFkaW5nIGl0IG91dCksIGl0IGlzIHJlcXVpcmVkIHRvIHVzZSBwcm90b2NvbC1sZXZlbCBw cmVwYXJlZApzdGF0ZW1lbnRzIChpLmUuLCBleHRlbmRlZCBxdWVyeSkuICBUaGUgY2xpZW50 IG11c3QgZmlyc3QgcHJlcGFyZSBhCnN0YXRlbWVudCwgdGhlbiBkZXNjcmliZSB0aGUgc3Rh dGVtZW50IHRvIGdldCBwYXJhbWV0ZXIgbWV0YWRhdGEsCndoaWNoIGluZGljYXRlcyB3aGlj aCBwYXJhbWV0ZXJzIGFyZSB0byBiZSBlbmNyeXB0ZWQgYW5kIGhvdy4gIGxpYnBxJ3MKUFFl eGVjUGFyYW1zKCkgZG9lcyB0aGlzIGludGVybmFsbHkuICBGb3IgdGhlIGFzeW5jaHJvbm91 cyBpbnRlcmZhY2VzLAphZGRpdGlvbmFsIGxpYnBxIGZ1bmN0aW9ucyBhcmUgYWRkZWQgdG8g YmUgYWJsZSB0byBwYXNzIHRoZSBkZXNjcmliZQpyZXN1bHQgYmFjayBpbnRvIHRoZSBzdGF0 ZW1lbnQgZXhlY3V0aW9uIGZ1bmN0aW9uLiAgKE90aGVyIGNsaWVudCBBUElzCnRoYXQgaGF2 ZSBhICJzdGF0ZW1lbnQgaGFuZGxlIiBjb25jZXB0IGNvdWxkIGRvIHRoaXMgbW9yZSBlbGVn YW50bHkKYW5kIHByb2JhYmx5IHdpdGhvdXQgYW55IEFQSSBjaGFuZ2VzLikgIHBzcWwgYWxz byBzdXBwb3J0cyB0aGlzCnRyYW5zcGFyZW50bHkgaWYgdGhlIFxiaW5kIGNvbW1hbmQgaXMg dXNlZC4KCkFub3RoZXIgY2hhbGxlbmdlIGlzIHRoYXQgdGhlIHBhcnNlIGFuYWx5c2lzIG11 c3QgY2hlY2sgd2hpY2gKdW5kZXJseWluZyBjb2x1bW4gYSBwYXJhbWV0ZXIgY29ycmVzcG9u ZHMgdG8uICBUaGlzIGlzIHNpbWlsYXIgdG8KcmVzb3JpZ3RibCBhbmQgcmVzb3JpZ2NvbCBp biB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLiAgVGhpcwpmdW5jdGlvbmFsaXR5IGlzIGluIHBy aW5jaXBsZSBhdmFpbGFibGUgdG8gYWxsIHByZXBhcmVkLXN0YXRlbWVudAp2YXJpYW50cywg bm90IG9ubHkgcHJvdG9jb2wtbGV2ZWwuICBJIGV4cGFuZGVkIHRoZQpwZ19wcmVwYXJlZF9z dGF0ZW1lbnRzIHZpZXcgdG8gc2hvdyB0aGlzIGluZm9ybWF0aW9uIGFzIHdlbGwsIHdoaWNo CmFsc28gcHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gdGVzdCBhbmQgZGVidWcgdGhpcyBmdW5j dGlvbmFsaXR5CmluZGVwZW5kZW50IG9mIGNvbHVtbiBlbmNyeXB0aW9uLgoKRGlzY3Vzc2lv bjogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0Lzg5MTU3OTI5 LWMyYjYtODE3Yi02MDI1LThlNGIyZDg5ZDg4ZiU0MGVudGVycHJpc2VkYi5jb20KLS0tCiBk b2Mvc3JjL3NnbWwvYWNyb255bXMuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTggKwog ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgMjc1ICsr KysrKwogZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dtbCAgICAgICAgICAgICAgICAgICAgIHwg ICA5ICsKIGRvYy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21sICAgICAgICAgICAgICAgICAgICB8 ICA1MyArKwogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAg IHwgMzcyICsrKysrKysrCiBkb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCAgICAgICAgICAg ICAgICAgICAgfCAgMjMgKwogZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwgICAgICAgICAgICAg ICAgICAgICAgIHwgMzE0ICsrKysrKysKIGRvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sICAg ICAgICAgICAgICAgICAgICB8IDQ0MiArKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvYWxs ZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgNiArCiAuLi4vc2dtbC9yZWYvYWx0ZXJf Y29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwgfCAxODYgKysrKwogZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl9jb2x1bW5fbWFzdGVyX2tleS5zZ21sIHwgMTI0ICsrKwogZG9jL3NyYy9zZ21s L3JlZi9jb3B5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICA5ICsKIC4uLi9yZWYvY3Jl YXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sICAgICB8IDE2OCArKysrCiAuLi4vc2dt bC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwgICAgfCAxMDYgKysrCiBkb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sICAgICAgICAgICAgfCAgNDIgKy0KIC4u Li9zZ21sL3JlZi9kcm9wX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sICB8IDExMiArKysK IGRvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fbWFzdGVyX2tleS5zZ21sICB8IDExMiAr KysKIGRvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcC5zZ21sICAgICAgICAgICAgICAgICB8ICAz MSArCiBkb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dtbCAgICAgICAgICAgICAgfCAg MjcgKwogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAgIHwg IDM5ICsKIGRvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8 ICAgNiArCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMgICAgICAg fCAgIDcgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHR1cC5jICAgICAgICAg IHwgMjIxICsrKystCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYyAgICAg ICAgICAgfCAgMTIgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMg ICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlICAgICAgICAg ICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAg ICAgICAgICAgICB8ICAxMiArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAg ICAgICAgICAgICAgfCAgMTggKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgICAgICAg ICAgICAgICAgICAgIHwgIDE4ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVz cy5jICAgICAgICAgICB8IDIxMyArKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZp bGUgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVy LmMgICAgICAgICAgICAgICAgICB8ICAxNSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb2xl bmNjbWRzLmMgICAgICAgICAgICAgfCA0MjYgKysrKysrKysrCiBzcmMvYmFja2VuZC9jb21t YW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvZXZlbnRfdHJpZ2dlci5jICAgICAgICAgIHwgIDEyICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9wcmVwYXJlLmMgICAgICAgICAgICAgICAgfCAgNzQgKy0KIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3NlY2xhYmVsLmMgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgOTEgKysKIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMgICAgICAgICAgICAgICB8ICAgNyArLQogc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivc3BpLmMgICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMv YmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNy Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDE0OCArKyst CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0uYyAgICAgICAgICAgICAgfCAgMzUg Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8ICAg NiArCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyAgICAgICAgICAgfCAg MTkgKy0KIHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAgICAgICAgICB8 ICA1NyArLQogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAg IHwgIDUzICsrCiBzcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYyAgICAgICAgICAg ICAgIHwgMTA2ICsrKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgICAg ICAgICAgIHwgMTExICsrKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMg ICAgICAgICAgIHwgIDMxICstCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNoZS5j ICAgICAgICAgICAgfCAgNTggKysKIHNyYy9iYWNrZW5kL3V0aWxzL21iL21idXRpbHMuYyAg ICAgICAgICAgICAgICB8ICAxOCArLQogc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jICAgICAg ICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCAg ICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2Fy Y2hpdmVyLmMgICAgICAgICAgfCAgIDIgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9k Yi5jICAgICAgICAgICAgICAgIHwgICA5ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j ICAgICAgICAgICAgICAgICAgICAgfCAzMjYgKysrKysrLQogc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDMxICsKIHNyYy9iaW4vcGdfZHVtcC9w Z19kdW1wX3NvcnQuYyAgICAgICAgICAgICAgICB8ICAxNCArCiBzcmMvYmluL3BnX2R1bXAv cGdfZHVtcGFsbC5jICAgICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDQ4ICsKIHNyYy9iaW4vcHNxbC9j b21tYW5kLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTU3ICsrKy0KIHNyYy9iaW4v cHNxbC9kZXNjcmliZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvYmlu L3BzcWwvaGVscC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2Jp bi9wc3FsL3NldHRpbmdzLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9i aW4vcHNxbC9zdGFydHVwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArCiBzcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAgfCAgNTEgKy0KIHNy Yy9jb21tb24vTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvY29tbW9uL2NvbGVuYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMDQgKysr CiBzcmMvY29tbW9uL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL2luY2x1ZGUvYWNjZXNzL3ByaW50dHVwLmggICAgICAgICAgICAgICAgIHwgICAy ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5kZW5jeS5oICAgICAgICAgICAgICB8ICAg MyArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgfCAg IDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdCAgICAgICAgICAgICAgIHwg ICA1ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdCAgICAgICAgICAgICB8 ICAgNSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oICAgICAgICAgICAg fCAgIDkgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCAgICAgICAgICAg IHwgIDQwICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oICAgICAg ICB8ICA0NiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oICAgICAg ICAgfCAgNDUgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmRhdCAgICAgICAg ICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0ICAgICAg ICAgICB8ICAxMCArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5LmRhdCAgICAg ICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAg ICAgICAgIHwgIDM5ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuZGF0ICAgICAg ICAgICAgICAgfCAgMTIgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmggICAgICAg ICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMuaCAg ICAgICAgICAgICB8ICAyNiArCiBzcmMvaW5jbHVkZS9jb21tb24vY29sZW5jLmggICAgICAg ICAgICAgICAgICAgfCAgNTEgKysKIHNyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmggICAg ICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgg ICAgICAgICAgICAgICAgfCAgMjkgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaCAg ICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0Lmgg ICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25v ZGUuaCAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9w YXJhbS5oICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWds aXN0LmggICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9pbmNsdWRlL3Rjb3AvdGNvcHBy b3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS91dGlscy9sc3lz Y2FjaGUuaCAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvdXRpbHMvcGxh bmNhY2hlLmggICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9pbmNsdWRlL3V0aWxzL3N5 c2NhY2hlLmggICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW50ZXJmYWNlcy9saWJw cS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2ludGVyZmFjZXMvbGli cHEvZXhwb3J0cy50eHQgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLWNvbm5lY3QuYyAgICAgICAgICAgICB8ICAyNSArCiBzcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wuYyAgICAgfCA4MzYgKysrKysrKysrKysrKysrKysr CiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LmggICAgICAgICAgICAgfCAgMzMg Kwogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jICAgICAgICAgICAgICAgIHwgNjU1 ICsrKysrKysrKysrKystCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYyAg ICAgICAgICAgfCAxMzkgKystCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jICAg ICAgICAgICAgICAgfCAgNTUgKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgg ICAgICAgICAgICAgICB8ICAyMCArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQu aCAgICAgICAgICAgICAgfCAgMzYgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVp bGQgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL25scy5tayAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC8u Z2l0aWdub3JlICAgICAgICAgIHwgICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3Qv TWFrZWZpbGUgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0 L21lc29uLmJ1aWxkICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvTWFrZWZpbGUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9jb2x1bW5fZW5jcnlw dGlvbi8uZ2l0aWdub3JlICAgICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvY29sdW1uX2VuY3J5 cHRpb24vTWFrZWZpbGUgICAgICAgICAgIHwgIDMxICsKIHNyYy90ZXN0L2NvbHVtbl9lbmNy eXB0aW9uL21lc29uLmJ1aWxkICAgICAgICB8ICAyMyArCiAuLi4vdC8wMDFfY29sdW1uX2Vu Y3J5cHRpb24ucGwgICAgICAgICAgICAgICAgfCAyMzggKysrKysKIC4uLi9jb2x1bW5fZW5j cnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwgICB8IDExMiArKysKIHNyYy90ZXN0L2Nv bHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMgICAgICB8IDE2MSArKysrCiAuLi4vY29s dW1uX2VuY3J5cHRpb24vdGVzdF9ydW5fZGVjcnlwdC5wbCAgICAgfCAgNTggKysKIHNyYy90 ZXN0L21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiAuLi4v cmVncmVzcy9leHBlY3RlZC9jb2x1bW5fZW5jcnlwdGlvbi5vdXQgICAgfCAxNjQgKysrKwog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQgIHwgIDQ1ICst CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCAgICAgICAgfCAgIDYg Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCAgICAgIHwgIDEy ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByZXBhcmUub3V0ICAgICAgICAgfCAg MzggKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICB8 ICAgNCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90eXBlX3Nhbml0eS5vdXQgICAg IHwgICA2ICstCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAg ICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzc19tYWluLmMgICAgICAg ICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24u c3FsICAgIHwgMTQ0ICsrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Mu c3FsICAgICAgIHwgIDE3ICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVwYXJlLnNxbCAg ICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2FuaXR5 LnNxbCAgICAgICAgICB8ICAgMiArCiAxMzkgZmlsZXMgY2hhbmdlZCwgODE4MiBpbnNlcnRp b25zKCspLCAxMzIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbAogY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9lbmNy eXB0aW9uX2tleS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfY29sdW1uX21hc3Rlcl9rZXkuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9z cmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fbWFzdGVyX2tleS5zZ21s CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2NvbW1vbi9jb2xlbmMuYwogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmgKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNjbWRzLmgKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jb21tb24vY29sZW5jLmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wuYwog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRpZ25v cmUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9NYWtl ZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL21l c29uLmJ1aWxkCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRp b24vdC8wMDFfY29sdW1uX2VuY3J5cHRpb24ucGwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMv dGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X2NsaWVudC5jCiBj cmVhdGUgbW9kZSAxMDA3NTUgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9ydW5f ZGVjcnlwdC5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3FsCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2Fjcm9ueW1zLnNnbWwgYi9kb2Mvc3JjL3NnbWwvYWNyb255bXMuc2dtbAppbmRl eCAyZGY2NTU5YWNjLi5iZDFhMDE4NWVkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvYWNy b255bXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYWNyb255bXMuc2dtbApAQCAtNTYsNiAr NTYsMTUgQEAgPHRpdGxlPkFjcm9ueW1zPC90aXRsZT4KICAgICA8L2xpc3RpdGVtPgogICAg PC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGFjcm9u eW0+Q0VLPC9hY3JvbnltPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgQ29sdW1uIEVuY3J5cHRpb24gS2V5CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRl cm0+PGFjcm9ueW0+Q0lEUjwvYWNyb255bT48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAt NjcsNiArNzYsMTUgQEAgPHRpdGxlPkFjcm9ueW1zPC90aXRsZT4KICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+ PGFjcm9ueW0+Q01LPC9hY3JvbnltPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgQ29sdW1uIE1hc3RlciBLZXkKKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8 dGVybT48YWNyb255bT5DUEFOPC9hY3JvbnltPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCmluZGV4IDkzMTZiODExYWMuLmIyYjI5NDcwMmMgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCkBAIC0xMDUsNiArMTA1LDIxIEBAIDx0aXRsZT5TeXN0ZW0gQ2F0YWxvZ3M8L3Rp dGxlPgogICAgICAgPGVudHJ5PmNvbGxhdGlvbnMgKGxvY2FsZSBpbmZvcm1hdGlvbik8L2Vu dHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxp bmtlbmQ9ImNhdGFsb2ctcGctY29sZW5ja2V5Ij48c3RydWN0bmFtZT5wZ19jb2xlbmNrZXk8 L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+Y29sdW1uIGVuY3J5 cHRpb24ga2V5czwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXlkYXRhIj48c3RydWN0 bmFtZT5wZ19jb2xlbmNrZXlkYXRhPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAg ICAgPGVudHJ5PmNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhPC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLWNvbG1hc3RlcmtleSI+PHN0cnVjdG5hbWU+cGdfY29sbWFzdGVya2V5PC9zdHJ1Y3Ru YW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5PmNvbHVtbiBtYXN0ZXIga2V5czwv ZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnk+PGxpbmsg bGlua2VuZD0iY2F0YWxvZy1wZy1jb25zdHJhaW50Ij48c3RydWN0bmFtZT5wZ19jb25zdHJh aW50PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgogICAgICAgPGVudHJ5PmNoZWNrIGNv bnN0cmFpbnRzLCB1bmlxdWUgY29uc3RyYWludHMsIHByaW1hcnkga2V5IGNvbnN0cmFpbnRz LCBmb3JlaWduIGtleSBjb25zdHJhaW50czwvZW50cnk+CkBAIC0xMzYwLDYgKzEzNzUsNDAg QEAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT4gQ29sdW1u czwvdGl0bGU+CiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmF0dGNlazwv c3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGlu ayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGVuY2tleSI+PHN0cnVjdG5hbWU+cGdfY29sZW5j a2V5PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+ KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgdGhlIGNvbHVtbiBp cyBlbmNyeXB0ZWQsIGEgcmVmZXJlbmNlIHRvIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXks IGVsc2UgMC4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+YXR0cmVhbHR5 cGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2Vz IDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdHlwZSI+PHN0cnVjdG5hbWU+cGdfdHlwZTwv c3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElmIHRoZSBjb2x1bW4gaXMgZW5j cnlwdGVkLCB0aGVuIHRoaXMgY29sdW1uIGluZGljYXRlcyB0aGUgdHlwZSBvZiB0aGUKKyAg ICAgICBlbmNyeXB0ZWQgZGF0YSB0aGF0IGlzIHJlcG9ydGVkIHRvIHRoZSBjbGllbnQuICBG b3IgZW5jcnlwdGVkIGNvbHVtbnMsCisgICAgICAgdGhlIGZpZWxkIDxzdHJ1Y3RmaWVsZD5h dHR0eXBpZDwvc3RydWN0ZmllbGQ+IGlzIGVpdGhlcgorICAgICAgIDx0eXBlPnBnX2VuY3J5 cHRlZF9kZXQ8L3R5cGU+IG9yIDx0eXBlPnBnX2VuY3J5cHRlZF9ybmQ8L3R5cGU+LiAgSWYg dGhlCisgICAgICAgY29sdW1uIGlzIG5vdCBlbmNyeXB0ZWQsIHRoZW4gMC4KKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+YXR0ZW5jYWxnPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElm IHRoZSBjb2x1bW4gaXMgZW5jcnlwdGVkLCB0aGUgaWRlbnRpZmllciBvZiB0aGUgZW5jcnlw dGlvbiBhbGdvcml0aG07CisgICAgICAgc2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNl ayIvPiBmb3IgcG9zc2libGUgdmFsdWVzLgorICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAgICAgICA8c3Ry dWN0ZmllbGQ+YXR0aW5oY291bnQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ0PC90eXBlPgpA QCAtMjQ2Nyw2ICsyNTE2LDIzMiBAQCA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sbGF0aW9u PC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KICAgPC9wYXJhPgogIDwvc2VjdDE+CiAK KyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctY29sZW5ja2V5Ij4KKyAgPHRpdGxlPjxzdHJ1Y3Ru YW1lPnBnX2NvbGVuY2tleTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0g em9uZT0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPgorICAgPHByaW1hcnk+cGdfY29sZW5ja2V5 PC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9n IDxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3RydWN0bmFtZT4gY29udGFpbnMgaW5mb3Jt YXRpb24KKyAgIGFib3V0IHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIGluIHRoZSBkYXRh YmFzZS4gIFRoZSBhY3R1YWwga2V5IG1hdGVyaWFsCisgICBvZiB0aGUgY29sdW1uIGVuY3J5 cHRpb24ga2V5cyBpcyBpbiB0aGUgY2F0YWxvZyA8bGluaworICAgbGlua2VuZD0iY2F0YWxv Zy1wZy1jb2xlbmNrZXlkYXRhIj48c3RydWN0bmFtZT5wZ19jb2xlbmNrZXlkYXRhPC9zdHJ1 Y3RuYW1lPjwvbGluaz4uCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0 cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAg IDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUm93 IGlkZW50aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2VrbmFt ZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBDb2x1bW4gZW5jcnlwdGlvbiBrZXkgbmFtZQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jZWtvd25lcjwvc3RydWN0ZmllbGQ+IDx0eXBl Pm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGluaz4u PHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgT3duZXIgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleQorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rn cm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBn LWNvbGVuY2tleWRhdGEiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5ZGF0 YTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1w Zy1jb2xlbmNrZXlkYXRhIj4KKyAgIDxwcmltYXJ5PnBnX2NvbGVuY2tleWRhdGE8L3ByaW1h cnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVj dG5hbWU+cGdfY29sZW5ja2V5ZGF0YTwvc3RydWN0bmFtZT4gY29udGFpbnMgdGhlIGtleQor ICAgbWF0ZXJpYWwgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5cy4gIEVhY2ggY29sdW1uIGVu Y3J5cHRpb24ga2V5IG9iamVjdCBjYW4KKyAgIGNvbnRhaW4gc2V2ZXJhbCB2ZXJzaW9ucyBv ZiB0aGUga2V5IG1hdGVyaWFsLCBlYWNoIGVuY3J5cHRlZCB3aXRoIGEKKyAgIGRpZmZlcmVu dCBjb2x1bW4gbWFzdGVyIGtleS4gIFRoYXQgYWxsb3dzIHRoZSBncmFkdWFsIHJvdGF0aW9u IG9mIHRoZQorICAgY29sdW1uIG1hc3RlciBrZXlzLiAgVGh1cywgPGxpdGVyYWw+KGNrZGNl a2lkLCBja2RjbWtpZCk8L2xpdGVyYWw+IGlzIGEKKyAgIHVuaXF1ZSBrZXkgb2YgdGhpcyB0 YWJsZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIGtleSBtYXRlcmlhbCBvZiBj b2x1bW4gZW5jcnlwdGlvbiBrZXlzIHNob3VsZCBuZXZlciBiZSBkZWNyeXB0ZWQgaW5zaWRl CisgICB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuICBJdCBpcyBtZWFudCB0byBiZSBzZW50IGFz LWlzIHRvIHRoZSBjbGllbnQsIHdoZXJlCisgICBpdCBpcyBkZWNyeXB0ZWQgdXNpbmcgdGhl IGFzc29jaWF0ZWQgY29sdW1uIG1hc3RlciBrZXksIGFuZCB0aGVuIHVzZWQgdG8KKyAgIGVu Y3J5cHQgb3IgZGVjcnlwdCBjb2x1bW4gdmFsdWVzLgorICA8L3BhcmE+CisKKyAgPHRhYmxl PgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0cnVjdG5hbWU+ IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+Cisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+ CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5v aWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5ja2RjZWtpZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4K KyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGVuY2tl eSI+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVj dGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgVGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSB0aGlzIGVudHJ5IGJlbG9uZ3Mg dG8KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tkY21raWQ8L3N0cnVj dGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlu a2VuZD0iY2F0YWxvZy1wZy1jb2xtYXN0ZXJrZXkiPjxzdHJ1Y3RuYW1lPnBnX2NvbG1hc3Rl cmtleTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxk PikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBjb2x1bW4gbWFz dGVyIGtleSB0aGF0IHRoZSBrZXkgbWF0ZXJpYWwgaXMgZW5jcnlwdGVkIHdpdGgKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tkY21rYWxnPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IFRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSB1c2VkIGZvciBlbmNyeXB0aW5nIHRoZSBrZXkg bWF0ZXJpYWw7IHNlZQorICAgICAgIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNtayIvPiBm b3IgcG9zc2libGUgdmFsdWVzLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5ja2RlbmN2YWw8L3N0cnVjdGZpZWxkPiA8dHlwZT5ieXRlYTwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBrZXkgbWF0ZXJpYWwgb2YgdGhpcyBj b2x1bW4gZW5jcnlwdGlvbiBrZXksIGVuY3J5cHRlZCB1c2luZyB0aGUKKyAgICAgICByZWZl cmVuY2VkIGNvbHVtbiBtYXN0ZXIga2V5CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2Vj dDE+CisKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctY29sbWFzdGVya2V5Ij4KKyAgPHRpdGxl PjxzdHJ1Y3RuYW1lPnBnX2NvbG1hc3RlcmtleTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisg IDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy1jb2xtYXN0ZXJrZXkiPgorICAgPHByaW1h cnk+cGdfY29sbWFzdGVya2V5PC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFy YT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX2NvbG1hc3RlcmtleTwvc3RydWN0 bmFtZT4gY29udGFpbnMgaW5mb3JtYXRpb24KKyAgIGFib3V0IGNvbHVtbiBtYXN0ZXIga2V5 cy4gIFRoZSBrZXlzIHRoZW1zZWx2ZXMgYXJlIG5vdCBzdG9yZWQgaW4gdGhlCisgICBkYXRh YmFzZS4gIFRoZSBjYXRhbG9nIGVudHJ5IG9ubHkgY29udGFpbnMgaW5mb3JtYXRpb24gdGhh dCBpcyB1c2VkIGJ5CisgICBjbGllbnRzIHRvIGxvY2F0ZSB0aGUga2V5cywgZm9yIGV4YW1w bGUgaW4gYSBmaWxlIG9yIGluIGEga2V5IG1hbmFnZW1lbnQKKyAgIHN5c3RlbS4KKyAgPC9w YXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xtYXN0ZXJr ZXk8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4K KyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENv bHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlw dGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+ CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jbWtuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIENv bHVtbiBtYXN0ZXIga2V5IG5hbWUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+Y21rb3duZXI8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJl ZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdXRoaWQiPjxzdHJ1Y3RuYW1l PnBnX2F1dGhpZDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVj dGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE93bmVyIG9m IHRoZSBjb2x1bW4gbWFzdGVyIGtleQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5jbWtyZWFsbTwvc3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBIDxxdW90ZT5yZWFsbTwvcXVvdGU+IGFz c29jaWF0ZWQgd2l0aCB0aGlzIGNvbHVtbiBtYXN0ZXIga2V5LiAgVGhpcyBpcworICAgICAg IGEgZnJlZWx5IGNob3NlbiBzdHJpbmcgdGhhdCBpcyB1c2VkIGJ5IGNsaWVudHMgdG8gZGV0 ZXJtaW5lIGhvdyB0byBsb29rCisgICAgICAgdXAgdGhlIGtleS4gIEEgdHlwaWNhbCBjb25m aWd1cmF0aW9uIHdvdWxkIHB1dCBhbGwgQ01LcyB0aGF0IGFyZSBsb29rZWQKKyAgICAgICB1 cCBpbiB0aGUgc2FtZSB3YXkgaW50byB0aGUgc2FtZSByZWFsbS4KKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwv dGFibGU+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1jb25zdHJhaW50 Ij4KICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbnN0cmFpbnQ8L3N0cnVjdG5hbWU+PC90 aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dtbCBiL2RvYy9z cmMvc2dtbC9jaGFyc2V0LnNnbWwKaW5kZXggNDQ1ZmQxNzVkOC4uY2UxM2FmMjIxYSAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv Y2hhcnNldC5zZ21sCkBAIC0xNzIxLDYgKzE3MjEsMTUgQEAgPHRpdGxlPkF1dG9tYXRpYyBD aGFyYWN0ZXIgU2V0IENvbnZlcnNpb24gQmV0d2VlbiBTZXJ2ZXIgYW5kIENsaWVudDwvdGl0 bGU+CiAgICAgIEp1c3QgYXMgZm9yIHRoZSBzZXJ2ZXIsIHVzZSBvZiA8bGl0ZXJhbD5TUUxf QVNDSUk8L2xpdGVyYWw+IGlzIHVud2lzZQogICAgICB1bmxlc3MgeW91IGFyZSB3b3JraW5n IHdpdGggYWxsLUFTQ0lJIGRhdGEuCiAgICAgPC9wYXJhPgorCisgICAgPHBhcmE+CisgICAg IFdoZW4gdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gaXMgdXNlZCwgdGhlbiBubyBl bmNvZGluZyBjb252ZXJzaW9uCisgICAgIGlzIHBvc3NpYmxlLiAgKFRoZSBlbmNvZGluZyBj b252ZXJzaW9uIGhhcHBlbnMgb24gdGhlIHNlcnZlciwgYW5kIHRoZQorICAgICBzZXJ2ZXIg Y2Fubm90IGxvb2sgaW5zaWRlIGFueSBlbmNyeXB0ZWQgY29sdW1uIHZhbHVlcy4pICBJZiBj b2x1bW4KKyAgICAgZW5jcnlwdGlvbiBpcyBlbmFibGVkIGZvciBhIHNlc3Npb24sIHRoZW4g dGhlIHNlcnZlciBlbmZvcmNlcyB0aGF0IHRoZQorICAgICBjbGllbnQgZW5jb2RpbmcgbWF0 Y2hlcyB0aGUgc2VydmVyIGVuY29kaW5nLCBhbmQgYW55IGF0dGVtcHRzIHRvIGNoYW5nZQor ICAgICB0aGUgY2xpZW50IGVuY29kaW5nIHdpbGwgYmUgcmVqZWN0ZWQgYnkgdGhlIHNlcnZl ci4KKyAgICA8L3BhcmE+CiAgICA8L3NlY3QyPgogCiAgICA8c2VjdDIgaWQ9Im11bHRpYnl0 ZS1jb252ZXJzaW9ucy1zdXBwb3J0ZWQiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Rh dGF0eXBlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dtbAppbmRleCBmZGZmYmE0 NDQyLi45ODUzOTBmMTRjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dtbApAQCAtNTM2MCw0ICs1MzYwLDU3 IEBAIDx0aXRsZT5Qc2V1ZG8tVHlwZXM8L3RpdGxlPgogCiAgIDwvc2VjdDE+CiAKKyAgPHNl Y3QxIGlkPSJkYXRhdHlwZS1lbmNyeXB0ZWQiPgorICAgPHRpdGxlPlR5cGVzIFJlbGF0ZWQg dG8gRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIEFuIGVuY3J5cHRlZCBj b2x1bW4gdmFsdWUgKHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtY29sdW1uLWVuY3J5cHRpb24i Lz4pIGlzCisgICAgaW50ZXJuYWxseSBzdG9yZWQgdXNpbmcgdGhlIHR5cGVzCisgICAgPHR5 cGU+cGdfZW5jcnlwdGVkX3JuZDwvdHlwZT4gKGZvciByYW5kb21pemVkIGVuY3J5cHRpb24p IG9yCisgICAgPHR5cGU+cGdfZW5jcnlwdGVkX2RldDwvdHlwZT4gKGZvciBkZXRlcm1pbmlz dGljIGVuY3J5cHRpb24pOyBzZWUgPHhyZWYKKyAgICBsaW5rZW5kPSJkYXRhdHlwZS1lbmNy eXB0ZWQtdGFibGUiLz4uICBNb3N0IG9mIHRoZSBkYXRhYmFzZSBzeXN0ZW0gdHJlYXRzCisg ICAgdGhpcyBhcyBub3JtYWwgdHlwZXMuICBGb3IgZXhhbXBsZSwgdGhlIHR5cGUgPHR5cGU+ cGdfZW5jcnlwdGVkX2RldDwvdHlwZT4gaGFzCisgICAgYW4gZXF1YWxzIG9wZXJhdG9yIHRo YXQgYWxsb3dzIGxvb2t1cCBvZiBlbmNyeXB0ZWQgdmFsdWVzLgorICAgPC9wYXJhPgorCisg ICA8cGFyYT4KKyAgICBUaGUgZXh0ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlc2UgdHlw ZXMgaXMgdGhlIHN0cmluZworICAgIDxsaXRlcmFsPmVuY3J5cHRlZCQ8L2xpdGVyYWw+IGZv bGxvd2VkIGJ5IGhleGFkZWNpbWFsIGJ5dGUgdmFsdWVzLCBmb3IKKyAgICBleGFtcGxlCisg ICAgPGxpdGVyYWw+ZW5jcnlwdGVkJDNhYWNkMDYzZDJkM2ExYTA0MTE5ZGY3Njg3NGUwYjk3 ODVlYTQ2NjE3N2YxOGZlOWMwYTFhMzEzZWFmMDljOTg8L2xpdGVyYWw+LgorICAgIENsaWVu dHMgdGhhdCBkb24ndCBzdXBwb3J0IHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIG9y IGhhdmUgZGlzYWJsZWQKKyAgICBpdCB3aWxsIHNlZSB0aGUgZW5jcnlwdGVkIHZhbHVlcyBp biB0aGlzIGZvcm1hdC4gIENsaWVudHMgdGhhdCBzdXBwb3J0CisgICAgdHJhbnNwYXJlbnQg ZGF0YSBlbmNyeXB0aW9uIHdpbGwgbm90IHNlZSB0aGVzZSB0eXBlcyBpbiByZXN1bHQgc2V0 cywgYXMKKyAgICB0aGUgcHJvdG9jb2wgbGF5ZXIgd2lsbCB0cmFuc2xhdGUgdGhlbSBiYWNr IHRvIGRlY2xhcmVkIHVuZGVybHlpbmcgdHlwZSBpbgorICAgIHRoZSB0YWJsZSBkZWZpbml0 aW9uLgorICAgPC9wYXJhPgorCisgICAgPHRhYmxlIGlkPSJkYXRhdHlwZS1lbmNyeXB0ZWQt dGFibGUiPgorICAgICA8dGl0bGU+VHlwZXMgUmVsYXRlZCB0byBFbmNyeXB0aW9uPC90aXRs ZT4KKyAgICAgPHRncm91cCBjb2xzPSIzIj4KKyAgICAgIDxjb2xzcGVjIGNvbG5hbWU9ImNv bDEiIGNvbHdpZHRoPSIxKiIvPgorICAgICAgPGNvbHNwZWMgY29sbmFtZT0iY29sMiIgY29s d2lkdGg9IjMqIi8+CisgICAgICA8Y29sc3BlYyBjb2xuYW1lPSJjb2wzIiBjb2x3aWR0aD0i MioiLz4KKyAgICAgIDx0aGVhZD4KKyAgICAgICA8cm93PgorICAgICAgICA8ZW50cnk+TmFt ZTwvZW50cnk+CisgICAgICAgIDxlbnRyeT5TdG9yYWdlIFNpemU8L2VudHJ5PgorICAgICAg ICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAgICAgIDwvcm93PgorICAgICAgPC90 aGVhZD4KKyAgICAgIDx0Ym9keT4KKyAgICAgICA8cm93PgorICAgICAgICA8ZW50cnk+PHR5 cGU+cGdfZW5jcnlwdGVkX2RldDwvdHlwZT48L2VudHJ5PgorICAgICAgICA8ZW50cnk+MSBv ciA0IGJ5dGVzIHBsdXMgdGhlIGFjdHVhbCBiaW5hcnkgc3RyaW5nPC9lbnRyeT4KKyAgICAg ICAgPGVudHJ5PmVuY3J5cHRlZCBjb2x1bW4gdmFsdWUsIGRldGVybWluaXN0aWMgZW5jcnlw dGlvbjwvZW50cnk+CisgICAgICAgPC9yb3c+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVu dHJ5Pjx0eXBlPnBnX2VuY3J5cHRlZF9ybmQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICAgPGVu dHJ5PjEgb3IgNCBieXRlcyBwbHVzIHRoZSBhY3R1YWwgYmluYXJ5IHN0cmluZzwvZW50cnk+ CisgICAgICAgIDxlbnRyeT5lbmNyeXB0ZWQgY29sdW1uIHZhbHVlLCByYW5kb21pemVkIGVu Y3J5cHRpb248L2VudHJ5PgorICAgICAgIDwvcm93PgorICAgICAgPC90Ym9keT4KKyAgICAg PC90Z3JvdXA+CisgICAgPC90YWJsZT4KKyAgPC9zZWN0MT4KICA8L2NoYXB0ZXI+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwK aW5kZXggNmU5MmJiZGRkMi4uZWIzNWU5YzA5YyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtMTIxMSw2ICsxMjEx LDM3OCBAQCA8dGl0bGU+RXhjbHVzaW9uIENvbnN0cmFpbnRzPC90aXRsZT4KICAgPC9zZWN0 Mj4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJkZGwtY29sdW1uLWVuY3J5cHRpb24iPgor ICA8dGl0bGU+VHJhbnNwYXJlbnQgQ29sdW1uIEVuY3J5cHRpb248L3RpdGxlPgorCisgIDxw YXJhPgorICAgV2l0aCA8Zmlyc3R0ZXJtPnRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9u PC9maXJzdHRlcm0+LCBjb2x1bW5zIGNhbiBiZQorICAgc3RvcmVkIGVuY3J5cHRlZCBpbiB0 aGUgZGF0YWJhc2UuICBUaGUgZW5jcnlwdGlvbiBhbmQgZGVjcnlwdGlvbiBoYXBwZW5zIG9u CisgICB0aGUgY2xpZW50LCBzbyB0aGF0IHRoZSBwbGFpbnRleHQgdmFsdWUgaXMgbmV2ZXIg c2VlbiBpbiB0aGUgZGF0YWJhc2UKKyAgIGluc3RhbmNlIG9yIG9uIHRoZSBzZXJ2ZXIgaG9z dGluZyB0aGUgZGF0YWJhc2UuICBUaGUgZHJhd2JhY2sgaXMgdGhhdCBtb3N0CisgICBvcGVy YXRpb25zLCBzdWNoIGFzIGZ1bmN0aW9uIGNhbGxzIG9yIHNvcnRpbmcsIGFyZSBub3QgcG9z c2libGUgb24KKyAgIGVuY3J5cHRlZCB2YWx1ZXMuCisgIDwvcGFyYT4KKworICA8c2VjdDI+ CisgICA8dGl0bGU+VXNpbmcgVHJhbnNwYXJlbnQgQ29sdW1uIEVuY3J5cHRpb248L3RpdGxl PgorCisgIDxwYXJhPgorICAgVHJhbnBhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiB1c2VzIHR3 byBsZXZlbHMgb2YgY3J5cHRvZ3JhcGhpYyBrZXlzLiAgVGhlCisgICBhY3R1YWwgY29sdW1u IHZhbHVlIGlzIGVuY3J5cHRlZCB1c2luZyBhIHN5bW1ldHJpYyBhbGdvcml0aG0sIHN1Y2gg YXMgQUVTLAorICAgdXNpbmcgYSA8Zmlyc3R0ZXJtPmNvbHVtbiBlbmNyeXB0aW9uIGtleTwv Zmlyc3R0ZXJtPgorICAgKDxhY3JvbnltPkNFSzwvYWNyb255bT4pLiAgVGhlIGNvbHVtbiBl bmNyeXB0aW9uIGtleSBpcyBpbiB0dXJuIGVuY3J5cHRlZAorICAgdXNpbmcgYW4gYXN5bW1l dHJpYyBhbGdvcml0aG0sIHN1Y2ggYXMgUlNBLCB1c2luZyBhIDxmaXJzdHRlcm0+Y29sdW1u CisgICBtYXN0ZXIga2V5PC9maXJzdHRlcm0+ICg8YWNyb255bT5DTUs8L2Fjcm9ueW0+KS4g IFRoZSBlbmNyeXB0ZWQgQ0VLIGlzCisgICBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlIHN5c3Rl bS4gIFRoZSBDTUsgaXMgbm90IHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UKKyAgIHN5c3RlbTsg aXQgaXMgc3RvcmVkIG9uIHRoZSBjbGllbnQgb3Igc29tZXdoZXJlIHdoZXJlIHRoZSBjbGll bnQgY2FuIGFjY2VzcworICAgaXQsIHN1Y2ggYXMgaW4gYSBsb2NhbCBmaWxlIG9yIGluIGEg a2V5IG1hbmFnZW1lbnQgc3lzdGVtLiAgVGhlIGRhdGFiYXNlCisgICBzeXN0ZW0gb25seSBy ZWNvcmRzIHdoZXJlIHRoZSBDTUsgaXMgc3RvcmVkIGFuZCBwcm92aWRlcyB0aGlzIGluZm9y bWF0aW9uCisgICB0byB0aGUgY2xpZW50LiAgV2hlbiByb3dzIGNvbnRhaW5pbmcgZW5jcnlw dGVkIGNvbHVtbnMgYXJlIHNlbnQgdG8gdGhlCisgICBjbGllbnQsIHRoZSBzZXJ2ZXIgZmly c3Qgc2VuZHMgYW55IG5lY2Vzc2FyeSBDTUsgaW5mb3JtYXRpb24sIGZvbGxvd2VkIGJ5Cisg ICBhbnkgcmVxdWlyZWQgQ0VLLiAgVGhlIGNsaWVudCB0aGVuIGxvb2tzIHVwIHRoZSBDTUsg YW5kIHVzZXMgdGhhdCB0bworICAgZGVjcnlwdCB0aGUgQ0VLLiAgVGhlbiBpdCBkZWNyeXB0 cyBpbmNvbWluZyByb3cgZGF0YSB1c2luZyB0aGUgQ0VLIGFuZAorICAgcHJvdmlkZXMgdGhl IGRlY3J5cHRlZCByb3cgZGF0YSB0byB0aGUgYXBwbGljYXRpb24uCisgIDwvcGFyYT4KKwor ICA8cGFyYT4KKyAgIEhlcmUgaXMgYW4gZXhhbXBsZSBkZWNsYXJpbmcgYSBjb2x1bW4gYXMg ZW5jcnlwdGVkOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFRBQkxFIGN1c3RvbWVycyAo CisgICAgaWQgaW50IFBSSU1BUlkgS0VZLAorICAgIG5hbWUgdGV4dCBOT1QgTlVMTCwKKyAg ICAuLi4KKyAgICBjcmVkaXRjYXJkX251bSB0ZXh0IDxlbXBoYXNpcz5FTkNSWVBURUQgV0lU SCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSk8L2VtcGhhc2lzPgorKTsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIENvbHVtbiBlbmNyeXB0 aW9uIHN1cHBvcnRzIDxmaXJzdHRlcm0+cmFuZG9taXplZDwvZmlyc3R0ZXJtPgorICAgKGFs c28ga25vd24gYXMgPGZpcnN0dGVybT5wcm9iYWJpbGlzdGljPC9maXJzdHRlcm0+KSBhbmQK KyAgIDxmaXJzdHRlcm0+ZGV0ZXJtaW5pc3RpYzwvZmlyc3R0ZXJtPiBlbmNyeXB0aW9uLiAg VGhlIGFib3ZlIGV4YW1wbGUgdXNlcworICAgcmFuZG9taXplZCBlbmNyeXB0aW9uLCB3aGlj aCBpcyB0aGUgZGVmYXVsdC4gIFJhbmRvbWl6ZWQgZW5jcnlwdGlvbiB1c2VzIGEKKyAgIHJh bmRvbSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgZm9yIGVhY2ggZW5jcnlwdGlvbiwgc28gdGhh dCBldmVuIGlmIHRoZQorICAgcGxhaW50ZXh0IG9mIHR3byByb3dzIGlzIGVxdWFsLCB0aGUg ZW5jcnlwdGVkIHZhbHVlcyB3aWxsIGJlIGRpZmZlcmVudC4KKyAgIFRoaXMgcHJldmVudHMg c29tZW9uZSB3aXRoIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIGRhdGFiYXNlIHNlcnZlciB0byBt YWtlCisgICBjb21wdXRhdGlvbnMgc3VjaCBhcyBkaXN0aW5jdCBjb3VudHMgb24gdGhlIGVu Y3J5cHRlZCB2YWx1ZXMuCisgICBEZXRlcm1pbmlzdGljIGVuY3J5cHRpb24gdXNlcyBhIGZp eGVkIGluaXRpYWxpemF0aW9uIHZlY3Rvci4gIFRoaXMgcmVkdWNlcworICAgc2VjdXJpdHks IGJ1dCBpdCBhbGxvd3MgZXF1YWxpdHkgc2VhcmNoZXMgb24gZW5jcnlwdGVkIHZhbHVlcy4g IFRoZQorICAgZm9sbG93aW5nIGV4YW1wbGUgZGVjbGFyZXMgYSBjb2x1bW4gd2l0aCBkZXRl cm1pbmlzdGljIGVuY3J5cHRpb246Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUg ZW1wbG95ZWVzICgKKyAgICBpZCBpbnQgUFJJTUFSWSBLRVksCisgICAgbmFtZSB0ZXh0IE5P VCBOVUxMLAorICAgIC4uLgorICAgIHNzbiB0ZXh0IEVOQ1JZUFRFRCBXSVRIICgKKyAgICAg ICAgY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgPGVtcGhhc2lzPmVuY3J5cHRpb25f dHlwZSA9IGRldGVybWluaXN0aWM8L2VtcGhhc2lzPikKKyk7Cis8L3Byb2dyYW1saXN0aW5n PgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBOdWxsIHZhbHVlcyBhcmUgbm90IGVuY3J5 cHRlZCBieSB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbjsgbnVsbCB2YWx1ZXMKKyAg IHNlbnQgYnkgdGhlIGNsaWVudCBhcmUgdmlzaWJsZSBhcyBudWxsIHZhbHVlcyBpbiB0aGUg ZGF0YWJhc2UuICBJZiB0aGUgZmFjdAorICAgdGhhdCBhIHZhbHVlIGlzIG51bGwgbmVlZHMg dG8gYmUgaGlkZGVuIGZyb20gdGhlIHNlcnZlciwgdGhpcyBpbmZvcm1hdGlvbgorICAgbmVl ZHMgdG8gYmUgZW5jb2RlZCBpbnRvIGEgbm9ubnVsbCB2YWx1ZSBpbiB0aGUgY2xpZW50IHNv bWVob3cuCisgIDwvcGFyYT4KKyAgPC9zZWN0Mj4KKworICA8c2VjdDI+CisgICA8dGl0bGU+ UmVhZGluZyBhbmQgV3JpdGluZyBFbmNyeXB0ZWQgQ29sdW1uczwvdGl0bGU+CisKKyAgIDxw YXJhPgorICAgIFJlYWRpbmcgYW5kIHdyaXRpbmcgZW5jcnlwdGVkIGNvbHVtbnMgaXMgbWVh bnQgdG8gYmUgaGFuZGxlZCBhdXRvbWF0aWNhbGx5CisgICAgYnkgdGhlIGNsaWVudCBsaWJy YXJ5L2RyaXZlciBhbmQgc2hvdWxkIGJlIG1vc3RseSB0cmFuc3BhcmVudCB0byB0aGUKKyAg ICBhcHBsaWNhdGlvbiBjb2RlLCBpZiBjZXJ0YWluIHByZXJlcXVpc2l0ZXMgYXJlIGZ1bGZp bGxlZDoKKworICAgIDxpdGVtaXplZGxpc3Q+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxw YXJhPgorICAgICAgIFRoZSBjbGllbnQgbGlicmFyeSBuZWVkcyB0byBzdXBwb3J0IHRyYW5z cGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uLiAgTm90CisgICAgICAgYWxsIGNsaWVudCBsaWJy YXJpZXMgZG8uICBGdXJ0aGVybW9yZSwgdGhlIGNsaWVudCBsaWJyYXJ5IG1pZ2h0IHJlcXVp cmUKKyAgICAgICB0aGF0IHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGlzIGV4cGxp Y2l0bHkgZW5hYmxlZCBhdCBjb25uZWN0aW9uCisgICAgICAgdGltZS4gIFNlZSB0aGUgZG9j dW1lbnRhdGlvbiBvZiB0aGUgY2xpZW50IGxpYnJhcnkgZm9yIGRldGFpbHMuCisgICAgICA8 L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBh cmE+CisgICAgICAgQ29sdW1uIG1hc3RlciBrZXlzIGFuZCBjb2x1bW4gZW5jcnlwdGlvbiBr ZXlzIGhhdmUgYmVlbiBzZXQgdXAsIGFuZCB0aGUKKyAgICAgICBjbGllbnQgbGlicmFyeSBo YXMgYmVlbiBjb25maWd1cmVkIHRvIGJlIGFibGUgdG8gbG9vayB1cCBjb2x1bW4gbWFzdGVy CisgICAgICAga2V5cyBmcm9tIHRoZSBrZXkgc3RvcmUgb3Iga2V5IG1hbmFnZW1lbnQgc3lz dGVtLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvaXRlbWl6ZWRs aXN0PgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBSZWFkaW5nIGZyb20gZW5jcnlw dGVkIGNvbHVtbnMgd2lsbCB0aGVuIHdvcmsgYXV0b21hdGljYWxseS4gIEZvciBleGFtcGxl LAorICAgIHVzaW5nIHRoZSBhYm92ZSBleGFtcGxlLAorPHByb2dyYW1saXN0aW5nPgorU0VM RUNUIHNzbiBGUk9NIGVtcGxveWVlcyBXSEVSRSBpZCA9IDU7Cis8L3Byb2dyYW1saXN0aW5n PgorICAgIHdpbGwgcmV0dXJuIHRoZSB1bmVuY3J5cHRlZCB2YWx1ZSBmb3IgdGhlIDxsaXRl cmFsPnNzbjwvbGl0ZXJhbD4gY29sdW1uIGluCisgICAgYW55IHJvd3MgZm91bmQuCisgICA8 L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFdyaXRpbmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMg cmVxdWlyZXMgdGhhdCB0aGUgZXh0ZW5kZWQgcXVlcnkgcHJvdG9jb2wKKyAgICAocHJvdG9j b2wtbGV2ZWwgcHJlcGFyZWQgc3RhdGVtZW50cykgYmUgdXNlZCwgc28gdGhhdCB0aGUgdmFs dWVzIHRvIGJlCisgICAgZW5jcnlwdGVkIGFyZSBzdXBwbGllZCBzZXBhcmF0ZWx5IGZyb20g dGhlIFNRTCBjb21tYW5kLiAgRm9yIGV4YW1wbGUsCisgICAgdXNpbmcsIHNheSwgcHNxbCBv ciBsaWJwcSwgdGhlIGZvbGxvd2luZyB3b3VsZCBub3Qgd29yazoKKzxwcm9ncmFtbGlzdGlu Zz4KKy0tIFdST05HIQorSU5TRVJUIElOVE8gc3NuIChpZCwgbmFtZSwgc3NuKSBWQUxVRVMg KDEsICdTb21lb25lJywgJzEyMzQ1Jyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgIFRoaXMg d2lsbCBsZWFrIHRoZSB1bmVuY3J5cHRlZCB2YWx1ZSA8bGl0ZXJhbD4xMjM0NTwvbGl0ZXJh bD4gdG8gdGhlCisgICAgc2VydmVyLCB0aHVzIGRlZmVhdGluZyB0aGUgcG9pbnQgb2YgY29s dW1uIGVuY3J5cHRpb24uCisgICAgTm90ZSB0aGF0IHVzaW5nIHNlcnZlci1zaWRlIHByZXBh cmVkIHN0YXRlbWVudHMgdXNpbmcgdGhlIFNRTCBjb21tYW5kcworICAgIDxjb21tYW5kPlBS RVBBUkU8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiBpcyBlcXVh bGx5CisgICAgaW5jb3JyZWN0LCBzaW5jZSB0aGF0IHdvdWxkIGFsc28gbGVhayB0aGUgcGFy YW1ldGVycyBwcm92aWRlZCB0bworICAgIDxjb21tYW5kPkVYRUNVVEU8L2NvbW1hbmQ+IHRv IHRoZSBzZXJ2ZXIuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoaXMgc2hvd3Mg YSBjb3JyZWN0IGludm9jYXRpb24gaW4gbGlicHEgKHdpdGhvdXQgZXJyb3IgY2hlY2tpbmcp OgorPHByb2dyYW1saXN0aW5nPgorUEdyZXN1bHQgICAqcmVzOworY29uc3QgY2hhciAqdmFs dWVzW10gPSB7IjEiLCAiU29tZW9uZSIsICIxMjM0NSJ9OworCityZXMgPSBQUWV4ZWNQYXJh bXMoY29ubiwgIklOU0VSVCBJTlRPIHNzbiAoaWQsIG5hbWUsIHNzbikgVkFMVUVTICgkMSwg JDIsICQzKSIsIDMsIE5VTEwsIHZhbHVlcywgTlVMTCwgTlVMTCwgMCk7CisKKy8qIHByaW50 IHJlc3VsdCBpbiByZXMgKi8KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgSGlnaGVyLWxldmVs IGNsaWVudCBsaWJyYXJpZXMgbWlnaHQgdXNlIHRoZSBwcm90b2NvbC1sZXZlbCBwcmVwYXJl ZAorICAgIHN0YXRlbWVudHMgYXV0b21hdGljYWxseSBhbmQgdGh1cyB3b24ndCByZXF1aXJl IGFueSBjb2RlIGNoYW5nZXMuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxhcHBs aWNhdGlvbj5wc3FsPC9hcHBsaWNhdGlvbj4gcHJvdmlkZXMgdGhlIGNvbW1hbmQKKyAgICA8 bGl0ZXJhbD5cYmluZDwvbGl0ZXJhbD4gdG8gcnVuIHN0YXRlbWVudHMgd2l0aCBwYXJhbWV0 ZXJzIGxpa2UgdGhpczoKKzxwcm9ncmFtbGlzdGluZz4KK0lOU0VSVCBJTlRPIHNzbiAoaWQs IG5hbWUsIHNzbikgVkFMVUVTICgkMSwgJDIsICQzKSBcYmluZCAnMScgJ1NvbWVvbmUnLCAn MTIzNDUnIFxnCis8L3Byb2dyYW1saXN0aW5nPgorICAgPC9wYXJhPgorICA8L3NlY3QyPgor CisgIDxzZWN0Mj4KKyAgIDx0aXRsZT5TZXR0aW5nIHVwIFRyYW5zcGFyZW50IENvbHVtbiBF bmNyeXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSBzdGVwcyB0byBzZXQgdXAg dHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gZm9yIGEgZGF0YWJhc2UgYXJlOgorCisg ICA8b3JkZXJlZGxpc3Q+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENy ZWF0ZSB0aGUga2V5IG1hdGVyaWFsIGZvciB0aGUgQ01LLCBmb3IgZXhhbXBsZSwgdXNpbmcg YSBjcnlwdG9ncmFwaGljCisgICAgICBsaWJyYXJ5IG9yIHRvb2xraXQsIG9yIGEga2V5IG1h bmFnZW1lbnQgc3lzdGVtLiAgU2VjdXJlIGFjY2VzcyB0byB0aGUKKyAgICAgIGtleSBhcyBh cHByb3ByaWF0ZSwgdXNpbmcgYWNjZXNzIGNvbnRyb2wsIHBhc3N3b3JkcywgZXRjLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBSZWdpc3RlciB0aGUgQ01LIGluIHRoZSBkYXRhYmFzZSB1c2luZyB0aGUg U1FMIGNvbW1hbmQgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtl eSIvPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgQ3JlYXRlIHRoZSAodW5lbmNyeXB0ZWQpIGtleSBtYXRl cmlhbCBmb3IgdGhlIENFSyBpbiBhIHRlbXBvcmFyeQorICAgICAgbG9jYXRpb24uICAoSXQg d2lsbCBiZSBlbmNyeXB0ZWQgaW4gdGhlIG5leHQgc3RlcC4gIERlcGVuZGluZyBvbiB0aGUK KyAgICAgIGF2YWlsYWJsZSB0b29scywgaXQgbWlnaHQgYmUgcG9zc2libGUgYW5kIHNlbnNp YmxlIHRvIGNvbWJpbmUgdGhlc2UgdHdvCisgICAgICBzdGVwcy4pCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IEVuY3J5cHQgdGhlIGNyZWF0ZWQgQ0VLIGtleSBtYXRlcmlhbCB1c2luZyB0aGUgQ01LIChj cmVhdGVkIGVhcmxpZXIpLgorICAgICAgKFRoZSB1bmVuY3J5cHRlZCB2ZXJzaW9uIG9mIHRo ZSBDRUsga2V5IG1hdGVyaWFsIGNhbiBub3cgYmUgZGlzcG9zZWQKKyAgICAgIG9mLikKKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgUmVnaXN0ZXIgdGhlIENFSyBpbiB0aGUgZGF0YWJhc2UgdXNpbmcgdGhl IFNRTCBjb21tYW5kIDx4cmVmCisgICAgICBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1l bmNyeXB0aW9uLWtleSIvPi4gIFRoaXMgY29tbWFuZAorICAgICAgPHF1b3RlPnVwbG9hZHM8 L3F1b3RlPiB0aGUgZW5jcnlwdGVkIENFSyBrZXkgbWF0ZXJpYWwgY3JlYXRlZCBpbiB0aGUK KyAgICAgIHByZXZpb3VzIHN0ZXAgdG8gdGhlIGRhdGFiYXNlIHNlcnZlci4gIFRoZSBsb2Nh bCBjb3B5IG9mIHRoZSBDRUsga2V5CisgICAgICBtYXRlcmlhbCBjYW4gdGhlbiBiZSByZW1v dmVkLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBDcmVhdGUgZW5jcnlwdGVkIGNvbHVtbnMgdXNpbmcgdGhl IGNyZWF0ZWQgQ0VLLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDb25maWd1cmUgdGhlIGNsaWVudCBsaWJy YXJ5L2RyaXZlciB0byBiZSBhYmxlIHRvIGxvb2sgdXAgdGhlIENNSworICAgICAgY3JlYXRl ZCBlYXJsaWVyLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvb3JkZXJl ZGxpc3Q+CisKKyAgIE9uY2UgdGhpcyBpcyBkb25lLCB2YWx1ZXMgY2FuIGJlIHdyaXR0ZW4g dG8gYW5kIHJlYWQgZnJvbSB0aGUgZW5jcnlwdGVkCisgICBjb2x1bW5zIGluIGEgdHJhbnNw YXJlbnQgd2F5LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBOb3RlIHRoYXQgdGhlc2Ug c3RlcHMgc2hvdWxkIG5vdCBiZSBydW4gb24gdGhlIGRhdGFiYXNlIHNlcnZlciwgYnV0IG9u IHNvbWUKKyAgIGNsaWVudCBtYWNoaW5lLiAgTmVpdGhlciB0aGUgQ01LIG5vciB0aGUgdW5l bmNyeXB0ZWQgQ0VLIHNob3VsZCBldmVyIGFwcGVhcgorICAgb24gdGhlIGRhdGFiYXNlIHNl cnZlciBob3N0LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgc3BlY2lmaWMgZGV0 YWlscyBvZiB0aGlzIHNldHVwIGRlcGVuZCBvbiB0aGUgZGVzaXJlZCBDTUsgc3RvcmFnZQor ICAgbWVjaGFuaXNtL2tleSBtYW5hZ2VtZW50IHN5c3RlbSBhcyB3ZWxsIGFzIHRoZSBjbGll bnQgbGlicmFyaWVzIHRvIGJlIHVzZWQuCisgICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgdXNl cyB0aGUgPGNvbW1hbmQ+b3BlbnNzbDwvY29tbWFuZD4gY29tbWFuZC1saW5lIHRvb2wKKyAg IHRvIHNldCB1cCB0aGUga2V5cy4KKworICAgPG9yZGVyZWRsaXN0PgorICAgIDxsaXN0aXRl bT4KKyAgICAgPHBhcmE+CisgICAgICBDcmVhdGUgdGhlIGtleSBtYXRlcmlhbCBmb3IgdGhl IENNSyBhbmQgd3JpdGUgaXQgdG8gYSBmaWxlOgorPHByb2dyYW1saXN0aW5nPgorb3BlbnNz bCBnZW5wa2V5IC1hbGdvcml0aG0gcnNhIC1vdXQgY21rMS5wZW0KKzwvcHJvZ3JhbWxpc3Rp bmc+CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIFJlZ2lzdGVyIHRoZSBDTUsgaW4gdGhlIGRhdGFiYXNlOgor PHByb2dyYW1saXN0aW5nPgorcHNxbCAuLi4gLWMgIkNSRUFURSBDT0xVTU4gTUFTVEVSIEtF WSBjbWsxIgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ3JlYXRlIHRoZSB1 bmVuY3J5cHRlZCBDRUsga2V5IG1hdGVyaWFsIGluIGEgZmlsZToKKzxwcm9ncmFtbGlzdGlu Zz4KK29wZW5zc2wgcmFuZCAtb3V0IGNlazEuYmluIDQ4Cis8L3Byb2dyYW1saXN0aW5nPgor ICAgICAgKFNlZSA8eHJlZiBsaW5rZW5kPSJwcm90b2NvbC1jZWstdGFibGUiLz4gZm9yIHJl cXVpcmVkIGtleSBsZW5ndGhzLikKKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisK KyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRW5jcnlwdCB0aGUgY3JlYXRl ZCBDRUsga2V5IG1hdGVyaWFsOgorPHByb2dyYW1saXN0aW5nPgorb3BlbnNzbCBwa2V5dXRs IC1lbmNyeXB0IC1pbmtleSBjbWsxLnBlbSAtcGtleW9wdCByc2FfcGFkZGluZ19tb2RlOm9h ZXAgLWluIGNlazEuYmluIC1vdXQgY2VrMS5iaW4uZW5jCitybSBjZWsxLmJpbgorPC9wcm9n cmFtbGlzdGluZz4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlz dGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgUmVnaXN0ZXIgdGhlIENFSyBpbiB0aGUgZGF0 YWJhc2U6Cis8cHJvZ3JhbWxpc3Rpbmc+CisjIGNvbnZlcnQgZmlsZSBjb250ZW50cyB0byBo ZXggZW5jb2Rpbmc7IHRoaXMgaXMganVzdCBvbmUgcG9zc2libGUgd2F5CitjZWtlbmNoZXg9 JChwZXJsIC0wbmUgJ3ByaW50IHVucGFjayAiSCoiJyBjZWsxLmJpbi5lbmMpCitwc3FsIC4u LiAtYyAiQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFdJVEggVkFMVUVTIChj b2x1bW5fbWFzdGVyX2tleSA9IGNtazEsIGVuY3J5cHRlZF92YWx1ZSA9ICdcXHgke2Nla2Vu Y2hleH0nKSIKK3JtIGNlazEuYmluLmVuYworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgQ3JlYXRlIGVuY3J5cHRlZCBjb2x1bW5zIGFzIHNob3duIGluIHRoZSBleGFtcGxl cyBhYm92ZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0 ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ29uZmlndXJlIHRoZSBsaWJwcSBmb3IgQ01LIGxv b2t1cCAoc2VlIGFsc28gPHhyZWYgbGlua2VuZD0ibGlicHEtY29ubmVjdC1jbWtsb29rdXAi Lz4pOgorPHByb2dyYW1saXN0aW5nPgorUEdDTUtMT09LVVA9Iio9ZmlsZTokUFdELyVrLnBl bSIKK2V4cG9ydCBQR0NNS0xPT0tVUAorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgPC9wYXJh PgorCisgICAgIDxwYXJhPgorICAgICAgQWRkaXRpb25hbGx5LCBsaWJwcSByZXF1aXJlcyB0 aGF0IHRoZSBjb25uZWN0aW9uIHBhcmFtZXRlciA8eHJlZgorICAgICAgbGlua2VuZD0ibGli cHEtY29ubmVjdC1jb2x1bW4tZW5jcnlwdGlvbiIvPiBiZSBzZXQgaW4gb3JkZXIgdG8gYWN0 aXZhdGUKKyAgICAgIHRoZSB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBmdW5jdGlv bmFsaXR5LiAgVGhpcyBzaG91bGQgYmUgZG9uZSBpbgorICAgICAgdGhlIGNvbm5lY3Rpb24g cGFyYW1ldGVycyBvZiB0aGUgYXBwbGljYXRpb24sIGJ1dCBhbiBlbnZpcm9ubWVudAorICAg ICAgdmFyaWFibGUgKDxlbnZhcj5QR0NPTFVNTkVOQ1JZUFRJT048L2VudmFyPikgaXMgYWxz byBhdmFpbGFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC9vcmRl cmVkbGlzdD4KKyAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxzZWN0Mj4KKyAgIDx0aXRs ZT5HdWlkYW5jZSBvbiBVc2luZyBUcmFuc3BhcmVudCBDb2x1bW4gRW5jcnlwdGlvbjwvdGl0 bGU+CisKKyAgIDxwYXJhPgorICAgIFRoaXMgc2VjdGlvbiBjb250YWlucyBzb21lIGluZm9y bWF0aW9uIG9uIHdoZW4gaXQgaXMgb3IgaXMgbm90IGFwcHJvcHJpYXRlCisgICAgdG8gdXNl IHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uLCBhbmQgd2hhdCBwcmVjYXV0aW9ucyBu ZWVkIHRvIGJlCisgICAgdGFrZW4gdG8gbWFpbnRhaW4gaXRzIHNlY3VyaXR5LgorICAgPC9w YXJhPgorCisgICA8cGFyYT4KKyAgICBJbiBnZW5lcmFsLCBjb2x1bW4gZW5jcnlwdGlvbiBp cyBuZXZlciBhIHJlcGxhY2VtZW50IGZvciBhZGRpdGlvbmFsCisgICAgc2VjdXJpdHkgYW5k IGVuY3J5cHRpb24gdGVjaG5pcXVlcyBzdWNoIGFzIHRyYW5zbWlzc2lvbiBlbmNyeXB0aW9u CisgICAgKFNTTC9UTFMpLCBzdG9yYWdlIGVuY3J5cHRpb24sIHN0cm9uZyBhY2Nlc3MgY29u dHJvbCwgYW5kIHBhc3N3b3JkCisgICAgc2VjdXJpdHkuICBDb2x1bW4gZW5jcnlwdGlvbiBv bmx5IHRhcmdldHMgc3BlY2lmaWMgdXNlIGNhc2VzIGFuZCBzaG91bGQgYmUKKyAgICB1c2Vk IGluIGNvbmp1bmN0aW9uIHdpdGggYWRkaXRpb25hbCBzZWN1cml0eSBtZWFzdXJlcy4KKyAg IDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQSB0eXBpY2FsIHVzZSBjYXNlIGZvciBjb2x1 bW4gZW5jcnlwdGlvbiBpcyB0byBlbmNyeXB0IHNwZWNpZmljIHZhbHVlcworICAgIHdpdGgg YWRkaXRpb25hbCBzZWN1cml0eSByZXF1aXJlbWVudHMsIGZvciBleGFtcGxlIGNyZWRpdCBj YXJkIG51bWJlcnMuCisgICAgVGhpcyB3b3VsZCBhbGxvdyB5b3UgdG8gc3RvcmUgdGhhdCBz ZWN1cml0eS1zZW5zaXRpdmUgZGF0YSB0b2dldGhlciB3aXRoCisgICAgdGhlIHJlc3Qgb2Yg eW91ciBkYXRhICh0aHVzIGdldHRpbmcgdmFyaW91cyBiZW5lZml0cywgc3VjaCBhcyByZWZl cmVudGlhbAorICAgIGludGVncml0eSwgY29uc2lzdGVudCBiYWNrdXBzKSwgd2hpbGUgZ2l2 aW5nIGFjY2VzcyB0byB0aGF0IGRhdGEgb25seSB0bworICAgIHNwZWNpZmljIGNsaWVudHMg YW5kIHByZXZlbnRpbmcgYWNjaWRlbnRhbCBsZWFrYWdlIG9uIHRoZSBzZXJ2ZXIgc2lkZQor ICAgIChzZXJ2ZXIgbG9ncywgZmlsZSBzeXN0ZW0gYmFja3VwcywgZXRjLikuCisgICA8L3Bh cmE+CisKKyAgIDxwYXJhPgorICAgIENvbHVtbiBlbmNyeXB0aW9uIGNhbm5vdCBoaWRlIHRo ZSBleGlzdGVuY2Ugb3IgYWJzZW5jZSBvZiBkYXRhLCBpdCBjYW4KKyAgICBvbmx5IGRpc2d1 aXNlIHRoZSBwYXJ0aWN1bGFyIGRhdGEgdGhhdCBpcyBrbm93biB0byBleGlzdC4gIEZvciBl eGFtcGxlLAorICAgIHN0b3JpbmcgYSBjbGVhcnRleHQgcGVyc29uIG5hbWUgYW5kIGFuIGVu Y3J5cHRlZCBjcmVkaXQgY2FyZCBudW1iZXIKKyAgICBpbmRpY2F0ZXMgdGhhdCB0aGUgcGVy c29uIGhhcyBhIGNyZWRpdCBjYXJkLiAgVGhhdCBtaWdodCBub3QgcmV2ZWFsIHRvbworICAg IG11Y2ggaWYgdGhlIGRhdGFiYXNlIGlzIGZvciBhbiBvbmxpbmUgc3RvcmUgYW5kIHRoZXJl IGlzIG90aGVyIGRhdGEgbmVhcmJ5CisgICAgdGhhdCBzaG93cyB0aGF0IHRoZSBwZXJzb24g aGFzIHJlY2VudGx5IG1hZGUgcHVyY2hhc2VzLiAgQnV0IGluIGFub3RoZXIKKyAgICBleGFt cGxlLCBzdG9yaW5nIGEgY2xlYXJ0ZXh0IHBlcnNvbiBuYW1lIGFuZCBhbiBlbmNyeXB0ZWQg ZGlhZ25vc2lzIGluIGEKKyAgICBtZWRpY2FsIGRhdGFiYXNlIHByb2JhYmx5IGluZGljYXRl cyB0aGF0IHRoZSBwZXJzb24gaGFzIGEgbWVkaWNhbCBpc3N1ZS4KKyAgICBEZXBlbmRpbmcg b24gdGhlIGNpcmN1bXN0YW5jZXMsIHRoYXQgbWlnaHQgbm90IGJ5IGl0c2VsZiBiZSBzdWZm aWNpZW50CisgICAgc2VjdXJpdHkuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEVu Y3J5cHRpb24gY2Fubm90IGNvbXBsZXRlbHkgaGlkZSB0aGUgbGVuZ3RoIG9mIHZhbHVlcy4g IFRoZSBlbmNyeXB0aW9uCisgICAgbWV0aG9kcyB3aWxsIHBhZCB2YWx1ZXMgdG8gbXVsdGlw bGVzIG9mIHRoZSB1bmRlcmx5aW5nIGNpcGhlcidzIGJsb2NrIHNpemUKKyAgICAodXN1YWxs eSAxNiBieXRlcyksIHNvIHNvbWUgbGVuZ3RoIGRpZmZlcmVuY2VzIHdpbGwgYmUgdW5pZmll ZCB0aGlzIHdheS4KKyAgICBUaGVyZSBpcyBubyBjb25jZXJuIGlmIGFsbCB2YWx1ZXMgYXJl IG9mIHRoZSBzYW1lIGxlbmd0aCAoZS5nLiwgY3JlZGl0CisgICAgY2FyZCBudW1iZXJzKS4g IEJ1dCBpZiB0aGVyZSBhcmUgc2lnbmZpY2FudCBsZW5ndGggZGlmZmVyZW5jZXMgYmV0d2Vl bgorICAgIHZhbGlkIHZhbHVlcyBhbmQgdGhhdCBsZW5ndGggaW5mb3JtYXRpb24gaXMgc2Vj dXJpdHktc2Vuc2l0aXZlLCB0aGVuCisgICAgYXBwbGljYXRpb24tc3BlY2lmaWMgd29ya2Fy b3VuZHMgc3VjaCBhcyBwYWRkaW5nIHdvdWxkIG5lZWQgdG8gYmUgYXBwbGllZC4KKyAgICBI b3cgdG8gZG8gdGhhdCBzZWN1cmVseSBpcyBiZXlvbmQgdGhlIHNjb3BlIG9mIHRoaXMgbWFu dWFsLgorICAgPC9wYXJhPgorCisgICA8bm90ZT4KKyAgICA8cGFyYT4KKyAgICAgU3Rvcmlu ZyBkYXRhIHN1Y2ggY3JlZGl0IGNhcmQgZGF0YSwgbWVkaWNhbCBkYXRhLCBhbmQgc28gb24g aXMgdXN1YWxseQorICAgICBzdWJqZWN0IHRvIGdvdmVybm1lbnQgb3IgaW5kdXN0cnkgcmVn dWxhdGlvbnMuICBUaGlzIHNlY3Rpb24gaXMgbm90IG1lYW50CisgICAgIHRvIHByb3ZpZGUg Y29tcGxldGUgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byBkbyB0aGlzIGNvcnJlY3RseS4gIFBs ZWFzZQorICAgICBzZWVrIGFkZGl0aW9uYWwgYWR2aWNlIHdoZW4gZW5nYWdpbmcgaW4gc3Vj aCBwcm9qZWN0cy4KKyAgICA8L3BhcmE+CisgICA8L25vdGU+CisgIDwvc2VjdDI+CisgPC9z ZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLXN5c3RlbS1jb2x1bW5zIj4KICAgPHRpdGxlPlN5 c3RlbSBDb2x1bW5zPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCA3YzAxYTU0MWZl Li5hOWViNDliMTVmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbApAQCAtMzg5LDYgKzM4OSwyOSBAQCA8 dGl0bGU+R2xvc3Nhcnk8L3RpdGxlPgogICAgPC9nbG9zc2RlZj4KICAgPC9nbG9zc2VudHJ5 PgogCisgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1jb2x1bW4tZW5jcnlwdGlvbi1rZXki PgorICAgPGdsb3NzdGVybT5Db2x1bW4gZW5jcnlwdGlvbiBrZXk8L2dsb3NzdGVybT4KKyAg IDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSBjcnlwdG9ncmFwaGljIGtleSB1c2Vk IHRvIGVuY3J5cHQgY29sdW1uIHZhbHVlcyB3aGVuIHVzaW5nIHRyYW5zcGFyZW50CisgICAg IGNvbHVtbiBlbmNyeXB0aW9uLiAgQ29sdW1uIGVuY3J5cHRpb24ga2V5cyBhcmUgc3RvcmVk IGluIHRoZSBkYXRhYmFzZQorICAgICBlbmNyeXB0ZWQgYnkgYW5vdGhlciBrZXksIHRoZSBj b2x1bW4gbWFzdGVyIGtleS4KKyAgICA8L3BhcmE+CisgICA8L2dsb3NzZGVmPgorICA8L2ds b3NzZW50cnk+CisKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LWNvbHVtbi1tYXN0ZXIt a2V5Ij4KKyAgIDxnbG9zc3Rlcm0+Q29sdW1uIG1hc3RlciBrZXk8L2dsb3NzdGVybT4KKyAg IDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSBjcnlwdG9ncmFwaGljIGtleSB1c2Vk IHRvIGVuY3J5cHQgY29sdW1uIGVuY3J5cHRpb24ga2V5cy4gIChTbyB0aGUKKyAgICAgY29s dW1uIG1hc3RlciBrZXkgaXMgYSA8Zmlyc3R0ZXJtPmtleSBlbmNyeXB0aW9uIGtleTwvZmly c3R0ZXJtPi4pCisgICAgIENvbHVtbiBtYXN0ZXIga2V5cyBhcmUgc3RvcmVkIG91dHNpZGUg dGhlIGRhdGFiYXNlIHN5c3RlbSwgZm9yIGV4YW1wbGUgaW4KKyAgICAgYSBrZXkgbWFuYWdl bWVudCBzeXN0ZW0uCisgICAgPC9wYXJhPgorICAgPC9nbG9zc2RlZj4KKyAgPC9nbG9zc2Vu dHJ5PgorCiAgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1jb21taXQiPgogICAgPGdsb3Nz dGVybT5Db21taXQ8L2dsb3NzdGVybT4KICAgIDxnbG9zc2RlZj4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9saWJwcS5zZ21sIGIvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKaW5kZXgg YWYyNzg2NjBlYi4uYTJkNDEzYmFmZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xpYnBx LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKQEAgLTE5NjQsNiArMTk2NCwx NDAgQEAgPHRpdGxlPlBhcmFtZXRlciBLZXkgV29yZHM8L3RpdGxlPgogICAgICAgIDwvcGFy YT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2 YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLWNvbm5lY3QtY29sdW1uLWVuY3J5cHRpb24iIHhyZWZs YWJlbD0iY29sdW1uX2VuY3J5cHRpb24iPgorICAgICAgPHRlcm0+PGxpdGVyYWw+Y29sdW1u X2VuY3J5cHRpb248L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAg IDxwYXJhPgorICAgICAgICBJZiBzZXQgdG8gMSwgdGhpcyBlbmFibGVzIHRyYW5zcGFyZW50 IGNvbHVtbiBlbmNyeXB0aW9uIGZvciB0aGUKKyAgICAgICAgY29ubmVjdGlvbi4gIElmIGVu Y3J5cHRlZCBjb2x1bW5zIGFyZSBxdWVyaWVkIGFuZCB0aGlzIGlzIG5vdCBlbmFibGVkLAor ICAgICAgICB0aGUgZW5jcnlwdGVkIHZhbHVlIGlzIHJldHVybmVkLiAgU2VlIDx4cmVmCisg ICAgICAgIGxpbmtlbmQ9ImRkbC1jb2x1bW4tZW5jcnlwdGlvbiIvPiBmb3IgbW9yZSBpbmZv cm1hdGlvbiBhYm91dCB0aGlzCisgICAgICAgIGZlYXR1cmUuCisgICAgICAgPC9wYXJhPgor ICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0ibGlicHEtY29ubmVjdC1jbWtsb29rdXAiIHhyZWZsYWJlbD0iY21rbG9v a3VwIj4KKyAgICAgIDx0ZXJtPjxsaXRlcmFsPmNta2xvb2t1cDwvbGl0ZXJhbD48L3Rlcm0+ CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgc3BlY2lm aWVzIGhvdyBsaWJwcSBzaG91bGQgbG9vayB1cCBjb2x1bW4gbWFzdGVyIGtleXMgKENNS3Mp IGluCisgICAgICAgIG9yZGVyIHRvIGRlY3J5cHQgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtl eXMgKENFS3MpLgorICAgICAgICBUaGUgdmFsdWUgaXMgYSBsaXN0IG9mIDxsaXRlcmFsPmtl eT12YWx1ZTwvbGl0ZXJhbD4gZW50cmllcyBzZXBhcmF0ZWQKKyAgICAgICAgYnkgc2VtaWNv bG9ucy4gIEVhY2gga2V5IGlzIHRoZSBuYW1lIG9mIGEga2V5IHJlYWxtLCBvcgorICAgICAg ICA8bGl0ZXJhbD4qPC9saXRlcmFsPiB0byBtYXRjaCBhbGwgcmVhbG1zLiAgVGhlIHZhbHVl IGlzIGEKKyAgICAgICAgPGxpdGVyYWw+c2NoZW1lOmRhdGE8L2xpdGVyYWw+IHNwZWNpZmlj YXRpb24uICBUaGUgc2NoZW1lIHNwZWNpZmllcworICAgICAgICB0aGUgbWV0aG9kIHRvIGxv b2sgdXAgdGhlIGtleSwgdGhlIHJlbWFpbmluZyBkYXRhIGlzIHNwZWNpZmljIHRvIHRoZQor ICAgICAgICBzY2hlbWUuICBQbGFjZWhvbGRlcnMgYXJlIHJlcGxhY2VkIGluIHRoZSByZW1h aW5pbmcgZGF0YSBhcyBmb2xsb3dzOgorCisgICAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAg ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPiVhPC9saXRl cmFsPjwvdGVybT4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgor ICAgICAgICAgICAgVGhlIENNSyBhbGdvcml0aG0gbmFtZSAoc2VlIDx4cmVmIGxpbmtlbmQ9 InByb3RvY29sLWNtay10YWJsZSIvPikKKyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD4lajwvbGl0ZXJhbD48L3Rl cm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAg ICAgIFRoZSBDTUsgYWxnb3JpdGhtIG5hbWUgaW4gSlNPTiBXZWIgQWxnb3JpdGhtcyBmb3Jt YXQgKHNlZSA8eHJlZgorICAgICAgICAgICAgbGlua2VuZD0icHJvdG9jb2wtY21rLXRhYmxl Ii8+KS4gIFRoaXMgaXMgdXNlZnVsIGZvciBpbnRlcmZhY2luZworICAgICAgICAgICAgd2l0 aCBzb21lIGtleSBtYW5hZ2VtZW50IHN5c3RlbXMgdGhhdCB1c2UgdGhlc2UgbmFtZXMuCisg ICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgICAgPHRl cm0+PGxpdGVyYWw+JWs8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4K KyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBUaGUgQ01LIGtleSBuYW1lCisgICAg ICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJs aXN0ZW50cnk+CisKKyAgICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+ PGxpdGVyYWw+JXA8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBUaGUgbmFtZSBvZiBhIHRlbXBvcmFyeSBm aWxlIHdpdGggdGhlIGVuY3J5cHRlZCBDRUsgZGF0YSAob25seSBmb3IKKyAgICAgICAgICAg IHRoZSA8bGl0ZXJhbD5ydW48L2xpdGVyYWw+IHNjaGVtZSkKKyAgICAgICAgICAgPC9wYXJh PgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD4lcjwv bGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFy YT4KKyAgICAgICAgICAgIFRoZSByZWFsbSBuYW1lCisgICAgICAgICAgIDwvcGFyYT4KKyAg ICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICAg IDwvdmFyaWFibGVsaXN0PgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAg ICAgICBBdmFpbGFibGUgc2NoZW1lcyBhcmU6CisgICAgICAgIDx2YXJpYWJsZWxpc3Q+Cisg ICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmZpbGU8 L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBh cmE+CisgICAgICAgICAgICBMb2FkIHRoZSBrZXkgbWF0ZXJpYWwgZnJvbSBhIGZpbGUuICBU aGUgcmVtYWluaW5nIGRhdGEgaXMgdGhlIGZpbGUKKyAgICAgICAgICAgIG5hbWUuICBVc2Ug dGhpcyBpZiB0aGUgQ01LcyBhcmUga2VwdCBpbiBhIGZpbGUgb24gdGhlIGZpbGUgc3lzdGVt LgorICAgICAgICAgICA8L3BhcmE+CisKKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAg ICBUaGUgZmlsZSBzY2hlbWUgZG9lcyBub3Qgc3VwcG9ydCB0aGUgQ01LIGFsZ29yaXRobQor ICAgICAgICAgICAgPGxpdGVyYWw+dW5zcGVjaWZpZWQ8L2xpdGVyYWw+LgorICAgICAgICAg ICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDwvdmFybGlzdGVu dHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxsaXRl cmFsPnJ1bjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICAgICA8cGFyYT4KKyAgICAgICAgICAgIFJ1biB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgdG8g ZGVjcnlwdCB0aGUgQ0VLLiAgVGhlIHJlbWFpbmluZyBkYXRhCisgICAgICAgICAgICBpcyBh IHNoZWxsIGNvbW1hbmQuICBVc2UgdGhpcyB3aXRoIGtleSBtYW5hZ2VtZW50IHN5c3RlbXMg dGhhdAorICAgICAgICAgICAgcGVyZm9ybSB0aGUgZGVjcnlwdGlvbiB0aGVtc2VsdmVzLiAg VGhlIGNvbW1hbmQgbXVzdCBwcmludCB0aGUKKyAgICAgICAgICAgIGRlY3J5cHRlZCBwbGFp bnRleHQgb24gdGhlIHN0YW5kYXJkIG91dHB1dC4KKyAgICAgICAgICAgPC9wYXJhPgorICAg ICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgICAg PC92YXJpYWJsZWxpc3Q+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAg ICAgIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGVtcHR5LgorICAgICAgIDwvcGFyYT4KKworICAg ICAgIDxwYXJhPgorICAgICAgICBFeGFtcGxlOgorPHByb2dyYW1saXN0aW5nPgorY21rbG9v a3VwPSJyMT1maWxlOi9zb21lL3doZXJlL3NlY3JldHMvJWsucGVtOyo9ZmlsZTovZWxzZS93 aGVyZS8lci8lay5wZW0iCis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgICBUaGlzIHNwZWNp ZmljYXRpb24gc2F5cywgZm9yIGtleXMgaW4gcmVhbG0gPHF1b3RlPnIxPC9xdW90ZT4sIGxv YWQKKyAgICAgICAgdGhlbSBmcm9tIHRoZSBzcGVjaWZpZWQgZmlsZSwgcmVwbGFjaW5nIDxs aXRlcmFsPiVrPC9saXRlcmFsPiBieSB0aGUKKyAgICAgICAga2V5IG5hbWUuICBGb3Iga2V5 cyBpbiBvdGhlciByZWFsbXMsIGxvYWQgdGhlbSBmcm9tIHRoZSBmaWxlLAorICAgICAgICBy ZXBsYWNpbmcgcmVhbG0gYW5kIGtleSBuYW1lcyBhcyBzcGVjaWZpZWQuCisgICAgICAgPC9w YXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEFuIGV4YW1wbGUgZm9yIGludGVyYWN0 aW5nIHdpdGggYSAoaHlwb3RoZXRpY2FsKSBrZXkgbWFuYWdlbWVudAorICAgICAgICBzeXN0 ZW06Cis8cHJvZ3JhbWxpc3Rpbmc+CitjbWtsb29rdXA9Iio9cnVuOmFjbWVrbXMgZGVjcnlw dCAtLWtleSAlayAtLWFsZyAlYSAtLWluZmlsZSAnJXAnIgorPC9wcm9ncmFtbGlzdGluZz4K KyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRy eT4KICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgIDwvcGFyYT4KICAgPC9zZWN0Mj4KQEAgLTI4 NjQsNiArMjk5OCwyNSBAQCA8dGl0bGU+TWFpbiBGdW5jdGlvbnM8L3RpdGxlPgogICAgICAg ICAgICAgPGZpbGVuYW1lPnNyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmM6Om51bWVy aWNfc2VuZCgpPC9maWxlbmFtZT4gYW5kCiAgICAgICAgICAgICA8ZmlsZW5hbWU+c3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYzo6bnVtZXJpY19yZWN2KCk8L2ZpbGVuYW1lPi4K ICAgICAgICAgICAgPC9wYXJhPgorCisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAg V2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkLCB0aGUgc2Vjb25kLWxlYXN0LXNp Z25pZmljYW50CisgICAgICAgICAgICBieXRlIG9mIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmll cyB3aGV0aGVyIGVuY3J5cHRpb24gc2hvdWxkIGJlCisgICAgICAgICAgICBmb3JjZWQgZm9y IGEgcGFyYW1ldGVyLiAgU2V0IHRoaXMgYnl0ZSB0byBvbmUgdG8gZm9yY2UgZW5jcnlwdGlv bi4KKyAgICAgICAgICAgIEZvciBleGFtcGxlLCB1c2UgdGhlIEMgY29kZSBsaXRlcmFsIDxs aXRlcmFsPjB4MTA8L2xpdGVyYWw+IHRvCisgICAgICAgICAgICBzcGVjaWZ5IHRleHQgZm9y bWF0IHdpdGggZm9yY2VkIGVuY3J5cHRpb24uICBJZiB0aGUgYXJyYXkgcG9pbnRlcgorICAg ICAgICAgICAgaXMgbnVsbCB0aGVuIGVuY3J5cHRpb24gaXMgbm90IGZvcmNlZCBmb3IgYW55 IHBhcmFtZXRlci4KKyAgICAgICAgICAgPC9wYXJhPgorCisgICAgICAgICAgIDxwYXJhPgor ICAgICAgICAgICAgSWYgZW5jcnlwdGlvbiBpcyBmb3JjZWQgZm9yIGEgcGFyYW1ldGVyIGJ1 dCB0aGUgcGFyYW1ldGVyIGRvZXMgbm90CisgICAgICAgICAgICBjb3JyZXNwb25kIHRvIGFu IGVuY3J5cHRlZCBjb2x1bW4gb24gdGhlIHNlcnZlciwgdGhlbiB0aGUgY2FsbAorICAgICAg ICAgICAgd2lsbCBmYWlsIGFuZCB0aGUgcGFyYW1ldGVyIHdpbGwgbm90IGJlIHNlbnQuICBU aGlzIGNhbiBiZSB1c2VkCisgICAgICAgICAgICBmb3IgYWRkaXRpb25hbCBzZWN1cml0eSBh Z2FpbnN0IGEgY29tcHJpbWlzZWQgc2VydmVyLiAgKFRoZQorICAgICAgICAgICAgZHJhd2Jh Y2sgaXMgdGhhdCBhcHBsaWNhdGlvbiBjb2RlIHRoZW4gbmVlZHMgdG8gYmUga2VwdCB1cCB0 byBkYXRlCisgICAgICAgICAgICB3aXRoIGtub3dsZWRnZSBhYm91dCB3aGljaCBjb2x1bW5z IGFyZSBlbmNyeXB0ZWQgcmF0aGVyIHRoYW4KKyAgICAgICAgICAgIGxldHRpbmcgdGhlIHNl cnZlciBzcGVjaWZ5IHRoaXMuKQorICAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICAgPC9s aXN0aXRlbT4KICAgICAgICAgIDwvdmFybGlzdGVudHJ5PgogCkBAIC0yODc2LDYgKzMwMjks MTMgQEAgPHRpdGxlPk1haW4gRnVuY3Rpb25zPC90aXRsZT4KICAgICAgICAgICAgIHRvIG9i dGFpbiBkaWZmZXJlbnQgcmVzdWx0IGNvbHVtbnMgaW4gZGlmZmVyZW50IGZvcm1hdHMsCiAg ICAgICAgICAgICBhbHRob3VnaCB0aGF0IGlzIHBvc3NpYmxlIGluIHRoZSB1bmRlcmx5aW5n IHByb3RvY29sLikKICAgICAgICAgICAgPC9wYXJhPgorCisgICAgICAgICAgIDxwYXJhPgor ICAgICAgICAgICAgSWYgY29sdW1uIGVuY3J5cHRpb24gaXMgdXNlZCwgdGhlbiBlbmNyeXB0 ZWQgY29sdW1ucyB3aWxsIGJlCisgICAgICAgICAgICByZXR1cm5lZCBpbiB0ZXh0IGZvcm1h dCBpbmRlcGVuZGVudCBvZiB0aGlzIHNldHRpbmcuICBBcHBsaWNhdGlvbnMKKyAgICAgICAg ICAgIGNhbiBjaGVjayB0aGUgZm9ybWF0IG9mIGVhY2ggcmVzdWx0IGNvbHVtbiB3aXRoIDx4 cmVmCisgICAgICAgICAgICBsaW5rZW5kPSJsaWJwcS1QUWZmb3JtYXQiLz4gYmVmb3JlIGFj Y2Vzc2luZyBpdC4KKyAgICAgICAgICAgPC9wYXJhPgogICAgICAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICAgICAgPC92YXJpYWJsZWxpc3Q+CkBA IC0zMDI4LDYgKzMxODgsNDQgQEAgPHRpdGxlPk1haW4gRnVuY3Rpb25zPC90aXRsZT4KICAg ICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0 ZW50cnkgaWQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkRGVzY3JpYmVkIj4KKyAgICAgIDx0ZXJt PjxmdW5jdGlvbj5QUWV4ZWNQcmVwYXJlZERlc2NyaWJlZDwvZnVuY3Rpb24+PGluZGV4dGVy bT48cHJpbWFyeT5QUWV4ZWNQcmVwYXJlZERlc2NyaWJlZDwvcHJpbWFyeT48L2luZGV4dGVy bT48L3Rlcm0+CisKKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAg U2VuZHMgYSByZXF1ZXN0IHRvIGV4ZWN1dGUgYSBwcmVwYXJlZCBzdGF0ZW1lbnQgd2l0aCBn aXZlbgorICAgICAgICBwYXJhbWV0ZXJzLCBhbmQgd2FpdHMgZm9yIHRoZSByZXN1bHQsIHdp dGggc3VwcG9ydCBmb3IgZW5jcnlwdGVkIGNvbHVtbnMuCis8c3lub3BzaXM+CitQR3Jlc3Vs dCAqUFFleGVjUHJlcGFyZWREZXNjcmliZWQoUEdjb25uICpjb25uLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuUGFyYW1zLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCAqcGFyYW1WYWx1ZXMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50ICpwYXJhbUxlbmd0 aHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50ICpwYXJh bUZvcm1hdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlc3Vs dEZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQR3Jlc3VsdCAq cGFyYW1EZXNjKTsKKzwvc3lub3BzaXM+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBh cmE+CisgICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkRGVzY3Jp YmVkIi8+IGlzIGxpa2UgPHhyZWYKKyAgICAgICAgbGlua2VuZD0ibGlicHEtUFFleGVjUHJl cGFyZWQiLz4gd2l0aCBhZGRpdGlvbmFsIHN1cHBvcnQgZm9yIGVuY3J5cHRlZAorICAgICAg ICBjb2x1bW5zLiAgVGhlIHBhcmFtZXRlciA8cGFyYW1ldGVyPnBhcmFtRGVzYzwvcGFyYW1l dGVyPiBtdXN0IGJlIGEKKyAgICAgICAgcmVzdWx0IHNldCBvYnRhaW5lZCBmcm9tIDx4cmVm IGxpbmtlbmQ9ImxpYnBxLVBRZGVzY3JpYmVQcmVwYXJlZCIvPiBvbgorICAgICAgICB0aGUg c2FtZSBwcmVwYXJlZCBzdGF0ZW1lbnQuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBh cmE+CisgICAgICAgIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSB1c2VkIGlmIGEgc3RhdGVtZW50 IHBhcmFtZXRlciBjb3JyZXNwb25kcyB0byBhbgorICAgICAgICB1bmRlcmx5aW5nIGVuY3J5 cHRlZCBjb2x1bW4uICBJbiB0aGF0IHNpdHVhdGlvbiwgdGhlIHByZXBhcmVkCisgICAgICAg IHN0YXRlbWVudCBuZWVkcyB0byBiZSBkZXNjcmliZWQgZmlyc3Qgc28gdGhhdCBsaWJwcSBj YW4gb2J0YWluIHRoZQorICAgICAgICBuZWNlc3Nhcnkga2V5IGFuZCBvdGhlciBpbmZvcm1h dGlvbiBmcm9tIHRoZSBzZXJ2ZXIuICBXaGVuIHRoYXQgaXMKKyAgICAgICAgZG9uZSwgdGhl IHBhcmFtZXRlcnMgY29ycmVzcG9uZGluZyB0byBlbmNyeXB0ZWQgY29sdW1ucyBhcmUKKyAg ICAgICAgYXV0b21hdGljYWxseSBlbmNyeXB0ZWQgYXBwcm9wcmlhdGVseSBiZWZvcmUgYmVp bmcgc2VudCB0byB0aGUgc2VydmVyLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0 ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imxp YnBxLVBRZGVzY3JpYmVQcmVwYXJlZCI+CiAgICAgICA8dGVybT48ZnVuY3Rpb24+UFFkZXNj cmliZVByZXBhcmVkPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRZGVzY3JpYmVQ cmVwYXJlZDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAKQEAgLTM4NzgsNiArNDA3 NiwyOCBAQCA8dGl0bGU+UmV0cmlldmluZyBRdWVyeSBSZXN1bHQgSW5mb3JtYXRpb248L3Rp dGxlPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgPHZh cmxpc3RlbnRyeSBpZD0ibGlicHEtUFFmaXNlbmNyeXB0ZWQiPgorICAgICA8dGVybT48ZnVu Y3Rpb24+UFFmaXNlbmNyeXB0ZWQ8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFm aXNlbmNyeXB0ZWQ8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorCisgICAgIDxsaXN0 aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJldHVybnMgd2hldGhlciB0aGUgdmFsdWUg Zm9yIHRoZSBnaXZlbiBjb2x1bW4gY2FtZSBmcm9tIGFuIGVuY3J5cHRlZAorICAgICAgIGNv bHVtbi4gIENvbHVtbiBudW1iZXJzIHN0YXJ0IGF0IDAuCis8c3lub3BzaXM+CitpbnQgUFFm aXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywKKyAgICAgICAgICAgICAgICAgICBp bnQgY29sdW1uX251bWJlcik7Cis8L3N5bm9wc2lzPgorICAgICAgPC9wYXJhPgorCisgICAg ICA8cGFyYT4KKyAgICAgICBFbmNyeXB0ZWQgY29sdW1uIHZhbHVlcyBhcmUgYXV0b21hdGlj YWxseSBkZWNyeXB0ZWQsIHNvIHRoaXMgZnVuY3Rpb24KKyAgICAgICBpcyBub3QgbmVjZXNz YXJ5IHRvIGFjY2VzcyB0aGUgY29sdW1uIHZhbHVlLiAgSXQgY2FuIGJlIHVzZWQgZm9yIGV4 dHJhCisgICAgICAgc2VjdXJpdHkgdG8gY2hlY2sgd2hldGhlciB0aGUgdmFsdWUgd2FzIHN0 b3JlZCBlbmNyeXB0ZWQgd2hlbiBvbmUKKyAgICAgICB0aG91Z2h0IGl0IHNob3VsZCBiZS4K KyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4K KwogICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRZnNpemUiPgogICAgICA8dGVybT48 ZnVuY3Rpb24+UFFmc2l6ZTwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWZzaXpl PC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KIApAQCAtNDA1OSw2ICs0Mjc5LDMxIEBA IDx0aXRsZT5SZXRyaWV2aW5nIFF1ZXJ5IFJlc3VsdCBJbmZvcm1hdGlvbjwvdGl0bGU+CiAg ICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICA8dmFybGlzdGVu dHJ5IGlkPSJsaWJwcS1QUXBhcmFtaXNlbmNyeXB0ZWQiPgorICAgICA8dGVybT48ZnVuY3Rp b24+UFFwYXJhbWlzZW5jcnlwdGVkPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBR cGFyYW1pc2VuY3J5cHRlZDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CisKKyAgICAg PGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgUmV0dXJucyB3aGV0aGVyIHRoZSB2 YWx1ZSBmb3IgdGhlIGdpdmVuIHBhcmFtZXRlciBpcyBkZXN0aW5lZCBmb3IgYW4KKyAgICAg ICBlbmNyeXB0ZWQgY29sdW1uLiAgUGFyYW1ldGVyIG51bWJlcnMgc3RhcnQgYXQgMC4KKzxz eW5vcHNpcz4KK2ludCBQUXBhcmFtaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywg aW50IHBhcmFtX251bWJlcik7Cis8L3N5bm9wc2lzPgorICAgICAgPC9wYXJhPgorCisgICAg ICA8cGFyYT4KKyAgICAgICBWYWx1ZXMgZm9yIHBhcmFtZXRlcnMgZGVzdGluZWQgZm9yIGVu Y3J5cHRlZCBjb2x1bW5zIGFyZSBhdXRvbWF0aWNhbGx5CisgICAgICAgZW5jcnlwdGVkLCBz byB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBuZWNlc3NhcnkgdG8gcHJlcGFyZSB0aGUgcGFyYW1l dGVyCisgICAgICAgdmFsdWUuICBJdCBjYW4gYmUgdXNlZCBmb3IgZXh0cmEgc2VjdXJpdHkg dG8gY2hlY2sgd2hldGhlciB0aGUgdmFsdWUKKyAgICAgICB3aWxsIGJlIHN0b3JlZCBlbmNy eXB0ZWQgd2hlbiBvbmUgdGhvdWdodCBpdCBzaG91bGQgYmUuICAoQnV0IHNlZSBhbHNvCisg ICAgICAgYXQgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWREZXNjcmliZWQi Lz4gZm9yIGFub3RoZXIgd2F5IHRvIGRvIHRoYXQuKQorICAgICAgIFRoaXMgZnVuY3Rpb24g aXMgb25seSB1c2VmdWwgd2hlbiBpbnNwZWN0aW5nIHRoZSByZXN1bHQgb2YgPHhyZWYKKyAg ICAgICBsaW5rZW5kPSJsaWJwcS1QUWRlc2NyaWJlUHJlcGFyZWQiLz4uICBGb3Igb3RoZXIg dHlwZXMgb2YgcmVzdWx0cyBpdAorICAgICAgIHdpbGwgcmV0dXJuIGZhbHNlLgorICAgICAg PC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAg PHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFwcmludCI+CiAgICAgIDx0ZXJtPjxmdW5jdGlv bj5QUXByaW50PC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRcHJpbnQ8L3ByaW1h cnk+PC9pbmRleHRlcm0+PC90ZXJtPgogCkBAIC00NTg0LDYgKzQ4MjksNyBAQCA8dGl0bGU+ QXN5bmNocm9ub3VzIENvbW1hbmQgUHJvY2Vzc2luZzwvdGl0bGU+CiAgICA8eHJlZiBsaW5r ZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVBhcmFtcyIvPiwKICAgIDx4cmVmIGxpbmtlbmQ9Imxp YnBxLVBRc2VuZFByZXBhcmUiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRR dWVyeVByZXBhcmVkIi8+LAorICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQ cmVwYXJlZERlc2NyaWJlZCIvPiwKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZERl c2NyaWJlUHJlcGFyZWQiLz4sIGFuZAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5k RGVzY3JpYmVQb3J0YWwiLz4sCiAgICB3aGljaCBjYW4gYmUgdXNlZCB3aXRoIDx4cmVmIGxp bmtlbmQ9ImxpYnBxLVBRZ2V0UmVzdWx0Ii8+IHRvIGR1cGxpY2F0ZQpAQCAtNDU5MSw2ICs0 ODM3LDcgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBDb21tYW5kIFByb2Nlc3Npbmc8L3RpdGxl PgogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUGFyYW1zIi8+LAogICAgPHhyZWYg bGlua2VuZD0ibGlicHEtUFFwcmVwYXJlIi8+LAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEt UFFleGVjUHJlcGFyZWQiLz4sCisgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQcmVw YXJlZERlc2NyaWJlZCIvPiwKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZGVzY3JpYmVQ cmVwYXJlZCIvPiwgYW5kCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWRlc2NyaWJlUG9y dGFsIi8+CiAgICByZXNwZWN0aXZlbHkuCkBAIC00NjQ3LDYgKzQ4OTQsMTMgQEAgPHRpdGxl PkFzeW5jaHJvbm91cyBDb21tYW5kIFByb2Nlc3Npbmc8L3RpdGxlPgogICAgICAgIDx4cmVm IGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1BhcmFtcyIvPiwgaXQgYWxsb3dzIG9ubHkgb25lIGNv bW1hbmQgaW4gdGhlCiAgICAgICAgcXVlcnkgc3RyaW5nLgogICAgICAgPC9wYXJhPgorCisg ICAgICA8cGFyYT4KKyAgICAgICBJZiBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkLCB0 aGVuIHRoaXMgZnVuY3Rpb24gaXMgbm90CisgICAgICAgYXN5bmNocm9ub3VzLiAgVG8gZ2V0 IGFzeW5jaHJvbm91cyBiZWhhdmlvciwgPHhyZWYKKyAgICAgICBsaW5rZW5kPSJsaWJwcS1Q UXNlbmRQcmVwYXJlIi8+IGZvbGxvd2VkIGJ5IDx4cmVmCisgICAgICAgbGlua2VuZD0ibGli cHEtUFFzZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJlZCIvPiBzaG91bGQgYmUgY2FsbGVkIGlu ZGl2aWR1YWxseS4KKyAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zh cmxpc3RlbnRyeT4KIApAQCAtNDcwMSw2ICs0OTU1LDQ1IEBAIDx0aXRsZT5Bc3luY2hyb25v dXMgQ29tbWFuZCBQcm9jZXNzaW5nPC90aXRsZT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8 L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRc2VuZFF1 ZXJ5UHJlcGFyZWREZXNjcmliZWQiPgorICAgICA8dGVybT48ZnVuY3Rpb24+UFFzZW5kUXVl cnlQcmVwYXJlZERlc2NyaWJlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUXNl bmRRdWVyeVByZXBhcmVkRGVzY3JpYmVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4K KworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBTZW5kcyBhIHJlcXVl c3QgdG8gZXhlY3V0ZSBhIHByZXBhcmVkIHN0YXRlbWVudCB3aXRoIGdpdmVuCisgICAgICAg cGFyYW1ldGVycywgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgcmVzdWx0KHMpLCB3aXRoIHN1 cHBvcnQgZm9yIGVuY3J5cHRlZCBjb2x1bW5zLgorPHN5bm9wc2lzPgoraW50IFBRc2VuZFF1 ZXJ5UHJlcGFyZWREZXNjcmliZWQoUEdjb25uICpjb25uLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3RtdE5hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgblBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCAqcGFyYW1WYWx1ZXMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlc3VsdEZvcm1hdCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBHcmVzdWx0ICpwYXJhbURlc2MpOwor PC9zeW5vcHNpcz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAgPHhy ZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJlZCIvPiBpcyBs aWtlIDx4cmVmCisgICAgICAgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZCIv PiB3aXRoIGFkZGl0aW9uYWwgc3VwcG9ydCBmb3IgZW5jcnlwdGVkCisgICAgICAgY29sdW1u cy4gIFRoZSBwYXJhbWV0ZXIgPHBhcmFtZXRlcj5wYXJhbURlc2M8L3BhcmFtZXRlcj4gbXVz dCBiZSBhCisgICAgICAgcmVzdWx0IHNldCBvYnRhaW5lZCBmcm9tIDx4cmVmIGxpbmtlbmQ9 ImxpYnBxLVBRc2VuZERlc2NyaWJlUHJlcGFyZWQiLz4gb24KKyAgICAgICB0aGUgc2FtZSBw cmVwYXJlZCBzdGF0ZW1lbnQuCisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAg ICAgIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSB1c2VkIGlmIGEgc3RhdGVtZW50IHBhcmFtZXRl ciBjb3JyZXNwb25kcyB0byBhbgorICAgICAgIHVuZGVybHlpbmcgZW5jcnlwdGVkIGNvbHVt bi4gIEluIHRoYXQgc2l0dWF0aW9uLCB0aGUgcHJlcGFyZWQKKyAgICAgICBzdGF0ZW1lbnQg bmVlZHMgdG8gYmUgZGVzY3JpYmVkIGZpcnN0IHNvIHRoYXQgbGlicHEgY2FuIG9idGFpbiB0 aGUKKyAgICAgICBuZWNlc3Nhcnkga2V5IGFuZCBvdGhlciBpbmZvcm1hdGlvbiBmcm9tIHRo ZSBzZXJ2ZXIuICBXaGVuIHRoYXQgaXMKKyAgICAgICBkb25lLCB0aGUgcGFyYW1ldGVycyBj b3JyZXNwb25kaW5nIHRvIGVuY3J5cHRlZCBjb2x1bW5zIGFyZQorICAgICAgIGF1dG9tYXRp Y2FsbHkgZW5jcnlwdGVkIGFwcHJvcHJpYXRlbHkgYmVmb3JlIGJlaW5nIHNlbnQgdG8gdGhl IHNlcnZlci4KKyAgICAgICBTZWUgYWxzbyB1bmRlciA8eHJlZiBsaW5rZW5kPSJsaWJwcS1Q UWV4ZWNQcmVwYXJlZERlc2NyaWJlZCIvPi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0 aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imxp YnBxLVBRc2VuZERlc2NyaWJlUHJlcGFyZWQiPgogICAgICA8dGVybT48ZnVuY3Rpb24+UFFz ZW5kRGVzY3JpYmVQcmVwYXJlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUXNl bmREZXNjcmliZVByZXBhcmVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KIApAQCAt NDc1MSw2ICs1MDQ0LDcgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBDb21tYW5kIFByb2Nlc3Np bmc8L3RpdGxlPgogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UGFy YW1zIi8+LAogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFByZXBhcmUiLz4s CiAgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZCIvPiwK KyAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVByZXBhcmVkRGVzY3Jp YmVkIi8+LAogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZERlc2NyaWJlUHJl cGFyZWQiLz4sCiAgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQ b3J0YWwiLz4sIG9yCiAgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFwaXBlbGluZVN5 bmMiLz4KQEAgLTc3ODQsNiArODA3OCwyNiBAQCA8dGl0bGU+RW52aXJvbm1lbnQgVmFyaWFi bGVzPC90aXRsZT4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAKKyAgICA8bGlz dGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgPGluZGV4dGVybT4KKyAgICAgICA8cHJpbWFy eT48ZW52YXI+UEdDTUtMT09LVVA8L2VudmFyPjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0 ZXJtPgorICAgICAgPGVudmFyPlBHQ01LTE9PS1VQPC9lbnZhcj4gYmVoYXZlcyB0aGUgc2Ft ZSBhcyB0aGUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9ImxpYnBxLWNvbm5lY3QtY21rbG9va3Vw Ii8+IGNvbm5lY3Rpb24gcGFyYW1ldGVyLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICA8aW5kZXh0ZXJtPgor ICAgICAgIDxwcmltYXJ5PjxlbnZhcj5QR0NPTFVNTkVOQ1JZUFRJT048L2VudmFyPjwvcHJp bWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPGVudmFyPlBHQ09MVU1ORU5DUllQ VElPTjwvZW52YXI+IGJlaGF2ZXMgdGhlIHNhbWUgYXMgdGhlIDx4cmVmCisgICAgICBsaW5r ZW5kPSJsaWJwcS1jb25uZWN0LWNvbHVtbi1lbmNyeXB0aW9uIi8+IGNvbm5lY3Rpb24gcGFy YW1ldGVyLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKwogICAgIDxsaXN0aXRl bT4KICAgICAgPHBhcmE+CiAgICAgICA8aW5kZXh0ZXJtPgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3Byb3RvY29sLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbAppbmRl eCAwMzMxMmUwN2UyLi4xYTliOGFiZDdmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcHJv dG9jb2wuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbApAQCAtMTEwOSw2 ICsxMTA5LDc1IEBAIDx0aXRsZT5QaXBlbGluaW5nPC90aXRsZT4KICAgIDwvcGFyYT4KICAg PC9zZWN0Mj4KIAorICA8c2VjdDIgaWQ9InByb3RvY29sLXRyYW5zcGFyZW50LWNvbHVtbi1l bmNyeXB0aW9uLWZsb3ciPgorICAgPHRpdGxlPlRyYW5zcGFyZW50IENvbHVtbiBFbmNyeXB0 aW9uPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgVHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5 cHRpb24gaXMgZW5hYmxlZCBieSBzZW5kaW5nIHRoZSBwYXJhbWV0ZXIKKyAgICA8bGl0ZXJh bD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRlcmFsPiB3aXRoIGEgdmFsdWUgb2YKKyAg ICA8bGl0ZXJhbD4xPC9saXRlcmFsPiBpbiB0aGUgU3RhcnR1cE1lc3NhZ2UuICBUaGlzIGlz IGEgcHJvdG9jb2wgZXh0ZW5zaW9uCisgICAgdGhhdCBlbmFibGVzIGEgZmV3IGFkZGl0aW9u YWwgcHJvdG9jb2wgbWVzc2FnZXMgYW5kIGFkZHMgYWRkaXRpb25hbCBmaWVsZHMKKyAgICB0 byBleGlzdGluZyBwcm90b2NvbCBtZXNzYWdlcy4gIENsaWVudCBkcml2ZXJzIHNob3VsZCBv bmx5IGFjdGl2YXRlIHRoaXMKKyAgICBwcm90b2NvbCBleHRlbnNpb24gd2hlbiByZXF1ZXN0 ZWQgYnkgdGhlIHVzZXIsIGZvciBleGFtcGxlIHRocm91Z2ggYQorICAgIGNvbm5lY3Rpb24g cGFyYW1ldGVyLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBXaGVuIHRyYW5zcGFy ZW50IGNvbHVtbiBlbmNyeXB0aW9uIGlzIGVuYWJsZWQsIHRoZSBtZXNzYWdlcworICAgIENv bHVtbk1hc3RlcktleSBhbmQgQ29sdW1uRW5jcnlwdGlvbktleSBjYW4gYXBwZWFyIGJlZm9y ZSBSb3dEZXNjcmlwdGlvbgorICAgIGFuZCBQYXJhbWV0ZXJEZXNjcmlwdGlvbiBtZXNzYWdl cy4gIENsaWVudHMgc2hvdWxkIGNvbGxlY3QgdGhlIGluZm9ybWF0aW9uCisgICAgaW4gdGhl c2UgbWVzc2FnZXMgYW5kIGtlZXAgdGhlbSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjb25u ZWN0aW9uLiAgQQorICAgIHNlcnZlciBpcyBub3QgcmVxdWlyZWQgdG8gcmVzZW5kIHRoZSBr ZXkgaW5mb3JtYXRpb24gZm9yIGVhY2ggc3RhdGVtZW50CisgICAgY3ljbGUgaWYgaXQgd2Fz IGFscmVhZHkgc2VudCBkdXJpbmcgdGhpcyBjb25uZWN0aW9uLiAgSWYgYSBzZXJ2ZXIgcmVz ZW5kcworICAgIGEga2V5IHRoYXQgdGhlIGNsaWVudCBoYXMgYWxyZWFkeSBzdG9yZWQgKHRo YXQgaXMsIGEga2V5IGhhdmluZyBhbiBJRAorICAgIGVxdWFsIHRvIG9uZSBhbHJlYWR5IHN0 b3JlZCksIHRoZSBuZXcgaW5mb3JtYXRpb24gc2hvdWxkIHJlcGxhY2UgdGhlIG9sZC4KKyAg ICAoVGhpcyBjb3VsZCBoYXBwZW4sIGZvciBleGFtcGxlLCBpZiB0aGUga2V5IHdhcyBhbHRl cmVkIGJ5IHNlcnZlci1zaWRlIERETAorICAgIGNvbW1hbmRzLikKKyAgIDwvcGFyYT4KKwor ICAgPHBhcmE+CisgICAgQSBjbGllbnQgc3VwcG9ydGluZyB0cmFuc3BhcmVudCBjb2x1bW4g ZW5jcnlwdGlvbiBzaG91bGQgYXV0b21hdGljYWxseQorICAgIGRlY3J5cHQgdGhlIGNvbHVt biB2YWx1ZSBmaWVsZHMgb2YgRGF0YVJvdyBtZXNzYWdlcyBjb3JyZXNwb25kaW5nIHRvCisg ICAgZW5jcnlwdGVkIGNvbHVtbnMsIGFuZCBpdCBzaG91bGQgYXV0b21hdGljYWxseSBlbmNy eXB0IHRoZSBwYXJhbWV0ZXIgdmFsdWUKKyAgICBmaWVsZHMgb2YgQmluZCBtZXNzYWdlcyBj b3JyZXNwb25kaW5nIHRvIGVuY3J5cHRlZCBjb2x1bW5zLgorICAgPC9wYXJhPgorCisgICA8 cGFyYT4KKyAgICBXaGVuIGNvbHVtbiBlbmNyeXB0aW9uIGlzIHVzZWQsIGZvcm1hdCBzcGVj aWZpY2F0aW9ucyAodGV4dC9iaW5hcnkpIGluIHRoZQorICAgIHZhcmlvdXMgcHJvdG9jb2wg bWVzc2FnZXMgYXBwbHkgdG8gdGhlIGNpcGhlcnRleHQuICBUaGUgcGxhaW50ZXh0IGluc2lk ZQorICAgIHRoZSBjaXBoZXJ0ZXh0IGlzIGFsd2F5cyBpbiB0ZXh0IGZvcm1hdCwgYnV0IHRo aXMgaXMgaW52aXNpYmxlIHRvIHRoZQorICAgIHByb3RvY29sLiAgRXZlbiB0aG91Z2ggdGhl IGNpcGhlcnRleHQgY291bGQgaW4gdGhlb3J5IGJlIHNlbnQgaW4gZWl0aGVyCisgICAgdGV4 dCBvciBiaW5hcnkgZm9ybWF0LCB0aGUgc2VydmVyIHdpbGwgYWx3YXlzIHNlbmQgaXQgaW4g YmluYXJ5IGlmIHRoZQorICAgIGNvbHVtbiBlbmNyeXB0aW9uIHByb3RvY29sIG9wdGlvbiBp cyBlbmFibGVkLiAgVGhhdCB3YXksIGEgY2xpZW50IGxpYnJhcnkKKyAgICBvbmx5IG5lZWRz IHRvIHN1cHBvcnQgZGVjcnlwdGluZyBkYXRhIHNlbnQgaW4gYmluYXJ5IGFuZCBkb2VzIG5v dCBoYXZlIHRvCisgICAgc3VwcG9ydCBkZWNvZGluZyB0aGUgdGV4dCBmb3JtYXQgb2YgdGhl IGVuY3J5cHRpb24tcmVsYXRlZCB0eXBlcyAoc2VlCisgICAgPHhyZWYgbGlua2VuZD0iZGF0 YXR5cGUtZW5jcnlwdGVkIi8+KS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgV2hl biBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb24gaXMgdXNlZCwgY2xpZW50cyBuZWVkIHRvIHRh a2UgY2FyZSB0bworICAgIHJlcHJlc2VudCBwbGFpbnRleHQgdG8gYmUgZW5jcnlwdGVkIGlu IGEgY29uc2lzdGVudCBmb3JtLiAgRm9yIGV4YW1wbGUsCisgICAgZW5jcnlwdGluZyBhbiBp bnRlZ2VyIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmcgPGxpdGVyYWw+MTAwPC9saXRlcmFs PiBhbmQKKyAgICBhbiBpbnRlZ2VyIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmcgPGxpdGVy YWw+KzEwMDwvbGl0ZXJhbD4gd291bGQgcmVzdWx0CisgICAgaW4gdHdvIGRpZmZlcmVudCBj aXBoZXJ0ZXh0cywgdGh1cyBkZWZlYXRpbmcgdGhlIG1haW4gcG9pbnQgb2YKKyAgICBkZXRl cm1pbmlzdGljIGVuY3J5cHRpb24uICBUaGlzIHByb3RvY29sIHNwZWNpZmljYXRpb24gcmVx dWlyZXMgdGhlCisgICAgcGxhaW50ZXh0IHRvIGJlIGluIDxxdW90ZT5jYW5vbmljYWw8L3F1 b3RlPiBmb3JtLCB3aGljaCBpcyB0aGUgZm9ybSB0aGF0CisgICAgaXMgcHJvZHVjZWQgYnkg dGhlIHNlcnZlciB3aGVuIGl0IG91dHB1dHMgYSBwYXJ0aWN1bGFyIHZhbHVlIGluIHRleHQK KyAgICBmb3JtYXQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFdoZW4gdHJhbnNw YXJlbnQgY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZCwgdGhlIGNsaWVudCBlbmNvZGlu ZyBtdXN0CisgICAgbWF0Y2ggdGhlIHNlcnZlciBlbmNvZGluZy4gIFRoaXMgZW5zdXJlcyB0 aGF0IGFsbCB2YWx1ZXMgZW5jcnlwdGVkIG9yCisgICAgZGVjcnlwdGVkIGJ5IHRoZSBjbGll bnQgbWF0Y2ggdGhlIHNlcnZlciBlbmNvZGluZy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+ CisgICAgVGhlIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyB1c2VkIGZvciB0cmFuc3BhcmVu dCBjb2x1bW4gZW5jcnlwdGlvbiBhcmUKKyAgICBkZXNjcmliZWQgaW4gPHhyZWYgbGlua2Vu ZD0icHJvdG9jb2wtdHJhbnNwYXJlbnQtY29sdW1uLWVuY3J5cHRpb24tY3J5cHRvIi8+Lgor ICAgPC9wYXJhPgorICA8L3NlY3QyPgorCiAgIDxzZWN0Mj4KICAgIDx0aXRsZT5GdW5jdGlv biBDYWxsPC90aXRsZT4KIApAQCAtNDA1Niw2ICs0MTI1LDE0MCBAQCA8dGl0bGU+TWVzc2Fn ZSBGb3JtYXRzPC90aXRsZT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+ CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InByb3RvY29sLW1lc3NhZ2UtZm9ybWF0cy1Db2x1 bW5FbmNyeXB0aW9uS2V5Ij4KKyAgICA8dGVybT5Db2x1bW5FbmNyeXB0aW9uS2V5IChCKTwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBtZXNzYWdl IGNhbiBvbmx5IGFwcGVhciBpZiB0aGUgcHJvdG9jb2wgZXh0ZW5zaW9uCisgICAgICA8bGl0 ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRlcmFsPiBpcyBlbmFibGVkLiAgKFNl ZSA8eHJlZgorICAgICAgbGlua2VuZD0icHJvdG9jb2wtdHJhbnNwYXJlbnQtY29sdW1uLWVu Y3J5cHRpb24tZmxvdyIvPi4pCisgICAgIDwvcGFyYT4KKworICAgICA8dmFyaWFibGVsaXN0 PgorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5CeXRlMSgnWScpPC90ZXJt PgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZGVudGlm aWVzIHRoZSBtZXNzYWdlIGFzIGEgY29sdW1uIGVuY3J5cHRpb24ga2V5IG1lc3NhZ2UuCisg ICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+ CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIExlbmd0aCBv ZiBtZXNzYWdlIGNvbnRlbnRzIGluIGJ5dGVzLCBpbmNsdWRpbmcgc2VsZi4KKyAgICAgICAg PC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIHNlc3Npb24tc3Bl Y2lmaWMgaWRlbnRpZmllciBvZiB0aGUga2V5LgorICAgICAgICA8L3BhcmE+CisgICAgICAg PC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVu dHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgbWFzdGVyIGtl eSB1c2VkIHRvIGVuY3J5cHQgdGhpcyBrZXkuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8 L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50 cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAg ICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhbGdvcml0aG0g dXNlZCB0byBlbmNyeXB0IHRoaXMga2V5LgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgPHBhcmE+CisgICAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBmb2xsb3dpbmcga2V5IG1h dGVyaWFsLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwv dmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkJ5 dGU8cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgIDxsaXN0aXRl bT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUga2V5IG1hdGVyaWFsLCBlbmNyeXB0 ZWQgd2l0aCB0aGUgbWFzdGVyIGtleSByZWZlcmVuY2VkIGFib3ZlLgorICAgICAgICA8L3Bh cmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8 L3ZhcmlhYmxlbGlzdD4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK KyAgIDx2YXJsaXN0ZW50cnkgaWQ9InByb3RvY29sLW1lc3NhZ2UtZm9ybWF0cy1Db2x1bW5N YXN0ZXJLZXkiPgorICAgIDx0ZXJtPkNvbHVtbk1hc3RlcktleSAoQik8L3Rlcm0+CisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgbWVzc2FnZSBjYW4gb25seSBh cHBlYXIgaWYgdGhlIHByb3RvY29sIGV4dGVuc2lvbgorICAgICAgPGxpdGVyYWw+X3BxXy5j b2x1bW5fZW5jcnlwdGlvbjwvbGl0ZXJhbD4gaXMgZW5hYmxlZC4gIChTZWUgPHhyZWYKKyAg ICAgIGxpbmtlbmQ9InByb3RvY29sLXRyYW5zcGFyZW50LWNvbHVtbi1lbmNyeXB0aW9uLWZs b3ciLz4uKQorICAgICA8L3BhcmE+CisKKyAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+Qnl0ZTEoJ3knKTwvdGVybT4KKyAgICAgICA8 bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWRlbnRpZmllcyB0aGUgbWVz c2FnZSBhcyBhIGNvbHVtbiBtYXN0ZXIga2V5IG1lc3NhZ2UuCisgICAgICAgIDwvcGFyYT4K KyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3Rp dGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIExlbmd0aCBvZiBtZXNzYWdlIGNvbnRl bnRzIGluIGJ5dGVzLCBpbmNsdWRpbmcgc2VsZi4KKyAgICAgICAgPC9wYXJhPgorICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3Rl bnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIHNlc3Npb24tc3BlY2lmaWMgaWRlbnRpZmll ciBvZiB0aGUga2V5LgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAg ICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0 ZXJtPlN0cmluZzwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgor ICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIGtleS4KKyAgICAgICAgPC9wYXJhPgorICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3Rl bnRyeT4KKyAgICAgICA8dGVybT5TdHJpbmc8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgor ICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBrZXkncyByZWFsbS4KKyAgICAgICAgPC9w YXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAg PC92YXJpYWJsZWxpc3Q+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor CiAgICA8dmFybGlzdGVudHJ5IGlkPSJwcm90b2NvbC1tZXNzYWdlLWZvcm1hdHMtQ29tbWFu ZENvbXBsZXRlIj4KICAgICA8dGVybT5Db21tYW5kQ29tcGxldGUgKEIpPC90ZXJtPgogICAg IDxsaXN0aXRlbT4KQEAgLTUxNTIsNiArNTM1NSw0NiBAQCA8dGl0bGU+TWVzc2FnZSBGb3Jt YXRzPC90aXRsZT4KICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+ CiAgICAgIDwvdmFyaWFibGVsaXN0PgorCisgICAgIDxwYXJhPgorICAgICAgSWYgdGhlIHBy b3RvY29sIGV4dGVuc2lvbiA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRl cmFsPiBpcworICAgICAgZW5hYmxlZCAoc2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJwcm90 b2NvbC10cmFuc3BhcmVudC1jb2x1bW4tZW5jcnlwdGlvbi1mbG93Ii8+KSwgdGhlbiB0aGVy ZSBpcworICAgICAgYWxzbyB0aGUgZm9sbG93aW5nIGZvciBlYWNoIHBhcmFtZXRlcjoKKyAg ICAgPC9wYXJhPgorCisgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgPHBhcmE+CisgICAgICAgICBJZiB0aGlzIHBhcmFtZXRlciBpcyB0byBiZSBlbmNyeXB0 ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZQorICAgICAgICAgaWRlbnRpZmllciBvZiB0aGUgY29s dW1uIGVuY3J5cHRpb24ga2V5IHRvIHVzZSwgZWxzZSB6ZXJvLgorICAgICAgICA8L3BhcmE+ CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8 dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZiB0aGlzIHBhcmFtZXRlciBpcyB0 byBiZSBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZQorICAgICAgICAgaWRlbnRpZmll ciBvZiB0aGUgZW5jcnlwdGlvbiBhbGdvcml0aG0sIGVsc2UgemVyby4KKyAgICAgICAgPC9w YXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg ICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQxNjwvdGVybT4KKyAgICAgICA8 bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhpcyBpcyB1c2VkIGFzIGEg Yml0IGZpZWxkIG9mIGZsYWdzLiAgSWYgdGhlIGNvbHVtbiBpcworICAgICAgICAgZW5jcnlw dGVkIGFuZCBiaXQgMHgwMSBpcyBzZXQsIHRoZSBjb2x1bW4gdXNlcyBkZXRlcm1pbmlzdGlj CisgICAgICAgICBlbmNyeXB0aW9uLCBvdGhlcndpc2UgcmFuZG9taXplZCBlbmNyeXB0aW9u LgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlz dGVudHJ5PgorICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgICA8L2xpc3RpdGVtPgogICAgPC92 YXJsaXN0ZW50cnk+CiAKQEAgLTU1NDAsNiArNTc4MywzNSBAQCA8dGl0bGU+TWVzc2FnZSBG b3JtYXRzPC90aXRsZT4KICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50 cnk+CiAgICAgIDwvdmFyaWFibGVsaXN0PgorCisgICAgIDxwYXJhPgorICAgICAgSWYgdGhl IHByb3RvY29sIGV4dGVuc2lvbiA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9s aXRlcmFsPiBpcworICAgICAgZW5hYmxlZCAoc2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJw cm90b2NvbC10cmFuc3BhcmVudC1jb2x1bW4tZW5jcnlwdGlvbi1mbG93Ii8+KSwgdGhlbiB0 aGVyZSBpcworICAgICAgYWxzbyB0aGUgZm9sbG93aW5nIGZvciBlYWNoIGZpZWxkOgorICAg ICA8L3BhcmE+CisKKyAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICA8cGFyYT4KKyAgICAgICAgIElmIHRoZSBmaWVsZCBpcyBlbmNyeXB0ZWQsIHRoaXMgc3Bl Y2lmaWVzIHRoZSBpZGVudGlmaWVyIG9mIHRoZQorICAgICAgICAgY29sdW1uIGVuY3J5cHRp b24ga2V5IHRvIHVzZSwgZWxzZSB6ZXJvLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgPHBhcmE+CisgICAgICAgICBJZiB0aGUgZmllbGQgaXMgZW5jcnlwdGVkLCB0aGlzIHNw ZWNpZmllcyB0aGUgaWRlbnRpZmllciBvZiB0aGUKKyAgICAgICAgIGVuY3J5cHQgYWxnb3Jp dGhtLCBlbHNlIHplcm8uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgor ICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0PgogICAgIDwvbGlz dGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApAQCAtNzM0Myw2ICs3NjE1LDE3NiBAQCA8 dGl0bGU+TG9naWNhbCBSZXBsaWNhdGlvbiBNZXNzYWdlIEZvcm1hdHM8L3RpdGxlPgogICA8 L3ZhcmlhYmxlbGlzdD4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJwcm90b2NvbC10cmFu c3BhcmVudC1jb2x1bW4tZW5jcnlwdGlvbi1jcnlwdG8iPgorICA8dGl0bGU+VHJhbnNwYXJl bnQgQ29sdW1uIEVuY3J5cHRpb24gQ3J5cHRvZ3JhcGh5PC90aXRsZT4KKworICA8cGFyYT4K KyAgIFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9u cyB1c2VkIGJ5IHRyYW5zcGFyZW50CisgICBjb2x1bW4gZW5jcnlwdGlvbi4gIEEgY2xpZW50 IHRoYXQgc3VwcG9ydHMgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24KKyAgIG5lZWRz IHRvIGltcGxlbWVudCB0aGVzZSBvcGVyYXRpb25zIGFzIHNwZWNpZmllZCBoZXJlIGluIG9y ZGVyIHRvIGJlIGFibGUKKyAgIHRvIGludGVyb3BlcmF0ZSB3aXRoIG90aGVyIGNsaWVudHMu CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIENvbHVtbiBlbmNyeXB0aW9uIGtleSBhbGdv cml0aG1zIGFuZCBjb2x1bW4gbWFzdGVyIGtleSBhbGdvcml0aG1zIGFyZQorICAgaWRlbnRp ZmllZCBieSBpbnRlZ2VycyBpbiB0aGUgcHJvdG9jb2wgbWVzc2FnZXMgYW5kIHRoZSBzeXN0 ZW0gY2F0YWxvZ3MuCisgICBBZGRpdGlvbmFsIGFsZ29yaXRobXMgbWF5IGJlIGFkZGVkIHRv IHRoaXMgcHJvdG9jb2wgc3BlY2lmaWNhdGlvbiB3aXRob3V0IGEKKyAgIGNoYW5nZSBpbiB0 aGUgcHJvdG9jb2wgdmVyc2lvbiBudW1iZXIuICBDbGllbnRzIHNob3VsZCBpbXBsZW1lbnQg c3VwcG9ydAorICAgZm9yIGFsbCB0aGUgYWxnb3JpdGhtcyBzcGVjaWZpZWQgaGVyZS4gIElm IGEgY2xpZW50IGVuY291bnRlcnMgYW4gYWxnb3JpdGhtCisgICBpZGVudGlmaWVyIGl0IGRv ZXMgbm90IHJlY29nbml6ZSBvciBkb2VzIG5vdCBzdXBwb3J0LCBpdCBtdXN0IHJhaXNlIGFu CisgICBlcnJvci4gIEEgc3VpdGFibGUgZXJyb3IgbWVzc2FnZSBzaG91bGQgYmUgcHJvdmlk ZWQgdG8gdGhlIGFwcGxpY2F0aW9uIG9yCisgICB1c2VyLgorICA8L3BhcmE+CisKKyAgPHNl Y3QyIGlkPSJwcm90b2NvbC1jbWsiPgorICAgPHRpdGxlPkNvbHVtbiBNYXN0ZXIgS2V5czwv dGl0bGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSBjdXJyZW50bHkgZGVmaW5lZCBhbGdvcml0 aG1zIGZvciBjb2x1bW4gbWFzdGVyIGtleXMgYXJlIGxpc3RlZCBpbgorICAgIDx4cmVmIGxp bmtlbmQ9InByb3RvY29sLWNtay10YWJsZSIvPi4KKyAgIDwvcGFyYT4KKworICAgPCEtLSBz ZWUgYWxzbyBzcmMvaW5jbHVkZS9jb21tb24vY29sZW5jLmggLS0+CisKKyAgIDx0YWJsZSBp ZD0icHJvdG9jb2wtY21rLXRhYmxlIj4KKyAgICA8dGl0bGU+Q29sdW1uIE1hc3RlciBLZXkg QWxnb3JpdGhtczwvdGl0bGU+CisgICAgPHRncm91cCBjb2xzPSI0Ij4KKyAgICAgPHRoZWFk PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+UG9zdGdyZVNRTCBJRDwvZW50cnk+Cisg ICAgICAgPGVudHJ5Pk5hbWU8L2VudHJ5PgorICAgICAgIDxlbnRyeT5KV0EgKDx1bGluayB1 cmw9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3NTE4Ij5SRkMgNzUxODwvdWxp bms+KSBuYW1lPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5Pgor ICAgICAgPC9yb3c+CisgICAgIDwvdGhlYWQ+CisgICAgIDx0Ym9keT4KKyAgICAgIDxyb3c+ CisgICAgICAgPGVudHJ5PjE8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD51bnNw ZWNpZmllZDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT4obm9uZSk8L2VudHJ5 PgorICAgICAgIDxlbnRyeT5pbnRlcnByZXRlZCBieSBjbGllbnQ8L2VudHJ5PgorICAgICAg PC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4yPC9lbnRyeT4KKyAgICAgICA8 ZW50cnk+PGxpdGVyYWw+UlNBRVNfT0FFUF9TSEFfMTwvbGl0ZXJhbD48L2VudHJ5PgorICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5SU0EtT0FFUDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAg IDxlbnRyeT5SU0FFUyBPQUVQIHVzaW5nIGRlZmF1bHQgcGFyYW1ldGVycyAoPHVsaW5rCisg ICAgICAgdXJsPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODAxNyI+UkZDIDgw MTc8L3VsaW5rPi9QS0NTICMxKTwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+ CisgICAgICAgPGVudHJ5PjM8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5SU0FF U19PQUVQX1NIQV8yNTY8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVy YWw+UlNBLU9BRVAtMjU2PC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5PlJTQUVT IE9BRVAgdXNpbmcgU0hBLTI1NiBhbmQgTUdGMSB3aXRoIFNIQS0yNTYgKDx1bGluaworICAg ICAgIHVybD0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzgwMTciPlJGQworICAg ICAgIDgwMTc8L3VsaW5rPi9QS0NTICMxKTwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAg PC90Ym9keT4KKyAgICA8L3Rncm91cD4KKyAgIDwvdGFibGU+CisgIDwvc2VjdDI+CisKKyAg PHNlY3QyIGlkPSJwcm90b2NvbC1jZWsiPgorICAgPHRpdGxlPkNvbHVtbiBFbmNyeXB0aW9u IEtleXM8L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBUaGUgY3VycmVudGx5IGRlZmluZWQg YWxnb3JpdGhtcyBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5cyBhcmUgbGlzdGVkIGluCisg ICAgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtY2VrLXRhYmxlIi8+LgorICAgPC9wYXJhPgor CisgICA8IS0tIHNlZSBhbHNvIHNyYy9pbmNsdWRlL2NvbW1vbi9jb2xlbmMuaCAtLT4KKwor ICAgPHBhcmE+CisgICAgVGhlIGtleSBtYXRlcmlhbCBvZiBhIGNvbHVtbiBlbmNyeXB0aW9u IGtleSBjb25zaXN0cyBvZiB0aHJlZSBjb21wb25lbnRzLAorICAgIGNvbmNhdGVuYXRlZCBp biB0aGlzIG9yZGVyOiB0aGUgTUFDIGtleSwgdGhlIGVuY3J5cHRpb24ga2V5LCBhbmQgdGhl IElWCisgICAga2V5LiAgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtY2VrLXRhYmxlIi8+IHNo b3dzIHRoZSB0b3RhbCBsZW5ndGggdGhhdCBhCisgICAga2V5IGdlbmVyYXRlZCBmb3IgZWFj aCBhbGdvcml0aG0gaXMgcmVxdWlyZWQgdG8gaGF2ZS4gIFRoZSBNQUMga2V5IGFuZCB0aGUK KyAgICBlbmNyeXB0aW9uIGtleSBhcmUgdXNlZCBieSB0aGUgcmVmZXJlbmNlZCBlbmNyeXB0 aW9uIGFsZ29yaXRobXM7IHNlZSB0aGVyZQorICAgIGZvciBkZXRhaWxzLiAgVGhlIElWIGtl eSBpcyB1c2VkIGZvciBjb21wdXRpbmcgdGhlIHN0YXRpYyBpbml0aWFsaXphdGlvbgorICAg IHZlY3RvciBmb3IgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uOyBpdCBpcyB1bnVzZWQgZm9y IHJhbmRvbWl6ZWQKKyAgICBlbmNyeXB0aW9uLgorICAgPC9wYXJhPgorCisgICA8IS0tIHNl ZSBhbHNvIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtbWNn cmV3LWFlYWQtYWVzLWNiYy1obWFjLXNoYTItMDUjc2VjdGlvbi0yLjggLS0+CisgICA8dGFi bGUgaWQ9InByb3RvY29sLWNlay10YWJsZSI+CisgICAgPHRpdGxlPkNvbHVtbiBFbmNyeXB0 aW9uIEtleSBBbGdvcml0aG1zPC90aXRsZT4KKyAgICA8dGdyb3VwIGNvbHM9IjciPgorICAg ICA8dGhlYWQ+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5Qb3N0Z3JlU1FMIElEPC9l bnRyeT4KKyAgICAgICA8ZW50cnk+TmFtZTwvZW50cnk+CisgICAgICAgPGVudHJ5PkRlc2Ny aXB0aW9uPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+TUFDIGtleSBsZW5ndGggKG9jdGV0cyk8 L2VudHJ5PgorICAgICAgIDxlbnRyeT5FbmNyeXB0aW9uIGtleSBsZW5ndGggKG9jdGV0cyk8 L2VudHJ5PgorICAgICAgIDxlbnRyeT5JViBrZXkgbGVuZ3RoIChvY3RldHMpPC9lbnRyeT4K KyAgICAgICA8ZW50cnk+VG90YWwga2V5IGxlbmd0aCAob2N0ZXRzKTwvZW50cnk+CisgICAg ICA8L3Jvdz4KKyAgICAgPC90aGVhZD4KKyAgICAgPHRib2R5PgorICAgICAgPHJvdz4KKyAg ICAgICA8ZW50cnk+MzI3Njg8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFE X0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxl bnRyeT48dWxpbmsgdXJsPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1s L2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+MTY8L2VudHJ5PgorICAgICAgIDxlbnRyeT4xNjwvZW50cnk+CisgICAg ICAgPGVudHJ5PjE2PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+NDg8L2VudHJ5PgorICAgICAg PC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4zMjc2OTwvZW50cnk+CisgICAg ICAgPGVudHJ5PjxsaXRlcmFsPkFFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0PC9saXRl cmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx1bGluayB1cmw9Imh0dHBzOi8vZGF0YXRy YWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtbWNncmV3LWFlYWQtYWVzLWNiYy1obWFj LXNoYTItMDUiLz48L2VudHJ5PgorICAgICAgIDxlbnRyeT4yNDwvZW50cnk+CisgICAgICAg PGVudHJ5PjI0PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MjQ8L2VudHJ5PgorICAgICAgIDxl bnRyeT43MjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVu dHJ5PjMyNzcwPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+QUVBRF9BRVNfMjU2 X0NCQ19ITUFDX1NIQV8zODQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHVs aW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1t Y2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIvPjwvZW50cnk+CisgICAgICAgPGVu dHJ5PjI0PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MzI8L2VudHJ5PgorICAgICAgIDxlbnRy eT4yNDwvZW50cnk+CisgICAgICAgPGVudHJ5PjkwPC9lbnRyeT4KKyAgICAgIDwvcm93Pgor ICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+MzI3NzE8L2VudHJ5PgorICAgICAgIDxlbnRy eT48bGl0ZXJhbD5BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjwvbGl0ZXJhbD48L2Vu dHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJsPSJodHRwczovL2RhdGF0cmFja2VyLmll dGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1 Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MzI8L2VudHJ5PgorICAgICAgIDxlbnRyeT4z MjwvZW50cnk+CisgICAgICAgPGVudHJ5PjMyPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+OTY8 L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgIDwvdGJvZHk+CisgICAgPC90Z3JvdXA+Cisg ICA8L3RhYmxlPgorCisgICA8cGFyYT4KKyAgICBUaGUgPHF1b3RlPmFzc29jaWF0ZWQgZGF0 YTwvcXVvdGU+IGluIHRoZXNlIGFsZ29yaXRobXMgY29uc2lzdHMgb2YgNAorICAgIGJ5dGVz OiBUaGUgQVNDSUkgbGV0dGVycyA8bGl0ZXJhbD5QPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+ RzwvbGl0ZXJhbD4KKyAgICAoYnl0ZSB2YWx1ZXMgODAgYW5kIDcxKSwgZm9sbG93ZWQgYnkg dGhlIHZlcnNpb24gbnVtYmVyIGFzIGEgMTYtYml0CisgICAgdW5zaWduZWQgaW50ZWdlciBp biBuZXR3b3JrIGJ5dGUgb3JkZXIuICBUaGUgdmVyc2lvbiBudW1iZXIgaXMgY3VycmVudGx5 CisgICAgYWx3YXlzIDEuICAoVGhpcyBpcyBpbnRlbmRlZCB0byBhbGxvdyBmb3IgcG9zc2li bGUgaW5jb21wYXRpYmxlIGNoYW5nZXMgb3IKKyAgICBleHRlbnNpb25zIGluIHRoZSBmdXR1 cmUuKQorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgbGVuZ3RoIG9mIHRoZSBp bml0aWFsaXphdGlvbiB2ZWN0b3IgaXMgMTYgb2N0ZXRzIGZvciBhbGwgQ0VLIGFsZ29yaXRo bQorICAgIHZhcmlhbnRzLiAgRm9yIHJhbmRvbWl6ZWQgZW5jcnlwdGlvbiwgdGhlIGluaXRp YWxpemF0aW9uIHZlY3RvciBzaG91bGQgYmUKKyAgICAoY3J5cHRvZ3JhcGhpY2FsbHkgc3Ry b25nKSByYW5kb20gYnl0ZXMuICBGb3IgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uLAorICAg IHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgaXMgY29uc3RydWN0ZWQgYXMKKzxwcm9ncmFt bGlzdGluZz4KK1NVQlNUUklORyg8cmVwbGFjZWFibGU+SE1BQzwvcmVwbGFjZWFibGU+KDxy ZXBsYWNlYWJsZT5LPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZT5QPC9yZXBsYWNlYWJs ZT4pIEZPUiA8cmVwbGFjZWFibGU+SVZMRU48L3JlcGxhY2VhYmxlPikKKzwvcHJvZ3JhbWxp c3Rpbmc+CisgICAgd2hlcmUgPHJlcGxhY2VhYmxlPkhNQUM8L3JlcGxhY2VhYmxlPiBpcyB0 aGUgSE1BQyBmdW5jdGlvbiBhc3NvY2lhdGVkIHdpdGgKKyAgICB0aGUgYWxnb3JpdGhtLCA8 cmVwbGFjZWFibGU+SzwvcmVwbGFjZWFibGU+IGlzIHRoZSBJViBrZXksIGFuZAorICAgIDxy ZXBsYWNlYWJsZT5QPC9yZXBsYWNlYWJsZT4gaXMgdGhlIHBsYWludGV4dCB0byBiZSBlbmNy eXB0ZWQuCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBp ZD0icHJvdG9jb2wtY2hhbmdlcyI+CiAgIDx0aXRsZT5TdW1tYXJ5IG9mIENoYW5nZXMgc2lu Y2UgUHJvdG9jb2wgMi4wPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9hbGxmaWxlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4 IGU5MGEwZTFmODMuLjMzMWIxZjAxMGIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv YWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAg LTgsNiArOCw4IEBACiA8IUVOVElUWSBhYm9ydCAgICAgICAgICAgICAgU1lTVEVNICJhYm9y dC5zZ21sIj4KIDwhRU5USVRZIGFsdGVyQWdncmVnYXRlICAgICBTWVNURU0gImFsdGVyX2Fn Z3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyQ29sbGF0aW9uICAgICBTWVNURU0gImFs dGVyX2NvbGxhdGlvbi5zZ21sIj4KKzwhRU5USVRZIGFsdGVyQ29sdW1uRW5jcnlwdGlvbktl eSBTWVNURU0gImFsdGVyX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIj4KKzwhRU5USVRZ IGFsdGVyQ29sdW1uTWFzdGVyS2V5IFNZU1RFTSAiYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXku c2dtbCI+CiA8IUVOVElUWSBhbHRlckNvbnZlcnNpb24gICAgU1lTVEVNICJhbHRlcl9jb252 ZXJzaW9uLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJEYXRhYmFzZSAgICAgIFNZU1RFTSAiYWx0 ZXJfZGF0YWJhc2Uuc2dtbCI+CiA8IUVOVElUWSBhbHRlckRlZmF1bHRQcml2aWxlZ2VzIFNZ U1RFTSAiYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwiPgpAQCAtNjIsNiArNjQsOCBA QAogPCFFTlRJVFkgY3JlYXRlQWdncmVnYXRlICAgIFNZU1RFTSAiY3JlYXRlX2FnZ3JlZ2F0 ZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZUNhc3QgICAgICAgICBTWVNURU0gImNyZWF0ZV9j YXN0LnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlQ29sbGF0aW9uICAgIFNZU1RFTSAiY3JlYXRl X2NvbGxhdGlvbi5zZ21sIj4KKzwhRU5USVRZIGNyZWF0ZUNvbHVtbkVuY3J5cHRpb25LZXkg U1lTVEVNICJjcmVhdGVfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwiPgorPCFFTlRJVFkg Y3JlYXRlQ29sdW1uTWFzdGVyS2V5IFNZU1RFTSAiY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5 LnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlQ29udmVyc2lvbiAgIFNZU1RFTSAiY3JlYXRlX2Nv bnZlcnNpb24uc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVEYXRhYmFzZSAgICAgU1lTVEVNICJj cmVhdGVfZGF0YWJhc2Uuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVEb21haW4gICAgICAgU1lT VEVNICJjcmVhdGVfZG9tYWluLnNnbWwiPgpAQCAtMTA5LDYgKzExMyw4IEBACiA8IUVOVElU WSBkcm9wQWdncmVnYXRlICAgICAgU1lTVEVNICJkcm9wX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwh RU5USVRZIGRyb3BDYXN0ICAgICAgICAgICBTWVNURU0gImRyb3BfY2FzdC5zZ21sIj4KIDwh RU5USVRZIGRyb3BDb2xsYXRpb24gICAgICBTWVNURU0gImRyb3BfY29sbGF0aW9uLnNnbWwi PgorPCFFTlRJVFkgZHJvcENvbHVtbkVuY3J5cHRpb25LZXkgU1lTVEVNICJkcm9wX2NvbHVt bl9lbmNyeXB0aW9uX2tleS5zZ21sIj4KKzwhRU5USVRZIGRyb3BDb2x1bW5NYXN0ZXJLZXkg U1lTVEVNICJkcm9wX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwiPgogPCFFTlRJVFkgZHJvcENv bnZlcnNpb24gICAgIFNZU1RFTSAiZHJvcF9jb252ZXJzaW9uLnNnbWwiPgogPCFFTlRJVFkg ZHJvcERhdGFiYXNlICAgICAgIFNZU1RFTSAiZHJvcF9kYXRhYmFzZS5zZ21sIj4KIDwhRU5U SVRZIGRyb3BEb21haW4gICAgICAgICBTWVNURU0gImRyb3BfZG9tYWluLnNnbWwiPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fZW5jcnlwdGlvbl9rZXku c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNn bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNzU5N2NkODBjYQot LS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5 cHRpb25fa2V5LnNnbWwKQEAgLTAsMCArMSwxODYgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1l bnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWFsdGVyLWNvbHVtbi1lbmNyeXB0 aW9uLWtleSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtYWx0ZXItY29sdW1uLWVuY3J5cHRp b24ta2V5Ij4KKyAgPHByaW1hcnk+QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9wcmlt YXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkFM VEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51 bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1l bnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJl Zm5hbWU+QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9yZWZuYW1lPgorICA8cmVmcHVy cG9zZT5jaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXk8 L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5 bm9wc2lzPgorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIDxyZXBsYWNlYWJsZT5uYW1l PC9yZXBsYWNlYWJsZT4gQUREIFZBTFVFICgKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IDxy ZXBsYWNlYWJsZT5jbWs8L3JlcGxhY2VhYmxlPiwKKyAgICBbIEFMR09SSVRITSA9IDxyZXBs YWNlYWJsZT5hbGdvcml0aG08L3JlcGxhY2VhYmxlPiwgXQorICAgIEVOQ1JZUFRFRF9WQUxV RSA9IDxyZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxlPgorKQorCitBTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBEUk9Q IFZBTFVFICgKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IDxyZXBsYWNlYWJsZT5jbWs8L3Jl cGxhY2VhYmxlPgorKQorCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgPHJlcGxhY2Vh YmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHJlcGxhY2VhYmxlPm5ld19uYW1l PC9yZXBsYWNlYWJsZT4KK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFi bGU+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRPIHsgPHJlcGxhY2VhYmxlPm5ld19vd25l cjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xFIHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lP Tl9VU0VSIH0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0 MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21t YW5kPkFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvY29tbWFuZD4gY2hhbmdlcyB0aGUg ZGVmaW5pdGlvbiBvZiBhCisgICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgIDwvcGFyYT4K KworICA8cGFyYT4KKyAgIFRoZSBmaXJzdCBmb3JtIGFkZHMgbmV3IGVuY3J5cHRlZCBrZXkg ZGF0YSB0byBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleSwKKyAgIHdoaWNoIG11c3QgYmUgZW5j cnlwdGVkIHdpdGggYSBkaWZmZXJlbnQgY29sdW1uIG1hc3RlciBrZXkgdGhhbiB0aGUKKyAg IGV4aXN0aW5nIGtleSBkYXRhLiAgVGhlIHNlY29uZCBmb3JtIHJlbW92ZXMgYSBrZXkgZGF0 YSBlbnRyeSBmb3IgYSBnaXZlbgorICAgY29sdW1uIG1hc3RlciBrZXkuICBUb2dldGhlciwg dGhlc2UgZm9ybXMgY2FuIGJlIHVzZWQgZm9yIGNvbHVtbiBtYXN0ZXIga2V5CisgICByb3Rh dGlvbi4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgWW91IG11c3Qgb3duIHRoZSBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgdG8gdXNlIDxjb21tYW5kPkFMVEVSIENPTFVNTgorICAgRU5D UllQVElPTiBLRVk8L2NvbW1hbmQ+LiAgVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVzdCBh bHNvIGJlIGEgZGlyZWN0IG9yCisgICBpbmRpcmVjdCBtZW1iZXIgb2YgdGhlIG5ldyBvd25p bmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUKKyAgIDxsaXRlcmFsPkNSRUFURTwv bGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkncworICAg ZGF0YWJhc2UuICAoVGhlc2UgcmVzdHJpY3Rpb25zIGVuZm9yY2UgdGhhdCBhbHRlcmluZyB0 aGUgb3duZXIgZG9lc24ndCBkbworICAgYW55dGhpbmcgeW91IGNvdWxkbid0IGRvIGJ5IGRy b3BwaW5nIGFuZCByZWNyZWF0aW5nIHRoZSBjb2x1bW4gZW5jcnlwdGlvbgorICAga2V5LiAg SG93ZXZlciwgYSBzdXBlcnVzZXIgY2FuIGFsdGVyIG93bmVyc2hpcCBvZiBhbnkgY29sdW1u IGVuY3J5cHRpb24ga2V5CisgICBhbnl3YXkuKQorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4K KworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJp YWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNvbHVt biBlbmNyeXB0aW9uIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFj ZWFibGU+Y21rPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IHRoYXQg d2FzIHVzZWQgdG8gZW5jcnlwdCB0aGlzIGNvbHVtbgorICAgICAgZW5jcnlwdGlvbiBrZXku CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPmFsZ29yaXRobTwv cmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIFRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSB0aGF0IHdhcyB1c2VkIHRvIGVuY3J5cHQg dGhlIGtleSBtYXRlcmlhbCBvZgorICAgICAgdGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBrZXku ICBTZWUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5cHRp b24ta2V5Ii8+IGZvciBkZXRhaWxzCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJl cGxhY2VhYmxlPmVuY3ZhbDwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxpc3RpdGVt PgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBrZXkgbWF0ZXJpYWwgb2YgdGhpcyBjb2x1bW4g ZW5jcnlwdGlvbiBrZXksIGVuY3J5cHRlZCB3aXRoIHRoZQorICAgICAgc3BlY2lmaWVkIGNv bHVtbiBtYXN0ZXIga2V5IHVzaW5nIHRoZSBzcGVjaWZpZWQgYWxnb3JpdGhtLiAgVGhlIHZh bHVlCisgICAgICBtdXN0IGJlIGEgPHR5cGU+Ynl0ZWE8L3R5cGU+LWNvbXBhdGlibGUgbGl0 ZXJhbC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0 ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5ldyBuYW1lIG9mIHRoZSBjb2x1bW4gZW5j cnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAg IDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmV3IG93bmVyIG9mIHRoZSBj b2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisK KyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cisg ICBUbyByb3RhdGUgdGhlIG1hc3RlciBrZXlzIHVzZWQgdG8gZW5jcnlwdCBhIGdpdmVuIGNv bHVtbiBlbmNyeXB0aW9uIGtleSwKKyAgIHVzZSBhIGNvbW1hbmQgc2VxdWVuY2UgbGlrZSB0 aGlzOgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl azEgQUREIFZBTFVFICgKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IGNtazIsCisgICAgRU5D UllQVEVEX1ZBTFVFID0gJ1x4MDEwMjAyMDQuLi4nCispOworCitBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFICgKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9 IGNtazEKKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+Cisg ICBUbyByZW5hbWUgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSA8bGl0ZXJhbD5jZWsxPC9s aXRlcmFsPiB0bworICAgPGxpdGVyYWw+Y2VrMjwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rp bmc+CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBSRU5BTUUgVE8gY2VrMjsK KzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIGNoYW5n ZSB0aGUgb3duZXIgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSA8bGl0ZXJhbD5jZWsx PC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+am9lPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlz dGluZz4KK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIE9XTkVSIFRPIGpvZTsK KzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJl IGlzIG5vIDxjb21tYW5kPkFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvY29tbWFuZD4g c3RhdGVtZW50IGluIHRoZQorICAgU1FMIHN0YW5kYXJkLgorICA8L3BhcmE+CisgPC9yZWZz ZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8 c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJz cWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPjwvbWVtYmVyPgorICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcC1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiLz48L21l bWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fbWFzdGVyX2tleS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjM3MDM0N2VjOWMKLS0tIC9kZXYv bnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2NvbHVtbl9tYXN0ZXJfa2V5LnNn bWwKQEAgLTAsMCArMSwxMjQgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29s dW1uX21hc3Rlcl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKwor PHJlZmVudHJ5IGlkPSJzcWwtYWx0ZXItY29sdW1uLW1hc3Rlci1rZXkiPgorIDxpbmRleHRl cm0gem9uZT0ic3FsLWFsdGVyLWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyAgPHByaW1hcnk+QUxU RVIgQ09MVU1OIE1BU1RFUiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVm bWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+QUxURVIgQ09MVU1OIE1BU1RFUiBLRVk8L3JlZmVu dHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+ U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgor CisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkFMVEVSIENPTFVNTiBNQVNURVIgS0VZPC9y ZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgYSBjb2x1 bW4gbWFzdGVyIGtleTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lu b3BzaXNkaXY+Cis8c3lub3BzaXM+CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSA8cmVwbGFj ZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+ICggUkVBTE0gPSA8cmVwbGFjZWFibGU+cmVhbG08 L3JlcGxhY2VhYmxlPiApCisKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIDxyZXBsYWNlYWJs ZT5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyZXBsYWNlYWJsZT5uZXdfbmFtZTwv cmVwbGFjZWFibGU+CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSA8cmVwbGFjZWFibGU+bmFt ZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRPIHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwvcmVw bGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xFIHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VS IH0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkFM VEVSIENPTFVNTiBNQVNURVIgS0VZPC9jb21tYW5kPiBjaGFuZ2VzIHRoZSBkZWZpbml0aW9u IG9mIGEKKyAgIGNvbHVtbiBtYXN0ZXIga2V5LgorICA8L3BhcmE+CisKKyAgPHBhcmE+Cisg ICBUaGUgZmlyc3QgZm9ybSBjaGFuZ2VzIHRoZSBwYXJhbWV0ZXJzIG9mIGEgY29sdW1uIG1h c3RlciBrZXkuICBTZWUgPHhyZWYKKyAgIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLW1h c3Rlci1rZXkiLz4gZm9yIGRldGFpbHMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFlv dSBtdXN0IG93biB0aGUgY29sdW1uIG1hc3RlciBrZXkgdG8gdXNlIDxjb21tYW5kPkFMVEVS IENPTFVNTiBNQVNURVIKKyAgIEtFWTwvY29tbWFuZD4uICBUbyBhbHRlciB0aGUgb3duZXIs IHlvdSBtdXN0IGFsc28gYmUgYSBkaXJlY3Qgb3IgaW5kaXJlY3QKKyAgIG1lbWJlciBvZiB0 aGUgbmV3IG93bmluZyByb2xlLCBhbmQgdGhhdCByb2xlIG11c3QgaGF2ZQorICAgPGxpdGVy YWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIGNvbHVtbiBtYXN0ZXIga2V5 J3MgZGF0YWJhc2UuCisgICAoVGhlc2UgcmVzdHJpY3Rpb25zIGVuZm9yY2UgdGhhdCBhbHRl cmluZyB0aGUgb3duZXIgZG9lc24ndCBkbyBhbnl0aGluZyB5b3UKKyAgIGNvdWxkbid0IGRv IGJ5IGRyb3BwaW5nIGFuZCByZWNyZWF0aW5nIHRoZSBjb2x1bW4gbWFzdGVyIGtleS4gIEhv d2V2ZXIsIGEKKyAgIHN1cGVydXNlciBjYW4gYWx0ZXIgb3duZXJzaGlwIG9mIGFueSBjb2x1 bW4gbWFzdGVyIGtleSBhbnl3YXkuKQorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxp c3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIChvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZp ZWQpIG9mIGFuIGV4aXN0aW5nIGNvbHVtbiBtYXN0ZXIga2V5LgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5 PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwv cmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBUaGUgbmV3IG5hbWUgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5LgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3du ZXI8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhlIG5ldyBvd25lciBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkuCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFi bGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxl czwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyByZW5hbWUgdGhlIGNvbHVtbiBtYXN0ZXIg a2V5IDxsaXRlcmFsPmNtazE8L2xpdGVyYWw+IHRvCisgICA8bGl0ZXJhbD5jbWsyPC9saXRl cmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazEg UkVOQU1FIFRPIGNtazI7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBh cmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBjb2x1bW4gbWFzdGVyIGtleSA8 bGl0ZXJhbD5jbWsxPC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+am9lPC9saXRlcmFsPjoK Kzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazEgT1dORVIg VE8gam9lOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgor ICAgVGhlcmUgaXMgbm8gPGNvbW1hbmQ+QUxURVIgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1h bmQ+IHN0YXRlbWVudCBpbiB0aGUKKyAgIFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisK KyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2Vu ZD0ic3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVyPgorICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcC1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVy PgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+CmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY29w eS5zZ21sCmluZGV4IGMyNWI1MmQwY2IuLjhjNDYxYjhmMTUgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvY29weS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21s CkBAIC01NTUsNiArNTU1LDE1IEBAIDx0aXRsZT5Ob3RlczwvdGl0bGU+CiAgICAgbnVsbCBz dHJpbmdzIHRvIG51bGwgdmFsdWVzIGFuZCB1bnF1b3RlZCBudWxsIHN0cmluZ3MgdG8gZW1w dHkgc3RyaW5ncy4KICAgIDwvcGFyYT4KIAorICAgPHBhcmE+CisgICAgPGNvbW1hbmQ+Q09Q WTwvY29tbWFuZD4gZG9lcyBub3Qgc3VwcG9ydCB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlw dGlvbiBvcgorICAgIGRlY3J5cHRpb247IGl0cyBpbnB1dCBvciBvdXRwdXQgZGF0YSB3aWxs IGFsd2F5cyBiZSB0aGUgY2lwaGVydGV4dC4gIFRoaXMKKyAgICBpcyB1c3VhbGx5IHN1aXRh YmxlIGZvciBiYWNrdXBzIChzZWUgYWxzbyA8eHJlZiBsaW5rZW5kPSJhcHAtcGdkdW1wIi8+ KS4KKyAgICBJZiB0cmFuc3BhcmVudCBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24gaXMgd2Fu dGVkLAorICAgIDxjb21tYW5kPklOU0VSVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPlNFTEVD VDwvY29tbWFuZD4gbmVlZCB0byBiZSB1c2VkCisgICAgaW5zdGVhZCB0byB3cml0ZSBhbmQg cmVhZCB0aGUgZGF0YS4KKyAgIDwvcGFyYT4KKwogIDwvcmVmc2VjdDE+CiAKICA8cmVmc2Vj dDE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlw dGlvbl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9lbmNyeXB0 aW9uX2tleS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjcy ZTdjZTc0ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9j b2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApAQCAtMCwwICsxLDE2OCBAQAorPCEtLQorZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKK1Bvc3Rn cmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWNyZWF0ZS1j b2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZS1j b2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICA8cHJpbWFyeT5DUkVBVEUgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxy ZWZlbnRyeXRpdGxlPkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3JlZmVudHJ5dGl0 bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0g TGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJl Zm5hbWVkaXY+CisgIDxyZWZuYW1lPkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3Jl Zm5hbWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBhIG5ldyBjb2x1bW4gZW5jcnlwdGlvbiBr ZXk8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2Pgor PHN5bm9wc2lzPgorQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+ bmFtZTwvcmVwbGFjZWFibGU+IFdJVEggVkFMVUVTICgKKyAgICBDT0xVTU5fTUFTVEVSX0tF WSA9IDxyZXBsYWNlYWJsZT5jbWs8L3JlcGxhY2VhYmxlPiwKKyAgICBbIEFMR09SSVRITSA9 IDxyZXBsYWNlYWJsZT5hbGdvcml0aG08L3JlcGxhY2VhYmxlPiwgXQorICAgIEVOQ1JZUFRF RF9WQUxVRSA9IDxyZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxlPgorKQorWyAsIC4u LiBdCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5D UkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiBkZWZpbmVzIGEgbmV3IGNv bHVtbgorICAgZW5jcnlwdGlvbiBrZXkuICBBIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBpcyB1 c2VkIGZvciBjbGllbnQtc2lkZSBlbmNyeXB0aW9uCisgICBvZiB0YWJsZSBjb2x1bW5zIHRo YXQgaGF2ZSBiZWVuIGRlZmluZWQgYXMgZW5jcnlwdGVkLiAgVGhlIGtleSBtYXRlcmlhbCBv ZgorICAgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgaXMgc3RvcmVkIGluIHRoZSBkYXRhYmFz ZSdzIHN5c3RlbSBjYXRhbG9ncywKKyAgIGVuY3J5cHRlZCAod3JhcHBlZCkgYnkgYSBjb2x1 bW4gbWFzdGVyIGtleSAod2hpY2ggaW4gdHVybiBpcyBvbmx5CisgICBhY2Nlc3NpYmxlIHRv IHRoZSBjbGllbnQsIG5vdCB0aGUgZGF0YWJhc2Ugc2VydmVyKS4KKyAgPC9wYXJhPgorCisg IDxwYXJhPgorICAgQSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgY2FuIGJlIGFzc29jaWF0ZWQg d2l0aCBtb3JlIHRoYW4gb25lIGNvbHVtbiBtYXN0ZXIKKyAgIGtleS4gIFRvIHNwZWNpZnkg dGhhdCwgc3BlY2lmeSBtb3JlIHRoYW4gb25lIHBhcmVudGhlc2l6ZWQgZGVmaW5pdGlvbiAo c2VlCisgICBhbHNvIHRoZSBleGFtcGxlcykuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlh YmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPm5h bWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGUgbmFtZSBvZiB0aGUgbmV3IGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+Y21rPC9yZXBsYWNlYWJs ZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5h bWUgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IHRoYXQgd2FzIHVzZWQgdG8gZW5jcnlwdCB0 aGlzIGNvbHVtbgorICAgICAgZW5jcnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgPHRlcm0+PHJlcGxhY2VhYmxlPmFsZ29yaXRobTwvcmVwbGFjZWFibGU+PC90ZXJtPgor CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBlbmNyeXB0aW9uIGFs Z29yaXRobSB0aGF0IHdhcyB1c2VkIHRvIGVuY3J5cHQgdGhlIGtleSBtYXRlcmlhbCBvZgor ICAgICAgdGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuICBTdXBwb3J0ZWQgYWxnb3JpdGht cyBhcmU6CisgICAgICA8aXRlbWl6ZWRsaXN0PgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgPHBhcmE+PGxpdGVyYWw+dW5zcGVjaWZpZWQ8L2xpdGVyYWw+PC9wYXJhPgorICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT48bGl0ZXJh bD5SU0FFU19PQUVQX1NIQV8xPC9saXRlcmFsPjwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVt PgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+PGxpdGVyYWw+UlNBRVNfT0FF UF9TSEFfMjU2PC9saXRlcmFsPjwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAg PC9pdGVtaXplZGxpc3Q+CisgICAgIDwvcGFyYT4KKworICAgICA8cGFyYT4KKyAgICAgIFRo aXMgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiAgVGhlIHNwZWNpZmllZCB2YWx1ZSBpcyBwcm92 aWRlZCB0byB0aGUKKyAgICAgIGNsaWVudCwgd2hpY2ggbWF5IHVzZSBpdCBmb3IgZGVjcnlw dGluZyB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IG9uIHRoZQorICAgICAgY2xpZW50IHNp ZGUuICBCdXQgYSBjbGllbnQgaXMgYWxzbyBmcmVlIHRvIGlnbm9yZSB0aGlzIGluZm9ybWF0 aW9uIGFuZAorICAgICAgZmlndXJlIG91dCBob3cgdG8gYXJyYW5nZSB0aGUgZGVjcnlwdGlv biBpbiBzb21lIG90aGVyIHdheS4gIEluIHRoYXQKKyAgICAgIGNhc2UsIHNwZWNpZnlpbmcg dGhlIGFsZ29yaXRobSBhcyA8bGl0ZXJhbD51bnNwZWNpZmllZDwvbGl0ZXJhbD4gd291bGQg YmUKKyAgICAgIGFwcHJvcHJpYXRlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxy ZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRl bT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUga2V5IG1hdGVyaWFsIG9mIHRoaXMgY29sdW1u IGVuY3J5cHRpb24ga2V5LCBlbmNyeXB0ZWQgd2l0aCB0aGUKKyAgICAgIHNwZWNpZmllZCBj b2x1bW4gbWFzdGVyIGtleSB1c2luZyB0aGUgc3BlY2lmaWVkIGFsZ29yaXRobS4gIFRoZSB2 YWx1ZQorICAgICAgbXVzdCBiZSBhIDx0eXBlPmJ5dGVhPC90eXBlPi1jb21wYXRpYmxlIGxp dGVyYWwuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50 cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+ CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMgKAorICAg IENPTFVNTl9NQVNURVJfS0VZID0gY21rMSwKKyAgICBFTkNSWVBURURfVkFMVUUgPSAnXHgw MTAyMDIwNC4uLicKKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBh cmE+CisgICBUbyBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgYXNzb2NpYXRlZCBjb2x1bW4gbWFz dGVyIGtleToKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBL RVkgY2VrMSBXSVRIIFZBTFVFUyAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkgPSBjbWsxLAor ICAgIEVOQ1JZUFRFRF9WQUxVRSA9ICdceDAxMDIwMjA0Li4uJworKSwKKygKKyAgICBDT0xV TU5fTUFTVEVSX0tFWSA9IGNtazIsCisgICAgRU5DUllQVEVEX1ZBTFVFID0gJ1x4RjFGMkYy RjQuLi4nCispOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+ CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8 cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkNSRUFURSBDT0xVTU4gRU5DUllQVElP TiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgorICAgdGhlIFNRTCBzdGFuZGFyZC4KKyAg PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxz bzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+ PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVyLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPjwvbWVt YmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcC1jb2x1bW4tZW5jcnlw dGlvbi1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNy ZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+Cisg PC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLjZhMWUzYWQzNjAKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCkBAIC0wLDAgKzEsMTA2IEBA Cis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21s CitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1j cmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWNyZWF0 ZS1jb2x1bW4tbWFzdGVyLWtleSI+CisgIDxwcmltYXJ5PkNSRUFURSBDT0xVTU4gTUFTVEVS IEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50 cnl0aXRsZT5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L3JlZmVudHJ5dGl0bGU+CisgIDxt YW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2Ug U3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+ CisgIDxyZWZuYW1lPkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWTwvcmVmbmFtZT4KKyAgPHJl ZnB1cnBvc2U+ZGVmaW5lIGEgbmV3IGNvbHVtbiBtYXN0ZXIga2V5PC9yZWZwdXJwb3NlPgor IDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0NSRUFU RSBDT0xVTU4gTUFTVEVSIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFsg V0lUSCAoCisgICAgWyBSRUFMTSA9IDxyZXBsYWNlYWJsZT5yZWFsbTwvcmVwbGFjZWFibGU+ IF0KKykgXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1h bmQ+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZPC9jb21tYW5kPiBkZWZpbmVzIGEgbmV3IGNv bHVtbiBtYXN0ZXIKKyAgIGtleS4gIEEgY29sdW1uIG1hc3RlciBrZXkgaXMgdXNlZCB0byBl bmNyeXB0IGNvbHVtbiBlbmNyeXB0aW9uIGtleXMsIHdoaWNoCisgICBhcmUgdGhlIGtleXMg dGhhdCBhY3R1YWxseSBlbmNyeXB0IHRoZSBjb2x1bW4gZGF0YS4gIFRoZSBrZXkgbWF0ZXJp YWwgb2YKKyAgIHRoZSBjb2x1bW4gbWFzdGVyIGtleSBpcyBub3Qgc3RvcmVkIGluIHRoZSBk YXRhYmFzZS4gIFRoZSBkZWZpbml0aW9uIG9mIGEKKyAgIGNvbHVtbiBtYXN0ZXIga2V5IHJl Y29yZHMgaW5mb3JtYXRpb24gdGhhdCB3aWxsIGFsbG93IGEgY2xpZW50IHRvIGxvY2F0ZQor ICAgdGhlIGtleSBtYXRlcmlhbCwgZm9yIGV4YW1wbGUgaW4gYSBmaWxlIG9yIGluIGEga2V5 IG1hbmFnZW1lbnQgc3lzdGVtLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+ CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5uYW1lPC9yZXBs YWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhlIG5hbWUgb2YgdGhlIG5ldyBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICAgPC9wYXJhPgor ICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+cmVhbG08L3JlcGxhY2VhYmxlPjwvdGVybT4K KworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGlzIGFuIG9wdGlv bmFsIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGNvbHVtbiBtYXN0ZXIK KyAgICAgIGtleXMgaW50byBncm91cHMgZm9yIGxvb2t1cCBieSBjbGllbnRzLiAgVGhlIGlu dGVudCBpcyB0aGF0IGFsbCBjb2x1bW4KKyAgICAgIG1hc3RlciBrZXlzIHRoYXQgYXJlIHN0 b3JlZCBpbiB0aGUgc2FtZSBzeXN0ZW0gKGZpbGUgc3lzdGVtIGxvY2F0aW9uLAorICAgICAg a2V5IG1hbmFnZW1lbnQgc3lzdGVtLCBldGMuKSBzaG91bGQgYmUgaW4gdGhlIHNhbWUgcmVh bG0uICBBIGNsaWVudAorICAgICAgd291bGQgdGhlbiBiZSBjb25maWd1cmVkIHRvIGxvb2sg dXAgYWxsIGtleXMgaW4gYSBnaXZlbiByZWFsbSBpbiBhCisgICAgICBjZXJ0YWluIHdheS4g IFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgcmVzcGVjdGl2ZSBjbGllbnQgbGlicmFy eSBmb3IKKyAgICAgIGZ1cnRoZXIgdXNhZ2UgaW5zdHJ1Y3Rpb25zLgorICAgICA8L3BhcmE+ CisKKyAgICAgPHBhcmE+CisgICAgICBUaGUgZGVmYXVsdCBpcyB0aGUgZW1wdHkgc3RyaW5n LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor ICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+RXhhbXBsZXM8L3RpdGxlPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgQ09MVU1O IE1BU1RFUiBLRVkgY21rMSAocmVhbG0gPSAnbXlyZWFsbScpOworPC9wcm9ncmFtbGlzdGlu Zz4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0 eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5DUkVBVEUg Q09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgorICAgdGhlIFNRTCBz dGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4K KyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVyLWNvbHVtbi1tYXN0ZXIta2V5 Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wLWNvbHVt bi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1jcmVhdGUtY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxl bGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3RhYmxlLnNnbWwKaW5kZXggYzk4MjIzYjJhNS4uZTRiZjU0ZTJlNiAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC0yMiw3ICsyMiw3IEBACiAgPHJlZnN5bm9wc2lz ZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NBTCBdIHsgVEVNUE9S QVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+ICgg WwotICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVw bGFjZWFibGU+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3Jl cGxhY2VhYmxlPiBbIFNUT1JBR0UgeyBQTEFJTiB8IEVYVEVSTkFMIHwgRVhURU5ERUQgfCBN QUlOIHwgREVGQVVMVCB9IF0gWyBDT01QUkVTU0lPTiA8cmVwbGFjZWFibGU+Y29tcHJlc3Np b25fbWV0aG9kPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxh dGlvbjwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KKyAgeyA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBF TkNSWVBURUQgV0lUSCAoIDxyZXBsYWNlYWJsZT5lbmNyeXB0aW9uX29wdGlvbnM8L3JlcGxh Y2VhYmxlPiApIF0gWyBTVE9SQUdFIHsgUExBSU4gfCBFWFRFUk5BTCB8IEVYVEVOREVEIHwg TUFJTiB8IERFRkFVTFQgfSBdIFsgQ09NUFJFU1NJT04gPHJlcGxhY2VhYmxlPmNvbXByZXNz aW9uX21ldGhvZDwvcmVwbGFjZWFibGU+IF0gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZT5jb2xs YXRpb248L3JlcGxhY2VhYmxlPiBdIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmNvbHVtbl9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4gWyAuLi4gXSBdCiAgICAgfCA8cmVw bGFjZWFibGU+dGFibGVfY29uc3RyYWludDwvcmVwbGFjZWFibGU+CiAgICAgfCBMSUtFIDxy ZXBsYWNlYWJsZT5zb3VyY2VfdGFibGU8L3JlcGxhY2VhYmxlPiBbIDxyZXBsYWNlYWJsZT5s aWtlX29wdGlvbjwvcmVwbGFjZWFibGU+IC4uLiBdIH0KICAgICBbLCAuLi4gXQpAQCAtMzUx LDYgKzM1MSw0NiBAQCA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CiAgICAgPC9saXN0aXRl bT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJt PjxsaXRlcmFsPkVOQ1JZUFRFRCBXSVRIICggPHJlcGxhY2VhYmxlPmVuY3J5cHRpb25fb3B0 aW9uczwvcmVwbGFjZWFibGU+ICk8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBFbmFibGVzIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0 aW9uIGZvciB0aGUgY29sdW1uLgorICAgICAgPHJlcGxhY2VhYmxlPmVuY3J5cHRpb25fb3B0 aW9uczwvcmVwbGFjZWFibGU+IGFyZSBjb21tYS1zZXBhcmF0ZWQKKyAgICAgIDxsaXRlcmFs PmtleT12YWx1ZTwvbGl0ZXJhbD4gc3BlY2lmaWNhdGlvbnMuICBUaGUgZm9sbG93aW5nIG9w dGlvbnMgYXJlCisgICAgICBhdmFpbGFibGU6CisgICAgICA8dmFyaWFibGVsaXN0PgorICAg ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNvbHVtbl9lbmNy eXB0aW9uX2tleTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgIDxwYXJhPgorICAgICAgICAgIFNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgY29sdW1u IGVuY3J5cHRpb24ga2V5IHRvIHVzZS4gIFNwZWNpZnlpbmcKKyAgICAgICAgICB0aGlzIGlz IG1hbmRhdG9yeS4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAg ICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8 dGVybT48bGl0ZXJhbD5lbmNyeXB0aW9uX3R5cGU8L2xpdGVyYWw+PC90ZXJtPgorICAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICA8bGl0ZXJhbD5yYW5k b21pemVkPC9saXRlcmFsPiAodGhlIGRlZmF1bHQpIG9yIDxsaXRlcmFsPmRldGVybWluaXN0 aWM8L2xpdGVyYWw+CisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAg PHRlcm0+PGxpdGVyYWw+YWxnb3JpdGhtPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxp c3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhlIGVuY3J5cHRpb24gYWxn b3JpdGhtIHRvIHVzZS4gIFRoZSBkZWZhdWx0IGlzCisgICAgICAgICAgPGxpdGVyYWw+QUVB RF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY8L2xpdGVyYWw+LgorICAgICAgICAgPC9wYXJh PgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAg PC92YXJpYWJsZWxpc3Q+CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+ SU5IRVJJVFMgKCA8cmVwbGFjZWFibGU+cGFyZW50X3RhYmxlPC9yZXBsYWNlYWJsZT4gWywg Li4uIF0gKTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjlkMTU3ZGU5YzUKLS0tIC9kZXYvbnVs bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNn bWwKQEAgLTAsMCArMSwxMTIgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1 bW5fZW5jcnlwdGlvbl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4K KworPHJlZmVudHJ5IGlkPSJzcWwtZHJvcC1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorIDxp bmRleHRlcm0gem9uZT0ic3FsLWRyb3AtY29sdW1uLWVuY3J5cHRpb24ta2V5Ij4KKyAgPHBy aW1hcnk+RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRl cm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBDT0xVTU4gRU5DUllQ VElPTiBLRVk8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgor ICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+ CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkRST1AgQ09MVU1O IEVOQ1JZUFRJT04gS0VZPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5yZW1vdmUgYSBjb2x1 bW4gZW5jcnlwdGlvbiBrZXk8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJl ZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkg WyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFsgQ0FTQ0FE RSB8IFJFU1RSSUNUIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAg IDxjb21tYW5kPkRST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiByZW1vdmVz IGEgcHJldmlvdXNseSBkZWZpbmVkCisgICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuICBUbyBi ZSBhYmxlIHRvIGRyb3AgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXksIHlvdQorICAgbXVzdCBi ZSBpdHMgb3duZXIuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgor ICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgIDx2YXJpYWJsZWxpc3Q+CisgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFs PjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgRG8gbm90 IHRocm93IGFuIGVycm9yIGlmIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZG9lcyBub3Qg ZXhpc3QuCisgICAgICAgQSBub3RpY2UgaXMgaXNzdWVkIGluIHRoaXMgY2FzZS4KKyAgICAg IDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg IDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNl YWJsZT48L3Rlcm0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAg VGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAgICAgIDwvcGFyYT4K KyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0 ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NBREU8L2xpdGVyYWw+PC90ZXJtPgor ICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBBdXRvbWF0aWNhbGx5IGRy b3Agb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LAor ICAgICAgIGFuZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRob3NlIG9i amVjdHMKKyAgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1kZXBlbmQiLz4pLgorICAg ICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisg ICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+UkVTVFJJQ1Q8L2xpdGVy YWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWZ1 c2UgdG8gZHJvcCB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IGlmIGFueSBvYmplY3RzIGRl cGVuZCBvbiBpdC4gIFRoaXMKKyAgICAgICBpcyB0aGUgZGVmYXVsdC4KKyAgICAgIDwvcGFy YT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgIDwvdmFyaWFi bGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxl czwvdGl0bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+CitEUk9QIENPTFVNTiBF TkNSWVBUSU9OIEtFWSBjZWsxOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgPC9yZWZz ZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgor CisgIDxwYXJhPgorICAgVGhlcmUgaXMgbm8gPGNvbW1hbmQ+RFJPUCBDT0xVTU4gRU5DUllQ VElPTiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgorICAgdGhlIFNRTCBzdGFuZGFyZC4K KyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUg QWxzbzwvdGl0bGU+CisKKyAgICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1l bWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+ PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1u LWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNl Y3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9w X2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1u X21hc3Rlcl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw Li5jODUwOThlYTFjCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9w X2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKQEAgLTAsMCArMSwxMTIgQEAKKzwhLS0KK2RvYy9z cmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCitQb3N0Z3JlU1FMIGRv Y3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1kcm9wLWNvbHVtbi1tYXN0 ZXIta2V5Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1kcm9wLWNvbHVtbi1tYXN0ZXIta2V5 Ij4KKyAgPHByaW1hcnk+RFJPUCBDT0xVTU4gTUFTVEVSIEtFWTwvcHJpbWFyeT4KKyA8L2lu ZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5EUk9QIENPTFVNTiBN QVNURVIgS0VZPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4K KyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZv PgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5EUk9QIENPTFVN TiBNQVNURVIgS0VZPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5yZW1vdmUgYSBjb2x1bW4g bWFzdGVyIGtleTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3Bz aXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIFsgSUYgRVhJU1RT IF0gPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBbIENBU0NBREUgfCBSRVNUUklD VCBdCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5E Uk9QIENPTFVNTiBNQVNURVIgS0VZPC9jb21tYW5kPiByZW1vdmVzIGEgcHJldmlvdXNseSBk ZWZpbmVkCisgICBjb2x1bW4gbWFzdGVyIGtleS4gIFRvIGJlIGFibGUgdG8gZHJvcCBhIGNv bHVtbiBtYXN0ZXIga2V5LCB5b3UKKyAgIG11c3QgYmUgaXRzIG93bmVyLgorICA8L3BhcmE+ CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3Rp dGxlPgorCisgICA8dmFyaWFibGVsaXN0PgorICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0 ZXJtPjxsaXRlcmFsPklGIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRl bT4KKyAgICAgIDxwYXJhPgorICAgICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUg Y29sdW1uIG1hc3RlciBrZXkgZG9lcyBub3QgZXhpc3QuCisgICAgICAgQSBub3RpY2UgaXMg aXNzdWVkIGluIHRoaXMgY2FzZS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4K KyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJt PjxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICAgPGxpc3Rp dGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBtYXN0 ZXIga2V5LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlz dGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+Q0FT Q0FERTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgor ICAgICAgIEF1dG9tYXRpY2FsbHkgZHJvcCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRoZSBj b2x1bW4gbWFzdGVyIGtleSwKKyAgICAgICBhbmQgaW4gdHVybiBhbGwgb2JqZWN0cyB0aGF0 IGRlcGVuZCBvbiB0aG9zZSBvYmplY3RzCisgICAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJk ZGwtZGVwZW5kIi8+KS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRl cmFsPlJFU1RSSUNUPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAg PHBhcmE+CisgICAgICAgUmVmdXNlIHRvIGRyb3AgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IGlm IGFueSBvYmplY3RzIGRlcGVuZCBvbiBpdC4gIFRoaXMKKyAgICAgICBpcyB0aGUgZGVmYXVs dC4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRy eT4KKyAgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+ CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNlazE7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFy YT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0 eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5EUk9QIENP TFVNTiBNQVNURVIgS0VZPC9jb21tYW5kPiBzdGF0ZW1lbnQgaW4KKyAgIHRoZSBTUUwgc3Rh bmRhcmQuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+U2VlIEFsc288L3RpdGxlPgorCisgICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4K KyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVyLWNvbHVtbi1tYXN0ZXIta2V5 Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29s dW1uLW1hc3Rlci1rZXkiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2Vj dDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1 bXAuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcC5zZ21sCmluZGV4IDJjOTM4Y2Q3 ZTEuLjViM2NiZjkxOWMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcC5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcC5zZ21sCkBAIC03MTUsNiArNzE1 LDM3IEBAIDx0aXRsZT5PcHRpb25zPC90aXRsZT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAg IDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48 b3B0aW9uPi0tZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1uczwvb3B0aW9uPjwvdGVybT4KKyAg ICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBvcHRpb24gY2F1 c2VzIHRoZSB2YWx1ZXMgb2YgYWxsIGVuY3J5cHRlZCBjb2x1bW5zIHRvIGJlIGRlY3J5cHRl ZAorICAgICAgICBhbmQgd3JpdHRlbiB0byB0aGUgb3V0cHV0IGluIHBsYWludGV4dC4gIEJ5 IGRlZmF1bHQsIHRoZSB2YWx1ZXMgb2YKKyAgICAgICAgZW5jcnlwdGVkIGNvbHVtbnMgYXJl IHdyaXR0ZW4gdG8gdGhlIGR1bXAgaW4gY2lwaGVydGV4dCAodGhhdCBpcywgdGhleQorICAg ICAgICBhcmUgbm90IGRlY3J5cHRlZCkuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBh cmE+CisgICAgICAgIFRoaXMgb3B0aW9uIHJlcXVpcmVzIHRoYXQgPG9wdGlvbj4tLWluc2Vy dHM8L29wdGlvbj4sCisgICAgICAgIDxvcHRpb24+LS1jb2x1bW4taW5zZXJ0czwvb3B0aW9u PiBvcgorICAgICAgICA8b3B0aW9uPi0tcm93cy1wZXItaW5zZXJ0PC9vcHRpb24+IGlzIGFs c28gc3BlY2lmaWVkLgorICAgICAgICAoPGNvbW1hbmQ+Q09QWTwvY29tbWFuZD4gZG9lcyBu b3Qgc3VwcG9ydCBjb2x1bW4gZGVjcnlwdGlvbi4pCisgICAgICAgPC9wYXJhPgorCisgICAg ICAgPHBhcmE+CisgICAgICAgIEZvciByb3V0aW5lIGJhY2t1cHMsIHRoZSBkZWZhdWx0IGJl aGF2aW9yIGlzIGFwcHJvcHJpYXRlIGFuZCBtb3N0CisgICAgICAgIGVmZmljaWVudC4gIFRo aXMgb3B0aW9uIGlzIHN1aXRhYmxlIGlmIHRoZSBkYXRhIGlzIG1lYW50IHRvIGJlCisgICAg ICAgIGluc3BlY3RlZCBvciBleHBvcnRlZCBmb3Igb3RoZXIgcHVycG9zZXMuICBOb3RlIHRo YXQgYSBkdW1wIGNyZWF0ZWQKKyAgICAgICAgd2l0aCB0aGlzIG9wdGlvbiBjYW5ub3QgYmUg cmVzdG9yZWQgaW50byBhIGRhdGFiYXNlIHdpdGggY29sdW1uCisgICAgICAgIGVuY3J5cHRp b24uCisgICAgICAgPC9wYXJhPgorICAgICAgIDwhLS0KKyAgICAgICAgICAgWFhYOiBUaGUg bGF0dGVyIHdvdWxkIHJlcXVpcmUgYW5vdGhlciBwZ19kdW1wIG9wdGlvbiB0byBwdXQgb3V0 CisgICAgICAgICAgIElOU0VSVCAuLi4gXGJpbmQgLi4uIFxnIGNvbW1hbmRzLgorICAgICAg IC0tPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAg PHZhcmxpc3RlbnRyeT4KICAgICAgIDx0ZXJtPjxvcHRpb24+LS1kaXNhYmxlLWRvbGxhci1x dW90aW5nPC9vcHRpb24+PC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wYWxsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3Bn X2R1bXBhbGwuc2dtbAppbmRleCBlNjJkMDVlNWFiLi40YmY2MGM3MjlmIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL3BnX2R1bXBhbGwuc2dtbApAQCAtMjU5LDYgKzI1OSwzMyBAQCA8dGl0bGU+T3B0aW9u czwvdGl0bGU+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAor ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PG9wdGlvbj4tLWRlY3J5cHQtZW5j cnlwdGVkLWNvbHVtbnM8L29wdGlvbj48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAg ICAgPHBhcmE+CisgICAgICAgIFRoaXMgb3B0aW9uIGNhdXNlcyB0aGUgdmFsdWVzIG9mIGFs bCBlbmNyeXB0ZWQgY29sdW1ucyB0byBiZSBkZWNyeXB0ZWQKKyAgICAgICAgYW5kIHdyaXR0 ZW4gdG8gdGhlIG91dHB1dCBpbiBwbGFpbnRleHQuICBCeSBkZWZhdWx0LCB0aGUgdmFsdWVz IG9mCisgICAgICAgIGVuY3J5cHRlZCBjb2x1bW5zIGFyZSB3cml0dGVuIHRvIHRoZSBkdW1w IGluIGNpcGhlcnRleHQgKHRoYXQgaXMsIHRoZXkKKyAgICAgICAgYXJlIG5vdCBkZWNyeXB0 ZWQpLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9w dGlvbiByZXF1aXJlcyB0aGF0IDxvcHRpb24+LS1pbnNlcnRzPC9vcHRpb24+LAorICAgICAg ICA8b3B0aW9uPi0tY29sdW1uLWluc2VydHM8L29wdGlvbj4gb3IKKyAgICAgICAgPG9wdGlv bj4tLXJvd3MtcGVyLWluc2VydDwvb3B0aW9uPiBpcyBhbHNvIHNwZWNpZmllZC4KKyAgICAg ICAgKDxjb21tYW5kPkNPUFk8L2NvbW1hbmQ+IGRvZXMgbm90IHN1cHBvcnQgY29sdW1uIGRl Y3J5cHRpb24uKQorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBG b3Igcm91dGluZSBiYWNrdXBzLCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBhcHByb3ByaWF0 ZSBhbmQgbW9zdAorICAgICAgICBlZmZpY2llbnQuICBUaGlzIG9wdGlvbiBpcyBzdWl0YWJs ZSBpZiB0aGUgZGF0YSBpcyBtZWFudCB0byBiZQorICAgICAgICBpbnNwZWN0ZWQgb3IgZXhw b3J0ZWQgZm9yIG90aGVyIHB1cnBvc2VzLiAgTm90ZSB0aGF0IGEgZHVtcCBjcmVhdGVkCisg ICAgICAgIHdpdGggdGhpcyBvcHRpb24gY2Fubm90IGJlIHJlc3RvcmVkIGludG8gYSBkYXRh YmFzZSB3aXRoIGNvbHVtbgorICAgICAgICBlbmNyeXB0aW9uLgorICAgICAgIDwvcGFyYT4K KyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJs aXN0ZW50cnk+CiAgICAgICA8dGVybT48b3B0aW9uPi0tZGlzYWJsZS1kb2xsYXItcXVvdGlu Zzwvb3B0aW9uPjwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYu c2dtbAppbmRleCA4YTUyODVkYTlhLi41ZjhlNDRiMGJkIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJl Zi5zZ21sCkBAIC0xNDIwLDYgKzE0MjAsMzQgQEAgPHRpdGxlPk1ldGEtQ29tbWFuZHM8L3Rp dGxlPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAKIAorICAgICAgPHZhcmxpc3RlbnRyeT4K KyAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGRjZWtbK10gWyA8bGluayBsaW5rZW5kPSJhcHAt cHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48 L3JlcGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgIExpc3RzIGNvbHVtbiBlbmNyeXB0aW9u IGtleXMuICBJZiA8cmVwbGFjZWFibGUKKyAgICAgICAgY2xhc3M9InBhcmFtZXRlciI+cGF0 dGVybjwvcmVwbGFjZWFibGU+IGlzIHNwZWNpZmllZCwgb25seSBjb2x1bW4KKyAgICAgICAg ZW5jcnlwdGlvbiBrZXlzIHdob3NlIG5hbWVzIG1hdGNoIHRoZSBwYXR0ZXJuIGFyZSBsaXN0 ZWQuICBJZgorICAgICAgICA8bGl0ZXJhbD4rPC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0 aGUgY29tbWFuZCBuYW1lLCBlYWNoIG9iamVjdCBpcworICAgICAgICBsaXN0ZWQgd2l0aCBp dHMgYXNzb2NpYXRlZCBkZXNjcmlwdGlvbi4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8 L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKworICAgICAgPHZhcmxpc3Rl bnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGRjbWtbK10gWyA8bGluayBsaW5rZW5k PSJhcHAtcHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBh dHRlcm48L3JlcGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAg IDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgIExpc3RzIGNvbHVtbiBtYXN0 ZXIga2V5cy4gIElmIDxyZXBsYWNlYWJsZQorICAgICAgICBjbGFzcz0icGFyYW1ldGVyIj5w YXR0ZXJuPC9yZXBsYWNlYWJsZT4gaXMgc3BlY2lmaWVkLCBvbmx5IGNvbHVtbgorICAgICAg ICBtYXN0ZXIga2V5cyB3aG9zZSBuYW1lcyBtYXRjaCB0aGUgcGF0dGVybiBhcmUgbGlzdGVk LiAgSWYKKyAgICAgICAgPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhl IGNvbW1hbmQgbmFtZSwgZWFjaCBvYmplY3QgaXMKKyAgICAgICAgbGlzdGVkIHdpdGggaXRz IGFzc29jaWF0ZWQgZGVzY3JpcHRpb24uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisKICAgICAgIDx2YXJsaXN0ZW50 cnk+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxkY29uZmlnWytdIFsgPGxpbmsgbGlua2Vu ZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w YXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgogICAgICAg ICA8bGlzdGl0ZW0+CkBAIC00MDIyLDYgKzQwNTAsMTcgQEAgPHRpdGxlPlZhcmlhYmxlczwv dGl0bGU+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAor ICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PHZhcm5hbWU+SElERV9DT0xV TU5fRU5DUllQVElPTjwvdmFybmFtZT48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgPHBhcmE+CisgICAgICAgICBJZiB0aGlzIHZhcmlhYmxlIGlzIHNldCB0byA8bGl0 ZXJhbD50cnVlPC9saXRlcmFsPiwgY29sdW1uIGVuY3J5cHRpb24KKyAgICAgICAgIGRldGFp bHMgYXJlIG5vdCBkaXNwbGF5ZWQuIFRoaXMgaXMgbWFpbmx5IHVzZWZ1bCBmb3IgcmVncmVz c2lvbgorICAgICAgICAgdGVzdHMuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0 aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgICA8dmFybGlzdGVudHJ5Pgog ICAgICAgICA8dGVybT48dmFybmFtZT5ISURFX1RPQVNUX0NPTVBSRVNTSU9OPC92YXJuYW1l PjwvdGVybT4KICAgICAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZmVyZW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCmluZGV4IGEz Yjc0M2U4YzEuLmUxNDI1YzIyMmYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWZlcmVu Y2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAgLTM2LDYgKzM2 LDggQEAgPHRpdGxlPlNRTCBDb21tYW5kczwvdGl0bGU+CiAgICAmYWJvcnQ7CiAgICAmYWx0 ZXJBZ2dyZWdhdGU7CiAgICAmYWx0ZXJDb2xsYXRpb247CisgICAmYWx0ZXJDb2x1bW5FbmNy eXB0aW9uS2V5OworICAgJmFsdGVyQ29sdW1uTWFzdGVyS2V5OwogICAgJmFsdGVyQ29udmVy c2lvbjsKICAgICZhbHRlckRhdGFiYXNlOwogICAgJmFsdGVyRGVmYXVsdFByaXZpbGVnZXM7 CkBAIC05MCw2ICs5Miw4IEBAIDx0aXRsZT5TUUwgQ29tbWFuZHM8L3RpdGxlPgogICAgJmNy ZWF0ZUFnZ3JlZ2F0ZTsKICAgICZjcmVhdGVDYXN0OwogICAgJmNyZWF0ZUNvbGxhdGlvbjsK KyAgICZjcmVhdGVDb2x1bW5FbmNyeXB0aW9uS2V5OworICAgJmNyZWF0ZUNvbHVtbk1hc3Rl cktleTsKICAgICZjcmVhdGVDb252ZXJzaW9uOwogICAgJmNyZWF0ZURhdGFiYXNlOwogICAg JmNyZWF0ZURvbWFpbjsKQEAgLTEzNyw2ICsxNDEsOCBAQCA8dGl0bGU+U1FMIENvbW1hbmRz PC90aXRsZT4KICAgICZkcm9wQWdncmVnYXRlOwogICAgJmRyb3BDYXN0OwogICAgJmRyb3BD b2xsYXRpb247CisgICAmZHJvcENvbHVtbkVuY3J5cHRpb25LZXk7CisgICAmZHJvcENvbHVt bk1hc3RlcktleTsKICAgICZkcm9wQ29udmVyc2lvbjsKICAgICZkcm9wRGF0YWJhc2U7CiAg ICAmZHJvcERvbWFpbjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24v cHJpbnRzaW1wbGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnRzaW1wbGUu YwppbmRleCBjOTlhZTU0Y2IwLi4xNzQwMDk2YTNmIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2NvbW1vbi9wcmludHNpbXBsZS5jCkBAIC0yMCw3ICsyMCw5IEBACiAKICNpbmNsdWRlICJh Y2Nlc3MvcHJpbnRzaW1wbGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNp bmNsdWRlICJsaWJwcS9saWJwcS1iZS5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0Lmgi CisjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIK IAogLyoKQEAgLTQ2LDYgKzQ4LDExIEBAIHByaW50c2ltcGxlX3N0YXJ0dXAoRGVzdFJlY2Vp dmVyICpzZWxmLCBpbnQgb3BlcmF0aW9uLCBUdXBsZURlc2MgdHVwZGVzYykKIAkJcHFfc2Vu ZGludDE2KCZidWYsIGF0dHItPmF0dGxlbik7CiAJCXBxX3NlbmRpbnQzMigmYnVmLCBhdHRy LT5hdHR0eXBtb2QpOwogCQlwcV9zZW5kaW50MTYoJmJ1ZiwgMCk7CS8qIGZvcm1hdCBjb2Rl ICovCisJCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7 CisJCQlwcV9zZW5kaW50MzIoJmJ1ZiwgMCk7CS8qIENFSyAqLworCQkJcHFfc2VuZGludDMy KCZidWYsIDApOwkvKiBDRUsgYWxnICovCisJCX0KIAl9CiAKIAlwcV9lbmRtZXNzYWdlKCZi dWYpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHR1cC5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHR1cC5jCmluZGV4IGQyZjNiNTcy ODguLmYzYmE2MTdmYzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24v cHJpbnR0dXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMK QEAgLTE1LDEzICsxNSwyOCBAQAogICovCiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2lu Y2x1ZGUgImFjY2Vzcy9nZW5hbS5oIgogI2luY2x1ZGUgImFjY2Vzcy9wcmludHR1cC5oIgor I2luY2x1ZGUgImFjY2Vzcy9za2V5LmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X2NvbGVuY2tleWRhdGEuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5o IgogI2luY2x1ZGUgImxpYnBxL2xpYnBxLmgiCisjaW5jbHVkZSAibGlicHEvbGlicHEtYmUu aCIKICNpbmNsdWRlICJsaWJwcS9wcWZvcm1hdC5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5o IgogI2luY2x1ZGUgInRjb3AvcHF1ZXJ5LmgiCisjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIK KyNpbmNsdWRlICJ1dGlscy9hcnJheWFjY2Vzcy5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0 aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKKyNpbmNsdWRlICJ1dGlscy9p bnZhbC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxz L21lbWRlYnVnLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKKyNpbmNsdWRlICJ1 dGlscy9yZWwuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCiAKIHN0YXRpYyB2 b2lkIHByaW50dHVwX3N0YXJ0dXAoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0aW9u LApAQCAtMTUxLDYgKzE2NiwxNTYgQEAgcHJpbnR0dXBfc3RhcnR1cChEZXN0UmVjZWl2ZXIg KnNlbGYsIGludCBvcGVyYXRpb24sIFR1cGxlRGVzYyB0eXBlaW5mbykKIAkgKi8KIH0KIAor LyoKKyAqIFNlbmQgQ29sdW1uTWFzdGVyS2V5IG1lc3NhZ2UsIHVubGVzcyBpdCdzIGFscmVh ZHkgYmVlbiBzZW50IGluIHRoaXMgc2Vzc2lvbgorICogZm9yIHRoaXMga2V5LgorICovCitM aXN0CSAgICpjbWtfc2VudCA9IE5JTDsKKworc3RhdGljIHZvaWQKK2Nta19jaGFuZ2VfY2Io RGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlsaXN0X2Zy ZWUoY21rX3NlbnQpOworCWNta19zZW50ID0gTklMOworfQorCitzdGF0aWMgdm9pZAorTWF5 YmVTZW5kQ29sdW1uTWFzdGVyS2V5TWVzc2FnZShPaWQgY21raWQpCit7CisJSGVhcFR1cGxl CXR1cGxlOworCUZvcm1fcGdfY29sbWFzdGVya2V5IGNta2Zvcm07CisJRGF0dW0JCWRhdHVt OworCWJvb2wJCWlzbnVsbDsKKwlTdHJpbmdJbmZvRGF0YSBidWY7CisJc3RhdGljIGJvb2wg cmVnaXN0ZXJlZF9pbnZhbCA9IGZhbHNlOworCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsK KworCUFzc2VydChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKTsKKwor CWlmIChsaXN0X21lbWJlcl9vaWQoY21rX3NlbnQsIGNta2lkKSkKKwkJcmV0dXJuOworCisJ dHVwbGUgPSBTZWFyY2hTeXNDYWNoZTEoQ01LT0lELCBPYmplY3RJZEdldERhdHVtKGNta2lk KSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBtYXN0ZXIga2V5ICV1IiwgY21raWQpOwor CWNta2Zvcm0gPSAoRm9ybV9wZ19jb2xtYXN0ZXJrZXkpIEdFVFNUUlVDVCh0dXBsZSk7CisK KwlwcV9iZWdpbm1lc3NhZ2UoJmJ1ZiwgJ3knKTsgLyogQ29sdW1uTWFzdGVyS2V5ICovCisJ cHFfc2VuZGludDMyKCZidWYsIGNta2Zvcm0tPm9pZCk7CisJcHFfc2VuZHN0cmluZygmYnVm LCBOYW1lU3RyKGNta2Zvcm0tPmNta25hbWUpKTsKKwlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0 cihDTUtPSUQsIHR1cGxlLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtyZWFsbSwgJmlzbnVs bCk7CisJQXNzZXJ0KCFpc251bGwpOworCXBxX3NlbmRzdHJpbmcoJmJ1ZiwgVGV4dERhdHVt R2V0Q1N0cmluZyhkYXR1bSkpOworCXBxX2VuZG1lc3NhZ2UoJmJ1Zik7CisKKwlSZWxlYXNl U3lzQ2FjaGUodHVwbGUpOworCisJaWYgKCFyZWdpc3RlcmVkX2ludmFsKQorCXsKKwkJQ2Fj aGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soQ01LT0lELCBjbWtfY2hhbmdlX2NiLCAoRGF0 dW0pIDApOworCQlyZWdpc3RlcmVkX2ludmFsID0gdHJ1ZTsKKwl9CisKKwlvbGRjb250ZXh0 ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFRvcE1lbW9yeUNvbnRleHQpOworCWNta19zZW50 ID0gbGFwcGVuZF9vaWQoY21rX3NlbnQsIGNta2lkKTsKKwlNZW1vcnlDb250ZXh0U3dpdGNo VG8ob2xkY29udGV4dCk7Cit9CisKKy8qCisgKiBTZW5kIENvbHVtbkVuY3J5cHRpb25LZXkg bWVzc2FnZSwgdW5sZXNzIGl0J3MgYWxyZWFkeSBiZWVuIHNlbnQgaW4gdGhpcworICogc2Vz c2lvbiBmb3IgdGhpcyBrZXkuCisgKi8KK0xpc3QJICAgKmNla19zZW50ID0gTklMOworCitz dGF0aWMgdm9pZAorY2VrX2NoYW5nZV9jYihEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50 MzIgaGFzaHZhbHVlKQoreworCWxpc3RfZnJlZShjZWtfc2VudCk7CisJY2VrX3NlbnQgPSBO SUw7Cit9CisKK3ZvaWQKK01heWJlU2VuZENvbHVtbkVuY3J5cHRpb25LZXlNZXNzYWdlKE9p ZCBhdHRjZWspCit7CisJSGVhcFR1cGxlCXR1cGxlOworCVNjYW5LZXlEYXRhIHNrZXlbMV07 CisJU3lzU2NhbkRlc2Mgc2Q7CisJUmVsYXRpb24JcmVsOworCWJvb2wJCWZvdW5kID0gZmFs c2U7CisJc3RhdGljIGJvb2wgcmVnaXN0ZXJlZF9pbnZhbCA9IGZhbHNlOworCU1lbW9yeUNv bnRleHQgb2xkY29udGV4dDsKKworCUFzc2VydChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlw dGlvbl9lbmFibGVkKTsKKworCWlmIChsaXN0X21lbWJlcl9vaWQoY2VrX3NlbnQsIGF0dGNl aykpCisJCXJldHVybjsKKworCS8qCisJICogV2UgcmVhbGx5IG9ubHkgbmVlZCBkYXRhIGZy b20gcGdfY29sZW5ja2V5ZGF0YSwgYnV0IGJlZm9yZSB3ZSBzY2FuCisJICogdGhhdCwgbGV0 J3MgY2hlY2sgdGhhdCBhbiBlbnRyeSBleGlzdHMgaW4gcGdfY29sZW5ja2V5LCBzbyB0aGF0 IGlmCisJICogdGhlcmUgYXJlIGNhdGFsb2cgaW5jb25zaXN0ZW5jaWVzLCB3ZSBjYW4gbG9j YXRlIHRoZW0gYmV0dGVyLgorCSAqLworCWlmICghU2VhcmNoU3lzQ2FjaGVFeGlzdHMxKENF S09JRCwgT2JqZWN0SWRHZXREYXR1bShhdHRjZWspKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hl IGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAldSIsIGF0dGNlayk7 CisKKwkvKgorCSAqIE5vdyBzY2FuIHBnX2NvbGVuY2tleWRhdGEuCisJICovCisJU2Nhbktl eUluaXQoJnNrZXlbMF0sCisJCQkJQW51bV9wZ19jb2xlbmNrZXlkYXRhX2NrZGNla2lkLAor CQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKKwkJCQlPYmplY3RJZEdldERh dHVtKGF0dGNlaykpOworCXJlbCA9IHRhYmxlX29wZW4oQ29sdW1uRW5jS2V5RGF0YVJlbGF0 aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJc2QgPSBzeXN0YWJsZV9iZWdpbnNjYW4ocmVs LCBDb2x1bW5FbmNLZXlDZWtpZENta2lkSW5kZXhJZCwgdHJ1ZSwgTlVMTCwgMSwgc2tleSk7 CisKKwl3aGlsZSAoKHR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChzZCkpKQorCXsKKwkJRm9y bV9wZ19jb2xlbmNrZXlkYXRhIGNrZGZvcm0gPSAoRm9ybV9wZ19jb2xlbmNrZXlkYXRhKSBH RVRTVFJVQ1QodHVwbGUpOworCQlEYXR1bQkJZGF0dW07CisJCWJvb2wJCWlzbnVsbDsKKwkJ Ynl0ZWEJICAgKmJhOworCQlTdHJpbmdJbmZvRGF0YSBidWY7CisKKwkJTWF5YmVTZW5kQ29s dW1uTWFzdGVyS2V5TWVzc2FnZShja2Rmb3JtLT5ja2RjbWtpZCk7CisKKwkJZGF0dW0gPSBo ZWFwX2dldGF0dHIodHVwbGUsIEFudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RlbmN2YWwsIFJl bGF0aW9uR2V0RGVzY3IocmVsKSwgJmlzbnVsbCk7CisJCUFzc2VydCghaXNudWxsKTsKKwkJ YmEgPSBwZ19kZXRvYXN0X2RhdHVtX3BhY2tlZCgoYnl0ZWEgKikgRGF0dW1HZXRQb2ludGVy KGRhdHVtKSk7CisKKwkJcHFfYmVnaW5tZXNzYWdlKCZidWYsICdZJyk7IC8qIENvbHVtbkVu Y3J5cHRpb25LZXkgKi8KKwkJcHFfc2VuZGludDMyKCZidWYsIGNrZGZvcm0tPmNrZGNla2lk KTsKKwkJcHFfc2VuZGludDMyKCZidWYsIGNrZGZvcm0tPmNrZGNta2lkKTsKKwkJcHFfc2Vu ZGludDMyKCZidWYsIGNrZGZvcm0tPmNrZGNta2FsZyk7CisJCXBxX3NlbmRpbnQzMigmYnVm LCBWQVJTSVpFX0FOWV9FWEhEUihiYSkpOworCQlwcV9zZW5kYnl0ZXMoJmJ1ZiwgVkFSREFU QV9BTlkoYmEpLCBWQVJTSVpFX0FOWV9FWEhEUihiYSkpOworCQlwcV9lbmRtZXNzYWdlKCZi dWYpOworCisJCWZvdW5kID0gdHJ1ZTsKKwl9CisKKwkvKgorCSAqIFRoaXMgaXMgYSB1c2Vy LWZhY2luZyBtZXNzYWdlLCBiZWNhdXNlIHdpdGggQUxURVIgaXQgaXMgcG9zc2libGUgdG8K KwkgKiBkZWxldGUgYWxsIGRhdGEgZW50cmllcyBmb3IgYSBDRUsuCisJICovCisJaWYgKCFm b3VuZCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVE X09CSkVDVCksCisJCQkJZXJybXNnKCJubyBkYXRhIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBr ZXkgXCIlc1wiIiwgZ2V0X2Nla19uYW1lKGF0dGNlaywgZmFsc2UpKSk7CisKKwlzeXN0YWJs ZV9lbmRzY2FuKHNkKTsKKwl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwlpZiAoIXJl Z2lzdGVyZWRfaW52YWwpCisJeworCQlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhD RUtEQVRBT0lELCBjZWtfY2hhbmdlX2NiLCAoRGF0dW0pIDApOworCQlyZWdpc3RlcmVkX2lu dmFsID0gdHJ1ZTsKKwl9CisKKwlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRv KFRvcE1lbW9yeUNvbnRleHQpOworCWNla19zZW50ID0gbGFwcGVuZF9vaWQoY2VrX3NlbnQs IGF0dGNlayk7CisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworfQorCiAv KgogICogU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZSAtLS0gc2VuZCBhIFJvd0Rlc2NyaXB0 aW9uIG1lc3NhZ2UgdG8gdGhlIGZyb250ZW5kCiAgKgpAQCAtMTY3LDYgKzMzMiw3IEBAIFNl bmRSb3dEZXNjcmlwdGlvbk1lc3NhZ2UoU3RyaW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0eXBl aW5mbywKIAkJCQkJCSAgTGlzdCAqdGFyZ2V0bGlzdCwgaW50MTYgKmZvcm1hdHMpCiB7CiAJ aW50CQkJbmF0dHMgPSB0eXBlaW5mby0+bmF0dHM7CisJc2l6ZV90CQlzejsKIAlpbnQJCQlp OwogCUxpc3RDZWxsICAgKnRsaXN0X2l0ZW0gPSBsaXN0X2hlYWQodGFyZ2V0bGlzdCk7CiAK QEAgLTE4MywxNCArMzQ5LDE3IEBAIFNlbmRSb3dEZXNjcmlwdGlvbk1lc3NhZ2UoU3RyaW5n SW5mbyBidWYsIFR1cGxlRGVzYyB0eXBlaW5mbywKIAkgKiBIYXZlIHRvIG92ZXJlc3RpbWF0 ZSB0aGUgc2l6ZSBvZiB0aGUgY29sdW1uLW5hbWVzLCB0byBhY2NvdW50IGZvcgogCSAqIGNo YXJhY3RlciBzZXQgb3ZlcmhlYWQuCiAJICovCi0JZW5sYXJnZVN0cmluZ0luZm8oYnVmLCAo TkFNRURBVEFMRU4gKiBNQVhfQ09OVkVSU0lPTl9HUk9XVEggLyogYXR0bmFtZSAqLwotCQkJ CQkJCSsgc2l6ZW9mKE9pZCkJLyogcmVzb3JpZ3RibCAqLwotCQkJCQkJCSsgc2l6ZW9mKEF0 dHJOdW1iZXIpCS8qIHJlc29yaWdjb2wgKi8KLQkJCQkJCQkrIHNpemVvZihPaWQpCS8qIGF0 dHR5cGlkICovCi0JCQkJCQkJKyBzaXplb2YoaW50MTYpIC8qIGF0dGxlbiAqLwotCQkJCQkJ CSsgc2l6ZW9mKGludDMyKSAvKiBhdHR5cG1vZCAqLwotCQkJCQkJCSsgc2l6ZW9mKGludDE2 KSAvKiBmb3JtYXQgKi8KLQkJCQkJCQkpICogbmF0dHMpOworCXN6ID0gKE5BTUVEQVRBTEVO ICogTUFYX0NPTlZFUlNJT05fR1JPV1RIIC8qIGF0dG5hbWUgKi8KKwkJICArIHNpemVvZihP aWQpCS8qIHJlc29yaWd0YmwgKi8KKwkJICArIHNpemVvZihBdHRyTnVtYmVyKQkvKiByZXNv cmlnY29sICovCisJCSAgKyBzaXplb2YoT2lkKQkvKiBhdHR0eXBpZCAqLworCQkgICsgc2l6 ZW9mKGludDE2KSAvKiBhdHRsZW4gKi8KKwkJICArIHNpemVvZihpbnQzMikgLyogYXR0eXBt b2QgKi8KKwkJICArIHNpemVvZihpbnQxNikpOyAvKiBmb3JtYXQgKi8KKwlpZiAoTXlQcm9j UG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJc3ogKz0gKHNpemVvZihpbnQz MikJCS8qIGF0dGNla2lkICovCisJCQkgICArIHNpemVvZihpbnQzMikpOwkvKiBhdHRlbmNh bGcgKi8KKwllbmxhcmdlU3RyaW5nSW5mbyhidWYsIHN6ICogbmF0dHMpOwogCiAJZm9yIChp ID0gMDsgaSA8IG5hdHRzOyArK2kpCiAJewpAQCAtMjAwLDYgKzM2OSw4IEBAIFNlbmRSb3dE ZXNjcmlwdGlvbk1lc3NhZ2UoU3RyaW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0eXBlaW5mbywK IAkJT2lkCQkJcmVzb3JpZ3RibDsKIAkJQXR0ck51bWJlcglyZXNvcmlnY29sOwogCQlpbnQx NgkJZm9ybWF0OworCQlPaWQJCQlhdHRjZWtpZCA9IEludmFsaWRPaWQ7CisJCWludDMyCQlh dHRlbmNhbGcgPSAwOwogCiAJCS8qCiAJCSAqIElmIGNvbHVtbiBpcyBhIGRvbWFpbiwgc2Vu ZCB0aGUgYmFzZSB0eXBlIGFuZCB0eXBtb2QgaW5zdGVhZC4KQEAgLTIzMSw2ICs0MDIsMjgg QEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwgVHVwbGVEZXNj IHR5cGVpbmZvLAogCQllbHNlCiAJCQlmb3JtYXQgPSAwOwogCisJCWlmIChNeVByb2NQb3J0 LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkICYmIHR5cGVfaXNfZW5jcnlwdGVkKGF0dHR5 cGlkKSkKKwkJeworCQkJSGVhcFR1cGxlCXRwOworCQkJRm9ybV9wZ19hdHRyaWJ1dGUgb3Jp Z19hdHQ7CisKKwkJCXRwID0gU2VhcmNoU3lzQ2FjaGUyKEFUVE5VTSwgT2JqZWN0SWRHZXRE YXR1bShyZXNvcmlndGJsKSwgSW50MTZHZXREYXR1bShyZXNvcmlnY29sKSk7CisJCQlpZiAo IUhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBhdHRyaWJ1dGUgJWQgb2YgcmVsYXRpb24gJXUiLCByZXNvcmlnY29sLCBy ZXNvcmlndGJsKTsKKwkJCW9yaWdfYXR0ID0gKEZvcm1fcGdfYXR0cmlidXRlKSBHRVRTVFJV Q1QodHApOworCQkJTWF5YmVTZW5kQ29sdW1uRW5jcnlwdGlvbktleU1lc3NhZ2Uob3JpZ19h dHQtPmF0dGNlayk7CisJCQlhdHR0eXBpZCA9IG9yaWdfYXR0LT5hdHRyZWFsdHlwaWQ7CisJ CQlhdHRjZWtpZCA9IG9yaWdfYXR0LT5hdHRjZWs7CisJCQlhdHRlbmNhbGcgPSBvcmlnX2F0 dC0+YXR0ZW5jYWxnOworCQkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKworCQkJLyoKKwkJCSAq IEVuY3J5cHRlZCB0eXBlcyBhcmUgYWx3YXlzIHNlbnQgaW4gYmluYXJ5IHdoZW4gY29sdW1u CisJCQkgKiBlbmNyeXB0aW9uIGlzIGVuYWJsZWQuCisJCQkgKi8KKwkJCWZvcm1hdCA9IDE7 CisJCX0KKwogCQlwcV93cml0ZXN0cmluZyhidWYsIE5hbWVTdHIoYXR0LT5hdHRuYW1lKSk7 CiAJCXBxX3dyaXRlaW50MzIoYnVmLCByZXNvcmlndGJsKTsKIAkJcHFfd3JpdGVpbnQxNihi dWYsIHJlc29yaWdjb2wpOwpAQCAtMjM4LDYgKzQzMSwxMSBAQCBTZW5kUm93RGVzY3JpcHRp b25NZXNzYWdlKFN0cmluZ0luZm8gYnVmLCBUdXBsZURlc2MgdHlwZWluZm8sCiAJCXBxX3dy aXRlaW50MTYoYnVmLCBhdHQtPmF0dGxlbik7CiAJCXBxX3dyaXRlaW50MzIoYnVmLCBhdHR0 eXBtb2QpOwogCQlwcV93cml0ZWludDE2KGJ1ZiwgZm9ybWF0KTsKKwkJaWYgKE15UHJvY1Bv cnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsKKwkJCXBxX3dyaXRlaW50MzIo YnVmLCBhdHRjZWtpZCk7CisJCQlwcV93cml0ZWludDMyKGJ1ZiwgYXR0ZW5jYWxnKTsKKwkJ fQogCX0KIAogCXBxX2VuZG1lc3NhZ2VfcmV1c2UoYnVmKTsKQEAgLTI3MSw2ICs0NjksMTMg QEAgcHJpbnR0dXBfcHJlcGFyZV9pbmZvKERSX3ByaW50dHVwICpteVN0YXRlLCBUdXBsZURl c2MgdHlwZWluZm8sIGludCBudW1BdHRycykKIAkJaW50MTYJCWZvcm1hdCA9IChmb3JtYXRz ID8gZm9ybWF0c1tpXSA6IDApOwogCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyID0gVHVwbGVE ZXNjQXR0cih0eXBlaW5mbywgaSk7CiAKKwkJLyoKKwkJICogRW5jcnlwdGVkIHR5cGVzIGFy ZSBhbHdheXMgc2VudCBpbiBiaW5hcnkgd2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBpcworCQkg KiBlbmFibGVkLgorCQkgKi8KKwkJaWYgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9u X2VuYWJsZWQgJiYgdHlwZV9pc19lbmNyeXB0ZWQoYXR0ci0+YXR0dHlwaWQpKQorCQkJZm9y bWF0ID0gMTsKKwogCQl0aGlzU3RhdGUtPmZvcm1hdCA9IGZvcm1hdDsKIAkJaWYgKGZvcm1h dCA9PSAwKQogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1 cGRlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCmluZGV4IDc4 NTdmNTVlMjQuLjMyYjEzMTc4MWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vdHVwZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVz Yy5jCkBAIC00NTksNiArNDU5LDEyIEBAIGVxdWFsVHVwbGVEZXNjcyhUdXBsZURlc2MgdHVw ZGVzYzEsIFR1cGxlRGVzYyB0dXBkZXNjMikKIAkJCXJldHVybiBmYWxzZTsKIAkJaWYgKGF0 dHIxLT5hdHRpc2xvY2FsICE9IGF0dHIyLT5hdHRpc2xvY2FsKQogCQkJcmV0dXJuIGZhbHNl OworCQlpZiAoYXR0cjEtPmF0dGNlayAhPSBhdHRyMi0+YXR0Y2VrKQorCQkJcmV0dXJuIGZh bHNlOworCQlpZiAoYXR0cjEtPmF0dHJlYWx0eXBpZCAhPSBhdHRyMi0+YXR0cmVhbHR5cGlk KQorCQkJcmV0dXJuIGZhbHNlOworCQlpZiAoYXR0cjEtPmF0dGVuY2FsZyAhPSBhdHRyMi0+ YXR0ZW5jYWxnKQorCQkJcmV0dXJuIGZhbHNlOwogCQlpZiAoYXR0cjEtPmF0dGluaGNvdW50 ICE9IGF0dHIyLT5hdHRpbmhjb3VudCkKIAkJCXJldHVybiBmYWxzZTsKIAkJaWYgKGF0dHIx LT5hdHRjb2xsYXRpb24gIT0gYXR0cjItPmF0dGNvbGxhdGlvbikKQEAgLTYyOSw2ICs2MzUs OSBAQCBUdXBsZURlc2NJbml0RW50cnkoVHVwbGVEZXNjIGRlc2MsCiAJYXR0LT5hdHRnZW5l cmF0ZWQgPSAnXDAnOwogCWF0dC0+YXR0aXNkcm9wcGVkID0gZmFsc2U7CiAJYXR0LT5hdHRp c2xvY2FsID0gdHJ1ZTsKKwlhdHQtPmF0dGNlayA9IDA7CisJYXR0LT5hdHRyZWFsdHlwaWQg PSAwOworCWF0dC0+YXR0ZW5jYWxnID0gMDsKIAlhdHQtPmF0dGluaGNvdW50ID0gMDsKIAkv KiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIGFyZSBub3QgcHJlc2VudCBpbiB0dXBsZWRlc2Nz ICovCiAKQEAgLTY5MCw2ICs2OTksOSBAQCBUdXBsZURlc2NJbml0QnVpbHRpbkVudHJ5KFR1 cGxlRGVzYyBkZXNjLAogCWF0dC0+YXR0Z2VuZXJhdGVkID0gJ1wwJzsKIAlhdHQtPmF0dGlz ZHJvcHBlZCA9IGZhbHNlOwogCWF0dC0+YXR0aXNsb2NhbCA9IHRydWU7CisJYXR0LT5hdHRj ZWsgPSAwOworCWF0dC0+YXR0cmVhbHR5cGlkID0gMDsKKwlhdHQtPmF0dGVuY2FsZyA9IDA7 CiAJYXR0LT5hdHRpbmhjb3VudCA9IDA7CiAJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBh cmUgbm90IHByZXNlbnQgaW4gdHVwbGVkZXNjcyAqLwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o YXNoL2hhc2h2YWxpZGF0ZS5jCmluZGV4IDEwYmYyNmNlN2MuLmNlYTkxZDRhODggMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jCkBAIC0zMzEsNyArMzMxLDcg QEAgY2hlY2tfaGFzaF9mdW5jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBpbnQxNiBhbXByb2Nu dW0sIE9pZCBhcmd0eXBlKQogCQkJCSBhcmd0eXBlID09IEJPT0xPSUQpCiAJCQkgLyogb2th eSwgYWxsb3dlZCB1c2Ugb2YgaGFzaGNoYXIoKSAqLyA7CiAJCWVsc2UgaWYgKChmdW5jaWQg PT0gRl9IQVNIVkFSTEVOQSB8fCBmdW5jaWQgPT0gRl9IQVNIVkFSTEVOQUVYVEVOREVEKSAm JgotCQkJCSBhcmd0eXBlID09IEJZVEVBT0lEKQorCQkJCSAoYXJndHlwZSA9PSBCWVRFQU9J RCB8fCBhcmd0eXBlID09IFBHX0VOQ1JZUFRFRF9ERVRPSUQpKQogCQkJIC8qIG9rYXksIGFs bG93ZWQgdXNlIG9mIGhhc2h2YXJsZW5hKCkgKi8gOwogCQllbHNlCiAJCQlyZXN1bHQgPSBm YWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMv YmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCmluZGV4IDg5YTAyMjFlYzkuLjdlMWE5MWI5NzQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNzIsNyArNzIsOCBAQCBDQVRBTE9HX0hFQURF UlMgOj0gXAogCXBnX2NvbGxhdGlvbi5oIHBnX3BhcmFtZXRlcl9hY2wuaCBwZ19wYXJ0aXRp b25lZF90YWJsZS5oIFwKIAlwZ19yYW5nZS5oIHBnX3RyYW5zZm9ybS5oIFwKIAlwZ19zZXF1 ZW5jZS5oIHBnX3B1YmxpY2F0aW9uLmggcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmggXAot CXBnX3B1YmxpY2F0aW9uX3JlbC5oIHBnX3N1YnNjcmlwdGlvbi5oIHBnX3N1YnNjcmlwdGlv bl9yZWwuaAorCXBnX3B1YmxpY2F0aW9uX3JlbC5oIHBnX3N1YnNjcmlwdGlvbi5oIHBnX3N1 YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfY29sbWFzdGVya2V5LmggcGdfY29sZW5ja2V5Lmgg cGdfY29sZW5ja2V5ZGF0YS5oCiAKIEdFTkVSQVRFRF9IRUFERVJTIDo9ICQoQ0FUQUxPR19I RUFERVJTOiUuaD0lX2QuaCkgc2NoZW1hcGcuaCBzeXN0ZW1fZmtfaW5mby5oCiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9jYXRh bG9nL2FjbGNoay5jCmluZGV4IGI1MDE5MDU5ZTguLmZhYzYwZDU2ZmIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9hY2xjaGsuYwpAQCAtMzMsNyArMzMsOSBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0 aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jbGFzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2Nv bG1hc3RlcmtleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29udmVyc2lvbi5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Rl ZmF1bHRfYWNsLmgiCkBAIC0yNzk4LDYgKzI4MDAsOSBAQCBhY2xjaGVja19lcnJvcihBY2xS ZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0FN UFJPQzoKIAkJCQkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQkJCQljYXNlIE9CSkVDVF9D QVNUOgorCQkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCWNhc2UgT0JKRUNUX0NFS0RBVEE6 CisJCQkJCWNhc2UgT0JKRUNUX0NNSzoKIAkJCQkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKIAkJ CQkJY2FzZSBPQkpFQ1RfREVGQUNMOgogCQkJCQljYXNlIE9CSkVDVF9ET01DT05TVFJBSU5U OgpAQCAtMjgyOCw2ICsyODMzLDEyIEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xl cnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgog CQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIGFnZ3JlZ2F0ZSAl cyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCQkJCW1zZyA9 IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkg JXMiKTsKKwkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9CSkVDVF9DTUs6CisJCQkJCQltc2cg PSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgY29sdW1uIG1hc3RlciBrZXkgJXMi KTsKKwkJCQkJCWJyZWFrOwogCQkJCQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCQkJCQlt c2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgY29sbGF0aW9uICVzIik7CiAJ CQkJCQlicmVhazsKQEAgLTI5MzgsNiArMjk0OSw3IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJl c3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfQU1Q Uk9DOgogCQkJCQljYXNlIE9CSkVDVF9BVFRSSUJVVEU6CiAJCQkJCWNhc2UgT0JKRUNUX0NB U1Q6CisJCQkJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFV TFQ6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJCQkJY2FzZSBPQkpFQ1RfRE9NQ09O U1RSQUlOVDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5j IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggMzAzOTRkY2NmNS4u M2M2NDc2MzI2NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5 LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKQEAgLTMwLDcgKzMw LDEwIEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2F1dGhfbWVtYmVycy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2FzdC5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19jb2xlbmNrZXlkYXRhLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29udmVyc2lvbi5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2UuaCIKQEAgLTE1Myw2ICsxNTYsOSBA QCBzdGF0aWMgY29uc3QgT2lkIG9iamVjdF9jbGFzc2VzW10gPSB7CiAJVHlwZVJlbGF0aW9u SWQsCQkJCS8qIE9DTEFTU19UWVBFICovCiAJQ2FzdFJlbGF0aW9uSWQsCQkJCS8qIE9DTEFT U19DQVNUICovCiAJQ29sbGF0aW9uUmVsYXRpb25JZCwJCS8qIE9DTEFTU19DT0xMQVRJT04g Ki8KKwlDb2x1bW5FbmNLZXlSZWxhdGlvbklkLAkJLyogT0NMQVNTX0NFSyAqLworCUNvbHVt bkVuY0tleURhdGFSZWxhdGlvbklkLAkvKiBPQ0xBU1NfQ0VLREFUQSAqLworCUNvbHVtbk1h c3RlcktleVJlbGF0aW9uSWQsCS8qIE9DTEFTU19DTUsgKi8KIAlDb25zdHJhaW50UmVsYXRp b25JZCwJCS8qIE9DTEFTU19DT05TVFJBSU5UICovCiAJQ29udmVyc2lvblJlbGF0aW9uSWQs CQkvKiBPQ0xBU1NfQ09OVkVSU0lPTiAqLwogCUF0dHJEZWZhdWx0UmVsYXRpb25JZCwJCS8q IE9DTEFTU19ERUZBVUxUICovCkBAIC0xNDkzLDYgKzE0OTksOSBAQCBkb0RlbGV0aW9uKGNv bnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgaW50IGZsYWdzKQogCiAJCWNhc2UgT0NMQVNT X0NBU1Q6CiAJCWNhc2UgT0NMQVNTX0NPTExBVElPTjoKKwkJY2FzZSBPQ0xBU1NfQ0VLOgor CQljYXNlIE9DTEFTU19DRUtEQVRBOgorCQljYXNlIE9DTEFTU19DTUs6CiAJCWNhc2UgT0NM QVNTX0NPTlZFUlNJT046CiAJCWNhc2UgT0NMQVNTX0xBTkdVQUdFOgogCQljYXNlIE9DTEFT U19PUENMQVNTOgpAQCAtMjg1OSw2ICsyODY4LDE1IEBAIGdldE9iamVjdENsYXNzKGNvbnN0 IE9iamVjdEFkZHJlc3MgKm9iamVjdCkKIAkJY2FzZSBDb2xsYXRpb25SZWxhdGlvbklkOgog CQkJcmV0dXJuIE9DTEFTU19DT0xMQVRJT047CiAKKwkJY2FzZSBDb2x1bW5FbmNLZXlSZWxh dGlvbklkOgorCQkJcmV0dXJuIE9DTEFTU19DRUs7CisKKwkJY2FzZSBDb2x1bW5FbmNLZXlE YXRhUmVsYXRpb25JZDoKKwkJCXJldHVybiBPQ0xBU1NfQ0VLREFUQTsKKworCQljYXNlIENv bHVtbk1hc3RlcktleVJlbGF0aW9uSWQ6CisJCQlyZXR1cm4gT0NMQVNTX0NNSzsKKwogCQlj YXNlIENvbnN0cmFpbnRSZWxhdGlvbklkOgogCQkJcmV0dXJuIE9DTEFTU19DT05TVFJBSU5U OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IGJkZDQxM2YwMWIuLmMwNDJkOTIxOTYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvaGVhcC5jCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wYXJ0 aXRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19hdHRyZGVmLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf Y29uc3RyYWludC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl90YWJsZS5oIgpA QCAtNzQ5LDYgKzc1MCw5IEBAIEluc2VydFBnQXR0cmlidXRlVHVwbGVzKFJlbGF0aW9uIHBn X2F0dHJpYnV0ZV9yZWwsCiAJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3Bn X2F0dHJpYnV0ZV9hdHRnZW5lcmF0ZWQgLSAxXSA9IENoYXJHZXREYXR1bShhdHRycy0+YXR0 Z2VuZXJhdGVkKTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0 cmlidXRlX2F0dGlzZHJvcHBlZCAtIDFdID0gQm9vbEdldERhdHVtKGF0dHJzLT5hdHRpc2Ry b3BwZWQpOwogCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1 dGVfYXR0aXNsb2NhbCAtIDFdID0gQm9vbEdldERhdHVtKGF0dHJzLT5hdHRpc2xvY2FsKTsK KwkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGNl ayAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShhdHRycy0+YXR0Y2VrKTsKKwkJc2xvdFtzbG90 Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dHJlYWx0eXBpZCAtIDFd ID0gT2JqZWN0SWRHZXREYXR1bShhdHRycy0+YXR0cmVhbHR5cGlkKTsKKwkJc2xvdFtzbG90 Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGVuY2FsZyAtIDFdID0g SW50MzJHZXREYXR1bShhdHRycy0+YXR0ZW5jYWxnKTsKIAkJc2xvdFtzbG90Q291bnRdLT50 dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGluaGNvdW50IC0gMV0gPSBJbnQzMkdl dERhdHVtKGF0dHJzLT5hdHRpbmhjb3VudCk7CiAJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3Zh bHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0 RGF0dW0oYXR0cnMtPmF0dGNvbGxhdGlvbik7CiAJCWlmIChhdHRvcHRpb25zICYmIGF0dG9w dGlvbnNbbmF0dHNdICE9IChEYXR1bSkgMCkKQEAgLTg0MCw2ICs4NDQsMjAgQEAgQWRkTmV3 QXR0cmlidXRlVHVwbGVzKE9pZCBuZXdfcmVsX29pZCwKIAkJCQkJCQkgdHVwZGVzYy0+YXR0 cnNbaV0uYXR0Y29sbGF0aW9uKTsKIAkJCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAm cmVmZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JNQUwpOwogCQl9CisKKwkJaWYgKE9pZElzVmFs aWQodHVwZGVzYy0+YXR0cnNbaV0uYXR0Y2VrKSkKKwkJeworCQkJT2JqZWN0QWRkcmVzc1Nl dChyZWZlcmVuY2VkLCBDb2x1bW5FbmNLZXlSZWxhdGlvbklkLAorCQkJCQkJCSB0dXBkZXNj LT5hdHRyc1tpXS5hdHRjZWspOworCQkJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZy ZWZlcmVuY2VkLCBERVBFTkRFTkNZX05PUk1BTCk7CisJCX0KKworCQlpZiAoT2lkSXNWYWxp ZCh0dXBkZXNjLT5hdHRyc1tpXS5hdHRyZWFsdHlwaWQpKQorCQl7CisJCQlPYmplY3RBZGRy ZXNzU2V0KHJlZmVyZW5jZWQsIFR5cGVSZWxhdGlvbklkLAorCQkJCQkJCSB0dXBkZXNjLT5h dHRyc1tpXS5hdHRyZWFsdHlwaWQpOworCQkJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYs ICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZX05PUk1BTCk7CisJCX0KIAl9CiAKIAkvKgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCBmZTk3ZmJmNzlkLi4xZGZlNGI2 OTI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwpAQCAtMjksNyArMjks MTAgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhpZC5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfYXV0aF9tZW1iZXJzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X2NvbGVuY2tleWRhdGEuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb252ZXJzaW9uLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgpAQCAtMTkxLDYgKzE5NCw0OCBA QCBzdGF0aWMgY29uc3QgT2JqZWN0UHJvcGVydHlUeXBlIE9iamVjdFByb3BlcnR5W10gPQog CQlPQkpFQ1RfQ09MTEFUSU9OLAogCQl0cnVlCiAJfSwKKwl7CisJCSJjb2x1bW4gZW5jcnlw dGlvbiBrZXkiLAorCQlDb2x1bW5FbmNLZXlSZWxhdGlvbklkLAorCQlDb2x1bW5FbmNLZXlP aWRJbmRleElkLAorCQlDRUtPSUQsCisJCUNFS05BTUUsCisJCUFudW1fcGdfY29sZW5ja2V5 X29pZCwKKwkJQW51bV9wZ19jb2xlbmNrZXlfY2VrbmFtZSwKKwkJSW52YWxpZEF0dHJOdW1i ZXIsCisJCUFudW1fcGdfY29sZW5ja2V5X2Nla293bmVyLAorCQlJbnZhbGlkQXR0ck51bWJl ciwKKwkJT0JKRUNUX0NFSywKKwkJdHJ1ZQorCX0sCisJeworCQkiY29sdW1uIGVuY3J5cHRp b24ga2V5IGRhdGEiLAorCQlDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwKKwkJQ29sdW1u RW5jS2V5RGF0YU9pZEluZGV4SWQsCisJCUNFS0RBVEFPSUQsCisJCS0xLAorCQlBbnVtX3Bn X2NvbGVuY2tleWRhdGFfb2lkLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJSW52YWxpZEF0 dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwK KwkJLTEsCisJCWZhbHNlCisJfSwKKwl7CisJCSJjb2x1bW4gbWFzdGVyIGtleSIsCisJCUNv bHVtbk1hc3RlcktleVJlbGF0aW9uSWQsCisJCUNvbHVtbk1hc3RlcktleU9pZEluZGV4SWQs CisJCUNNS09JRCwKKwkJQ01LTkFNRSwKKwkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfb2lkLAor CQlBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtuYW1lLAorCQlJbnZhbGlkQXR0ck51bWJlciwK KwkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rb3duZXIsCisJCUludmFsaWRBdHRyTnVtYmVy LAorCQlPQkpFQ1RfQ01LLAorCQl0cnVlCisJfSwKIAl7CiAJCSJjb25zdHJhaW50IiwKIAkJ Q29uc3RyYWludFJlbGF0aW9uSWQsCkBAIC03MjMsNiArNzY4LDE4IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJewogCQkiY29sbGF0aW9uIiwgT0JKRUNUX0NP TExBVElPTgogCX0sCisJLyogT0NMQVNTX0NFSyAqLworCXsKKwkJImNvbHVtbiBlbmNyeXB0 aW9uIGtleSIsIE9CSkVDVF9DRUsKKwl9LAorCS8qIE9DTEFTU19DRUtEQVRBICovCisJewor CQkiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEiLCBPQkpFQ1RfQ0VLREFUQQorCX0sCisJ LyogT0NMQVNTX0NNSyAqLworCXsKKwkJImNvbHVtbiBtYXN0ZXIga2V5IiwgT0JKRUNUX0NN SworCX0sCiAJLyogT0NMQVNTX0NPTlNUUkFJTlQgKi8KIAl7CiAJCSJ0YWJsZSBjb25zdHJh aW50IiwgT0JKRUNUX1RBQkNPTlNUUkFJTlQKQEAgLTEwMjksNiArMTA4Niw4IEBAIGdldF9v YmplY3RfYWRkcmVzcyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCwKIAkJCQkJ YWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSBP QkpFQ1RfQ0VLOgorCQkJY2FzZSBPQkpFQ1RfQ01LOgogCQkJY2FzZSBPQkpFQ1RfREFUQUJB U0U6CiAJCQljYXNlIE9CSkVDVF9FWFRFTlNJT046CiAJCQljYXNlIE9CSkVDVF9UQUJMRVNQ QUNFOgpAQCAtMTEwOCw2ICsxMTY3LDIxIEBAIGdldF9vYmplY3RfYWRkcmVzcyhPYmplY3RU eXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCwKIAkJCQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9 IDA7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfQ0VLREFUQToKKwkJCQl7 CisJCQkJCWNoYXIJICAgKmNla25hbWUgPSBzdHJWYWwobGluaXRpYWwoY2FzdE5vZGUoTGlz dCwgb2JqZWN0KSkpOworCQkJCQljaGFyCSAgICpjbWtuYW1lID0gc3RyVmFsKGxzZWNvbmQo Y2FzdE5vZGUoTGlzdCwgb2JqZWN0KSkpOworCQkJCQlPaWQJCQljZWtpZDsKKwkJCQkJT2lk CQkJY21raWQ7CisKKwkJCQkJY2VraWQgPSBnZXRfY2VrX29pZChjZWtuYW1lLCBtaXNzaW5n X29rKTsKKwkJCQkJY21raWQgPSBnZXRfY21rX29pZChjbWtuYW1lLCBtaXNzaW5nX29rKTsK KworCQkJCQlhZGRyZXNzLmNsYXNzSWQgPSBDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZDsK KwkJCQkJYWRkcmVzcy5vYmplY3RJZCA9IGdldF9jZWtkYXRhX29pZChjZWtpZCwgY21raWQs IG1pc3Npbmdfb2spOworCQkJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKKwkJCQl9CisJ CQkJYnJlYWs7CiAJCQljYXNlIE9CSkVDVF9UUkFOU0ZPUk06CiAJCQkJewogCQkJCQlUeXBl TmFtZSAgICp0eXBlbmFtZSA9IGxpbml0aWFsX25vZGUoVHlwZU5hbWUsIGNhc3ROb2RlKExp c3QsIG9iamVjdCkpOwpAQCAtMTI5Myw2ICsxMzY3LDE2IEBAIGdldF9vYmplY3RfYWRkcmVz c191bnF1YWxpZmllZChPYmplY3RUeXBlIG9ianR5cGUsCiAJCQlhZGRyZXNzLm9iamVjdElk ID0gZ2V0X2FtX29pZChuYW1lLCBtaXNzaW5nX29rKTsKIAkJCWFkZHJlc3Mub2JqZWN0U3Vi SWQgPSAwOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCWFkZHJlc3MuY2xh c3NJZCA9IENvbHVtbkVuY0tleVJlbGF0aW9uSWQ7CisJCQlhZGRyZXNzLm9iamVjdElkID0g Z2V0X2Nla19vaWQobmFtZSwgbWlzc2luZ19vayk7CisJCQlhZGRyZXNzLm9iamVjdFN1Yklk ID0gMDsKKwkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9DTUs6CisJCQlhZGRyZXNzLmNsYXNz SWQgPSBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkOworCQkJYWRkcmVzcy5vYmplY3RJZCA9 IGdldF9jbWtfb2lkKG5hbWUsIG1pc3Npbmdfb2spOworCQkJYWRkcmVzcy5vYmplY3RTdWJJ ZCA9IDA7CisJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CiAJCQlhZGRyZXNz LmNsYXNzSWQgPSBEYXRhYmFzZVJlbGF0aW9uSWQ7CiAJCQlhZGRyZXNzLm9iamVjdElkID0g Z2V0X2RhdGFiYXNlX29pZChuYW1lLCBtaXNzaW5nX29rKTsKQEAgLTIyNTMsNiArMjMzNyw3 IEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCSAqLwogCXN3 aXRjaCAodHlwZSkKIAl7CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CiAJCWNhc2UgT0JKRUNU X1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5HOgog CQkJaWYgKGxpc3RfbGVuZ3RoKG5hbWUpICE9IDEpCkBAIC0yMzI3LDYgKzI0MTIsOCBAQCBw Z19nZXRfb2JqZWN0X2FkZHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJCW9iam5vZGUgPSAo Tm9kZSAqKSBuYW1lOwogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6 CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJY2FzZSBPQkpFQ1RfQ01LOgogCQljYXNlIE9CSkVD VF9EQVRBQkFTRToKIAkJY2FzZSBPQkpFQ1RfRVZFTlRfVFJJR0dFUjoKIAkJY2FzZSBPQkpF Q1RfRVhURU5TSU9OOgpAQCAtMjM1Nyw2ICsyNDQ0LDcgQEAgcGdfZ2V0X29iamVjdF9hZGRy ZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX1JFTDoK IAkJCW9iam5vZGUgPSAoTm9kZSAqKSBsaXN0X21ha2UyKG5hbWUsIGxpbml0aWFsKGFyZ3Mp KTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9DRUtEQVRBOgogCQljYXNlIE9CSkVDVF9Q VUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoKIAkJ CW9iam5vZGUgPSAoTm9kZSAqKSBsaXN0X21ha2UyKGxpbml0aWFsKG5hbWUpLCBsaW5pdGlh bChhcmdzKSk7CkBAIC0yNDgwLDYgKzI1NjgsOCBAQCBjaGVja19vYmplY3Rfb3duZXJzaGlw KE9pZCByb2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2JqZWN0QWRkcmVzcyBhZGRyZXNz LAogCQkJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgb2JqdHlwZSwKIAkJ CQkJCQkgICBOYW1lTGlzdFRvU3RyaW5nKChjYXN0Tm9kZShPYmplY3RXaXRoQXJncywgb2Jq ZWN0KSktPm9iam5hbWUpKTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9DRUs6CisJCWNh c2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CiAJCWNhc2UgT0JKRUNU X0VWRU5UX1RSSUdHRVI6CiAJCWNhc2UgT0JKRUNUX0VYVEVOU0lPTjoKQEAgLTI1NzIsNiAr MjY2Miw3IEBAIGNoZWNrX29iamVjdF9vd25lcnNoaXAoT2lkIHJvbGVpZCwgT2JqZWN0VHlw ZSBvYmp0eXBlLCBPYmplY3RBZGRyZXNzIGFkZHJlc3MsCiAJCQlicmVhazsKIAkJY2FzZSBP QkpFQ1RfQU1PUDoKIAkJY2FzZSBPQkpFQ1RfQU1QUk9DOgorCQljYXNlIE9CSkVDVF9DRUtE QVRBOgogCQljYXNlIE9CSkVDVF9ERUZBVUxUOgogCQljYXNlIE9CSkVDVF9ERUZBQ0w6CiAJ CWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKQEAgLTMwMzcsNiArMzEyOCw0 OCBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3Qs IGJvb2wgbWlzc2luZ19vaykKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIE9DTEFTU19D RUs6CisJCQl7CisJCQkJY2hhcgkgICAqY2VrbmFtZSA9IGdldF9jZWtfbmFtZShvYmplY3Qt Pm9iamVjdElkLCBtaXNzaW5nX29rKTsKKworCQkJCWlmIChjZWtuYW1lKQorCQkJCQlhcHBl bmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oImNvbHVtbiBlbmNyeXB0aW9uIGtleSAlcyIpLCBj ZWtuYW1lKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNlIE9DTEFTU19DRUtEQVRBOgor CQkJeworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ19jb2xlbmNrZXlkYXRhIGNl a2RhdGE7CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQ0VLREFUQU9JRCwgT2JqZWN0 SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1Zh bGlkKHR1cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVS Uk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IGRh dGEgJXUiLAorCQkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKwkJCQkJYnJlYWs7CisJCQkJ fQorCisJCQkJY2VrZGF0YSA9IChGb3JtX3BnX2NvbGVuY2tleWRhdGEpIEdFVFNUUlVDVCh0 dXApOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJjb2x1bW4gZW5jcnlw dGlvbiBrZXkgJXMgZGF0YSBmb3IgbWFzdGVyIGtleSAlcyIpLAorCQkJCQkJCQkgZ2V0X2Nl a19uYW1lKGNla2RhdGEtPmNrZGNla2lkLCBmYWxzZSksCisJCQkJCQkJCSBnZXRfY21rX25h bWUoY2VrZGF0YS0+Y2tkY21raWQsIGZhbHNlKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUo dHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNlIE9DTEFTU19DTUs6CisJCQl7CisJ CQkJY2hhcgkgICAqY21rbmFtZSA9IGdldF9jbWtfbmFtZShvYmplY3QtPm9iamVjdElkLCBt aXNzaW5nX29rKTsKKworCQkJCWlmIChjbWtuYW1lKQorCQkJCQlhcHBlbmRTdHJpbmdJbmZv KCZidWZmZXIsIF8oImNvbHVtbiBtYXN0ZXIga2V5ICVzIiksIGNta25hbWUpOworCQkJCWJy ZWFrOworCQkJfQorCiAJCWNhc2UgT0NMQVNTX0NPTlNUUkFJTlQ6CiAJCQl7CiAJCQkJSGVh cFR1cGxlCWNvblR1cDsKQEAgLTQ0NjEsNiArNDU5NCwxOCBAQCBnZXRPYmplY3RUeXBlRGVz Y3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2sp CiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb2xsYXRpb24iKTsKIAkJ CWJyZWFrOwogCisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoJmJ1ZmZlciwgImNvbHVtbiBlbmNyeXB0aW9uIGtleSIpOworCQkJYnJlYWs7CisKKwkJ Y2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZl ciwgImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIik7CisJCQlicmVhazsKKworCQljYXNl IE9DTEFTU19DTUs6CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb2x1 bW4gbWFzdGVyIGtleSIpOworCQkJYnJlYWs7CisKIAkJY2FzZSBPQ0xBU1NfQ09OU1RSQUlO VDoKIAkJCWdldENvbnN0cmFpbnRUeXBlRGVzY3JpcHRpb24oJmJ1ZmZlciwgb2JqZWN0LT5v YmplY3RJZCwKIAkJCQkJCQkJCQkgbWlzc2luZ19vayk7CkBAIC00OTI2LDYgKzUwNzEsNzQg QEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3Qs CiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBPQ0xBU1NfQ0VLOgorCQkJeworCQkJCUhl YXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ19jb2xlbmNrZXkgZm9ybTsKKworCQkJCXR1cCA9 IFNlYXJjaFN5c0NhY2hlMShDRUtPSUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmpl Y3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCXsKKwkJCQkJ aWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWls ZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAldSIsCisJCQkJCQkJIG9iamVjdC0+b2Jq ZWN0SWQpOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJZm9ybSA9IChGb3JtX3BnX2NvbGVu Y2tleSkgR0VUU1RSVUNUKHR1cCk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVm ZmVyLAorCQkJCQkJCQkJICAgcXVvdGVfaWRlbnRpZmllcihOYW1lU3RyKGZvcm0tPmNla25h bWUpKSk7CisJCQkJaWYgKG9iam5hbWUpCisJCQkJCSpvYmpuYW1lID0gbGlzdF9tYWtlMShw c3RyZHVwKE5hbWVTdHIoZm9ybS0+Y2VrbmFtZSkpKTsKKwkJCQlSZWxlYXNlU3lzQ2FjaGUo dHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNlIE9DTEFTU19DRUtEQVRBOgorCQkJ eworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ19jb2xlbmNrZXlkYXRhIGZvcm07 CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQ0VLREFUQU9JRCwgT2JqZWN0SWRHZXRE YXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1 cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9SLCAi Y2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEgJXUi LAorCQkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJ CWZvcm0gPSAoRm9ybV9wZ19jb2xlbmNrZXlkYXRhKSBHRVRTVFJVQ1QodHVwKTsKKwkJCQlh cHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsCisJCQkJCQkJCSAib2YgJXMgZm9yICVzIiwgZ2V0 X2Nla19uYW1lKGZvcm0tPmNrZGNla2lkLCBmYWxzZSksIGdldF9jbWtfbmFtZShmb3JtLT5j a2RjbWtpZCwgZmFsc2UpKTsKKwkJCQlpZiAob2JqbmFtZSkKKwkJCQkJKm9iam5hbWUgPSBs aXN0X21ha2UxKGdldF9jZWtfbmFtZShmb3JtLT5ja2RjZWtpZCwgZmFsc2UpKTsKKwkJCQlp ZiAob2JqYXJncykKKwkJCQkJKm9iamFyZ3MgPSBsaXN0X21ha2UxKGdldF9jbWtfbmFtZShm b3JtLT5ja2RjbWtpZCwgZmFsc2UpKTsKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJ CQlicmVhazsKKwkJCX0KKworCQljYXNlIE9DTEFTU19DTUs6CisJCQl7CisJCQkJSGVhcFR1 cGxlCXR1cDsKKwkJCQlGb3JtX3BnX2NvbG1hc3RlcmtleSBmb3JtOworCisJCQkJdHVwID0g U2VhcmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVj dElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJeworCQkJCQlp ZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxl ZCBmb3IgY29sdW1uIG1hc3RlciBrZXkgJXUiLAorCQkJCQkJCSBvYmplY3QtPm9iamVjdElk KTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCWZvcm0gPSAoRm9ybV9wZ19jb2xtYXN0ZXJr ZXkpIEdFVFNUUlVDVCh0dXApOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZl ciwKKwkJCQkJCQkJCSAgIHF1b3RlX2lkZW50aWZpZXIoTmFtZVN0cihmb3JtLT5jbWtuYW1l KSkpOworCQkJCWlmIChvYmpuYW1lKQorCQkJCQkqb2JqbmFtZSA9IGxpc3RfbWFrZTEocHN0 cmR1cChOYW1lU3RyKGZvcm0tPmNta25hbWUpKSk7CisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1 cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJY2FzZSBPQ0xBU1NfQ09OU1RSQUlOVDoKIAkJ CXsKIAkJCQlIZWFwVHVwbGUJY29uVHVwOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQppbmRleCA0 OGY3MzQ4ZjkxLi42OWY2MTc1YzYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQpAQCAtMTks NiArMTksNyBAQCBPQkpTID0gXAogCWFuYWx5emUubyBcCiAJYXN5bmMubyBcCiAJY2x1c3Rl ci5vIFwKKwljb2xlbmNjbWRzLm8gXAogCWNvbGxhdGlvbmNtZHMubyBcCiAJY29tbWVudC5v IFwKIAljb25zdHJhaW50Lm8gXApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv YWx0ZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKaW5kZXggMTBiNmZlMTlh Mi4uZGIxYWRhMzkwOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCkBAIC0yMiw3ICsyMiw5IEBA CiAjaW5jbHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFt ZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0 aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2NvbnZlcnNpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2V2ZW50 X3RyaWdnZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVy LmgiCkBAIC04MCw2ICs4MiwxMiBAQCByZXBvcnRfbmFtZV9jb25mbGljdChPaWQgY2xhc3NJ ZCwgY29uc3QgY2hhciAqbmFtZSkKIAogCXN3aXRjaCAoY2xhc3NJZCkKIAl7CisJCWNhc2Ug Q29sdW1uRW5jS2V5UmVsYXRpb25JZDoKKwkJCW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgiY29s dW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIpOworCQkJYnJlYWs7 CisJCWNhc2UgQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZDoKKwkJCW1zZ2ZtdCA9IGdldHRl eHRfbm9vcCgiY29sdW1uIG1hc3RlciBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3RzIik7CisJ CQlicmVhazsKIAkJY2FzZSBFdmVudFRyaWdnZXJSZWxhdGlvbklkOgogCQkJbXNnZm10ID0g Z2V0dGV4dF9ub29wKCJldmVudCB0cmlnZ2VyIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIpOwog CQkJYnJlYWs7CkBAIC0zNzUsNiArMzgzLDggQEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1lU3Rt dCAqc3RtdCkKIAkJCXJldHVybiBSZW5hbWVUeXBlKHN0bXQpOwogCiAJCWNhc2UgT0JKRUNU X0FHR1JFR0FURToKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJ CWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJ Y2FzZSBPQkpFQ1RfRVZFTlRfVFJJR0dFUjoKQEAgLTYzOSw2ICs2NDksOSBAQCBBbHRlck9i amVjdE5hbWVzcGFjZV9vaWQoT2lkIGNsYXNzSWQsIE9pZCBvYmppZCwgT2lkIG5zcE9pZCwK IAkJCWJyZWFrOwogCiAJCWNhc2UgT0NMQVNTX0NBU1Q6CisJCWNhc2UgT0NMQVNTX0NFSzoK KwkJY2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJY2FzZSBPQ0xBU1NfQ01LOgogCQljYXNlIE9D TEFTU19DT05TVFJBSU5UOgogCQljYXNlIE9DTEFTU19ERUZBVUxUOgogCQljYXNlIE9DTEFT U19MQU5HVUFHRToKQEAgLTg3Miw2ICs4ODUsOCBAQCBFeGVjQWx0ZXJPd25lclN0bXQoQWx0 ZXJPd25lclN0bXQgKnN0bXQpCiAKIAkJCS8qIEdlbmVyaWMgY2FzZXMgKi8KIAkJY2FzZSBP QkpFQ1RfQUdHUkVHQVRFOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NN SzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9O OgogCQljYXNlIE9CSkVDVF9GVU5DVElPTjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2NvbGVuY2NtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iNGE4NTEwMWNkCi0t LSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jCkBA IC0wLDAgKzEsNDI2IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBjb2xlbmNj bWRzLmMKKyAqCSAgY29sdW1uLWVuY3J5cHRpb24tcmVsYXRlZCBjb21tYW5kcyBzdXBwb3J0 IGNvZGUKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMywgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgor ICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVu Y2NtZHMuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAicG9z dGdyZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKKyNpbmNsdWRl ICJhY2Nlc3MvdGFibGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKKyNpbmNs dWRlICJjYXRhbG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5n LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX2NvbGVuY2tleS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0 YS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ19kYXRhYmFzZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2NvbGVuY2NtZHMu aCIKKyNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCisjaW5jbHVkZSAiY29tbWFu ZHMvZGVmcmVtLmgiCisjaW5jbHVkZSAiY29tbW9uL2NvbGVuYy5oIgorI2luY2x1ZGUgIm1p c2NhZG1pbi5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgorI2luY2x1ZGUgInV0aWxzL2J1 aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRp bHMvcmVsLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworc3RhdGljIHZvaWQK K3BhcnNlX2Nla19hdHRyaWJ1dGVzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZGVmaW5p dGlvbiwgT2lkICpjbWtvaWRfcCwgaW50ICphbGdfcCwgY2hhciAqKmVuY3ZhbF9wKQorewor CUxpc3RDZWxsICAgKmxjOworCURlZkVsZW0gICAgKmNta0VsID0gTlVMTDsKKwlEZWZFbGVt ICAgICphbGdFbCA9IE5VTEw7CisJRGVmRWxlbSAgICAqZW5jdmFsRWwgPSBOVUxMOworCU9p ZAkJCWNta29pZCA9IEludmFsaWRPaWQ7CisJaW50CQkJYWxnID0gMDsKKwljaGFyCSAgICpl bmN2YWwgPSBOVUxMOworCisJQXNzZXJ0KGNta29pZF9wKTsKKworCWZvcmVhY2gobGMsIGRl ZmluaXRpb24pCisJeworCQlEZWZFbGVtICAgICpkZWZlbCA9IGxmaXJzdF9ub2RlKERlZkVs ZW0sIGxjKTsKKwkJRGVmRWxlbSAgICoqZGVmZWxwOworCisJCWlmIChzdHJjbXAoZGVmZWwt PmRlZm5hbWUsICJjb2x1bW5fbWFzdGVyX2tleSIpID09IDApCisJCQlkZWZlbHAgPSAmY21r RWw7CisJCWVsc2UgaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImFsZ29yaXRobSIpID09 IDApCisJCQlkZWZlbHAgPSAmYWxnRWw7CisJCWVsc2UgaWYgKHN0cmNtcChkZWZlbC0+ZGVm bmFtZSwgImVuY3J5cHRlZF92YWx1ZSIpID09IDApCisJCQlkZWZlbHAgPSAmZW5jdmFsRWw7 CisJCWVsc2UKKwkJeworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkg YXR0cmlidXRlIFwiJXNcIiBub3QgcmVjb2duaXplZCIsCisJCQkJCQkJZGVmZWwtPmRlZm5h bWUpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVmZWwtPmxvY2F0aW9u KSkpOworCQl9CisJCWlmICgqZGVmZWxwICE9IE5VTEwpCisJCQllcnJvckNvbmZsaWN0aW5n RGVmRWxlbShkZWZlbCwgcHN0YXRlKTsKKwkJKmRlZmVscCA9IGRlZmVsOworCX0KKworCWlm IChjbWtFbCkKKwl7CisJCWNoYXIJICAgKnZhbCA9IGRlZkdldFN0cmluZyhjbWtFbCk7CisK KwkJY21rb2lkID0gR2V0U3lzQ2FjaGVPaWQxKENNS05BTUUsIEFudW1fcGdfY29sbWFzdGVy a2V5X29pZCwgUG9pbnRlckdldERhdHVtKHZhbCkpOworCQlpZiAoIWNta29pZCkKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwK KwkJCQkJZXJybXNnKCJjb2x1bW4gbWFzdGVyIGtleSBcIiVzXCIgZG9lcyBub3QgZXhpc3Qi LCB2YWwpKTsKKwl9CisJZWxzZQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVS UkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNnKCJhdHRyaWJ1dGUgXCIlc1wiIG11 c3QgYmUgc3BlY2lmaWVkIiwKKwkJCQkJCSJjb2x1bW5fbWFzdGVyX2tleSIpKSk7CisKKwlp ZiAoYWxnRWwpCisJeworCQljaGFyCSAgICp2YWwgPSBkZWZHZXRTdHJpbmcoYWxnRWwpOwor CisJCWlmICghYWxnX3ApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImF0dHJpYnV0ZSBcIiVzXCIgbXVz dCBub3QgYmUgc3BlY2lmaWVkIiwKKwkJCQkJCQkiYWxnb3JpdGhtIikpKTsKKworCQlhbGcg PSBnZXRfY21rYWxnX251bSh2YWwpOworCQlpZiAoIWFsZykKKwkJCWVyZXBvcnQoRVJST1Is CisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJ CWVycm1zZygidW5yZWNvZ25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtOiAlcyIsIHZhbCkp OworCX0KKwllbHNlCisJeworCQlpZiAoYWxnX3ApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImF0dHJp YnV0ZSBcIiVzXCIgbXVzdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJCSJhbGdvcml0aG0iKSkp OworCX0KKworCWlmIChlbmN2YWxFbCkKKwl7CisJCWlmICghZW5jdmFsX3ApCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJ CSBlcnJtc2coImF0dHJpYnV0ZSBcIiVzXCIgbXVzdCBub3QgYmUgc3BlY2lmaWVkIiwKKwkJ CQkJCQkiZW5jcnlwdGVkX3ZhbHVlIikpKTsKKworCQllbmN2YWwgPSBkZWZHZXRTdHJpbmco ZW5jdmFsRWwpOworCX0KKwllbHNlCisJeworCQlpZiAoZW5jdmFsX3ApCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBl cnJtc2coImF0dHJpYnV0ZSBcIiVzXCIgbXVzdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJCSJl bmNyeXB0ZWRfdmFsdWUiKSkpOworCX0KKworCSpjbWtvaWRfcCA9IGNta29pZDsKKwlpZiAo YWxnX3ApCisJCSphbGdfcCA9IGFsZzsKKwlpZiAoZW5jdmFsX3ApCisJCSplbmN2YWxfcCA9 IGVuY3ZhbDsKK30KKworc3RhdGljIHZvaWQKK2luc2VydF9jZWtkYXRhX3JlY29yZChPaWQg Y2Vrb2lkLCBPaWQgY21rb2lkLCBpbnQgYWxnLCBjaGFyICplbmN2YWwpCit7CisJT2lkCQkJ Y2VrZGF0YW9pZDsKKwlSZWxhdGlvbglyZWw7CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19j b2xlbmNrZXlkYXRhXSA9IHswfTsKKwlib29sCQludWxsc1tOYXR0c19wZ19jb2xlbmNrZXlk YXRhXSA9IHswfTsKKwlIZWFwVHVwbGUJdHVwOworCU9iamVjdEFkZHJlc3MgbXlzZWxmOwor CU9iamVjdEFkZHJlc3Mgb3RoZXI7CisKKwlyZWwgPSB0YWJsZV9vcGVuKENvbHVtbkVuY0tl eURhdGFSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCWNla2RhdGFvaWQgPSBH ZXROZXdPaWRXaXRoSW5kZXgocmVsLCBDb2x1bW5FbmNLZXlEYXRhT2lkSW5kZXhJZCwgQW51 bV9wZ19jb2xlbmNrZXlkYXRhX29pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5ZGF0 YV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oY2VrZGF0YW9pZCk7CisJdmFsdWVzW0Fu dW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RjZWtpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShj ZWtvaWQpOworCXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tkY21raWQgLSAxXSA9 IE9iamVjdElkR2V0RGF0dW0oY21rb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlk YXRhX2NrZGNta2FsZyAtIDFdID0gSW50MzJHZXREYXR1bShhbGcpOworCXZhbHVlc1tBbnVt X3BnX2NvbGVuY2tleWRhdGFfY2tkZW5jdmFsIC0gMV0gPSBEaXJlY3RGdW5jdGlvbkNhbGwx KGJ5dGVhaW4sIENTdHJpbmdHZXREYXR1bShlbmN2YWwpKTsKKworCXR1cCA9IGhlYXBfZm9y bV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOworCUNhdGFs b2dUdXBsZUluc2VydChyZWwsIHR1cCk7CisJaGVhcF9mcmVldHVwbGUodHVwKTsKKworCU9i amVjdEFkZHJlc3NTZXQobXlzZWxmLCBDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwgY2Vr ZGF0YW9pZCk7CisKKwkvKiBkZXBlbmRlbmN5IGNla2RhdGEgLT4gY2VrICovCisJT2JqZWN0 QWRkcmVzc1NldChvdGhlciwgQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkKTsKKwly ZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJm90aGVyLCBERVBFTkRFTkNZX0FVVE8pOwor CisJLyogZGVwZW5kZW5jeSBjZWtkYXRhIC0+IGNtayAqLworCU9iamVjdEFkZHJlc3NTZXQo b3RoZXIsIENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCk7CisJcmVjb3JkRGVw ZW5kZW5jeU9uKCZteXNlbGYsICZvdGhlciwgREVQRU5ERU5DWV9OT1JNQUwpOworCisJdGFi bGVfY2xvc2UocmVsLCBOb0xvY2spOworfQorCitPYmplY3RBZGRyZXNzCitDcmVhdGVDRUso UGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZpbmVTdG10ICpzdG10KQoreworCUFjbFJlc3VsdAlh Y2xyZXN1bHQ7CisJUmVsYXRpb24JcmVsOworCU9iamVjdEFkZHJlc3MgbXlzZWxmOworCU9p ZAkJCWNla29pZDsKKwlMaXN0Q2VsbCAgICpsYzsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3Bn X2NvbGVuY2tleV0gPSB7MH07CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfY29sZW5ja2V5XSA9 IHswfTsKKwlIZWFwVHVwbGUJdHVwOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNr KERhdGFiYXNlUmVsYXRpb25JZCwgTXlEYXRhYmFzZUlkLCBHZXRVc2VySWQoKSwgQUNMX0NS RUFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJy b3IoYWNscmVzdWx0LCBPQkpFQ1RfREFUQUJBU0UsCisJCQkJCSAgIGdldF9kYXRhYmFzZV9u YW1lKE15RGF0YWJhc2VJZCkpOworCisJcmVsID0gdGFibGVfb3BlbihDb2x1bW5FbmNLZXlS ZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCWNla29pZCA9IEdldFN5c0NhY2hl T2lkMShDRUtOQU1FLCBBbnVtX3BnX2NvbGVuY2tleV9vaWQsCisJCQkJCQkJIENTdHJpbmdH ZXREYXR1bShzdHJWYWwobGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkpOworCWlmIChPaWRJc1Zh bGlkKGNla29pZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9E VVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkg XCIlc1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJCQkJCXN0clZhbChsbGFzdChzdG10LT5kZWZu YW1lcykpKSkpOworCisJY2Vrb2lkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgQ29sdW1u RW5jS2V5T2lkSW5kZXhJZCwgQW51bV9wZ19jb2xlbmNrZXlfb2lkKTsKKworCWZvcmVhY2gg KGxjLCBzdG10LT5kZWZpbml0aW9uKQorCXsKKwkJTGlzdAkgICAqZGVmaW5pdGlvbiA9IGxm aXJzdF9ub2RlKExpc3QsIGxjKTsKKwkJT2lkCQkJY21rb2lkID0gMDsKKwkJaW50CQkJYWxn OworCQljaGFyCSAgICplbmN2YWw7CisKKwkJcGFyc2VfY2VrX2F0dHJpYnV0ZXMocHN0YXRl LCBkZWZpbml0aW9uLCAmY21rb2lkLCAmYWxnLCAmZW5jdmFsKTsKKworCQkvKiBwZ19jb2xl bmNrZXlkYXRhICovCisJCWluc2VydF9jZWtkYXRhX3JlY29yZChjZWtvaWQsIGNta29pZCwg YWxnLCBlbmN2YWwpOworCX0KKworCS8qIHBnX2NvbGVuY2tleSAqLworCXZhbHVlc1tBbnVt X3BnX2NvbGVuY2tleV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oY2Vrb2lkKTsKKwl2 YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlfY2VrbmFtZSAtIDFdID0KKwkJRGlyZWN0RnVuY3Rp b25DYWxsMShuYW1laW4sIENTdHJpbmdHZXREYXR1bShzdHJWYWwobGxhc3Qoc3RtdC0+ZGVm bmFtZXMpKSkpOworCXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleV9jZWtvd25lciAtIDFdID0g T2JqZWN0SWRHZXREYXR1bShHZXRVc2VySWQoKSk7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVw bGUoUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzKTsKKwlDYXRhbG9nVHVw bGVJbnNlcnQocmVsLCB0dXApOworCWhlYXBfZnJlZXR1cGxlKHR1cCk7CisKKwlPYmplY3RB ZGRyZXNzU2V0KG15c2VsZiwgQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkKTsKKwly ZWNvcmREZXBlbmRlbmN5T25Pd25lcihDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtvaWQs IEdldFVzZXJJZCgpKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7 CisKKwlJbnZva2VPYmplY3RQb3N0Q3JlYXRlSG9vayhDb2x1bW5FbmNLZXlSZWxhdGlvbklk LCBjZWtvaWQsIDApOworCisJcmV0dXJuIG15c2VsZjsKK30KKworT2JqZWN0QWRkcmVzcwor QWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJDb2x1 bW5FbmNyeXB0aW9uS2V5U3RtdCAqc3RtdCkKK3sKKwlPaWQJCQljZWtvaWQ7CisJT2JqZWN0 QWRkcmVzcyBhZGRyZXNzOworCisJY2Vrb2lkID0gZ2V0X2Nla19vaWQoc3RtdC0+Y2VrbmFt ZSwgZmFsc2UpOworCisJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhDb2x1bW5FbmNLZXlSZWxh dGlvbklkLCBjZWtvaWQsIEdldFVzZXJJZCgpKSkKKwkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hF Q0tfTk9UX09XTkVSLCBPQkpFQ1RfQ0VLLCBzdG10LT5jZWtuYW1lKTsKKworCWlmIChzdG10 LT5pc0Ryb3ApCisJeworCQlPaWQJCQljbWtvaWQgPSAwOworCQlPaWQJCQljZWtkYXRhb2lk OworCQlPYmplY3RBZGRyZXNzIG9iajsKKworCQlwYXJzZV9jZWtfYXR0cmlidXRlcyhwc3Rh dGUsIHN0bXQtPmRlZmluaXRpb24sICZjbWtvaWQsIE5VTEwsIE5VTEwpOworCQljZWtkYXRh b2lkID0gZ2V0X2Nla2RhdGFfb2lkKGNla29pZCwgY21rb2lkLCBmYWxzZSk7CisJCU9iamVj dEFkZHJlc3NTZXQob2JqLCBDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwgY2VrZGF0YW9p ZCk7CisJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBEUk9QX0NBU0NBREUsIDApOworCX0KKwll bHNlCisJeworCQlPaWQJCQljbWtvaWQgPSAwOworCQlpbnQJCQlhbGc7CisJCWNoYXIJICAg KmVuY3ZhbDsKKworCQlwYXJzZV9jZWtfYXR0cmlidXRlcyhwc3RhdGUsIHN0bXQtPmRlZmlu aXRpb24sICZjbWtvaWQsICZhbGcsICZlbmN2YWwpOworCQlpZiAoZ2V0X2Nla2RhdGFfb2lk KGNla29pZCwgY21rb2lkLCB0cnVlKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNv ZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkJZXJybXNnKCJjb2x1bW4gZW5j cnlwdGlvbiBrZXkgXCIlc1wiIGFscmVhZHkgaGFzIGRhdGEgZm9yIG1hc3RlciBrZXkgXCIl c1wiIiwKKwkJCQkJCSAgIHN0bXQtPmNla25hbWUsIGdldF9jbWtfbmFtZShjbWtvaWQsIGZh bHNlKSkpOworCQlpbnNlcnRfY2VrZGF0YV9yZWNvcmQoY2Vrb2lkLCBjbWtvaWQsIGFsZywg ZW5jdmFsKTsKKwl9CisKKwlJbnZva2VPYmplY3RQb3N0QWx0ZXJIb29rKENvbHVtbkVuY0tl eVJlbGF0aW9uSWQsIGNla29pZCwgMCk7CisJT2JqZWN0QWRkcmVzc1NldChhZGRyZXNzLCBD b2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtvaWQpOworCisJcmV0dXJuIGFkZHJlc3M7Cit9 CisKK09iamVjdEFkZHJlc3MKK0NyZWF0ZUNNSyhQYXJzZVN0YXRlICpwc3RhdGUsIERlZmlu ZVN0bXQgKnN0bXQpCit7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlSZWxhdGlvbglyZWw7 CisJT2JqZWN0QWRkcmVzcyBteXNlbGY7CisJT2lkCQkJY21rb2lkOworCUxpc3RDZWxsICAg KmxjOworCURlZkVsZW0gICAgKnJlYWxtRWwgPSBOVUxMOworCWNoYXIJICAgKnJlYWxtOwor CURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfY29sbWFzdGVya2V5XSA9IHswfTsKKwlib29sCQlu dWxsc1tOYXR0c19wZ19jb2xtYXN0ZXJrZXldID0gezB9OworCUhlYXBUdXBsZQl0dXA7CisK KwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soRGF0YWJhc2VSZWxhdGlvbklkLCBNeURh dGFiYXNlSWQsIEdldFVzZXJJZCgpLCBBQ0xfQ1JFQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9 IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9EQVRB QkFTRSwKKwkJCQkJICAgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSk7CisKKwly ZWwgPSB0YWJsZV9vcGVuKENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2 ZUxvY2spOworCisJY21rb2lkID0gR2V0U3lzQ2FjaGVPaWQxKENNS05BTUUsIEFudW1fcGdf Y29sbWFzdGVya2V5X29pZCwKKwkJCQkJCQkgQ1N0cmluZ0dldERhdHVtKHN0clZhbChsbGFz dChzdG10LT5kZWZuYW1lcykpKSk7CisJaWYgKE9pZElzVmFsaWQoY21rb2lkKSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAor CQkJCSBlcnJtc2coImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIs CisJCQkJCQlzdHJWYWwobGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkpKTsKKworCWZvcmVhY2go bGMsIHN0bXQtPmRlZmluaXRpb24pCisJeworCQlEZWZFbGVtICAgICpkZWZlbCA9IGxmaXJz dF9ub2RlKERlZkVsZW0sIGxjKTsKKwkJRGVmRWxlbSAgICoqZGVmZWxwOworCisJCWlmIChz dHJjbXAoZGVmZWwtPmRlZm5hbWUsICJyZWFsbSIpID09IDApCisJCQlkZWZlbHAgPSAmcmVh bG1FbDsKKwkJZWxzZQorCQl7CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImNvbHVtbiBtYXN0ZXIga2V5 IGF0dHJpYnV0ZSBcIiVzXCIgbm90IHJlY29nbml6ZWQiLAorCQkJCQkJCWRlZmVsLT5kZWZu YW1lKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGRlZmVsLT5sb2NhdGlv bikpKTsKKwkJfQorCQlpZiAoKmRlZmVscCAhPSBOVUxMKQorCQkJZXJyb3JDb25mbGljdGlu Z0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisJCSpkZWZlbHAgPSBkZWZlbDsKKwl9CisKKwlp ZiAocmVhbG1FbCkKKwkJcmVhbG0gPSBkZWZHZXRTdHJpbmcocmVhbG1FbCk7CisJZWxzZQor CQlyZWFsbSA9ICIiOworCisJY21rb2lkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgQ29s dW1uTWFzdGVyS2V5T2lkSW5kZXhJZCwgQW51bV9wZ19jb2xtYXN0ZXJrZXlfb2lkKTsKKwl2 YWx1ZXNbQW51bV9wZ19jb2xtYXN0ZXJrZXlfb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVt KGNta29pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sbWFzdGVya2V5X2Nta25hbWUgLSAxXSA9 CisJCURpcmVjdEZ1bmN0aW9uQ2FsbDEobmFtZWluLCBDU3RyaW5nR2V0RGF0dW0oc3RyVmFs KGxsYXN0KHN0bXQtPmRlZm5hbWVzKSkpKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0ZXJr ZXlfY21rb3duZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oR2V0VXNlcklkKCkpOworCXZh bHVlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtyZWFsbSAtIDFdID0gQ1N0cmluZ0dldFRl eHREYXR1bShyZWFsbSk7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXRE ZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzKTsKKwlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0 dXApOworCWhlYXBfZnJlZXR1cGxlKHR1cCk7CisKKwlyZWNvcmREZXBlbmRlbmN5T25Pd25l cihDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjbWtvaWQsIEdldFVzZXJJZCgpKTsKKwor CU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBj bWtvaWQpOworCisJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCUlu dm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNt a29pZCwgMCk7CisKKwlyZXR1cm4gbXlzZWxmOworfQorCitPYmplY3RBZGRyZXNzCitBbHRl ckNvbHVtbk1hc3RlcktleShQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyQ29sdW1uTWFzdGVy S2V5U3RtdCAqc3RtdCkKK3sKKwlPaWQJCQljbWtvaWQ7CisJUmVsYXRpb24JcmVsOworCUhl YXBUdXBsZQl0dXA7CisJSGVhcFR1cGxlCW5ld3R1cDsKKwlPYmplY3RBZGRyZXNzIGFkZHJl c3M7CisJTGlzdENlbGwgICAqbGM7CisJRGVmRWxlbSAgICAqcmVhbG1FbCA9IE5VTEw7CisJ RGF0dW0JCXZhbHVlc1tOYXR0c19wZ19jb2xtYXN0ZXJrZXldID0gezB9OworCWJvb2wJCW51 bGxzW05hdHRzX3BnX2NvbG1hc3RlcmtleV0gPSB7MH07CisJYm9vbAkJcmVwbGFjZXNbTmF0 dHNfcGdfY29sbWFzdGVya2V5XSA9IHswfTsKKworCWNta29pZCA9IGdldF9jbWtfb2lkKHN0 bXQtPmNta25hbWUsIGZhbHNlKTsKKworCXJlbCA9IHRhYmxlX29wZW4oQ29sdW1uTWFzdGVy S2V5UmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwl0dXAgPSBTZWFyY2hTeXND YWNoZTEoQ01LT0lELCBPYmplY3RJZEdldERhdHVtKGNta29pZCkpOworCisJaWYgKCFIZWFw VHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVk IGZvciBjb2x1bW4gbWFzdGVyIGtleSAldSIsIGNta29pZCk7CisKKwlpZiAoIW9iamVjdF9v d25lcmNoZWNrKENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCwgR2V0VXNlcklk KCkpKQorCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIE9CSkVDVF9DTUss IHN0bXQtPmNta25hbWUpOworCisJZm9yZWFjaChsYywgc3RtdC0+ZGVmaW5pdGlvbikKKwl7 CisJCURlZkVsZW0gICAgKmRlZmVsID0gbGZpcnN0X25vZGUoRGVmRWxlbSwgbGMpOworCQlE ZWZFbGVtICAgKipkZWZlbHA7CisKKwkJaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgInJl YWxtIikgPT0gMCkKKwkJCWRlZmVscCA9ICZyZWFsbUVsOworCQllbHNlCisJCXsKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJ CQkJIGVycm1zZygiY29sdW1uIG1hc3RlciBrZXkgYXR0cmlidXRlIFwiJXNcIiBub3QgcmVj b2duaXplZCIsCisJCQkJCQkJZGVmZWwtPmRlZm5hbWUpLAorCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgZGVmZWwtPmxvY2F0aW9uKSkpOworCQl9CisJCWlmICgqZGVmZWxw ICE9IE5VTEwpCisJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShkZWZlbCwgcHN0YXRlKTsK KwkJKmRlZmVscCA9IGRlZmVsOworCX0KKworCWlmIChyZWFsbUVsKQorCXsKKwkJdmFsdWVz W0FudW1fcGdfY29sbWFzdGVya2V5X2Nta3JlYWxtIC0gMV0gPSBDU3RyaW5nR2V0VGV4dERh dHVtKGRlZkdldFN0cmluZyhyZWFsbUVsKSk7CisJCXJlcGxhY2VzW0FudW1fcGdfY29sbWFz dGVya2V5X2Nta3JlYWxtIC0gMV0gPSB0cnVlOworCX0KKworCW5ld3R1cCA9IGhlYXBfbW9k aWZ5X3R1cGxlKHR1cCwgUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzLCBy ZXBsYWNlcyk7CisKKwlDYXRhbG9nVHVwbGVVcGRhdGUocmVsLCAmdHVwLT50X3NlbGYsIG5l d3R1cCk7CisKKwlJbnZva2VPYmplY3RQb3N0QWx0ZXJIb29rKENvbHVtbk1hc3RlcktleVJl bGF0aW9uSWQsIGNta29pZCwgMCk7CisKKwlPYmplY3RBZGRyZXNzU2V0KGFkZHJlc3MsIENv bHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCk7CisKKwloZWFwX2ZyZWV0dXBsZShu ZXd0dXApOworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJdGFibGVfY2xvc2UocmVsLCBS b3dFeGNsdXNpdmVMb2NrKTsKKworCXJldHVybiBhZGRyZXNzOworfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2Ryb3BjbWRzLmMKaW5kZXggZGI5MDZmNTMwZS4uY2NiMzY5YjFhZiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9kcm9wY21kcy5jCkBAIC0yNzYsNiArMjc2LDE0IEBAIGRvZXNfbm90X2V4aXN0X3Nr aXBwaW5nKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0KQogCQkJCW5hbWUgPSBO YW1lTGlzdFRvU3RyaW5nKGNhc3ROb2RlKExpc3QsIG9iamVjdCkpOwogCQkJfQogCQkJYnJl YWs7CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCW1zZyA9IGdldHRleHRfbm9vcCgiY29sdW1u IGVuY3J5cHRpb24ga2V5IFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKTsKKwkJ CW5hbWUgPSBzdHJWYWwob2JqZWN0KTsKKwkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9DTUs6 CisJCQltc2cgPSBnZXR0ZXh0X25vb3AoImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNcIiBkb2Vz IG5vdCBleGlzdCwgc2tpcHBpbmciKTsKKwkJCW5hbWUgPSBzdHJWYWwob2JqZWN0KTsKKwkJ CWJyZWFrOwogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQkJaWYgKCFzY2hlbWFfZG9l c19ub3RfZXhpc3Rfc2tpcHBpbmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSwgJm1zZywgJm5h bWUpKQogCQkJewpAQCAtNTAzLDYgKzUxMSw3IEBAIGRvZXNfbm90X2V4aXN0X3NraXBwaW5n KE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0KQogCQljYXNlIE9CSkVDVF9BTU9Q OgogCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKKwkJ Y2FzZSBPQkpFQ1RfQ0VLREFUQToKIAkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKIAkJY2FzZSBP QkpFQ1RfREVGQUNMOgogCQljYXNlIE9CSkVDVF9ET01DT05TVFJBSU5UOgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCmluZGV4IGEzYmRjNWRiMDcuLmMxMDczMmE1NmUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKQEAgLTk1MSw2ICs5NTEs OSBAQCBFdmVudFRyaWdnZXJTdXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYnR5cGUp CiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQlj YXNlIE9CSkVDVF9DQVNUOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NF S0RBVEE6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MVU1OOgogCQlj YXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CkBAIC0x MDI3LDYgKzEwMzAsOSBAQCBFdmVudFRyaWdnZXJTdXBwb3J0c09iamVjdENsYXNzKE9iamVj dENsYXNzIG9iamNsYXNzKQogCQljYXNlIE9DTEFTU19UWVBFOgogCQljYXNlIE9DTEFTU19D QVNUOgogCQljYXNlIE9DTEFTU19DT0xMQVRJT046CisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJ Y2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJY2FzZSBPQ0xBU1NfQ01LOgogCQljYXNlIE9DTEFT U19DT05TVFJBSU5UOgogCQljYXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQljYXNlIE9DTEFT U19ERUZBVUxUOgpAQCAtMjA1Niw2ICsyMDYyLDkgQEAgc3RyaW5naWZ5X2dyYW50X29ianR5 cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCWNhc2Ug T0JKRUNUX0FUVFJJQlVURToKIAkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJY2FzZSBPQkpFQ1Rf Q0VLOgorCQljYXNlIE9CSkVDVF9DRUtEQVRBOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNh c2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2Fz ZSBPQkpFQ1RfREVGQVVMVDoKQEAgLTIxMzksNiArMjE0OCw5IEBAIHN0cmluZ2lmeV9hZGVm cHJpdnNfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJP QzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQlj YXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJCWNhc2UgT0JKRUNU X0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJT SU9OOgogCQljYXNlIE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWls ZAppbmRleCA5YjM1MGQwMjVmLi42ZTI2ZTE1OGM0IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNv bi5idWlsZApAQCAtNSw2ICs1LDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAn YW5hbHl6ZS5jJywKICAgJ2FzeW5jLmMnLAogICAnY2x1c3Rlci5jJywKKyAgJ2NvbGVuY2Nt ZHMuYycsCiAgICdjb2xsYXRpb25jbWRzLmMnLAogICAnY29tbWVudC5jJywKICAgJ2NvbnN0 cmFpbnQuYycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKaW5kZXggOWUyOTU4NGQ5My4uZjM0 YzVmZjI1YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtNTAsNyArNTAsNiBAQCBz dGF0aWMgdm9pZCBJbml0UXVlcnlIYXNoVGFibGUodm9pZCk7CiBzdGF0aWMgUGFyYW1MaXN0 SW5mbyBFdmFsdWF0ZVBhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQlQcmVw YXJlZFN0YXRlbWVudCAqcHN0bXQsIExpc3QgKnBhcmFtcywKIAkJCQkJCQkJCUVTdGF0ZSAq ZXN0YXRlKTsKLXN0YXRpYyBEYXR1bSBidWlsZF9yZWd0eXBlX2FycmF5KE9pZCAqcGFyYW1f dHlwZXMsIGludCBudW1fcGFyYW1zKTsKIAogLyoKICAqIEltcGxlbWVudHMgdGhlICdQUkVQ QVJFJyB1dGlsaXR5IHN0YXRlbWVudC4KQEAgLTYyLDYgKzYxLDggQEAgUHJlcGFyZVF1ZXJ5 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUHJlcGFyZVN0bXQgKnN0bXQsCiAJUmF3U3RtdCAgICAq cmF3c3RtdDsKIAlDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlOwogCU9pZAkJICAgKmFy Z3R5cGVzID0gTlVMTDsKKwlPaWQJCSAgICphcmdvcmlndGJscyA9IE5VTEw7CisJQXR0ck51 bWJlciAqYXJnb3JpZ2NvbHMgPSBOVUxMOwogCWludAkJCW5hcmdzOwogCUxpc3QJICAgKnF1 ZXJ5X2xpc3Q7CiAKQEAgLTEwOCw2ICsxMDksOSBAQCBQcmVwYXJlUXVlcnkoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBQcmVwYXJlU3RtdCAqc3RtdCwKIAogCQkJYXJndHlwZXNbaSsrXSA9IHRv aWQ7CiAJCX0KKworCQlhcmdvcmlndGJscyA9IHBhbGxvYzBfYXJyYXkoT2lkLCBuYXJncyk7 CisJCWFyZ29yaWdjb2xzID0gcGFsbG9jMF9hcnJheShBdHRyTnVtYmVyLCBuYXJncyk7CiAJ fQogCiAJLyoKQEAgLTExNyw3ICsxMjEsOSBAQCBQcmVwYXJlUXVlcnkoUGFyc2VTdGF0ZSAq cHN0YXRlLCBQcmVwYXJlU3RtdCAqc3RtdCwKIAkgKiBSZXdyaXRlIHRoZSBxdWVyeS4gVGhl IHJlc3VsdCBjb3VsZCBiZSAwLCAxLCBvciBtYW55IHF1ZXJpZXMuCiAJICovCiAJcXVlcnlf bGlzdCA9IHBnX2FuYWx5emVfYW5kX3Jld3JpdGVfdmFycGFyYW1zKHJhd3N0bXQsIHBzdGF0 ZS0+cF9zb3VyY2V0ZXh0LAotCQkJCQkJCQkJCQkJICAmYXJndHlwZXMsICZuYXJncywgTlVM TCk7CisJCQkJCQkJCQkJCQkgICZhcmd0eXBlcywgJm5hcmdzLAorCQkJCQkJCQkJCQkJICAm YXJnb3JpZ3RibHMsICZhcmdvcmlnY29scywKKwkJCQkJCQkJCQkJCSAgTlVMTCk7CiAKIAkv KiBGaW5pc2ggZmlsbGluZyBpbiB0aGUgQ2FjaGVkUGxhblNvdXJjZSAqLwogCUNvbXBsZXRl Q2FjaGVkUGxhbihwbGFuc291cmNlLApAQCAtMTI1LDYgKzEzMSw4IEBAIFByZXBhcmVRdWVy eShQYXJzZVN0YXRlICpwc3RhdGUsIFByZXBhcmVTdG10ICpzdG10LAogCQkJCQkgICBOVUxM LAogCQkJCQkgICBhcmd0eXBlcywKIAkJCQkJICAgbmFyZ3MsCisJCQkJCSAgIGFyZ29yaWd0 YmxzLAorCQkJCQkgICBhcmdvcmlnY29scywKIAkJCQkJICAgTlVMTCwKIAkJCQkJICAgTlVM TCwKIAkJCQkJICAgQ1VSU09SX09QVF9QQVJBTExFTF9PSywJLyogYWxsb3cgcGFyYWxsZWwg bW9kZSAqLwpAQCAtNjgzLDM0ICs2OTEsNDkgQEAgcGdfcHJlcGFyZWRfc3RhdGVtZW50KFBH X0ZVTkNUSU9OX0FSR1MpCiAJCWhhc2hfc2VxX2luaXQoJmhhc2hfc2VxLCBwcmVwYXJlZF9x dWVyaWVzKTsKIAkJd2hpbGUgKChwcmVwX3N0bXQgPSBoYXNoX3NlcV9zZWFyY2goJmhhc2hf c2VxKSkgIT0gTlVMTCkKIAkJeworCQkJaW50CQkJbnVtX3BhcmFtcyA9IHByZXBfc3RtdC0+ cGxhbnNvdXJjZS0+bnVtX3BhcmFtczsKIAkJCVR1cGxlRGVzYwlyZXN1bHRfZGVzYzsKLQkJ CURhdHVtCQl2YWx1ZXNbOF07Ci0JCQlib29sCQludWxsc1s4XSA9IHswfTsKKwkJCURhdHVt CSAgICp0bXBfYXJ5OworCQkJRGF0dW0JCXZhbHVlc1sxMF07CisJCQlib29sCQludWxsc1sx MF0gPSB7MH07CiAKIAkJCXJlc3VsdF9kZXNjID0gcHJlcF9zdG10LT5wbGFuc291cmNlLT5y ZXN1bHREZXNjOwogCiAJCQl2YWx1ZXNbMF0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKHByZXBf c3RtdC0+c3RtdF9uYW1lKTsKIAkJCXZhbHVlc1sxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0o cHJlcF9zdG10LT5wbGFuc291cmNlLT5xdWVyeV9zdHJpbmcpOwogCQkJdmFsdWVzWzJdID0g VGltZXN0YW1wVHpHZXREYXR1bShwcmVwX3N0bXQtPnByZXBhcmVfdGltZSk7Ci0JCQl2YWx1 ZXNbM10gPSBidWlsZF9yZWd0eXBlX2FycmF5KHByZXBfc3RtdC0+cGxhbnNvdXJjZS0+cGFy YW1fdHlwZXMsCi0JCQkJCQkJCQkJCXByZXBfc3RtdC0+cGxhbnNvdXJjZS0+bnVtX3BhcmFt cyk7CisKKwkJCXRtcF9hcnkgPSBwYWxsb2NfYXJyYXkoRGF0dW0sIG51bV9wYXJhbXMpOwor CQkJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fcGFyYW1zOyBpKyspCisJCQkJdG1wX2FyeVtp XSA9IE9iamVjdElkR2V0RGF0dW0ocHJlcF9zdG10LT5wbGFuc291cmNlLT5wYXJhbV90eXBl c1tpXSk7CisJCQl2YWx1ZXNbM10gPSBQb2ludGVyR2V0RGF0dW0oY29uc3RydWN0X2FycmF5 X2J1aWx0aW4odG1wX2FyeSwgbnVtX3BhcmFtcywgUkVHVFlQRU9JRCkpOworCisJCQl0bXBf YXJ5ID0gcGFsbG9jX2FycmF5KERhdHVtLCBudW1fcGFyYW1zKTsKKwkJCWZvciAoaW50IGkg PSAwOyBpIDwgbnVtX3BhcmFtczsgaSsrKQorCQkJCXRtcF9hcnlbaV0gPSBPYmplY3RJZEdl dERhdHVtKHByZXBfc3RtdC0+cGxhbnNvdXJjZS0+cGFyYW1fb3JpZ3RibHNbaV0pOworCQkJ dmFsdWVzWzRdID0gUG9pbnRlckdldERhdHVtKGNvbnN0cnVjdF9hcnJheV9idWlsdGluKHRt cF9hcnksIG51bV9wYXJhbXMsIFJFR0NMQVNTT0lEKSk7CisKKwkJCXRtcF9hcnkgPSBwYWxs b2NfYXJyYXkoRGF0dW0sIG51bV9wYXJhbXMpOworCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBu dW1fcGFyYW1zOyBpKyspCisJCQkJdG1wX2FyeVtpXSA9IEludDE2R2V0RGF0dW0ocHJlcF9z dG10LT5wbGFuc291cmNlLT5wYXJhbV9vcmlnY29sc1tpXSk7CisJCQl2YWx1ZXNbNV0gPSBQ b2ludGVyR2V0RGF0dW0oY29uc3RydWN0X2FycmF5X2J1aWx0aW4odG1wX2FyeSwgbnVtX3Bh cmFtcywgSU5UMk9JRCkpOworCiAJCQlpZiAocmVzdWx0X2Rlc2MpCiAJCQl7Ci0JCQkJT2lk CQkgICAqcmVzdWx0X3R5cGVzOwotCi0JCQkJcmVzdWx0X3R5cGVzID0gcGFsbG9jX2FycmF5 KE9pZCwgcmVzdWx0X2Rlc2MtPm5hdHRzKTsKKwkJCQl0bXBfYXJ5ID0gcGFsbG9jX2FycmF5 KERhdHVtLCByZXN1bHRfZGVzYy0+bmF0dHMpOwogCQkJCWZvciAoaW50IGkgPSAwOyBpIDwg cmVzdWx0X2Rlc2MtPm5hdHRzOyBpKyspCi0JCQkJCXJlc3VsdF90eXBlc1tpXSA9IHJlc3Vs dF9kZXNjLT5hdHRyc1tpXS5hdHR0eXBpZDsKLQkJCQl2YWx1ZXNbNF0gPSBidWlsZF9yZWd0 eXBlX2FycmF5KHJlc3VsdF90eXBlcywgcmVzdWx0X2Rlc2MtPm5hdHRzKTsKKwkJCQkJdG1w X2FyeVtpXSA9IE9iamVjdElkR2V0RGF0dW0ocmVzdWx0X2Rlc2MtPmF0dHJzW2ldLmF0dHR5 cGlkKTsKKwkJCQl2YWx1ZXNbNl0gPSBQb2ludGVyR2V0RGF0dW0oY29uc3RydWN0X2FycmF5 X2J1aWx0aW4odG1wX2FyeSwgcmVzdWx0X2Rlc2MtPm5hdHRzLCBSRUdUWVBFT0lEKSk7CiAJ CQl9CiAJCQllbHNlCiAJCQl7CiAJCQkJLyogbm8gcmVzdWx0IGRlc2NyaXB0b3IgKGZvciBl eGFtcGxlLCBETUwgc3RhdGVtZW50KSAqLwotCQkJCW51bGxzWzRdID0gdHJ1ZTsKKwkJCQlu dWxsc1s2XSA9IHRydWU7CiAJCQl9Ci0JCQl2YWx1ZXNbNV0gPSBCb29sR2V0RGF0dW0ocHJl cF9zdG10LT5mcm9tX3NxbCk7Ci0JCQl2YWx1ZXNbNl0gPSBJbnQ2NEdldERhdHVtRmFzdChw cmVwX3N0bXQtPnBsYW5zb3VyY2UtPm51bV9nZW5lcmljX3BsYW5zKTsKLQkJCXZhbHVlc1s3 XSA9IEludDY0R2V0RGF0dW1GYXN0KHByZXBfc3RtdC0+cGxhbnNvdXJjZS0+bnVtX2N1c3Rv bV9wbGFucyk7CisKKwkJCXZhbHVlc1s3XSA9IEJvb2xHZXREYXR1bShwcmVwX3N0bXQtPmZy b21fc3FsKTsKKwkJCXZhbHVlc1s4XSA9IEludDY0R2V0RGF0dW1GYXN0KHByZXBfc3RtdC0+ cGxhbnNvdXJjZS0+bnVtX2dlbmVyaWNfcGxhbnMpOworCQkJdmFsdWVzWzldID0gSW50NjRH ZXREYXR1bUZhc3QocHJlcF9zdG10LT5wbGFuc291cmNlLT5udW1fY3VzdG9tX3BsYW5zKTsK IAogCQkJdHVwbGVzdG9yZV9wdXR2YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJzaW5mby0+ c2V0RGVzYywKIAkJCQkJCQkJIHZhbHVlcywgbnVsbHMpOwpAQCAtNzE5LDI0ICs3NDIsMyBA QCBwZ19wcmVwYXJlZF9zdGF0ZW1lbnQoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJldHVybiAo RGF0dW0pIDA7CiB9Ci0KLS8qCi0gKiBUaGlzIHV0aWxpdHkgZnVuY3Rpb24gdGFrZXMgYSBD IGFycmF5IG9mIE9pZHMsIGFuZCByZXR1cm5zIGEgRGF0dW0KLSAqIHBvaW50aW5nIHRvIGEg b25lLWRpbWVuc2lvbmFsIFBvc3RncmVzIGFycmF5IG9mIHJlZ3R5cGVzLiBBbiBlbXB0eQot ICogYXJyYXkgaXMgcmV0dXJuZWQgYXMgYSB6ZXJvLWVsZW1lbnQgYXJyYXksIG5vdCBOVUxM LgotICovCi1zdGF0aWMgRGF0dW0KLWJ1aWxkX3JlZ3R5cGVfYXJyYXkoT2lkICpwYXJhbV90 eXBlcywgaW50IG51bV9wYXJhbXMpCi17Ci0JRGF0dW0JICAgKnRtcF9hcnk7Ci0JQXJyYXlU eXBlICAqcmVzdWx0OwotCWludAkJCWk7Ci0KLQl0bXBfYXJ5ID0gcGFsbG9jX2FycmF5KERh dHVtLCBudW1fcGFyYW1zKTsKLQotCWZvciAoaSA9IDA7IGkgPCBudW1fcGFyYW1zOyBpKysp Ci0JCXRtcF9hcnlbaV0gPSBPYmplY3RJZEdldERhdHVtKHBhcmFtX3R5cGVzW2ldKTsKLQot CXJlc3VsdCA9IGNvbnN0cnVjdF9hcnJheV9idWlsdGluKHRtcF9hcnksIG51bV9wYXJhbXMs IFJFR1RZUEVPSUQpOwotCXJldHVybiBQb2ludGVyR2V0RGF0dW0ocmVzdWx0KTsKLX0KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZWNsYWJlbC5jCmluZGV4IDdhZTE5Yjk4YmIuLjA3YWQ2NDZhNTIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwpAQCAtNjYsNiArNjYsOSBAQCBTZWNMYWJlbFN1 cHBvcnRzT2JqZWN0VHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FN UFJPQzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgor CQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJCWNhc2UgT0JK RUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05W RVJTSU9OOgogCQljYXNlIE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYwppbmRleCA1NmRjOTk1NzEzLi45YTJjNzJlMWM2IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYwpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGFydGl0 aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfYXR0cmRlZi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Nv bnN0cmFpbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RlcGVuZC5oIgpAQCAtNjEsNiAr NjIsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21t YW5kcy90eXBlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3VzZXIuaCIKKyNpbmNsdWRl ICJjb21tb24vY29sZW5jLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNp bmNsdWRlICJmb3JlaWduL2Zkd2FwaS5oIgogI2luY2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5o IgpAQCAtNjM3LDYgKzYzOSw3IEBAIHN0YXRpYyBMaXN0ICpHZXRQYXJlbnRlZEZvcmVpZ25L ZXlSZWZzKFJlbGF0aW9uIHBhcnRpdGlvbik7CiBzdGF0aWMgdm9pZCBBVERldGFjaENoZWNr Tm9Gb3JlaWduS2V5UmVmcyhSZWxhdGlvbiBwYXJ0aXRpb24pOwogc3RhdGljIGNoYXIgR2V0 QXR0cmlidXRlQ29tcHJlc3Npb24oT2lkIGF0dHR5cGlkLCBjaGFyICpjb21wcmVzc2lvbik7 CiBzdGF0aWMgY2hhciBHZXRBdHRyaWJ1dGVTdG9yYWdlKE9pZCBhdHR0eXBpZCwgY29uc3Qg Y2hhciAqc3RvcmFnZW1vZGUpOworc3RhdGljIHZvaWQgR2V0Q29sdW1uRW5jcnlwdGlvbihj b25zdCBMaXN0ICpjb2xkZWZlbmNyeXB0aW9uLCBGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyKTsK IAogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCkBAIC05MzYsNiArOTM5LDkgQEAgRGVmaW5lUmVsYXRpb24o Q3JlYXRlU3RtdCAqc3RtdCwgY2hhciByZWxraW5kLCBPaWQgb3duZXJJZCwKIAkJCWF0dHIt PmF0dGNvbXByZXNzaW9uID0gR2V0QXR0cmlidXRlQ29tcHJlc3Npb24oYXR0ci0+YXR0dHlw aWQsCiAJCQkJCQkJCQkJCQkJCSAgIGNvbERlZi0+Y29tcHJlc3Npb24pOwogCisJCWlmIChj b2xEZWYtPmVuY3J5cHRpb24pCisJCQlHZXRDb2x1bW5FbmNyeXB0aW9uKGNvbERlZi0+ZW5j cnlwdGlvbiwgYXR0cik7CisKIAkJaWYgKGNvbERlZi0+c3RvcmFnZV9uYW1lKQogCQkJYXR0 ci0+YXR0c3RvcmFnZSA9IEdldEF0dHJpYnV0ZVN0b3JhZ2UoYXR0ci0+YXR0dHlwaWQsIGNv bERlZi0+c3RvcmFnZV9uYW1lKTsKIAl9CkBAIC02ODMwLDYgKzY4MzYsMTQgQEAgQVRFeGVj QWRkQ29sdW1uKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRp b24gcmVsLAogCWF0dHJpYnV0ZS5hdHRpc2xvY2FsID0gY29sRGVmLT5pc19sb2NhbDsKIAlh dHRyaWJ1dGUuYXR0aW5oY291bnQgPSBjb2xEZWYtPmluaGNvdW50OwogCWF0dHJpYnV0ZS5h dHRjb2xsYXRpb24gPSBjb2xsT2lkOworCWlmIChjb2xEZWYtPmVuY3J5cHRpb24pCisJCUdl dENvbHVtbkVuY3J5cHRpb24oY29sRGVmLT5lbmNyeXB0aW9uLCAmYXR0cmlidXRlKTsKKwll bHNlCisJeworCQlhdHRyaWJ1dGUuYXR0Y2VrID0gMDsKKwkJYXR0cmlidXRlLmF0dHJlYWx0 eXBpZCA9IDA7CisJCWF0dHJpYnV0ZS5hdHRlbmNhbGcgPSAwOworCX0KIAogCVJlbGVhc2VT eXNDYWNoZSh0eXBlVHVwbGUpOwogCkBAIC0xMjY2MSw2ICsxMjY3NSw5IEBAIEFURXhlY0Fs dGVyQ29sdW1uVHlwZShBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJ CWNhc2UgT0NMQVNTX1RZUEU6CiAJCQljYXNlIE9DTEFTU19DQVNUOgogCQkJY2FzZSBPQ0xB U1NfQ09MTEFUSU9OOgorCQkJY2FzZSBPQ0xBU1NfQ0VLOgorCQkJY2FzZSBPQ0xBU1NfQ0VL REFUQToKKwkJCWNhc2UgT0NMQVNTX0NNSzoKIAkJCWNhc2UgT0NMQVNTX0NPTlZFUlNJT046 CiAJCQljYXNlIE9DTEFTU19MQU5HVUFHRToKIAkJCWNhc2UgT0NMQVNTX0xBUkdFT0JKRUNU OgpAQCAtMTkzMDAsMyArMTkzMTcsNzcgQEAgR2V0QXR0cmlidXRlU3RvcmFnZShPaWQgYXR0 dHlwaWQsIGNvbnN0IGNoYXIgKnN0b3JhZ2Vtb2RlKQogCiAJcmV0dXJuIGNzdG9yYWdlOwog fQorCisvKgorICogcmVzb2x2ZSBjb2x1bW4gZW5jcnlwdGlvbiBzcGVjaWZpY2F0aW9uCisg Ki8KK3N0YXRpYyB2b2lkCitHZXRDb2x1bW5FbmNyeXB0aW9uKGNvbnN0IExpc3QgKmNvbGRl ZmVuY3J5cHRpb24sIEZvcm1fcGdfYXR0cmlidXRlIGF0dHIpCit7CisJTGlzdENlbGwgICAq bGM7CisJY2hhcgkgICAqY2VrID0gTlVMTDsKKwlPaWQJCQljZWtvaWQ7CisJYm9vbAkJZW5j ZGV0ID0gZmFsc2U7CisJaW50CQkJYWxnID0gUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1B Q19TSEFfMjU2OworCisJZm9yZWFjaChsYywgY29sZGVmZW5jcnlwdGlvbikKKwl7CisJCURl ZkVsZW0gICAgKmVsID0gbGZpcnN0X25vZGUoRGVmRWxlbSwgbGMpOworCisJCWlmIChzdHJj bXAoZWwtPmRlZm5hbWUsICJjb2x1bW5fZW5jcnlwdGlvbl9rZXkiKSA9PSAwKQorCQkJY2Vr ID0gc3RyVmFsKGxpbml0aWFsKGNhc3ROb2RlKFR5cGVOYW1lLCBlbC0+YXJnKS0+bmFtZXMp KTsKKwkJZWxzZSBpZiAoc3RyY21wKGVsLT5kZWZuYW1lLCAiZW5jcnlwdGlvbl90eXBlIikg PT0gMCkKKwkJeworCQkJY2hhcgkgICAqdmFsID0gc3RyVmFsKGxpbml0aWFsKGNhc3ROb2Rl KFR5cGVOYW1lLCBlbC0+YXJnKS0+bmFtZXMpKTsKKworCQkJaWYgKHN0cmNtcCh2YWwsICJk ZXRlcm1pbmlzdGljIikgPT0gMCkKKwkJCQllbmNkZXQgPSB0cnVlOworCQkJZWxzZSBpZiAo c3RyY21wKHZhbCwgInJhbmRvbWl6ZWQiKSA9PSAwKQorCQkJCWVuY2RldCA9IGZhbHNlOwor CQkJZWxzZQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJZXJybXNnKCJ1bnJlY29nbml6ZWQgZW5j cnlwdGlvbiB0eXBlOiAlcyIsIHZhbCkpOworCQl9CisJCWVsc2UgaWYgKHN0cmNtcChlbC0+ ZGVmbmFtZSwgImFsZ29yaXRobSIpID09IDApCisJCXsKKwkJCWNoYXIJICAgKnZhbCA9IHN0 clZhbChlbC0+YXJnKTsKKworCQkJYWxnID0gZ2V0X2Nla2FsZ19udW0odmFsKTsKKworCQkJ aWYgKCFhbGcpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9J TlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQllcnJtc2coInVucmVjb2duaXplZCBl bmNyeXB0aW9uIGFsZ29yaXRobTogJXMiLCB2YWwpKTsKKwkJfQorCQllbHNlCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFM VUUpLAorCQkJCQllcnJtc2coInVucmVjb2duaXplZCBjb2x1bW4gZW5jcnlwdGlvbiBwYXJh bWV0ZXI6ICVzIiwgZWwtPmRlZm5hbWUpKTsKKwl9CisKKwlpZiAoIWNlaykKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9DT0xVTU5fREVGSU5JVElP TiksCisJCQkJZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgbXVzdCBiZSBzcGVjaWZp ZWQiKSk7CisKKwljZWtvaWQgPSBHZXRTeXNDYWNoZU9pZDEoQ0VLTkFNRSwgQW51bV9wZ19j b2xlbmNrZXlfb2lkLCBQb2ludGVyR2V0RGF0dW0oY2VrKSk7CisJaWYgKCFjZWtvaWQpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1Qp LAorCQkJCWVycm1zZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBkb2VzIG5vdCBl eGlzdCIsIGNlaykpOworCisJYXR0ci0+YXR0Y2VrID0gY2Vrb2lkOworCWF0dHItPmF0dHJl YWx0eXBpZCA9IGF0dHItPmF0dHR5cGlkOworCWF0dHItPmF0dGVuY2FsZyA9IGFsZzsKKwor CS8qIG92ZXJyaWRlIHBoeXNpY2FsIHR5cGUgKi8KKwlpZiAoZW5jZGV0KQorCQlhdHRyLT5h dHR0eXBpZCA9IFBHX0VOQ1JZUFRFRF9ERVRPSUQ7CisJZWxzZQorCQlhdHRyLT5hdHR0eXBp ZCA9IFBHX0VOQ1JZUFRFRF9STkRPSUQ7CisJZ2V0X3R5cGxlbmJ5dmFsYWxpZ24oYXR0ci0+ YXR0dHlwaWQsCisJCQkJCQkgJmF0dHItPmF0dGxlbiwgJmF0dHItPmF0dGJ5dmFsLCAmYXR0 ci0+YXR0YWxpZ24pOworCWF0dHItPmF0dHN0b3JhZ2UgPSBnZXRfdHlwc3RvcmFnZShhdHRy LT5hdHR0eXBpZCk7CisJYXR0ci0+YXR0Y29sbGF0aW9uID0gSW52YWxpZE9pZDsKK30KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy92YXJpYWJsZS5jCmluZGV4IDAwZDhkNTRkODIuLmM2NzQ5NzI1N2IgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdmFyaWFibGUuYwpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUg ImFjY2Vzcy94bG9ncHJlZmV0Y2hlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlk LmgiCiAjaW5jbHVkZSAiY29tbW9uL3N0cmluZy5oIgorI2luY2x1ZGUgImxpYnBxL2xpYnBx LWJlLmgiCiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4u aCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKQEAgLTcwNiw3ICs3MDcs MTEgQEAgY2hlY2tfY2xpZW50X2VuY29kaW5nKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRy YSwgR3VjU291cmNlIHNvdXJjZSkKIAkgKi8KIAlpZiAoUHJlcGFyZUNsaWVudEVuY29kaW5n KGVuY29kaW5nKSA8IDApCiAJewotCQlpZiAoSXNUcmFuc2FjdGlvblN0YXRlKCkpCisJCWlm IChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQkJR1VDX2NoZWNr X2VycmRldGFpbCgiQ29udmVyc2lvbiBiZXR3ZWVuICVzIGFuZCAlcyBpcyBub3QgcG9zc2li bGUgd2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkLiIsCisJCQkJCQkJCWNhbm9u aWNhbF9uYW1lLAorCQkJCQkJCQlHZXREYXRhYmFzZUVuY29kaW5nTmFtZSgpKTsKKwkJZWxz ZSBpZiAoSXNUcmFuc2FjdGlvblN0YXRlKCkpCiAJCXsKIAkJCS8qIE11c3QgYmUgYSBnZW51 aW5lIG5vLXN1Y2gtY29udmVyc2lvbiBwcm9ibGVtICovCiAJCQlHVUNfY2hlY2tfZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCk7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9zcGkuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCmluZGV4 IGZkNTc5NmYxYjkuLjhhNzc2MDU5NDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL3NwaS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCkBAIC0yMjc5LDYg KzIyNzksOCBAQCBfU1BJX3ByZXBhcmVfcGxhbihjb25zdCBjaGFyICpzcmMsIFNQSVBsYW5Q dHIgcGxhbikKIAkJCQkJCSAgIE5VTEwsCiAJCQkJCQkgICBwbGFuLT5hcmd0eXBlcywKIAkJ CQkJCSAgIHBsYW4tPm5hcmdzLAorCQkJCQkJICAgTlVMTCwKKwkJCQkJCSAgIE5VTEwsCiAJ CQkJCQkgICBwbGFuLT5wYXJzZXJTZXR1cCwKIAkJCQkJCSAgIHBsYW4tPnBhcnNlclNldHVw QXJnLAogCQkJCQkJICAgcGxhbi0+Y3Vyc29yX29wdGlvbnMsCkBAIC0yNTE2LDYgKzI1MTgs OCBAQCBfU1BJX2V4ZWN1dGVfcGxhbihTUElQbGFuUHRyIHBsYW4sIGNvbnN0IFNQSUV4ZWN1 dGVPcHRpb25zICpvcHRpb25zLAogCQkJCQkJCSAgIE5VTEwsCiAJCQkJCQkJICAgcGxhbi0+ YXJndHlwZXMsCiAJCQkJCQkJICAgcGxhbi0+bmFyZ3MsCisJCQkJCQkJICAgTlVMTCwKKwkJ CQkJCQkgICBOVUxMLAogCQkJCQkJCSAgIHBsYW4tPnBhcnNlclNldHVwLAogCQkJCQkJCSAg IHBsYW4tPnBhcnNlclNldHVwQXJnLAogCQkJCQkJCSAgIHBsYW4tPmN1cnNvcl9vcHRpb25z LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFj a2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCBhZjg2MjBjZWI3Li4xNDBhMTRiN2E3IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFj a2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMzk4Miw2ICszOTgyLDggQEAgcmF3X2V4cHJl c3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsK IAkJCQlpZiAoV0FMSyhjb2xkZWYtPmNvbXByZXNzaW9uKSkKIAkJCQkJcmV0dXJuIHRydWU7 CisJCQkJaWYgKFdBTEsoY29sZGVmLT5lbmNyeXB0aW9uKSkKKwkJCQkJcmV0dXJuIHRydWU7 CiAJCQkJaWYgKFdBTEsoY29sZGVmLT5yYXdfZGVmYXVsdCkpCiAJCQkJCXJldHVybiB0cnVl OwogCQkJCWlmIChXQUxLKGNvbGRlZi0+Y29sbENsYXVzZSkpCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUu YwppbmRleCAyZTU5M2FlZDJiLi5mNTU4M2M2YzIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMK QEAgLTE0NSw2ICsxNDUsNyBAQCBwYXJzZV9hbmFseXplX2ZpeGVkcGFyYW1zKFJhd1N0bXQg KnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4dCwKIFF1ZXJ5ICoKIHBhcnNlX2Fu YWx5emVfdmFycGFyYW1zKFJhd1N0bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNl VGV4dCwKIAkJCQkJCU9pZCAqKnBhcmFtVHlwZXMsIGludCAqbnVtUGFyYW1zLAorCQkJCQkJ T2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFtT3JpZ0NvbHMsCiAJCQkJ CQlRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudikKIHsKIAlQYXJzZVN0YXRlICpwc3RhdGUg PSBtYWtlX3BhcnNlc3RhdGUoTlVMTCk7CkBAIC0xNTUsNyArMTU2LDcgQEAgcGFyc2VfYW5h bHl6ZV92YXJwYXJhbXMoUmF3U3RtdCAqcGFyc2VUcmVlLCBjb25zdCBjaGFyICpzb3VyY2VU ZXh0LAogCiAJcHN0YXRlLT5wX3NvdXJjZXRleHQgPSBzb3VyY2VUZXh0OwogCi0Jc2V0dXBf cGFyc2VfdmFyaWFibGVfcGFyYW1ldGVycyhwc3RhdGUsIHBhcmFtVHlwZXMsIG51bVBhcmFt cyk7CisJc2V0dXBfcGFyc2VfdmFyaWFibGVfcGFyYW1ldGVycyhwc3RhdGUsIHBhcmFtVHlw ZXMsIG51bVBhcmFtcywgcGFyYW1PcmlnVGJscywgcGFyYW1PcmlnQ29scyk7CiAKIAlwc3Rh dGUtPnBfcXVlcnlFbnYgPSBxdWVyeUVudjsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNjNiNGJh YWVkOS4uYmU0ZDJkMzAyOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yODAsNiArMjgwLDcgQEAg c3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExp c3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAogJXR5cGUgPG5vZGU+CXN0bXQgdG9wbGV2 ZWxfc3RtdCBzY2hlbWFfc3RtdCByb3V0aW5lX2JvZHlfc3RtdAogCQlBbHRlckV2ZW50VHJp Z1N0bXQgQWx0ZXJDb2xsYXRpb25TdG10CisJCUFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0 bXQgQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10CiAJCUFsdGVyRGF0YWJhc2VTdG10IEFsdGVy RGF0YWJhc2VTZXRTdG10IEFsdGVyRG9tYWluU3RtdCBBbHRlckVudW1TdG10CiAJCUFsdGVy RmR3U3RtdCBBbHRlckZvcmVpZ25TZXJ2ZXJTdG10IEFsdGVyR3JvdXBTdG10CiAJCUFsdGVy T2JqZWN0RGVwZW5kc1N0bXQgQWx0ZXJPYmplY3RTY2hlbWFTdG10IEFsdGVyT3duZXJTdG10 CkBAIC00MTksNiArNDIwLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAogJXR5 cGUgPGxpc3Q+CXBhcnNlX3RvcGxldmVsIHN0bXRtdWx0aSByb3V0aW5lX2JvZHlfc3RtdF9s aXN0CiAJCQkJT3B0VGFibGVFbGVtZW50TGlzdCBUYWJsZUVsZW1lbnRMaXN0IE9wdEluaGVy aXQgZGVmaW5pdGlvbgorCQkJCWxpc3Rfb2ZfZGVmaW5pdGlvbnMKIAkJCQlPcHRUeXBlZFRh YmxlRWxlbWVudExpc3QgVHlwZWRUYWJsZUVsZW1lbnRMaXN0CiAJCQkJcmVsb3B0aW9ucyBv cHRfcmVsb3B0aW9ucwogCQkJCU9wdFdpdGggb3B0X2RlZmluaXRpb24gZnVuY19hcmdzIGZ1 bmNfYXJnc19saXN0CkBAIC01OTIsNiArNTk0LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1 cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1 ZXJ5KTsKICV0eXBlIDxub2RlPglUYWJsZUNvbnN0cmFpbnQgVGFibGVMaWtlQ2xhdXNlCiAl dHlwZSA8aXZhbD4JVGFibGVMaWtlT3B0aW9uTGlzdCBUYWJsZUxpa2VPcHRpb24KICV0eXBl IDxzdHI+CQljb2x1bW5fY29tcHJlc3Npb24gb3B0X2NvbHVtbl9jb21wcmVzc2lvbiBjb2x1 bW5fc3RvcmFnZSBvcHRfY29sdW1uX3N0b3JhZ2UKKyV0eXBlIDxsaXN0PglvcHRfY29sdW1u X2VuY3J5cHRpb24KICV0eXBlIDxsaXN0PglDb2xRdWFsTGlzdAogJXR5cGUgPG5vZGU+CUNv bENvbnN0cmFpbnQgQ29sQ29uc3RyYWludEVsZW0gQ29uc3RyYWludEF0dHIKICV0eXBlIDxp dmFsPglrZXlfbWF0Y2gKQEAgLTY5MCw4ICs2OTMsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJl Y3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAq cXVlcnkpOwogCURFVEFDSCBESUNUSU9OQVJZIERJU0FCTEVfUCBESVNDQVJEIERJU1RJTkNU IERPIERPQ1VNRU5UX1AgRE9NQUlOX1AKIAlET1VCTEVfUCBEUk9QCiAKLQlFQUNIIEVMU0Ug RU5BQkxFX1AgRU5DT0RJTkcgRU5DUllQVEVEIEVORF9QIEVOVU1fUCBFU0NBUEUgRVZFTlQg RVhDRVBUCi0JRVhDTFVERSBFWENMVURJTkcgRVhDTFVTSVZFIEVYRUNVVEUgRVhJU1RTIEVY UExBSU4gRVhQUkVTU0lPTgorCUVBQ0ggRUxTRSBFTkFCTEVfUCBFTkNPRElORyBFTkNSWVBU SU9OIEVOQ1JZUFRFRCBFTkRfUCBFTlVNX1AgRVNDQVBFCisJRVZFTlQgRVhDRVBUIEVYQ0xV REUgRVhDTFVESU5HIEVYQ0xVU0lWRSBFWEVDVVRFIEVYSVNUUyBFWFBMQUlOIEVYUFJFU1NJ T04KIAlFWFRFTlNJT04gRVhURVJOQUwgRVhUUkFDVAogCiAJRkFMU0VfUCBGQU1JTFkgRkVU Q0ggRklMVEVSIEZJTkFMSVpFIEZJUlNUX1AgRkxPQVRfUCBGT0xMT1dJTkcgRk9SCkBAIC03 MTQsNyArNzE3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlMRUFESU5HIExF QUtQUk9PRiBMRUFTVCBMRUZUIExFVkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwK IAlMT0NBTFRJTUUgTE9DQUxUSU1FU1RBTVAgTE9DQVRJT04gTE9DS19QIExPQ0tFRCBMT0dH RUQKIAotCU1BUFBJTkcgTUFUQ0ggTUFUQ0hFRCBNQVRFUklBTElaRUQgTUFYVkFMVUUgTUVS R0UgTUVUSE9ECisJTUFQUElORyBNQVNURVIgTUFUQ0ggTUFUQ0hFRCBNQVRFUklBTElaRUQg TUFYVkFMVUUgTUVSR0UgTUVUSE9ECiAJTUlOVVRFX1AgTUlOVkFMVUUgTU9ERSBNT05USF9Q IE1PVkUKIAogCU5BTUVfUCBOQU1FUyBOQVRJT05BTCBOQVRVUkFMIE5DSEFSIE5FVyBORVhU IE5GQyBORkQgTkZLQyBORktEIE5PIE5PTkUKQEAgLTk0Miw2ICs5NDUsOCBAQCB0b3BsZXZl bF9zdG10Ogogc3RtdDoKIAkJCUFsdGVyRXZlbnRUcmlnU3RtdAogCQkJfCBBbHRlckNvbGxh dGlvblN0bXQKKwkJCXwgQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdAorCQkJfCBBbHRl ckNvbHVtbk1hc3RlcktleVN0bXQKIAkJCXwgQWx0ZXJEYXRhYmFzZVN0bXQKIAkJCXwgQWx0 ZXJEYXRhYmFzZVNldFN0bXQKIAkJCXwgQWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQKQEAg LTM3MDAsMTQgKzM3MDUsMTUgQEAgVHlwZWRUYWJsZUVsZW1lbnQ6CiAJCQl8IFRhYmxlQ29u c3RyYWludAkJCQkJeyAkJCA9ICQxOyB9CiAJCTsKIAotY29sdW1uRGVmOglDb2xJZCBUeXBl bmFtZSBvcHRfY29sdW1uX3N0b3JhZ2Ugb3B0X2NvbHVtbl9jb21wcmVzc2lvbiBjcmVhdGVf Z2VuZXJpY19vcHRpb25zIENvbFF1YWxMaXN0Citjb2x1bW5EZWY6CUNvbElkIFR5cGVuYW1l IG9wdF9jb2x1bW5fZW5jcnlwdGlvbiBvcHRfY29sdW1uX3N0b3JhZ2Ugb3B0X2NvbHVtbl9j b21wcmVzc2lvbiBjcmVhdGVfZ2VuZXJpY19vcHRpb25zIENvbFF1YWxMaXN0CiAJCQkJewog CQkJCQlDb2x1bW5EZWYgKm4gPSBtYWtlTm9kZShDb2x1bW5EZWYpOwogCiAJCQkJCW4tPmNv bG5hbWUgPSAkMTsKIAkJCQkJbi0+dHlwZU5hbWUgPSAkMjsKLQkJCQkJbi0+c3RvcmFnZV9u YW1lID0gJDM7Ci0JCQkJCW4tPmNvbXByZXNzaW9uID0gJDQ7CisJCQkJCW4tPmVuY3J5cHRp b24gPSAkMzsKKwkJCQkJbi0+c3RvcmFnZV9uYW1lID0gJDQ7CisJCQkJCW4tPmNvbXByZXNz aW9uID0gJDU7CiAJCQkJCW4tPmluaGNvdW50ID0gMDsKIAkJCQkJbi0+aXNfbG9jYWwgPSB0 cnVlOwogCQkJCQluLT5pc19ub3RfbnVsbCA9IGZhbHNlOwpAQCAtMzcxNiw4ICszNzIyLDgg QEAgY29sdW1uRGVmOglDb2xJZCBUeXBlbmFtZSBvcHRfY29sdW1uX3N0b3JhZ2Ugb3B0X2Nv bHVtbl9jb21wcmVzc2lvbiBjcmVhdGVfZ2VuZXIKIAkJCQkJbi0+cmF3X2RlZmF1bHQgPSBO VUxMOwogCQkJCQluLT5jb29rZWRfZGVmYXVsdCA9IE5VTEw7CiAJCQkJCW4tPmNvbGxPaWQg PSBJbnZhbGlkT2lkOwotCQkJCQluLT5mZHdvcHRpb25zID0gJDU7Ci0JCQkJCVNwbGl0Q29s UXVhbExpc3QoJDYsICZuLT5jb25zdHJhaW50cywgJm4tPmNvbGxDbGF1c2UsCisJCQkJCW4t PmZkd29wdGlvbnMgPSAkNjsKKwkJCQkJU3BsaXRDb2xRdWFsTGlzdCgkNywgJm4tPmNvbnN0 cmFpbnRzLCAmbi0+Y29sbENsYXVzZSwKIAkJCQkJCQkJCSB5eXNjYW5uZXIpOwogCQkJCQlu LT5sb2NhdGlvbiA9IEAxOwogCQkJCQkkJCA9IChOb2RlICopIG47CkBAIC0zNzc0LDYgKzM3 ODAsMTEgQEAgb3B0X2NvbHVtbl9jb21wcmVzc2lvbjoKIAkJCXwgLypFTVBUWSovCQkJCQkJ CQl7ICQkID0gTlVMTDsgfQogCQk7CiAKK29wdF9jb2x1bW5fZW5jcnlwdGlvbjoKKwkJCUVO Q1JZUFRFRCBXSVRIICcoJyBkZWZfbGlzdCAnKScJCQl7ICQkID0gJDQ7IH0KKwkJCXwgLypF TVBUWSovCQkJCQkJCQl7ICQkID0gTlVMTDsgfQorCQk7CisKIGNvbHVtbl9zdG9yYWdlOgog CQkJU1RPUkFHRSBDb2xJZAkJCQkJCQl7ICQkID0gJDI7IH0KIAkJCXwgU1RPUkFHRSBERUZB VUxUCQkJCQkJeyAkJCA9IHBzdHJkdXAoImRlZmF1bHQiKTsgfQpAQCAtNjI3MCw2ICs2Mjgx LDMzIEBAIERlZmluZVN0bXQ6CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIGFueV9uYW1lIFdJVEggVkFMVUVTIGxpc3Rfb2ZfZGVmaW5pdGlvbnMKKwkJCQl7 CisJCQkJCURlZmluZVN0bXQgKm4gPSBtYWtlTm9kZShEZWZpbmVTdG10KTsKKworCQkJCQlu LT5raW5kID0gT0JKRUNUX0NFSzsKKwkJCQkJbi0+ZGVmbmFtZXMgPSAkNTsKKwkJCQkJbi0+ ZGVmaW5pdGlvbiA9ICQ4OworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBD UkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgYW55X25hbWUKKwkJCQl7CisJCQkJCURlZmluZVN0 bXQgKm4gPSBtYWtlTm9kZShEZWZpbmVTdG10KTsKKworCQkJCQluLT5raW5kID0gT0JKRUNU X0NNSzsKKwkJCQkJbi0+ZGVmbmFtZXMgPSAkNTsKKwkJCQkJbi0+ZGVmaW5pdGlvbiA9IE5J TDsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQ1JFQVRFIENPTFVNTiBN QVNURVIgS0VZIGFueV9uYW1lIFdJVEggZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJRGVmaW5l U3RtdCAqbiA9IG1ha2VOb2RlKERlZmluZVN0bXQpOworCisJCQkJCW4tPmtpbmQgPSBPQkpF Q1RfQ01LOworCQkJCQluLT5kZWZuYW1lcyA9ICQ1OworCQkJCQluLT5kZWZpbml0aW9uID0g JDc7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCTsKIAogZGVmaW5pdGlvbjog JygnIGRlZl9saXN0ICcpJwkJCQkJCXsgJCQgPSAkMjsgfQpAQCAtNjI4OSw2ICs2MzI3LDEw IEBAIGRlZl9lbGVtOglDb2xMYWJlbCAnPScgZGVmX2FyZwogCQkJCX0KIAkJOwogCitsaXN0 X29mX2RlZmluaXRpb25zOiBkZWZpbml0aW9uCQkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEp OyB9CisJCQl8IGxpc3Rfb2ZfZGVmaW5pdGlvbnMgJywnIGRlZmluaXRpb24JeyAkJCA9IGxh cHBlbmQoJDEsICQzKTsgfQorCQk7CisKIC8qIE5vdGU6IGFueSBzaW1wbGUgaWRlbnRpZmll ciB3aWxsIGJlIHJldHVybmVkIGFzIGEgdHlwZSBuYW1lISAqLwogZGVmX2FyZzoJZnVuY190 eXBlCQkJCQkJeyAkJCA9IChOb2RlICopICQxOyB9CiAJCQl8IHJlc2VydmVkX2tleXdvcmQJ CQkJeyAkJCA9IChOb2RlICopIG1ha2VTdHJpbmcocHN0cmR1cCgkMSkpOyB9CkBAIC02ODI0 LDYgKzY4NjYsOCBAQCBvYmplY3RfdHlwZV9uYW1lOgogCiBkcm9wX3R5cGVfbmFtZToKIAkJ CUFDQ0VTUyBNRVRIT0QJCQkJCQkJeyAkJCA9IE9CSkVDVF9BQ0NFU1NfTUVUSE9EOyB9CisJ CQl8IENPTFVNTiBFTkNSWVBUSU9OIEtFWQkJCQkJeyAkJCA9IE9CSkVDVF9DRUs7IH0KKwkJ CXwgQ09MVU1OIE1BU1RFUiBLRVkJCQkJCQl7ICQkID0gT0JKRUNUX0NNSzsgfQogCQkJfCBF VkVOVCBUUklHR0VSCQkJCQkJCXsgJCQgPSBPQkpFQ1RfRVZFTlRfVFJJR0dFUjsgfQogCQkJ fCBFWFRFTlNJT04JCQkJCQkJCXsgJCQgPSBPQkpFQ1RfRVhURU5TSU9OOyB9CiAJCQl8IEZP UkVJR04gREFUQV9QIFdSQVBQRVIJCQkJeyAkJCA9IE9CSkVDVF9GRFc7IH0KQEAgLTkxNDAs NiArOTE4NCwyNiBAQCBSZW5hbWVTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dp dGhfYXJndHlwZXMgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNl OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkgbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3Rt dCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCisJCQkJCW4tPnJlbmFtZVR5cGUgPSBP QkpFQ1RfQ0VLOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSBtYWtlU3RyaW5nKCQ1KTsK KwkJCQkJbi0+bmV3bmFtZSA9ICQ4OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJ CQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIENPTFVNTiBNQVNURVIg S0VZIG5hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBt YWtlTm9kZShSZW5hbWVTdG10KTsKKworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX0NN SzsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgbWFrZVN0cmluZygkNSk7CisJCQkJCW4t Pm5ld25hbWUgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9 IChOb2RlICopIG47CisJCQkJfQogCQkJfCBBTFRFUiBDT05WRVJTSU9OX1AgYW55X25hbWUg UkVOQU1FIFRPIG5hbWUKIAkJCQl7CiAJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShS ZW5hbWVTdG10KTsKQEAgLTEwMTQ4LDYgKzEwMjEyLDI0IEBAIEFsdGVyT3duZXJTdG10OiBB TFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dORVIgVE8gUm9sZVNw ZWMKIAkJCQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJ CX0KKwkJCXwgQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIG5hbWUgT1dORVIgVE8gUm9s ZVNwZWMKKwkJCQl7CisJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJP d25lclN0bXQpOworCisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfQ0VLOworCQkJCQlu LT5vYmplY3QgPSAoTm9kZSAqKSBtYWtlU3RyaW5nKCQ1KTsKKwkJCQkJbi0+bmV3b3duZXIg PSAkODsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQUxURVIgQ09MVU1O IE1BU1RFUiBLRVkgbmFtZSBPV05FUiBUTyBSb2xlU3BlYworCQkJCXsKKwkJCQkJQWx0ZXJP d25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck93bmVyU3RtdCk7CisKKwkJCQkJbi0+b2Jq ZWN0VHlwZSA9IE9CSkVDVF9DTUs7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopIG1ha2VT dHJpbmcoJDUpOworCQkJCQluLT5uZXdvd25lciA9ICQ4OworCQkJCQkkJCA9IChOb2RlICop IG47CisJCQkJfQogCQkJfCBBTFRFUiBDT05WRVJTSU9OX1AgYW55X25hbWUgT1dORVIgVE8g Um9sZVNwZWMKIAkJCQl7CiAJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0 ZXJPd25lclN0bXQpOwpAQCAtMTEzMDQsNiArMTEzODYsNTIgQEAgQWx0ZXJDb2xsYXRpb25T dG10OiBBTFRFUiBDT0xMQVRJT04gYW55X25hbWUgUkVGUkVTSCBWRVJTSU9OX1AKIAkJOwog CiAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0FsdGVyQ29s dW1uRW5jcnlwdGlvbktleVN0bXQ6CisJCQlBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkg bmFtZSBBRERfUCBWQUxVRV9QIGRlZmluaXRpb24KKwkJCQl7CisJCQkJCUFsdGVyQ29sdW1u RW5jcnlwdGlvbktleVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlckNvbHVtbkVuY3J5cHRpb25L ZXlTdG10KTsKKworCQkJCQluLT5jZWtuYW1lID0gJDU7CisJCQkJCW4tPmlzRHJvcCA9IGZh bHNlOworCQkJCQluLT5kZWZpbml0aW9uID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsK KwkJCQl9CisJCQl8IEFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBuYW1lIERST1AgVkFM VUVfUCBkZWZpbml0aW9uCisJCQkJeworCQkJCQlBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlT dG10ICpuID0gbWFrZU5vZGUoQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCk7CisKKwkJ CQkJbi0+Y2VrbmFtZSA9ICQ1OworCQkJCQluLT5pc0Ryb3AgPSB0cnVlOworCQkJCQluLT5k ZWZpbml0aW9uID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwor CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJQUxURVIgQ09MVU1OIE1BU1RF UiBLRVkKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0FsdGVyQ29sdW1uTWFz dGVyS2V5U3RtdDoKKwkJCUFMVEVSIENPTFVNTiBNQVNURVIgS0VZIG5hbWUgZGVmaW5pdGlv bgorCQkJCXsKKwkJCQkJQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10ICpuID0gbWFrZU5vZGUo QWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10KTsKKworCQkJCQluLT5jbWtuYW1lID0gJDU7CisJ CQkJCW4tPmRlZmluaXRpb24gPSAkNjsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0K KwkJOworCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqCQlBTFRFUiBTWVNU RU0KQEAgLTE2NzkxLDYgKzE2OTE5LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBF TkFCTEVfUAogCQkJfCBFTkNPRElORwogCQkJfCBFTkNSWVBURUQKKwkJCXwgRU5DUllQVElP TgogCQkJfCBFTlVNX1AKIAkJCXwgRVNDQVBFCiAJCQl8IEVWRU5UCkBAIC0xNjg1NCw2ICsx Njk4Myw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgTE9DS0VECiAJCQl8IExPR0dF RAogCQkJfCBNQVBQSU5HCisJCQl8IE1BU1RFUgogCQkJfCBNQVRDSAogCQkJfCBNQVRDSEVE CiAJCQl8IE1BVEVSSUFMSVpFRApAQCAtMTczMzcsNiArMTc0NjcsNyBAQCBiYXJlX2xhYmVs X2tleXdvcmQ6CiAJCQl8IEVOQUJMRV9QCiAJCQl8IEVOQ09ESU5HCiAJCQl8IEVOQ1JZUFRF RAorCQkJfCBFTkNSWVBUSU9OCiAJCQl8IEVORF9QCiAJCQl8IEVOVU1fUAogCQkJfCBFU0NB UEUKQEAgLTE3NDI1LDYgKzE3NTU2LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBM T0NLRUQKIAkJCXwgTE9HR0VECiAJCQl8IE1BUFBJTkcKKwkJCXwgTUFTVEVSCiAJCQl8IE1B VENICiAJCQl8IE1BVENIRUQKIAkJCXwgTUFURVJJQUxJWkVECmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0uYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9wYXJhbS5jCmluZGV4IGU4MDg3NmFhMjUuLmFhYjQ3YjNjZmUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9wYXJhbS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9wYXJhbS5jCkBAIC00OSw2ICs0OSw4IEBAIHR5cGVkZWYgc3RydWN0IFZhclBh cmFtU3RhdGUKIHsKIAlPaWQJCSAgKipwYXJhbVR5cGVzOwkJLyogYXJyYXkgb2YgcGFyYW1l dGVyIHR5cGUgT0lEcyAqLwogCWludAkJICAgKm51bVBhcmFtczsJCS8qIG51bWJlciBvZiBh cnJheSBlbnRyaWVzICovCisJT2lkCQkgICoqcGFyYW1PcmlnVGJsczsJLyogdW5kZXJseWlu ZyB0YWJsZXMgKDAgaWYgbm9uZSkgKi8KKwlBdHRyTnVtYmVyICoqcGFyYW1PcmlnQ29sczsg LyogdW5kZXJseWluZyBjb2x1bW5zICgwIGlmIG5vbmUpICovCiB9IFZhclBhcmFtU3RhdGU7 CiAKIHN0YXRpYyBOb2RlICpmaXhlZF9wYXJhbXJlZl9ob29rKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgUGFyYW1SZWYgKnByZWYpOwpAQCAtNTYsNiArNTgsNyBAQCBzdGF0aWMgTm9kZSAqdmFy aWFibGVfcGFyYW1yZWZfaG9vayhQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtUmVmICpwcmVm KTsKIHN0YXRpYyBOb2RlICp2YXJpYWJsZV9jb2VyY2VfcGFyYW1faG9vayhQYXJzZVN0YXRl ICpwc3RhdGUsIFBhcmFtICpwYXJhbSwKIAkJCQkJCQkJCQlPaWQgdGFyZ2V0VHlwZUlkLCBp bnQzMiB0YXJnZXRUeXBlTW9kLAogCQkJCQkJCQkJCWludCBsb2NhdGlvbik7CitzdGF0aWMg dm9pZCB2YXJpYWJsZV9wYXJhbV9hc3NpZ25fb3JpZ19ob29rKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgUGFyYW0gKnBhcmFtLCBPaWQgb3JpZ3RibCwgQXR0ck51bWJlciBvcmlnY29sKTsKIHN0 YXRpYyBib29sIGNoZWNrX3BhcmFtZXRlcl9yZXNvbHV0aW9uX3dhbGtlcihOb2RlICpub2Rl LCBQYXJzZVN0YXRlICpwc3RhdGUpOwogc3RhdGljIGJvb2wgcXVlcnlfY29udGFpbnNfZXh0 ZXJuX3BhcmFtc193YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7CiAKQEAgLTgx LDE1ICs4NCwxOSBAQCBzZXR1cF9wYXJzZV9maXhlZF9wYXJhbWV0ZXJzKFBhcnNlU3RhdGUg KnBzdGF0ZSwKICAqLwogdm9pZAogc2V0dXBfcGFyc2VfdmFyaWFibGVfcGFyYW1ldGVycyhQ YXJzZVN0YXRlICpwc3RhdGUsCi0JCQkJCQkJCU9pZCAqKnBhcmFtVHlwZXMsIGludCAqbnVt UGFyYW1zKQorCQkJCQkJCQlPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywKKwkJ CQkJCQkJT2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFtT3JpZ0NvbHMp CiB7CiAJVmFyUGFyYW1TdGF0ZSAqcGFyc3RhdGUgPSBwYWxsb2Moc2l6ZW9mKFZhclBhcmFt U3RhdGUpKTsKIAogCXBhcnN0YXRlLT5wYXJhbVR5cGVzID0gcGFyYW1UeXBlczsKIAlwYXJz dGF0ZS0+bnVtUGFyYW1zID0gbnVtUGFyYW1zOworCXBhcnN0YXRlLT5wYXJhbU9yaWdUYmxz ID0gcGFyYW1PcmlnVGJsczsKKwlwYXJzdGF0ZS0+cGFyYW1PcmlnQ29scyA9IHBhcmFtT3Jp Z0NvbHM7CiAJcHN0YXRlLT5wX3JlZl9ob29rX3N0YXRlID0gKHZvaWQgKikgcGFyc3RhdGU7 CiAJcHN0YXRlLT5wX3BhcmFtcmVmX2hvb2sgPSB2YXJpYWJsZV9wYXJhbXJlZl9ob29rOwog CXBzdGF0ZS0+cF9jb2VyY2VfcGFyYW1faG9vayA9IHZhcmlhYmxlX2NvZXJjZV9wYXJhbV9o b29rOworCXBzdGF0ZS0+cF9wYXJhbV9hc3NpZ25fb3JpZ19ob29rID0gdmFyaWFibGVfcGFy YW1fYXNzaWduX29yaWdfaG9vazsKIH0KIAogLyoKQEAgLTE0NSwxMCArMTUyLDI0IEBAIHZh cmlhYmxlX3BhcmFtcmVmX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJl ZikKIAl7CiAJCS8qIE5lZWQgdG8gZW5sYXJnZSBwYXJhbSBhcnJheSAqLwogCQlpZiAoKnBh cnN0YXRlLT5wYXJhbVR5cGVzKQorCQl7CiAJCQkqcGFyc3RhdGUtPnBhcmFtVHlwZXMgPSBy ZXBhbGxvYzBfYXJyYXkoKnBhcnN0YXRlLT5wYXJhbVR5cGVzLCBPaWQsCiAJCQkJCQkJCQkJ CQkJKnBhcnN0YXRlLT5udW1QYXJhbXMsIHBhcmFtbm8pOworCQkJaWYgKHBhcnN0YXRlLT5w YXJhbU9yaWdUYmxzKQorCQkJCSpwYXJzdGF0ZS0+cGFyYW1PcmlnVGJscyA9IHJlcGFsbG9j MF9hcnJheSgqcGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMsIE9pZCwKKwkJCQkJCQkJCQkJCQkJ ICAgKnBhcnN0YXRlLT5udW1QYXJhbXMsIHBhcmFtbm8pOworCQkJaWYgKHBhcnN0YXRlLT5w YXJhbU9yaWdDb2xzKQorCQkJCSpwYXJzdGF0ZS0+cGFyYW1PcmlnQ29scyA9IHJlcGFsbG9j MF9hcnJheSgqcGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMsIEF0dHJOdW1iZXIsCisJCQkJCQkJ CQkJCQkJCSAgICpwYXJzdGF0ZS0+bnVtUGFyYW1zLCBwYXJhbW5vKTsKKwkJfQogCQllbHNl CisJCXsKIAkJCSpwYXJzdGF0ZS0+cGFyYW1UeXBlcyA9IHBhbGxvYzBfYXJyYXkoT2lkLCBw YXJhbW5vKTsKKwkJCWlmIChwYXJzdGF0ZS0+cGFyYW1PcmlnVGJscykKKwkJCQkqcGFyc3Rh dGUtPnBhcmFtT3JpZ1RibHMgPSBwYWxsb2MwX2FycmF5KE9pZCwgcGFyYW1ubyk7CisJCQlp ZiAocGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMpCisJCQkJKnBhcnN0YXRlLT5wYXJhbU9yaWdD b2xzID0gcGFsbG9jMF9hcnJheShBdHRyTnVtYmVyLCBwYXJhbW5vKTsKKwkJfQogCQkqcGFy c3RhdGUtPm51bVBhcmFtcyA9IHBhcmFtbm87CiAJfQogCkBAIC0yNTYsNiArMjc3LDE4IEBA IHZhcmlhYmxlX2NvZXJjZV9wYXJhbV9ob29rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW0g KnBhcmFtLAogCXJldHVybiBOVUxMOwogfQogCitzdGF0aWMgdm9pZAordmFyaWFibGVfcGFy YW1fYXNzaWduX29yaWdfaG9vayhQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtICpwYXJhbSwg T2lkIG9yaWd0YmwsIEF0dHJOdW1iZXIgb3JpZ2NvbCkKK3sKKwlWYXJQYXJhbVN0YXRlICpw YXJzdGF0ZSA9IChWYXJQYXJhbVN0YXRlICopIHBzdGF0ZS0+cF9yZWZfaG9va19zdGF0ZTsK KwlpbnQJCQlwYXJhbW5vID0gcGFyYW0tPnBhcmFtaWQ7CisKKwlpZiAocGFyc3RhdGUtPnBh cmFtT3JpZ1RibHMpCisJCSgqcGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMpW3BhcmFtbm8gLSAx XSA9IG9yaWd0Ymw7CisJaWYgKHBhcnN0YXRlLT5wYXJhbU9yaWdDb2xzKQorCQkoKnBhcnN0 YXRlLT5wYXJhbU9yaWdDb2xzKVtwYXJhbW5vIC0gMV0gPSBvcmlnY29sOworfQorCiAvKgog ICogQ2hlY2sgZm9yIGNvbnNpc3RlbnQgYXNzaWdubWVudCBvZiB2YXJpYWJsZSBwYXJhbWV0 ZXJzIGFmdGVyIGNvbXBsZXRpb24KICAqIG9mIHBhcnNpbmcgd2l0aCBwYXJzZV92YXJpYWJs ZV9wYXJhbWV0ZXJzLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Rh cmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4IDU2ZDY0 Yzg4NTEuLjgyOTlkZjQ4YTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAg LTU5NCw2ICs1OTQsMTIgQEAgdHJhbnNmb3JtQXNzaWduZWRFeHByKFBhcnNlU3RhdGUgKnBz dGF0ZSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihv cmlnX2V4cHIpKSkpOwogCX0KIAorCWlmIChJc0EoZXhwciwgUGFyYW0pKQorCXsKKwkJaWYg KHBzdGF0ZS0+cF9wYXJhbV9hc3NpZ25fb3JpZ19ob29rKQorCQkJcHN0YXRlLT5wX3BhcmFt X2Fzc2lnbl9vcmlnX2hvb2socHN0YXRlLCBjYXN0Tm9kZShQYXJhbSwgZXhwciksIFJlbGF0 aW9uR2V0UmVsaWQocHN0YXRlLT5wX3RhcmdldF9yZWxhdGlvbiksIGF0dHJubyk7CisJfQor CiAJcHN0YXRlLT5wX2V4cHJfa2luZCA9IHN2X2V4cHJfa2luZDsKIAogCXJldHVybiBleHBy OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgYi9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwppbmRleCBmNDU5ZGFiMzYwLi5k MGE0ODkxMjc5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0 ZXIuYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwpAQCAtMjI0 NCwxMiArMjI0NCwyNyBAQCBQcm9jZXNzU3RhcnR1cFBhY2tldChQb3J0ICpwb3J0LCBib29s IHNzbF9kb25lLCBib29sIGdzc19kb25lKQogCQkJCQkJCQkJdmFscHRyKSwKIAkJCQkJCQkg ZXJyaGludCgiVmFsaWQgdmFsdWVzIGFyZTogXCJmYWxzZVwiLCAwLCBcInRydWVcIiwgMSwg XCJkYXRhYmFzZVwiLiIpKSk7CiAJCQl9CisJCQllbHNlIGlmIChzdHJjbXAobmFtZXB0ciwg Il9wcV8uY29sdW1uX2VuY3J5cHRpb24iKSA9PSAwKQorCQkJeworCQkJCS8qCisJCQkJICog UmlnaHQgbm93LCB0aGUgb25seSBhY2NlcHRlZCB2YWx1ZSBpcyAiMSIuICBUaGlzIGdpdmVz IHJvb20KKwkJCQkgKiB0byBleHBhbmQgdGhpcyBpbnRvIGEgdmVyc2lvbiBudW1iZXIsIGZv ciBleGFtcGxlLgorCQkJCSAqLworCQkJCWlmIChzdHJjbXAodmFscHRyLCAiMSIpID09IDAp CisJCQkJCXBvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQgPSB0cnVlOworCQkJCWVs c2UKKwkJCQkJZXJlcG9ydChGQVRBTCwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFM SURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCQkgZXJybXNnKCJpbnZhbGlkIHZhbHVlIGZv ciBwYXJhbWV0ZXIgXCIlc1wiOiBcIiVzXCIiLAorCQkJCQkJCQkJImNvbHVtbl9lbmNyeXB0 aW9uIiwKKwkJCQkJCQkJCXZhbHB0ciksCisJCQkJCQkJIGVycmhpbnQoIlZhbGlkIHZhbHVl cyBhcmU6IDEuIikpKTsKKwkJCX0KIAkJCWVsc2UgaWYgKHN0cm5jbXAobmFtZXB0ciwgIl9w cV8uIiwgNSkgPT0gMCkKIAkJCXsKIAkJCQkvKgogCQkJCSAqIEFueSBvcHRpb24gYmVnaW5u aW5nIHdpdGggX3BxXy4gaXMgcmVzZXJ2ZWQgZm9yIHVzZSBhcyBhCi0JCQkJICogcHJvdG9j b2wtbGV2ZWwgb3B0aW9uLCBidXQgYXQgcHJlc2VudCBubyBzdWNoIG9wdGlvbnMgYXJlCi0J CQkJICogZGVmaW5lZC4KKwkJCQkgKiBwcm90b2NvbC1sZXZlbCBvcHRpb24uCiAJCQkJICov CiAJCQkJdW5yZWNvZ25pemVkX3Byb3RvY29sX29wdGlvbnMgPQogCQkJCQlsYXBwZW5kKHVu cmVjb2duaXplZF9wcm90b2NvbF9vcHRpb25zLCBwc3RyZHVwKG5hbWVwdHIpKTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5kL3Rjb3Av cG9zdGdyZXMuYwppbmRleCAwMWQyNjRiNWFiLi42MWJkMDViMzMwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0 Z3Jlcy5jCkBAIC03Miw2ICs3Miw3IEBACiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIK ICNpbmNsdWRlICJ1dGlscy9wc19zdGF0dXMuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdy LmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy90aW1l b3V0LmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1wLmgiCiAKQEAgLTY3OCw2ICs2Nzks OCBAQCBwZ19hbmFseXplX2FuZF9yZXdyaXRlX3ZhcnBhcmFtcyhSYXdTdG10ICpwYXJzZXRy ZWUsCiAJCQkJCQkJCSBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsCiAJCQkJCQkJCSBPaWQg KipwYXJhbVR5cGVzLAogCQkJCQkJCQkgaW50ICpudW1QYXJhbXMsCisJCQkJCQkJCSBPaWQg KipwYXJhbU9yaWdUYmxzLAorCQkJCQkJCQkgQXR0ck51bWJlciAqKnBhcmFtT3JpZ0NvbHMs CiAJCQkJCQkJCSBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudikKIHsKIAlRdWVyeQkgICAq cXVlcnk7CkBAIC02OTIsNyArNjk1LDcgQEAgcGdfYW5hbHl6ZV9hbmRfcmV3cml0ZV92YXJw YXJhbXMoUmF3U3RtdCAqcGFyc2V0cmVlLAogCQlSZXNldFVzYWdlKCk7CiAKIAlxdWVyeSA9 IHBhcnNlX2FuYWx5emVfdmFycGFyYW1zKHBhcnNldHJlZSwgcXVlcnlfc3RyaW5nLCBwYXJh bVR5cGVzLCBudW1QYXJhbXMsCi0JCQkJCQkJCQlxdWVyeUVudik7CisJCQkJCQkJCQlwYXJh bU9yaWdUYmxzLCBwYXJhbU9yaWdDb2xzLCBxdWVyeUVudik7CiAKIAkvKgogCSAqIENoZWNr IGFsbCBwYXJhbWV0ZXIgdHlwZXMgZ290IGRldGVybWluZWQuCkBAIC0xMzY2LDYgKzEzNjks OCBAQCBleGVjX3BhcnNlX21lc3NhZ2UoY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLAkvKiBz dHJpbmcgdG8gZXhlY3V0ZSAqLwogCWJvb2wJCWlzX25hbWVkOwogCWJvb2wJCXNhdmVfbG9n X3N0YXRlbWVudF9zdGF0cyA9IGxvZ19zdGF0ZW1lbnRfc3RhdHM7CiAJY2hhcgkJbXNlY19z dHJbMzJdOworCU9pZAkJICAgKnBhcmFtT3JpZ1RibHMgPSBwYWxsb2NfYXJyYXkoT2lkLCBu dW1QYXJhbXMpOworCUF0dHJOdW1iZXIgKnBhcmFtT3JpZ0NvbHMgPSBwYWxsb2NfYXJyYXko QXR0ck51bWJlciwgbnVtUGFyYW1zKTsKIAogCS8qCiAJICogUmVwb3J0IHF1ZXJ5IHRvIHZh cmlvdXMgbW9uaXRvcmluZyBmYWNpbGl0aWVzLgpAQCAtMTQ4Niw2ICsxNDkxLDggQEAgZXhl Y19wYXJzZV9tZXNzYWdlKGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywJLyogc3RyaW5nIHRv IGV4ZWN1dGUgKi8KIAkJCQkJCQkJCQkJCQkJICBxdWVyeV9zdHJpbmcsCiAJCQkJCQkJCQkJ CQkJCSAgJnBhcmFtVHlwZXMsCiAJCQkJCQkJCQkJCQkJCSAgJm51bVBhcmFtcywKKwkJCQkJ CQkJCQkJCQkJICAmcGFyYW1PcmlnVGJscywKKwkJCQkJCQkJCQkJCQkJICAmcGFyYW1Pcmln Q29scywKIAkJCQkJCQkJCQkJCQkJICBOVUxMKTsKIAogCQkvKiBEb25lIHdpdGggdGhlIHNu YXBzaG90IHVzZWQgZm9yIHBhcnNpbmcgKi8KQEAgLTE1MTYsNiArMTUyMyw4IEBAIGV4ZWNf cGFyc2VfbWVzc2FnZShjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsCS8qIHN0cmluZyB0byBl eGVjdXRlICovCiAJCQkJCSAgIHVubmFtZWRfc3RtdF9jb250ZXh0LAogCQkJCQkgICBwYXJh bVR5cGVzLAogCQkJCQkgICBudW1QYXJhbXMsCisJCQkJCSAgIHBhcmFtT3JpZ1RibHMsCisJ CQkJCSAgIHBhcmFtT3JpZ0NvbHMsCiAJCQkJCSAgIE5VTEwsCiAJCQkJCSAgIE5VTEwsCiAJ CQkJCSAgIENVUlNPUl9PUFRfUEFSQUxMRUxfT0ssCS8qIGFsbG93IHBhcmFsbGVsIG1vZGUg Ki8KQEAgLTE4MTMsNiArMTgyMiwxNiBAQCBleGVjX2JpbmRfbWVzc2FnZShTdHJpbmdJbmZv IGlucHV0X21lc3NhZ2UpCiAJCQllbHNlCiAJCQkJcGZvcm1hdCA9IDA7CS8qIGRlZmF1bHQg PSB0ZXh0ICovCiAKKwkJCWlmICh0eXBlX2lzX2VuY3J5cHRlZChwdHlwZSkpCisJCQl7CisJ CQkJaWYgKHBmb3JtYXQgJiAweEYwKQorCQkJCQlwZm9ybWF0ICY9IH4weEYwOworCQkJCWVs c2UKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1BST1RP Q09MX1ZJT0xBVElPTiksCisJCQkJCQkJIGVycm1zZygicGFyYW1ldGVyIGNvcnJlc3BvbmRz IHRvIGFuIGVuY3J5cHRlZCBjb2x1bW4sIGJ1dCB0aGUgcGFyYW1ldGVyIHZhbHVlIHdhcyBu b3QgZW5jcnlwdGVkIikpKTsKKwkJCX0KKwogCQkJaWYgKHBmb3JtYXQgPT0gMCkJLyogdGV4 dCBtb2RlICovCiAJCQl7CiAJCQkJT2lkCQkJdHlwaW5wdXQ7CkBAIC0yNjE1LDggKzI2MzQs NDQgQEAgZXhlY19kZXNjcmliZV9zdGF0ZW1lbnRfbWVzc2FnZShjb25zdCBjaGFyICpzdG10 X25hbWUpCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBwc3JjLT5udW1fcGFyYW1zOyBpKyspCiAJ ewogCQlPaWQJCQlwdHlwZSA9IHBzcmMtPnBhcmFtX3R5cGVzW2ldOworCQlPaWQJCQlwY2Vr aWQgPSBJbnZhbGlkT2lkOworCQlpbnQJCQlwY2VrYWxnID0gMDsKKwkJaW50MTYJCXBmbGFn cyA9IDA7CisKKwkJaWYgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQg JiYgdHlwZV9pc19lbmNyeXB0ZWQocHR5cGUpKQorCQl7CisJCQlPaWQJCQlwb3JpZ3RibCA9 IHBzcmMtPnBhcmFtX29yaWd0YmxzW2ldOworCQkJQXR0ck51bWJlcglwb3JpZ2NvbCA9IHBz cmMtPnBhcmFtX29yaWdjb2xzW2ldOworCQkJSGVhcFR1cGxlCXRwOworCQkJRm9ybV9wZ19h dHRyaWJ1dGUgb3JpZ19hdHQ7CisKKwkJCWlmIChwb3JpZ3RibCA9PSBJbnZhbGlkT2lkIHx8 IHBvcmlnY29sIDw9IDApCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coInBhcmFtZXRl ciAlZCBjb3JyZXNwb25kcyB0byBhbiBlbmNyeXB0ZWQgY29sdW1uLCBidXQgYW4gdW5kZXJs eWluZyB0YWJsZSBhbmQgY29sdW1uIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIiwgaSkpKTsK KworCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTIoQVRUTlVNLCBPYmplY3RJZEdldERhdHVtKHBv cmlndGJsKSwgSW50MTZHZXREYXR1bShwb3JpZ2NvbCkpOworCQkJaWYgKCFIZWFwVHVwbGVJ c1ZhbGlkKHRwKSkKKwkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Ig YXR0cmlidXRlICVkIG9mIHJlbGF0aW9uICV1IiwgcG9yaWdjb2wsIHBvcmlndGJsKTsKKwkJ CW9yaWdfYXR0ID0gKEZvcm1fcGdfYXR0cmlidXRlKSBHRVRTVFJVQ1QodHApOworCQkJcHR5 cGUgPSBvcmlnX2F0dC0+YXR0cmVhbHR5cGlkOworCQkJcGNla2lkID0gb3JpZ19hdHQtPmF0 dGNlazsKKwkJCXBjZWthbGcgPSBvcmlnX2F0dC0+YXR0ZW5jYWxnOworCQkJUmVsZWFzZVN5 c0NhY2hlKHRwKTsKKworCQkJaWYgKHBzcmMtPnBhcmFtX3R5cGVzW2ldID09IFBHX0VOQ1JZ UFRFRF9ERVRPSUQpCisJCQkJcGZsYWdzIHw9IDB4MDE7CisKKwkJCU1heWJlU2VuZENvbHVt bkVuY3J5cHRpb25LZXlNZXNzYWdlKHBjZWtpZCk7CisJCX0KIAogCQlwcV9zZW5kaW50MzIo JnJvd19kZXNjcmlwdGlvbl9idWYsIChpbnQpIHB0eXBlKTsKKwkJaWYgKE15UHJvY1BvcnQt PmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsKKwkJCXBxX3NlbmRpbnQzMigmcm93 X2Rlc2NyaXB0aW9uX2J1ZiwgKGludCkgcGNla2lkKTsKKwkJCXBxX3NlbmRpbnQzMigmcm93 X2Rlc2NyaXB0aW9uX2J1ZiwgcGNla2FsZyk7CisJCQlwcV9zZW5kaW50MTYoJnJvd19kZXNj cmlwdGlvbl9idWYsIHBmbGFncyk7CisJCX0KIAl9CiAJcHFfZW5kbWVzc2FnZV9yZXVzZSgm cm93X2Rlc2NyaXB0aW9uX2J1Zik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3Av dXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggMjQ3ZDA4MTZh ZC4uNDlmODE4ZDcwMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMK KysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTMwLDYgKzMwLDcgQEAKICNp bmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvY2x1c3Rlci5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2Nv bGVuY2NtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb2xsYXRpb25jbWRzLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvY29tbWVudC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbnZlcnNp b25jbWRzLmgiCkBAIC0xMzcsNiArMTM4LDggQEAgQ2xhc3NpZnlVdGlsaXR5Q29tbWFuZEFz UmVhZE9ubHkoTm9kZSAqcGFyc2V0cmVlKQogCXN3aXRjaCAobm9kZVRhZyhwYXJzZXRyZWUp KQogCXsKIAkJY2FzZSBUX0FsdGVyQ29sbGF0aW9uU3RtdDoKKwkJY2FzZSBUX0FsdGVyQ29s dW1uRW5jcnlwdGlvbktleVN0bXQ6CisJCWNhc2UgVF9BbHRlckNvbHVtbk1hc3RlcktleVN0 bXQ6CiAJCWNhc2UgVF9BbHRlckRhdGFiYXNlUmVmcmVzaENvbGxTdG10OgogCQljYXNlIFRf QWx0ZXJEYXRhYmFzZVNldFN0bXQ6CiAJCWNhc2UgVF9BbHRlckRhdGFiYXNlU3RtdDoKQEAg LTE0NDEsNiArMTQ0NCwxNCBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCQkJCQkJCQkJCQkJCQkJc3RtdC0+ZGVmaW5pdGlvbiwKIAkJCQkJCQkJCQkJCQkJ CSZzZWNvbmRhcnlPYmplY3QpOwogCQkJCQkJCWJyZWFrOworCQkJCQkJY2FzZSBPQkpFQ1Rf Q0VLOgorCQkJCQkJCUFzc2VydChzdG10LT5hcmdzID09IE5JTCk7CisJCQkJCQkJYWRkcmVz cyA9IENyZWF0ZUNFSyhwc3RhdGUsIHN0bXQpOworCQkJCQkJCWJyZWFrOworCQkJCQkJY2Fz ZSBPQkpFQ1RfQ01LOgorCQkJCQkJCUFzc2VydChzdG10LT5hcmdzID09IE5JTCk7CisJCQkJ CQkJYWRkcmVzcyA9IENyZWF0ZUNNSyhwc3RhdGUsIHN0bXQpOworCQkJCQkJCWJyZWFrOwog CQkJCQkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQkJCQkJCUFzc2VydChzdG10LT5hcmdz ID09IE5JTCk7CiAJCQkJCQkJYWRkcmVzcyA9IERlZmluZUNvbGxhdGlvbihwc3RhdGUsCkBA IC0xOTAzLDYgKzE5MTQsMTQgQEAgUHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBz dGF0ZSwKIAkJCQlhZGRyZXNzID0gQWx0ZXJDb2xsYXRpb24oKEFsdGVyQ29sbGF0aW9uU3Rt dCAqKSBwYXJzZXRyZWUpOwogCQkJCWJyZWFrOwogCisJCQljYXNlIFRfQWx0ZXJDb2x1bW5F bmNyeXB0aW9uS2V5U3RtdDoKKwkJCQlhZGRyZXNzID0gQWx0ZXJDb2x1bW5FbmNyeXB0aW9u S2V5KHBzdGF0ZSwgKEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQgKikgcGFyc2V0cmVl KTsKKwkJCQlicmVhazsKKworCQkJY2FzZSBUX0FsdGVyQ29sdW1uTWFzdGVyS2V5U3RtdDoK KwkJCQlhZGRyZXNzID0gQWx0ZXJDb2x1bW5NYXN0ZXJLZXkocHN0YXRlLCAoQWx0ZXJDb2x1 bW5NYXN0ZXJLZXlTdG10ICopIHBhcnNldHJlZSk7CisJCQkJYnJlYWs7CisKIAkJCWRlZmF1 bHQ6CiAJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJ CQkJIChpbnQpIG5vZGVUYWcocGFyc2V0cmVlKSk7CkBAIC0yMjI1LDYgKzIyNDQsMTIgQEAg QWx0ZXJPYmplY3RUeXBlQ29tbWFuZFRhZyhPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2Ug T0JKRUNUX0NPTFVNTjoKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9UQUJMRTsKIAkJCWJyZWFr OworCQljYXNlIE9CSkVDVF9DRUs6CisJCQl0YWcgPSBDTURUQUdfQUxURVJfQ09MVU1OX0VO Q1JZUFRJT05fS0VZOworCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCXRhZyA9 IENNRFRBR19BTFRFUl9DT0xVTU5fTUFTVEVSX0tFWTsKKwkJCWJyZWFrOwogCQljYXNlIE9C SkVDVF9DT05WRVJTSU9OOgogCQkJdGFnID0gQ01EVEFHX0FMVEVSX0NPTlZFUlNJT047CiAJ CQlicmVhazsKQEAgLTI2NDAsNiArMjY2NSwxMiBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUg KnBhcnNldHJlZSkKIAkJCQljYXNlIE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQkJCQl0YWcg PSBDTURUQUdfRFJPUF9TVEFUSVNUSUNTOwogCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVD VF9DRUs6CisJCQkJCXRhZyA9IENNRFRBR19EUk9QX0NPTFVNTl9FTkNSWVBUSU9OX0tFWTsK KwkJCQkJYnJlYWs7CisJCQkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJCQl0YWcgPSBDTURUQUdf RFJPUF9DT0xVTU5fTUFTVEVSX0tFWTsKKwkJCQkJYnJlYWs7CiAJCQkJZGVmYXVsdDoKIAkJ CQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQl9CkBAIC0yNzYwLDYgKzI3OTEsMTIgQEAg Q3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfQ09M TEFUSU9OOgogCQkJCQl0YWcgPSBDTURUQUdfQ1JFQVRFX0NPTExBVElPTjsKIAkJCQkJYnJl YWs7CisJCQkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJCQl0YWcgPSBDTURUQUdfQ1JFQVRFX0NP TFVNTl9FTkNSWVBUSU9OX0tFWTsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBPQkpFQ1RfQ01L OgorCQkJCQl0YWcgPSBDTURUQUdfQ1JFQVRFX0NPTFVNTl9NQVNURVJfS0VZOworCQkJCQli cmVhazsKIAkJCQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgogCQkJCQl0YWcgPSBDTURU QUdfQ1JFQVRFX0FDQ0VTU19NRVRIT0Q7CiAJCQkJCWJyZWFrOwpAQCAtMzA2Myw2ICszMTAw LDE0IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJdGFnID0gQ01E VEFHX0FMVEVSX0NPTExBVElPTjsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9BbHRlckNvbHVt bkVuY3J5cHRpb25LZXlTdG10OgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX0NPTFVNTl9FTkNS WVBUSU9OX0tFWTsKKwkJCWJyZWFrOworCisJCWNhc2UgVF9BbHRlckNvbHVtbk1hc3Rlcktl eVN0bXQ6CisJCQl0YWcgPSBDTURUQUdfQUxURVJfQ09MVU1OX01BU1RFUl9LRVk7CisJCQli cmVhazsKKwogCQljYXNlIFRfUHJlcGFyZVN0bXQ6CiAJCQl0YWcgPSBDTURUQUdfUFJFUEFS RTsKIAkJCWJyZWFrOwpAQCAtMzY4OCw2ICszNzMzLDE0IEBAIEdldENvbW1hbmRMb2dMZXZl bChOb2RlICpwYXJzZXRyZWUpCiAJCQlsZXYgPSBMT0dTVE1UX0RETDsKIAkJCWJyZWFrOwog CisJCWNhc2UgVF9BbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10OgorCQkJbGV2ID0gTE9H U1RNVF9EREw7CisJCQlicmVhazsKKworCQljYXNlIFRfQWx0ZXJDb2x1bW5NYXN0ZXJLZXlT dG10OgorCQkJbGV2ID0gTE9HU1RNVF9EREw7CisJCQlicmVhazsKKwogCQkJLyogYWxyZWFk eS1wbGFubmVkIHF1ZXJpZXMgKi8KIAkJY2FzZSBUX1BsYW5uZWRTdG10OgogCQkJewpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKaW5kZXggMGQzZDQ2YjlhNS4uMWVkODNiZTZk NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jCkBAIC0zNDEyLDYgKzM0MTIs NyBAQCBjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbihEYXR1bSAqZWxlbXMsIGludCBuZWxlbXMs IE9pZCBlbG10eXBlKQogCQkJYnJlYWs7CiAKIAkJY2FzZSBPSURPSUQ6CisJCWNhc2UgUkVH Q0xBU1NPSUQ6CiAJCWNhc2UgUkVHVFlQRU9JRDoKIAkJCWVsbWxlbiA9IHNpemVvZihPaWQp OwogCQkJZWxtYnl2YWwgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3ZhcmxlbmEuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKaW5kZXgg MWM1MmRlZWM1NS4uMDUyNWM3ODdmYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3ZhcmxlbmEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCkBA IC02NjMsNiArNjYzLDExMiBAQCB1bmtub3duc2VuZChQR19GVU5DVElPTl9BUkdTKQogCVBH X1JFVFVSTl9CWVRFQV9QKHBxX2VuZHR5cHNlbmQoJmJ1ZikpOwogfQogCisvKgorICogcGdf ZW5jcnlwdGVkX2luIC0KKyAqCisgKiBJbnB1dCBmdW5jdGlvbiBmb3IgcGdfZW5jcnlwdGVk XyogdHlwZXMuCisgKgorICogVGhlIGZvcm1hdCBhbmQgYWRkaXRpb25hbCBjaGVja3MgZW5z dXJlIHRoYXQgb25lIGNhbm5vdCBlYXNpbHkgaW5zZXJ0IGEKKyAqIHZhbHVlIGRpcmVjdGx5 IGludG8gYW4gZW5jcnlwdGVkIGNvbHVtbiBieSBhY2NpZGVudC4gIChUaGF0J3Mgd2h5IHdl IGRvbid0CisgKiBqdXN0IHVzZSB0aGUgYnl0ZWEgZm9ybWF0LCBmb3IgZXhhbXBsZS4pICBC dXQgd2Ugc3RpbGwgaGF2ZSB0byBzdXBwb3J0CisgKiBkaXJlY3QgaW5zZXJ0cyBpbnRvIGVu Y3J5cHRlZCBjb2x1bW5zLCBmb3IgZXhhbXBsZSBmb3IgcmVzdG9yaW5nIGJhY2t1cHMKKyAq IG1hZGUgYnkgcGdfZHVtcC4KKyAqLworRGF0dW0KK3BnX2VuY3J5cHRlZF9pbihQR19GVU5D VElPTl9BUkdTKQoreworCWNoYXIJICAgKmlucHV0VGV4dCA9IFBHX0dFVEFSR19DU1RSSU5H KDApOworCWNoYXIJICAgKmlwOworCXNpemVfdAkJaGV4bGVuOworCWludAkJCWJjOworCWJ5 dGVhCSAgICpyZXN1bHQ7CisKKwlpZiAoc3RybmNtcChpbnB1dFRleHQsICJlbmNyeXB0ZWQk IiwgMTApICE9IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0lO VkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJZXJybXNnKCJpbnZhbGlkIGlucHV0 IHZhbHVlIGZvciBlbmNyeXB0ZWQgY29sdW1uIHZhbHVlOiBcIiVzXCIiLAorCQkJCQkgICBp bnB1dFRleHQpKTsKKworCWlwID0gaW5wdXRUZXh0ICsgMTA7CisJaGV4bGVuID0gc3RybGVu KGlwKTsKKworCS8qIHNhbml0eSBjaGVjayB0byBjYXRjaCBvYnZpb3VzIG1pc3Rha2VzICov CisJaWYgKGhleGxlbiAvIDIgPCAzMiB8fCAoaGV4bGVuIC8gMikgJSAxNiAhPSAwKQorCQll cmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVT RU5UQVRJT04pLAorCQkJCWVycm1zZygiaW52YWxpZCBpbnB1dCB2YWx1ZSBmb3IgZW5jcnlw dGVkIGNvbHVtbiB2YWx1ZTogXCIlc1wiIiwKKwkJCQkJICAgaW5wdXRUZXh0KSk7CisKKwli YyA9IGhleGxlbiAvIDIgKyBWQVJIRFJTWjsJLyogbWF4aW11bSBwb3NzaWJsZSBsZW5ndGgg Ki8KKwlyZXN1bHQgPSBwYWxsb2MoYmMpOworCWJjID0gaGV4X2RlY29kZShpcCwgaGV4bGVu LCBWQVJEQVRBKHJlc3VsdCkpOworCVNFVF9WQVJTSVpFKHJlc3VsdCwgYmMgKyBWQVJIRFJT Wik7IC8qIGFjdHVhbCBsZW5ndGggKi8KKworCVBHX1JFVFVSTl9CWVRFQV9QKHJlc3VsdCk7 Cit9CisKKy8qCisgKiBwZ19lbmNyeXB0ZWRfb3V0IC0KKyAqCisgKiBPdXRwdXQgZnVuY3Rp b24gZm9yIHBnX2VuY3J5cHRlZF8qIHR5cGVzLgorICoKKyAqIFRoaXMgb3V0cHV0IGlzIHNl ZW4gd2hlbiByZWFkaW5nIGFuIGVuY3J5cHRlZCBjb2x1bW4gd2l0aG91dCBjb2x1bW4KKyAq IGVuY3J5cHRpb24gbW9kZSBlbmFibGVkLiAgVGhlcmVmb3JlLCB0aGUgb3V0cHV0IGZvcm1h dCBpcyBjaG9zZW4gc28gdGhhdCBpdAorICogaXMgZWFzaWx5IHJlY29nbml6YWJsZS4KKyAq LworRGF0dW0KK3BnX2VuY3J5cHRlZF9vdXQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlieXRl YQkgICAqdmxlbmEgPSBQR19HRVRBUkdfQllURUFfUFAoMCk7CisJY2hhcgkgICAqcmVzdWx0 OworCWNoYXIJICAgKnJwOworCisJcnAgPSByZXN1bHQgPSBwYWxsb2MoVkFSU0laRV9BTllf RVhIRFIodmxlbmEpICogMiArIDEwICsgMSk7CisJbWVtY3B5KHJwLCAiZW5jcnlwdGVkJCIs IDEwKTsKKwlycCArPSAxMDsKKwlycCArPSBoZXhfZW5jb2RlKFZBUkRBVEFfQU5ZKHZsZW5h KSwgVkFSU0laRV9BTllfRVhIRFIodmxlbmEpLCBycCk7CisJKnJwID0gJ1wwJzsKKwlQR19S RVRVUk5fQ1NUUklORyhyZXN1bHQpOworfQorCisvKgorICogcGdfZW5jcnlwdGVkX3JlY3Yg LQorICoKKyAqIFJlY2VpdmUgZnVuY3Rpb24gZm9yIHBnX2VuY3J5cHRlZF8qIHR5cGVzLgor ICovCitEYXR1bQorcGdfZW5jcnlwdGVkX3JlY3YoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlT dHJpbmdJbmZvCWJ1ZiA9IChTdHJpbmdJbmZvKSBQR19HRVRBUkdfUE9JTlRFUigwKTsKKwli eXRlYQkgICAqcmVzdWx0OworCWludAkJCW5ieXRlczsKKworCW5ieXRlcyA9IGJ1Zi0+bGVu IC0gYnVmLT5jdXJzb3I7CisJLyogc2FuaXR5IGNoZWNrIHRvIGNhdGNoIG9idmlvdXMgbWlz dGFrZXMgKi8KKwlpZiAobmJ5dGVzIDwgMzIpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQllcnJt c2coImludmFsaWQgYmluYXJ5IGlucHV0IHZhbHVlIGZvciBlbmNyeXB0ZWQgY29sdW1uIHZh bHVlIikpOworCXJlc3VsdCA9IChieXRlYSAqKSBwYWxsb2MobmJ5dGVzICsgVkFSSERSU1op OworCVNFVF9WQVJTSVpFKHJlc3VsdCwgbmJ5dGVzICsgVkFSSERSU1opOworCXBxX2NvcHlt c2dieXRlcyhidWYsIFZBUkRBVEEocmVzdWx0KSwgbmJ5dGVzKTsKKwlQR19SRVRVUk5fQllU RUFfUChyZXN1bHQpOworfQorCisvKgorICogcGdfZW5jcnlwdGVkX3NlbmQgLQorICoKKyAq IFNlbmQgZnVuY3Rpb24gZm9yIHBnX2VuY3J5cHRlZF8qIHR5cGVzLgorICovCitEYXR1bQor cGdfZW5jcnlwdGVkX3NlbmQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlieXRlYQkgICAqdmxl bmEgPSBQR19HRVRBUkdfQllURUFfUF9DT1BZKDApOworCisJLyoganVzdCByZXR1cm4gaW5w dXQgKi8KKwlQR19SRVRVUk5fQllURUFfUCh2bGVuYSk7Cit9CisKIAogLyogPT09PT09PT09 PSBQVUJMSUMgUk9VVElORVMgPT09PT09PT09PSAqLwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L2xzeXNjYWNoZS5jCmluZGV4IDk0Y2E4ZTEyMzAuLjQ5ZjczY2E0ZTggMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0yNCw3ICsyNCwxMCBAQAogI2luY2x1ZGUg ImNhdGFsb2cvcGdfYW1vcC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW1wcm9jLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xl bmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29s bWFzdGVya2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb25zdHJhaW50LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19sYW5ndWFnZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFt ZXNwYWNlLmgiCkBAIC0yNjU4LDYgKzI2NjEsMjUgQEAgdHlwZV9pc19tdWx0aXJhbmdlKE9p ZCB0eXBpZCkKIAlyZXR1cm4gKGdldF90eXB0eXBlKHR5cGlkKSA9PSBUWVBUWVBFX01VTFRJ UkFOR0UpOwogfQogCitib29sCit0eXBlX2lzX2VuY3J5cHRlZChPaWQgdHlwaWQpCit7CisJ SGVhcFR1cGxlCXRwOworCisJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVFlQRU9JRCwgT2JqZWN0 SWRHZXREYXR1bSh0eXBpZCkpOworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwl7CisJ CUZvcm1fcGdfdHlwZSB0eXB0dXAgPSAoRm9ybV9wZ190eXBlKSBHRVRTVFJVQ1QodHApOwor CQlib29sCQlyZXN1bHQ7CisKKwkJcmVzdWx0ID0gKHR5cHR1cC0+dHlwY2F0ZWdvcnkgPT0g VFlQQ0FURUdPUllfRU5DUllQVEVEKTsKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJcmV0 dXJuIHJlc3VsdDsKKwl9CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9CisKIC8qCiAgKiBn ZXRfdHlwZV9jYXRlZ29yeV9wcmVmZXJyZWQKICAqCkBAIC0zNjgzLDMgKzM3MDUsOTIgQEAg Z2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rKQogCiAJ cmV0dXJuIHN1Ym5hbWU7CiB9CisKK09pZAorZ2V0X2Nla19vaWQoY29uc3QgY2hhciAqY2Vr bmFtZSwgYm9vbCBtaXNzaW5nX29rKQoreworCU9pZAkJCW9pZDsKKworCW9pZCA9IEdldFN5 c0NhY2hlT2lkMShDRUtOQU1FLCBBbnVtX3BnX2NvbGVuY2tleV9vaWQsCisJCQkJCQkgIENT dHJpbmdHZXREYXR1bShjZWtuYW1lKSk7CisJaWYgKCFPaWRJc1ZhbGlkKG9pZCkgJiYgIW1p c3Npbmdfb2spCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIl c1wiIGRvZXMgbm90IGV4aXN0IiwgY2VrbmFtZSkpKTsKKwlyZXR1cm4gb2lkOworfQorCitj aGFyICoKK2dldF9jZWtfbmFtZShPaWQgY2VraWQsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlI ZWFwVHVwbGUJdHVwOworCWNoYXIJICAgKmNla25hbWU7CisKKwl0dXAgPSBTZWFyY2hTeXND YWNoZTEoQ0VLT0lELCBPYmplY3RJZEdldERhdHVtKGNla2lkKSk7CisKKwlpZiAoIUhlYXBU dXBsZUlzVmFsaWQodHVwKSkKKwl7CisJCWlmICghbWlzc2luZ19vaykKKwkJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXUi LCBjZWtpZCk7CisJCXJldHVybiBOVUxMOworCX0KKworCWNla25hbWUgPSBwc3RyZHVwKE5h bWVTdHIoKChGb3JtX3BnX2NvbGVuY2tleSkgR0VUU1RSVUNUKHR1cCkpLT5jZWtuYW1lKSk7 CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiBjZWtuYW1lOworfQorCitP aWQKK2dldF9jZWtkYXRhX29pZChPaWQgY2VraWQsIE9pZCBjbWtpZCwgYm9vbCBtaXNzaW5n X29rKQoreworCU9pZAkJCWNla2RhdGFpZDsKKworCWNla2RhdGFpZCA9IEdldFN5c0NhY2hl T2lkMihDRUtEQVRBQ0VLQ01LLCBBbnVtX3BnX2NvbGVuY2tleWRhdGFfb2lkLAorCQkJCQkJ CQlPYmplY3RJZEdldERhdHVtKGNla2lkKSwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShj bWtpZCkpOworCWlmICghT2lkSXNWYWxpZChjZWtkYXRhaWQpICYmICFtaXNzaW5nX29rKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVD VCksCisJCQkJIGVycm1zZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBoYXMgbm8g ZGF0YSBmb3IgbWFzdGVyIGtleSBcIiVzXCIiLAorCQkJCQkJZ2V0X2Nla19uYW1lKGNla2lk LCBmYWxzZSksIGdldF9jbWtfbmFtZShjbWtpZCwgZmFsc2UpKSkpOworCisJcmV0dXJuIGNl a2RhdGFpZDsKK30KKworT2lkCitnZXRfY21rX29pZChjb25zdCBjaGFyICpjbWtuYW1lLCBi b29sIG1pc3Npbmdfb2spCit7CisJT2lkCQkJb2lkOworCisJb2lkID0gR2V0U3lzQ2FjaGVP aWQxKENNS05BTUUsIEFudW1fcGdfY29sbWFzdGVya2V5X29pZCwKKwkJCQkJCSAgQ1N0cmlu Z0dldERhdHVtKGNta25hbWUpKTsKKwlpZiAoIU9pZElzVmFsaWQob2lkKSAmJiAhbWlzc2lu Z19vaykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5F RF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNcIiBkb2Vz IG5vdCBleGlzdCIsIGNta25hbWUpKSk7CisJcmV0dXJuIG9pZDsKK30KKworY2hhciAqCitn ZXRfY21rX25hbWUoT2lkIGNta2lkLCBib29sIG1pc3Npbmdfb2spCit7CisJSGVhcFR1cGxl CXR1cDsKKwljaGFyCSAgICpjbWtuYW1lOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENN S09JRCwgT2JqZWN0SWRHZXREYXR1bShjbWtpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1Zh bGlkKHR1cCkpCisJeworCQlpZiAoIW1pc3Npbmdfb2spCisJCQllbG9nKEVSUk9SLCAiY2Fj aGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIG1hc3RlciBrZXkgJXUiLCBjbWtpZCk7CisJ CXJldHVybiBOVUxMOworCX0KKworCWNta25hbWUgPSBwc3RyZHVwKE5hbWVTdHIoKChGb3Jt X3BnX2NvbG1hc3RlcmtleSkgR0VUU1RSVUNUKHR1cCkpLT5jbWtuYW1lKSk7CisKKwlSZWxl YXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiBjbWtuYW1lOworfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGls cy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCBjYzk0MzIwNWQzLi5mZTI2MDlhOTdkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwpAQCAtMzQwLDYgKzM0MCw4IEBAIENv bXBsZXRlQ2FjaGVkUGxhbihDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlLAogCQkJCSAg IE1lbW9yeUNvbnRleHQgcXVlcnl0cmVlX2NvbnRleHQsCiAJCQkJICAgT2lkICpwYXJhbV90 eXBlcywKIAkJCQkgICBpbnQgbnVtX3BhcmFtcywKKwkJCQkgICBPaWQgKnBhcmFtX29yaWd0 YmxzLAorCQkJCSAgIEF0dHJOdW1iZXIgKnBhcmFtX29yaWdjb2xzLAogCQkJCSAgIFBhcnNl clNldHVwSG9vayBwYXJzZXJTZXR1cCwKIAkJCQkgICB2b2lkICpwYXJzZXJTZXR1cEFyZywK IAkJCQkgICBpbnQgY3Vyc29yX29wdGlvbnMsCkBAIC00MTcsOCArNDE5LDE2IEBAIENvbXBs ZXRlQ2FjaGVkUGxhbihDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlLAogCiAJaWYgKG51 bV9wYXJhbXMgPiAwKQogCXsKLQkJcGxhbnNvdXJjZS0+cGFyYW1fdHlwZXMgPSAoT2lkICop IHBhbGxvYyhudW1fcGFyYW1zICogc2l6ZW9mKE9pZCkpOworCQlwbGFuc291cmNlLT5wYXJh bV90eXBlcyA9IHBhbGxvY19hcnJheShPaWQsIG51bV9wYXJhbXMpOwogCQltZW1jcHkocGxh bnNvdXJjZS0+cGFyYW1fdHlwZXMsIHBhcmFtX3R5cGVzLCBudW1fcGFyYW1zICogc2l6ZW9m KE9pZCkpOworCisJCXBsYW5zb3VyY2UtPnBhcmFtX29yaWd0YmxzID0gcGFsbG9jMF9hcnJh eShPaWQsIG51bV9wYXJhbXMpOworCQlpZiAocGFyYW1fb3JpZ3RibHMpCisJCQltZW1jcHko cGxhbnNvdXJjZS0+cGFyYW1fb3JpZ3RibHMsIHBhcmFtX29yaWd0YmxzLCBudW1fcGFyYW1z ICogc2l6ZW9mKE9pZCkpOworCisJCXBsYW5zb3VyY2UtPnBhcmFtX29yaWdjb2xzID0gcGFs bG9jMF9hcnJheShBdHRyTnVtYmVyLCBudW1fcGFyYW1zKTsKKwkJaWYgKHBhcmFtX29yaWdj b2xzKQorCQkJbWVtY3B5KHBsYW5zb3VyY2UtPnBhcmFtX29yaWdjb2xzLCBwYXJhbV9vcmln Y29scywgbnVtX3BhcmFtcyAqIHNpemVvZihBdHRyTnVtYmVyKSk7CiAJfQogCWVsc2UKIAkJ cGxhbnNvdXJjZS0+cGFyYW1fdHlwZXMgPSBOVUxMOwpAQCAtMTUzNSwxMyArMTU0NSwyMiBA QCBDb3B5Q2FjaGVkUGxhbihDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlKQogCW5ld3Nv dXJjZS0+Y29tbWFuZFRhZyA9IHBsYW5zb3VyY2UtPmNvbW1hbmRUYWc7CiAJaWYgKHBsYW5z b3VyY2UtPm51bV9wYXJhbXMgPiAwKQogCXsKLQkJbmV3c291cmNlLT5wYXJhbV90eXBlcyA9 IChPaWQgKikKLQkJCXBhbGxvYyhwbGFuc291cmNlLT5udW1fcGFyYW1zICogc2l6ZW9mKE9p ZCkpOworCQluZXdzb3VyY2UtPnBhcmFtX3R5cGVzID0gcGFsbG9jX2FycmF5KE9pZCwgcGxh bnNvdXJjZS0+bnVtX3BhcmFtcyk7CiAJCW1lbWNweShuZXdzb3VyY2UtPnBhcmFtX3R5cGVz LCBwbGFuc291cmNlLT5wYXJhbV90eXBlcywKIAkJCSAgIHBsYW5zb3VyY2UtPm51bV9wYXJh bXMgKiBzaXplb2YoT2lkKSk7CisJCWlmIChwbGFuc291cmNlLT5wYXJhbV9vcmlndGJscykK KwkJeworCQkJbmV3c291cmNlLT5wYXJhbV9vcmlndGJscyA9IHBhbGxvY19hcnJheShPaWQs IHBsYW5zb3VyY2UtPm51bV9wYXJhbXMpOworCQkJbWVtY3B5KG5ld3NvdXJjZS0+cGFyYW1f b3JpZ3RibHMsIHBsYW5zb3VyY2UtPnBhcmFtX29yaWd0YmxzLAorCQkJCSAgIHBsYW5zb3Vy Y2UtPm51bV9wYXJhbXMgKiBzaXplb2YoT2lkKSk7CisJCX0KKwkJaWYgKHBsYW5zb3VyY2Ut PnBhcmFtX29yaWdjb2xzKQorCQl7CisJCQluZXdzb3VyY2UtPnBhcmFtX29yaWdjb2xzID0g cGFsbG9jX2FycmF5KEF0dHJOdW1iZXIsIHBsYW5zb3VyY2UtPm51bV9wYXJhbXMpOworCQkJ bWVtY3B5KG5ld3NvdXJjZS0+cGFyYW1fb3JpZ2NvbHMsIHBsYW5zb3VyY2UtPnBhcmFtX29y aWdjb2xzLAorCQkJCSAgIHBsYW5zb3VyY2UtPm51bV9wYXJhbXMgKiBzaXplb2YoQXR0ck51 bWJlcikpOworCQl9CiAJfQotCWVsc2UKLQkJbmV3c291cmNlLT5wYXJhbV90eXBlcyA9IE5V TEw7CiAJbmV3c291cmNlLT5udW1fcGFyYW1zID0gcGxhbnNvdXJjZS0+bnVtX3BhcmFtczsK IAluZXdzb3VyY2UtPnBhcnNlclNldHVwID0gcGxhbnNvdXJjZS0+cGFyc2VyU2V0dXA7CiAJ bmV3c291cmNlLT5wYXJzZXJTZXR1cEFyZyA9IHBsYW5zb3VyY2UtPnBhcnNlclNldHVwQXJn OwpAQCAtMTU0OSw4ICsxNTY4LDYgQEAgQ29weUNhY2hlZFBsYW4oQ2FjaGVkUGxhblNvdXJj ZSAqcGxhbnNvdXJjZSkKIAluZXdzb3VyY2UtPmZpeGVkX3Jlc3VsdCA9IHBsYW5zb3VyY2Ut PmZpeGVkX3Jlc3VsdDsKIAlpZiAocGxhbnNvdXJjZS0+cmVzdWx0RGVzYykKIAkJbmV3c291 cmNlLT5yZXN1bHREZXNjID0gQ3JlYXRlVHVwbGVEZXNjQ29weShwbGFuc291cmNlLT5yZXN1 bHREZXNjKTsKLQllbHNlCi0JCW5ld3NvdXJjZS0+cmVzdWx0RGVzYyA9IE5VTEw7CiAJbmV3 c291cmNlLT5jb250ZXh0ID0gc291cmNlX2NvbnRleHQ7CiAKIAlxdWVyeXRyZWVfY29udGV4 dCA9IEFsbG9jU2V0Q29udGV4dENyZWF0ZShzb3VyY2VfY29udGV4dCwKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGls cy9jYWNoZS9zeXNjYWNoZS5jCmluZGV4IDVmMTcwNDcwNDcuLjdkZDA4OTZiZGUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUuYwpAQCAtMjksNyArMjksMTAgQEAKICNpbmNs dWRlICJjYXRhbG9nL3BnX2F1dGhfbWVtYmVycy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf YXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRh dGEuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb25zdHJh aW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19kYXRhYmFzZS5oIgpAQCAtMjY3LDYgKzI3MCw0MyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGNhY2hlZGVzYyBjYWNoZWluZm9bXSA9IHsKIAkJfSwKIAkJMjU2CiAJfSwK Kwl7CisJCUNvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLCAvKiBDRUtEQVRBQ0VLQ01LICov CisJCUNvbHVtbkVuY0tleUNla2lkQ21raWRJbmRleElkLAorCQkyLAorCQl7CisJCQlBbnVt X3BnX2NvbGVuY2tleWRhdGFfY2tkY2VraWQsCisJCQlBbnVtX3BnX2NvbGVuY2tleWRhdGFf Y2tkY21raWQsCisJCX0sCisJCTgKKwl9LAorCXsKKwkJQ29sdW1uRW5jS2V5RGF0YVJlbGF0 aW9uSWQsIC8qIENFS0RBVEFPSUQgKi8KKwkJQ29sdW1uRW5jS2V5RGF0YU9pZEluZGV4SWQs CisJCTEsCisJCXsKKwkJCUFudW1fcGdfY29sZW5ja2V5ZGF0YV9vaWQsCisJCX0sCisJCTgK Kwl9LAorCXsKKwkJQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgLyogQ0VLTkFNRSAqLworCQlD b2x1bW5FbmNLZXlOYW1lSW5kZXhJZCwKKwkJMSwKKwkJeworCQkJQW51bV9wZ19jb2xlbmNr ZXlfY2VrbmFtZSwKKwkJfSwKKwkJOAorCX0sCisJeworCQlDb2x1bW5FbmNLZXlSZWxhdGlv bklkLCAvKiBDRUtPSUQgKi8KKwkJQ29sdW1uRW5jS2V5T2lkSW5kZXhJZCwKKwkJMSwKKwkJ eworCQkJQW51bV9wZ19jb2xlbmNrZXlfb2lkLAorCQl9LAorCQk4CisJfSwKIAl7T3BlcmF0 b3JDbGFzc1JlbGF0aW9uSWQsCS8qIENMQUFNTkFNRU5TUCAqLwogCQlPcGNsYXNzQW1OYW1l TnNwSW5kZXhJZCwKIAkJMywKQEAgLTI4OSw2ICszMjksMjQgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBjYWNoZWRlc2MgY2FjaGVpbmZvW10gPSB7CiAJCX0sCiAJCTgKIAl9LAorCXsKKwkJ Q29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgLyogQ01LTkFNRSAqLworCQlDb2x1bW5NYXN0 ZXJLZXlOYW1lSW5kZXhJZCwKKwkJMSwKKwkJeworCQkJQW51bV9wZ19jb2xtYXN0ZXJrZXlf Y21rbmFtZSwKKwkJfSwKKwkJOAorCX0sCisJeworCQlDb2x1bW5NYXN0ZXJLZXlSZWxhdGlv bklkLAkvKiBDTUtPSUQgKi8KKwkJQ29sdW1uTWFzdGVyS2V5T2lkSW5kZXhJZCwKKwkJMSwK KwkJeworCQkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfb2lkLAorCQl9LAorCQk4CisJfSwKIAl7 Q29sbGF0aW9uUmVsYXRpb25JZCwJCS8qIENPTExOQU1FRU5DTlNQICovCiAJCUNvbGxhdGlv bk5hbWVFbmNOc3BJbmRleElkLAogCQkzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvbWIvbWJ1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvbWJ1dGlscy5jCmluZGV4 IDI0ZjM3ZTNlYzkuLjA1YmQwZDQwOGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L21iL21idXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9tYi9tYnV0aWxzLmMKQEAg LTM2LDcgKzM2LDkgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJsaWJwcS9saWJwcS1iZS5oIgogI2lu Y2x1ZGUgIm1iL3BnX3djaGFyLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVk ZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2lu Y2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCkBAIC0xMjksNiArMTMxLDEyIEBAIFByZXBhcmVD bGllbnRFbmNvZGluZyhpbnQgZW5jb2RpbmcpCiAJCWVuY29kaW5nID09IFBHX1NRTF9BU0NJ SSkKIAkJcmV0dXJuIDA7CiAKKwkvKgorCSAqIENhbm5vdCBkbyBjb252ZXJzaW9uIHdoZW4g Y29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZC4KKwkgKi8KKwlpZiAoTXlQcm9jUG9ydC0+ Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJcmV0dXJuIC0xOworCiAJaWYgKElzVHJh bnNhY3Rpb25TdGF0ZSgpKQogCXsKIAkJLyoKQEAgLTIzNiw2ICsyNDQsMTIgQEAgU2V0Q2xp ZW50RW5jb2RpbmcoaW50IGVuY29kaW5nKQogCQlyZXR1cm4gMDsKIAl9CiAKKwkvKgorCSAq IENhbm5vdCBkbyBjb252ZXJzaW9uIHdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxl ZC4KKwkgKi8KKwlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkK KwkJcmV0dXJuIC0xOworCiAJLyoKIAkgKiBTZWFyY2ggdGhlIGNhY2hlIGZvciB0aGUgZW50 cnkgcHJldmlvdXNseSBwcmVwYXJlZCBieQogCSAqIFByZXBhcmVDbGllbnRFbmNvZGluZzsg aWYgdGhlcmUgaXNuJ3Qgb25lLCB3ZSBsb3NlLiAgV2hpbGUgYXQgaXQsCkBAIC0yOTYsNyAr MzEwLDkgQEAgSW5pdGlhbGl6ZUNsaWVudEVuY29kaW5nKHZvaWQpCiAJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coImNvbnZlcnNp b24gYmV0d2VlbiAlcyBhbmQgJXMgaXMgbm90IHN1cHBvcnRlZCIsCiAJCQkJCQlwZ19lbmMy bmFtZV90YmxbcGVuZGluZ19jbGllbnRfZW5jb2RpbmddLm5hbWUsCi0JCQkJCQlHZXREYXRh YmFzZUVuY29kaW5nTmFtZSgpKSkpOworCQkJCQkJR2V0RGF0YWJhc2VFbmNvZGluZ05hbWUo KSksCisJCQkJIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKSA/CisJ CQkJIGVycmRldGFpbCgiRW5jb2RpbmcgY29udmVyc2lvbiBpcyBub3QgcG9zc2libGUgd2hl biBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkLiIpIDogMCkpOwogCX0KIAogCS8qCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgYi9zcmMvYmluL3BnX2R1bXAv Y29tbW9uLmMKaW5kZXggNDRmYTUyY2M1NS4uODlmZWNlYjNiZCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL2NvbW1vbi5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYwpA QCAtMjAxLDYgKzIwMSwxMiBAQCBnZXRTY2hlbWFEYXRhKEFyY2hpdmUgKmZvdXQsIGludCAq bnVtVGFibGVzUHRyKQogCXBnX2xvZ19pbmZvKCJyZWFkaW5nIHVzZXItZGVmaW5lZCBjb2xs YXRpb25zIik7CiAJKHZvaWQpIGdldENvbGxhdGlvbnMoZm91dCwgJm51bUNvbGxhdGlvbnMp OwogCisJcGdfbG9nX2luZm8oInJlYWRpbmcgY29sdW1uIG1hc3RlciBrZXlzIik7CisJZ2V0 Q29sdW1uTWFzdGVyS2V5cyhmb3V0KTsKKworCXBnX2xvZ19pbmZvKCJyZWFkaW5nIGNvbHVt biBlbmNyeXB0aW9uIGtleXMiKTsKKwlnZXRDb2x1bW5FbmNyeXB0aW9uS2V5cyhmb3V0KTsK KwogCXBnX2xvZ19pbmZvKCJyZWFkaW5nIHVzZXItZGVmaW5lZCBjb252ZXJzaW9ucyIpOwog CWdldENvbnZlcnNpb25zKGZvdXQsICZudW1Db252ZXJzaW9ucyk7CiAKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXAuaAppbmRleCBhYmE3ODBlZjRiLi5hZmJhNzliMmVhIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvcGdfYmFja3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5o CkBAIC04NSw2ICs4NSw3IEBAIHR5cGVkZWYgc3RydWN0IF9jb25uUGFyYW1zCiAJY2hhcgkg ICAqcGdob3N0OwogCWNoYXIJICAgKnVzZXJuYW1lOwogCXRyaXZhbHVlCXByb21wdFBhc3N3 b3JkOworCWludAkJCWNvbHVtbl9lbmNyeXB0aW9uOwogCS8qIElmIG5vdCBOVUxMLCB0aGlz IG92ZXJyaWRlcyB0aGUgZGJuYW1lIG9idGFpbmVkIGZyb20gY29tbWFuZCBsaW5lICovCiAJ LyogKGJ1dCAqb25seSogdGhlIERCIG5hbWUsIG5vdCBhbnl0aGluZyBlbHNlIGluIHRoZSBj b25uc3RyaW5nKSAqLwogCWNoYXIJICAgKm92ZXJyaWRlX2RibmFtZTsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwppbmRleCA3ZjdhMGYxY2U3Li41MTlkMmFkNjM1IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCkBAIC0zNDI1LDYgKzM0MjUs OCBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24oUFFFeHBCdWZmZXIgYnVmLCBjb25zdCBUb2NF bnRyeSAqdGUpCiAKIAkvKiBvYmplY3RzIHRoYXQgZG9uJ3QgcmVxdWlyZSBzcGVjaWFsIGRl Y29yYXRpb24gKi8KIAlpZiAoc3RyY21wKHR5cGUsICJDT0xMQVRJT04iKSA9PSAwIHx8CisJ CXN0cmNtcCh0eXBlLCAiQ09MVU1OIEVOQ1JZUFRJT04gS0VZIikgPT0gMCB8fAorCQlzdHJj bXAodHlwZSwgIkNPTFVNTiBNQVNURVIgS0VZIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwg IkNPTlZFUlNJT04iKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiRE9NQUlOIikgPT0gMCB8 fAogCQlzdHJjbXAodHlwZSwgIkZPUkVJR04gVEFCTEUiKSA9PSAwIHx8CmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2RiLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdf YmFja3VwX2RiLmMKaW5kZXggZjc2NmI2NTA1OS4uYzkwYzI4MDNmYyAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9kYi5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19iYWNrdXBfZGIuYwpAQCAtMTMzLDggKzEzMyw4IEBAIENvbm5lY3REYXRhYmFzZShBcmNo aXZlICpBSFgsCiAJICovCiAJZG8KIAl7Ci0JCWNvbnN0IGNoYXIgKmtleXdvcmRzWzhdOwot CQljb25zdCBjaGFyICp2YWx1ZXNbOF07CisJCWNvbnN0IGNoYXIgKmtleXdvcmRzWzldOwor CQljb25zdCBjaGFyICp2YWx1ZXNbOV07CiAJCWludAkJCWkgPSAwOwogCiAJCS8qCkBAIC0x NTksNiArMTU5LDExIEBAIENvbm5lY3REYXRhYmFzZShBcmNoaXZlICpBSFgsCiAJCX0KIAkJ a2V5d29yZHNbaV0gPSAiZmFsbGJhY2tfYXBwbGljYXRpb25fbmFtZSI7CiAJCXZhbHVlc1tp KytdID0gcHJvZ25hbWU7CisJCWlmIChjcGFyYW1zLT5jb2x1bW5fZW5jcnlwdGlvbikKKwkJ eworCQkJa2V5d29yZHNbaV0gPSAiY29sdW1uX2VuY3J5cHRpb24iOworCQkJdmFsdWVzW2kr K10gPSAiMSI7CisJCX0KIAkJa2V5d29yZHNbaV0gPSBOVUxMOwogCQl2YWx1ZXNbaSsrXSA9 IE5VTEw7CiAJCUFzc2VydChpIDw9IGxlbmd0aG9mKGtleXdvcmRzKSk7CmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YwppbmRleCA0NGQ5NTdjMDM4Li42MTVlMmEwMDI4IDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTU0 LDYgKzU0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlcl9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlX2QuaCIKKyNpbmNsdWRlICJjb21tb24vY29sZW5jLmgiCiAjaW5jbHVkZSAiY29tbW9u L2Nvbm5lY3QuaCIKICNpbmNsdWRlICJjb21tb24vcmVscGF0aC5oIgogI2luY2x1ZGUgImR1 bXB1dGlscy5oIgpAQCAtMjI4LDYgKzIyOSw4IEBAIHN0YXRpYyB2b2lkIGR1bXBBY2Nlc3NN ZXRob2QoQXJjaGl2ZSAqZm91dCwgY29uc3QgQWNjZXNzTWV0aG9kSW5mbyAqYW1pbmZvKTsK IHN0YXRpYyB2b2lkIGR1bXBPcGNsYXNzKEFyY2hpdmUgKmZvdXQsIGNvbnN0IE9wY2xhc3NJ bmZvICpvcGNpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBPcGZhbWlseShBcmNoaXZlICpmb3V0 LCBjb25zdCBPcGZhbWlseUluZm8gKm9wZmluZm8pOwogc3RhdGljIHZvaWQgZHVtcENvbGxh dGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBDb2xsSW5mbyAqY29sbGluZm8pOworc3RhdGlj IHZvaWQgZHVtcENvbHVtbkVuY3J5cHRpb25LZXkoQXJjaGl2ZSAqZm91dCwgY29uc3QgQ2Vr SW5mbyAqY2VraW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wQ29sdW1uTWFzdGVyS2V5KEFyY2hp dmUgKmZvdXQsIGNvbnN0IENta0luZm8gKmNla2luZm8pOwogc3RhdGljIHZvaWQgZHVtcENv bnZlcnNpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgQ29udkluZm8gKmNvbnZpbmZvKTsKIHN0 YXRpYyB2b2lkIGR1bXBSdWxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFJ1bGVJbmZvICpyaW5m byk7CiBzdGF0aWMgdm9pZCBkdW1wQWdnKEFyY2hpdmUgKmZvdXQsIGNvbnN0IEFnZ0luZm8g KmFnZ2luZm8pOwpAQCAtMzkzLDYgKzM5Niw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogCQl7ImF0dHJpYnV0ZS1pbnNlcnRzIiwgbm9fYXJndW1lbnQsICZkb3B0LmNvbHVt bl9pbnNlcnRzLCAxfSwKIAkJeyJiaW5hcnktdXBncmFkZSIsIG5vX2FyZ3VtZW50LCAmZG9w dC5iaW5hcnlfdXBncmFkZSwgMX0sCiAJCXsiY29sdW1uLWluc2VydHMiLCBub19hcmd1bWVu dCwgJmRvcHQuY29sdW1uX2luc2VydHMsIDF9LAorCQl7ImRlY3J5cHQtZW5jcnlwdGVkLWNv bHVtbnMiLCBub19hcmd1bWVudCwgJmRvcHQuY3BhcmFtcy5jb2x1bW5fZW5jcnlwdGlvbiwg MX0sCiAJCXsiZGlzYWJsZS1kb2xsYXItcXVvdGluZyIsIG5vX2FyZ3VtZW50LCAmZG9wdC5k aXNhYmxlX2RvbGxhcl9xdW90aW5nLCAxfSwKIAkJeyJkaXNhYmxlLXRyaWdnZXJzIiwgbm9f YXJndW1lbnQsICZkb3B0LmRpc2FibGVfdHJpZ2dlcnMsIDF9LAogCQl7ImVuYWJsZS1yb3ct c2VjdXJpdHkiLCBub19hcmd1bWVudCwgJmRvcHQuZW5hYmxlX3Jvd19zZWN1cml0eSwgMX0s CkBAIC02ODUsNiArNjg5LDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJICog LS1pbnNlcnRzIGFyZSBhbHJlYWR5IGltcGxpZWQgYWJvdmUgaWYgLS1jb2x1bW4taW5zZXJ0 cyBvcgogCSAqIC0tcm93cy1wZXItaW5zZXJ0IHdlcmUgc3BlY2lmaWVkLgogCSAqLworCWlm IChkb3B0LmNwYXJhbXMuY29sdW1uX2VuY3J5cHRpb24gJiYgZG9wdC5kdW1wX2luc2VydHMg PT0gMCkKKwkJcGdfZmF0YWwoIm9wdGlvbiAtLWRlY3J5cHRfZW5jcnlwdGVkX2NvbHVtbnMg cmVxdWlyZXMgb3B0aW9uIC0taW5zZXJ0cywgLS1yb3dzLXBlci1pbnNlcnQsIG9yIC0tY29s dW1uLWluc2VydHMiKTsKKwogCWlmIChkb3B0LmRvX25vdGhpbmcgJiYgZG9wdC5kdW1wX2lu c2VydHMgPT0gMCkKIAkJcGdfZmF0YWwoIm9wdGlvbiAtLW9uLWNvbmZsaWN0LWRvLW5vdGhp bmcgcmVxdWlyZXMgb3B0aW9uIC0taW5zZXJ0cywgLS1yb3dzLXBlci1pbnNlcnQsIG9yIC0t Y29sdW1uLWluc2VydHMiKTsKIApAQCAtMTA1Nyw2ICsxMDY0LDcgQEAgaGVscChjb25zdCBj aGFyICpwcm9nbmFtZSkKIAlwcmludGYoXygiICAteCwgLS1uby1wcml2aWxlZ2VzICAgICAg ICAgIGRvIG5vdCBkdW1wIHByaXZpbGVnZXMgKGdyYW50L3Jldm9rZSlcbiIpKTsKIAlwcmlu dGYoXygiICAtLWJpbmFyeS11cGdyYWRlICAgICAgICAgICAgIGZvciB1c2UgYnkgdXBncmFk ZSB1dGlsaXRpZXMgb25seVxuIikpOwogCXByaW50ZihfKCIgIC0tY29sdW1uLWluc2VydHMg ICAgICAgICAgICAgZHVtcCBkYXRhIGFzIElOU0VSVCBjb21tYW5kcyB3aXRoIGNvbHVtbiBu YW1lc1xuIikpOworCXByaW50ZihfKCIgIC0tZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1ucyAg ZGVjcnlwdCBlbmNyeXB0ZWQgY29sdW1ucyBpbiB0aGUgb3V0cHV0XG4iKSk7CiAJcHJpbnRm KF8oIiAgLS1kaXNhYmxlLWRvbGxhci1xdW90aW5nICAgICBkaXNhYmxlIGRvbGxhciBxdW90 aW5nLCB1c2UgU1FMIHN0YW5kYXJkIHF1b3RpbmdcbiIpKTsKIAlwcmludGYoXygiICAtLWRp c2FibGUtdHJpZ2dlcnMgICAgICAgICAgIGRpc2FibGUgdHJpZ2dlcnMgZHVyaW5nIGRhdGEt b25seSByZXN0b3JlXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1lbmFibGUtcm93LXNlY3VyaXR5 ICAgICAgICBlbmFibGUgcm93IHNlY3VyaXR5IChkdW1wIG9ubHkgY29udGVudCB1c2VyIGhh c1xuIgpAQCAtNTU3MCw2ICs1NTc4LDEzOCBAQCBnZXRDb2xsYXRpb25zKEFyY2hpdmUgKmZv dXQsIGludCAqbnVtQ29sbGF0aW9ucykKIAlyZXR1cm4gY29sbGluZm87CiB9CiAKKy8qCisg KiBnZXRDb2x1bW5FbmNyeXB0aW9uS2V5cworICoJICBnZXQgaW5mb3JtYXRpb24gYWJvdXQg Y29sdW1uIGVuY3J5cHRpb24ga2V5cworICovCit2b2lkCitnZXRDb2x1bW5FbmNyeXB0aW9u S2V5cyhBcmNoaXZlICpmb3V0KQoreworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCVBHcmVzdWx0 ICAgKnJlczsKKwlpbnQJCQludHVwczsKKwlDZWtJbmZvCSAgICpjZWtpbmZvOworCWludAkJ CWlfdGFibGVvaWQ7CisJaW50CQkJaV9vaWQ7CisJaW50CQkJaV9jZWtuYW1lOworCWludAkJ CWlfY2Vrb3duZXI7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA8IDE2MDAwMCkKKwkJ cmV0dXJuOworCisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksCisJCQkJCSAgIlNFTEVDVCBjZWsudGFibGVvaWQsIGNlay5vaWQs IGNlay5jZWtuYW1lLFxuIgorCQkJCQkgICIgY2VrLmNla293bmVyXG4iCisJCQkJCSAgIkZS T00gcGdfY29sZW5ja2V5IGNlayIpOworCisJcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQs IHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOworCisJbnR1cHMgPSBQUW50dXBsZXMo cmVzKTsKKworCWlfdGFibGVvaWQgPSBQUWZudW1iZXIocmVzLCAidGFibGVvaWQiKTsKKwlp X29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsKKwlpX2Nla25hbWUgPSBQUWZudW1iZXIo cmVzLCAiY2VrbmFtZSIpOworCWlfY2Vrb3duZXIgPSBQUWZudW1iZXIocmVzLCAiY2Vrb3du ZXIiKTsKKworCWNla2luZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoQ2VrSW5mbykp OworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBudHVwczsgaSsrKQorCXsKKwkJUEdyZXN1bHQJ ICAgKnJlczI7CisJCWludAkJCQludHVwczI7CisKKwkJY2VraW5mb1tpXS5kb2JqLm9ialR5 cGUgPSBET19DRUs7CisJCWNla2luZm9baV0uZG9iai5jYXRJZC50YWJsZW9pZCA9IGF0b29p ZChQUWdldHZhbHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOworCQljZWtpbmZvW2ldLmRvYmou Y2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3Np Z25EdW1wSWQoJmNla2luZm9baV0uZG9iaik7CisJCWNla2luZm9baV0uZG9iai5uYW1lID0g cGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2Nla25hbWUpKTsKKwkJY2VraW5mb1tp XS5yb2xuYW1lID0gZ2V0Um9sZU5hbWUoUFFnZXR2YWx1ZShyZXMsIGksIGlfY2Vrb3duZXIp KTsKKworCQlyZXNldFBRRXhwQnVmZmVyKHF1ZXJ5KTsKKwkJYXBwZW5kUFFFeHBCdWZmZXIo cXVlcnksCisJCQkJCQkgICJTRUxFQ1QgKFNFTEVDVCBjbWtuYW1lIEZST00gcGdfY2F0YWxv Zy5wZ19jb2xtYXN0ZXJrZXkgV0hFUkUgcGdfY29sbWFzdGVya2V5Lm9pZCA9IGNrZGNta2lk KSBBUyBjZWtjbWtuYW1lLFxuIgorCQkJCQkJICAiIGNrZGNta2FsZywgY2tkZW5jdmFsXG4i CisJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfY29sZW5ja2V5ZGF0YVxuIgorCQkJCQkJ ICAiV0hFUkUgY2tkY2VraWQgPSAldSIsIGNla2luZm9baV0uZG9iai5jYXRJZC5vaWQpOwor CQlyZXMyID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBM RVNfT0spOworCQludHVwczIgPSBQUW50dXBsZXMocmVzMik7CisJCWNla2luZm9baV0ubnVt ZGF0YSA9IG50dXBzMjsKKwkJY2VraW5mb1tpXS5jZWtjbWtuYW1lcyA9IHBnX21hbGxvYyhz aXplb2YoY2hhciAqKSAqIG50dXBzMik7CisJCWNla2luZm9baV0uY2VrY21rYWxncyA9IHBn X21hbGxvYyhzaXplb2YoaW50KSAqIG50dXBzMik7CisJCWNla2luZm9baV0uY2VrZW5jdmFs cyA9IHBnX21hbGxvYyhzaXplb2YoY2hhciAqKSAqIG50dXBzMik7CisJCWZvciAoaW50IGog PSAwOyBqIDwgbnR1cHMyOyBqKyspCisJCXsKKwkJCWNla2luZm9baV0uY2VrY21rbmFtZXNb al0gPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMyLCBqLCBQUWZudW1iZXIocmVzMiwgImNl a2Nta25hbWUiKSkpOworCQkJY2VraW5mb1tpXS5jZWtjbWthbGdzW2pdID0gYXRvaShQUWdl dHZhbHVlKHJlczIsIGosIFBRZm51bWJlcihyZXMyLCAiY2tkY21rYWxnIikpKTsKKwkJCWNl a2luZm9baV0uY2VrZW5jdmFsc1tqXSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlczIsIGos IFBRZm51bWJlcihyZXMyLCAiY2tkZW5jdmFsIikpKTsKKwkJfQorCQlQUWNsZWFyKHJlczIp OworCisJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYoY2VraW5mb1tpXS5kb2JqKSwgZm91dCk7 CisJfQorCVBRY2xlYXIocmVzKTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7Cit9 CisKKy8qCisgKiBnZXRDb2x1bW5NYXN0ZXJLZXlzCisgKgkgIGdldCBpbmZvcm1hdGlvbiBh Ym91dCBjb2x1bW4gbWFzdGVyIGtleXMKKyAqLwordm9pZAorZ2V0Q29sdW1uTWFzdGVyS2V5 cyhBcmNoaXZlICpmb3V0KQoreworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCVBHcmVzdWx0ICAg KnJlczsKKwlpbnQJCQludHVwczsKKwlDbWtJbmZvCSAgICpjbWtpbmZvOworCWludAkJCWlf dGFibGVvaWQ7CisJaW50CQkJaV9vaWQ7CisJaW50CQkJaV9jbWtuYW1lOworCWludAkJCWlf Y21rb3duZXI7CisJaW50CQkJaV9jbWtyZWFsbTsKKworCWlmIChmb3V0LT5yZW1vdGVWZXJz aW9uIDwgMTYwMDAwKQorCQlyZXR1cm47CisKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVy KCk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJICAiU0VMRUNUIGNtay50 YWJsZW9pZCwgY21rLm9pZCwgY21rLmNta25hbWUsXG4iCisJCQkJCSAgIiBjbWsuY21rb3du ZXIsIGNtay5jbWtyZWFsbVxuIgorCQkJCQkgICJGUk9NIHBnX2NvbG1hc3RlcmtleSBjbWsi KTsKKworCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNf VFVQTEVTX09LKTsKKworCW50dXBzID0gUFFudHVwbGVzKHJlcyk7CisKKwlpX3RhYmxlb2lk ID0gUFFmbnVtYmVyKHJlcywgInRhYmxlb2lkIik7CisJaV9vaWQgPSBQUWZudW1iZXIocmVz LCAib2lkIik7CisJaV9jbWtuYW1lID0gUFFmbnVtYmVyKHJlcywgImNta25hbWUiKTsKKwlp X2Nta293bmVyID0gUFFmbnVtYmVyKHJlcywgImNta293bmVyIik7CisJaV9jbWtyZWFsbSA9 IFBRZm51bWJlcihyZXMsICJjbWtyZWFsbSIpOworCisJY21raW5mbyA9IHBnX21hbGxvYyhu dHVwcyAqIHNpemVvZihDbWtJbmZvKSk7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IG50dXBz OyBpKyspCisJeworCQljbWtpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERPX0NNSzsKKwkJY21r aW5mb1tpXS5kb2JqLmNhdElkLnRhYmxlb2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBp LCBpX3RhYmxlb2lkKSk7CisJCWNta2luZm9baV0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQo UFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJZCgmY21raW5mb1tp XS5kb2JqKTsKKwkJY21raW5mb1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1 ZShyZXMsIGksIGlfY21rbmFtZSkpOworCQljbWtpbmZvW2ldLnJvbG5hbWUgPSBnZXRSb2xl TmFtZShQUWdldHZhbHVlKHJlcywgaSwgaV9jbWtvd25lcikpOworCQljbWtpbmZvW2ldLmNt a3JlYWxtID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2Nta3JlYWxtKSk7CisK KwkJc2VsZWN0RHVtcGFibGVPYmplY3QoJihjbWtpbmZvW2ldLmRvYmopLCBmb3V0KTsKKwl9 CisJUFFjbGVhcihyZXMpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKK30KKwog LyoKICAqIGdldENvbnZlcnNpb25zOgogICoJICByZWFkIGFsbCBjb252ZXJzaW9ucyBpbiB0 aGUgc3lzdGVtIGNhdGFsb2dzIGFuZCByZXR1cm4gdGhlbSBpbiB0aGUKQEAgLTgxNjAsNiAr ODMwMCw5IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0Ymxp bmZvLCBpbnQgbnVtVGFibGVzKQogCWludAkJCWlfdHlwc3RvcmFnZTsKIAlpbnQJCQlpX2F0 dGlkZW50aXR5OwogCWludAkJCWlfYXR0Z2VuZXJhdGVkOworCWludAkJCWlfYXR0Y2VrbmFt ZTsKKwlpbnQJCQlpX2F0dGVuY2FsZzsKKwlpbnQJCQlpX2F0dGVuY2RldDsKIAlpbnQJCQlp X2F0dGlzZHJvcHBlZDsKIAlpbnQJCQlpX2F0dGxlbjsKIAlpbnQJCQlpX2F0dGFsaWduOwpA QCAtODI2OSwxNyArODQxMiwyOSBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRh YmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcykKIAogCWlmIChmb3V0LT5yZW1vdGVW ZXJzaW9uID49IDEyMDAwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwKLQkJCQkJCQkg ImEuYXR0Z2VuZXJhdGVkXG4iKTsKKwkJCQkJCQkgImEuYXR0Z2VuZXJhdGVkLFxuIik7CisJ ZWxzZQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLAorCQkJCQkJCSAiJycgQVMgYXR0Z2Vu ZXJhdGVkLFxuIik7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNjAwMDApCisJ CWFwcGVuZFBRRXhwQnVmZmVyKHEsCisJCQkJCQkgICIoU0VMRUNUIGNla25hbWUgRlJPTSBw Z19jb2xlbmNrZXkgY2VrIFdIRVJFIGNlay5vaWQgPSBhLmF0dGNlaykgQVMgYXR0Y2VrbmFt ZSxcbiIKKwkJCQkJCSAgIkNBU0UgYXR0dHlwaWQgV0hFTiAldSBUSEVOIHRydWUgV0hFTiAl dSBUSEVOIGZhbHNlIEVORCBBUyBhdHRlbmNkZXQsXG4iCisJCQkJCQkgICJhdHRlbmNhbGdc biIsCisJCQkJCQkgIFBHX0VOQ1JZUFRFRF9ERVRPSUQsIFBHX0VOQ1JZUFRFRF9STkRPSUQp OwogCWVsc2UKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwKLQkJCQkJCQkgIicnIEFTIGF0 dGdlbmVyYXRlZFxuIik7CisJCQkJCQkJICJOVUxMIEFTIGF0dGNla25hbWUsXG4iCisJCQkJ CQkJICJOVUxMIEFTIGF0dGVuY2RldCxcbiIKKwkJCQkJCQkgIk5VTEwgQVMgYXR0ZW5jYWxn XG4iKTsKIAogCS8qIG5lZWQgbGVmdCBqb2luIHRvIHBnX3R5cGUgdG8gbm90IGZhaWwgb24g ZHJvcHBlZCBjb2x1bW5zIC4uLiAqLwogCWFwcGVuZFBRRXhwQnVmZmVyKHEsCiAJCQkJCSAg IkZST00gdW5uZXN0KCclcyc6OnBnX2NhdGFsb2cub2lkW10pIEFTIHNyYyh0YmxvaWQpXG4i CiAJCQkJCSAgIkpPSU4gcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGUgYSBPTiAoc3JjLnRibG9p ZCA9IGEuYXR0cmVsaWQpICIKIAkJCQkJICAiTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfdHlw ZSB0ICIKLQkJCQkJICAiT04gKGEuYXR0dHlwaWQgPSB0Lm9pZClcbiIKKwkJCQkJICAiT04g KENBU0UgV0hFTiBhLmF0dHJlYWx0eXBpZCA8PiAwIFRIRU4gYS5hdHRyZWFsdHlwaWQgRUxT RSBhLmF0dHR5cGlkIEVORCA9IHQub2lkKVxuIgogCQkJCQkgICJXSEVSRSBhLmF0dG51bSA+ IDA6OnBnX2NhdGFsb2cuaW50MlxuIgogCQkJCQkgICJPUkRFUiBCWSBhLmF0dHJlbGlkLCBh LmF0dG51bSIsCiAJCQkJCSAgdGJsb2lkcy0+ZGF0YSk7CkBAIC04Mjk4LDYgKzg0NTMsOSBA QCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50 IG51bVRhYmxlcykKIAlpX3R5cHN0b3JhZ2UgPSBQUWZudW1iZXIocmVzLCAidHlwc3RvcmFn ZSIpOwogCWlfYXR0aWRlbnRpdHkgPSBQUWZudW1iZXIocmVzLCAiYXR0aWRlbnRpdHkiKTsK IAlpX2F0dGdlbmVyYXRlZCA9IFBRZm51bWJlcihyZXMsICJhdHRnZW5lcmF0ZWQiKTsKKwlp X2F0dGNla25hbWUgPSBQUWZudW1iZXIocmVzLCAiYXR0Y2VrbmFtZSIpOworCWlfYXR0ZW5j ZGV0ID0gUFFmbnVtYmVyKHJlcywgImF0dGVuY2RldCIpOworCWlfYXR0ZW5jYWxnID0gUFFm bnVtYmVyKHJlcywgImF0dGVuY2FsZyIpOwogCWlfYXR0aXNkcm9wcGVkID0gUFFmbnVtYmVy KHJlcywgImF0dGlzZHJvcHBlZCIpOwogCWlfYXR0bGVuID0gUFFmbnVtYmVyKHJlcywgImF0 dGxlbiIpOwogCWlfYXR0YWxpZ24gPSBQUWZudW1iZXIocmVzLCAiYXR0YWxpZ24iKTsKQEAg LTgzNTksNiArODUxNyw5IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJ bmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCQl0YmluZm8tPnR5cHN0b3JhZ2UgPSAo Y2hhciAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihjaGFyKSk7CiAJCXRiaW5mby0+ YXR0aWRlbnRpdHkgPSAoY2hhciAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihjaGFy KSk7CiAJCXRiaW5mby0+YXR0Z2VuZXJhdGVkID0gKGNoYXIgKikgcGdfbWFsbG9jKG51bWF0 dHMgKiBzaXplb2YoY2hhcikpOworCQl0YmluZm8tPmF0dGNla25hbWUgPSAoY2hhciAqKikg cGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2YoY2hhciAqKSk7CisJCXRiaW5mby0+YXR0ZW5j ZGV0ID0gKGJvb2wgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2YoYm9vbCkpOworCQl0 YmluZm8tPmF0dGVuY2FsZyA9IChpbnQgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2Yo aW50KSk7CiAJCXRiaW5mby0+YXR0aXNkcm9wcGVkID0gKGJvb2wgKikgcGdfbWFsbG9jKG51 bWF0dHMgKiBzaXplb2YoYm9vbCkpOwogCQl0YmluZm8tPmF0dGxlbiA9IChpbnQgKikgcGdf bWFsbG9jKG51bWF0dHMgKiBzaXplb2YoaW50KSk7CiAJCXRiaW5mby0+YXR0YWxpZ24gPSAo Y2hhciAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihjaGFyKSk7CkBAIC04Mzg3LDYg Kzg1NDgsMTggQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRi bGluZm8sIGludCBudW1UYWJsZXMpCiAJCQl0YmluZm8tPmF0dGlkZW50aXR5W2pdID0gKihQ UWdldHZhbHVlKHJlcywgciwgaV9hdHRpZGVudGl0eSkpOwogCQkJdGJpbmZvLT5hdHRnZW5l cmF0ZWRbal0gPSAqKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGdlbmVyYXRlZCkpOwogCQkJ dGJpbmZvLT5uZWVkc19vdmVycmlkZSA9IHRiaW5mby0+bmVlZHNfb3ZlcnJpZGUgfHwgKHRi aW5mby0+YXR0aWRlbnRpdHlbal0gPT0gQVRUUklCVVRFX0lERU5USVRZX0FMV0FZUyk7CisJ CQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgciwgaV9hdHRjZWtuYW1lKSkKKwkJCQl0YmluZm8t PmF0dGNla25hbWVbal0gPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0Y2Vr bmFtZSkpOworCQkJZWxzZQorCQkJCXRiaW5mby0+YXR0Y2VrbmFtZVtqXSA9IE5VTEw7CisJ CQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgciwgaV9hdHRlbmNkZXQpKQorCQkJCXRiaW5mby0+ YXR0ZW5jZGV0W2pdID0gKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGVuY2RldClbMF0gPT0g J3QnKTsKKwkJCWVsc2UKKwkJCQl0YmluZm8tPmF0dGVuY2RldFtqXSA9IDA7CisJCQlpZiAo IVBRZ2V0aXNudWxsKHJlcywgciwgaV9hdHRlbmNhbGcpKQorCQkJCXRiaW5mby0+YXR0ZW5j YWxnW2pdID0gYXRvaShQUWdldHZhbHVlKHJlcywgciwgaV9hdHRlbmNhbGcpKTsKKwkJCWVs c2UKKwkJCQl0YmluZm8tPmF0dGVuY2FsZ1tqXSA9IDA7CiAJCQl0YmluZm8tPmF0dGlzZHJv cHBlZFtqXSA9IChQUWdldHZhbHVlKHJlcywgciwgaV9hdHRpc2Ryb3BwZWQpWzBdID09ICd0 Jyk7CiAJCQl0YmluZm8tPmF0dGxlbltqXSA9IGF0b2koUFFnZXR2YWx1ZShyZXMsIHIsIGlf YXR0bGVuKSk7CiAJCQl0YmluZm8tPmF0dGFsaWduW2pdID0gKihQUWdldHZhbHVlKHJlcywg ciwgaV9hdHRhbGlnbikpOwpAQCAtOTkxMSw2ICsxMDA4NCwxMiBAQCBkdW1wRHVtcGFibGVP YmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNhc2UgRE9f T1BGQU1JTFk6CiAJCQlkdW1wT3BmYW1pbHkoZm91dCwgKGNvbnN0IE9wZmFtaWx5SW5mbyAq KSBkb2JqKTsKIAkJCWJyZWFrOworCQljYXNlIERPX0NFSzoKKwkJCWR1bXBDb2x1bW5FbmNy eXB0aW9uS2V5KGZvdXQsIChjb25zdCBDZWtJbmZvICopIGRvYmopOworCQkJYnJlYWs7CisJ CWNhc2UgRE9fQ01LOgorCQkJZHVtcENvbHVtbk1hc3RlcktleShmb3V0LCAoY29uc3QgQ21r SW5mbyAqKSBkb2JqKTsKKwkJCWJyZWFrOwogCQljYXNlIERPX0NPTExBVElPTjoKIAkJCWR1 bXBDb2xsYXRpb24oZm91dCwgKGNvbnN0IENvbGxJbmZvICopIGRvYmopOwogCQkJYnJlYWs7 CkBAIC0xMzMwNCw2ICsxMzQ4MywxMjkgQEAgZHVtcENvbGxhdGlvbihBcmNoaXZlICpmb3V0 LCBjb25zdCBDb2xsSW5mbyAqY29sbGluZm8pCiAJZnJlZShxY29sbG5hbWUpOwogfQogCisv KgorICogZHVtcENvbHVtbkVuY3J5cHRpb25LZXkKKyAqCSAgZHVtcCB0aGUgZGVmaW5pdGlv biBvZiB0aGUgZ2l2ZW4gY29sdW1uIGVuY3J5cHRpb24ga2V5CisgKi8KK3N0YXRpYyB2b2lk CitkdW1wQ29sdW1uRW5jcnlwdGlvbktleShBcmNoaXZlICpmb3V0LCBjb25zdCBDZWtJbmZv ICpjZWtpbmZvKQoreworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKwlQUUV4 cEJ1ZmZlciBkZWxxOworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCWNoYXIJICAgKnFjZWtuYW1l OworCisJLyogRG8gbm90aGluZyBpbiBkYXRhLW9ubHkgZHVtcCAqLworCWlmIChkb3B0LT5k YXRhT25seSkKKwkJcmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJ cXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJcWNla25hbWUgPSBwZ19zdHJkdXAo Zm10SWQoY2VraW5mby0+ZG9iai5uYW1lKSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxx LCAiRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgJXM7XG4iLAorCQkJCQkgIHFjZWtuYW1l KTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIENPTFVNTiBFTkNSWVBU SU9OIEtFWSAlcyBXSVRIIFZBTFVFUyAiLAorCQkJCQkgIHFjZWtuYW1lKTsKKworCWZvciAo aW50IGkgPSAwOyBpIDwgY2VraW5mby0+bnVtZGF0YTsgaSsrKQorCXsKKwkJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICIoIik7CisKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJj b2x1bW5fbWFzdGVyX2tleSA9ICVzLCAiLCBmbXRJZChjZWtpbmZvLT5jZWtjbWtuYW1lc1tp XSkpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgImFsZ29yaXRobSA9ICclcycsICIs IGdldF9jbWthbGdfbmFtZShjZWtpbmZvLT5jZWtjbWthbGdzW2ldKSk7CisJCWFwcGVuZFBR RXhwQnVmZmVyKHF1ZXJ5LCAiZW5jcnlwdGVkX3ZhbHVlID0gIik7CisJCWFwcGVuZFN0cmlu Z0xpdGVyYWxBSChxdWVyeSwgY2VraW5mby0+Y2VrZW5jdmFsc1tpXSwgZm91dCk7CisKKwkJ YXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIpIik7CisJCWlmIChpIDwgY2VraW5mby0+bnVt ZGF0YSAtIDEpCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiLCAiKTsKKwl9CisKKwlh cHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIjtcbiIpOworCisJaWYgKGNla2luZm8tPmRv YmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCisJCUFyY2hpdmVFbnRyeShm b3V0LCBjZWtpbmZvLT5kb2JqLmNhdElkLCBjZWtpbmZvLT5kb2JqLmR1bXBJZCwKKwkJCQkJ IEFSQ0hJVkVfT1BUUygudGFnID0gY2VraW5mby0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5v d25lciA9IGNla2luZm8tPnJvbG5hbWUsCisJCQkJCQkJCSAgLmRlc2NyaXB0aW9uID0gIkNP TFVNTiBFTkNSWVBUSU9OIEtFWSIsCisJCQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BS RV9EQVRBLAorCQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gcXVlcnktPmRhdGEsCisJCQkJCQkJ CSAgLmRyb3BTdG10ID0gZGVscS0+ZGF0YSkpOworCisJaWYgKGNla2luZm8tPmRvYmouZHVt cCAmIERVTVBfQ09NUE9ORU5UX0NPTU1FTlQpCisJCWR1bXBDb21tZW50KGZvdXQsICJDT0xV TU4gRU5DUllQVElPTiBLRVkiLCBxY2VrbmFtZSwKKwkJCQkJTlVMTCwgY2VraW5mby0+cm9s bmFtZSwKKwkJCQkJY2VraW5mby0+ZG9iai5jYXRJZCwgMCwgY2VraW5mby0+ZG9iai5kdW1w SWQpOworCisJaWYgKGNla2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX1NFQ0xB QkVMKQorCQlkdW1wU2VjTGFiZWwoZm91dCwgIkNPTFVNTiBFTkNSWVBUSU9OIEtFWSIsIHFj ZWtuYW1lLAorCQkJCQkgTlVMTCwgY2VraW5mby0+cm9sbmFtZSwKKwkJCQkJIGNla2luZm8t PmRvYmouY2F0SWQsIDAsIGNla2luZm8tPmRvYmouZHVtcElkKTsKKworCWRlc3Ryb3lQUUV4 cEJ1ZmZlcihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworCWZyZWUocWNl a25hbWUpOworfQorCisvKgorICogZHVtcENvbHVtbk1hc3RlcktleQorICoJICBkdW1wIHRo ZSBkZWZpbml0aW9uIG9mIHRoZSBnaXZlbiBjb2x1bW4gbWFzdGVyIGtleQorICovCitzdGF0 aWMgdm9pZAorZHVtcENvbHVtbk1hc3RlcktleShBcmNoaXZlICpmb3V0LCBjb25zdCBDbWtJ bmZvICpjbWtpbmZvKQoreworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKwlQ UUV4cEJ1ZmZlciBkZWxxOworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCWNoYXIJICAgKnFjbWtu YW1lOworCisJLyogRG8gbm90aGluZyBpbiBkYXRhLW9ubHkgZHVtcCAqLworCWlmIChkb3B0 LT5kYXRhT25seSkKKwkJcmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7 CisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJcWNta25hbWUgPSBwZ19zdHJk dXAoZm10SWQoY21raW5mby0+ZG9iai5uYW1lKSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihk ZWxxLCAiRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSAlcztcbiIsCisJCQkJCSAgcWNta25hbWUp OworCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgQ09MVU1OIE1BU1RFUiBL RVkgJXMgV0lUSCAoIiwKKwkJCQkJICBxY21rbmFtZSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZl cihxdWVyeSwgInJlYWxtID0gIik7CisJYXBwZW5kU3RyaW5nTGl0ZXJhbEFIKHF1ZXJ5LCBj bWtpbmZvLT5jbWtyZWFsbSwgZm91dCk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVy eSwgIik7XG4iKTsKKworCWlmIChjbWtpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVO VF9ERUZJTklUSU9OKQorCQlBcmNoaXZlRW50cnkoZm91dCwgY21raW5mby0+ZG9iai5jYXRJ ZCwgY21raW5mby0+ZG9iai5kdW1wSWQsCisJCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9IGNt a2luZm8tPmRvYmoubmFtZSwKKwkJCQkJCQkJICAub3duZXIgPSBjbWtpbmZvLT5yb2xuYW1l LAorCQkJCQkJCQkgIC5kZXNjcmlwdGlvbiA9ICJDT0xVTU4gTUFTVEVSIEtFWSIsCisJCQkJ CQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BSRV9EQVRBLAorCQkJCQkJCQkgIC5jcmVhdGVT dG10ID0gcXVlcnktPmRhdGEsCisJCQkJCQkJCSAgLmRyb3BTdG10ID0gZGVscS0+ZGF0YSkp OworCisJaWYgKGNta2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0NPTU1FTlQp CisJCWR1bXBDb21tZW50KGZvdXQsICJDT0xVTU4gTUFTVEVSIEtFWSIsIHFjbWtuYW1lLAor CQkJCQlOVUxMLCBjbWtpbmZvLT5yb2xuYW1lLAorCQkJCQljbWtpbmZvLT5kb2JqLmNhdElk LCAwLCBjbWtpbmZvLT5kb2JqLmR1bXBJZCk7CisKKwlpZiAoY21raW5mby0+ZG9iai5kdW1w ICYgRFVNUF9DT01QT05FTlRfU0VDTEFCRUwpCisJCWR1bXBTZWNMYWJlbChmb3V0LCAiQ09M VU1OIE1BU1RFUiBLRVkiLCBxY21rbmFtZSwKKwkJCQkJIE5VTEwsIGNta2luZm8tPnJvbG5h bWUsCisJCQkJCSBjbWtpbmZvLT5kb2JqLmNhdElkLCAwLCBjbWtpbmZvLT5kb2JqLmR1bXBJ ZCk7CisKKwlkZXN0cm95UFFFeHBCdWZmZXIoZGVscSk7CisJZGVzdHJveVBRRXhwQnVmZmVy KHF1ZXJ5KTsKKwlmcmVlKHFjbWtuYW1lKTsKK30KKwogLyoKICAqIGR1bXBDb252ZXJzaW9u CiAgKgkgIHdyaXRlIG91dCBhIHNpbmdsZSBjb252ZXJzaW9uIGRlZmluaXRpb24KQEAgLTE1 Mzg3LDYgKzE1Njg5LDIyIEBAIGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBjb25z dCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCQkJCQkJCQkgIHRiaW5mby0+YXR0dHlwbmFtZXNb al0pOwogCQkJCQl9CiAKKwkJCQkJaWYgKHRiaW5mby0+YXR0Y2VrbmFtZVtqXSkKKwkJCQkJ eworCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIiBFTkNSWVBURUQgV0lUSCAoY29sdW1u X2VuY3J5cHRpb25fa2V5ID0gJXMsICIsCisJCQkJCQkJCQkJICBmbXRJZCh0YmluZm8tPmF0 dGNla25hbWVbal0pKTsKKwkJCQkJCS8qCisJCQkJCQkgKiBUbyByZWR1Y2Ugb3V0cHV0IHNp emUsIHdlIGRvbid0IHByaW50IHRoZSBkZWZhdWx0CisJCQkJCQkgKiBvZiBlbmNyeXB0aW9u X3R5cGUsIGJ1dCB3ZSBkbyBwcmludCB0aGUgZGVmYXVsdCBvZgorCQkJCQkJICogYWxnb3Jp dGhtLCBzaW5jZSB3ZSBtaWdodCB3YW50IHRvIGNoYW5nZSB0byBhIG5ldworCQkJCQkJICog ZGVmYXVsdCBhbGdvcml0aG0gc29tZXRpbWUgaW4gdGhlIGZ1dHVyZS4KKwkJCQkJCSAqLwor CQkJCQkJaWYgKHRiaW5mby0+YXR0ZW5jZGV0W2pdKQorCQkJCQkJCWFwcGVuZFBRRXhwQnVm ZmVyKHEsICJlbmNyeXB0aW9uX3R5cGUgPSBkZXRlcm1pbmlzdGljLCAiKTsKKwkJCQkJCWFw cGVuZFBRRXhwQnVmZmVyKHEsICJhbGdvcml0aG0gPSAnJXMnKSIsCisJCQkJCQkJCQkJICBn ZXRfY2VrYWxnX25hbWUodGJpbmZvLT5hdHRlbmNhbGdbal0pKTsKKwkJCQkJfQorCiAJCQkJ CWlmIChwcmludF9kZWZhdWx0KQogCQkJCQl7CiAJCQkJCQlpZiAodGJpbmZvLT5hdHRnZW5l cmF0ZWRbal0gPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQpCkBAIC0xNzk1MSw2ICsx ODI2OSw4IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBhYmxlT2JqZWN0ICoqZG9i anMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19BQ0NFU1NfTUVUSE9EOgogCQkJY2FzZSBE T19PUENMQVNTOgogCQkJY2FzZSBET19PUEZBTUlMWToKKwkJCWNhc2UgRE9fQ0VLOgorCQkJ Y2FzZSBET19DTUs6CiAJCQljYXNlIERPX0NPTExBVElPTjoKIAkJCWNhc2UgRE9fQ09OVkVS U0lPTjoKIAkJCWNhc2UgRE9fVEFCTEU6CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA0MzZhYzViYjk4 Li4wNzI0ZjNhZTA4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTQ3LDYgKzQ3LDggQEAgdHlwZWRl ZiBlbnVtCiAJRE9fQUNDRVNTX01FVEhPRCwKIAlET19PUENMQVNTLAogCURPX09QRkFNSUxZ LAorCURPX0NFSywKKwlET19DTUssCiAJRE9fQ09MTEFUSU9OLAogCURPX0NPTlZFUlNJT04s CiAJRE9fVEFCTEUsCkBAIC0zMzMsNiArMzM1LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxl SW5mbwogCWJvb2wJICAgKmF0dGlzZHJvcHBlZDsJLyogdHJ1ZSBpZiBhdHRyIGlzIGRyb3Bw ZWQ7IGRvbid0IGR1bXAgaXQgKi8KIAljaGFyCSAgICphdHRpZGVudGl0eTsKIAljaGFyCSAg ICphdHRnZW5lcmF0ZWQ7CisJY2hhcgkgICoqYXR0Y2VrbmFtZTsKKwlpbnQJCSAgICphdHRl bmNhbGc7CisJYm9vbAkgICAqYXR0ZW5jZGV0OwogCWludAkJICAgKmF0dGxlbjsJCQkvKiBh dHRyaWJ1dGUgbGVuZ3RoLCB1c2VkIGJ5IGJpbmFyeV91cGdyYWRlICovCiAJY2hhcgkgICAq YXR0YWxpZ247CQkvKiBhdHRyaWJ1dGUgYWxpZ24sIHVzZWQgYnkgYmluYXJ5X3VwZ3JhZGUg Ki8KIAlib29sCSAgICphdHRpc2xvY2FsOwkJLyogdHJ1ZSBpZiBhdHRyIGhhcyBsb2NhbCBk ZWZpbml0aW9uICovCkBAIC02NjQsNiArNjY5LDMwIEBAIHR5cGVkZWYgc3RydWN0IF9TdWJz Y3JpcHRpb25JbmZvCiAJY2hhcgkgICAqc3VicHVibGljYXRpb25zOwogfSBTdWJzY3JpcHRp b25JbmZvOwogCisvKgorICogVGhlIENla0luZm8gc3RydWN0IGlzIHVzZWQgdG8gcmVwcmVz ZW50IGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX0Nla0lu Zm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCWNvbnN0IGNoYXIgKnJvbG5hbWU7CisJ aW50CQkJbnVtZGF0YTsKKwkvKiBUaGUgZm9sbG93aW5nIGFyZSBhcnJheXMgb2YgbnVtZGF0 YSBlbnRyaWVzIGVhY2g6ICovCisJY2hhcgkgICoqY2VrY21rbmFtZXM7CisJaW50CQkgICAq Y2VrY21rYWxnczsKKwljaGFyCSAgKipjZWtlbmN2YWxzOworfSBDZWtJbmZvOworCisvKgor ICogVGhlIENta0luZm8gc3RydWN0IGlzIHVzZWQgdG8gcmVwcmVzZW50IGNvbHVtbiBtYXN0 ZXIga2V5LgorICovCit0eXBlZGVmIHN0cnVjdCBfQ21rSW5mbworeworCUR1bXBhYmxlT2Jq ZWN0IGRvYmo7CisJY29uc3QgY2hhciAqcm9sbmFtZTsKKwljaGFyCSAgICpjbWtyZWFsbTsK K30gQ21rSW5mbzsKKwogLyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1bmN0aW9ucwogICovCkBA IC03MTEsNiArNzQwLDggQEAgZXh0ZXJuIEFjY2Vzc01ldGhvZEluZm8gKmdldEFjY2Vzc01l dGhvZHMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1BY2Nlc3NNZXRob2RzKTsKIGV4dGVybiBP cGNsYXNzSW5mbyAqZ2V0T3BjbGFzc2VzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtT3BjbGFz c2VzKTsKIGV4dGVybiBPcGZhbWlseUluZm8gKmdldE9wZmFtaWxpZXMoQXJjaGl2ZSAqZm91 dCwgaW50ICpudW1PcGZhbWlsaWVzKTsKIGV4dGVybiBDb2xsSW5mbyAqZ2V0Q29sbGF0aW9u cyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUNvbGxhdGlvbnMpOworZXh0ZXJuIHZvaWQgZ2V0 Q29sdW1uRW5jcnlwdGlvbktleXMoQXJjaGl2ZSAqZm91dCk7CitleHRlcm4gdm9pZCBnZXRD b2x1bW5NYXN0ZXJLZXlzKEFyY2hpdmUgKmZvdXQpOwogZXh0ZXJuIENvbnZJbmZvICpnZXRD b252ZXJzaW9ucyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUNvbnZlcnNpb25zKTsKIGV4dGVy biBUYWJsZUluZm8gKmdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcyk7 CiBleHRlcm4gdm9pZCBnZXRPd25lZFNlcXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRi bGluZm9bXSwgaW50IG51bVRhYmxlcyk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXgg MzFjZWU0NmYzZS4uYmY2NDQ2Zjk1MCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXBfc29ydC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAt NjksNiArNjksOCBAQCBlbnVtIGRiT2JqZWN0VHlwZVByaW9yaXRpZXMKIAlQUklPX1RTVEVN UExBVEUsCiAJUFJJT19UU0RJQ1QsCiAJUFJJT19UU0NPTkZJRywKKwlQUklPX0NNSywKKwlQ UklPX0NFSywKIAlQUklPX0ZEVywKIAlQUklPX0ZPUkVJR05fU0VSVkVSLAogCVBSSU9fVEFC TEUsCkBAIC0xMTEsNiArMTEzLDggQEAgc3RhdGljIGNvbnN0IGludCBkYk9iamVjdFR5cGVQ cmlvcml0eVtdID0KIAlQUklPX0FDQ0VTU19NRVRIT0QsCQkJLyogRE9fQUNDRVNTX01FVEhP RCAqLwogCVBSSU9fT1BGQU1JTFksCQkJCS8qIERPX09QQ0xBU1MgKi8KIAlQUklPX09QRkFN SUxZLAkJCQkvKiBET19PUEZBTUlMWSAqLworCVBSSU9fQ0VLLAkJCQkJLyogRE9fQ0VLICov CisJUFJJT19DTUssCQkJCQkvKiBET19DTUsgKi8KIAlQUklPX0NPTExBVElPTiwJCQkJLyog RE9fQ09MTEFUSU9OICovCiAJUFJJT19DT05WRVJTSU9OLAkJCS8qIERPX0NPTlZFUlNJT04g Ki8KIAlQUklPX1RBQkxFLAkJCQkJLyogRE9fVEFCTEUgKi8KQEAgLTEzMjIsNiArMTMyNiwx NiBAQCBkZXNjcmliZUR1bXBhYmxlT2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIg KmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJCSAiT1BFUkFUT1IgRkFNSUxZICVzICAoSUQgJWQg T0lEICV1KSIsCiAJCQkJCSBvYmotPm5hbWUsIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9p ZCk7CiAJCQlyZXR1cm47CisJCWNhc2UgRE9fQ0VLOgorCQkJc25wcmludGYoYnVmLCBidWZz aXplLAorCQkJCQkgIkNPTFVNTiBFTkNSWVBUSU9OIEtFWSAoSUQgJWQgT0lEICV1KSIsCisJ CQkJCSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOworCQkJcmV0dXJuOworCQljYXNl IERPX0NNSzoKKwkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJICJDT0xVTU4gTUFT VEVSIEtFWSAoSUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJ ZC5vaWQpOworCQkJcmV0dXJuOwogCQljYXNlIERPX0NPTExBVElPTjoKIAkJCXNucHJpbnRm KGJ1ZiwgYnVmc2l6ZSwKIAkJCQkJICJDT0xMQVRJT04gJXMgIChJRCAlZCBPSUQgJXUpIiwK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcGFsbC5jCmluZGV4IDdiNDAwODE2NzguLmEzOTllZjhkNTggMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXBhbGwuYwpAQCAtOTMsNiArOTMsNyBAQCBzdGF0aWMgYm9vbCBkb3N5bmMg PSB0cnVlOwogCiBzdGF0aWMgaW50CWJpbmFyeV91cGdyYWRlID0gMDsKIHN0YXRpYyBpbnQJ Y29sdW1uX2luc2VydHMgPSAwOworc3RhdGljIGludAlkZWNyeXB0X2VuY3J5cHRlZF9jb2x1 bW5zID0gMDsKIHN0YXRpYyBpbnQJZGlzYWJsZV9kb2xsYXJfcXVvdGluZyA9IDA7CiBzdGF0 aWMgaW50CWRpc2FibGVfdHJpZ2dlcnMgPSAwOwogc3RhdGljIGludAlpZl9leGlzdHMgPSAw OwpAQCAtMTU0LDYgKzE1NSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJ eyJhdHRyaWJ1dGUtaW5zZXJ0cyIsIG5vX2FyZ3VtZW50LCAmY29sdW1uX2luc2VydHMsIDF9 LAogCQl7ImJpbmFyeS11cGdyYWRlIiwgbm9fYXJndW1lbnQsICZiaW5hcnlfdXBncmFkZSwg MX0sCiAJCXsiY29sdW1uLWluc2VydHMiLCBub19hcmd1bWVudCwgJmNvbHVtbl9pbnNlcnRz LCAxfSwKKwkJeyJkZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zIiwgbm9fYXJndW1lbnQsICZk ZWNyeXB0X2VuY3J5cHRlZF9jb2x1bW5zLCAxfSwKIAkJeyJkaXNhYmxlLWRvbGxhci1xdW90 aW5nIiwgbm9fYXJndW1lbnQsICZkaXNhYmxlX2RvbGxhcl9xdW90aW5nLCAxfSwKIAkJeyJk aXNhYmxlLXRyaWdnZXJzIiwgbm9fYXJndW1lbnQsICZkaXNhYmxlX3RyaWdnZXJzLCAxfSwK IAkJeyJleGNsdWRlLWRhdGFiYXNlIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDZ9LApA QCAtNDI0LDYgKzQyNiw4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocGdkdW1wb3B0cywgIiAtLWJpbmFyeS11cGdyYWRlIik7CiAJ aWYgKGNvbHVtbl9pbnNlcnRzKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihwZ2R1bXBvcHRz LCAiIC0tY29sdW1uLWluc2VydHMiKTsKKwlpZiAoZGVjcnlwdF9lbmNyeXB0ZWRfY29sdW1u cykKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocGdkdW1wb3B0cywgIiAtLWRlY3J5cHQtZW5j cnlwdGVkLWNvbHVtbnMiKTsKIAlpZiAoZGlzYWJsZV9kb2xsYXJfcXVvdGluZykKIAkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocGdkdW1wb3B0cywgIiAtLWRpc2FibGUtZG9sbGFyLXF1b3Rp bmciKTsKIAlpZiAoZGlzYWJsZV90cmlnZ2VycykKQEAgLTY0OSw2ICs2NTMsNyBAQCBoZWxw KHZvaWQpCiAJcHJpbnRmKF8oIiAgLXgsIC0tbm8tcHJpdmlsZWdlcyAgICAgICAgICBkbyBu b3QgZHVtcCBwcml2aWxlZ2VzIChncmFudC9yZXZva2UpXG4iKSk7CiAJcHJpbnRmKF8oIiAg LS1iaW5hcnktdXBncmFkZSAgICAgICAgICAgICBmb3IgdXNlIGJ5IHVwZ3JhZGUgdXRpbGl0 aWVzIG9ubHlcbiIpKTsKIAlwcmludGYoXygiICAtLWNvbHVtbi1pbnNlcnRzICAgICAgICAg ICAgIGR1bXAgZGF0YSBhcyBJTlNFUlQgY29tbWFuZHMgd2l0aCBjb2x1bW4gbmFtZXNcbiIp KTsKKwlwcmludGYoXygiICAtLWRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnMgIGRlY3J5cHQg ZW5jcnlwdGVkIGNvbHVtbnMgaW4gdGhlIG91dHB1dFxuIikpOwogCXByaW50ZihfKCIgIC0t ZGlzYWJsZS1kb2xsYXItcXVvdGluZyAgICAgZGlzYWJsZSBkb2xsYXIgcXVvdGluZywgdXNl IFNRTCBzdGFuZGFyZCBxdW90aW5nXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1kaXNhYmxlLXRy aWdnZXJzICAgICAgICAgICBkaXNhYmxlIHRyaWdnZXJzIGR1cmluZyBkYXRhLW9ubHkgcmVz dG9yZVxuIikpOwogCXByaW50ZihfKCIgIC0tZXhjbHVkZS1kYXRhYmFzZT1QQVRURVJOICAg ZXhjbHVkZSBkYXRhYmFzZXMgd2hvc2UgbmFtZSBtYXRjaGVzIFBBVFRFUk5cbiIpKTsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggN2MzMDY3YTNmNC4uN2IzNzQ1YzAxOCAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTY0NSw2ICs2NDUsMTggQEAKIAkJ dW5saWtlICAgID0+IHsgJWR1bXBfdGVzdF9zY2hlbWFfcnVucywgbm9fb3duZXIgPT4gMSwg fSwKIAl9LAogCisJJ0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIE9XTkVSIFRP JyA9PiB7CisJCXJlZ2V4cCA9PiBxci9eQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl azEgT1dORVIgVE8gLis7L20sCisJCWxpa2UgICA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25f cHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsgbm9fb3duZXIgPT4gMSwgfSwKKwl9 LAorCisJJ0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazEgT1dORVIgVE8nID0+IHsKKwkJ cmVnZXhwID0+IHFyL15BTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIE9XTkVSIFRPIC4r Oy9tLAorCQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEs IH0sCisJCXVubGlrZSA9PiB7IG5vX293bmVyID0+IDEsIH0sCisJfSwKKwogCSdBTFRFUiBG T1JFSUdOIERBVEEgV1JBUFBFUiBkdW1teSBPV05FUiBUTycgPT4gewogCQlyZWdleHAgPT4g cXIvXkFMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIGR1bW15IE9XTkVSIFRPIC4rOy9tLAog CQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCkBA IC0xMjQ1LDYgKzEyNTcsMjQgQEAKIAkJbGlrZSAgICAgID0+IHsgJWZ1bGxfcnVucywgc2Vj dGlvbl9wcmVfZGF0YSA9PiAxLCB9LAogCX0sCiAKKwknQ09NTUVOVCBPTiBDT0xVTU4gRU5D UllQVElPTiBLRVkgY2VrMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTUsCisJCWNyZWF0 ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMQorCQkJ CQkgICBJUyBcJ2NvbW1lbnQgb24gY29sdW1uIGVuY3J5cHRpb24ga2V5XCc7JywKKwkJcmVn ZXhwID0+CisJCSAgcXIvXkNPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEg SVMgJ2NvbW1lbnQgb24gY29sdW1uIGVuY3J5cHRpb24ga2V5JzsvbSwKKwkJbGlrZSA9PiB7 ICVmdWxsX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwl9LAorCisJJ0NPTU1F TlQgT04gQ09MVU1OIE1BU1RFUiBLRVkgY21rMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4g NTUsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBDT0xVTU4gTUFTVEVSIEtFWSBj bWsxCisJCQkJCSAgIElTIFwnY29tbWVudCBvbiBjb2x1bW4gbWFzdGVyIGtleVwnOycsCisJ CXJlZ2V4cCA9PgorCQkgIHFyL15DT01NRU5UIE9OIENPTFVNTiBNQVNURVIgS0VZIGNtazEg SVMgJ2NvbW1lbnQgb24gY29sdW1uIG1hc3RlciBrZXknOy9tLAorCQlsaWtlID0+IHsgJWZ1 bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAorCX0sCisKIAknQ09NTUVOVCBP TiBMQVJHRSBPQkpFQ1QgLi4uJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2NSwKIAkJY3Jl YXRlX3NxbCAgID0+ICdETyAkJApAQCAtMTY2Myw2ICsxNjkzLDI0IEBACiAJCWxpa2UgPT4g eyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCiAJfSwKIAorCSdDUkVB VEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+ IDUxLAorCQljcmVhdGVfc3FsICAgPT4gIkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkg Y2VrMSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLCBhbGdvcml0aG0g PSAnUlNBRVNfT0FFUF9TSEFfMScsIGVuY3J5cHRlZF92YWx1ZSA9ICdcXHhERUFEQkVFRicp OyIsCisJCXJlZ2V4cCAgICAgICA9PiBxci9eCisJCQlcUUNSRUFURSBDT0xVTU4gRU5DUllQ VElPTiBLRVkgY2VrMSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLCBh bGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsIGVuY3J5cHRlZF92YWx1ZSA9IFxFCisJ CQkveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEs IH0sCisJfSwKKworCSdDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMScgPT4geworCQlj cmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgICA9PiAiQ1JFQVRFIENPTFVNTiBN QVNURVIgS0VZIGNtazEgV0lUSCAocmVhbG0gPSAnbXlyZWFsbScpOyIsCisJCXJlZ2V4cCAg ICAgICA9PiBxci9eCisJCQlcUUNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJVEgg KHJlYWxtID0gJ215cmVhbG0nKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVu cywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAorCX0sCisKIAknQ1JFQVRFIERBVEFCQVNF IHBvc3RncmVzJyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eCiAJCQlcUUNSRUFURSBEQVRBQkFT RSBwb3N0Z3JlcyBXSVRIIFRFTVBMQVRFID0gdGVtcGxhdGUwIFxFCmRpZmYgLS1naXQgYS9z cmMvYmluL3BzcWwvY29tbWFuZC5jIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwppbmRleCBk ZTZhM2E3MWY4Li5iNjg0NjdhMmRmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvY29tbWFu ZC5jCisrKyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKQEAgLTgxNCw3ICs4MTQsMTEgQEAg ZXhlY19jb21tYW5kX2QoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9i cmFuY2gsIGNvbnN0IGNoYXIgKmNtZCkKIAkJCQlzdWNjZXNzID0gZGVzY3JpYmVUYWJsZXNw YWNlcyhwYXR0ZXJuLCBzaG93X3ZlcmJvc2UpOwogCQkJCWJyZWFrOwogCQkJY2FzZSAnYyc6 Ci0JCQkJaWYgKHN0cm5jbXAoY21kLCAiZGNvbmZpZyIsIDcpID09IDApCisJCQkJaWYgKHN0 cm5jbXAoY21kLCAiZGNlayIsIDQpID09IDApCisJCQkJCXN1Y2Nlc3MgPSBsaXN0Q0VLcyhw YXR0ZXJuLCBzaG93X3ZlcmJvc2UpOworCQkJCWVsc2UgaWYgKHN0cm5jbXAoY21kLCAiZGNt ayIsIDQpID09IDApCisJCQkJCXN1Y2Nlc3MgPSBsaXN0Q01LcyhwYXR0ZXJuLCBzaG93X3Zl cmJvc2UpOworCQkJCWVsc2UgaWYgKHN0cm5jbXAoY21kLCAiZGNvbmZpZyIsIDcpID09IDAp CiAJCQkJCXN1Y2Nlc3MgPSBkZXNjcmliZUNvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzKHBhdHRl cm4sCiAJCQkJCQkJCQkJCQkJCQkgIHNob3dfdmVyYm9zZSwKIAkJCQkJCQkJCQkJCQkJCSAg c2hvd19zeXN0ZW0pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBkZjE2NjM2NWU4Li5kMzM1ZWU5YTM3IDEw MDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwpAQCAtMTUzMiw3ICsxNTMyLDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFp bHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAlib29sCQlwcmludFRhYmxlSW5pdGlhbGl6 ZWQgPSBmYWxzZTsKIAlpbnQJCQlpOwogCWNoYXIJICAgKnZpZXdfZGVmID0gTlVMTDsKLQlj aGFyCSAgICpoZWFkZXJzWzEyXTsKKwljaGFyCSAgICpoZWFkZXJzWzEzXTsKIAlQUUV4cEJ1 ZmZlckRhdGEgdGl0bGU7CiAJUFFFeHBCdWZmZXJEYXRhIHRtcGJ1ZjsKIAlpbnQJCQljb2xz OwpAQCAtMTU0OCw2ICsxNTQ4LDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3Qg Y2hhciAqc2NoZW1hbmFtZSwKIAkJCQlmZHdvcHRzX2NvbCA9IC0xLAogCQkJCWF0dHN0b3Jh Z2VfY29sID0gLTEsCiAJCQkJYXR0Y29tcHJlc3Npb25fY29sID0gLTEsCisJCQkJYXR0Y2Vr bmFtZV9jb2wgPSAtMSwKIAkJCQlhdHRzdGF0dGFyZ2V0X2NvbCA9IC0xLAogCQkJCWF0dGRl c2NyX2NvbCA9IC0xOwogCWludAkJCW51bXJvd3M7CkBAIC0xODQ2LDcgKzE4NDcsNyBAQCBk ZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCWNvbHMg PSAwOwogCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsICJTRUxFQ1QgYS5hdHRuYW1lIik7CiAJ YXR0bmFtZV9jb2wgPSBjb2xzKys7Ci0JYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixc biAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZShhLmF0dHR5cGlkLCBhLmF0dHR5cG1vZCkiKTsK KwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBwZ19jYXRhbG9nLmZvcm1hdF90 eXBlKENBU0UgV0hFTiBhLmF0dHJlYWx0eXBpZCA8PiAwIFRIRU4gYS5hdHRyZWFsdHlwaWQg RUxTRSBhLmF0dHR5cGlkIEVORCwgYS5hdHR0eXBtb2QpIik7CiAJYXR0dHlwZV9jb2wgPSBj b2xzKys7CiAKIAlpZiAoc2hvd19jb2x1bW5fZGV0YWlscykKQEAgLTE4NjAsNyArMTg2MSw3 IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJ CWF0dHJkZWZfY29sID0gY29scysrOwogCQlhdHRub3RudWxsX2NvbCA9IGNvbHMrKzsKIAkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZS T00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIHRcbiIK LQkJCQkJCQkgIiAgIFdIRVJFIGMub2lkID0gYS5hdHRjb2xsYXRpb24gQU5EIHQub2lkID0g YS5hdHR0eXBpZCBBTkQgYS5hdHRjb2xsYXRpb24gPD4gdC50eXBjb2xsYXRpb24pIEFTIGF0 dGNvbGxhdGlvbiIpOworCQkJCQkJCSAiICAgV0hFUkUgYy5vaWQgPSBhLmF0dGNvbGxhdGlv biBBTkQgdC5vaWQgPSAoQ0FTRSBXSEVOIGEuYXR0cmVhbHR5cGlkIDw+IDAgVEhFTiBhLmF0 dHJlYWx0eXBpZCBFTFNFIGEuYXR0dHlwaWQgRU5EKSBBTkQgYS5hdHRjb2xsYXRpb24gPD4g dC50eXBjb2xsYXRpb24pIEFTIGF0dGNvbGxhdGlvbiIpOwogCQlhdHRjb2xsX2NvbCA9IGNv bHMrKzsKIAkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTAwMDAwKQogCQkJYXBwZW5kUFFFeHBC dWZmZXJTdHIoJmJ1ZiwgIixcbiAgYS5hdHRpZGVudGl0eSIpOwpAQCAtMTkxMSw2ICsxOTEy LDE1IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUs CiAJCQlhdHRjb21wcmVzc2lvbl9jb2wgPSBjb2xzKys7CiAJCX0KIAorCQkvKiBlbmNyeXB0 aW9uIGluZm8gKi8KKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTYwMDAwICYmCisJCQkhcHNl dC5oaWRlX2NvbHVtbl9lbmNyeXB0aW9uICYmCisJCQkodGFibGVpbmZvLnJlbGtpbmQgPT0g UkVMS0lORF9SRUxBVElPTikpCisJCXsKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs ICIsXG4gIChTRUxFQ1QgY2VrbmFtZSBGUk9NIHBnX2NvbGVuY2tleSBjZWsgV0hFUkUgY2Vr Lm9pZCA9IGEuYXR0Y2VrKSBBUyBhdHRjZWtuYW1lIik7CisJCQlhdHRjZWtuYW1lX2NvbCA9 IGNvbHMrKzsKKwkJfQorCiAJCS8qIHN0YXRzIHRhcmdldCwgaWYgcmVsZXZhbnQgdG8gcmVs a2luZCAqLwogCQlpZiAodGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8 fAogCQkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9JTkRFWCB8fApAQCAtMjAzNCw2 ICsyMDQ0LDggQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1h bmFtZSwKIAkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJTdG9yYWdlIik7CiAJ aWYgKGF0dGNvbXByZXNzaW9uX2NvbCA+PSAwKQogCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0 ZXh0X25vb3AoIkNvbXByZXNzaW9uIik7CisJaWYgKGF0dGNla25hbWVfY29sID49IDApCisJ CWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiRW5jcnlwdGlvbiIpOwogCWlmIChh dHRzdGF0dGFyZ2V0X2NvbCA+PSAwKQogCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25v b3AoIlN0YXRzIHRhcmdldCIpOwogCWlmIChhdHRkZXNjcl9jb2wgPj0gMCkKQEAgLTIxMjYs NiArMjEzOCwxNyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hl bWFuYW1lLAogCQkJCQkJCSAgZmFsc2UsIGZhbHNlKTsKIAkJfQogCisJCS8qIENvbHVtbiBl bmNyeXB0aW9uICovCisJCWlmIChhdHRjZWtuYW1lX2NvbCA+PSAwKQorCQl7CisJCQlpZiAo IVBRZ2V0aXNudWxsKHJlcywgaSwgYXR0Y2VrbmFtZV9jb2wpKQorCQkJCXByaW50VGFibGVB ZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgYXR0Y2VrbmFtZV9jb2wpLAorCQkJ CQkJCQkgIGZhbHNlLCBmYWxzZSk7CisJCQllbHNlCisJCQkJcHJpbnRUYWJsZUFkZENlbGwo JmNvbnQsICIiLAorCQkJCQkJCQkgIGZhbHNlLCBmYWxzZSk7CisJCX0KKwogCQkvKiBTdGF0 aXN0aWNzIHRhcmdldCwgaWYgdGhlIHJlbGtpbmQgc3VwcG9ydHMgdGhpcyBmZWF0dXJlICov CiAJCWlmIChhdHRzdGF0dGFyZ2V0X2NvbCA+PSAwKQogCQkJcHJpbnRUYWJsZUFkZENlbGwo JmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBhdHRzdGF0dGFyZ2V0X2NvbCksCkBAIC00NDc5 LDYgKzQ1MDIsMTM0IEBAIGxpc3RDb252ZXJzaW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHZlcmJvc2UsIGJvb2wgc2hvd1N5c3RlbSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorLyoK KyAqIFxkY2VrCisgKgorICogTGlzdHMgY29sdW1uIGVuY3J5cHRpb24ga2V5cy4KKyAqLwor Ym9vbAorbGlzdENFS3MoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQorewor CVBRRXhwQnVmZmVyRGF0YSBidWY7CisJUEdyZXN1bHQgICAqcmVzOworCXByaW50UXVlcnlP cHQgbXlvcHQgPSBwc2V0LnBvcHQ7CisKKwlpZiAocHNldC5zdmVyc2lvbiA8IDE2MDAwMCkK Kwl7CisJCWNoYXIJCXN2ZXJidWZbMzJdOworCisJCXBnX2xvZ19lcnJvcigiVGhlIHNlcnZl ciAodmVyc2lvbiAlcykgZG9lcyBub3Qgc3VwcG9ydCBjb2x1bW4gZW5jcnlwdGlvbi4iLAor CQkJCQkgZm9ybWF0UEdWZXJzaW9uTnVtYmVyKHBzZXQuc3ZlcnNpb24sIGZhbHNlLAorCQkJ CQkJCQkJCSAgIHN2ZXJidWYsIHNpemVvZihzdmVyYnVmKSkpOworCQlyZXR1cm4gdHJ1ZTsK Kwl9CisKKwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKwlwcmludGZQUUV4cEJ1ZmZlcigm YnVmLAorCQkJCQkgICJTRUxFQ1QgY2VrbmFtZSBBUyBcIiVzXCIsICIKKwkJCQkJICAicGdf Y2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQoY2Vrb3duZXIpIEFTIFwiJXNcIiwgIgorCQkJCQkg ICJjbWtuYW1lIEFTIFwiJXNcIiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJ CQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiTWFz dGVyIGtleSIpKTsKKwlpZiAodmVyYm9zZSkKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwK KwkJCQkJCSAgIiwgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24oY2VrLm9pZCwgJ3BnX2Nv bGVuY2tleScpIEFTIFwiJXNcIiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiRGVzY3JpcHRp b24iKSk7CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwKKwkJCQkJCSAiXG5GUk9NIHBn X2NhdGFsb2cucGdfY29sZW5ja2V5IGNlayAiCisJCQkJCQkgIkpPSU4gcGdfY2F0YWxvZy5w Z19jb2xlbmNrZXlkYXRhIGNrZCBPTiAoY2VrLm9pZCA9IGNrZC5ja2RjZWtpZCkgIgorCQkJ CQkJICJKT0lOIHBnX2NhdGFsb2cucGdfY29sbWFzdGVya2V5IGNtayBPTiAoY2tkLmNrZGNt a2lkID0gY21rLm9pZCkgIik7CisKKwlpZiAoIXZhbGlkYXRlU1FMTmFtZVBhdHRlcm4oJmJ1 ZiwgcGF0dGVybiwgZmFsc2UsIGZhbHNlLAorCQkJCQkJCQlOVUxMLCAiY2VrbmFtZSIsIE5V TEwsIE5VTEwsCisJCQkJCQkJCU5VTEwsIDEpKQorCXsKKwkJdGVybVBRRXhwQnVmZmVyKCZi dWYpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1 ZiwgIk9SREVSIEJZIDEsIDMiKTsKKworCXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0 ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJaWYgKCFyZXMpCisJCXJldHVybiBmYWxzZTsKKwor CW15b3B0Lm51bGxQcmludCA9IE5VTEw7CisJbXlvcHQudGl0bGUgPSBfKCJMaXN0IG9mIGNv bHVtbiBlbmNyeXB0aW9uIGtleXMiKTsKKwlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1 ZTsKKworCXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwg cHNldC5sb2dmaWxlKTsKKworCVBRY2xlYXIocmVzKTsKKwlyZXR1cm4gdHJ1ZTsKK30KKwor LyoKKyAqIFxkY21rCisgKgorICogTGlzdHMgY29sdW1uIG1hc3RlciBrZXlzLgorICovCiti b29sCitsaXN0Q01Lcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCit7CisJ UFFFeHBCdWZmZXJEYXRhIGJ1ZjsKKwlQR3Jlc3VsdCAgICpyZXM7CisJcHJpbnRRdWVyeU9w dCBteW9wdCA9IHBzZXQucG9wdDsKKworCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTYwMDAwKQor CXsKKwkJY2hhcgkJc3ZlcmJ1ZlszMl07CisKKwkJcGdfbG9nX2Vycm9yKCJUaGUgc2VydmVy ICh2ZXJzaW9uICVzKSBkb2VzIG5vdCBzdXBwb3J0IGNvbHVtbiBlbmNyeXB0aW9uLiIsCisJ CQkJCSBmb3JtYXRQR1ZlcnNpb25OdW1iZXIocHNldC5zdmVyc2lvbiwgZmFsc2UsCisJCQkJ CQkJCQkJICAgc3ZlcmJ1Ziwgc2l6ZW9mKHN2ZXJidWYpKSk7CisJCXJldHVybiB0cnVlOwor CX0KKworCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKKworCXByaW50ZlBRRXhwQnVmZmVyKCZi dWYsCisJCQkJCSAgIlNFTEVDVCBjbWtuYW1lIEFTIFwiJXNcIiwgIgorCQkJCQkgICJwZ19j YXRhbG9nLnBnX2dldF91c2VyYnlpZChjbWtvd25lcikgQVMgXCIlc1wiLCAiCisJCQkJCSAg ImNta3JlYWxtIEFTIFwiJXNcIiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJ CQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiUmVh bG0iKSk7CisJaWYgKHZlcmJvc2UpCisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJ CQkgICIsIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX2NvbG1hc3Rlcmtl eScpIEFTIFwiJXNcIiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiRGVzY3JpcHRpb24iKSk7 CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwKKwkJCQkJCSAiXG5GUk9NIHBnX2NhdGFs b2cucGdfY29sbWFzdGVya2V5ICIpOworCisJaWYgKCF2YWxpZGF0ZVNRTE5hbWVQYXR0ZXJu KCZidWYsIHBhdHRlcm4sIGZhbHNlLCBmYWxzZSwKKwkJCQkJCQkJTlVMTCwgImNta25hbWUi LCBOVUxMLCBOVUxMLAorCQkJCQkJCQlOVUxMLCAxKSkKKwl7CisJCXRlcm1QUUV4cEJ1ZmZl cigmYnVmKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsICJPUkRFUiBCWSAxIik7CisKKwlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CisJ dGVybVBRRXhwQnVmZmVyKCZidWYpOworCWlmICghcmVzKQorCQlyZXR1cm4gZmFsc2U7CisK KwlteW9wdC5udWxsUHJpbnQgPSBOVUxMOworCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiBj b2x1bW4gbWFzdGVyIGtleXMiKTsKKwlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsK KworCXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNl dC5sb2dmaWxlKTsKKworCVBRY2xlYXIocmVzKTsKKwlyZXR1cm4gdHJ1ZTsKK30KKwogLyoK ICAqIFxkY29uZmlnCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgg Yi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaAppbmRleCBiZDA1MWUwOWNiLi5kZWJkYjYwZTEx IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuaApAQCAtNzYsNiArNzYsMTIgQEAgZXh0ZXJuIGJvb2wgbGlzdERvbWFp bnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXN0ZW0p OwogLyogXGRjICovCiBleHRlcm4gYm9vbCBsaXN0Q29udmVyc2lvbnMoY29uc3QgY2hhciAq cGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXN0ZW0pOwogCisvKiBcZGNlayAq LworZXh0ZXJuIGJvb2wgbGlzdENFS3MoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJi b3NlKTsKKworLyogXGRjbWsgKi8KK2V4dGVybiBib29sIGxpc3RDTUtzKGNvbnN0IGNoYXIg KnBhdHRlcm4sIGJvb2wgdmVyYm9zZSk7CisKIC8qIFxkY29uZmlnICovCiBleHRlcm4gYm9v bCBkZXNjcmliZUNvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzKGNvbnN0IGNoYXIgKnBhdHRlcm4s IGJvb2wgdmVyYm9zZSwKIAkJCQkJCQkJCQkJYm9vbCBzaG93U3lzdGVtKTsKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC9oZWxwLmMgYi9zcmMvYmluL3BzcWwvaGVscC5jCmluZGV4IGI0 ZTBlYzI2ODcuLjFiOWRlMTkxZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMK KysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjUyLDYgKzI1Miw4IEBAIHNsYXNoVXNh Z2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAwKCIgIFxcZEFwWytdIFtBTVBU Uk4gW09QRlBUUk5dXSAgIGxpc3Qgc3VwcG9ydCBmdW5jdGlvbnMgb2Ygb3BlcmF0b3IgZmFt aWxpZXNcbiIpOwogCUhFTFAwKCIgIFxcZGJbK10gIFtQQVRURVJOXSAgICAgIGxpc3QgdGFi bGVzcGFjZXNcbiIpOwogCUhFTFAwKCIgIFxcZGNbUytdIFtQQVRURVJOXSAgICAgIGxpc3Qg Y29udmVyc2lvbnNcbiIpOworCUhFTFAwKCIgIFxcZGNla1srXSBbUEFUVEVSTl0gICAgIGxp c3QgY29sdW1uIGVuY3J5cHRpb24ga2V5c1xuIik7CisJSEVMUDAoIiAgXFxkY21rWytdIFtQ QVRURVJOXSAgICAgbGlzdCBjb2x1bW4gbWFzdGVyIGtleXNcbiIpOwogCUhFTFAwKCIgIFxc ZGNvbmZpZ1srXSBbUEFUVEVSTl0gIGxpc3QgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzXG4i KTsKIAlIRUxQMCgiICBcXGRDWytdICBbUEFUVEVSTl0gICAgICBsaXN0IGNhc3RzXG4iKTsK IAlIRUxQMCgiICBcXGRkW1NdICBbUEFUVEVSTl0gICAgICBzaG93IG9iamVjdCBkZXNjcmlw dGlvbnMgbm90IGRpc3BsYXllZCBlbHNld2hlcmVcbiIpOwpAQCAtNDEzLDYgKzQxNSw4IEBA IGhlbHBWYXJpYWJsZXModW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCQkgICIgICAgdHJ1 ZSBpZiBsYXN0IHF1ZXJ5IGZhaWxlZCwgZWxzZSBmYWxzZVxuIik7CiAJSEVMUDAoIiAgRkVU Q0hfQ09VTlRcbiIKIAkJICAiICAgIHRoZSBudW1iZXIgb2YgcmVzdWx0IHJvd3MgdG8gZmV0 Y2ggYW5kIGRpc3BsYXkgYXQgYSB0aW1lICgwID0gdW5saW1pdGVkKVxuIik7CisJSEVMUDAo IiAgSElERV9DT0xVTU5fRU5DUllQVElPTlxuIgorCQkgICIgICAgaWYgc2V0LCBjb2x1bW4g ZW5jcnlwdGlvbiBkZXRhaWxzIGFyZSBub3QgZGlzcGxheWVkXG4iKTsKIAlIRUxQMCgiICBI SURFX1RBQkxFQU1cbiIKIAkJICAiICAgIGlmIHNldCwgdGFibGUgYWNjZXNzIG1ldGhvZHMg YXJlIG5vdCBkaXNwbGF5ZWRcbiIpOwogCUhFTFAwKCIgIEhJREVfVE9BU1RfQ09NUFJFU1NJ T05cbiIKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9zZXR0aW5ncy5oIGIvc3JjL2Jpbi9w c3FsL3NldHRpbmdzLmgKaW5kZXggM2ZjZTcxYjg1Zi4uNGJlMjE3OTA5MSAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL3NldHRpbmdzLmgKKysrIGIvc3JjL2Jpbi9wc3FsL3NldHRpbmdz LmgKQEAgLTEzNyw2ICsxMzcsNyBAQCB0eXBlZGVmIHN0cnVjdCBfcHNxbFNldHRpbmdzCiAJ Ym9vbAkJcXVpZXQ7CiAJYm9vbAkJc2luZ2xlbGluZTsKIAlib29sCQlzaW5nbGVzdGVwOwor CWJvb2wJCWhpZGVfY29sdW1uX2VuY3J5cHRpb247CiAJYm9vbAkJaGlkZV9jb21wcmVzc2lv bjsKIAlib29sCQloaWRlX3RhYmxlYW07CiAJaW50CQkJZmV0Y2hfY291bnQ7CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvc3RhcnR1cC5jIGIvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYwpp bmRleCBmNWI5ZTI2OGYyLi4wYjgxMmYzMzIyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwv c3RhcnR1cC5jCisrKyBiL3NyYy9iaW4vcHNxbC9zdGFydHVwLmMKQEAgLTExODgsNiArMTE4 OCwxMyBAQCBoaWRlX2NvbXByZXNzaW9uX2hvb2soY29uc3QgY2hhciAqbmV3dmFsKQogCQkJ CQkJCSAmcHNldC5oaWRlX2NvbXByZXNzaW9uKTsKIH0KIAorc3RhdGljIGJvb2wKK2hpZGVf Y29sdW1uX2VuY3J5cHRpb25faG9vayhjb25zdCBjaGFyICpuZXd2YWwpCit7CisJcmV0dXJu IFBhcnNlVmFyaWFibGVCb29sKG5ld3ZhbCwgIkhJREVfQ09MVU1OX0VOQ1JZUFRJT04iLAor CQkJCQkJCSAmcHNldC5oaWRlX2NvbHVtbl9lbmNyeXB0aW9uKTsKK30KKwogc3RhdGljIGJv b2wKIGhpZGVfdGFibGVhbV9ob29rKGNvbnN0IGNoYXIgKm5ld3ZhbCkKIHsKQEAgLTEyNTks NiArMTI2Niw5IEBAIEVzdGFibGlzaFZhcmlhYmxlU3BhY2Uodm9pZCkKIAlTZXRWYXJpYWJs ZUhvb2tzKHBzZXQudmFycywgIlNIT1dfQ09OVEVYVCIsCiAJCQkJCSBzaG93X2NvbnRleHRf c3Vic3RpdHV0ZV9ob29rLAogCQkJCQkgc2hvd19jb250ZXh0X2hvb2spOworCVNldFZhcmlh YmxlSG9va3MocHNldC52YXJzLCAiSElERV9DT0xVTU5fRU5DUllQVElPTiIsCisJCQkJCSBi b29sX3N1YnN0aXR1dGVfaG9vaywKKwkJCQkJIGhpZGVfY29sdW1uX2VuY3J5cHRpb25faG9v ayk7CiAJU2V0VmFyaWFibGVIb29rcyhwc2V0LnZhcnMsICJISURFX1RPQVNUX0NPTVBSRVNT SU9OIiwKIAkJCQkJIGJvb2xfc3Vic3RpdHV0ZV9ob29rLAogCQkJCQkgaGlkZV9jb21wcmVz c2lvbl9ob29rKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBi L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCAyYTM5MjE5MzdjLi5kYzhjNDMy NDUwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0xMTc1LDYgKzExNzUsMTYgQEAgc3RhdGlj IGNvbnN0IFZlcnNpb25lZFF1ZXJ5IFF1ZXJ5X2Zvcl9saXN0X29mX3N1YnNjcmlwdGlvbnNb XSA9IHsKIAl7MCwgTlVMTH0KIH07CiAKK3N0YXRpYyBjb25zdCBWZXJzaW9uZWRRdWVyeSBR dWVyeV9mb3JfbGlzdF9vZl9jZWtzW10gPSB7CisJezE2MDAwMCwgIlNFTEVDVCBjZWtuYW1l IEZST00gcGdfY2F0YWxvZy5wZ19jb2xlbmNrZXkgV0hFUkUgY2VrbmFtZSBMSUtFICclcyci fSwKKwl7MCwgTlVMTH0KK307CisKK3N0YXRpYyBjb25zdCBWZXJzaW9uZWRRdWVyeSBRdWVy eV9mb3JfbGlzdF9vZl9jbWtzW10gPSB7CisJezE2MDAwMCwgIlNFTEVDVCBjbWtuYW1lIEZS T00gcGdfY2F0YWxvZy5wZ19jb2xtYXN0ZXJrZXkgV0hFUkUgY21rbmFtZSBMSUtFICclcyci fSwKKwl7MCwgTlVMTH0KK307CisKIC8qCiAgKiBUaGlzIGlzIGEgbGlzdCBvZiBhbGwgInRo aW5ncyIgaW4gUGdzcWwsIHdoaWNoIGNhbiBzaG93IHVwIGFmdGVyIENSRUFURSBvcgogICog RFJPUDsgYW5kIHRoZXJlIGlzIGFsc28gYSBxdWVyeSB0byBnZXQgYSBsaXN0IG9mIHRoZW0u CkBAIC0xMjA4LDYgKzEyMTgsOCBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jk c19hZnRlcl9jcmVhdGVbXSA9IHsKIAl7IkNBU1QiLCBOVUxMLCBOVUxMLCBOVUxMfSwgLyog Q2FzdHMgaGF2ZSBjb21wbGV4IHN0cnVjdHVyZXMgZm9yIG5hbWVzLCBzbwogCQkJCQkJCQkg KiBza2lwIGl0ICovCiAJeyJDT0xMQVRJT04iLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xp c3Rfb2ZfY29sbGF0aW9uc30sCisJeyJDT0xVTU4gRU5DUllQVElPTiBLRVkiLCBOVUxMLCBO VUxMLCBOVUxMfSwKKwl7IkNPTFVNTiBNQVNURVIgS0VZIEtFWSIsIE5VTEwsIE5VTEwsIE5V TEx9LAogCiAJLyoKIAkgKiBDUkVBVEUgQ09OU1RSQUlOVCBUUklHR0VSIGlzIG5vdCBzdXBw b3J0ZWQgaGVyZSBiZWNhdXNlIGl0IGlzIGRlc2lnbmVkCkBAIC0xNjkwLDcgKzE3MDIsNyBA QCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5k KQogCQkiXFxjb25uZWN0IiwgIlxcY29ubmluZm8iLCAiXFxDIiwgIlxcY2QiLCAiXFxjb3B5 IiwKIAkJIlxcY29weXJpZ2h0IiwgIlxcY3Jvc3N0YWJ2aWV3IiwKIAkJIlxcZCIsICJcXGRh IiwgIlxcZEEiLCAiXFxkQWMiLCAiXFxkQWYiLCAiXFxkQW8iLCAiXFxkQXAiLAotCQkiXFxk YiIsICJcXGRjIiwgIlxcZGNvbmZpZyIsICJcXGRDIiwgIlxcZGQiLCAiXFxkZHAiLCAiXFxk RCIsCisJCSJcXGRiIiwgIlxcZGMiLCAiXFxkY2VrIiwgIlxcZGNtayIsICJcXGRjb25maWci LCAiXFxkQyIsICJcXGRkIiwgIlxcZGRwIiwgIlxcZEQiLAogCQkiXFxkZXMiLCAiXFxkZXQi LCAiXFxkZXUiLCAiXFxkZXciLCAiXFxkRSIsICJcXGRmIiwKIAkJIlxcZEYiLCAiXFxkRmQi LCAiXFxkRnAiLCAiXFxkRnQiLCAiXFxkZyIsICJcXGRpIiwgIlxcZGwiLCAiXFxkTCIsCiAJ CSJcXGRtIiwgIlxcZG4iLCAiXFxkbyIsICJcXGRPIiwgIlxcZHAiLCAiXFxkUCIsICJcXGRQ aSIsICJcXGRQdCIsCkBAIC0xOTA3LDYgKzE5MTksMjIgQEAgcHNxbF9jb21wbGV0aW9uKGNv bnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAllbHNlIGlmIChNYXRjaGVz KCJBTFRFUiIsICJDT0xMQVRJT04iLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9X TkVSIFRPIiwgIlJFRlJFU0ggVkVSU0lPTiIsICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVNQSIp OwogCisJLyogQUxURVIvRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgKi8KKwllbHNlIGlm IChNYXRjaGVzKCJBTFRFUnxEUk9QIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OIiwgIktFWSIp KQorCQlDT01QTEVURV9XSVRIX1ZFUlNJT05FRF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9j ZWtzKTsKKworCS8qIEFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAqLworCWVsc2UgaWYg KE1hdGNoZXMoIkFMVEVSIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OIiwgIktFWSIsIE1hdGNo QW55KSkKKwkJQ09NUExFVEVfV0lUSCgiQUREIFZBTFVFICgiLCAiRFJPUCBWQUxVRSAoIiwg Ik9XTkVSIFRPIiwgIlJFTkFNRSBUTyIpOworCisJLyogQUxURVIvRFJPUCBDT0xVTU4gTUFT VEVSIEtFWSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSfERST1AiLCAiQ09MVU1OIiwg Ik1BU1RFUiIsICJLRVkiKSkKKwkJQ09NUExFVEVfV0lUSF9WRVJTSU9ORURfUVVFUlkoUXVl cnlfZm9yX2xpc3Rfb2ZfY21rcyk7CisKKwkvKiBBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSAq LworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIkNPTFVNTiIsICJNQVNURVIiLCAiS0VZ IiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCIoIiwgIk9XTkVSIFRPIiwgIlJFTkFN RSBUTyIpOworCiAJLyogQUxURVIgQ09OVkVSU0lPTiA8bmFtZT4gKi8KIAllbHNlIGlmIChN YXRjaGVzKCJBTFRFUiIsICJDT05WRVJTSU9OIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9X SVRIKCJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVNQSIpOwpAQCAtMjgyOCw2 ICsyODU2LDI2IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3Rh cnQsIGludCBlbmQpCiAJCQlDT01QTEVURV9XSVRIKCJ0cnVlIiwgImZhbHNlIik7CiAJfQog CisJLyogQ1JFQVRFL0FMVEVSL0RST1AgQ09MVU1OIC4uLiBLRVkgKi8KKwllbHNlIGlmIChN YXRjaGVzKCJDUkVBVEV8QUxURVJ8RFJPUCIsICJDT0xVTU4iKSkKKwkJQ09NUExFVEVfV0lU SCgiRU5DUllQVElPTiIsICJNQVNURVIiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEV8 QUxURVJ8RFJPUCIsICJDT0xVTU4iLCAiRU5DUllQVElPTnxNQVNURVIiKSkKKwkJQ09NUExF VEVfV0lUSCgiS0VZIik7CisKKwkvKiBDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZICov CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OIiwg IktFWSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiV0lUSCIpOworCWVsc2UgaWYg KE1hdGNoZXMoIkNSRUFURSIsICJDT0xVTU4iLCAiRU5DUllQVElPTiIsICJLRVkiLCBNYXRj aEFueSwgIldJVEgiKSkKKwkJQ09NUExFVEVfV0lUSCgiVkFMVUVTIik7CisJZWxzZSBpZiAo TWF0Y2hlcygiQ1JFQVRFIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OIiwgIktFWSIsIE1hdGNo QW55LCAiV0lUSCIsICJWQUxVRVMiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCIpOworCisJLyog Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRF IiwgIkNPTFVNTiIsICJNQVNURVIiLCAiS0VZIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9X SVRIKCJXSVRIIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkNPTFVNTiIsICJN QVNURVIiLCAiS0VZIiwgTWF0Y2hBbnksICJXSVRIIikpCisJCUNPTVBMRVRFX1dJVEgoIigi KTsKKwogCS8qIENSRUFURSBEQVRBQkFTRSAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJEQVRBQkFTRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiT1dORVIiLCAi VEVNUExBVEUiLCAiRU5DT0RJTkciLCAiVEFCTEVTUEFDRSIsCkBAIC0zNTUzLDYgKzM2MDEs NyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQg ZW5kKQogCQkJIE1hdGNoZXMoIkRST1AiLCAiQUNDRVNTIiwgIk1FVEhPRCIsIE1hdGNoQW55 KSB8fAogCQkJIChNYXRjaGVzKCJEUk9QIiwgIkFHR1JFR0FURXxGVU5DVElPTnxQUk9DRURV UkV8Uk9VVElORSIsIE1hdGNoQW55LCBNYXRjaEFueSkgJiYKIAkJCSAgZW5kc193aXRoKHBy ZXZfd2QsICcpJykpIHx8CisJCQkgTWF0Y2hlcygiRFJPUCIsICJDT0xVTU4iLCAiRU5DUllQ VElPTnxNQVNURVIiLCAiS0VZIiwgTWF0Y2hBbnkpIHx8CiAJCQkgTWF0Y2hlcygiRFJPUCIs ICJFVkVOVCIsICJUUklHR0VSIiwgTWF0Y2hBbnkpIHx8CiAJCQkgTWF0Y2hlcygiRFJPUCIs ICJGT1JFSUdOIiwgIkRBVEEiLCAiV1JBUFBFUiIsIE1hdGNoQW55KSB8fAogCQkJIE1hdGNo ZXMoIkRST1AiLCAiRk9SRUlHTiIsICJUQUJMRSIsIE1hdGNoQW55KSB8fApkaWZmIC0tZ2l0 IGEvc3JjL2NvbW1vbi9NYWtlZmlsZSBiL3NyYy9jb21tb24vTWFrZWZpbGUKaW5kZXggZTlh ZjczNDZjOS4uOTlkOWUzOWQzZCAxMDA2NDQKLS0tIGEvc3JjL2NvbW1vbi9NYWtlZmlsZQor KysgYi9zcmMvY29tbW9uL01ha2VmaWxlCkBAIC00OSw2ICs0OSw3IEBAIE9CSlNfQ09NTU9O ID0gXAogCWFyY2hpdmUubyBcCiAJYmFzZTY0Lm8gXAogCWNoZWNrc3VtX2hlbHBlci5vIFwK Kwljb2xlbmMubyBcCiAJY29tcHJlc3Npb24ubyBcCiAJY29uZmlnX2luZm8ubyBcCiAJY29u dHJvbGRhdGFfdXRpbHMubyBcCmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL2NvbGVuYy5jIGIv c3JjL2NvbW1vbi9jb2xlbmMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi44NmM3MzU4NzhlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbW1vbi9jb2xlbmMu YwpAQCAtMCwwICsxLDEwNCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogY29s ZW5jLmMKKyAqCisgKiBTaGFyZWQgY29kZSBmb3IgY29sdW1uIGVuY3J5cHRpb24gYWxnb3Jp dGhtcy4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMywgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBJREVOVElGSUNBVElPTgor ICoJCSAgc3JjL2NvbW1vbi9jb2xlbmMuYworICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8K KworI2lmbmRlZiBGUk9OVEVORAorI2luY2x1ZGUgInBvc3RncmVzLmgiCisjZWxzZQorI2lu Y2x1ZGUgInBvc3RncmVzX2ZlLmgiCisjZW5kaWYKKworI2luY2x1ZGUgImNvbW1vbi9jb2xl bmMuaCIKKworaW50CitnZXRfY21rYWxnX251bShjb25zdCBjaGFyICpuYW1lKQoreworCWlm IChzdHJjbXAobmFtZSwgInVuc3BlY2lmaWVkIikgPT0gMCkKKwkJcmV0dXJuIFBHX0NNS19V TlNQRUNJRklFRDsKKwllbHNlIGlmIChzdHJjbXAobmFtZSwgIlJTQUVTX09BRVBfU0hBXzEi KSA9PSAwKQorCQlyZXR1cm4gUEdfQ01LX1JTQUVTX09BRVBfU0hBXzE7CisJZWxzZSBpZiAo c3RyY21wKG5hbWUsICJSU0FFU19PQUVQX1NIQV8yNTYiKSA9PSAwKQorCQlyZXR1cm4gUEdf Q01LX1JTQUVTX09BRVBfU0hBXzI1NjsKKwllbHNlCisJCXJldHVybiAwOworfQorCitjb25z dCBjaGFyICoKK2dldF9jbWthbGdfbmFtZShpbnQgbnVtKQoreworCXN3aXRjaCAobnVtKQor CXsKKwkJY2FzZSBQR19DTUtfVU5TUEVDSUZJRUQ6CisJCQlyZXR1cm4gInVuc3BlY2lmaWVk IjsKKwkJY2FzZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMToKKwkJCXJldHVybiAiUlNBRVNf T0FFUF9TSEFfMSI7CisJCWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NjoKKwkJCXJl dHVybiAiUlNBRVNfT0FFUF9TSEFfMjU2IjsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKwor LyoKKyAqIEpTT04gV2ViIEFsZ29yaXRobXMgKEpXQSkgbmFtZXMgKFJGQyA3NTE4KQorICoK KyAqIFRoaXMgaXMgdXNlZnVsIGZvciBzb21lIGtleSBtYW5hZ2VtZW50IHN5c3RlbXMgdGhh dCB1c2UgdGhlc2UgbmFtZXMKKyAqIG5hdGl2ZWx5LgorICovCitjb25zdCBjaGFyICoKK2dl dF9jbWthbGdfandhX25hbWUoaW50IG51bSkKK3sKKwlzd2l0Y2ggKG51bSkKKwl7CisJCWNh c2UgUEdfQ01LX1VOU1BFQ0lGSUVEOgorCQkJcmV0dXJuIE5VTEw7CisJCWNhc2UgUEdfQ01L X1JTQUVTX09BRVBfU0hBXzE6CisJCQlyZXR1cm4gIlJTQS1PQUVQIjsKKwkJY2FzZSBQR19D TUtfUlNBRVNfT0FFUF9TSEFfMjU2OgorCQkJcmV0dXJuICJSU0EtT0FFUC0yNTYiOworCX0K KworCXJldHVybiBOVUxMOworfQorCitpbnQKK2dldF9jZWthbGdfbnVtKGNvbnN0IGNoYXIg Km5hbWUpCit7CisJaWYgKHN0cmNtcChuYW1lLCAiQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NI QV8yNTYiKSA9PSAwKQorCQlyZXR1cm4gUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1BQ19T SEFfMjU2OworCWVsc2UgaWYgKHN0cmNtcChuYW1lLCAiQUVBRF9BRVNfMTkyX0NCQ19ITUFD X1NIQV8zODQiKSA9PSAwKQorCQlyZXR1cm4gUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNfSE1B Q19TSEFfMzg0OworCWVsc2UgaWYgKHN0cmNtcChuYW1lLCAiQUVBRF9BRVNfMjU2X0NCQ19I TUFDX1NIQV8zODQiKSA9PSAwKQorCQlyZXR1cm4gUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNf SE1BQ19TSEFfMzg0OworCWVsc2UgaWYgKHN0cmNtcChuYW1lLCAiQUVBRF9BRVNfMjU2X0NC Q19ITUFDX1NIQV81MTIiKSA9PSAwKQorCQlyZXR1cm4gUEdfQ0VLX0FFQURfQUVTXzI1Nl9D QkNfSE1BQ19TSEFfNTEyOworCWVsc2UKKwkJcmV0dXJuIDA7Cit9CisKK2NvbnN0IGNoYXIg KgorZ2V0X2Nla2FsZ19uYW1lKGludCBudW0pCit7CisJc3dpdGNoIChudW0pCisJeworCQlj YXNlIFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjoKKwkJCXJldHVybiAi QUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTYiOworCQljYXNlIFBHX0NFS19BRUFEX0FF U18xOTJfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJCXJldHVybiAiQUVBRF9BRVNfMTkyX0NCQ19I TUFDX1NIQV8zODQiOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hB XzM4NDoKKwkJCXJldHVybiAiQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQiOworCQlj YXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjoKKwkJCXJldHVybiAi QUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTIiOworCX0KKworCXJldHVybiBOVUxMOwor fQpkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9tZXNvbi5idWlsZCBiL3NyYy9jb21tb24vbWVz b24uYnVpbGQKaW5kZXggZjY5ZDc1ZTljNi4uZWQwOTM2MGQ0MCAxMDA2NDQKLS0tIGEvc3Jj L2NvbW1vbi9tZXNvbi5idWlsZAorKysgYi9zcmMvY29tbW9uL21lc29uLmJ1aWxkCkBAIC0y LDYgKzIsNyBAQCBjb21tb25fc291cmNlcyA9IGZpbGVzKAogICAnYXJjaGl2ZS5jJywKICAg J2Jhc2U2NC5jJywKICAgJ2NoZWNrc3VtX2hlbHBlci5jJywKKyAgJ2NvbGVuYy5jJywKICAg J2NvbXByZXNzaW9uLmMnLAogICAnY29udHJvbGRhdGFfdXRpbHMuYycsCiAgICdlbmNuYW1l cy5jJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9wcmludHR1cC5oIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL3ByaW50dHVwLmgKaW5kZXggOTcxYTc0Y2YyMi4uZGIxZjNiODgx MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3ByaW50dHVwLmgKKysrIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL3ByaW50dHVwLmgKQEAgLTIwLDYgKzIwLDggQEAgZXh0ZXJuIERl c3RSZWNlaXZlciAqcHJpbnR0dXBfY3JlYXRlX0RSKENvbW1hbmREZXN0IGRlc3QpOwogCiBl eHRlcm4gdm9pZCBTZXRSZW1vdGVEZXN0UmVjZWl2ZXJQYXJhbXMoRGVzdFJlY2VpdmVyICpz ZWxmLCBQb3J0YWwgcG9ydGFsKTsKIAorZXh0ZXJuIHZvaWQgTWF5YmVTZW5kQ29sdW1uRW5j cnlwdGlvbktleU1lc3NhZ2UoT2lkIGF0dGNlayk7CisKIGV4dGVybiB2b2lkIFNlbmRSb3dE ZXNjcmlwdGlvbk1lc3NhZ2UoU3RyaW5nSW5mbyBidWYsCiAJCQkJCQkJCQkgIFR1cGxlRGVz YyB0eXBlaW5mbywgTGlzdCAqdGFyZ2V0bGlzdCwgaW50MTYgKmZvcm1hdHMpOwogCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2RlcGVuZGVuY3kuaCBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvZGVwZW5kZW5jeS5oCmluZGV4IDk4YTFhODQyODkuLjFhMmE4MTc3ZDEgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5kZW5jeS5oCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvZGVwZW5kZW5jeS5oCkBAIC05Miw2ICs5Miw5IEBAIHR5cGVkZWYg ZW51bSBPYmplY3RDbGFzcwogCU9DTEFTU19UWVBFLAkJCQkvKiBwZ190eXBlICovCiAJT0NM QVNTX0NBU1QsCQkJCS8qIHBnX2Nhc3QgKi8KIAlPQ0xBU1NfQ09MTEFUSU9OLAkJCS8qIHBn X2NvbGxhdGlvbiAqLworCU9DTEFTU19DRUssCQkJCQkvKiBwZ19jb2xlbmNrZXkgKi8KKwlP Q0xBU1NfQ0VLREFUQSwJCQkJLyogcGdfY29sZW5ja2V5ZGF0YSAqLworCU9DTEFTU19DTUss CQkJCQkvKiBwZ19jb2xtYXN0ZXJrZXkgKi8KIAlPQ0xBU1NfQ09OU1RSQUlOVCwJCQkvKiBw Z19jb25zdHJhaW50ICovCiAJT0NMQVNTX0NPTlZFUlNJT04sCQkJLyogcGdfY29udmVyc2lv biAqLwogCU9DTEFTU19ERUZBVUxULAkJCQkvKiBwZ19hdHRyZGVmICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9tZXNvbi5idWlsZAppbmRleCA0NWZmYTk5NjkyLi5mM2EwYjFjZWU5IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvbWVzb24uYnVpbGQKQEAgLTYzLDYgKzYzLDkgQEAgY2F0YWxvZ19oZWFkZXJzID0g WwogICAncGdfcHVibGljYXRpb25fcmVsLmgnLAogICAncGdfc3Vic2NyaXB0aW9uLmgnLAog ICAncGdfc3Vic2NyaXB0aW9uX3JlbC5oJywKKyAgJ3BnX2NvbG1hc3RlcmtleS5oJywKKyAg J3BnX2NvbGVuY2tleS5oJywKKyAgJ3BnX2NvbGVuY2tleWRhdGEuaCcsCiBdCiAKIGJraV9k YXRhID0gWwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQKaW5kZXggNjFjZDU5MTQzMC4uYTBi ZDcwODEzMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdAor KysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ftb3AuZGF0CkBAIC0xMDI4LDYgKzEwMjgs MTEgQEAKICAgYW1vcHJpZ2h0dHlwZSA9PiAnYnl0ZWEnLCBhbW9wc3RyYXRlZ3kgPT4gJzEn LCBhbW9wb3ByID0+ICc9KGJ5dGVhLGJ5dGVhKScsCiAgIGFtb3BtZXRob2QgPT4gJ2hhc2gn IH0sCiAKKyMgcGdfZW5jcnlwdGVkX2RldF9vcHMKK3sgYW1vcGZhbWlseSA9PiAnaGFzaC9w Z19lbmNyeXB0ZWRfZGV0X29wcycsIGFtb3BsZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2Rl dCcsCisgIGFtb3ByaWdodHR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBhbW9wc3RyYXRl Z3kgPT4gJzEnLCBhbW9wb3ByID0+ICc9KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVk X2RldCknLAorICBhbW9wbWV0aG9kID0+ICdoYXNoJyB9LAorCiAjIHhpZF9vcHMKIHsgYW1v cGZhbWlseSA9PiAnaGFzaC94aWRfb3BzJywgYW1vcGxlZnR0eXBlID0+ICd4aWQnLCBhbW9w cmlnaHR0eXBlID0+ICd4aWQnLAogICBhbW9wc3RyYXRlZ3kgPT4gJzEnLCBhbW9wb3ByID0+ ICc9KHhpZCx4aWQpJywgYW1vcG1ldGhvZCA9PiAnaGFzaCcgfSwKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfYW1wcm9jLmRhdAppbmRleCA0Y2MxMjliZWJkLi5kZGRiMjcxMTNmIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19hbXByb2MuZGF0CkBAIC00MDIsNiArNDAyLDExIEBACiB7IGFtcHJvY2Zh bWlseSA9PiAnaGFzaC9ieXRlYV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYnl0ZWEnLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ2J5dGVhJywgYW1wcm9jbnVtID0+ICcyJywKICAgYW1w cm9jID0+ICdoYXNodmFybGVuYWV4dGVuZGVkJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2hh c2gvcGdfZW5jcnlwdGVkX2RldF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncGdfZW5jcnlw dGVkX2RldCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIGFt cHJvY251bSA9PiAnMScsIGFtcHJvYyA9PiAnaGFzaHZhcmxlbmEnIH0sCit7IGFtcHJvY2Zh bWlseSA9PiAnaGFzaC9wZ19lbmNyeXB0ZWRfZGV0X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICdwZ19lbmNyeXB0ZWRfZGV0JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdwZ19lbmNyeXB0 ZWRfZGV0JywgYW1wcm9jbnVtID0+ICcyJywKKyAgYW1wcm9jID0+ICdoYXNodmFybGVuYWV4 dGVuZGVkJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gveGlkX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICd4aWQnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3hpZCcsIGFtcHJvY251 bSA9PiAnMScsIGFtcHJvYyA9PiAnaGFzaGludDQnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAn aGFzaC94aWRfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3hpZCcsCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19hdHRyaWJ1dGUuaAppbmRleCAwNTMyOTRjOTlmLi40NzQxYjIyODE0IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKQEAgLTE2NCw2ICsxNjQsMTUgQEAgQ0FUQUxP RyhwZ19hdHRyaWJ1dGUsMTI0OSxBdHRyaWJ1dGVSZWxhdGlvbklkKSBCS0lfQk9PVFNUUkFQ IEJLSV9ST1dUWVBFX09JRCg3NSwKIAkgKi8KIAlib29sCQlhdHRpc2xvY2FsIEJLSV9ERUZB VUxUKHQpOwogCisJLyogY29sdW1uIGVuY3J5cHRpb24ga2V5ICovCisJT2lkCQkJYXR0Y2Vr IEJLSV9ERUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX2NvbGVuY2tleSk7CisKKwkvKiBy ZWFsIHR5cGUgaWYgZW5jcnlwdGVkICovCisJT2lkCQkJYXR0cmVhbHR5cGlkIEJLSV9ERUZB VUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX3R5cGUpOworCisJLyogZW5jcnlwdGlvbiBhbGdv cml0aG0gKFBHX0NFS18qIHZhbHVlcykgKi8KKwlpbnQzMgkJYXR0ZW5jYWxnIEJLSV9ERUZB VUxUKDApOworCiAJLyogTnVtYmVyIG9mIHRpbWVzIGluaGVyaXRlZCBmcm9tIGRpcmVjdCBw YXJlbnQgcmVsYXRpb24ocykgKi8KIAlpbnQzMgkJYXR0aW5oY291bnQgQktJX0RFRkFVTFQo MCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5Lmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5oCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQ4YzYwNWRiYzcKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8q LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX2NvbGVuY2tleS5oCisgKgkgIGRlZmlu aXRpb24gb2YgdGhlICJjb2x1bW4gZW5jcnlwdGlvbiBrZXkiIHN5c3RlbSBjYXRhbG9nCisg KgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjMsIFBvc3RncmVTUUwgR2xv YmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQs IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY29sZW5rZXkuaAorICoKKyAqIE5PVEVTCisgKgkgIFRoZSBD YXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2ZXMgc2NoZW1hCisg KgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZu ZGVmIFBHX0NPTEVOQ0tFWV9ICisjZGVmaW5lIFBHX0NPTEVOQ0tFWV9ICisKKyNpbmNsdWRl ICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5X2Qu aCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBnX2NvbGVuY2tleSBkZWZpbml0aW9u LiBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdf Y29sZW5ja2V5CisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfY29sZW5j a2V5LDgyMzQsQ29sdW1uRW5jS2V5UmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CisJTmFt ZURhdGEJY2VrbmFtZTsKKwlPaWQJCQljZWtvd25lciBCS0lfTE9PS1VQKHBnX2F1dGhpZCk7 Cit9IEZvcm1EYXRhX3BnX2NvbGVuY2tleTsKKwordHlwZWRlZiBGb3JtRGF0YV9wZ19jb2xl bmNrZXkgKkZvcm1fcGdfY29sZW5ja2V5OworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZ KHBnX2NvbGVuY2tleV9vaWRfaW5kZXgsIDgyNDAsIENvbHVtbkVuY0tleU9pZEluZGV4SWQs IG9uIHBnX2NvbGVuY2tleSB1c2luZyBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9V TklRVUVfSU5ERVgocGdfY29sZW5ja2V5X2Nla25hbWVfaW5kZXgsIDgyNDIsIENvbHVtbkVu Y0tleU5hbWVJbmRleElkLCBvbiBwZ19jb2xlbmNrZXkgdXNpbmcgYnRyZWUoY2VrbmFtZSBu YW1lX29wcykpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY29sZW5ja2V5ZGF0YS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXlk YXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzg4ZTdlNjVh ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5 ZGF0YS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAq IHBnX2NvbGVuY2tleWRhdGEuaAorICoJICBkZWZpbml0aW9uIG9mIHRoZSAiY29sdW1uIGVu Y3J5cHRpb24ga2V5IGRhdGEiIHN5c3RlbSBjYXRhbG9nCisgKgorICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk2LTIwMjMsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVu aXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdf Y29sZW5rZXlkYXRhLmgKKyAqCisgKiBOT1RFUworICoJICBUaGUgQ2F0YWxvZy5wbSBtb2R1 bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVtYQorICoJICBpbmZvcm1hdGlv bi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQR19DT0xFTkNL RVlEQVRBX0gKKyNkZWZpbmUgUEdfQ09MRU5DS0VZREFUQV9ICisKKyNpbmNsdWRlICJjYXRh bG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YV9kLmgi CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ19jb2xlbmNrZXlkYXRhIGRlZmluaXRp b24uIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9w Z19jb2xlbmNrZXlkYXRhCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdf Y29sZW5ja2V5ZGF0YSw4MjUwLENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkKQoreworCU9p ZAkJCW9pZDsKKwlPaWQJCQlja2RjZWtpZCBCS0lfTE9PS1VQKHBnX2NvbGVuY2tleSk7CisJ T2lkCQkJY2tkY21raWQgQktJX0xPT0tVUChwZ19jb2xtYXN0ZXJrZXkpOworCWludDMyCQlj a2RjbWthbGc7CQkvKiBQR19DTUtfKiB2YWx1ZXMgKi8KKyNpZmRlZiBDQVRBTE9HX1ZBUkxF TgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLworCWJ5dGVhCQlj a2RlbmN2YWwgQktJX0ZPUkNFX05PVF9OVUxMOworI2VuZGlmCit9IEZvcm1EYXRhX3BnX2Nv bGVuY2tleWRhdGE7CisKK3R5cGVkZWYgRm9ybURhdGFfcGdfY29sZW5ja2V5ZGF0YSAqRm9y bV9wZ19jb2xlbmNrZXlkYXRhOworCitERUNMQVJFX1RPQVNUKHBnX2NvbGVuY2tleWRhdGEs IDgyMzcsIDgyMzgpOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX2NvbGVuY2tl eWRhdGFfb2lkX2luZGV4LCA4MjUxLCBDb2x1bW5FbmNLZXlEYXRhT2lkSW5kZXhJZCwgb24g cGdfY29sZW5ja2V5ZGF0YSB1c2luZyBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9V TklRVUVfSU5ERVgocGdfY29sZW5ja2V5ZGF0YV9ja2RjZWtpZF9ja2RjbWtpZF9pbmRleCwg ODI1MiwgQ29sdW1uRW5jS2V5Q2VraWRDbWtpZEluZGV4SWQsIG9uIHBnX2NvbGVuY2tleWRh dGEgdXNpbmcgYnRyZWUoY2tkY2VraWQgb2lkX29wcywgY2tkY21raWQgb2lkX29wcykpOwor CisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbWFzdGVy a2V5LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBkMjQ4ZGEwYTQKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oCkBAIC0wLDAg KzEsNDUgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX2NvbG1hc3Rlcmtl eS5oCisgKgkgIGRlZmluaXRpb24gb2YgdGhlICJjb2x1bW4gbWFzdGVyIGtleSIgc3lzdGVt IGNhdGFsb2cKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMywgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisg KgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaAorICoKKyAqIE5P VEVTCisgKgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRl cml2ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICovCisjaWZuZGVmIFBHX0NPTE1BU1RFUktFWV9ICisjZGVmaW5lIFBHX0NPTE1B U1RFUktFWV9ICisKKyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfY29sbWFzdGVya2V5X2QuaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJ CXBnX2NvbG1hc3RlcmtleSBkZWZpbml0aW9uLiBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJ dHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfY29sbWFzdGVya2V5CisgKiAtLS0tLS0tLS0t LS0tLS0tCisgKi8KK0NBVEFMT0cocGdfY29sbWFzdGVya2V5LDgyMzMsQ29sdW1uTWFzdGVy S2V5UmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CisJTmFtZURhdGEJY21rbmFtZTsKKwlP aWQJCQljbWtvd25lciBCS0lfTE9PS1VQKHBnX2F1dGhpZCk7CisjaWZkZWYgQ0FUQUxPR19W QVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KKwl0ZXh0 CQljbWtyZWFsbSBCS0lfRk9SQ0VfTk9UX05VTEw7CisjZW5kaWYKK30gRm9ybURhdGFfcGdf Y29sbWFzdGVya2V5OworCit0eXBlZGVmIEZvcm1EYXRhX3BnX2NvbG1hc3RlcmtleSAqRm9y bV9wZ19jb2xtYXN0ZXJrZXk7CisKK0RFQ0xBUkVfVE9BU1QocGdfY29sbWFzdGVya2V5LCA4 MjM1LCA4MjM2KTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19jb2xtYXN0ZXJr ZXlfb2lkX2luZGV4LCA4MjM5LCBDb2x1bW5NYXN0ZXJLZXlPaWRJbmRleElkLCBvbiBwZ19j b2xtYXN0ZXJrZXkgdXNpbmcgYnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVF X0lOREVYKHBnX2NvbG1hc3RlcmtleV9jbWtuYW1lX2luZGV4LCA4MjQxLCBDb2x1bW5NYXN0 ZXJLZXlOYW1lSW5kZXhJZCwgb24gcGdfY29sbWFzdGVya2V5IHVzaW5nIGJ0cmVlKGNta25h bWUgbmFtZV9vcHMpKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX29wY2xhc3MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmRh dAppbmRleCBkYmNhZTdmZmRkLi4wY2E0MDFmZmU0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf b3BjbGFzcy5kYXQKQEAgLTE2Niw2ICsxNjYsOCBAQAogICBvcGNpbnR5cGUgPT4gJ2Jvb2wn IH0sCiB7IG9wY21ldGhvZCA9PiAnaGFzaCcsIG9wY25hbWUgPT4gJ2J5dGVhX29wcycsIG9w Y2ZhbWlseSA9PiAnaGFzaC9ieXRlYV9vcHMnLAogICBvcGNpbnR5cGUgPT4gJ2J5dGVhJyB9 LAoreyBvcGNtZXRob2QgPT4gJ2hhc2gnLCBvcGNuYW1lID0+ICdwZ19lbmNyeXB0ZWRfZGV0 X29wcycsIG9wY2ZhbWlseSA9PiAnaGFzaC9wZ19lbmNyeXB0ZWRfZGV0X29wcycsCisgIG9w Y2ludHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcgfSwKIHsgb3BjbWV0aG9kID0+ICdidHJl ZScsIG9wY25hbWUgPT4gJ3RpZF9vcHMnLCBvcGNmYW1pbHkgPT4gJ2J0cmVlL3RpZF9vcHMn LAogICBvcGNpbnR5cGUgPT4gJ3RpZCcgfSwKIHsgb3BjbWV0aG9kID0+ICdoYXNoJywgb3Bj bmFtZSA9PiAneGlkX29wcycsIG9wY2ZhbWlseSA9PiAnaGFzaC94aWRfb3BzJywKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0IGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQKaW5kZXggYmM1ZjgyMTNmMy4uNDczN2E3Zjll ZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQKKysr IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQKQEAgLTM0NTgsNCArMzQ1 OCwxNCBAQAogICBvcHJjb2RlID0+ICdtdWx0aXJhbmdlX2FmdGVyX211bHRpcmFuZ2UnLCBv cHJyZXN0ID0+ICdtdWx0aXJhbmdlc2VsJywKICAgb3Byam9pbiA9PiAnc2NhbGFyZ3Rqb2lu c2VsJyB9LAogCit7IG9pZCA9PiAnODI0NycsIGRlc2NyID0+ICdlcXVhbCcsCisgIG9wcm5h bWUgPT4gJz0nLCBvcHJjYW5tZXJnZSA9PiAnZicsIG9wcmNhbmhhc2ggPT4gJ3QnLCBvcHJs ZWZ0ID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywKKyAgb3BycmlnaHQgPT4gJ3BnX2VuY3J5cHRl ZF9kZXQnLCBvcHJyZXN1bHQgPT4gJ2Jvb2wnLCBvcHJjb20gPT4gJz0ocGdfZW5jcnlwdGVk X2RldCxwZ19lbmNyeXB0ZWRfZGV0KScsCisgIG9wcm5lZ2F0ZSA9PiAnPD4ocGdfZW5jcnlw dGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KScsIG9wcmNvZGUgPT4gJ3BnX2VuY3J5cHRlZF9k ZXRfZXEnLCBvcHJyZXN0ID0+ICdlcXNlbCcsCisgIG9wcmpvaW4gPT4gJ2Vxam9pbnNlbCcg fSwKK3sgb2lkID0+ICc4MjQ4JywgZGVzY3IgPT4gJ25vdCBlcXVhbCcsCisgIG9wcm5hbWUg PT4gJzw+Jywgb3BybGVmdCA9PiAncGdfZW5jcnlwdGVkX2RldCcsIG9wcnJpZ2h0ID0+ICdw Z19lbmNyeXB0ZWRfZGV0Jywgb3BycmVzdWx0ID0+ICdib29sJywKKyAgb3ByY29tID0+ICc8 PihwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpJywgb3BybmVnYXRlID0+ICc9 KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLAorICBvcHJjb2RlID0+ICdw Z19lbmNyeXB0ZWRfZGV0X25lJywgb3BycmVzdCA9PiAnbmVxc2VsJywgb3Byam9pbiA9PiAn bmVxam9pbnNlbCcgfSwKKwogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19vcGZhbWlseS5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5LmRhdApp bmRleCBiM2I2YTdlNjE2Li41MzQzNTgwYjA2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX29wZmFtaWx5LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29w ZmFtaWx5LmRhdApAQCAtMTA4LDYgKzEwOCw4IEBACiAgIG9wZm1ldGhvZCA9PiAnaGFzaCcs IG9wZm5hbWUgPT4gJ2Jvb2xfb3BzJyB9LAogeyBvaWQgPT4gJzIyMjMnLAogICBvcGZtZXRo b2QgPT4gJ2hhc2gnLCBvcGZuYW1lID0+ICdieXRlYV9vcHMnIH0sCit7IG9pZCA9PiAnODI0 OScsCisgIG9wZm1ldGhvZCA9PiAnaGFzaCcsIG9wZm5hbWUgPT4gJ3BnX2VuY3J5cHRlZF9k ZXRfb3BzJyB9LAogeyBvaWQgPT4gJzI3ODknLAogICBvcGZtZXRob2QgPT4gJ2J0cmVlJywg b3BmbmFtZSA9PiAndGlkX29wcycgfSwKIHsgb2lkID0+ICcyMjI1JywKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0CmluZGV4IDk4ZDkwZDkzMzguLjdhNDZhYWIwMjYgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdApAQCAtODA4OSw5ICs4MDg5LDkgQEAKICAgcHJvbmFtZSA9PiAn cGdfcHJlcGFyZWRfc3RhdGVtZW50JywgcHJvcm93cyA9PiAnMTAwMCcsIHByb3JldHNldCA9 PiAndCcsCiAgIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9y ZXR0eXBlID0+ICdyZWNvcmQnLAogICBwcm9hcmd0eXBlcyA9PiAnJywKLSAgcHJvYWxsYXJn dHlwZXMgPT4gJ3t0ZXh0LHRleHQsdGltZXN0YW1wdHosX3JlZ3R5cGUsX3JlZ3R5cGUsYm9v bCxpbnQ4LGludDh9JywKLSAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG99JywK LSAgcHJvYXJnbmFtZXMgPT4gJ3tuYW1lLHN0YXRlbWVudCxwcmVwYXJlX3RpbWUscGFyYW1l dGVyX3R5cGVzLHJlc3VsdF90eXBlcyxmcm9tX3NxbCxnZW5lcmljX3BsYW5zLGN1c3RvbV9w bGFuc30nLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne3RleHQsdGV4dCx0aW1lc3RhbXB0eixf cmVndHlwZSxfcmVnY2xhc3MsX2ludDIsX3JlZ3R5cGUsYm9vbCxpbnQ4LGludDh9JywKKyAg cHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVz ID0+ICd7bmFtZSxzdGF0ZW1lbnQscHJlcGFyZV90aW1lLHBhcmFtZXRlcl90eXBlcyxwYXJh bWV0ZXJfb3JpZ190YWJsZXMscGFyYW1ldGVyX29yaWdfY29sdW1ucyxyZXN1bHRfdHlwZXMs ZnJvbV9zcWwsZ2VuZXJpY19wbGFucyxjdXN0b21fcGxhbnN9JywKICAgcHJvc3JjID0+ICdw Z19wcmVwYXJlZF9zdGF0ZW1lbnQnIH0sCiB7IG9pZCA9PiAnMjUxMScsIGRlc2NyID0+ICdn ZXQgdGhlIG9wZW4gY3Vyc29ycyBmb3IgdGhpcyBzZXNzaW9uJywKICAgcHJvbmFtZSA9PiAn cGdfY3Vyc29yJywgcHJvcm93cyA9PiAnMTAwMCcsIHByb3JldHNldCA9PiAndCcsCkBAIC0x MTg3Niw0ICsxMTg3NiwzNyBAQAogICBwcm9yZXR0eXBlID0+ICdieXRlYScsIHByb2FyZ3R5 cGVzID0+ICdwZ19icmluX21pbm1heF9tdWx0aV9zdW1tYXJ5JywKICAgcHJvc3JjID0+ICdi cmluX21pbm1heF9tdWx0aV9zdW1tYXJ5X3NlbmQnIH0sCiAKK3sgb2lkID0+ICc4MjUzJywg ZGVzY3IgPT4gJ0kvTycsCisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfaW4nLCBw cm9yZXR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywgcHJvYXJndHlwZXMgPT4gJ2NzdHJp bmcnLAorICBwcm9zcmMgPT4gJ3BnX2VuY3J5cHRlZF9pbicgfSwKK3sgb2lkID0+ICc4MjU0 JywgZGVzY3IgPT4gJ0kvTycsCisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfb3V0 JywgcHJvcmV0dHlwZSA9PiAnY3N0cmluZycsIHByb2FyZ3R5cGVzID0+ICdwZ19lbmNyeXB0 ZWRfZGV0JywKKyAgcHJvc3JjID0+ICdwZ19lbmNyeXB0ZWRfb3V0JyB9LAoreyBvaWQgPT4g JzgyNTUnLCBkZXNjciA9PiAnSS9PJywKKyAgcHJvbmFtZSA9PiAncGdfZW5jcnlwdGVkX2Rl dF9yZWN2JywgcHJvcmV0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIHByb2FyZ3R5cGVz ID0+ICdpbnRlcm5hbCcsCisgIHByb3NyYyA9PiAncGdfZW5jcnlwdGVkX3JlY3YnIH0sCit7 IG9pZCA9PiAnODI1NicsIGRlc2NyID0+ICdJL08nLAorICBwcm9uYW1lID0+ICdwZ19lbmNy eXB0ZWRfZGV0X3NlbmQnLCBwcm9yZXR0eXBlID0+ICdieXRlYScsIHByb2FyZ3R5cGVzID0+ ICdwZ19lbmNyeXB0ZWRfZGV0JywKKyAgcHJvc3JjID0+ICdwZ19lbmNyeXB0ZWRfc2VuZCcg fSwKKworeyBvaWQgPT4gJzgyNTcnLCBkZXNjciA9PiAnSS9PJywKKyAgcHJvbmFtZSA9PiAn cGdfZW5jcnlwdGVkX3JuZF9pbicsIHByb3JldHR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9ybmQn LCBwcm9hcmd0eXBlcyA9PiAnY3N0cmluZycsCisgIHByb3NyYyA9PiAncGdfZW5jcnlwdGVk X2luJyB9LAoreyBvaWQgPT4gJzgyNTgnLCBkZXNjciA9PiAnSS9PJywKKyAgcHJvbmFtZSA9 PiAncGdfZW5jcnlwdGVkX3JuZF9vdXQnLCBwcm9yZXR0eXBlID0+ICdjc3RyaW5nJywgcHJv YXJndHlwZXMgPT4gJ3BnX2VuY3J5cHRlZF9ybmQnLAorICBwcm9zcmMgPT4gJ3BnX2VuY3J5 cHRlZF9vdXQnIH0sCit7IG9pZCA9PiAnODI1OScsIGRlc2NyID0+ICdJL08nLAorICBwcm9u YW1lID0+ICdwZ19lbmNyeXB0ZWRfcm5kX3JlY3YnLCBwcm9yZXR0eXBlID0+ICdwZ19lbmNy eXB0ZWRfcm5kJywgcHJvYXJndHlwZXMgPT4gJ2ludGVybmFsJywKKyAgcHJvc3JjID0+ICdw Z19lbmNyeXB0ZWRfcmVjdicgfSwKK3sgb2lkID0+ICc4MjYwJywgZGVzY3IgPT4gJ0kvTycs CisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9ybmRfc2VuZCcsIHByb3JldHR5cGUgPT4g J2J5dGVhJywgcHJvYXJndHlwZXMgPT4gJ3BnX2VuY3J5cHRlZF9ybmQnLAorICBwcm9zcmMg PT4gJ3BnX2VuY3J5cHRlZF9zZW5kJyB9LAorCit7IG9pZCA9PiAnODI0NScsCisgIHByb25h bWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfZXEnLCBwcm9sZWFrcHJvb2YgPT4gJ3QnLCBwcm9y ZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ3BnX2VuY3J5cHRlZF9kZXQg cGdfZW5jcnlwdGVkX2RldCcsIHByb3NyYyA9PiAnYnl0ZWFlcScgfSwKK3sgb2lkID0+ICc4 MjQ2JywKKyAgcHJvbmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldF9uZScsIHByb2xlYWtwcm9v ZiA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAncGdf ZW5jcnlwdGVkX2RldCBwZ19lbmNyeXB0ZWRfZGV0JywgcHJvc3JjID0+ICdieXRlYW5lJyB9 LAorCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuZGF0IGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmRhdAppbmRleCAwNzYzZGZkZTM5Li40NjJh ZGM1YjIxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuZGF0Cisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQKQEAgLTY5Miw0ICs2OTIsMTYg QEAKICAgdHlwcmVjZWl2ZSA9PiAnYnJpbl9taW5tYXhfbXVsdGlfc3VtbWFyeV9yZWN2JywK ICAgdHlwc2VuZCA9PiAnYnJpbl9taW5tYXhfbXVsdGlfc3VtbWFyeV9zZW5kJywgdHlwYWxp Z24gPT4gJ2knLAogICB0eXBzdG9yYWdlID0+ICd4JywgdHlwY29sbGF0aW9uID0+ICdkZWZh dWx0JyB9LAorCit7IG9pZCA9PiAnODI0MycsIGRlc2NyID0+ICdlbmNyeXB0ZWQgY29sdW1u IChkZXRlcm1pbmlzdGljKScsCisgIHR5cG5hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCB0 eXBsZW4gPT4gJy0xJywgdHlwYnl2YWwgPT4gJ2YnLCB0eXB0eXBlID0+ICdiJywKKyAgdHlw Y2F0ZWdvcnkgPT4gJ1knLCB0eXBpbnB1dCA9PiAncGdfZW5jcnlwdGVkX2RldF9pbicsIHR5 cG91dHB1dCA9PiAncGdfZW5jcnlwdGVkX2RldF9vdXQnLAorICB0eXByZWNlaXZlID0+ICdw Z19lbmNyeXB0ZWRfZGV0X3JlY3YnLCB0eXBzZW5kID0+ICdwZ19lbmNyeXB0ZWRfZGV0X3Nl bmQnLCB0eXBhbGlnbiA9PiAnaScsCisgIHR5cHN0b3JhZ2UgPT4gJ2UnIH0sCit7IG9pZCA9 PiAnODI0NCcsIGRlc2NyID0+ICdlbmNyeXB0ZWQgY29sdW1uIChyYW5kb21pemVkKScsCisg IHR5cG5hbWUgPT4gJ3BnX2VuY3J5cHRlZF9ybmQnLCB0eXBsZW4gPT4gJy0xJywgdHlwYnl2 YWwgPT4gJ2YnLCB0eXB0eXBlID0+ICdiJywKKyAgdHlwY2F0ZWdvcnkgPT4gJ1knLCB0eXBp bnB1dCA9PiAncGdfZW5jcnlwdGVkX3JuZF9pbicsIHR5cG91dHB1dCA9PiAncGdfZW5jcnlw dGVkX3JuZF9vdXQnLAorICB0eXByZWNlaXZlID0+ICdwZ19lbmNyeXB0ZWRfcm5kX3JlY3Yn LCB0eXBzZW5kID0+ICdwZ19lbmNyeXB0ZWRfcm5kX3NlbmQnLCB0eXBhbGlnbiA9PiAnaScs CisgIHR5cHN0b3JhZ2UgPT4gJ2UnIH0sCisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfdHlwZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmgKaW5k ZXggNDhhMjU1OTEzNy4uYzFkMzA5MDNiNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ190eXBlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmgKQEAg LTI5NCw2ICsyOTQsNyBAQCBERUNMQVJFX1VOSVFVRV9JTkRFWChwZ190eXBlX3R5cG5hbWVf bnNwX2luZGV4LCAyNzA0LCBUeXBlTmFtZU5zcEluZGV4SWQsIG9uIHBnXwogI2RlZmluZSAg VFlQQ0FURUdPUllfVVNFUgkJJ1UnCiAjZGVmaW5lICBUWVBDQVRFR09SWV9CSVRTVFJJTkcJ J1YnIC8qIGVyIC4uLiAidmFyYml0Ij8gKi8KICNkZWZpbmUgIFRZUENBVEVHT1JZX1VOS05P V04JJ1gnCisjZGVmaW5lICBUWVBDQVRFR09SWV9FTkNSWVBURUQJJ1knCiAjZGVmaW5lICBU WVBDQVRFR09SWV9JTlRFUk5BTAknWicKIAogI2RlZmluZSAgVFlQQUxJR05fQ0hBUgkJCSdj JyAvKiBjaGFyIGFsaWdubWVudCAoaS5lLiB1bmFsaWduZWQpICovCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNjbWRzLmggYi9zcmMvaW5jbHVkZS9jb21tYW5k cy9jb2xlbmNjbWRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u NzEyN2UwY2E1ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2Nv bGVuY2NtZHMuaApAQCAtMCwwICsxLDI2IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq CisgKiBjb2xlbmNjbWRzLmgKKyAqCSAgcHJvdG90eXBlcyBmb3IgY29sZW5jY21kcy5jLgor ICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMywgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICog c3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oCisgKgorICotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKi8KKworI2lmbmRlZiBDT0xFTkNDTURTX0gKKyNkZWZpbmUgQ09MRU5DQ01E U19ICisKKyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRlICJw YXJzZXIvcGFyc2Vfbm9kZS5oIgorCitleHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVDRUso UGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZpbmVTdG10ICpzdG10KTsKK2V4dGVybiBPYmplY3RB ZGRyZXNzIEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleShQYXJzZVN0YXRlICpwc3RhdGUsIEFs dGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQgKnN0bXQpOworZXh0ZXJuIE9iamVjdEFkZHJl c3MgQ3JlYXRlQ01LKFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVmaW5lU3RtdCAqc3RtdCk7Citl eHRlcm4gT2JqZWN0QWRkcmVzcyBBbHRlckNvbHVtbk1hc3RlcktleShQYXJzZVN0YXRlICpw c3RhdGUsIEFsdGVyQ29sdW1uTWFzdGVyS2V5U3RtdCAqc3RtdCk7CisKKyNlbmRpZgkJCQkJ CQkvKiBDT0xFTkNDTURTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1vbi9j b2xlbmMuaCBiL3NyYy9pbmNsdWRlL2NvbW1vbi9jb2xlbmMuaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwLi4yMTI1ODdkMjIyCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL2luY2x1ZGUvY29tbW9uL2NvbGVuYy5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICoKKyAqIGNvbGVuYy5oCisgKgorICogU2hhcmVkIGRlZmluaXRp b25zIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBhbGdvcml0aG1zLgorICoKKyAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5Ni0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkJICBzcmMvaW5jbHVkZS9jb21t b24vY29sZW5jLmgKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgQ09N TU9OX0NPTEVOQ19ICisjZGVmaW5lIENPTU1PTl9DT0xFTkNfSAorCisvKgorICogQ29uc3Rh bnRzIGZvciBDTUsgYW5kIENFSyBhbGdvcml0aG1zLiAgTm90ZSB0aGF0IHRoZXNlIGFyZSBw YXJ0IG9mIHRoZQorICogcHJvdG9jb2wuICBJbiBlaXRoZXIgY2FzZSwgZG9uJ3QgYXNzaWdu IHplcm8sIHNvIHRoYXQgdGhhdCBjYW4gYmUgdXNlZCBhcworICogYW4gaW52YWxpZCB2YWx1 ZS4KKyAqCisgKiBOYW1lcyBzaG91bGQgdXNlIElBTkEtc3R5bGUgY2FwaXRhbGl6YXRpb24g YW5kIHB1bmN0dWF0aW9uICgiTElLRV9USElTIikuCisgKgorICogV2hlbiBtYWtpbmcgY2hh bmdlcywgYWxzbyB1cGRhdGUgcHJvdG9jb2wuc2dtbC4KKyAqLworCisjZGVmaW5lIFBHX0NN S19VTlNQRUNJRklFRAkJCQkxCisjZGVmaW5lIFBHX0NNS19SU0FFU19PQUVQX1NIQV8xCQkJ MgorI2RlZmluZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMjU2CQkzCisKKy8qCisgKiBUaGVz ZSBhbGdvcml0aG1zIGFyZSBwYXJ0IG9mIHRoZSBSRkMgNTExNiByZWFsbSBvZiBBRUFEIGFs Z29yaXRobXMgKGV2ZW4KKyAqIHRob3VnaCB0aGV5IG5ldmVyIGJlY2FtZSBhbiBvZmZpY2lh bCBJRVRGIHN0YW5kYXJkKS4gIFNvIGZvciBwcm9wcmlldHksIHdlCisgKiB1c2UgInByaXZh dGUgdXNlIiBudW1iZXJzIGZyb20KKyAqIDxodHRwczovL3d3dy5pYW5hLm9yZy9hc3NpZ25t ZW50cy9hZWFkLXBhcmFtZXRlcnMvYWVhZC1wYXJhbWV0ZXJzLnhodG1sPi4KKyAqLworI2Rl ZmluZSBQR19DRUtfQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTYJMzI3NjgKKyNkZWZp bmUgUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0CTMyNzY5CisjZGVmaW5l IFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NAkzMjc3MAorI2RlZmluZSBQ R19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTIJMzI3NzEKKworLyoKKyAqIEZ1 bmN0aW9ucyB0byBjb252ZXJ0IGJldHdlZW4gbmFtZXMgYW5kIG51bWJlcnMKKyAqLworZXh0 ZXJuIGludCBnZXRfY21rYWxnX251bShjb25zdCBjaGFyICpuYW1lKTsKK2V4dGVybiBjb25z dCBjaGFyICpnZXRfY21rYWxnX25hbWUoaW50IG51bSk7CitleHRlcm4gY29uc3QgY2hhciAq Z2V0X2Nta2FsZ19qd2FfbmFtZShpbnQgbnVtKTsKK2V4dGVybiBpbnQgZ2V0X2Nla2FsZ19u dW0oY29uc3QgY2hhciAqbmFtZSk7CitleHRlcm4gY29uc3QgY2hhciAqZ2V0X2Nla2FsZ19u YW1lKGludCBudW0pOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2xpYnBx L2xpYnBxLWJlLmggYi9zcmMvaW5jbHVkZS9saWJwcS9saWJwcS1iZS5oCmluZGV4IDZkNDUy ZWM2ZDkuLmUzMmM3Nzc5YzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2xpYnBxL2xpYnBx LWJlLmgKKysrIGIvc3JjL2luY2x1ZGUvbGlicHEvbGlicHEtYmUuaApAQCAtMTY0LDYgKzE2 NCw3IEBAIHR5cGVkZWYgc3RydWN0IFBvcnQKIAkgKi8KIAljaGFyCSAgICpkYXRhYmFzZV9u YW1lOwogCWNoYXIJICAgKnVzZXJfbmFtZTsKKwlib29sCQljb2x1bW5fZW5jcnlwdGlvbl9l bmFibGVkOwogCWNoYXIJICAgKmNtZGxpbmVfb3B0aW9uczsKIAlMaXN0CSAgICpndWNfb3B0 aW9uczsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDM0YmM2NDBmZjIuLjcxMzc4 OWJmMWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTY5MCw2ICs2OTAsNyBAQCB0 eXBlZGVmIHN0cnVjdCBDb2x1bW5EZWYKIAljaGFyCSAgICpjb2xuYW1lOwkJLyogbmFtZSBv ZiBjb2x1bW4gKi8KIAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHR5cGUgb2YgY29sdW1u ICovCiAJY2hhcgkgICAqY29tcHJlc3Npb247CS8qIGNvbXByZXNzaW9uIG1ldGhvZCBmb3Ig Y29sdW1uICovCisJTGlzdAkgICAqZW5jcnlwdGlvbjsJCS8qIGVuY3J5cHRpb24gaW5mbyBm b3IgY29sdW1uICovCiAJaW50CQkJaW5oY291bnQ7CQkvKiBudW1iZXIgb2YgdGltZXMgY29s dW1uIGlzIGluaGVyaXRlZCAqLwogCWJvb2wJCWlzX2xvY2FsOwkJLyogY29sdW1uIGhhcyBs b2NhbCAobm9uLWluaGVyaXRlZCkgZGVmJ24gKi8KIAlib29sCQlpc19ub3RfbnVsbDsJLyog Tk9UIE5VTEwgY29uc3RyYWludCBzcGVjaWZpZWQ/ICovCkBAIC0xODkzLDYgKzE4OTQsOSBA QCB0eXBlZGVmIGVudW0gT2JqZWN0VHlwZQogCU9CSkVDVF9DQVNULAogCU9CSkVDVF9DT0xV TU4sCiAJT0JKRUNUX0NPTExBVElPTiwKKwlPQkpFQ1RfQ0VLLAorCU9CSkVDVF9DRUtEQVRB LAorCU9CSkVDVF9DTUssCiAJT0JKRUNUX0NPTlZFUlNJT04sCiAJT0JKRUNUX0RBVEFCQVNF LAogCU9CSkVDVF9ERUZBVUxULApAQCAtMjA4MCw2ICsyMDg0LDMxIEBAIHR5cGVkZWYgc3Ry dWN0IEFsdGVyQ29sbGF0aW9uU3RtdAogfSBBbHRlckNvbGxhdGlvblN0bXQ7CiAKIAorLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogQWx0ZXIgQ29sdW1uIEVuY3J5cHRpb24gS2V5 CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IEFsdGVy Q29sdW1uRW5jcnlwdGlvbktleVN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCWNoYXIJICAg KmNla25hbWU7CisJYm9vbAkJaXNEcm9wOwkJCS8qIEFERCBvciBEUk9QIHRoZSBpdGVtcz8g Ki8KKwlMaXN0CSAgICpkZWZpbml0aW9uOworfSBBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlT dG10OworCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIEFsdGVyIENvbHVtbiBN YXN0ZXIgS2V5CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3Ry dWN0IEFsdGVyQ29sdW1uTWFzdGVyS2V5U3RtdAoreworCU5vZGVUYWcJCXR5cGU7CisJY2hh cgkgICAqY21rbmFtZTsKKwlMaXN0CSAgICpkZWZpbml0aW9uOworfSBBbHRlckNvbHVtbk1h c3RlcktleVN0bXQ7CisKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJQWx0ZXIg RG9tYWluCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaCBi L3NyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmgKaW5kZXggM2QzYTU5MThjMi4uNmMyODY2 ZDE5ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaAorKysgYi9z cmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCkBAIC0yOCw3ICsyOCw5IEBAIGV4dGVybiBQ R0RMTElNUE9SVCBwb3N0X3BhcnNlX2FuYWx5emVfaG9va190eXBlIHBvc3RfcGFyc2VfYW5h bHl6ZV9ob29rOwogZXh0ZXJuIFF1ZXJ5ICpwYXJzZV9hbmFseXplX2ZpeGVkcGFyYW1zKFJh d1N0bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4dCwKIAkJCQkJCQkJCQlj b25zdCBPaWQgKnBhcmFtVHlwZXMsIGludCBudW1QYXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQg KnF1ZXJ5RW52KTsKIGV4dGVybiBRdWVyeSAqcGFyc2VfYW5hbHl6ZV92YXJwYXJhbXMoUmF3 U3RtdCAqcGFyc2VUcmVlLCBjb25zdCBjaGFyICpzb3VyY2VUZXh0LAotCQkJCQkJCQkJICBP aWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywgUXVlcnlFbnZpcm9ubWVudCAqcXVl cnlFbnYpOworCQkJCQkJCQkJICBPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywK KwkJCQkJCQkJCSAgT2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFtT3Jp Z0NvbHMsCisJCQkJCQkJCQkgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52KTsKIGV4dGVy biBRdWVyeSAqcGFyc2VfYW5hbHl6ZV93aXRoY2IoUmF3U3RtdCAqcGFyc2VUcmVlLCBjb25z dCBjaGFyICpzb3VyY2VUZXh0LAogCQkJCQkJCQkgICBQYXJzZXJTZXR1cEhvb2sgcGFyc2Vy U2V0dXAsCiAJCQkJCQkJCSAgIHZvaWQgKnBhcnNlclNldHVwQXJnLApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlz dC5oCmluZGV4IDk1N2VlMThkODQuLmE2MDg0NTc0YzUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgK QEAgLTE0OSw2ICsxNDksNyBAQCBQR19LRVlXT1JEKCJlbHNlIiwgRUxTRSwgUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVuYWJsZSIsIEVOQUJMRV9QLCBV TlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbmNvZGluZyIs IEVOQ09ESU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJlbmNyeXB0ZWQiLCBFTkNSWVBURUQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKK1BHX0tFWVdPUkQoImVuY3J5cHRpb24iLCBFTkNSWVBUSU9OLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbmQiLCBFTkRfUCwgUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVudW0iLCBFTlVNX1AsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVzY2FwZSIsIEVTQ0FQ RSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpAQCAtMjUwLDYgKzI1MSw3IEBA IFBHX0tFWVdPUkQoImxvY2siLCBMT0NLX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoImxvY2tlZCIsIExPQ0tFRCwgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibG9nZ2VkIiwgTE9HR0VELCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJtYXBwaW5nIiwgTUFQUElORywg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgibWFzdGVyIiwg TUFTVEVSLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJt YXRjaCIsIE1BVENILCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJtYXRjaGVkIiwgTUFUQ0hFRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgibWF0ZXJpYWxpemVkIiwgTUFURVJJQUxJWkVELCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCAz ZmQ1NmNlY2NkLi4xNWQ3ZmVlZmFjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAg LTkzLDYgKzkzLDcgQEAgdHlwZWRlZiBOb2RlICooKlBhcnNlUGFyYW1SZWZIb29rKSAoUGFy c2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZik7CiB0eXBlZGVmIE5vZGUgKigqQ29l cmNlUGFyYW1Ib29rKSAoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbSAqcGFyYW0sCiAJCQkJ CQkJCSAgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIgdGFyZ2V0VHlwZU1vZCwKIAkJCQkJCQkJ ICBpbnQgbG9jYXRpb24pOwordHlwZWRlZiB2b2lkICgqUGFyYW1Bc3NpZ25PcmlnSG9vaykg KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW0gKnBhcmFtLCBPaWQgb3JpZ3RibCwgQXR0ck51 bWJlciBvcmlnY29sKTsKIAogCiAvKgpAQCAtMjI3LDYgKzIyOCw3IEBAIHN0cnVjdCBQYXJz ZVN0YXRlCiAJUG9zdFBhcnNlQ29sdW1uUmVmSG9vayBwX3Bvc3RfY29sdW1ucmVmX2hvb2s7 CiAJUGFyc2VQYXJhbVJlZkhvb2sgcF9wYXJhbXJlZl9ob29rOwogCUNvZXJjZVBhcmFtSG9v ayBwX2NvZXJjZV9wYXJhbV9ob29rOworCVBhcmFtQXNzaWduT3JpZ0hvb2sgcF9wYXJhbV9h c3NpZ25fb3JpZ19ob29rOwogCXZvaWQJICAgKnBfcmVmX2hvb2tfc3RhdGU7CS8qIGNvbW1v biBwYXNzdGhyb3VnaCBsaW5rIGZvciBhYm92ZSAqLwogfTsKIApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2VfcGFyYW0uaAppbmRleCBkZjFlZTY2MGQ4Li5kYTIwMmIyOGE3IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaAorKysgYi9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2VfcGFyYW0uaApAQCAtMTgsNyArMTgsOCBAQAogZXh0ZXJuIHZvaWQgc2V0dXBf cGFyc2VfZml4ZWRfcGFyYW1ldGVycyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJ IGNvbnN0IE9pZCAqcGFyYW1UeXBlcywgaW50IG51bVBhcmFtcyk7CiBleHRlcm4gdm9pZCBz ZXR1cF9wYXJzZV92YXJpYWJsZV9wYXJhbWV0ZXJzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKLQkJ CQkJCQkJCQkJT2lkICoqcGFyYW1UeXBlcywgaW50ICpudW1QYXJhbXMpOworCQkJCQkJCQkJ CQlPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywKKwkJCQkJCQkJCQkJT2lkICoq cGFyYW1PcmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFtT3JpZ0NvbHMpOwogZXh0ZXJuIHZv aWQgY2hlY2tfdmFyaWFibGVfcGFyYW1ldGVycyhQYXJzZVN0YXRlICpwc3RhdGUsIFF1ZXJ5 ICpxdWVyeSk7CiBleHRlcm4gYm9vbCBxdWVyeV9jb250YWluc19leHRlcm5fcGFyYW1zKFF1 ZXJ5ICpxdWVyeSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlz dC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggOWU5NGY0NGM1Zi4u ZDgyYTJlMTE3MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgK KysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTI5LDYgKzI5LDggQEAg UEdfQ01EVEFHKENNRFRBR19BTFRFUl9BQ0NFU1NfTUVUSE9ELCAiQUxURVIgQUNDRVNTIE1F VEhPRCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQUdH UkVHQVRFLCAiQUxURVIgQUdHUkVHQVRFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19BTFRFUl9DQVNULCAiQUxURVIgQ0FTVCIsIHRydWUsIGZhbHNlLCBmYWxz ZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQ09MTEFUSU9OLCAiQUxURVIgQ09MTEFUSU9O IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DT0xVTU5f RU5DUllQVElPTl9LRVksICJBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0FMVEVSX0NPTFVNTl9NQVNURVJfS0VZ LCAiQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0FMVEVSX0NPTlNUUkFJTlQsICJBTFRFUiBDT05TVFJBSU5UIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DT05WRVJTSU9OLCAi QUxURVIgQ09OVkVSU0lPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfQUxURVJfREFUQUJBU0UsICJBTFRFUiBEQVRBQkFTRSIsIGZhbHNlLCBmYWxzZSwgZmFs c2UpCkBAIC04Niw2ICs4OCw4IEBAIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0FDQ0VTU19N RVRIT0QsICJDUkVBVEUgQUNDRVNTIE1FVEhPRCIsIHRydWUsIGZhbHNlLCBmYWxzCiBQR19D TURUQUcoQ01EVEFHX0NSRUFURV9BR0dSRUdBVEUsICJDUkVBVEUgQUdHUkVHQVRFIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ0FTVCwgIkNSRUFU RSBDQVNUIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVf Q09MTEFUSU9OLCAiQ1JFQVRFIENPTExBVElPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BH X0NNRFRBRyhDTURUQUdfQ1JFQVRFX0NPTFVNTl9FTkNSWVBUSU9OX0tFWSwgIkNSRUFURSBD T0xVTU4gRU5DUllQVElPTiBLRVkiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUco Q01EVEFHX0NSRUFURV9DT0xVTU5fTUFTVEVSX0tFWSwgIkNSRUFURSBDT0xVTU4gTUFTVEVS IEtFWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0NP TlNUUkFJTlQsICJDUkVBVEUgQ09OU1RSQUlOVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBH X0NNRFRBRyhDTURUQUdfQ1JFQVRFX0NPTlZFUlNJT04sICJDUkVBVEUgQ09OVkVSU0lPTiIs IHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0RBVEFCQVNF LCAiQ1JFQVRFIERBVEFCQVNFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTEzOCw2ICsx NDIsOCBAQCBQR19DTURUQUcoQ01EVEFHX0RST1BfQUNDRVNTX01FVEhPRCwgIkRST1AgQUND RVNTIE1FVEhPRCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJP UF9BR0dSRUdBVEUsICJEUk9QIEFHR1JFR0FURSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBH X0NNRFRBRyhDTURUQUdfRFJPUF9DQVNULCAiRFJPUCBDQVNUIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTExBVElPTiwgIkRST1AgQ09MTEFUSU9O IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTFVNTl9F TkNSWVBUSU9OX0tFWSwgIkRST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIiwgdHJ1ZSwgZmFs c2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTFVNTl9NQVNURVJfS0VZLCAi RFJPUCBDT0xVTU4gTUFTVEVSIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfRFJPUF9DT05TVFJBSU5ULCAiRFJPUCBDT05TVFJBSU5UIiwgdHJ1ZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTlZFUlNJT04sICJEUk9QIENP TlZFUlNJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1Bf REFUQUJBU0UsICJEUk9QIERBVEFCQVNFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3Av dGNvcHByb3QuaAppbmRleCA1ZDM0OTc4ZjMyLi43NTAyZDcxYjBkIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS90Y29wL3Rjb3Bwcm90LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC90Y29w cHJvdC5oCkBAIC01Myw2ICs1Myw4IEBAIGV4dGVybiBMaXN0ICpwZ19hbmFseXplX2FuZF9y ZXdyaXRlX3ZhcnBhcmFtcyhSYXdTdG10ICpwYXJzZXRyZWUsCiAJCQkJCQkJCQkJCSAgY29u c3QgY2hhciAqcXVlcnlfc3RyaW5nLAogCQkJCQkJCQkJCQkgIE9pZCAqKnBhcmFtVHlwZXMs CiAJCQkJCQkJCQkJCSAgaW50ICpudW1QYXJhbXMsCisJCQkJCQkJCQkJCSAgT2lkICoqcGFy YW1PcmlnVGJscywKKwkJCQkJCQkJCQkJICBBdHRyTnVtYmVyICoqcGFyYW1PcmlnQ29scywK IAkJCQkJCQkJCQkJICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudik7CiBleHRlcm4gTGlz dCAqcGdfYW5hbHl6ZV9hbmRfcmV3cml0ZV93aXRoY2IoUmF3U3RtdCAqcGFyc2V0cmVlLAog CQkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2Nh Y2hlLmgKaW5kZXggNTBmMDI4ODMwNS4uNzI1OGQ0MDA3NyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2Nh Y2hlLmgKQEAgLTE2Myw2ICsxNjMsNyBAQCBleHRlcm4gYm9vbCB0eXBlX2lzX3Jvd3R5cGUo T2lkIHR5cGlkKTsKIGV4dGVybiBib29sIHR5cGVfaXNfZW51bShPaWQgdHlwaWQpOwogZXh0 ZXJuIGJvb2wgdHlwZV9pc19yYW5nZShPaWQgdHlwaWQpOwogZXh0ZXJuIGJvb2wgdHlwZV9p c19tdWx0aXJhbmdlKE9pZCB0eXBpZCk7CitleHRlcm4gYm9vbCB0eXBlX2lzX2VuY3J5cHRl ZChPaWQgdHlwaWQpOwogZXh0ZXJuIHZvaWQgZ2V0X3R5cGVfY2F0ZWdvcnlfcHJlZmVycmVk KE9pZCB0eXBpZCwKIAkJCQkJCQkJCQljaGFyICp0eXBjYXRlZ29yeSwKIAkJCQkJCQkJCQli b29sICp0eXBpc3ByZWZlcnJlZCk7CkBAIC0yMDIsNiArMjAzLDExIEBAIGV4dGVybiBPaWQJ Z2V0X3B1YmxpY2F0aW9uX29pZChjb25zdCBjaGFyICpwdWJuYW1lLCBib29sIG1pc3Npbmdf b2spOwogZXh0ZXJuIGNoYXIgKmdldF9wdWJsaWNhdGlvbl9uYW1lKE9pZCBwdWJpZCwgYm9v bCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X3N1YnNjcmlwdGlvbl9vaWQoY29uc3Qg Y2hhciAqc3VibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBjaGFyICpnZXRfc3Vi c2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9p ZAlnZXRfY2VrX29pZChjb25zdCBjaGFyICpjZWtuYW1lLCBib29sIG1pc3Npbmdfb2spOwor ZXh0ZXJuIGNoYXIgKmdldF9jZWtfbmFtZShPaWQgY2VraWQsIGJvb2wgbWlzc2luZ19vayk7 CitleHRlcm4gT2lkCWdldF9jZWtkYXRhX29pZChPaWQgY2VraWQsIE9pZCBjbWtpZCwgYm9v bCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJZ2V0X2Nta19vaWQoY29uc3QgY2hhciAqY21r bmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBjaGFyICpnZXRfY21rX25hbWUoT2lk IGNta2lkLCBib29sIG1pc3Npbmdfb2spOwogCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXkodHlw aWQpICAoZ2V0X2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKIC8qIHR5cGVf aXNfYXJyYXlfZG9tYWluIGFjY2VwdHMgYm90aCBwbGFpbiBhcnJheXMgYW5kIGRvbWFpbnMg b3ZlciBhcnJheXMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3BsYW5jYWNo ZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGxhbmNhY2hlLmgKaW5kZXggMDQ5OTYzNWY1OS4u OWE3Y2Y3OTRjZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcGxhbmNhY2hlLmgK KysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGxhbmNhY2hlLmgKQEAgLTEwMSw2ICsxMDEsMTAg QEAgdHlwZWRlZiBzdHJ1Y3QgQ2FjaGVkUGxhblNvdXJjZQogCUNvbW1hbmRUYWcJY29tbWFu ZFRhZzsJCS8qICdudWZmIHNhaWQgKi8KIAlPaWQJCSAgICpwYXJhbV90eXBlczsJLyogYXJy YXkgb2YgcGFyYW1ldGVyIHR5cGUgT0lEcywgb3IgTlVMTCAqLwogCWludAkJCW51bV9wYXJh bXM7CQkvKiBsZW5ndGggb2YgcGFyYW1fdHlwZXMgYXJyYXkgKi8KKwlPaWQJCSAgICpwYXJh bV9vcmlndGJsczsgLyogYXJyYXkgb2YgdW5kZXJseWluZyB0YWJsZXMgb2YgcGFyYW1ldGVy cywKKwkJCQkJCQkJICogb3IgTlVMTCAqLworCUF0dHJOdW1iZXIgKnBhcmFtX29yaWdjb2xz OyAvKiBhcnJheSBvZiB1bmRlcmx5aW5nIGNvbHVtbnMgb2YgcGFyYW1ldGVycywKKwkJCQkJ CQkJICogb3IgTlVMTCAqLwogCVBhcnNlclNldHVwSG9vayBwYXJzZXJTZXR1cDsJLyogYWx0 ZXJuYXRpdmUgcGFyYW1ldGVyIHNwZWMgbWV0aG9kICovCiAJdm9pZAkgICAqcGFyc2VyU2V0 dXBBcmc7CiAJaW50CQkJY3Vyc29yX29wdGlvbnM7IC8qIGN1cnNvciBvcHRpb25zIHVzZWQg Zm9yIHBsYW5uaW5nICovCkBAIC0xOTksNiArMjAzLDggQEAgZXh0ZXJuIHZvaWQgQ29tcGxl dGVDYWNoZWRQbGFuKENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UsCiAJCQkJCQkJICAg TWVtb3J5Q29udGV4dCBxdWVyeXRyZWVfY29udGV4dCwKIAkJCQkJCQkgICBPaWQgKnBhcmFt X3R5cGVzLAogCQkJCQkJCSAgIGludCBudW1fcGFyYW1zLAorCQkJCQkJCSAgIE9pZCAqcGFy YW1fb3JpZ3RibHMsCisJCQkJCQkJICAgQXR0ck51bWJlciAqcGFyYW1fb3JpZ2NvbHMsCiAJ CQkJCQkJICAgUGFyc2VyU2V0dXBIb29rIHBhcnNlclNldHVwLAogCQkJCQkJCSAgIHZvaWQg KnBhcnNlclNldHVwQXJnLAogCQkJCQkJCSAgIGludCBjdXJzb3Jfb3B0aW9ucywKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3N5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGls cy9zeXNjYWNoZS5oCmluZGV4IDQ0NjNlYTY2YmUuLjQ4OWM2ZWU3MzQgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3V0aWxzL3N5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMv c3lzY2FjaGUuaApAQCAtNDQsOCArNDQsMTQgQEAgZW51bSBTeXNDYWNoZUlkZW50aWZpZXIK IAlBVVRITkFNRSwKIAlBVVRIT0lELAogCUNBU1RTT1VSQ0VUQVJHRVQsCisJQ0VLREFUQUNF S0NNSywKKwlDRUtEQVRBT0lELAorCUNFS05BTUUsCisJQ0VLT0lELAogCUNMQUFNTkFNRU5T UCwKIAlDTEFPSUQsCisJQ01LTkFNRSwKKwlDTUtPSUQsCiAJQ09MTE5BTUVFTkNOU1AsCiAJ Q09MTE9JRCwKIAlDT05ERUZBVUxULApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGli cHEvTWFrZWZpbGUgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQppbmRleCAxZDMx YjI1NmZjLi40ODEyZjg2MmNhIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9N YWtlZmlsZQorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQpAQCAtNTQsNiAr NTQsNyBAQCBlbmRpZgogCiBpZmVxICgkKHdpdGhfc3NsKSxvcGVuc3NsKQogT0JKUyArPSBc CisJZmUtZW5jcnlwdC1vcGVuc3NsLm8gXAogCWZlLXNlY3VyZS1vcGVuc3NsLm8KIGVuZGlm CiAKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0IGIvc3Jj L2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQKaW5kZXggZThiY2M4ODM3MC4uODg5N2Fh MjQzYyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQKQEAgLTE4NiwzICsxODYsNyBA QCBQUXBpcGVsaW5lU3RhdHVzICAgICAgICAgIDE4MwogUFFzZXRUcmFjZUZsYWdzICAgICAg ICAgICAxODQKIFBRbWJsZW5Cb3VuZGVkICAgICAgICAgICAgMTg1CiBQUXNlbmRGbHVzaFJl cXVlc3QgICAgICAgIDE4NgorUFFleGVjUHJlcGFyZWREZXNjcmliZWQgICAxODcKK1BRc2Vu ZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQgMTg4CitQUWZpc2VuY3J5cHRlZCAgICAgICAgICAg IDE4OQorUFFwYXJhbWlzZW5jcnlwdGVkICAgICAgICAxOTAKZGlmZiAtLWdpdCBhL3NyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2Zl LWNvbm5lY3QuYwppbmRleCBmODhkNjcyYzZjLi40OGI0MWY5NzA5IDEwMDY0NAotLS0gYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKKysrIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtY29ubmVjdC5jCkBAIC0zNDEsNiArMzQxLDE0IEBAIHN0YXRpYyBjb25zdCBp bnRlcm5hbFBRY29ubmluZm9PcHRpb24gUFFjb25uaW5mb09wdGlvbnNbXSA9IHsKIAkJIlRh cmdldC1TZXNzaW9uLUF0dHJzIiwgIiIsIDE1LCAvKiBzaXplb2YoInByZWZlci1zdGFuZGJ5 IikgPSAxNSAqLwogCW9mZnNldG9mKHN0cnVjdCBwZ19jb25uLCB0YXJnZXRfc2Vzc2lvbl9h dHRycyl9LAogCisJeyJjbWtsb29rdXAiLCAiUEdDTUtMT09LVVAiLCAiIiwgTlVMTCwKKwkJ IkNNSy1Mb29rdXAiLCAiIiwgNjQsCisJb2Zmc2V0b2Yoc3RydWN0IHBnX2Nvbm4sIGNta2xv b2t1cCl9LAorCisJeyJjb2x1bW5fZW5jcnlwdGlvbiIsICJQR0NPTFVNTkVOQ1JZUFRJT04i LCAiMCIsIE5VTEwsCisJCSJDb2x1bW4tRW5jcnlwdGlvbiIsICIiLCAxLAorCW9mZnNldG9m KHN0cnVjdCBwZ19jb25uLCBjb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5nKX0sCisKIAkvKiBU ZXJtaW5hdGluZyBlbnRyeSAtLS0gTVVTVCBCRSBMQVNUICovCiAJe05VTEwsIE5VTEwsIE5V TEwsIE5VTEwsCiAJTlVMTCwgTlVMTCwgMH0KQEAgLTI0MjIsNiArMjQzMCw3IEBAIFBRY29u bmVjdFBvbGwoUEdjb25uICpjb25uKQogI2lmZGVmIEVOQUJMRV9HU1MKIAkJY29ubi0+dHJ5 X2dzcyA9IChjb25uLT5nc3NlbmNtb2RlWzBdICE9ICdkJyk7CS8qICJkaXNhYmxlIiAqLwog I2VuZGlmCisJCWNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQgPSAoY29ubi0+Y29s dW1uX2VuY3J5cHRpb25fc2V0dGluZ1swXSA9PSAnMScpOwogCiAJCXJlc2V0X2Nvbm5lY3Rp b25fc3RhdGVfbWFjaGluZSA9IGZhbHNlOwogCQluZWVkX25ld19jb25uZWN0aW9uID0gdHJ1 ZTsKQEAgLTQwMjksNiArNDAzOCwyMiBAQCBmcmVlUEdjb25uKFBHY29ubiAqY29ubikKIAlm cmVlKGNvbm4tPmtyYnNydm5hbWUpOwogCWZyZWUoY29ubi0+Z3NzbGliKTsKIAlmcmVlKGNv bm4tPmNvbm5pcCk7CisJZnJlZShjb25uLT5jbWtsb29rdXApOworCWZvciAoaW50IGkgPSAw OyBpIDwgY29ubi0+bmNta3M7IGkrKykKKwl7CisJCWZyZWUoY29ubi0+Y21rc1tpXS5jbWtu YW1lKTsKKwkJZnJlZShjb25uLT5jbWtzW2ldLmNta3JlYWxtKTsKKwl9CisJZnJlZShjb25u LT5jbWtzKTsKKwlmb3IgKGludCBpID0gMDsgaSA8IGNvbm4tPm5jZWtzOyBpKyspCisJewor CQlpZiAoY29ubi0+Y2Vrc1tpXS5jZWtkYXRhKQorCQl7CisJCQlleHBsaWNpdF9iemVybyhj b25uLT5jZWtzW2ldLmNla2RhdGEsIGNvbm4tPmNla3NbaV0uY2VrZGF0YWxlbik7CisJCQlm cmVlKGNvbm4tPmNla3NbaV0uY2VrZGF0YSk7CisJCX0KKwl9CisJZnJlZShjb25uLT5jZWtz KTsKIAkvKiBOb3RlIHRoYXQgY29ubi0+UGZkZWJ1ZyBpcyBub3Qgb3VycyB0byBjbG9zZSBv ciBmcmVlICovCiAJZnJlZShjb25uLT53cml0ZV9lcnJfbXNnKTsKIAlmcmVlKGNvbm4tPmlu QnVmZmVyKTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQt b3BlbnNzbC5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC1vcGVuc3NsLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzExMTJlYmE4MwotLS0g L2Rldi9udWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNz bC5jCkBAIC0wLDAgKzEsODM2IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBm ZS1lbmNyeXB0LW9wZW5zc2wuYworICoKKyAqIGNsaWVudC1zaWRlIGNvbHVtbiBlbmNyeXB0 aW9uIHN1cHBvcnQgdXNpbmcgT3BlblNTTAorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICog UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5 IG9mIENhbGlmb3JuaWEKKyAqCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC1vcGVuc3NsLmMKKyAqCisgKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXNfZmUuaCIKKworI2luY2x1ZGUg ImZlLWVuY3J5cHQuaCIKKyNpbmNsdWRlICJsaWJwcS1pbnQuaCIKKworI2luY2x1ZGUgImNv bW1vbi9jb2xlbmMuaCIKKyNpbmNsdWRlICJwb3J0L3BnX2Jzd2FwLmgiCisKKyNpbmNsdWRl IDxvcGVuc3NsL2V2cC5oPgorCisKKy8qCisgKiBXaGVuIFRFU1RfRU5DUllQVCBpcyBkZWZp bmVkLCB0aGlzIGZpbGUgYnVpbGRzIGEgc3RhbmRhbG9uZSBwcm9ncmFtIHRoYXQKKyAqIGNo ZWNrcyBlbmNyeXB0aW9uIHRlc3QgY2FzZXMgYWdhaW5zdCB0aGUgc3BlY2lmaWNhdGlvbiBk b2N1bWVudC4KKyAqCisgKiBXZSBoYXZlIHRvIHJlcGxhY2Ugc29tZSBmdW5jdGlvbnMgdGhh dCBhcmUgbm90IGF2YWlsYWJsZSBpbiB0aGF0CisgKiBlbnZpcm9ubWVudC4KKyAqLworI2lm ZGVmIFRFU1RfRU5DUllQVAorCisjZGVmaW5lIGxpYnBxX2dldHRleHQoeCkgKHgpCisjZGVm aW5lIGxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sIC4uLikgYXBwZW5kUFFFeHBCdWZm ZXIoJihjb25uKS0+ZXJyb3JNZXNzYWdlLCBfX1ZBX0FSR1NfXykKKworI2VuZGlmCQkJCQkJ CS8qIFRFU1RfRU5DUllQVCAqLworCisKKy8qCisgKiBEZWNyeXB0IHRoZSBDRUsgZ2l2ZW4g YnkgImZyb20iIGFuZCAiZnJvbWxlbiIgKGRhdGEgdHlwaWNhbGx5IHNlbnQgZnJvbSB0aGUK KyAqIHNlcnZlcikgdXNpbmcgdGhlIENNSyBpbiBjbWtmaWxlbmFtZS4KKyAqLwordW5zaWdu ZWQgY2hhciAqCitkZWNyeXB0X2Nla19mcm9tX2ZpbGUoUEdjb25uICpjb25uLCBjb25zdCBj aGFyICpjbWtmaWxlbmFtZSwgaW50IGNta2FsZywKKwkJCQkJICBpbnQgZnJvbWxlbiwgY29u c3QgdW5zaWduZWQgY2hhciAqZnJvbSwKKwkJCQkJICBpbnQgKnRvbGVuKQoreworCWNvbnN0 IEVWUF9NRCAqbWQgPSBOVUxMOworCUVWUF9QS0VZICAgKmtleSA9IE5VTEw7CisJUlNBCQkg ICAqcnNhID0gTlVMTDsKKwlCSU8JCSAgICpiaW8gPSBOVUxMOworCUVWUF9QS0VZX0NUWCAq Y3R4ID0gTlVMTDsKKwl1bnNpZ25lZCBjaGFyICpvdXQgPSBOVUxMOworCXNpemVfdAkJb3V0 bGVuOworCisJc3dpdGNoIChjbWthbGcpCisJeworCQljYXNlIFBHX0NNS19SU0FFU19PQUVQ X1NIQV8xOgorCQkJbWQgPSBFVlBfc2hhMSgpOworCQkJYnJlYWs7CisJCWNhc2UgUEdfQ01L X1JTQUVTX09BRVBfU0hBXzI1NjoKKwkJCW1kID0gRVZQX3NoYTI1NigpOworCQkJYnJlYWs7 CisJCWNhc2UgUEdfQ01LX1VOU1BFQ0lGSUVEOgorCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJy b3IoY29ubiwgInVuc3BlY2lmaWVkIENNSyBhbGdvcml0aG0gbm90IHN1cHBvcnRlZCB3aXRo IGZpbGUgbG9va3VwIHNjaGVtZSIpOworCQkJZ290byBmYWlsOworCQlkZWZhdWx0OgorCQkJ bGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgInVuc3VwcG9ydGVkIENNSyBhbGdvcml0 aG0gSUQ6ICVkIiwgY21rYWxnKTsKKwkJCWdvdG8gZmFpbDsKKwl9CisKKwliaW8gPSBCSU9f bmV3X2ZpbGUoY21rZmlsZW5hbWUsICJyIik7CisJaWYgKCFiaW8pCisJeworCQlsaWJwcV9h cHBlbmRfY29ubl9lcnJvcihjb25uLCAiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCI6ICVt IiwgY21rZmlsZW5hbWUpOworCQlnb3RvIGZhaWw7CisJfQorCisJcnNhID0gUlNBX25ldygp OworCWlmICghcnNhKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNv dWxkIG5vdCBhbGxvY2F0ZSBSU0Egc3RydWN0dXJlOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFz b25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQor CS8qCisJICogTm90ZTogV2UgbXVzdCBnbyB0aHJvdWdoIEJJTyBhbmQgbm90IHNheSB1c2Ug UEVNX3JlYWRfUlNBUHJpdmF0ZUtleSgpCisJICogZGlyZWN0bHkgb24gYSBGSUxFLiAgT3Ro ZXJ3aXNlLCB3ZSBnZXQgaW50byAibm8gT1BFTlNTTF9BcHBsaW5rIiBoZWxsCisJICogb24g V2luZG93cyAod2hpY2ggaGFwcGVucyB3aGVuZXZlciB5b3UgcGFzcyBhIHN0ZGlvIGhhbmRs ZSBmcm9tIHRoZQorCSAqIGFwcGxpY2F0aW9uIGludG8gT3BlblNTTCkuCisJICovCisJcnNh ID0gUEVNX3JlYWRfYmlvX1JTQVByaXZhdGVLZXkoYmlvLCAmcnNhLCBOVUxMLCBOVUxMKTsK KwlpZiAoIXJzYSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb3Vs ZCBub3QgcmVhZCBSU0EgcHJpdmF0ZSBrZXk6ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9l cnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlr ZXkgPSBFVlBfUEtFWV9uZXcoKTsKKwlpZiAoIWtleSkKKwl7CisJCWxpYnBxX2FwcGVuZF9j b25uX2Vycm9yKGNvbm4sICJjb3VsZCBub3QgYWxsb2NhdGUgcHJpdmF0ZSBrZXkgc3RydWN0 dXJlOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJy b3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKCFFVlBfUEtFWV9hc3NpZ25fUlNB KGtleSwgcnNhKSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb3Vs ZCBub3QgYXNzaWduIHByaXZhdGUga2V5OiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJy b3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJY3R4 ID0gRVZQX1BLRVlfQ1RYX25ldyhrZXksIE5VTEwpOworCWlmICghY3R4KQorCXsKKwkJbGli cHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBhbGxvY2F0ZSBwdWJsaWMg a2V5IGFsZ29yaXRobSBjb250ZXh0OiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jf c3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKEVW UF9QS0VZX2RlY3J5cHRfaW5pdChjdHgpIDw9IDApCisJeworCQlsaWJwcV9hcHBlbmRfY29u bl9lcnJvcihjb25uLCAiZGVjcnlwdGlvbiBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzIiwK KwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJ CWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoRVZQX1BLRVlfQ1RYX3NldF9yc2FfcGFkZGluZyhj dHgsIFJTQV9QS0NTMV9PQUVQX1BBRERJTkcpIDw9IDAgfHwKKwkJRVZQX1BLRVlfQ1RYX3Nl dF9yc2FfbWdmMV9tZChjdHgsIG1kKSA8PSAwIHx8CisJCUVWUF9QS0VZX0NUWF9zZXRfcnNh X29hZXBfbWQoY3R4LCBtZCkgPD0gMCkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9y KGNvbm4sICJjb3VsZCBub3Qgc2V0IFJTQSBwYXJhbWV0ZXI6ICVzIiwKKwkJCQkJCQkJRVJS X3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsK Kwl9CisKKwkvKiBnZXQgb3V0cHV0IGxlbmd0aCAqLworCWlmIChFVlBfUEtFWV9kZWNyeXB0 KGN0eCwgTlVMTCwgJm91dGxlbiwgZnJvbSwgZnJvbWxlbikgPD0gMCkKKwl7CisJCWxpYnBx X2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJSU0EgZGVjcnlwdGlvbiBzZXR1cCBmYWlsZWQ6 ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigp KSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlvdXQgPSBtYWxsb2Mob3V0bGVuKTsKKwlpZiAo IW91dCkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJvdXQgb2YgbWVt b3J5Iik7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoRVZQX1BLRVlfZGVjcnlwdChjdHgs IG91dCwgJm91dGxlbiwgZnJvbSwgZnJvbWxlbikgPD0gMCkKKwl7CisJCWxpYnBxX2FwcGVu ZF9jb25uX2Vycm9yKGNvbm4sICJSU0EgZGVjcnlwdGlvbiBmYWlsZWQ6ICVzIiwKKwkJCQkJ CQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWZyZWUo b3V0KTsKKwkJb3V0ID0gTlVMTDsKKwkJZ290byBmYWlsOworCX0KKworCSp0b2xlbiA9IG91 dGxlbjsKKworZmFpbDoKKwlFVlBfUEtFWV9DVFhfZnJlZShjdHgpOworCUVWUF9QS0VZX2Zy ZWUoa2V5KTsKKwlCSU9fZnJlZShiaW8pOworCisJcmV0dXJuIG91dDsKK30KKworCisvKgor ICogVGhlIHJvdXRpbmVzIGJlbG93IGltcGxlbWVudCB0aGUgQUVBRCBhbGdvcml0aG1zIHNw ZWNpZmllZCBpbgorICogPGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwv ZHJhZnQtbWNncmV3LWFlYWQtYWVzLWNiYy1obWFjLXNoYTItMDU+CisgKiBmb3IgZW5jcnlw dGluZyBhbmQgZGVjcnlwdGluZyBjb2x1bW4gdmFsdWVzLgorICovCisKKyNpZmRlZiBURVNU X0VOQ1JZUFQKKworLyoKKyAqIFRlc3QgZGF0YSBmcm9tCisgKiA8aHR0cHM6Ly9kYXRhdHJh Y2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMt c2hhMi0wNSNzZWN0aW9uLTU+CisgKi8KKworLyoKKyAqIFRoZSBkaWZmZXJlbnQgdGVzdCBj YXNlcyBqdXN0IHVzZSBkaWZmZXJlbnQgcHJlZml4ZXMgb2YgSywgc28gb25lIGNvbnN0YW50 CisgKiBpcyBlbm91Z2ggaGVyZS4KKyAqLworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIg S1tdID0geworCTB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4 MDcsIDB4MDgsIDB4MDksIDB4MGEsIDB4MGIsIDB4MGMsIDB4MGQsIDB4MGUsIDB4MGYsCisJ MHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNywgMHgxOCwg MHgxOSwgMHgxYSwgMHgxYiwgMHgxYywgMHgxZCwgMHgxZSwgMHgxZiwKKwkweDIwLCAweDIx LCAweDIyLCAweDIzLCAweDI0LCAweDI1LCAweDI2LCAweDI3LCAweDI4LCAweDI5LCAweDJh LCAweDJiLCAweDJjLCAweDJkLCAweDJlLCAweDJmLAorCTB4MzAsIDB4MzEsIDB4MzIsIDB4 MzMsIDB4MzQsIDB4MzUsIDB4MzYsIDB4MzcsIDB4MzgsIDB4MzksIDB4M2EsIDB4M2IsIDB4 M2MsIDB4M2QsIDB4M2UsIDB4M2YsCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hh ciBQW10gPSB7CisJMHg0MSwgMHgyMCwgMHg2MywgMHg2OSwgMHg3MCwgMHg2OCwgMHg2NSwg MHg3MiwgMHgyMCwgMHg3MywgMHg3OSwgMHg3MywgMHg3NCwgMHg2NSwgMHg2ZCwgMHgyMCwK KwkweDZkLCAweDc1LCAweDczLCAweDc0LCAweDIwLCAweDZlLCAweDZmLCAweDc0LCAweDIw LCAweDYyLCAweDY1LCAweDIwLCAweDcyLCAweDY1LCAweDcxLCAweDc1LAorCTB4NjksIDB4 NzIsIDB4NjUsIDB4NjQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NjIsIDB4NjUsIDB4 MjAsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NzIsIDB4NjUsCisJMHg3NCwgMHgyYywgMHgyMCwg MHg2MSwgMHg2ZSwgMHg2NCwgMHgyMCwgMHg2OSwgMHg3NCwgMHgyMCwgMHg2ZCwgMHg3NSwg MHg3MywgMHg3NCwgMHgyMCwgMHg2MiwKKwkweDY1LCAweDIwLCAweDYxLCAweDYyLCAweDZj LCAweDY1LCAweDIwLCAweDc0LCAweDZmLCAweDIwLCAweDY2LCAweDYxLCAweDZjLCAweDZj LCAweDIwLCAweDY5LAorCTB4NmUsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NzQsIDB4NjgsIDB4 NjUsIDB4MjAsIDB4NjgsIDB4NjEsIDB4NmUsIDB4NjQsIDB4NzMsIDB4MjAsIDB4NmYsIDB4 NjYsCisJMHgyMCwgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg2NSwgMHg2ZSwgMHg2NSwg MHg2ZCwgMHg3OSwgMHgyMCwgMHg3NywgMHg2OSwgMHg3NCwgMHg2OCwgMHg2ZiwKKwkweDc1 LCAweDc0LCAweDIwLCAweDY5LCAweDZlLCAweDYzLCAweDZmLCAweDZlLCAweDc2LCAweDY1 LCAweDZlLCAweDY5LCAweDY1LCAweDZlLCAweDYzLCAweDY1LAorfTsKKworc3RhdGljIGNv bnN0IHVuc2lnbmVkIGNoYXIgdGVzdF9JVltdID0geworCTB4MWEsIDB4ZjMsIDB4OGMsIDB4 MmQsIDB4YzIsIDB4YjksIDB4NmYsIDB4ZmQsIDB4ZDgsIDB4NjYsIDB4OTQsIDB4MDksIDB4 MjMsIDB4NDEsIDB4YmMsIDB4MDQsCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hh ciB0ZXN0X0FbXSA9IHsKKwkweDU0LCAweDY4LCAweDY1LCAweDIwLCAweDczLCAweDY1LCAw eDYzLCAweDZmLCAweDZlLCAweDY0LCAweDIwLCAweDcwLCAweDcyLCAweDY5LCAweDZlLCAw eDYzLAorCTB4NjksIDB4NzAsIDB4NmMsIDB4NjUsIDB4MjAsIDB4NmYsIDB4NjYsIDB4MjAs IDB4NDEsIDB4NzUsIDB4NjcsIDB4NzUsIDB4NzMsIDB4NzQsIDB4NjUsIDB4MjAsCisJMHg0 YiwgMHg2NSwgMHg3MiwgMHg2MywgMHg2YiwgMHg2OCwgMHg2ZiwgMHg2NiwgMHg2NiwgMHg3 MywKK307CisKKyNlbmRpZgkJCQkJCQkvKiBURVNUX0VOQ1JZUFQgKi8KKworCisvKgorICog R2V0IE9wZW5TU0wgY2lwaGVyIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIENFSyBhbGdvcml0 aG0gbnVtYmVyLgorICovCitzdGF0aWMgY29uc3QgRVZQX0NJUEhFUiAqCitwZ19jZWthbGdf dG9fb3BlbnNzbF9jaXBoZXIoaW50IGNla2FsZykKK3sKKwljb25zdCBFVlBfQ0lQSEVSICpj aXBoZXI7CisKKwlzd2l0Y2ggKGNla2FsZykKKwl7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVT XzEyOF9DQkNfSE1BQ19TSEFfMjU2OgorCQkJY2lwaGVyID0gRVZQX2Flc18xMjhfY2JjKCk7 CisJCQlicmVhazsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8z ODQ6CisJCQljaXBoZXIgPSBFVlBfYWVzXzE5Ml9jYmMoKTsKKwkJCWJyZWFrOworCQljYXNl IFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJY2FzZSBQR19DRUtf QUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTI6CisJCQljaXBoZXIgPSBFVlBfYWVzXzI1 Nl9jYmMoKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJY2lwaGVyID0gTlVMTDsKKwl9 CisKKwlyZXR1cm4gY2lwaGVyOworfQorCisvKgorICogR2V0IE9wZW5TU0wgZGlnZXN0IChm b3IgTUFDKSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBDRUsgYWxnb3JpdGhtIG51bWJlci4K KyAqLworc3RhdGljIGNvbnN0IEVWUF9NRCAqCitwZ19jZWthbGdfdG9fb3BlbnNzbF9tZChp bnQgY2VrYWxnKQoreworCWNvbnN0IEVWUF9NRCAqbWQ7CisKKwlzd2l0Y2ggKGNla2FsZykK Kwl7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2OgorCQkJ bWQgPSBFVlBfc2hhMjU2KCk7CisJCQlicmVhazsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNf MTkyX0NCQ19ITUFDX1NIQV8zODQ6CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNf SE1BQ19TSEFfMzg0OgorCQkJbWQgPSBFVlBfc2hhMzg0KCk7CisJCQlicmVhazsKKwkJY2Fz ZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTI6CisJCQltZCA9IEVWUF9z aGE1MTIoKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJbWQgPSBOVUxMOworCX0KKwor CXJldHVybiBtZDsKK30KKworLyoKKyAqIEdldCB0aGUgTUFDIGtleSBsZW5ndGggKGluIG9j dGV0cykgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgQ0VLIGFsZ29yaXRobSBudW1iZXIuCisg KgorICogVGhpcyBpcyBNQUNfS0VZX0xFTiBpbiB0aGUgbWNncmV3IHBhcGVyLgorICovCitz dGF0aWMgaW50CittZF9rZXlfbGVuZ3RoKGNvbnN0IEVWUF9NRCAqbWQpCit7CisJaWYgKG1k ID09IEVWUF9zaGEyNTYoKSkKKwkJcmV0dXJuIDE2OworCWVsc2UgaWYgKG1kID09IEVWUF9z aGEzODQoKSkKKwkJcmV0dXJuIDI0OworCWVsc2UgaWYgKG1kID09IEVWUF9zaGE1MTIoKSkK KwkJcmV0dXJuIDMyOworCWVsc2UKKwkJcmV0dXJuIC0xOworfQorCisvKgorICogR2V0IHRo ZSBITUFDIG91dHB1dCBsZW5ndGggKGluIG9jdGV0cykgdGhhdCBjb3JyZXNwb25kcyB0byB0 aGUgQ0VLCisgKiBhbGdvcml0aG0gbnVtYmVyLgorICovCitzdGF0aWMgaW50CittZF9oYXNo X2xlbmd0aChjb25zdCBFVlBfTUQgKm1kKQoreworCWlmIChtZCA9PSBFVlBfc2hhMjU2KCkp CisJCXJldHVybiAzMjsKKwllbHNlIGlmIChtZCA9PSBFVlBfc2hhMzg0KCkpCisJCXJldHVy biA0ODsKKwllbHNlIGlmIChtZCA9PSBFVlBfc2hhNTEyKCkpCisJCXJldHVybiA2NDsKKwll bHNlCisJCXJldHVybiAtMTsKK30KKworLyoKKyAqIExlbmd0aCBvZiBhc3NvY2lhdGVkIGRh dGEgKEEgaW4gbWNncmV3IHBhcGVyKQorICovCisjaWZuZGVmIFRFU1RfRU5DUllQVAorI2Rl ZmluZSBQR19BRF9MRU4gNAorI2Vsc2UKKyNkZWZpbmUgUEdfQURfTEVOIHNpemVvZih0ZXN0 X0EpCisjZW5kaWYKKworLyoKKyAqIENvbXB1dGUgbWVzc2FnZSBhdXRoZW50aWNhdGlvbiB0 YWcgKFQgaW4gdGhlIG1jZ3JldyBwYXBlciksIGZyb20gTUFDIGtleQorICogYW5kIGNpcGhl cnRleHQuCisgKgorICogUmV0dXJucyBmYWxzZSBvbiBlcnJvciwgd2l0aCBlcnJvciBtZXNz YWdlIGluIGVycm1zZ3AuCisgKi8KK3N0YXRpYyBib29sCitnZXRfbWVzc2FnZV9hdXRoX3Rh Zyhjb25zdCBFVlBfTUQgKm1kLAorCQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqbWFjX2tl eSwgaW50IG1hY19rZXlfbGVuLAorCQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqZW5jciwg aW50IGVuY3JsZW4sCisJCQkJCSB1bnNpZ25lZCBjaGFyICptZF92YWx1ZSwgc2l6ZV90ICpt ZF9sZW5fcCwKKwkJCQkJIGNvbnN0IGNoYXIgKiplcnJtc2dwKQoreworCXN0YXRpYyBjaGFy IG1zZ2J1ZlsxMDI0XTsKKwlFVlBfTURfQ1RYICpldnBfbWRfY3R4ID0gTlVMTDsKKwlFVlBf UEtFWSAgICpwa2V5ID0gTlVMTDsKKwlzaXplX3QJCWJ1ZnNpemU7CisJdW5zaWduZWQgY2hh ciAqYnVmID0gTlVMTDsKKwlpbnQ2NAkJYWw7CisJYm9vbAkJcmVzdWx0ID0gZmFsc2U7CisK KwlpZiAoZW5jcmxlbiA8IDApCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2di dWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJlbmNyeXB0ZWQgdmFsdWUgaGFzIGludmFsaWQg bGVuZ3RoIikpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKwor CWV2cF9tZF9jdHggPSBFVlBfTURfQ1RYX25ldygpOworCisJcGtleSA9IEVWUF9QS0VZX25l d19yYXdfcHJpdmF0ZV9rZXkoRVZQX1BLRVlfSE1BQywgTlVMTCwgbWFjX2tleSwgbWFjX2tl eV9sZW4pOworCWlmICghcGtleSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1z Z2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBhbGxvY2F0ZSBrZXkgZm9y IEhNQUM6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJy b3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCS8q CisJICogQnVpbGQgaW5wdXQgdG8gTUFDIGNhbGwgKEEgfHwgUyB8fCBBTCBpbiBtY2dyZXcg cGFwZXIpCisJICovCisJYnVmc2l6ZSA9IFBHX0FEX0xFTiArIGVuY3JsZW4gKyBzaXplb2Yo aW50NjQpOworCWJ1ZiA9IG1hbGxvYyhidWZzaXplKTsKKwlpZiAoIWJ1ZikKKwl7CisJCSpl cnJtc2dwID0gbGlicHFfZ2V0dGV4dCgib3V0IG9mIG1lbW9yeSIpOworCQlnb3RvIGZhaWw7 CisJfQorCS8qIEEgKGFzc29jaWF0ZWQgZGF0YSkgKi8KKyNpZm5kZWYgVEVTVF9FTkNSWVBU CisJYnVmWzBdID0gJ1AnOworCWJ1ZlsxXSA9ICdHJzsKKwkqKGludDE2ICopIChidWYgKyAy KSA9IHBnX2h0b24xNigxKTsKKyNlbHNlCisJbWVtY3B5KGJ1ZiwgdGVzdF9BLCBzaXplb2Yo dGVzdF9BKSk7CisjZW5kaWYKKwkvKiBTIChjaXBoZXJ0ZXh0KSAqLworCW1lbWNweShidWYg KyBQR19BRF9MRU4sIGVuY3IsIGVuY3JsZW4pOworCS8qIEFMIChudW1iZXIgb2YgKmJpdHMq IGluIEEpICovCisJYWwgPSBwZ19odG9uNjQoUEdfQURfTEVOICogOCk7CisJbWVtY3B5KGJ1 ZiArIFBHX0FEX0xFTiArIGVuY3JsZW4sICZhbCwgc2l6ZW9mKGFsKSk7CisKKwkvKgorCSAq IENhbGwgTUFDCisJICovCisJaWYgKCFFVlBfRGlnZXN0U2lnbkluaXQoZXZwX21kX2N0eCwg TlVMTCwgbWQsIE5VTEwsIHBrZXkpKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2Yo bXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGlnZXN0IGluaXRpYWxpemF0aW9uIGZh aWxlZDogJXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJv cigpKSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYg KCFFVlBfRGlnZXN0U2lnblVwZGF0ZShldnBfbWRfY3R4LCBidWYsIGJ1ZnNpemUpKQorCXsK KwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4 dCgiZGlnZXN0IHNpZ25pbmcgZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9y X3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdv dG8gZmFpbDsKKwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduRmluYWwoZXZwX21kX2N0eCwg bWRfdmFsdWUsIG1kX2xlbl9wKSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1z Z2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImRpZ2VzdCBzaWduaW5nIGZhaWxlZDogJXMi KSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJ CSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCUFzc2VydCgqbWRfbGVu X3AgPT0gbWRfaGFzaF9sZW5ndGgobWQpKTsKKworCS8qIHRydW5jYXRlIG91dHB1dCB0byBo YWxmIHRoZSBsZW5ndGgsIHBlciBzcGVjICovCisJKm1kX2xlbl9wIC89IDI7CisKKwlyZXN1 bHQgPSB0cnVlOworZmFpbDoKKwlmcmVlKGJ1Zik7CisJRVZQX1BLRVlfZnJlZShwa2V5KTsK KwlFVlBfTURfQ1RYX2ZyZWUoZXZwX21kX2N0eCk7CisJcmV0dXJuIHJlc3VsdDsKK30KKwor LyoKKyAqIERlY3J5cHQgYSBjb2x1bW4gdmFsdWUKKyAqLwordW5zaWduZWQgY2hhciAqCitk ZWNyeXB0X3ZhbHVlKFBHcmVzdWx0ICpyZXMsIGNvbnN0IFBHQ0VLICpjZWssIGludCBjZWth bGcsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBpbnQgaW5wdXRsZW4sIGNvbnN0IGNo YXIgKiplcnJtc2dwKQoreworCXN0YXRpYyBjaGFyIG1zZ2J1ZlsxMDI0XTsKKworCWNvbnN0 IHVuc2lnbmVkIGNoYXIgKml2ID0gTlVMTDsKKwlzaXplX3QJCWl2bGVuOworCisJY29uc3Qg RVZQX0NJUEhFUiAqY2lwaGVyOworCWNvbnN0IEVWUF9NRCAqbWQ7CisJRVZQX0NJUEhFUl9D VFggKmV2cF9jaXBoZXJfY3R4ID0gTlVMTDsKKwlpbnQJCQllbmNfa2V5X2xlbjsKKwlpbnQJ CQltYWNfa2V5X2xlbjsKKwlpbnQJCQlpdl9rZXlfbGVuOworCWludAkJCWtleV9sZW47CisJ Y29uc3QgdW5zaWduZWQgY2hhciAqZW5jX2tleTsKKwljb25zdCB1bnNpZ25lZCBjaGFyICpt YWNfa2V5OworCXVuc2lnbmVkIGNoYXIgbWRfdmFsdWVbRVZQX01BWF9NRF9TSVpFXTsKKwlz aXplX3QJCW1kX2xlbiA9IHNpemVvZihtZF92YWx1ZSk7CisJc2l6ZV90CQlidWZzaXplOwor CXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IE5VTEw7CisJdW5zaWduZWQgY2hhciAqZGVjcjsKKwlp bnQJCQlkZWNybGVuLAorCQkJCWRlY3JsZW4yOworCisJdW5zaWduZWQgY2hhciAqcmVzdWx0 ID0gTlVMTDsKKworCWNpcGhlciA9IHBnX2Nla2FsZ190b19vcGVuc3NsX2NpcGhlcihjZWth bGcpOworCWlmICghY2lwaGVyKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNn YnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgidW5yZWNvZ25pemVkIGVuY3J5cHRpb24gYWxn b3JpdGhtIGlkZW50aWZpZXI6ICVkIiksIGNla2FsZyk7CisJCSplcnJtc2dwID0gbXNnYnVm OworCQlnb3RvIGZhaWw7CisJfQorCisJbWQgPSBwZ19jZWthbGdfdG9fb3BlbnNzbF9tZChj ZWthbGcpOworCWlmICghbWQpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2di dWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJ1bnJlY29nbml6ZWQgZGlnZXN0IGFsZ29yaXRo bSBpZGVudGlmaWVyOiAlZCIpLCBjZWthbGcpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJ Z290byBmYWlsOworCX0KKworCWV2cF9jaXBoZXJfY3R4ID0gRVZQX0NJUEhFUl9DVFhfbmV3 KCk7CisKKwlpZiAoIUVWUF9EZWNyeXB0SW5pdF9leChldnBfY2lwaGVyX2N0eCwgY2lwaGVy LCBOVUxMLCBOVUxMLCBOVUxMKSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1z Z2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImRlY3J5cHRpb24gaW5pdGlhbGl6YXRpb24g ZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vy cm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisKKwll bmNfa2V5X2xlbiA9IEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoZXZwX2NpcGhlcl9jdHgp OworCW1hY19rZXlfbGVuID0gaXZfa2V5X2xlbiA9IG1kX2tleV9sZW5ndGgobWQpOworCWtl eV9sZW4gPSBtYWNfa2V5X2xlbiArIGVuY19rZXlfbGVuICsgaXZfa2V5X2xlbjsKKworCWlm IChjZWstPmNla2RhdGFsZW4gIT0ga2V5X2xlbikKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwg c2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImNvbHVtbiBlbmNyeXB0aW9u IGtleSBoYXMgd3JvbmcgbGVuZ3RoIGZvciBhbGdvcml0aG0gKGhhczogJXp1LCByZXF1aXJl ZDogJWQpIiksCisJCQkJIGNlay0+Y2VrZGF0YWxlbiwga2V5X2xlbik7CisJCSplcnJtc2dw ID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJbWFjX2tleSA9IGNlay0+Y2VrZGF0 YTsKKwllbmNfa2V5ID0gY2VrLT5jZWtkYXRhICsgbWFjX2tleV9sZW47CisKKwlpZiAoIWdl dF9tZXNzYWdlX2F1dGhfdGFnKG1kLCBtYWNfa2V5LCBtYWNfa2V5X2xlbiwKKwkJCQkJCQkg IGlucHV0LCBpbnB1dGxlbiAtIChtZF9oYXNoX2xlbmd0aChtZCkgLyAyKSwKKwkJCQkJCQkg IG1kX3ZhbHVlLCAmbWRfbGVuLAorCQkJCQkJCSAgZXJybXNncCkpCisJeworCQlnb3RvIGZh aWw7CisJfQorCisJLyogdXNlIGNvbnN0YW50LXRpbWUgY29tcGFyaXNvbiwgcGVyIG1jZ3Jl dyBwYXBlciAqLworCWlmIChDUllQVE9fbWVtY21wKGlucHV0ICsgKGlucHV0bGVuIC0gbWRf bGVuKSwgbWRfdmFsdWUsIG1kX2xlbikgIT0gMCkKKwl7CisJCSplcnJtc2dwID0gbGlicHFf Z2V0dGV4dCgiTUFDIG1pc21hdGNoIik7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpdmxlbiA9 IEVWUF9DSVBIRVJfQ1RYX2l2X2xlbmd0aChldnBfY2lwaGVyX2N0eCk7CisJaXYgPSBpbnB1 dDsKKwlpbnB1dCArPSBpdmxlbjsKKwlpbnB1dGxlbiAtPSBpdmxlbjsKKwlpZiAoIUVWUF9E ZWNyeXB0SW5pdF9leChldnBfY2lwaGVyX2N0eCwgTlVMTCwgTlVMTCwgZW5jX2tleSwgaXYp KQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFf Z2V0dGV4dCgiZGVjcnlwdGlvbiBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzIiksCisJCQkJ IEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNn cCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWJ1ZnNpemUgPSBpbnB1dGxlbiAr IEVWUF9DSVBIRVJfQ1RYX2Jsb2NrX3NpemUoZXZwX2NpcGhlcl9jdHgpICsgMTsKKyNpZm5k ZWYgVEVTVF9FTkNSWVBUCisJYnVmID0gcHFSZXN1bHRBbGxvYyhyZXMsIGJ1ZnNpemUsIGZh bHNlKTsKKyNlbHNlCisJYnVmID0gbWFsbG9jKGJ1ZnNpemUpOworI2VuZGlmCisJaWYgKCFi dWYpCisJeworCQkqZXJybXNncCA9IGxpYnBxX2dldHRleHQoIm91dCBvZiBtZW1vcnkiKTsK KwkJZ290byBmYWlsOworCX0KKwlkZWNyID0gYnVmOworCWlmICghRVZQX0RlY3J5cHRVcGRh dGUoZXZwX2NpcGhlcl9jdHgsIGRlY3IsICZkZWNybGVuLCBpbnB1dCwgaW5wdXRsZW4gLSBt ZF9sZW4pKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkg bGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlvbiBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFz b25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1 ZjsKKwkJZ290byBmYWlsOworCX0KKwlpZiAoIUVWUF9EZWNyeXB0RmluYWxfZXgoZXZwX2Np cGhlcl9jdHgsIGRlY3IgKyBkZWNybGVuLCAmZGVjcmxlbjIpKQorCXsKKwkJc25wcmludGYo bXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlv biBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRf ZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKwlk ZWNybGVuICs9IGRlY3JsZW4yOworCUFzc2VydChkZWNybGVuIDwgYnVmc2l6ZSk7CisJZGVj cltkZWNybGVuXSA9ICdcMCc7CisJcmVzdWx0ID0gZGVjcjsKKworZmFpbDoKKwlFVlBfQ0lQ SEVSX0NUWF9mcmVlKGV2cF9jaXBoZXJfY3R4KTsKKworCXJldHVybiByZXN1bHQ7Cit9CisK Ky8qCisgKiBDb21wdXRlIGEgc3ludGhldGljIGluaXRpYWxpemF0aW9uIHZlY3RvciAoU0lW KSwgZm9yIGRldGVybWluaXN0aWMKKyAqIGVuY3J5cHRpb24uCisgKgorICogUGVyIHByb3Rv Y29sIHNwZWNpZmljYXRpb24sIHRoZSBTSVYgaXMgY29tcHV0ZWQgYXM6CisgKgorICogU1VC U1RSSU5HKEhNQUMoSywgUCkgRk9SIElWTEVOKQorICovCisjaWZuZGVmIFRFU1RfRU5DUllQ VAorc3RhdGljIGJvb2wKK21ha2Vfc2l2KFBHY29ubiAqY29ubiwKKwkJIHVuc2lnbmVkIGNo YXIgKml2LCBzaXplX3QgaXZsZW4sCisJCSBjb25zdCBFVlBfTUQgKm1kLAorCQkgY29uc3Qg dW5zaWduZWQgY2hhciAqaXZfa2V5LCBpbnQgaXZfa2V5X2xlbiwKKwkJIGNvbnN0IHVuc2ln bmVkIGNoYXIgKnBsYWludGV4dCwgaW50IHBsYWludGV4dF9sZW4pCit7CisJRVZQX01EX0NU WCAqZXZwX21kX2N0eCA9IE5VTEw7CisJRVZQX1BLRVkgICAqcGtleSA9IE5VTEw7CisJdW5z aWduZWQgY2hhciBtZF92YWx1ZVtFVlBfTUFYX01EX1NJWkVdOworCXNpemVfdAkJbWRfbGVu ID0gc2l6ZW9mKG1kX3ZhbHVlKTsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCWV2cF9t ZF9jdHggPSBFVlBfTURfQ1RYX25ldygpOworCisJcGtleSA9IEVWUF9QS0VZX25ld19yYXdf cHJpdmF0ZV9rZXkoRVZQX1BLRVlfSE1BQywgTlVMTCwgaXZfa2V5LCBpdl9rZXlfbGVuKTsK KwlpZiAoIXBrZXkpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY291 bGQgbm90IGFsbG9jYXRlIGtleSBmb3IgSE1BQzogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29u X2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKwor CWlmICghRVZQX0RpZ2VzdFNpZ25Jbml0KGV2cF9tZF9jdHgsIE5VTEwsIG1kLCBOVUxMLCBw a2V5KSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJkaWdlc3QgaW5p dGlhbGl6YXRpb24gZmFpbGVkOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3Ry aW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKCFFVlBf RGlnZXN0U2lnblVwZGF0ZShldnBfbWRfY3R4LCBwbGFpbnRleHQsIHBsYWludGV4dF9sZW4p KQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImRpZ2VzdCBzaWduaW5n IGZhaWxlZDogJXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0 X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmICghRVZQX0RpZ2VzdFNpZ25G aW5hbChldnBfbWRfY3R4LCBtZF92YWx1ZSwgJm1kX2xlbikpCisJeworCQlsaWJwcV9hcHBl bmRfY29ubl9lcnJvcihjb25uLCAiZGlnZXN0IHNpZ25pbmcgZmFpbGVkOiAlcyIsCisJCQkJ CQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3Rv IGZhaWw7CisJfQorCUFzc2VydChtZF9sZW4gPT0gbWRfaGFzaF9sZW5ndGgobWQpKTsKKwlt ZW1jcHkoaXYsIG1kX3ZhbHVlLCBpdmxlbik7CisKKwlyZXN1bHQgPSB0cnVlOworZmFpbDoK KwlFVlBfUEtFWV9mcmVlKHBrZXkpOworCUVWUF9NRF9DVFhfZnJlZShldnBfbWRfY3R4KTsK KwlyZXR1cm4gcmVzdWx0OworfQorI2VuZGlmCQkJCQkJCS8qIFRFU1RfRU5DUllQVCAqLwor CisvKgorICogRW5jcnlwdCBhIGNvbHVtbiB2YWx1ZQorICovCit1bnNpZ25lZCBjaGFyICoK K2VuY3J5cHRfdmFsdWUoUEdjb25uICpjb25uLCBjb25zdCBQR0NFSyAqY2VrLCBpbnQgY2Vr YWxnLCBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50ICpuYnl0ZXNwLCBib29sIGVu Y19kZXQpCit7CisJaW50CQkJbmJ5dGVzID0gKm5ieXRlc3A7CisJdW5zaWduZWQgY2hhciBp dltFVlBfTUFYX0lWX0xFTkdUSF07CisJc2l6ZV90CQlpdmxlbjsKKwljb25zdCBFVlBfQ0lQ SEVSICpjaXBoZXI7CisJY29uc3QgRVZQX01EICptZDsKKwlFVlBfQ0lQSEVSX0NUWCAqZXZw X2NpcGhlcl9jdHggPSBOVUxMOworCWludAkJCWVuY19rZXlfbGVuOworCWludAkJCW1hY19r ZXlfbGVuOworCWludAkJCWl2X2tleV9sZW47CisJaW50CQkJa2V5X2xlbjsKKwljb25zdCB1 bnNpZ25lZCBjaGFyICplbmNfa2V5OworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKm1hY19rZXk7 CisJY29uc3QgdW5zaWduZWQgY2hhciAqaXZfa2V5OworCXNpemVfdAkJYnVmc2l6ZTsKKwl1 bnNpZ25lZCBjaGFyICpidWYgPSBOVUxMOworCXVuc2lnbmVkIGNoYXIgKmVuY3I7CisJaW50 CQkJZW5jcmxlbiwKKwkJCQllbmNybGVuMjsKKworCWNvbnN0IGNoYXIgKmVycm1zZzsKKwl1 bnNpZ25lZCBjaGFyIG1kX3ZhbHVlW0VWUF9NQVhfTURfU0laRV07CisJc2l6ZV90CQltZF9s ZW4gPSBzaXplb2YobWRfdmFsdWUpOworCXNpemVfdAkJYnVmMnNpemU7CisJdW5zaWduZWQg Y2hhciAqYnVmMiA9IE5VTEw7CisKKwl1bnNpZ25lZCBjaGFyICpyZXN1bHQgPSBOVUxMOwor CisJY2lwaGVyID0gcGdfY2VrYWxnX3RvX29wZW5zc2xfY2lwaGVyKGNla2FsZyk7CisJaWYg KCFjaXBoZXIpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAidW5yZWNv Z25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVkIiwgY2VrYWxnKTsK KwkJZ290byBmYWlsOworCX0KKworCW1kID0gcGdfY2VrYWxnX3RvX29wZW5zc2xfbWQoY2Vr YWxnKTsKKwlpZiAoIW1kKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwg InVucmVjb2duaXplZCBkaWdlc3QgYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVkIiwgY2VrYWxn KTsKKwkJZ290byBmYWlsOworCX0KKworCWV2cF9jaXBoZXJfY3R4ID0gRVZQX0NJUEhFUl9D VFhfbmV3KCk7CisKKwlpZiAoIUVWUF9FbmNyeXB0SW5pdF9leChldnBfY2lwaGVyX2N0eCwg Y2lwaGVyLCBOVUxMLCBOVUxMLCBOVUxMKSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vy cm9yKGNvbm4sICJlbmNyeXB0aW9uIGluaXRpYWxpemF0aW9uIGZhaWxlZDogJXMiLAorCQkJ CQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290 byBmYWlsOworCX0KKworCWVuY19rZXlfbGVuID0gRVZQX0NJUEhFUl9DVFhfa2V5X2xlbmd0 aChldnBfY2lwaGVyX2N0eCk7CisJbWFjX2tleV9sZW4gPSBpdl9rZXlfbGVuID0gbWRfa2V5 X2xlbmd0aChtZCk7CisJa2V5X2xlbiA9IG1hY19rZXlfbGVuICsgZW5jX2tleV9sZW4gKyBp dl9rZXlfbGVuOworCisJaWYgKGNlay0+Y2VrZGF0YWxlbiAhPSBrZXlfbGVuKQorCXsKKwkJ bGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvbHVtbiBlbmNyeXB0aW9uIGtleSBo YXMgd3JvbmcgbGVuZ3RoIGZvciBhbGdvcml0aG0gKGhhczogJXp1LCByZXF1aXJlZDogJWQp IiwKKwkJCQkJCQkJY2VrLT5jZWtkYXRhbGVuLCBrZXlfbGVuKTsKKwkJZ290byBmYWlsOwor CX0KKworCW1hY19rZXkgPSBjZWstPmNla2RhdGE7CisJZW5jX2tleSA9IGNlay0+Y2VrZGF0 YSArIG1hY19rZXlfbGVuOworCWl2X2tleSA9IGNlay0+Y2VrZGF0YSArIG1hY19rZXlfbGVu ICsgZW5jX2tleV9sZW47CisKKwlpdmxlbiA9IEVWUF9DSVBIRVJfQ1RYX2l2X2xlbmd0aChl dnBfY2lwaGVyX2N0eCk7CisJQXNzZXJ0KGl2bGVuIDw9IHNpemVvZihpdikpOworCWlmIChl bmNfZGV0KQorCXsKKyNpZm5kZWYgVEVTVF9FTkNSWVBUCisJCW1ha2Vfc2l2KGNvbm4sIGl2 LCBpdmxlbiwgbWQsIGl2X2tleSwgaXZfa2V5X2xlbiwgdmFsdWUsIG5ieXRlcyk7CisjZWxz ZQorCQkodm9pZCkgaXZfa2V5OwkvKiB1bnVzZWQgKi8KKwkJbWVtY3B5KGl2LCB0ZXN0X0lW LCBpdmxlbik7CisjZW5kaWYKKwl9CisJZWxzZQorCQlwZ19zdHJvbmdfcmFuZG9tKGl2LCBp dmxlbik7CisJaWYgKCFFVlBfRW5jcnlwdEluaXRfZXgoZXZwX2NpcGhlcl9jdHgsIE5VTEws IE5VTEwsIGVuY19rZXksIGl2KSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNv bm4sICJlbmNyeXB0aW9uIGluaXRpYWxpemF0aW9uIGZhaWxlZDogJXMiLAorCQkJCQkJCQlF UlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWls OworCX0KKworCWJ1ZnNpemUgPSBpdmxlbiArIChuYnl0ZXMgKyAyICogRVZQX0NJUEhFUl9D VFhfYmxvY2tfc2l6ZShldnBfY2lwaGVyX2N0eCkgLSAxKTsKKwlidWYgPSBtYWxsb2MoYnVm c2l6ZSk7CisJaWYgKCFidWYpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25u LCAib3V0IG9mIG1lbW9yeSIpOworCQlnb3RvIGZhaWw7CisJfQorCW1lbWNweShidWYsIGl2 LCBpdmxlbik7CisJZW5jciA9IGJ1ZiArIGl2bGVuOworCWlmICghRVZQX0VuY3J5cHRVcGRh dGUoZXZwX2NpcGhlcl9jdHgsIGVuY3IsICZlbmNybGVuLCB2YWx1ZSwgbmJ5dGVzKSkKKwl7 CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJlbmNyeXB0aW9uIGZhaWxlZDog JXMiLAorCQkJCQkJCQlFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkp KTsKKwkJZ290byBmYWlsOworCX0KKwlpZiAoIUVWUF9FbmNyeXB0RmluYWxfZXgoZXZwX2Np cGhlcl9jdHgsIGVuY3IgKyBlbmNybGVuLCAmZW5jcmxlbjIpKQorCXsKKwkJbGlicHFfYXBw ZW5kX2Nvbm5fZXJyb3IoY29ubiwgImVuY3J5cHRpb24gZmFpbGVkOiAlcyIsCisJCQkJCQkJ CUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZh aWw7CisJfQorCWVuY3JsZW4gKz0gZW5jcmxlbjI7CisKKwllbmNyIC09IGl2bGVuOworCWVu Y3JsZW4gKz0gaXZsZW47CisKKwlBc3NlcnQoZW5jcmxlbiA8PSBidWZzaXplKTsKKworCWlm ICghZ2V0X21lc3NhZ2VfYXV0aF90YWcobWQsIG1hY19rZXksIG1hY19rZXlfbGVuLAorCQkJ CQkJCSAgZW5jciwgZW5jcmxlbiwKKwkJCQkJCQkgIG1kX3ZhbHVlLCAmbWRfbGVuLAorCQkJ CQkJCSAgJmVycm1zZykpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JN ZXNzYWdlLCAiJXNcbiIsIGVycm1zZyk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlidWYyc2l6 ZSA9IGVuY3JsZW4gKyBtZF9sZW47CisJYnVmMiA9IG1hbGxvYyhidWYyc2l6ZSk7CisJaWYg KCFidWYyKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIm91dCBvZiBt ZW1vcnkiKTsKKwkJZ290byBmYWlsOworCX0KKwltZW1jcHkoYnVmMiwgZW5jciwgZW5jcmxl bik7CisJbWVtY3B5KGJ1ZjIgKyBlbmNybGVuLCBtZF92YWx1ZSwgbWRfbGVuKTsKKworCXJl c3VsdCA9IGJ1ZjI7CisJbmJ5dGVzID0gYnVmMnNpemU7CisKK2ZhaWw6CisJZnJlZShidWYp OworCUVWUF9DSVBIRVJfQ1RYX2ZyZWUoZXZwX2NpcGhlcl9jdHgpOworCisJKm5ieXRlc3Ag PSBuYnl0ZXM7CisJcmV0dXJuIHJlc3VsdDsKK30KKworCisvKgorICogUnVuIHRlc3QgY2Fz ZXMKKyAqLworI2lmZGVmIFRFU1RfRU5DUllQVAorCitzdGF0aWMgdm9pZAorZGVidWdfcHJp bnRfaGV4KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnZhbCwgaW50 IGxlbikKK3sKKwlwcmludGYoIiVzID0iLCBuYW1lKTsKKwlmb3IgKGludCBpID0gMDsgaSA8 IGxlbjsgaSsrKQorCXsKKwkJaWYgKGkgJSAxNiA9PSAwKQorCQkJcHJpbnRmKCJcbiIpOwor CQllbHNlCisJCQlwcmludGYoIiAiKTsKKwkJcHJpbnRmKCIlMDJ4IiwgdmFsW2ldKTsKKwl9 CisJcHJpbnRmKCJcbiIpOworfQorCitzdGF0aWMgdm9pZAordGVzdF9jYXNlKGludCBhbGcs IGNvbnN0IHVuc2lnbmVkIGNoYXIgKkssIHNpemVfdCBLX2xlbiwgY29uc3QgdW5zaWduZWQg Y2hhciAqUCwgc2l6ZV90IFBfbGVuKQoreworCXVuc2lnbmVkIGNoYXIgKkM7CisJaW50CQkJ bmJ5dGVzOworCVBHQ0VLCQljZWs7CisKKwluYnl0ZXMgPSBQX2xlbjsKKwljZWsuY2VrZGF0 YSA9IHVuY29uc3RpZnkodW5zaWduZWQgY2hhciAqLCBLKTsKKwljZWsuY2VrZGF0YWxlbiA9 IEtfbGVuOworCisJQyA9IGVuY3J5cHRfdmFsdWUoTlVMTCwgJmNlaywgYWxnLCBQLCAmbmJ5 dGVzLCB0cnVlKTsKKwlkZWJ1Z19wcmludF9oZXgoIkMiLCBDLCBuYnl0ZXMpOworfQorCitp bnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCXByaW50ZigiNS4xXG4iKTsK Kwl0ZXN0X2Nhc2UoUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2LCBLLCAz MiwgUCwgc2l6ZW9mKFApKTsKKwlwcmludGYoIjUuMlxuIik7CisJdGVzdF9jYXNlKFBHX0NF S19BRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NCwgSywgNDgsIFAsIHNpemVvZihQKSk7 CisJcHJpbnRmKCI1LjNcbiIpOworCXRlc3RfY2FzZShQR19DRUtfQUVBRF9BRVNfMjU2X0NC Q19ITUFDX1NIQV8zODQsIEssIDU2LCBQLCBzaXplb2YoUCkpOworCXByaW50ZigiNS40XG4i KTsKKwl0ZXN0X2Nhc2UoUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEyLCBL LCA2NCwgUCwgc2l6ZW9mKFApKTsKKworCXJldHVybiAwOworfQorCisjZW5kaWYJCQkJCQkJ LyogVEVTVF9FTkNSWVBUICovCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9m ZS1lbmNyeXB0LmggYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LmgKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMGI2NWY5MTNkYQotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaApAQCAtMCwwICsx LDMzIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBmZS1lbmNyeXB0LmgKKyAq CisgKiBjbGllbnQtc2lkZSBjb2x1bW4gZW5jcnlwdGlvbiBzdXBwb3J0CisgKgorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjMsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMg b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIElERU5USUZJQ0FUSU9O CisgKgkgIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaAorICoKKyAqLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgRkVfRU5DUllQVF9ICisjZGVmaW5lIEZF X0VOQ1JZUFRfSAorCisjaW5jbHVkZSAibGlicHEtZmUuaCIKKyNpbmNsdWRlICJsaWJwcS1p bnQuaCIKKworZXh0ZXJuIHVuc2lnbmVkIGNoYXIgKmRlY3J5cHRfY2VrX2Zyb21fZmlsZShQ R2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKmNta2ZpbGVuYW1lLCBpbnQgY21rYWxnLAorCQkJ CQkJCQkJCQlpbnQgZnJvbWxlbiwgY29uc3QgdW5zaWduZWQgY2hhciAqZnJvbSwKKwkJCQkJ CQkJCQkJaW50ICp0b2xlbik7CisKK2V4dGVybiB1bnNpZ25lZCBjaGFyICpkZWNyeXB0X3Zh bHVlKFBHcmVzdWx0ICpyZXMsIGNvbnN0IFBHQ0VLICpjZWssIGludCBjZWthbGcsCisJCQkJ CQkJCQljb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgaW50IGlucHV0bGVuLAorCQkJCQkJ CQkJY29uc3QgY2hhciAqKmVycm1zZ3ApOworCitleHRlcm4gdW5zaWduZWQgY2hhciAqZW5j cnlwdF92YWx1ZShQR2Nvbm4gKmNvbm4sIGNvbnN0IFBHQ0VLICpjZWssIGludCBjZWthbGcs CisJCQkJCQkJCQljb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50ICpuYnl0ZXNwLCBi b29sIGVuY19kZXQpOworCisjZW5kaWYJCQkJCQkJLyogRkVfRU5DUllQVF9IICovCmRpZmYg LS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMgYi9zcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1leGVjLmMKaW5kZXggZGEyMjlkNjMyYS4uY2EwY2I2MTVjZCAxMDA2NDQK LS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCisrKyBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLWV4ZWMuYwpAQCAtMjQsNiArMjQsOCBAQAogI2luY2x1ZGUgPHVuaXN0 ZC5oPgogI2VuZGlmCiAKKyNpbmNsdWRlICJjb21tb24vY29sZW5jLmgiCisjaW5jbHVkZSAi ZmUtZW5jcnlwdC5oIgogI2luY2x1ZGUgImxpYnBxLWZlLmgiCiAjaW5jbHVkZSAibGlicHEt aW50LmgiCiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKQEAgLTcyLDcgKzc0LDggQEAgc3Rh dGljIGludAlQUXNlbmRRdWVyeUd1dHMoUEdjb25uICpjb25uLAogCQkJCQkJCWNvbnN0IGNo YXIgKmNvbnN0ICpwYXJhbVZhbHVlcywKIAkJCQkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3Ro cywKIAkJCQkJCQljb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKLQkJCQkJCQlpbnQgcmVzdWx0 Rm9ybWF0KTsKKwkJCQkJCQlpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCQkJCVBHcmVzdWx0ICpw YXJhbURlc2MpOwogc3RhdGljIHZvaWQgcGFyc2VJbnB1dChQR2Nvbm4gKmNvbm4pOwogc3Rh dGljIFBHcmVzdWx0ICpnZXRDb3B5UmVzdWx0KFBHY29ubiAqY29ubiwgRXhlY1N0YXR1c1R5 cGUgY29weXR5cGUpOwogc3RhdGljIGJvb2wgUFFleGVjU3RhcnQoUEdjb25uICpjb25uKTsK QEAgLTExODMsNiArMTE4Niw0MTQgQEAgcHFTYXZlUGFyYW1ldGVyU3RhdHVzKFBHY29ubiAq Y29ubiwgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCiAJfQogfQogCisv KgorICogcHFTYXZlQ29sdW1uTWFzdGVyS2V5IC0gc2F2ZSBjb2x1bW4gbWFzdGVyIGtleSBz ZW50IGJ5IGJhY2tlbmQKKyAqLworaW50CitwcVNhdmVDb2x1bW5NYXN0ZXJLZXkoUEdjb25u ICpjb25uLCBpbnQga2V5aWQsIGNvbnN0IGNoYXIgKmtleW5hbWUsCisJCQkJCSAgY29uc3Qg Y2hhciAqa2V5cmVhbG0pCit7CisJY2hhcgkgICAqa2V5bmFtZV9jb3B5OworCWNoYXIJICAg KmtleXJlYWxtX2NvcHk7CisJYm9vbAkJZm91bmQ7CisKKwlrZXluYW1lX2NvcHkgPSBzdHJk dXAoa2V5bmFtZSk7CisJaWYgKCFrZXluYW1lX2NvcHkpCisJCXJldHVybiBFT0Y7CisJa2V5 cmVhbG1fY29weSA9IHN0cmR1cChrZXlyZWFsbSk7CisJaWYgKCFrZXlyZWFsbV9jb3B5KQor CXsKKwkJZnJlZShrZXluYW1lX2NvcHkpOworCQlyZXR1cm4gRU9GOworCX0KKworCWZvdW5k ID0gZmFsc2U7CisJZm9yIChpbnQgaSA9IDA7IGkgPCBjb25uLT5uY21rczsgaSsrKQorCXsK KwkJc3RydWN0IHBnX2NtayAqY2hlY2tjbWsgPSAmY29ubi0+Y21rc1tpXTsKKworCQkvKiBy ZXBsYWNlIGV4aXN0aW5nPyAqLworCQlpZiAoY2hlY2tjbWstPmNta2lkID09IGtleWlkKQor CQl7CisJCQlmcmVlKGNoZWNrY21rLT5jbWtuYW1lKTsKKwkJCWZyZWUoY2hlY2tjbWstPmNt a3JlYWxtKTsKKwkJCWNoZWNrY21rLT5jbWtuYW1lID0ga2V5bmFtZV9jb3B5OworCQkJY2hl Y2tjbWstPmNta3JlYWxtID0ga2V5cmVhbG1fY29weTsKKwkJCWZvdW5kID0gdHJ1ZTsKKwkJ CWJyZWFrOworCQl9CisJfQorCisJLyogYXBwZW5kIG5ldz8gKi8KKwlpZiAoIWZvdW5kKQor CXsKKwkJaW50CQkJbmV3bmNta3M7CisJCXN0cnVjdCBwZ19jbWsgKm5ld2Nta3M7CisJCXN0 cnVjdCBwZ19jbWsgKm5ld2NtazsKKworCQluZXduY21rcyA9IGNvbm4tPm5jbWtzICsgMTsK KwkJaWYgKG5ld25jbWtzIDw9IDApCisJCQlyZXR1cm4gRU9GOworCQluZXdjbWtzID0gcmVh bGxvYyhjb25uLT5jbWtzLCBuZXduY21rcyAqIHNpemVvZihzdHJ1Y3QgcGdfY21rKSk7CisJ CWlmICghbmV3Y21rcykKKwkJeworCQkJZnJlZShrZXluYW1lX2NvcHkpOworCQkJZnJlZShr ZXlyZWFsbV9jb3B5KTsKKwkJCXJldHVybiBFT0Y7CisJCX0KKworCQluZXdjbWsgPSAmbmV3 Y21rc1tuZXduY21rcyAtIDFdOworCQluZXdjbWstPmNta2lkID0ga2V5aWQ7CisJCW5ld2Nt ay0+Y21rbmFtZSA9IGtleW5hbWVfY29weTsKKwkJbmV3Y21rLT5jbWtyZWFsbSA9IGtleXJl YWxtX2NvcHk7CisKKwkJY29ubi0+bmNta3MgPSBuZXduY21rczsKKwkJY29ubi0+Y21rcyA9 IG5ld2Nta3M7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBSZXBsYWNlIHBsYWNl aG9sZGVycyBpbiBpbnB1dCBzdHJpbmcuICBSZXR1cm4gdmFsdWUgbWFsbG9jJ2VkLgorICov CitzdGF0aWMgY2hhciAqCityZXBsYWNlX2Nta19wbGFjZWhvbGRlcnMoY29uc3QgY2hhciAq aW4sIGNvbnN0IGNoYXIgKmNta25hbWUsIGNvbnN0IGNoYXIgKmNta3JlYWxtLCBpbnQgY21r YWxnLCBjb25zdCBjaGFyICp0bXBmaWxlKQoreworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisK Kwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKwlmb3IgKGNvbnN0IGNoYXIgKnAgPSBpbjsg KnA7IHArKykKKwl7CisJCWlmIChwWzBdID09ICclJykKKwkJeworCQkJc3dpdGNoIChwWzFd KQorCQkJeworCQkJCWNhc2UgJ2EnOgorCQkJCQl7CisJCQkJCQljb25zdCBjaGFyICpzID0g Z2V0X2Nta2FsZ19uYW1lKGNta2FsZyk7CisKKwkJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsIHMgPyBzIDogIklOVkFMSUQiKTsKKwkJCQkJfQorCQkJCQlwKys7CisJCQkJCWJy ZWFrOworCQkJCWNhc2UgJ2onOgorCQkJCQl7CisJCQkJCQljb25zdCBjaGFyICpzID0gZ2V0 X2Nta2FsZ19qd2FfbmFtZShjbWthbGcpOworCisJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0 cigmYnVmLCBzID8gcyA6ICJJTlZBTElEIik7CisJCQkJCX0KKwkJCQkJcCsrOworCQkJCQli cmVhazsKKwkJCQljYXNlICdrJzoKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1Ziwg Y21rbmFtZSk7CisJCQkJCXArKzsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSAncCc6CisJCQkJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsIHRtcGZpbGUpOworCQkJCQlwKys7CisJCQkJ CWJyZWFrOworCQkJCWNhc2UgJ3InOgorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVm LCBjbWtyZWFsbSk7CisJCQkJCXArKzsKKwkJCQkJYnJlYWs7CisJCQkJZGVmYXVsdDoKKwkJ CQkJYXBwZW5kUFFFeHBCdWZmZXJDaGFyKCZidWYsIHBbMF0pOworCQkJfQorCQl9CisJCWVs c2UKKwkJCWFwcGVuZFBRRXhwQnVmZmVyQ2hhcigmYnVmLCBwWzBdKTsKKwl9CisKKwlyZXR1 cm4gYnVmLmRhdGE7Cit9CisKKyNpZm5kZWYgVVNFX1NTTAorLyoKKyAqIER1bW15IGltcGxl bWVudGF0aW9uIGZvciBub24tU1NMIGJ1aWxkcworICovCit1bnNpZ25lZCBjaGFyICoKK2Rl Y3J5cHRfY2VrX2Zyb21fZmlsZShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKmNta2ZpbGVu YW1lLCBpbnQgY21rYWxnLAorCQkJCQkgIGludCBmcm9tbGVuLCBjb25zdCB1bnNpZ25lZCBj aGFyICpmcm9tLAorCQkJCQkgIGludCAqdG9sZW4pCit7CisJbGlicHFfYXBwZW5kX2Nvbm5f ZXJyb3IoY29ubiwgImNvbHVtbiBlbmNyeXB0aW9uIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBi dWlsZCIpOworCXJldHVybiBOVUxMOworfQorI2VuZGlmCisKKy8qCisgKiBEZWNyeXB0IGEg Q0VLIHVzaW5nIHRoZSBnaXZlbiBDTUsuICBUaGUgY2lwaGVydGV4dCBpcyBwYXNzZWQgaW4K KyAqICJmcm9tIiBhbmQgImZyb21sZW4iLiAgUmV0dXJuIHRoZSBkZWNyeXB0ZWQgdmFsdWUg aW4gYSBtYWxsb2MnZWQgYXJlYSwgaXRzCisgKiBsZW5ndGggdmlhICJ0b2xlbiIuICBSZXR1 cm4gTlVMTCBvbiBlcnJvcjsgYWRkIGVycm9yIG1lc3NhZ2VzIGRpcmVjdGx5IHRvCisgKiAi Y29ubiIuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBjaGFyICoKK2RlY3J5cHRfY2VrKFBHY29u biAqY29ubiwgY29uc3QgUEdDTUsgKmNtaywgaW50IGNta2FsZywKKwkJCWludCBmcm9tbGVu LCBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLAorCQkJaW50ICp0b2xlbikKK3sKKwljaGFy CSAgICpjbWtsb29rdXA7CisJYm9vbAkJZm91bmQgPSBmYWxzZTsKKwl1bnNpZ25lZCBjaGFy ICpyZXN1bHQgPSBOVUxMOworCisJY21rbG9va3VwID0gc3RyZHVwKGNvbm4tPmNta2xvb2t1 cCA/IGNvbm4tPmNta2xvb2t1cCA6ICIiKTsKKworCWlmICghY21rbG9va3VwKQorCXsKKwkJ bGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIm91dCBvZiBtZW1vcnkiKTsKKwkJcmV0 dXJuIE5VTEw7CisJfQorCisJLyoKKwkgKiBBbmFseXplIHNlbWljb2xvbi1zZXBhcmF0ZWQg bGlzdAorCSAqLworCWZvciAoY2hhciAqcyA9IHN0cnRvayhjbWtsb29rdXAsICI7Iik7IHM7 IHMgPSBzdHJ0b2soTlVMTCwgIjsiKSkKKwl7CisJCWNoYXIJICAgKnNlcDsKKworCQkvKiBz cGxpdCBmb3VuZCB0b2tlbiBhdCAnPScgKi8KKwkJc2VwID0gc3RyY2hyKHMsICc9Jyk7CisJ CWlmICghc2VwKQorCQl7CisJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAic3lu dGF4IGVycm9yIGluIENNSyBsb29rdXAgc3BlY2lmaWNhdGlvbiwgbWlzc2luZyBcIiVjXCI6 ICVzIiwgJz0nLCBzKTsKKwkJCWJyZWFrOworCQl9CisKKwkJLyogbWF0Y2hpbmcgcmVhbG0/ ICovCisJCWlmIChzdHJuY21wKHMsICIqIiwgc2VwIC0gcykgPT0gMCB8fCBzdHJuY21wKHMs IGNtay0+Y21rcmVhbG0sIHNlcCAtIHMpID09IDApCisJCXsKKwkJCWNoYXIJICAgKnNlcDI7 CisKKwkJCWZvdW5kID0gdHJ1ZTsKKworCQkJc2VwMiA9IHN0cmNocihzZXAsICc6Jyk7CisJ CQlpZiAoIXNlcDIpCisJCQl7CisJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwg InN5bnRheCBlcnJvciBpbiBDTUsgbG9va3VwIHNwZWNpZmljYXRpb24sIG1pc3NpbmcgXCIl Y1wiOiAlcyIsICc6Jywgcyk7CisJCQkJZ290byBmYWlsOworCQkJfQorCisJCQlpZiAoc3Ry bmNtcChzZXAgKyAxLCAiZmlsZSIsIHNlcDIgLSAoc2VwICsgMSkpID09IDApCisJCQl7CisJ CQkJY2hhcgkgICAqY21rZmlsZW5hbWU7CisKKwkJCQljbWtmaWxlbmFtZSA9IHJlcGxhY2Vf Y21rX3BsYWNlaG9sZGVycyhzZXAyICsgMSwgY21rLT5jbWtuYW1lLCBjbWstPmNta3JlYWxt LCBjbWthbGcsICJJTlZBTElEIik7CisJCQkJcmVzdWx0ID0gZGVjcnlwdF9jZWtfZnJvbV9m aWxlKGNvbm4sIGNta2ZpbGVuYW1lLCBjbWthbGcsIGZyb21sZW4sIGZyb20sIHRvbGVuKTsK KwkJCQlmcmVlKGNta2ZpbGVuYW1lKTsKKwkJCX0KKwkJCWVsc2UgaWYgKHN0cm5jbXAoc2Vw ICsgMSwgInJ1biIsIHNlcDIgLSAoc2VwICsgMSkpID09IDApCisJCQl7CisJCQkJY2hhcgkJ dG1wZmlsZVtNQVhQR1BBVEhdID0gezB9OworCQkJCWludAkJCWZkOworCQkJCWNoYXIJICAg KmNvbW1hbmQ7CisJCQkJRklMRQkgICAqZnA7CisJCQkJLyogb25seSBuZWVkcyBlbm91Z2gg cm9vbSBmb3IgQ0VLIGtleSBtYXRlcmlhbCAqLworCQkJCWNoYXIJCWJ1ZlsxMDI0XTsKKwkJ CQlzaXplX3QJCW5yZWFkOworCQkJCWludAkJCXJjOworCisjaWZuZGVmIFdJTjMyCisJCQkJ eworCQkJCQljb25zdCBjaGFyICp0bXBkaXI7CisKKwkJCQkJdG1wZGlyID0gZ2V0ZW52KCJU TVBESVIiKTsKKwkJCQkJaWYgKCF0bXBkaXIpCisJCQkJCQl0bXBkaXIgPSAiL3RtcCI7CisJ CQkJCXN0cmxjcHkodG1wZmlsZSwgdG1wZGlyLCBzaXplb2YodG1wZmlsZSkpOworCQkJCQlz dHJsY2F0KHRtcGZpbGUsICIvbGlicHEtWFhYWFhYIiwgc2l6ZW9mKHRtcGZpbGUpKTsKKwkJ CQkJZmQgPSBta3N0ZW1wKHRtcGZpbGUpOworCQkJCQlpZiAoZmQgPCAwKQorCQkJCQl7CisJ CQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY291bGQgbm90IHJ1biBjcmVh dGUgdGVtcG9yYXJ5IGZpbGU6ICVtIik7CisJCQkJCQlnb3RvIGZhaWw7CisJCQkJCX0KKwkJ CQl9CisjZWxzZQorCQkJCXsKKwkJCQkJY2hhcgkJdG1wZGlyW01BWFBHUEFUSF07CisJCQkJ CWludAkJCXJldDsKKworCQkJCQlyZXQgPSBHZXRUZW1wUGF0aChNQVhQR1BBVEgsIHRtcGRp cik7CisJCQkJCWlmIChyZXQgPT0gMCB8fCByZXQgPiBNQVhQR1BBVEgpCisJCQkJCXsKKwkJ CQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb3VsZCBub3QgbG9jYXRlIHRl bXBvcmFyeSBkaXJlY3Rvcnk6ICVzIiwKKwkJCQkJCQkJCQkJCSFyZXQgPyBzdHJlcnJvcihl cnJubykgOiAiIik7CisJCQkJCQlyZXR1cm4gZmFsc2U7CisJCQkJCX0KKworCQkJCQlpZiAo R2V0VGVtcEZpbGVOYW1lKHRtcGRpciwgImxpYnBxIiwgMCwgdG1wZmlsZSkgPT0gMCkKKwkJ CQkJeworCQkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBy dW4gY3JlYXRlIHRlbXBvcmFyeSBmaWxlOiBlcnJvciBjb2RlICVsdSIsCisJCQkJCQkJCQkJ CQlHZXRMYXN0RXJyb3IoKSk7CisJCQkJCQlnb3RvIGZhaWw7CisJCQkJCX0KKworCQkJCQlm ZCA9IG9wZW4odG1wZmlsZSwgT19XUk9OTFksIDApOworCQkJCQlpZiAoZmQgPCAwKQorCQkJ CQl7CisJCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY291bGQgbm90IHJ1 biBvcGVuIHRlbXBvcmFyeSBmaWxlOiAlbSIpOworCQkJCQkJZ290byBmYWlsOworCQkJCQl9 CisJCQkJfQorI2VuZGlmCisJCQkJaWYgKHdyaXRlKGZkLCBmcm9tLCBmcm9tbGVuKSA8IGZy b21sZW4pCisJCQkJeworCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY291 bGQgbm90IHdyaXRlIHRvIHRlbXBvcmFyeSBmaWxlOiAlbSIpOworCQkJCQljbG9zZShmZCk7 CisJCQkJCXVubGluayh0bXBmaWxlKTsKKwkJCQkJZ290byBmYWlsOworCQkJCX0KKwkJCQlp ZiAoY2xvc2UoZmQpIDwgMCkKKwkJCQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9y KGNvbm4sICJjb3VsZCBub3QgY2xvc2UgdGVtcG9yYXJ5IGZpbGU6ICVtIik7CisJCQkJCXVu bGluayh0bXBmaWxlKTsKKwkJCQkJZ290byBmYWlsOworCQkJCX0KKworCQkJCWNvbW1hbmQg PSByZXBsYWNlX2Nta19wbGFjZWhvbGRlcnMoc2VwMiArIDEsIGNtay0+Y21rbmFtZSwgY21r LT5jbWtyZWFsbSwgY21rYWxnLCB0bXBmaWxlKTsKKwkJCQlmcCA9IHBvcGVuKGNvbW1hbmQs ICJyIik7CisJCQkJaWYgKCFmcCkKKwkJCQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vy cm9yKGNvbm4sICJjb3VsZCBub3QgcnVuIGNvbW1hbmQgXCIlc1wiOiAlbSIsIGNvbW1hbmQp OworCQkJCQlmcmVlKGNvbW1hbmQpOworCQkJCQl1bmxpbmsodG1wZmlsZSk7CisJCQkJCWdv dG8gZmFpbDsKKwkJCQl9CisJCQkJbnJlYWQgPSBmcmVhZChidWYsIDEsIHNpemVvZihidWYp LCBmcCk7CisJCQkJaWYgKGZlcnJvcihmcCkpCisJCQkJeworCQkJCQlsaWJwcV9hcHBlbmRf Y29ubl9lcnJvcihjb25uLCAiY291bGQgbm90IHJlYWQgZnJvbSBjb21tYW5kOiAlbSIpOwor CQkJCQlwY2xvc2UoZnApOworCQkJCQlmcmVlKGNvbW1hbmQpOworCQkJCQl1bmxpbmsodG1w ZmlsZSk7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJCQkJZWxzZSBpZiAoIWZlb2YoZnAp KQorCQkJCXsKKwkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIm91dHB1dCBm cm9tIGNvbW1hbmQgdG9vIGxvbmciKTsKKwkJCQkJcGNsb3NlKGZwKTsKKwkJCQkJZnJlZShj b21tYW5kKTsKKwkJCQkJdW5saW5rKHRtcGZpbGUpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJ fQorCQkJCXJjID0gcGNsb3NlKGZwKTsKKwkJCQlpZiAocmMgIT0gMCkKKwkJCQl7CisJCQkJ CS8qCisJCQkJCSAqIFhYWCB3b3VsZCBsaWtlIHRvIHVzZSB3YWl0X3Jlc3VsdF90b19zdHIo cmMpIGJ1dCB0aGF0CisJCQkJCSAqIGNhbm5vdCBiZSBjYWxsZWQgZnJvbSBsaWJwcSBiZWNh dXNlIGl0IGNhbGxzIGV4aXQoKQorCQkJCQkgKi8KKwkJCQkJbGlicHFfYXBwZW5kX2Nvbm5f ZXJyb3IoY29ubiwgImNvdWxkIG5vdCBydW4gY29tbWFuZCBcIiVzXCIiLCBjb21tYW5kKTsK KwkJCQkJZnJlZShjb21tYW5kKTsKKwkJCQkJdW5saW5rKHRtcGZpbGUpOworCQkJCQlnb3Rv IGZhaWw7CisJCQkJfQorCQkJCWZyZWUoY29tbWFuZCk7CisJCQkJdW5saW5rKHRtcGZpbGUp OworCisJCQkJcmVzdWx0ID0gbWFsbG9jKG5yZWFkKTsKKwkJCQlpZiAoIXJlc3VsdCkKKwkJ CQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJvdXQgb2YgbWVtb3J5 Iik7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJCQkJbWVtY3B5KHJlc3VsdCwgYnVmLCBu cmVhZCk7CisJCQkJKnRvbGVuID0gbnJlYWQ7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJ bGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIkNNSyBsb29rdXAgc2NoZW1lIFwiJXNc IiBub3QgcmVjb2duaXplZCIsIHNlcCArIDEpOworCQkJCWdvdG8gZmFpbDsKKwkJCX0KKwkJ fQorCX0KKworCWlmICghZm91bmQpCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihj b25uLCAibm8gQ01LIGxvb2t1cCBmb3VuZCBmb3IgcmVhbG0gXCIlc1wiIiwgY21rLT5jbWty ZWFsbSk7CisJfQorCitmYWlsOgorCWZyZWUoY21rbG9va3VwKTsKKwlyZXR1cm4gcmVzdWx0 OworfQorCisvKgorICogcHFTYXZlQ29sdW1uRW5jcnlwdGlvbktleSAtIHNhdmUgY29sdW1u IGVuY3J5cHRpb24ga2V5IHNlbnQgYnkgYmFja2VuZAorICovCitpbnQKK3BxU2F2ZUNvbHVt bkVuY3J5cHRpb25LZXkoUEdjb25uICpjb25uLCBpbnQga2V5aWQsIGludCBjbWtpZCwgaW50 IGNta2FsZywgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUsIGludCBsZW4pCit7CisJUEdD TUsJICAgKmNtayA9IE5VTEw7CisJdW5zaWduZWQgY2hhciAqcGxhaW52YWwgPSBOVUxMOwor CWludAkJCXBsYWludmFsbGVuID0gMDsKKwlib29sCQlmb3VuZDsKKworCWZvciAoaW50IGkg PSAwOyBpIDwgY29ubi0+bmNta3M7IGkrKykKKwl7CisJCWlmIChjb25uLT5jbWtzW2ldLmNt a2lkID09IGNta2lkKQorCQl7CisJCQljbWsgPSAmY29ubi0+Y21rc1tpXTsKKwkJCWJyZWFr OworCQl9CisJfQorCisJaWYgKCFjbWspCisJCXJldHVybiBFT0Y7CisKKwlwbGFpbnZhbCA9 IGRlY3J5cHRfY2VrKGNvbm4sIGNtaywgY21rYWxnLCBsZW4sIHZhbHVlLCAmcGxhaW52YWxs ZW4pOworCWlmICghcGxhaW52YWwpCisJCXJldHVybiBFT0Y7CisKKwlmb3VuZCA9IGZhbHNl OworCWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+bmNla3M7IGkrKykKKwl7CisJCXN0cnVj dCBwZ19jZWsgKmNoZWNrY2VrID0gJmNvbm4tPmNla3NbaV07CisKKwkJLyogcmVwbGFjZSBl eGlzdGluZz8gKi8KKwkJaWYgKGNoZWNrY2VrLT5jZWtpZCA9PSBrZXlpZCkKKwkJeworCQkJ ZnJlZShjaGVja2Nlay0+Y2VrZGF0YSk7CisJCQljaGVja2Nlay0+Y2VrZGF0YSA9IHBsYWlu dmFsOworCQkJY2hlY2tjZWstPmNla2RhdGFsZW4gPSBwbGFpbnZhbGxlbjsKKwkJCWZvdW5k ID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJLyogYXBwZW5kIG5ldz8gKi8KKwlp ZiAoIWZvdW5kKQorCXsKKwkJaW50CQkJbmV3bmNla3M7CisJCXN0cnVjdCBwZ19jZWsgKm5l d2Nla3M7CisJCXN0cnVjdCBwZ19jZWsgKm5ld2NlazsKKworCQluZXduY2VrcyA9IGNvbm4t Pm5jZWtzICsgMTsKKwkJaWYgKG5ld25jZWtzIDw9IDApCisJCXsKKwkJCWZyZWUocGxhaW52 YWwpOworCQkJcmV0dXJuIEVPRjsKKwkJfQorCQluZXdjZWtzID0gcmVhbGxvYyhjb25uLT5j ZWtzLCBuZXduY2VrcyAqIHNpemVvZihzdHJ1Y3QgcGdfY2VrKSk7CisJCWlmICghbmV3Y2Vr cykKKwkJeworCQkJZnJlZShwbGFpbnZhbCk7CisJCQlyZXR1cm4gRU9GOworCQl9CisKKwkJ bmV3Y2VrID0gJm5ld2Nla3NbbmV3bmNla3MgLSAxXTsKKwkJbmV3Y2VrLT5jZWtpZCA9IGtl eWlkOworCQluZXdjZWstPmNla2RhdGEgPSBwbGFpbnZhbDsKKwkJbmV3Y2VrLT5jZWtkYXRh bGVuID0gcGxhaW52YWxsZW47CisKKwkJY29ubi0+bmNla3MgPSBuZXduY2VrczsKKwkJY29u bi0+Y2VrcyA9IG5ld2Nla3M7CisJfQorCisJcmV0dXJuIDA7Cit9CiAKIC8qCiAgKiBwcVJv d1Byb2Nlc3NvcgpAQCAtMTI1MSw2ICsxNjYyLDQzIEBAIHBxUm93UHJvY2Vzc29yKFBHY29u biAqY29ubiwgY29uc3QgY2hhciAqKmVycm1zZ3ApCiAJCQlib29sCQlpc2JpbmFyeSA9IChy ZXMtPmF0dERlc2NzW2ldLmZvcm1hdCAhPSAwKTsKIAkJCWNoYXIJICAgKnZhbDsKIAorCQkJ aWYgKHJlcy0+YXR0RGVzY3NbaV0uY2VraWQpCisJCQl7CisJCQkJLyogZW5jcnlwdGVkIGNv bHVtbiAqLworI2lmZGVmIFVTRV9TU0wKKwkJCQlQR0NFSwkgICAqY2VrID0gTlVMTDsKKwor CQkJCWlmICghaXNiaW5hcnkpCisJCQkJeworCQkJCQkqZXJybXNncCA9IGxpYnBxX2dldHRl eHQoImVuY3J5cHRlZCBjb2x1bW4gd2FzIG5vdCBzZW50IGluIGJpbmFyeSBmb3JtYXQiKTsK KwkJCQkJZ290byBmYWlsOworCQkJCX0KKworCQkJCWZvciAoaW50IGogPSAwOyBqIDwgY29u bi0+bmNla3M7IGorKykKKwkJCQl7CisJCQkJCWlmIChjb25uLT5jZWtzW2pdLmNla2lkID09 IHJlcy0+YXR0RGVzY3NbaV0uY2VraWQpCisJCQkJCXsKKwkJCQkJCWNlayA9ICZjb25uLT5j ZWtzW2pdOworCQkJCQkJYnJlYWs7CisJCQkJCX0KKwkJCQl9CisJCQkJaWYgKCFjZWspCisJ CQkJeworCQkJCQkqZXJybXNncCA9IGxpYnBxX2dldHRleHQoImNvbHVtbiBlbmNyeXB0aW9u IGtleSBub3QgZm91bmQiKTsKKwkJCQkJZ290byBmYWlsOworCQkJCX0KKworCQkJCXZhbCA9 IChjaGFyICopIGRlY3J5cHRfdmFsdWUocmVzLCBjZWssIHJlcy0+YXR0RGVzY3NbaV0uY2Vr YWxnLAorCQkJCQkJCQkJCQkgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgY29sdW1uc1tpXS52 YWx1ZSwgY2xlbiwgZXJybXNncCk7CisJCQkJaWYgKHZhbCA9PSBOVUxMKQorCQkJCQlnb3Rv IGZhaWw7CisjZWxzZQorCQkJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgiY29sdW1uIGVu Y3J5cHRpb24gbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkIik7CisJCQkJZ290byBmYWls OworI2VuZGlmCisJCQl9CisJCQllbHNlCisJCQl7CiAJCQl2YWwgPSAoY2hhciAqKSBwcVJl c3VsdEFsbG9jKHJlcywgY2xlbiArIDEsIGlzYmluYXJ5KTsKIAkJCWlmICh2YWwgPT0gTlVM TCkKIAkJCQlnb3RvIGZhaWw7CkBAIC0xMjU4LDYgKzE3MDYsNyBAQCBwcVJvd1Byb2Nlc3Nv cihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKiplcnJtc2dwKQogCQkJLyogY29weSBhbmQg emVyby10ZXJtaW5hdGUgdGhlIGRhdGEgKGV2ZW4gaWYgaXQncyBiaW5hcnkpICovCiAJCQlt ZW1jcHkodmFsLCBjb2x1bW5zW2ldLnZhbHVlLCBjbGVuKTsKIAkJCXZhbFtjbGVuXSA9ICdc MCc7CisJCQl9CiAKIAkJCXR1cFtpXS5sZW4gPSBjbGVuOwogCQkJdHVwW2ldLnZhbHVlID0g dmFsOwpAQCAtMTUwMCw2ICsxOTQ5LDggQEAgUFFzZW5kUXVlcnlQYXJhbXMoUEdjb25uICpj b25uLAogCQkJCSAgY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJICBpbnQgcmVzdWx0 Rm9ybWF0KQogeworCVBHcmVzdWx0ICAgKnBhcmFtRGVzYyA9IE5VTEw7CisKIAlpZiAoIVBR c2VuZFF1ZXJ5U3RhcnQoY29ubiwgdHJ1ZSkpCiAJCXJldHVybiAwOwogCkBAIC0xNTE2LDYg KzE5NjcsMzcgQEAgUFFzZW5kUXVlcnlQYXJhbXMoUEdjb25uICpjb25uLAogCQlyZXR1cm4g MDsKIAl9CiAKKwlpZiAoY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwl7CisJ CVBHcmVzdWx0ICAgKnJlczsKKwkJYm9vbAkJZXJyb3I7CisKKwkJaWYgKGNvbm4tPnBpcGVs aW5lU3RhdHVzICE9IFBRX1BJUEVMSU5FX09GRikKKwkJeworCQkJbGlicHFfYXBwZW5kX2Nv bm5fZXJyb3IoY29ubiwgInN5bmNocm9ub3VzIGNvbW1hbmQgZXhlY3V0aW9uIGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gcGlwZWxpbmUgbW9kZSIpOworCQkJcmV0dXJuIDA7CisJ CX0KKworCQlpZiAoIVBRc2VuZFByZXBhcmUoY29ubiwgIiIsIGNvbW1hbmQsIG5QYXJhbXMs IHBhcmFtVHlwZXMpKQorCQkJcmV0dXJuIDA7CisJCWVycm9yID0gZmFsc2U7CisJCXdoaWxl ICgocmVzID0gUFFnZXRSZXN1bHQoY29ubikpICE9IE5VTEwpCisJCXsKKwkJCWlmIChQUXJl c3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJCQkJZXJyb3IgPSB0cnVl OworCQkJUFFjbGVhcihyZXMpOworCQl9CisJCWlmIChlcnJvcikKKwkJCXJldHVybiAwOwor CisJCXBhcmFtRGVzYyA9IFBRZGVzY3JpYmVQcmVwYXJlZChjb25uLCAiIik7CisJCWlmIChQ UXJlc3VsdFN0YXR1cyhwYXJhbURlc2MpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJCQlyZXR1 cm4gMDsKKworCQljb21tYW5kID0gTlVMTDsKKwkJcGFyYW1UeXBlcyA9IE5VTEw7CisJfQor CiAJcmV0dXJuIFBRc2VuZFF1ZXJ5R3V0cyhjb25uLAogCQkJCQkJICAgY29tbWFuZCwKIAkJ CQkJCSAgICIiLAkvKiB1c2UgdW5uYW1lZCBzdGF0ZW1lbnQgKi8KQEAgLTE1MjQsNyArMjAw Niw4IEBAIFBRc2VuZFF1ZXJ5UGFyYW1zKFBHY29ubiAqY29ubiwKIAkJCQkJCSAgIHBhcmFt VmFsdWVzLAogCQkJCQkJICAgcGFyYW1MZW5ndGhzLAogCQkJCQkJICAgcGFyYW1Gb3JtYXRz LAotCQkJCQkJICAgcmVzdWx0Rm9ybWF0KTsKKwkJCQkJCSAgIHJlc3VsdEZvcm1hdCwKKwkJ CQkJCSAgIHBhcmFtRGVzYyk7CiB9CiAKIC8qCkBAIC0xNjM5LDYgKzIxMjIsMjQgQEAgUFFz ZW5kUXVlcnlQcmVwYXJlZChQR2Nvbm4gKmNvbm4sCiAJCQkJCWNvbnN0IGludCAqcGFyYW1M ZW5ndGhzLAogCQkJCQljb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKIAkJCQkJaW50IHJlc3Vs dEZvcm1hdCkKK3sKKwlyZXR1cm4gUFFzZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJlZChjb25u LCBzdG10TmFtZSwgblBhcmFtcywgcGFyYW1WYWx1ZXMsIHBhcmFtTGVuZ3RocywgcGFyYW1G b3JtYXRzLCByZXN1bHRGb3JtYXQsIE5VTEwpOworfQorCisvKgorICogUFFzZW5kUXVlcnlQ cmVwYXJlZERlc2NyaWJlZAorICoJCUxpa2UgUFFzZW5kUXVlcnlQcmVwYXJlZCwgYnV0IHdp dGggYWRkaXRpb25hbCBhcmd1bWVudCB0byBwYXNzCisgKgkJcGFyYW1ldGVyIGRlc2NyaXB0 aW9ucywgZm9yIGNvbHVtbiBlbmNyeXB0aW9uLgorICovCitpbnQKK1BRc2VuZFF1ZXJ5UHJl cGFyZWREZXNjcmliZWQoUEdjb25uICpjb25uLAorCQkJCQkJCSBjb25zdCBjaGFyICpzdG10 TmFtZSwKKwkJCQkJCQkgaW50IG5QYXJhbXMsCisJCQkJCQkJIGNvbnN0IGNoYXIgKmNvbnN0 ICpwYXJhbVZhbHVlcywKKwkJCQkJCQkgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisJCQkJ CQkJIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAorCQkJCQkJCSBpbnQgcmVzdWx0Rm9ybWF0 LAorCQkJCQkJCSBQR3Jlc3VsdCAqcGFyYW1EZXNjKQogewogCWlmICghUFFzZW5kUXVlcnlT dGFydChjb25uLCB0cnVlKSkKIAkJcmV0dXJuIDA7CkBAIC0xNjY0LDcgKzIxNjUsOCBAQCBQ UXNlbmRRdWVyeVByZXBhcmVkKFBHY29ubiAqY29ubiwKIAkJCQkJCSAgIHBhcmFtVmFsdWVz LAogCQkJCQkJICAgcGFyYW1MZW5ndGhzLAogCQkJCQkJICAgcGFyYW1Gb3JtYXRzLAotCQkJ CQkJICAgcmVzdWx0Rm9ybWF0KTsKKwkJCQkJCSAgIHJlc3VsdEZvcm1hdCwKKwkJCQkJCSAg IHBhcmFtRGVzYyk7CiB9CiAKIC8qCkBAIC0xNzYyLDcgKzIyNjQsOCBAQCBQUXNlbmRRdWVy eUd1dHMoUEdjb25uICpjb25uLAogCQkJCWNvbnN0IGNoYXIgKmNvbnN0ICpwYXJhbVZhbHVl cywKIAkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKIAkJCQljb25zdCBpbnQgKnBhcmFt Rm9ybWF0cywKLQkJCQlpbnQgcmVzdWx0Rm9ybWF0KQorCQkJCWludCByZXN1bHRGb3JtYXQs CisJCQkJUEdyZXN1bHQgKnBhcmFtRGVzYykKIHsKIAlpbnQJCQlpOwogCVBHY21kUXVldWVF bnRyeSAqZW50cnk7CkBAIC0xODEwLDEzICsyMzEzLDQ3IEBAIFBRc2VuZFF1ZXJ5R3V0cyhQ R2Nvbm4gKmNvbm4sCiAJCWdvdG8gc2VuZEZhaWxlZDsKIAogCS8qIFNlbmQgcGFyYW1ldGVy IGZvcm1hdHMgKi8KLQlpZiAoblBhcmFtcyA+IDAgJiYgcGFyYW1Gb3JtYXRzKQorCWlmIChu UGFyYW1zID4gMCAmJiAocGFyYW1Gb3JtYXRzIHx8IChwYXJhbURlc2MgJiYgcGFyYW1EZXNj LT5wYXJhbURlc2NzKSkpCiAJewogCQlpZiAocHFQdXRJbnQoblBhcmFtcywgMiwgY29ubikg PCAwKQogCQkJZ290byBzZW5kRmFpbGVkOworCiAJCWZvciAoaSA9IDA7IGkgPCBuUGFyYW1z OyBpKyspCiAJCXsKLQkJCWlmIChwcVB1dEludChwYXJhbUZvcm1hdHNbaV0sIDIsIGNvbm4p IDwgMCkKKwkJCWludAkJCWZvcm1hdCA9IHBhcmFtRm9ybWF0cyA/IHBhcmFtRm9ybWF0c1tp XSA6IDA7CisKKwkJCS8qIENoZWNrIGZvcmNlIGNvbHVtbiBlbmNyeXB0aW9uICovCisJCQlp ZiAoZm9ybWF0ICYgMHgxMCkKKwkJCXsKKwkJCQlpZiAoIShwYXJhbURlc2MgJiYKKwkJCQkJ ICBwYXJhbURlc2MtPnBhcmFtRGVzY3MgJiYKKwkJCQkJICBwYXJhbURlc2MtPnBhcmFtRGVz Y3NbaV0uY2VraWQpKQorCQkJCXsKKwkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29u biwgInBhcmFtZXRlciB3aXRoIGZvcmNlZCBlbmNyeXB0aW9uIGlzIG5vdCB0byBiZSBlbmNy eXB0ZWQiKTsKKwkJCQkJZ290byBzZW5kRmFpbGVkOworCQkJCX0KKwkJCX0KKwkJCWZvcm1h dCAmPSB+MHgxMDsKKworCQkJaWYgKHBhcmFtRGVzYyAmJiBwYXJhbURlc2MtPnBhcmFtRGVz Y3MpCisJCQl7CisJCQkJUEdyZXNQYXJhbURlc2MgKnBkID0gJnBhcmFtRGVzYy0+cGFyYW1E ZXNjc1tpXTsKKworCQkJCWlmIChwZC0+Y2VraWQpCisJCQkJeworCQkJCQlpZiAoZm9ybWF0 ICE9IDApCisJCQkJCXsKKwkJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJm b3JtYXQgbXVzdCBiZSB0ZXh0IGZvciBlbmNyeXB0ZWQgcGFyYW1ldGVyIik7CisJCQkJCQln b3RvIHNlbmRGYWlsZWQ7CisJCQkJCX0KKwkJCQkJLyogU2VuZCBlbmNyeXB0ZWQgdmFsdWUg aW4gYmluYXJ5ICovCisJCQkJCWZvcm1hdCA9IDE7CisJCQkJCS8qIEFuZCBtYXJrIGl0IGFz IGVuY3J5cHRlZCAqLworCQkJCQlmb3JtYXQgfD0gMHgxMDsKKwkJCQl9CisJCQl9CisKKwkJ CWlmIChwcVB1dEludChmb3JtYXQsIDIsIGNvbm4pIDwgMCkKIAkJCQlnb3RvIHNlbmRGYWls ZWQ7CiAJCX0KIAl9CkBAIC0xODM1LDggKzIzNzIsOSBAQCBQUXNlbmRRdWVyeUd1dHMoUEdj b25uICpjb25uLAogCQlpZiAocGFyYW1WYWx1ZXMgJiYgcGFyYW1WYWx1ZXNbaV0pCiAJCXsK IAkJCWludAkJCW5ieXRlczsKKwkJCWNvbnN0IGNoYXIgKnBhcmFtVmFsdWU7CiAKLQkJCWlm IChwYXJhbUZvcm1hdHMgJiYgcGFyYW1Gb3JtYXRzW2ldICE9IDApCisJCQlpZiAocGFyYW1G b3JtYXRzICYmIChwYXJhbUZvcm1hdHNbaV0gJiAweDAxKSAhPSAwKQogCQkJewogCQkJCS8q IGJpbmFyeSBwYXJhbWV0ZXIgKi8KIAkJCQlpZiAocGFyYW1MZW5ndGhzKQpAQCAtMTg1Miw5 ICsyMzkwLDUzIEBAIFBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4gKmNvbm4sCiAJCQkJLyogdGV4 dCBwYXJhbWV0ZXIsIGRvIG5vdCB1c2UgcGFyYW1MZW5ndGhzICovCiAJCQkJbmJ5dGVzID0g c3RybGVuKHBhcmFtVmFsdWVzW2ldKTsKIAkJCX0KKworCQkJcGFyYW1WYWx1ZSA9IHBhcmFt VmFsdWVzW2ldOworCisJCQlpZiAocGFyYW1EZXNjICYmIHBhcmFtRGVzYy0+cGFyYW1EZXNj cyAmJiBwYXJhbURlc2MtPnBhcmFtRGVzY3NbaV0uY2VraWQpCisJCQl7CisJCQkJLyogZW5j cnlwdGVkIGNvbHVtbiAqLworI2lmZGVmIFVTRV9TU0wKKwkJCQlib29sCQllbmNfZGV0ID0g KHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXS5mbGFncyAmIDB4MDEpICE9IDA7CisJCQkJUEdD RUsJICAgKmNlayA9IE5VTEw7CisJCQkJY2hhcgkgICAqZW5jX3BhcmFtVmFsdWU7CisJCQkJ aW50CQkJZW5jX25ieXRlcyA9IG5ieXRlczsKKworCQkJCWZvciAoaW50IGogPSAwOyBqIDwg Y29ubi0+bmNla3M7IGorKykKKwkJCQl7CisJCQkJCWlmIChjb25uLT5jZWtzW2pdLmNla2lk ID09IHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXS5jZWtpZCkKKwkJCQkJeworCQkJCQkJY2Vr ID0gJmNvbm4tPmNla3Nbal07CisJCQkJCQlicmVhazsKKwkJCQkJfQorCQkJCX0KKwkJCQlp ZiAoIWNlaykKKwkJCQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJj b2x1bW4gZW5jcnlwdGlvbiBrZXkgbm90IGZvdW5kIik7CisJCQkJCWdvdG8gc2VuZEZhaWxl ZDsKKwkJCQl9CisKKwkJCQllbmNfcGFyYW1WYWx1ZSA9IChjaGFyICopIGVuY3J5cHRfdmFs dWUoY29ubiwgY2VrLCBwYXJhbURlc2MtPnBhcmFtRGVzY3NbaV0uY2VrYWxnLAorCQkJCQkJ CQkJCQkJCQkoY29uc3QgdW5zaWduZWQgY2hhciAqKSBwYXJhbVZhbHVlLCAmZW5jX25ieXRl cywgZW5jX2RldCk7CisJCQkJaWYgKCFlbmNfcGFyYW1WYWx1ZSkKKwkJCQkJZ290byBzZW5k RmFpbGVkOworCisJCQkJaWYgKHBxUHV0SW50KGVuY19uYnl0ZXMsIDQsIGNvbm4pIDwgMCB8 fAorCQkJCQlwcVB1dG5jaGFyKGVuY19wYXJhbVZhbHVlLCBlbmNfbmJ5dGVzLCBjb25uKSA8 IDApCisJCQkJCWdvdG8gc2VuZEZhaWxlZDsKKworCQkJCWZyZWUoZW5jX3BhcmFtVmFsdWUp OworI2Vsc2UKKwkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY29sdW1uIGVu Y3J5cHRpb24gbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkIik7CisJCQkJZ290byBzZW5k RmFpbGVkOworI2VuZGlmCisJCQl9CisJCQllbHNlCisJCQl7CiAJCQlpZiAocHFQdXRJbnQo bmJ5dGVzLCA0LCBjb25uKSA8IDAgfHwKLQkJCQlwcVB1dG5jaGFyKHBhcmFtVmFsdWVzW2ld LCBuYnl0ZXMsIGNvbm4pIDwgMCkKKwkJCQlwcVB1dG5jaGFyKHBhcmFtVmFsdWUsIG5ieXRl cywgY29ubikgPCAwKQogCQkJCWdvdG8gc2VuZEZhaWxlZDsKKwkJCX0KIAkJfQogCQllbHNl CiAJCXsKQEAgLTIyOTAsMTIgKzI4NzIsMzEgQEAgUFFleGVjUHJlcGFyZWQoUEdjb25uICpj b25uLAogCQkJICAgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkgICBjb25zdCBpbnQg KnBhcmFtRm9ybWF0cywKIAkJCSAgIGludCByZXN1bHRGb3JtYXQpCit7CisJcmV0dXJuIFBR ZXhlY1ByZXBhcmVkRGVzY3JpYmVkKGNvbm4sIHN0bXROYW1lLCBuUGFyYW1zLCBwYXJhbVZh bHVlcywgcGFyYW1MZW5ndGhzLCBwYXJhbUZvcm1hdHMsIHJlc3VsdEZvcm1hdCwgTlVMTCk7 Cit9CisKKy8qCisgKiBQUWV4ZWNQcmVwYXJlZERlc2NyaWJlZAorICoJCUxpa2UgUFFleGVj UHJlcGFyZWQsIGJ1dCB3aXRoIGFkZGl0aW9uYWwgYXJndW1lbnQgdG8gcGFzcyBwYXJhbWV0 ZXIKKyAqCQlkZXNjcmlwdGlvbnMsIGZvciBjb2x1bW4gZW5jcnlwdGlvbi4KKyAqLworUEdy ZXN1bHQgKgorUFFleGVjUHJlcGFyZWREZXNjcmliZWQoUEdjb25uICpjb25uLAorCQkJCQkJ Y29uc3QgY2hhciAqc3RtdE5hbWUsCisJCQkJCQlpbnQgblBhcmFtcywKKwkJCQkJCWNvbnN0 IGNoYXIgKmNvbnN0ICpwYXJhbVZhbHVlcywKKwkJCQkJCWNvbnN0IGludCAqcGFyYW1MZW5n dGhzLAorCQkJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCisJCQkJCQlpbnQgcmVzdWx0 Rm9ybWF0LAorCQkJCQkJUEdyZXN1bHQgKnBhcmFtRGVzYykKIHsKIAlpZiAoIVBRZXhlY1N0 YXJ0KGNvbm4pKQogCQlyZXR1cm4gTlVMTDsKLQlpZiAoIVBRc2VuZFF1ZXJ5UHJlcGFyZWQo Y29ubiwgc3RtdE5hbWUsCi0JCQkJCQkJIG5QYXJhbXMsIHBhcmFtVmFsdWVzLCBwYXJhbUxl bmd0aHMsCi0JCQkJCQkJIHBhcmFtRm9ybWF0cywgcmVzdWx0Rm9ybWF0KSkKKwlpZiAoIVBR c2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQoY29ubiwgc3RtdE5hbWUsCisJCQkJCQkJCQkg IG5QYXJhbXMsIHBhcmFtVmFsdWVzLCBwYXJhbUxlbmd0aHMsCisJCQkJCQkJCQkgIHBhcmFt Rm9ybWF0cywKKwkJCQkJCQkJCSAgcmVzdWx0Rm9ybWF0LCBwYXJhbURlc2MpKQogCQlyZXR1 cm4gTlVMTDsKIAlyZXR1cm4gUFFleGVjRmluaXNoKGNvbm4pOwogfQpAQCAtMzUzOSw3ICs0 MTQwLDE3IEBAIFBRZmZvcm1hdChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVt KQogCWlmICghY2hlY2tfZmllbGRfbnVtYmVyKHJlcywgZmllbGRfbnVtKSkKIAkJcmV0dXJu IDA7CiAJaWYgKHJlcy0+YXR0RGVzY3MpCisJeworCQkvKgorCQkgKiBBbiBlbmNyeXB0ZWQg Y29sdW1uIGlzIGFsd2F5cyBwcmVzZW50ZWQgdG8gdGhlIGFwcGxpY2F0aW9uIGluIHRleHQK KwkJICogZm9ybWF0LiAgVGhlIC5mb3JtYXQgZmllbGQgYXBwbGllcyB0byB0aGUgY2lwaGVy dGV4dCwgd2hpY2ggbWlnaHQKKwkJICogYmUgaW4gZWl0aGVyIGZvcm1hdCwgYnV0IHRoZSBw bGFpbnRleHQgaW5zaWRlIGlzIGFsd2F5cyBpbiB0ZXh0CisJCSAqIGZvcm1hdC4KKwkJICov CisJCWlmIChyZXMtPmF0dERlc2NzW2ZpZWxkX251bV0uY2VraWQgIT0gMCkKKwkJCXJldHVy biAwOwogCQlyZXR1cm4gcmVzLT5hdHREZXNjc1tmaWVsZF9udW1dLmZvcm1hdDsKKwl9CiAJ ZWxzZQogCQlyZXR1cm4gMDsKIH0KQEAgLTM1NzcsNiArNDE4OCwxNyBAQCBQUWZtb2QoY29u c3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSkKIAkJcmV0dXJuIDA7CiB9CiAKK2lu dAorUFFmaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSkK K3sKKwlpZiAoIWNoZWNrX2ZpZWxkX251bWJlcihyZXMsIGZpZWxkX251bSkpCisJCXJldHVy biBmYWxzZTsKKwlpZiAocmVzLT5hdHREZXNjcykKKwkJcmV0dXJuIChyZXMtPmF0dERlc2Nz W2ZpZWxkX251bV0uY2VraWQgIT0gMCk7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9CisK IGNoYXIgKgogUFFjbWRTdGF0dXMoUEdyZXN1bHQgKnJlcykKIHsKQEAgLTM3NjIsNiArNDM4 NCwxNyBAQCBQUXBhcmFtdHlwZShjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFyYW1fbnVt KQogCQlyZXR1cm4gSW52YWxpZE9pZDsKIH0KIAoraW50CitQUXBhcmFtaXNlbmNyeXB0ZWQo Y29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHBhcmFtX251bSkKK3sKKwlpZiAoIWNoZWNrX3Bh cmFtX251bWJlcihyZXMsIHBhcmFtX251bSkpCisJCXJldHVybiBmYWxzZTsKKwlpZiAocmVz LT5wYXJhbURlc2NzKQorCQlyZXR1cm4gKHJlcy0+cGFyYW1EZXNjc1twYXJhbV9udW1dLmNl a2lkICE9IDApOworCWVsc2UKKwkJcmV0dXJuIGZhbHNlOworfQorCiAKIC8qIFBRc2V0bm9u YmxvY2tpbmc6CiAgKglzZXRzIHRoZSBQR2Nvbm4ncyBkYXRhYmFzZSBjb25uZWN0aW9uIG5v bi1ibG9ja2luZyBpZiB0aGUgYXJnIGlzIHRydWUKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJv dG9jb2wzLmMKaW5kZXggMzY0YmFkMmI4OC4uNGJkYjQ1YjUwMyAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMKKysrIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtcHJvdG9jb2wzLmMKQEAgLTQzLDYgKzQzLDggQEAgc3RhdGljIGludAlnZXRS b3dEZXNjcmlwdGlvbnMoUEdjb25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKTsKIHN0YXRpYyBp bnQJZ2V0UGFyYW1EZXNjcmlwdGlvbnMoUEdjb25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKTsK IHN0YXRpYyBpbnQJZ2V0QW5vdGhlclR1cGxlKFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0 aCk7CiBzdGF0aWMgaW50CWdldFBhcmFtZXRlclN0YXR1cyhQR2Nvbm4gKmNvbm4pOworc3Rh dGljIGludAlnZXRDb2x1bW5NYXN0ZXJLZXkoUEdjb25uICpjb25uKTsKK3N0YXRpYyBpbnQJ Z2V0Q29sdW1uRW5jcnlwdGlvbktleShQR2Nvbm4gKmNvbm4pOwogc3RhdGljIGludAlnZXRO b3RpZnkoUEdjb25uICpjb25uKTsKIHN0YXRpYyBpbnQJZ2V0Q29weVN0YXJ0KFBHY29ubiAq Y29ubiwgRXhlY1N0YXR1c1R5cGUgY29weXR5cGUpOwogc3RhdGljIGludAlnZXRSZWFkeUZv clF1ZXJ5KFBHY29ubiAqY29ubik7CkBAIC0yOTcsNiArMjk5LDEyIEBAIHBxUGFyc2VJbnB1 dDMoUEdjb25uICpjb25uKQogCQkJCQlpZiAocHFHZXRJbnQoJihjb25uLT5iZV9rZXkpLCA0 LCBjb25uKSkKIAkJCQkJCXJldHVybjsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSAneSc6CQkv KiBDb2x1bW4gTWFzdGVyIEtleSAqLworCQkJCQlnZXRDb2x1bW5NYXN0ZXJLZXkoY29ubik7 CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ1knOgkJLyogQ29sdW1uIEVuY3J5cHRpb24gS2V5 ICovCisJCQkJCWdldENvbHVtbkVuY3J5cHRpb25LZXkoY29ubik7CisJCQkJCWJyZWFrOwog CQkJCWNhc2UgJ1QnOgkJLyogUm93IERlc2NyaXB0aW9uICovCiAJCQkJCWlmIChjb25uLT5l cnJvcl9yZXN1bHQgfHwKIAkJCQkJCShjb25uLT5yZXN1bHQgIT0gTlVMTCAmJgpAQCAtNTQ3 LDYgKzU1NSw4IEBAIGdldFJvd0Rlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dM ZW5ndGgpCiAJCWludAkJCXR5cGxlbjsKIAkJaW50CQkJYXR0dHlwbW9kOwogCQlpbnQJCQlm b3JtYXQ7CisJCWludAkJCWNla2lkOworCQlpbnQJCQljZWthbGc7CiAKIAkJaWYgKHBxR2V0 cygmY29ubi0+d29ya0J1ZmZlciwgY29ubikgfHwKIAkJCXBxR2V0SW50KCZ0YWJsZWlkLCA0 LCBjb25uKSB8fApAQCAtNTYxLDYgKzU3MSwyMSBAQCBnZXRSb3dEZXNjcmlwdGlvbnMoUEdj b25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKQogCQkJZ290byBhZHZhbmNlX2FuZF9lcnJvcjsK IAkJfQogCisJCWlmIChjb25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7CisJ CQlpZiAocHFHZXRJbnQoJmNla2lkLCA0LCBjb25uKSB8fAorCQkJCXBxR2V0SW50KCZjZWth bGcsIDQsIGNvbm4pKQorCQkJeworCQkJCWVycm1zZyA9IGxpYnBxX2dldHRleHQoImluc3Vm ZmljaWVudCBkYXRhIGluIFwiVFwiIG1lc3NhZ2UiKTsKKwkJCQlnb3RvIGFkdmFuY2VfYW5k X2Vycm9yOworCQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJY2VraWQgPSAwOworCQkJY2Vr YWxnID0gMDsKKwkJfQorCiAJCS8qCiAJCSAqIFNpbmNlIHBxR2V0SW50IHRyZWF0cyAyLWJ5 dGUgaW50ZWdlcnMgYXMgdW5zaWduZWQsIHdlIG5lZWQgdG8KIAkJICogY29lcmNlIHRoZXNl IHJlc3VsdHMgdG8gc2lnbmVkIGZvcm0uCkBAIC01ODIsOCArNjA3LDEwIEBAIGdldFJvd0Rl c2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpCiAJCXJlc3VsdC0+YXR0 RGVzY3NbaV0udHlwaWQgPSB0eXBpZDsKIAkJcmVzdWx0LT5hdHREZXNjc1tpXS50eXBsZW4g PSB0eXBsZW47CiAJCXJlc3VsdC0+YXR0RGVzY3NbaV0uYXR0dHlwbW9kID0gYXR0dHlwbW9k OworCQlyZXN1bHQtPmF0dERlc2NzW2ldLmNla2lkID0gY2VraWQ7CisJCXJlc3VsdC0+YXR0 RGVzY3NbaV0uY2VrYWxnID0gY2VrYWxnOwogCi0JCWlmIChmb3JtYXQgIT0gMSkKKwkJaWYg KChmb3JtYXQgJiAweDBGKSAhPSAxKQogCQkJcmVzdWx0LT5iaW5hcnkgPSAwOwogCX0KIApA QCAtNjg1LDEwICs3MTIsMzEgQEAgZ2V0UGFyYW1EZXNjcmlwdGlvbnMoUEdjb25uICpjb25u LCBpbnQgbXNnTGVuZ3RoKQogCWZvciAoaSA9IDA7IGkgPCBucGFyYW1zOyBpKyspCiAJewog CQlpbnQJCQl0eXBpZDsKKwkJaW50CQkJY2VraWQ7CisJCWludAkJCWNla2FsZzsKKwkJaW50 CQkJZmxhZ3M7CiAKIAkJaWYgKHBxR2V0SW50KCZ0eXBpZCwgNCwgY29ubikpCiAJCQlnb3Rv IG5vdF9lbm91Z2hfZGF0YTsKKwkJaWYgKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJs ZWQpCisJCXsKKwkJCWlmIChwcUdldEludCgmY2VraWQsIDQsIGNvbm4pKQorCQkJCWdvdG8g bm90X2Vub3VnaF9kYXRhOworCQkJaWYgKHBxR2V0SW50KCZjZWthbGcsIDQsIGNvbm4pKQor CQkJCWdvdG8gbm90X2Vub3VnaF9kYXRhOworCQkJaWYgKHBxR2V0SW50KCZmbGFncywgMiwg Y29ubikpCisJCQkJZ290byBub3RfZW5vdWdoX2RhdGE7CisJCX0KKwkJZWxzZQorCQl7CisJ CQljZWtpZCA9IDA7CisJCQljZWthbGcgPSAwOworCQkJZmxhZ3MgPSAwOworCQl9CiAJCXJl c3VsdC0+cGFyYW1EZXNjc1tpXS50eXBpZCA9IHR5cGlkOworCQlyZXN1bHQtPnBhcmFtRGVz Y3NbaV0uY2VraWQgPSBjZWtpZDsKKwkJcmVzdWx0LT5wYXJhbURlc2NzW2ldLmNla2FsZyA9 IGNla2FsZzsKKwkJcmVzdWx0LT5wYXJhbURlc2NzW2ldLmZsYWdzID0gZmxhZ3M7CiAJfQog CiAJLyogU3VjY2VzcyEgKi8KQEAgLTE0NjgsNiArMTUxNiw5MiBAQCBnZXRQYXJhbWV0ZXJT dGF0dXMoUEdjb25uICpjb25uKQogCXJldHVybiAwOwogfQogCisvKgorICogQXR0ZW1wdCB0 byByZWFkIGEgQ29sdW1uTWFzdGVyS2V5IG1lc3NhZ2UuCisgKiBFbnRyeTogJ3knIG1lc3Nh Z2UgdHlwZSBhbmQgbGVuZ3RoIGhhdmUgYWxyZWFkeSBiZWVuIGNvbnN1bWVkLgorICogRXhp dDogcmV0dXJucyAwIGlmIHN1Y2Nlc3NmdWxseSBjb25zdW1lZCBtZXNzYWdlLgorICoJCSBy ZXR1cm5zIEVPRiBpZiBub3QgZW5vdWdoIGRhdGEuCisgKi8KK3N0YXRpYyBpbnQKK2dldENv bHVtbk1hc3RlcktleShQR2Nvbm4gKmNvbm4pCit7CisJaW50CQkJa2V5aWQ7CisJY2hhcgkg ICAqa2V5bmFtZTsKKwljaGFyCSAgICprZXlyZWFsbTsKKwlpbnQJCQlyZXQ7CisKKwkvKiBH ZXQgdGhlIGtleSBJRCAqLworCWlmIChwcUdldEludCgma2V5aWQsIDQsIGNvbm4pICE9IDAp CisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRoZSBrZXkgbmFtZSAqLworCWlmIChwcUdldHMo JmNvbm4tPndvcmtCdWZmZXIsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJa2V5bmFt ZSA9IHN0cmR1cChjb25uLT53b3JrQnVmZmVyLmRhdGEpOworCWlmICgha2V5bmFtZSkKKwkJ cmV0dXJuIEVPRjsKKwkvKiBHZXQgdGhlIGtleSByZWFsbSAqLworCWlmIChwcUdldHMoJmNv bm4tPndvcmtCdWZmZXIsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJa2V5cmVhbG0g PSBzdHJkdXAoY29ubi0+d29ya0J1ZmZlci5kYXRhKTsKKwlpZiAoIWtleXJlYWxtKQorCQly ZXR1cm4gRU9GOworCS8qIEFuZCBzYXZlIGl0ICovCisJcmV0ID0gcHFTYXZlQ29sdW1uTWFz dGVyS2V5KGNvbm4sIGtleWlkLCBrZXluYW1lLCBrZXlyZWFsbSk7CisJaWYgKHJldCAhPSAw KQorCQlwcVNhdmVFcnJvclJlc3VsdChjb25uKTsKKworCWZyZWUoa2V5bmFtZSk7CisJZnJl ZShrZXlyZWFsbSk7CisKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogQXR0ZW1wdCB0byBy ZWFkIGEgQ29sdW1uRW5jcnlwdGlvbktleSBtZXNzYWdlLgorICogRW50cnk6ICdZJyBtZXNz YWdlIHR5cGUgYW5kIGxlbmd0aCBoYXZlIGFscmVhZHkgYmVlbiBjb25zdW1lZC4KKyAqIEV4 aXQ6IHJldHVybnMgMCBpZiBzdWNjZXNzZnVsbHkgY29uc3VtZWQgbWVzc2FnZS4KKyAqCQkg cmV0dXJucyBFT0YgaWYgbm90IGVub3VnaCBkYXRhLgorICovCitzdGF0aWMgaW50CitnZXRD b2x1bW5FbmNyeXB0aW9uS2V5KFBHY29ubiAqY29ubikKK3sKKwlpbnQJCQlrZXlpZDsKKwlp bnQJCQljbWtpZDsKKwlpbnQJCQljbWthbGc7CisJY2hhcgkgICAqYnVmOworCWludAkJCXZh bGxlbjsKKwlpbnQJCQlyZXQ7CisKKwkvKiBHZXQgdGhlIGtleSBJRCAqLworCWlmIChwcUdl dEludCgma2V5aWQsIDQsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRo ZSBDTUsgSUQgKi8KKwlpZiAocHFHZXRJbnQoJmNta2lkLCA0LCBjb25uKSAhPSAwKQorCQly ZXR1cm4gRU9GOworCS8qIEdldCB0aGUgQ01LIGFsZ29yaXRobSAqLworCWlmIChwcUdldElu dCgmY21rYWxnLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUg a2V5IGRhdGEgbGVuICovCisJaWYgKHBxR2V0SW50KCZ2YWxsZW4sIDQsIGNvbm4pICE9IDAp CisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRoZSBrZXkgZGF0YSAqLworCWJ1ZiA9IG1hbGxv Yyh2YWxsZW4pOworCWlmICghYnVmKQorCQlyZXR1cm4gRU9GOworCWlmIChwcUdldG5jaGFy KGJ1ZiwgdmFsbGVuLCBjb25uKSAhPSAwKQorCXsKKwkJZnJlZShidWYpOworCQlyZXR1cm4g RU9GOworCX0KKwkvKiBBbmQgc2F2ZSBpdCAqLworCXJldCA9IHBxU2F2ZUNvbHVtbkVuY3J5 cHRpb25LZXkoY29ubiwga2V5aWQsIGNta2lkLCBjbWthbGcsICh1bnNpZ25lZCBjaGFyICop IGJ1ZiwgdmFsbGVuKTsKKwlpZiAocmV0ICE9IDApCisJCXBxU2F2ZUVycm9yUmVzdWx0KGNv bm4pOworCisJZnJlZShidWYpOworCisJcmV0dXJuIHJldDsKK30KIAogLyoKICAqIEF0dGVt cHQgdG8gcmVhZCBhIE5vdGlmeSByZXNwb25zZSBtZXNzYWdlLgpAQCAtMjI4Niw2ICsyNDIw LDkgQEAgYnVpbGRfc3RhcnR1cF9wYWNrZXQoY29uc3QgUEdjb25uICpjb25uLCBjaGFyICpw YWNrZXQsCiAJaWYgKGNvbm4tPmNsaWVudF9lbmNvZGluZ19pbml0aWFsICYmIGNvbm4tPmNs aWVudF9lbmNvZGluZ19pbml0aWFsWzBdKQogCQlBRERfU1RBUlRVUF9PUFRJT04oImNsaWVu dF9lbmNvZGluZyIsIGNvbm4tPmNsaWVudF9lbmNvZGluZ19pbml0aWFsKTsKIAorCWlmIChj b25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQlBRERfU1RBUlRVUF9PUFRJT04o Il9wcV8uY29sdW1uX2VuY3J5cHRpb24iLCAiMSIpOworCiAJLyogQWRkIGFueSBlbnZpcm9u bWVudC1kcml2ZW4gR1VDIHNldHRpbmdzIG5lZWRlZCAqLwogCWZvciAobmV4dF9lbyA9IG9w dGlvbnM7IG5leHRfZW8tPmVudk5hbWU7IG5leHRfZW8rKykKIAl7CmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtdHJhY2UuYwppbmRleCA1ZDY4Y2YyZWIzLi44NmI3ZTY0ZTFmIDEwMDY0NAotLS0gYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLXRyYWNlLmMKQEAgLTQ1MCw3ICs0NTAsOCBAQCBwcVRyYWNlT3V0cHV0UyhGSUxF ICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvcikKIAogLyogUGFyYW1ldGVy RGVzY3JpcHRpb24gKi8KIHN0YXRpYyB2b2lkCi1wcVRyYWNlT3V0cHV0dChGSUxFICpmLCBj b25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzKQorcHFUcmFj ZU91dHB1dHQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJv b2wgcmVncmVzcywKKwkJCSAgIGJvb2wgY29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKIHsK IAlpbnQJCQluZmllbGRzOwogCkBAIC00NTgsMTIgKzQ1OSwyMSBAQCBwcVRyYWNlT3V0cHV0 dChGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdy ZXNzKQogCW5maWVsZHMgPSBwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29y KTsKIAogCWZvciAoaW50IGkgPSAwOyBpIDwgbmZpZWxkczsgaSsrKQorCXsKIAkJcHFUcmFj ZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CisJCWlmIChjb2x1 bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7CisJCQlwcVRyYWNlT3V0cHV0SW50MzIoZiwg bWVzc2FnZSwgY3Vyc29yLCByZWdyZXNzKTsKKwkJCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBt ZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKKwkJCXBxVHJhY2VPdXRwdXRJbnQxNihmLCBtZXNz YWdlLCBjdXJzb3IpOworCQl9CisJfQogfQogCiAvKiBSb3dEZXNjcmlwdGlvbiAqLwogc3Rh dGljIHZvaWQKLXBxVHJhY2VPdXRwdXRUKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2Us IGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MpCitwcVRyYWNlT3V0cHV0VChGSUxFICpmLCBj b25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzLAorCQkJICAg Ym9vbCBjb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQogewogCWludAkJCW5maWVsZHM7CiAK QEAgLTQ3OSw2ICs0ODksMTEgQEAgcHFUcmFjZU91dHB1dFQoRklMRSAqZiwgY29uc3QgY2hh ciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKIAkJcHFUcmFjZU91dHB1 dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CiAJCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBt ZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKIAkJcHFUcmFjZU91dHB1dEludDE2KGYsIG1lc3Nh Z2UsIGN1cnNvcik7CisJCWlmIChjb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7CisJ CQlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29yLCByZWdyZXNzKTsKKwkJ CXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKKwkJfQog CX0KIH0KIApAQCAtNTE0LDYgKzUyOSwzMCBAQCBwcVRyYWNlT3V0cHV0VyhGSUxFICpmLCBj b25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgaW50IGxlbmd0aCkKIAkJcHFUcmFj ZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CiB9CiAKKy8qIENvbHVtbk1hc3Rl cktleSAqLworc3RhdGljIHZvaWQKK3BxVHJhY2VPdXRwdXR5KEZJTEUgKmYsIGNvbnN0IGNo YXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MpCit7CisJZnByaW50Zihm LCAiQ29sdW1uTWFzdGVyS2V5XHQiKTsKKwlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2Fn ZSwgY3Vyc29yLCByZWdyZXNzKTsKKwlwcVRyYWNlT3V0cHV0U3RyaW5nKGYsIG1lc3NhZ2Us IGN1cnNvciwgZmFsc2UpOworCXBxVHJhY2VPdXRwdXRTdHJpbmcoZiwgbWVzc2FnZSwgY3Vy c29yLCBmYWxzZSk7Cit9CisKKy8qIENvbHVtbkVuY3J5cHRpb25LZXkgKi8KK3N0YXRpYyB2 b2lkCitwcVRyYWNlT3V0cHV0WShGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQg KmN1cnNvciwgYm9vbCByZWdyZXNzKQoreworCWludAkJCWxlbjsKKworCWZwcmludGYoZiwg IkNvbHVtbkVuY3J5cHRpb25LZXlcdCIpOworCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNz YWdlLCBjdXJzb3IsIHJlZ3Jlc3MpOworCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdl LCBjdXJzb3IsIHJlZ3Jlc3MpOworCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBj dXJzb3IsIGZhbHNlKTsKKwlsZW4gPSBwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwg Y3Vyc29yLCBmYWxzZSk7CisJcHFUcmFjZU91dHB1dE5jaGFyKGYsIGxlbiwgbWVzc2FnZSwg Y3Vyc29yKTsKK30KKwogLyogUmVhZHlGb3JRdWVyeSAqLwogc3RhdGljIHZvaWQKIHBxVHJh Y2VPdXRwdXRaKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yKQpA QCAtNjQ3LDEwICs2ODYsMTIgQEAgcHFUcmFjZU91dHB1dE1lc3NhZ2UoUEdjb25uICpjb25u LCBjb25zdCBjaGFyICptZXNzYWdlLCBib29sIHRvU2VydmVyKQogCQkJCWZwcmludGYoY29u bi0+UGZkZWJ1ZywgIlN5bmMiKTsgLyogbm8gbWVzc2FnZSBjb250ZW50ICovCiAJCQlicmVh azsKIAkJY2FzZSAndCc6CQkJCS8qIFBhcmFtZXRlciBEZXNjcmlwdGlvbiAqLwotCQkJcHFU cmFjZU91dHB1dHQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwgcmVncmVz cyk7CisJCQlwcVRyYWNlT3V0cHV0dChjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vy c29yLCByZWdyZXNzLAorCQkJCQkJICAgY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxl ZCk7CiAJCQlicmVhazsKIAkJY2FzZSAnVCc6CQkJCS8qIFJvdyBEZXNjcmlwdGlvbiAqLwot CQkJcHFUcmFjZU91dHB1dFQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwg cmVncmVzcyk7CisJCQlwcVRyYWNlT3V0cHV0VChjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAm bG9nQ3Vyc29yLCByZWdyZXNzLAorCQkJCQkJICAgY29ubi0+Y29sdW1uX2VuY3J5cHRpb25f ZW5hYmxlZCk7CiAJCQlicmVhazsKIAkJY2FzZSAndic6CQkJCS8qIE5lZ290aWF0ZSBQcm90 b2NvbCBWZXJzaW9uICovCiAJCQlwcVRyYWNlT3V0cHV0dihjb25uLT5QZmRlYnVnLCBtZXNz YWdlLCAmbG9nQ3Vyc29yKTsKQEAgLTY2NSw2ICs3MDYsMTIgQEAgcHFUcmFjZU91dHB1dE1l c3NhZ2UoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICptZXNzYWdlLCBib29sIHRvU2VydmVy KQogCQkJZnByaW50Zihjb25uLT5QZmRlYnVnLCAiVGVybWluYXRlIik7CiAJCQkvKiBObyBt ZXNzYWdlIGNvbnRlbnQgKi8KIAkJCWJyZWFrOworCQljYXNlICd5JzoKKwkJCXBxVHJhY2VP dXRwdXR5KGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jlc3MpOwor CQkJYnJlYWs7CisJCWNhc2UgJ1knOgorCQkJcHFUcmFjZU91dHB1dFkoY29ubi0+UGZkZWJ1 ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwgcmVncmVzcyk7CisJCQlicmVhazsKIAkJY2FzZSAn Wic6CQkJCS8qIFJlYWR5IEZvciBRdWVyeSAqLwogCQkJcHFUcmFjZU91dHB1dFooY29ubi0+ UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvcik7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBh L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmggYi9zcmMvaW50ZXJmYWNlcy9saWJw cS9saWJwcS1mZS5oCmluZGV4IGI3ZGYzMjI0YzAuLmQ0YzkxZGNlNzQgMTAwNjQ0Ci0tLSBh L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgKKysrIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvbGlicHEtZmUuaApAQCAtMjY3LDYgKzI2Nyw4IEBAIHR5cGVkZWYgc3RydWN0IHBn cmVzQXR0RGVzYwogCU9pZAkJCXR5cGlkOwkJCS8qIHR5cGUgaWQgKi8KIAlpbnQJCQl0eXBs ZW47CQkJLyogdHlwZSBzaXplICovCiAJaW50CQkJYXR0dHlwbW9kOwkJLyogdHlwZS1zcGVj aWZpYyBtb2RpZmllciBpbmZvICovCisJT2lkCQkJY2VraWQ7CisJaW50CQkJY2VrYWxnOwog fSBQR3Jlc0F0dERlc2M7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTQzOCw2ICs0NDAs MTQgQEAgZXh0ZXJuIFBHcmVzdWx0ICpQUWV4ZWNQcmVwYXJlZChQR2Nvbm4gKmNvbm4sCiAJ CQkJCQkJCWNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAogCQkJCQkJCQljb25zdCBpbnQgKnBh cmFtRm9ybWF0cywKIAkJCQkJCQkJaW50IHJlc3VsdEZvcm1hdCk7CitleHRlcm4gUEdyZXN1 bHQgKlBRZXhlY1ByZXBhcmVkRGVzY3JpYmVkKFBHY29ubiAqY29ubiwKKwkJCQkJCQkJCQkg Y29uc3QgY2hhciAqc3RtdE5hbWUsCisJCQkJCQkJCQkJIGludCBuUGFyYW1zLAorCQkJCQkJ CQkJCSBjb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCisJCQkJCQkJCQkJIGNvbnN0 IGludCAqcGFyYW1MZW5ndGhzLAorCQkJCQkJCQkJCSBjb25zdCBpbnQgKnBhcmFtRm9ybWF0 cywKKwkJCQkJCQkJCQkgaW50IHJlc3VsdEZvcm1hdCwKKwkJCQkJCQkJCQkgUEdyZXN1bHQg KnBhcmFtRGVzYyk7CiAKIC8qIEludGVyZmFjZSBmb3IgbXVsdGlwbGUtcmVzdWx0IG9yIGFz eW5jaHJvbm91cyBxdWVyaWVzICovCiAjZGVmaW5lIFBRX1FVRVJZX1BBUkFNX01BWF9MSU1J VCA2NTUzNQpAQCAtNDYxLDYgKzQ3MSwxNCBAQCBleHRlcm4gaW50CVBRc2VuZFF1ZXJ5UHJl cGFyZWQoUEdjb25uICpjb25uLAogCQkJCQkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywK IAkJCQkJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJCQkJCWludCByZXN1bHRG b3JtYXQpOworZXh0ZXJuIGludAlQUXNlbmRRdWVyeVByZXBhcmVkRGVzY3JpYmVkKFBHY29u biAqY29ubiwKKwkJCQkJCQkJCQkgY29uc3QgY2hhciAqc3RtdE5hbWUsCisJCQkJCQkJCQkJ IGludCBuUGFyYW1zLAorCQkJCQkJCQkJCSBjb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1 ZXMsCisJCQkJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAorCQkJCQkJCQkJCSBj b25zdCBpbnQgKnBhcmFtRm9ybWF0cywKKwkJCQkJCQkJCQkgaW50IHJlc3VsdEZvcm1hdCwK KwkJCQkJCQkJCQkgUEdyZXN1bHQgKnBhcmFtRGVzYyk7CiBleHRlcm4gaW50CVBRc2V0U2lu Z2xlUm93TW9kZShQR2Nvbm4gKmNvbm4pOwogZXh0ZXJuIFBHcmVzdWx0ICpQUWdldFJlc3Vs dChQR2Nvbm4gKmNvbm4pOwogCkBAIC01MzEsNiArNTQ5LDcgQEAgZXh0ZXJuIGludAlQUWZm b3JtYXQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSk7CiBleHRlcm4gT2lk CVBRZnR5cGUoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSk7CiBleHRlcm4g aW50CVBRZnNpemUoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSk7CiBleHRl cm4gaW50CVBRZm1vZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKK2V4 dGVybiBpbnQJUFFmaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxk X251bSk7CiBleHRlcm4gY2hhciAqUFFjbWRTdGF0dXMoUEdyZXN1bHQgKnJlcyk7CiBleHRl cm4gY2hhciAqUFFvaWRTdGF0dXMoY29uc3QgUEdyZXN1bHQgKnJlcyk7CS8qIG9sZCBhbmQg dWdseSAqLwogZXh0ZXJuIE9pZAlQUW9pZFZhbHVlKGNvbnN0IFBHcmVzdWx0ICpyZXMpOwkv KiBuZXcgYW5kIGltcHJvdmVkICovCkBAIC01NDAsNiArNTU5LDcgQEAgZXh0ZXJuIGludAlQ UWdldGxlbmd0aChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgdHVwX251bSwgaW50IGZpZWxk X251bSk7CiBleHRlcm4gaW50CVBRZ2V0aXNudWxsKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGlu dCB0dXBfbnVtLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBpbnQJUFFucGFyYW1zKGNvbnN0 IFBHcmVzdWx0ICpyZXMpOwogZXh0ZXJuIE9pZAlQUXBhcmFtdHlwZShjb25zdCBQR3Jlc3Vs dCAqcmVzLCBpbnQgcGFyYW1fbnVtKTsKK2V4dGVybiBpbnQJUFFwYXJhbWlzZW5jcnlwdGVk KGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBwYXJhbV9udW0pOwogCiAvKiBEZXNjcmliZSBw cmVwYXJlZCBzdGF0ZW1lbnRzIGFuZCBwb3J0YWxzICovCiBleHRlcm4gUEdyZXN1bHQgKlBR ZGVzY3JpYmVQcmVwYXJlZChQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnN0bXQpOwpkaWZm IC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggYi9zcmMvaW50ZXJm YWNlcy9saWJwcS9saWJwcS1pbnQuaAppbmRleCA1MTI3NjJmOTk5Li45NzgzYmE3NzM2IDEw MDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaAorKysgYi9zcmMv aW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaApAQCAtMTEyLDYgKzExMiw5IEBAIHVuaW9u IHBncmVzdWx0X2RhdGEKIHR5cGVkZWYgc3RydWN0IHBncmVzUGFyYW1EZXNjCiB7CiAJT2lk CQkJdHlwaWQ7CQkJLyogdHlwZSBpZCAqLworCU9pZAkJCWNla2lkOworCWludAkJCWNla2Fs ZzsKKwlpbnQJCQlmbGFnczsKIH0gUEdyZXNQYXJhbURlc2M7CiAKIC8qCkBAIC0zNDMsNiAr MzQ2LDI2IEBAIHR5cGVkZWYgc3RydWN0IHBnX2Nvbm5faG9zdAogCQkJCQkJCQkgKiBmb3Vu ZCBpbiBwYXNzd29yZCBmaWxlLiAqLwogfSBwZ19jb25uX2hvc3Q7CiAKKy8qCisgKiBDb2x1 bW4gZW5jcnlwdGlvbiBzdXBwb3J0IGRhdGEKKyAqLworCisvKiBjb2x1bW4gbWFzdGVyIGtl eSAqLwordHlwZWRlZiBzdHJ1Y3QgcGdfY21rCit7CisJT2lkCQkJY21raWQ7CisJY2hhcgkg ICAqY21rbmFtZTsKKwljaGFyCSAgICpjbWtyZWFsbTsKK30gUEdDTUs7CisKKy8qIGNvbHVt biBlbmNyeXB0aW9uIGtleSAqLwordHlwZWRlZiBzdHJ1Y3QgcGdfY2VrCit7CisJT2lkCQkJ Y2VraWQ7CisJdW5zaWduZWQgY2hhciAqY2VrZGF0YTsJCS8qIChkZWNyeXB0ZWQpICovCisJ c2l6ZV90CQljZWtkYXRhbGVuOworfSBQR0NFSzsKKwogLyoKICAqIFBHY29ubiBzdG9yZXMg YWxsIHRoZSBzdGF0ZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIHNpbmdsZSBjb25uZWN0aW9u CiAgKiB0byBhIGJhY2tlbmQuCkBAIC0zOTYsNiArNDE5LDggQEAgc3RydWN0IHBnX2Nvbm4K IAljaGFyCSAgICpzc2xfbWluX3Byb3RvY29sX3ZlcnNpb247CS8qIG1pbmltdW0gVExTIHBy b3RvY29sIHZlcnNpb24gKi8KIAljaGFyCSAgICpzc2xfbWF4X3Byb3RvY29sX3ZlcnNpb247 CS8qIG1heGltdW0gVExTIHByb3RvY29sIHZlcnNpb24gKi8KIAljaGFyCSAgICp0YXJnZXRf c2Vzc2lvbl9hdHRyczsJLyogZGVzaXJlZCBzZXNzaW9uIHByb3BlcnRpZXMgKi8KKwljaGFy CSAgICpjbWtsb29rdXA7CQkvKiBDTUsgbG9va3VwIHNwZWNpZmljYXRpb24gKi8KKwljaGFy CSAgICpjb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5nOwkvKiBjb2x1bW5fZW5jcnlwdGlvbiBj b25uZWN0aW9uIHBhcmFtZXRlciAoMCBvciAxKSAqLwogCiAJLyogT3B0aW9uYWwgZmlsZSB0 byB3cml0ZSB0cmFjZSBpbmZvIHRvICovCiAJRklMRQkgICAqUGZkZWJ1ZzsKQEAgLTQ3Nyw2 ICs1MDIsMTMgQEAgc3RydWN0IHBnX2Nvbm4KIAlQR1ZlcmJvc2l0eSB2ZXJib3NpdHk7CQkv KiBlcnJvci9ub3RpY2UgbWVzc2FnZSB2ZXJib3NpdHkgKi8KIAlQR0NvbnRleHRWaXNpYmls aXR5IHNob3dfY29udGV4dDsJLyogd2hldGhlciB0byBzaG93IENPTlRFWFQgZmllbGQgKi8K IAlQR2xvYmpmdW5jcyAqbG9iamZ1bmNzOwkJLyogcHJpdmF0ZSBzdGF0ZSBmb3IgbGFyZ2Ut b2JqZWN0IGFjY2VzcyBmbnMgKi8KKwlib29sCQljb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVk OwkvKiBwYXJzZWQgdmVyc2lvbiBvZiBjb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5nICovCisK KwkvKiBDb2x1bW4gZW5jcnlwdGlvbiBzdXBwb3J0IGRhdGEgKi8KKwlpbnQJCQluY21rczsK KwlQR0NNSwkgICAqY21rczsKKwlpbnQJCQluY2VrczsKKwlQR0NFSwkgICAqY2VrczsKIAog CS8qIEJ1ZmZlciBmb3IgZGF0YSByZWNlaXZlZCBmcm9tIGJhY2tlbmQgYW5kIG5vdCB5ZXQg cHJvY2Vzc2VkICovCiAJY2hhcgkgICAqaW5CdWZmZXI7CQkvKiBjdXJyZW50bHkgYWxsb2Nh dGVkIGJ1ZmZlciAqLwpAQCAtNjczLDYgKzcwNSwxMCBAQCBleHRlcm4gdm9pZCBwcVNhdmVN ZXNzYWdlRmllbGQoUEdyZXN1bHQgKnJlcywgY2hhciBjb2RlLAogCQkJCQkJCSAgIGNvbnN0 IGNoYXIgKnZhbHVlKTsKIGV4dGVybiB2b2lkIHBxU2F2ZVBhcmFtZXRlclN0YXR1cyhQR2Nv bm4gKmNvbm4sIGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkJCQkJCSAgY29uc3QgY2hhciAqdmFs dWUpOworZXh0ZXJuIGludAlwcVNhdmVDb2x1bW5NYXN0ZXJLZXkoUEdjb25uICpjb25uLCBp bnQga2V5aWQsIGNvbnN0IGNoYXIgKmtleW5hbWUsCisJCQkJCQkJCSAgY29uc3QgY2hhciAq a2V5cmVhbG0pOworZXh0ZXJuIGludAlwcVNhdmVDb2x1bW5FbmNyeXB0aW9uS2V5KFBHY29u biAqY29ubiwgaW50IGtleWlkLCBpbnQgY21raWQsIGludCBjbWthbGcsCisJCQkJCQkJCQkg IGNvbnN0IHVuc2lnbmVkIGNoYXIgKnZhbHVlLCBpbnQgbGVuKTsKIGV4dGVybiBpbnQJcHFS b3dQcm9jZXNzb3IoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICoqZXJybXNncCk7CiBleHRl cm4gdm9pZCBwcUNvbW1hbmRRdWV1ZUFkdmFuY2UoUEdjb25uICpjb25uKTsKIGV4dGVybiBp bnQJUFFzZW5kUXVlcnlDb250aW51ZShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnF1ZXJ5 KTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkIGIvc3Jj L2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKaW5kZXggOGU2OTZmMTE4My4uYTNlMmQy ZTk4YiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKQEAgLTI3LDYgKzI3LDcgQEAg ZW5kaWYKIAogaWYgc3NsLmZvdW5kKCkKICAgbGlicHFfc291cmNlcyArPSBmaWxlcygnZmUt c2VjdXJlLWNvbW1vbi5jJykKKyAgbGlicHFfc291cmNlcyArPSBmaWxlcygnZmUtZW5jcnlw dC1vcGVuc3NsLmMnKQogICBsaWJwcV9zb3VyY2VzICs9IGZpbGVzKCdmZS1zZWN1cmUtb3Bl bnNzbC5jJykKIGVuZGlmCiAKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL25s cy5tayBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL25scy5tawppbmRleCA0ZGY1NDRlY2VmLi4w YzM2YWE1ZjMyIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbmxzLm1rCkBAIC0xLDYgKzEsNiBAQAogIyBzcmMv aW50ZXJmYWNlcy9saWJwcS9ubHMubWsKIENBVEFMT0dfTkFNRSAgICAgPSBsaWJwcQotR0VU VEVYVF9GSUxFUyAgICA9IGZlLWF1dGguYyBmZS1hdXRoLXNjcmFtLmMgZmUtY29ubmVjdC5j IGZlLWV4ZWMuYyBmZS1nc3NhcGktY29tbW9uLmMgZmUtbG9iai5jIGZlLW1pc2MuYyBmZS1w cm90b2NvbDMuYyBmZS1zZWN1cmUuYyBmZS1zZWN1cmUtY29tbW9uLmMgZmUtc2VjdXJlLWdz c2FwaS5jIGZlLXNlY3VyZS1vcGVuc3NsLmMgd2luMzIuYyAuLi8uLi9wb3J0L3RocmVhZC5j CitHRVRURVhUX0ZJTEVTICAgID0gZmUtYXV0aC5jIGZlLWF1dGgtc2NyYW0uYyBmZS1jb25u ZWN0LmMgZmUtZW5jcnlwdC1vcGVuc3NsLmMgZmUtZXhlYy5jIGZlLWdzc2FwaS1jb21tb24u YyBmZS1sb2JqLmMgZmUtbWlzYy5jIGZlLXByb3RvY29sMy5jIGZlLXNlY3VyZS5jIGZlLXNl Y3VyZS1jb21tb24uYyBmZS1zZWN1cmUtZ3NzYXBpLmMgZmUtc2VjdXJlLW9wZW5zc2wuYyB3 aW4zMi5jIC4uLy4uL3BvcnQvdGhyZWFkLmMKIEdFVFRFWFRfVFJJR0dFUlMgPSBsaWJwcV9h cHBlbmRfY29ubl9lcnJvcjoyIFwKICAgICAgICAgICAgICAgICAgICBsaWJwcV9hcHBlbmRf ZXJyb3I6MiBcCiAgICAgICAgICAgICAgICAgICAgbGlicHFfZ2V0dGV4dCBwcUludGVybmFs Tm90aWNlOjIKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvLmdpdGln bm9yZSBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvLmdpdGlnbm9yZQppbmRleCA2YmE3 OGFkYjY3Li4xODQ2NTk0ZWM1IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90 ZXN0Ly5naXRpZ25vcmUKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC8uZ2l0aWdu b3JlCkBAIC0xLDIgKzEsMyBAQAorL2xpYnBxX3Rlc3RfZW5jcnlwdAogL2xpYnBxX3Rlc3Rj bGllbnQKIC9saWJwcV91cmlfcmVncmVzcwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMv bGlicHEvdGVzdC9NYWtlZmlsZSBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvTWFrZWZp bGUKaW5kZXggNzVhYzA4Zjk0My4uYjFlYmFiOTBkNCAxMDA2NDQKLS0tIGEvc3JjL2ludGVy ZmFjZXMvbGlicHEvdGVzdC9NYWtlZmlsZQorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS90 ZXN0L01ha2VmaWxlCkBAIC0xNSwxMCArMTUsMTcgQEAgb3ZlcnJpZGUgQ1BQRkxBR1MgOj0g LUkkKGxpYnBxX3NyY2RpcikgJChDUFBGTEFHUykKIExERkxBR1NfSU5URVJOQUwgKz0gJChs aWJwcV9wZ3BvcnQpCiAKIFBST0dTID0gbGlicHFfdGVzdGNsaWVudCBsaWJwcV91cmlfcmVn cmVzcworaWZlcSAoJCh3aXRoX3NzbCksb3BlbnNzbCkKK1BST0dTICs9IGxpYnBxX3Rlc3Rf ZW5jcnlwdAorZW5kaWYKKwogCiBhbGw6ICQoUFJPR1MpCiAKICQoUFJPR1MpOiAkKFdJTjMy UkVTKQogCitsaWJwcV90ZXN0X2VuY3J5cHQ6IC4uL2ZlLWVuY3J5cHQtb3BlbnNzbC5jCisJ JChDQykgJChDUFBGTEFHUykgLURURVNUX0VOQ1JZUFQgJChDRkxBR1MpICReICQoTERGTEFH UykgJChMREZMQUdTX0VYKSAkKExJQlMpIC1vICRAJChYKQorCiBjbGVhbiBkaXN0Y2xlYW4g bWFpbnRhaW5lci1jbGVhbjoKIAlybSAtZiAkKFBST0dTKSAqLm8KZGlmZiAtLWdpdCBhL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvbWVzb24uYnVpbGQgYi9zcmMvaW50ZXJmYWNlcy9s aWJwcS90ZXN0L21lc29uLmJ1aWxkCmluZGV4IDAxN2Y3MjlkNDMuLmZlYTYxM2RkNjMgMTAw NjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvbWVzb24uYnVpbGQKKysrIGIv c3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9tZXNvbi5idWlsZApAQCAtMzQsMyArMzQsNSBA QCBleGVjdXRhYmxlKCdsaWJwcV90ZXN0Y2xpZW50JywKICAgICAnaW5zdGFsbCc6IGZhbHNl LAogICB9CiApCisKKyMgVE9ETzogbGlicHFfdGVzdF9lbmNyeXB0CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9NYWtlZmlsZSBiL3NyYy90ZXN0L01ha2VmaWxlCmluZGV4IGRiZDMxOTI4NzQu LmM4YmExNzA1MDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L01ha2VmaWxlCisrKyBiL3NyYy90 ZXN0L01ha2VmaWxlCkBAIC0yNCw3ICsyNCw3IEBAIGlmZXEgKCQod2l0aF9sZGFwKSx5ZXMp CiBTVUJESVJTICs9IGxkYXAKIGVuZGlmCiBpZmVxICgkKHdpdGhfc3NsKSxvcGVuc3NsKQot U1VCRElSUyArPSBzc2wKK1NVQkRJUlMgKz0gY29sdW1uX2VuY3J5cHRpb24gc3NsCiBlbmRp ZgogCiAjIFRlc3Qgc3VpdGVzIHRoYXQgYXJlIG5vdCBzYWZlIGJ5IGRlZmF1bHQgYnV0IGNh biBiZSBydW4gaWYgc2VsZWN0ZWQKQEAgLTM2LDcgKzM2LDcgQEAgZXhwb3J0IFBHX1RFU1Rf RVhUUkEKICMgY2xlYW4iIGV0YyB0byByZWN1cnNlIGludG8gdGhlbS4gIChXZSBtdXN0IGZp bHRlciBvdXQgdGhvc2UgdGhhdCB3ZQogIyBoYXZlIGNvbmRpdGlvbmFsbHkgaW5jbHVkZWQg aW50byBTVUJESVJTIGFib3ZlLCBlbHNlIHRoZXJlIHdpbGwgYmUKICMgbWFrZSBjb25mdXNp b24uKQotQUxXQVlTX1NVQkRJUlMgPSAkKGZpbHRlci1vdXQgJChTVUJESVJTKSxleGFtcGxl cyBrZXJiZXJvcyBpY3UgbGRhcCBzc2wpCitBTFdBWVNfU1VCRElSUyA9ICQoZmlsdGVyLW91 dCAkKFNVQkRJUlMpLGV4YW1wbGVzIGtlcmJlcm9zIGljdSBsZGFwIHNzbCBjb2x1bW5fZW5j cnlwdGlvbikKIAogIyBXZSB3YW50IHRvIHJlY3Vyc2UgdG8gYWxsIHN1YmRpcnMgZm9yIGFs bCBzdGFuZGFyZCB0YXJnZXRzLCBleGNlcHQgdGhhdAogIyBpbnN0YWxsY2hlY2sgYW5kIGlu c3RhbGwgc2hvdWxkIG5vdCByZWN1cnNlIGludG8gdGhlIHN1YmRpcmVjdG9yeSAibW9kdWxl cyIuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi8uZ2l0aWdub3Jl IGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40NTZkYmY2OWQyCi0tLSAvZGV2L251bGwKKysr IGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGlnbm9yZQpAQCAtMCwwICsxLDMg QEAKKy90ZXN0X2NsaWVudAorIyBHZW5lcmF0ZWQgYnkgdGVzdCBzdWl0ZQorL3RtcF9jaGVj ay8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlIGIv c3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMC4uNzY0Y2FkZjU1MAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlCkBAIC0wLDAgKzEsMzEgQEAKKyMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisjCisjIE1ha2VmaWxlIGZvciBzcmMvdGVzdC9jb2x1bW5f ZW5jcnlwdGlvbgorIworIyBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMywgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyMgUG9ydGlvbnMgQ29weXJpZ2h0 IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyMK KyMgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vTWFrZWZpbGUKKyMKKyMtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisKK3N1YmRpciA9IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uCit0b3Bf YnVpbGRkaXIgPSAuLi8uLi8uLgoraW5jbHVkZSAkKHRvcF9idWlsZGRpcikvc3JjL01ha2Vm aWxlLmdsb2JhbAorCitleHBvcnQgT1BFTlNTTAorCitvdmVycmlkZSBDUFBGTEFHUyA6PSAt SSQobGlicHFfc3JjZGlyKSAkKENQUEZMQUdTKQorTERGTEFHU19JTlRFUk5BTCArPSAtTCQo dG9wX2J1aWxkZGlyKS9zcmMvZmVfdXRpbHMgLWxwZ2ZldXRpbHMgJChsaWJwcV9wZ3BvcnQp CisKK2FsbDogdGVzdF9jbGllbnQKKworY2hlY2s6IGFsbAorCSQocHJvdmVfY2hlY2spCisK K2luc3RhbGxjaGVjazoKKwkkKHByb3ZlX2luc3RhbGxjaGVjaykKKworY2xlYW4gZGlzdGNs ZWFuIG1haW50YWluZXItY2xlYW46CisJcm0gLWYgdGVzdF9jbGllbnQubyB0ZXN0X2NsaWVu dAorCXJtIC1yZiB0bXBfY2hlY2sKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9lbmNy eXB0aW9uL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vbWVzb24u YnVpbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODRjZmE4NGUx MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL21lc29u LmJ1aWxkCkBAIC0wLDAgKzEsMjMgQEAKK2NvbHVtbl9lbmNyeXB0aW9uX3Rlc3RfY2xpZW50 ID0gZXhlY3V0YWJsZSgndGVzdF9jbGllbnQnLAorICBmaWxlcygndGVzdF9jbGllbnQuYycp LAorICBkZXBlbmRlbmNpZXM6IFtmcm9udGVuZF9jb2RlLCBsaWJwcV0sCisgIGt3YXJnczog ZGVmYXVsdF9iaW5fYXJncyArIHsKKyAgICAnaW5zdGFsbCc6IGZhbHNlLAorICB9LAorKQor dGVzdHByZXBfdGFyZ2V0cyArPSBjb2x1bW5fZW5jcnlwdGlvbl90ZXN0X2NsaWVudAorCit0 ZXN0cyArPSB7CisgICduYW1lJzogJ2NvbHVtbl9lbmNyeXB0aW9uJywKKyAgJ3NkJzogbWVz b24uY3VycmVudF9zb3VyY2VfZGlyKCksCisgICdiZCc6IG1lc29uLmN1cnJlbnRfYnVpbGRf ZGlyKCksCisgICd0YXAnOiB7CisgICAgJ3Rlc3RzJzogWworICAgICAgJ3QvMDAxX2NvbHVt bl9lbmNyeXB0aW9uLnBsJywKKyAgICAgICd0LzAwMl9jbWtfcm90YXRpb24ucGwnLAorICAg IF0sCisgICAgJ2Vudic6IHsKKyAgICAgICdPUEVOU1NMJzogb3BlbnNzbC5wYXRoKCksCisg ICAgfSwKKyAgfSwKK30KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9u L3QvMDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBsIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRp b24vdC8wMDFfY29sdW1uX2VuY3J5cHRpb24ucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uMmRlMzE2MzJkMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0 L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBsCkBAIC0wLDAg KzEsMjM4IEBACisjIENvcHlyaWdodCAoYykgMjAyMS0yMDIzLCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNl IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRp bHM7Cit1c2UgVGVzdDo6TW9yZTsKKworbXkgJG9wZW5zc2wgPSAkRU5We09QRU5TU0x9Owor CisjIENhbiBiZSBjaGFuZ2VkIG1hbnVhbGx5IGZvciB0ZXN0aW5nIG90aGVyIGFsZ29yaXRo bXMuICBOb3RlIHRoYXQKKyMgUlNBRVNfT0FFUF9TSEFfMjU2IHJlcXVpcmVzIE9wZW5TU0wg MS4xLjAuCitteSAkY21rYWxnID0gJ1JTQUVTX09BRVBfU0hBXzEnOworCitteSAkbm9kZSA9 IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnbm9kZScpOworJG5vZGUtPmluaXQ7 Ciskbm9kZS0+c3RhcnQ7CisKKworc3ViIGNyZWF0ZV9jbWsKK3sKKwlteSAoJGNta25hbWUp ID0gQF87CisJbXkgJGNta2ZpbGVuYW1lID0gIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6 OnRtcF9jaGVja30vJHtjbWtuYW1lfS5wZW0iOworCXN5c3RlbV9vcl9iYWlsICRvcGVuc3Ns LCAnZ2VucGtleScsICctYWxnb3JpdGhtJywgJ3JzYScsICctb3V0JywgJGNta2ZpbGVuYW1l OworCSRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7Q1JFQVRFIENPTFVNTiBNQVNU RVIgS0VZICR7Y21rbmFtZX19KTsKKwlyZXR1cm4gJGNta2ZpbGVuYW1lOworfQorCitzdWIg Y3JlYXRlX2NlaworeworCW15ICgkY2VrbmFtZSwgJGJ5dGVzLCAkY21rbmFtZSwgJGNta2Zp bGVuYW1lKSA9IEBfOworCisJbXkgJGRpZ2VzdCA9ICRjbWthbGc7CisJJGRpZ2VzdCA9fiBz Ly4qKD89U0hBKS8vOworCSRkaWdlc3QgPX4gcy9fLy9nOworCisJIyBnZW5lcmF0ZSByYW5k b20gYnl0ZXMKKwlzeXN0ZW1fb3JfYmFpbCAkb3BlbnNzbCwgJ3JhbmQnLCAnLW91dCcsICIk e1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluIiwg JGJ5dGVzOworCisJIyBlbmNyeXB0IENFSyB1c2luZyBDTUsKKwlteSBAY21kID0gKAorCQkk b3BlbnNzbCwgJ3BrZXl1dGwnLCAnLWVuY3J5cHQnLAorCQknLWlua2V5JywgJGNta2ZpbGVu YW1lLAorCQknLXBrZXlvcHQnLCAncnNhX3BhZGRpbmdfbW9kZTpvYWVwJywKKwkJJy1pbics ICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmlu IiwKKwkJJy1vdXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8k e2Nla25hbWV9LmJpbi5lbmMiCisJKTsKKwlpZiAoJGRpZ2VzdCBuZSAnU0hBMScpCisJewor CQkjIFRoZXNlIG9wdGlvbnMgcmVxdWlyZSBPcGVuU1NMID49MS4xLjAsIHNvIGlmIHRoZSBk aWdlc3QgaXMKKwkJIyBTSEExLCB3aGljaCBpcyB0aGUgZGVmYXVsdCwgb21pdCB0aGUgb3B0 aW9ucy4KKwkJcHVzaCBAY21kLAorCQkgICctcGtleW9wdCcsICJyc2FfbWdmMV9tZDokZGln ZXN0IiwKKwkJICAnLXBrZXlvcHQnLCAicnNhX29hZXBfbWQ6JGRpZ2VzdCI7CisJfQorCXN5 c3RlbV9vcl9iYWlsIEBjbWQ7CisKKwlteSAkY2VrZW5jaGV4ID0gdW5wYWNrKCdIKicsIHNs dXJwX2ZpbGUgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtu YW1lfS5iaW4uZW5jIik7CisKKwkjIGNyZWF0ZSBDRUsgaW4gZGF0YWJhc2UKKwkkbm9kZS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkg JHtjZWtuYW1lfSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSAke2Nta25hbWV9 LCBhbGdvcml0aG0gPSAnJHtjbWthbGd9JywgZW5jcnlwdGVkX3ZhbHVlID0gJ1xceCR7Y2Vr ZW5jaGV4fScpO30pOworCisJcmV0dXJuOworfQorCisKK215ICRjbWsxZmlsZW5hbWUgPSBj cmVhdGVfY21rKCdjbWsxJyk7CitteSAkY21rMmZpbGVuYW1lID0gY3JlYXRlX2NtaygnY21r MicpOworY3JlYXRlX2NlaygnY2VrMScsIDQ4LCAnY21rMScsICRjbWsxZmlsZW5hbWUpOwor Y3JlYXRlX2NlaygnY2VrMicsIDcyLCAnY21rMicsICRjbWsyZmlsZW5hbWUpOworCiskRU5W eydQR0NPTFVNTkVOQ1JZUFRJT04nfSA9ICcxJzsKKyRFTlZ7J1BHQ01LTE9PS1VQJ30gPSAn Kj1maWxlOicgLiAke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9IC4gJy8l ay5wZW0nOworCisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CitDUkVBVEUg VEFCTEUgdGJsMSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChj b2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSwKKyAgICBjIHNtYWxsaW50IEVOQ1JZUFRF RCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK30pOworCiskbm9k ZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CitJTlNFUlQgSU5UTyB0YmwxIChhLCBiLCBj KSBWQUxVRVMgKDEsICQxLCAkMikgXGJpbmQgJ3ZhbDEnIDExIFxnCitJTlNFUlQgSU5UTyB0 YmwxIChhLCBiLCBjKSBWQUxVRVMgKDIsICQxLCAkMikgXGJpbmQgJ3ZhbDInIDIyIFxnCit9 KTsKKworIyBFeHBlY3RlZCBjaXBoZXJ0ZXh0IGxlbmd0aCBpcyAyIGJsb2NrcyBvZiBBRVMg b3V0cHV0ICgyICogMTYpIHBsdXMKKyMgaGFsZiBTSEEtMjU2IG91dHB1dCAoMTYpIGluIGhl eCBlbmNvZGluZzogKDIgKiAxNiArIDE2KSAqIDIgPSA5NgorbGlrZSgkbm9kZS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsIHF7Q09QWSAoU0VMRUNUICogRlJPTSB0YmwxKSBUTyBTVERPVVR9 KSwKKwlxci8xXHRlbmNyeXB0ZWRcJFswLTlhLWZdezk2fVx0ZW5jcnlwdGVkXCRbMC05YS1m XXs5Nn1cbjJcdGVuY3J5cHRlZFwkWzAtOWEtZl17OTZ9XHRlbmNyeXB0ZWRcJFswLTlhLWZd ezk2fS8sCisJJ2luc2VydGVkIGRhdGEgaXMgZW5jcnlwdGVkJyk7CisKK215ICRyZXN1bHQ7 CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEs IGIsIGMgRlJPTSB0YmwxIFxnZGVzY30pOworaXMoJHJlc3VsdCwKKwlxKGF8aW50ZWdlcgor Ynx0ZXh0CitjfHNtYWxsaW50KSwKKwkncXVlcnkgcmVzdWx0IGRlc2NyaXB0aW9uIGhhcyBv cmlnaW5hbCB0eXBlJyk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CitpcygkcmVzdWx0LAorCXEoMXx2 YWwxfDExCisyfHZhbDJ8MjIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0Jyk7CisKK3sK Kwlsb2NhbCAkRU5WeydQR0NNS0xPT0tVUCd9ID0gJyo9cnVuOmJyb2tlbiAlayAiJXAiJzsK KwkkcmVzdWx0ID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBG Uk9NIHRibDF9KTsKKwlpc250KCRyZXN1bHQsIDAsICdxdWVyeSBmYWlscyB3aXRoIGJyb2tl biBjbWtsb29rdXAgcnVuIHNldHRpbmcnKTsKK30KKworVE9ETzogeworCWxvY2FsICRUT0RP ID0gJ3BhdGggbm90IGJlaW5nIHBhc3NlZCBjb3JyZWN0bHkgb24gV2luZG93cycgaWYgJHdp bmRvd3Nfb3M7CisKKwlsb2NhbCAkRU5WeydQR0NNS0xPT0tVUCd9ID0gIio9cnVuOnBlcmwg Li90ZXN0X3J1bl9kZWNyeXB0LnBsICcke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBf Y2hlY2t9JyAlayAlYSAnJXAnIjsKKworCW15ICRzdGRvdXQ7CisJJHJlc3VsdCA9ICRub2Rl LT5wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSwgc3Rkb3V0 ID0+IFwkc3Rkb3V0KTsKKwlpcygkc3Rkb3V0LAorCQlxKDF8dmFsMXwxMQorMnx2YWwyfDIy KSwKKwkJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgd2l0aCBjbWtsb29rdXAgcnVuJyk7Cit9 CisKKworJG5vZGUtPmNvbW1hbmRfZmFpbHNfbGlrZShbJ3Rlc3RfY2xpZW50JywgJ3Rlc3Qx J10sIHFyL25vdCBlbmNyeXB0ZWQvLCAndGVzdCBjbGllbnQgZmFpbHMgYmVjYXVzZSBwYXJh bWV0ZXJzIG5vdCBlbmNyeXB0ZWQnKTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKK2lzKCRyZXN1bHQs CisJcSgxfHZhbDF8MTEKKzJ8dmFsMnwyMiksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQg YWZ0ZXIgdGVzdCBjbGllbnQgaW5zZXJ0Jyk7CisKKyRub2RlLT5jb21tYW5kX29rKFsndGVz dF9jbGllbnQnLCAndGVzdDInXSwgJ3Rlc3QgY2xpZW50IHRlc3QgMicpOworCiskcmVzdWx0 ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00g dGJsMX0pOworaXMoJHJlc3VsdCwKKwlxKDF8dmFsMXwxMQorMnx2YWwyfDIyCiszfHZhbDN8 MzMpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IGFmdGVyIHRlc3QgY2xpZW50IGluc2Vy dCAyJyk7CisKK2xpa2UoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe0NPUFkgKFNF TEVDVCAqIEZST00gdGJsMSBXSEVSRSBhID0gMykgVE8gU1RET1VUfSksCisJcXIvM1x0ZW5j cnlwdGVkXCRbMC05YS1mXXs5Nn0vLAorCSdpbnNlcnRlZCBkYXRhIGlzIGVuY3J5cHRlZCcp OworCisKKyMgVGVzdHMgd2l0aCBiaW5hcnkgZm9ybWF0CisKKyMgU3VwcGx5aW5nIGEgcGFy YW1ldGVyIGluIGJpbmFyeSBmb3JtYXQgd2hlbiB0aGUgcGFyYW1ldGVyIGlzIHRvIGJlCisj IGVuY3J5cHRlZCByZXN1bHRzIGluIGFuIGVycm9yIGZyb20gbGlicHEuCiskbm9kZS0+Y29t bWFuZF9mYWlsc19saWtlKFsndGVzdF9jbGllbnQnLCAndGVzdDMnXSwKKwlxci9mb3JtYXQg bXVzdCBiZSB0ZXh0IGZvciBlbmNyeXB0ZWQgcGFyYW1ldGVyLywKKwkndGVzdCBjbGllbnQg ZmFpbHMgYmVjYXVzZSB0by1iZS1lbmNyeXB0ZWQgcGFyYW1ldGVyIGlzIGluIGJpbmFyeSBm b3JtYXQnKTsKKworIyBSZXF1ZXN0aW5nIGEgYmluYXJ5IHJlc3VsdCBzZXQgc3RpbGwgY2F1 c2VzIGFueSBlbmNyeXB0ZWQgY29sdW1ucyB0bworIyBiZSByZXR1cm5lZCBhcyB0ZXh0IGZy b20gdGhlIGxpYnBxIEFQSS4KKyRub2RlLT5jb21tYW5kX2xpa2UoWyd0ZXN0X2NsaWVudCcs ICd0ZXN0NCddLAorCXFyLzwwLDA+PTE6XG48MCwxPj0wOnZhbDFcbjwwLDI+PTA6MTEvLAor CSdiaW5hcnkgcmVzdWx0IHNldCB3aXRoIGVuY3J5cHRlZCBjb2x1bW5zOiBlbmNyeXB0ZWQg Y29sdW1ucyByZXR1cm5lZCBhcyB0ZXh0Jyk7CisKKworIyBUZXN0IFVQREFURQorCiskbm9k ZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CitVUERBVEUgdGJsMSBTRVQgYiA9ICQyIFdI RVJFIGEgPSAkMSBcYmluZCAnMycgJ3ZhbDN1cGQnIFxnCit9KTsKKworJHJlc3VsdCA9ICRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9 KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZhbDF8MTEKKzJ8dmFsMnwyMgorM3x2YWwzdXBkfDMz KSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBhZnRlciB1cGRhdGUnKTsKKworCisjIFRl c3QgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uCisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgcXF7CitDUkVBVEUgVEFCTEUgdGJsMiAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0 IEVOQ1JZUFRFRCBXSVRIIChlbmNyeXB0aW9uX3R5cGUgPSBkZXRlcm1pbmlzdGljLCBjb2x1 bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK30pOworCiskbm9kZS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHF7CitJTlNFUlQgSU5UTyB0YmwyIChhLCBiKSBWQUxVRVMgKCQxLCAk MiksICgkMywgJDQpLCAoJDUsICQ2KSBcYmluZCAnMScgJ3ZhbEEnICcyJyAndmFsQicgJzMn ICd2YWxBJyBcZworfSk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsIHF7U0VMRUNUIGEsIGIgRlJPTSB0YmwyfSk7CitpcygkcmVzdWx0LAorCXEoMXx2YWxB CisyfHZhbEIKKzN8dmFsQSksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgaW4gdGFibGUg Zm9yIGRldGVybWluaXN0aWMgZW5jcnlwdGlvbicpOworCitpcygkbm9kZS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHF7U0VMRUNUIGIsIGNvdW50KCopIEZST00gdGJsMiBHUk9VUCBCWSBi IE9SREVSIEJZIDJ9KSwKKwlxKHZhbEJ8MQordmFsQXwyKSwKKwknZ3JvdXAgYnkgZGV0ZXJt aW5pc3RpY2FsbHkgZW5jcnlwdGVkIGNvbHVtbicpOworCisKKyMgVGVzdCBtdWx0aXBsZSBr ZXlzIGluIG9uZSB0YWJsZQorCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxewor Q1JFQVRFIFRBQkxFIHRibDMgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBURUQg V0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSksCisgICAgYyB0ZXh0IEVOQ1JZ UFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsyLCBhbGdvcml0aG0gPSAn QUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQnKQorKTsKK30pOworCiskbm9kZS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsIHF7CitJTlNFUlQgSU5UTyB0YmwzIChhLCBiLCBjKSBWQUxV RVMgKDEsICQxLCAkMikgXGJpbmQgJ3ZhbEIxJyAndmFsQzEnIFxnCit9KTsKKworJHJlc3Vs dCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9N IHRibDN9KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZhbEIxfHZhbEMxKSwKKwknZGVjcnlwdGVk IHF1ZXJ5IHJlc3VsdCBtdWx0aXBsZSBrZXlzJyk7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgcXsKK0lOU0VSVCBJTlRPIHRibDMgKGEsIGIsIGMpIFZBTFVFUyAoJDEsICQy LCAkMyksICgkNCwgJDUsICQ2KSBcYmluZCAnMicgJ3ZhbEIyJyAndmFsQzInICczJyAndmFs QjMnICd2YWxDMycgXGcKK30pOworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsM30pOworaXMoJHJlc3VsdCwKKwlx KDF8dmFsQjF8dmFsQzEKKzJ8dmFsQjJ8dmFsQzIKKzN8dmFsQjN8dmFsQzMpLAorCSdkZWNy eXB0ZWQgcXVlcnkgcmVzdWx0IG11bHRpcGxlIGtleXMgYWZ0ZXIgc2Vjb25kIGluc2VydCcp OworCisKK2RvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1uX2Vu Y3J5cHRpb24vdC8wMDJfY21rX3JvdGF0aW9uLnBsIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5 cHRpb24vdC8wMDJfY21rX3JvdGF0aW9uLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLmJiM2IxNzBkM2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9j b2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwKQEAgLTAsMCArMSwxMTIg QEAKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjMsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisKKyMgVGVzdCBjb2x1bW4gbWFzdGVyIGtleSByb3RhdGlvbi4gIEZp cnN0LCB3ZSBnZW5lcmF0ZSBDTUsxIGFuZCBhIENFSworIyBlbmNyeXB0ZWQgd2l0aCBpdC4g IFRoZW4gd2UgYWRkIGEgQ01LMiBhbmQgZW5jcnlwdCB0aGUgQ0VLIHdpdGggaXQKKyMgYXMg d2VsbC4gIChSZWNhbGwgdGhhdCBhIENFSyBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIG11bHRp cGxlIENNS3MsCisjIGZvciB0aGlzIHJlYXNvbi4gIFRoYXQncyB3aHkgcGdfY29sZW5ja2V5 ZGF0YSBpcyBzcGxpdCBvdXQgZnJvbQorIyBwZ19jb2xlbmNrZXkuKSAgVGhlbiB3ZSByZW1v dmUgQ01LMS4gIFdlIHRlc3QgdGhhdCB3ZSBjYW4gZ2V0CisjIGRlY3J5cHRlZCBxdWVyeSBy ZXN1bHRzIGF0IGVhY2ggc3RlcC4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3Vz ZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0 aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK215ICRvcGVuc3NsID0gJEVOVntPUEVOU1NMfTsK KworbXkgJGNta2FsZyA9ICdSU0FFU19PQUVQX1NIQV8xJzsKKworbXkgJG5vZGUgPSBQb3N0 Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUnKTsKKyRub2RlLT5pbml0OworJG5v ZGUtPnN0YXJ0OworCisKK3N1YiBjcmVhdGVfY21rCit7CisJbXkgKCRjbWtuYW1lKSA9IEBf OworCW15ICRjbWtmaWxlbmFtZSA9ICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBf Y2hlY2t9LyR7Y21rbmFtZX0ucGVtIjsKKwlzeXN0ZW1fb3JfYmFpbCAkb3BlbnNzbCwgJ2dl bnBrZXknLCAnLWFsZ29yaXRobScsICdyc2EnLCAnLW91dCcsICRjbWtmaWxlbmFtZTsKKwkk bm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0NSRUFURSBDT0xVTU4gTUFTVEVSIEtF WSAke2Nta25hbWV9fSk7CisJcmV0dXJuICRjbWtmaWxlbmFtZTsKK30KKworCitteSAkY21r MWZpbGVuYW1lID0gY3JlYXRlX2NtaygnY21rMScpOworCisjIGNyZWF0ZSBDRUsKK215ICgk Y2VrbmFtZSwgJGJ5dGVzKSA9ICgnY2VrMScsIDQ4KTsKKworIyBnZW5lcmF0ZSByYW5kb20g Ynl0ZXMKK3N5c3RlbV9vcl9iYWlsICRvcGVuc3NsLCAncmFuZCcsICctb3V0JywgIiR7UG9z dGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4iLCAkYnl0 ZXM7CisKKyMgZW5jcnlwdCBDRUsgdXNpbmcgQ01LCitzeXN0ZW1fb3JfYmFpbCAkb3BlbnNz bCwgJ3BrZXl1dGwnLCAnLWVuY3J5cHQnLAorICAnLWlua2V5JywgJGNtazFmaWxlbmFtZSwK KyAgJy1wa2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisgICctaW4nLCAiJHtQ b3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbiIsCisg ICctb3V0JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtu YW1lfS5iaW4uZW5jIjsKKworbXkgJGNla2VuY2hleCA9IHVucGFjaygnSConLCBzbHVycF9m aWxlICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0u YmluLmVuYyIpOworCisjIGNyZWF0ZSBDRUsgaW4gZGF0YWJhc2UKKyRub2RlLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgcXF7Q1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAke2Nla25h bWV9IFdJVEggVkFMVUVTIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsIGFsZ29yaXRobSA9 ICckY21rYWxnJywgZW5jcnlwdGVkX3ZhbHVlID0gJ1xceCR7Y2VrZW5jaGV4fScpO30pOwor CiskRU5WeydQR0NPTFVNTkVOQ1JZUFRJT04nfSA9ICcxJzsKKyRFTlZ7J1BHQ01LTE9PS1VQ J30gPSAnKj1maWxlOicgLiAke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9 IC4gJy8lay5wZW0nOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworQ1JF QVRFIFRBQkxFIHRibDEgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBURUQgV0lU SCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSkKKyk7Cit9KTsKKworJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCBxeworSU5TRVJUIElOVE8gdGJsMSAoYSwgYikgVkFMVUVT ICgxLCAkMSkgXGJpbmQgJ3ZhbDEnIFxnCitJTlNFUlQgSU5UTyB0YmwxIChhLCBiKSBWQUxV RVMgKDIsICQxKSBcYmluZCAndmFsMicgXGcKK30pOworCitpcygkbm9kZS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIgRlJPTSB0YmwxfSksCisJcSgxfHZhbDEKKzJ8 dmFsMiksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgd2l0aCBvbmUgQ01LJyk7CisKKwor IyBjcmVhdGUgbmV3IENNSworbXkgJGNtazJmaWxlbmFtZSA9IGNyZWF0ZV9jbWsoJ2NtazIn KTsKKworIyBlbmNyeXB0IENFSyB1c2luZyBuZXcgQ01LCisjCisjIChIZXJlLCB3ZSBzdGls bCBoYXZlIHRoZSBwbGFpbnRleHQgb2YgdGhlIENFSyBhdmFpbGFibGUgZnJvbQorIyBlYXJs aWVyLiAgSW4gcmVhbGl0eSwgb25lIHdvdWxkIGRlY3J5cHQgdGhlIENFSyB3aXRoIHRoZSBm aXJzdCBDTUsKKyMgYW5kIHRoZW4gcmUtZW5jcnlwdCBpdCB3aXRoIHRoZSBzZWNvbmQgQ01L LikKK3N5c3RlbV9vcl9iYWlsICRvcGVuc3NsLCAncGtleXV0bCcsICctZW5jcnlwdCcsCisg ICctaW5rZXknLCAkY21rMmZpbGVuYW1lLAorICAnLXBrZXlvcHQnLCAncnNhX3BhZGRpbmdf bW9kZTpvYWVwJywKKyAgJy1pbicsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBf Y2hlY2t9LyR7Y2VrbmFtZX0uYmluIiwKKyAgJy1vdXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0 OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbi5lbmMiOworCiskY2VrZW5jaGV4 ID0gdW5wYWNrKCdIKicsIHNsdXJwX2ZpbGUgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6 OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIik7CisKKyMgYWRkIG5ldyBkYXRhIHJl Y29yZCBmb3IgQ0VLIGluIGRhdGFiYXNlCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs IHFxe0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAke2Nla25hbWV9IEFERCBWQUxVRSAo Y29sdW1uX21hc3Rlcl9rZXkgPSBjbWsyLCBhbGdvcml0aG0gPSAnJGNta2FsZycsIGVuY3J5 cHRlZF92YWx1ZSA9ICdcXHgke2Nla2VuY2hleH0nKTt9KTsKKworCitpcygkbm9kZS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIgRlJPTSB0YmwxfSksCisJcSgxfHZh bDEKKzJ8dmFsMiksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgd2l0aCB0d28gQ01Lcycp OworCisKKyMgZGVsZXRlIENFSyByZWNvcmQgZm9yIGZpcnN0IENNSworJG5vZGUtPnNhZmVf cHNxbCgncG9zdGdyZXMnLCBxcXtBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgJHtjZWtu YW1lfSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEpO30pOworCisKK2lz KCRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiBGUk9NIHRibDF9 KSwKKwlxKDF8dmFsMQorMnx2YWwyKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCB3aXRo IG9ubHkgbmV3IENNSycpOworCisKK2RvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9jbGllbnQuYyBiL3NyYy90ZXN0L2NvbHVt bl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uOWMyNTdhM2RkYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2Nv bHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMKQEAgLTAsMCArMSwxNjEgQEAKKy8qCisg KiBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXNfZmUuaCIKKworI2luY2x1ZGUg ImxpYnBxLWZlLmgiCisKKworLyoKKyAqIFRlc3QgY2FsbHMgdGhhdCBkb24ndCBzdXBwb3J0 IGVuY3J5cHRpb24KKyAqLworc3RhdGljIGludAordGVzdDEoUEdjb25uICpjb25uKQorewor CVBHcmVzdWx0ICAgKnJlczsKKwljb25zdCBjaGFyICp2YWx1ZXNbXSA9IHsiMyIsICJ2YWwz IiwgIjMzIn07CisKKwlyZXMgPSBQUXByZXBhcmUoY29ubiwgIiIsICJJTlNFUlQgSU5UTyB0 YmwxIChhLCBiLCBjKSBWQUxVRVMgKCQxLCAkMiwgJDMpIiwKKwkJCQkJMywgTlVMTCk7CisJ aWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZw cmludGYoc3RkZXJyLCAiUFFwcmVwYXJlKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9y TWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJlcyA9IFBRZXhlY1ByZXBh cmVkKGNvbm4sICIiLCAzLCB2YWx1ZXMsIE5VTEwsIE5VTEwsIDApOworCWlmIChQUXJlc3Vs dFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVy ciwgIlBRZXhlY1ByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2Fn ZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICog VGVzdCBmb3JjZWQgZW5jcnlwdGlvbgorICovCitzdGF0aWMgaW50Cit0ZXN0MihQR2Nvbm4g KmNvbm4pCit7CisJUEdyZXN1bHQgICAqcmVzLAorCQkJICAgKnJlczI7CisJY29uc3QgY2hh ciAqdmFsdWVzW10gPSB7IjMiLCAidmFsMyIsICIzMyJ9OworCWludAkJCWZvcm1hdHNbXSA9 IHsweDAwLCAweDEwLCAweDAwfTsKKworCXJlcyA9IFBRcHJlcGFyZShjb25uLCAiIiwgIklO U0VSVCBJTlRPIHRibDEgKGEsIGIsIGMpIFZBTFVFUyAoJDEsICQyLCAkMykiLAorCQkJCQkz LCBOVUxMKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09L KQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUXByZXBhcmUoKSBmYWlsZWQ6ICVzXG4iLAor CQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmVzMiA9 IFBRZGVzY3JpYmVQcmVwYXJlZChjb25uLCAiIik7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJl czIpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRZGVz Y3JpYmVQcmVwYXJlZCgpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29u bikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAoISghUFFwYXJhbWlzZW5jcnlwdGVkKHJl czIsIDApICYmCisJCSAgUFFwYXJhbWlzZW5jcnlwdGVkKHJlczIsIDEpKSkKKwl7CisJCWZw cmludGYoc3RkZXJyLCAid3JvbmcgcmVzdWx0cyBmcm9tIFBRcGFyYW1pc2VuY3J5cHRlZCgp XG4iKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmVzID0gUFFleGVjUHJlcGFyZWREZXNjcmli ZWQoY29ubiwgIiIsIDMsIHZhbHVlcywgTlVMTCwgZm9ybWF0cywgMCwgcmVzMik7CisJaWYg KFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmlu dGYoc3RkZXJyLCAiUFFleGVjUHJlcGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJy b3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIDA7Cit9CisK Ky8qCisgKiBUZXN0IHdoYXQgaGFwcGVucyB3aGVuIHlvdSBzdXBwbHkgYSBiaW5hcnkgcGFy YW1ldGVyIHRoYXQgaXMgcmVxdWlyZWQgdG8gYmUKKyAqIGVuY3J5cHRlZC4KKyAqLworc3Rh dGljIGludAordGVzdDMoUEdjb25uICpjb25uKQoreworCVBHcmVzdWx0ICAgKnJlczsKKwlj b25zdCBjaGFyICp2YWx1ZXNbXSA9IHsiIn07CisJaW50CQkJbGVuZ3Roc1tdID0gezF9Owor CWludAkJCWZvcm1hdHNbXSA9IHsxfTsKKworCXJlcyA9IFBRZXhlY1BhcmFtcyhjb25uLCAi SU5TRVJUIElOVE8gdGJsMSAoYSwgYiwgYykgVkFMVUVTICgxMDAsIE5VTEwsICQxKSIsCisJ CQkJCSAgIDMsIE5VTEwsIHZhbHVlcywgbGVuZ3RocywgZm9ybWF0cywgMCk7CisJaWYgKFBR cmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYo c3RkZXJyLCAiUFFleGVjUGFyYW1zKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVz c2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCisvKgor ICogVGVzdCB3aGF0IGhhcHBlbnMgd2hlbiB5b3UgcmVxdWVzdCByZXN1bHRzIGluIGJpbmFy eSBhbmQgdGhlIHJlc3VsdCByb3dzCisgKiBjb250YWluIGFuIGVuY3J5cHRlZCBjb2x1bW4u CisgKi8KK3N0YXRpYyBpbnQKK3Rlc3Q0KFBHY29ubiAqY29ubikKK3sKKwlQR3Jlc3VsdCAg ICpyZXM7CisKKwlyZXMgPSBQUWV4ZWNQYXJhbXMoY29ubiwgIlNFTEVDVCBhLCBiLCBjIEZS T00gdGJsMSBXSEVSRSBhID0gMSIsIDAsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIDEpOwor CWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykKKwl7CisJCWZw cmludGYoc3RkZXJyLCAiUFFleGVjUGFyYW1zKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVy cm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCWZvciAoaW50IHJvdyA9 IDA7IHJvdyA8IFBRbnR1cGxlcyhyZXMpOyByb3crKykKKwkJZm9yIChpbnQgY29sID0gMDsg Y29sIDwgUFFuZmllbGRzKHJlcyk7IGNvbCsrKQorCQkJcHJpbnRmKCI8JWQsJWQ+PSVkOiVz XG4iLCByb3csIGNvbCwgUFFmZm9ybWF0KHJlcywgY29sKSwgUFFnZXR2YWx1ZShyZXMsIHJv dywgY29sKSk7CisJcmV0dXJuIDA7Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCit7CisJUEdjb25uCSAgICpjb25uOworCWludAkJCXJldCA9IDA7CisKKwljb25u ID0gUFFjb25uZWN0ZGIoIiIpOworCWlmIChQUXN0YXR1cyhjb25uKSAhPSBDT05ORUNUSU9O X09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJDb25uZWN0aW9uIHRvIGRhdGFiYXNlIGZh aWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsK Kwl9CisKKwlpZiAoYXJnYyA8IDIgfHwgYXJndlsxXSA9PSBOVUxMKQorCQlyZXR1cm4gODc7 CisJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0MSIpID09IDApCisJCXJldCA9IHRl c3QxKGNvbm4pOworCWVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAidGVzdDIiKSA9PSAwKQor CQlyZXQgPSB0ZXN0Mihjb25uKTsKKwllbHNlIGlmIChzdHJjbXAoYXJndlsxXSwgInRlc3Qz IikgPT0gMCkKKwkJcmV0ID0gdGVzdDMoY29ubik7CisJZWxzZSBpZiAoc3RyY21wKGFyZ3Zb MV0sICJ0ZXN0NCIpID09IDApCisJCXJldCA9IHRlc3Q0KGNvbm4pOworCWVsc2UKKwkJcmV0 ID0gODg7CisKKwlQUWZpbmlzaChjb25uKTsKKwlyZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9ydW5fZGVjcnlwdC5wbCBiL3Ny Yy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwKbmV3IGZpbGUg bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMC4uOTRiYjY5MDY2YQotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwK QEAgLTAsMCArMSw1OCBAQAorIyEvdXNyL2Jpbi9wZXJsCisKKyMgVGVzdC9zYW1wbGUgY29t bWFuZCBmb3IgbGlicHEgY21rbG9va3VwIHJ1biBzY2hlbWUKKyMKKyMgVGhpcyBqdXN0IHBs YWNlcyB0aGUgZGF0YSBpbnRvIHRlbXBvcmFyeSBmaWxlcyBhbmQgcnVucyB0aGUgb3BlbnNz bAorIyBjb21tYW5kIG9uIGl0LiAgKEluIHByYWN0aWNlLCB0aGlzIGNvdWxkIG1vcmUgc2lt cGx5IGJlIHdyaXR0ZW4gYXMgYQorIyBzaGVsbCBzY3JpcHQsIGJ1dCB0aGlzIHdheSBpdCdz IG1vcmUgcG9ydGFibGUuKQorCisjIENvcHlyaWdodCAoYykgMjAyMS0yMDIzLCBQb3N0Z3Jl U1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5p bmdzOworCit1c2UgTUlNRTo6QmFzZTY0OworCitteSAoJHRtcGRpciwgJGNta25hbWUsICRh bGcsICRmaWxlbmFtZSkgPSBAQVJHVjsKKworZGllIHVubGVzcyAkYWxnID1+ICdSU0FFU19P QUVQX1NIQSc7CisKK215ICRkaWdlc3QgPSAkYWxnOworJGRpZ2VzdCA9fiBzLy4qKD89U0hB KS8vOworJGRpZ2VzdCA9fiBzL18vL2c7CisKK215ICRvcGVuc3NsID0gJEVOVntPUEVOU1NM fTsKKworbXkgQGNtZCA9ICgKKwkkb3BlbnNzbCwgJ3BrZXl1dGwnLCAnLWRlY3J5cHQnLAor CSctaW5rZXknLCAiJHt0bXBkaXJ9LyR7Y21rbmFtZX0ucGVtIiwgJy1wa2V5b3B0JywgJ3Jz YV9wYWRkaW5nX21vZGU6b2FlcCcsCisJJy1pbicsICRmaWxlbmFtZSwgJy1vdXQnLCAiJHt0 bXBkaXJ9L291dHB1dC50bXAiCispOworCitpZiAoJGRpZ2VzdCBuZSAnU0hBMScpCit7CisJ IyBUaGVzZSBvcHRpb25zIHJlcXVpcmUgT3BlblNTTCA+PTEuMS4wLCBzbyBpZiB0aGUgZGln ZXN0IGlzCisJIyBTSEExLCB3aGljaCBpcyB0aGUgZGVmYXVsdCwgb21pdCB0aGUgb3B0aW9u cy4KKwlwdXNoIEBjbWQsCisJICAnLXBrZXlvcHQnLCAicnNhX21nZjFfbWQ6JGRpZ2VzdCIs CisJICAnLXBrZXlvcHQnLCAicnNhX29hZXBfbWQ6JGRpZ2VzdCI7Cit9CisKK3N5c3RlbShA Y21kKSA9PSAwIG9yIGRpZSAic3lzdGVtIGZhaWxlZDogJD8iOworCitvcGVuIG15ICRmaCwg Jzw6cmF3JywgIiR7dG1wZGlyfS9vdXRwdXQudG1wIiBvciBkaWUgJCE7CitteSAkZGF0YSA9 ICcnOworCit3aGlsZSAoMSkgeworCW15ICRzdWNjZXNzID0gcmVhZCAkZmgsICRkYXRhLCAx MDAsIGxlbmd0aCgkZGF0YSk7CisJZGllICQhIGlmIG5vdCBkZWZpbmVkICRzdWNjZXNzOwor CWxhc3QgaWYgbm90ICRzdWNjZXNzOworfQorCitjbG9zZSAkZmg7CisKK3VubGluayAiJHt0 bXBkaXJ9L291dHB1dC50bXAiOworCitiaW5tb2RlIFNURE9VVDsKKworcHJpbnQgJGRhdGE7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L21lc29uLmJ1 aWxkCmluZGV4IDI0MWQ5ZDQ4YWEuLjBkMzljZWRlYjEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L21lc29uLmJ1aWxkCkBAIC03LDYgKzcsNyBA QCBzdWJkaXIoJ3N1YnNjcmlwdGlvbicpCiBzdWJkaXIoJ21vZHVsZXMnKQogCiBpZiBzc2wu Zm91bmQoKQorICBzdWJkaXIoJ2NvbHVtbl9lbmNyeXB0aW9uJykKICAgc3ViZGlyKCdzc2wn KQogZW5kaWYKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2x1 bW5fZW5jcnlwdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9l bmNyeXB0aW9uLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5h NWI2OTFlMzJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9jb2x1bW5fZW5jcnlwdGlvbi5vdXQKQEAgLTAsMCArMSwxNjQgQEAKK1xzZXQgSElERV9D T0xVTU5fRU5DUllQVElPTiBmYWxzZQorQ1JFQVRFIFJPTEUgcmVncmVzc19lbmNfdXNlcjE7 CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBXSVRIICgKKyAgICByZWFsbSA9ICd0 ZXN0JworKTsKK0NPTU1FTlQgT04gQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBJUyAnY29sdW1u IG1hc3RlciBrZXknOworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazFhIFdJVEggKAor ICAgIHJlYWxtID0gJ3Rlc3QnCispOworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazI7 CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMmEgV0lUSCAoCisgICAgcmVhbG0gPSAn dGVzdHgnCispOworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMmEgKHJlYWxtID0gJ3Rl c3QyJyk7CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWwgV0lUSCBWQUxVRVMg KAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0aG0gPSAnZm9v JywgIC0tIGludmFsaWQKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7 CitFUlJPUjogIHVucmVjb2duaXplZCBlbmNyeXB0aW9uIGFsZ29yaXRobTogZm9vCitDUkVB VEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVt bl9tYXN0ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFf MScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworQ09NTUVOVCBP TiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBJUyAnY29sdW1uIGVuY3J5cHRpb24ga2V5 JzsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIEFERCBWQUxVRSAoCisgICAg Y29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FF UF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworLS0g ZHVwbGljYXRlCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBBREQgVkFMVUUg KAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsCisgICAgYWxnb3JpdGhtID0gJ1JT QUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJwor KTsKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJjZWsxIiBhbHJlYWR5IGhhcyBk YXRhIGZvciBtYXN0ZXIga2V5ICJjbWsxYSIKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtF WSBmYWlsIEFERCBWQUxVRSAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwKKyAg ICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVl ID0gJ1x4REVBREJFRUYnCispOworRVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImZh aWwiIGRvZXMgbm90IGV4aXN0CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazIg V0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMiwKKyAgICBhbGdv cml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4 REVBREJFRUYnCispLAorKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMmEsCisgICAg YWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9 ICdceERFQURCRUVGJworKTsKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrNCBX SVRIIFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAorICAgIGFsZ29y aXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhE RUFEQkVFRicKKyk7CitDUkVBVEUgVEFCTEUgdGJsX2ZhaWwgKAorICAgIGEgaW50LAorICAg IGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9u X2tleSA9IG5vdGV4aXN0KQorKTsKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJu b3RleGlzdCIgZG9lcyBub3QgZXhpc3QKK0NSRUFURSBUQUJMRSB0YmxfZmFpbCAoCisgICAg YSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1u X2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgYWxnb3JpdGhtID0gJ2ZvbycpCispOworRVJST1I6 ICB1bnJlY29nbml6ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG06IGZvbworQ1JFQVRFIFRBQkxF IHRibF9mYWlsICgKKyAgICBhIGludCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZ UFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxLCBlbmNyeXB0aW9uX3R5 cGUgPSB3cm9uZykKKyk7CitFUlJPUjogIHVucmVjb2duaXplZCBlbmNyeXB0aW9uIHR5cGU6 IHdyb25nCitDUkVBVEUgVEFCTEUgdGJsXzI5ZjMgKAorICAgIGEgaW50LAorICAgIGIgdGV4 dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9 IGNlazEpCispOworXGQgdGJsXzI5ZjMKKyAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50 YmxfMjlmMyIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBE ZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisg YiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYyAgICAgIHwg dGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisKK1xkKyB0YmxfMjlmMworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGJs XzI5ZjMiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVm YXVsdCB8IFN0b3JhZ2UgIHwgRW5jcnlwdGlvbiB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0 aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAg IHwgcGxhaW4gICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwg dGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAorIGMgICAgICB8IHRleHQgICAgfCAgICAg ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlcm5hbCB8IGNlazEgICAgICAgfCAg ICAgICAgICAgICAgfCAKKworQ1JFQVRFIFRBQkxFIHRibF80NDdmICgKKyAgICBhIGludCwK KyAgICBiIHRleHQKKyk7CitBTFRFUiBUQUJMRSB0YmxfNDQ3ZiBBREQgQ09MVU1OIGMgdGV4 dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSk7CitcZCB0 YmxfNDQ3ZgorICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRibF80NDdmIgorIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBhICAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAg IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKKworXGQrIHRibF80NDdmCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50YmxfNDQ3ZiIKKyBDb2x1bW4g fCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSAg fCBFbmNyeXB0aW9uIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgICB8ICAg ICAgICAgICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgIHwgICAg ICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICB8IGV4dGVybmFsIHwgY2VrMSAgICAgICB8ICAgICAgICAgICAgICB8IAor CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNtazEgUkVTVFJJQ1Q7ICAtLSBmYWlsCitFUlJP UjogIGNhbm5vdCBkcm9wIGNvbHVtbiBtYXN0ZXIga2V5IGNtazEgYmVjYXVzZSBvdGhlciBv YmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5IGNl azEgZGF0YSBmb3IgbWFzdGVyIGtleSBjbWsxIGRlcGVuZHMgb24gY29sdW1uIG1hc3RlciBr ZXkgY21rMQorY29sdW1uIGVuY3J5cHRpb24ga2V5IGNlazQgZGF0YSBmb3IgbWFzdGVyIGtl eSBjbWsxIGRlcGVuZHMgb24gY29sdW1uIG1hc3RlciBrZXkgY21rMQorSElOVDogIFVzZSBE Uk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0FM VEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazIgUkVOQU1FIFRPIGNtazM7CitBTFRFUiBDT0xV TU4gTUFTVEVSIEtFWSBjbWsxIFJFTkFNRSBUTyBjbWszOyAgLS0gZmFpbAorRVJST1I6ICBj b2x1bW4gbWFzdGVyIGtleSAiY21rMyIgYWxyZWFkeSBleGlzdHMKK0FMVEVSIENPTFVNTiBN QVNURVIgS0VZIGNta3ggUkVOQU1FIFRPIGNta3k7ICAtLSBmYWlsCitFUlJPUjogIGNvbHVt biBtYXN0ZXIga2V5ICJjbWt4IiBkb2VzIG5vdCBleGlzdAorQUxURVIgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGNlazIgUkVOQU1FIFRPIGNlazM7CitBTFRFUiBDT0xVTU4gRU5DUllQVElP TiBLRVkgY2VrMSBSRU5BTUUgVE8gY2VrMzsgIC0tIGZhaWwKK0VSUk9SOiAgY29sdW1uIGVu Y3J5cHRpb24ga2V5ICJjZWszIiBhbHJlYWR5IGV4aXN0cworQUxURVIgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGNla3ggUkVOQU1FIFRPIGNla3k7ICAtLSBmYWlsCitFUlJPUjogIGNvbHVt biBlbmNyeXB0aW9uIGtleSAiY2VreCIgZG9lcyBub3QgZXhpc3QKK1NFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gJ3JlZ3Jlc3NfZW5jX3VzZXIxJzsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIGNlazM7ICAtLSBmYWlsCitFUlJPUjogIG11c3QgYmUgb3duZXIgb2YgY29sdW1u IGVuY3J5cHRpb24ga2V5IGNlazMKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMzsgIC0t IGZhaWwKK0VSUk9SOiAgbXVzdCBiZSBvd25lciBvZiBjb2x1bW4gbWFzdGVyIGtleSBjbWsz CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtF WSBjbWszIE9XTkVSIFRPIHJlZ3Jlc3NfZW5jX3VzZXIxOworQUxURVIgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGNlazMgT1dORVIgVE8gcmVncmVzc19lbmNfdXNlcjE7CitTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OICdyZWdyZXNzX2VuY191c2VyMSc7CitEUk9QIENPTFVNTiBFTkNS WVBUSU9OIEtFWSBjZWszOyAgLS0gb2sgbm93CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNt azM7ICAtLSBvayBub3cKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0FMVEVSIENP TFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5 ID0gY21rMWEpOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxV RSAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSk7ICAtLSBmYWlsCitFUlJPUjogIGNvbHVt biBlbmNyeXB0aW9uIGtleSAiY2VrMSIgaGFzIG5vIGRhdGEgZm9yIG1hc3RlciBrZXkgImNt azFhIgorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoY29s dW1uX21hc3Rlcl9rZXkgPSBmYWlsKTsgIC0tIGZhaWwKK0VSUk9SOiAgY29sdW1uIG1hc3Rl ciBrZXkgImZhaWwiIGRvZXMgbm90IGV4aXN0CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBL RVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLCBhbGdvcml0 aG0gPSAnZm9vJyk7ICAtLSBmYWlsCitFUlJPUjogIGF0dHJpYnV0ZSAiYWxnb3JpdGhtIiBt dXN0IG5vdCBiZSBzcGVjaWZpZWQKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazQ7 CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBmYWlsOworRVJST1I6ICBjb2x1bW4gZW5j cnlwdGlvbiBrZXkgImZhaWwiIGRvZXMgbm90IGV4aXN0CitEUk9QIENPTFVNTiBFTkNSWVBU SU9OIEtFWSBJRiBFWElTVFMgbm9uZXhpc3RlbnQ7CitOT1RJQ0U6ICBjb2x1bW4gZW5jcnlw dGlvbiBrZXkgIm5vbmV4aXN0ZW50IiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKK0RST1Ag Q09MVU1OIE1BU1RFUiBLRVkgY21rMWE7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGZhaWw7 CitFUlJPUjogIGNvbHVtbiBtYXN0ZXIga2V5ICJmYWlsIiBkb2VzIG5vdCBleGlzdAorRFJP UCBDT0xVTU4gTUFTVEVSIEtFWSBJRiBFWElTVFMgbm9uZXhpc3RlbnQ7CitOT1RJQ0U6ICBj b2x1bW4gbWFzdGVyIGtleSAibm9uZXhpc3RlbnQiIGRvZXMgbm90IGV4aXN0LCBza2lwcGlu ZworRFJPUCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dAppbmRleCAyNWMxNzRmMjc1Li5mZTA0NWRm ZjRjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRy ZXNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNz Lm91dApAQCAtMzgsNiArMzgsOCBAQCBDUkVBVEUgU0VSVkVSICJpbnRlZ2VyIiBGT1JFSUdO IERBVEEgV1JBUFBFUiBhZGRyX2ZkdzsKIENSRUFURSBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jl c3NfYWRkcl91c2VyIFNFUlZFUiAiaW50ZWdlciI7CiBBTFRFUiBERUZBVUxUIFBSSVZJTEVH RVMgRk9SIFJPTEUgcmVncmVzc19hZGRyX3VzZXIgSU4gU0NIRU1BIHB1YmxpYyBHUkFOVCBB TEwgT04gVEFCTEVTIFRPIHJlZ3Jlc3NfYWRkcl91c2VyOwogQUxURVIgREVGQVVMVCBQUklW SUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfYWRkcl91c2VyIFJFVk9LRSBERUxFVEUgT04gVEFC TEVTIEZST00gcmVncmVzc19hZGRyX3VzZXI7CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkg YWRkcl9jbWs7CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGFkZHJfY2VrIFdJVEgg VkFMVUVTIChjb2x1bW5fbWFzdGVyX2tleSA9IGFkZHJfY21rLCBhbGdvcml0aG0gPSAnUlNB RVNfT0FFUF9TSEFfMScsIGVuY3J5cHRlZF92YWx1ZSA9ICcnKTsKIC0tIHRoaXMgdHJhbnNm b3JtIHdvdWxkIGJlIHF1aXRlIHVuc2FmZSB0byBsZWF2ZSBseWluZyBhcm91bmQsCiAtLSBl eGNlcHQgdGhhdCB0aGUgU1FMIGxhbmd1YWdlIHBheXMgbm8gYXR0ZW50aW9uIHRvIHRyYW5z Zm9ybXM6CiBDUkVBVEUgVFJBTlNGT1JNIEZPUiBpbnQgTEFOR1VBR0UgU1FMICgKQEAgLTEw Nyw3ICsxMDksOCBAQCBCRUdJTgogICAgICAgICAoJ3RleHQgc2VhcmNoIHRlbXBsYXRlJyks ICgndGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbicpLAogICAgICAgICAoJ3BvbGljeScpLCAo J3VzZXIgbWFwcGluZycpLCAoJ2RlZmF1bHQgYWNsJyksICgndHJhbnNmb3JtJyksCiAgICAg ICAgICgnb3BlcmF0b3Igb2YgYWNjZXNzIG1ldGhvZCcpLCAoJ2Z1bmN0aW9uIG9mIGFjY2Vz cyBtZXRob2QnKSwKLSAgICAgICAgKCdwdWJsaWNhdGlvbiBuYW1lc3BhY2UnKSwgKCdwdWJs aWNhdGlvbiByZWxhdGlvbicpCisgICAgICAgICgncHVibGljYXRpb24gbmFtZXNwYWNlJyks ICgncHVibGljYXRpb24gcmVsYXRpb24nKSwKKyAgICAgICAgKCdjb2x1bW4gZW5jcnlwdGlv biBrZXknKSwgKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YScpLCAoJ2NvbHVtbiBtYXN0 ZXIga2V5JykKICAgICBMT09QCiAgICAgICAgIEZPUiBuYW1lcyBJTiBWQUxVRVMgKCd7ZWlu c30nKSwgKCd7YWRkcl9uc3AsIHp3ZWl9JyksICgne2VpbnMsIHp3ZWksIGRyZWl9JykKICAg ICAgICAgTE9PUApAQCAtMzI3LDYgKzMzMCwyNCBAQCBXQVJOSU5HOiAgZXJyb3IgZm9yIHB1 YmxpY2F0aW9uIHJlbGF0aW9uLHthZGRyX25zcCx6d2VpfSx7fTogYXJndW1lbnQgbGlzdCBs ZW5ndAogV0FSTklORzogIGVycm9yIGZvciBwdWJsaWNhdGlvbiByZWxhdGlvbix7YWRkcl9u c3AsendlaX0se2ludGVnZXJ9OiByZWxhdGlvbiAiYWRkcl9uc3AuendlaSIgZG9lcyBub3Qg ZXhpc3QKIFdBUk5JTkc6ICBlcnJvciBmb3IgcHVibGljYXRpb24gcmVsYXRpb24se2VpbnMs endlaSxkcmVpfSx7fTogYXJndW1lbnQgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEK IFdBUk5JTkc6ICBlcnJvciBmb3IgcHVibGljYXRpb24gcmVsYXRpb24se2VpbnMsendlaSxk cmVpfSx7aW50ZWdlcn06IGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBs ZW1lbnRlZDogImVpbnMuendlaS5kcmVpIgorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4g ZW5jcnlwdGlvbiBrZXkse2VpbnN9LHt9OiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImVpbnMi IGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9u IGtleSx7ZWluc30se2ludGVnZXJ9OiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImVpbnMiIGRv ZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSx7YWRkcl9uc3AsendlaX0se306IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5 IDEKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5LHthZGRyX25z cCx6d2VpfSx7aW50ZWdlcn06IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEK K1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5LHtlaW5zLHp3ZWks ZHJlaX0se306IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6 ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5LHtlaW5zLHp3ZWksZHJlaX0se2lu dGVnZXJ9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAg ZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhLHtlaW5zfSx7fTogYXJndW1l bnQgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBlcnJvciBmb3Ig Y29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEse2VpbnN9LHtpbnRlZ2VyfTogY29sdW1uIGVu Y3J5cHRpb24ga2V5ICJlaW5zIiBkb2VzIG5vdCBleGlzdAorV0FSTklORzogIGVycm9yIGZv ciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7YWRkcl9uc3AsendlaX0se306IG5hbWUg bGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29s dW1uIGVuY3J5cHRpb24ga2V5IGRhdGEse2FkZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTogbmFt ZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBj b2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7ZWlucyx6d2VpLGRyZWl9LHt9OiBuYW1lIGxp c3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVt biBlbmNyeXB0aW9uIGtleSBkYXRhLHtlaW5zLHp3ZWksZHJlaX0se2ludGVnZXJ9OiBuYW1l IGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNv bHVtbiBtYXN0ZXIga2V5LHtlaW5zfSx7fTogY29sdW1uIG1hc3RlciBrZXkgImVpbnMiIGRv ZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0ZXIga2V5LHtl aW5zfSx7aW50ZWdlcn06IGNvbHVtbiBtYXN0ZXIga2V5ICJlaW5zIiBkb2VzIG5vdCBleGlz dAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gbWFzdGVyIGtleSx7YWRkcl9uc3Asendl aX0se306IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBl cnJvciBmb3IgY29sdW1uIG1hc3RlciBrZXkse2FkZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTog bmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZv ciBjb2x1bW4gbWFzdGVyIGtleSx7ZWlucyx6d2VpLGRyZWl9LHt9OiBuYW1lIGxpc3QgbGVu Z3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0 ZXIga2V5LHtlaW5zLHp3ZWksZHJlaX0se2ludGVnZXJ9OiBuYW1lIGxpc3QgbGVuZ3RoIG11 c3QgYmUgZXhhY3RseSAxCiAtLSB0aGVzZSBvYmplY3QgdHlwZXMgY2Fubm90IGJlIHF1YWxp ZmllZCBuYW1lcwogU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnbGFuZ3VhZ2UnLCAn e29uZX0nLCAne30nKTsKIEVSUk9SOiAgbGFuZ3VhZ2UgIm9uZSIgZG9lcyBub3QgZXhpc3QK QEAgLTM4Miw2ICs0MDMsMTQgQEAgU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc3Vi c2NyaXB0aW9uJywgJ3tvbmV9JywgJ3t9Jyk7CiBFUlJPUjogIHN1YnNjcmlwdGlvbiAib25l IiBkb2VzIG5vdCBleGlzdAogU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc3Vic2Ny aXB0aW9uJywgJ3tvbmUsdHdvfScsICd7fScpOwogRVJST1I6ICBuYW1lIGxpc3QgbGVuZ3Ro IG11c3QgYmUgZXhhY3RseSAxCitTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdjb2x1 bW4gZW5jcnlwdGlvbiBrZXknLCAne29uZX0nLCAne30nKTsKK0VSUk9SOiAgY29sdW1uIGVu Y3J5cHRpb24ga2V5ICJvbmUiIGRvZXMgbm90IGV4aXN0CitTRUxFQ1QgcGdfZ2V0X29iamVj dF9hZGRyZXNzKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne29uZSx0d299JywgJ3t9Jyk7 CitFUlJPUjogIG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1NFTEVDVCBw Z19nZXRfb2JqZWN0X2FkZHJlc3MoJ2NvbHVtbiBtYXN0ZXIga2V5JywgJ3tvbmV9JywgJ3t9 Jyk7CitFUlJPUjogIGNvbHVtbiBtYXN0ZXIga2V5ICJvbmUiIGRvZXMgbm90IGV4aXN0CitT RUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gbWFzdGVyIGtleScsICd7b25l LHR3b30nLCAne30nKTsKK0VSUk9SOiAgbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0 bHkgMQogLS0gTWFrZSBzdXJlIHRoYXQgTlVMTCBoYW5kbGluZyBpcyBjb3JyZWN0LgogXHBz ZXQgbnVsbCAnTlVMTCcKIC0tIFRlbXBvcmFyaWx5IGRpc2FibGUgZmFuY3kgb3V0cHV0LCBz byBhcyBmdXR1cmUgYWRkaXRpb25zIG5ldmVyIGNyZWF0ZQpAQCAtNDA5LDYgKzQzOCw5IEBA IFdJVEggb2JqZWN0cyAodHlwZSwgbmFtZSwgYXJncykgQVMgKFZBTFVFUwogICAgICgndHlw ZScsICd7YWRkcl9uc3AuZ2VuZW51bX0nLCAne30nKSwKICAgICAoJ2Nhc3QnLCAne2ludDh9 JywgJ3tpbnQ0fScpLAogICAgICgnY29sbGF0aW9uJywgJ3tkZWZhdWx0fScsICd7fScpLAor ICAgICgnY29sdW1uIGVuY3J5cHRpb24ga2V5JywgJ3thZGRyX2Nla30nLCAne30nKSwKKyAg ICAoJ2NvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhJywgJ3thZGRyX2Nla30nLCAne2FkZHJf Y21rfScpLAorICAgICgnY29sdW1uIG1hc3RlciBrZXknLCAne2FkZHJfY21rfScsICd7fScp LAogICAgICgndGFibGUgY29uc3RyYWludCcsICd7YWRkcl9uc3AsIGdlbnRhYmxlLCBhX2No a30nLCAne30nKSwKICAgICAoJ2RvbWFpbiBjb25zdHJhaW50JywgJ3thZGRyX25zcC5nZW5k b21haW59JywgJ3tkb21jb25zdHJ9JyksCiAgICAgKCdjb252ZXJzaW9uJywgJ3twZ19jYXRh bG9nLCBrb2k4X3JfdG9fbWljfScsICd7fScpLApAQCAtNTA1LDYgKzUzNyw5IEBAIHN1YnNj cmlwdGlvbnxOVUxMfHJlZ3Jlc3NfYWRkcl9zdWJ8cmVncmVzc19hZGRyX3N1Ynx0CiBwdWJs aWNhdGlvbnxOVUxMfGFkZHJfcHVifGFkZHJfcHVifHQKIHB1YmxpY2F0aW9uIHJlbGF0aW9u fE5VTEx8TlVMTHxhZGRyX25zcC5nZW50YWJsZSBpbiBwdWJsaWNhdGlvbiBhZGRyX3B1Ynx0 CiBwdWJsaWNhdGlvbiBuYW1lc3BhY2V8TlVMTHxOVUxMfGFkZHJfbnNwIGluIHB1YmxpY2F0 aW9uIGFkZHJfcHViX3NjaGVtYXx0Citjb2x1bW4gbWFzdGVyIGtleXxOVUxMfGFkZHJfY21r fGFkZHJfY21rfHQKK2NvbHVtbiBlbmNyeXB0aW9uIGtleXxOVUxMfGFkZHJfY2VrfGFkZHJf Y2VrfHQKK2NvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhfE5VTEx8TlVMTHxvZiBhZGRyX2Nl ayBmb3IgYWRkcl9jbWt8dAogLS0tCiAtLS0gQ2xlYW51cCByZXNvdXJjZXMKIC0tLQpAQCAt NTE3LDYgKzU1Miw4IEBAIGRyb3AgY2FzY2FkZXMgdG8gdXNlciBtYXBwaW5nIGZvciByZWdy ZXNzX2FkZHJfdXNlciBvbiBzZXJ2ZXIgaW50ZWdlcgogRFJPUCBQVUJMSUNBVElPTiBhZGRy X3B1YjsKIERST1AgUFVCTElDQVRJT04gYWRkcl9wdWJfc2NoZW1hOwogRFJPUCBTVUJTQ1JJ UFRJT04gcmVncmVzc19hZGRyX3N1YjsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGFk ZHJfY2VrOworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBhZGRyX2NtazsKIERST1AgU0NIRU1B IGFkZHJfbnNwIENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDE0IG90aGVy IG9iamVjdHMKIERFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdGV4dCBzZWFyY2ggZGljdGlv bmFyeSBhZGRyX3RzX2RpY3QKQEAgLTU0Nyw2ICs1ODQsOSBAQCBXSVRIIG9iamVjdHMgKGNs YXNzaWQsIG9iamlkLCBvYmpzdWJpZCkgQVMgKFZBTFVFUwogICAgICgncGdfdHlwZSc6OnJl Z2NsYXNzLCAwLCAwKSwgLS0gbm8gdHlwZQogICAgICgncGdfY2FzdCc6OnJlZ2NsYXNzLCAw LCAwKSwgLS0gbm8gY2FzdAogICAgICgncGdfY29sbGF0aW9uJzo6cmVnY2xhc3MsIDAsIDAp LCAtLSBubyBjb2xsYXRpb24KKyAgICAoJ3BnX2NvbGVuY2tleSc6OnJlZ2NsYXNzLCAwLCAw KSwgLS0gbm8gY29sdW1uIGVuY3J5cHRpb24ga2V5CisgICAgKCdwZ19jb2xlbmNrZXlkYXRh Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YQor ICAgICgncGdfY29sbWFzdGVya2V5Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4g bWFzdGVyIGtleQogICAgICgncGdfY29uc3RyYWludCc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0g bm8gY29uc3RyYWludAogICAgICgncGdfY29udmVyc2lvbic6OnJlZ2NsYXNzLCAwLCAwKSwg LS0gbm8gY29udmVyc2lvbgogICAgICgncGdfYXR0cmRlZic6OnJlZ2NsYXNzLCAwLCAwKSwg LS0gbm8gZGVmYXVsdCBhdHRyaWJ1dGUKQEAgLTYzNCw1ICs2NzQsOCBAQCBPUkRFUiBCWSBv YmplY3RzLmNsYXNzaWQsIG9iamVjdHMub2JqaWQsIG9iamVjdHMub2Jqc3ViaWQ7CiAoIigi InB1YmxpY2F0aW9uIHJlbGF0aW9uIiIsLCwpIil8KCIoIiJwdWJsaWNhdGlvbiByZWxhdGlv biIiLCwpIil8TlVMTAogKCIoIiJwdWJsaWNhdGlvbiBuYW1lc3BhY2UiIiwsLCkiKXwoIigi InB1YmxpY2F0aW9uIG5hbWVzcGFjZSIiLCwpIil8TlVMTAogKCIoIiJwYXJhbWV0ZXIgQUNM IiIsLCwpIil8KCIoIiJwYXJhbWV0ZXIgQUNMIiIsLCkiKXxOVUxMCisoIigiImNvbHVtbiBt YXN0ZXIga2V5IiIsLCwpIil8KCIoIiJjb2x1bW4gbWFzdGVyIGtleSIiLCwpIil8TlVMTAor KCIoIiJjb2x1bW4gZW5jcnlwdGlvbiBrZXkiIiwsLCkiKXwoIigiImNvbHVtbiBlbmNyeXB0 aW9uIGtleSIiLCwpIil8TlVMTAorKCIoIiJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSIi LCwsKSIpfCgiKCIiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEiIiwsKSIpfE5VTEwKIC0t IHJlc3RvcmUgbm9ybWFsIG91dHB1dCBtb2RlCiBcYVx0CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb2lkam9pbnMub3V0CmluZGV4IDIxNWViODk5YmUuLjJhYTBlMTYzMjMgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CkBAIC03Myw2ICs3Myw4IEBA IE5PVElDRTogIGNoZWNraW5nIHBnX3R5cGUge3R5cGJhc2V0eXBlfSA9PiBwZ190eXBlIHtv aWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ190eXBlIHt0eXBjb2xsYXRpb259ID0+IHBnX2Nv bGxhdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfYXR0cmlidXRlIHthdHRyZWxp ZH0gPT4gcGdfY2xhc3Mge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7 YXR0dHlwaWR9ID0+IHBnX3R5cGUge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2F0dHJp YnV0ZSB7YXR0Y2VrfSA9PiBwZ19jb2xlbmNrZXkge29pZH0KK05PVElDRTogIGNoZWNraW5n IHBnX2F0dHJpYnV0ZSB7YXR0cmVhbHR5cGlkfSA9PiBwZ190eXBlIHtvaWR9CiBOT1RJQ0U6 ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUge2F0dGNvbGxhdGlvbn0gPT4gcGdfY29sbGF0aW9u IHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19jbGFzcyB7cmVsbmFtZXNwYWNlfSA9PiBw Z19uYW1lc3BhY2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2NsYXNzIHtyZWx0eXBl fSA9PiBwZ190eXBlIHtvaWR9CkBAIC0yNjYsMyArMjY4LDcgQEAgTk9USUNFOiAgY2hlY2tp bmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJkYmlkfSA9PiBwZ19kYXRhYmFzZSB7b2lkfQogTk9U SUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJvd25lcn0gPT4gcGdfYXV0aGlk IHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnN1Ymlk fSA9PiBwZ19zdWJzY3JpcHRpb24ge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNj cmlwdGlvbl9yZWwge3NycmVsaWR9ID0+IHBnX2NsYXNzIHtvaWR9CitOT1RJQ0U6ICBjaGVj a2luZyBwZ19jb2xtYXN0ZXJrZXkge2Nta293bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KK05P VElDRTogIGNoZWNraW5nIHBnX2NvbGVuY2tleSB7Y2Vrb3duZXJ9ID0+IHBnX2F1dGhpZCB7 b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfY29sZW5ja2V5ZGF0YSB7Y2tkY2VraWR9ID0+ IHBnX2NvbGVuY2tleSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfY29sZW5ja2V5ZGF0 YSB7Y2tkY21raWR9ID0+IHBnX2NvbG1hc3RlcmtleSB7b2lkfQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKaW5kZXggMDJmNTM0OGFiMS4uZDQ5M2FjNWY3 YyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CkBAIC0x NTksNyArMTU5LDggQEAgT1JERVIgQlkgMSwgMjsKICB0ZXh0ICAgICAgICAgICAgICAgICAg ICAgICAgfCBjaGFyYWN0ZXIgdmFyeWluZwogIHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9u ZSB8IHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZQogIHR4aWRfc25hcHNob3QgICAgICAgICAg ICAgICB8IHBnX3NuYXBzaG90Ci0oNCByb3dzKQorIHBnX2VuY3J5cHRlZF9kZXQgICAgICAg ICAgICB8IHBnX2VuY3J5cHRlZF9ybmQKKyg1IHJvd3MpCiAKIFNFTEVDVCBESVNUSU5DVCBw MS5wcm9hcmd0eXBlc1swXTo6cmVndHlwZSwgcDIucHJvYXJndHlwZXNbMF06OnJlZ3R5cGUK IEZST00gcGdfcHJvYyBBUyBwMSwgcGdfcHJvYyBBUyBwMgpAQCAtMTc1LDEzICsxNzYsMTUg QEAgV0hFUkUgcDEub2lkICE9IHAyLm9pZCBBTkQKIE9SREVSIEJZIDEsIDI7CiAgICAgICAg ICBwcm9hcmd0eXBlcyAgICAgICAgIHwgICAgICAgcHJvYXJndHlwZXMgICAgICAgIAogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBieXRlYSAgICAgICAgICAgICAgICAgICAgICAgfCBwZ19lbmNyeXB0ZWRfZGV0CiAgYmln aW50ICAgICAgICAgICAgICAgICAgICAgIHwgeGlkOAogIHRleHQgICAgICAgICAgICAgICAg ICAgICAgICB8IGNoYXJhY3RlcgogIHRleHQgICAgICAgICAgICAgICAgICAgICAgICB8IGNo YXJhY3RlciB2YXJ5aW5nCiAgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZXN0 YW1wIHdpdGggdGltZSB6b25lCiAgYml0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgYml0 IHZhcnlpbmcKICB0eGlkX3NuYXBzaG90ICAgICAgICAgICAgICAgfCBwZ19zbmFwc2hvdAot KDYgcm93cykKKyBwZ19lbmNyeXB0ZWRfZGV0ICAgICAgICAgICAgfCBwZ19lbmNyeXB0ZWRf cm5kCisoOCByb3dzKQogCiBTRUxFQ1QgRElTVElOQ1QgcDEucHJvYXJndHlwZXNbMV06OnJl Z3R5cGUsIHAyLnByb2FyZ3R5cGVzWzFdOjpyZWd0eXBlCiBGUk9NIHBnX3Byb2MgQVMgcDEs IHBnX3Byb2MgQVMgcDIKQEAgLTE5NywxMiArMjAwLDEzIEBAIFdIRVJFIHAxLm9pZCAhPSBw Mi5vaWQgQU5ECiBPUkRFUiBCWSAxLCAyOwogICAgICAgICAgcHJvYXJndHlwZXMgICAgICAg ICB8ICAgICAgIHByb2FyZ3R5cGVzICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgYnl0ZWEgICAgICAgICAgICAg ICAgICAgICAgIHwgcGdfZW5jcnlwdGVkX2RldAogIGludGVnZXIgICAgICAgICAgICAgICAg ICAgICB8IHhpZAogIHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZSB8IHRpbWVzdGFtcCB3 aXRoIHRpbWUgem9uZQogIGJpdCAgICAgICAgICAgICAgICAgICAgICAgICB8IGJpdCB2YXJ5 aW5nCiAgdHhpZF9zbmFwc2hvdCAgICAgICAgICAgICAgIHwgcGdfc25hcHNob3QKICBhbnly YW5nZSAgICAgICAgICAgICAgICAgICAgfCBhbnltdWx0aXJhbmdlCi0oNSByb3dzKQorKDYg cm93cykKIAogU0VMRUNUIERJU1RJTkNUIHAxLnByb2FyZ3R5cGVzWzJdOjpyZWd0eXBlLCBw Mi5wcm9hcmd0eXBlc1syXTo6cmVndHlwZQogRlJPTSBwZ19wcm9jIEFTIHAxLCBwZ19wcm9j IEFTIHAyCkBAIC04NzIsNiArODc2LDggQEAgeGlkOGdlKHhpZDgseGlkOCkKIHhpZDhlcSh4 aWQ4LHhpZDgpCiB4aWQ4bmUoeGlkOCx4aWQ4KQogeGlkOGNtcCh4aWQ4LHhpZDgpCitwZ19l bmNyeXB0ZWRfZGV0X2VxKHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCkKK3Bn X2VuY3J5cHRlZF9kZXRfbmUocGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KQog LS0gcmVzdG9yZSBub3JtYWwgb3V0cHV0IG1vZGUKIFxhXHQKIC0tIExpc3Qgb2YgZnVuY3Rp b25zIHVzZWQgYnkgbGlicHEncyBmZS1sb2JqLmMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHJlcGFyZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3ByZXBhcmUub3V0CmluZGV4IDU4MTVlMTdiMzkuLjQ0ODJhNjVkMjQgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJlcGFyZS5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wcmVwYXJlLm91dApAQCAtMTYyLDI2ICsxNjIsMjYgQEAgUFJF UEFSRSBxNyh1bmtub3duKSBBUwogLS0gRE1MIHN0YXRlbWVudHMKIFBSRVBBUkUgcTggQVMK ICAgICBVUERBVEUgdGVuazEgU0VUIHN0cmluZ3UxID0gJDIgV0hFUkUgdW5pcXVlMSA9ICQx OwotU0VMRUNUIG5hbWUsIHN0YXRlbWVudCwgcGFyYW1ldGVyX3R5cGVzLCByZXN1bHRfdHlw ZXMgRlJPTSBwZ19wcmVwYXJlZF9zdGF0ZW1lbnRzCitTRUxFQ1QgbmFtZSwgc3RhdGVtZW50 LCBwYXJhbWV0ZXJfdHlwZXMsIHBhcmFtZXRlcl9vcmlnX3RhYmxlcywgcGFyYW1ldGVyX29y aWdfY29sdW1ucywgcmVzdWx0X3R5cGVzIEZST00gcGdfcHJlcGFyZWRfc3RhdGVtZW50cwog ICAgIE9SREVSIEJZIG5hbWU7Ci0gbmFtZSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0YXRlbWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgIHBhcmFtZXRlcl90eXBlcyAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF90eXBlcyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHEyICAgfCBQUkVQQVJFIHEy KHRleHQpIEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg K3wge3RleHR9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCB7bmFtZSxib29sZWFuLGJvb2xlYW59Ci0gICAgICB8ICAgICAgICAgU0VMRUNUIGRhdG5h bWUsIGRhdGlzdGVtcGxhdGUsIGRhdGFsbG93Y29ubiAgICAgICAgICAgICArfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAotICAgICAg fCAgICAgICAgIEZST00gcGdfZGF0YWJhc2UgV0hFUkUgZGF0bmFtZSA9ICQxOyAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAKLSBxMyAgIHwgUFJFUEFSRSBxMyh0ZXh0LCBpbnQsIGZsb2F0LCBi b29sZWFuLCBzbWFsbGludCkgQVMgICAgICAgICAgICAgICt8IHt0ZXh0LGludGVnZXIsImRv dWJsZSBwcmVjaXNpb24iLGJvb2xlYW4sc21hbGxpbnR9IHwge2ludGVnZXIsaW50ZWdlcixp bnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2Vy LGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsbmFtZSxuYW1lLG5hbWV9Ci0gICAg ICB8ICAgICAgICAgU0VMRUNUICogRlJPTSB0ZW5rMSBXSEVSRSBzdHJpbmc0ID0gJDEgQU5E IChmb3VyID0gJDIgT1IrfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IAotICAgICAgfCAgICAgICAgIHRlbiA9ICQzOjpiaWdpbnQgT1Ig dHJ1ZSA9ICQ0IE9SIG9kZCA9ICQ1OjppbnQpICAgICAgICAgK3wgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSAgICAgIHwgICAgICAg ICBPUkRFUiBCWSB1bmlxdWUxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgCi0gcTUgICB8IFBSRVBBUkUgcTUoaW50LCB0ZXh0KSBBUyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7aW50ZWdlcix0ZXh0fSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHtpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixp bnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2Vy LGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLG5hbWUsbmFtZSxuYW1lfQotICAgICAgfCAgICAg ICAgIFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUgdW5pcXVlMSA9ICQxIE9SIHN0cmluZ3Ux ID0gJDIgK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAKLSAgICAgIHwgICAgICAgICBPUkRFUiBCWSB1bmlxdWUxOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCi0gcTYgICB8IFBSRVBBUkUgcTYgQVMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7 aW50ZWdlcixuYW1lfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHtp bnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2Vy LGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLG5hbWUs bmFtZSxuYW1lfQotICAgICAgfCAgICAgU0VMRUNUICogRlJPTSB0ZW5rMSBXSEVSRSB1bmlx dWUxID0gJDEgQU5EIHN0cmluZ3UxID0gJDI7ICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSBxNyAgIHwgUFJFUEFSRSBxNyh1 bmtub3duKSBBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8 IHtwYXRofSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg e3RleHQscGF0aH0KLSAgICAgIHwgICAgIFNFTEVDVCAqIEZST00gcm9hZCBXSEVSRSB0aGVw YXRoID0gJDE7ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCi0gcTggICB8IFBSRVBBUkUgcTgg QVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr fCB7aW50ZWdlcixuYW1lfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IAotICAgICAgfCAgICAgVVBEQVRFIHRlbmsxIFNFVCBzdHJpbmd1MSA9ICQyIFdIRVJFIHVu aXF1ZTEgPSAkMTsgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAKKyBuYW1lIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RhdGVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgcGFyYW1ldGVyX3R5cGVzICAgICAgICAgICAgICAgICAgIHwgcGFyYW1ldGVy X29yaWdfdGFibGVzIHwgcGFyYW1ldGVyX29yaWdfY29sdW1ucyB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF90eXBlcyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBxMiAgIHwgUFJFUEFSRSBxMih0ZXh0 KSBBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IHt0 ZXh0fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgey19 ICAgICAgICAgICAgICAgICAgIHwgezB9ICAgICAgICAgICAgICAgICAgICB8IHtuYW1lLGJv b2xlYW4sYm9vbGVhbn0KKyAgICAgIHwgICAgICAgICBTRUxFQ1QgZGF0bmFtZSwgZGF0aXN0 ZW1wbGF0ZSwgZGF0YWxsb3djb25uICAgICAgICAgICAgICt8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgfCAgICAgICAgIEZST00g cGdfZGF0YWJhc2UgV0hFUkUgZGF0bmFtZSA9ICQxOyAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgcTMg ICB8IFBSRVBBUkUgcTModGV4dCwgaW50LCBmbG9hdCwgYm9vbGVhbiwgc21hbGxpbnQpIEFT ICAgICAgICAgICAgICArfCB7dGV4dCxpbnRlZ2VyLCJkb3VibGUgcHJlY2lzaW9uIixib29s ZWFuLHNtYWxsaW50fSB8IHstLC0sLSwtLC19ICAgICAgICAgICB8IHswLDAsMCwwLDB9ICAg ICAgICAgICAgfCB7aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGlu dGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIs aW50ZWdlcixuYW1lLG5hbWUsbmFtZX0KKyAgICAgIHwgICAgICAgICBTRUxFQ1QgKiBGUk9N IHRlbmsxIFdIRVJFIHN0cmluZzQgPSAkMSBBTkQgKGZvdXIgPSAkMiBPUit8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgfCAgICAg ICAgIHRlbiA9ICQzOjpiaWdpbnQgT1IgdHJ1ZSA9ICQ0IE9SIG9kZCA9ICQ1OjppbnQpICAg ICAgICAgK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg IHwgCisgICAgICB8ICAgICAgICAgT1JERVIgQlkgdW5pcXVlMTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgfCAKKyBxNSAgIHwgUFJFUEFSRSBxNShpbnQsIHRleHQpIEFT ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IHtpbnRlZ2VyLHRl eHR9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgey0sLX0gICAgICAg ICAgICAgICAgIHwgezAsMH0gICAgICAgICAgICAgICAgICB8IHtpbnRlZ2VyLGludGVnZXIs aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdl cixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLG5hbWUsbmFtZSxuYW1lfQorICAg ICAgfCAgICAgICAgIFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUgdW5pcXVlMSA9ICQxIE9S IHN0cmluZ3UxID0gJDIgK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgCisgICAgICB8ICAgICAgICAgT1JERVIgQlkgdW5pcXVlMTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBxNiAgIHwgUFJFUEFSRSBxNiBBUyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IHtp bnRlZ2VyLG5hbWV9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgey0s LX0gICAgICAgICAgICAgICAgIHwgezAsMH0gICAgICAgICAgICAgICAgICB8IHtpbnRlZ2Vy LGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVn ZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLG5hbWUsbmFtZSxu YW1lfQorICAgICAgfCAgICAgU0VMRUNUICogRlJPTSB0ZW5rMSBXSEVSRSB1bmlxdWUxID0g JDEgQU5EIHN0cmluZ3UxID0gJDI7ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgCisgcTcgICB8IFBSRVBBUkUgcTcodW5rbm93bikgQVMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7cGF0aH0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHstfSAgICAgICAg ICAgICAgICAgICB8IHswfSAgICAgICAgICAgICAgICAgICAgfCB7dGV4dCxwYXRofQorICAg ICAgfCAgICAgU0VMRUNUICogRlJPTSByb2FkIFdIRVJFIHRoZXBhdGggPSAkMTsgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgCisgcTggICB8IFBSRVBBUkUgcTggQVMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7aW50ZWdlcixuYW1lfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHstLHRlbmsxfSAgICAgICAgICAg ICB8IHswLDE0fSAgICAgICAgICAgICAgICAgfCAKKyAgICAgIHwgICAgIFVQREFURSB0ZW5r MSBTRVQgc3RyaW5ndTEgPSAkMiBXSEVSRSB1bmlxdWUxID0gJDE7ICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDYgcm93 cykKIAogLS0gdGVzdCBERUFMTE9DQVRFIEFMTDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y dWxlcy5vdXQKaW5kZXggZmI5ZjkzNmQ0My4uZjEyM2YzZjMxZSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE0MjgsMTEgKzE0MjgsMTMgQEAgcGdfcHJlcGFy ZWRfc3RhdGVtZW50c3wgU0VMRUNUIHAubmFtZSwKICAgICBwLnN0YXRlbWVudCwKICAgICBw LnByZXBhcmVfdGltZSwKICAgICBwLnBhcmFtZXRlcl90eXBlcywKKyAgICBwLnBhcmFtZXRl cl9vcmlnX3RhYmxlcywKKyAgICBwLnBhcmFtZXRlcl9vcmlnX2NvbHVtbnMsCiAgICAgcC5y ZXN1bHRfdHlwZXMsCiAgICAgcC5mcm9tX3NxbCwKICAgICBwLmdlbmVyaWNfcGxhbnMsCiAg ICAgcC5jdXN0b21fcGxhbnMKLSAgIEZST00gcGdfcHJlcGFyZWRfc3RhdGVtZW50KCkgcChu YW1lLCBzdGF0ZW1lbnQsIHByZXBhcmVfdGltZSwgcGFyYW1ldGVyX3R5cGVzLCByZXN1bHRf dHlwZXMsIGZyb21fc3FsLCBnZW5lcmljX3BsYW5zLCBjdXN0b21fcGxhbnMpOworICAgRlJP TSBwZ19wcmVwYXJlZF9zdGF0ZW1lbnQoKSBwKG5hbWUsIHN0YXRlbWVudCwgcHJlcGFyZV90 aW1lLCBwYXJhbWV0ZXJfdHlwZXMsIHBhcmFtZXRlcl9vcmlnX3RhYmxlcywgcGFyYW1ldGVy X29yaWdfY29sdW1ucywgcmVzdWx0X3R5cGVzLCBmcm9tX3NxbCwgZ2VuZXJpY19wbGFucywg Y3VzdG9tX3BsYW5zKTsKIHBnX3ByZXBhcmVkX3hhY3RzfCBTRUxFQ1QgcC50cmFuc2FjdGlv biwKICAgICBwLmdpZCwKICAgICBwLnByZXBhcmVkLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC90eXBlX3Nhbml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3R5cGVfc2FuaXR5Lm91dAppbmRleCBhNjQwY2ZjNDc2Li4yZTQ3MTMxYjM3IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5Lm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5Lm91dApAQCAtNzUs NyArNzUsOSBAQCBPUkRFUiBCWSB0MS5vaWQ7CiAgNDYwMCB8IHBnX2JyaW5fYmxvb21fc3Vt bWFyeQogIDQ2MDEgfCBwZ19icmluX21pbm1heF9tdWx0aV9zdW1tYXJ5CiAgNTAxNyB8IHBn X21jdl9saXN0Ci0oNiByb3dzKQorIDgyNDMgfCBwZ19lbmNyeXB0ZWRfZGV0CisgODI0NCB8 IHBnX2VuY3J5cHRlZF9ybmQKKyg4IHJvd3MpCiAKIC0tIE1ha2Ugc3VyZSB0eXBhcnJheSBw b2ludHMgdG8gYSAidHJ1ZSIgYXJyYXkgdHlwZSBvZiBvdXIgb3duIGJhc2UKIFNFTEVDVCB0 MS5vaWQsIHQxLnR5cG5hbWUgYXMgYmFzZXR5cGUsIHQyLnR5cG5hbWUgYXMgYXJyYXl0eXBl LApAQCAtNjc2LDYgKzY3OCw4IEBAIENSRUFURSBUQUJMRSB0YWJfY29yZV90eXBlcyBBUyBT RUxFQ1QKICAgJ3R4dCc6OnRleHQsCiAgIHRydWU6OmJvb2wsCiAgIEUnXFx4REVBREJFRUYn OjpieXRlYSwKKyAgJ2VuY3J5cHRlZCQzYWFjZDA2M2QyZDNhMWEwNDExOWRmNzY4NzRlMGI5 Nzg1ZWE0NjYxNzdmMThmZTljMGExYTMxM2VhZjA5Yzk4Jzo6cGdfZW5jcnlwdGVkX2RldCwK KyAgJ2VuY3J5cHRlZCQzZGFkZTZjZWM3NWIxMDdkMzc5ZjM5Nzg3NmM3MDY0MGUxYTFmMzli ZDIwODg0MzM5YmM2NDIwM2FiZTczZDZkJzo6cGdfZW5jcnlwdGVkX3JuZCwKICAgQicxMDAw MSc6OmJpdCwKICAgQicxMDAwMSc6OnZhcmJpdCBBUyB2YXJiaXQsCiAgICcxMi4zNCc6Om1v bmV5LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBi L3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggOWExMzlmMWUyNC4u MDhhMDBlMWRkNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xMDYs NyArMTA2LDcgQEAgdGVzdDogcHVibGljYXRpb24gc3Vic2NyaXB0aW9uCiAjIEFub3RoZXIg Z3JvdXAgb2YgcGFyYWxsZWwgdGVzdHMKICMgc2VsZWN0X3ZpZXdzIGRlcGVuZHMgb24gY3Jl YXRlX3ZpZXcKICMgLS0tLS0tLS0tLQotdGVzdDogc2VsZWN0X3ZpZXdzIHBvcnRhbHNfcDIg Zm9yZWlnbl9rZXkgY2x1c3RlciBkZXBlbmRlbmN5IGd1YyBiaXRtYXBvcHMgY29tYm9jaWQg dHNlYXJjaCB0c2RpY3RzIGZvcmVpZ25fZGF0YSB3aW5kb3cgeG1sbWFwIGZ1bmN0aW9uYWxf ZGVwcyBhZHZpc29yeV9sb2NrIGluZGlyZWN0X3RvYXN0IGVxdWl2Y2xhc3MKK3Rlc3Q6IHNl bGVjdF92aWV3cyBwb3J0YWxzX3AyIGZvcmVpZ25fa2V5IGNsdXN0ZXIgZGVwZW5kZW5jeSBn dWMgYml0bWFwb3BzIGNvbWJvY2lkIHRzZWFyY2ggdHNkaWN0cyBmb3JlaWduX2RhdGEgd2lu ZG93IHhtbG1hcCBmdW5jdGlvbmFsX2RlcHMgYWR2aXNvcnlfbG9jayBpbmRpcmVjdF90b2Fz dCBlcXVpdmNsYXNzIGNvbHVtbl9lbmNyeXB0aW9uCiAKICMgLS0tLS0tLS0tLQogIyBBbm90 aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzIChKU09OIHJlbGF0ZWQpCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jIGIvc3JjL3Rlc3QvcmVncmVz cy9wZ19yZWdyZXNzX21haW4uYwppbmRleCBhNGIzNTRjOWU2Li44YWQxZjQ1OGQ1IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzc19tYWluLmMKQEAgLTgyLDcgKzgyLDcgQEAgcHNxbF9z dGFydF90ZXN0KGNvbnN0IGNoYXIgKnRlc3RuYW1lLAogCQkJCQkgICBiaW5kaXIgPyBiaW5k aXIgOiAiIiwKIAkJCQkJICAgYmluZGlyID8gIi8iIDogIiIsCiAJCQkJCSAgIGRibGlzdC0+ c3RyLAotCQkJCQkgICAiLXYgSElERV9UQUJMRUFNPW9uIC12IEhJREVfVE9BU1RfQ09NUFJF U1NJT049b24iLAorCQkJCQkgICAiLXYgSElERV9UQUJMRUFNPW9uIC12IEhJREVfVE9BU1Rf Q09NUFJFU1NJT049b24gLXYgSElERV9DT0xVTU5fRU5DUllQVElPTj1vbiIsCiAJCQkJCSAg IGluZmlsZSwKIAkJCQkJICAgb3V0ZmlsZSk7CiAJaWYgKG9mZnNldCA+PSBzaXplb2YocHNx bF9jbWQpKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sdW1uX2VuY3J5 cHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjUwMTBjYTgyYzMKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2x1bW5fZW5jcnlwdGlv bi5zcWwKQEAgLTAsMCArMSwxNDQgQEAKK1xzZXQgSElERV9DT0xVTU5fRU5DUllQVElPTiBm YWxzZQorCitDUkVBVEUgUk9MRSByZWdyZXNzX2VuY191c2VyMTsKKworQ1JFQVRFIENPTFVN TiBNQVNURVIgS0VZIGNtazEgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdCcKKyk7CisKK0NP TU1FTlQgT04gQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBJUyAnY29sdW1uIG1hc3RlciBrZXkn OworCitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMWEgV0lUSCAoCisgICAgcmVhbG0g PSAndGVzdCcKKyk7CisKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsyOworCitDUkVB VEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMmEgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdHgn CispOworCitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsyYSAocmVhbG0gPSAndGVzdDIn KTsKKworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBmYWlsIFdJVEggVkFMVUVTICgK KyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ2Zvbycs ICAtLSBpbnZhbGlkCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOwor CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMgKAorICAg IGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FF UF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworCitD T01NRU5UIE9OIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIElTICdjb2x1bW4gZW5jcnlw dGlvbiBrZXknOworCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBBREQgVkFM VUUgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsCisgICAgYWxnb3JpdGhtID0g J1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVG JworKTsKKworLS0gZHVwbGljYXRlCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2Vr MSBBREQgVkFMVUUgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsCisgICAgYWxn b3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdc eERFQURCRUVGJworKTsKKworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWwgQURE IFZBTFVFICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29yaXRo bSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFE QkVFRicKKyk7CisKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMiBXSVRIIFZB TFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsyLAorICAgIGFsZ29yaXRobSA9 ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVF RicKKyksCisoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsyYSwKKyAgICBhbGdvcml0 aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVB REJFRUYnCispOworCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazQgV0lUSCBW QUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0aG0g PSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJF RUYnCispOworCitDUkVBVEUgVEFCTEUgdGJsX2ZhaWwgKAorICAgIGEgaW50LAorICAgIGIg dGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tl eSA9IG5vdGV4aXN0KQorKTsKKworQ1JFQVRFIFRBQkxFIHRibF9mYWlsICgKKyAgICBhIGlu dCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5j cnlwdGlvbl9rZXkgPSBjZWsxLCBhbGdvcml0aG0gPSAnZm9vJykKKyk7CisKK0NSRUFURSBU QUJMRSB0YmxfZmFpbCAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBF TkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgZW5jcnlwdGlv bl90eXBlID0gd3JvbmcpCispOworCitDUkVBVEUgVEFCTEUgdGJsXzI5ZjMgKAorICAgIGEg aW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9l bmNyeXB0aW9uX2tleSA9IGNlazEpCispOworCitcZCB0YmxfMjlmMworXGQrIHRibF8yOWYz CisKK0NSRUFURSBUQUJMRSB0YmxfNDQ3ZiAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0Cisp OworCitBTFRFUiBUQUJMRSB0YmxfNDQ3ZiBBREQgQ09MVU1OIGMgdGV4dCBFTkNSWVBURUQg V0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSk7CisKK1xkIHRibF80NDdmCitc ZCsgdGJsXzQ0N2YKKworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFJFU1RSSUNUOyAg LS0gZmFpbAorCitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsyIFJFTkFNRSBUTyBjbWsz OworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBSRU5BTUUgVE8gY21rMzsgIC0tIGZh aWwKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNta3ggUkVOQU1FIFRPIGNta3k7ICAtLSBm YWlsCisKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsyIFJFTkFNRSBUTyBjZWsz OworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgUkVOQU1FIFRPIGNlazM7ICAt LSBmYWlsCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VreCBSRU5BTUUgVE8gY2Vr eTsgIC0tIGZhaWwKKworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVzc19lbmNf dXNlcjEnOworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMzsgIC0tIGZhaWwKK0RS T1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMzsgIC0tIGZhaWwKK1JFU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTjsKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazMgT1dORVIgVE8gcmVn cmVzc19lbmNfdXNlcjE7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMyBPV05F UiBUTyByZWdyZXNzX2VuY191c2VyMTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3Jl Z3Jlc3NfZW5jX3VzZXIxJzsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazM7ICAt LSBvayBub3cKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMzsgIC0tIG9rIG5vdworUkVT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBL RVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhKTsKK0FMVEVS IENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJf a2V5ID0gY21rMWEpOyAgLS0gZmFpbAorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl azEgRFJPUCBWQUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBmYWlsKTsgIC0tIGZhaWwKK0FM VEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0 ZXJfa2V5ID0gY21rMWEsIGFsZ29yaXRobSA9ICdmb28nKTsgIC0tIGZhaWwKKworRFJPUCBD T0xVTU4gRU5DUllQVElPTiBLRVkgY2VrNDsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IGZhaWw7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBJRiBFWElTVFMgbm9uZXhpc3Rl bnQ7CisKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMWE7CitEUk9QIENPTFVNTiBNQVNU RVIgS0VZIGZhaWw7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIElGIEVYSVNUUyBub25leGlz dGVudDsKKworRFJPUCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsCmluZGV4IDFhNmM2MWY0OWQuLjI1YTdmMmFlOTgg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwKQEAgLTQxLDYg KzQxLDggQEAgQ1JFQVRFIFNFUlZFUiAiaW50ZWdlciIgRk9SRUlHTiBEQVRBIFdSQVBQRVIg YWRkcl9mZHc7CiBDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX2FkZHJfdXNlciBT RVJWRVIgImludGVnZXIiOwogQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJl Z3Jlc3NfYWRkcl91c2VyIElOIFNDSEVNQSBwdWJsaWMgR1JBTlQgQUxMIE9OIFRBQkxFUyBU TyByZWdyZXNzX2FkZHJfdXNlcjsKIEFMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9M RSByZWdyZXNzX2FkZHJfdXNlciBSRVZPS0UgREVMRVRFIE9OIFRBQkxFUyBGUk9NIHJlZ3Jl c3NfYWRkcl91c2VyOworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGFkZHJfY21rOworQ1JF QVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhZGRyX2NlayBXSVRIIFZBTFVFUyAoY29sdW1u X21hc3Rlcl9rZXkgPSBhZGRyX2NtaywgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEn LCBlbmNyeXB0ZWRfdmFsdWUgPSAnJyk7CiAtLSB0aGlzIHRyYW5zZm9ybSB3b3VsZCBiZSBx dWl0ZSB1bnNhZmUgdG8gbGVhdmUgbHlpbmcgYXJvdW5kLAogLS0gZXhjZXB0IHRoYXQgdGhl IFNRTCBsYW5ndWFnZSBwYXlzIG5vIGF0dGVudGlvbiB0byB0cmFuc2Zvcm1zOgogQ1JFQVRF IFRSQU5TRk9STSBGT1IgaW50IExBTkdVQUdFIFNRTCAoCkBAIC05OSw3ICsxMDEsOCBAQCBD UkVBVEUgU1RBVElTVElDUyBhZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBh ZGRyX25zcC5nZW50YWJsZTsKICAgICAgICAgKCd0ZXh0IHNlYXJjaCB0ZW1wbGF0ZScpLCAo J3RleHQgc2VhcmNoIGNvbmZpZ3VyYXRpb24nKSwKICAgICAgICAgKCdwb2xpY3knKSwgKCd1 c2VyIG1hcHBpbmcnKSwgKCdkZWZhdWx0IGFjbCcpLCAoJ3RyYW5zZm9ybScpLAogICAgICAg ICAoJ29wZXJhdG9yIG9mIGFjY2VzcyBtZXRob2QnKSwgKCdmdW5jdGlvbiBvZiBhY2Nlc3Mg bWV0aG9kJyksCi0gICAgICAgICgncHVibGljYXRpb24gbmFtZXNwYWNlJyksICgncHVibGlj YXRpb24gcmVsYXRpb24nKQorICAgICAgICAoJ3B1YmxpY2F0aW9uIG5hbWVzcGFjZScpLCAo J3B1YmxpY2F0aW9uIHJlbGF0aW9uJyksCisgICAgICAgICgnY29sdW1uIGVuY3J5cHRpb24g a2V5JyksICgnY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEnKSwgKCdjb2x1bW4gbWFzdGVy IGtleScpCiAgICAgTE9PUAogICAgICAgICBGT1IgbmFtZXMgSU4gVkFMVUVTICgne2VpbnN9 JyksICgne2FkZHJfbnNwLCB6d2VpfScpLCAoJ3tlaW5zLCB6d2VpLCBkcmVpfScpCiAgICAg ICAgIExPT1AKQEAgLTE0NCw2ICsxNDcsMTAgQEAgQ1JFQVRFIFNUQVRJU1RJQ1MgYWRkcl9u c3AuZ2VudGFibGVfc3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2VudGFibGU7CiBTRUxF Q1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdwdWJsaWNhdGlvbicsICd7b25lLHR3b30nLCAn e30nKTsKIFNFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3N1YnNjcmlwdGlvbicsICd7 b25lfScsICd7fScpOwogU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc3Vic2NyaXB0 aW9uJywgJ3tvbmUsdHdvfScsICd7fScpOworU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVz cygnY29sdW1uIGVuY3J5cHRpb24ga2V5JywgJ3tvbmV9JywgJ3t9Jyk7CitTRUxFQ1QgcGdf Z2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne29uZSx0d299 JywgJ3t9Jyk7CitTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gbWFzdGVy IGtleScsICd7b25lfScsICd7fScpOworU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygn Y29sdW1uIG1hc3RlciBrZXknLCAne29uZSx0d299JywgJ3t9Jyk7CiAKIC0tIE1ha2Ugc3Vy ZSB0aGF0IE5VTEwgaGFuZGxpbmcgaXMgY29ycmVjdC4KIFxwc2V0IG51bGwgJ05VTEwnCkBA IC0xNzQsNiArMTgxLDkgQEAgQ1JFQVRFIFNUQVRJU1RJQ1MgYWRkcl9uc3AuZ2VudGFibGVf c3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2VudGFibGU7CiAgICAgKCd0eXBlJywgJ3th ZGRyX25zcC5nZW5lbnVtfScsICd7fScpLAogICAgICgnY2FzdCcsICd7aW50OH0nLCAne2lu dDR9JyksCiAgICAgKCdjb2xsYXRpb24nLCAne2RlZmF1bHR9JywgJ3t9JyksCisgICAgKCdj b2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne2FkZHJfY2VrfScsICd7fScpLAorICAgICgnY29s dW1uIGVuY3J5cHRpb24ga2V5IGRhdGEnLCAne2FkZHJfY2VrfScsICd7YWRkcl9jbWt9Jyks CisgICAgKCdjb2x1bW4gbWFzdGVyIGtleScsICd7YWRkcl9jbWt9JywgJ3t9JyksCiAgICAg KCd0YWJsZSBjb25zdHJhaW50JywgJ3thZGRyX25zcCwgZ2VudGFibGUsIGFfY2hrfScsICd7 fScpLAogICAgICgnZG9tYWluIGNvbnN0cmFpbnQnLCAne2FkZHJfbnNwLmdlbmRvbWFpbn0n LCAne2RvbWNvbnN0cn0nKSwKICAgICAoJ2NvbnZlcnNpb24nLCAne3BnX2NhdGFsb2csIGtv aThfcl90b19taWN9JywgJ3t9JyksCkBAIC0yMjgsNiArMjM4LDggQEAgQ1JFQVRFIFNUQVRJ U1RJQ1MgYWRkcl9uc3AuZ2VudGFibGVfc3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2Vu dGFibGU7CiBEUk9QIFBVQkxJQ0FUSU9OIGFkZHJfcHViOwogRFJPUCBQVUJMSUNBVElPTiBh ZGRyX3B1Yl9zY2hlbWE7CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2FkZHJfc3ViOwor RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgYWRkcl9jZWs7CitEUk9QIENPTFVNTiBNQVNU RVIgS0VZIGFkZHJfY21rOwogCiBEUk9QIFNDSEVNQSBhZGRyX25zcCBDQVNDQURFOwogCkBA IC0yNDcsNiArMjU5LDkgQEAgQ1JFQVRFIFNUQVRJU1RJQ1MgYWRkcl9uc3AuZ2VudGFibGVf c3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2VudGFibGU7CiAgICAgKCdwZ190eXBlJzo6 cmVnY2xhc3MsIDAsIDApLCAtLSBubyB0eXBlCiAgICAgKCdwZ19jYXN0Jzo6cmVnY2xhc3Ms IDAsIDApLCAtLSBubyBjYXN0CiAgICAgKCdwZ19jb2xsYXRpb24nOjpyZWdjbGFzcywgMCwg MCksIC0tIG5vIGNvbGxhdGlvbgorICAgICgncGdfY29sZW5ja2V5Jzo6cmVnY2xhc3MsIDAs IDApLCAtLSBubyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkKKyAgICAoJ3BnX2NvbGVuY2tleWRh dGEnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRh CisgICAgKCdwZ19jb2xtYXN0ZXJrZXknOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbHVt biBtYXN0ZXIga2V5CiAgICAgKCdwZ19jb25zdHJhaW50Jzo6cmVnY2xhc3MsIDAsIDApLCAt LSBubyBjb25zdHJhaW50CiAgICAgKCdwZ19jb252ZXJzaW9uJzo6cmVnY2xhc3MsIDAsIDAp LCAtLSBubyBjb252ZXJzaW9uCiAgICAgKCdwZ19hdHRyZGVmJzo6cmVnY2xhc3MsIDAsIDAp LCAtLSBubyBkZWZhdWx0IGF0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHJlcGFyZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVwYXJlLnNxbApp bmRleCBjNjA5OGRjOTVjLi43ZGI3ODg3MzVjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9wcmVwYXJlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVwYXJl LnNxbApAQCAtNzUsNyArNzUsNyBAQCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFIHE1X3ByZXBf bm9kYXRhIEFTIEVYRUNVVEUgcTUoMjAwLCAnRFRBQUFBJykKIFBSRVBBUkUgcTggQVMKICAg ICBVUERBVEUgdGVuazEgU0VUIHN0cmluZ3UxID0gJDIgV0hFUkUgdW5pcXVlMSA9ICQxOwog Ci1TRUxFQ1QgbmFtZSwgc3RhdGVtZW50LCBwYXJhbWV0ZXJfdHlwZXMsIHJlc3VsdF90eXBl cyBGUk9NIHBnX3ByZXBhcmVkX3N0YXRlbWVudHMKK1NFTEVDVCBuYW1lLCBzdGF0ZW1lbnQs IHBhcmFtZXRlcl90eXBlcywgcGFyYW1ldGVyX29yaWdfdGFibGVzLCBwYXJhbWV0ZXJfb3Jp Z19jb2x1bW5zLCByZXN1bHRfdHlwZXMgRlJPTSBwZ19wcmVwYXJlZF9zdGF0ZW1lbnRzCiAg ICAgT1JERVIgQlkgbmFtZTsKIAogLS0gdGVzdCBERUFMTE9DQVRFIEFMTDsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2FuaXR5LnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3R5cGVfc2FuaXR5LnNxbAppbmRleCA3OWVjNDEwYTZjLi40YzRjZjM5Mzk4 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC90eXBlX3Nhbml0eS5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHlwZV9zYW5pdHkuc3FsCkBAIC01MDMsNiArNTAz LDggQEAgQ1JFQVRFIFRBQkxFIHRhYl9jb3JlX3R5cGVzIEFTIFNFTEVDVAogICAndHh0Jzo6 dGV4dCwKICAgdHJ1ZTo6Ym9vbCwKICAgRSdcXHhERUFEQkVFRic6OmJ5dGVhLAorICAnZW5j cnlwdGVkJDNhYWNkMDYzZDJkM2ExYTA0MTE5ZGY3Njg3NGUwYjk3ODVlYTQ2NjE3N2YxOGZl OWMwYTFhMzEzZWFmMDljOTgnOjpwZ19lbmNyeXB0ZWRfZGV0LAorICAnZW5jcnlwdGVkJDNk YWRlNmNlYzc1YjEwN2QzNzlmMzk3ODc2YzcwNjQwZTFhMWYzOWJkMjA4ODQzMzliYzY0MjAz YWJlNzNkNmQnOjpwZ19lbmNyeXB0ZWRfcm5kLAogICBCJzEwMDAxJzo6Yml0LAogICBCJzEw MDAxJzo6dmFyYml0IEFTIHZhcmJpdCwKICAgJzEyLjM0Jzo6bW9uZXksCgpiYXNlLWNvbW1p dDogY2NhMTg2MzQ4OTI5Y2Q3NWYyM2VmMWIyNTkyMjM4NmJmMzhjZjk5YwotLSAKMi4zOS4w Cgo= --------------bE5cIdV7uBwM8Kl9UTo0rizb--