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 1oY1JL-0005if-FW for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Sep 2022 08:30:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oY1JK-0008CA-D5 for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Sep 2022 08:30:26 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oY1HV-0000Ig-2e for pgsql-hackers@lists.postgresql.org; Tue, 13 Sep 2022 08:28:34 +0000 Received: from out3-smtp.messagingengine.com ([66.111.4.27]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oY1GA-0001Zo-UO for pgsql-hackers@postgresql.org; Tue, 13 Sep 2022 08:27:26 +0000 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 6A2F85C00EE for ; Tue, 13 Sep 2022 04:27:07 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Tue, 13 Sep 2022 04:27:07 -0400 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=1663057627; x=1663144027; bh=dHwTEDnqh2pGZ+nRGQTgiBI1hmUd WoKcDdOGsMgS8Zw=; b=a+6AJDn7/XZnlDI/P0vpwZ+LkvKGmNW7apH17YK91ad6 d8/Wg1LjQbzwHNCztz4ZV7duXDFaxJvL2xJWMqK+7Dr4LlgycUwXf4AFC+b1evQr kM+xs4Reh2lgRiPsuPfCkroRkYQ7tvdEQEopZ/RhCWIqKDn3R4GSUkUky9v4zktX wnzfZRcaZgvR56Cz0+yN0mE2iipzbBVUByNOZdfzx/6vt5zpbGLS5X9r050DBU7W 4K9j7Bclzbl24hJ7OdFHgP2kAZLlJ20pwLDaZasnZXrD2eSLpDLyo2WCWCitp2Zv 2slPUdj5h062WkgkmZyuKp/OJAFg0u7imd6DpJ2cDQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfedugedgtdegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfuffhvfhfjgesmhdtre ertdefjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdr vghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrth htvghrnhepkeetteefheevhfdvledtfeegleeutdekkeekveeifeeuffevjeeujeehffej ieejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepph gvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Tue, 13 Sep 2022 04:27:05 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------W7fzo2UktvQgR590aBKOrJVN" Message-ID: <6bd99fea-3298-854d-d37f-554151342f36@enterprisedb.com> Date: Tue, 13 Sep 2022 10:27:03 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Subject: Re: Transparent column encryption 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> Content-Language: en-US In-Reply-To: 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. --------------W7fzo2UktvQgR590aBKOrJVN Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Here is an updated patch that resolves some merge conflicts; no functionality changes over v6. On 30.08.22 13:35, Peter Eisentraut wrote: > Here is an updated patch. > > I mainly spent time on adding a full set of DDL commands for the keys. > This made the patch very bulky now, but there is not really anything > surprising in there.  It probably needs another check of permission > handling etc., but it's got everything there to try it out.  Along with > the DDL commands, the pg_dump side is now fully implemented. > > Secondly, I isolated the protocol changes into a protocol extension with > the name _pq_.column_encryption.  So by default there are no protocol > changes and this feature is disabled.  AFAICT, we haven't actually ever > used the _pq_ protocol extension mechanism, so it would be good to > review whether this was done here in the intended way. > > At this point, the patch is sort of feature complete, meaning it has all > the concepts, commands, and interfaces that I had in mind.  I have a > long list of things to recheck and tighten up, based on earlier feedback > and some things I found along the way.  But I don't currently plan any > more major architectural or design changes, pending feedback.  (Also, > the patch is now very big, so anything additional might be better for a > future separate patch.) --------------W7fzo2UktvQgR590aBKOrJVN Content-Type: text/plain; charset=UTF-8; name="v7-0001-Transparent-column-encryption.patch" Content-Disposition: attachment; filename="v7-0001-Transparent-column-encryption.patch" Content-Transfer-Encoding: base64 RnJvbSAyNjJiOTYzMThmMzZiNzA4ZjA0MmYwMmI0MzFlNjYwNDg5MTg4MTNiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAxMyBTZXAgMjAyMiAxMDoyNDo1NyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjddIFRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uCgpUaGlzIGZlYXR1 cmUgZW5hYmxlcyB0aGUgYXV0b21hdGljLCB0cmFuc3BhcmVudCBlbmNyeXB0aW9uIGFuZApk ZWNyeXB0aW9uIG9mIHBhcnRpY3VsYXIgY29sdW1ucyBpbiB0aGUgY2xpZW50LiAgVGhlIGRh dGEgZm9yIHRob3NlCmNvbHVtbnMgdGhlbiBvbmx5IGV2ZXIgYXBwZWFycyBpbiBjaXBoZXJ0 ZXh0IG9uIHRoZSBzZXJ2ZXIsIHNvIGl0IGlzCnByb3RlY3RlZCBmcm9tIERCQXMsIHN5c2Fk bWlucywgY2xvdWQgb3BlcmF0b3JzLCBldGMuIGFzIHdlbGwgYXMKYWNjaWRlbnRhbCBsZWFr YWdlIHRvIHNlcnZlciBsb2dzLCBmaWxlLXN5c3RlbSBiYWNrdXBzLCBldGMuICBUaGUKY2Fu b25pY2FsIHVzZSBjYXNlIGZvciB0aGlzIGZlYXR1cmUgaXMgc3RvcmluZyBjcmVkaXQgY2Fy ZCBudW1iZXJzCmVuY3J5cHRlZCwgaW4gYWNjb3JkYW5jZSB3aXRoIFBDSSBEU1MsIGFzIHdl bGwgYXMgc2ltaWxhciBzaXR1YXRpb25zCmludm9sdmluZyBzb2NpYWwgc2VjdXJpdHkgbnVt YmVycyBldGMuICBPbmUgY2FuJ3QgZG8gYW55IGNvbXB1dGF0aW9ucwp3aXRoIGVuY3J5cHRl ZCB2YWx1ZXMgb24gdGhlIHNlcnZlciwgYnV0IGZvciB0aGVzZSB1c2UgY2FzZXMsIHRoYXQg aXMKbm90IG5lY2Vzc2FyeS4gIFRoaXMgZmVhdHVyZSBkb2VzIHN1cHBvcnQgZGV0ZXJtaW5p c3RpYyBlbmNyeXB0aW9uIGFzCmFuIGFsdGVybmF0aXZlIHRvIHRoZSBkZWZhdWx0IHJhbmRv bWl6ZWQgZW5jcnlwdGlvbiwgc28gaW4gdGhhdCBtb2RlCm9uZSBjYW4gZG8gZXF1YWxpdHkg bG9va3VwcywgYXQgdGhlIGNvc3Qgb2Ygc29tZSBzZWN1cml0eS4KClRoaXMgZnVuY3Rpb25h bGl0eSBhbHNvIGV4aXN0cyBpbiBvdGhlciBkYXRhYmFzZSBwcm9kdWN0cywgYW5kIHRoZQpv dmVyYWxsIGNvbmNlcHRzIHdlcmUgbW9zdGx5IGFkb3B0ZWQgZnJvbSB0aGVyZS4KCihOb3Rl OiBUaGlzIGZlYXR1cmUgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCBhbnkgb24tZGlzayBlbmNy eXB0aW9uCmZlYXR1cmUuICBCb3RoIGNhbiBleGlzdCBpbmRlcGVuZGVudGx5LikKCllvdSBk ZWNsYXJlIGEgY29sdW1uIGFzIGVuY3J5cHRlZCBpbiBhIENSRUFURSBUQUJMRSBzdGF0ZW1l bnQuICBUaGUKY29sdW1uIHZhbHVlIGlzIGVuY3J5cHRlZCBieSBhIHN5bW1ldHJpYyBrZXkg Y2FsbGVkIHRoZSBjb2x1bW4KZW5jcnlwdGlvbiBrZXkgKENFSykuICBUaGUgQ0VLIGlzIGEg Y2F0YWxvZyBvYmplY3QuICBUaGUgQ0VLIGtleQptYXRlcmlhbCBpcyBpbiB0dXJuIGVuY3J5 cHRlZCBieSBhbiBhc3N5bW1ldHJpYyBrZXkgY2FsbGVkIHRoZSBjb2x1bW4KbWFzdGVyIGtl eSAoQ01LKS4gIFRoZSBDTUsgaXMgbm90IHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UgYnV0IHNv bWV3aGVyZQp3aGVyZSB0aGUgY2xpZW50IGNhbiBnZXQgdG8gaXQsIGZvciBleGFtcGxlIGlu IGEgZmlsZSBvciBpbiBhIGtleQptYW5hZ2VtZW50IHN5c3RlbS4gIFdoZW4gYSBzZXJ2ZXIg c2VuZHMgcm93cyBjb250YWluaW5nIGVuY3J5cHRlZApjb2x1bW4gdmFsdWVzIHRvIHRoZSBj bGllbnQsIGl0IGZpcnN0IHNlbmRzIHRoZSByZXF1aXJlZCBDTUsgYW5kIENFSwppbmZvcm1h dGlvbiAobmV3IHByb3RvY29sIG1lc3NhZ2VzKSwgd2hpY2ggdGhlIGNsaWVudCBuZWVkcyB0 byByZWNvcmQuClRoZW4sIHRoZSBjbGllbnQgY2FuIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRv IGF1dG9tYXRpY2FsbHkgZGVjcnlwdCB0aGUKaW5jb21pbmcgcm93IGRhdGEgYW5kIGZvcndh cmQgaXQgaW4gcGxhaW50ZXh0IHRvIHRoZSBhcHBsaWNhdGlvbi4KCkZvciB0aGUgQ01Lcywg bGlicHEgaGFzIGEgbmV3IGNvbm5lY3Rpb24gcGFyYW1ldGVyICJjbWtsb29rdXAiIHRoYXQK c3BlY2lmaWVzIHZpYSBhIG1pbmktbGFuZ3VhZ2Ugd2hlcmUgdG8gZ2V0IHRoZSBrZXlzLiAg UmlnaHQgbm93LCB5b3UKY2FuIHVzZSAiZmlsZSIgdG8gcmVhZCBpdCBmcm9tIGEgZmlsZSwg b3IgInJ1biIgdG8gcnVuIHNvbWUgcHJvZ3JhbSwKd2hpY2ggY291bGQgZ2V0IGl0IGZyb20g YSBLTVMuCgpUaGUgZ2VuZXJhbCBpZGVhIHdvdWxkIGJlIGZvciBhbiBhcHBsaWNhdGlvbiB0 byBoYXZlIG9uZSBDTUsgcGVyIGFyZWEKb2Ygc2VjcmV0IHN0dWZmLCBmb3IgZXhhbXBsZSwg Zm9yIGNyZWRpdCBjYXJkIGRhdGEuICBUaGUgQ01LIGNhbiBiZQpyb3RhdGVkOiBlYWNoIENF SyBjYW4gYmUgcmVwcmVzZW50ZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIGRhdGFiYXNlLApl bmNyeXB0ZWQgYnkgYSBkaWZmZXJlbnQgQ01LLiAgKFRoZSBDRUsgY2FuJ3QgYmUgcm90YXRl ZCBlYXNpbHksIHNpbmNlCnRoYXQgd291bGQgcmVxdWlyZSByZWFkaW5nIG91dCBhbGwgdGhl IGRhdGEgZnJvbSBhIHRhYmxlL2NvbHVtbiBhbmQKcmVlbmNyeXB0aW5nIGl0LiAgV2UgY291 bGQvc2hvdWxkIGFkZCBzb21lIGN1c3RvbSB0b29saW5nIGZvciB0aGF0LApidXQgaXQgd291 bGRuJ3QgYmUgYSByb3V0aW5lIG9wZXJhdGlvbi4pCgpTZXZlcmFsIGVuY3J5cHRpb24gYWxn b3JpdGhtcyBhcmUgcHJvdmlkZWQuICBUaGUgQ01LIHByb2Nlc3MgdXNlcwpQR19DTUtfUlNB RVNfT0FFUF9TSEFfMSBvciBfMjU2LiAgVGhlIENFSyBwcm9jZXNzIHVzZXMKQUVBRF9BRVNf Kl9DQkNfSE1BQ19TSEFfKiB3aXRoIHNldmVyYWwgc3RyZW5ndGhzLgoKSW4gdGhlIHNlcnZl ciwgdGhlIGVuY3J5cHRlZCBkYXR1bXMgYXJlIHN0b3JlZCBpbiB0eXBlcyBjYWxsZWQKcGdf ZW5jcnlwdGVkX3JuZCBhbmQgcGdfZW5jcnlwdGVkX2RldCAoZm9yIHJhbmRvbWl6ZWQgYW5k CmRldGVybWluaXN0aWMgZW5jcnlwdGlvbikuICBUaGVzZSBhcmUgZXNzZW50aWFsbHkgY291 c2lucyBvZiBieXRlYS4KRm9yIHRoZSByZXN0IG9mIHRoZSBkYXRhYmFzZSBzeXN0ZW0gYmVs b3cgdGhlIHByb3RvY29sIGhhbmRsaW5nLCB0aGVyZQppcyBub3RoaW5nIHNwZWNpYWwgYWJv dXQgdGhvc2UuICBGb3IgZXhhbXBsZSwgcGdfZW5jcnlwdGVkX3JuZCBoYXMgbm8Kb3BlcmF0 b3JzIGF0IGFsbCwgcGdfZW5jcnlwdGVkX2RldCBoYXMgb25seSBhbiBlcXVhbGl0eSBvcGVy YXRvci4KcGdfYXR0cmlidXRlIGhhcyBhIG5ldyBjb2x1bW4gYXR0cmVhbHR5cGlkIHRoYXQg c3RvcmVzIHRoZSBvcmlnaW5hbAp0eXBlIG9mIHRoZSBkYXRhIGluIHRoZSBjb2x1bW4uICBU aGlzIGlzIG9ubHkgdXNlZCBmb3IgcHJvdmlkaW5nIGl0IHRvCmNsaWVudHMsIHNvIHRoYXQg aGlnaGVyLWxldmVsIGNsaWVudHMgY2FuIGNvbnZlcnQgdGhlIGRlY3J5cHRlZCB2YWx1ZQp0 byB0aGVpciBhcHByb3ByaWF0ZSBkYXRhIHR5cGVzIGluIHRoZWlyIGVudmlyb25tZW50cy4K ClRoZSBwcm90b2NvbCBleHRlbnNpb25zIGFyZSBndWFyZGVkIGJ5IGEgbmV3IHByb3RvY29s IGV4dGVuc2lvbiBvcHRpb24KIl9wcV8uY29sdW1uX2VuY3J5cHRpb24iLiAgSWYgdGhpcyBp cyBub3Qgc2V0LCBub3RoaW5nIGNoYW5nZXMsIHRoZQpwcm90b2NvbCBzdGF5cyB0aGUgc2Ft ZSwgYW5kIG5vIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbiBoYXBwZW5zLgoKVGhlIHRyaWNr aWVzdCBwYXJ0IG9mIHRoaXMgd2hvbGUgdGhpbmcgYXBwZWFycyB0byBiZSBob3cgdG8gZ2V0 CnRyYW5zcGFyZW50bHkgZW5jcnlwdGVkIGRhdGEgaW50byB0aGUgZGF0YWJhc2UgKGFzIG9w cG9zZWQgdG8gcmVhZGluZwppdCBvdXQpLiAgSXQgaXMgcmVxdWlyZWQgdG8gdXNlIHByb3Rv Y29sLWxldmVsIHByZXBhcmVkIHN0YXRlbWVudHMKKGkuZS4sIGV4dGVuZGVkIHF1ZXJ5KSBm b3IgdGhpcy4gIFRoZSBjbGllbnQgbXVzdCBmaXJzdCBwcmVwYXJlIGEKc3RhdGVtZW50LCB0 aGVuIGRlc2NyaWJlIHRoZSBzdGF0ZW1lbnQgdG8gZ2V0IHBhcmFtZXRlciBtZXRhZGF0YSwK d2hpY2ggaW5kaWNhdGVzIHdoaWNoIHBhcmFtZXRlcnMgYXJlIHRvIGJlIGVuY3J5cHRlZCBh bmQgaG93LiAgU28gdGhpcwp3aWxsIHJlcXVpcmUgc29tZSBjYXJlIGJ5IGFwcGxpY2F0aW9u cyB0aGF0IHdhbnQgdG8gZG8gdGhpcywgYnV0LAp3ZWxsLCB0aGV5IHByb2JhYmx5IHNob3Vs ZCBiZSBjYXJlZnVsIGFueXdheS4gIEluIGxpYnBxLCB0aGUgZXhpc3RpbmcKQVBJcyBtYWtl IHRoaXMgZGlmZmljdWx0LCBiZWNhdXNlIHRoZXJlIGlzIG5vIHdheSB0byBwYXNzIHRoZSBy ZXN1bHQKb2YgYSBkZXNjcmliZS1zdGF0ZW1lbnQgY2FsbCBiYWNrIGludG8KZXhlY3V0ZS1z dGF0ZW1lbnQtd2l0aC1wYXJhbWV0ZXJzLiAgSSBhZGRlZCBuZXcgZnVuY3Rpb25zIHRoYXQg ZG8KdGhpcywgc28geW91IHRoZW4gZXNzZW50aWFsbHkgZG8KCiAgICByZXMwID0gUFFkZXNj cmliZVByZXBhcmVkKGNvbm4sICIiKTsKICAgIHJlcyA9IFBRZXhlY1ByZXBhcmVkMihjb25u LCAiIiwgMiwgdmFsdWVzLCBOVUxMLCBOVUxMLCAwLCByZXMwKTsKCihUaGUgbmFtZSBjb3Vs ZCBvYnZpb3VzbHkgYmUgaW1wcm92ZWQuKSAgT3RoZXIgY2xpZW50IEFQSXMgdGhhdCBoYXZl IGEKInN0YXRlbWVudCBoYW5kbGUiIGNvbmNlcHQgY291bGQgZG8gdGhpcyBtb3JlIGVsZWdh bnRseSBhbmQgcHJvYmFibHkKd2l0aG91dCBhbnkgQVBJIGNoYW5nZXMuCgpBbm90aGVyIGNo YWxsZW5nZSBpcyB0aGF0IHRoZSBwYXJzZSBhbmFseXNpcyBtdXN0IGNoZWNrIHdoaWNoCnVu ZGVybHlpbmcgY29sdW1uIGEgcGFyYW1ldGVyIGNvcnJlc3BvbmRzIHRvLiAgVGhpcyBpcyBz aW1pbGFyIHRvCnJlc29yaWd0YmwgYW5kIHJlc29yaWdjb2wgaW4gdGhlIG9wcG9zaXRlIGRp cmVjdGlvbi4gIFRoZSBjdXJyZW50CmltcGxlbWVudGF0aW9uIG9mIHRoaXMgd29ya3MgZm9y IHRoZSB0ZXN0IGNhc2VzLCBidXQgSSBrbm93IGl0IGhhcwpzb21lIHByb2JsZW1zLCBzbyBJ J2xsIGNvbnRpbnVlIHdvcmtpbmcgaW4gdGhpcy4gIFRoaXMgZnVuY3Rpb25hbGl0eQppcyBp biBwcmluY2lwbGUgYXZhaWxhYmxlIHRvIGFsbCBwcmVwYXJlZC1zdGF0ZW1lbnQgdmFyaWFu dHMsIG5vdCBvbmx5CnByb3RvY29sLWxldmVsLiAgU28geW91IGNhbiBzZWUgaW4gdGhlIHRl c3RzIHRoYXQgSSBleHBhbmRlZCB0aGUKcGdfcHJlcGFyZWRfc3RhdGVtZW50cyB2aWV3IHRv IHNob3cgdGhpcyBpbmZvcm1hdGlvbiBhcyB3ZWxsLCB3aGljaAphbHNvIHByb3ZpZGVzIGFu IGVhc3kgd2F5IHRvIHRlc3QgYW5kIGRlYnVnIHRoaXMgZnVuY3Rpb25hbGl0eQppbmRlcGVu ZGVudCBvZiBjb2x1bW4gZW5jcnlwdGlvbi4KCnBzcWwgZG9lc24ndCB1c2UgcHJlcGFyZWQg c3RhdGVtZW50cywgc28gd3JpdGluZyBpbnRvIGVuY3J5cHRlZApjb2x1bW5zIHdvdWxkbid0 IHdvcmsgYXQgYWxsIHZpYSBwc3FsLiAgKFJlYWRpbmcgd29ya3Mgbm8KcHJvYmxlbS4pICBJ IGFkZGVkIGEgbmV3IHBzcWwgY29tbWFuZCBcZ2VuY3IgdGhhdCB5b3UgY2FuIHVzZSBsaWtl CgpJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKCQxLCAkMikgXGdlbmNyICd2YWwxJyAndmFsMicK ClRPRE86IFRoaXMgcGF0Y2ggdmVyc2lvbiBoYXMgYWxsIHRoZSBuZWNlc3NhcnkgcGllY2Vz IGluIHBsYWNlIHRvIG1ha2UKdGhpcyB3b3JrLCBzbyB5b3UgY2FuIGhhdmUgYW4gaWRlYSBo b3cgdGhlIG92ZXJhbGwgc3lzdGVtIHdvcmtzLiAgSXQKY29udGFpbnMgc29tZSBkb2N1bWVu dGF0aW9uIGFuZCB0ZXN0cyB0byBoZWxwIGlsbHVzdHJhdGUgdGhlCmZ1bmN0aW9uYWxpdHku ICBNaXNzaW5nOgoKLSBwc3FsIFxkIHN1cHBvcnQKCkRpc2N1c3Npb246IGh0dHBzOi8vd3d3 LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxhdC84OTE1NzkyOS1jMmI2LTgxN2ItNjAy NS04ZTRiMmQ4OWQ4OGYlNDBlbnRlcnByaXNlZGIuY29tCi0tLQogLi4uL3Bvc3RncmVzX2Zk dy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0ICAgIHwgICAyICstCiBkb2Mvc3JjL3NnbWwv YWNyb255bXMuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTggKwogZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgMjc1ICsrKysrKysKIGRvYy9z cmMvc2dtbC9kYXRhdHlwZS5zZ21sICAgICAgICAgICAgICAgICAgICB8ICA0NyArKwogZG9j L3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzc5ICsrKysr KysrKwogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwg IDIzICsKIGRvYy9zcmMvc2dtbC9saWJwcS5zZ21sICAgICAgICAgICAgICAgICAgICAgICB8 IDI4MCArKysrKystCiBkb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbCAgICAgICAgICAgICAg ICAgICAgfCAzOTIgKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwg ICAgICAgICAgICAgICAgfCAgIDYgKwogLi4uL3NnbWwvcmVmL2FsdGVyX2NvbHVtbl9lbmNy eXB0aW9uX2tleS5zZ21sIHwgMTg2ICsrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2Nv bHVtbl9tYXN0ZXJfa2V5LnNnbWwgfCAxMTcgKysrCiAuLi4vcmVmL2NyZWF0ZV9jb2x1bW5f ZW5jcnlwdGlvbl9rZXkuc2dtbCAgICAgfCAxNjMgKysrKwogLi4uL3NnbWwvcmVmL2NyZWF0 ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sICAgIHwgMTA2ICsrKwogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgIDQyICstCiAuLi4vc2dtbC9yZWYv ZHJvcF9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCAgfCAxMTIgKysrCiBkb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCAgfCAxMTIgKysrCiBkb2Mvc3Jj L3NnbWwvcmVmL3BnX2R1bXAuc2dtbCAgICAgICAgICAgICAgICAgfCAgMzEgKwogZG9jL3Ny Yy9zZ21sL3JlZi9wZ19kdW1wYWxsLnNnbWwgICAgICAgICAgICAgIHwgIDI3ICsKIGRvYy9z cmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgICAgICAgICAgICB8ICAzMyArCiBkb2Mv c3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3Jj L2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHNpbXBsZS5jICAgICAgIHwgICA3ICsKIHNy Yy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYyAgICAgICAgICB8IDE5MSArKysr LQogc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi90dXBkZXNjLmMgICAgICAgICAgIHwgIDEy ICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jICAgICAgICB8ICAg MiArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwg ICAzICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jICAgICAgICAgICAgICAgICAg fCAgNjIgKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jICAgICAgICAgICAg ICB8ICAxOCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyAgICAgICAgICAgICAgICAg ICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgICAgICAg ICAgIHwgMTgzICsrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSAgICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYyAgICAgICAg ICAgICAgICAgIHwgIDE1ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYyAg ICAgICAgICAgICB8IDM2MSArKysrKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50 X3RyaWdnZXIuYyAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wcmVw YXJlLmMgICAgICAgICAgICAgICAgfCAgNzQgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl Y2xhYmVsLmMgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgODMgKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3ZhcmlhYmxlLmMgICAgICAgICAgICAgICB8ICAgNyArLQogc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivc3BpLmMgICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9wYXJz ZXIvYW5hbHl6ZS5jICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDEyMSArKy0KIHNyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9wYXJhbS5jICAgICAgICAgICAgICB8ICA0OSArLQogc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iYWNr ZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jICAgICAgICAgICB8ICAxOSArLQogc3JjL2Jh Y2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAgICAgICAgICAgIHwgIDU3ICstCiBzcmMv YmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgNDIgKy0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMgICAgICAgICAgICB8ICAgMSArCiBz cmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyAgICAgICAgICAgfCAgOTMgKysr CiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYyAgICAgICAgICAgfCAgMzEg Ky0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMgICAgICAgICAgICB8ICA1 OCArKwogc3JjL2JhY2tlbmQvdXRpbHMvbWIvbWJ1dGlscy5jICAgICAgICAgICAgICAgIHwg IDE4ICstCiBzcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgICAgICAgICAgICAgICAgICAgICAg fCAgIDYgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oICAgICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyAgICAgICAg ICB8ICAgNCArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2RiLmMgICAgICAgICAgICAg ICAgfCAgIDkgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAg ICAgICB8IDM1MCArKysrKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAg ICAgICAgICAgICAgIHwgIDMxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAg ICAgICAgICAgICAgICB8ICAxNCArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcGFsbC5jICAg ICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwgICAgICAgICAgICAgIHwgIDU2ICstCiBzcmMvYmluL3BzcWwvY29tbWFuZC5jICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMzEgKwogc3JjL2Jpbi9wc3FsL2NvbW1vbi5jICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDM5ICstCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAg ICAgICAgICAgICAgICAgICAgICAgfCAgMjkgKy0KIHNyYy9iaW4vcHNxbC9oZWxwLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmluL3BzcWwvc2V0dGluZ3Mu aCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2Jpbi9wc3FsL3N0YXJ0dXAu YyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsKIHNyYy9iaW4vcHNxbC90YWItY29t cGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICA1MSArLQogc3JjL2luY2x1ZGUvYWNjZXNz L3ByaW50dHVwLmggICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFs b2cvZGVwZW5kZW5jeS5oICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2Ftb3AuZGF0ICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19hbXByb2MuZGF0ICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfYXR0cmlidXRlLmggICAgICAgICAgICB8ICAgOSArCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2Nhc3QuZGF0ICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19jb2xlbmNrZXkuaCAgICAgICAgICAgIHwgIDU1ICsrCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaCAgICAgICAgfCAgNDYgKysKIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfY29sbWFzdGVya2V5LmggICAgICAgICB8ICA0NSArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0ICAgICAgICAgICAgfCAgIDIgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQgICAgICAgICAgIHwgIDEwICsKIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfb3BmYW1pbHkuZGF0ICAgICAgICAgICB8ICAgMiArCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgMTMgKy0KIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQgICAgICAgICAgICAgICB8ICAxMiArCiBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oICAgICAgICAgICAgIHwgIDI1ICsK IHNyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmggICAgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMTYg Kwogc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaCAgICAgICAgICAgICAgICAgIHwgICA0 ICstCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAg IDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwg ICAyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9wYXJhbS5oICAgICAgICAgICAgICB8 ICAgMyArLQogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggICAgICAgICAgICAgICAg IHwgICA2ICsKIHNyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3QuaCAgICAgICAgICAgICAgICAg ICB8ICAgMiArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wuaCAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAgICAg ICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL3V0aWxzL3BsYW5jYWNoZS5oICAgICAgICAgICAg ICAgICB8ICAgNiArCiBzcmMvaW5jbHVkZS91dGlscy9zeXNjYWNoZS5oICAgICAgICAgICAg ICAgICAgfCAgIDYgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUgICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0ICAgICAg ICAgICAgICB8ICAgNCArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMgICAg ICAgICAgICAgfCAgMzggKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3Bl bnNzbC5jICAgICB8IDc2NiArKysrKysrKysrKysrKysrKysKIHNyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLWVuY3J5cHQuaCAgICAgICAgICAgICB8ICAzMyArCiBzcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1leGVjLmMgICAgICAgICAgICAgICAgfCA1OTMgKysrKysrKysrKysrKy0KIHNy Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jICAgICAgICAgICB8IDE4MCArKyst CiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jICAgICAgICAgICAgICAgfCAgMzEg Ky0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmggICAgICAgICAgICAgICB8ICAy MiArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaCAgICAgICAgICAgICAgfCAg MzcgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvbmxzLm1rICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiBzcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRpZ25vcmUgICAgICAgICAg fCAgIDEgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9NYWtlZmlsZSAgICAgICAgICAg IHwgICA3ICsKIHNyYy90ZXN0L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMyArLQogc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGlnbm9yZSAgICAg ICAgIHwgICAzICsKIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlICAgICAg ICAgICB8ICAyOSArCiAuLi4vdC8wMDFfY29sdW1uX2VuY3J5cHRpb24ucGwgICAgICAgICAg ICAgICAgfCAxODMgKysrKysKIC4uLi9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90 YXRpb24ucGwgICB8IDEwOCArKysKIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3Rf Y2xpZW50LmMgICAgICB8IDIxMCArKysrKwogLi4uL2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3Rf cnVuX2RlY3J5cHQucGwgICAgIHwgIDQxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL2NvbHVt bl9lbmNyeXB0aW9uLm91dCAgICB8IDExNSArKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvb2JqZWN0X2FkZHJlc3Mub3V0ICB8ICA0NyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vaWRqb2lucy5vdXQgICAgICAgIHwgICA2ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb3ByX3Nhbml0eS5vdXQgICAgICB8ICAxMiArLQogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wcmVwYXJlLm91dCAgICAgICAgIHwgIDM4ICstCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgMjUgKwogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ydWxlcy5vdXQgICAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5Lm91dCAgICAgfCAgNDYgKy0KIHNyYy90ZXN0L3Jl Z3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAgMyArCiBzcmMvdGVzdC9y ZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NvbHVtbl9lbmNyeXB0aW9uLnNxbCAgICB8IDEwNyArKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbCAgICAgICB8ICAxOCArLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcHJlcGFyZS5zcWwgICAgICAgICAgICAgIHwgICAyICstCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbCAgICAgICAgICAgICAgICAgfCAgMTcgKwog c3JjL3Rlc3QvcmVncmVzcy9zcWwvdHlwZV9zYW5pdHkuc3FsICAgICAgICAgIHwgICAyICsK IDEzMCBmaWxlcyBjaGFuZ2VkLCA3NDE0IGluc2VydGlvbnMoKyksIDE1NiBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2NvbHVtbl9l bmNyeXB0aW9uX2tleS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tl eS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVt bl9lbmNyeXB0aW9uX2tleS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21s L3JlZi9kcm9wX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvYmFja2VuZC9jb21tYW5kcy9jb2xlbmNjbWRzLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC1vcGVuc3NsLmMKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LmgKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi8uZ2l0aWdub3Jl CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vTWFrZWZp bGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAw MV9jb2x1bW5fZW5jcnlwdGlvbi5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2Nv bHVtbl9lbmNyeXB0aW9uL3QvMDAyX2Nta19yb3RhdGlvbi5wbAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMKIGNyZWF0ZSBt b2RlIDEwMDc1NSBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X3J1bl9kZWNyeXB0 LnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2x1 bW5fZW5jcnlwdGlvbi5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNz L3NxbC9jb2x1bW5fZW5jcnlwdGlvbi5zcWwKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3Rn cmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0Z3Jlc19m ZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAppbmRleCA3YmYzNTYwMmIwLi4xOWYzZjE5 ZGNkIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jl c19mZHcub3V0CisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVz X2Zkdy5vdXQKQEAgLTk2MjcsNyArOTYyNyw3IEBAIERPICRkJAogICAgIEVORDsKICRkJDsK IEVSUk9SOiAgaW52YWxpZCBvcHRpb24gInBhc3N3b3JkIgotSElOVDogIFZhbGlkIG9wdGlv bnMgaW4gdGhpcyBjb250ZXh0IGFyZTogc2VydmljZSwgcGFzc2ZpbGUsIGNoYW5uZWxfYmlu ZGluZywgY29ubmVjdF90aW1lb3V0LCBkYm5hbWUsIGhvc3QsIGhvc3RhZGRyLCBwb3J0LCBv cHRpb25zLCBhcHBsaWNhdGlvbl9uYW1lLCBrZWVwYWxpdmVzLCBrZWVwYWxpdmVzX2lkbGUs IGtlZXBhbGl2ZXNfaW50ZXJ2YWwsIGtlZXBhbGl2ZXNfY291bnQsIHRjcF91c2VyX3RpbWVv dXQsIHNzbG1vZGUsIHNzbGNvbXByZXNzaW9uLCBzc2xjZXJ0LCBzc2xrZXksIHNzbHJvb3Rj ZXJ0LCBzc2xjcmwsIHNzbGNybGRpciwgc3Nsc25pLCByZXF1aXJlcGVlciwgc3NsX21pbl9w cm90b2NvbF92ZXJzaW9uLCBzc2xfbWF4X3Byb3RvY29sX3ZlcnNpb24sIGdzc2VuY21vZGUs IGtyYnNydm5hbWUsIGdzc2xpYiwgdGFyZ2V0X3Nlc3Npb25fYXR0cnMsIHVzZV9yZW1vdGVf ZXN0aW1hdGUsIGZkd19zdGFydHVwX2Nvc3QsIGZkd190dXBsZV9jb3N0LCBleHRlbnNpb25z LCB1cGRhdGFibGUsIHRydW5jYXRhYmxlLCBmZXRjaF9zaXplLCBiYXRjaF9zaXplLCBhc3lu Y19jYXBhYmxlLCBwYXJhbGxlbF9jb21taXQsIGtlZXBfY29ubmVjdGlvbnMKK0hJTlQ6ICBW YWxpZCBvcHRpb25zIGluIHRoaXMgY29udGV4dCBhcmU6IHNlcnZpY2UsIHBhc3NmaWxlLCBj aGFubmVsX2JpbmRpbmcsIGNvbm5lY3RfdGltZW91dCwgZGJuYW1lLCBob3N0LCBob3N0YWRk ciwgcG9ydCwgb3B0aW9ucywgYXBwbGljYXRpb25fbmFtZSwga2VlcGFsaXZlcywga2VlcGFs aXZlc19pZGxlLCBrZWVwYWxpdmVzX2ludGVydmFsLCBrZWVwYWxpdmVzX2NvdW50LCB0Y3Bf dXNlcl90aW1lb3V0LCBzc2xtb2RlLCBzc2xjb21wcmVzc2lvbiwgc3NsY2VydCwgc3Nsa2V5 LCBzc2xyb290Y2VydCwgc3NsY3JsLCBzc2xjcmxkaXIsIHNzbHNuaSwgcmVxdWlyZXBlZXIs IHNzbF9taW5fcHJvdG9jb2xfdmVyc2lvbiwgc3NsX21heF9wcm90b2NvbF92ZXJzaW9uLCBn c3NlbmNtb2RlLCBrcmJzcnZuYW1lLCBnc3NsaWIsIHRhcmdldF9zZXNzaW9uX2F0dHJzLCBj bWtsb29rdXAsIGNvbHVtbl9lbmNyeXB0aW9uLCB1c2VfcmVtb3RlX2VzdGltYXRlLCBmZHdf c3RhcnR1cF9jb3N0LCBmZHdfdHVwbGVfY29zdCwgZXh0ZW5zaW9ucywgdXBkYXRhYmxlLCB0 cnVuY2F0YWJsZSwgZmV0Y2hfc2l6ZSwgYmF0Y2hfc2l6ZSwgYXN5bmNfY2FwYWJsZSwgcGFy YWxsZWxfY29tbWl0LCBrZWVwX2Nvbm5lY3Rpb25zCiBDT05URVhUOiAgU1FMIHN0YXRlbWVu dCAiQUxURVIgU0VSVkVSIGxvb3BiYWNrX25vcHcgT1BUSU9OUyAoQUREIHBhc3N3b3JkICdk dW1teXB3JykiCiBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDMg YXQgRVhFQ1VURQogLS0gSWYgd2UgYWRkIGEgcGFzc3dvcmQgZm9yIG91ciB1c2VyIG1hcHBp bmcgaW5zdGVhZCwgd2Ugc2hvdWxkIGdldCBhIGRpZmZlcmVudApkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL2Fjcm9ueW1zLnNnbWwgYi9kb2Mvc3JjL3NnbWwvYWNyb255bXMuc2dtbApp bmRleCAyZGY2NTU5YWNjLi5iZDFhMDE4NWVkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv YWNyb255bXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYWNyb255bXMuc2dtbApAQCAtNTYs NiArNTYsMTUgQEAgPHRpdGxlPkFjcm9ueW1zPC90aXRsZT4KICAgICA8L2xpc3RpdGVtPgog ICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGFj cm9ueW0+Q0VLPC9hY3JvbnltPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgQ29sdW1uIEVuY3J5cHRpb24gS2V5CisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAg PHRlcm0+PGFjcm9ueW0+Q0lEUjwvYWNyb255bT48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpA QCAtNjcsNiArNzYsMTUgQEAgPHRpdGxlPkFjcm9ueW1zPC90aXRsZT4KICAgICA8L2xpc3Rp dGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRl cm0+PGFjcm9ueW0+Q01LPC9hY3JvbnltPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgQ29sdW1uIE1hc3RlciBLZXkKKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAg ICA8dGVybT48YWNyb255bT5DUEFOPC9hY3JvbnltPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sCmluZGV4IDAwZjgzM2QyMTAuLjYzOGJlMWM4NTAgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRh bG9ncy5zZ21sCkBAIC0xMDUsNiArMTA1LDIxIEBAIDx0aXRsZT5TeXN0ZW0gQ2F0YWxvZ3M8 L3RpdGxlPgogICAgICAgPGVudHJ5PmNvbGxhdGlvbnMgKGxvY2FsZSBpbmZvcm1hdGlvbik8 L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5r IGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sZW5ja2V5Ij48c3RydWN0bmFtZT5wZ19jb2xlbmNr ZXk8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+Y29sdW1uIGVu Y3J5cHRpb24ga2V5czwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXlkYXRhIj48c3Ry dWN0bmFtZT5wZ19jb2xlbmNrZXlkYXRhPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5Pgor ICAgICAgPGVudHJ5PmNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhPC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRh bG9nLXBnLWNvbG1hc3RlcmtleSI+PHN0cnVjdG5hbWU+cGdfY29sbWFzdGVya2V5PC9zdHJ1 Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5PmNvbHVtbiBtYXN0ZXIga2V5 czwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnk+PGxp bmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb25zdHJhaW50Ij48c3RydWN0bmFtZT5wZ19jb25z dHJhaW50PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgogICAgICAgPGVudHJ5PmNoZWNr IGNvbnN0cmFpbnRzLCB1bmlxdWUgY29uc3RyYWludHMsIHByaW1hcnkga2V5IGNvbnN0cmFp bnRzLCBmb3JlaWduIGtleSBjb25zdHJhaW50czwvZW50cnk+CkBAIC0xMzYwLDYgKzEzNzUs NDAgQEAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT4gQ29s dW1uczwvdGl0bGU+CiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmF0dGNl azwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8 bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGVuY2tleSI+PHN0cnVjdG5hbWU+cGdfY29s ZW5ja2V5PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0Zmll bGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgdGhlIGNvbHVt biBpcyBlbmNyeXB0ZWQsIGEgcmVmZXJlbmNlIHRvIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBr ZXksIGVsc2UgMC4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+YXR0cmVh bHR5cGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVu Y2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdHlwZSI+PHN0cnVjdG5hbWU+cGdfdHlw ZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikK KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElmIHRoZSBjb2x1bW4gaXMg ZW5jcnlwdGVkLCB0aGVuIHRoaXMgY29sdW1uIGluZGljYXRlcyB0aGUgdHlwZSBvZiB0aGUK KyAgICAgICBlbmNyeXB0ZWQgZGF0YSB0aGF0IGlzIHJlcG9ydGVkIHRvIHRoZSBjbGllbnQu ICBGb3IgZW5jcnlwdGVkIGNvbHVtbnMsCisgICAgICAgdGhlIGZpZWxkIDxzdHJ1Y3RmaWVs ZD5hdHR0eXBpZDwvc3RydWN0ZmllbGQ+IGlzIGVpdGhlcgorICAgICAgIDx0eXBlPnBnX2Vu Y3J5cHRlZF9kZXQ8L3R5cGU+IG9yIDx0eXBlPnBnX2VuY3J5cHRlZF9ybmQ8L3R5cGU+LiAg SWYgdGhlCisgICAgICAgY29sdW1uIGlzIG5vdCBlbmNyeXB0ZWQsIHRoZW4gMC4KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+YXR0ZW5jYWxnPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50MTY8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBJZiB0aGUgY29sdW1uIGlzIGVuY3J5cHRlZCwgdGhlIGlkZW50aWZpZXIgb2YgdGhlIGVu Y3J5cHRpb24gYWxnb3JpdGhtOworICAgICAgIHNlZSA8eHJlZiBsaW5rZW5kPSJwcm90b2Nv bC1jZWsiLz4gZm9yIHBvc3NpYmxlIHZhbHVlcy4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAg PHN0cnVjdGZpZWxkPmF0dGluaGNvdW50PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlw ZT4KQEAgLTI0NTYsNiArMjUwNSwyMzIgQEAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGxh dGlvbjwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CiAgIDwvcGFyYT4KICA8L3NlY3Qx PgogCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLWNvbGVuY2tleSI+CisgIDx0aXRsZT48c3Ry dWN0bmFtZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0 ZXJtIHpvbmU9ImNhdGFsb2ctcGctY29sZW5ja2V5Ij4KKyAgIDxwcmltYXJ5PnBnX2NvbGVu Y2tleTwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0 YWxvZyA8c3RydWN0bmFtZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5hbWU+IGNvbnRhaW5zIGlu Zm9ybWF0aW9uCisgICBhYm91dCB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5cyBpbiB0aGUg ZGF0YWJhc2UuICBUaGUgYWN0dWFsIGtleSBtYXRlcmlhbAorICAgb2YgdGhlIGNvbHVtbiBl bmNyeXB0aW9uIGtleXMgaXMgaW4gdGhlIGNhdGFsb2cgPGxpbmsKKyAgIGxpbmtlbmQ9ImNh dGFsb2ctcGctY29sZW5ja2V5ZGF0YSI+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5ZGF0YTwv c3RydWN0bmFtZT48L2xpbms+LgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxl PjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+ CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+ IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNl a25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgQ29sdW1uIGVuY3J5cHRpb24ga2V5IG5hbWUKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2Vrb3duZXI8L3N0cnVjdGZpZWxkPiA8 dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0 YWxvZy1wZy1hdXRoaWQiPjxzdHJ1Y3RuYW1lPnBnX2F1dGhpZDwvc3RydWN0bmFtZT48L2xp bms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIE93bmVyIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAg PC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKworIDxzZWN0MSBpZD0iY2F0YWxv Zy1wZy1jb2xlbmNrZXlkYXRhIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tl eWRhdGE8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFs b2ctcGctY29sZW5ja2V5ZGF0YSI+CisgICA8cHJpbWFyeT5wZ19jb2xlbmNrZXlkYXRhPC9w cmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxz dHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0cnVjdG5hbWU+IGNvbnRhaW5zIHRoZSBr ZXkKKyAgIG1hdGVyaWFsIG9mIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMuICBFYWNoIGNvbHVt biBlbmNyeXB0aW9uIGtleSBvYmplY3QgY2FuCisgICBjb250YWluIHNldmVyYWwgdmVyc2lv bnMgb2YgdGhlIGtleSBtYXRlcmlhbCwgZWFjaCBlbmNyeXB0ZWQgd2l0aCBhCisgICBkaWZm ZXJlbnQgY29sdW1uIG1hc3RlciBrZXkuICBUaGF0IGFsbG93cyB0aGUgZ3JhZHVhbCByb3Rh dGlvbiBvZiB0aGUKKyAgIGNvbHVtbiBtYXN0ZXIga2V5cy4gIFRodXMsIDxsaXRlcmFsPihj a2RjZWtpZCwgY2tkY21raWQpPC9saXRlcmFsPiBpcyBhCisgICB1bmlxdWUga2V5IG9mIHRo aXMgdGFibGUuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSBrZXkgbWF0ZXJpYWwg b2YgY29sdW1uIGVuY3J5cHRpb24ga2V5cyBzaG91bGQgbmV2ZXIgYmUgZGVjcnlwdGVkIGlu c2lkZQorICAgdGhlIGRhdGFiYXNlIGluc3RhbmNlLiAgSXQgaXMgbWVhbnQgdG8gYmUgc2Vu dCBhcy1pcyB0byB0aGUgY2xpZW50LCB3aGVyZQorICAgaXQgaXMgZGVjcnlwdGVkIHVzaW5n IHRoZSBhc3NvY2lhdGVkIGNvbHVtbiBtYXN0ZXIga2V5LCBhbmQgdGhlbiB1c2VkIHRvCisg ICBlbmNyeXB0IG9yIGRlY3J5cHQgY29sdW1uIHZhbHVlcy4KKyAgPC9wYXJhPgorCisgIDx0 YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xlbmNrZXlkYXRhPC9zdHJ1Y3Ru YW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFk PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRi b2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50aWZpZXIKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+Y2tkY2VraWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xl bmNrZXkiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3RydWN0bmFtZT48L2xpbms+Ljxz dHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIFRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgdGhpcyBlbnRyeSBiZWxv bmdzIHRvCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNrZGNta2lkPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5r IGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sbWFzdGVya2V5Ij48c3RydWN0bmFtZT5wZ19jb2xt YXN0ZXJrZXk8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3Rm aWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgY29sdW1u IG1hc3RlciBrZXkgdGhhdCB0aGUga2V5IG1hdGVyaWFsIGlzIGVuY3J5cHRlZCB3aXRoCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNrZGNta2FsZzwvc3RydWN0Zmll bGQ+IDx0eXBlPmludDE2PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgVGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtIHVzZWQgZm9yIGVuY3J5cHRpbmcgdGhl IGtleSBtYXRlcmlhbDsgc2VlCisgICAgICAgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtY21r Ii8+IGZvciBwb3NzaWJsZSB2YWx1ZXMuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPmNrZGVuY3ZhbDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJ5dGVhPC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGtleSBtYXRlcmlhbCBvZiB0 aGlzIGNvbHVtbiBlbmNyeXB0aW9uIGtleSwgZW5jcnlwdGVkIHVzaW5nIHRoZQorICAgICAg IHJlZmVyZW5jZWQgY29sdW1uIG1hc3RlciBrZXkKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+Cisg PC9zZWN0MT4KKworIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1jb2xtYXN0ZXJrZXkiPgorICA8 dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sbWFzdGVya2V5PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+ CisKKyAgPGluZGV4dGVybSB6b25lPSJjYXRhbG9nLXBnLWNvbG1hc3RlcmtleSI+CisgICA8 cHJpbWFyeT5wZ19jb2xtYXN0ZXJrZXk8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisg IDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVjdG5hbWU+cGdfY29sbWFzdGVya2V5PC9z dHJ1Y3RuYW1lPiBjb250YWlucyBpbmZvcm1hdGlvbgorICAgYWJvdXQgY29sdW1uIG1hc3Rl ciBrZXlzLiAgVGhlIGtleXMgdGhlbXNlbHZlcyBhcmUgbm90IHN0b3JlZCBpbiB0aGUKKyAg IGRhdGFiYXNlLiAgVGhlIGNhdGFsb2cgZW50cnkgb25seSBjb250YWlucyBpbmZvcm1hdGlv biB0aGF0IGlzIHVzZWQgYnkKKyAgIGNsaWVudHMgdG8gbG9jYXRlIHRoZSBrZXlzLCBmb3Ig ZXhhbXBsZSBpbiBhIGZpbGUgb3IgaW4gYSBrZXkgbWFuYWdlbWVudAorICAgc3lzdGVtLgor ICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbG1h c3RlcmtleTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9 IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERl c2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90 aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4K KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNta25hbWU8L3N0cnVjdGZpZWxk PiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgQ29sdW1uIG1hc3RlciBrZXkgbmFtZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5jbWtvd25lcjwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAg ICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVj dG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwv c3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT3du ZXIgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPmNta3JlYWxtPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEEgPHF1b3RlPnJlYWxtPC9xdW90 ZT4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sdW1uIG1hc3RlciBrZXkuICBUaGlzIGlzCisg ICAgICAgYSBmcmVlbHkgY2hvc2VuIHN0cmluZyB0aGF0IGlzIHVzZWQgYnkgY2xpZW50cyB0 byBkZXRlcm1pbmUgaG93IHRvIGxvb2sKKyAgICAgICB1cCB0aGUga2V5LiAgQSB0eXBpY2Fs IGNvbmZpZ3VyYXRpb24gd291bGQgcHV0IGFsbCBDTUtzIHRoYXQgYXJlIGxvb2tlZAorICAg ICAgIHVwIGluIHRoZSBzYW1lIHdheSBpbnRvIHRoZSBzYW1lIHJlYWxtLgorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4K KyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLWNvbnN0 cmFpbnQiPgogICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29uc3RyYWludDwvc3RydWN0bmFt ZT48L3RpdGxlPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21sCmluZGV4IDAyNThiMTkyZTAuLjA1Mjg2ZGQz ZTUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9kYXRhdHlwZS5zZ21sCkBAIC01MzQ2LDQgKzUzNDYsNTEgQEAgPHRpdGxlPlBz ZXVkby1UeXBlczwvdGl0bGU+CiAKICAgPC9zZWN0MT4KIAorICA8c2VjdDEgaWQ9ImRhdGF0 eXBlLWVuY3J5cHRlZCI+CisgICA8dGl0bGU+VHlwZXMgUmVsYXRlZCB0byBFbmNyeXB0aW9u PC90aXRsZT4KKworICAgPHBhcmE+CisgICAgQW4gZW5jcnlwdGVkIGNvbHVtbiB2YWx1ZSAo c2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1jb2x1bW4tZW5jcnlwdGlvbiIvPikgaXMKKyAgICBp bnRlcm5hbGx5IHN0b3JlZCB1c2luZyB0aGUgdHlwZXMKKyAgICA8dHlwZT5wZ19lbmNyeXB0 ZWRfcm5kPC90eXBlPiAoZm9yIHJhbmRvbWl6ZWQgZW5jcnlwdGlvbikgb3IKKyAgICA8dHlw ZT5wZ19lbmNyeXB0ZWRfZGV0PC90eXBlPiAoZm9yIGRldGVybWluaXN0aWMgZW5jcnlwdGlv bik7IHNlZSA8eHJlZgorICAgIGxpbmtlbmQ9ImRhdGF0eXBlLWVuY3J5cHRlZC10YWJsZSIv Pi4gIE1vc3Qgb2YgdGhlIGRhdGFiYXNlIHN5c3RlbSB0cmVhdHMKKyAgICB0aGlzIGFzIG5v cm1hbCB0eXBlcy4gIEZvciBleGFtcGxlLCB0aGUgdHlwZSA8dHlwZT5wZ19lbmNyeXB0ZWRf ZGV0PC90eXBlPiBoYXMKKyAgICBhbiBlcXVhbHMgb3BlcmF0b3IgdGhhdCBhbGxvd3MgbG9v a3VwIG9mIGVuY3J5cHRlZCB2YWx1ZXMuICBUaGUgZXh0ZXJuYWwKKyAgICByZXByZXNlbnRh dGlvbiBvZiB0aGVzZSB0eXBlcyBpcyB0aGUgc2FtZSBhcyB0aGUgPHR5cGU+Ynl0ZWE8L3R5 cGU+IHR5cGUuCisgICAgVGh1cywgY2xpZW50cyB0aGF0IGRvbid0IHN1cHBvcnQgdHJhbnNw YXJlbnQgY29sdW1uIGVuY3J5cHRpb24gb3IgaGF2ZQorICAgIGRpc2FibGVkIGl0IHdpbGwg c2VlIHRoZSBlbmNyeXB0ZWQgdmFsdWVzIGFzIGJ5dGUgYXJyYXlzLiAgQ2xpZW50cyB0aGF0 CisgICAgc3VwcG9ydCB0cmFuc3BhcmVudCBkYXRhIGVuY3J5cHRpb24gd2lsbCBub3Qgc2Vl IHRoZXNlIHR5cGVzIGluIHJlc3VsdAorICAgIHNldHMsIGFzIHRoZSBwcm90b2NvbCBsYXll ciB3aWxsIHRyYW5zbGF0ZSB0aGVtIGJhY2sgdG8gZGVjbGFyZWQKKyAgICB1bmRlcmx5aW5n IHR5cGUgaW4gdGhlIHRhYmxlIGRlZmluaXRpb24uCisgICA8L3BhcmE+CisKKyAgICA8dGFi bGUgaWQ9ImRhdGF0eXBlLWVuY3J5cHRlZC10YWJsZSI+CisgICAgIDx0aXRsZT5UeXBlcyBS ZWxhdGVkIHRvIEVuY3J5cHRpb248L3RpdGxlPgorICAgICA8dGdyb3VwIGNvbHM9IjMiPgor ICAgICAgPGNvbHNwZWMgY29sbmFtZT0iY29sMSIgY29sd2lkdGg9IjEqIi8+CisgICAgICA8 Y29sc3BlYyBjb2xuYW1lPSJjb2wyIiBjb2x3aWR0aD0iMyoiLz4KKyAgICAgIDxjb2xzcGVj IGNvbG5hbWU9ImNvbDMiIGNvbHdpZHRoPSIyKiIvPgorICAgICAgPHRoZWFkPgorICAgICAg IDxyb3c+CisgICAgICAgIDxlbnRyeT5OYW1lPC9lbnRyeT4KKyAgICAgICAgPGVudHJ5PlN0 b3JhZ2UgU2l6ZTwvZW50cnk+CisgICAgICAgIDxlbnRyeT5EZXNjcmlwdGlvbjwvZW50cnk+ CisgICAgICAgPC9yb3c+CisgICAgICA8L3RoZWFkPgorICAgICAgPHRib2R5PgorICAgICAg IDxyb3c+CisgICAgICAgIDxlbnRyeT48dHlwZT5wZ19lbmNyeXB0ZWRfZGV0PC90eXBlPjwv ZW50cnk+CisgICAgICAgIDxlbnRyeT4xIG9yIDQgYnl0ZXMgcGx1cyB0aGUgYWN0dWFsIGJp bmFyeSBzdHJpbmc8L2VudHJ5PgorICAgICAgICA8ZW50cnk+ZW5jcnlwdGVkIGNvbHVtbiB2 YWx1ZSwgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uPC9lbnRyeT4KKyAgICAgICA8L3Jvdz4K KyAgICAgICA8cm93PgorICAgICAgICA8ZW50cnk+PHR5cGU+cGdfZW5jcnlwdGVkX3JuZDwv dHlwZT48L2VudHJ5PgorICAgICAgICA8ZW50cnk+MSBvciA0IGJ5dGVzIHBsdXMgdGhlIGFj dHVhbCBiaW5hcnkgc3RyaW5nPC9lbnRyeT4KKyAgICAgICAgPGVudHJ5PmVuY3J5cHRlZCBj b2x1bW4gdmFsdWUsIHJhbmRvbWl6ZWQgZW5jcnlwdGlvbjwvZW50cnk+CisgICAgICAgPC9y b3c+CisgICAgICA8L3Rib2R5PgorICAgICA8L3Rncm91cD4KKyAgICA8L3RhYmxlPgorICA8 L3NlY3QxPgogIDwvY2hhcHRlcj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dt bCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCAwM2MwMTkzNzA5Li44Y2Y2OWZlMTBm IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2RkbC5zZ21sCkBAIC0xMjExLDYgKzEyMTEsMzg1IEBAIDx0aXRsZT5FeGNsdXNpb24gQ29u c3RyYWludHM8L3RpdGxlPgogICA8L3NlY3QyPgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9 ImRkbC1jb2x1bW4tZW5jcnlwdGlvbiI+CisgIDx0aXRsZT5UcmFuc3BhcmVudCBDb2x1bW4g RW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBXaXRoIDxmaXJzdHRlcm0+dHJh bnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb248L2ZpcnN0dGVybT4sIGNvbHVtbnMgY2FuIGJl CisgICBzdG9yZWQgZW5jcnlwdGVkIGluIHRoZSBkYXRhYmFzZS4gIFRoZSBlbmNyeXB0aW9u IGFuZCBkZWNyeXB0aW9uIGhhcHBlbnMgb24KKyAgIHRoZSBjbGllbnQsIHNvIHRoYXQgdGhl IHBsYWludGV4dCB2YWx1ZSBpcyBuZXZlciBzZWVuIGluIHRoZSBkYXRhYmFzZQorICAgaW5z dGFuY2Ugb3Igb24gdGhlIHNlcnZlciBob3N0aW5nIHRoZSBkYXRhYmFzZS4gIFRoZSBkcmF3 YmFjayBpcyB0aGF0IG1vc3QKKyAgIG9wZXJhdGlvbnMsIHN1Y2ggYXMgZnVuY3Rpb24gY2Fs bHMgb3Igc29ydGluZywgYXJlIG5vdCBwb3NzaWJsZSBvbgorICAgZW5jcnlwdGVkIHZhbHVl cy4KKyAgPC9wYXJhPgorCisgIDxzZWN0Mj4KKyAgIDx0aXRsZT5Vc2luZyBUcmFuc3BhcmVu dCBDb2x1bW4gRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUcmFucGFyZW50 IGNvbHVtbiBlbmNyeXB0aW9uIHVzZXMgdHdvIGxldmVscyBvZiBjcnlwdG9ncmFwaGljIGtl eXMuICBUaGUKKyAgIGFjdHVhbCBjb2x1bW4gdmFsdWUgaXMgZW5jcnlwdGVkIHVzaW5nIGEg c3ltbWV0cmljIGFsZ29yaXRobSwgc3VjaCBhcyBBRVMsCisgICB1c2luZyBhIDxmaXJzdHRl cm0+Y29sdW1uIGVuY3J5cHRpb24ga2V5PC9maXJzdHRlcm0+CisgICAoPGFjcm9ueW0+Q0VL PC9hY3JvbnltPikuICBUaGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IGlzIGluIHR1cm4gZW5j cnlwdGVkCisgICB1c2luZyBhbiBhc3N5bW1ldHJpYyBhbGdvcml0aG0sIHN1Y2ggYXMgUlNB LCB1c2luZyBhIDxmaXJzdHRlcm0+Y29sdW1uCisgICBtYXN0ZXIga2V5PC9maXJzdHRlcm0+ ICg8YWNyb255bT5DTUs8L2Fjcm9ueW0+KS4gIFRoZSBlbmNyeXB0ZWQgQ0VLIGlzCisgICBz dG9yZWQgaW4gdGhlIGRhdGFiYXNlIHN5c3RlbS4gIFRoZSBDTUsgaXMgbm90IHN0b3JlZCBp biB0aGUgZGF0YWJhc2UKKyAgIHN5c3RlbTsgaXQgaXMgc3RvcmVkIG9uIHRoZSBjbGllbnQg b3Igc29tZXdoZXJlIHdoZXJlIHRoZSBjbGllbnQgY2FuIGFjY2VzcworICAgaXQsIHN1Y2gg YXMgaW4gYSBsb2NhbCBmaWxlIG9yIGluIGEga2V5IG1hbmFnZW1lbnQgc3lzdGVtLiAgVGhl IGRhdGFiYXNlCisgICBzeXN0ZW0gb25seSByZWNvcmRzIHdoZXJlIHRoZSBDTUsgaXMgc3Rv cmVkIGFuZCBwcm92aWRlcyB0aGlzIGluZm9ybWF0aW9uCisgICB0byB0aGUgY2xpZW50LiAg V2hlbiByb3dzIGNvbnRhaW5pbmcgZW5jcnlwdGVkIGNvbHVtbnMgYXJlIHNlbnQgdG8gdGhl CisgICBjbGllbnQsIHRoZSBzZXJ2ZXIgZmlyc3Qgc2VuZHMgYW55IG5lY2Vzc2FyeSBDTUsg aW5mb3JtYXRpb24sIGZvbGxvd2VkIGJ5CisgICBhbnkgcmVxdWlyZWQgQ0VLLiAgVGhlIGNs aWVudCB0aGVuIGxvb2tzIHVwIHRoZSBDTUsgYW5kIHVzZXMgdGhhdCB0bworICAgZGVjcnlw dCB0aGUgQ0VLLiAgVGhlbiBpdCBkZWNyeXB0cyBpbmNvbWluZyByb3cgZGF0YSB1c2luZyB0 aGUgQ0VLIGFuZAorICAgcHJvdmlkZXMgdGhlIGRlY3J5cHRlZCByb3cgZGF0YSB0byB0aGUg YXBwbGljYXRpb24uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEhlcmUgaXMgYW4gZXhh bXBsZSBkZWNsYXJpbmcgYSBjb2x1bW4gYXMgZW5jcnlwdGVkOgorPHByb2dyYW1saXN0aW5n PgorQ1JFQVRFIFRBQkxFIGN1c3RvbWVycyAoCisgICAgaWQgaW50IFBSSU1BUlkgS0VZLAor ICAgIG5hbWUgdGV4dCBOT1QgTlVMTCwKKyAgICAuLi4KKyAgICBjcmVkaXRjYXJkX251bSB0 ZXh0IDxlbXBoYXNpcz5FTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0g Y2VrMSk8L2VtcGhhc2lzPgorKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwor ICA8cGFyYT4KKyAgIENvbHVtbiBlbmNyeXB0aW9uIHN1cHBvcnRzIDxmaXJzdHRlcm0+cmFu ZG9taXplZDwvZmlyc3R0ZXJtPgorICAgKGFsc28ga25vd24gYXMgPGZpcnN0dGVybT5wcm9i YWJpbGlzdGljPC9maXJzdHRlcm0+KSBhbmQKKyAgIDxmaXJzdHRlcm0+ZGV0ZXJtaW5pc3Rp YzwvZmlyc3R0ZXJtPiBlbmNyeXB0aW9uLiAgVGhlIGFib3ZlIGV4YW1wbGUgdXNlcworICAg cmFuZG9taXplZCBlbmNyeXB0aW9uLCB3aGljaCBpcyB0aGUgZGVmYXVsdC4gIFJhbmRvbWl6 ZWQgZW5jcnlwdGlvbiB1c2VzIGEKKyAgIHJhbmRvbSBpbml0aWFsaXphdGlvbiB2ZWN0b3Ig Zm9yIGVhY2ggZW5jcnlwdGlvbiwgc28gdGhhdCBldmVuIGlmIHRoZQorICAgcGxhaW50ZXh0 IG9mIHR3byByb3dzIGlzIGVxdWFsLCB0aGUgZW5jcnlwdGVkIHZhbHVlcyB3aWxsIGJlIGRp ZmZlcmVudC4KKyAgIFRoaXMgcHJldmVudHMgc29tZW9uZSB3aXRoIGRpcmVjdCBhY2Nlc3Mg dG8gdGhlIGRhdGFiYXNlIHNlcnZlciB0byBtYWtlCisgICBjb21wdXRhdGlvbnMgc3VjaCBh cyBkaXN0aW5jdCBjb3VudHMgb24gdGhlIGVuY3J5cHRlZCB2YWx1ZXMuCisgICBEZXRlcm1p bmlzdGljIGVuY3J5cHRpb24gdXNlcyBhIGZpeGVkIGluaXRpYWxpemF0aW9uIHZlY3Rvci4g IFRoaXMgcmVkdWNlcworICAgc2VjdXJpdHksIGJ1dCBpdCBhbGxvd3MgZXF1YWxpdHkgc2Vh cmNoZXMgb24gZW5jcnlwdGVkIHZhbHVlcy4gIFRoZQorICAgZm9sbG93aW5nIGV4YW1wbGUg ZGVjbGFyZXMgYSBjb2x1bW4gd2l0aCBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb246Cis8cHJv Z3JhbWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgZW1wbG95ZWVzICgKKyAgICBpZCBpbnQgUFJJ TUFSWSBLRVksCisgICAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorICAgIC4uLgorICAgIHNzbiB0 ZXh0IEVOQ1JZUFRFRCBXSVRIICgKKyAgICAgICAgY29sdW1uX2VuY3J5cHRpb25fa2V5ID0g Y2VrMSwgPGVtcGhhc2lzPmVuY3J5cHRpb25fdHlwZSA9IGRldGVybWluaXN0aWM8L2VtcGhh c2lzPikKKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+Cisg ICBOdWxsIHZhbHVlcyBhcmUgbm90IGVuY3J5cHRlZCBieSB0cmFuc3BhcmVudCBjb2x1bW4g ZW5jcnlwdGlvbjsgbnVsbCB2YWx1ZXMKKyAgIHNlbnQgYnkgdGhlIGNsaWVudCBhcmUgdmlz aWJsZSBhcyBudWxsIHZhbHVlcyBpbiB0aGUgZGF0YWJhc2UuICBJZiB0aGUgZmFjdAorICAg dGhhdCBhIHZhbHVlIGlzIG51bGwgbmVlZHMgdG8gYmUgaGlkZGVuIGZyb20gdGhlIHNlcnZl ciwgdGhpcyBpbmZvcm1hdGlvbgorICAgbmVlZHMgdG8gYmUgZW5jb2RlZCBpbnRvIGEgbm9u bnVsbCB2YWx1ZSBpbiB0aGUgY2xpZW50IHNvbWVob3cuCisgIDwvcGFyYT4KKyAgPC9zZWN0 Mj4KKworICA8c2VjdDI+CisgICA8dGl0bGU+UmVhZGluZyBhbmQgV3JpdGluZyBFbmNyeXB0 ZWQgQ29sdW1uczwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIFJlYWRpbmcgYW5kIHdyaXRp bmcgZW5jcnlwdGVkIGNvbHVtbnMgaXMgbWVhbnQgdG8gYmUgaGFuZGxlZCBhdXRvbWF0aWNh bGx5CisgICAgYnkgdGhlIGNsaWVudCBsaWJyYXJ5L2RyaXZlciBhbmQgc2hvdWxkIGJlIG1v c3RseSB0cmFuc3BhcmVudCB0byB0aGUKKyAgICBhcHBsaWNhdGlvbiBjb2RlLCBpZiBjZXJ0 YWluIHByZXJlcXVpc2l0ZXMgYXJlIGZ1bGZpbGxlZDoKKworICAgIDxpdGVtaXplZGxpc3Q+ CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBjbGllbnQgbGli cmFyeSBuZWVkcyB0byBzdXBwb3J0IHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uLiAg Tm90CisgICAgICAgYWxsIGNsaWVudCBsaWJyYXJpZXMgZG8uICBGdXJ0aGVybW9yZSwgdGhl IGNsaWVudCBsaWJyYXJ5IG1pZ2h0IHJlcXVpcmUKKyAgICAgICB0aGF0IHRyYW5zcGFyZW50 IGNvbHVtbiBlbmNyeXB0aW9uIGlzIGV4cGxpY2l0bHkgZW5hYmxlZCBhdCBjb25uZWN0aW9u CisgICAgICAgdGltZS4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgY2xpZW50IGxp YnJhcnkgZm9yIGRldGFpbHMuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisK KyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgQ29sdW1uIG1hc3RlciBr ZXlzIGFuZCBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIGhhdmUgYmVlbiBzZXQgdXAsIGFuZCB0 aGUKKyAgICAgICBjbGllbnQgbGlicmFyeSBoYXMgYmVlbiBjb25maWd1cmVkIHRvIGJlIGFi bGUgdG8gbG9vayB1cCBjb2x1bW4gbWFzdGVyCisgICAgICAga2V5cyBmcm9tIHRoZSBrZXkg c3RvcmUgb3Iga2V5IG1hbmFnZW1lbnQgc3lzdGVtLgorICAgICAgPC9wYXJhPgorICAgICA8 L2xpc3RpdGVtPgorICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgPC9wYXJhPgorCisgICA8cGFy YT4KKyAgICBSZWFkaW5nIGZyb20gZW5jcnlwdGVkIGNvbHVtbnMgd2lsbCB0aGVuIHdvcmsg YXV0b21hdGljYWxseS4gIEZvciBleGFtcGxlLAorICAgIHVzaW5nIHRoZSBhYm92ZSBleGFt cGxlLAorPHByb2dyYW1saXN0aW5nPgorU0VMRUNUIHNzbiBGUk9NIGVtcGxveWVlcyBXSEVS RSBpZCA9IDU7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgIHdpbGwgcmV0dXJuIHRoZSB1bmVu Y3J5cHRlZCB2YWx1ZSBmb3IgdGhlIDxsaXRlcmFsPnNzbjwvbGl0ZXJhbD4gY29sdW1uIGlu CisgICAgYW55IHJvd3MgZm91bmQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFdy aXRpbmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMgcmVxdWlyZXMgdGhhdCB0aGUgZXh0ZW5kZWQg cXVlcnkgcHJvdG9jb2wKKyAgICAocHJvdG9jb2wtbGV2ZWwgcHJlcGFyZWQgc3RhdGVtZW50 cykgYmUgdXNlZCwgc28gdGhhdCB0aGUgdmFsdWVzIHRvIGJlCisgICAgZW5jcnlwdGVkIGFy ZSBzdXBwbGllZCBzZXBhcmF0ZWx5IGZyb20gdGhlIFNRTCBjb21tYW5kLiAgRm9yIGV4YW1w bGUsCisgICAgdXNpbmcsIHNheSwgcHNxbCBvciBsaWJwcSwgdGhlIGZvbGxvd2luZyB3b3Vs ZCBub3Qgd29yazoKKzxwcm9ncmFtbGlzdGluZz4KKy0tIFdST05HIQorSU5TRVJUIElOVE8g c3NuIChpZCwgbmFtZSwgc3NuKSBWQUxVRVMgKDEsICdTb21lb25lJywgJzEyMzQ1Jyk7Cis8 L3Byb2dyYW1saXN0aW5nPgorICAgIFRoaXMgd2lsbCBsZWFrIHRoZSB1bmVuY3J5cHRlZCB2 YWx1ZSA8bGl0ZXJhbD4xMjM0NTwvbGl0ZXJhbD4gdG8gdGhlCisgICAgc2VydmVyLCB0aHVz IGRlZmVhdGluZyB0aGUgcG9pbnQgb2YgY29sdW1uIGVuY3J5cHRpb24uCisgICAgTm90ZSB0 aGF0IHVzaW5nIHNlcnZlci1zaWRlIHByZXBhcmVkIHN0YXRlbWVudHMgdXNpbmcgdGhlIFNR TCBjb21tYW5kcworICAgIDxjb21tYW5kPlBSRVBBUkU8L2NvbW1hbmQ+IGFuZCA8Y29tbWFu ZD5FWEVDVVRFPC9jb21tYW5kPiBpcyBlcXVhbGx5CisgICAgaW5jb3JyZWN0LCBzaW5jZSB0 aGF0IHdvdWxkIGFsc28gbGVhayB0aGUgcGFyYW1ldGVycyBwcm92aWRlZCB0bworICAgIDxj b21tYW5kPkVYRUNVVEU8L2NvbW1hbmQ+IHRvIHRoZSBzZXJ2ZXIuCisgICA8L3BhcmE+CisK KyAgIDxwYXJhPgorICAgIFRoZSBjb3JyZWN0IG5vdGlvbmFsIG9yZGVyIG9mIG9wZXJhdGlv bnMgaXMgaWxsdXN0cmF0ZWQgaGVyZSB1c2luZworICAgIGxpYnBxLWxpa2UgY29kZSAod2l0 aG91dCBlcnJvciBjaGVja2luZyk6Cis8cHJvZ3JhbWxpc3Rpbmc+CitQR3Jlc3VsdCAgICp0 bXByZXMsCisgICAgICAgICAgICpyZXM7Citjb25zdCBjaGFyICp2YWx1ZXNbXSA9IHsiMSIs ICJTb21lb25lIiwgIjEyMzQ1In07CisKK1BRcHJlcGFyZShjb25uLCAiIiwgIklOU0VSVCBJ TlRPIHNzbiAoaWQsIG5hbWUsIHNzbikgVkFMVUVTICgkMSwgJDIsICQzKSIsIDMsIE5VTEwp OworCisvKiBUaGlzIGZldGNoZXMgaW5mb3JtYXRpb24gYWJvdXQgd2hpY2ggcGFyYW1ldGVy cyBuZWVkIHRvIGJlIGVuY3J5cHRlZC4gKi8KK3RtcHJlcyA9IFBRZGVzY3JpYmVQcmVwYXJl ZChjb25uLCAiIik7CisKK3JlcyA9IFBRZXhlY1ByZXBhcmVkMihjb25uLCAiIiwgMywgdmFs dWVzLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCB0bXByZXMpOworCisvKiBwcmludCByZXN1bHQg aW4gcmVzICovCis8L3Byb2dyYW1saXN0aW5nPgorICAgIEhpZ2hlci1sZXZlbCBjbGllbnQg bGlicmFyaWVzIG1pZ2h0IHVzZSB0aGUgcHJvdG9jb2wtbGV2ZWwgcHJlcGFyZWQKKyAgICBz dGF0ZW1lbnRzIGF1dG9tYXRpY2FsbHkgYW5kIHRodXMgd29uJ3QgcmVxdWlyZSBhbnkgY29k ZSBjaGFuZ2VzLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICA8YXBwbGljYXRpb24+ cHNxbDwvYXBwbGljYXRpb24+IHByb3ZpZGVzIHRoZSBjb21tYW5kCisgICAgPGxpdGVyYWw+ XGdlbmNyPC9saXRlcmFsPiB0byBydW4gcHJlcGFyZWQgc3RhdGVtZW50cyBsaWtlIHRoaXM6 Cis8cHJvZ3JhbWxpc3Rpbmc+CitJTlNFUlQgSU5UTyBzc24gKGlkLCBuYW1lLCBzc24pIFZB TFVFUyAoJDEsICQyLCAkMykgXGdlbmNyICcxJyAnU29tZW9uZScsICcxMjM0NScKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CisgIDwvc2VjdDI+CisKKyAgPHNlY3QyPgorICAg PHRpdGxlPlNldHRpbmcgdXAgVHJhbnNwYXJlbnQgQ29sdW1uIEVuY3J5cHRpb248L3RpdGxl PgorCisgIDxwYXJhPgorICAgVGhlIHN0ZXBzIHRvIHNldCB1cCB0cmFuc3BhcmVudCBjb2x1 bW4gZW5jcnlwdGlvbiBmb3IgYSBkYXRhYmFzZSBhcmU6CisKKyAgIDxvcmRlcmVkbGlzdD4K KyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ3JlYXRlIHRoZSBrZXkgbWF0 ZXJpYWwgZm9yIHRoZSBDTUssIGZvciBleGFtcGxlLCB1c2luZyBhIGNyeXB0b2dyYXBoaWMK KyAgICAgIGxpYnJhcnkgb3IgdG9vbGtpdCwgb3IgYSBrZXkgbWFuYWdlbWVudCBzeXN0ZW0u ICBTZWN1cmUgYWNjZXNzIHRvIHRoZQorICAgICAga2V5IGFzIGFwcHJvcHJpYXRlLCB1c2lu ZyBhY2Nlc3MgY29udHJvbCwgcGFzc3dvcmRzLCBldGMuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFJlZ2lz dGVyIHRoZSBDTUsgaW4gdGhlIGRhdGFiYXNlIHVzaW5nIHRoZSBTUUwgY29tbWFuZCA8eHJl ZiBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIta2V5Ii8+LgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBDcmVhdGUgdGhlICh1bmVuY3J5cHRlZCkga2V5IG1hdGVyaWFsIGZvciB0aGUgQ0VL IGluIGEgdGVtcG9yYXJ5CisgICAgICBsb2NhdGlvbi4gIChJdCB3aWxsIGJlIGVuY3J5cHRl ZCBpbiB0aGUgbmV4dCBzdGVwLiAgRGVwZW5kaW5nIG9uIHRoZQorICAgICAgYXZhaWxhYmxl IHRvb2xzLCBpdCBtaWdodCBiZSBwb3NzaWJsZSBhbmQgc2Vuc2libGUgdG8gY29tYmluZSB0 aGVzZSB0d28KKyAgICAgIHN0ZXBzLikKKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRW5jcnlwdCB0aGUgY3Jl YXRlZCBDRUsga2V5IG1hdGVyaWFsIHVzaW5nIHRoZSBDTUsgKGNyZWF0ZWQgZWFybGllciku CisgICAgICAoVGhlIHVuZW5jcnlwdGVkIHZlcnNpb24gb2YgdGhlIENFSyBrZXkgbWF0ZXJp YWwgY2FuIG5vdyBiZSBkaXNwb3NlZAorICAgICAgb2YuKQorICAgICA8L3BhcmE+CisgICAg PC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWdp c3RlciB0aGUgQ0VLIGluIHRoZSBkYXRhYmFzZSB1c2luZyB0aGUgU1FMIGNvbW1hbmQgPHhy ZWYKKyAgICAgIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+ LiAgVGhpcyBjb21tYW5kCisgICAgICA8cXVvdGU+dXBsb2FkczwvcXVvdGU+IHRoZSBlbmNy eXB0ZWQgQ0VLIGtleSBtYXRlcmlhbCBjcmVhdGVkIGluIHRoZQorICAgICAgcHJldmlvdXMg c3RlcCB0byB0aGUgZGF0YWJhc2Ugc2VydmVyLiAgVGhlIGxvY2FsIGNvcHkgb2YgdGhlIENF SyBrZXkKKyAgICAgIG1hdGVyaWFsIGNhbiB0aGVuIGJlIHJlbW92ZWQuCisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIENyZWF0ZSBlbmNyeXB0ZWQgY29sdW1ucyB1c2luZyB0aGUgY3JlYXRlZCBDRUsuCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8 cGFyYT4KKyAgICAgIENvbmZpZ3VyZSB0aGUgY2xpZW50IGxpYnJhcnkvZHJpdmVyIHRvIGJl IGFibGUgdG8gbG9vayB1cCB0aGUgQ01LCisgICAgICBjcmVhdGVkIGVhcmxpZXIuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC9vcmRlcmVkbGlzdD4KKworICAgT25j ZSB0aGlzIGlzIGRvbmUsIHZhbHVlcyBjYW4gYmUgd3JpdHRlbiB0byBhbmQgcmVhZCBmcm9t IHRoZSBlbmNyeXB0ZWQKKyAgIGNvbHVtbnMgaW4gYSB0cmFuc3BhcmVudCB3YXkuCisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIE5vdGUgdGhhdCB0aGVzZSBzdGVwcyBzaG91bGQgbm90 IGJlIHJ1biBvbiB0aGUgZGF0YWJhc2Ugc2VydmVyLCBidXQgb24gc29tZQorICAgY2xpZW50 IG1hY2hpbmUuICBOZWl0aGVyIHRoZSBDTUsgbm9yIHRoZSB1bmVuY3J5cHRlZCBDRUsgc2hv dWxkIGV2ZXIgYXBwZWFyCisgICBvbiB0aGUgZGF0YWJhc2Ugc2VydmVyIGhvc3QuCisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSBzcGVjaWZpYyBkZXRhaWxzIG9mIHRoaXMgc2V0 dXAgZGVwZW5kIG9uIHRoZSBkZXNpcmVkIENNSyBzdG9yYWdlCisgICBtZWNoYW5pc20va2V5 IG1hbmFnZW1lbnQgc3lzdGVtIGFzIHdlbGwgYXMgdGhlIGNsaWVudCBsaWJyYXJpZXMgdG8g YmUgdXNlZC4KKyAgIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSB1c2VzIHRoZSA8Y29tbWFuZD5v cGVuc3NsPC9jb21tYW5kPiBjb21tYW5kLWxpbmUgdG9vbAorICAgdG8gc2V0IHVwIHRoZSBr ZXlzLgorCisgICA8b3JkZXJlZGxpc3Q+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIENyZWF0ZSB0aGUga2V5IG1hdGVyaWFsIGZvciB0aGUgQ01LIGFuZCB3cml0ZSBp dCB0byBhIGZpbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitvcGVuc3NsIGdlbnBrZXkgLWFsZ29y aXRobSByc2EgLW91dCBjbWsxLnBlbQorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAg ICAgUmVnaXN0ZXIgdGhlIENNSyBpbiB0aGUgZGF0YWJhc2U6Cis8cHJvZ3JhbWxpc3Rpbmc+ Citwc3FsIC4uLiAtYyAiQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazEgV0lUSCAocmVh bG0gPSAnJykiCis8L3Byb2dyYW1saXN0aW5nPgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDcmVhdGUgdGhl IHVuZW5jcnlwdGVkIENFSyBrZXkgbWF0ZXJpYWwgaW4gYSBmaWxlOgorPHByb2dyYW1saXN0 aW5nPgorb3BlbnNzbCByYW5kIC1vdXQgY2VrMS5iaW4gMzIKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgICAgICAoU2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNlay10YWJsZSIvPiBmb3Ig cmVxdWlyZWQga2V5IGxlbmd0aHMuKQorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBFbmNyeXB0IHRoZSBjcmVh dGVkIENFSyBrZXkgbWF0ZXJpYWw6Cis8cHJvZ3JhbWxpc3Rpbmc+CitvcGVuc3NsIHBrZXl1 dGwgLWVuY3J5cHQgLWlua2V5IGNtazEucGVtIC1wa2V5b3B0IHJzYV9wYWRkaW5nX21vZGU6 b2FlcCAtaW4gY2VrMS5iaW4gLW91dCBjZWsxLmJpbi5lbmMKK3JtIGNlazEuYmluCis8L3By b2dyYW1saXN0aW5nPgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWdpc3RlciB0aGUgQ0VLIGluIHRoZSBk YXRhYmFzZToKKzxwcm9ncmFtbGlzdGluZz4KKyMgY29udmVydCBmaWxlIGNvbnRlbnRzIHRv IGhleCBlbmNvZGluZzsgdGhpcyBpcyBqdXN0IG9uZSBwb3NzaWJsZSB3YXkKK2Nla2VuY2hl eD0kKHBlcmwgLTBuZSAncHJpbnQgdW5wYWNrICJIKiInIGNlazEuYmluLmVuYykKK3BzcWwg Li4uIC1jICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMg KGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwgZW5jcnlwdGVkX3ZhbHVlID0gJ1xceCR7Y2Vr ZW5jaGV4fScpIgorcm0gY2VrMS5iaW4uZW5jCis8L3Byb2dyYW1saXN0aW5nPgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBDcmVhdGUgZW5jcnlwdGVkIGNvbHVtbnMgYXMgc2hvd24gaW4gdGhlIGV4YW1w bGVzIGFib3ZlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDb25maWd1cmUgdGhlIGxpYnBxIGZvciBDTUsg bG9va3VwIChzZWUgYWxzbyA8eHJlZiBsaW5rZW5kPSJsaWJwcS1jb25uZWN0LWNta2xvb2t1 cCIvPik6Cis8cHJvZ3JhbWxpc3Rpbmc+CitQR0NNS0xPT0tVUD0iKj1maWxlOiRQV0QvJWsu cGVtIgorZXhwb3J0IFBHQ01LTE9PS1VQCis8L3Byb2dyYW1saXN0aW5nPgorICAgICA8L3Bh cmE+CisKKyAgICAgPHBhcmE+CisgICAgICBBZGRpdGlvbmFsbHksIGxpYnBxIHJlcXVpcmVz IHRoYXQgdGhlIGNvbm5lY3Rpb24gcGFyYW1ldGVyIDx4cmVmCisgICAgICBsaW5rZW5kPSJs aWJwcS1jb25uZWN0LWNvbHVtbi1lbmNyeXB0aW9uIi8+IGJlIHNldCBpbiBvcmRlciB0byBh Y3RpdmF0ZQorICAgICAgdGhlIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGZ1bmN0 aW9uYWxpdHkuICBUaGlzIHNob3VsZCBiZSBkb25lIGluCisgICAgICB0aGUgY29ubmVjdGlv biBwYXJhbWV0ZXJzIG9mIHRoZSBhcHBsaWNhdGlvbiwgYnV0IGFuIGVudmlyb25tZW50Cisg ICAgICB2YXJpYWJsZSAoPGVudmFyPlBHQ09MVU1ORU5DUllQVElPTjwvZW52YXI+KSBpcyBh bHNvIGF2YWlsYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L29y ZGVyZWRsaXN0PgorICA8L3BhcmE+CisgIDwvc2VjdDI+CisKKyAgPHNlY3QyPgorICAgPHRp dGxlPkd1aWRhbmNlIG9uIFVzaW5nIFRyYW5zcGFyZW50IENvbHVtbiBFbmNyeXB0aW9uPC90 aXRsZT4KKworICAgPHBhcmE+CisgICAgVGhpcyBzZWN0aW9uIGNvbnRhaW5zIHNvbWUgaW5m b3JtYXRpb24gb24gd2hlbiBpdCBpcyBvciBpcyBub3QgYXBwcm9wcmlhdGUKKyAgICB0byB1 c2UgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24sIGFuZCB3aGF0IHByZWNhdXRpb25z IG5lZWQgdG8gYmUKKyAgICB0YWtlbiB0byBtYWludGFpbiBpdHMgc2VjdXJpdHkuCisgICA8 L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEluIGdlbmVyYWwsIGNvbHVtbiBlbmNyeXB0aW9u IGlzIG5ldmVyIGEgcmVwbGFjZW1lbnQgZm9yIGFkZGl0aW9uYWwKKyAgICBzZWN1cml0eSBh bmQgZW5jcnlwdGlvbiB0ZWNobmlxdWVzIHN1Y2ggYXMgdHJhbnNtaXNzaW9uIGVuY3J5cHRp b24KKyAgICAoU1NML1RMUyksIHN0b3JhZ2UgZW5jcnlwdGlvbiwgc3Ryb25nIGFjY2VzcyBj b250cm9sLCBhbmQgcGFzc3dvcmQKKyAgICBzZWN1cml0eS4gIENvbHVtbiBlbmNyeXB0aW9u IG9ubHkgdGFyZ2V0cyBzcGVjaWZpYyB1c2UgY2FzZXMgYW5kIHNob3VsZCBiZQorICAgIHVz ZWQgaW4gY29uanVuY3Rpb24gd2l0aCBhZGRpdGlvbmFsIHNlY3VyaXR5IG1lYXN1cmVzLgor ICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBBIHR5cGljYWwgdXNlIGNhc2UgZm9yIGNv bHVtbiBlbmNyeXB0aW9uIGlzIHRvIGVuY3J5cHQgc3BlY2lmaWMgdmFsdWVzCisgICAgd2l0 aCBhZGRpdGlvbmFsIHNlY3VyaXR5IHJlcXVpcmVtZW50cywgZm9yIGV4YW1wbGUgY3JlZGl0 IGNhcmQgbnVtYmVycy4KKyAgICBUaGlzIHdvdWxkIGFsbG93IHlvdSB0byBzdG9yZSB0aGF0 IHNlY3VyaXR5LXNlbnNpdGl2ZSBkYXRhIHRvZ2V0aGVyIHdpdGgKKyAgICB0aGUgcmVzdCBv ZiB5b3VyIGRhdGEgKHRodXMgZ2V0dGluZyB2YXJpb3VzIGJlbmVmaXRzLCBzdWNoIGFzIHJl ZmVyZW50aWFsCisgICAgaW50ZWdyaXR5LCBjb25zaXN0ZW50IGJhY2t1cHMpLCB3aGlsZSBn aXZpbmcgYWNjZXNzIHRvIHRoYXQgZGF0YSBvbmx5IHRvCisgICAgc3BlY2lmaWMgY2xpZW50 cyBhbmQgcHJldmVudGluZyBhY2NpZGVudGFsIGxlYWthZ2Ugb24gdGhlIHNlcnZlciBzaWRl CisgICAgKHNlcnZlciBsb2dzLCBmaWxlIHN5c3RlbSBiYWNrdXBzLCBldGMuKS4KKyAgIDwv cGFyYT4KKworICAgPHBhcmE+CisgICAgQ29sdW1uIGVuY3J5cHRpb24gY2Fubm90IGhpZGUg dGhlIGV4aXN0ZW5jZSBvciBhYnNlbmNlIG9mIGRhdGEsIGl0IGNhbgorICAgIG9ubHkgZGlz Z3Vpc2UgdGhlIHBhcnRpY3VsYXIgZGF0YSB0aGF0IGlzIGtub3duIHRvIGV4aXN0LiAgRm9y IGV4YW1wbGUsCisgICAgc3RvcmluZyBhIGNsZWFydGV4dCBwZXJzb24gbmFtZSBhbmQgYW4g ZW5jcnlwdGVkIGNyZWRpdCBjYXJkIG51bWJlcgorICAgIGluZGljYXRlcyB0aGF0IHRoZSBw ZXJzb24gaGFzIGEgY3JlZGl0IGNhcmQuICBUaGF0IG1pZ2h0IG5vdCByZXZlYWwgdG9vCisg ICAgbXVjaCBpZiB0aGUgZGF0YWJhc2UgaXMgZm9yIGFuIG9ubGluZSBzdG9yZSBhbmQgdGhl cmUgaXMgb3RoZXIgZGF0YSBuZWFyYnkKKyAgICB0aGF0IHNob3dzIHRoYXQgdGhlIHBlcnNv biBoYXMgcmVjZW50bHkgbWFkZSBwdXJjaGFzZXMuICBCdXQgaW4gYW5vdGhlcgorICAgIGV4 YW1wbGUsIHN0b3JpbmcgYSBjbGVhcnRleHQgcGVyc29uIG5hbWUgYW5kIGFuIGVuY3J5cHRl ZCBkaWFnbm9zaXMgaW4gYQorICAgIG1lZGljYWwgZGF0YWJhc2UgcHJvYmFibHkgaW5kaWNh dGVzIHRoYXQgdGhlIHBlcnNvbiBoYXMgYSBtZWRpY2FsIGlzc3VlLgorICAgIERlcGVuZGlu ZyBvbiB0aGUgY2lyY3Vtc3RhbmNlcywgdGhhdCBtaWdodCBub3QgYnkgaXRzZWxmIGJlIHN1 ZmZpY2llbnQKKyAgICBzZWN1cml0eS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAg RW5jcnlwdGlvbiBjYW5ub3QgY29tcGxldGVseSBoaWRlIHRoZSBsZW5ndGggb2YgdmFsdWVz LiAgVGhlIGVuY3J5cHRpb24KKyAgICBtZXRob2RzIHdpbGwgcGFkIHZhbHVlcyB0byBtdWx0 aXBsZXMgb2YgdGhlIHVuZGVybHlpbmcgY2lwaGVyJ3MgYmxvY2sgc2l6ZQorICAgICh1c3Vh bGx5IDE2IGJ5dGVzKSwgc28gc29tZSBsZW5ndGggZGlmZmVyZW5jZXMgd2lsbCBiZSB1bmlm aWVkIHRoaXMgd2F5LgorICAgIFRoZXJlIGlzIG5vIGNvbmNlcm4gaWYgYWxsIHZhbHVlcyBh cmUgb2YgdGhlIHNhbWUgbGVuZ3RoIChlLmcuLCBjcmVkaXQKKyAgICBjYXJkIG51bWJlcnMp LiAgQnV0IGlmIHRoZXJlIGFyZSBzaWduZmljYW50IGxlbmd0aCBkaWZmZXJlbmNlcyBiZXR3 ZWVuCisgICAgdmFsaWQgdmFsdWVzIGFuZCB0aGF0IGxlbmd0aCBpbmZvcm1hdGlvbiBpcyBz ZWN1cml0eS1zZW5zaXRpdmUsIHRoZW4KKyAgICBhcHBsaWNhdGlvbi1zcGVjaWZpYyB3b3Jr YXJvdW5kcyBzdWNoIGFzIHBhZGRpbmcgd291bGQgbmVlZCB0byBiZSBhcHBsaWVkLgorICAg IEhvdyB0byBkbyB0aGF0IHNlY3VyZWx5IGlzIGJleW9uZCB0aGUgc2NvcGUgb2YgdGhpcyBt YW51YWwuCisgICA8L3BhcmE+CisKKyAgIDxub3RlPgorICAgIDxwYXJhPgorICAgICBTdG9y aW5nIGRhdGEgc3VjaCBjcmVkaXQgY2FyZCBkYXRhLCBtZWRpY2FsIGRhdGEsIGFuZCBzbyBp cyB1c3VhbGx5CisgICAgIHN1YmplY3QgdG8gZ292ZXJubWVudCBvciBpbmR1c3RyeSByZWd1 bGF0aW9ucy4gIFRoaXMgc2VjdGlvbiBpcyBub3QgbWVhbnQKKyAgICAgdG8gcHJvdmlkZSBj b21wbGV0ZSBpbnN0cnVjdGlvbnMgb24gaG93IHRvIGRvIHRoaXMgY29ycmVjdGx5LiAgUGxl YXNlCisgICAgIHNlZWsgYWRkaXRpb25hbCBhZHZpY2Ugd2hlbiBlbmdhZ2luZyBpbiBzdWNo IHByb2plY3RzLgorICAgIDwvcGFyYT4KKyAgIDwvbm90ZT4KKyAgPC9zZWN0Mj4KKyA8L3Nl Y3QxPgorCiAgPHNlY3QxIGlkPSJkZGwtc3lzdGVtLWNvbHVtbnMiPgogICA8dGl0bGU+U3lz dGVtIENvbHVtbnM8L3RpdGxlPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nh cnkuc2dtbCBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCmluZGV4IGQ2ZDBhM2E4MTQu LjEwNTA3ZTQzOTEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCkBAIC0zNTMsNiArMzUzLDI5IEBAIDx0 aXRsZT5HbG9zc2FyeTwvdGl0bGU+CiAgICA8L2dsb3NzZGVmPgogICA8L2dsb3NzZW50cnk+ CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+ CisgICA8Z2xvc3N0ZXJtPkNvbHVtbiBlbmNyeXB0aW9uIGtleTwvZ2xvc3N0ZXJtPgorICAg PGdsb3NzZGVmPgorICAgIDxwYXJhPgorICAgICBBIGNyeXB0b2dyYXBoaWMga2V5IHVzZWQg dG8gZW5jcnlwdCBjb2x1bW4gdmFsdWVzIHdoZW4gdXNpbmcgdHJhbnNwYXJlbnQKKyAgICAg Y29sdW1uIGVuY3J5cHRpb24uICBDb2x1bW4gZW5jcnlwdGlvbiBrZXlzIGFyZSBzdG9yZWQg aW4gdGhlIGRhdGFiYXNlCisgICAgIGVuY3J5cHRlZCBieSBhbm90aGVyIGtleSwgdGhlIGNv bHVtbiBtYXN0ZXIga2V5LgorICAgIDwvcGFyYT4KKyAgIDwvZ2xvc3NkZWY+CisgIDwvZ2xv c3NlbnRyeT4KKworICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3NhcnktY29sdW1uLW1hc3Rlci1r ZXkiPgorICAgPGdsb3NzdGVybT5Db2x1bW4gbWFzdGVyIGtleTwvZ2xvc3N0ZXJtPgorICAg PGdsb3NzZGVmPgorICAgIDxwYXJhPgorICAgICBBIGNyeXB0b2dyYXBoaWMga2V5IHVzZWQg dG8gZW5jcnlwdCBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzLiAgKFNvIHRoZQorICAgICBjb2x1 bW4gbWFzdGVyIGtleSBpcyBhIDxmaXJzdHRlcm0+a2V5IGVuY3J5cHRpb24ga2V5PC9maXJz dHRlcm0+LikKKyAgICAgQ29sdW1uIG1hc3RlciBrZXlzIGFyZSBzdG9yZWQgb3V0c2lkZSB0 aGUgZGF0YWJhc2Ugc3lzdGVtLCBmb3IgZXhhbXBsZSBpbgorICAgICBhIGtleSBtYW5hZ2Vt ZW50IHN5c3RlbS4KKyAgICA8L3BhcmE+CisgICA8L2dsb3NzZGVmPgorICA8L2dsb3NzZW50 cnk+CisKICAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LWNvbW1pdCI+CiAgICA8Z2xvc3N0 ZXJtPkNvbW1pdDwvZ2xvc3N0ZXJtPgogICAgPGdsb3NzZGVmPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL2xpYnBxLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbAppbmRleCA4 YTFhOWU5OTMyLi43OTY4NjMwYWEwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbGlicHEu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbApAQCAtMTk2NCw2ICsxOTY0LDEy MyBAQCA8dGl0bGU+UGFyYW1ldGVyIEtleSBXb3JkczwvdGl0bGU+CiAgICAgICAgPC9wYXJh PgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZh cmxpc3RlbnRyeSBpZD0ibGlicHEtY29ubmVjdC1jb2x1bW4tZW5jcnlwdGlvbiIgeHJlZmxh YmVsPSJjb2x1bW5fZW5jcnlwdGlvbiI+CisgICAgICA8dGVybT48bGl0ZXJhbD5jb2x1bW5f ZW5jcnlwdGlvbjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAg PHBhcmE+CisgICAgICAgIElmIHNldCB0byAxLCB0aGlzIGVuYWJsZXMgdHJhbnNwYXJlbnQg Y29sdW1uIGVuY3J5cHRpb24gZm9yIHRoZQorICAgICAgICBjb25uZWN0aW9uLiAgSWYgZW5j cnlwdGVkIGNvbHVtbnMgYXJlIHF1ZXJpZWQgYW5kIHRoaXMgaXMgbm90IGVuYWJsZWQsCisg ICAgICAgIHRoZSBlbmNyeXB0ZWQgdmFsdWUgaXMgcmV0dXJuZWQuICBTZWUgPHhyZWYKKyAg ICAgICAgbGlua2VuZD0iZGRsLWNvbHVtbi1lbmNyeXB0aW9uIi8+IGZvciBtb3JlIGluZm9y bWF0aW9uIGFib3V0IHRoaXMKKyAgICAgICAgZmVhdHVyZS4KKyAgICAgICA8L3BhcmE+Cisg ICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlz dGVudHJ5IGlkPSJsaWJwcS1jb25uZWN0LWNta2xvb2t1cCIgeHJlZmxhYmVsPSJjbWtsb29r dXAiPgorICAgICAgPHRlcm0+PGxpdGVyYWw+Y21rbG9va3VwPC9saXRlcmFsPjwvdGVybT4K KyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBzcGVjaWZp ZXMgaG93IGxpYnBxIHNob3VsZCBsb29rIHVwIGNvbHVtbiBtYXN0ZXIga2V5cyAoQ01Lcykg aW4KKyAgICAgICAgb3JkZXIgdG8gZGVjcnlwdCB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5 cyAoQ0VLcykuCisgICAgICAgIFRoZSB2YWx1ZSBpcyBhIGxpc3Qgb2YgPGxpdGVyYWw+a2V5 PXZhbHVlPC9saXRlcmFsPiBlbnRyaWVzIHNlcGFyYXRlZAorICAgICAgICBieSBzZW1pY29s b25zLiAgRWFjaCBrZXkgaXMgdGhlIG5hbWUgb2YgYSBrZXkgcmVhbG0sIG9yCisgICAgICAg IDxsaXRlcmFsPio8L2xpdGVyYWw+IHRvIG1hdGNoIGFsbCByZWFsbXMuICBUaGUgdmFsdWUg aXMgYQorICAgICAgICA8bGl0ZXJhbD5zY2hlbWU6ZGF0YTwvbGl0ZXJhbD4gc3BlY2lmaWNh dGlvbi4gIFRoZSBzY2hlbWUgc3BlY2lmaWVzCisgICAgICAgIHRoZSBtZXRob2QgdG8gbG9v ayB1cCB0aGUga2V5LCB0aGUgcmVtYWluaW5nIGRhdGEgaXMgc3BlY2lmaWMgdG8gdGhlCisg ICAgICAgIHNjaGVtZS4gIFBsYWNlaG9sZGVycyBhcmUgcmVwbGFjZWQgaW4gdGhlIHJlbWFp bmluZyBkYXRhIGFzIGZvbGxvd3M6CisKKyAgICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAg ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+JWE8L2xpdGVy YWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+Cisg ICAgICAgICAgICBUaGUgQ01LIGFsZ29yaXRobSBuYW1lIChzZWUgPHhyZWYgbGlua2VuZD0i cHJvdG9jb2wtY21rLXRhYmxlIi8+KQorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAg PC9saXN0aXRlbT4KKyAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgICA8dmFy bGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPiViPC9saXRlcmFsPjwvdGVy bT4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAg ICAgVGhlIGVuY3J5cHRlZCBDRUsgZGF0YSBpbiBCYXNlNjQgZW5jb2RpbmcgKG9ubHkgZm9y IHRoZSA8bGl0ZXJhbD5ydW48L2xpdGVyYWw+IHNjaGVtZSkKKyAgICAgICAgICAgPC9wYXJh PgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD4lazwv bGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFy YT4KKyAgICAgICAgICAgIFRoZSBDTUsga2V5IG5hbWUKKyAgICAgICAgICAgPC9wYXJhPgor ICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg ICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD4lcjwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4K KyAgICAgICAgICAgIFRoZSByZWFsbSBuYW1lCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAg ICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICAgIDwv dmFyaWFibGVsaXN0PgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAg ICBBdmFpbGFibGUgc2NoZW1lcyBhcmU6CisgICAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAg ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmZpbGU8L2xp dGVyYWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgICBMb2FkIHRoZSBrZXkgbWF0ZXJpYWwgZnJvbSBhIGZpbGUuICBUaGUg cmVtYWluaW5nIGRhdGEgaXMgdGhlIGZpbGUKKyAgICAgICAgICAgIG5hbWUuICBVc2UgdGhp cyBpZiB0aGUgQ01LcyBhcmUga2VwdCBpbiBhIGZpbGUgb24gdGhlIGZpbGUgc3lzdGVtLgor ICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDwv dmFybGlzdGVudHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgIDx0 ZXJtPjxsaXRlcmFsPnJ1bjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVt PgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFJ1biB0aGUgc3BlY2lmaWVkIGNv bW1hbmQgdG8gZGVjcnlwdCB0aGUgQ0VLLiAgVGhlIHJlbWFpbmluZyBkYXRhCisgICAgICAg ICAgICBpcyBhIHNoZWxsIGNvbW1hbmQuICBVc2UgdGhpcyB3aXRoIGtleSBtYW5hZ2VtZW50 IHN5c3RlbXMgdGhhdAorICAgICAgICAgICAgcGVyZm9ybSB0aGUgZGVjcnlwdGlvbiB0aGVt c2VsdmVzLiAgVGhlIGNvbW1hbmQgbXVzdCBwcmludCB0aGUKKyAgICAgICAgICAgIGRlY3J5 cHRlZCBwbGFpbnRleHQgaW4gQmFzZTY0IGZvcm1hdCBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0 LgorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAg IDwvdmFybGlzdGVudHJ5PgorICAgICAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgICAgICA8L3Bh cmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgZW1w dHkuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEV4YW1wbGU6 Cis8cHJvZ3JhbWxpc3Rpbmc+CitjbWtsb29rdXA9InIxPWZpbGU6L3NvbWUvd2hlcmUvc2Vj cmV0cy8lay5wZW07Kj1maWxlOi9lbHNlL3doZXJlLyVyLyVrLnBlbSIKKzwvcHJvZ3JhbWxp c3Rpbmc+CisgICAgICAgIFRoaXMgc3BlY2lmaWNhdGlvbiBzYXlzLCBmb3Iga2V5cyBpbiBy ZWFsbSA8cXVvdGU+cjE8L3F1b3RlPiwgbG9hZAorICAgICAgICB0aGVtIGZyb20gdGhlIHNw ZWNpZmllZCBmaWxlLCByZXBsYWNpbmcgPGxpdGVyYWw+JWs8L2xpdGVyYWw+IGJ5IHRoZQor ICAgICAgICBrZXkgbmFtZS4gIEZvciBrZXlzIGluIG90aGVyIHJlYWxtcywgbG9hZCB0aGVt IGZyb20gdGhlIGZpbGUsCisgICAgICAgIHJlcGxhY2luZyByZWFsbSBhbmQga2V5IG5hbWVz IGFzIHNwZWNpZmllZC4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAg ICAgQW4gZXhhbXBsZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhIChoeXBvdGhldGljYWwpIGtl eSBtYW5hZ2VtZW50CisgICAgICAgIHN5c3RlbToKKzxwcm9ncmFtbGlzdGluZz4KK2Nta2xv b2t1cD0iKj1ydW46YWNtZWttcyBkZWNyeXB0IC0ta2V5ICVrIC0tYWxnICVhIC0tYmxvYiAn JWInIgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3Rp dGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgIDwv cGFyYT4KICAgPC9zZWN0Mj4KQEAgLTMwMTIsNiArMzEyOSw1NyBAQCA8dGl0bGU+TWFpbiBG dW5jdGlvbnM8L3RpdGxlPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50 cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFleGVjUHJlcGFyZWQyIj4K KyAgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUWV4ZWNQcmVwYXJlZDI8L2Z1bmN0aW9uPjxpbmRl eHRlcm0+PHByaW1hcnk+UFFleGVjUHJlcGFyZWQyPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwv dGVybT4KKworICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBTZW5k cyBhIHJlcXVlc3QgdG8gZXhlY3V0ZSBhIHByZXBhcmVkIHN0YXRlbWVudCB3aXRoIGdpdmVu CisgICAgICAgIHBhcmFtZXRlcnMsIGFuZCB3YWl0cyBmb3IgdGhlIHJlc3VsdCwgd2l0aCBz dXBwb3J0IGZvciBlbmNyeXB0ZWQgY29sdW1ucy4KKzxzeW5vcHNpcz4KK1BHcmVzdWx0ICpQ UWV4ZWNQcmVwYXJlZDIoUEdjb25uICpjb25uLAorICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICpzdG10TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 IG5QYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBjb25z dCAqcGFyYW1WYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAq cGFyYW1MZW5ndGhzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgKnBh cmFtRm9ybWF0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50ICpwYXJh bUZvcmNlQ29sdW1uRW5jcnlwdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCByZXN1bHRGb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFBHcmVzdWx0ICpw YXJhbURlc2MpOworPC9zeW5vcHNpcz4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFy YT4KKyAgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQyIi8+IGlz IGxpa2UgPHhyZWYKKyAgICAgICAgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQiLz4g d2l0aCBhZGRpdGlvbmFsIHN1cHBvcnQgZm9yIGVuY3J5cHRlZAorICAgICAgICBjb2x1bW5z LiAgVGhlIHBhcmFtZXRlciA8cGFyYW1ldGVyPnBhcmFtRGVzYzwvcGFyYW1ldGVyPiBtdXN0 IGJlIGEKKyAgICAgICAgcmVzdWx0IHNldCBvYnRhaW5lZCBmcm9tIDx4cmVmIGxpbmtlbmQ9 ImxpYnBxLVBRZGVzY3JpYmVQcmVwYXJlZCIvPiBvbgorICAgICAgICB0aGUgc2FtZSBwcmVw YXJlZCBzdGF0ZW1lbnQuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAg ICAgIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSB1c2VkIGlmIGEgc3RhdGVtZW50IHBhcmFtZXRl ciBjb3JyZXNwb25kcyB0byBhbgorICAgICAgICB1bmRlcmx5aW5nIGVuY3J5cHRlZCBjb2x1 bW4uICBJbiB0aGF0IHNpdHVhdGlvbiwgdGhlIHByZXBhcmVkCisgICAgICAgIHN0YXRlbWVu dCBuZWVkcyB0byBiZSBkZXNjcmliZWQgZmlyc3Qgc28gdGhhdCBsaWJwcSBjYW4gb2J0YWlu IHRoZQorICAgICAgICBuZWNlc3Nhcnkga2V5IGFuZCBvdGhlciBpbmZvcm1hdGlvbiBmcm9t IHRoZSBzZXJ2ZXIuICBXaGVuIHRoYXQgaXMKKyAgICAgICAgZG9uZSwgdGhlIHBhcmFtZXRl cnMgY29ycmVzcG9uZGluZyB0byBlbmNyeXB0ZWQgY29sdW1ucyBhcmUKKyAgICAgICAgYXV0 b21hdGljYWxseSBlbmNyeXB0ZWQgYXBwcm9wcmlhdGVseSBiZWZvcmUgYmVpbmcgc2VudCB0 byB0aGUgc2VydmVyLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAg ICBUaGUgcGFyYW1ldGVyIDxwYXJhbWV0ZXI+cGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25z PC9wYXJhbWV0ZXI+CisgICAgICAgIHNwZWNpZmllcyB3aGV0aGVyIGVuY3J5cHRpb24gc2hv dWxkIGJlIGZvcmNlZCBmb3IgYSBwYXJhbWV0ZXIuICBJZgorICAgICAgICBlbmNyeXB0aW9u IGlzIGZvcmNlZCBmb3IgYSBwYXJhbWV0ZXIgYnV0IGl0IGRvZXMgbm90IGNvcnJlc3BvbmQg dG8gYW4KKyAgICAgICAgZW5jcnlwdGVkIGNvbHVtbiBvbiB0aGUgc2VydmVyLCB0aGVuIHRo ZSBjYWxsIHdpbGwgZmFpbCBhbmQgdGhlCisgICAgICAgIHBhcmFtZXRlciB3aWxsIG5vdCBi ZSBzZW50LiAgVGhpcyBjYW4gYmUgdXNlZCBmb3IgYWRkaXRpb25hbCBzZWN1cml0eQorICAg ICAgICBhZ2FpbnN0IGEgY29tcHJpbWlzZWQgc2VydmVyLiAgKFRoZSBkcmF3YmFjayBpcyB0 aGF0IGFwcGxpY2F0aW9uIGNvZGUKKyAgICAgICAgdGhlbiBuZWVkcyB0byBiZSBrZXB0IHVw IHRvIGRhdGUgd2l0aCBrbm93bGVkZ2UgYWJvdXQgd2hpY2ggY29sdW1ucworICAgICAgICBh cmUgZW5jcnlwdGVkIHJhdGhlciB0aGFuIGxldHRpbmcgdGhlIHNlcnZlciBzcGVjaWZ5IHRo aXMuKSAgSWYgdGhlCisgICAgICAgIGFycmF5IHBvaW50ZXIgaXMgbnVsbCB0aGVuIGVuY3J5 cHRpb24gaXMgbm90IGZvcmNlZCBmb3IgYW55IHBhcmFtZXRlci4KKyAgICAgICA8L3BhcmE+ CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFy bGlzdGVudHJ5IGlkPSJsaWJwcS1QUWRlc2NyaWJlUHJlcGFyZWQiPgogICAgICAgPHRlcm0+ PGZ1bmN0aW9uPlBRZGVzY3JpYmVQcmVwYXJlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJp bWFyeT5QUWRlc2NyaWJlUHJlcGFyZWQ8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgog CkBAIC0zODYyLDYgKzQwMzAsMjggQEAgPHRpdGxlPlJldHJpZXZpbmcgUXVlcnkgUmVzdWx0 IEluZm9ybWF0aW9uPC90aXRsZT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3Rl bnRyeT4KIAorICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRZmlzZW5jcnlwdGVkIj4K KyAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRZmlzZW5jcnlwdGVkPC9mdW5jdGlvbj48aW5kZXh0 ZXJtPjxwcmltYXJ5PlBRZmlzZW5jcnlwdGVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVy bT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBSZXR1cm5zIHdo ZXRoZXIgdGhlIHZhbHVlIGZvciB0aGUgZ2l2ZW4gY29sdW1uIGNhbWUgZnJvbSBhbiBlbmNy eXB0ZWQKKyAgICAgICBjb2x1bW4uICBDb2x1bW4gbnVtYmVycyBzdGFydCBhdCAwLgorPHN5 bm9wc2lzPgoraW50IFBRZmlzZW5jcnlwdGVkKGNvbnN0IFBHcmVzdWx0ICpyZXMsCisgICAg ICAgICAgICAgICAgICAgaW50IGNvbHVtbl9udW1iZXIpOworPC9zeW5vcHNpcz4KKyAgICAg IDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAgRW5jcnlwdGVkIGNvbHVtbiB2YWx1 ZXMgYXJlIGF1dG9tYXRpY2FsbHkgZGVjcnlwdGVkLCBzbyB0aGlzIGZ1bmN0aW9uCisgICAg ICAgaXMgbm90IG5lY2Vzc2FyeSB0byBhY2Nlc3MgdGhlIGNvbHVtbiB2YWx1ZS4gIEl0IGNh biBiZSB1c2VkIGZvciBleHRyYQorICAgICAgIHNlY3VyaXR5IHRvIGNoZWNrIHdoZXRoZXIg dGhlIHZhbHVlIHdhcyBzdG9yZWQgZW5jcnlwdGVkIHdoZW4gb25lCisgICAgICAgdGhvdWdo dCBpdCBzaG91bGQgYmUuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAg PC92YXJsaXN0ZW50cnk+CisKICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUWZzaXpl Ij4KICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRZnNpemU8L2Z1bmN0aW9uPjxpbmRleHRlcm0+ PHByaW1hcnk+UFFmc2l6ZTwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAKQEAgLTQw MzcsMTIgKzQyMjcsMzcgQEAgPHRpdGxlPlJldHJpZXZpbmcgUXVlcnkgUmVzdWx0IEluZm9y bWF0aW9uPC90aXRsZT4KIAogICAgICAgPHBhcmE+CiAgICAgICAgVGhpcyBmdW5jdGlvbiBp cyBvbmx5IHVzZWZ1bCB3aGVuIGluc3BlY3RpbmcgdGhlIHJlc3VsdCBvZgotICAgICAgIDx4 cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZGVzY3JpYmVQcmVwYXJlZCIvPi4gIEZvciBvdGhlciB0 eXBlcyBvZiBxdWVyaWVzIGl0CisgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFkZXNj cmliZVByZXBhcmVkIi8+LiAgRm9yIG90aGVyIHR5cGVzIG9mIHJlc3VsdHMgaXQKICAgICAg ICB3aWxsIHJldHVybiB6ZXJvLgogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgog ICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFw YXJhbWlzZW5jcnlwdGVkIj4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRcGFyYW1pc2VuY3J5 cHRlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUXBhcmFtaXNlbmNyeXB0ZWQ8 L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorCisgICAgIDxsaXN0aXRlbT4KKyAgICAg IDxwYXJhPgorICAgICAgIFJldHVybnMgd2hldGhlciB0aGUgdmFsdWUgZm9yIHRoZSBnaXZl biBwYXJhbWV0ZXIgaXMgZGVzdGluZWQgZm9yIGFuCisgICAgICAgZW5jcnlwdGVkIGNvbHVt bi4gIFBhcmFtZXRlciBudW1iZXJzIHN0YXJ0IGF0IDAuCis8c3lub3BzaXM+CitpbnQgUFFw YXJhbWlzZW5jcnlwdGVkKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBwYXJhbV9udW1iZXIp OworPC9zeW5vcHNpcz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAg VmFsdWVzIGZvciBwYXJhbWV0ZXJzIGRlc3RpbmVkIGZvciBlbmNyeXB0ZWQgY29sdW1ucyBh cmUgYXV0b21hdGljYWxseQorICAgICAgIGVuY3J5cHRlZCwgc28gdGhpcyBmdW5jdGlvbiBp cyBub3QgbmVjZXNzYXJ5IHRvIHByZXBhcmUgdGhlIHBhcmFtZXRlcgorICAgICAgIHZhbHVl LiAgSXQgY2FuIGJlIHVzZWQgZm9yIGV4dHJhIHNlY3VyaXR5IHRvIGNoZWNrIHdoZXRoZXIg dGhlIHZhbHVlCisgICAgICAgd2lsbCBiZSBzdG9yZWQgZW5jcnlwdGVkIHdoZW4gb25lIHRo b3VnaHQgaXQgc2hvdWxkIGJlLiAgKEJ1dCBzZWUgYWxzbworICAgICAgIGF0IDx4cmVmIGxp bmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkMiIvPiBmb3IgYW5vdGhlciB3YXkgdG8gZG8g dGhhdC4pCisgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IHVzZWZ1bCB3aGVuIGluc3Bl Y3RpbmcgdGhlIHJlc3VsdCBvZiA8eHJlZgorICAgICAgIGxpbmtlbmQ9ImxpYnBxLVBRZGVz Y3JpYmVQcmVwYXJlZCIvPi4gIEZvciBvdGhlciB0eXBlcyBvZiByZXN1bHRzIGl0CisgICAg ICAgd2lsbCByZXR1cm4gZmFsc2UuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+ CisgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1Q UXByaW50Ij4KICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRcHJpbnQ8L2Z1bmN0aW9uPjxpbmRl eHRlcm0+PHByaW1hcnk+UFFwcmludDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAK QEAgLTQ1NjgsNiArNDc4Myw3IEBAIDx0aXRsZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQcm9j ZXNzaW5nPC90aXRsZT4KICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UGFy YW1zIi8+LAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUHJlcGFyZSIvPiwKICAg IDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWQiLz4sCisgICA8eHJl ZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVByZXBhcmVkMiIvPiwKICAgIDx4cmVmIGxp bmtlbmQ9ImxpYnBxLVBRc2VuZERlc2NyaWJlUHJlcGFyZWQiLz4sIGFuZAogICAgPHhyZWYg bGlua2VuZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQb3J0YWwiLz4sCiAgICB3aGljaCBjYW4g YmUgdXNlZCB3aXRoIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZ2V0UmVzdWx0Ii8+IHRvIGR1 cGxpY2F0ZQpAQCAtNDU3NSw2ICs0NzkxLDcgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBDb21t YW5kIFByb2Nlc3Npbmc8L3RpdGxlPgogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVj UGFyYW1zIi8+LAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFwcmVwYXJlIi8+LAogICAg PHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQiLz4sCisgICA8eHJlZiBsaW5r ZW5kPSJsaWJwcS1QUWV4ZWNQcmVwYXJlZDIiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJw cS1QUWRlc2NyaWJlUHJlcGFyZWQiLz4sIGFuZAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEt UFFkZXNjcmliZVBvcnRhbCIvPgogICAgcmVzcGVjdGl2ZWx5LgpAQCAtNDY4Niw2ICs0OTAz LDQ2IEBAIDx0aXRsZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQcm9jZXNzaW5nPC90aXRsZT4K ICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJsaXN0 ZW50cnkgaWQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWQyIj4KKyAgICAgPHRlcm0+PGZ1 bmN0aW9uPlBRc2VuZFF1ZXJ5UHJlcGFyZWQyPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmlt YXJ5PlBRc2VuZFF1ZXJ5UHJlcGFyZWQyPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4K KworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBTZW5kcyBhIHJlcXVl c3QgdG8gZXhlY3V0ZSBhIHByZXBhcmVkIHN0YXRlbWVudCB3aXRoIGdpdmVuCisgICAgICAg cGFyYW1ldGVycywgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgcmVzdWx0KHMpLCB3aXRoIHN1 cHBvcnQgZm9yIGVuY3J5cHRlZCBjb2x1bW5zLgorPHN5bm9wc2lzPgoraW50IFBRc2VuZFF1 ZXJ5UHJlcGFyZWQyKFBHY29ubiAqY29ubiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICpzdG10TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgblBh cmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICogY29uc3QgKnBh cmFtVmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1M ZW5ndGhzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1Gb3Jt YXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1Gb3JjZUNv bHVtbkVuY3J5cHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHRG b3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgUEdyZXN1bHQgKnBhcmFtRGVzYyk7 Cis8L3N5bm9wc2lzPgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICA8 eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVByZXBhcmVkMiIvPiBpcyBsaWtlIDx4 cmVmCisgICAgICAgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZCIvPiB3aXRo IGFkZGl0aW9uYWwgc3VwcG9ydCBmb3IgZW5jcnlwdGVkCisgICAgICAgY29sdW1ucy4gIFRo ZSBwYXJhbWV0ZXIgPHBhcmFtZXRlcj5wYXJhbURlc2M8L3BhcmFtZXRlcj4gbXVzdCBiZSBh CisgICAgICAgcmVzdWx0IHNldCBvYnRhaW5lZCBmcm9tIDx4cmVmIGxpbmtlbmQ9ImxpYnBx LVBRc2VuZERlc2NyaWJlUHJlcGFyZWQiLz4gb24KKyAgICAgICB0aGUgc2FtZSBwcmVwYXJl ZCBzdGF0ZW1lbnQuCisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFRo aXMgZnVuY3Rpb24gbXVzdCBiZSB1c2VkIGlmIGEgc3RhdGVtZW50IHBhcmFtZXRlciBjb3Jy ZXNwb25kcyB0byBhbgorICAgICAgIHVuZGVybHlpbmcgZW5jcnlwdGVkIGNvbHVtbi4gIElu IHRoYXQgc2l0dWF0aW9uLCB0aGUgcHJlcGFyZWQKKyAgICAgICBzdGF0ZW1lbnQgbmVlZHMg dG8gYmUgZGVzY3JpYmVkIGZpcnN0IHNvIHRoYXQgbGlicHEgY2FuIG9idGFpbiB0aGUKKyAg ICAgICBuZWNlc3Nhcnkga2V5IGFuZCBvdGhlciBpbmZvcm1hdGlvbiBmcm9tIHRoZSBzZXJ2 ZXIuICBXaGVuIHRoYXQgaXMKKyAgICAgICBkb25lLCB0aGUgcGFyYW1ldGVycyBjb3JyZXNw b25kaW5nIHRvIGVuY3J5cHRlZCBjb2x1bW5zIGFyZQorICAgICAgIGF1dG9tYXRpY2FsbHkg ZW5jcnlwdGVkIGFwcHJvcHJpYXRlbHkgYmVmb3JlIGJlaW5nIHNlbnQgdG8gdGhlIHNlcnZl ci4KKyAgICAgICBTZWUgYWxzbyB1bmRlciA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQ cmVwYXJlZDIiLz4uCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92 YXJsaXN0ZW50cnk+CisKICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUXNlbmREZXNj cmliZVByZXBhcmVkIj4KICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRc2VuZERlc2NyaWJlUHJl cGFyZWQ8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFzZW5kRGVzY3JpYmVQcmVw YXJlZDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAKQEAgLTQ3MzYsNiArNDk5Myw3 IEBAIDx0aXRsZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQcm9jZXNzaW5nPC90aXRsZT4KICAg ICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVBhcmFtcyIvPiwKICAgICAg ICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRQcmVwYXJlIi8+LAogICAgICAgIDx4cmVm IGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWQiLz4sCisgICAgICAgPHhyZWYg bGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZDIiLz4sCiAgICAgICAgPHhyZWYg bGlua2VuZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQcmVwYXJlZCIvPiwKICAgICAgICA8eHJl ZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmREZXNjcmliZVBvcnRhbCIvPiwgb3IKICAgICAgICA8 eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXBpcGVsaW5lU3luYyIvPgpAQCAtNzc2Niw2ICs4MDI0 LDI2IEBAIDx0aXRsZT5FbnZpcm9ubWVudCBWYXJpYWJsZXM8L3RpdGxlPgogICAgICA8L3Bh cmE+CiAgICAgPC9saXN0aXRlbT4KIAorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5PjxlbnZhcj5QR0NNS0xPT0tVUDwv ZW52YXI+PC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8ZW52YXI+UEdD TUtMT09LVVA8L2VudmFyPiBiZWhhdmVzIHRoZSBzYW1lIGFzIHRoZSA8eHJlZgorICAgICAg bGlua2VuZD0ibGlicHEtY29ubmVjdC1jbWtsb29rdXAiLz4gY29ubmVjdGlvbiBwYXJhbWV0 ZXIuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgPHByaW1hcnk+PGVudmFy PlBHQ09MVU1ORU5DUllQVElPTjwvZW52YXI+PC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRl cm0+CisgICAgICA8ZW52YXI+UEdDT0xVTU5FTkNSWVBUSU9OPC9lbnZhcj4gYmVoYXZlcyB0 aGUgc2FtZSBhcyB0aGUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9ImxpYnBxLWNvbm5lY3QtY29s dW1uLWVuY3J5cHRpb24iLz4gY29ubmVjdGlvbiBwYXJhbWV0ZXIuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorCiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KICAgICAg IDxpbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbCBi L2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCmluZGV4IDg3ODcwYzViMTAuLmY0MjFjYTA4 NjMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9wcm90b2NvbC5zZ21sCkBAIC0xMTA4LDYgKzExMDgsNjggQEAgPHRpdGxlPlBp cGVsaW5pbmc8L3RpdGxlPgogICAgPC9wYXJhPgogICA8L3NlY3QyPgogCisgIDxzZWN0MiBp ZD0icHJvdG9jb2wtdHJhbnNwYXJlbnQtY29sdW1uLWVuY3J5cHRpb24tZmxvdyI+CisgICA8 dGl0bGU+VHJhbnNwYXJlbnQgQ29sdW1uIEVuY3J5cHRpb248L3RpdGxlPgorCisgICA8cGFy YT4KKyAgICBUcmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkIGJ5IHNl bmRpbmcgdGhlIHBhcmFtZXRlcgorICAgIDxsaXRlcmFsPl9wcV8uY29sdW1uX2VuY3J5cHRp b248L2xpdGVyYWw+IHdpdGggYSB2YWx1ZSBvZgorICAgIDxsaXRlcmFsPjE8L2xpdGVyYWw+ IGluIHRoZSBTdGFydHVwTWVzc2FnZS4gIFRoaXMgaXMgYSBwcm90b2NvbCBleHRlbnNpb24K KyAgICB0aGF0IGVuYWJsZXMgYSBmZXcgYWRkaXRpb25hbCBwcm90b2NvbCBtZXNzYWdlcyBh bmQgYWRkcyBhZGRpdGlvbmFsIGZpZWxkcworICAgIHRvIGV4aXN0aW5nIHByb3RvY29sIG1l c3NhZ2VzLiAgQ2xpZW50IGRyaXZlcnMgc2hvdWxkIG9ubHkgYWN0aXZhdGUgdGhpcworICAg IHByb3RvY29sIGV4dGVuc2lvbiB3aGVuIHJlcXVlc3RlZCBieSB0aGUgdXNlciwgZm9yIGV4 YW1wbGUgdGhyb3VnaCBhCisgICAgY29ubmVjdGlvbiBwYXJhbWV0ZXIuCisgICA8L3BhcmE+ CisKKyAgIDxwYXJhPgorICAgIFdoZW4gdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24g aXMgZW5hYmxlZCwgdGhlIG1lc3NhZ2VzCisgICAgQ29sdW1uTWFzdGVyS2V5IGFuZCBDb2x1 bW5FbmNyeXB0aW9uS2V5IGNhbiBhcHBlYXIgYmVmb3JlIFJvd0Rlc2NyaXB0aW9uCisgICAg YW5kIFBhcmFtZXRlckRlc2NyaXB0aW9uIG1lc3NhZ2VzLiAgQ2xpZW50cyBzaG91bGQgY29s bGVjdCB0aGUgaW5mb3JtYXRpb24KKyAgICBpbiB0aGVzZSBtZXNzYWdlcyBhbmQga2VlcCB0 aGVtIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGNvbm5lY3Rpb24uICBBCisgICAgc2VydmVy IGlzIG5vdCByZXF1aXJlZCB0byByZXNlbmQgdGhlIGtleSBpbmZvcm1hdGlvbiBmb3IgZWFj aCBzdGF0ZW1lbnQKKyAgICBjeWNsZSBpZiBpdCB3YXMgYWxyZWFkeSBzZW50IGR1cmluZyB0 aGlzIGNvbm5lY3Rpb24uICBJZiBhIHNlcnZlciByZXNlbmRzCisgICAgYSBrZXkgdGhhdCB0 aGUgY2xpZW50IGhhcyBhbHJlYWR5IHN0b3JlZCAodGhhdCBpcywgYSBrZXkgaGF2aW5nIGFu IElECisgICAgZXF1YWwgdG8gb25lIGFscmVhZHkgc3RvcmVkKSwgdGhlIG5ldyBpbmZvcm1h dGlvbiBzaG91bGQgcmVwbGFjZSB0aGUgb2xkLgorICAgIChUaGlzIGNvdWxkIGhhcHBlbiwg Zm9yIGV4YW1wbGUsIGlmIHRoZSBrZXkgd2FzIGFsdGVyZWQgYnkgc2VydmVyLXNpZGUgRERM CisgICAgY29tbWFuZHMuKQorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBBIGNsaWVu dCBzdXBwb3J0aW5nIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIHNob3VsZCBhdXRv bWF0aWNhbGx5CisgICAgZGVjcnlwdCB0aGUgY29sdW1uIHZhbHVlIGZpZWxkcyBvZiBEYXRh Um93IG1lc3NhZ2VzIGNvcnJlc3BvbmRpbmcgdG8KKyAgICBlbmNyeXB0ZWQgY29sdW1ucywg YW5kIGl0IHNob3VsZCBhdXRvbWF0aWNhbGx5IGVuY3J5cHQgdGhlIHBhcmFtZXRlciB2YWx1 ZQorICAgIGZpZWxkcyBvZiBCaW5kIG1lc3NhZ2VzIGNvcnJlc3BvbmRpbmcgdG8gZW5jcnlw dGVkIGNvbHVtbnMuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFdoZW4gY29sdW1u IGVuY3J5cHRpb24gaXMgdXNlZCwgdGhlIHBsYWludGV4dCBpcyBhbHdheXMgaW4gdGV4dCBm b3JtYXQKKyAgICAobm90IGJpbmFyeSBmb3JtYXQpLgorICAgPC9wYXJhPgorCisgICA8cGFy YT4KKyAgICBXaGVuIGRldGVybWluaXN0aWMgZW5jcnlwdGlvbiBpcyB1c2VkLCBjbGllbnRz IG5lZWQgdG8gdGFrZSBjYXJlIHRvCisgICAgcmVwcmVzZW50IHBsYWludGV4dCB0byBiZSBl bmNyeXB0ZWQgaW4gYSBjb25zaXN0ZW50IGZvcm0uICBGb3IgZXhhbXBsZSwKKyAgICBlbmNy eXB0aW5nIGFuIGludGVnZXIgcmVwcmVzZW50ZWQgYnkgdGhlIHN0cmluZyA8bGl0ZXJhbD4x MDA8L2xpdGVyYWw+IGFuZAorICAgIGFuIGludGVnZXIgcmVwcmVzZW50ZWQgYnkgdGhlIHN0 cmluZyA8bGl0ZXJhbD4rMTAwPC9saXRlcmFsPiB3b3VsZCByZXN1bHQKKyAgICBpbiB0d28g ZGlmZmVyZW50IGNpcGhlcnRleHRzLCB0aHVzIGRlZmVhdGluZyB0aGUgbWFpbiBwb2ludCBv ZgorICAgIGRldGVybWluaXN0aWMgZW5jcnlwdGlvbi4gIFRoaXMgcHJvdG9jb2wgc3BlY2lm aWNhdGlvbiByZXF1aXJlcyB0aGUKKyAgICBwbGFpbnRleHQgdG8gYmUgaW4gPHF1b3RlPmNh bm9uaWNhbDwvcXVvdGU+IGZvcm0sIHdoaWNoIGlzIHRoZSBmb3JtIHRoYXQKKyAgICBpcyBw cm9kdWNlZCBieSB0aGUgc2VydmVyIHdoZW4gaXQgb3V0cHV0cyBhIHBhcnRpY3VsYXIgdmFs dWUgaW4gdGV4dAorICAgIGZvcm1hdC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAg V2hlbiB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkLCB0aGUgY2xp ZW50IGVuY29kaW5nIG11c3QKKyAgICBtYXRjaCB0aGUgc2VydmVyIGVuY29kaW5nLiAgVGhp cyBlbnN1cmVzIHRoYXQgYWxsIHZhbHVlcyBlbmNyeXB0ZWQgb3IKKyAgICBkZWNyeXB0ZWQg YnkgdGhlIGNsaWVudCBtYXRjaCB0aGUgc2VydmVyIGVuY29kaW5nLgorICAgPC9wYXJhPgor CisgICA8cGFyYT4KKyAgICBUaGUgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb25zIHVzZWQgZm9y IHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGFyZQorICAgIGRlc2NyaWJlZCBpbiA8 eHJlZiBsaW5rZW5kPSJwcm90b2NvbC10cmFuc3BhcmVudC1jb2x1bW4tZW5jcnlwdGlvbi1j cnlwdG8iLz4uCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CisKICAgPHNlY3QyPgogICAgPHRp dGxlPkZ1bmN0aW9uIENhbGw8L3RpdGxlPgogCkBAIC00MDQ5LDYgKzQxMTEsMTQwIEBAIDx0 aXRsZT5NZXNzYWdlIEZvcm1hdHM8L3RpdGxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zh cmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0icHJvdG9jb2wtbWVzc2FnZS1m b3JtYXRzLUNvbHVtbkVuY3J5cHRpb25LZXkiPgorICAgIDx0ZXJtPkNvbHVtbkVuY3J5cHRp b25LZXkgKEIpPC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBU aGlzIG1lc3NhZ2UgY2FuIG9ubHkgYXBwZWFyIGlmIHRoZSBwcm90b2NvbCBleHRlbnNpb24K KyAgICAgIDxsaXRlcmFsPl9wcV8uY29sdW1uX2VuY3J5cHRpb248L2xpdGVyYWw+IGlzIGVu YWJsZWQuICAoU2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJwcm90b2NvbC10cmFuc3BhcmVu dC1jb2x1bW4tZW5jcnlwdGlvbi1mbG93Ii8+LikKKyAgICAgPC9wYXJhPgorCisgICAgIDx2 YXJpYWJsZWxpc3Q+CisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkJ5dGUx KCdZJyk8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAg ICAgIElkZW50aWZpZXMgdGhlIG1lc3NhZ2UgYXMgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkg bWVzc2FnZS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5J bnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAg ICAgTGVuZ3RoIG9mIG1lc3NhZ2UgY29udGVudHMgaW4gYnl0ZXMsIGluY2x1ZGluZyBzZWxm LgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlz dGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90 ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUg c2Vzc2lvbi1zcGVjaWZpYyBpZGVudGlmaWVyIG9mIHRoZSBrZXkuCisgICAgICAgIDwvcGFy YT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAg IDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxp c3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRo ZSBtYXN0ZXIga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGlzIGtleS4KKyAgICAgICAgPC9wYXJh PgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQxNjwvdGVybT4KKyAgICAgICA8bGlz dGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhl IGFsZ29yaXRobSB1c2VkIHRvIGVuY3J5cHQgdGhpcyBrZXkuCisgICAgICAgIDwvcGFyYT4K KyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3Rp dGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBsZW5ndGggb2YgdGhlIGZvbGxv d2luZyBrZXkgbWF0ZXJpYWwuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVt PgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAg ICAgPHRlcm0+Qnl0ZTxyZXBsYWNlYWJsZT5uPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAg ICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBrZXkgbWF0ZXJp YWwsIGVuY3J5cHRlZCB3aXRoIHRoZSBtYXN0ZXIga2V5IHJlZmVyZW5jZWQgYWJvdmUuCisg ICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50 cnk+CisgICAgIDwvdmFyaWFibGVsaXN0PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0icHJvdG9jb2wtbWVzc2FnZS1mb3Jt YXRzLUNvbHVtbk1hc3RlcktleSI+CisgICAgPHRlcm0+Q29sdW1uTWFzdGVyS2V5IChCKTwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBtZXNzYWdl IGNhbiBvbmx5IGFwcGVhciBpZiB0aGUgcHJvdG9jb2wgZXh0ZW5zaW9uCisgICAgICA8bGl0 ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRlcmFsPiBpcyBlbmFibGVkLiAgKFNl ZSA8eHJlZgorICAgICAgbGlua2VuZD0icHJvdG9jb2wtdHJhbnNwYXJlbnQtY29sdW1uLWVu Y3J5cHRpb24tZmxvdyIvPi4pCisgICAgIDwvcGFyYT4KKworICAgICA8dmFyaWFibGVsaXN0 PgorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5CeXRlMSgneScpPC90ZXJt PgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZGVudGlm aWVzIHRoZSBtZXNzYWdlIGFzIGEgY29sdW1uIG1hc3RlciBrZXkgbWVzc2FnZS4KKyAgICAg ICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgTGVuZ3RoIG9mIG1l c3NhZ2UgY29udGVudHMgaW4gYnl0ZXMsIGluY2x1ZGluZyBzZWxmLgorICAgICAgICA8L3Bh cmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAg ICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxs aXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgc2Vzc2lvbi1zcGVjaWZp YyBpZGVudGlmaWVyIG9mIHRoZSBrZXkuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xp c3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICAgPHRlcm0+U3RyaW5nPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgPHBhcmE+CisgICAgICAgICBUaGUgbmFtZSBvZiB0aGUga2V5LgorICAgICAgICA8L3Bh cmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAg ICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPlN0cmluZzwvdGVybT4KKyAgICAgICA8 bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIGtleSdzIHJlYWxtLgor ICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVu dHJ5PgorICAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InByb3RvY29sLW1lc3NhZ2UtZm9y bWF0cy1Db21tYW5kQ29tcGxldGUiPgogICAgIDx0ZXJtPkNvbW1hbmRDb21wbGV0ZSAoQik8 L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAtNTE0NSw2ICs1MzQxLDQ2IEBAIDx0aXRsZT5N ZXNzYWdlIEZvcm1hdHM8L3RpdGxlPgogICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zh cmxpc3RlbnRyeT4KICAgICAgPC92YXJpYWJsZWxpc3Q+CisKKyAgICAgPHBhcmE+CisgICAg ICBJZiB0aGUgcHJvdG9jb2wgZXh0ZW5zaW9uIDxsaXRlcmFsPl9wcV8uY29sdW1uX2VuY3J5 cHRpb248L2xpdGVyYWw+IGlzCisgICAgICBlbmFibGVkIChzZWUgPHhyZWYKKyAgICAgIGxp bmtlbmQ9InByb3RvY29sLXRyYW5zcGFyZW50LWNvbHVtbi1lbmNyeXB0aW9uLWZsb3ciLz4p LCB0aGVuIHRoZXJlIGlzCisgICAgICBhbHNvIHRoZSBmb2xsb3dpbmcgZm9yIGVhY2ggcGFy YW1ldGVyOgorICAgICA8L3BhcmE+CisKKyAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3Rp dGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElmIHRoaXMgcGFyYW1ldGVyIGlzIHRv IGJlIGVuY3J5cHRlZCwgdGhpcyBzcGVjaWZpZXMgdGhlCisgICAgICAgICBpZGVudGlmaWVy IG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgdG8gdXNlLCBlbHNlIHplcm8uCisgICAg ICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MTY8L3Rlcm0+Cisg ICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElmIHRoaXMgcGFy YW1ldGVyIGlzIHRvIGJlIGVuY3J5cHRlZCwgdGhpcyBzcGVjaWZpZXMgdGhlCisgICAgICAg ICBpZGVudGlmaWVyIG9mIHRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSwgZWxzZSB6ZXJvLgor ICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVu dHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDE2PC90ZXJt PgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGlzIGlz IHVzZWQgYXMgYSBiaXQgZmllbGQgb2YgZmxhZ3MuICBJZiB0aGUgY29sdW1uIGlzCisgICAg ICAgICBlbmNyeXB0ZWQgYW5kIGJpdCAweDAxIGlzIHNldCwgdGhlIGNvbHVtbiB1c2VzIGRl dGVybWluaXN0aWMKKyAgICAgICAgIGVuY3J5cHRpb24sIG90aGVyd2lzZSByYW5kb21pemVk IGVuY3J5cHRpb24uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAg ICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0PgogICAgIDwvbGlzdGl0 ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApAQCAtNTUzMyw2ICs1NzY5LDM1IEBAIDx0aXRs ZT5NZXNzYWdlIEZvcm1hdHM8L3RpdGxlPgogICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8 L3Zhcmxpc3RlbnRyeT4KICAgICAgPC92YXJpYWJsZWxpc3Q+CisKKyAgICAgPHBhcmE+Cisg ICAgICBJZiB0aGUgcHJvdG9jb2wgZXh0ZW5zaW9uIDxsaXRlcmFsPl9wcV8uY29sdW1uX2Vu Y3J5cHRpb248L2xpdGVyYWw+IGlzCisgICAgICBlbmFibGVkIChzZWUgPHhyZWYKKyAgICAg IGxpbmtlbmQ9InByb3RvY29sLXRyYW5zcGFyZW50LWNvbHVtbi1lbmNyeXB0aW9uLWZsb3ci Lz4pLCB0aGVuIHRoZXJlIGlzCisgICAgICBhbHNvIHRoZSBmb2xsb3dpbmcgZm9yIGVhY2gg ZmllbGQ6CisgICAgIDwvcGFyYT4KKworICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0 ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWYgdGhlIGZpZWxkIGlzIGVuY3J5cHRl ZCwgdGhpcyBzcGVjaWZpZXMgdGhlIGlkZW50aWZpZXIgb2YgdGhlCisgICAgICAgICBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgdG8gdXNlLCBlbHNlIHplcm8uCisgICAgICAgIDwvcGFyYT4K KyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MTY8L3Rlcm0+CisgICAgICAgPGxpc3Rp dGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElmIHRoZSBmaWVsZCBpcyBlbmNyeXB0 ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZSBpZGVudGlmaWVyIG9mIHRoZQorICAgICAgICAgZW5j cnlwdCBhbGdvcml0aG0sIGVsc2UgemVyby4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwv bGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPC92YXJpYWJsZWxpc3Q+ CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCkBAIC03MzM2LDYgKzc2 MDEsMTMzIEBAIDx0aXRsZT5Mb2dpY2FsIFJlcGxpY2F0aW9uIE1lc3NhZ2UgRm9ybWF0czwv dGl0bGU+CiAgIDwvdmFyaWFibGVsaXN0PgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9InBy b3RvY29sLXRyYW5zcGFyZW50LWNvbHVtbi1lbmNyeXB0aW9uLWNyeXB0byI+CisgIDx0aXRs ZT5UcmFuc3BhcmVudCBDb2x1bW4gRW5jcnlwdGlvbiBDcnlwdG9ncmFwaHk8L3RpdGxlPgor CisgIDxwYXJhPgorICAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgY3J5cHRvZ3JhcGhp YyBvcGVyYXRpb25zIHVzZWQgYnkgdHJhbnNwYXJlbnQKKyAgIGNvbHVtbiBlbmNyeXB0aW9u LiAgQSBjbGllbnQgdGhhdCBzdXBwb3J0cyB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlv bgorICAgbmVlZHMgdG8gaW1wbGVtZW50IHRoZXNlIG9wZXJhdGlvbnMgYXMgc3BlY2lmaWVk IGhlcmUgaW4gb3JkZXIgdG8gYmUgYWJsZQorICAgdG8gaW50ZXJvcGVyYXRlIHdpdGggb3Ro ZXIgY2xpZW50cy4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgQ29sdW1uIGVuY3J5cHRp b24ga2V5IGFsZ29yaXRobXMgYW5kIGNvbHVtbiBtYXN0ZXIga2V5IGFsZ29yaXRobXMgYXJl CisgICBpZGVudGlmaWVkIGJ5IGludGVnZXJzIGluIHRoZSBwcm90b2NvbCBtZXNzYWdlcyBh bmQgdGhlIHN5c3RlbSBjYXRhbG9ncy4KKyAgIEFkZGl0aW9uYWwgYWxnb3JpdGhtcyBtYXkg YmUgYWRkZWQgdG8gdGhpcyBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIHdpdGhvdXQgYQorICAg Y2hhbmdlIGluIHRoZSBwcm90b2NvbCB2ZXJzaW9uIG51bWJlci4gIENsaWVudHMgc2hvdWxk IGltcGxlbWVudCBzdXBwb3J0CisgICBmb3IgYWxsIHRoZSBhbGdvcml0aG1zIHNwZWNpZmll ZCBoZXJlLiAgSWYgYSBjbGllbnQgZW5jb3VudGVycyBhbiBhbGdvcml0aG0KKyAgIGlkZW50 aWZpZXIgaXQgZG9lcyBub3QgcmVjb2duaXplIG9yIGRvZXMgbm90IHN1cHBvcnQsIGl0IG11 c3QgcmFpc2UgYW4KKyAgIGVycm9yLiAgQSBzdWl0YWJsZSBlcnJvciBtZXNzYWdlIHNob3Vs ZCBiZSBwcm92aWRlZCB0byB0aGUgYXBwbGljYXRpb24gb3IKKyAgIHVzZXIuCisgIDwvcGFy YT4KKworICA8c2VjdDIgaWQ9InByb3RvY29sLWNtayI+CisgICA8dGl0bGU+Q29sdW1uIE1h c3RlciBLZXlzPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgVGhlIGN1cnJlbnRseSBkZWZp bmVkIGFsZ29yaXRobXMgZm9yIGNvbHVtbiBtYXN0ZXIga2V5cyBhcmUgbGlzdGVkIGluCisg ICAgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtY21rLXRhYmxlIi8+LgorICAgPC9wYXJhPgor CisgICA8dGFibGUgaWQ9InByb3RvY29sLWNtay10YWJsZSI+CisgICAgPHRpdGxlPkNvbHVt biBNYXN0ZXIgS2V5IEFsZ29yaXRobXM8L3RpdGxlPgorICAgIDx0Z3JvdXAgY29scz0iMyI+ CisgICAgIDx0aGVhZD4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PklEPC9lbnRyeT4K KyAgICAgICA8ZW50cnk+TmFtZTwvZW50cnk+CisgICAgICAgPGVudHJ5PlJlZmVyZW5jZTwv ZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90aGVhZD4KKyAgICAgPHRib2R5PgorICAg ICAgPHJvdz4KKyAgICAgICA8ZW50cnk+MTwvZW50cnk+CisgICAgICAgPGVudHJ5PjxsaXRl cmFsPlJTQUVTX09BRVBfU0hBXzE8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+ PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM4 MDE3Ij5SRkMgODAxNzwvdWxpbms+IChQS0NTICMxKTwvZW50cnk+CisgICAgICA8L3Jvdz4K KyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjI8L2VudHJ5PgorICAgICAgIDxlbnRyeT48 bGl0ZXJhbD5SU0FFU19PQUVQX1NIQV8yNTY8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8 ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRt bC9yZmM4MDE3Ij5SRkMgODAxNzwvdWxpbms+IChQS0NTICMxKTwvZW50cnk+CisgICAgICA8 L3Jvdz4KKyAgICAgPC90Ym9keT4KKyAgICA8L3Rncm91cD4KKyAgIDwvdGFibGU+CisgIDwv c2VjdDI+CisKKyAgPHNlY3QyIGlkPSJwcm90b2NvbC1jZWsiPgorICAgPHRpdGxlPkNvbHVt biBFbmNyeXB0aW9uIEtleXM8L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBUaGUgY3VycmVu dGx5IGRlZmluZWQgYWxnb3JpdGhtcyBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5cyBhcmUg bGlzdGVkIGluCisgICAgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtY2VrLXRhYmxlIi8+Lgor ICAgPC9wYXJhPgorCisgICA8dGFibGUgaWQ9InByb3RvY29sLWNlay10YWJsZSI+CisgICAg PHRpdGxlPkNvbHVtbiBFbmNyeXB0aW9uIEtleSBBbGdvcml0aG1zPC90aXRsZT4KKyAgICA8 dGdyb3VwIGNvbHM9IjMiPgorICAgICA8dGhlYWQ+CisgICAgICA8cm93PgorICAgICAgIDxl bnRyeT5JRDwvZW50cnk+CisgICAgICAgPGVudHJ5Pk5hbWU8L2VudHJ5PgorICAgICAgIDxl bnRyeT5SZWZlcmVuY2U8L2VudHJ5PgorICAgICAgIDxlbnRyeT5LZXkgbGVuZ3RoIChvY3Rl dHMpPC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICA8L3RoZWFkPgorICAgICA8dGJvZHk+ CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4xMzA8L2VudHJ5PgorICAgICAgIDxlbnRy eT48bGl0ZXJhbD5BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjwvbGl0ZXJhbD48L2Vu dHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJsPSJodHRwczovL2RhdGF0cmFja2VyLmll dGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1 Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MzI8L2VudHJ5PgorICAgICAgPC9yb3c+Cisg ICAgICA8cm93PgorICAgICAgIDxlbnRyeT4xMzE8L2VudHJ5PgorICAgICAgIDxlbnRyeT48 bGl0ZXJhbD5BRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NDwvbGl0ZXJhbD48L2VudHJ5 PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJsPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYu b3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+ PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+NDg8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAg ICA8cm93PgorICAgICAgIDxlbnRyeT4xMzI8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0 ZXJhbD5BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDwvbGl0ZXJhbD48L2VudHJ5Pgor ICAgICAgIDxlbnRyeT48dWxpbmsgdXJsPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3Jn L2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+PC9l bnRyeT4KKyAgICAgICA8ZW50cnk+NTY8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8 cm93PgorICAgICAgIDxlbnRyeT4xMzM8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJh bD5BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjwvbGl0ZXJhbD48L2VudHJ5PgorICAg ICAgIDxlbnRyeT48dWxpbmsgdXJsPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2Rv Yy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+PC9lbnRy eT4KKyAgICAgICA8ZW50cnk+NjQ8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgIDwvdGJv ZHk+CisgICAgPC90Z3JvdXA+CisgICA8L3RhYmxlPgorCisgICA8cGFyYT4KKyAgICBUaGUg PHF1b3RlPmFzc29jaWF0ZWQgZGF0YTwvcXVvdGU+IGluIHRoZXNlIGFsZ29yaXRobXMgY29u c2lzdHMgb2YgNAorICAgIGJ5dGVzOiBUaGUgQVNDSUkgbGV0dGVycyA8bGl0ZXJhbD5QPC9s aXRlcmFsPiBhbmQgPGxpdGVyYWw+RzwvbGl0ZXJhbD4KKyAgICAoYnl0ZSB2YWx1ZXMgODAg YW5kIDcxKSwgZm9sbG93ZWQgYnkgdGhlIGFsZ29yaXRobSBJRCBhcyBhIDE2LWJpdCB1bnNp Z25lZAorICAgIGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgorICAgPC9wYXJhPgor CisgICA8cGFyYT4KKyAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0 b3IgaXMgMTYgb2N0ZXRzIGZvciBhbGwgQ0VLIGFsZ29yaXRobQorICAgIHZhcmlhbnRzLiAg Rm9yIHJhbmRvbWl6ZWQgZW5jcnlwdGlvbiwgdGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciBz aG91bGQgYmUKKyAgICAoY3J5cHRvZ3JhcGhpY2FsbHkgc3Ryb25nKSByYW5kb20gYnl0ZXMu ICBGb3IgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uLAorICAgIHRoZSBpbml0aWFsaXphdGlv biB2ZWN0b3IgaXMgY29uc3RydWN0ZWQgYXMKKzxwcm9ncmFtbGlzdGluZz4KK1NVQlNUUklO Ryg8cmVwbGFjZWFibGU+SE1BQzwvcmVwbGFjZWFibGU+KDxyZXBsYWNlYWJsZT5LPC9yZXBs YWNlYWJsZT4sIDxyZXBsYWNlYWJsZT5QPC9yZXBsYWNlYWJsZT4pIEZPUiA8cmVwbGFjZWFi bGU+SVZMRU48L3JlcGxhY2VhYmxlPikKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgd2hlcmUg PHJlcGxhY2VhYmxlPkhNQUM8L3JlcGxhY2VhYmxlPiBpcyB0aGUgSE1BQyBmdW5jdGlvbiBh c3NvY2lhdGVkIHdpdGgKKyAgICB0aGUgYWxnb3JpdGhtLCA8cmVwbGFjZWFibGU+SzwvcmVw bGFjZWFibGU+IGlzIHRoZSBwcmVmaXggb2YgdGhlIENFSyBvZgorICAgIHRoZSBsZW5ndGgg cmVxdWlyZWQgYnkgdGhlIEhNQUMgZnVuY3Rpb24sIGFuZCA8cmVwbGFjZWFibGU+UDwvcmVw bGFjZWFibGU+CisgICAgaXMgdGhlIHBsYWludGV4dCB0byBiZSBlbmNyeXB0ZWQuICAoVGhp cyBpcyB0aGUgc2FtZSBwb3J0aW9uIG9mIHRoZSBDRUsKKyAgICB0aGF0IHRoZSBBRUFEX0FF U18qX0hNQUNfKiBhbGdvcml0aG1zIHVzZSBmb3IgdGhlIE1BQyBwYXJ0LikKKyAgIDwvcGFy YT4KKyAgPC9zZWN0Mj4KKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJwcm90b2NvbC1jaGFu Z2VzIj4KICAgPHRpdGxlPlN1bW1hcnkgb2YgQ2hhbmdlcyBzaW5jZSBQcm90b2NvbCAyLjA8 L3RpdGxlPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggZTkwYTBlMWY4My4uMzMx YjFmMDEwYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbApAQCAtOCw2ICs4LDggQEAKIDwh RU5USVRZIGFib3J0ICAgICAgICAgICAgICBTWVNURU0gImFib3J0LnNnbWwiPgogPCFFTlRJ VFkgYWx0ZXJBZ2dyZWdhdGUgICAgIFNZU1RFTSAiYWx0ZXJfYWdncmVnYXRlLnNnbWwiPgog PCFFTlRJVFkgYWx0ZXJDb2xsYXRpb24gICAgIFNZU1RFTSAiYWx0ZXJfY29sbGF0aW9uLnNn bWwiPgorPCFFTlRJVFkgYWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5IFNZU1RFTSAiYWx0ZXJf Y29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwiPgorPCFFTlRJVFkgYWx0ZXJDb2x1bW5NYXN0 ZXJLZXkgU1lTVEVNICJhbHRlcl9jb2x1bW5fbWFzdGVyX2tleS5zZ21sIj4KIDwhRU5USVRZ IGFsdGVyQ29udmVyc2lvbiAgICBTWVNURU0gImFsdGVyX2NvbnZlcnNpb24uc2dtbCI+CiA8 IUVOVElUWSBhbHRlckRhdGFiYXNlICAgICAgU1lTVEVNICJhbHRlcl9kYXRhYmFzZS5zZ21s Ij4KIDwhRU5USVRZIGFsdGVyRGVmYXVsdFByaXZpbGVnZXMgU1lTVEVNICJhbHRlcl9kZWZh dWx0X3ByaXZpbGVnZXMuc2dtbCI+CkBAIC02Miw2ICs2NCw4IEBACiA8IUVOVElUWSBjcmVh dGVBZ2dyZWdhdGUgICAgU1lTVEVNICJjcmVhdGVfYWdncmVnYXRlLnNnbWwiPgogPCFFTlRJ VFkgY3JlYXRlQ2FzdCAgICAgICAgIFNZU1RFTSAiY3JlYXRlX2Nhc3Quc2dtbCI+CiA8IUVO VElUWSBjcmVhdGVDb2xsYXRpb24gICAgU1lTVEVNICJjcmVhdGVfY29sbGF0aW9uLnNnbWwi PgorPCFFTlRJVFkgY3JlYXRlQ29sdW1uRW5jcnlwdGlvbktleSBTWVNURU0gImNyZWF0ZV9j b2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCI+Cis8IUVOVElUWSBjcmVhdGVDb2x1bW5NYXN0 ZXJLZXkgU1lTVEVNICJjcmVhdGVfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCI+CiA8IUVOVElU WSBjcmVhdGVDb252ZXJzaW9uICAgU1lTVEVNICJjcmVhdGVfY29udmVyc2lvbi5zZ21sIj4K IDwhRU5USVRZIGNyZWF0ZURhdGFiYXNlICAgICBTWVNURU0gImNyZWF0ZV9kYXRhYmFzZS5z Z21sIj4KIDwhRU5USVRZIGNyZWF0ZURvbWFpbiAgICAgICBTWVNURU0gImNyZWF0ZV9kb21h aW4uc2dtbCI+CkBAIC0xMDksNiArMTEzLDggQEAKIDwhRU5USVRZIGRyb3BBZ2dyZWdhdGUg ICAgICBTWVNURU0gImRyb3BfYWdncmVnYXRlLnNnbWwiPgogPCFFTlRJVFkgZHJvcENhc3Qg ICAgICAgICAgIFNZU1RFTSAiZHJvcF9jYXN0LnNnbWwiPgogPCFFTlRJVFkgZHJvcENvbGxh dGlvbiAgICAgIFNZU1RFTSAiZHJvcF9jb2xsYXRpb24uc2dtbCI+Cis8IUVOVElUWSBkcm9w Q29sdW1uRW5jcnlwdGlvbktleSBTWVNURU0gImRyb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5 LnNnbWwiPgorPCFFTlRJVFkgZHJvcENvbHVtbk1hc3RlcktleSBTWVNURU0gImRyb3BfY29s dW1uX21hc3Rlcl9rZXkuc2dtbCI+CiA8IUVOVElUWSBkcm9wQ29udmVyc2lvbiAgICAgU1lT VEVNICJkcm9wX2NvbnZlcnNpb24uc2dtbCI+CiA8IUVOVElUWSBkcm9wRGF0YWJhc2UgICAg ICAgU1lTVEVNICJkcm9wX2RhdGFiYXNlLnNnbWwiPgogPCFFTlRJVFkgZHJvcERvbWFpbiAg ICAgICAgIFNZU1RFTSAiZHJvcF9kb21haW4uc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43NTk3Y2Q4MGNhCi0tLSAvZGV2L251bGwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApA QCAtMCwwICsxLDE4NiBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5f ZW5jcnlwdGlvbl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKwor PHJlZmVudHJ5IGlkPSJzcWwtYWx0ZXItY29sdW1uLWVuY3J5cHRpb24ta2V5Ij4KKyA8aW5k ZXh0ZXJtIHpvbmU9InNxbC1hbHRlci1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICA8cHJp bWFyeT5BTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRl cm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+QUxURVIgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4K KyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZv PgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5BTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVk8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmNoYW5nZSB0aGUg ZGVmaW5pdGlvbiBvZiBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleTwvcmVmcHVycG9zZT4KKyA8 L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitBTFRFUiBD T0xVTU4gRU5DUllQVElPTiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBB REQgVkFMVUUgKAorICAgIENPTFVNTl9NQVNURVJfS0VZID0gPHJlcGxhY2VhYmxlPmNtazwv cmVwbGFjZWFibGU+LAorICAgIFsgQUxHT1JJVEhNID0gPHJlcGxhY2VhYmxlPmFsZ29yaXRo bTwvcmVwbGFjZWFibGU+LCBdCisgICAgRU5DUllQVEVEX1ZBTFVFID0gPHJlcGxhY2VhYmxl PmVuY3ZhbDwvcmVwbGFjZWFibGU+CispCisKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtF WSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IERST1AgVkFMVUUgKAorICAgIENP TFVNTl9NQVNURVJfS0VZID0gPHJlcGxhY2VhYmxlPmNtazwvcmVwbGFjZWFibGU+CispCisK K0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFj ZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjZWFibGU+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgor QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNl YWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGU+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4g fCBDVVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQorPC9zeW5v cHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVz Y3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+QUxURVIgQ09MVU1O IEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIGEK KyAgIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAg VGhlIGZpcnN0IGZvcm0gYWRkcyBuZXcgZW5jcnlwdGVkIGtleSBkYXRhIHRvIGEgY29sdW1u IGVuY3J5cHRpb24ga2V5LAorICAgd2hpY2ggbXVzdCBiZSBlbmNyeXB0ZWQgd2l0aCBhIGRp ZmZlcmVudCBjb2x1bW4gbWFzdGVyIGtleSB0aGFuIHRoZQorICAgZXhpc3Rpbmcga2V5IGRh dGEuICBUaGUgc2Vjb25kIGZvcm0gcmVtb3ZlcyBhIGtleSBkYXRhIGVudHJ5IGZvciBhIGdp dmVuCisgICBjb2x1bW4gbWFzdGVyIGtleS4gIFRvZ2V0aGVyLCB0aGVzZSBmb3JtcyBjYW4g YmUgdXNlZCBmb3IgY29sdW1uIG1hc3RlciBrZXkKKyAgIHJvdGF0aW9uLgorICA8L3BhcmE+ CisKKyAgPHBhcmE+CisgICBZb3UgbXVzdCBvd24gdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSB0byB1c2UgPGNvbW1hbmQ+QUxURVIgQ09MVU1OCisgICBFTkNSWVBUSU9OIEtFWTwvY29t bWFuZD4uICBUbyBhbHRlciB0aGUgb3duZXIsIHlvdSBtdXN0IGFsc28gYmUgYSBkaXJlY3Qg b3IKKyAgIGluZGlyZWN0IG1lbWJlciBvZiB0aGUgbmV3IG93bmluZyByb2xlLCBhbmQgdGhh dCByb2xlIG11c3QgaGF2ZQorICAgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxl Z2Ugb24gdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSdzCisgICBkYXRhYmFzZS4gIChUaGVz ZSByZXN0cmljdGlvbnMgZW5mb3JjZSB0aGF0IGFsdGVyaW5nIHRoZSBvd25lciBkb2Vzbid0 IGRvCisgICBhbnl0aGluZyB5b3UgY291bGRuJ3QgZG8gYnkgZHJvcHBpbmcgYW5kIHJlY3Jl YXRpbmcgdGhlIGNvbHVtbiBlbmNyeXB0aW9uCisgICBrZXkuICBIb3dldmVyLCBhIHN1cGVy dXNlciBjYW4gYWx0ZXIgb3duZXJzaGlwIG9mIGFueSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkK KyAgIGFueXdheS4pCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgor ICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2 YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgVGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY29sdW1uIGVuY3J5cHRpb24ga2V5 LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5jbWs8L3JlcGxh Y2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBU aGUgbmFtZSBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkgdGhhdCB3YXMgdXNlZCB0byBlbmNy eXB0IHRoaXMgY29sdW1uCisgICAgICBlbmNyeXB0aW9uIGtleS4KKyAgICAgPC9wYXJhPgor ICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+YWxnb3JpdGhtPC9yZXBsYWNlYWJsZT48L3Rl cm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGVuY3J5cHRp b24gYWxnb3JpdGhtIHRoYXQgd2FzIHVzZWQgdG8gZW5jcnlwdCB0aGUga2V5IG1hdGVyaWFs IG9mCisgICAgICB0aGlzIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4gIFNlZSA8eHJlZgorICAg ICAgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiLz4gZm9yIGRl dGFpbHMKKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+ZW5jdmFs PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhlIGtleSBtYXRlcmlhbCBvZiB0aGlzIGNvbHVtbiBlbmNyeXB0aW9uIGtleSwg ZW5jcnlwdGVkIHdpdGggdGhlCisgICAgICBzcGVjaWZpZWQgY29sdW1uIG1hc3RlciBrZXkg dXNpbmcgdGhlIHNwZWNpZmllZCBhbGdvcml0aG0uICBUaGUgdmFsdWUKKyAgICAgIG11c3Qg YmUgYSA8dHlwZT5ieXRlYTwvdHlwZT4tY29tcGF0aWJsZSBsaXRlcmFsLgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdf bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGUgbmV3IG5hbWUgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmV3X293bmVyPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAg ICA8cGFyYT4KKyAgICAgIFRoZSBuZXcgb3duZXIgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9u IGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRvIHJvdGF0ZSB0aGUg bWFzdGVyIGtleXMgdXNlZCB0byBlbmNyeXB0IGEgZ2l2ZW4gY29sdW1uIGVuY3J5cHRpb24g a2V5LAorICAgdXNlIGEgY29tbWFuZCBzZXF1ZW5jZSBsaWtlIHRoaXM6Cis8cHJvZ3JhbWxp c3Rpbmc+CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBBREQgVkFMVUUgKAor ICAgIENPTFVNTl9NQVNURVJfS0VZID0gY21rMiwKKyAgICBFTkNSWVBURURfVkFMVUUgPSAn XHgwMTAyMDIwNC4uLicKKyk7CisKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsx IERST1AgVkFMVUUgKAorICAgIENPTFVNTl9NQVNURVJfS0VZID0gY21rMQorKTsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIHJlbmFtZSB0aGUg Y29sdW1uIGVuY3J5cHRpb24ga2V5IDxsaXRlcmFsPmNlazE8L2xpdGVyYWw+IHRvCisgICA8 bGl0ZXJhbD5jZWsyPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIENPTFVN TiBFTkNSWVBUSU9OIEtFWSBjZWsxIFJFTkFNRSBUTyBjZWsyOworPC9wcm9ncmFtbGlzdGlu Zz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hhbmdlIHRoZSBvd25lciBvZiB0 aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IDxsaXRlcmFsPmNlazE8L2xpdGVyYWw+IHRvCisg ICA8bGl0ZXJhbD5qb2U8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgT1dORVIgVE8gam9lOworPC9wcm9ncmFtbGlzdGlu Zz48L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBh dGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlcmUgaXMgbm8gPGNvbW1hbmQ+ QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiBzdGF0ZW1lbnQgaW4gdGhl CisgICBTUUwgc3RhbmRhcmQuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9 ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1u LWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1kcm9wLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPjwvbWVtYmVyPgorICA8L3NpbXBs ZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMC4uMTNlMzEwYjIyNwotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApAQCAtMCwwICsxLDEx NyBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fbWFzdGVyX2tleS5z Z21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNx bC1hbHRlci1jb2x1bW4tbWFzdGVyLWtleSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtYWx0 ZXItY29sdW1uLW1hc3Rlci1rZXkiPgorICA8cHJpbWFyeT5BTFRFUiBDT0xVTU4gTUFTVEVS IEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50 cnl0aXRsZT5BTFRFUiBDT0xVTU4gTUFTVEVSIEtFWTwvcmVmZW50cnl0aXRsZT4KKyAgPG1h bnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBT dGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4K KyAgPHJlZm5hbWU+QUxURVIgQ09MVU1OIE1BU1RFUiBLRVk8L3JlZm5hbWU+CisgIDxyZWZw dXJwb3NlPmNoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiBhIGNvbHVtbiBtYXN0ZXIga2V5PC9y ZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5v cHNpcz4KK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBs YWNlYWJsZT4gUkVOQU1FIFRPIDxyZXBsYWNlYWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFibGU+ CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFi bGU+IE9XTkVSIFRPIHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwg Q1VSUkVOVF9ST0xFIHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KKzwvc3lub3Bz aXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2Ny aXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkFMVEVSIENPTFVNTiBN QVNURVIgS0VZPC9jb21tYW5kPiBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIGEKKyAgIGNv bHVtbiBtYXN0ZXIga2V5LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBZb3UgbXVzdCBv d24gdGhlIGNvbHVtbiBtYXN0ZXIga2V5IHRvIHVzZSA8Y29tbWFuZD5BTFRFUiBDT0xVTU4g TUFTVEVSCisgICBLRVk8L2NvbW1hbmQ+LiAgVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVz dCBhbHNvIGJlIGEgZGlyZWN0IG9yIGluZGlyZWN0CisgICBtZW1iZXIgb2YgdGhlIG5ldyBv d25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUKKyAgIDxsaXRlcmFsPkNSRUFU RTwvbGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZSBjb2x1bW4gbWFzdGVyIGtleSdzIGRhdGFi YXNlLgorICAgKFRoZXNlIHJlc3RyaWN0aW9ucyBlbmZvcmNlIHRoYXQgYWx0ZXJpbmcgdGhl IG93bmVyIGRvZXNuJ3QgZG8gYW55dGhpbmcgeW91CisgICBjb3VsZG4ndCBkbyBieSBkcm9w cGluZyBhbmQgcmVjcmVhdGluZyB0aGUgY29sdW1uIG1hc3RlciBrZXkuICBIb3dldmVyLCBh CisgICBzdXBlcnVzZXIgY2FuIGFsdGVyIG93bmVyc2hpcCBvZiBhbnkgY29sdW1uIG1hc3Rl ciBrZXkgYW55d2F5LikKKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBUaGUgbmFtZSAob3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiBh biBleGlzdGluZyBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8 dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2Vh YmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5l dyBuYW1lIG9mIHRoZSBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X293bmVyPC9yZXBs YWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRo ZSBuZXcgb3duZXIgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5LgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxl PgorCisgIDxwYXJhPgorICAgVG8gcmVuYW1lIHRoZSBjb2x1bW4gbWFzdGVyIGtleSA8bGl0 ZXJhbD5jbWsxPC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+Y21rMjwvbGl0ZXJhbD46Cis8 cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFJFTkFNRSBU TyBjbWsyOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAg VG8gY2hhbmdlIHRoZSBvd25lciBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkgPGxpdGVyYWw+ Y21rMTwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmpvZTwvbGl0ZXJhbD46Cis8cHJvZ3Jh bWxpc3Rpbmc+CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIE9XTkVSIFRPIGpvZTsK KzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJl IGlzIG5vIDxjb21tYW5kPkFMVEVSIENPTFVNTiBNQVNURVIgS0VZPC9jb21tYW5kPiBzdGF0 ZW1lbnQgaW4gdGhlCisgICBTUUwgc3RhbmRhcmQuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1w bGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1j cmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWRyb3AtY29sdW1uLW1hc3Rlci1rZXkiLz48L21lbWJlcj4KKyAgPC9z aW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5hOTRiMDkyNGIxCi0tLSAvZGV2L251 bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX2VuY3J5cHRpb25fa2V5 LnNnbWwKQEAgLTAsMCArMSwxNjMgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24K Ky0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5cHRpb24ta2V5 Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5cHRpb24ta2V5 Ij4KKyAgPHByaW1hcnk+Q1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvcHJpbWFyeT4K KyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5DUkVBVEUg Q09MVU1OIEVOQ1JZUFRJT04gS0VZPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8 L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8 L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFt ZT5DUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9yZWZuYW1lPgorICA8cmVmcHVycG9z ZT5kZWZpbmUgYSBuZXcgY29sdW1uIGVuY3J5cHRpb24ga2V5PC9yZWZwdXJwb3NlPgorIDwv cmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0NSRUFURSBD T0xVTU4gRU5DUllQVElPTiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBX SVRIIFZBTFVFUyAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkgPSA8cmVwbGFjZWFibGU+Y21r PC9yZXBsYWNlYWJsZT4sCisgICAgWyBBTEdPUklUSE0gPSA8cmVwbGFjZWFibGU+YWxnb3Jp dGhtPC9yZXBsYWNlYWJsZT4sIF0KKyAgICBFTkNSWVBURURfVkFMVUUgPSA8cmVwbGFjZWFi bGU+ZW5jdmFsPC9yZXBsYWNlYWJsZT4KKykKK1sgLCAuLi4gXQorPC9zeW5vcHNpcz4KKyA8 L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248 L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+Q1JFQVRFIENPTFVNTiBFTkNSWVBU SU9OIEtFWTwvY29tbWFuZD4gZGVmaW5lcyBhIG5ldyBjb2x1bW4KKyAgIGVuY3J5cHRpb24g a2V5LiAgQSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgaXMgdXNlZCBmb3IgY2xpZW50LXNpZGUg ZW5jcnlwdGlvbgorICAgb2YgdGFibGUgY29sdW1ucyB0aGF0IGhhdmUgYmVlbiBkZWZpbmVk IGFzIGVuY3J5cHRlZC4gIFRoZSBrZXkgbWF0ZXJpYWwgb2YKKyAgIGEgY29sdW1uIGVuY3J5 cHRpb24ga2V5IGlzIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UncyBzeXN0ZW0gY2F0YWxvZ3Ms CisgICBlbmNyeXB0ZWQgKHdyYXBwZWQpIGJ5IGEgY29sdW1uIG1hc3RlciBrZXkgKHdoaWNo IGluIHR1cm4gaXMgb25seQorICAgYWNjZXNzaWJsZSB0byB0aGUgY2xpZW50LCBub3QgdGhl IGRhdGFiYXNlIHNlcnZlcikuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEEgY29sdW1u IGVuY3J5cHRpb24ga2V5IGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggbW9yZSB0aGFuIG9uZSBj b2x1bW4gbWFzdGVyCisgICBrZXkuICBUbyBzcGVjaWZ5IHRoYXQsIHNwZWNpZnkgbW9yZSB0 aGFuIG9uZSBwYXJlbnRoZXNpemVkIGRlZmluaXRpb24gKHNlZQorICAgYWxzbyB0aGUgZXhh bXBsZXMpLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRp dGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT48L3Rl cm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2Yg dGhlIG5ldyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PHJlcGxhY2VhYmxlPmNtazwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gbWFz dGVyIGtleSB0aGF0IHdhcyB1c2VkIHRvIGVuY3J5cHQgdGhpcyBjb2x1bW4KKyAgICAgIGVu Y3J5cHRpb24ga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJs ZT5hbGdvcml0aG08L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+CisgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gdGhhdCB3YXMgdXNl ZCB0byBlbmNyeXB0IHRoZSBrZXkgbWF0ZXJpYWwgb2YKKyAgICAgIHRoaXMgY29sdW1uIGVu Y3J5cHRpb24ga2V5LiAgU3VwcG9ydGVkIGFsZ29yaXRobXMgYXJlOgorICAgICAgPGl0ZW1p emVkbGlzdD4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPjxsaXRlcmFsPlJT QUVTX09BRVBfU0hBXzE8L2xpdGVyYWw+IChkZWZhdWx0KTwvcGFyYT4KKyAgICAgICA8L2xp c3RpdGVtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+PGxpdGVyYWw+UlNB RVNfT0FFUF9TSEFfMjU2PC9saXRlcmFsPiAoZGVmYXVsdCk8L3BhcmE+CisgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgICA8L3BhcmE+CisKKyAgICAg PHBhcmE+CisgICAgICBUaGlzIGlzIGluZm9ybWF0aW9uYWwgb25seS4gIFRoZSBzcGVjaWZp ZWQgdmFsdWUgaXMgcHJvdmlkZWQgdG8gdGhlCisgICAgICBjbGllbnQsIHdoaWNoIG1heSB1 c2UgaXQgZm9yIGRlY3J5cHRpbmcgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBvbiB0aGUK KyAgICAgIGNsaWVudCBzaWRlLiAgQnV0IGEgY2xpZW50IGlzIGFsc28gZnJlZSB0byBpZ25v cmUgdGhpcyBpbmZvcm1hdGlvbiBhbmQKKyAgICAgIGZpZ3VyZSBvdXQgaG93IHRvIGFycmFu Z2UgdGhlIGRlY3J5cHRpb24gaW4gc29tZSBvdGhlciB3YXkuCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPmVuY3ZhbDwvcmVwbGFjZWFibGU+PC90ZXJtPgor CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBrZXkgbWF0ZXJpYWwg b2YgdGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBrZXksIGVuY3J5cHRlZCB3aXRoIHRoZQorICAg ICAgc3BlY2lmaWVkIGNvbHVtbiBtYXN0ZXIga2V5IHVzaW5nIHRoZSBzcGVjaWZpZWQgYWxn b3JpdGhtLiAgVGhlIHZhbHVlCisgICAgICBtdXN0IGJlIGEgPHR5cGU+Ynl0ZWE8L3R5cGU+ LWNvbXBhdGlibGUgbGl0ZXJhbC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxw cm9ncmFtbGlzdGluZz4KK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBXSVRI IFZBTFVFUyAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkgPSBjbWsxLAorICAgIEVOQ1JZUFRF RF9WQUxVRSA9ICdceDAxMDIwMjA0Li4uJworKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIFRvIHNwZWNpZnkgbW9yZSB0aGFuIG9uZSBhc3NvY2lh dGVkIGNvbHVtbiBtYXN0ZXIga2V5OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIENPTFVN TiBFTkNSWVBUSU9OIEtFWSBjZWsxIFdJVEggVkFMVUVTICgKKyAgICBDT0xVTU5fTUFTVEVS X0tFWSA9IGNtazEsCisgICAgRU5DUllQVEVEX1ZBTFVFID0gJ1x4MDEwMjAyMDQuLi4nCisp LAorKAorICAgIENPTFVNTl9NQVNURVJfS0VZID0gY21rMiwKKyAgICBFTkNSWVBURURfVkFM VUUgPSAnXHhGMUYyRjJGNC4uLicKKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+ CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8 L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlcmUgaXMgbm8gPGNvbW1hbmQ+Q1JFQVRFIENP TFVNTiBFTkNSWVBUSU9OIEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGluCisgICB0aGUgU1FM IHN0YW5kYXJkLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUi PgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29sdW1uLWVuY3J5cHRp b24ta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9w LWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBs aW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgIDwv c2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZWM1ZmE0Y2RlNQotLS0gL2Rldi9udWxsCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKQEAg LTAsMCArMSwxMDYgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9t YXN0ZXJfa2V5LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZl bnRyeSBpZD0ic3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSI+CisgPGluZGV4dGVybSB6 b25lPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyAgPHByaW1hcnk+Q1JFQVRF IENPTFVNTiBNQVNURVIgS0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1l dGE+CisgIDxyZWZlbnRyeXRpdGxlPkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWTwvcmVmZW50 cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5T UUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisK KyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZPC9y ZWZuYW1lPgorICA8cmVmcHVycG9zZT5kZWZpbmUgYSBuZXcgY29sdW1uIG1hc3RlciBrZXk8 L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5 bm9wc2lzPgorQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9y ZXBsYWNlYWJsZT4gV0lUSCAoCisgICAgWyBSRUFMTSA9IDxyZXBsYWNlYWJsZT5yZWFsbTwv cmVwbGFjZWFibGU+IF0KKykKKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4K KyAgIDxjb21tYW5kPkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWTwvY29tbWFuZD4gZGVmaW5l cyBhIG5ldyBjb2x1bW4gbWFzdGVyCisgICBrZXkuICBBIGNvbHVtbiBtYXN0ZXIga2V5IGlz IHVzZWQgdG8gZW5jcnlwdCBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzLCB3aGljaAorICAgYXJl IHRoZSBrZXlzIHRoYXQgYWN0dWFsbHkgZW5jcnlwdCB0aGUgY29sdW1uIGRhdGEuICBUaGUg a2V5IG1hdGVyaWFsIG9mCisgICB0aGUgY29sdW1uIG1hc3RlciBrZXkgaXMgbm90IHN0b3Jl ZCBpbiB0aGUgZGF0YWJhc2UuICBUaGUgZGVmaW5pdGlvbiBvZiBhCisgICBjb2x1bW4gbWFz dGVyIGtleSByZWNvcmRzIGluZm9ybWF0aW9uIHRoYXQgd2lsbCBhbGxvdyBhIGNsaWVudCB0 byBsb2NhdGUKKyAgIHRoZSBrZXkgbWF0ZXJpYWwsIGZvciBleGFtcGxlIGluIGEgZmlsZSBv ciBpbiBhIGtleSBtYW5hZ2VtZW50IHN5c3RlbS4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+ CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFy aWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+ bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBuZXcgY29sdW1uIG1hc3RlciBrZXkuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2 YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPnJlYWxtPC9yZXBsYWNlYWJs ZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBp cyBhbiBvcHRpb25hbCBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBjb2x1 bW4gbWFzdGVyCisgICAgICBrZXlzIGludG8gZ3JvdXBzIGZvciBsb29rdXAgYnkgY2xpZW50 cy4gIFRoZSBpbnRlbnQgaXMgdGhhdCBhbGwgY29sdW1uCisgICAgICBtYXN0ZXIga2V5cyB0 aGF0IGFyZSBzdG9yZWQgaW4gdGhlIHNhbWUgc3lzdGVtIChmaWxlIHN5c3RlbSBsb2NhdGlv biwKKyAgICAgIGtleSBtYW5hZ2VtZW50IHN5c3RlbSwgZXRjLikgc2hvdWxkIGJlIGluIHRo ZSBzYW1lIHJlYWxtLiAgQSBjbGllbnQKKyAgICAgIHdvdWxkIHRoZW4gYmUgY29uZmlndXJl ZCB0byBsb29rIHVwIGFsbCBrZXlzIGluIGEgZ2l2ZW4gcmVhbG0gaW4gYQorICAgICAgY2Vy dGFpbiB3YXkuICBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIHJlc3BlY3RpdmUgY2xp ZW50IGxpYnJhcnkgZm9yCisgICAgICBmdXJ0aGVyIHVzYWdlIGluc3RydWN0aW9ucy4KKyAg ICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAgVGhlIGRlZmF1bHQgaXMgdGhlIGVt cHR5IHN0cmluZy4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0 MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworPHByb2dyYW1saXN0aW5nPgorQ1JF QVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazEgKHJlYWxtID0gJ215cmVhbG0nKTsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNv bXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlcmUgaXMgbm8gPGNvbW1h bmQ+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZPC9jb21tYW5kPiBzdGF0ZW1lbnQgaW4KKyAg IHRoZSBTUUwgc3RhbmRhcmQuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9 ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlci1jb2x1bW4t bWFzdGVyLWtleSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwt ZHJvcC1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBs aW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPjwvbWVtYmVyPgor ICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV90YWJsZS5zZ21sCmluZGV4IGMxNGIyMDEwZDguLmZlZWJmNTFmZDkgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApAQCAtMjIsNyArMjIsNyBAQAogIDxy ZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KIENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwg XSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJ U1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxh Y2VhYmxlPiAoIFsKLSAgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1u X25hbWU8L3JlcGxhY2VhYmxlPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0 YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBTVE9SQUdFIHsgUExBSU4gfCBFWFRFUk5BTCB8IEVY VEVOREVEIHwgTUFJTiB9IF0gWyBDT01QUkVTU0lPTiA8cmVwbGFjZWFibGU+Y29tcHJlc3Np b25fbWV0aG9kPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxh dGlvbjwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KKyAgeyA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBF TkNSWVBURUQgV0lUSCAoIDxyZXBsYWNlYWJsZT5lbmNyeXB0aW9uX29wdGlvbnM8L3JlcGxh Y2VhYmxlPiApIF0gWyBTVE9SQUdFIHsgUExBSU4gfCBFWFRFUk5BTCB8IEVYVEVOREVEIHwg TUFJTiB9IF0gWyBDT01QUkVTU0lPTiA8cmVwbGFjZWFibGU+Y29tcHJlc3Npb25fbWV0aG9k PC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVw bGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX2Nv bnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KICAgICB8IDxyZXBsYWNlYWJsZT50 YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4KICAgICB8IExJS0UgPHJlcGxhY2VhYmxl PnNvdXJjZV90YWJsZTwvcmVwbGFjZWFibGU+IFsgPHJlcGxhY2VhYmxlPmxpa2Vfb3B0aW9u PC9yZXBsYWNlYWJsZT4gLi4uIF0gfQogICAgIFssIC4uLiBdCkBAIC0zNDksNiArMzQ5LDQ2 IEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92 YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+ RU5DUllQVEVEIFdJVEggKCA8cmVwbGFjZWFibGU+ZW5jcnlwdGlvbl9vcHRpb25zPC9yZXBs YWNlYWJsZT4gKTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIEVuYWJsZXMgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gZm9yIHRo ZSBjb2x1bW4uCisgICAgICA8cmVwbGFjZWFibGU+ZW5jcnlwdGlvbl9vcHRpb25zPC9yZXBs YWNlYWJsZT4gYXJlIGNvbW1hLXNlcGFyYXRlZAorICAgICAgPGxpdGVyYWw+a2V5PXZhbHVl PC9saXRlcmFsPiBzcGVjaWZpY2F0aW9ucy4gIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUK KyAgICAgIGF2YWlsYWJsZToKKyAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+Y29sdW1uX2VuY3J5cHRpb25fa2V5 PC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgU3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlv biBrZXkgdG8gdXNlLiAgU3BlY2lmeWluZworICAgICAgICAgIHRoaXMgaXMgbWFuZGF0b3J5 LgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFy bGlzdGVudHJ5PgorICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRl cmFsPmVuY3J5cHRpb25fdHlwZTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRl bT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIDxsaXRlcmFsPnJhbmRvbWl6ZWQ8L2xp dGVyYWw+ICh0aGUgZGVmYXVsdCkgb3IgPGxpdGVyYWw+ZGV0ZXJtaW5pc3RpYzwvbGl0ZXJh bD4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zh cmxpc3RlbnRyeT4KKyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0 ZXJhbD5hbGdvcml0aG08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gdG8g dXNlLiAgVGhlIGRlZmF1bHQgaXMKKyAgICAgICAgICA8bGl0ZXJhbD5BRUFEX0FFU18xMjhf Q0JDX0hNQUNfU0hBXzI1NjwvbGl0ZXJhbD4uCisgICAgICAgICA8L3BhcmE+CisgICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICA8L3ZhcmlhYmxl bGlzdD4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48bGl0ZXJhbD5JTkhFUklUUyAo IDxyZXBsYWNlYWJsZT5wYXJlbnRfdGFibGU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApPC9s aXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMC4uOWQxNTdkZTljNQotLS0gL2Rldi9udWxsCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApAQCAtMCww ICsxLDExMiBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9lbmNyeXB0 aW9uX2tleS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50 cnkgaWQ9InNxbC1kcm9wLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgPGluZGV4dGVybSB6 b25lPSJzcWwtZHJvcC1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICA8cHJpbWFyeT5EUk9Q IENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxy ZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5EUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwv cmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNj aW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1l dGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBDT0xVTU4gRU5DUllQVElP TiBLRVk8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPnJlbW92ZSBhIGNvbHVtbiBlbmNyeXB0 aW9uIGtleTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNk aXY+Cis8c3lub3BzaXM+CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBbIElGIEVYSVNU UyBdIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gWyBDQVNDQURFIHwgUkVTVFJJ Q1QgXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgor ICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+ RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVk8L2NvbW1hbmQ+IHJlbW92ZXMgYSBwcmV2aW91 c2x5IGRlZmluZWQKKyAgIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4gIFRvIGJlIGFibGUgdG8g ZHJvcCBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleSwgeW91CisgICBtdXN0IGJlIGl0cyBvd25l ci4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Q YXJhbWV0ZXJzPC90aXRsZT4KKworICAgPHZhcmlhYmxlbGlzdD4KKyAgICA8dmFybGlzdGVu dHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgor ICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBEbyBub3QgdGhyb3cgYW4g ZXJyb3IgaWYgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkb2VzIG5vdCBleGlzdC4KKyAg ICAgICBBIG5vdGljZSBpcyBpc3N1ZWQgaW4gdGhpcyBjYXNlLgorICAgICAgPC9wYXJhPgor ICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3Rl bnRyeT4KKyAgICAgPHRlcm0+PHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVy bT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgbmFtZSBv ZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LgorICAgICAgPC9wYXJhPgorICAgICA8L2xp c3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAg ICAgPHRlcm0+PGxpdGVyYWw+Q0FTQ0FERTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0 aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIEF1dG9tYXRpY2FsbHkgZHJvcCBvYmplY3Rz IHRoYXQgZGVwZW5kIG9uIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXksCisgICAgICAgYW5k IGluIHR1cm4gYWxsIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhvc2Ugb2JqZWN0cworICAg ICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLWRlcGVuZCIvPikuCisgICAgICA8L3BhcmE+ CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlz dGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5SRVNUUklDVDwvbGl0ZXJhbD48L3Rlcm0+ CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJlZnVzZSB0byBkcm9w IHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgaWYgYW55IG9iamVjdHMgZGVwZW5kIG9uIGl0 LiAgVGhpcworICAgICAgIGlzIHRoZSBkZWZhdWx0LgorICAgICAgPC9wYXJhPgorICAgICA8 L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorICAgPC92YXJpYWJsZWxpc3Q+Cisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4K KworICA8cGFyYT4KKzxwcm9ncmFtbGlzdGluZz4KK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04g S0VZIGNlazE7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisg PHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+ CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5EUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwv Y29tbWFuZD4gc3RhdGVtZW50IGluCisgICB0aGUgU1FMIHN0YW5kYXJkLgorICA8L3BhcmE+ CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRs ZT4KKworICAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1hbHRlci1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4K KyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlv bi1rZXkiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwv cmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX21h c3Rlcl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fbWFzdGVyX2tl eS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmM4NTA5OGVh MWMKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX21h c3Rlcl9rZXkuc2dtbApAQCAtMCwwICsxLDExMiBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3Jl Zi9kcm9wX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlv bgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWRyb3AtY29sdW1uLW1hc3Rlci1rZXkiPgor IDxpbmRleHRlcm0gem9uZT0ic3FsLWRyb3AtY29sdW1uLW1hc3Rlci1rZXkiPgorICA8cHJp bWFyeT5EUk9QIENPTFVNTiBNQVNURVIgS0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgor CisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkRST1AgQ09MVU1OIE1BU1RFUiBLRVk8 L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlz Y2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZt ZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkRST1AgQ09MVU1OIE1BU1RFUiBL RVk8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPnJlbW92ZSBhIGNvbHVtbiBtYXN0ZXIga2V5 PC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxz eW5vcHNpcz4KK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgWyBJRiBFWElTVFMgXSA8cmVwbGFj ZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKzwvc3lu b3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRl c2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgQ09MVU1O IE1BU1RFUiBLRVk8L2NvbW1hbmQ+IHJlbW92ZXMgYSBwcmV2aW91c2x5IGRlZmluZWQKKyAg IGNvbHVtbiBtYXN0ZXIga2V5LiAgVG8gYmUgYWJsZSB0byBkcm9wIGEgY29sdW1uIG1hc3Rl ciBrZXksIHlvdQorICAgbXVzdCBiZSBpdHMgb3duZXIuCisgIDwvcGFyYT4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAg IDx2YXJpYWJsZWxpc3Q+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVy YWw+SUYgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAg PHBhcmE+CisgICAgICAgRG8gbm90IHRocm93IGFuIGVycm9yIGlmIHRoZSBjb2x1bW4gbWFz dGVyIGtleSBkb2VzIG5vdCBleGlzdC4KKyAgICAgICBBIG5vdGljZSBpcyBpc3N1ZWQgaW4g dGhpcyBjYXNlLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFy bGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PHJlcGxhY2Vh YmxlPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgICA8bGlzdGl0ZW0+CisgICAg ICA8cGFyYT4KKyAgICAgICBUaGUgbmFtZSBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkuCisg ICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisK KyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5DQVNDQURFPC9saXRl cmFsPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgQXV0 b21hdGljYWxseSBkcm9wIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhlIGNvbHVtbiBtYXN0 ZXIga2V5LAorICAgICAgIGFuZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRoYXQgZGVwZW5kIG9u IHRob3NlIG9iamVjdHMKKyAgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1kZXBlbmQi Lz4pLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVu dHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+UkVTVFJJ Q1Q8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAg ICAgICBSZWZ1c2UgdG8gZHJvcCB0aGUgY29sdW1uIG1hc3RlciBrZXkgaWYgYW55IG9iamVj dHMgZGVwZW5kIG9uIGl0LiAgVGhpcworICAgICAgIGlzIHRoZSBkZWZhdWx0LgorICAgICAg PC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorICAgPC92 YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4 YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxwcm9ncmFtbGlzdGluZz4KK0RST1AgQ09M VU1OIE1BU1RFUiBLRVkgY2VrMTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVm c2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkRST1AgQ09MVU1OIE1BU1RF UiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgorICAgdGhlIFNRTCBzdGFuZGFyZC4KKyAg PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxz bzwvdGl0bGU+CisKKyAgICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29sdW1uLW1hc3Rlci1rZXkiLz48L21lbWJl cj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVy LWtleSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9y ZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wLnNnbWwKaW5kZXggYzA4Mjc2YmMwYS4uODNhYWIx Y2YwZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wLnNnbWwKQEAgLTY5MSw2ICs2OTEsMzcgQEAgPHRp dGxlPk9wdGlvbnM8L3RpdGxlPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0 ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxvcHRpb24+LS1k ZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zPC9vcHRpb24+PC90ZXJtPgorICAgICAgPGxpc3Rp dGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9wdGlvbiBjYXVzZXMgdGhlIHZh bHVlcyBvZiBhbGwgZW5jcnlwdGVkIGNvbHVtbnMgdG8gYmUgZGVjcnlwdGVkCisgICAgICAg IGFuZCB3cml0dGVuIHRvIHRoZSBvdXRwdXQgaW4gcGxhaW50ZXh0LiAgQnkgZGVmYXVsdCwg dGhlIHZhbHVlcyBvZgorICAgICAgICBlbmNyeXB0ZWQgY29sdW1ucyBhcmUgd3JpdHRlbiB0 byB0aGUgZHVtcCBpbiBjaXBoZXJ0ZXh0ICh0aGF0IGlzLCB0aGV5CisgICAgICAgIGFyZSBu b3QgZGVjcnlwdGVkKS4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAg ICAgVGhpcyBvcHRpb24gcmVxdWlyZXMgdGhhdCA8b3B0aW9uPi0taW5zZXJ0czwvb3B0aW9u PiwKKyAgICAgICAgPG9wdGlvbj4tLWNvbHVtbi1pbnNlcnRzPC9vcHRpb24+IG9yCisgICAg ICAgIDxvcHRpb24+LS1yb3dzLXBlci1pbnNlcnQ8L29wdGlvbj4gaXMgYWxzbyBzcGVjaWZp ZWQuCisgICAgICAgICg8Y29tbWFuZD5DT1BZPC9jb21tYW5kPiBkb2VzIG5vdCBzdXBwb3J0 IGNvbHVtbiBkZWNyeXB0aW9uLikKKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4K KyAgICAgICAgRm9yIHJvdXRpbmUgYmFja3VwcywgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMg YXBwcm9wcmlhdGUgYW5kIG1vc3QKKyAgICAgICAgZWZmaWNpZW50LiAgVGhpcyBvcHRpb24g aXMgc3VpdGFibGUgaWYgdGhlIGRhdGEgaXMgbWVhbnQgdG8gYmUKKyAgICAgICAgaW5zcGVj dGVkIG9yIGV4cG9ydGVkIGZvciBvdGhlciBwdXJwb3Nlcy4gIE5vdGUgdGhhdCBhIGR1bXAg Y3JlYXRlZAorICAgICAgICB3aXRoIHRoaXMgb3B0aW9uIGNhbm5vdCBiZSByZXN0b3JlZCBp bnRvIGEgZGF0YWJhc2Ugd2l0aCBjb2x1bW4KKyAgICAgICAgZW5jcnlwdGlvbi4KKyAgICAg ICA8L3BhcmE+CisgICAgICAgPCEtLQorICAgICAgICAgICBYWFg6IFRoZSBsYXR0ZXIgd291 bGQgcmVxdWlyZSBhbm90aGVyIHBnX2R1bXAgb3B0aW9uIHRvIHB1dCBvdXQKKyAgICAgICAg ICAgSU5TRVJUIC4uLiBcZ2VuY3IgY29tbWFuZHMuCisgICAgICAgLS0+CisgICAgICA8L2xp c3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVudHJ5Pgog ICAgICAgPHRlcm0+PG9wdGlvbj4tLWRpc2FibGUtZG9sbGFyLXF1b3Rpbmc8L29wdGlvbj48 L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L3BnX2R1bXBhbGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcGFsbC5zZ21sCmlu ZGV4IDVkNTQwNzRlMDEuLmJkZGU1ZmM4YzEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9y ZWYvcGdfZHVtcGFsbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcGFsbC5z Z21sCkBAIC0yNTksNiArMjU5LDMzIEBAIDx0aXRsZT5PcHRpb25zPC90aXRsZT4KICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50 cnk+CisgICAgICA8dGVybT48b3B0aW9uPi0tZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1uczwv b3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAg ICAgVGhpcyBvcHRpb24gY2F1c2VzIHRoZSB2YWx1ZXMgb2YgYWxsIGVuY3J5cHRlZCBjb2x1 bW5zIHRvIGJlIGRlY3J5cHRlZAorICAgICAgICBhbmQgd3JpdHRlbiB0byB0aGUgb3V0cHV0 IGluIHBsYWludGV4dC4gIEJ5IGRlZmF1bHQsIHRoZSB2YWx1ZXMgb2YKKyAgICAgICAgZW5j cnlwdGVkIGNvbHVtbnMgYXJlIHdyaXR0ZW4gdG8gdGhlIGR1bXAgaW4gY2lwaGVydGV4dCAo dGhhdCBpcywgdGhleQorICAgICAgICBhcmUgbm90IGRlY3J5cHRlZCkuCisgICAgICAgPC9w YXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgb3B0aW9uIHJlcXVpcmVzIHRo YXQgPG9wdGlvbj4tLWluc2VydHM8L29wdGlvbj4sCisgICAgICAgIDxvcHRpb24+LS1jb2x1 bW4taW5zZXJ0czwvb3B0aW9uPiBvcgorICAgICAgICA8b3B0aW9uPi0tcm93cy1wZXItaW5z ZXJ0PC9vcHRpb24+IGlzIGFsc28gc3BlY2lmaWVkLgorICAgICAgICAoPGNvbW1hbmQ+Q09Q WTwvY29tbWFuZD4gZG9lcyBub3Qgc3VwcG9ydCBjb2x1bW4gZGVjcnlwdGlvbi4pCisgICAg ICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEZvciByb3V0aW5lIGJhY2t1 cHMsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIGFwcHJvcHJpYXRlIGFuZCBtb3N0CisgICAg ICAgIGVmZmljaWVudC4gIFRoaXMgb3B0aW9uIGlzIHN1aXRhYmxlIGlmIHRoZSBkYXRhIGlz IG1lYW50IHRvIGJlCisgICAgICAgIGluc3BlY3RlZCBvciBleHBvcnRlZCBmb3Igb3RoZXIg cHVycG9zZXMuICBOb3RlIHRoYXQgYSBkdW1wIGNyZWF0ZWQKKyAgICAgICAgd2l0aCB0aGlz IG9wdGlvbiBjYW5ub3QgYmUgcmVzdG9yZWQgaW50byBhIGRhdGFiYXNlIHdpdGggY29sdW1u CisgICAgICAgIGVuY3J5cHRpb24uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRl bT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAg IDx0ZXJtPjxvcHRpb24+LS1kaXNhYmxlLWRvbGxhci1xdW90aW5nPC9vcHRpb24+PC90ZXJt PgogICAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wc3Fs LXJlZi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCmluZGV4IDk0OTRm MjgwNjMuLmNkNjFlOTllODYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1y ZWYuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKQEAgLTIyNTUs NiArMjI1NSwyOCBAQCA8dGl0bGU+TWV0YS1Db21tYW5kczwvdGl0bGU+CiAgICAgICA8L3Zh cmxpc3RlbnRyeT4KIAogCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPjxs aXRlcmFsPlxnZW5jcjwvbGl0ZXJhbD4gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gXSAuLi4gPC90ZXJtPgorCisgICAgICAgPGxp c3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFNlbmRzIHRoZSBjdXJyZW50IHF1 ZXJ5IGJ1ZmZlciB0byB0aGUgc2VydmVyIGZvciBleGVjdXRpb24sIGFzIHdpdGgKKyAgICAg ICAgIDxsaXRlcmFsPlxnPC9saXRlcmFsPiwgd2l0aCB0aGUgc3BlY2lmaWVkIHBhcmFtZXRl cnMgcGFzc2VkIGZvciBhbnkKKyAgICAgICAgIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMgKDxs aXRlcmFsPiQxPC9saXRlcmFsPiBldGMuKS4gIFRoaXMgY29tbWFuZAorICAgICAgICAgZW5z dXJlcyB0aGF0IGFueSBwYXJhbWV0ZXJzIGNvcnJlc3BvbmRpbmcgdG8gZW5jcnlwdGVkIGNv bHVtbnMgYXJlCisgICAgICAgICBzZW50IHRvIHRoZSBzZXJ2ZXIgZW5jcnlwdGVkLgorICAg ICAgICA8L3BhcmE+CisKKyAgICAgICAgPHBhcmE+CisgICAgICAgICBFeGFtcGxlOgorPHBy b2dyYW1saXN0aW5nPgorSU5TRVJUIElOVE8gdGJsMSBWQUxVRVMgKCQxLCAkMikgXGdlbmNy ICdmaXJzdCB2YWx1ZScgJ3NlY29uZCB2YWx1ZScKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAg ICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+ CisKKwogICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGdl dGVudiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHNxbF92YXI8L3JlcGxhY2Vh YmxlPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZW52X3ZhcjwvcmVwbGFjZWFi bGU+PC9saXRlcmFsPjwvdGVybT4KIApAQCAtMzk3OCw2ICs0MDAwLDE3IEBAIDx0aXRsZT5W YXJpYWJsZXM8L3RpdGxlPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0 ZW50cnk+CiAKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjx2YXJuYW1l PkhJREVfQ09MVU1OX0VOQ1JZUFRJT048L3Zhcm5hbWU+PC90ZXJtPgorICAgICAgICA8bGlz dGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWYgdGhpcyB2YXJpYWJsZSBpcyBz ZXQgdG8gPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4sIGNvbHVtbiBlbmNyeXB0aW9uCisgICAg ICAgICBkZXRhaWxzIGFyZSBub3QgZGlzcGxheWVkLiBUaGlzIGlzIG1haW5seSB1c2VmdWwg Zm9yIHJlZ3Jlc3Npb24KKyAgICAgICAgIHRlc3RzLgorICAgICAgICA8L3BhcmE+CisgICAg ICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICAgPHZhcmxp c3RlbnRyeT4KICAgICAgICAgPHRlcm0+PHZhcm5hbWU+SElERV9UT0FTVF9DT01QUkVTU0lP TjwvdmFybmFtZT48L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dt bAppbmRleCBhM2I3NDNlOGMxLi5lMTQyNWMyMjJmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBA IC0zNiw2ICszNiw4IEBAIDx0aXRsZT5TUUwgQ29tbWFuZHM8L3RpdGxlPgogICAgJmFib3J0 OwogICAgJmFsdGVyQWdncmVnYXRlOwogICAgJmFsdGVyQ29sbGF0aW9uOworICAgJmFsdGVy Q29sdW1uRW5jcnlwdGlvbktleTsKKyAgICZhbHRlckNvbHVtbk1hc3RlcktleTsKICAgICZh bHRlckNvbnZlcnNpb247CiAgICAmYWx0ZXJEYXRhYmFzZTsKICAgICZhbHRlckRlZmF1bHRQ cml2aWxlZ2VzOwpAQCAtOTAsNiArOTIsOCBAQCA8dGl0bGU+U1FMIENvbW1hbmRzPC90aXRs ZT4KICAgICZjcmVhdGVBZ2dyZWdhdGU7CiAgICAmY3JlYXRlQ2FzdDsKICAgICZjcmVhdGVD b2xsYXRpb247CisgICAmY3JlYXRlQ29sdW1uRW5jcnlwdGlvbktleTsKKyAgICZjcmVhdGVD b2x1bW5NYXN0ZXJLZXk7CiAgICAmY3JlYXRlQ29udmVyc2lvbjsKICAgICZjcmVhdGVEYXRh YmFzZTsKICAgICZjcmVhdGVEb21haW47CkBAIC0xMzcsNiArMTQxLDggQEAgPHRpdGxlPlNR TCBDb21tYW5kczwvdGl0bGU+CiAgICAmZHJvcEFnZ3JlZ2F0ZTsKICAgICZkcm9wQ2FzdDsK ICAgICZkcm9wQ29sbGF0aW9uOworICAgJmRyb3BDb2x1bW5FbmNyeXB0aW9uS2V5OworICAg JmRyb3BDb2x1bW5NYXN0ZXJLZXk7CiAgICAmZHJvcENvbnZlcnNpb247CiAgICAmZHJvcERh dGFiYXNlOwogICAgJmRyb3BEb21haW47CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvY29tbW9uL3ByaW50c2ltcGxlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3By aW50c2ltcGxlLmMKaW5kZXggYzk5YWU1NGNiMC4uODY0ODJlYjRjOCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHNpbXBsZS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9jb21tb24vcHJpbnRzaW1wbGUuYwpAQCAtMjAsNyArMjAsOSBAQAogCiAj aW5jbHVkZSAiYWNjZXNzL3ByaW50c2ltcGxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlLmgiCisjaW5jbHVkZSAibGlicHEvbGlicHEtYmUuaCIKICNpbmNsdWRlICJsaWJwcS9w cWZvcm1hdC5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInV0aWxzL2J1 aWx0aW5zLmgiCiAKIC8qCkBAIC00Niw2ICs0OCwxMSBAQCBwcmludHNpbXBsZV9zdGFydHVw KERlc3RSZWNlaXZlciAqc2VsZiwgaW50IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR1cGRlc2Mp CiAJCXBxX3NlbmRpbnQxNigmYnVmLCBhdHRyLT5hdHRsZW4pOwogCQlwcV9zZW5kaW50MzIo JmJ1ZiwgYXR0ci0+YXR0dHlwbW9kKTsKIAkJcHFfc2VuZGludDE2KCZidWYsIDApOwkvKiBm b3JtYXQgY29kZSAqLworCQlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5h YmxlZCkKKwkJeworCQkJcHFfc2VuZGludDMyKCZidWYsIDApOwkvKiBDRUsgKi8KKwkJCXBx X3NlbmRpbnQxNigmYnVmLCAwKTsJLyogQ0VLIGFsZyAqLworCQl9CiAJfQogCiAJcHFfZW5k bWVzc2FnZSgmYnVmKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24v cHJpbnR0dXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYwppbmRl eCBkMmYzYjU3Mjg4Li44MGFiNWU4NzViIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvY29tbW9uL3ByaW50dHVwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9w cmludHR1cC5jCkBAIC0xNSwxMyArMTUsMjggQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVz LmgiCiAKKyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MvcHJp bnR0dXAuaCIKKyNpbmNsdWRlICJhY2Nlc3Mvc2tleS5oIgorI2luY2x1ZGUgImFjY2Vzcy90 YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xt YXN0ZXJrZXkuaCIKICNpbmNsdWRlICJsaWJwcS9saWJwcS5oIgorI2luY2x1ZGUgImxpYnBx L2xpYnBxLWJlLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKKyNpbmNsdWRlICJt aXNjYWRtaW4uaCIKICNpbmNsdWRlICJ0Y29wL3BxdWVyeS5oIgorI2luY2x1ZGUgInV0aWxz L2FycmF5LmgiCisjaW5jbHVkZSAidXRpbHMvYXJyYXlhY2Nlc3MuaCIKKyNpbmNsdWRlICJ1 dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCisjaW5jbHVk ZSAidXRpbHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNs dWRlICJ1dGlscy9tZW1kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisj aW5jbHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIAog CiBzdGF0aWMgdm9pZCBwcmludHR1cF9zdGFydHVwKERlc3RSZWNlaXZlciAqc2VsZiwgaW50 IG9wZXJhdGlvbiwKQEAgLTE1MSw2ICsxNjYsMTM5IEBAIHByaW50dHVwX3N0YXJ0dXAoRGVz dFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0aW9uLCBUdXBsZURlc2MgdHlwZWluZm8pCiAJ ICovCiB9CiAKKy8qCisgKiBTZW5kIENvbHVtbk1hc3RlcktleSBtZXNzYWdlLCB1bmxlc3Mg aXQncyBhbHJlYWR5IGJlZW4gc2VudCBpbiB0aGlzIHNlc3Npb24KKyAqIGZvciB0aGlzIGtl eS4KKyAqLworTGlzdAkgICAqY21rX3NlbnQgPSBOSUw7CisKK3N0YXRpYyB2b2lkCitjbWtf Y2hhbmdlX2NiKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCit7 CisJbGlzdF9mcmVlKGNta19zZW50KTsKKwljbWtfc2VudCA9IE5JTDsKK30KKworc3RhdGlj IHZvaWQKK01heWJlU2VuZENvbHVtbk1hc3RlcktleU1lc3NhZ2UoT2lkIGNta2lkKQorewor CUhlYXBUdXBsZQl0dXBsZTsKKwlGb3JtX3BnX2NvbG1hc3RlcmtleSBjbWtmb3JtOworCURh dHVtCQlkYXR1bTsKKwlib29sCQlpc251bGw7CisJU3RyaW5nSW5mb0RhdGEgYnVmOworCXN0 YXRpYyBib29sIHJlZ2lzdGVyZWRfaW52YWwgPSBmYWxzZTsKKwlNZW1vcnlDb250ZXh0IG9s ZGNvbnRleHQ7CisKKwlBc3NlcnQoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5h YmxlZCk7CisKKwlpZiAobGlzdF9tZW1iZXJfb2lkKGNta19zZW50LCBjbWtpZCkpCisJCXJl dHVybjsKKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRHZXRE YXR1bShjbWtpZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCWVsb2co RVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4gbWFzdGVyIGtleSAldSIs IGNta2lkKTsKKwljbWtmb3JtID0gKEZvcm1fcGdfY29sbWFzdGVya2V5KSBHRVRTVFJVQ1Qo dHVwbGUpOworCisJcHFfYmVnaW5tZXNzYWdlKCZidWYsICd5Jyk7IC8qIENvbHVtbk1hc3Rl cktleSAqLworCXBxX3NlbmRpbnQzMigmYnVmLCBjbWtmb3JtLT5vaWQpOworCXBxX3NlbmRz dHJpbmcoJmJ1ZiwgTmFtZVN0cihjbWtmb3JtLT5jbWtuYW1lKSk7CisJZGF0dW0gPSBTeXND YWNoZUdldEF0dHIoQ01LT0lELCB0dXBsZSwgQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rcmVh bG0sICZpc251bGwpOworCUFzc2VydCghaXNudWxsKTsKKwlwcV9zZW5kc3RyaW5nKCZidWYs IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pKTsKKwlwcV9lbmRtZXNzYWdlKCZidWYpOwor CisJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKworCWlmICghcmVnaXN0ZXJlZF9pbnZhbCkK Kwl7CisJCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKENNS09JRCwgY21rX2NoYW5n ZV9jYiwgKERhdHVtKSAwKTsKKwkJcmVnaXN0ZXJlZF9pbnZhbCA9IHRydWU7CisJfQorCisJ b2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsK KwljbWtfc2VudCA9IGxhcHBlbmRfb2lkKGNta19zZW50LCBjbWtpZCk7CisJTWVtb3J5Q29u dGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworfQorCisvKgorICogU2VuZCBDb2x1bW5FbmNy eXB0aW9uS2V5IG1lc3NhZ2UsIHVubGVzcyBpdCdzIGFscmVhZHkgYmVlbiBzZW50IGluIHRo aXMKKyAqIHNlc3Npb24gZm9yIHRoaXMga2V5LgorICovCitMaXN0CSAgICpjZWtfc2VudCA9 IE5JTDsKKworc3RhdGljIHZvaWQKK2Nla19jaGFuZ2VfY2IoRGF0dW0gYXJnLCBpbnQgY2Fj aGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlsaXN0X2ZyZWUoY2VrX3NlbnQpOworCWNl a19zZW50ID0gTklMOworfQorCit2b2lkCitNYXliZVNlbmRDb2x1bW5FbmNyeXB0aW9uS2V5 TWVzc2FnZShPaWQgYXR0Y2VrKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlTY2FuS2V5RGF0 YSBza2V5WzFdOworCVN5c1NjYW5EZXNjIHNkOworCVJlbGF0aW9uCXJlbDsKKwlib29sCQlm b3VuZCA9IGZhbHNlOworCXN0YXRpYyBib29sIHJlZ2lzdGVyZWRfaW52YWwgPSBmYWxzZTsK KwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwlBc3NlcnQoTXlQcm9jUG9ydC0+Y29s dW1uX2VuY3J5cHRpb25fZW5hYmxlZCk7CisKKwlpZiAobGlzdF9tZW1iZXJfb2lkKGNla19z ZW50LCBhdHRjZWspKQorCQlyZXR1cm47CisKKwlTY2FuS2V5SW5pdCgmc2tleVswXSwKKwkJ CQlBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tkY2VraWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5 TnVtYmVyLCBGX09JREVRLAorCQkJCU9iamVjdElkR2V0RGF0dW0oYXR0Y2VrKSk7CisJcmVs ID0gdGFibGVfb3BlbihDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVM b2NrKTsKKwlzZCA9IHN5c3RhYmxlX2JlZ2luc2NhbihyZWwsIENvbHVtbkVuY0tleUNla2lk Q21raWRJbmRleElkLCB0cnVlLCBOVUxMLCAxLCBza2V5KTsKKworCXdoaWxlICgodHVwbGUg PSBzeXN0YWJsZV9nZXRuZXh0KHNkKSkpCisJeworCQlGb3JtX3BnX2NvbGVuY2tleWRhdGEg Y2tkZm9ybSA9IChGb3JtX3BnX2NvbGVuY2tleWRhdGEpIEdFVFNUUlVDVCh0dXBsZSk7CisJ CURhdHVtCQlkYXR1bTsKKwkJYm9vbAkJaXNudWxsOworCQlieXRlYQkgICAqYmE7CisJCVN0 cmluZ0luZm9EYXRhIGJ1ZjsKKworCQlNYXliZVNlbmRDb2x1bW5NYXN0ZXJLZXlNZXNzYWdl KGNrZGZvcm0tPmNrZGNta2lkKTsKKworCQlkYXR1bSA9IGhlYXBfZ2V0YXR0cih0dXBsZSwg QW51bV9wZ19jb2xlbmNrZXlkYXRhX2NrZGVuY3ZhbCwgUmVsYXRpb25HZXREZXNjcihyZWwp LCAmaXNudWxsKTsKKwkJQXNzZXJ0KCFpc251bGwpOworCQliYSA9IHBnX2RldG9hc3RfZGF0 dW1fcGFja2VkKChieXRlYSAqKSBEYXR1bUdldFBvaW50ZXIoZGF0dW0pKTsKKworCQlwcV9i ZWdpbm1lc3NhZ2UoJmJ1ZiwgJ1knKTsgLyogQ29sdW1uRW5jcnlwdGlvbktleSAqLworCQlw cV9zZW5kaW50MzIoJmJ1ZiwgY2tkZm9ybS0+Y2tkY2VraWQpOworCQlwcV9zZW5kaW50MzIo JmJ1ZiwgY2tkZm9ybS0+Y2tkY21raWQpOworCQlwcV9zZW5kaW50MTYoJmJ1ZiwgY2tkZm9y bS0+Y2tkY21rYWxnKTsKKwkJcHFfc2VuZGludDMyKCZidWYsIFZBUlNJWkVfQU5ZX0VYSERS KGJhKSk7CisJCXBxX3NlbmRieXRlcygmYnVmLCBWQVJEQVRBX0FOWShiYSksIFZBUlNJWkVf QU5ZX0VYSERSKGJhKSk7CisJCXBxX2VuZG1lc3NhZ2UoJmJ1Zik7CisKKwkJZm91bmQgPSB0 cnVlOworCX0KKworCWlmICghZm91bmQpCisJCWVsb2coRVJST1IsICJsb29rdXAgZmFpbGVk IGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSAldSIsIGF0dGNlayk7CisKKwlzeXN0 YWJsZV9lbmRzY2FuKHNkKTsKKwl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwlpZiAo IXJlZ2lzdGVyZWRfaW52YWwpCisJeworCQlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFj ayhDRUtEQVRBT0lELCBjZWtfY2hhbmdlX2NiLCAoRGF0dW0pIDApOworCQlyZWdpc3RlcmVk X2ludmFsID0gdHJ1ZTsKKwl9CisKKwlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKFRvcE1lbW9yeUNvbnRleHQpOworCWNla19zZW50ID0gbGFwcGVuZF9vaWQoY2VrX3Nl bnQsIGF0dGNlayk7CisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworfQor CiAvKgogICogU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZSAtLS0gc2VuZCBhIFJvd0Rlc2Ny aXB0aW9uIG1lc3NhZ2UgdG8gdGhlIGZyb250ZW5kCiAgKgpAQCAtMTY3LDYgKzMxNSw3IEBA IFNlbmRSb3dEZXNjcmlwdGlvbk1lc3NhZ2UoU3RyaW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0 eXBlaW5mbywKIAkJCQkJCSAgTGlzdCAqdGFyZ2V0bGlzdCwgaW50MTYgKmZvcm1hdHMpCiB7 CiAJaW50CQkJbmF0dHMgPSB0eXBlaW5mby0+bmF0dHM7CisJc2l6ZV90CQlzejsKIAlpbnQJ CQlpOwogCUxpc3RDZWxsICAgKnRsaXN0X2l0ZW0gPSBsaXN0X2hlYWQodGFyZ2V0bGlzdCk7 CiAKQEAgLTE4MywxNCArMzMyLDE3IEBAIFNlbmRSb3dEZXNjcmlwdGlvbk1lc3NhZ2UoU3Ry aW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0eXBlaW5mbywKIAkgKiBIYXZlIHRvIG92ZXJlc3Rp bWF0ZSB0aGUgc2l6ZSBvZiB0aGUgY29sdW1uLW5hbWVzLCB0byBhY2NvdW50IGZvcgogCSAq IGNoYXJhY3RlciBzZXQgb3ZlcmhlYWQuCiAJICovCi0JZW5sYXJnZVN0cmluZ0luZm8oYnVm LCAoTkFNRURBVEFMRU4gKiBNQVhfQ09OVkVSU0lPTl9HUk9XVEggLyogYXR0bmFtZSAqLwot CQkJCQkJCSsgc2l6ZW9mKE9pZCkJLyogcmVzb3JpZ3RibCAqLwotCQkJCQkJCSsgc2l6ZW9m KEF0dHJOdW1iZXIpCS8qIHJlc29yaWdjb2wgKi8KLQkJCQkJCQkrIHNpemVvZihPaWQpCS8q IGF0dHR5cGlkICovCi0JCQkJCQkJKyBzaXplb2YoaW50MTYpIC8qIGF0dGxlbiAqLwotCQkJ CQkJCSsgc2l6ZW9mKGludDMyKSAvKiBhdHR5cG1vZCAqLwotCQkJCQkJCSsgc2l6ZW9mKGlu dDE2KSAvKiBmb3JtYXQgKi8KLQkJCQkJCQkpICogbmF0dHMpOworCXN6ID0gKE5BTUVEQVRB TEVOICogTUFYX0NPTlZFUlNJT05fR1JPV1RIIC8qIGF0dG5hbWUgKi8KKwkJICArIHNpemVv ZihPaWQpCS8qIHJlc29yaWd0YmwgKi8KKwkJICArIHNpemVvZihBdHRyTnVtYmVyKQkvKiBy ZXNvcmlnY29sICovCisJCSAgKyBzaXplb2YoT2lkKQkvKiBhdHR0eXBpZCAqLworCQkgICsg c2l6ZW9mKGludDE2KSAvKiBhdHRsZW4gKi8KKwkJICArIHNpemVvZihpbnQzMikgLyogYXR0 eXBtb2QgKi8KKwkJICArIHNpemVvZihpbnQxNikpOyAvKiBmb3JtYXQgKi8KKwlpZiAoTXlQ cm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJc3ogKz0gKHNpemVvZihp bnQzMikJCS8qIGF0dGNla2lkICovCisJCQkgICArIHNpemVvZihpbnQxNikpOwkvKiBhdHRl bmNhbGcgKi8KKwllbmxhcmdlU3RyaW5nSW5mbyhidWYsIHN6ICogbmF0dHMpOwogCiAJZm9y IChpID0gMDsgaSA8IG5hdHRzOyArK2kpCiAJewpAQCAtMjAwLDYgKzM1Miw4IEBAIFNlbmRS b3dEZXNjcmlwdGlvbk1lc3NhZ2UoU3RyaW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0eXBlaW5m bywKIAkJT2lkCQkJcmVzb3JpZ3RibDsKIAkJQXR0ck51bWJlcglyZXNvcmlnY29sOwogCQlp bnQxNgkJZm9ybWF0OworCQlPaWQJCQlhdHRjZWtpZCA9IEludmFsaWRPaWQ7CisJCWludDE2 CQlhdHRlbmNhbGcgPSAwOwogCiAJCS8qCiAJCSAqIElmIGNvbHVtbiBpcyBhIGRvbWFpbiwg c2VuZCB0aGUgYmFzZSB0eXBlIGFuZCB0eXBtb2QgaW5zdGVhZC4KQEAgLTIzMSw2ICszODUs MjIgQEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwgVHVwbGVE ZXNjIHR5cGVpbmZvLAogCQllbHNlCiAJCQlmb3JtYXQgPSAwOwogCisJCWlmIChNeVByb2NQ b3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkICYmIHR5cGVfaXNfZW5jcnlwdGVkKGF0 dHR5cGlkKSkKKwkJeworCQkJSGVhcFR1cGxlCXRwOworCQkJRm9ybV9wZ19hdHRyaWJ1dGUg b3JpZ19hdHQ7CisKKwkJCXRwID0gU2VhcmNoU3lzQ2FjaGUyKEFUVE5VTSwgT2JqZWN0SWRH ZXREYXR1bShyZXNvcmlndGJsKSwgSW50MTZHZXREYXR1bShyZXNvcmlnY29sKSk7CisJCQlp ZiAoIUhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29r dXAgZmFpbGVkIGZvciBhdHRyaWJ1dGUgJWQgb2YgcmVsYXRpb24gJXUiLCByZXNvcmlnY29s LCByZXNvcmlndGJsKTsKKwkJCW9yaWdfYXR0ID0gKEZvcm1fcGdfYXR0cmlidXRlKSBHRVRT VFJVQ1QodHApOworCQkJTWF5YmVTZW5kQ29sdW1uRW5jcnlwdGlvbktleU1lc3NhZ2Uob3Jp Z19hdHQtPmF0dGNlayk7CisJCQlhdHR0eXBpZCA9IG9yaWdfYXR0LT5hdHRyZWFsdHlwaWQ7 CisJCQlhdHRjZWtpZCA9IG9yaWdfYXR0LT5hdHRjZWs7CisJCQlhdHRlbmNhbGcgPSBvcmln X2F0dC0+YXR0ZW5jYWxnOworCQkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJfQorCiAJCXBx X3dyaXRlc3RyaW5nKGJ1ZiwgTmFtZVN0cihhdHQtPmF0dG5hbWUpKTsKIAkJcHFfd3JpdGVp bnQzMihidWYsIHJlc29yaWd0YmwpOwogCQlwcV93cml0ZWludDE2KGJ1ZiwgcmVzb3JpZ2Nv bCk7CkBAIC0yMzgsNiArNDA4LDExIEBAIFNlbmRSb3dEZXNjcmlwdGlvbk1lc3NhZ2UoU3Ry aW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0eXBlaW5mbywKIAkJcHFfd3JpdGVpbnQxNihidWYs IGF0dC0+YXR0bGVuKTsKIAkJcHFfd3JpdGVpbnQzMihidWYsIGF0dHR5cG1vZCk7CiAJCXBx X3dyaXRlaW50MTYoYnVmLCBmb3JtYXQpOworCQlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2Vu Y3J5cHRpb25fZW5hYmxlZCkKKwkJeworCQkJcHFfd3JpdGVpbnQzMihidWYsIGF0dGNla2lk KTsKKwkJCXBxX3dyaXRlaW50MTYoYnVmLCBhdHRlbmNhbGcpOworCQl9CiAJfQogCiAJcHFf ZW5kbWVzc2FnZV9yZXVzZShidWYpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L2NvbW1vbi90dXBkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2Mu YwppbmRleCBkNmZiMjYxZTIwLi5lM2VjYzY0ZWE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29t bW9uL3R1cGRlc2MuYwpAQCAtNDU5LDYgKzQ1OSwxMiBAQCBlcXVhbFR1cGxlRGVzY3MoVHVw bGVEZXNjIHR1cGRlc2MxLCBUdXBsZURlc2MgdHVwZGVzYzIpCiAJCQlyZXR1cm4gZmFsc2U7 CiAJCWlmIChhdHRyMS0+YXR0aXNsb2NhbCAhPSBhdHRyMi0+YXR0aXNsb2NhbCkKIAkJCXJl dHVybiBmYWxzZTsKKwkJaWYgKGF0dHIxLT5hdHRjZWsgIT0gYXR0cjItPmF0dGNlaykKKwkJ CXJldHVybiBmYWxzZTsKKwkJaWYgKGF0dHIxLT5hdHRyZWFsdHlwaWQgIT0gYXR0cjItPmF0 dHJlYWx0eXBpZCkKKwkJCXJldHVybiBmYWxzZTsKKwkJaWYgKGF0dHIxLT5hdHRlbmNhbGcg IT0gYXR0cjItPmF0dGVuY2FsZykKKwkJCXJldHVybiBmYWxzZTsKIAkJaWYgKGF0dHIxLT5h dHRpbmhjb3VudCAhPSBhdHRyMi0+YXR0aW5oY291bnQpCiAJCQlyZXR1cm4gZmFsc2U7CiAJ CWlmIChhdHRyMS0+YXR0Y29sbGF0aW9uICE9IGF0dHIyLT5hdHRjb2xsYXRpb24pCkBAIC02 MjksNiArNjM1LDkgQEAgVHVwbGVEZXNjSW5pdEVudHJ5KFR1cGxlRGVzYyBkZXNjLAogCWF0 dC0+YXR0Z2VuZXJhdGVkID0gJ1wwJzsKIAlhdHQtPmF0dGlzZHJvcHBlZCA9IGZhbHNlOwog CWF0dC0+YXR0aXNsb2NhbCA9IHRydWU7CisJYXR0LT5hdHRjZWsgPSAwOworCWF0dC0+YXR0 cmVhbHR5cGlkID0gMDsKKwlhdHQtPmF0dGVuY2FsZyA9IDA7CiAJYXR0LT5hdHRpbmhjb3Vu dCA9IDA7CiAJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBhcmUgbm90IHByZXNlbnQgaW4g dHVwbGVkZXNjcyAqLwogCkBAIC02OTAsNiArNjk5LDkgQEAgVHVwbGVEZXNjSW5pdEJ1aWx0 aW5FbnRyeShUdXBsZURlc2MgZGVzYywKIAlhdHQtPmF0dGdlbmVyYXRlZCA9ICdcMCc7CiAJ YXR0LT5hdHRpc2Ryb3BwZWQgPSBmYWxzZTsKIAlhdHQtPmF0dGlzbG9jYWwgPSB0cnVlOwor CWF0dC0+YXR0Y2VrID0gMDsKKwlhdHQtPmF0dHJlYWx0eXBpZCA9IDA7CisJYXR0LT5hdHRl bmNhbGcgPSAwOwogCWF0dC0+YXR0aW5oY291bnQgPSAwOwogCS8qIHZhcmlhYmxlLWxlbmd0 aCBmaWVsZHMgYXJlIG5vdCBwcmVzZW50IGluIHR1cGxlZGVzY3MgKi8KIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYwppbmRleCAxMGJmMjZjZTdjLi5jZWE5MWQ0 YTg4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYwpAQCAtMzMx LDcgKzMzMSw3IEBAIGNoZWNrX2hhc2hfZnVuY19zaWduYXR1cmUoT2lkIGZ1bmNpZCwgaW50 MTYgYW1wcm9jbnVtLCBPaWQgYXJndHlwZSkKIAkJCQkgYXJndHlwZSA9PSBCT09MT0lEKQog CQkJIC8qIG9rYXksIGFsbG93ZWQgdXNlIG9mIGhhc2hjaGFyKCkgKi8gOwogCQllbHNlIGlm ICgoZnVuY2lkID09IEZfSEFTSFZBUkxFTkEgfHwgZnVuY2lkID09IEZfSEFTSFZBUkxFTkFF WFRFTkRFRCkgJiYKLQkJCQkgYXJndHlwZSA9PSBCWVRFQU9JRCkKKwkJCQkgKGFyZ3R5cGUg PT0gQllURUFPSUQgfHwgYXJndHlwZSA9PSBQR19FTkNSWVBURURfREVUT0lEKSkKIAkJCSAv KiBva2F5LCBhbGxvd2VkIHVzZSBvZiBoYXNodmFybGVuYSgpICovIDsKIAkJZWxzZQogCQkJ cmVzdWx0ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2Vm aWxlIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQppbmRleCA4OWEwMjIxZWM5Li43 ZTFhOTFiOTc0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTcyLDcgKzcyLDggQEAgQ0FU QUxPR19IRUFERVJTIDo9IFwKIAlwZ19jb2xsYXRpb24uaCBwZ19wYXJhbWV0ZXJfYWNsLmgg cGdfcGFydGl0aW9uZWRfdGFibGUuaCBcCiAJcGdfcmFuZ2UuaCBwZ190cmFuc2Zvcm0uaCBc CiAJcGdfc2VxdWVuY2UuaCBwZ19wdWJsaWNhdGlvbi5oIHBnX3B1YmxpY2F0aW9uX25hbWVz cGFjZS5oIFwKLQlwZ19wdWJsaWNhdGlvbl9yZWwuaCBwZ19zdWJzY3JpcHRpb24uaCBwZ19z dWJzY3JpcHRpb25fcmVsLmgKKwlwZ19wdWJsaWNhdGlvbl9yZWwuaCBwZ19zdWJzY3JpcHRp b24uaCBwZ19zdWJzY3JpcHRpb25fcmVsLmggXAorCXBnX2NvbG1hc3RlcmtleS5oIHBnX2Nv bGVuY2tleS5oIHBnX2NvbGVuY2tleWRhdGEuaAogCiBHRU5FUkFURURfSEVBREVSUyA6PSAk KENBVEFMT0dfSEVBREVSUzolLmg9JV9kLmgpIHNjaGVtYXBnLmggc3lzdGVtX2ZrX2luZm8u aAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCAxN2ZmNjE3ZmJhLi40YTNhNjJiZmQ4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTMyLDcgKzMyLDkgQEAKICNpbmNsdWRlICJjYXRh bG9nL3BnX2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnZlcnNpb24u aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19kZWZhdWx0X2FjbC5oIgpAQCAtMzU3OSw2ICszNTgxLDggQEAgYWNsY2hlY2tfZXJy b3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9C SkVDVF9BTVBST0M6CiAJCQkJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKIAkJCQkJY2FzZSBP QkpFQ1RfQ0FTVDoKKwkJCQkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJCQljYXNlIE9CSkVDVF9D TUs6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFVTFQ6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFD TDoKIAkJCQkJY2FzZSBPQkpFQ1RfRE9NQ09OU1RSQUlOVDoKQEAgLTM2MDksNiArMzYxMywx MiBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5 cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKIAkJCQkJCW1zZyA9IGdldHRleHRf bm9vcCgibXVzdCBiZSBvd25lciBvZiBhZ2dyZWdhdGUgJXMiKTsKIAkJCQkJCWJyZWFrOwor CQkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3Qg YmUgb3duZXIgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5ICVzIik7CisJCQkJCQlicmVhazsK KwkJCQkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0 IGJlIG93bmVyIG9mIGNvbHVtbiBtYXN0ZXIga2V5ICVzIik7CisJCQkJCQlicmVhazsKIAkJ CQkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJt dXN0IGJlIG93bmVyIG9mIGNvbGxhdGlvbiAlcyIpOwogCQkJCQkJYnJlYWs7CkBAIC01NTgy LDYgKzU1OTIsNTggQEAgcGdfY29sbGF0aW9uX293bmVyY2hlY2soT2lkIGNvbGxfb2lkLCBP aWQgcm9sZWlkKQogCXJldHVybiBoYXNfcHJpdnNfb2Zfcm9sZShyb2xlaWQsIG93bmVySWQp OwogfQogCisvKgorICogT3duZXJzaGlwIGNoZWNrIGZvciBhIGNvbHVtbiBlbmNyeXB0aW9u IGtleSAoc3BlY2lmaWVkIGJ5IE9JRCkuCisgKi8KK2Jvb2wKK3BnX2NvbHVtbl9lbmNyeXB0 aW9uX2tleV9vd25lcmNoZWNrKE9pZCBjZWtfb2lkLCBPaWQgcm9sZWlkKQoreworCUhlYXBU dXBsZQl0dXBsZTsKKwlPaWQJCQlvd25lcklkOworCisJLyogU3VwZXJ1c2VycyBieXBhc3Mg YWxsIHBlcm1pc3Npb24gY2hlY2tpbmcuICovCisJaWYgKHN1cGVydXNlcl9hcmcocm9sZWlk KSkKKwkJcmV0dXJuIHRydWU7CisKKwl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMShDRUtPSUQs IE9iamVjdElkR2V0RGF0dW0oY2VrX29pZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0 dXBsZSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklO RURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgd2l0aCBP SUQgJXUgZG9lcyBub3QgZXhpc3QiLCBjZWtfb2lkKSkpOworCisJb3duZXJJZCA9ICgoRm9y bV9wZ19jb2xlbmNrZXkpIEdFVFNUUlVDVCh0dXBsZSkpLT5jZWtvd25lcjsKKworCVJlbGVh c2VTeXNDYWNoZSh0dXBsZSk7CisKKwlyZXR1cm4gaGFzX3ByaXZzX29mX3JvbGUocm9sZWlk LCBvd25lcklkKTsKK30KKworLyoKKyAqIE93bmVyc2hpcCBjaGVjayBmb3IgYSBjb2x1bW4g bWFzdGVyIGtleSAoc3BlY2lmaWVkIGJ5IE9JRCkuCisgKi8KK2Jvb2wKK3BnX2NvbHVtbl9t YXN0ZXJfa2V5X293bmVyY2hlY2soT2lkIGNta19vaWQsIE9pZCByb2xlaWQpCit7CisJSGVh cFR1cGxlCXR1cGxlOworCU9pZAkJCW93bmVySWQ7CisKKwkvKiBTdXBlcnVzZXJzIGJ5cGFz cyBhbGwgcGVybWlzc2lvbiBjaGVja2luZy4gKi8KKwlpZiAoc3VwZXJ1c2VyX2FyZyhyb2xl aWQpKQorCQlyZXR1cm4gdHJ1ZTsKKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKENNS09J RCwgT2JqZWN0SWRHZXREYXR1bShjbWtfb2lkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlk KHR1cGxlKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVG SU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coImNvbHVtbiBtYXN0ZXIga2V5IHdpdGggT0lE ICV1IGRvZXMgbm90IGV4aXN0IiwgY21rX29pZCkpKTsKKworCW93bmVySWQgPSAoKEZvcm1f cGdfY29sbWFzdGVya2V5KSBHRVRTVFJVQ1QodHVwbGUpKS0+Y21rb3duZXI7CisKKwlSZWxl YXNlU3lzQ2FjaGUodHVwbGUpOworCisJcmV0dXJuIGhhc19wcml2c19vZl9yb2xlKHJvbGVp ZCwgb3duZXJJZCk7Cit9CisKIC8qCiAgKiBPd25lcnNoaXAgY2hlY2sgZm9yIGEgY29udmVy c2lvbiAoc3BlY2lmaWVkIGJ5IE9JRCkuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5 LmMKaW5kZXggMzk3NjhmYTIyYi4uNmYxZWEyNjhmMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBl bmRlbmN5LmMKQEAgLTMwLDcgKzMwLDEwIEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRo aWQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhfbWVtYmVycy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfY2FzdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5Lmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3Rlcmtl eS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfY29udmVyc2lvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2Uu aCIKQEAgLTE1Myw2ICsxNTYsOSBAQCBzdGF0aWMgY29uc3QgT2lkIG9iamVjdF9jbGFzc2Vz W10gPSB7CiAJVHlwZVJlbGF0aW9uSWQsCQkJCS8qIE9DTEFTU19UWVBFICovCiAJQ2FzdFJl bGF0aW9uSWQsCQkJCS8qIE9DTEFTU19DQVNUICovCiAJQ29sbGF0aW9uUmVsYXRpb25JZCwJ CS8qIE9DTEFTU19DT0xMQVRJT04gKi8KKwlDb2x1bW5FbmNLZXlSZWxhdGlvbklkLAkJLyog T0NMQVNTX0NFSyAqLworCUNvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLAkvKiBPQ0xBU1Nf Q0VLREFUQSAqLworCUNvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsCS8qIE9DTEFTU19DTUsg Ki8KIAlDb25zdHJhaW50UmVsYXRpb25JZCwJCS8qIE9DTEFTU19DT05TVFJBSU5UICovCiAJ Q29udmVyc2lvblJlbGF0aW9uSWQsCQkvKiBPQ0xBU1NfQ09OVkVSU0lPTiAqLwogCUF0dHJE ZWZhdWx0UmVsYXRpb25JZCwJCS8qIE9DTEFTU19ERUZBVUxUICovCkBAIC0xNDg3LDYgKzE0 OTMsOSBAQCBkb0RlbGV0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgaW50IGZs YWdzKQogCiAJCWNhc2UgT0NMQVNTX0NBU1Q6CiAJCWNhc2UgT0NMQVNTX0NPTExBVElPTjoK KwkJY2FzZSBPQ0xBU1NfQ0VLOgorCQljYXNlIE9DTEFTU19DRUtEQVRBOgorCQljYXNlIE9D TEFTU19DTUs6CiAJCWNhc2UgT0NMQVNTX0NPTlZFUlNJT046CiAJCWNhc2UgT0NMQVNTX0xB TkdVQUdFOgogCQljYXNlIE9DTEFTU19PUENMQVNTOgpAQCAtMjg1OSw2ICsyODY4LDE1IEBA IGdldE9iamVjdENsYXNzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCkKIAkJY2FzZSBD b2xsYXRpb25SZWxhdGlvbklkOgogCQkJcmV0dXJuIE9DTEFTU19DT0xMQVRJT047CiAKKwkJ Y2FzZSBDb2x1bW5FbmNLZXlSZWxhdGlvbklkOgorCQkJcmV0dXJuIE9DTEFTU19DRUs7CisK KwkJY2FzZSBDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZDoKKwkJCXJldHVybiBPQ0xBU1Nf Q0VLREFUQTsKKworCQljYXNlIENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQ6CisJCQlyZXR1 cm4gT0NMQVNTX0NNSzsKKwogCQljYXNlIENvbnN0cmFpbnRSZWxhdGlvbklkOgogCQkJcmV0 dXJuIE9DTEFTU19DT05TVFJBSU5UOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL2hlYXAuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IDliMDM1Nzll NmUuLmU5MWIwYjgwNmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5j CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCkBAIC03NDYsNiArNzQ2LDkgQEAg SW5zZXJ0UGdBdHRyaWJ1dGVUdXBsZXMoUmVsYXRpb24gcGdfYXR0cmlidXRlX3JlbCwKIAkJ c2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGdlbmVy YXRlZCAtIDFdID0gQ2hhckdldERhdHVtKGF0dHJzLT5hdHRnZW5lcmF0ZWQpOwogCQlzbG90 W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0aXNkcm9wcGVk IC0gMV0gPSBCb29sR2V0RGF0dW0oYXR0cnMtPmF0dGlzZHJvcHBlZCk7CiAJCXNsb3Rbc2xv dENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRpc2xvY2FsIC0gMV0g PSBCb29sR2V0RGF0dW0oYXR0cnMtPmF0dGlzbG9jYWwpOworCQlzbG90W3Nsb3RDb3VudF0t PnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0Y2VrIC0gMV0gPSBPYmplY3RJZEdl dERhdHVtKGF0dHJzLT5hdHRjZWspOworCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNb QW51bV9wZ19hdHRyaWJ1dGVfYXR0cmVhbHR5cGlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVt KGF0dHJzLT5hdHRyZWFsdHlwaWQpOworCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNb QW51bV9wZ19hdHRyaWJ1dGVfYXR0ZW5jYWxnIC0gMV0gPSBJbnQxNkdldERhdHVtKGF0dHJz LT5hdHRlbmNhbGcpOwogCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19h dHRyaWJ1dGVfYXR0aW5oY291bnQgLSAxXSA9IEludDMyR2V0RGF0dW0oYXR0cnMtPmF0dGlu aGNvdW50KTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmli dXRlX2F0dGNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShhdHRycy0+YXR0Y29s bGF0aW9uKTsKIAkJaWYgKGF0dG9wdGlvbnMgJiYgYXR0b3B0aW9uc1tuYXR0c10gIT0gKERh dHVtKSAwKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNz LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCA3OThjMWEy ZDFlLi43ZDk4MDFkNjQ1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVj dGFkZHJlc3MuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwpA QCAtMjksNyArMjksMTAgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhpZC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfYXV0aF9tZW1iZXJzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19jYXN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Nv bGxhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19j b252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgpAQCAtMTkx LDYgKzE5NCw0OCBAQCBzdGF0aWMgY29uc3QgT2JqZWN0UHJvcGVydHlUeXBlIE9iamVjdFBy b3BlcnR5W10gPQogCQlPQkpFQ1RfQ09MTEFUSU9OLAogCQl0cnVlCiAJfSwKKwl7CisJCSJj b2x1bW4gZW5jcnlwdGlvbiBrZXkiLAorCQlDb2x1bW5FbmNLZXlSZWxhdGlvbklkLAorCQlD b2x1bW5FbmNLZXlPaWRJbmRleElkLAorCQlDRUtPSUQsCisJCUNFS05BTUUsCisJCUFudW1f cGdfY29sZW5ja2V5X29pZCwKKwkJQW51bV9wZ19jb2xlbmNrZXlfY2VrbmFtZSwKKwkJSW52 YWxpZEF0dHJOdW1iZXIsCisJCUFudW1fcGdfY29sZW5ja2V5X2Nla293bmVyLAorCQlJbnZh bGlkQXR0ck51bWJlciwKKwkJT0JKRUNUX0NFSywKKwkJdHJ1ZQorCX0sCisJeworCQkiY29s dW1uIGVuY3J5cHRpb24ga2V5IGRhdGEiLAorCQlDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25J ZCwKKwkJQ29sdW1uRW5jS2V5RGF0YU9pZEluZGV4SWQsCisJCUNFS0RBVEFPSUQsCisJCS0x LAorCQlBbnVtX3BnX2NvbGVuY2tleWRhdGFfb2lkLAorCQlJbnZhbGlkQXR0ck51bWJlciwK KwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlk QXR0ck51bWJlciwKKwkJLTEsCisJCWZhbHNlCisJfSwKKwl7CisJCSJjb2x1bW4gbWFzdGVy IGtleSIsCisJCUNvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsCisJCUNvbHVtbk1hc3Rlcktl eU9pZEluZGV4SWQsCisJCUNNS09JRCwKKwkJQ01LTkFNRSwKKwkJQW51bV9wZ19jb2xtYXN0 ZXJrZXlfb2lkLAorCQlBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtuYW1lLAorCQlJbnZhbGlk QXR0ck51bWJlciwKKwkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rb3duZXIsCisJCUludmFs aWRBdHRyTnVtYmVyLAorCQlPQkpFQ1RfQ01LLAorCQl0cnVlCisJfSwKIAl7CiAJCSJjb25z dHJhaW50IiwKIAkJQ29uc3RyYWludFJlbGF0aW9uSWQsCkBAIC03MjMsNiArNzY4LDE4IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJewogCQkiY29sbGF0aW9u IiwgT0JKRUNUX0NPTExBVElPTgogCX0sCisJLyogT0NMQVNTX0NFSyAqLworCXsKKwkJImNv bHVtbiBlbmNyeXB0aW9uIGtleSIsIE9CSkVDVF9DRUsKKwl9LAorCS8qIE9DTEFTU19DRUtE QVRBICovCisJeworCQkiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEiLCAtMQorCX0sCisJ LyogT0NMQVNTX0NNSyAqLworCXsKKwkJImNvbHVtbiBtYXN0ZXIga2V5IiwgT0JKRUNUX0NN SworCX0sCiAJLyogT0NMQVNTX0NPTlNUUkFJTlQgKi8KIAl7CiAJCSJ0YWJsZSBjb25zdHJh aW50IiwgT0JKRUNUX1RBQkNPTlNUUkFJTlQKQEAgLTEwMjgsNiArMTA4NSw4IEBAIGdldF9v YmplY3RfYWRkcmVzcyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCwKIAkJCQkJ YWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSBP QkpFQ1RfQ0VLOgorCQkJY2FzZSBPQkpFQ1RfQ01LOgogCQkJY2FzZSBPQkpFQ1RfREFUQUJB U0U6CiAJCQljYXNlIE9CSkVDVF9FWFRFTlNJT046CiAJCQljYXNlIE9CSkVDVF9UQUJMRVNQ QUNFOgpAQCAtMTI5NCw2ICsxMzUzLDE2IEBAIGdldF9vYmplY3RfYWRkcmVzc191bnF1YWxp ZmllZChPYmplY3RUeXBlIG9ianR5cGUsCiAJCQlhZGRyZXNzLm9iamVjdElkID0gZ2V0X2Ft X29pZChuYW1lLCBtaXNzaW5nX29rKTsKIAkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwog CQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCWFkZHJlc3MuY2xhc3NJZCA9IENv bHVtbkVuY0tleVJlbGF0aW9uSWQ7CisJCQlhZGRyZXNzLm9iamVjdElkID0gZ2V0X2Nla19v aWQobmFtZSwgbWlzc2luZ19vayk7CisJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKKwkJ CWJyZWFrOworCQljYXNlIE9CSkVDVF9DTUs6CisJCQlhZGRyZXNzLmNsYXNzSWQgPSBDb2x1 bW5NYXN0ZXJLZXlSZWxhdGlvbklkOworCQkJYWRkcmVzcy5vYmplY3RJZCA9IGdldF9jbWtf b2lkKG5hbWUsIG1pc3Npbmdfb2spOworCQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CisJ CQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CiAJCQlhZGRyZXNzLmNsYXNzSWQg PSBEYXRhYmFzZVJlbGF0aW9uSWQ7CiAJCQlhZGRyZXNzLm9iamVjdElkID0gZ2V0X2RhdGFi YXNlX29pZChuYW1lLCBtaXNzaW5nX29rKTsKQEAgLTIzMjIsNiArMjM5MSw4IEBAIHBnX2dl dF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQkJb2Jqbm9kZSA9IChOb2Rl ICopIG5hbWU7CiAJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKKwkJ Y2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0RB VEFCQVNFOgogCQljYXNlIE9CSkVDVF9FVkVOVF9UUklHR0VSOgogCQljYXNlIE9CSkVDVF9F WFRFTlNJT046CkBAIC0yNjI5LDYgKzI3MDAsMTYgQEAgY2hlY2tfb2JqZWN0X293bmVyc2hp cChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFkZHJlc3MgYWRkcmVz cywKIAkJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIG9ianR5cGUsCiAJ CQkJCQkJICAgTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKSk7CiAJ CQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJaWYgKCFwZ19jb2x1bW5fZW5jcnlw dGlvbl9rZXlfb3duZXJjaGVjayhhZGRyZXNzLm9iamVjdElkLCByb2xlaWQpKQorCQkJCWFj bGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgb2JqdHlwZSwKKwkJCQkJCQkgICBz dHJWYWwob2JqZWN0KSk7CisJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJaWYg KCFwZ19jb2x1bW5fbWFzdGVyX2tleV9vd25lcmNoZWNrKGFkZHJlc3Mub2JqZWN0SWQsIHJv bGVpZCkpCisJCQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBvYmp0eXBl LAorCQkJCQkJCSAgIHN0clZhbChvYmplY3QpKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0Ogog CQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLAogCQkJCSAo aW50KSBvYmp0eXBlKTsKQEAgLTMwODksNiArMzE3MCw0OCBAQCBnZXRPYmplY3REZXNjcmlw dGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJ CQlicmVhazsKIAkJCX0KIAorCQljYXNlIE9DTEFTU19DRUs6CisJCQl7CisJCQkJY2hhcgkg ICAqY2VrbmFtZSA9IGdldF9jZWtfbmFtZShvYmplY3QtPm9iamVjdElkLCBtaXNzaW5nX29r KTsKKworCQkJCWlmIChjZWtuYW1lKQorCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIs IF8oImNvbHVtbiBlbmNyeXB0aW9uIGtleSAlcyIpLCBjZWtuYW1lKTsKKwkJCQlicmVhazsK KwkJCX0KKworCQljYXNlIE9DTEFTU19DRUtEQVRBOgorCQkJeworCQkJCUhlYXBUdXBsZQl0 dXA7CisJCQkJRm9ybV9wZ19jb2xlbmNrZXlkYXRhIGNla2RhdGE7CisKKwkJCQl0dXAgPSBT ZWFyY2hTeXNDYWNoZTEoQ0VLREFUQU9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9i amVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJeworCQkJ CQlpZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZh aWxlZCBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEgJXUiLAorCQkJCQkJCSBvYmpl Y3QtPm9iamVjdElkKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJY2VrZGF0YSA9IChG b3JtX3BnX2NvbGVuY2tleWRhdGEpIEdFVFNUUlVDVCh0dXApOworCisJCQkJYXBwZW5kU3Ry aW5nSW5mbygmYnVmZmVyLCBfKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXMgZGF0YSBmb3Ig bWFzdGVyIGtleSAlcyIpLAorCQkJCQkJCQkgZ2V0X2Nla19uYW1lKGNla2RhdGEtPmNrZGNl a2lkLCBmYWxzZSksCisJCQkJCQkJCSBnZXRfY21rX25hbWUoY2VrZGF0YS0+Y2tkY21raWQs IGZhbHNlKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJ CX0KKworCQljYXNlIE9DTEFTU19DTUs6CisJCQl7CisJCQkJY2hhcgkgICAqY21rbmFtZSA9 IGdldF9jbWtfbmFtZShvYmplY3QtPm9iamVjdElkLCBtaXNzaW5nX29rKTsKKworCQkJCWlm IChjbWtuYW1lKQorCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oImNvbHVtbiBt YXN0ZXIga2V5ICVzIiksIGNta25hbWUpOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2Ug T0NMQVNTX0NPTlNUUkFJTlQ6CiAJCQl7CiAJCQkJSGVhcFR1cGxlCWNvblR1cDsKQEAgLTQ1 MTMsNiArNDYzNiwxOCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0 QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZv U3RyaW5nKCZidWZmZXIsICJjb2xsYXRpb24iKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0NM QVNTX0NFSzoKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgImNvbHVtbiBl bmNyeXB0aW9uIGtleSIpOworCQkJYnJlYWs7CisKKwkJY2FzZSBPQ0xBU1NfQ0VLREFUQToK KwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgImNvbHVtbiBlbmNyeXB0aW9u IGtleSBkYXRhIik7CisJCQlicmVhazsKKworCQljYXNlIE9DTEFTU19DTUs6CisJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb2x1bW4gbWFzdGVyIGtleSIpOworCQkJ YnJlYWs7CisKIAkJY2FzZSBPQ0xBU1NfQ09OU1RSQUlOVDoKIAkJCWdldENvbnN0cmFpbnRU eXBlRGVzY3JpcHRpb24oJmJ1ZmZlciwgb2JqZWN0LT5vYmplY3RJZCwKIAkJCQkJCQkJCQkg bWlzc2luZ19vayk7CkBAIC00OTc4LDYgKzUxMTMsNTQgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQ YXJ0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJYnJlYWs7CiAJCQl9CiAK KwkJY2FzZSBPQ0xBU1NfQ0VLOgorCQkJeworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9y bV9wZ19jb2xlbmNrZXkgZm9ybTsKKworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShDRUtP SUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVh cFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJ CQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0 aW9uIGtleSAldSIsCisJCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCQkJCQlicmVhazsK KwkJCQl9CisJCQkJZm9ybSA9IChGb3JtX3BnX2NvbGVuY2tleSkgR0VUU1RSVUNUKHR1cCk7 CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAorCQkJCQkJCQkJICAgcXVv dGVfaWRlbnRpZmllcihOYW1lU3RyKGZvcm0tPmNla25hbWUpKSk7CisJCQkJaWYgKG9iam5h bWUpCisJCQkJCSpvYmpuYW1lID0gbGlzdF9tYWtlMShwc3RyZHVwKE5hbWVTdHIoZm9ybS0+ Y2VrbmFtZSkpKTsKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJ CX0KKworCQljYXNlIE9DTEFTU19DRUtEQVRBOgorCQkJZWxvZyhFUlJPUiwgIlRPRE8iKTsK KwkJCWJyZWFrOworCisJCWNhc2UgT0NMQVNTX0NNSzoKKwkJCXsKKwkJCQlIZWFwVHVwbGUJ dHVwOworCQkJCUZvcm1fcGdfY29sbWFzdGVya2V5IGZvcm07CisKKwkJCQl0dXAgPSBTZWFy Y2hTeXNDYWNoZTEoQ01LT0lELCBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQp KTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCQl7CisJCQkJCWlmICgh bWlzc2luZ19vaykKKwkJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZv ciBjb2x1bW4gbWFzdGVyIGtleSAldSIsCisJCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOwor CQkJCQlicmVhazsKKwkJCQl9CisJCQkJZm9ybSA9IChGb3JtX3BnX2NvbG1hc3RlcmtleSkg R0VUU1RSVUNUKHR1cCk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAor CQkJCQkJCQkJICAgcXVvdGVfaWRlbnRpZmllcihOYW1lU3RyKGZvcm0tPmNta25hbWUpKSk7 CisJCQkJaWYgKG9iam5hbWUpCisJCQkJCSpvYmpuYW1lID0gbGlzdF9tYWtlMShwc3RyZHVw KE5hbWVTdHIoZm9ybS0+Y21rbmFtZSkpKTsKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsK KwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIE9DTEFTU19DT05TVFJBSU5UOgogCQkJewog CQkJCUhlYXBUdXBsZQljb25UdXA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCmluZGV4IDQ4Zjcz NDhmOTEuLjY5ZjYxNzVjNjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01h a2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC0xOSw2ICsx OSw3IEBAIE9CSlMgPSBcCiAJYW5hbHl6ZS5vIFwKIAlhc3luYy5vIFwKIAljbHVzdGVyLm8g XAorCWNvbGVuY2NtZHMubyBcCiAJY29sbGF0aW9uY21kcy5vIFwKIAljb21tZW50Lm8gXAog CWNvbnN0cmFpbnQubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRl ci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwppbmRleCA1NTIxOWJiMDk3Li42 Y2FhMjFlMzI1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKQEAgLTIyLDcgKzIyLDkgQEAKICNp bmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3Bh Y2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfY29sZW5ja2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24u aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfY29udmVyc2lvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZXZlbnRfdHJp Z2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIuaCIK QEAgLTgwLDYgKzgyLDEyIEBAIHJlcG9ydF9uYW1lX2NvbmZsaWN0KE9pZCBjbGFzc0lkLCBj b25zdCBjaGFyICpuYW1lKQogCiAJc3dpdGNoIChjbGFzc0lkKQogCXsKKwkJY2FzZSBDb2x1 bW5FbmNLZXlSZWxhdGlvbklkOgorCQkJbXNnZm10ID0gZ2V0dGV4dF9ub29wKCJjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3RzIik7CisJCQlicmVhazsKKwkJ Y2FzZSBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkOgorCQkJbXNnZm10ID0gZ2V0dGV4dF9u b29wKCJjb2x1bW4gbWFzdGVyIGtleSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiKTsKKwkJCWJy ZWFrOwogCQljYXNlIEV2ZW50VHJpZ2dlclJlbGF0aW9uSWQ6CiAJCQltc2dmbXQgPSBnZXR0 ZXh0X25vb3AoImV2ZW50IHRyaWdnZXIgXCIlc1wiIGFscmVhZHkgZXhpc3RzIik7CiAJCQli cmVhazsKQEAgLTM3NSw2ICszODMsOCBAQCBFeGVjUmVuYW1lU3RtdChSZW5hbWVTdG10ICpz dG10KQogCQkJcmV0dXJuIFJlbmFtZVR5cGUoc3RtdCk7CiAKIAkJY2FzZSBPQkpFQ1RfQUdH UkVHQVRFOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJY2Fz ZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQljYXNl IE9CSkVDVF9FVkVOVF9UUklHR0VSOgpAQCAtNjM5LDYgKzY0OSw5IEBAIEFsdGVyT2JqZWN0 TmFtZXNwYWNlX29pZChPaWQgY2xhc3NJZCwgT2lkIG9iamlkLCBPaWQgbnNwT2lkLAogCQkJ YnJlYWs7CiAKIAkJY2FzZSBPQ0xBU1NfQ0FTVDoKKwkJY2FzZSBPQ0xBU1NfQ0VLOgorCQlj YXNlIE9DTEFTU19DRUtEQVRBOgorCQljYXNlIE9DTEFTU19DTUs6CiAJCWNhc2UgT0NMQVNT X0NPTlNUUkFJTlQ6CiAJCWNhc2UgT0NMQVNTX0RFRkFVTFQ6CiAJCWNhc2UgT0NMQVNTX0xB TkdVQUdFOgpAQCAtODcyLDYgKzg4NSw4IEBAIEV4ZWNBbHRlck93bmVyU3RtdChBbHRlck93 bmVyU3RtdCAqc3RtdCkKIAogCQkJLyogR2VuZXJpYyBjYXNlcyAqLwogCQljYXNlIE9CSkVD VF9BR0dSRUdBVEU6CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJY2FzZSBPQkpFQ1RfQ01LOgog CQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJ CWNhc2UgT0JKRUNUX0ZVTkNUSU9OOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvY29sZW5jY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmMzNTEyNWY2NWYKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xlbmNjbWRzLmMKQEAgLTAs MCArMSwzNjEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGNvbGVuY2NtZHMu YworICoJICBjb2x1bW4tZW5jcnlwdGlvbi1yZWxhdGVkIGNvbW1hbmRzIHN1cHBvcnQgY29k ZQorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIyLCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKgor ICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21k cy5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpbmNsdWRlICJwb3N0Z3Jl cy5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImFj Y2Vzcy90YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgorI2luY2x1ZGUg ImNhdGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIK KyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfY29sZW5ja2V5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKKyNpbmNsdWRlICJjb21t YW5kcy9jb2xlbmNjbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgor I2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgor I2luY2x1ZGUgInV0aWxzL2FjbC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisj aW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgiCisj aW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworc3RhdGljIHZvaWQKK3BhcnNlX2Nla19h dHRyaWJ1dGVzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZGVmaW5pdGlvbiwgT2lkICpj bWtvaWRfcCwgaW50MTYgKmFsZ19wLCBjaGFyICoqZW5jdmFsX3ApCit7CisJTGlzdENlbGwg ICAqbGM7CisJRGVmRWxlbSAgICAqY21rRWwgPSBOVUxMOworCURlZkVsZW0gICAgKmFsZ0Vs ID0gTlVMTDsKKwlEZWZFbGVtICAgICplbmN2YWxFbCA9IE5VTEw7CisJT2lkCQkJY21rb2lk ID0gMDsKKwlpbnQxNgkJYWxnOworCWNoYXIJICAgKmVuY3ZhbDsKKworCUFzc2VydChjbWtv aWRfcCk7CisKKwlmb3JlYWNoKGxjLCBkZWZpbml0aW9uKQorCXsKKwkJRGVmRWxlbSAgICAq ZGVmZWwgPSBsZmlyc3Rfbm9kZShEZWZFbGVtLCBsYyk7CisJCURlZkVsZW0gICAqKmRlZmVs cDsKKworCQlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiY29sdW1uX21hc3Rlcl9rZXki KSA9PSAwKQorCQkJZGVmZWxwID0gJmNta0VsOworCQllbHNlIGlmIChzdHJjbXAoZGVmZWwt PmRlZm5hbWUsICJhbGdvcml0aG0iKSA9PSAwKQorCQkJZGVmZWxwID0gJmFsZ0VsOworCQll bHNlIGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJlbmNyeXB0ZWRfdmFsdWUiKSA9PSAw KQorCQkJZGVmZWxwID0gJmVuY3ZhbEVsOworCQllbHNlCisJCXsKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1z ZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IGF0dHJpYnV0ZSBcIiVzXCIgbm90IHJlY29nbml6 ZWQiLAorCQkJCQkJCWRlZmVsLT5kZWZuYW1lKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlv bihwc3RhdGUsIGRlZmVsLT5sb2NhdGlvbikpKTsKKwkJfQorCQlpZiAoKmRlZmVscCAhPSBO VUxMKQorCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisJCSpk ZWZlbHAgPSBkZWZlbDsKKwl9CisKKwlpZiAoY21rRWwpCisJeworCQljaGFyCSAgICp2YWwg PSBkZWZHZXRTdHJpbmcoY21rRWwpOworCisJCWNta29pZCA9IEdldFN5c0NhY2hlT2lkMShD TUtOQU1FLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQsIFBvaW50ZXJHZXREYXR1bSh2YWwp KTsKKwkJaWYgKCFjbWtvaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVS UkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCWVycm1zZygiY29sdW1uIG1hc3RlciBr ZXkgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgdmFsKSk7CisJfQorCWVsc2UKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJIGVy cm1zZygiYXR0cmlidXRlIFwiJXNcIiBtdXN0IGJlIHNwZWNpZmllZCIsCisJCQkJCQkiY29s dW1uX21hc3Rlcl9rZXkiKSkpOworCisJaWYgKGFsZ0VsKQorCXsKKwkJY2hhcgkgICAqdmFs ID0gZGVmR2V0U3RyaW5nKGFsZ0VsKTsKKworCQlpZiAoIWFsZ19wKQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJy bXNnKCJhdHRyaWJ1dGUgXCIlc1wiIG11c3Qgbm90IGJlIHNwZWNpZmllZCIsCisJCQkJCQkJ ImFsZ29yaXRobSIpKSk7CisKKwkJaWYgKHN0cmNtcCh2YWwsICJSU0FFU19PQUVQX1NIQV8x IikgPT0gMCkKKwkJCWFsZyA9IFBHX0NNS19SU0FFU19PQUVQX1NIQV8xOworCQllbHNlIGlm IChzdHJjbXAodmFsLCAiUEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NiIpID09IDApCisJCQlh bGcgPSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMjU2OworCQllbHNlCisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAor CQkJCQllcnJtc2coInVucmVjb2duaXplZCBlbmNyeXB0aW9uIGFsZ29yaXRobTogJXMiLCB2 YWwpKTsKKwl9CisJZWxzZQorCQlhbGcgPSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMTsKKwor CWlmIChlbmN2YWxFbCkKKwl7CisJCWlmICghZW5jdmFsX3ApCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2co ImF0dHJpYnV0ZSBcIiVzXCIgbXVzdCBub3QgYmUgc3BlY2lmaWVkIiwKKwkJCQkJCQkiZW5j cnlwdGVkX3ZhbHVlIikpKTsKKworCQllbmN2YWwgPSBkZWZHZXRTdHJpbmcoZW5jdmFsRWwp OworCX0KKwllbHNlCisJeworCQlpZiAoZW5jdmFsX3ApCisJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImF0 dHJpYnV0ZSBcIiVzXCIgbXVzdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJCSJlbmNyeXB0ZWRf dmFsdWUiKSkpOworCX0KKworCSpjbWtvaWRfcCA9IGNta29pZDsKKwlpZiAoYWxnX3ApCisJ CSphbGdfcCA9IGFsZzsKKwlpZiAoZW5jdmFsX3ApCisJCSplbmN2YWxfcCA9IGVuY3ZhbDsK K30KKworc3RhdGljIHZvaWQKK2luc2VydF9jZWtkYXRhX3JlY29yZChPaWQgY2Vrb2lkLCBP aWQgY21rb2lkLCBpbnQxNiBhbGcsIGNoYXIgKmVuY3ZhbCkKK3sKKwlPaWQJCQljZWtkYXRh b2lkOworCVJlbGF0aW9uCXJlbDsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX2NvbGVuY2tl eWRhdGFdID0gezB9OworCWJvb2wJCW51bGxzW05hdHRzX3BnX2NvbGVuY2tleWRhdGFdID0g ezB9OworCUhlYXBUdXBsZQl0dXA7CisJT2JqZWN0QWRkcmVzcyBteXNlbGY7CisJT2JqZWN0 QWRkcmVzcyBvdGhlcjsKKworCXJlbCA9IHRhYmxlX29wZW4oQ29sdW1uRW5jS2V5RGF0YVJl bGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJY2VrZGF0YW9pZCA9IEdldE5ld09p ZFdpdGhJbmRleChyZWwsIENvbHVtbkVuY0tleURhdGFPaWRJbmRleElkLCBBbnVtX3BnX2Nv bGVuY2tleWRhdGFfb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCAt IDFdID0gT2JqZWN0SWRHZXREYXR1bShjZWtkYXRhb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19j b2xlbmNrZXlkYXRhX2NrZGNla2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGNla29pZCk7 CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RjbWtpZCAtIDFdID0gT2JqZWN0 SWRHZXREYXR1bShjbWtvaWQpOworCXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tk Y21rYWxnIC0gMV0gPSBJbnQxNkdldERhdHVtKGFsZyk7CisJdmFsdWVzW0FudW1fcGdfY29s ZW5ja2V5ZGF0YV9ja2RlbmN2YWwgLSAxXSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoYnl0ZWFp biwgQ1N0cmluZ0dldERhdHVtKGVuY3ZhbCkpOworCisJdHVwID0gaGVhcF9mb3JtX3R1cGxl KFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxl SW5zZXJ0KHJlbCwgdHVwKTsKKwloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJT2JqZWN0QWRk cmVzc1NldChteXNlbGYsIENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLCBjZWtkYXRhb2lk KTsKKworCS8qIGRlcGVuZGVuY3kgY2VrZGF0YSAtPiBjZWsgKi8KKwlPYmplY3RBZGRyZXNz U2V0KG90aGVyLCBDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtvaWQpOworCXJlY29yZERl cGVuZGVuY3lPbigmbXlzZWxmLCAmb3RoZXIsIERFUEVOREVOQ1lfQVVUTyk7CisKKwkvKiBk ZXBlbmRlbmN5IGNla2RhdGEgLT4gY21rICovCisJT2JqZWN0QWRkcmVzc1NldChvdGhlciwg Q29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21rb2lkKTsKKwlyZWNvcmREZXBlbmRlbmN5 T24oJm15c2VsZiwgJm90aGVyLCBERVBFTkRFTkNZX05PUk1BTCk7CisKKwl0YWJsZV9jbG9z ZShyZWwsIE5vTG9jayk7Cit9CisKK09iamVjdEFkZHJlc3MKK0NyZWF0ZUNFSyhQYXJzZVN0 YXRlICpwc3RhdGUsIERlZmluZVN0bXQgKnN0bXQpCit7CisJQWNsUmVzdWx0CWFjbHJlc3Vs dDsKKwlSZWxhdGlvbglyZWw7CisJT2JqZWN0QWRkcmVzcyBteXNlbGY7CisJT2lkCQkJY2Vr b2lkOworCUxpc3RDZWxsICAgKmxjOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfY29sZW5j a2V5XSA9IHswfTsKKwlib29sCQludWxsc1tOYXR0c19wZ19jb2xlbmNrZXldID0gezB9Owor CUhlYXBUdXBsZQl0dXA7CisKKwlhY2xyZXN1bHQgPSBwZ19kYXRhYmFzZV9hY2xjaGVjayhN eURhdGFiYXNlSWQsIEdldFVzZXJJZCgpLCBBQ0xfQ1JFQVRFKTsKKwlpZiAoYWNscmVzdWx0 ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9E QVRBQkFTRSwKKwkJCQkJICAgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSk7CisK KwlyZWwgPSB0YWJsZV9vcGVuKENvbHVtbkVuY0tleVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2 ZUxvY2spOworCisJY2Vrb2lkID0gR2V0U3lzQ2FjaGVPaWQxKENFS05BTUUsIEFudW1fcGdf Y29sZW5ja2V5X29pZCwKKwkJCQkJCQkgQ1N0cmluZ0dldERhdHVtKHN0clZhbChsbGFzdChz dG10LT5kZWZuYW1lcykpKSk7CisJaWYgKE9pZElzVmFsaWQoY2Vrb2lkKSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJ CSBlcnJtc2coImNvbHVtbiBlbmNyeXB0aW9uIGtleSBcIiVzXCIgYWxyZWFkeSBleGlzdHMi LAorCQkJCQkJc3RyVmFsKGxsYXN0KHN0bXQtPmRlZm5hbWVzKSkpKSk7CisKKwljZWtvaWQg PSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBDb2x1bW5FbmNLZXlPaWRJbmRleElkLCBBbnVt X3BnX2NvbGVuY2tleV9vaWQpOworCisJZm9yZWFjaCAobGMsIHN0bXQtPmRlZmluaXRpb24p CisJeworCQlMaXN0CSAgICpkZWZpbml0aW9uID0gbGZpcnN0X25vZGUoTGlzdCwgbGMpOwor CQlPaWQJCQljbWtvaWQgPSAwOworCQlpbnQxNgkJYWxnOworCQljaGFyCSAgICplbmN2YWw7 CisKKwkJcGFyc2VfY2VrX2F0dHJpYnV0ZXMocHN0YXRlLCBkZWZpbml0aW9uLCAmY21rb2lk LCAmYWxnLCAmZW5jdmFsKTsKKworCQkvKiBwZ19jb2xlbmNrZXlkYXRhICovCisJCWluc2Vy dF9jZWtkYXRhX3JlY29yZChjZWtvaWQsIGNta29pZCwgYWxnLCBlbmN2YWwpOworCX0KKwor CS8qIHBnX2NvbGVuY2tleSAqLworCXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleV9vaWQgLSAx XSA9IE9iamVjdElkR2V0RGF0dW0oY2Vrb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNr ZXlfY2VrbmFtZSAtIDFdID0KKwkJRGlyZWN0RnVuY3Rpb25DYWxsMShuYW1laW4sIENTdHJp bmdHZXREYXR1bShzdHJWYWwobGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkpOworCXZhbHVlc1tB bnVtX3BnX2NvbGVuY2tleV9jZWtvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShHZXRV c2VySWQoKSk7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihy ZWwpLCB2YWx1ZXMsIG51bGxzKTsKKwlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXApOwor CWhlYXBfZnJlZXR1cGxlKHR1cCk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgQ29s dW1uRW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkKTsKKwlyZWNvcmREZXBlbmRlbmN5T25Pd25l cihDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtvaWQsIEdldFVzZXJJZCgpKTsKKworCXRh YmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlJbnZva2VPYmplY3RQb3N0 Q3JlYXRlSG9vayhDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtvaWQsIDApOworCisJcmV0 dXJuIG15c2VsZjsKK30KKworT2JqZWN0QWRkcmVzcworQWx0ZXJDb2x1bW5FbmNyeXB0aW9u S2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCAq c3RtdCkKK3sKKwlPaWQJCQljZWtvaWQ7CisJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOworCisJ Y2Vrb2lkID0gZ2V0X2Nla19vaWQoc3RtdC0+Y2VrbmFtZSwgZmFsc2UpOworCisJaWYgKCFw Z19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfb3duZXJjaGVjayhjZWtvaWQsIEdldFVzZXJJZCgp KSkKKwkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfQ0VLLCBz dG10LT5jZWtuYW1lKTsKKworCWlmIChzdG10LT5pc0Ryb3ApCisJeworCQlPaWQJCQljbWtv aWQgPSAwOworCQlPaWQJCQljZWtkYXRhb2lkOworCQlPYmplY3RBZGRyZXNzIG9iajsKKwor CQlwYXJzZV9jZWtfYXR0cmlidXRlcyhwc3RhdGUsIHN0bXQtPmRlZmluaXRpb24sICZjbWtv aWQsIE5VTEwsIE5VTEwpOworCisJCWNla2RhdGFvaWQgPSBHZXRTeXNDYWNoZU9pZDIoQ0VL REFUQUNFS0NNSywgQW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCwKKwkJCQkJCQkJCSBPYmpl Y3RJZEdldERhdHVtKGNla29pZCksCisJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShjbWtv aWQpKTsKKwkJaWYgKCFPaWRJc1ZhbGlkKGNla2RhdGFvaWQpKQorCQl7CisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJ CQkgZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wiIGhhcyBubyBkYXRhIGZv ciBtYXN0ZXIga2V5IFwiJXNcIiIsCisJCQkJCQkJZ2V0X2Nla19uYW1lKGNla29pZCwgZmFs c2UpLCBnZXRfY21rX25hbWUoY21rb2lkLCBmYWxzZSkpKSk7CisJCX0KKworCQlPYmplY3RB ZGRyZXNzU2V0KG9iaiwgQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQsIGNla2RhdGFvaWQp OworCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAwKTsKKwkJLy8gVE9E TzogcHJldmVudCBkZWxldGluZyBhbGwgZGF0YSBlbnRyaWVzIGZvciBhIGtleT8KKwl9CisJ ZWxzZQorCXsKKwkJT2lkCQkJY21rb2lkID0gMDsKKwkJaW50MTYJCWFsZzsKKwkJY2hhcgkg ICAqZW5jdmFsOworCisJCXBhcnNlX2Nla19hdHRyaWJ1dGVzKHBzdGF0ZSwgc3RtdC0+ZGVm aW5pdGlvbiwgJmNta29pZCwgJmFsZywgJmVuY3ZhbCk7CisJCS8vIFRPRE86IGNoZWNrIGZv ciBkdXBsaWNhdGVzCisJCWluc2VydF9jZWtkYXRhX3JlY29yZChjZWtvaWQsIGNta29pZCwg YWxnLCBlbmN2YWwpOworCX0KKworCUludm9rZU9iamVjdFBvc3RBbHRlckhvb2soQ29sdW1u RW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkLCAwKTsKKwlPYmplY3RBZGRyZXNzU2V0KGFkZHJl c3MsIENvbHVtbkVuY0tleVJlbGF0aW9uSWQsIGNla29pZCk7CisKKwlyZXR1cm4gYWRkcmVz czsKK30KKworT2JqZWN0QWRkcmVzcworQ3JlYXRlQ01LKFBhcnNlU3RhdGUgKnBzdGF0ZSwg RGVmaW5lU3RtdCAqc3RtdCkKK3sKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVJlbGF0aW9u CXJlbDsKKwlPYmplY3RBZGRyZXNzIG15c2VsZjsKKwlPaWQJCQljbWtvaWQ7CisJTGlzdENl bGwgICAqbGM7CisJRGVmRWxlbSAgICAqcmVhbG1FbCA9IE5VTEw7CisJY2hhcgkgICAqcmVh bG07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19jb2xtYXN0ZXJrZXldID0gezB9OworCWJv b2wJCW51bGxzW05hdHRzX3BnX2NvbG1hc3RlcmtleV0gPSB7MH07CisJSGVhcFR1cGxlCXR1 cDsKKworCWFjbHJlc3VsdCA9IHBnX2RhdGFiYXNlX2FjbGNoZWNrKE15RGF0YWJhc2VJZCwg R2V0VXNlcklkKCksIEFDTF9DUkVBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tf T0spCisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX0RBVEFCQVNFLAorCQkJ CQkgICBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKTsKKworCXJlbCA9IHRhYmxl X29wZW4oQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisK KwljbWtvaWQgPSBHZXRTeXNDYWNoZU9pZDEoQ01LTkFNRSwgQW51bV9wZ19jb2xtYXN0ZXJr ZXlfb2lkLAorCQkJCQkJCSBDU3RyaW5nR2V0RGF0dW0oc3RyVmFsKGxsYXN0KHN0bXQtPmRl Zm5hbWVzKSkpKTsKKwlpZiAoT2lkSXNWYWxpZChjbWtvaWQpKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJIGVycm1z ZygiY29sdW1uIG1hc3RlciBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJCQkJCXN0 clZhbChsbGFzdChzdG10LT5kZWZuYW1lcykpKSkpOworCisJZm9yZWFjaChsYywgc3RtdC0+ ZGVmaW5pdGlvbikKKwl7CisJCURlZkVsZW0gICAgKmRlZmVsID0gbGZpcnN0X25vZGUoRGVm RWxlbSwgbGMpOworCQlEZWZFbGVtICAgKipkZWZlbHA7CisKKwkJaWYgKHN0cmNtcChkZWZl bC0+ZGVmbmFtZSwgInJlYWxtIikgPT0gMCkKKwkJCWRlZmVscCA9ICZyZWFsbUVsOworCQll bHNlCisJCXsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lO VEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiY29sdW1uIG1hc3RlciBrZXkgYXR0cmlidXRl IFwiJXNcIiBub3QgcmVjb2duaXplZCIsCisJCQkJCQkJZGVmZWwtPmRlZm5hbWUpLAorCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVmZWwtPmxvY2F0aW9uKSkpOworCQl9 CisJCWlmICgqZGVmZWxwICE9IE5VTEwpCisJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShk ZWZlbCwgcHN0YXRlKTsKKwkJKmRlZmVscCA9IGRlZmVsOworCX0KKworCWlmIChyZWFsbUVs KQorCQlyZWFsbSA9IGRlZkdldFN0cmluZyhyZWFsbUVsKTsKKwllbHNlCisJCXJlYWxtID0g IiI7CisKKwljbWtvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBDb2x1bW5NYXN0ZXJL ZXlPaWRJbmRleElkLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQpOworCXZhbHVlc1tBbnVt X3BnX2NvbG1hc3RlcmtleV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oY21rb2lkKTsK Kwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFtZSAtIDFdID0KKwkJRGlyZWN0 RnVuY3Rpb25DYWxsMShuYW1laW4sIENTdHJpbmdHZXREYXR1bShzdHJWYWwobGxhc3Qoc3Rt dC0+ZGVmbmFtZXMpKSkpOworCXZhbHVlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtvd25l ciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShHZXRVc2VySWQoKSk7CisJdmFsdWVzW0FudW1f cGdfY29sbWFzdGVya2V5X2Nta3JlYWxtIC0gMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKHJl YWxtKTsKKworCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCks IHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7CisJaGVh cF9mcmVldHVwbGUodHVwKTsKKworCXJlY29yZERlcGVuZGVuY3lPbk93bmVyKENvbHVtbk1h c3RlcktleVJlbGF0aW9uSWQsIGNta29pZCwgR2V0VXNlcklkKCkpOworCisJT2JqZWN0QWRk cmVzc1NldChteXNlbGYsIENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCk7CisK Kwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJSW52b2tlT2JqZWN0 UG9zdENyZWF0ZUhvb2soQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21rb2lkLCAwKTsK KworCXJldHVybiBteXNlbGY7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9ldmVudF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2Vy LmMKaW5kZXggNjM1ZDA1NDA1ZS4uZjAwOGVhZTZmOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2V2ZW50X3RyaWdnZXIuYwpAQCAtOTUxLDYgKzk1MSw4IEBAIEV2ZW50VHJpZ2dlclN1cHBv cnRzT2JqZWN0VHlwZShPYmplY3RUeXBlIG9idHlwZSkKIAkJY2FzZSBPQkpFQ1RfQU1QUk9D OgogCQljYXNlIE9CSkVDVF9BVFRSSUJVVEU6CiAJCWNhc2UgT0JKRUNUX0NBU1Q6CisJCWNh c2UgT0JKRUNUX0NFSzoKKwkJY2FzZSBPQkpFQ1RfQ01LOgogCQljYXNlIE9CSkVDVF9DT0xV TU46CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lP TjoKQEAgLTEwMjcsNiArMTAyOSw5IEBAIEV2ZW50VHJpZ2dlclN1cHBvcnRzT2JqZWN0Q2xh c3MoT2JqZWN0Q2xhc3Mgb2JqY2xhc3MpCiAJCWNhc2UgT0NMQVNTX1RZUEU6CiAJCWNhc2Ug T0NMQVNTX0NBU1Q6CiAJCWNhc2UgT0NMQVNTX0NPTExBVElPTjoKKwkJY2FzZSBPQ0xBU1Nf Q0VLOgorCQljYXNlIE9DTEFTU19DRUtEQVRBOgorCQljYXNlIE9DTEFTU19DTUs6CiAJCWNh c2UgT0NMQVNTX0NPTlNUUkFJTlQ6CiAJCWNhc2UgT0NMQVNTX0NPTlZFUlNJT046CiAJCWNh c2UgT0NMQVNTX0RFRkFVTFQ6CkBAIC0yMDU2LDYgKzIwNjEsOCBAQCBzdHJpbmdpZnlfZ3Jh bnRfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoK IAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQljYXNl IE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFU SU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9ERUZBVUxU OgpAQCAtMjEzOSw2ICsyMTQ2LDggQEAgc3RyaW5naWZ5X2FkZWZwcml2c19vYmp0eXBlKE9i amVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfQU1QUk9DOgogCQljYXNlIE9CSkVD VF9BVFRSSUJVVEU6CiAJCWNhc2UgT0JKRUNUX0NBU1Q6CisJCWNhc2UgT0JKRUNUX0NFSzoK KwkJY2FzZSBPQkpFQ1RfQ01LOgogCQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCWNhc2Ug T0JKRUNUX0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX0RFRkFVTFQ6CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9wcmVwYXJlLmMKaW5kZXggYzRiNTRkMDU0Ny4uNjVkZGUzMjQ0MSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3ByZXBhcmUuYwpAQCAtNTAsNyArNTAsNiBAQCBzdGF0aWMgdm9pZCBJbml0UXVlcnlI YXNoVGFibGUodm9pZCk7CiBzdGF0aWMgUGFyYW1MaXN0SW5mbyBFdmFsdWF0ZVBhcmFtcyhQ YXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQlQcmVwYXJlZFN0YXRlbWVudCAqcHN0bXQs IExpc3QgKnBhcmFtcywKIAkJCQkJCQkJCUVTdGF0ZSAqZXN0YXRlKTsKLXN0YXRpYyBEYXR1 bSBidWlsZF9yZWd0eXBlX2FycmF5KE9pZCAqcGFyYW1fdHlwZXMsIGludCBudW1fcGFyYW1z KTsKIAogLyoKICAqIEltcGxlbWVudHMgdGhlICdQUkVQQVJFJyB1dGlsaXR5IHN0YXRlbWVu dC4KQEAgLTYyLDYgKzYxLDggQEAgUHJlcGFyZVF1ZXJ5KFBhcnNlU3RhdGUgKnBzdGF0ZSwg UHJlcGFyZVN0bXQgKnN0bXQsCiAJUmF3U3RtdCAgICAqcmF3c3RtdDsKIAlDYWNoZWRQbGFu U291cmNlICpwbGFuc291cmNlOwogCU9pZAkJICAgKmFyZ3R5cGVzID0gTlVMTDsKKwlPaWQJ CSAgICphcmdvcmlndGJscyA9IE5VTEw7CisJQXR0ck51bWJlciAqYXJnb3JpZ2NvbHMgPSBO VUxMOwogCWludAkJCW5hcmdzOwogCUxpc3QJICAgKnF1ZXJ5X2xpc3Q7CiAKQEAgLTEwOCw2 ICsxMDksOSBAQCBQcmVwYXJlUXVlcnkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJlU3Rt dCAqc3RtdCwKIAogCQkJYXJndHlwZXNbaSsrXSA9IHRvaWQ7CiAJCX0KKworCQlhcmdvcmln dGJscyA9IHBhbGxvYzBfYXJyYXkoT2lkLCBuYXJncyk7CisJCWFyZ29yaWdjb2xzID0gcGFs bG9jMF9hcnJheShBdHRyTnVtYmVyLCBuYXJncyk7CiAJfQogCiAJLyoKQEAgLTExNyw3ICsx MjEsOSBAQCBQcmVwYXJlUXVlcnkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJlU3RtdCAq c3RtdCwKIAkgKiBSZXdyaXRlIHRoZSBxdWVyeS4gVGhlIHJlc3VsdCBjb3VsZCBiZSAwLCAx LCBvciBtYW55IHF1ZXJpZXMuCiAJICovCiAJcXVlcnlfbGlzdCA9IHBnX2FuYWx5emVfYW5k X3Jld3JpdGVfdmFycGFyYW1zKHJhd3N0bXQsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAotCQkJ CQkJCQkJCQkJICAmYXJndHlwZXMsICZuYXJncywgTlVMTCk7CisJCQkJCQkJCQkJCQkgICZh cmd0eXBlcywgJm5hcmdzLAorCQkJCQkJCQkJCQkJICAmYXJnb3JpZ3RibHMsICZhcmdvcmln Y29scywKKwkJCQkJCQkJCQkJCSAgTlVMTCk7CiAKIAkvKiBGaW5pc2ggZmlsbGluZyBpbiB0 aGUgQ2FjaGVkUGxhblNvdXJjZSAqLwogCUNvbXBsZXRlQ2FjaGVkUGxhbihwbGFuc291cmNl LApAQCAtMTI1LDYgKzEzMSw4IEBAIFByZXBhcmVRdWVyeShQYXJzZVN0YXRlICpwc3RhdGUs IFByZXBhcmVTdG10ICpzdG10LAogCQkJCQkgICBOVUxMLAogCQkJCQkgICBhcmd0eXBlcywK IAkJCQkJICAgbmFyZ3MsCisJCQkJCSAgIGFyZ29yaWd0YmxzLAorCQkJCQkgICBhcmdvcmln Y29scywKIAkJCQkJICAgTlVMTCwKIAkJCQkJICAgTlVMTCwKIAkJCQkJICAgQ1VSU09SX09Q VF9QQVJBTExFTF9PSywJLyogYWxsb3cgcGFyYWxsZWwgbW9kZSAqLwpAQCAtNjgzLDM0ICs2 OTEsNDkgQEAgcGdfcHJlcGFyZWRfc3RhdGVtZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCWhh c2hfc2VxX2luaXQoJmhhc2hfc2VxLCBwcmVwYXJlZF9xdWVyaWVzKTsKIAkJd2hpbGUgKChw cmVwX3N0bXQgPSBoYXNoX3NlcV9zZWFyY2goJmhhc2hfc2VxKSkgIT0gTlVMTCkKIAkJewor CQkJaW50CQkJbnVtX3BhcmFtcyA9IHByZXBfc3RtdC0+cGxhbnNvdXJjZS0+bnVtX3BhcmFt czsKIAkJCVR1cGxlRGVzYwlyZXN1bHRfZGVzYzsKLQkJCURhdHVtCQl2YWx1ZXNbOF07Ci0J CQlib29sCQludWxsc1s4XSA9IHswfTsKKwkJCURhdHVtCSAgICp0bXBfYXJ5OworCQkJRGF0 dW0JCXZhbHVlc1sxMF07CisJCQlib29sCQludWxsc1sxMF0gPSB7MH07CiAKIAkJCXJlc3Vs dF9kZXNjID0gcHJlcF9zdG10LT5wbGFuc291cmNlLT5yZXN1bHREZXNjOwogCiAJCQl2YWx1 ZXNbMF0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKHByZXBfc3RtdC0+c3RtdF9uYW1lKTsKIAkJ CXZhbHVlc1sxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ocHJlcF9zdG10LT5wbGFuc291cmNl LT5xdWVyeV9zdHJpbmcpOwogCQkJdmFsdWVzWzJdID0gVGltZXN0YW1wVHpHZXREYXR1bShw cmVwX3N0bXQtPnByZXBhcmVfdGltZSk7Ci0JCQl2YWx1ZXNbM10gPSBidWlsZF9yZWd0eXBl X2FycmF5KHByZXBfc3RtdC0+cGxhbnNvdXJjZS0+cGFyYW1fdHlwZXMsCi0JCQkJCQkJCQkJ CXByZXBfc3RtdC0+cGxhbnNvdXJjZS0+bnVtX3BhcmFtcyk7CisKKwkJCXRtcF9hcnkgPSBw YWxsb2NfYXJyYXkoRGF0dW0sIG51bV9wYXJhbXMpOworCQkJZm9yIChpbnQgaSA9IDA7IGkg PCBudW1fcGFyYW1zOyBpKyspCisJCQkJdG1wX2FyeVtpXSA9IE9iamVjdElkR2V0RGF0dW0o cHJlcF9zdG10LT5wbGFuc291cmNlLT5wYXJhbV90eXBlc1tpXSk7CisJCQl2YWx1ZXNbM10g PSBQb2ludGVyR2V0RGF0dW0oY29uc3RydWN0X2FycmF5X2J1aWx0aW4odG1wX2FyeSwgbnVt X3BhcmFtcywgUkVHVFlQRU9JRCkpOworCisJCQl0bXBfYXJ5ID0gcGFsbG9jX2FycmF5KERh dHVtLCBudW1fcGFyYW1zKTsKKwkJCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX3BhcmFtczsg aSsrKQorCQkJCXRtcF9hcnlbaV0gPSBPYmplY3RJZEdldERhdHVtKHByZXBfc3RtdC0+cGxh bnNvdXJjZS0+cGFyYW1fb3JpZ3RibHNbaV0pOworCQkJdmFsdWVzWzRdID0gUG9pbnRlckdl dERhdHVtKGNvbnN0cnVjdF9hcnJheV9idWlsdGluKHRtcF9hcnksIG51bV9wYXJhbXMsIFJF R0NMQVNTT0lEKSk7CisKKwkJCXRtcF9hcnkgPSBwYWxsb2NfYXJyYXkoRGF0dW0sIG51bV9w YXJhbXMpOworCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fcGFyYW1zOyBpKyspCisJCQkJ dG1wX2FyeVtpXSA9IEludDE2R2V0RGF0dW0ocHJlcF9zdG10LT5wbGFuc291cmNlLT5wYXJh bV9vcmlnY29sc1tpXSk7CisJCQl2YWx1ZXNbNV0gPSBQb2ludGVyR2V0RGF0dW0oY29uc3Ry dWN0X2FycmF5X2J1aWx0aW4odG1wX2FyeSwgbnVtX3BhcmFtcywgSU5UMk9JRCkpOworCiAJ CQlpZiAocmVzdWx0X2Rlc2MpCiAJCQl7Ci0JCQkJT2lkCQkgICAqcmVzdWx0X3R5cGVzOwot Ci0JCQkJcmVzdWx0X3R5cGVzID0gcGFsbG9jX2FycmF5KE9pZCwgcmVzdWx0X2Rlc2MtPm5h dHRzKTsKKwkJCQl0bXBfYXJ5ID0gcGFsbG9jX2FycmF5KERhdHVtLCByZXN1bHRfZGVzYy0+ bmF0dHMpOwogCQkJCWZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0X2Rlc2MtPm5hdHRzOyBp KyspCi0JCQkJCXJlc3VsdF90eXBlc1tpXSA9IHJlc3VsdF9kZXNjLT5hdHRyc1tpXS5hdHR0 eXBpZDsKLQkJCQl2YWx1ZXNbNF0gPSBidWlsZF9yZWd0eXBlX2FycmF5KHJlc3VsdF90eXBl cywgcmVzdWx0X2Rlc2MtPm5hdHRzKTsKKwkJCQkJdG1wX2FyeVtpXSA9IE9iamVjdElkR2V0 RGF0dW0ocmVzdWx0X2Rlc2MtPmF0dHJzW2ldLmF0dHR5cGlkKTsKKwkJCQl2YWx1ZXNbNl0g PSBQb2ludGVyR2V0RGF0dW0oY29uc3RydWN0X2FycmF5X2J1aWx0aW4odG1wX2FyeSwgcmVz dWx0X2Rlc2MtPm5hdHRzLCBSRUdUWVBFT0lEKSk7CiAJCQl9CiAJCQllbHNlCiAJCQl7CiAJ CQkJLyogbm8gcmVzdWx0IGRlc2NyaXB0b3IgKGZvciBleGFtcGxlLCBETUwgc3RhdGVtZW50 KSAqLwotCQkJCW51bGxzWzRdID0gdHJ1ZTsKKwkJCQludWxsc1s2XSA9IHRydWU7CiAJCQl9 Ci0JCQl2YWx1ZXNbNV0gPSBCb29sR2V0RGF0dW0ocHJlcF9zdG10LT5mcm9tX3NxbCk7Ci0J CQl2YWx1ZXNbNl0gPSBJbnQ2NEdldERhdHVtRmFzdChwcmVwX3N0bXQtPnBsYW5zb3VyY2Ut Pm51bV9nZW5lcmljX3BsYW5zKTsKLQkJCXZhbHVlc1s3XSA9IEludDY0R2V0RGF0dW1GYXN0 KHByZXBfc3RtdC0+cGxhbnNvdXJjZS0+bnVtX2N1c3RvbV9wbGFucyk7CisKKwkJCXZhbHVl c1s3XSA9IEJvb2xHZXREYXR1bShwcmVwX3N0bXQtPmZyb21fc3FsKTsKKwkJCXZhbHVlc1s4 XSA9IEludDY0R2V0RGF0dW1GYXN0KHByZXBfc3RtdC0+cGxhbnNvdXJjZS0+bnVtX2dlbmVy aWNfcGxhbnMpOworCQkJdmFsdWVzWzldID0gSW50NjRHZXREYXR1bUZhc3QocHJlcF9zdG10 LT5wbGFuc291cmNlLT5udW1fY3VzdG9tX3BsYW5zKTsKIAogCQkJdHVwbGVzdG9yZV9wdXR2 YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJzaW5mby0+c2V0RGVzYywKIAkJCQkJCQkJIHZh bHVlcywgbnVsbHMpOwpAQCAtNzE5LDI0ICs3NDIsMyBAQCBwZ19wcmVwYXJlZF9zdGF0ZW1l bnQoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJldHVybiAoRGF0dW0pIDA7CiB9Ci0KLS8qCi0g KiBUaGlzIHV0aWxpdHkgZnVuY3Rpb24gdGFrZXMgYSBDIGFycmF5IG9mIE9pZHMsIGFuZCBy ZXR1cm5zIGEgRGF0dW0KLSAqIHBvaW50aW5nIHRvIGEgb25lLWRpbWVuc2lvbmFsIFBvc3Rn cmVzIGFycmF5IG9mIHJlZ3R5cGVzLiBBbiBlbXB0eQotICogYXJyYXkgaXMgcmV0dXJuZWQg YXMgYSB6ZXJvLWVsZW1lbnQgYXJyYXksIG5vdCBOVUxMLgotICovCi1zdGF0aWMgRGF0dW0K LWJ1aWxkX3JlZ3R5cGVfYXJyYXkoT2lkICpwYXJhbV90eXBlcywgaW50IG51bV9wYXJhbXMp Ci17Ci0JRGF0dW0JICAgKnRtcF9hcnk7Ci0JQXJyYXlUeXBlICAqcmVzdWx0OwotCWludAkJ CWk7Ci0KLQl0bXBfYXJ5ID0gcGFsbG9jX2FycmF5KERhdHVtLCBudW1fcGFyYW1zKTsKLQot CWZvciAoaSA9IDA7IGkgPCBudW1fcGFyYW1zOyBpKyspCi0JCXRtcF9hcnlbaV0gPSBPYmpl Y3RJZEdldERhdHVtKHBhcmFtX3R5cGVzW2ldKTsKLQotCXJlc3VsdCA9IGNvbnN0cnVjdF9h cnJheV9idWlsdGluKHRtcF9hcnksIG51bV9wYXJhbXMsIFJFR1RZUEVPSUQpOwotCXJldHVy biBQb2ludGVyR2V0RGF0dW0ocmVzdWx0KTsKLX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3NlY2xhYmVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5j CmluZGV4IDdhZTE5Yjk4YmIuLjljY2RmNzYxNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3NlY2xhYmVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFi ZWwuYwpAQCAtNjYsNiArNjYsOCBAQCBTZWNMYWJlbFN1cHBvcnRzT2JqZWN0VHlwZShPYmpl Y3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJY2FzZSBPQkpFQ1Rf QVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQljYXNlIE9CSkVDVF9DRUs6CisJ CWNhc2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9C SkVDVF9DT05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYwppbmRleCBlMzIzM2E4ZjM4Li4xNGU3YTdlNmJkIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgImNhdGFs b2cvcGFydGl0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfYXR0cmRlZi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5 LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RlcGVuZC5oIgpA QCAtOTM1LDYgKzkzNiw4MiBAQCBEZWZpbmVSZWxhdGlvbihDcmVhdGVTdG10ICpzdG10LCBj aGFyIHJlbGtpbmQsIE9pZCBvd25lcklkLAogCQkJYXR0ci0+YXR0Y29tcHJlc3Npb24gPSBH ZXRBdHRyaWJ1dGVDb21wcmVzc2lvbihhdHRyLT5hdHR0eXBpZCwKIAkJCQkJCQkJCQkJCQkJ ICAgY29sRGVmLT5jb21wcmVzc2lvbik7CiAKKwkJaWYgKGNvbERlZi0+ZW5jcnlwdGlvbikK KwkJeworCQkJTGlzdENlbGwgICAqbGM7CisJCQljaGFyCSAgICpjZWsgPSBOVUxMOworCQkJ T2lkCQkJY2Vrb2lkOworCQkJYm9vbAkJZW5jZGV0ID0gZmFsc2U7CisJCQlpbnQJCQlhbGcg PSBQR19DRUtfQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY7CisKKwkJCWZvcmVhY2go bGMsIGNvbERlZi0+ZW5jcnlwdGlvbikKKwkJCXsKKwkJCQlEZWZFbGVtICAgICplbCA9IGxm aXJzdF9ub2RlKERlZkVsZW0sIGxjKTsKKworCQkJCWlmIChzdHJjbXAoZWwtPmRlZm5hbWUs ICJjb2x1bW5fZW5jcnlwdGlvbl9rZXkiKSA9PSAwKQorCQkJCQljZWsgPSBzdHJWYWwobGlu aXRpYWwoY2FzdE5vZGUoVHlwZU5hbWUsIGVsLT5hcmcpLT5uYW1lcykpOworCQkJCWVsc2Ug aWYgKHN0cmNtcChlbC0+ZGVmbmFtZSwgImVuY3J5cHRpb25fdHlwZSIpID09IDApCisJCQkJ eworCQkJCQljaGFyCSAgICp2YWwgPSBzdHJWYWwobGluaXRpYWwoY2FzdE5vZGUoVHlwZU5h bWUsIGVsLT5hcmcpLT5uYW1lcykpOworCisJCQkJCWlmIChzdHJjbXAodmFsLCAiZGV0ZXJt aW5pc3RpYyIpID09IDApCisJCQkJCQllbmNkZXQgPSB0cnVlOworCQkJCQllbHNlIGlmIChz dHJjbXAodmFsLCAicmFuZG9taXplZCIpID09IDApCisJCQkJCQllbmNkZXQgPSBmYWxzZTsK KwkJCQkJZWxzZQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJZXJyY29kZShFUlJD T0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCQkJZXJybXNnKCJ1bnJlY29n bml6ZWQgZW5jcnlwdGlvbiB0eXBlOiAlcyIsIHZhbCkpOworCQkJCX0KKwkJCQllbHNlIGlm IChzdHJjbXAoZWwtPmRlZm5hbWUsICJhbGdvcml0aG0iKSA9PSAwKQorCQkJCXsKKwkJCQkJ Y2hhcgkgICAqdmFsID0gc3RyVmFsKGVsLT5hcmcpOworCisJCQkJCWlmIChzdHJjbXAodmFs LCAiQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTYiKSA9PSAwKQorCQkJCQkJYWxnID0g UEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2OworCQkJCQllbHNlIGlmIChz dHJjbXAodmFsLCAiQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQiKSA9PSAwKQorCQkJ CQkJYWxnID0gUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0OworCQkJCQll bHNlIGlmIChzdHJjbXAodmFsLCAiQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQiKSA9 PSAwKQorCQkJCQkJYWxnID0gUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0 OworCQkJCQllbHNlIGlmIChzdHJjbXAodmFsLCAiQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NI QV81MTIiKSA9PSAwKQorCQkJCQkJYWxnID0gUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1B Q19TSEFfNTEyOworCQkJCQllbHNlCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQll cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJCQllcnJt c2coInVucmVjb2duaXplZCBlbmNyeXB0aW9uIGFsZ29yaXRobTogJXMiLCB2YWwpKTsKKwkJ CQl9CisJCQkJZWxzZQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCWVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQkJZXJybXNnKCJ1bnJlY29n bml6ZWQgY29sdW1uIGVuY3J5cHRpb24gcGFyYW1ldGVyOiAlcyIsIGVsLT5kZWZuYW1lKSk7 CisJCQl9CisKKwkJCWlmICghY2VrKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9DT0xVTU5fREVGSU5JVElPTiksCisJCQkJCQllcnJtc2co ImNvbHVtbiBlbmNyeXB0aW9uIGtleSBtdXN0IGJlIHNwZWNpZmllZCIpKTsKKworCQkJY2Vr b2lkID0gR2V0U3lzQ2FjaGVPaWQxKENFS05BTUUsIEFudW1fcGdfY29sZW5ja2V5X29pZCwg UG9pbnRlckdldERhdHVtKGNlaykpOworCQkJaWYgKCFjZWtvaWQpCisJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJ CWVycm1zZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIs IGNlaykpOworCisJCQlhdHRyLT5hdHRjZWsgPSBjZWtvaWQ7CisJCQlhdHRyLT5hdHRyZWFs dHlwaWQgPSBhdHRyLT5hdHR0eXBpZDsKKwkJCWF0dHItPmF0dGVuY2FsZyA9IGFsZzsKKwor CQkJLyogb3ZlcnJpZGUgcGh5c2ljYWwgdHlwZSAqLworCQkJaWYgKGVuY2RldCkKKwkJCQlh dHRyLT5hdHR0eXBpZCA9IFBHX0VOQ1JZUFRFRF9ERVRPSUQ7CisJCQllbHNlCisJCQkJYXR0 ci0+YXR0dHlwaWQgPSBQR19FTkNSWVBURURfUk5ET0lEOworCQkJZ2V0X3R5cGxlbmJ5dmFs YWxpZ24oYXR0ci0+YXR0dHlwaWQsCisJCQkJCQkJCSAmYXR0ci0+YXR0bGVuLCAmYXR0ci0+ YXR0Ynl2YWwsICZhdHRyLT5hdHRhbGlnbik7CisJCQlhdHRyLT5hdHRzdG9yYWdlID0gZ2V0 X3R5cHN0b3JhZ2UoYXR0ci0+YXR0dHlwaWQpOworCQkJYXR0ci0+YXR0Y29sbGF0aW9uID0g SW52YWxpZE9pZDsKKwkJfQorCiAJCWlmIChjb2xEZWYtPnN0b3JhZ2VfbmFtZSkKIAkJCWF0 dHItPmF0dHN0b3JhZ2UgPSBHZXRBdHRyaWJ1dGVTdG9yYWdlKGF0dHItPmF0dHR5cGlkLCBj b2xEZWYtPnN0b3JhZ2VfbmFtZSk7CiAJfQpAQCAtNjg2OCw2ICs2OTQ1LDkgQEAgQVRFeGVj QWRkQ29sdW1uKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRp b24gcmVsLAogCWF0dHJpYnV0ZS5hdHRnZW5lcmF0ZWQgPSBjb2xEZWYtPmdlbmVyYXRlZDsK IAlhdHRyaWJ1dGUuYXR0aXNkcm9wcGVkID0gZmFsc2U7CiAJYXR0cmlidXRlLmF0dGlzbG9j YWwgPSBjb2xEZWYtPmlzX2xvY2FsOworCWF0dHJpYnV0ZS5hdHRjZWsgPSAwOyAvLyBUT0RP CisJYXR0cmlidXRlLmF0dHJlYWx0eXBpZCA9IDA7IC8vIFRPRE8KKwlhdHRyaWJ1dGUuYXR0 ZW5jYWxnID0gMDsgLy8gVE9ETwogCWF0dHJpYnV0ZS5hdHRpbmhjb3VudCA9IGNvbERlZi0+ aW5oY291bnQ7CiAJYXR0cmlidXRlLmF0dGNvbGxhdGlvbiA9IGNvbGxPaWQ7CiAKQEAgLTEy NjY0LDYgKzEyNzQ0LDkgQEAgQVRFeGVjQWx0ZXJDb2x1bW5UeXBlKEFsdGVyZWRUYWJsZUlu Zm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJY2FzZSBPQ0xBU1NfVFlQRToKIAkJCWNhc2Ug T0NMQVNTX0NBU1Q6CiAJCQljYXNlIE9DTEFTU19DT0xMQVRJT046CisJCQljYXNlIE9DTEFT U19DRUs6CisJCQljYXNlIE9DTEFTU19DRUtEQVRBOgorCQkJY2FzZSBPQ0xBU1NfQ01LOgog CQkJY2FzZSBPQ0xBU1NfQ09OVkVSU0lPTjoKIAkJCWNhc2UgT0NMQVNTX0xBTkdVQUdFOgog CQkJY2FzZSBPQ0xBU1NfTEFSR0VPQkpFQ1Q6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFyaWFibGUuYwpp bmRleCBlNWRkY2RhMGI0Li43NGU0NmNjNzNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxl LmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdmFyaWFibGUu aCIKKyNpbmNsdWRlICJsaWJwcS9saWJwcS1iZS5oIgogI2luY2x1ZGUgIm1iL3BnX3djaGFy LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAidXRpbHMvYWNsLmgiCkBA IC02NDgsNyArNjQ5LDExIEBAIGNoZWNrX2NsaWVudF9lbmNvZGluZyhjaGFyICoqbmV3dmFs LCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpCiAJICovCiAJaWYgKFByZXBhcmVD bGllbnRFbmNvZGluZyhlbmNvZGluZykgPCAwKQogCXsKLQkJaWYgKElzVHJhbnNhY3Rpb25T dGF0ZSgpKQorCQlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkK KwkJCUdVQ19jaGVja19lcnJkZXRhaWwoIkNvbnZlcnNpb24gYmV0d2VlbiAlcyBhbmQgJXMg aXMgbm90IHBvc3NpYmxlIHdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZC4iLAor CQkJCQkJCQljYW5vbmljYWxfbmFtZSwKKwkJCQkJCQkJR2V0RGF0YWJhc2VFbmNvZGluZ05h bWUoKSk7CisJCWVsc2UgaWYgKElzVHJhbnNhY3Rpb25TdGF0ZSgpKQogCQl7CiAJCQkvKiBN dXN0IGJlIGEgZ2VudWluZSBuby1zdWNoLWNvbnZlcnNpb24gcHJvYmxlbSAqLwogCQkJR1VD X2NoZWNrX2VycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9zcGkuYwppbmRleCAyOWJjMjY2NjliLi5jZGU1YjBlMDg3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9zcGkuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zcGku YwpAQCAtMjI3OSw2ICsyMjc5LDggQEAgX1NQSV9wcmVwYXJlX3BsYW4oY29uc3QgY2hhciAq c3JjLCBTUElQbGFuUHRyIHBsYW4pCiAJCQkJCQkgICBOVUxMLAogCQkJCQkJICAgcGxhbi0+ YXJndHlwZXMsCiAJCQkJCQkgICBwbGFuLT5uYXJncywKKwkJCQkJCSAgIE5VTEwsCisJCQkJ CQkgICBOVUxMLAogCQkJCQkJICAgcGxhbi0+cGFyc2VyU2V0dXAsCiAJCQkJCQkgICBwbGFu LT5wYXJzZXJTZXR1cEFyZywKIAkJCQkJCSAgIHBsYW4tPmN1cnNvcl9vcHRpb25zLApAQCAt MjUxNiw2ICsyNTE4LDggQEAgX1NQSV9leGVjdXRlX3BsYW4oU1BJUGxhblB0ciBwbGFuLCBj b25zdCBTUElFeGVjdXRlT3B0aW9ucyAqb3B0aW9ucywKIAkJCQkJCQkgICBOVUxMLAogCQkJ CQkJCSAgIHBsYW4tPmFyZ3R5cGVzLAogCQkJCQkJCSAgIHBsYW4tPm5hcmdzLAorCQkJCQkJ CSAgIE5VTEwsCisJCQkJCQkJICAgTlVMTCwKIAkJCQkJCQkgICBwbGFuLT5wYXJzZXJTZXR1 cCwKIAkJCQkJCQkgICBwbGFuLT5wYXJzZXJTZXR1cEFyZywKIAkJCQkJCQkgICBwbGFuLT5j dXJzb3Jfb3B0aW9ucywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggM2JhYzM1MGJmNS4u YzcyODU4NDFmMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMK KysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTQwMTMsNiArNDAxMyw4 IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2VyKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVy biB0cnVlOwogCQkJCWlmICh3YWxrZXIoY29sZGVmLT5jb21wcmVzc2lvbiwgY29udGV4dCkp CiAJCQkJCXJldHVybiB0cnVlOworCQkJCWlmICh3YWxrZXIoY29sZGVmLT5lbmNyeXB0aW9u LCBjb250ZXh0KSkKKwkJCQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKHdhbGtlcihjb2xkZWYt PnJhd19kZWZhdWx0LCBjb250ZXh0KSkKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKHdh bGtlcihjb2xkZWYtPmNvbGxDbGF1c2UsIGNvbnRleHQpKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMK aW5kZXggNjY4OGMyYTg2NS4uY2U5YjdhNWY1ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBA IC0xNDUsNiArMTQ1LDcgQEAgcGFyc2VfYW5hbHl6ZV9maXhlZHBhcmFtcyhSYXdTdG10ICpw YXJzZVRyZWUsIGNvbnN0IGNoYXIgKnNvdXJjZVRleHQsCiBRdWVyeSAqCiBwYXJzZV9hbmFs eXplX3ZhcnBhcmFtcyhSYXdTdG10ICpwYXJzZVRyZWUsIGNvbnN0IGNoYXIgKnNvdXJjZVRl eHQsCiAJCQkJCQlPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywKKwkJCQkJCU9p ZCAqKnBhcmFtT3JpZ1RibHMsIEF0dHJOdW1iZXIgKipwYXJhbU9yaWdDb2xzLAogCQkJCQkJ UXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYpCiB7CiAJUGFyc2VTdGF0ZSAqcHN0YXRlID0g bWFrZV9wYXJzZXN0YXRlKE5VTEwpOwpAQCAtMTU1LDcgKzE1Niw3IEBAIHBhcnNlX2FuYWx5 emVfdmFycGFyYW1zKFJhd1N0bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4 dCwKIAogCXBzdGF0ZS0+cF9zb3VyY2V0ZXh0ID0gc291cmNlVGV4dDsKIAotCXNldHVwX3Bh cnNlX3ZhcmlhYmxlX3BhcmFtZXRlcnMocHN0YXRlLCBwYXJhbVR5cGVzLCBudW1QYXJhbXMp OworCXNldHVwX3BhcnNlX3ZhcmlhYmxlX3BhcmFtZXRlcnMocHN0YXRlLCBwYXJhbVR5cGVz LCBudW1QYXJhbXMsIHBhcmFtT3JpZ1RibHMsIHBhcmFtT3JpZ0NvbHMpOwogCiAJcHN0YXRl LT5wX3F1ZXJ5RW52ID0gcXVlcnlFbnY7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGVhMzM3ODQz MTYuLmI1ZDRjZTZkMGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjgxLDcgKzI4MSw3IEBAIHN0 YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0 ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiB9CiAKICV0eXBlIDxub2RlPglzdG10IHRvcGxl dmVsX3N0bXQgc2NoZW1hX3N0bXQgcm91dGluZV9ib2R5X3N0bXQKLQkJQWx0ZXJFdmVudFRy aWdTdG10IEFsdGVyQ29sbGF0aW9uU3RtdAorCQlBbHRlckV2ZW50VHJpZ1N0bXQgQWx0ZXJD b2xsYXRpb25TdG10IEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQKIAkJQWx0ZXJEYXRh YmFzZVN0bXQgQWx0ZXJEYXRhYmFzZVNldFN0bXQgQWx0ZXJEb21haW5TdG10IEFsdGVyRW51 bVN0bXQKIAkJQWx0ZXJGZHdTdG10IEFsdGVyRm9yZWlnblNlcnZlclN0bXQgQWx0ZXJHcm91 cFN0bXQKIAkJQWx0ZXJPYmplY3REZXBlbmRzU3RtdCBBbHRlck9iamVjdFNjaGVtYVN0bXQg QWx0ZXJPd25lclN0bXQKQEAgLTQyMSw2ICs0MjEsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJl Y3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAq cXVlcnkpOwogCiAldHlwZSA8bGlzdD4JcGFyc2VfdG9wbGV2ZWwgc3RtdG11bHRpIHJvdXRp bmVfYm9keV9zdG10X2xpc3QKIAkJCQlPcHRUYWJsZUVsZW1lbnRMaXN0IFRhYmxlRWxlbWVu dExpc3QgT3B0SW5oZXJpdCBkZWZpbml0aW9uCisJCQkJbGlzdF9vZl9kZWZpbml0aW9ucwog CQkJCU9wdFR5cGVkVGFibGVFbGVtZW50TGlzdCBUeXBlZFRhYmxlRWxlbWVudExpc3QKIAkJ CQlyZWxvcHRpb25zIG9wdF9yZWxvcHRpb25zCiAJCQkJT3B0V2l0aCBvcHRfZGVmaW5pdGlv biBmdW5jX2FyZ3MgZnVuY19hcmdzX2xpc3QKQEAgLTU5NCw2ICs1OTUsNyBAQCBzdGF0aWMg Tm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxp YXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPG5vZGU+CVRhYmxlQ29uc3RyYWludCBUYWJs ZUxpa2VDbGF1c2UKICV0eXBlIDxpdmFsPglUYWJsZUxpa2VPcHRpb25MaXN0IFRhYmxlTGlr ZU9wdGlvbgogJXR5cGUgPHN0cj4JCWNvbHVtbl9jb21wcmVzc2lvbiBvcHRfY29sdW1uX2Nv bXByZXNzaW9uIGNvbHVtbl9zdG9yYWdlIG9wdF9jb2x1bW5fc3RvcmFnZQorJXR5cGUgPGxp c3Q+CW9wdF9jb2x1bW5fZW5jcnlwdGlvbgogJXR5cGUgPGxpc3Q+CUNvbFF1YWxMaXN0CiAl dHlwZSA8bm9kZT4JQ29sQ29uc3RyYWludCBDb2xDb25zdHJhaW50RWxlbSBDb25zdHJhaW50 QXR0cgogJXR5cGUgPGl2YWw+CWtleV9tYXRjaApAQCAtNjkyLDggKzY5NCw4IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICph bGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJREVUQUNIIERJQ1RJT05BUlkgRElTQUJMRV9QIERJ U0NBUkQgRElTVElOQ1QgRE8gRE9DVU1FTlRfUCBET01BSU5fUAogCURPVUJMRV9QIERST1AK IAotCUVBQ0ggRUxTRSBFTkFCTEVfUCBFTkNPRElORyBFTkNSWVBURUQgRU5EX1AgRU5VTV9Q IEVTQ0FQRSBFVkVOVCBFWENFUFQKLQlFWENMVURFIEVYQ0xVRElORyBFWENMVVNJVkUgRVhF Q1VURSBFWElTVFMgRVhQTEFJTiBFWFBSRVNTSU9OCisJRUFDSCBFTFNFIEVOQUJMRV9QIEVO Q09ESU5HIEVOQ1JZUFRJT04gRU5DUllQVEVEIEVORF9QIEVOVU1fUCBFU0NBUEUKKwlFVkVO VCBFWENFUFQgRVhDTFVERSBFWENMVURJTkcgRVhDTFVTSVZFIEVYRUNVVEUgRVhJU1RTIEVY UExBSU4gRVhQUkVTU0lPTgogCUVYVEVOU0lPTiBFWFRFUk5BTCBFWFRSQUNUCiAKIAlGQUxT RV9QIEZBTUlMWSBGRVRDSCBGSUxURVIgRklOQUxJWkUgRklSU1RfUCBGTE9BVF9QIEZPTExP V0lORyBGT1IKQEAgLTcxNiw3ICs3MTgsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkp OwogCUxFQURJTkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVWRUwgTElLRSBMSU1JVCBMSVNU RU4gTE9BRCBMT0NBTAogCUxPQ0FMVElNRSBMT0NBTFRJTUVTVEFNUCBMT0NBVElPTiBMT0NL X1AgTE9DS0VEIExPR0dFRAogCi0JTUFQUElORyBNQVRDSCBNQVRDSEVEIE1BVEVSSUFMSVpF RCBNQVhWQUxVRSBNRVJHRSBNRVRIT0QKKwlNQVBQSU5HIE1BU1RFUiBNQVRDSCBNQVRDSEVE IE1BVEVSSUFMSVpFRCBNQVhWQUxVRSBNRVJHRSBNRVRIT0QKIAlNSU5VVEVfUCBNSU5WQUxV RSBNT0RFIE1PTlRIX1AgTU9WRQogCiAJTkFNRV9QIE5BTUVTIE5BVElPTkFMIE5BVFVSQUwg TkNIQVIgTkVXIE5FWFQgTkZDIE5GRCBORktDIE5GS0QgTk8gTk9ORQpAQCAtOTQzLDYgKzk0 NSw3IEBAIHRvcGxldmVsX3N0bXQ6CiBzdG10OgogCQkJQWx0ZXJFdmVudFRyaWdTdG10CiAJ CQl8IEFsdGVyQ29sbGF0aW9uU3RtdAorCQkJfCBBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlT dG10CiAJCQl8IEFsdGVyRGF0YWJhc2VTdG10CiAJCQl8IEFsdGVyRGF0YWJhc2VTZXRTdG10 CiAJCQl8IEFsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10CkBAIC0zNjgxLDE0ICszNjg0LDE1 IEBAIFR5cGVkVGFibGVFbGVtZW50OgogCQkJfCBUYWJsZUNvbnN0cmFpbnQJCQkJCXsgJCQg PSAkMTsgfQogCQk7CiAKLWNvbHVtbkRlZjoJQ29sSWQgVHlwZW5hbWUgb3B0X2NvbHVtbl9z dG9yYWdlIG9wdF9jb2x1bW5fY29tcHJlc3Npb24gY3JlYXRlX2dlbmVyaWNfb3B0aW9ucyBD b2xRdWFsTGlzdAorY29sdW1uRGVmOglDb2xJZCBUeXBlbmFtZSBvcHRfY29sdW1uX2VuY3J5 cHRpb24gb3B0X2NvbHVtbl9zdG9yYWdlIG9wdF9jb2x1bW5fY29tcHJlc3Npb24gY3JlYXRl X2dlbmVyaWNfb3B0aW9ucyBDb2xRdWFsTGlzdAogCQkJCXsKIAkJCQkJQ29sdW1uRGVmICpu ID0gbWFrZU5vZGUoQ29sdW1uRGVmKTsKIAogCQkJCQluLT5jb2xuYW1lID0gJDE7CiAJCQkJ CW4tPnR5cGVOYW1lID0gJDI7Ci0JCQkJCW4tPnN0b3JhZ2VfbmFtZSA9ICQzOwotCQkJCQlu LT5jb21wcmVzc2lvbiA9ICQ0OworCQkJCQluLT5lbmNyeXB0aW9uID0gJDM7CisJCQkJCW4t PnN0b3JhZ2VfbmFtZSA9ICQ0OworCQkJCQluLT5jb21wcmVzc2lvbiA9ICQ1OwogCQkJCQlu LT5pbmhjb3VudCA9IDA7CiAJCQkJCW4tPmlzX2xvY2FsID0gdHJ1ZTsKIAkJCQkJbi0+aXNf bm90X251bGwgPSBmYWxzZTsKQEAgLTM2OTcsOCArMzcwMSw4IEBAIGNvbHVtbkRlZjoJQ29s SWQgVHlwZW5hbWUgb3B0X2NvbHVtbl9zdG9yYWdlIG9wdF9jb2x1bW5fY29tcHJlc3Npb24g Y3JlYXRlX2dlbmVyCiAJCQkJCW4tPnJhd19kZWZhdWx0ID0gTlVMTDsKIAkJCQkJbi0+Y29v a2VkX2RlZmF1bHQgPSBOVUxMOwogCQkJCQluLT5jb2xsT2lkID0gSW52YWxpZE9pZDsKLQkJ CQkJbi0+ZmR3b3B0aW9ucyA9ICQ1OwotCQkJCQlTcGxpdENvbFF1YWxMaXN0KCQ2LCAmbi0+ Y29uc3RyYWludHMsICZuLT5jb2xsQ2xhdXNlLAorCQkJCQluLT5mZHdvcHRpb25zID0gJDY7 CisJCQkJCVNwbGl0Q29sUXVhbExpc3QoJDcsICZuLT5jb25zdHJhaW50cywgJm4tPmNvbGxD bGF1c2UsCiAJCQkJCQkJCQkgeXlzY2FubmVyKTsKIAkJCQkJbi0+bG9jYXRpb24gPSBAMTsK IAkJCQkJJCQgPSAoTm9kZSAqKSBuOwpAQCAtMzc1NSw2ICszNzU5LDExIEBAIG9wdF9jb2x1 bW5fY29tcHJlc3Npb246CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5VTEw7IH0K IAkJOwogCitvcHRfY29sdW1uX2VuY3J5cHRpb246CisJCQlFTkNSWVBURUQgV0lUSCAnKCcg ZGVmX2xpc3QgJyknCQkJeyAkJCA9ICQ0OyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAk JCA9IE5VTEw7IH0KKwkJOworCiBjb2x1bW5fc3RvcmFnZToKIAkJCVNUT1JBR0UgQ29sSWQJ CQkJCQkJeyAkJCA9ICQyOyB9CiAJCTsKQEAgLTYyNTAsNiArNjI1OSwyNCBAQCBEZWZpbmVT dG10OgogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KKwkJCXwgQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhbnlfbmFt ZSBXSVRIIFZBTFVFUyBsaXN0X29mX2RlZmluaXRpb25zCisJCQkJeworCQkJCQlEZWZpbmVT dG10ICpuID0gbWFrZU5vZGUoRGVmaW5lU3RtdCk7CisKKwkJCQkJbi0+a2luZCA9IE9CSkVD VF9DRUs7CisJCQkJCW4tPmRlZm5hbWVzID0gJDU7CisJCQkJCW4tPmRlZmluaXRpb24gPSAk ODsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQ1JFQVRFIENPTFVNTiBN QVNURVIgS0VZIGFueV9uYW1lIFdJVEggZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJRGVmaW5l U3RtdCAqbiA9IG1ha2VOb2RlKERlZmluZVN0bXQpOworCisJCQkJCW4tPmtpbmQgPSBPQkpF Q1RfQ01LOworCQkJCQluLT5kZWZuYW1lcyA9ICQ1OworCQkJCQluLT5kZWZpbml0aW9uID0g JDc7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCTsKIAogZGVmaW5pdGlvbjog JygnIGRlZl9saXN0ICcpJwkJCQkJCXsgJCQgPSAkMjsgfQpAQCAtNjI2OSw2ICs2Mjk2LDEw IEBAIGRlZl9lbGVtOglDb2xMYWJlbCAnPScgZGVmX2FyZwogCQkJCX0KIAkJOwogCitsaXN0 X29mX2RlZmluaXRpb25zOiBkZWZpbml0aW9uCQkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEp OyB9CisJCQl8IGxpc3Rfb2ZfZGVmaW5pdGlvbnMgJywnIGRlZmluaXRpb24JeyAkJCA9IGxh cHBlbmQoJDEsICQzKTsgfQorCQk7CisKIC8qIE5vdGU6IGFueSBzaW1wbGUgaWRlbnRpZmll ciB3aWxsIGJlIHJldHVybmVkIGFzIGEgdHlwZSBuYW1lISAqLwogZGVmX2FyZzoJZnVuY190 eXBlCQkJCQkJeyAkJCA9IChOb2RlICopICQxOyB9CiAJCQl8IHJlc2VydmVkX2tleXdvcmQJ CQkJeyAkJCA9IChOb2RlICopIG1ha2VTdHJpbmcocHN0cmR1cCgkMSkpOyB9CkBAIC02ODA0 LDYgKzY4MzUsOCBAQCBvYmplY3RfdHlwZV9uYW1lOgogCiBkcm9wX3R5cGVfbmFtZToKIAkJ CUFDQ0VTUyBNRVRIT0QJCQkJCQkJeyAkJCA9IE9CSkVDVF9BQ0NFU1NfTUVUSE9EOyB9CisJ CQl8IENPTFVNTiBFTkNSWVBUSU9OIEtFWQkJCQkJeyAkJCA9IE9CSkVDVF9DRUs7IH0KKwkJ CXwgQ09MVU1OIE1BU1RFUiBLRVkJCQkJCQl7ICQkID0gT0JKRUNUX0NNSzsgfQogCQkJfCBF VkVOVCBUUklHR0VSCQkJCQkJCXsgJCQgPSBPQkpFQ1RfRVZFTlRfVFJJR0dFUjsgfQogCQkJ fCBFWFRFTlNJT04JCQkJCQkJCXsgJCQgPSBPQkpFQ1RfRVhURU5TSU9OOyB9CiAJCQl8IEZP UkVJR04gREFUQV9QIFdSQVBQRVIJCQkJeyAkJCA9IE9CSkVDVF9GRFc7IH0KQEAgLTkxMjAs NiArOTE1MywyNiBAQCBSZW5hbWVTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dp dGhfYXJndHlwZXMgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNl OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkgbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3Rt dCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCisJCQkJCW4tPnJlbmFtZVR5cGUgPSBP QkpFQ1RfQ0VLOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSBtYWtlU3RyaW5nKCQ1KTsK KwkJCQkJbi0+bmV3bmFtZSA9ICQ4OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJ CQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIENPTFVNTiBNQVNURVIg S0VZIG5hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBt YWtlTm9kZShSZW5hbWVTdG10KTsKKworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX0NN SzsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgbWFrZVN0cmluZygkNSk7CisJCQkJCW4t Pm5ld25hbWUgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9 IChOb2RlICopIG47CisJCQkJfQogCQkJfCBBTFRFUiBDT05WRVJTSU9OX1AgYW55X25hbWUg UkVOQU1FIFRPIG5hbWUKIAkJCQl7CiAJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShS ZW5hbWVTdG10KTsKQEAgLTEwMTI4LDYgKzEwMTgxLDI0IEBAIEFsdGVyT3duZXJTdG10OiBB TFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dORVIgVE8gUm9sZVNw ZWMKIAkJCQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJ CX0KKwkJCXwgQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIG5hbWUgT1dORVIgVE8gUm9s ZVNwZWMKKwkJCQl7CisJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJP d25lclN0bXQpOworCisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfQ0VLOworCQkJCQlu LT5vYmplY3QgPSAoTm9kZSAqKSBtYWtlU3RyaW5nKCQ1KTsKKwkJCQkJbi0+bmV3b3duZXIg PSAkODsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQUxURVIgQ09MVU1O IE1BU1RFUiBLRVkgbmFtZSBPV05FUiBUTyBSb2xlU3BlYworCQkJCXsKKwkJCQkJQWx0ZXJP d25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck93bmVyU3RtdCk7CisKKwkJCQkJbi0+b2Jq ZWN0VHlwZSA9IE9CSkVDVF9DTUs7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopIG1ha2VT dHJpbmcoJDUpOworCQkJCQluLT5uZXdvd25lciA9ICQ4OworCQkJCQkkJCA9IChOb2RlICop IG47CisJCQkJfQogCQkJfCBBTFRFUiBDT05WRVJTSU9OX1AgYW55X25hbWUgT1dORVIgVE8g Um9sZVNwZWMKIAkJCQl7CiAJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0 ZXJPd25lclN0bXQpOwpAQCAtMTEyODQsNiArMTEzNTUsMzQgQEAgQWx0ZXJDb2xsYXRpb25T dG10OiBBTFRFUiBDT0xMQVRJT04gYW55X25hbWUgUkVGUkVTSCBWRVJTSU9OX1AKIAkJOwog CiAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0FsdGVyQ29s dW1uRW5jcnlwdGlvbktleVN0bXQ6CisJCQlBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkg bmFtZSBBRERfUCBWQUxVRV9QIGRlZmluaXRpb24KKwkJCQl7CisJCQkJCUFsdGVyQ29sdW1u RW5jcnlwdGlvbktleVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlckNvbHVtbkVuY3J5cHRpb25L ZXlTdG10KTsKKworCQkJCQluLT5jZWtuYW1lID0gJDU7CisJCQkJCW4tPmlzRHJvcCA9IGZh bHNlOworCQkJCQluLT5kZWZpbml0aW9uID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsK KwkJCQl9CisJCQl8IEFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBuYW1lIERST1AgVkFM VUVfUCBkZWZpbml0aW9uCisJCQkJeworCQkJCQlBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlT dG10ICpuID0gbWFrZU5vZGUoQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCk7CisKKwkJ CQkJbi0+Y2VrbmFtZSA9ICQ1OworCQkJCQluLT5pc0Ryb3AgPSB0cnVlOworCQkJCQluLT5k ZWZpbml0aW9uID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwor CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKgkJQUxURVIgU1lTVEVNCkBAIC0x NjcxOSw2ICsxNjgxOCw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgRU5BQkxFX1AK IAkJCXwgRU5DT0RJTkcKIAkJCXwgRU5DUllQVEVECisJCQl8IEVOQ1JZUFRJT04KIAkJCXwg RU5VTV9QCiAJCQl8IEVTQ0FQRQogCQkJfCBFVkVOVApAQCAtMTY3ODIsNiArMTY4ODIsNyBA QCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IExPQ0tFRAogCQkJfCBMT0dHRUQKIAkJCXwg TUFQUElORworCQkJfCBNQVNURVIKIAkJCXwgTUFUQ0gKIAkJCXwgTUFUQ0hFRAogCQkJfCBN QVRFUklBTElaRUQKQEAgLTE3MjY0LDYgKzE3MzY1LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3Jk OgogCQkJfCBFTkFCTEVfUAogCQkJfCBFTkNPRElORwogCQkJfCBFTkNSWVBURUQKKwkJCXwg RU5DUllQVElPTgogCQkJfCBFTkRfUAogCQkJfCBFTlVNX1AKIAkJCXwgRVNDQVBFCkBAIC0x NzM1Miw2ICsxNzQ1NCw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgTE9DS0VECiAJ CQl8IExPR0dFRAogCQkJfCBNQVBQSU5HCisJCQl8IE1BU1RFUgogCQkJfCBNQVRDSAogCQkJ fCBNQVRDSEVECiAJCQl8IE1BVEVSSUFMSVpFRApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3BhcmFtLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0u YwppbmRleCBmNjY4YWJmY2IzLi5kMGJlYzBhMDZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfcGFyYW0uYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf cGFyYW0uYwpAQCAtNDksNiArNDksOCBAQCB0eXBlZGVmIHN0cnVjdCBWYXJQYXJhbVN0YXRl CiB7CiAJT2lkCQkgICoqcGFyYW1UeXBlczsJCS8qIGFycmF5IG9mIHBhcmFtZXRlciB0eXBl IE9JRHMgKi8KIAlpbnQJCSAgICpudW1QYXJhbXM7CQkvKiBudW1iZXIgb2YgYXJyYXkgZW50 cmllcyAqLworCU9pZAkJICAqKnBhcmFtT3JpZ1RibHM7CS8qIHVuZGVybHlpbmcgdGFibGVz ICgwIGlmIG5vbmUpICovCisJQXR0ck51bWJlciAqKnBhcmFtT3JpZ0NvbHM7IC8qIHVuZGVy bHlpbmcgY29sdW1ucyAoMCBpZiBub25lKSAqLwogfSBWYXJQYXJhbVN0YXRlOwogCiBzdGF0 aWMgTm9kZSAqZml4ZWRfcGFyYW1yZWZfaG9vayhQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFt UmVmICpwcmVmKTsKQEAgLTU2LDYgKzU4LDcgQEAgc3RhdGljIE5vZGUgKnZhcmlhYmxlX3Bh cmFtcmVmX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZik7CiBzdGF0 aWMgTm9kZSAqdmFyaWFibGVfY29lcmNlX3BhcmFtX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRl LCBQYXJhbSAqcGFyYW0sCiAJCQkJCQkJCQkJT2lkIHRhcmdldFR5cGVJZCwgaW50MzIgdGFy Z2V0VHlwZU1vZCwKIAkJCQkJCQkJCQlpbnQgbG9jYXRpb24pOworc3RhdGljIHZvaWQgdmFy aWFibGVfcGFyYW1fYXNzaWduX29yaWdfaG9vayhQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFt ICpwYXJhbSwgT2lkIG9yaWd0YmwsIEF0dHJOdW1iZXIgb3JpZ2NvbCk7CiBzdGF0aWMgYm9v bCBjaGVja19wYXJhbWV0ZXJfcmVzb2x1dGlvbl93YWxrZXIoTm9kZSAqbm9kZSwgUGFyc2VT dGF0ZSAqcHN0YXRlKTsKIHN0YXRpYyBib29sIHF1ZXJ5X2NvbnRhaW5zX2V4dGVybl9wYXJh bXNfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOwogCkBAIC04MSwxNSArODQs MTkgQEAgc2V0dXBfcGFyc2VfZml4ZWRfcGFyYW1ldGVycyhQYXJzZVN0YXRlICpwc3RhdGUs CiAgKi8KIHZvaWQKIHNldHVwX3BhcnNlX3ZhcmlhYmxlX3BhcmFtZXRlcnMoUGFyc2VTdGF0 ZSAqcHN0YXRlLAotCQkJCQkJCQlPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcykK KwkJCQkJCQkJT2lkICoqcGFyYW1UeXBlcywgaW50ICpudW1QYXJhbXMsCisJCQkJCQkJCU9p ZCAqKnBhcmFtT3JpZ1RibHMsIEF0dHJOdW1iZXIgKipwYXJhbU9yaWdDb2xzKQogewogCVZh clBhcmFtU3RhdGUgKnBhcnN0YXRlID0gcGFsbG9jKHNpemVvZihWYXJQYXJhbVN0YXRlKSk7 CiAKIAlwYXJzdGF0ZS0+cGFyYW1UeXBlcyA9IHBhcmFtVHlwZXM7CiAJcGFyc3RhdGUtPm51 bVBhcmFtcyA9IG51bVBhcmFtczsKKwlwYXJzdGF0ZS0+cGFyYW1PcmlnVGJscyA9IHBhcmFt T3JpZ1RibHM7CisJcGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMgPSBwYXJhbU9yaWdDb2xzOwog CXBzdGF0ZS0+cF9yZWZfaG9va19zdGF0ZSA9ICh2b2lkICopIHBhcnN0YXRlOwogCXBzdGF0 ZS0+cF9wYXJhbXJlZl9ob29rID0gdmFyaWFibGVfcGFyYW1yZWZfaG9vazsKIAlwc3RhdGUt PnBfY29lcmNlX3BhcmFtX2hvb2sgPSB2YXJpYWJsZV9jb2VyY2VfcGFyYW1faG9vazsKKwlw c3RhdGUtPnBfcGFyYW1fYXNzaWduX29yaWdfaG9vayA9IHZhcmlhYmxlX3BhcmFtX2Fzc2ln bl9vcmlnX2hvb2s7CiB9CiAKIC8qCkBAIC0xNDUsMTQgKzE1MiwzNiBAQCB2YXJpYWJsZV9w YXJhbXJlZl9ob29rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpCiAJewog CQkvKiBOZWVkIHRvIGVubGFyZ2UgcGFyYW0gYXJyYXkgKi8KIAkJaWYgKCpwYXJzdGF0ZS0+ cGFyYW1UeXBlcykKLQkJCSpwYXJzdGF0ZS0+cGFyYW1UeXBlcyA9IChPaWQgKikgcmVwYWxs b2MoKnBhcnN0YXRlLT5wYXJhbVR5cGVzLAotCQkJCQkJCQkJCQkJCSBwYXJhbW5vICogc2l6 ZW9mKE9pZCkpOworCQl7CisJCQkqcGFyc3RhdGUtPnBhcmFtVHlwZXMgPSByZXBhbGxvY19h cnJheSgqcGFyc3RhdGUtPnBhcmFtVHlwZXMsCisJCQkJCQkJCQkJCQkgICBPaWQsIHBhcmFt bm8pOworCQkJaWYgKHBhcnN0YXRlLT5wYXJhbU9yaWdUYmxzKQorCQkJCSpwYXJzdGF0ZS0+ cGFyYW1PcmlnVGJscyA9IHJlcGFsbG9jX2FycmF5KCpwYXJzdGF0ZS0+cGFyYW1PcmlnVGJs cywKKwkJCQkJCQkJCQkJCQkJICBPaWQsIHBhcmFtbm8pOworCQkJaWYgKHBhcnN0YXRlLT5w YXJhbU9yaWdDb2xzKQorCQkJCSpwYXJzdGF0ZS0+cGFyYW1PcmlnQ29scyA9IHJlcGFsbG9j X2FycmF5KCpwYXJzdGF0ZS0+cGFyYW1PcmlnQ29scywKKwkJCQkJCQkJCQkJCQkJICBBdHRy TnVtYmVyLCBwYXJhbW5vKTsKKwkJfQogCQllbHNlCi0JCQkqcGFyc3RhdGUtPnBhcmFtVHlw ZXMgPSAoT2lkICopIHBhbGxvYyhwYXJhbW5vICogc2l6ZW9mKE9pZCkpOworCQl7CisJCQkq cGFyc3RhdGUtPnBhcmFtVHlwZXMgPSBwYWxsb2NfYXJyYXkoT2lkLCBwYXJhbW5vKTsKKwkJ CWlmIChwYXJzdGF0ZS0+cGFyYW1PcmlnVGJscykKKwkJCQkqcGFyc3RhdGUtPnBhcmFtT3Jp Z1RibHMgPSBwYWxsb2NfYXJyYXkoT2lkLCBwYXJhbW5vKTsKKwkJCWlmIChwYXJzdGF0ZS0+ cGFyYW1PcmlnQ29scykKKwkJCQkqcGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMgPSBwYWxsb2Nf YXJyYXkoQXR0ck51bWJlciwgcGFyYW1ubyk7CisJCX0KIAkJLyogWmVybyBvdXQgdGhlIHBy ZXZpb3VzbHktdW5yZWZlcmVuY2VkIHNsb3RzICovCiAJCU1lbVNldCgqcGFyc3RhdGUtPnBh cmFtVHlwZXMgKyAqcGFyc3RhdGUtPm51bVBhcmFtcywKIAkJCSAgIDAsCiAJCQkgICAocGFy YW1ubyAtICpwYXJzdGF0ZS0+bnVtUGFyYW1zKSAqIHNpemVvZihPaWQpKTsKKwkJaWYgKHBh cnN0YXRlLT5wYXJhbU9yaWdUYmxzKQorCQkJTWVtU2V0KCpwYXJzdGF0ZS0+cGFyYW1Pcmln VGJscyArICpwYXJzdGF0ZS0+bnVtUGFyYW1zLAorCQkJCSAgIDAsCisJCQkJICAgKHBhcmFt bm8gLSAqcGFyc3RhdGUtPm51bVBhcmFtcykgKiBzaXplb2YoT2lkKSk7CisJCWlmIChwYXJz dGF0ZS0+cGFyYW1PcmlnQ29scykKKwkJCU1lbVNldCgqcGFyc3RhdGUtPnBhcmFtT3JpZ0Nv bHMgKyAqcGFyc3RhdGUtPm51bVBhcmFtcywKKwkJCQkgICAwLAorCQkJCSAgIChwYXJhbW5v IC0gKnBhcnN0YXRlLT5udW1QYXJhbXMpICogc2l6ZW9mKEF0dHJOdW1iZXIpKTsKIAkJKnBh cnN0YXRlLT5udW1QYXJhbXMgPSBwYXJhbW5vOwogCX0KIApAQCAtMjYwLDYgKzI4OSwxOCBA QCB2YXJpYWJsZV9jb2VyY2VfcGFyYW1faG9vayhQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFt ICpwYXJhbSwKIAlyZXR1cm4gTlVMTDsKIH0KIAorc3RhdGljIHZvaWQKK3ZhcmlhYmxlX3Bh cmFtX2Fzc2lnbl9vcmlnX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbSAqcGFyYW0s IE9pZCBvcmlndGJsLCBBdHRyTnVtYmVyIG9yaWdjb2wpCit7CisJVmFyUGFyYW1TdGF0ZSAq cGFyc3RhdGUgPSAoVmFyUGFyYW1TdGF0ZSAqKSBwc3RhdGUtPnBfcmVmX2hvb2tfc3RhdGU7 CisJaW50CQkJcGFyYW1ubyA9IHBhcmFtLT5wYXJhbWlkOworCisJaWYgKHBhcnN0YXRlLT5w YXJhbU9yaWdUYmxzKQorCQkoKnBhcnN0YXRlLT5wYXJhbU9yaWdUYmxzKVtwYXJhbW5vIC0g MV0gPSBvcmlndGJsOworCWlmIChwYXJzdGF0ZS0+cGFyYW1PcmlnQ29scykKKwkJKCpwYXJz dGF0ZS0+cGFyYW1PcmlnQ29scylbcGFyYW1ubyAtIDFdID0gb3JpZ2NvbDsKK30KKwogLyoK ICAqIENoZWNrIGZvciBjb25zaXN0ZW50IGFzc2lnbm1lbnQgb2YgdmFyaWFibGUgcGFyYW1l dGVycyBhZnRlciBjb21wbGV0aW9uCiAgKiBvZiBwYXJzaW5nIHdpdGggcGFyc2VfdmFyaWFi bGVfcGFyYW1ldGVycy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90 YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA0ZTE1 OTNkOTAwLi5lMWUxMzgxMzY5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdGFyZ2V0LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCkBA IC01OTUsNiArNTk1LDEyIEBAIHRyYW5zZm9ybUFzc2lnbmVkRXhwcihQYXJzZVN0YXRlICpw c3RhdGUsCiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24o b3JpZ19leHByKSkpKTsKIAl9CiAKKwlpZiAoSXNBKGV4cHIsIFBhcmFtKSkKKwl7CisJCWlm IChwc3RhdGUtPnBfcGFyYW1fYXNzaWduX29yaWdfaG9vaykKKwkJCXBzdGF0ZS0+cF9wYXJh bV9hc3NpZ25fb3JpZ19ob29rKHBzdGF0ZSwgY2FzdE5vZGUoUGFyYW0sIGV4cHIpLCBSZWxh dGlvbkdldFJlbGlkKHBzdGF0ZS0+cF90YXJnZXRfcmVsYXRpb24pLCBhdHRybm8pOworCX0K KwogCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBzdl9leHByX2tpbmQ7CiAKIAlyZXR1cm4gZXhw cjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jIGIv c3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKaW5kZXggZTc1NjExZmRkNS4u OTY5MGFlMzk1ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFz dGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKQEAgLTIy NTQsMTIgKzIyNTQsMjcgQEAgUHJvY2Vzc1N0YXJ0dXBQYWNrZXQoUG9ydCAqcG9ydCwgYm9v bCBzc2xfZG9uZSwgYm9vbCBnc3NfZG9uZSkKIAkJCQkJCQkJCXZhbHB0ciksCiAJCQkJCQkJ IGVycmhpbnQoIlZhbGlkIHZhbHVlcyBhcmU6IFwiZmFsc2VcIiwgMCwgXCJ0cnVlXCIsIDEs IFwiZGF0YWJhc2VcIi4iKSkpOwogCQkJfQorCQkJZWxzZSBpZiAoc3RyY21wKG5hbWVwdHIs ICJfcHFfLmNvbHVtbl9lbmNyeXB0aW9uIikgPT0gMCkKKwkJCXsKKwkJCQkvKgorCQkJCSAq IFJpZ2h0IG5vdywgdGhlIG9ubHkgYWNjZXB0ZWQgdmFsdWUgaXMgIjEiLiAgVGhpcyBnaXZl cyByb29tCisJCQkJICogdG8gZXhwYW5kIHRoaXMgaW50byBhIHZlcnNpb24gbnVtYmVyLCBm b3IgZXhhbXBsZS4KKwkJCQkgKi8KKwkJCQlpZiAoc3RyY21wKHZhbHB0ciwgIjEiKSA9PSAw KQorCQkJCQlwb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkID0gdHJ1ZTsKKwkJCQll bHNlCisJCQkJCWVyZXBvcnQoRkFUQUwsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZB TElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQkJIGVycm1zZygiaW52YWxpZCB2YWx1ZSBm b3IgcGFyYW1ldGVyIFwiJXNcIjogXCIlc1wiIiwKKwkJCQkJCQkJCSJjb2x1bW5fZW5jcnlw dGlvbiIsCisJCQkJCQkJCQl2YWxwdHIpLAorCQkJCQkJCSBlcnJoaW50KCJWYWxpZCB2YWx1 ZXMgYXJlOiAxLiIpKSk7CisJCQl9CiAJCQllbHNlIGlmIChzdHJuY21wKG5hbWVwdHIsICJf cHFfLiIsIDUpID09IDApCiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBBbnkgb3B0aW9uIGJlZ2lu bmluZyB3aXRoIF9wcV8uIGlzIHJlc2VydmVkIGZvciB1c2UgYXMgYQotCQkJCSAqIHByb3Rv Y29sLWxldmVsIG9wdGlvbiwgYnV0IGF0IHByZXNlbnQgbm8gc3VjaCBvcHRpb25zIGFyZQot CQkJCSAqIGRlZmluZWQuCisJCQkJICogcHJvdG9jb2wtbGV2ZWwgb3B0aW9uLgogCQkJCSAq LwogCQkJCXVucmVjb2duaXplZF9wcm90b2NvbF9vcHRpb25zID0KIAkJCQkJbGFwcGVuZCh1 bnJlY29nbml6ZWRfcHJvdG9jb2xfb3B0aW9ucywgcHN0cmR1cChuYW1lcHRyKSk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgYi9zcmMvYmFja2VuZC90Y29w L3Bvc3RncmVzLmMKaW5kZXggYzZjYTNiNWIzZC4uYzQwYWEzYTY5NyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9z dGdyZXMuYwpAQCAtNzEsNiArNzEsNyBAQAogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgi CiAjaW5jbHVkZSAidXRpbHMvcHNfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvc25hcG1n ci5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvdGlt ZW91dC5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgogCkBAIC02NjUsNiArNjY2 LDggQEAgcGdfYW5hbHl6ZV9hbmRfcmV3cml0ZV92YXJwYXJhbXMoUmF3U3RtdCAqcGFyc2V0 cmVlLAogCQkJCQkJCQkgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLAogCQkJCQkJCQkgT2lk ICoqcGFyYW1UeXBlcywKIAkJCQkJCQkJIGludCAqbnVtUGFyYW1zLAorCQkJCQkJCQkgT2lk ICoqcGFyYW1PcmlnVGJscywKKwkJCQkJCQkJIEF0dHJOdW1iZXIgKipwYXJhbU9yaWdDb2xz LAogCQkJCQkJCQkgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYpCiB7CiAJUXVlcnkJICAg KnF1ZXJ5OwpAQCAtNjc5LDcgKzY4Miw3IEBAIHBnX2FuYWx5emVfYW5kX3Jld3JpdGVfdmFy cGFyYW1zKFJhd1N0bXQgKnBhcnNldHJlZSwKIAkJUmVzZXRVc2FnZSgpOwogCiAJcXVlcnkg PSBwYXJzZV9hbmFseXplX3ZhcnBhcmFtcyhwYXJzZXRyZWUsIHF1ZXJ5X3N0cmluZywgcGFy YW1UeXBlcywgbnVtUGFyYW1zLAotCQkJCQkJCQkJcXVlcnlFbnYpOworCQkJCQkJCQkJcGFy YW1PcmlnVGJscywgcGFyYW1PcmlnQ29scywgcXVlcnlFbnYpOwogCiAJLyoKIAkgKiBDaGVj ayBhbGwgcGFyYW1ldGVyIHR5cGVzIGdvdCBkZXRlcm1pbmVkLgpAQCAtMTM2Myw2ICsxMzY2 LDggQEAgZXhlY19wYXJzZV9tZXNzYWdlKGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywJLyog c3RyaW5nIHRvIGV4ZWN1dGUgKi8KIAlib29sCQlpc19uYW1lZDsKIAlib29sCQlzYXZlX2xv Z19zdGF0ZW1lbnRfc3RhdHMgPSBsb2dfc3RhdGVtZW50X3N0YXRzOwogCWNoYXIJCW1zZWNf c3RyWzMyXTsKKwlPaWQJCSAgICpwYXJhbU9yaWdUYmxzID0gcGFsbG9jX2FycmF5KE9pZCwg bnVtUGFyYW1zKTsKKwlBdHRyTnVtYmVyICpwYXJhbU9yaWdDb2xzID0gcGFsbG9jX2FycmF5 KEF0dHJOdW1iZXIsIG51bVBhcmFtcyk7CiAKIAkvKgogCSAqIFJlcG9ydCBxdWVyeSB0byB2 YXJpb3VzIG1vbml0b3JpbmcgZmFjaWxpdGllcy4KQEAgLTE0ODMsNiArMTQ4OCw4IEBAIGV4 ZWNfcGFyc2VfbWVzc2FnZShjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsCS8qIHN0cmluZyB0 byBleGVjdXRlICovCiAJCQkJCQkJCQkJCQkJCSAgcXVlcnlfc3RyaW5nLAogCQkJCQkJCQkJ CQkJCQkgICZwYXJhbVR5cGVzLAogCQkJCQkJCQkJCQkJCQkgICZudW1QYXJhbXMsCisJCQkJ CQkJCQkJCQkJCSAgJnBhcmFtT3JpZ1RibHMsCisJCQkJCQkJCQkJCQkJCSAgJnBhcmFtT3Jp Z0NvbHMsCiAJCQkJCQkJCQkJCQkJCSAgTlVMTCk7CiAKIAkJLyogRG9uZSB3aXRoIHRoZSBz bmFwc2hvdCB1c2VkIGZvciBwYXJzaW5nICovCkBAIC0xNTEzLDYgKzE1MjAsOCBAQCBleGVj X3BhcnNlX21lc3NhZ2UoY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLAkvKiBzdHJpbmcgdG8g ZXhlY3V0ZSAqLwogCQkJCQkgICB1bm5hbWVkX3N0bXRfY29udGV4dCwKIAkJCQkJICAgcGFy YW1UeXBlcywKIAkJCQkJICAgbnVtUGFyYW1zLAorCQkJCQkgICBwYXJhbU9yaWdUYmxzLAor CQkJCQkgICBwYXJhbU9yaWdDb2xzLAogCQkJCQkgICBOVUxMLAogCQkJCQkgICBOVUxMLAog CQkJCQkgICBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLAkvKiBhbGxvdyBwYXJhbGxlbCBtb2Rl ICovCkBAIC0xODEwLDYgKzE4MTksMTYgQEAgZXhlY19iaW5kX21lc3NhZ2UoU3RyaW5nSW5m byBpbnB1dF9tZXNzYWdlKQogCQkJZWxzZQogCQkJCXBmb3JtYXQgPSAwOwkvKiBkZWZhdWx0 ID0gdGV4dCAqLwogCisJCQlpZiAodHlwZV9pc19lbmNyeXB0ZWQocHR5cGUpKQorCQkJewor CQkJCWlmIChwZm9ybWF0ICYgMHhGMCkKKwkJCQkJcGZvcm1hdCAmPSB+MHhGMDsKKwkJCQll bHNlCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9U T0NPTF9WSU9MQVRJT04pLAorCQkJCQkJCSBlcnJtc2coInBhcmFtZXRlciBjb3JyZXNwb25k cyB0byBhbiBlbmNyeXB0ZWQgY29sdW1uLCBidXQgdGhlIHBhcmFtZXRlciB2YWx1ZSB3YXMg bm90IGVuY3J5cHRlZCIpKSk7CisJCQl9CisKIAkJCWlmIChwZm9ybWF0ID09IDApCS8qIHRl eHQgbW9kZSAqLwogCQkJewogCQkJCU9pZAkJCXR5cGlucHV0OwpAQCAtMjYwMCw4ICsyNjE5 LDQ0IEBAIGV4ZWNfZGVzY3JpYmVfc3RhdGVtZW50X21lc3NhZ2UoY29uc3QgY2hhciAqc3Rt dF9uYW1lKQogCWZvciAoaW50IGkgPSAwOyBpIDwgcHNyYy0+bnVtX3BhcmFtczsgaSsrKQog CXsKIAkJT2lkCQkJcHR5cGUgPSBwc3JjLT5wYXJhbV90eXBlc1tpXTsKKwkJT2lkCQkJcGNl a2lkID0gSW52YWxpZE9pZDsKKwkJaW50CQkJcGNla2FsZyA9IDA7CisJCWludDE2CQlwZmxh Z3MgPSAwOworCisJCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVk ICYmIHR5cGVfaXNfZW5jcnlwdGVkKHB0eXBlKSkKKwkJeworCQkJT2lkCQkJcG9yaWd0Ymwg PSBwc3JjLT5wYXJhbV9vcmlndGJsc1tpXTsKKwkJCUF0dHJOdW1iZXIJcG9yaWdjb2wgPSBw c3JjLT5wYXJhbV9vcmlnY29sc1tpXTsKKwkJCUhlYXBUdXBsZQl0cDsKKwkJCUZvcm1fcGdf YXR0cmlidXRlIG9yaWdfYXR0OworCisJCQlpZiAocG9yaWd0YmwgPT0gSW52YWxpZE9pZCB8 fCBwb3JpZ2NvbCA8PSAwKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShF UlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJwYXJhbWV0 ZXIgJWQgY29ycmVzcG9uZHMgdG8gYW4gZW5jcnlwdGVkIGNvbHVtbiwgYnV0IGFuIHVuZGVy bHlpbmcgdGFibGUgYW5kIGNvbHVtbiBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCIsIGkpKSk7 CisKKwkJCXRwID0gU2VhcmNoU3lzQ2FjaGUyKEFUVE5VTSwgT2JqZWN0SWRHZXREYXR1bShw b3JpZ3RibCksIEludDE2R2V0RGF0dW0ocG9yaWdjb2wpKTsKKwkJCWlmICghSGVhcFR1cGxl SXNWYWxpZCh0cCkpCisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IGF0dHJpYnV0ZSAlZCBvZiByZWxhdGlvbiAldSIsIHBvcmlnY29sLCBwb3JpZ3RibCk7CisJ CQlvcmlnX2F0dCA9IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHRwKTsKKwkJCXB0 eXBlID0gb3JpZ19hdHQtPmF0dHJlYWx0eXBpZDsKKwkJCXBjZWtpZCA9IG9yaWdfYXR0LT5h dHRjZWs7CisJCQlwY2VrYWxnID0gb3JpZ19hdHQtPmF0dGVuY2FsZzsKKwkJCVJlbGVhc2VT eXNDYWNoZSh0cCk7CisKKwkJCWlmIChwc3JjLT5wYXJhbV90eXBlc1tpXSA9PSBQR19FTkNS WVBURURfREVUT0lEKQorCQkJCXBmbGFncyB8PSAweDAxOworCisJCQlNYXliZVNlbmRDb2x1 bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShwY2VraWQpOworCQl9CiAKIAkJcHFfc2VuZGludDMy KCZyb3dfZGVzY3JpcHRpb25fYnVmLCAoaW50KSBwdHlwZSk7CisJCWlmIChNeVByb2NQb3J0 LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7CisJCQlwcV9zZW5kaW50MzIoJnJv d19kZXNjcmlwdGlvbl9idWYsIChpbnQpIHBjZWtpZCk7CisJCQlwcV9zZW5kaW50MTYoJnJv d19kZXNjcmlwdGlvbl9idWYsIHBjZWthbGcpOworCQkJcHFfc2VuZGludDE2KCZyb3dfZGVz Y3JpcHRpb25fYnVmLCBwZmxhZ3MpOworCQl9CiAJfQogCXBxX2VuZG1lc3NhZ2VfcmV1c2Uo JnJvd19kZXNjcmlwdGlvbl9idWYpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IGFhMDA4MTU3 ODcuLjU0OWQzMWU1ZDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j CisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC0zMCw2ICszMCw3IEBACiAj aW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hc3luYy5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2NsdXN0ZXIuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9j b2xlbmNjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY29sbGF0aW9uY21kcy5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb252ZXJz aW9uY21kcy5oIgpAQCAtMTM3LDYgKzEzOCw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRB c1JlYWRPbmx5KE5vZGUgKnBhcnNldHJlZSkKIAlzd2l0Y2ggKG5vZGVUYWcocGFyc2V0cmVl KSkKIAl7CiAJCWNhc2UgVF9BbHRlckNvbGxhdGlvblN0bXQ6CisJCWNhc2UgVF9BbHRlckNv bHVtbkVuY3J5cHRpb25LZXlTdG10OgogCQljYXNlIFRfQWx0ZXJEYXRhYmFzZVJlZnJlc2hD b2xsU3RtdDoKIAkJY2FzZSBUX0FsdGVyRGF0YWJhc2VTZXRTdG10OgogCQljYXNlIFRfQWx0 ZXJEYXRhYmFzZVN0bXQ6CkBAIC0xNDQxLDYgKzE0NDMsMTQgQEAgUHJvY2Vzc1V0aWxpdHlT bG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkJCXN0bXQtPmRlZmluaXRp b24sCiAJCQkJCQkJCQkJCQkJCQkmc2Vjb25kYXJ5T2JqZWN0KTsKIAkJCQkJCQlicmVhazsK KwkJCQkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCQkJCQlBc3NlcnQoc3RtdC0+YXJncyA9PSBO SUwpOworCQkJCQkJCWFkZHJlc3MgPSBDcmVhdGVDRUsocHN0YXRlLCBzdG10KTsKKwkJCQkJ CQlicmVhazsKKwkJCQkJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCQkJCQlBc3NlcnQoc3RtdC0+ YXJncyA9PSBOSUwpOworCQkJCQkJCWFkZHJlc3MgPSBDcmVhdGVDTUsocHN0YXRlLCBzdG10 KTsKKwkJCQkJCQlicmVhazsKIAkJCQkJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJCQkJ CQlBc3NlcnQoc3RtdC0+YXJncyA9PSBOSUwpOwogCQkJCQkJCWFkZHJlc3MgPSBEZWZpbmVD b2xsYXRpb24ocHN0YXRlLApAQCAtMTkwMyw2ICsxOTEzLDEwIEBAIFByb2Nlc3NVdGlsaXR5 U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJYWRkcmVzcyA9IEFsdGVyQ29sbGF0aW9u KChBbHRlckNvbGxhdGlvblN0bXQgKikgcGFyc2V0cmVlKTsKIAkJCQlicmVhazsKIAorCQkJ Y2FzZSBUX0FsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQ6CisJCQkJYWRkcmVzcyA9IEFs dGVyQ29sdW1uRW5jcnlwdGlvbktleShwc3RhdGUsIChBbHRlckNvbHVtbkVuY3J5cHRpb25L ZXlTdG10ICopIHBhcnNldHJlZSk7CisJCQkJYnJlYWs7CisKIAkJCWRlZmF1bHQ6CiAJCQkJ ZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkJIChpbnQp IG5vZGVUYWcocGFyc2V0cmVlKSk7CkBAIC0yMjI1LDYgKzIyMzksMTIgQEAgQWx0ZXJPYmpl Y3RUeXBlQ29tbWFuZFRhZyhPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0NP TFVNTjoKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9UQUJMRTsKIAkJCWJyZWFrOworCQljYXNl IE9CSkVDVF9DRUs6CisJCQl0YWcgPSBDTURUQUdfQUxURVJfQ09MVU1OX0VOQ1JZUFRJT05f S0VZOworCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCXRhZyA9IENNRFRBR19B TFRFUl9DT0xVTU5fTUFTVEVSX0tFWTsKKwkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9DT05W RVJTSU9OOgogCQkJdGFnID0gQ01EVEFHX0FMVEVSX0NPTlZFUlNJT047CiAJCQlicmVhazsK QEAgLTI2NDAsNiArMjY2MCwxMiBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJl ZSkKIAkJCQljYXNlIE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQkJCQl0YWcgPSBDTURUQUdf RFJPUF9TVEFUSVNUSUNTOwogCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9DRUs6CisJ CQkJCXRhZyA9IENNRFRBR19EUk9QX0NPTFVNTl9FTkNSWVBUSU9OX0tFWTsKKwkJCQkJYnJl YWs7CisJCQkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9DT0xV TU5fTUFTVEVSX0tFWTsKKwkJCQkJYnJlYWs7CiAJCQkJZGVmYXVsdDoKIAkJCQkJdGFnID0g Q01EVEFHX1VOS05PV047CiAJCQl9CkBAIC0yNzYwLDYgKzI3ODYsMTIgQEAgQ3JlYXRlQ29t bWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgog CQkJCQl0YWcgPSBDTURUQUdfQ1JFQVRFX0NPTExBVElPTjsKIAkJCQkJYnJlYWs7CisJCQkJ Y2FzZSBPQkpFQ1RfQ0VLOgorCQkJCQl0YWcgPSBDTURUQUdfQ1JFQVRFX0NPTFVNTl9FTkNS WVBUSU9OX0tFWTsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJCQl0 YWcgPSBDTURUQUdfQ1JFQVRFX0NPTFVNTl9NQVNURVJfS0VZOworCQkJCQlicmVhazsKIAkJ CQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgogCQkJCQl0YWcgPSBDTURUQUdfQ1JFQVRF X0FDQ0VTU19NRVRIT0Q7CiAJCQkJCWJyZWFrOwpAQCAtMzA2Myw2ICszMDk1LDEwIEBAIENy ZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJdGFnID0gQ01EVEFHX0FMVEVS X0NPTExBVElPTjsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9BbHRlckNvbHVtbkVuY3J5cHRp b25LZXlTdG10OgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX0NPTFVNTl9FTkNSWVBUSU9OX0tF WTsKKwkJCWJyZWFrOworCiAJCWNhc2UgVF9QcmVwYXJlU3RtdDoKIAkJCXRhZyA9IENNRFRB R19QUkVQQVJFOwogCQkJYnJlYWs7CkBAIC0zMjE3LDcgKzMyNTMsNyBAQCBDcmVhdGVDb21t YW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCWJyZWFrOwogCiAJCWRlZmF1bHQ6Ci0JCQll bG9nKFdBUk5JTkcsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCisJCQllbG9nKEVS Uk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFn KHBhcnNldHJlZSkpOwogCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQlicmVhazsKQEAg LTM2ODgsNiArMzcyNCwxMCBAQCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9kZSAqcGFyc2V0cmVl KQogCQkJbGV2ID0gTE9HU1RNVF9EREw7CiAJCQlicmVhazsKIAorCQljYXNlIFRfQWx0ZXJD b2x1bW5FbmNyeXB0aW9uS2V5U3RtdDoKKwkJCWxldiA9IExPR1NUTVRfRERMOworCQkJYnJl YWs7CisKIAkJCS8qIGFscmVhZHktcGxhbm5lZCBxdWVyaWVzICovCiAJCWNhc2UgVF9QbGFu bmVkU3RtdDoKIAkJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJh eWZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jCmluZGV4IDQ5 NWU0NDlhOWUuLjQwNWYwOGE5YjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9hcnJheWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3Mu YwpAQCAtMzM4Niw2ICszMzg2LDcgQEAgY29uc3RydWN0X2FycmF5X2J1aWx0aW4oRGF0dW0g KmVsZW1zLCBpbnQgbmVsZW1zLCBPaWQgZWxtdHlwZSkKIAkJCWJyZWFrOwogCiAJCWNhc2Ug T0lET0lEOgorCQljYXNlIFJFR0NMQVNTT0lEOgogCQljYXNlIFJFR1RZUEVPSUQ6CiAJCQll bG1sZW4gPSBzaXplb2YoT2lkKTsKIAkJCWVsbWJ5dmFsID0gdHJ1ZTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggYTE2YTYzZjQ5NS4uMWUyM2ViYjM5YSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTI0LDcgKzI0LDkgQEAKICNp bmNsdWRlICJjYXRhbG9nL3BnX2Ftb3AuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FtcHJv Yy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2FzdC5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfY29sZW5ja2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbGFuZ3VhZ2UuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgpAQCAtMjY1OCw2ICsyNjYwLDI1IEBA IHR5cGVfaXNfbXVsdGlyYW5nZShPaWQgdHlwaWQpCiAJcmV0dXJuIChnZXRfdHlwdHlwZSh0 eXBpZCkgPT0gVFlQVFlQRV9NVUxUSVJBTkdFKTsKIH0KIAorYm9vbAordHlwZV9pc19lbmNy eXB0ZWQoT2lkIHR5cGlkKQoreworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2VhcmNoU3lz Q2FjaGUxKFRZUEVPSUQsIE9iamVjdElkR2V0RGF0dW0odHlwaWQpKTsKKwlpZiAoSGVhcFR1 cGxlSXNWYWxpZCh0cCkpCisJeworCQlGb3JtX3BnX3R5cGUgdHlwdHVwID0gKEZvcm1fcGdf dHlwZSkgR0VUU1RSVUNUKHRwKTsKKwkJYm9vbAkJcmVzdWx0OworCisJCXJlc3VsdCA9ICh0 eXB0dXAtPnR5cGNhdGVnb3J5ID09IFRZUENBVEVHT1JZX0VOQ1JZUFRFRCk7CisJCVJlbGVh c2VTeXNDYWNoZSh0cCk7CisJCXJldHVybiByZXN1bHQ7CisJfQorCWVsc2UKKwkJcmV0dXJu IGZhbHNlOworfQorCiAvKgogICogZ2V0X3R5cGVfY2F0ZWdvcnlfcHJlZmVycmVkCiAgKgpA QCAtMzY3OSwzICszNzAwLDc1IEBAIGdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQs IGJvb2wgbWlzc2luZ19vaykKIAogCXJldHVybiBzdWJuYW1lOwogfQorCitPaWQKK2dldF9j ZWtfb2lkKGNvbnN0IGNoYXIgKmNla25hbWUsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlPaWQJ CQlvaWQ7CisKKwlvaWQgPSBHZXRTeXNDYWNoZU9pZDEoQ0VLTkFNRSwgQW51bV9wZ19jb2xl bmNrZXlfb2lkLAorCQkJCQkJICBDU3RyaW5nR2V0RGF0dW0oY2VrbmFtZSkpOworCWlmICgh T2lkSXNWYWxpZChvaWQpICYmICFtaXNzaW5nX29rKQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVycm1zZygiY29s dW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNla25hbWUpKSk7 CisJcmV0dXJuIG9pZDsKK30KKworY2hhciAqCitnZXRfY2VrX25hbWUoT2lkIGNla2lkLCBi b29sIG1pc3Npbmdfb2spCit7CisJSGVhcFR1cGxlCXR1cDsKKwljaGFyCSAgICpjZWtuYW1l OworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENFS09JRCwgT2JqZWN0SWRHZXREYXR1bShj ZWtpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJeworCQlpZiAoIW1p c3Npbmdfb2spCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29s dW1uIGVuY3J5cHRpb24ga2V5ICV1IiwgY2VraWQpOworCQlyZXR1cm4gTlVMTDsKKwl9CisK KwljZWtuYW1lID0gcHN0cmR1cChOYW1lU3RyKCgoRm9ybV9wZ19jb2xlbmNrZXkpIEdFVFNU UlVDVCh0dXApKS0+Y2VrbmFtZSkpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwly ZXR1cm4gY2VrbmFtZTsKK30KKworT2lkCitnZXRfY21rX29pZChjb25zdCBjaGFyICpjbWtu YW1lLCBib29sIG1pc3Npbmdfb2spCit7CisJT2lkCQkJb2lkOworCisJb2lkID0gR2V0U3lz Q2FjaGVPaWQxKENNS05BTUUsIEFudW1fcGdfY29sbWFzdGVya2V5X29pZCwKKwkJCQkJCSAg Q1N0cmluZ0dldERhdHVtKGNta25hbWUpKTsKKwlpZiAoIU9pZElzVmFsaWQob2lkKSAmJiAh bWlzc2luZ19vaykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNc IiBkb2VzIG5vdCBleGlzdCIsIGNta25hbWUpKSk7CisJcmV0dXJuIG9pZDsKK30KKworY2hh ciAqCitnZXRfY21rX25hbWUoT2lkIGNta2lkLCBib29sIG1pc3Npbmdfb2spCit7CisJSGVh cFR1cGxlCXR1cDsKKwljaGFyCSAgICpjbWtuYW1lOworCisJdHVwID0gU2VhcmNoU3lzQ2Fj aGUxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShjbWtpZCkpOworCisJaWYgKCFIZWFwVHVw bGVJc1ZhbGlkKHR1cCkpCisJeworCQlpZiAoIW1pc3Npbmdfb2spCisJCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIG1hc3RlciBrZXkgJXUiLCBjbWtp ZCk7CisJCXJldHVybiBOVUxMOworCX0KKworCWNta25hbWUgPSBwc3RyZHVwKE5hbWVTdHIo KChGb3JtX3BnX2NvbG1hc3RlcmtleSkgR0VUU1RSVUNUKHR1cCkpLT5jbWtuYW1lKSk7CisK KwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiBjbWtuYW1lOworfQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCAwZDZhMjk1Njc0Li5mMmE1ZTAyOWUz IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwpAQCAtMzQwLDYgKzM0MCw4 IEBAIENvbXBsZXRlQ2FjaGVkUGxhbihDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlLAog CQkJCSAgIE1lbW9yeUNvbnRleHQgcXVlcnl0cmVlX2NvbnRleHQsCiAJCQkJICAgT2lkICpw YXJhbV90eXBlcywKIAkJCQkgICBpbnQgbnVtX3BhcmFtcywKKwkJCQkgICBPaWQgKnBhcmFt X29yaWd0YmxzLAorCQkJCSAgIEF0dHJOdW1iZXIgKnBhcmFtX29yaWdjb2xzLAogCQkJCSAg IFBhcnNlclNldHVwSG9vayBwYXJzZXJTZXR1cCwKIAkJCQkgICB2b2lkICpwYXJzZXJTZXR1 cEFyZywKIAkJCQkgICBpbnQgY3Vyc29yX29wdGlvbnMsCkBAIC00MTcsOCArNDE5LDE2IEBA IENvbXBsZXRlQ2FjaGVkUGxhbihDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlLAogCiAJ aWYgKG51bV9wYXJhbXMgPiAwKQogCXsKLQkJcGxhbnNvdXJjZS0+cGFyYW1fdHlwZXMgPSAo T2lkICopIHBhbGxvYyhudW1fcGFyYW1zICogc2l6ZW9mKE9pZCkpOworCQlwbGFuc291cmNl LT5wYXJhbV90eXBlcyA9IHBhbGxvY19hcnJheShPaWQsIG51bV9wYXJhbXMpOwogCQltZW1j cHkocGxhbnNvdXJjZS0+cGFyYW1fdHlwZXMsIHBhcmFtX3R5cGVzLCBudW1fcGFyYW1zICog c2l6ZW9mKE9pZCkpOworCisJCXBsYW5zb3VyY2UtPnBhcmFtX29yaWd0YmxzID0gcGFsbG9j MF9hcnJheShPaWQsIG51bV9wYXJhbXMpOworCQlpZiAocGFyYW1fb3JpZ3RibHMpCisJCQlt ZW1jcHkocGxhbnNvdXJjZS0+cGFyYW1fb3JpZ3RibHMsIHBhcmFtX29yaWd0YmxzLCBudW1f cGFyYW1zICogc2l6ZW9mKE9pZCkpOworCisJCXBsYW5zb3VyY2UtPnBhcmFtX29yaWdjb2xz ID0gcGFsbG9jMF9hcnJheShBdHRyTnVtYmVyLCBudW1fcGFyYW1zKTsKKwkJaWYgKHBhcmFt X29yaWdjb2xzKQorCQkJbWVtY3B5KHBsYW5zb3VyY2UtPnBhcmFtX29yaWdjb2xzLCBwYXJh bV9vcmlnY29scywgbnVtX3BhcmFtcyAqIHNpemVvZihBdHRyTnVtYmVyKSk7CiAJfQogCWVs c2UKIAkJcGxhbnNvdXJjZS0+cGFyYW1fdHlwZXMgPSBOVUxMOwpAQCAtMTUzNSwxMyArMTU0 NSwyMiBAQCBDb3B5Q2FjaGVkUGxhbihDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlKQog CW5ld3NvdXJjZS0+Y29tbWFuZFRhZyA9IHBsYW5zb3VyY2UtPmNvbW1hbmRUYWc7CiAJaWYg KHBsYW5zb3VyY2UtPm51bV9wYXJhbXMgPiAwKQogCXsKLQkJbmV3c291cmNlLT5wYXJhbV90 eXBlcyA9IChPaWQgKikKLQkJCXBhbGxvYyhwbGFuc291cmNlLT5udW1fcGFyYW1zICogc2l6 ZW9mKE9pZCkpOworCQluZXdzb3VyY2UtPnBhcmFtX3R5cGVzID0gcGFsbG9jX2FycmF5KE9p ZCwgcGxhbnNvdXJjZS0+bnVtX3BhcmFtcyk7CiAJCW1lbWNweShuZXdzb3VyY2UtPnBhcmFt X3R5cGVzLCBwbGFuc291cmNlLT5wYXJhbV90eXBlcywKIAkJCSAgIHBsYW5zb3VyY2UtPm51 bV9wYXJhbXMgKiBzaXplb2YoT2lkKSk7CisJCWlmIChwbGFuc291cmNlLT5wYXJhbV9vcmln dGJscykKKwkJeworCQkJbmV3c291cmNlLT5wYXJhbV9vcmlndGJscyA9IHBhbGxvY19hcnJh eShPaWQsIHBsYW5zb3VyY2UtPm51bV9wYXJhbXMpOworCQkJbWVtY3B5KG5ld3NvdXJjZS0+ cGFyYW1fb3JpZ3RibHMsIHBsYW5zb3VyY2UtPnBhcmFtX29yaWd0YmxzLAorCQkJCSAgIHBs YW5zb3VyY2UtPm51bV9wYXJhbXMgKiBzaXplb2YoT2lkKSk7CisJCX0KKwkJaWYgKHBsYW5z b3VyY2UtPnBhcmFtX29yaWdjb2xzKQorCQl7CisJCQluZXdzb3VyY2UtPnBhcmFtX29yaWdj b2xzID0gcGFsbG9jX2FycmF5KEF0dHJOdW1iZXIsIHBsYW5zb3VyY2UtPm51bV9wYXJhbXMp OworCQkJbWVtY3B5KG5ld3NvdXJjZS0+cGFyYW1fb3JpZ2NvbHMsIHBsYW5zb3VyY2UtPnBh cmFtX29yaWdjb2xzLAorCQkJCSAgIHBsYW5zb3VyY2UtPm51bV9wYXJhbXMgKiBzaXplb2Yo QXR0ck51bWJlcikpOworCQl9CiAJfQotCWVsc2UKLQkJbmV3c291cmNlLT5wYXJhbV90eXBl cyA9IE5VTEw7CiAJbmV3c291cmNlLT5udW1fcGFyYW1zID0gcGxhbnNvdXJjZS0+bnVtX3Bh cmFtczsKIAluZXdzb3VyY2UtPnBhcnNlclNldHVwID0gcGxhbnNvdXJjZS0+cGFyc2VyU2V0 dXA7CiAJbmV3c291cmNlLT5wYXJzZXJTZXR1cEFyZyA9IHBsYW5zb3VyY2UtPnBhcnNlclNl dHVwQXJnOwpAQCAtMTU0OSw4ICsxNTY4LDYgQEAgQ29weUNhY2hlZFBsYW4oQ2FjaGVkUGxh blNvdXJjZSAqcGxhbnNvdXJjZSkKIAluZXdzb3VyY2UtPmZpeGVkX3Jlc3VsdCA9IHBsYW5z b3VyY2UtPmZpeGVkX3Jlc3VsdDsKIAlpZiAocGxhbnNvdXJjZS0+cmVzdWx0RGVzYykKIAkJ bmV3c291cmNlLT5yZXN1bHREZXNjID0gQ3JlYXRlVHVwbGVEZXNjQ29weShwbGFuc291cmNl LT5yZXN1bHREZXNjKTsKLQllbHNlCi0JCW5ld3NvdXJjZS0+cmVzdWx0RGVzYyA9IE5VTEw7 CiAJbmV3c291cmNlLT5jb250ZXh0ID0gc291cmNlX2NvbnRleHQ7CiAKIAlxdWVyeXRyZWVf Y29udGV4dCA9IEFsbG9jU2V0Q29udGV4dENyZWF0ZShzb3VyY2VfY29udGV4dCwKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9jYWNoZS9zeXNjYWNoZS5jCmluZGV4IGVlYzY0NGVjODQuLjYzMzdmMjdiZmMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUuYwpAQCAtMjksNyArMjksMTAgQEAK ICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhfbWVtYmVycy5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVu Y2tleWRhdGEuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19j b25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb252ZXJzaW9uLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgpAQCAtMjY3LDYgKzI3MCw0MyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGNhY2hlZGVzYyBjYWNoZWluZm9bXSA9IHsKIAkJfSwKIAkJMjU2 CiAJfSwKKwl7CisJCUNvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLCAvKiBDRUtEQVRBQ0VL Q01LICovCisJCUNvbHVtbkVuY0tleUNla2lkQ21raWRJbmRleElkLAorCQkyLAorCQl7CisJ CQlBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tkY2VraWQsCisJCQlBbnVtX3BnX2NvbGVuY2tl eWRhdGFfY2tkY21raWQsCisJCX0sCisJCTgKKwl9LAorCXsKKwkJQ29sdW1uRW5jS2V5RGF0 YVJlbGF0aW9uSWQsIC8qIENFS0RBVEFPSUQgKi8KKwkJQ29sdW1uRW5jS2V5RGF0YU9pZElu ZGV4SWQsCisJCTEsCisJCXsKKwkJCUFudW1fcGdfY29sZW5ja2V5ZGF0YV9vaWQsCisJCX0s CisJCTgKKwl9LAorCXsKKwkJQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgLyogQ0VLTkFNRSAq LworCQlDb2x1bW5FbmNLZXlOYW1lSW5kZXhJZCwKKwkJMSwKKwkJeworCQkJQW51bV9wZ19j b2xlbmNrZXlfY2VrbmFtZSwKKwkJfSwKKwkJOAorCX0sCisJeworCQlDb2x1bW5FbmNLZXlS ZWxhdGlvbklkLCAvKiBDRUtPSUQgKi8KKwkJQ29sdW1uRW5jS2V5T2lkSW5kZXhJZCwKKwkJ MSwKKwkJeworCQkJQW51bV9wZ19jb2xlbmNrZXlfb2lkLAorCQl9LAorCQk4CisJfSwKIAl7 T3BlcmF0b3JDbGFzc1JlbGF0aW9uSWQsCS8qIENMQUFNTkFNRU5TUCAqLwogCQlPcGNsYXNz QW1OYW1lTnNwSW5kZXhJZCwKIAkJMywKQEAgLTI4OSw2ICszMjksMjQgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBjYWNoZWRlc2MgY2FjaGVpbmZvW10gPSB7CiAJCX0sCiAJCTgKIAl9LAor CXsKKwkJQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgLyogQ01LTkFNRSAqLworCQlDb2x1 bW5NYXN0ZXJLZXlOYW1lSW5kZXhJZCwKKwkJMSwKKwkJeworCQkJQW51bV9wZ19jb2xtYXN0 ZXJrZXlfY21rbmFtZSwKKwkJfSwKKwkJOAorCX0sCisJeworCQlDb2x1bW5NYXN0ZXJLZXlS ZWxhdGlvbklkLAkvKiBDTUtPSUQgKi8KKwkJQ29sdW1uTWFzdGVyS2V5T2lkSW5kZXhJZCwK KwkJMSwKKwkJeworCQkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfb2lkLAorCQl9LAorCQk4CisJ fSwKIAl7Q29sbGF0aW9uUmVsYXRpb25JZCwJCS8qIENPTExOQU1FRU5DTlNQICovCiAJCUNv bGxhdGlvbk5hbWVFbmNOc3BJbmRleElkLAogCQkzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvbWIvbWJ1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvbWJ1dGlscy5j CmluZGV4IDA1NDNjNTc0YzYuLmRlODM3ZWMzY2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL21iL21idXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9tYi9tYnV0aWxz LmMKQEAgLTM2LDcgKzM2LDkgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJsaWJwcS9saWJwcS1iZS5o IgogI2luY2x1ZGUgIm1iL3BnX3djaGFyLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAj aW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5o IgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCkBAIC0xMjksNiArMTMxLDEyIEBAIFBy ZXBhcmVDbGllbnRFbmNvZGluZyhpbnQgZW5jb2RpbmcpCiAJCWVuY29kaW5nID09IFBHX1NR TF9BU0NJSSkKIAkJcmV0dXJuIDA7CiAKKwkvKgorCSAqIENhbm5vdCBkbyBjb252ZXJzaW9u IHdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZC4KKwkgKi8KKwlpZiAoTXlQcm9j UG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJcmV0dXJuIC0xOworCiAJaWYg KElzVHJhbnNhY3Rpb25TdGF0ZSgpKQogCXsKIAkJLyoKQEAgLTIzNiw2ICsyNDQsMTIgQEAg U2V0Q2xpZW50RW5jb2RpbmcoaW50IGVuY29kaW5nKQogCQlyZXR1cm4gMDsKIAl9CiAKKwkv KgorCSAqIENhbm5vdCBkbyBjb252ZXJzaW9uIHdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMg ZW5hYmxlZC4KKwkgKi8KKwlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5h YmxlZCkKKwkJcmV0dXJuIC0xOworCiAJLyoKIAkgKiBTZWFyY2ggdGhlIGNhY2hlIGZvciB0 aGUgZW50cnkgcHJldmlvdXNseSBwcmVwYXJlZCBieQogCSAqIFByZXBhcmVDbGllbnRFbmNv ZGluZzsgaWYgdGhlcmUgaXNuJ3Qgb25lLCB3ZSBsb3NlLiAgV2hpbGUgYXQgaXQsCkBAIC0y OTYsNyArMzEwLDkgQEAgSW5pdGlhbGl6ZUNsaWVudEVuY29kaW5nKHZvaWQpCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coImNv bnZlcnNpb24gYmV0d2VlbiAlcyBhbmQgJXMgaXMgbm90IHN1cHBvcnRlZCIsCiAJCQkJCQlw Z19lbmMybmFtZV90YmxbcGVuZGluZ19jbGllbnRfZW5jb2RpbmddLm5hbWUsCi0JCQkJCQlH ZXREYXRhYmFzZUVuY29kaW5nTmFtZSgpKSkpOworCQkJCQkJR2V0RGF0YWJhc2VFbmNvZGlu Z05hbWUoKSksCisJCQkJIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVk KSA/CisJCQkJIGVycmRldGFpbCgiRW5jb2RpbmcgY29udmVyc2lvbiBpcyBub3QgcG9zc2li bGUgd2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkLiIpIDogMCkpOwogCX0KIAog CS8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgYi9zcmMvYmluL3Bn X2R1bXAvY29tbW9uLmMKaW5kZXggMzk1ZjgxN2ZhOC4uZWE0ZWY2MmJlNyAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9jb21t b24uYwpAQCAtMjAxLDYgKzIwMSwxMiBAQCBnZXRTY2hlbWFEYXRhKEFyY2hpdmUgKmZvdXQs IGludCAqbnVtVGFibGVzUHRyKQogCXBnX2xvZ19pbmZvKCJyZWFkaW5nIHVzZXItZGVmaW5l ZCBjb2xsYXRpb25zIik7CiAJKHZvaWQpIGdldENvbGxhdGlvbnMoZm91dCwgJm51bUNvbGxh dGlvbnMpOwogCisJcGdfbG9nX2luZm8oInJlYWRpbmcgY29sdW1uIG1hc3RlciBrZXlzIik7 CisJZ2V0Q29sdW1uTWFzdGVyS2V5cyhmb3V0KTsKKworCXBnX2xvZ19pbmZvKCJyZWFkaW5n IGNvbHVtbiBlbmNyeXB0aW9uIGtleXMiKTsKKwlnZXRDb2x1bW5FbmNyeXB0aW9uS2V5cyhm b3V0KTsKKwogCXBnX2xvZ19pbmZvKCJyZWFkaW5nIHVzZXItZGVmaW5lZCBjb252ZXJzaW9u cyIpOwogCWdldENvbnZlcnNpb25zKGZvdXQsICZudW1Db252ZXJzaW9ucyk7CiAKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9w Z19iYWNrdXAuaAppbmRleCBmY2M1ZjZiZDA1Li40N2JhOThlZmYzIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2Jh Y2t1cC5oCkBAIC04NCw2ICs4NCw3IEBAIHR5cGVkZWYgc3RydWN0IF9jb25uUGFyYW1zCiAJ Y2hhcgkgICAqcGdob3N0OwogCWNoYXIJICAgKnVzZXJuYW1lOwogCXRyaXZhbHVlCXByb21w dFBhc3N3b3JkOworCWludAkJCWNvbHVtbl9lbmNyeXB0aW9uOwogCS8qIElmIG5vdCBOVUxM LCB0aGlzIG92ZXJyaWRlcyB0aGUgZGJuYW1lIG9idGFpbmVkIGZyb20gY29tbWFuZCBsaW5l ICovCiAJLyogKGJ1dCAqb25seSogdGhlIERCIG5hbWUsIG5vdCBhbnl0aGluZyBlbHNlIGlu IHRoZSBjb25uc3RyaW5nKSAqLwogCWNoYXIJICAgKm92ZXJyaWRlX2RibmFtZTsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwppbmRleCAyMzMxOThhZmMwLi44YTJiZDdm Yjk1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCkBAIC0zNDExLDYg KzM0MTEsOCBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24oUFFFeHBCdWZmZXIgYnVmLCBUb2NF bnRyeSAqdGUpCiAKIAkvKiBvYmplY3RzIHRoYXQgZG9uJ3QgcmVxdWlyZSBzcGVjaWFsIGRl Y29yYXRpb24gKi8KIAlpZiAoc3RyY21wKHR5cGUsICJDT0xMQVRJT04iKSA9PSAwIHx8CisJ CXN0cmNtcCh0eXBlLCAiQ09MVU1OIEVOQ1JZUFRJT04gS0VZIikgPT0gMCB8fAorCQlzdHJj bXAodHlwZSwgIkNPTFVNTiBNQVNURVIgS0VZIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwg IkNPTlZFUlNJT04iKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiRE9NQUlOIikgPT0gMCB8 fAogCQlzdHJjbXAodHlwZSwgIlRBQkxFIikgPT0gMCB8fApAQCAtMzU4OCw2ICszNTkwLDgg QEAgX3ByaW50VG9jRW50cnkoQXJjaGl2ZUhhbmRsZSAqQUgsIFRvY0VudHJ5ICp0ZSwgYm9v bCBpc0RhdGEpCiAJCWlmIChzdHJjbXAodGUtPmRlc2MsICJBR0dSRUdBVEUiKSA9PSAwIHx8 CiAJCQlzdHJjbXAodGUtPmRlc2MsICJCTE9CIikgPT0gMCB8fAogCQkJc3RyY21wKHRlLT5k ZXNjLCAiQ09MTEFUSU9OIikgPT0gMCB8fAorCQkJc3RyY21wKHRlLT5kZXNjLCAiQ09MVU1O IEVOQ1JZUFRJT04gS0VZIikgPT0gMCB8fAorCQkJc3RyY21wKHRlLT5kZXNjLCAiQ09MVU1O IE1BU1RFUiBLRVkiKSA9PSAwIHx8CiAJCQlzdHJjbXAodGUtPmRlc2MsICJDT05WRVJTSU9O IikgPT0gMCB8fAogCQkJc3RyY21wKHRlLT5kZXNjLCAiREFUQUJBU0UiKSA9PSAwIHx8CiAJ CQlzdHJjbXAodGUtPmRlc2MsICJET01BSU4iKSA9PSAwIHx8CmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2R1bXAvcGdfYmFja3VwX2RiLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw X2RiLmMKaW5kZXggMjhiYWE2OGZkNC4uOTYwYzNmMzlhOSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2JhY2t1cF9kYi5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXBfZGIuYwpAQCAtMTMzLDggKzEzMyw4IEBAIENvbm5lY3REYXRhYmFzZShBcmNoaXZlICpB SFgsCiAJICovCiAJZG8KIAl7Ci0JCWNvbnN0IGNoYXIgKmtleXdvcmRzWzhdOwotCQljb25z dCBjaGFyICp2YWx1ZXNbOF07CisJCWNvbnN0IGNoYXIgKmtleXdvcmRzWzldOworCQljb25z dCBjaGFyICp2YWx1ZXNbOV07CiAJCWludAkJCWkgPSAwOwogCiAJCS8qCkBAIC0xNTksNiAr MTU5LDExIEBAIENvbm5lY3REYXRhYmFzZShBcmNoaXZlICpBSFgsCiAJCX0KIAkJa2V5d29y ZHNbaV0gPSAiZmFsbGJhY2tfYXBwbGljYXRpb25fbmFtZSI7CiAJCXZhbHVlc1tpKytdID0g cHJvZ25hbWU7CisJCWlmIChjcGFyYW1zLT5jb2x1bW5fZW5jcnlwdGlvbikKKwkJeworCQkJ a2V5d29yZHNbaV0gPSAiY29sdW1uX2VuY3J5cHRpb24iOworCQkJdmFsdWVzW2krK10gPSAi MSI7CisJCX0KIAkJa2V5d29yZHNbaV0gPSBOVUxMOwogCQl2YWx1ZXNbaSsrXSA9IE5VTEw7 CiAJCUFzc2VydChpIDw9IGxlbmd0aG9mKGtleXdvcmRzKSk7CmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRl eCA2N2I2ZDkwNzllLi5kYTA3ODUyMzQ0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTQ3LDYgKzQ3 LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhpZF9kLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jYXN0X2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NsYXNzX2QuaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf ZGVmYXVsdF9hY2xfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbGFyZ2VvYmplY3RfZC5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbGFyZ2VvYmplY3RfbWV0YWRhdGFfZC5oIgpAQCAt MjI1LDYgKzIyNiw4IEBAIHN0YXRpYyB2b2lkIGR1bXBBY2Nlc3NNZXRob2QoQXJjaGl2ZSAq Zm91dCwgY29uc3QgQWNjZXNzTWV0aG9kSW5mbyAqb3ByaW5mbyk7CiBzdGF0aWMgdm9pZCBk dW1wT3BjbGFzcyhBcmNoaXZlICpmb3V0LCBjb25zdCBPcGNsYXNzSW5mbyAqb3BjaW5mbyk7 CiBzdGF0aWMgdm9pZCBkdW1wT3BmYW1pbHkoQXJjaGl2ZSAqZm91dCwgY29uc3QgT3BmYW1p bHlJbmZvICpvcGZpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBDb2xsYXRpb24oQXJjaGl2ZSAq Zm91dCwgY29uc3QgQ29sbEluZm8gKmNvbGxpbmZvKTsKK3N0YXRpYyB2b2lkIGR1bXBDb2x1 bW5FbmNyeXB0aW9uS2V5KEFyY2hpdmUgKmZvdXQsIGNvbnN0IENla0luZm8gKmNla2luZm8p Oworc3RhdGljIHZvaWQgZHVtcENvbHVtbk1hc3RlcktleShBcmNoaXZlICpmb3V0LCBjb25z dCBDbWtJbmZvICpjZWtpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBDb252ZXJzaW9uKEFyY2hp dmUgKmZvdXQsIGNvbnN0IENvbnZJbmZvICpjb252aW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1w UnVsZShBcmNoaXZlICpmb3V0LCBjb25zdCBSdWxlSW5mbyAqcmluZm8pOwogc3RhdGljIHZv aWQgZHVtcEFnZyhBcmNoaXZlICpmb3V0LCBjb25zdCBBZ2dJbmZvICphZ2dpbmZvKTsKQEAg LTM4NCw2ICszODcsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJeyJhdHRy aWJ1dGUtaW5zZXJ0cyIsIG5vX2FyZ3VtZW50LCAmZG9wdC5jb2x1bW5faW5zZXJ0cywgMX0s CiAJCXsiYmluYXJ5LXVwZ3JhZGUiLCBub19hcmd1bWVudCwgJmRvcHQuYmluYXJ5X3VwZ3Jh ZGUsIDF9LAogCQl7ImNvbHVtbi1pbnNlcnRzIiwgbm9fYXJndW1lbnQsICZkb3B0LmNvbHVt bl9pbnNlcnRzLCAxfSwKKwkJeyJkZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zIiwgbm9fYXJn dW1lbnQsICZkb3B0LmNwYXJhbXMuY29sdW1uX2VuY3J5cHRpb24sIDF9LAogCQl7ImRpc2Fi bGUtZG9sbGFyLXF1b3RpbmciLCBub19hcmd1bWVudCwgJmRvcHQuZGlzYWJsZV9kb2xsYXJf cXVvdGluZywgMX0sCiAJCXsiZGlzYWJsZS10cmlnZ2VycyIsIG5vX2FyZ3VtZW50LCAmZG9w dC5kaXNhYmxlX3RyaWdnZXJzLCAxfSwKIAkJeyJlbmFibGUtcm93LXNlY3VyaXR5Iiwgbm9f YXJndW1lbnQsICZkb3B0LmVuYWJsZV9yb3dfc2VjdXJpdHksIDF9LApAQCAtNjc2LDYgKzY4 MCw5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCSAqIC0taW5zZXJ0cyBhcmUg YWxyZWFkeSBpbXBsaWVkIGFib3ZlIGlmIC0tY29sdW1uLWluc2VydHMgb3IKIAkgKiAtLXJv d3MtcGVyLWluc2VydCB3ZXJlIHNwZWNpZmllZC4KIAkgKi8KKwlpZiAoZG9wdC5jcGFyYW1z LmNvbHVtbl9lbmNyeXB0aW9uICYmIGRvcHQuZHVtcF9pbnNlcnRzID09IDApCisJCXBnX2Zh dGFsKCJvcHRpb24gLS1kZWNyeXB0X2VuY3J5cHRlZF9jb2x1bW5zIHJlcXVpcmVzIG9wdGlv biAtLWluc2VydHMsIC0tcm93cy1wZXItaW5zZXJ0LCBvciAtLWNvbHVtbi1pbnNlcnRzIik7 CisKIAlpZiAoZG9wdC5kb19ub3RoaW5nICYmIGRvcHQuZHVtcF9pbnNlcnRzID09IDApCiAJ CXBnX2ZhdGFsKCJvcHRpb24gLS1vbi1jb25mbGljdC1kby1ub3RoaW5nIHJlcXVpcmVzIG9w dGlvbiAtLWluc2VydHMsIC0tcm93cy1wZXItaW5zZXJ0LCBvciAtLWNvbHVtbi1pbnNlcnRz Iik7CiAKQEAgLTEwMjEsNiArMTAyOCw3IEBAIGhlbHAoY29uc3QgY2hhciAqcHJvZ25hbWUp CiAJcHJpbnRmKF8oIiAgLXgsIC0tbm8tcHJpdmlsZWdlcyAgICAgICAgICBkbyBub3QgZHVt cCBwcml2aWxlZ2VzIChncmFudC9yZXZva2UpXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1iaW5h cnktdXBncmFkZSAgICAgICAgICAgICBmb3IgdXNlIGJ5IHVwZ3JhZGUgdXRpbGl0aWVzIG9u bHlcbiIpKTsKIAlwcmludGYoXygiICAtLWNvbHVtbi1pbnNlcnRzICAgICAgICAgICAgIGR1 bXAgZGF0YSBhcyBJTlNFUlQgY29tbWFuZHMgd2l0aCBjb2x1bW4gbmFtZXNcbiIpKTsKKwlw cmludGYoXygiICAtLWRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnMgIGRlY3J5cHQgZW5jcnlw dGVkIGNvbHVtbnMgaW4gdGhlIG91dHB1dFxuIikpOwogCXByaW50ZihfKCIgIC0tZGlzYWJs ZS1kb2xsYXItcXVvdGluZyAgICAgZGlzYWJsZSBkb2xsYXIgcXVvdGluZywgdXNlIFNRTCBz dGFuZGFyZCBxdW90aW5nXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1kaXNhYmxlLXRyaWdnZXJz ICAgICAgICAgICBkaXNhYmxlIHRyaWdnZXJzIGR1cmluZyBkYXRhLW9ubHkgcmVzdG9yZVxu IikpOwogCXByaW50ZihfKCIgIC0tZW5hYmxlLXJvdy1zZWN1cml0eSAgICAgICAgZW5hYmxl IHJvdyBzZWN1cml0eSAoZHVtcCBvbmx5IGNvbnRlbnQgdXNlciBoYXNcbiIKQEAgLTU1MTcs NiArNTUyNSwxMzggQEAgZ2V0Q29sbGF0aW9ucyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUNv bGxhdGlvbnMpCiAJcmV0dXJuIGNvbGxpbmZvOwogfQogCisvKgorICogZ2V0Q29sdW1uRW5j cnlwdGlvbktleXMKKyAqCSAgZ2V0IGluZm9ybWF0aW9uIGFib3V0IGNvbHVtbiBlbmNyeXB0 aW9uIGtleXMKKyAqLwordm9pZAorZ2V0Q29sdW1uRW5jcnlwdGlvbktleXMoQXJjaGl2ZSAq Zm91dCkKK3sKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwlQR3Jlc3VsdCAgICpyZXM7CisJaW50 CQkJbnR1cHM7CisJQ2VrSW5mbwkgICAqY2VraW5mbzsKKwlpbnQJCQlpX3RhYmxlb2lkOwor CWludAkJCWlfb2lkOworCWludAkJCWlfY2VrbmFtZTsKKwlpbnQJCQlpX2Nla293bmVyOwor CisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPCAxNjAwMDApCisJCXJldHVybjsKKworCXF1 ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LAorCQkJCQkgICJTRUxFQ1QgY2VrLnRhYmxlb2lkLCBjZWsub2lkLCBjZWsuY2VrbmFtZSxc biIKKwkJCQkJICAiIGNlay5jZWtvd25lclxuIgorCQkJCQkgICJGUk9NIHBnX2NvbGVuY2tl eSBjZWsiKTsKKworCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwg UEdSRVNfVFVQTEVTX09LKTsKKworCW50dXBzID0gUFFudHVwbGVzKHJlcyk7CisKKwlpX3Rh Ymxlb2lkID0gUFFmbnVtYmVyKHJlcywgInRhYmxlb2lkIik7CisJaV9vaWQgPSBQUWZudW1i ZXIocmVzLCAib2lkIik7CisJaV9jZWtuYW1lID0gUFFmbnVtYmVyKHJlcywgImNla25hbWUi KTsKKwlpX2Nla293bmVyID0gUFFmbnVtYmVyKHJlcywgImNla293bmVyIik7CisKKwljZWtp bmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9mKENla0luZm8pKTsKKworCWZvciAoaW50 IGkgPSAwOyBpIDwgbnR1cHM7IGkrKykKKwl7CisJCVBHcmVzdWx0CSAgICpyZXMyOworCQlp bnQJCQkJbnR1cHMyOworCisJCWNla2luZm9baV0uZG9iai5vYmpUeXBlID0gRE9fQ0VLOwor CQljZWtpbmZvW2ldLmRvYmouY2F0SWQudGFibGVvaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShy ZXMsIGksIGlfdGFibGVvaWQpKTsKKwkJY2VraW5mb1tpXS5kb2JqLmNhdElkLm9pZCA9IGF0 b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9vaWQpKTsKKwkJQXNzaWduRHVtcElkKCZjZWtp bmZvW2ldLmRvYmopOworCQljZWtpbmZvW2ldLmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdl dHZhbHVlKHJlcywgaSwgaV9jZWtuYW1lKSk7CisJCWNla2luZm9baV0ucm9sbmFtZSA9IGdl dFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2Nla293bmVyKSk7CisKKwkJcmVzZXRQ UUV4cEJ1ZmZlcihxdWVyeSk7CisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkJ ICAiU0VMRUNUIChTRUxFQ1QgY21rbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbWFzdGVy a2V5IFdIRVJFIHBnX2NvbG1hc3RlcmtleS5vaWQgPSBja2RjbWtpZCkgQVMgY2VrY21rbmFt ZSxcbiIKKwkJCQkJCSAgIiBja2RjbWthbGcsIGNrZGVuY3ZhbFxuIgorCQkJCQkJICAiRlJP TSBwZ19jYXRhbG9nLnBnX2NvbGVuY2tleWRhdGFcbiIKKwkJCQkJCSAgIldIRVJFIGNrZGNl a2lkID0gJXUiLCBjZWtpbmZvW2ldLmRvYmouY2F0SWQub2lkKTsKKwkJcmVzMiA9IEV4ZWN1 dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKwkJbnR1 cHMyID0gUFFudHVwbGVzKHJlczIpOworCQljZWtpbmZvW2ldLm51bWRhdGEgPSBudHVwczI7 CisJCWNla2luZm9baV0uY2VrY21rbmFtZXMgPSBwZ19tYWxsb2Moc2l6ZW9mKGNoYXIgKikg KiBudHVwczIpOworCQljZWtpbmZvW2ldLmNla2Nta2FsZ3MgPSBwZ19tYWxsb2Moc2l6ZW9m KGludCkgKiBudHVwczIpOworCQljZWtpbmZvW2ldLmNla2VuY3ZhbHMgPSBwZ19tYWxsb2Mo c2l6ZW9mKGNoYXIgKikgKiBudHVwczIpOworCQlmb3IgKGludCBqID0gMDsgaiA8IG50dXBz MjsgaisrKQorCQl7CisJCQljZWtpbmZvW2ldLmNla2Nta25hbWVzW2pdID0gcGdfc3RyZHVw KFBRZ2V0dmFsdWUocmVzMiwgaiwgUFFmbnVtYmVyKHJlczIsICJjZWtjbWtuYW1lIikpKTsK KwkJCWNla2luZm9baV0uY2VrY21rYWxnc1tqXSA9IGF0b2koUFFnZXR2YWx1ZShyZXMyLCBq LCBQUWZudW1iZXIocmVzMiwgImNrZGNta2FsZyIpKSk7CisJCQljZWtpbmZvW2ldLmNla2Vu Y3ZhbHNbal0gPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMyLCBqLCBQUWZudW1iZXIocmVz MiwgImNrZGVuY3ZhbCIpKSk7CisJCX0KKwkJUFFjbGVhcihyZXMyKTsKKworCQlzZWxlY3RE dW1wYWJsZU9iamVjdCgmKGNla2luZm9baV0uZG9iaiksIGZvdXQpOworCX0KKwlQUWNsZWFy KHJlcyk7CisKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworfQorCisvKgorICogZ2V0 Q29sdW1uTWFzdGVyS2V5cworICoJICBnZXQgaW5mb3JtYXRpb24gYWJvdXQgY29sdW1uIG1h c3RlciBrZXlzCisgKi8KK3ZvaWQKK2dldENvbHVtbk1hc3RlcktleXMoQXJjaGl2ZSAqZm91 dCkKK3sKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwlQR3Jlc3VsdCAgICpyZXM7CisJaW50CQkJ bnR1cHM7CisJQ21rSW5mbwkgICAqY21raW5mbzsKKwlpbnQJCQlpX3RhYmxlb2lkOworCWlu dAkJCWlfb2lkOworCWludAkJCWlfY21rbmFtZTsKKwlpbnQJCQlpX2Nta293bmVyOworCWlu dAkJCWlfY21rcmVhbG07CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA8IDE2MDAwMCkK KwkJcmV0dXJuOworCisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksCisJCQkJCSAgIlNFTEVDVCBjbWsudGFibGVvaWQsIGNtay5v aWQsIGNtay5jbWtuYW1lLFxuIgorCQkJCQkgICIgY21rLmNta293bmVyLCBjbWsuY21rcmVh bG1cbiIKKwkJCQkJICAiRlJPTSBwZ19jb2xtYXN0ZXJrZXkgY21rIik7CisKKwlyZXMgPSBF eGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisK KwludHVwcyA9IFBRbnR1cGxlcyhyZXMpOworCisJaV90YWJsZW9pZCA9IFBRZm51bWJlcihy ZXMsICJ0YWJsZW9pZCIpOworCWlfb2lkID0gUFFmbnVtYmVyKHJlcywgIm9pZCIpOworCWlf Y21rbmFtZSA9IFBRZm51bWJlcihyZXMsICJjbWtuYW1lIik7CisJaV9jbWtvd25lciA9IFBR Zm51bWJlcihyZXMsICJjbWtvd25lciIpOworCWlfY21rcmVhbG0gPSBQUWZudW1iZXIocmVz LCAiY21rcmVhbG0iKTsKKworCWNta2luZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2Yo Q21rSW5mbykpOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBudHVwczsgaSsrKQorCXsKKwkJ Y21raW5mb1tpXS5kb2JqLm9ialR5cGUgPSBET19DTUs7CisJCWNta2luZm9baV0uZG9iai5j YXRJZC50YWJsZW9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV90YWJsZW9pZCkp OworCQljbWtpbmZvW2ldLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVz LCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQoJmNta2luZm9baV0uZG9iaik7CisJCWNt a2luZm9baV0uZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2Nt a25hbWUpKTsKKwkJY21raW5mb1tpXS5yb2xuYW1lID0gZ2V0Um9sZU5hbWUoUFFnZXR2YWx1 ZShyZXMsIGksIGlfY21rb3duZXIpKTsKKwkJY21raW5mb1tpXS5jbWtyZWFsbSA9IHBnX3N0 cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9jbWtyZWFsbSkpOworCisJCXNlbGVjdER1bXBh YmxlT2JqZWN0KCYoY21raW5mb1tpXS5kb2JqKSwgZm91dCk7CisJfQorCVBRY2xlYXIocmVz KTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7Cit9CisKIC8qCiAgKiBnZXRDb252 ZXJzaW9uczoKICAqCSAgcmVhZCBhbGwgY29udmVyc2lvbnMgaW4gdGhlIHN5c3RlbSBjYXRh bG9ncyBhbmQgcmV0dXJuIHRoZW0gaW4gdGhlCkBAIC04MTA3LDYgKzgyNDcsOSBAQCBnZXRU YWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRh YmxlcykKIAlpbnQJCQlpX3R5cHN0b3JhZ2U7CiAJaW50CQkJaV9hdHRpZGVudGl0eTsKIAlp bnQJCQlpX2F0dGdlbmVyYXRlZDsKKwlpbnQJCQlpX2F0dGNla25hbWU7CisJaW50CQkJaV9h dHRlbmNhbGc7CisJaW50CQkJaV9hdHRlbmNkZXQ7CiAJaW50CQkJaV9hdHRpc2Ryb3BwZWQ7 CiAJaW50CQkJaV9hdHRsZW47CiAJaW50CQkJaV9hdHRhbGlnbjsKQEAgLTgyMTYsMTcgKzgz NTksMjkgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGlu Zm8sIGludCBudW1UYWJsZXMpCiAKIAlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxMjAw MDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsCi0JCQkJCQkJICJhLmF0dGdlbmVyYXRl ZFxuIik7CisJCQkJCQkJICJhLmF0dGdlbmVyYXRlZCxcbiIpOworCWVsc2UKKwkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocSwKKwkJCQkJCQkgIicnIEFTIGF0dGdlbmVyYXRlZCxcbiIpOwor CisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTYwMDAwKQorCQlhcHBlbmRQUUV4cEJ1 ZmZlcihxLAorCQkJCQkJICAiKFNFTEVDVCBjZWtuYW1lIEZST00gcGdfY29sZW5ja2V5IGNl ayBXSEVSRSBjZWsub2lkID0gYS5hdHRjZWspIEFTIGF0dGNla25hbWUsXG4iCisJCQkJCQkg ICJDQVNFIGF0dHR5cGlkIFdIRU4gJXUgVEhFTiB0cnVlIFdIRU4gJXUgVEhFTiBmYWxzZSBF TkQgQVMgYXR0ZW5jZGV0LFxuIgorCQkJCQkJICAiYXR0ZW5jYWxnXG4iLAorCQkJCQkJICBQ R19FTkNSWVBURURfREVUT0lELCBQR19FTkNSWVBURURfUk5ET0lEKTsKIAllbHNlCiAJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHEsCi0JCQkJCQkJICInJyBBUyBhdHRnZW5lcmF0ZWRcbiIp OworCQkJCQkJCSAiTlVMTCBBUyBhdHRjZWtuYW1lLFxuIgorCQkJCQkJCSAiTlVMTCBBUyBh dHRlbmNkZXQsXG4iCisJCQkJCQkJICJOVUxMIEFTIGF0dGVuY2FsZ1xuIik7CiAKIAkvKiBu ZWVkIGxlZnQgam9pbiB0byBwZ190eXBlIHRvIG5vdCBmYWlsIG9uIGRyb3BwZWQgY29sdW1u cyAuLi4gKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlcihxLAogCQkJCQkgICJGUk9NIHVubmVzdCgn JXMnOjpwZ19jYXRhbG9nLm9pZFtdKSBBUyBzcmModGJsb2lkKVxuIgogCQkJCQkgICJKT0lO IHBnX2NhdGFsb2cucGdfYXR0cmlidXRlIGEgT04gKHNyYy50YmxvaWQgPSBhLmF0dHJlbGlk KSAiCiAJCQkJCSAgIkxFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3R5cGUgdCAiCi0JCQkJCSAg Ik9OIChhLmF0dHR5cGlkID0gdC5vaWQpXG4iCisJCQkJCSAgIk9OIChDQVNFIFdIRU4gYS5h dHRyZWFsdHlwaWQgPD4gMCBUSEVOIGEuYXR0cmVhbHR5cGlkIEVMU0UgYS5hdHR0eXBpZCBF TkQgPSB0Lm9pZClcbiIKIAkJCQkJICAiV0hFUkUgYS5hdHRudW0gPiAwOjpwZ19jYXRhbG9n LmludDJcbiIKIAkJCQkJICAiT1JERVIgQlkgYS5hdHRyZWxpZCwgYS5hdHRudW0iLAogCQkJ CQkgIHRibG9pZHMtPmRhdGEpOwpAQCAtODI0NSw2ICs4NDAwLDkgQEAgZ2V0VGFibGVBdHRy cyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJ aV90eXBzdG9yYWdlID0gUFFmbnVtYmVyKHJlcywgInR5cHN0b3JhZ2UiKTsKIAlpX2F0dGlk ZW50aXR5ID0gUFFmbnVtYmVyKHJlcywgImF0dGlkZW50aXR5Iik7CiAJaV9hdHRnZW5lcmF0 ZWQgPSBQUWZudW1iZXIocmVzLCAiYXR0Z2VuZXJhdGVkIik7CisJaV9hdHRjZWtuYW1lID0g UFFmbnVtYmVyKHJlcywgImF0dGNla25hbWUiKTsKKwlpX2F0dGVuY2RldCA9IFBRZm51bWJl cihyZXMsICJhdHRlbmNkZXQiKTsKKwlpX2F0dGVuY2FsZyA9IFBRZm51bWJlcihyZXMsICJh dHRlbmNhbGciKTsKIAlpX2F0dGlzZHJvcHBlZCA9IFBRZm51bWJlcihyZXMsICJhdHRpc2Ry b3BwZWQiKTsKIAlpX2F0dGxlbiA9IFBRZm51bWJlcihyZXMsICJhdHRsZW4iKTsKIAlpX2F0 dGFsaWduID0gUFFmbnVtYmVyKHJlcywgImF0dGFsaWduIik7CkBAIC04MzA2LDYgKzg0NjQs OSBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywg aW50IG51bVRhYmxlcykKIAkJdGJpbmZvLT50eXBzdG9yYWdlID0gKGNoYXIgKikgcGdfbWFs bG9jKG51bWF0dHMgKiBzaXplb2YoY2hhcikpOwogCQl0YmluZm8tPmF0dGlkZW50aXR5ID0g KGNoYXIgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2YoY2hhcikpOwogCQl0YmluZm8t PmF0dGdlbmVyYXRlZCA9IChjaGFyICopIHBnX21hbGxvYyhudW1hdHRzICogc2l6ZW9mKGNo YXIpKTsKKwkJdGJpbmZvLT5hdHRjZWtuYW1lID0gKGNoYXIgKiopIHBnX21hbGxvYyhudW1h dHRzICogc2l6ZW9mKGNoYXIgKikpOworCQl0YmluZm8tPmF0dGVuY2RldCA9IChib29sICop IHBnX21hbGxvYyhudW1hdHRzICogc2l6ZW9mKGJvb2wpKTsKKwkJdGJpbmZvLT5hdHRlbmNh bGcgPSAoaW50ICopIHBnX21hbGxvYyhudW1hdHRzICogc2l6ZW9mKGludCkpOwogCQl0Ymlu Zm8tPmF0dGlzZHJvcHBlZCA9IChib29sICopIHBnX21hbGxvYyhudW1hdHRzICogc2l6ZW9m KGJvb2wpKTsKIAkJdGJpbmZvLT5hdHRsZW4gPSAoaW50ICopIHBnX21hbGxvYyhudW1hdHRz ICogc2l6ZW9mKGludCkpOwogCQl0YmluZm8tPmF0dGFsaWduID0gKGNoYXIgKikgcGdfbWFs bG9jKG51bWF0dHMgKiBzaXplb2YoY2hhcikpOwpAQCAtODMzNCw2ICs4NDk1LDE4IEBAIGdl dFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVt VGFibGVzKQogCQkJdGJpbmZvLT5hdHRpZGVudGl0eVtqXSA9ICooUFFnZXR2YWx1ZShyZXMs IHIsIGlfYXR0aWRlbnRpdHkpKTsKIAkJCXRiaW5mby0+YXR0Z2VuZXJhdGVkW2pdID0gKihQ UWdldHZhbHVlKHJlcywgciwgaV9hdHRnZW5lcmF0ZWQpKTsKIAkJCXRiaW5mby0+bmVlZHNf b3ZlcnJpZGUgPSB0YmluZm8tPm5lZWRzX292ZXJyaWRlIHx8ICh0YmluZm8tPmF0dGlkZW50 aXR5W2pdID09IEFUVFJJQlVURV9JREVOVElUWV9BTFdBWVMpOworCQkJaWYgKCFQUWdldGlz bnVsbChyZXMsIHIsIGlfYXR0Y2VrbmFtZSkpCisJCQkJdGJpbmZvLT5hdHRjZWtuYW1lW2pd ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGNla25hbWUpKTsKKwkJCWVs c2UKKwkJCQl0YmluZm8tPmF0dGNla25hbWVbal0gPSBOVUxMOworCQkJaWYgKCFQUWdldGlz bnVsbChyZXMsIHIsIGlfYXR0ZW5jZGV0KSkKKwkJCQl0YmluZm8tPmF0dGVuY2RldFtqXSA9 IChQUWdldHZhbHVlKHJlcywgciwgaV9hdHRlbmNkZXQpWzBdID09ICd0Jyk7CisJCQllbHNl CisJCQkJdGJpbmZvLT5hdHRlbmNkZXRbal0gPSAwOworCQkJaWYgKCFQUWdldGlzbnVsbChy ZXMsIHIsIGlfYXR0ZW5jYWxnKSkKKwkJCQl0YmluZm8tPmF0dGVuY2FsZ1tqXSA9IGF0b2ko UFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0ZW5jYWxnKSk7CisJCQllbHNlCisJCQkJdGJpbmZv LT5hdHRlbmNhbGdbal0gPSAwOwogCQkJdGJpbmZvLT5hdHRpc2Ryb3BwZWRbal0gPSAoUFFn ZXR2YWx1ZShyZXMsIHIsIGlfYXR0aXNkcm9wcGVkKVswXSA9PSAndCcpOwogCQkJdGJpbmZv LT5hdHRsZW5bal0gPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGxlbikpOwogCQkJ dGJpbmZvLT5hdHRhbGlnbltqXSA9ICooUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0YWxpZ24p KTsKQEAgLTk4NTgsNiArMTAwMzEsMTIgQEAgZHVtcER1bXBhYmxlT2JqZWN0KEFyY2hpdmUg KmZvdXQsIER1bXBhYmxlT2JqZWN0ICpkb2JqKQogCQljYXNlIERPX09QRkFNSUxZOgogCQkJ ZHVtcE9wZmFtaWx5KGZvdXQsIChjb25zdCBPcGZhbWlseUluZm8gKikgZG9iaik7CiAJCQli cmVhazsKKwkJY2FzZSBET19DRUs6CisJCQlkdW1wQ29sdW1uRW5jcnlwdGlvbktleShmb3V0 LCAoY29uc3QgQ2VrSW5mbyAqKSBkb2JqKTsKKwkJCWJyZWFrOworCQljYXNlIERPX0NNSzoK KwkJCWR1bXBDb2x1bW5NYXN0ZXJLZXkoZm91dCwgKGNvbnN0IENta0luZm8gKikgZG9iaik7 CisJCQlicmVhazsKIAkJY2FzZSBET19DT0xMQVRJT046CiAJCQlkdW1wQ29sbGF0aW9uKGZv dXQsIChjb25zdCBDb2xsSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOwpAQCAtMTMyNTEsNiAr MTM0MzAsMTUzIEBAIGR1bXBDb2xsYXRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgQ29sbElu Zm8gKmNvbGxpbmZvKQogCWZyZWUocWNvbGxuYW1lKTsKIH0KIAorc3RhdGljIGNvbnN0IGNo YXIgKgorZ2V0X2VuY2FsZ19uYW1lKGludCBudW0pCit7CisJc3dpdGNoIChudW0pCisJewor CQljYXNlIFBHX0NNS19SU0FFU19PQUVQX1NIQV8xOgorCQkJcmV0dXJuICJSU0FFU19PQUVQ X1NIQV8xIjsKKwkJY2FzZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMjU2OgorCQkJcmV0dXJu ICJSU0FFU19PQUVQX1NIQV8yNTYiOworCisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzEyOF9D QkNfSE1BQ19TSEFfMjU2OgorCQkJcmV0dXJuICJBRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hB XzI1NiI7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0Ogor CQkJcmV0dXJuICJBRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NCI7CisJCWNhc2UgUEdf Q0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0OgorCQkJcmV0dXJuICJBRUFEX0FF U18yNTZfQ0JDX0hNQUNfU0hBXzM4NCI7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9D QkNfSE1BQ19TSEFfNTEyOgorCQkJcmV0dXJuICJBRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hB XzUxMiI7CisKKwkJZGVmYXVsdDoKKwkJCXJldHVybiBOVUxMOworCX0KK30KKworLyoKKyAq IGR1bXBDb2x1bW5FbmNyeXB0aW9uS2V5CisgKgkgIGR1bXAgdGhlIGRlZmluaXRpb24gb2Yg dGhlIGdpdmVuIGNvbHVtbiBlbmNyeXB0aW9uIGtleQorICovCitzdGF0aWMgdm9pZAorZHVt cENvbHVtbkVuY3J5cHRpb25LZXkoQXJjaGl2ZSAqZm91dCwgY29uc3QgQ2VrSW5mbyAqY2Vr aW5mbykKK3sKKwlEdW1wT3B0aW9ucyAqZG9wdCA9IGZvdXQtPmRvcHQ7CisJUFFFeHBCdWZm ZXIgZGVscTsKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwljaGFyCSAgICpxY2VrbmFtZTsKKwor CS8qIERvIG5vdGhpbmcgaW4gZGF0YS1vbmx5IGR1bXAgKi8KKwlpZiAoZG9wdC0+ZGF0YU9u bHkpCisJCXJldHVybjsKKworCWRlbHEgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCXF1ZXJ5 ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKworCXFjZWtuYW1lID0gcGdfc3RyZHVwKGZtdElk KGNla2luZm8tPmRvYmoubmFtZSkpOworCisJYXBwZW5kUFFFeHBCdWZmZXIoZGVscSwgIkRS T1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZICVzO1xuIiwKKwkJCQkJICBxY2VrbmFtZSk7CisK KwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBL RVkgJXMgV0lUSCBWQUxVRVMgIiwKKwkJCQkJICBxY2VrbmFtZSk7CisKKwlmb3IgKGludCBp ID0gMDsgaSA8IGNla2luZm8tPm51bWRhdGE7IGkrKykKKwl7CisJCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LCAiKCIpOworCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiY29sdW1u X21hc3Rlcl9rZXkgPSAlcywgIiwgZm10SWQoY2VraW5mby0+Y2VrY21rbmFtZXNbaV0pKTsK KwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJhbGdvcml0aG0gPSAnJXMnLCAiLCBnZXRf ZW5jYWxnX25hbWUoY2VraW5mby0+Y2VrY21rYWxnc1tpXSkpOworCQlhcHBlbmRQUUV4cEJ1 ZmZlcihxdWVyeSwgImVuY3J5cHRlZF92YWx1ZSA9ICIpOworCQlhcHBlbmRTdHJpbmdMaXRl cmFsQUgocXVlcnksIGNla2luZm8tPmNla2VuY3ZhbHNbaV0sIGZvdXQpOworCisJCWFwcGVu ZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiKSIpOworCQlpZiAoaSA8IGNla2luZm8tPm51bWRhdGEg LSAxKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiwgIik7CisJfQorCisJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksICI7XG4iKTsKKworCWlmIChjZWtpbmZvLT5kb2JqLmR1 bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OKQorCQlBcmNoaXZlRW50cnkoZm91dCwg Y2VraW5mby0+ZG9iai5jYXRJZCwgY2VraW5mby0+ZG9iai5kdW1wSWQsCisJCQkJCSBBUkNI SVZFX09QVFMoLnRhZyA9IGNla2luZm8tPmRvYmoubmFtZSwKKwkJCQkJCQkJICAub3duZXIg PSBjZWtpbmZvLT5yb2xuYW1lLAorCQkJCQkJCQkgIC5kZXNjcmlwdGlvbiA9ICJDT0xVTU4g RU5DUllQVElPTiBLRVkiLAorCQkJCQkJCQkgIC5zZWN0aW9uID0gU0VDVElPTl9QUkVfREFU QSwKKwkJCQkJCQkJICAuY3JlYXRlU3RtdCA9IHF1ZXJ5LT5kYXRhLAorCQkJCQkJCQkgIC5k cm9wU3RtdCA9IGRlbHEtPmRhdGEpKTsKKworCWlmIChjZWtpbmZvLT5kb2JqLmR1bXAgJiBE VU1QX0NPTVBPTkVOVF9DT01NRU5UKQorCQlkdW1wQ29tbWVudChmb3V0LCAiQ09MVU1OIEVO Q1JZUFRJT04gS0VZIiwgcWNla25hbWUsCisJCQkJCU5VTEwsIGNla2luZm8tPnJvbG5hbWUs CisJCQkJCWNla2luZm8tPmRvYmouY2F0SWQsIDAsIGNla2luZm8tPmRvYmouZHVtcElkKTsK KworCWlmIChjZWtpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9TRUNMQUJFTCkK KwkJZHVtcFNlY0xhYmVsKGZvdXQsICJDT0xVTU4gRU5DUllQVElPTiBLRVkiLCBxY2VrbmFt ZSwKKwkJCQkJIE5VTEwsIGNla2luZm8tPnJvbG5hbWUsCisJCQkJCSBjZWtpbmZvLT5kb2Jq LmNhdElkLCAwLCBjZWtpbmZvLT5kb2JqLmR1bXBJZCk7CisKKwlkZXN0cm95UFFFeHBCdWZm ZXIoZGVscSk7CisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKKwlmcmVlKHFjZWtuYW1l KTsKK30KKworLyoKKyAqIGR1bXBDb2x1bW5NYXN0ZXJLZXkKKyAqCSAgZHVtcCB0aGUgZGVm aW5pdGlvbiBvZiB0aGUgZ2l2ZW4gY29sdW1uIG1hc3RlciBrZXkKKyAqLworc3RhdGljIHZv aWQKK2R1bXBDb2x1bW5NYXN0ZXJLZXkoQXJjaGl2ZSAqZm91dCwgY29uc3QgQ21rSW5mbyAq Y21raW5mbykKK3sKKwlEdW1wT3B0aW9ucyAqZG9wdCA9IGZvdXQtPmRvcHQ7CisJUFFFeHBC dWZmZXIgZGVscTsKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwljaGFyCSAgICpxY21rbmFtZTsK KworCS8qIERvIG5vdGhpbmcgaW4gZGF0YS1vbmx5IGR1bXAgKi8KKwlpZiAoZG9wdC0+ZGF0 YU9ubHkpCisJCXJldHVybjsKKworCWRlbHEgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCXF1 ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKworCXFjbWtuYW1lID0gcGdfc3RyZHVwKGZt dElkKGNta2luZm8tPmRvYmoubmFtZSkpOworCisJYXBwZW5kUFFFeHBCdWZmZXIoZGVscSwg IkRST1AgQ09MVU1OIE1BU1RFUiBLRVkgJXM7XG4iLAorCQkJCQkgIHFjbWtuYW1lKTsKKwor CWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZICVz IFdJVEggKCIsCisJCQkJCSAgcWNta25hbWUpOworCisJYXBwZW5kUFFFeHBCdWZmZXIocXVl cnksICJyZWFsbSA9ICIpOworCWFwcGVuZFN0cmluZ0xpdGVyYWxBSChxdWVyeSwgY21raW5m by0+Y21rcmVhbG0sIGZvdXQpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIp O1xuIik7CisKKwlpZiAoY21raW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfREVG SU5JVElPTikKKwkJQXJjaGl2ZUVudHJ5KGZvdXQsIGNta2luZm8tPmRvYmouY2F0SWQsIGNt a2luZm8tPmRvYmouZHVtcElkLAorCQkJCQkgQVJDSElWRV9PUFRTKC50YWcgPSBjbWtpbmZv LT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm93bmVyID0gY21raW5mby0+cm9sbmFtZSwKKwkJ CQkJCQkJICAuZGVzY3JpcHRpb24gPSAiQ09MVU1OIE1BU1RFUiBLRVkiLAorCQkJCQkJCQkg IC5zZWN0aW9uID0gU0VDVElPTl9QUkVfREFUQSwKKwkJCQkJCQkJICAuY3JlYXRlU3RtdCA9 IHF1ZXJ5LT5kYXRhLAorCQkJCQkJCQkgIC5kcm9wU3RtdCA9IGRlbHEtPmRhdGEpKTsKKwor CWlmIChjbWtpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9DT01NRU5UKQorCQlk dW1wQ29tbWVudChmb3V0LCAiQ09MVU1OIE1BU1RFUiBLRVkiLCBxY21rbmFtZSwKKwkJCQkJ TlVMTCwgY21raW5mby0+cm9sbmFtZSwKKwkJCQkJY21raW5mby0+ZG9iai5jYXRJZCwgMCwg Y21raW5mby0+ZG9iai5kdW1wSWQpOworCisJaWYgKGNta2luZm8tPmRvYmouZHVtcCAmIERV TVBfQ09NUE9ORU5UX1NFQ0xBQkVMKQorCQlkdW1wU2VjTGFiZWwoZm91dCwgIkNPTFVNTiBN QVNURVIgS0VZIiwgcWNta25hbWUsCisJCQkJCSBOVUxMLCBjbWtpbmZvLT5yb2xuYW1lLAor CQkJCQkgY21raW5mby0+ZG9iai5jYXRJZCwgMCwgY21raW5mby0+ZG9iai5kdW1wSWQpOwor CisJZGVzdHJveVBRRXhwQnVmZmVyKGRlbHEpOworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVy eSk7CisJZnJlZShxY21rbmFtZSk7Cit9CisKIC8qCiAgKiBkdW1wQ29udmVyc2lvbgogICoJ ICB3cml0ZSBvdXQgYSBzaW5nbGUgY29udmVyc2lvbiBkZWZpbml0aW9uCkBAIC0xNTMzNCw2 ICsxNTY2MCwyMiBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFi bGVJbmZvICp0YmluZm8pCiAJCQkJCQkJCQkJICB0YmluZm8tPmF0dHR5cG5hbWVzW2pdKTsK IAkJCQkJfQogCisJCQkJCWlmICh0YmluZm8tPmF0dGNla25hbWVbal0pCisJCQkJCXsKKwkJ CQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICIgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNy eXB0aW9uX2tleSA9ICVzLCAiLAorCQkJCQkJCQkJCSAgZm10SWQodGJpbmZvLT5hdHRjZWtu YW1lW2pdKSk7CisJCQkJCQkvKgorCQkJCQkJICogVG8gcmVkdWNlIG91dHB1dCBzaXplLCB3 ZSBkb24ndCBwcmludCB0aGUgZGVmYXVsdAorCQkJCQkJICogb2YgZW5jcnlwdGlvbl90eXBl LCBidXQgd2UgZG8gcHJpbnQgdGhlIGRlZmF1bHQgb2YKKwkJCQkJCSAqIGFsZ29yaXRobSwg c2luY2Ugd2UgbWlnaHQgd2FudCB0byBjaGFuZ2UgdG8gYSBuZXcKKwkJCQkJCSAqIGRlZmF1 bHQgYWxnb3JpdGhtIHNvbWV0aW1lIGluIHRoZSBmdXR1cmUuCisJCQkJCQkgKi8KKwkJCQkJ CWlmICh0YmluZm8tPmF0dGVuY2RldFtqXSkKKwkJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihx LCAiZW5jcnlwdGlvbl90eXBlID0gZGV0ZXJtaW5pc3RpYywgIik7CisJCQkJCQlhcHBlbmRQ UUV4cEJ1ZmZlcihxLCAiYWxnb3JpdGhtID0gJyVzJykiLAorCQkJCQkJCQkJCSAgZ2V0X2Vu Y2FsZ19uYW1lKHRiaW5mby0+YXR0ZW5jYWxnW2pdKSk7CisJCQkJCX0KKwogCQkJCQlpZiAo cHJpbnRfZGVmYXVsdCkKIAkJCQkJewogCQkJCQkJaWYgKHRiaW5mby0+YXR0Z2VuZXJhdGVk W2pdID09IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEKQpAQCAtMTc4OTgsNiArMTgyNDAs OCBAQCBhZGRCb3VuZGFyeURlcGVuZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBp bnQgbnVtT2JqcywKIAkJCWNhc2UgRE9fQUNDRVNTX01FVEhPRDoKIAkJCWNhc2UgRE9fT1BD TEFTUzoKIAkJCWNhc2UgRE9fT1BGQU1JTFk6CisJCQljYXNlIERPX0NFSzoKKwkJCWNhc2Ug RE9fQ01LOgogCQkJY2FzZSBET19DT0xMQVRJT046CiAJCQljYXNlIERPX0NPTlZFUlNJT046 CiAJCQljYXNlIERPX1RBQkxFOgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggNjllZTkzOWQ0NC4uODBi ZDI5YzJmMyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC00Nyw2ICs0Nyw4IEBAIHR5cGVkZWYgZW51 bQogCURPX0FDQ0VTU19NRVRIT0QsCiAJRE9fT1BDTEFTUywKIAlET19PUEZBTUlMWSwKKwlE T19DRUssCisJRE9fQ01LLAogCURPX0NPTExBVElPTiwKIAlET19DT05WRVJTSU9OLAogCURP X1RBQkxFLApAQCAtMzMzLDYgKzMzNSw5IEBAIHR5cGVkZWYgc3RydWN0IF90YWJsZUluZm8K IAlib29sCSAgICphdHRpc2Ryb3BwZWQ7CS8qIHRydWUgaWYgYXR0ciBpcyBkcm9wcGVkOyBk b24ndCBkdW1wIGl0ICovCiAJY2hhcgkgICAqYXR0aWRlbnRpdHk7CiAJY2hhcgkgICAqYXR0 Z2VuZXJhdGVkOworCWNoYXIJICAqKmF0dGNla25hbWU7CisJaW50CQkgICAqYXR0ZW5jYWxn OworCWJvb2wJICAgKmF0dGVuY2RldDsKIAlpbnQJCSAgICphdHRsZW47CQkJLyogYXR0cmli dXRlIGxlbmd0aCwgdXNlZCBieSBiaW5hcnlfdXBncmFkZSAqLwogCWNoYXIJICAgKmF0dGFs aWduOwkJLyogYXR0cmlidXRlIGFsaWduLCB1c2VkIGJ5IGJpbmFyeV91cGdyYWRlICovCiAJ Ym9vbAkgICAqYXR0aXNsb2NhbDsJCS8qIHRydWUgaWYgYXR0ciBoYXMgbG9jYWwgZGVmaW5p dGlvbiAqLwpAQCAtNjY0LDYgKzY2OSwzMCBAQCB0eXBlZGVmIHN0cnVjdCBfU3Vic2NyaXB0 aW9uSW5mbwogCWNoYXIJICAgKnN1YnB1YmxpY2F0aW9uczsKIH0gU3Vic2NyaXB0aW9uSW5m bzsKIAorLyoKKyAqIFRoZSBDZWtJbmZvIHN0cnVjdCBpcyB1c2VkIHRvIHJlcHJlc2VudCBj b2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgKi8KK3R5cGVkZWYgc3RydWN0IF9DZWtJbmZvCit7 CisJRHVtcGFibGVPYmplY3QgZG9iajsKKwljb25zdCBjaGFyICpyb2xuYW1lOworCWludAkJ CW51bWRhdGE7CisJLyogVGhlIGZvbGxvd2luZyBhcmUgYXJyYXlzIG9mIG51bWRhdGEgZW50 cmllcyBlYWNoOiAqLworCWNoYXIJICAqKmNla2Nta25hbWVzOworCWludAkJICAgKmNla2Nt a2FsZ3M7CisJY2hhcgkgICoqY2VrZW5jdmFsczsKK30gQ2VrSW5mbzsKKworLyoKKyAqIFRo ZSBDbWtJbmZvIHN0cnVjdCBpcyB1c2VkIHRvIHJlcHJlc2VudCBjb2x1bW4gbWFzdGVyIGtl eS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX0Nta0luZm8KK3sKKwlEdW1wYWJsZU9iamVjdCBk b2JqOworCWNvbnN0IGNoYXIgKnJvbG5hbWU7CisJY2hhcgkgICAqY21rcmVhbG07Cit9IENt a0luZm87CisKIC8qCiAgKgljb21tb24gdXRpbGl0eSBmdW5jdGlvbnMKICAqLwpAQCAtNzEx LDYgKzc0MCw4IEBAIGV4dGVybiBBY2Nlc3NNZXRob2RJbmZvICpnZXRBY2Nlc3NNZXRob2Rz KEFyY2hpdmUgKmZvdXQsIGludCAqbnVtQWNjZXNzTWV0aG9kcyk7CiBleHRlcm4gT3BjbGFz c0luZm8gKmdldE9wY2xhc3NlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bU9wY2xhc3Nlcyk7 CiBleHRlcm4gT3BmYW1pbHlJbmZvICpnZXRPcGZhbWlsaWVzKEFyY2hpdmUgKmZvdXQsIGlu dCAqbnVtT3BmYW1pbGllcyk7CiBleHRlcm4gQ29sbEluZm8gKmdldENvbGxhdGlvbnMoQXJj aGl2ZSAqZm91dCwgaW50ICpudW1Db2xsYXRpb25zKTsKK2V4dGVybiB2b2lkIGdldENvbHVt bkVuY3J5cHRpb25LZXlzKEFyY2hpdmUgKmZvdXQpOworZXh0ZXJuIHZvaWQgZ2V0Q29sdW1u TWFzdGVyS2V5cyhBcmNoaXZlICpmb3V0KTsKIGV4dGVybiBDb252SW5mbyAqZ2V0Q29udmVy c2lvbnMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1Db252ZXJzaW9ucyk7CiBleHRlcm4gVGFi bGVJbmZvICpnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpOwogZXh0 ZXJuIHZvaWQgZ2V0T3duZWRTZXFzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZv W10sIGludCBudW1UYWJsZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IDVkZTMy NDFlYjQuLmU1NjJhNjc3ZWQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w X3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTY5LDYg KzY5LDggQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19UU1RFTVBMQVRF LAogCVBSSU9fVFNESUNULAogCVBSSU9fVFNDT05GSUcsCisJUFJJT19DTUssCisJUFJJT19D RUssCiAJUFJJT19GRFcsCiAJUFJJT19GT1JFSUdOX1NFUlZFUiwKIAlQUklPX1RBQkxFLApA QCAtMTExLDYgKzExMyw4IEBAIHN0YXRpYyBjb25zdCBpbnQgZGJPYmplY3RUeXBlUHJpb3Jp dHlbXSA9CiAJUFJJT19BQ0NFU1NfTUVUSE9ELAkJCS8qIERPX0FDQ0VTU19NRVRIT0QgKi8K IAlQUklPX09QRkFNSUxZLAkJCQkvKiBET19PUENMQVNTICovCiAJUFJJT19PUEZBTUlMWSwJ CQkJLyogRE9fT1BGQU1JTFkgKi8KKwlQUklPX0NFSywJCQkJCS8qIERPX0NFSyAqLworCVBS SU9fQ01LLAkJCQkJLyogRE9fQ01LICovCiAJUFJJT19DT0xMQVRJT04sCQkJCS8qIERPX0NP TExBVElPTiAqLwogCVBSSU9fQ09OVkVSU0lPTiwJCQkvKiBET19DT05WRVJTSU9OICovCiAJ UFJJT19UQUJMRSwJCQkJCS8qIERPX1RBQkxFICovCkBAIC0xMzIyLDYgKzEzMjYsMTYgQEAg ZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1wYWJsZU9iamVjdCAqb2JqLCBjaGFyICpidWYs IGludCBidWZzaXplKQogCQkJCQkgIk9QRVJBVE9SIEZBTUlMWSAlcyAgKElEICVkIE9JRCAl dSkiLAogCQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOwog CQkJcmV0dXJuOworCQljYXNlIERPX0NFSzoKKwkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwK KwkJCQkJICJDT0xVTU4gRU5DUllQVElPTiBLRVkgKElEICVkIE9JRCAldSkiLAorCQkJCQkg b2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKKwkJCXJldHVybjsKKwkJY2FzZSBET19D TUs6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiQ09MVU1OIE1BU1RFUiBL RVkgKElEICVkIE9JRCAldSkiLAorCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lk KTsKKwkJCXJldHVybjsKIAkJY2FzZSBET19DT0xMQVRJT046CiAJCQlzbnByaW50ZihidWYs IGJ1ZnNpemUsCiAJCQkJCSAiQ09MTEFUSU9OICVzICAoSUQgJWQgT0lEICV1KSIsCmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcGFsbC5jIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXBhbGwuYwppbmRleCA2OWFlMDI3YmQzLi4zZWU3NTI1ZTk2IDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcGFsbC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wYWxsLmMKQEAgLTkxLDYgKzkxLDcgQEAgc3RhdGljIGJvb2wgZG9zeW5jID0gdHJ1 ZTsKIAogc3RhdGljIGludAliaW5hcnlfdXBncmFkZSA9IDA7CiBzdGF0aWMgaW50CWNvbHVt bl9pbnNlcnRzID0gMDsKK3N0YXRpYyBpbnQJZGVjcnlwdF9lbmNyeXB0ZWRfY29sdW1ucyA9 IDA7CiBzdGF0aWMgaW50CWRpc2FibGVfZG9sbGFyX3F1b3RpbmcgPSAwOwogc3RhdGljIGlu dAlkaXNhYmxlX3RyaWdnZXJzID0gMDsKIHN0YXRpYyBpbnQJaWZfZXhpc3RzID0gMDsKQEAg LTE1Miw2ICsxNTMsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCXsiYXR0 cmlidXRlLWluc2VydHMiLCBub19hcmd1bWVudCwgJmNvbHVtbl9pbnNlcnRzLCAxfSwKIAkJ eyJiaW5hcnktdXBncmFkZSIsIG5vX2FyZ3VtZW50LCAmYmluYXJ5X3VwZ3JhZGUsIDF9LAog CQl7ImNvbHVtbi1pbnNlcnRzIiwgbm9fYXJndW1lbnQsICZjb2x1bW5faW5zZXJ0cywgMX0s CisJCXsiZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1ucyIsIG5vX2FyZ3VtZW50LCAmZGVjcnlw dF9lbmNyeXB0ZWRfY29sdW1ucywgMX0sCiAJCXsiZGlzYWJsZS1kb2xsYXItcXVvdGluZyIs IG5vX2FyZ3VtZW50LCAmZGlzYWJsZV9kb2xsYXJfcXVvdGluZywgMX0sCiAJCXsiZGlzYWJs ZS10cmlnZ2VycyIsIG5vX2FyZ3VtZW50LCAmZGlzYWJsZV90cmlnZ2VycywgMX0sCiAJCXsi ZXhjbHVkZS1kYXRhYmFzZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCA2fSwKQEAgLTQy Miw2ICs0MjQsOCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHBnZHVtcG9wdHMsICIgLS1iaW5hcnktdXBncmFkZSIpOwogCWlmIChj b2x1bW5faW5zZXJ0cykKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocGdkdW1wb3B0cywgIiAt LWNvbHVtbi1pbnNlcnRzIik7CisJaWYgKGRlY3J5cHRfZW5jcnlwdGVkX2NvbHVtbnMpCisJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBnZHVtcG9wdHMsICIgLS1kZWNyeXB0LWVuY3J5cHRl ZC1jb2x1bW5zIik7CiAJaWYgKGRpc2FibGVfZG9sbGFyX3F1b3RpbmcpCiAJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHBnZHVtcG9wdHMsICIgLS1kaXNhYmxlLWRvbGxhci1xdW90aW5nIik7 CiAJaWYgKGRpc2FibGVfdHJpZ2dlcnMpCkBAIC02NDcsNiArNjUxLDcgQEAgaGVscCh2b2lk KQogCXByaW50ZihfKCIgIC14LCAtLW5vLXByaXZpbGVnZXMgICAgICAgICAgZG8gbm90IGR1 bXAgcHJpdmlsZWdlcyAoZ3JhbnQvcmV2b2tlKVxuIikpOwogCXByaW50ZihfKCIgIC0tYmlu YXJ5LXVwZ3JhZGUgICAgICAgICAgICAgZm9yIHVzZSBieSB1cGdyYWRlIHV0aWxpdGllcyBv bmx5XG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1jb2x1bW4taW5zZXJ0cyAgICAgICAgICAgICBk dW1wIGRhdGEgYXMgSU5TRVJUIGNvbW1hbmRzIHdpdGggY29sdW1uIG5hbWVzXG4iKSk7CisJ cHJpbnRmKF8oIiAgLS1kZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zICBkZWNyeXB0IGVuY3J5 cHRlZCBjb2x1bW5zIGluIHRoZSBvdXRwdXRcbiIpKTsKIAlwcmludGYoXygiICAtLWRpc2Fi bGUtZG9sbGFyLXF1b3RpbmcgICAgIGRpc2FibGUgZG9sbGFyIHF1b3RpbmcsIHVzZSBTUUwg c3RhbmRhcmQgcXVvdGluZ1xuIikpOwogCXByaW50ZihfKCIgIC0tZGlzYWJsZS10cmlnZ2Vy cyAgICAgICAgICAgZGlzYWJsZSB0cmlnZ2VycyBkdXJpbmcgZGF0YS1vbmx5IHJlc3RvcmVc biIpKTsKIAlwcmludGYoXygiICAtLWV4Y2x1ZGUtZGF0YWJhc2U9UEFUVEVSTiAgIGV4Y2x1 ZGUgZGF0YWJhc2VzIHdob3NlIG5hbWUgbWF0Y2hlcyBQQVRURVJOXG4iKSk7CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDI4NzNiNjYyZmIuLmVjMDE5OTA3MjcgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC01OTMsNiArNTkzLDE4IEBACiAJCXVubGlr ZSAgICA9PiB7ICVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsIG5vX293bmVyID0+IDEsIH0sCiAJ fSwKIAorCSdBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBPV05FUiBUTycgPT4g eworCQlyZWdleHAgPT4gcXIvXkFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIE9X TkVSIFRPIC4rOy9tLAorCQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9k YXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7IG5vX293bmVyID0+IDEsIH0sCisJfSwKKwor CSdBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIE9XTkVSIFRPJyA9PiB7CisJCXJlZ2V4 cCA9PiBxci9eQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBPV05FUiBUTyAuKzsvbSwK KwkJbGlrZSAgID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAor CQl1bmxpa2UgPT4geyBub19vd25lciA9PiAxLCB9LAorCX0sCisKIAknQUxURVIgRk9SRUlH TiBEQVRBIFdSQVBQRVIgZHVtbXkgT1dORVIgVE8nID0+IHsKIAkJcmVnZXhwID0+IHFyL15B TFRFUiBGT1JFSUdOIERBVEEgV1JBUFBFUiBkdW1teSBPV05FUiBUTyAuKzsvbSwKIAkJbGlr ZSAgID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LApAQCAtMTE5 Myw2ICsxMjA1LDI0IEBACiAJCWxpa2UgICAgICA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25f cHJlX2RhdGEgPT4gMSwgfSwKIAl9LAogCisJJ0NPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIGNlazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDU1LAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEKKwkJCQkJICAg SVMgXCdjb21tZW50IG9uIGNvbHVtbiBlbmNyeXB0aW9uIGtleVwnOycsCisJCXJlZ2V4cCA9 PgorCQkgIHFyL15DT01NRU5UIE9OIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIElTICdj b21tZW50IG9uIGNvbHVtbiBlbmNyeXB0aW9uIGtleSc7L20sCisJCWxpa2UgPT4geyAlZnVs bF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCisJfSwKKworCSdDT01NRU5UIE9O IENPTFVNTiBNQVNURVIgS0VZIGNtazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDU1LAor CQljcmVhdGVfc3FsICAgPT4gJ0NPTU1FTlQgT04gQ09MVU1OIE1BU1RFUiBLRVkgY21rMQor CQkJCQkgICBJUyBcJ2NvbW1lbnQgb24gY29sdW1uIG1hc3RlciBrZXlcJzsnLAorCQlyZWdl eHAgPT4KKwkJICBxci9eQ09NTUVOVCBPTiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIElTICdj b21tZW50IG9uIGNvbHVtbiBtYXN0ZXIga2V5JzsvbSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1 bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwl9LAorCiAJJ0NPTU1FTlQgT04gTEFS R0UgT0JKRUNUIC4uLicgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjUsCiAJCWNyZWF0ZV9z cWwgICA9PiAnRE8gJCQKQEAgLTE2MTEsNiArMTY0MSwyNCBAQAogCQlsaWtlID0+IHsgJWZ1 bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAogCX0sCiAKKwknQ1JFQVRFIENP TFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MSwK KwkJY3JlYXRlX3NxbCAgID0+ICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEg V0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwgZW5jcnlwdGVkX3ZhbHVl ID0gJ1xceERFQURCRUVGJyk7IiwKKwkJcmVnZXhwICAgICAgID0+IHFyL14KKwkJCVxRQ1JF QVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFdJVEggVkFMVUVTIChjb2x1bW5fbWFz dGVyX2tleSA9IGNtazEsIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywgZW5jcnlw dGVkX3ZhbHVlID0gXEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rp b25fcHJlX2RhdGEgPT4gMSwgfSwKKwl9LAorCisJJ0NSRUFURSBDT0xVTU4gTUFTVEVSIEtF WSBjbWsxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MCwKKwkJY3JlYXRlX3NxbCAgID0+ ICJDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBXSVRIIChyZWFsbSA9ICdteXJlYWxt Jyk7IiwKKwkJcmVnZXhwICAgICAgID0+IHFyL14KKwkJCVxRQ1JFQVRFIENPTFVNTiBNQVNU RVIgS0VZIGNtazEgV0lUSCAocmVhbG0gPSAnbXlyZWFsbScpO1xFCisJCQkveG0sCisJCWxp a2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCisJfSwKKwog CSdDUkVBVEUgREFUQUJBU0UgcG9zdGdyZXMnID0+IHsKIAkJcmVnZXhwID0+IHFyL14KIAkJ CVxRQ1JFQVRFIERBVEFCQVNFIHBvc3RncmVzIFdJVEggVEVNUExBVEUgPSB0ZW1wbGF0ZTAg XEUKQEAgLTM5NzEsOCArNDAxOSwxMiBAQAogCQkJbmV4dDsKIAkJfQogCi0JCSMgQWRkIHRl cm1pbmF0aW5nIHNlbWljb2xvbgotCQkkY3JlYXRlX3NxbHskdGVzdF9kYn0gLj0gJHRlc3Rz eyR0ZXN0fS0+e2NyZWF0ZV9zcWx9IC4gIjsiOworCQkjIE5vcm1hbGl6ZSBjb21tYW5kIGVu ZGluZzogc3RyaXAgYWxsIGxpbmUgZW5kaW5ncywgYWRkCisJCSMgc2VtaWNvbG9uIGlmIG1p c3NpbmcsIGFkZCB0d28gbmV3bGluZXMuCisJCW15ICRjcmVhdGVfc3FsID0gJHRlc3RzeyR0 ZXN0fS0+e2NyZWF0ZV9zcWx9OworCQljaG9tcCAkY3JlYXRlX3NxbDsKKwkJJGNyZWF0ZV9z cWwgLj0gJzsnIHVubGVzcyBzdWJzdHIoJGNyZWF0ZV9zcWwsIC0xKSBlcSAnOyc7CisJCSRj cmVhdGVfc3FseyR0ZXN0X2RifSAuPSAkY3JlYXRlX3NxbCAuICJcblxuIjsKIAl9CiB9CiAK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29t bWFuZC5jCmluZGV4IGExNDExNDZlNzAuLjIzMDZmNGNhNjAgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcHNxbC9jb21tYW5kLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwpAQCAtOTgs NiArOTgsNyBAQCBzdGF0aWMgYmFja3NsYXNoUmVzdWx0IHByb2Nlc3NfY29tbWFuZF9nX29w dGlvbnMoY2hhciAqZmlyc3Rfb3B0aW9uLAogCQkJCQkJCQkJCQkJIGJvb2wgYWN0aXZlX2Jy YW5jaCwKIAkJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpjbWQpOwogc3RhdGljIGJhY2tzbGFz aFJlc3VsdCBleGVjX2NvbW1hbmRfZ2Rlc2MoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBi b29sIGFjdGl2ZV9icmFuY2gpOworc3RhdGljIGJhY2tzbGFzaFJlc3VsdCBleGVjX2NvbW1h bmRfZ2VuY3IoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gp Owogc3RhdGljIGJhY2tzbGFzaFJlc3VsdCBleGVjX2NvbW1hbmRfZ2V0ZW52KFBzcWxTY2Fu U3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLAogCQkJCQkJCQkJCSAgIGNv bnN0IGNoYXIgKmNtZCk7CiBzdGF0aWMgYmFja3NsYXNoUmVzdWx0IGV4ZWNfY29tbWFuZF9n ZXhlYyhQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCk7CkBA IC0zNTAsNiArMzUxLDggQEAgZXhlY19jb21tYW5kKGNvbnN0IGNoYXIgKmNtZCwKIAkJc3Rh dHVzID0gZXhlY19jb21tYW5kX2coc2Nhbl9zdGF0ZSwgYWN0aXZlX2JyYW5jaCwgY21kKTsK IAllbHNlIGlmIChzdHJjbXAoY21kLCAiZ2Rlc2MiKSA9PSAwKQogCQlzdGF0dXMgPSBleGVj X2NvbW1hbmRfZ2Rlc2Moc2Nhbl9zdGF0ZSwgYWN0aXZlX2JyYW5jaCk7CisJZWxzZSBpZiAo c3RyY21wKGNtZCwgImdlbmNyIikgPT0gMCkKKwkJc3RhdHVzID0gZXhlY19jb21tYW5kX2dl bmNyKHNjYW5fc3RhdGUsIGFjdGl2ZV9icmFuY2gpOwogCWVsc2UgaWYgKHN0cmNtcChjbWQs ICJnZXRlbnYiKSA9PSAwKQogCQlzdGF0dXMgPSBleGVjX2NvbW1hbmRfZ2V0ZW52KHNjYW5f c3RhdGUsIGFjdGl2ZV9icmFuY2gsIGNtZCk7CiAJZWxzZSBpZiAoc3RyY21wKGNtZCwgImdl eGVjIikgPT0gMCkKQEAgLTE0OTIsNiArMTQ5NSwzNCBAQCBleGVjX2NvbW1hbmRfZ2Rlc2Mo UHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gpCiAJcmV0dXJu IHN0YXR1czsKIH0KIAorLyoKKyAqIFxnZW5jciAtLSBzZW5kIHF1ZXJ5LCB3aXRoIHN1cHBv cnQgZm9yIHBhcmFtZXRlciBlbmNyeXB0aW9uCisgKi8KK3N0YXRpYyBiYWNrc2xhc2hSZXN1 bHQKK2V4ZWNfY29tbWFuZF9nZW5jcihQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wg YWN0aXZlX2JyYW5jaCkKK3sKKwliYWNrc2xhc2hSZXN1bHQgc3RhdHVzID0gUFNRTF9DTURf U0tJUF9MSU5FOworCWNoYXIJICAgKmFwOworCisJcHNldC5udW1fcGFyYW1zID0gMDsKKwlw c2V0LnBhcmFtcyA9IE5VTEw7CisJd2hpbGUgKChhcCA9IHBzcWxfc2Nhbl9zbGFzaF9vcHRp b24oc2Nhbl9zdGF0ZSwKKwkJCQkJCQkJCQlPVF9OT1JNQUwsIE5VTEwsIHRydWUpKSAhPSBO VUxMKQorCXsKKwkJcHNldC5udW1fcGFyYW1zKys7CisJCXBzZXQucGFyYW1zID0gcGdfcmVh bGxvYyhwc2V0LnBhcmFtcywgcHNldC5udW1fcGFyYW1zICogc2l6ZW9mKGNoYXIgKikpOwor CQlwc2V0LnBhcmFtc1twc2V0Lm51bV9wYXJhbXMgLSAxXSA9IGFwOworCX0KKworCWlmIChh Y3RpdmVfYnJhbmNoKQorCXsKKwkJcHNldC5nZW5jcl9mbGFnID0gdHJ1ZTsKKwkJc3RhdHVz ID0gUFNRTF9DTURfU0VORDsKKwl9CisKKwlyZXR1cm4gc3RhdHVzOworfQorCiAvKgogICog XGdldGVudiAtLSBzZXQgdmFyaWFibGUgZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZQogICov CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvY29tbW9uLmMgYi9zcmMvYmluL3BzcWwvY29t bW9uLmMKaW5kZXggZTYxMWUzMjY2ZC4uZDY4NDZhY2Y1ZiAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wc3FsL2NvbW1vbi5jCisrKyBiL3NyYy9iaW4vcHNxbC9jb21tb24uYwpAQCAtMTI4NSw2 ICsxMjg1LDE0IEBAIFNlbmRRdWVyeShjb25zdCBjaGFyICpxdWVyeSkKIAkvKiByZXNldCBc Z2Rlc2MgdHJpZ2dlciAqLwogCXBzZXQuZ2Rlc2NfZmxhZyA9IGZhbHNlOwogCisJLyogcmVz ZXQgXGdlbmNyIHRyaWdnZXIgKi8KKwlwc2V0LmdlbmNyX2ZsYWcgPSBmYWxzZTsKKwlmb3Ig KGludCBpID0gMDsgaSA8IHBzZXQubnVtX3BhcmFtczsgaSsrKQorCQlwZ19mcmVlKHBzZXQu cGFyYW1zW2ldKTsKKwlwZ19mcmVlKHBzZXQucGFyYW1zKTsKKwlwc2V0LnBhcmFtcyA9IE5V TEw7CisJcHNldC5udW1fcGFyYW1zID0gMDsKKwogCS8qIHJlc2V0IFxnZXhlYyB0cmlnZ2Vy ICovCiAJcHNldC5nZXhlY19mbGFnID0gZmFsc2U7CiAKQEAgLTE0NDksNyArMTQ1NywzNiBA QCBFeGVjUXVlcnlBbmRQcm9jZXNzUmVzdWx0cyhjb25zdCBjaGFyICpxdWVyeSwgZG91Ymxl ICplbGFwc2VkX21zZWMsIGJvb2wgKnN2cHRfZwogCWlmICh0aW1pbmcpCiAJCUlOU1RSX1RJ TUVfU0VUX0NVUlJFTlQoYmVmb3JlKTsKIAotCXN1Y2Nlc3MgPSBQUXNlbmRRdWVyeShwc2V0 LmRiLCBxdWVyeSk7CisJaWYgKHBzZXQuZ2VuY3JfZmxhZykKKwl7CisJCVBHcmVzdWx0ICAg KnJlczEsCisJCQkJICAgKnJlczI7CisKKwkJcmVzMSA9IFBRcHJlcGFyZShwc2V0LmRiLCAi IiwgcXVlcnksIHBzZXQubnVtX3BhcmFtcywgTlVMTCk7CisJCWlmIChQUXJlc3VsdFN0YXR1 cyhyZXMxKSAhPSBQR1JFU19DT01NQU5EX09LKQorCQl7CisJCQlwZ19sb2dfaW5mbygiJXMi LCBQUWVycm9yTWVzc2FnZShwc2V0LmRiKSk7CisJCQlDbGVhck9yU2F2ZVJlc3VsdChyZXMx KTsKKwkJCXJldHVybiAtMTsKKwkJfQorCQlQUWNsZWFyKHJlczEpOworCisJCXJlczIgPSBQ UWRlc2NyaWJlUHJlcGFyZWQocHNldC5kYiwgIiIpOworCQlpZiAoUFFyZXN1bHRTdGF0dXMo cmVzMikgIT0gUEdSRVNfQ09NTUFORF9PSykKKwkJeworCQkJcGdfbG9nX2luZm8oIiVzIiwg UFFlcnJvck1lc3NhZ2UocHNldC5kYikpOworCQkJQ2xlYXJPclNhdmVSZXN1bHQocmVzMik7 CisJCQlyZXR1cm4gLTE7CisJCX0KKworCQlzdWNjZXNzID0gUFFzZW5kUXVlcnlQcmVwYXJl ZDIocHNldC5kYiwgIiIsIHBzZXQubnVtX3BhcmFtcywgKGNvbnN0IGNoYXIgKmNvbnN0ICop IHBzZXQucGFyYW1zLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCByZXMyKTsKKworCQlQUWNsZWFy KHJlczIpOworCX0KKwllbHNlCisJeworCQlzdWNjZXNzID0gUFFzZW5kUXVlcnkocHNldC5k YiwgcXVlcnkpOworCX0KIAogCWlmICghc3VjY2VzcykKIAl7CmRpZmYgLS1naXQgYS9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGM2 NDVkNjY0MTguLjNmYmZlNWRjNjggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmli ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0xNTMyLDcgKzE1MzIsNyBA QCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCWJv b2wJCXByaW50VGFibGVJbml0aWFsaXplZCA9IGZhbHNlOwogCWludAkJCWk7CiAJY2hhcgkg ICAqdmlld19kZWYgPSBOVUxMOwotCWNoYXIJICAgKmhlYWRlcnNbMTJdOworCWNoYXIJICAg KmhlYWRlcnNbMTNdOwogCVBRRXhwQnVmZmVyRGF0YSB0aXRsZTsKIAlQUUV4cEJ1ZmZlckRh dGEgdG1wYnVmOwogCWludAkJCWNvbHM7CkBAIC0xNTQ4LDYgKzE1NDgsNyBAQCBkZXNjcmli ZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCWZkd29wdHNf Y29sID0gLTEsCiAJCQkJYXR0c3RvcmFnZV9jb2wgPSAtMSwKIAkJCQlhdHRjb21wcmVzc2lv bl9jb2wgPSAtMSwKKwkJCQlhdHRjZWtuYW1lX2NvbCA9IC0xLAogCQkJCWF0dHN0YXR0YXJn ZXRfY29sID0gLTEsCiAJCQkJYXR0ZGVzY3JfY29sID0gLTE7CiAJaW50CQkJbnVtcm93czsK QEAgLTE4NDYsNyArMTg0Nyw3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNo YXIgKnNjaGVtYW5hbWUsCiAJY29scyA9IDA7CiAJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1Ziwg IlNFTEVDVCBhLmF0dG5hbWUiKTsKIAlhdHRuYW1lX2NvbCA9IGNvbHMrKzsKLQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKGEuYXR0 dHlwaWQsIGEuYXR0dHlwbW9kKSIpOworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIs XG4gIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUoQ0FTRSBXSEVOIGEuYXR0cmVhbHR5cGlkIDw+ IDAgVEhFTiBhLmF0dHJlYWx0eXBpZCBFTFNFIGEuYXR0dHlwaWQgRU5ELCBhLmF0dHR5cG1v ZCkiKTsKIAlhdHR0eXBlX2NvbCA9IGNvbHMrKzsKIAogCWlmIChzaG93X2NvbHVtbl9kZXRh aWxzKQpAQCAtMTg2MCw3ICsxODYxLDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29u c3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJYXR0cmRlZl9jb2wgPSBjb2xzKys7CiAJCWF0dG5v dG51bGxfY29sID0gY29scysrOwogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxu ICAoU0VMRUNUIGMuY29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBw Z19jYXRhbG9nLnBnX3R5cGUgdFxuIgotCQkJCQkJCSAiICAgV0hFUkUgYy5vaWQgPSBhLmF0 dGNvbGxhdGlvbiBBTkQgdC5vaWQgPSBhLmF0dHR5cGlkIEFORCBhLmF0dGNvbGxhdGlvbiA8 PiB0LnR5cGNvbGxhdGlvbikgQVMgYXR0Y29sbGF0aW9uIik7CisJCQkJCQkJICIgICBXSEVS RSBjLm9pZCA9IGEuYXR0Y29sbGF0aW9uIEFORCB0Lm9pZCA9IChDQVNFIFdIRU4gYS5hdHRy ZWFsdHlwaWQgPD4gMCBUSEVOIGEuYXR0cmVhbHR5cGlkIEVMU0UgYS5hdHR0eXBpZCBFTkQp IEFORCBhLmF0dGNvbGxhdGlvbiA8PiB0LnR5cGNvbGxhdGlvbikgQVMgYXR0Y29sbGF0aW9u Iik7CiAJCWF0dGNvbGxfY29sID0gY29scysrOwogCQlpZiAocHNldC5zdmVyc2lvbiA+PSAx MDAwMDApCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBhLmF0dGlkZW50 aXR5Iik7CkBAIC0xOTExLDYgKzE5MTIsMTUgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMo Y29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCWF0dGNvbXByZXNzaW9uX2NvbCA9IGNvbHMr KzsKIAkJfQogCisJCS8qIGVuY3J5cHRpb24gaW5mbyAqLworCQlpZiAocHNldC5zdmVyc2lv biA+PSAxNjAwMDAgJiYKKwkJCSFwc2V0LmhpZGVfY29sdW1uX2VuY3J5cHRpb24gJiYKKwkJ CSh0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OKSkKKwkJeworCQkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgKFNFTEVDVCBjZWtuYW1lIEZST00gcGdf Y29sZW5ja2V5IGNlayBXSEVSRSBjZWsub2lkID0gYS5hdHRjZWspIEFTIGF0dGNla25hbWUi KTsKKwkJCWF0dGNla25hbWVfY29sID0gY29scysrOworCQl9CisKIAkJLyogc3RhdHMgdGFy Z2V0LCBpZiByZWxldmFudCB0byByZWxraW5kICovCiAJCWlmICh0YWJsZWluZm8ucmVsa2lu ZCA9PSBSRUxLSU5EX1JFTEFUSU9OIHx8CiAJCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxL SU5EX0lOREVYIHx8CkBAIC0yMDM0LDYgKzIwNDQsOCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0 YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0 ZXh0X25vb3AoIlN0b3JhZ2UiKTsKIAlpZiAoYXR0Y29tcHJlc3Npb25fY29sID49IDApCiAJ CWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiQ29tcHJlc3Npb24iKTsKKwlpZiAo YXR0Y2VrbmFtZV9jb2wgPj0gMCkKKwkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29w KCJFbmNyeXB0aW9uIik7CiAJaWYgKGF0dHN0YXR0YXJnZXRfY29sID49IDApCiAJCWhlYWRl cnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiU3RhdHMgdGFyZ2V0Iik7CiAJaWYgKGF0dGRl c2NyX2NvbCA+PSAwKQpAQCAtMjEyNiw2ICsyMTM4LDE3IEBAIGRlc2NyaWJlT25lVGFibGVE ZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJICBmYWxzZSwgZmFsc2Up OwogCQl9CiAKKwkJLyogQ29sdW1uIGVuY3J5cHRpb24gKi8KKwkJaWYgKGF0dGNla25hbWVf Y29sID49IDApCisJCXsKKwkJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBhdHRjZWtuYW1l X2NvbCkpCisJCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBp LCBhdHRjZWtuYW1lX2NvbCksCisJCQkJCQkJCSAgZmFsc2UsIGZhbHNlKTsKKwkJCWVsc2UK KwkJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgIiIsCisJCQkJCQkJCSAgZmFsc2UsIGZh bHNlKTsKKwkJfQorCiAJCS8qIFN0YXRpc3RpY3MgdGFyZ2V0LCBpZiB0aGUgcmVsa2luZCBz dXBwb3J0cyB0aGlzIGZlYXR1cmUgKi8KIAkJaWYgKGF0dHN0YXR0YXJnZXRfY29sID49IDAp CiAJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGF0dHN0 YXR0YXJnZXRfY29sKSwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9oZWxwLmMgYi9zcmMv YmluL3BzcWwvaGVscC5jCmluZGV4IGY4Y2UxYTA3MDYuLjlmNGZjZTI2ZmQgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAt MTk1LDYgKzE5NSw3IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQog CUhFTFAwKCIgIFxcZyBbKE9QVElPTlMpXSBbRklMRV0gIGV4ZWN1dGUgcXVlcnkgKGFuZCBz ZW5kIHJlc3VsdCB0byBmaWxlIG9yIHxwaXBlKTtcbiIKIAkJICAiICAgICAgICAgICAgICAg ICAgICAgICAgIFxcZyB3aXRoIG5vIGFyZ3VtZW50cyBpcyBlcXVpdmFsZW50IHRvIGEgc2Vt aWNvbG9uXG4iKTsKIAlIRUxQMCgiICBcXGdkZXNjICAgICAgICAgICAgICAgICBkZXNjcmli ZSByZXN1bHQgb2YgcXVlcnksIHdpdGhvdXQgZXhlY3V0aW5nIGl0XG4iKTsKKwlIRUxQMCgi ICBcXGdlbmNyIFtQQVJBTV0uLi4gICAgICBleGVjdXRlIHF1ZXJ5LCB3aXRoIHN1cHBvcnQg Zm9yIHBhcmFtZXRlciBlbmNyeXB0aW9uXG4iKTsKIAlIRUxQMCgiICBcXGdleGVjICAgICAg ICAgICAgICAgICBleGVjdXRlIHF1ZXJ5LCB0aGVuIGV4ZWN1dGUgZWFjaCB2YWx1ZSBpbiBp dHMgcmVzdWx0XG4iKTsKIAlIRUxQMCgiICBcXGdzZXQgW1BSRUZJWF0gICAgICAgICBleGVj dXRlIHF1ZXJ5IGFuZCBzdG9yZSByZXN1bHQgaW4gcHNxbCB2YXJpYWJsZXNcbiIpOwogCUhF TFAwKCIgIFxcZ3ggWyhPUFRJT05TKV0gW0ZJTEVdIGFzIFxcZywgYnV0IGZvcmNlcyBleHBh bmRlZCBvdXRwdXQgbW9kZVxuIik7CkBAIC00MTIsNiArNDEzLDggQEAgaGVscFZhcmlhYmxl cyh1bnNpZ25lZCBzaG9ydCBpbnQgcGFnZXIpCiAJCSAgIiAgICB0cnVlIGlmIGxhc3QgcXVl cnkgZmFpbGVkLCBlbHNlIGZhbHNlXG4iKTsKIAlIRUxQMCgiICBGRVRDSF9DT1VOVFxuIgog CQkgICIgICAgdGhlIG51bWJlciBvZiByZXN1bHQgcm93cyB0byBmZXRjaCBhbmQgZGlzcGxh eSBhdCBhIHRpbWUgKDAgPSB1bmxpbWl0ZWQpXG4iKTsKKwlIRUxQMCgiICBISURFX0NPTFVN Tl9FTkNSWVBUSU9OXG4iCisJCSAgIiAgICBpZiBzZXQsIGNvbHVtbiBlbmNyeXB0aW9uIGRl dGFpbHMgYXJlIG5vdCBkaXNwbGF5ZWRcbiIpOwogCUhFTFAwKCIgIEhJREVfVEFCTEVBTVxu IgogCQkgICIgICAgaWYgc2V0LCB0YWJsZSBhY2Nlc3MgbWV0aG9kcyBhcmUgbm90IGRpc3Bs YXllZFxuIik7CiAJSEVMUDAoIiAgSElERV9UT0FTVF9DT01QUkVTU0lPTlxuIgpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wc3FsL3NldHRpbmdzLmggYi9zcmMvYmluL3BzcWwvc2V0dGluZ3Mu aAppbmRleCAyMzk5Y2ZmYTNmLi42MzY3MjlkZjFkIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bz cWwvc2V0dGluZ3MuaAorKysgYi9zcmMvYmluL3BzcWwvc2V0dGluZ3MuaApAQCAtOTUsNiAr OTUsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX3BzcWxTZXR0aW5ncwogCiAJY2hhcgkgICAqZ3Nl dF9wcmVmaXg7CS8qIG9uZS1zaG90IHByZWZpeCBhcmd1bWVudCBmb3IgXGdzZXQgKi8KIAli b29sCQlnZGVzY19mbGFnOwkJLyogb25lLXNob3QgcmVxdWVzdCB0byBkZXNjcmliZSBxdWVy eSByZXN1bHQgKi8KKwlib29sCQlnZW5jcl9mbGFnOwkJLyogb25lLXNob3QgcmVxdWVzdCB0 byBzZW5kIHF1ZXJ5IHdpdGggc3VwcG9ydAorCQkJCQkJCQkgKiBmb3IgcGFyYW1ldGVyIGVu Y3J5cHRpb24gKi8KKwlpbnQJCQludW1fcGFyYW1zOwkJLyogbnVtYmVyIG9mIHF1ZXJ5IHBh cmFtZXRlcnMgKi8KKwljaGFyCSAgKipwYXJhbXM7CQkJLyogcXVlcnkgcGFyYW1ldGVycyAq LwogCWJvb2wJCWdleGVjX2ZsYWc7CQkvKiBvbmUtc2hvdCByZXF1ZXN0IHRvIGV4ZWN1dGUg cXVlcnkgcmVzdWx0ICovCiAJYm9vbAkJY3Jvc3N0YWJfZmxhZzsJLyogb25lLXNob3QgcmVx dWVzdCB0byBjcm9zc3RhYiByZXN1bHQgKi8KIAljaGFyCSAgICpjdHZfYXJnc1s0XTsJLyog XGNyb3NzdGFidmlldyBhcmd1bWVudHMgKi8KQEAgLTEzNCw2ICsxMzgsNyBAQCB0eXBlZGVm IHN0cnVjdCBfcHNxbFNldHRpbmdzCiAJYm9vbAkJcXVpZXQ7CiAJYm9vbAkJc2luZ2xlbGlu ZTsKIAlib29sCQlzaW5nbGVzdGVwOworCWJvb2wJCWhpZGVfY29sdW1uX2VuY3J5cHRpb247 CiAJYm9vbAkJaGlkZV9jb21wcmVzc2lvbjsKIAlib29sCQloaWRlX3RhYmxlYW07CiAJaW50 CQkJZmV0Y2hfY291bnQ7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvc3RhcnR1cC5jIGIv c3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYwppbmRleCBmNWI5ZTI2OGYyLi4wYjgxMmYzMzIyIDEw MDY0NAotLS0gYS9zcmMvYmluL3BzcWwvc3RhcnR1cC5jCisrKyBiL3NyYy9iaW4vcHNxbC9z dGFydHVwLmMKQEAgLTExODgsNiArMTE4OCwxMyBAQCBoaWRlX2NvbXByZXNzaW9uX2hvb2so Y29uc3QgY2hhciAqbmV3dmFsKQogCQkJCQkJCSAmcHNldC5oaWRlX2NvbXByZXNzaW9uKTsK IH0KIAorc3RhdGljIGJvb2wKK2hpZGVfY29sdW1uX2VuY3J5cHRpb25faG9vayhjb25zdCBj aGFyICpuZXd2YWwpCit7CisJcmV0dXJuIFBhcnNlVmFyaWFibGVCb29sKG5ld3ZhbCwgIkhJ REVfQ09MVU1OX0VOQ1JZUFRJT04iLAorCQkJCQkJCSAmcHNldC5oaWRlX2NvbHVtbl9lbmNy eXB0aW9uKTsKK30KKwogc3RhdGljIGJvb2wKIGhpZGVfdGFibGVhbV9ob29rKGNvbnN0IGNo YXIgKm5ld3ZhbCkKIHsKQEAgLTEyNTksNiArMTI2Niw5IEBAIEVzdGFibGlzaFZhcmlhYmxl U3BhY2Uodm9pZCkKIAlTZXRWYXJpYWJsZUhvb2tzKHBzZXQudmFycywgIlNIT1dfQ09OVEVY VCIsCiAJCQkJCSBzaG93X2NvbnRleHRfc3Vic3RpdHV0ZV9ob29rLAogCQkJCQkgc2hvd19j b250ZXh0X2hvb2spOworCVNldFZhcmlhYmxlSG9va3MocHNldC52YXJzLCAiSElERV9DT0xV TU5fRU5DUllQVElPTiIsCisJCQkJCSBib29sX3N1YnN0aXR1dGVfaG9vaywKKwkJCQkJIGhp ZGVfY29sdW1uX2VuY3J5cHRpb25faG9vayk7CiAJU2V0VmFyaWFibGVIb29rcyhwc2V0LnZh cnMsICJISURFX1RPQVNUX0NPTVBSRVNTSU9OIiwKIAkJCQkJIGJvb2xfc3Vic3RpdHV0ZV9o b29rLAogCQkJCQkgaGlkZV9jb21wcmVzc2lvbl9ob29rKTsKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpp bmRleCBmMzQ2NWFkYjg1Li4xZDJmODBjNTcyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0x MTY5LDYgKzExNjksMTYgQEAgc3RhdGljIGNvbnN0IFZlcnNpb25lZFF1ZXJ5IFF1ZXJ5X2Zv cl9saXN0X29mX3N1YnNjcmlwdGlvbnNbXSA9IHsKIAl7MCwgTlVMTH0KIH07CiAKK3N0YXRp YyBjb25zdCBWZXJzaW9uZWRRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl9jZWtzW10gPSB7CisJ ezE2MDAwMCwgIlNFTEVDVCBjZWtuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xlbmNrZXkg V0hFUkUgY2VrbmFtZSBMSUtFICclcycifSwKKwl7MCwgTlVMTH0KK307CisKK3N0YXRpYyBj b25zdCBWZXJzaW9uZWRRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl9jbWtzW10gPSB7CisJezE2 MDAwMCwgIlNFTEVDVCBjbWtuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xtYXN0ZXJrZXkg V0hFUkUgY21rbmFtZSBMSUtFICclcycifSwKKwl7MCwgTlVMTH0KK307CisKIC8qCiAgKiBU aGlzIGlzIGEgbGlzdCBvZiBhbGwgInRoaW5ncyIgaW4gUGdzcWwsIHdoaWNoIGNhbiBzaG93 IHVwIGFmdGVyIENSRUFURSBvcgogICogRFJPUDsgYW5kIHRoZXJlIGlzIGFsc28gYSBxdWVy eSB0byBnZXQgYSBsaXN0IG9mIHRoZW0uCkBAIC0xMjAyLDYgKzEyMTIsOCBAQCBzdGF0aWMg Y29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAl7IkNBU1Qi LCBOVUxMLCBOVUxMLCBOVUxMfSwgLyogQ2FzdHMgaGF2ZSBjb21wbGV4IHN0cnVjdHVyZXMg Zm9yIG5hbWVzLCBzbwogCQkJCQkJCQkgKiBza2lwIGl0ICovCiAJeyJDT0xMQVRJT04iLCBO VUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfY29sbGF0aW9uc30sCisJeyJDT0xVTU4g RU5DUllQVElPTiBLRVkiLCBOVUxMLCBOVUxMLCBOVUxMfSwKKwl7IkNPTFVNTiBNQVNURVIg S0VZIEtFWSIsIE5VTEwsIE5VTEwsIE5VTEx9LAogCiAJLyoKIAkgKiBDUkVBVEUgQ09OU1RS QUlOVCBUUklHR0VSIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSBiZWNhdXNlIGl0IGlzIGRlc2ln bmVkCkBAIC0xNjkyLDcgKzE3MDQsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAq dGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkiXFxlY2hvIiwgIlxcZWRpdCIsICJcXGVm IiwgIlxcZWxpZiIsICJcXGVsc2UiLCAiXFxlbmNvZGluZyIsCiAJCSJcXGVuZGlmIiwgIlxc ZXJydmVyYm9zZSIsICJcXGV2IiwKIAkJIlxcZiIsCi0JCSJcXGciLCAiXFxnZGVzYyIsICJc XGdldGVudiIsICJcXGdleGVjIiwgIlxcZ3NldCIsICJcXGd4IiwKKwkJIlxcZyIsICJcXGdk ZXNjIiwgIlxcZ2VuY3IiLCAiXFxnZXRlbnYiLCAiXFxnZXhlYyIsICJcXGdzZXQiLCAiXFxn eCIsCiAJCSJcXGhlbHAiLCAiXFxodG1sIiwKIAkJIlxcaWYiLCAiXFxpbmNsdWRlIiwgIlxc aW5jbHVkZV9yZWxhdGl2ZSIsICJcXGlyIiwKIAkJIlxcbGlzdCIsICJcXGxvX2ltcG9ydCIs ICJcXGxvX2V4cG9ydCIsICJcXGxvX2xpc3QiLCAiXFxsb191bmxpbmsiLApAQCAtMTkwMCw2 ICsxOTEyLDIyIEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3Rh cnQsIGludCBlbmQpCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiQ09MTEFUSU9OIiwg TWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIsICJSRUZSRVNIIFZFUlNJ T04iLCAiUkVOQU1FIFRPIiwgIlNFVCBTQ0hFTUEiKTsKIAorCS8qIEFMVEVSL0RST1AgQ09M VU1OIEVOQ1JZUFRJT04gS0VZICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVJ8RFJPUCIs ICJDT0xVTU4iLCAiRU5DUllQVElPTiIsICJLRVkiKSkKKwkJQ09NUExFVEVfV0lUSF9WRVJT SU9ORURfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfY2Vrcyk7CisKKwkvKiBBTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJDT0xV TU4iLCAiRU5DUllQVElPTiIsICJLRVkiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgo IkFERCBWQUxVRSAoIiwgIkRST1AgVkFMVUUgKCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8i KTsKKworCS8qIEFMVEVSL0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgKi8KKwllbHNlIGlmIChN YXRjaGVzKCJBTFRFUnxEUk9QIiwgIkNPTFVNTiIsICJNQVNURVIiLCAiS0VZIikpCisJCUNP TVBMRVRFX1dJVEhfVkVSU0lPTkVEX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2Nta3MpOwor CisJLyogQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJB TFRFUiIsICJDT0xVTU4iLCAiTUFTVEVSIiwgIktFWSIsIE1hdGNoQW55KSkKKwkJQ09NUExF VEVfV0lUSCgiT1dORVIgVE8iLCAiUkVOQU1FIFRPIik7CisKIAkvKiBBTFRFUiBDT05WRVJT SU9OIDxuYW1lPiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIkNPTlZFUlNJT04i LCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIs ICJTRVQgU0NIRU1BIik7CkBAIC0yNzk0LDYgKzI4MjIsMjYgQEAgcHNxbF9jb21wbGV0aW9u KGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJCUNPTVBMRVRFX1dJ VEgoInRydWUiLCAiZmFsc2UiKTsKIAl9CiAKKwkvKiBDUkVBVEUvQUxURVIvRFJPUCBDT0xV TU4gLi4uIEtFWSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURXxBTFRFUnxEUk9QIiwg IkNPTFVNTiIpKQorCQlDT01QTEVURV9XSVRIKCJFTkNSWVBUSU9OIiwgIk1BU1RFUiIpOwor CWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURXxBTFRFUnxEUk9QIiwgIkNPTFVNTiIsICJFTkNS WVBUSU9OfE1BU1RFUiIpKQorCQlDT01QTEVURV9XSVRIKCJLRVkiKTsKKworCS8qIENSRUFU RSBDT0xVTU4gRU5DUllQVElPTiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUi LCAiQ09MVU1OIiwgIkVOQ1JZUFRJT04iLCAiS0VZIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVU RV9XSVRIKCJXSVRIIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkNPTFVNTiIs ICJFTkNSWVBUSU9OIiwgIktFWSIsIE1hdGNoQW55LCAiV0lUSCIpKQorCQlDT01QTEVURV9X SVRIKCJWQUxVRVMiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MVU1OIiwg IkVOQ1JZUFRJT04iLCAiS0VZIiwgTWF0Y2hBbnksICJXSVRIIiwgIlZBTFVFUyIpKQorCQlD T01QTEVURV9XSVRIKCIoIik7CisKKwkvKiBDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgKi8K KwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MVU1OIiwgIk1BU1RFUiIsICJLRVki LCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIldJVEgiKTsKKwllbHNlIGlmIChNYXRj aGVzKCJDUkVBVEUiLCAiQ09MVU1OIiwgIk1BU1RFUiIsICJLRVkiLCBNYXRjaEFueSwgIldJ VEgiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCIpOworCiAJLyogQ1JFQVRFIERBVEFCQVNFICov CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkRBVEFCQVNFIiwgTWF0Y2hBbnkpKQog CQlDT01QTEVURV9XSVRIKCJPV05FUiIsICJURU1QTEFURSIsICJFTkNPRElORyIsICJUQUJM RVNQQUNFIiwKQEAgLTM1MTgsNiArMzU2Niw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBj aGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCQkgTWF0Y2hlcygiRFJPUCIsICJB Q0NFU1MiLCAiTUVUSE9EIiwgTWF0Y2hBbnkpIHx8CiAJCQkgKE1hdGNoZXMoIkRST1AiLCAi QUdHUkVHQVRFfEZVTkNUSU9OfFBST0NFRFVSRXxST1VUSU5FIiwgTWF0Y2hBbnksIE1hdGNo QW55KSAmJgogCQkJICBlbmRzX3dpdGgocHJldl93ZCwgJyknKSkgfHwKKwkJCSBNYXRjaGVz KCJEUk9QIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OfE1BU1RFUiIsICJLRVkiLCBNYXRjaEFu eSkgfHwKIAkJCSBNYXRjaGVzKCJEUk9QIiwgIkVWRU5UIiwgIlRSSUdHRVIiLCBNYXRjaEFu eSkgfHwKIAkJCSBNYXRjaGVzKCJEUk9QIiwgIkZPUkVJR04iLCAiREFUQSIsICJXUkFQUEVS IiwgTWF0Y2hBbnkpIHx8CiAJCQkgTWF0Y2hlcygiRFJPUCIsICJGT1JFSUdOIiwgIlRBQkxF IiwgTWF0Y2hBbnkpIHx8CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0 dXAuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9wcmludHR1cC5oCmluZGV4IDk3MWE3NGNmMjIu LmRiMWYzYjg4MTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9wcmludHR1cC5o CisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9wcmludHR1cC5oCkBAIC0yMCw2ICsyMCw4IEBA IGV4dGVybiBEZXN0UmVjZWl2ZXIgKnByaW50dHVwX2NyZWF0ZV9EUihDb21tYW5kRGVzdCBk ZXN0KTsKIAogZXh0ZXJuIHZvaWQgU2V0UmVtb3RlRGVzdFJlY2VpdmVyUGFyYW1zKERlc3RS ZWNlaXZlciAqc2VsZiwgUG9ydGFsIHBvcnRhbCk7CiAKK2V4dGVybiB2b2lkIE1heWJlU2Vu ZENvbHVtbkVuY3J5cHRpb25LZXlNZXNzYWdlKE9pZCBhdHRjZWspOworCiBleHRlcm4gdm9p ZCBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0luZm8gYnVmLAogCQkJCQkJCQkJ ICBUdXBsZURlc2MgdHlwZWluZm8sIExpc3QgKnRhcmdldGxpc3QsIGludDE2ICpmb3JtYXRz KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9kZXBlbmRlbmN5LmggYi9z cmMvaW5jbHVkZS9jYXRhbG9nL2RlcGVuZGVuY3kuaAppbmRleCA3MjljNGM0NmMwLi5lMjM3 MTU1OTcxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2RlcGVuZGVuY3kuaAor KysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2RlcGVuZGVuY3kuaApAQCAtOTIsNiArOTIsOSBA QCB0eXBlZGVmIGVudW0gT2JqZWN0Q2xhc3MKIAlPQ0xBU1NfVFlQRSwJCQkJLyogcGdfdHlw ZSAqLwogCU9DTEFTU19DQVNULAkJCQkvKiBwZ19jYXN0ICovCiAJT0NMQVNTX0NPTExBVElP TiwJCQkvKiBwZ19jb2xsYXRpb24gKi8KKwlPQ0xBU1NfQ0VLLAkJCQkJLyogcGdfY29sZW5j a2V5ICovCisJT0NMQVNTX0NFS0RBVEEsCQkJCS8qIHBnX2NvbGVuY2tleWRhdGEgKi8KKwlP Q0xBU1NfQ01LLAkJCQkJLyogcGdfY29sbWFzdGVya2V5ICovCiAJT0NMQVNTX0NPTlNUUkFJ TlQsCQkJLyogcGdfY29uc3RyYWludCAqLwogCU9DTEFTU19DT05WRVJTSU9OLAkJCS8qIHBn X2NvbnZlcnNpb24gKi8KIAlPQ0xBU1NfREVGQVVMVCwJCQkJLyogcGdfYXR0cmRlZiAqLwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQKaW5kZXggNjFjZDU5MTQzMC4uYTBiZDcwODEzMiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2Ftb3AuZGF0CkBAIC0xMDI4LDYgKzEwMjgsMTEgQEAKICAg YW1vcHJpZ2h0dHlwZSA9PiAnYnl0ZWEnLCBhbW9wc3RyYXRlZ3kgPT4gJzEnLCBhbW9wb3By ID0+ICc9KGJ5dGVhLGJ5dGVhKScsCiAgIGFtb3BtZXRob2QgPT4gJ2hhc2gnIH0sCiAKKyMg cGdfZW5jcnlwdGVkX2RldF9vcHMKK3sgYW1vcGZhbWlseSA9PiAnaGFzaC9wZ19lbmNyeXB0 ZWRfZGV0X29wcycsIGFtb3BsZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIGFt b3ByaWdodHR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBhbW9wc3RyYXRlZ3kgPT4gJzEn LCBhbW9wb3ByID0+ICc9KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLAor ICBhbW9wbWV0aG9kID0+ICdoYXNoJyB9LAorCiAjIHhpZF9vcHMKIHsgYW1vcGZhbWlseSA9 PiAnaGFzaC94aWRfb3BzJywgYW1vcGxlZnR0eXBlID0+ICd4aWQnLCBhbW9wcmlnaHR0eXBl ID0+ICd4aWQnLAogICBhbW9wc3RyYXRlZ3kgPT4gJzEnLCBhbW9wb3ByID0+ICc9KHhpZCx4 aWQpJywgYW1vcG1ldGhvZCA9PiAnaGFzaCcgfSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfYW1wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9j LmRhdAppbmRleCA0Y2MxMjliZWJkLi5kZGRiMjcxMTNmIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19hbXByb2MuZGF0CkBAIC00MDIsNiArNDAyLDExIEBACiB7IGFtcHJvY2ZhbWlseSA9PiAn aGFzaC9ieXRlYV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYnl0ZWEnLAogICBhbXByb2Ny aWdodHR5cGUgPT4gJ2J5dGVhJywgYW1wcm9jbnVtID0+ICcyJywKICAgYW1wcm9jID0+ICdo YXNodmFybGVuYWV4dGVuZGVkJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvcGdfZW5j cnlwdGVkX2RldF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcs CisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIGFtcHJvY251bSA9 PiAnMScsIGFtcHJvYyA9PiAnaGFzaHZhcmxlbmEnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAn aGFzaC9wZ19lbmNyeXB0ZWRfZGV0X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdwZ19lbmNy eXB0ZWRfZGV0JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0Jywg YW1wcm9jbnVtID0+ICcyJywKKyAgYW1wcm9jID0+ICdoYXNodmFybGVuYWV4dGVuZGVkJyB9 LAogeyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gveGlkX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICd4aWQnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3hpZCcsIGFtcHJvY251bSA9PiAnMScs IGFtcHJvYyA9PiAnaGFzaGludDQnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnaGFzaC94aWRf b3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3hpZCcsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRy aWJ1dGUuaAppbmRleCAwNTMyOTRjOTlmLi41NTBhNTM2NDliIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfYXR0cmlidXRlLmgKQEAgLTE2NCw2ICsxNjQsMTUgQEAgQ0FUQUxPRyhwZ19hdHRy aWJ1dGUsMTI0OSxBdHRyaWJ1dGVSZWxhdGlvbklkKSBCS0lfQk9PVFNUUkFQIEJLSV9ST1dU WVBFX09JRCg3NSwKIAkgKi8KIAlib29sCQlhdHRpc2xvY2FsIEJLSV9ERUZBVUxUKHQpOwog CisJLyogY29sdW1uIGVuY3J5cHRpb24ga2V5ICovCisJT2lkCQkJYXR0Y2VrIEJLSV9ERUZB VUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX2NvbGVuY2tleSk7CisKKwkvKiByZWFsIHR5cGUg aWYgZW5jcnlwdGVkICovCisJT2lkCQkJYXR0cmVhbHR5cGlkIEJLSV9ERUZBVUxUKDApIEJL SV9MT09LVVBfT1BUKHBnX3R5cGUpOworCisJLyogZW5jcnlwdGlvbiBhbGdvcml0aG0gKFBH X0NFS18qIHZhbHVlcykgKi8KKwlpbnQxNgkJYXR0ZW5jYWxnIEJLSV9ERUZBVUxUKDApOwor CiAJLyogTnVtYmVyIG9mIHRpbWVzIGluaGVyaXRlZCBmcm9tIGRpcmVjdCBwYXJlbnQgcmVs YXRpb24ocykgKi8KIAlpbnQzMgkJYXR0aW5oY291bnQgQktJX0RFRkFVTFQoMCk7CiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2Nhc3QuZGF0CmluZGV4IDQ0NzFlYjZiYmUuLjg3OGIwYmNiYmYgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdApAQCAtNTQ2LDQgKzU0NiwxMCBAQAogeyBjYXN0 c291cmNlID0+ICd0c3R6cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICd0c3R6bXVsdGlyYW5nZScs CiAgIGNhc3RmdW5jID0+ICd0c3R6bXVsdGlyYW5nZSh0c3R6cmFuZ2UpJywgY2FzdGNvbnRl eHQgPT4gJ2UnLAogICBjYXN0bWV0aG9kID0+ICdmJyB9LAorCit7IGNhc3Rzb3VyY2UgPT4g J2J5dGVhJywgY2FzdHRhcmdldCA9PiAncGdfZW5jcnlwdGVkX2RldCcsIGNhc3RmdW5jID0+ ICcwJywKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAoreyBj YXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ3BnX2VuY3J5cHRlZF9ybmQn LCBjYXN0ZnVuYyA9PiAnMCcsCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnYicgfSwKKwogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xl bmNrZXkuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMDk1ZWQ3MTJiMAotLS0gL2Rldi9udWxs CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmgKQEAgLTAsMCArMSw1 NSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfY29sZW5ja2V5LmgKKyAq CSAgZGVmaW5pdGlvbiBvZiB0aGUgImNvbHVtbiBlbmNyeXB0aW9uIGtleSIgc3lzdGVtIGNh dGFsb2cKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgor ICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmtleS5oCisgKgorICogTk9URVMKKyAq CSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBz Y2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKyNpZm5kZWYgUEdfQ09MRU5DS0VZX0gKKyNkZWZpbmUgUEdfQ09MRU5DS0VZX0gKKwor I2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xl bmNrZXlfZC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfY29sZW5ja2V5IGRl ZmluaXRpb24uIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3Jt RGF0YV9wZ19jb2xlbmNrZXkKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhw Z19jb2xlbmNrZXksODIzNCxDb2x1bW5FbmNLZXlSZWxhdGlvbklkKQoreworCU9pZAkJCW9p ZDsKKwlOYW1lRGF0YQljZWtuYW1lOworCU9pZAkJCWNla293bmVyIEJLSV9MT09LVVAocGdf YXV0aGlkKTsKK30gRm9ybURhdGFfcGdfY29sZW5ja2V5OworCit0eXBlZGVmIEZvcm1EYXRh X3BnX2NvbGVuY2tleSAqRm9ybV9wZ19jb2xlbmNrZXk7CisKK0RFQ0xBUkVfVU5JUVVFX0lO REVYX1BLRVkocGdfY29sZW5ja2V5X29pZF9pbmRleCwgODI0MCwgQ29sdW1uRW5jS2V5T2lk SW5kZXhJZCwgb24gcGdfY29sZW5ja2V5IHVzaW5nIGJ0cmVlKG9pZCBvaWRfb3BzKSk7CitE RUNMQVJFX1VOSVFVRV9JTkRFWChwZ19jb2xlbmNrZXlfY2VrbmFtZV9pbmRleCwgODI0Miwg Q29sdW1uRW5jS2V5TmFtZUluZGV4SWQsIG9uIHBnX2NvbGVuY2tleSB1c2luZyBidHJlZShj ZWtuYW1lIG5hbWVfb3BzKSk7CisKKy8qCisgKiBDb25zdGFudHMgZm9yIENNSyBhbmQgQ0VL IGFsZ29yaXRobXMuICBOb3RlIHRoYXQgdGhlc2UgYXJlIHBhcnQgb2YgdGhlCisgKiBwcm90 b2NvbC4gIEZvciBjbGFyaXR5LCB0aGUgYXNzaWduZWQgbnVtYmVycyBhcmUgbm90IHJldXNl ZCBiZXR3ZWVuIENNS3MKKyAqIGFuZCBDRUtzLCBidXQgdGhhdCBpcyBub3QgdGVjaG5pY2Fs bHkgcmVxdWlyZWQuICBJbiBlaXRoZXIgY2FzZSwgZG9uJ3QKKyAqIGFzc2lnbiB6ZXJvLCBz byB0aGF0IHRoYXQgY2FuIGJlIHVzZWQgYXMgYW4gaW52YWxpZCB2YWx1ZS4KKyAqLworCisj ZGVmaW5lIFBHX0NNS19SU0FFU19PQUVQX1NIQV8xCQkJMQorI2RlZmluZSBQR19DTUtfUlNB RVNfT0FFUF9TSEFfMjU2CQkyCisKKyNkZWZpbmUgUEdfQ0VLX0FFQURfQUVTXzEyOF9DQkNf SE1BQ19TSEFfMjU2CTEzMAorI2RlZmluZSBQR19DRUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFD X1NIQV8zODQJMTMxCisjZGVmaW5lIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hB XzM4NAkxMzIKKyNkZWZpbmUgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEy CTEzMworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29s ZW5ja2V5ZGF0YS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uM2U0ZGVhNzIxOAotLS0g L2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5o CkBAIC0wLDAgKzEsNDYgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX2Nv bGVuY2tleWRhdGEuaAorICoJICBkZWZpbml0aW9uIG9mIHRoZSAiY29sdW1uIGVuY3J5cHRp b24ga2V5IGRhdGEiIHN5c3RlbSBjYXRhbG9nCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0 IChjKSAxOTk2LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNp dHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5r ZXlkYXRhLmgKKyAqCisgKiBOT1RFUworICoJICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVh ZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVtYQorICoJICBpbmZvcm1hdGlvbi4KKyAq CisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQR19DT0xFTkNLRVlEQVRB X0gKKyNkZWZpbmUgUEdfQ09MRU5DS0VZREFUQV9ICisKKyNpbmNsdWRlICJjYXRhbG9nL2dl bmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YV9kLmgiCisKKy8q IC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ19jb2xlbmNrZXlkYXRhIGRlZmluaXRpb24uIGNw cCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ19jb2xl bmNrZXlkYXRhCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfY29sZW5j a2V5ZGF0YSw4MjUwLENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkKQoreworCU9pZAkJCW9p ZDsKKwlPaWQJCQlja2RjZWtpZCBCS0lfTE9PS1VQKHBnX2NvbGVuY2tleSk7CisJT2lkCQkJ Y2tkY21raWQgQktJX0xPT0tVUChwZ19jb2xtYXN0ZXJrZXkpOworCWludDE2CQlja2RjbWth bGc7CQkvKiBQR19DTUtfKiB2YWx1ZXMgKi8KKyNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8q IHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLworCWJ5dGVhCQlja2RlbmN2 YWwgQktJX0ZPUkNFX05PVF9OVUxMOworI2VuZGlmCit9IEZvcm1EYXRhX3BnX2NvbGVuY2tl eWRhdGE7CisKK3R5cGVkZWYgRm9ybURhdGFfcGdfY29sZW5ja2V5ZGF0YSAqRm9ybV9wZ19j b2xlbmNrZXlkYXRhOworCitERUNMQVJFX1RPQVNUKHBnX2NvbGVuY2tleWRhdGEsIDgyMzcs IDgyMzgpOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX2NvbGVuY2tleWRhdGFf b2lkX2luZGV4LCA4MjUxLCBDb2x1bW5FbmNLZXlEYXRhT2lkSW5kZXhJZCwgb24gcGdfY29s ZW5ja2V5ZGF0YSB1c2luZyBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9VTklRVUVf SU5ERVgocGdfY29sZW5ja2V5ZGF0YV9ja2RjZWtpZF9ja2RjbWtpZF9pbmRleCwgODI1Miwg Q29sdW1uRW5jS2V5Q2VraWRDbWtpZEluZGV4SWQsIG9uIHBnX2NvbGVuY2tleWRhdGEgdXNp bmcgYnRyZWUoY2tkY2VraWQgb2lkX29wcywgY2tkY21raWQgb2lkX29wcykpOworCisjZW5k aWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbWFzdGVya2V5Lmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjAzNDRjYzQyMDEKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oCkBAIC0wLDAgKzEsNDUg QEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX2NvbG1hc3RlcmtleS5oCisg KgkgIGRlZmluaXRpb24gb2YgdGhlICJjb2x1bW4gbWFzdGVyIGtleSIgc3lzdGVtIGNhdGFs b2cKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICog c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaAorICoKKyAqIE5PVEVTCisg KgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2ZXMg c2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICovCisjaWZuZGVmIFBHX0NPTE1BU1RFUktFWV9ICisjZGVmaW5lIFBHX0NPTE1BU1RFUktF WV9ICisKKyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfY29sbWFzdGVya2V5X2QuaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBnX2Nv bG1hc3RlcmtleSBkZWZpbml0aW9uLiBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRl ZiBzdHJ1Y3QgRm9ybURhdGFfcGdfY29sbWFzdGVya2V5CisgKiAtLS0tLS0tLS0tLS0tLS0t CisgKi8KK0NBVEFMT0cocGdfY29sbWFzdGVya2V5LDgyMzMsQ29sdW1uTWFzdGVyS2V5UmVs YXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CisJTmFtZURhdGEJY21rbmFtZTsKKwlPaWQJCQlj bWtvd25lciBCS0lfTE9PS1VQKHBnX2F1dGhpZCk7CisjaWZkZWYgQ0FUQUxPR19WQVJMRU4J CQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KKwl0ZXh0CQljbWty ZWFsbSBCS0lfRk9SQ0VfTk9UX05VTEw7CisjZW5kaWYKK30gRm9ybURhdGFfcGdfY29sbWFz dGVya2V5OworCit0eXBlZGVmIEZvcm1EYXRhX3BnX2NvbG1hc3RlcmtleSAqRm9ybV9wZ19j b2xtYXN0ZXJrZXk7CisKK0RFQ0xBUkVfVE9BU1QocGdfY29sbWFzdGVya2V5LCA4MjM1LCA4 MjM2KTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19jb2xtYXN0ZXJrZXlfb2lk X2luZGV4LCA4MjM5LCBDb2x1bW5NYXN0ZXJLZXlPaWRJbmRleElkLCBvbiBwZ19jb2xtYXN0 ZXJrZXkgdXNpbmcgYnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVY KHBnX2NvbG1hc3RlcmtleV9jbWtuYW1lX2luZGV4LCA4MjQxLCBDb2x1bW5NYXN0ZXJLZXlO YW1lSW5kZXhJZCwgb24gcGdfY29sbWFzdGVya2V5IHVzaW5nIGJ0cmVlKGNta25hbWUgbmFt ZV9vcHMpKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X29wY2xhc3MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmRhdAppbmRl eCBkYmNhZTdmZmRkLi4wY2E0MDFmZmU0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX29wY2xhc3MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BjbGFz cy5kYXQKQEAgLTE2Niw2ICsxNjYsOCBAQAogICBvcGNpbnR5cGUgPT4gJ2Jvb2wnIH0sCiB7 IG9wY21ldGhvZCA9PiAnaGFzaCcsIG9wY25hbWUgPT4gJ2J5dGVhX29wcycsIG9wY2ZhbWls eSA9PiAnaGFzaC9ieXRlYV9vcHMnLAogICBvcGNpbnR5cGUgPT4gJ2J5dGVhJyB9LAoreyBv cGNtZXRob2QgPT4gJ2hhc2gnLCBvcGNuYW1lID0+ICdwZ19lbmNyeXB0ZWRfZGV0X29wcycs IG9wY2ZhbWlseSA9PiAnaGFzaC9wZ19lbmNyeXB0ZWRfZGV0X29wcycsCisgIG9wY2ludHlw ZSA9PiAncGdfZW5jcnlwdGVkX2RldCcgfSwKIHsgb3BjbWV0aG9kID0+ICdidHJlZScsIG9w Y25hbWUgPT4gJ3RpZF9vcHMnLCBvcGNmYW1pbHkgPT4gJ2J0cmVlL3RpZF9vcHMnLAogICBv cGNpbnR5cGUgPT4gJ3RpZCcgfSwKIHsgb3BjbWV0aG9kID0+ICdoYXNoJywgb3BjbmFtZSA9 PiAneGlkX29wcycsIG9wY2ZhbWlseSA9PiAnaGFzaC94aWRfb3BzJywKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0IGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19vcGVyYXRvci5kYXQKaW5kZXggYmM1ZjgyMTNmMy4uNDczN2E3ZjllZCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQKQEAgLTM0NTgsNCArMzQ1OCwxNCBA QAogICBvcHJjb2RlID0+ICdtdWx0aXJhbmdlX2FmdGVyX211bHRpcmFuZ2UnLCBvcHJyZXN0 ID0+ICdtdWx0aXJhbmdlc2VsJywKICAgb3Byam9pbiA9PiAnc2NhbGFyZ3Rqb2luc2VsJyB9 LAogCit7IG9pZCA9PiAnODI0NycsIGRlc2NyID0+ICdlcXVhbCcsCisgIG9wcm5hbWUgPT4g Jz0nLCBvcHJjYW5tZXJnZSA9PiAnZicsIG9wcmNhbmhhc2ggPT4gJ3QnLCBvcHJsZWZ0ID0+ ICdwZ19lbmNyeXB0ZWRfZGV0JywKKyAgb3BycmlnaHQgPT4gJ3BnX2VuY3J5cHRlZF9kZXQn LCBvcHJyZXN1bHQgPT4gJ2Jvb2wnLCBvcHJjb20gPT4gJz0ocGdfZW5jcnlwdGVkX2RldCxw Z19lbmNyeXB0ZWRfZGV0KScsCisgIG9wcm5lZ2F0ZSA9PiAnPD4ocGdfZW5jcnlwdGVkX2Rl dCxwZ19lbmNyeXB0ZWRfZGV0KScsIG9wcmNvZGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfZXEn LCBvcHJyZXN0ID0+ICdlcXNlbCcsCisgIG9wcmpvaW4gPT4gJ2Vxam9pbnNlbCcgfSwKK3sg b2lkID0+ICc4MjQ4JywgZGVzY3IgPT4gJ25vdCBlcXVhbCcsCisgIG9wcm5hbWUgPT4gJzw+ Jywgb3BybGVmdCA9PiAncGdfZW5jcnlwdGVkX2RldCcsIG9wcnJpZ2h0ID0+ICdwZ19lbmNy eXB0ZWRfZGV0Jywgb3BycmVzdWx0ID0+ICdib29sJywKKyAgb3ByY29tID0+ICc8PihwZ19l bmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpJywgb3BybmVnYXRlID0+ICc9KHBnX2Vu Y3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLAorICBvcHJjb2RlID0+ICdwZ19lbmNy eXB0ZWRfZGV0X25lJywgb3BycmVzdCA9PiAnbmVxc2VsJywgb3Byam9pbiA9PiAnbmVxam9p bnNlbCcgfSwKKwogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZh bWlseS5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5LmRhdAppbmRleCBi M2I2YTdlNjE2Li41MzQzNTgwYjA2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX29wZmFtaWx5LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5 LmRhdApAQCAtMTA4LDYgKzEwOCw4IEBACiAgIG9wZm1ldGhvZCA9PiAnaGFzaCcsIG9wZm5h bWUgPT4gJ2Jvb2xfb3BzJyB9LAogeyBvaWQgPT4gJzIyMjMnLAogICBvcGZtZXRob2QgPT4g J2hhc2gnLCBvcGZuYW1lID0+ICdieXRlYV9vcHMnIH0sCit7IG9pZCA9PiAnODI0OScsCisg IG9wZm1ldGhvZCA9PiAnaGFzaCcsIG9wZm5hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfb3Bz JyB9LAogeyBvaWQgPT4gJzI3ODknLAogICBvcGZtZXRob2QgPT4gJ2J0cmVlJywgb3BmbmFt ZSA9PiAndGlkX29wcycgfSwKIHsgb2lkID0+ICcyMjI1JywKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0CmluZGV4IGEwN2U3MzdhMzMuLjdmNjI5ODQ1MmYgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdApAQCAtODAzMyw5ICs4MDMzLDkgQEAKICAgcHJvbmFtZSA9PiAncGdfcHJl cGFyZWRfc3RhdGVtZW50JywgcHJvcm93cyA9PiAnMTAwMCcsIHByb3JldHNldCA9PiAndCcs CiAgIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBl ID0+ICdyZWNvcmQnLAogICBwcm9hcmd0eXBlcyA9PiAnJywKLSAgcHJvYWxsYXJndHlwZXMg PT4gJ3t0ZXh0LHRleHQsdGltZXN0YW1wdHosX3JlZ3R5cGUsX3JlZ3R5cGUsYm9vbCxpbnQ4 LGludDh9JywKLSAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG99JywKLSAgcHJv YXJnbmFtZXMgPT4gJ3tuYW1lLHN0YXRlbWVudCxwcmVwYXJlX3RpbWUscGFyYW1ldGVyX3R5 cGVzLHJlc3VsdF90eXBlcyxmcm9tX3NxbCxnZW5lcmljX3BsYW5zLGN1c3RvbV9wbGFuc30n LAorICBwcm9hbGxhcmd0eXBlcyA9PiAne3RleHQsdGV4dCx0aW1lc3RhbXB0eixfcmVndHlw ZSxfcmVnY2xhc3MsX2ludDIsX3JlZ3R5cGUsYm9vbCxpbnQ4LGludDh9JywKKyAgcHJvYXJn bW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7 bmFtZSxzdGF0ZW1lbnQscHJlcGFyZV90aW1lLHBhcmFtZXRlcl90eXBlcyxwYXJhbWV0ZXJf b3JpZ190YWJsZXMscGFyYW1ldGVyX29yaWdfY29sdW1ucyxyZXN1bHRfdHlwZXMsZnJvbV9z cWwsZ2VuZXJpY19wbGFucyxjdXN0b21fcGxhbnN9JywKICAgcHJvc3JjID0+ICdwZ19wcmVw YXJlZF9zdGF0ZW1lbnQnIH0sCiB7IG9pZCA9PiAnMjUxMScsIGRlc2NyID0+ICdnZXQgdGhl IG9wZW4gY3Vyc29ycyBmb3IgdGhpcyBzZXNzaW9uJywKICAgcHJvbmFtZSA9PiAncGdfY3Vy c29yJywgcHJvcm93cyA9PiAnMTAwMCcsIHByb3JldHNldCA9PiAndCcsCkBAIC0xMTgyMCw0 ICsxMTgyMCwxMSBAQAogICBwcm9yZXR0eXBlID0+ICdieXRlYScsIHByb2FyZ3R5cGVzID0+ ICdwZ19icmluX21pbm1heF9tdWx0aV9zdW1tYXJ5JywKICAgcHJvc3JjID0+ICdicmluX21p bm1heF9tdWx0aV9zdW1tYXJ5X3NlbmQnIH0sCiAKK3sgb2lkID0+ICc4MjQ1JywKKyAgcHJv bmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldF9lcScsIHByb2xlYWtwcm9vZiA9PiAndCcsIHBy b3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAncGdfZW5jcnlwdGVkX2Rl dCBwZ19lbmNyeXB0ZWRfZGV0JywgcHJvc3JjID0+ICdieXRlYWVxJyB9LAoreyBvaWQgPT4g JzgyNDYnLAorICBwcm9uYW1lID0+ICdwZ19lbmNyeXB0ZWRfZGV0X25lJywgcHJvbGVha3By b29mID0+ICd0JywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdw Z19lbmNyeXB0ZWRfZGV0IHBnX2VuY3J5cHRlZF9kZXQnLCBwcm9zcmMgPT4gJ2J5dGVhbmUn IH0sCisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuZGF0CmluZGV4IGRmNDU4Nzk0NjMuLjg1 MTA2M2NmNWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmRhdApAQCAtNjkyLDQgKzY5Miwx NiBAQAogICB0eXByZWNlaXZlID0+ICdicmluX21pbm1heF9tdWx0aV9zdW1tYXJ5X3JlY3Yn LAogICB0eXBzZW5kID0+ICdicmluX21pbm1heF9tdWx0aV9zdW1tYXJ5X3NlbmQnLCB0eXBh bGlnbiA9PiAnaScsCiAgIHR5cHN0b3JhZ2UgPT4gJ3gnLCB0eXBjb2xsYXRpb24gPT4gJ2Rl ZmF1bHQnIH0sCisKK3sgb2lkID0+ICc4MjQzJywgZGVzY3IgPT4gJ2VuY3J5cHRlZCBjb2x1 bW4gKGRldGVybWluaXN0aWMpJywKKyAgdHlwbmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldCcs IHR5cGxlbiA9PiAnLTEnLCB0eXBieXZhbCA9PiAnZicsIHR5cHR5cGUgPT4gJ2InLAorICB0 eXBjYXRlZ29yeSA9PiAnWScsIHR5cGlucHV0ID0+ICdieXRlYWluJywgdHlwb3V0cHV0ID0+ ICdieXRlYW91dCcsCisgIHR5cHJlY2VpdmUgPT4gJ2J5dGVhcmVjdicsIHR5cHNlbmQgPT4g J2J5dGVhc2VuZCcsIHR5cGFsaWduID0+ICdpJywKKyAgdHlwc3RvcmFnZSA9PiAnZScgfSwK K3sgb2lkID0+ICc4MjQ0JywgZGVzY3IgPT4gJ2VuY3J5cHRlZCBjb2x1bW4gKHJhbmRvbWl6 ZWQpJywKKyAgdHlwbmFtZSA9PiAncGdfZW5jcnlwdGVkX3JuZCcsIHR5cGxlbiA9PiAnLTEn LCB0eXBieXZhbCA9PiAnZicsIHR5cHR5cGUgPT4gJ2InLAorICB0eXBjYXRlZ29yeSA9PiAn WScsIHR5cGlucHV0ID0+ICdieXRlYWluJywgdHlwb3V0cHV0ID0+ICdieXRlYW91dCcsCisg IHR5cHJlY2VpdmUgPT4gJ2J5dGVhcmVjdicsIHR5cHNlbmQgPT4gJ2J5dGVhc2VuZCcsIHR5 cGFsaWduID0+ICdpJywKKyAgdHlwc3RvcmFnZSA9PiAnZScgfSwKKwogXQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3R5cGUuaAppbmRleCA0OGEyNTU5MTM3Li5jMWQzMDkwM2I1IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3R5cGUuaApAQCAtMjk0LDYgKzI5NCw3IEBAIERFQ0xBUkVfVU5JUVVFX0lOREVYKHBn X3R5cGVfdHlwbmFtZV9uc3BfaW5kZXgsIDI3MDQsIFR5cGVOYW1lTnNwSW5kZXhJZCwgb24g cGdfCiAjZGVmaW5lICBUWVBDQVRFR09SWV9VU0VSCQknVScKICNkZWZpbmUgIFRZUENBVEVH T1JZX0JJVFNUUklORwknVicgLyogZXIgLi4uICJ2YXJiaXQiPyAqLwogI2RlZmluZSAgVFlQ Q0FURUdPUllfVU5LTk9XTgknWCcKKyNkZWZpbmUgIFRZUENBVEVHT1JZX0VOQ1JZUFRFRAkn WScKICNkZWZpbmUgIFRZUENBVEVHT1JZX0lOVEVSTkFMCSdaJwogCiAjZGVmaW5lICBUWVBB TElHTl9DSEFSCQkJJ2MnIC8qIGNoYXIgYWxpZ25tZW50IChpLmUuIHVuYWxpZ25lZCkgKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMuaCBiL3NyYy9p bmNsdWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi5kOTc0MWUxMDBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1 ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oCkBAIC0wLDAgKzEsMjUgQEAKKy8qLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIGNvbGVuY2NtZHMuaAorICoJICBwcm90b3R5cGVzIGZvciBj b2xlbmNjbWRzLmMuCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0y MDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMg Q29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlm b3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNjbWRzLmgKKyAqCisg Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVmIENPTEVOQ0NNRFNfSAorI2Rl ZmluZSBDT0xFTkNDTURTX0gKKworI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5o IgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisKK2V4dGVybiBPYmplY3RBZGRy ZXNzIENyZWF0ZUNFSyhQYXJzZVN0YXRlICpwc3RhdGUsIERlZmluZVN0bXQgKnN0bXQpOwor ZXh0ZXJuIE9iamVjdEFkZHJlc3MgQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5KFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCAqc3RtdCk7CitleHRl cm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVDTUsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZpbmVT dG10ICpzdG10KTsKKworI2VuZGlmCQkJCQkJCS8qIENPTEVOQ0NNRFNfSCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbGlicHEvbGlicHEtYmUuaCBiL3NyYy9pbmNsdWRlL2xpYnBx L2xpYnBxLWJlLmgKaW5kZXggNmQ0NTJlYzZkOS4uZTMyYzc3NzljOSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbGlicHEvbGlicHEtYmUuaAorKysgYi9zcmMvaW5jbHVkZS9saWJwcS9s aWJwcS1iZS5oCkBAIC0xNjQsNiArMTY0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUG9ydAogCSAq LwogCWNoYXIJICAgKmRhdGFiYXNlX25hbWU7CiAJY2hhcgkgICAqdXNlcl9uYW1lOworCWJv b2wJCWNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQ7CiAJY2hhcgkgICAqY21kbGluZV9vcHRp b25zOwogCUxpc3QJICAgKmd1Y19vcHRpb25zOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgK aW5kZXggNjk1ODMwNmE3ZC4uM2MyNTZjMzlkNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aApAQCAtNjg2LDYgKzY4Niw3IEBAIHR5cGVkZWYgc3RydWN0IENvbHVtbkRlZgogCWNoYXIJ ICAgKmNvbG5hbWU7CQkvKiBuYW1lIG9mIGNvbHVtbiAqLwogCVR5cGVOYW1lICAgKnR5cGVO YW1lOwkJLyogdHlwZSBvZiBjb2x1bW4gKi8KIAljaGFyCSAgICpjb21wcmVzc2lvbjsJLyog Y29tcHJlc3Npb24gbWV0aG9kIGZvciBjb2x1bW4gKi8KKwlMaXN0CSAgICplbmNyeXB0aW9u OwkJLyogZW5jcnlwdGlvbiBpbmZvIGZvciBjb2x1bW4gKi8KIAlpbnQJCQlpbmhjb3VudDsJ CS8qIG51bWJlciBvZiB0aW1lcyBjb2x1bW4gaXMgaW5oZXJpdGVkICovCiAJYm9vbAkJaXNf bG9jYWw7CQkvKiBjb2x1bW4gaGFzIGxvY2FsIChub24taW5oZXJpdGVkKSBkZWYnbiAqLwog CWJvb2wJCWlzX25vdF9udWxsOwkvKiBOT1QgTlVMTCBjb25zdHJhaW50IHNwZWNpZmllZD8g Ki8KQEAgLTE4NjQsNiArMTg2NSw4IEBAIHR5cGVkZWYgZW51bSBPYmplY3RUeXBlCiAJT0JK RUNUX0NBU1QsCiAJT0JKRUNUX0NPTFVNTiwKIAlPQkpFQ1RfQ09MTEFUSU9OLAorCU9CSkVD VF9DRUssCisJT0JKRUNUX0NNSywKIAlPQkpFQ1RfQ09OVkVSU0lPTiwKIAlPQkpFQ1RfREFU QUJBU0UsCiAJT0JKRUNUX0RFRkFVTFQsCkBAIC0yMDU2LDYgKzIwNTksMTkgQEAgdHlwZWRl ZiBzdHJ1Y3QgQWx0ZXJDb2xsYXRpb25TdG10CiB9IEFsdGVyQ29sbGF0aW9uU3RtdDsKIAog CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBBbHRlciBDb2x1bW4gRW5jcnlwdGlv biBLZXkKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3Qg QWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdAoreworCU5vZGVUYWcJCXR5cGU7CisJY2hh cgkgICAqY2VrbmFtZTsKKwlib29sCQlpc0Ryb3A7CQkJLyogQUREIG9yIERST1AgdGhlIGl0 ZW1zPyAqLworCUxpc3QJICAgKmRlZmluaXRpb247Cit9IEFsdGVyQ29sdW1uRW5jcnlwdGlv bktleVN0bXQ7CisKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJQWx0ZXIgRG9t YWluCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaCBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmgKaW5kZXggZGMzNzk1NDdjNy4uYzMxMGUxMjRm MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaAorKysgYi9zcmMv aW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCkBAIC0yOCw3ICsyOCw5IEBAIGV4dGVybiBQR0RM TElNUE9SVCBwb3N0X3BhcnNlX2FuYWx5emVfaG9va190eXBlIHBvc3RfcGFyc2VfYW5hbHl6 ZV9ob29rOwogZXh0ZXJuIFF1ZXJ5ICpwYXJzZV9hbmFseXplX2ZpeGVkcGFyYW1zKFJhd1N0 bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4dCwKIAkJCQkJCQkJCQljb25z dCBPaWQgKnBhcmFtVHlwZXMsIGludCBudW1QYXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQgKnF1 ZXJ5RW52KTsKIGV4dGVybiBRdWVyeSAqcGFyc2VfYW5hbHl6ZV92YXJwYXJhbXMoUmF3U3Rt dCAqcGFyc2VUcmVlLCBjb25zdCBjaGFyICpzb3VyY2VUZXh0LAotCQkJCQkJCQkJICBPaWQg KipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlF bnYpOworCQkJCQkJCQkJICBPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywKKwkJ CQkJCQkJCSAgT2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFtT3JpZ0Nv bHMsCisJCQkJCQkJCQkgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52KTsKIGV4dGVybiBR dWVyeSAqcGFyc2VfYW5hbHl6ZV93aXRoY2IoUmF3U3RtdCAqcGFyc2VUcmVlLCBjb25zdCBj aGFyICpzb3VyY2VUZXh0LAogCQkJCQkJCQkgICBQYXJzZXJTZXR1cEhvb2sgcGFyc2VyU2V0 dXAsCiAJCQkJCQkJCSAgIHZvaWQgKnBhcnNlclNldHVwQXJnLApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CmluZGV4IDlhN2NjMGM2YmQuLjgxM2NmM2QyM2QgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAg LTE0OSw2ICsxNDksNyBAQCBQR19LRVlXT1JEKCJlbHNlIiwgRUxTRSwgUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVuYWJsZSIsIEVOQUJMRV9QLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbmNvZGluZyIsIEVO Q09ESU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJl bmNyeXB0ZWQiLCBFTkNSWVBURUQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK K1BHX0tFWVdPUkQoImVuY3J5cHRpb24iLCBFTkNSWVBUSU9OLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbmQiLCBFTkRfUCwgUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVudW0iLCBFTlVNX1AsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVzY2FwZSIsIEVTQ0FQRSwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpAQCAtMjUwLDYgKzI1MSw3IEBAIFBH X0tFWVdPUkQoImxvY2siLCBMT0NLX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoImxvY2tlZCIsIExPQ0tFRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgibG9nZ2VkIiwgTE9HR0VELCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJtYXBwaW5nIiwgTUFQUElORywgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgibWFzdGVyIiwgTUFT VEVSLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJtYXRj aCIsIE1BVENILCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJtYXRjaGVkIiwgTUFUQ0hFRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgibWF0ZXJpYWxpemVkIiwgTUFURVJJQUxJWkVELCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCA5NjJl YmY2NWRlLi5mNmE3MTc4NzY2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTkz LDYgKzkzLDcgQEAgdHlwZWRlZiBOb2RlICooKlBhcnNlUGFyYW1SZWZIb29rKSAoUGFyc2VT dGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZik7CiB0eXBlZGVmIE5vZGUgKigqQ29lcmNl UGFyYW1Ib29rKSAoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbSAqcGFyYW0sCiAJCQkJCQkJ CSAgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIgdGFyZ2V0VHlwZU1vZCwKIAkJCQkJCQkJICBp bnQgbG9jYXRpb24pOwordHlwZWRlZiB2b2lkICgqUGFyYW1Bc3NpZ25PcmlnSG9vaykgKFBh cnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW0gKnBhcmFtLCBPaWQgb3JpZ3RibCwgQXR0ck51bWJl ciBvcmlnY29sKTsKIAogCiAvKgpAQCAtMjIyLDYgKzIyMyw3IEBAIHN0cnVjdCBQYXJzZVN0 YXRlCiAJUG9zdFBhcnNlQ29sdW1uUmVmSG9vayBwX3Bvc3RfY29sdW1ucmVmX2hvb2s7CiAJ UGFyc2VQYXJhbVJlZkhvb2sgcF9wYXJhbXJlZl9ob29rOwogCUNvZXJjZVBhcmFtSG9vayBw X2NvZXJjZV9wYXJhbV9ob29rOworCVBhcmFtQXNzaWduT3JpZ0hvb2sgcF9wYXJhbV9hc3Np Z25fb3JpZ19ob29rOwogCXZvaWQJICAgKnBfcmVmX2hvb2tfc3RhdGU7CS8qIGNvbW1vbiBw YXNzdGhyb3VnaCBsaW5rIGZvciBhYm92ZSAqLwogfTsKIApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf cGFyYW0uaAppbmRleCBkZjFlZTY2MGQ4Li5kYTIwMmIyOGE3IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfcGFyYW0uaApAQCAtMTgsNyArMTgsOCBAQAogZXh0ZXJuIHZvaWQgc2V0dXBfcGFy c2VfZml4ZWRfcGFyYW1ldGVycyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJIGNv bnN0IE9pZCAqcGFyYW1UeXBlcywgaW50IG51bVBhcmFtcyk7CiBleHRlcm4gdm9pZCBzZXR1 cF9wYXJzZV92YXJpYWJsZV9wYXJhbWV0ZXJzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKLQkJCQkJ CQkJCQkJT2lkICoqcGFyYW1UeXBlcywgaW50ICpudW1QYXJhbXMpOworCQkJCQkJCQkJCQlP aWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywKKwkJCQkJCQkJCQkJT2lkICoqcGFy YW1PcmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFtT3JpZ0NvbHMpOwogZXh0ZXJuIHZvaWQg Y2hlY2tfdmFyaWFibGVfcGFyYW1ldGVycyhQYXJzZVN0YXRlICpwc3RhdGUsIFF1ZXJ5ICpx dWVyeSk7CiBleHRlcm4gYm9vbCBxdWVyeV9jb250YWluc19leHRlcm5fcGFyYW1zKFF1ZXJ5 ICpxdWVyeSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5o IGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggOWU5NGY0NGM1Zi4uZDgy YTJlMTE3MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKKysr IGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTI5LDYgKzI5LDggQEAgUEdf Q01EVEFHKENNRFRBR19BTFRFUl9BQ0NFU1NfTUVUSE9ELCAiQUxURVIgQUNDRVNTIE1FVEhP RCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQUdHUkVH QVRFLCAiQUxURVIgQUdHUkVHQVRFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19BTFRFUl9DQVNULCAiQUxURVIgQ0FTVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkK IFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQ09MTEFUSU9OLCAiQUxURVIgQ09MTEFUSU9OIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DT0xVTU5fRU5D UllQVElPTl9LRVksICJBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkiLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0FMVEVSX0NPTFVNTl9NQVNURVJfS0VZLCAi QUxURVIgQ09MVU1OIE1BU1RFUiBLRVkiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0FMVEVSX0NPTlNUUkFJTlQsICJBTFRFUiBDT05TVFJBSU5UIiwgdHJ1ZSwg ZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DT05WRVJTSU9OLCAiQUxU RVIgQ09OVkVSU0lPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf QUxURVJfREFUQUJBU0UsICJBTFRFUiBEQVRBQkFTRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2Up CkBAIC04Niw2ICs4OCw4IEBAIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0FDQ0VTU19NRVRI T0QsICJDUkVBVEUgQUNDRVNTIE1FVEhPRCIsIHRydWUsIGZhbHNlLCBmYWxzCiBQR19DTURU QUcoQ01EVEFHX0NSRUFURV9BR0dSRUdBVEUsICJDUkVBVEUgQUdHUkVHQVRFIiwgdHJ1ZSwg ZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ0FTVCwgIkNSRUFURSBD QVNUIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ09M TEFUSU9OLCAiQ1JFQVRFIENPTExBVElPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NN RFRBRyhDTURUQUdfQ1JFQVRFX0NPTFVNTl9FTkNSWVBUSU9OX0tFWSwgIkNSRUFURSBDT0xV TU4gRU5DUllQVElPTiBLRVkiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01E VEFHX0NSRUFURV9DT0xVTU5fTUFTVEVSX0tFWSwgIkNSRUFURSBDT0xVTU4gTUFTVEVSIEtF WSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0NPTlNU UkFJTlQsICJDUkVBVEUgQ09OU1RSQUlOVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfQ1JFQVRFX0NPTlZFUlNJT04sICJDUkVBVEUgQ09OVkVSU0lPTiIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0RBVEFCQVNFLCAi Q1JFQVRFIERBVEFCQVNFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTEzOCw2ICsxNDIs OCBAQCBQR19DTURUQUcoQ01EVEFHX0RST1BfQUNDRVNTX01FVEhPRCwgIkRST1AgQUNDRVNT IE1FVEhPRCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9B R0dSRUdBVEUsICJEUk9QIEFHR1JFR0FURSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfRFJPUF9DQVNULCAiRFJPUCBDQVNUIiwgdHJ1ZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTExBVElPTiwgIkRST1AgQ09MTEFUSU9OIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTFVNTl9FTkNS WVBUSU9OX0tFWSwgIkRST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTFVNTl9NQVNURVJfS0VZLCAiRFJP UCBDT0xVTU4gTUFTVEVSIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhD TURUQUdfRFJPUF9DT05TVFJBSU5ULCAiRFJPUCBDT05TVFJBSU5UIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTlZFUlNJT04sICJEUk9QIENPTlZF UlNJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfREFU QUJBU0UsICJEUk9QIERBVEFCQVNFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvdGNv cHByb3QuaAppbmRleCA3MGQ5ZGFiMjViLi4zMDM4Y2ViNTIyIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS90Y29wL3Rjb3Bwcm90LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC90Y29wcHJv dC5oCkBAIC01Myw2ICs1Myw4IEBAIGV4dGVybiBMaXN0ICpwZ19hbmFseXplX2FuZF9yZXdy aXRlX3ZhcnBhcmFtcyhSYXdTdG10ICpwYXJzZXRyZWUsCiAJCQkJCQkJCQkJCSAgY29uc3Qg Y2hhciAqcXVlcnlfc3RyaW5nLAogCQkJCQkJCQkJCQkgIE9pZCAqKnBhcmFtVHlwZXMsCiAJ CQkJCQkJCQkJCSAgaW50ICpudW1QYXJhbXMsCisJCQkJCQkJCQkJCSAgT2lkICoqcGFyYW1P cmlnVGJscywKKwkJCQkJCQkJCQkJICBBdHRyTnVtYmVyICoqcGFyYW1PcmlnQ29scywKIAkJ CQkJCQkJCQkJICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudik7CiBleHRlcm4gTGlzdCAq cGdfYW5hbHl6ZV9hbmRfcmV3cml0ZV93aXRoY2IoUmF3U3RtdCAqcGFyc2V0cmVlLAogCQkJ CQkJCQkJCSAgIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3V0aWxzL2FjbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKaW5kZXggM2Q2 NDExMTk3Yy4uYmRiNmQ3NDFkNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvYWNs LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKQEAgLTMxOCw2ICszMTgsOCBAQCBl eHRlcm4gYm9vbCBwZ19vcGNsYXNzX293bmVyY2hlY2soT2lkIG9wY19vaWQsIE9pZCByb2xl aWQpOwogZXh0ZXJuIGJvb2wgcGdfb3BmYW1pbHlfb3duZXJjaGVjayhPaWQgb3BmX29pZCwg T2lkIHJvbGVpZCk7CiBleHRlcm4gYm9vbCBwZ19kYXRhYmFzZV9vd25lcmNoZWNrKE9pZCBk Yl9vaWQsIE9pZCByb2xlaWQpOwogZXh0ZXJuIGJvb2wgcGdfY29sbGF0aW9uX293bmVyY2hl Y2soT2lkIGNvbGxfb2lkLCBPaWQgcm9sZWlkKTsKK2V4dGVybiBib29sIHBnX2NvbHVtbl9l bmNyeXB0aW9uX2tleV9vd25lcmNoZWNrKE9pZCBjZWtfb2lkLCBPaWQgcm9sZWlkKTsKK2V4 dGVybiBib29sIHBnX2NvbHVtbl9tYXN0ZXJfa2V5X293bmVyY2hlY2soT2lkIGNta19vaWQs IE9pZCByb2xlaWQpOwogZXh0ZXJuIGJvb2wgcGdfY29udmVyc2lvbl9vd25lcmNoZWNrKE9p ZCBjb252X29pZCwgT2lkIHJvbGVpZCk7CiBleHRlcm4gYm9vbCBwZ190c19kaWN0X293bmVy Y2hlY2soT2lkIGRpY3Rfb2lkLCBPaWQgcm9sZWlkKTsKIGV4dGVybiBib29sIHBnX3RzX2Nv bmZpZ19vd25lcmNoZWNrKE9pZCBjZmdfb2lkLCBPaWQgcm9sZWlkKTsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5 c2NhY2hlLmgKaW5kZXggNTBmMDI4ODMwNS4uMDY0YjljZDMzOCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5 c2NhY2hlLmgKQEAgLTE2Myw2ICsxNjMsNyBAQCBleHRlcm4gYm9vbCB0eXBlX2lzX3Jvd3R5 cGUoT2lkIHR5cGlkKTsKIGV4dGVybiBib29sIHR5cGVfaXNfZW51bShPaWQgdHlwaWQpOwog ZXh0ZXJuIGJvb2wgdHlwZV9pc19yYW5nZShPaWQgdHlwaWQpOwogZXh0ZXJuIGJvb2wgdHlw ZV9pc19tdWx0aXJhbmdlKE9pZCB0eXBpZCk7CitleHRlcm4gYm9vbCB0eXBlX2lzX2VuY3J5 cHRlZChPaWQgdHlwaWQpOwogZXh0ZXJuIHZvaWQgZ2V0X3R5cGVfY2F0ZWdvcnlfcHJlZmVy cmVkKE9pZCB0eXBpZCwKIAkJCQkJCQkJCQljaGFyICp0eXBjYXRlZ29yeSwKIAkJCQkJCQkJ CQlib29sICp0eXBpc3ByZWZlcnJlZCk7CkBAIC0yMDIsNiArMjAzLDEwIEBAIGV4dGVybiBP aWQJZ2V0X3B1YmxpY2F0aW9uX29pZChjb25zdCBjaGFyICpwdWJuYW1lLCBib29sIG1pc3Np bmdfb2spOwogZXh0ZXJuIGNoYXIgKmdldF9wdWJsaWNhdGlvbl9uYW1lKE9pZCBwdWJpZCwg Ym9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X3N1YnNjcmlwdGlvbl9vaWQoY29u c3QgY2hhciAqc3VibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBjaGFyICpnZXRf c3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJu IE9pZAlnZXRfY2VrX29pZChjb25zdCBjaGFyICpjZWtuYW1lLCBib29sIG1pc3Npbmdfb2sp OworZXh0ZXJuIGNoYXIgKmdldF9jZWtfbmFtZShPaWQgY2VraWQsIGJvb2wgbWlzc2luZ19v ayk7CitleHRlcm4gT2lkCWdldF9jbWtfb2lkKGNvbnN0IGNoYXIgKmNta25hbWUsIGJvb2wg bWlzc2luZ19vayk7CitleHRlcm4gY2hhciAqZ2V0X2Nta19uYW1lKE9pZCBjbWtpZCwgYm9v bCBtaXNzaW5nX29rKTsKIAogI2RlZmluZSB0eXBlX2lzX2FycmF5KHR5cGlkKSAgKGdldF9l bGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQpCiAvKiB0eXBlX2lzX2FycmF5X2Rv bWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFuZCBkb21haW5zIG92ZXIgYXJyYXlz ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaCBiL3NyYy9p bmNsdWRlL3V0aWxzL3BsYW5jYWNoZS5oCmluZGV4IDA0OTk2MzVmNTkuLjlhN2NmNzk0Y2Ug MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3BsYW5jYWNoZS5oCisrKyBiL3NyYy9p bmNsdWRlL3V0aWxzL3BsYW5jYWNoZS5oCkBAIC0xMDEsNiArMTAxLDEwIEBAIHR5cGVkZWYg c3RydWN0IENhY2hlZFBsYW5Tb3VyY2UKIAlDb21tYW5kVGFnCWNvbW1hbmRUYWc7CQkvKiAn bnVmZiBzYWlkICovCiAJT2lkCQkgICAqcGFyYW1fdHlwZXM7CS8qIGFycmF5IG9mIHBhcmFt ZXRlciB0eXBlIE9JRHMsIG9yIE5VTEwgKi8KIAlpbnQJCQludW1fcGFyYW1zOwkJLyogbGVu Z3RoIG9mIHBhcmFtX3R5cGVzIGFycmF5ICovCisJT2lkCQkgICAqcGFyYW1fb3JpZ3RibHM7 IC8qIGFycmF5IG9mIHVuZGVybHlpbmcgdGFibGVzIG9mIHBhcmFtZXRlcnMsCisJCQkJCQkJ CSAqIG9yIE5VTEwgKi8KKwlBdHRyTnVtYmVyICpwYXJhbV9vcmlnY29sczsgLyogYXJyYXkg b2YgdW5kZXJseWluZyBjb2x1bW5zIG9mIHBhcmFtZXRlcnMsCisJCQkJCQkJCSAqIG9yIE5V TEwgKi8KIAlQYXJzZXJTZXR1cEhvb2sgcGFyc2VyU2V0dXA7CS8qIGFsdGVybmF0aXZlIHBh cmFtZXRlciBzcGVjIG1ldGhvZCAqLwogCXZvaWQJICAgKnBhcnNlclNldHVwQXJnOwogCWlu dAkJCWN1cnNvcl9vcHRpb25zOyAvKiBjdXJzb3Igb3B0aW9ucyB1c2VkIGZvciBwbGFubmlu ZyAqLwpAQCAtMTk5LDYgKzIwMyw4IEBAIGV4dGVybiB2b2lkIENvbXBsZXRlQ2FjaGVkUGxh bihDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlLAogCQkJCQkJCSAgIE1lbW9yeUNvbnRl eHQgcXVlcnl0cmVlX2NvbnRleHQsCiAJCQkJCQkJICAgT2lkICpwYXJhbV90eXBlcywKIAkJ CQkJCQkgICBpbnQgbnVtX3BhcmFtcywKKwkJCQkJCQkgICBPaWQgKnBhcmFtX29yaWd0Ymxz LAorCQkJCQkJCSAgIEF0dHJOdW1iZXIgKnBhcmFtX29yaWdjb2xzLAogCQkJCQkJCSAgIFBh cnNlclNldHVwSG9vayBwYXJzZXJTZXR1cCwKIAkJCQkJCQkgICB2b2lkICpwYXJzZXJTZXR1 cEFyZywKIAkJCQkJCQkgICBpbnQgY3Vyc29yX29wdGlvbnMsCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS91dGlscy9zeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvc3lzY2FjaGUu aAppbmRleCA0NDYzZWE2NmJlLi40ODljNmVlNzM0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS91dGlscy9zeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3N5c2NhY2hlLmgK QEAgLTQ0LDggKzQ0LDE0IEBAIGVudW0gU3lzQ2FjaGVJZGVudGlmaWVyCiAJQVVUSE5BTUUs CiAJQVVUSE9JRCwKIAlDQVNUU09VUkNFVEFSR0VULAorCUNFS0RBVEFDRUtDTUssCisJQ0VL REFUQU9JRCwKKwlDRUtOQU1FLAorCUNFS09JRCwKIAlDTEFBTU5BTUVOU1AsCiAJQ0xBT0lE LAorCUNNS05BTUUsCisJQ01LT0lELAogCUNPTExOQU1FRU5DTlNQLAogCUNPTExPSUQsCiAJ Q09OREVGQVVMVCwKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL01ha2VmaWxl IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKaW5kZXggMWQzMWIyNTZmYy4uNDgx MmY4NjJjYSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKQEAgLTU0LDYgKzU0LDcgQEAgZW5k aWYKIAogaWZlcSAoJCh3aXRoX3NzbCksb3BlbnNzbCkKIE9CSlMgKz0gXAorCWZlLWVuY3J5 cHQtb3BlbnNzbC5vIFwKIAlmZS1zZWN1cmUtb3BlbnNzbC5vCiBlbmRpZgogCmRpZmYgLS1n aXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dCBiL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2V4cG9ydHMudHh0CmluZGV4IGU4YmNjODgzNzAuLmZhYmFkMzhhYzAgMTAwNjQ0 Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CisrKyBiL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CkBAIC0xODYsMyArMTg2LDcgQEAgUFFwaXBlbGlu ZVN0YXR1cyAgICAgICAgICAxODMKIFBRc2V0VHJhY2VGbGFncyAgICAgICAgICAgMTg0CiBQ UW1ibGVuQm91bmRlZCAgICAgICAgICAgIDE4NQogUFFzZW5kRmx1c2hSZXF1ZXN0ICAgICAg ICAxODYKK1BRZXhlY1ByZXBhcmVkMiAgICAgICAgICAgMTg3CitQUXNlbmRRdWVyeVByZXBh cmVkMiAgICAgIDE4OAorUFFmaXNlbmNyeXB0ZWQgICAgICAgICAgICAxODkKK1BRcGFyYW1p c2VuY3J5cHRlZCAgICAgICAgMTkwCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJw cS9mZS1jb25uZWN0LmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKaW5k ZXggOTE3YjE5ZTBlOS4uYTJhY2ZjMmE3YyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtY29ubmVjdC5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5l Y3QuYwpAQCAtMzQxLDYgKzM0MSwxNCBAQCBzdGF0aWMgY29uc3QgaW50ZXJuYWxQUWNvbm5p bmZvT3B0aW9uIFBRY29ubmluZm9PcHRpb25zW10gPSB7CiAJCSJUYXJnZXQtU2Vzc2lvbi1B dHRycyIsICIiLCAxNSwgLyogc2l6ZW9mKCJwcmVmZXItc3RhbmRieSIpID0gMTUgKi8KIAlv ZmZzZXRvZihzdHJ1Y3QgcGdfY29ubiwgdGFyZ2V0X3Nlc3Npb25fYXR0cnMpfSwKIAorCXsi Y21rbG9va3VwIiwgIlBHQ01LTE9PS1VQIiwgIiIsIE5VTEwsCisJCSJDTUstTG9va3VwIiwg IiIsIDY0LAorCW9mZnNldG9mKHN0cnVjdCBwZ19jb25uLCBjbWtsb29rdXApfSwKKworCXsi Y29sdW1uX2VuY3J5cHRpb24iLCAiUEdDT0xVTU5FTkNSWVBUSU9OIiwgIjAiLCBOVUxMLAor CQkiQ29sdW1uLUVuY3J5cHRpb24iLCAiIiwgMSwKKwlvZmZzZXRvZihzdHJ1Y3QgcGdfY29u biwgY29sdW1uX2VuY3J5cHRpb25fc2V0dGluZyl9LAorCiAJLyogVGVybWluYXRpbmcgZW50 cnkgLS0tIE1VU1QgQkUgTEFTVCAqLwogCXtOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLAogCU5V TEwsIE5VTEwsIDB9CkBAIC0yNDU0LDYgKzI0NjIsNyBAQCBQUWNvbm5lY3RQb2xsKFBHY29u biAqY29ubikKICNpZmRlZiBFTkFCTEVfR1NTCiAJCWNvbm4tPnRyeV9nc3MgPSAoY29ubi0+ Z3NzZW5jbW9kZVswXSAhPSAnZCcpOwkvKiAiZGlzYWJsZSIgKi8KICNlbmRpZgorCQljb25u LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkID0gKGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9u X3NldHRpbmdbMF0gPT0gJzEnKTsKIAogCQlyZXNldF9jb25uZWN0aW9uX3N0YXRlX21hY2hp bmUgPSBmYWxzZTsKIAkJbmVlZF9uZXdfY29ubmVjdGlvbiA9IHRydWU7CkBAIC0zMjQ5LDcg KzMyNTgsNyBAQCBQUWNvbm5lY3RQb2xsKFBHY29ubiAqY29ubikKIAkJCQkgKiByZXF1ZXN0 IG9yIGFuIGVycm9yIGhlcmUuICBBbnl0aGluZyBlbHNlIHByb2JhYmx5IG1lYW5zCiAJCQkJ ICogaXQncyBub3QgUG9zdGdyZXMgb24gdGhlIG90aGVyIGVuZCBhdCBhbGwuCiAJCQkJICov Ci0JCQkJaWYgKCEoYmVyZXNwID09ICdSJyB8fCBiZXJlc3AgPT0gJ0UnKSkKKwkJCQlpZiAo IShiZXJlc3AgPT0gJ1InIHx8IGJlcmVzcCA9PSAnRScgfHwgYmVyZXNwID09ICd2JykpCiAJ CQkJewogCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAogCQkJ CQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJleHBlY3RlZCBhdXRoZW50aWNhdGlvbiByZXF1ZXN0 IGZyb20gc2VydmVyLCBidXQgcmVjZWl2ZWQgJWNcbiIpLApAQCAtMzQwNSw2ICszNDE0LDE3 IEBAIFBRY29ubmVjdFBvbGwoUEdjb25uICpjb25uKQogCiAJCQkJCWdvdG8gZXJyb3JfcmV0 dXJuOwogCQkJCX0KKwkJCQllbHNlIGlmIChiZXJlc3AgPT0gJ3YnKQorCQkJCXsKKwkJCQkJ aWYgKHBxR2V0TmVnb3RpYXRlUHJvdG9jb2xWZXJzaW9uMyhjb25uKSkKKwkJCQkJeworCQkJ CQkJLyogV2UnbGwgY29tZSBiYWNrIHdoZW4gdGhlcmUgaXMgbW9yZSBkYXRhICovCisJCQkJ CQlyZXR1cm4gUEdSRVNfUE9MTElOR19SRUFESU5HOworCQkJCQl9CisJCQkJCS8qIE9LLCB3 ZSByZWFkIHRoZSBtZXNzYWdlOyBtYXJrIGRhdGEgY29uc3VtZWQgKi8KKwkJCQkJY29ubi0+ aW5TdGFydCA9IGNvbm4tPmluQ3Vyc29yOworCQkJCQlnb3RvIGVycm9yX3JldHVybjsKKwkJ CQl9CiAKIAkJCQkvKiBJdCBpcyBhbiBhdXRoZW50aWNhdGlvbiByZXF1ZXN0LiAqLwogCQkJ CWNvbm4tPmF1dGhfcmVxX3JlY2VpdmVkID0gdHJ1ZTsKQEAgLTQwODAsNiArNDEwMCwyMiBA QCBmcmVlUEdjb25uKFBHY29ubiAqY29ubikKIAlmcmVlKGNvbm4tPmtyYnNydm5hbWUpOwog CWZyZWUoY29ubi0+Z3NzbGliKTsKIAlmcmVlKGNvbm4tPmNvbm5pcCk7CisJZnJlZShjb25u LT5jbWtsb29rdXApOworCWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+bmNta3M7IGkrKykK Kwl7CisJCWZyZWUoY29ubi0+Y21rc1tpXS5jbWtuYW1lKTsKKwkJZnJlZShjb25uLT5jbWtz W2ldLmNta3JlYWxtKTsKKwl9CisJZnJlZShjb25uLT5jbWtzKTsKKwlmb3IgKGludCBpID0g MDsgaSA8IGNvbm4tPm5jZWtzOyBpKyspCisJeworCQlpZiAoY29ubi0+Y2Vrc1tpXS5jZWtk YXRhKQorCQl7CisJCQlleHBsaWNpdF9iemVybyhjb25uLT5jZWtzW2ldLmNla2RhdGEsIGNv bm4tPmNla3NbaV0uY2VrZGF0YWxlbik7CisJCQlmcmVlKGNvbm4tPmNla3NbaV0uY2VrZGF0 YSk7CisJCX0KKwl9CisJZnJlZShjb25uLT5jZWtzKTsKIAkvKiBOb3RlIHRoYXQgY29ubi0+ UGZkZWJ1ZyBpcyBub3Qgb3VycyB0byBjbG9zZSBvciBmcmVlICovCiAJZnJlZShjb25uLT53 cml0ZV9lcnJfbXNnKTsKIAlmcmVlKGNvbm4tPmluQnVmZmVyKTsKZGlmZiAtLWdpdCBhL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jIGIvc3JjL2ludGVyZmFj ZXMvbGlicHEvZmUtZW5jcnlwdC1vcGVuc3NsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uOTc0YTNhYTgxMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jCkBAIC0wLDAgKzEsNzY2IEBACisv Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBmZS1lbmNyeXB0LW9wZW5zc2wuYworICoJ ICBlbmNyeXB0aW9uIHN1cHBvcnQgdXNpbmcgT3BlblNTTAorICoKKyAqCisgKiBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0 aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9O CisgKgkgIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jCisgKgor ICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzX2ZlLmgi CisKKyNpbmNsdWRlICJmZS1lbmNyeXB0LmgiCisjaW5jbHVkZSAibGlicHEtaW50LmgiCisK KyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgorI2luY2x1ZGUgInBvcnQvcGdf YnN3YXAuaCIKKworI2luY2x1ZGUgPG9wZW5zc2wvZXZwLmg+CisKKworI2lmZGVmIFRFU1Rf RU5DUllQVAorCisvKgorICogVGVzdCBkYXRhIGZyb20KKyAqIDxodHRwczovL2RhdGF0cmFj a2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1z aGEyLTA1I3NlY3Rpb24tNT4KKyAqLworCisvKgorICogVGhlIGRpZmZlcmVudCB0ZXN0IGNh c2VzIGp1c3QgdXNlIGRpZmZlcmVudCBwcmVmaXhlcyBvZiBLLCBzbyBvbmUgY29uc3RhbnQK KyAqIGlzIGVub3VnaCBoZXJlLgorICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBL W10gPSB7CisJMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgw NywgMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwgMHgwYywgMHgwZCwgMHgwZSwgMHgwZiwKKwkw eDEwLCAweDExLCAweDEyLCAweDEzLCAweDE0LCAweDE1LCAweDE2LCAweDE3LCAweDE4LCAw eDE5LCAweDFhLCAweDFiLCAweDFjLCAweDFkLCAweDFlLCAweDFmLAorCTB4MjAsIDB4MjEs IDB4MjIsIDB4MjMsIDB4MjQsIDB4MjUsIDB4MjYsIDB4MjcsIDB4MjgsIDB4MjksIDB4MmEs IDB4MmIsIDB4MmMsIDB4MmQsIDB4MmUsIDB4MmYsCisJMHgzMCwgMHgzMSwgMHgzMiwgMHgz MywgMHgzNCwgMHgzNSwgMHgzNiwgMHgzNywgMHgzOCwgMHgzOSwgMHgzYSwgMHgzYiwgMHgz YywgMHgzZCwgMHgzZSwgMHgzZiwKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFy IFBbXSA9IHsKKwkweDQxLCAweDIwLCAweDYzLCAweDY5LCAweDcwLCAweDY4LCAweDY1LCAw eDcyLCAweDIwLCAweDczLCAweDc5LCAweDczLCAweDc0LCAweDY1LCAweDZkLCAweDIwLAor CTB4NmQsIDB4NzUsIDB4NzMsIDB4NzQsIDB4MjAsIDB4NmUsIDB4NmYsIDB4NzQsIDB4MjAs IDB4NjIsIDB4NjUsIDB4MjAsIDB4NzIsIDB4NjUsIDB4NzEsIDB4NzUsCisJMHg2OSwgMHg3 MiwgMHg2NSwgMHg2NCwgMHgyMCwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg2MiwgMHg2NSwgMHgy MCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwgMHg2NSwKKwkweDc0LCAweDJjLCAweDIwLCAw eDYxLCAweDZlLCAweDY0LCAweDIwLCAweDY5LCAweDc0LCAweDIwLCAweDZkLCAweDc1LCAw eDczLCAweDc0LCAweDIwLCAweDYyLAorCTB4NjUsIDB4MjAsIDB4NjEsIDB4NjIsIDB4NmMs IDB4NjUsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NjYsIDB4NjEsIDB4NmMsIDB4NmMs IDB4MjAsIDB4NjksCisJMHg2ZSwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg3NCwgMHg2OCwgMHg2 NSwgMHgyMCwgMHg2OCwgMHg2MSwgMHg2ZSwgMHg2NCwgMHg3MywgMHgyMCwgMHg2ZiwgMHg2 NiwKKwkweDIwLCAweDc0LCAweDY4LCAweDY1LCAweDIwLCAweDY1LCAweDZlLCAweDY1LCAw eDZkLCAweDc5LCAweDIwLCAweDc3LCAweDY5LCAweDc0LCAweDY4LCAweDZmLAorCTB4NzUs IDB4NzQsIDB4MjAsIDB4NjksIDB4NmUsIDB4NjMsIDB4NmYsIDB4NmUsIDB4NzYsIDB4NjUs IDB4NmUsIDB4NjksIDB4NjUsIDB4NmUsIDB4NjMsIDB4NjUsCit9OworCitzdGF0aWMgY29u c3QgdW5zaWduZWQgY2hhciB0ZXN0X0lWW10gPSB7CisJMHgxYSwgMHhmMywgMHg4YywgMHgy ZCwgMHhjMiwgMHhiOSwgMHg2ZiwgMHhmZCwgMHhkOCwgMHg2NiwgMHg5NCwgMHgwOSwgMHgy MywgMHg0MSwgMHhiYywgMHgwNCwKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFy IHRlc3RfQVtdID0geworCTB4NTQsIDB4NjgsIDB4NjUsIDB4MjAsIDB4NzMsIDB4NjUsIDB4 NjMsIDB4NmYsIDB4NmUsIDB4NjQsIDB4MjAsIDB4NzAsIDB4NzIsIDB4NjksIDB4NmUsIDB4 NjMsCisJMHg2OSwgMHg3MCwgMHg2YywgMHg2NSwgMHgyMCwgMHg2ZiwgMHg2NiwgMHgyMCwg MHg0MSwgMHg3NSwgMHg2NywgMHg3NSwgMHg3MywgMHg3NCwgMHg2NSwgMHgyMCwKKwkweDRi LCAweDY1LCAweDcyLCAweDYzLCAweDZiLCAweDY4LCAweDZmLCAweDY2LCAweDY2LCAweDcz LAorfTsKKworCisjZGVmaW5lIGxpYnBxX2dldHRleHQoeCkgKHgpCisKKyNlbmRpZgkJCQkJ CQkvKiBURVNUX0VOQ1JZUFQgKi8KKworCit1bnNpZ25lZCBjaGFyICoKK2RlY3J5cHRfY2Vr X2Zyb21fZmlsZShQR2Nvbm4gKmNvbm4sIEZJTEUgKmZwLCBpbnQgY21rYWxnLAorCQkJCQkg IGludCBmcm9tbGVuLCBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLAorCQkJCQkgIGludCAq dG9sZW4pCit7CisJY29uc3QgRVZQX01EICptZCA9IE5VTEw7CisJRVZQX1BLRVkgICAqa2V5 ID0gTlVMTDsKKwlSU0EJCSAgICpyc2EgPSBOVUxMOworCUVWUF9QS0VZX0NUWCAqY3R4ID0g TlVMTDsKKwl1bnNpZ25lZCBjaGFyICpvdXQgPSBOVUxMOworCXNpemVfdAkJb3V0bGVuOwor CisJc3dpdGNoIChjbWthbGcpCisJeworCQljYXNlIFBHX0NNS19SU0FFU19PQUVQX1NIQV8x OgorCQkJbWQgPSBFVlBfc2hhMSgpOworCQkJYnJlYWs7CisJCWNhc2UgUEdfQ01LX1JTQUVT X09BRVBfU0hBXzI1NjoKKwkJCW1kID0gRVZQX3NoYTI1NigpOworCQkJYnJlYWs7CisJCWRl ZmF1bHQ6CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJ CQkJCSAgbGlicHFfZ2V0dGV4dCgidW5zdXBwb3J0ZWQgQ01LIGFsZ29yaXRobSBJRDogJWRc biIpLCBjbWthbGcpOworCQkJZ290byBmYWlsOworCX0KKworCXJzYSA9IFJTQV9uZXcoKTsK KwlpZiAoIXJzYSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3Nh Z2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBhbGxvY2F0ZSBSU0Egc3Ry dWN0dXJlOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9n ZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCXJzYSA9IFBFTV9yZWFkX1JTQVBy aXZhdGVLZXkoZnAsICZyc2EsIE5VTEwsIE5VTEwpOworCWlmICghcnNhKQorCXsKKwkJYXBw ZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0 dGV4dCgiY291bGQgbm90IHJlYWQgUlNBIHByaXZhdGUga2V5OiAlc1xuIiksCisJCQkJCQkg IEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZh aWw7CisJfQorCisJa2V5ID0gRVZQX1BLRVlfbmV3KCk7CisJaWYgKCFrZXkpCisJeworCQlh cHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9n ZXR0ZXh0KCJjb3VsZCBub3QgYWxsb2NhdGUgcHJpdmF0ZSBrZXkgc3RydWN0dXJlOiAlc1xu IiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkp OworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKCFFVlBfUEtFWV9hc3NpZ25fUlNBKGtleSwg cnNhKSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJ CQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBhc3NpZ24gcHJpdmF0ZSBrZXk6ICVz XG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigp KSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwljdHggPSBFVlBfUEtFWV9DVFhfbmV3KGtleSwg TlVMTCk7CisJaWYgKCFjdHgpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJy b3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBub3QgYWxsb2NhdGUg cHVibGljIGtleSBhbGdvcml0aG0gY29udGV4dDogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVh c29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0K KworCWlmIChFVlBfUEtFWV9kZWNyeXB0X2luaXQoY3R4KSA8PSAwKQorCXsKKwkJYXBwZW5k UFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4 dCgiZGVjcnlwdGlvbiBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzXG4iKSwKKwkJCQkJCSAg RVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFp bDsKKwl9CisKKwlpZiAoRVZQX1BLRVlfQ1RYX3NldF9yc2FfcGFkZGluZyhjdHgsIFJTQV9Q S0NTMV9PQUVQX1BBRERJTkcpIDw9IDAgfHwKKwkJRVZQX1BLRVlfQ1RYX3NldF9yc2FfbWdm MV9tZChjdHgsIG1kKSA8PSAwIHx8CisJCUVWUF9QS0VZX0NUWF9zZXRfcnNhX29hZXBfbWQo Y3R4LCBtZCkgPD0gMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1l c3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBzZXQgUlNBIHBhcmFt ZXRlcjogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0 X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmIChFVlBfUEtFWV9kZWNyeXB0 KGN0eCwgTlVMTCwgJm91dGxlbiwgZnJvbSwgZnJvbWxlbikgPD0gMCkKKwl7CisJCWFwcGVu ZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRl eHQoIlJTQSBkZWNyeXB0aW9uIGZhaWxlZDogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29u X2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKwor CW91dCA9IG1hbGxvYyhvdXRsZW4pOworCWlmICghb3V0KQorCXsKKwkJYXBwZW5kUFFFeHBC dWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgib3V0 IG9mIG1lbW9yeVxuIikpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKEVWUF9QS0VZX2Rl Y3J5cHQoY3R4LCBvdXQsICZvdXRsZW4sIGZyb20sIGZyb21sZW4pIDw9IDApCisJeworCQlh cHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9n ZXR0ZXh0KCJSU0EgZGVjcnlwdGlvbiBmYWlsZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3Jl YXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWZyZWUob3V0KTsKKwkJ b3V0ID0gTlVMTDsKKwkJZ290byBmYWlsOworCX0KKworCSp0b2xlbiA9IG91dGxlbjsKKwor ZmFpbDoKKwlFVlBfUEtFWV9DVFhfZnJlZShjdHgpOworCUVWUF9QS0VZX2ZyZWUoa2V5KTsK KworCXJldHVybiBvdXQ7Cit9CisKK3N0YXRpYyBjb25zdCBFVlBfQ0lQSEVSICoKK3BnX2Nl a2FsZ190b19vcGVuc3NsX2NpcGhlcihpbnQgY2VrYWxnKQoreworCWNvbnN0IEVWUF9DSVBI RVIgKmNpcGhlcjsKKworCXN3aXRjaCAoY2VrYWxnKQorCXsKKwkJY2FzZSBQR19DRUtfQUVB RF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY6CisJCQljaXBoZXIgPSBFVlBfYWVzXzEyOF9j YmMoKTsKKwkJCWJyZWFrOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18xOTJfQ0JDX0hNQUNf U0hBXzM4NDoKKwkJCWNpcGhlciA9IEVWUF9hZXNfMTkyX2NiYygpOworCQkJYnJlYWs7CisJ CWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0OgorCQljYXNlIFBH X0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjoKKwkJCWNpcGhlciA9IEVWUF9h ZXNfMjU2X2NiYygpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQljaXBoZXIgPSBOVUxM OworCX0KKworCXJldHVybiBjaXBoZXI7Cit9CisKK3N0YXRpYyBjb25zdCBFVlBfTUQgKgor cGdfY2VrYWxnX3RvX29wZW5zc2xfbWQoaW50IGNla2FsZykKK3sKKwljb25zdCBFVlBfTUQg Km1kOworCisJc3dpdGNoIChjZWthbGcpCisJeworCQljYXNlIFBHX0NFS19BRUFEX0FFU18x MjhfQ0JDX0hNQUNfU0hBXzI1NjoKKwkJCW1kID0gRVZQX3NoYTI1NigpOworCQkJYnJlYWs7 CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0OgorCQljYXNl IFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJCW1kID0gRVZQX3No YTM4NCgpOworCQkJYnJlYWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1B Q19TSEFfNTEyOgorCQkJbWQgPSBFVlBfc2hhNTEyKCk7CisJCQlicmVhazsKKwkJZGVmYXVs dDoKKwkJCW1kID0gTlVMTDsKKwl9CisKKwlyZXR1cm4gbWQ7Cit9CisKK3N0YXRpYyBpbnQK K21kX2tleV9sZW5ndGgoY29uc3QgRVZQX01EICptZCkKK3sKKwlpZiAobWQgPT0gRVZQX3No YTI1NigpKQorCQlyZXR1cm4gMTY7CisJZWxzZSBpZiAobWQgPT0gRVZQX3NoYTM4NCgpKQor CQlyZXR1cm4gMjQ7CisJZWxzZSBpZiAobWQgPT0gRVZQX3NoYTUxMigpKQorCQlyZXR1cm4g MzI7CisJZWxzZQorCQlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBpbnQKK21kX2hhc2hfbGVu Z3RoKGNvbnN0IEVWUF9NRCAqbWQpCit7CisJaWYgKG1kID09IEVWUF9zaGEyNTYoKSkKKwkJ cmV0dXJuIDMyOworCWVsc2UgaWYgKG1kID09IEVWUF9zaGEzODQoKSkKKwkJcmV0dXJuIDQ4 OworCWVsc2UgaWYgKG1kID09IEVWUF9zaGE1MTIoKSkKKwkJcmV0dXJuIDY0OworCWVsc2UK KwkJcmV0dXJuIC0xOworfQorCisjaWZuZGVmIFRFU1RfRU5DUllQVAorI2RlZmluZSBQR19B RF9MRU4gNAorI2Vsc2UKKyNkZWZpbmUgUEdfQURfTEVOIHNpemVvZih0ZXN0X0EpCisjZW5k aWYKKworc3RhdGljIGJvb2wKK2dldF9tZXNzYWdlX2F1dGhfdGFnKGNvbnN0IEVWUF9NRCAq bWQsCisJCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICptYWNfa2V5LCBpbnQgbWFjX2tleV9s ZW4sCisJCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICplbmNyLCBpbnQgZW5jcmxlbiwKKwkJ CQkJIGludCBjZWthbGcsCisJCQkJCSB1bnNpZ25lZCBjaGFyICptZF92YWx1ZSwgc2l6ZV90 ICptZF9sZW5fcCwKKwkJCQkJIGNvbnN0IGNoYXIgKiplcnJtc2dwKQoreworCXN0YXRpYyBj aGFyIG1zZ2J1ZlsxMDI0XTsKKwlFVlBfTURfQ1RYICpldnBfbWRfY3R4ID0gTlVMTDsKKwlF VlBfUEtFWSAgICpwa2V5ID0gTlVMTDsKKwlzaXplX3QJCWJ1ZnNpemU7CisJdW5zaWduZWQg Y2hhciAqYnVmID0gTlVMTDsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCWlmIChlbmNy bGVuIDwgMCkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJ IGxpYnBxX2dldHRleHQoImVuY3J5cHRlZCB2YWx1ZSBoYXMgaW52YWxpZCBsZW5ndGgiKSk7 CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJZXZwX21kX2N0 eCA9IEVWUF9NRF9DVFhfbmV3KCk7CisKKwlwa2V5ID0gRVZQX1BLRVlfbmV3X3Jhd19wcml2 YXRlX2tleShFVlBfUEtFWV9ITUFDLCBOVUxMLCBtYWNfa2V5LCBtYWNfa2V5X2xlbik7CisJ aWYgKCFwa2V5KQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJ CQkgbGlicHFfZ2V0dGV4dCgiY291bGQgbm90IGFsbG9jYXRlIGtleSBmb3IgSE1BQzogJXMi KSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJ CSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJYnVmc2l6ZSA9IFBH X0FEX0xFTiArIGVuY3JsZW4gKyBzaXplb2YoaW50NjQpOworCWJ1ZiA9IG1hbGxvYyhidWZz aXplKTsKKwlpZiAoIWJ1ZikKKwl7CisJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgib3V0 IG9mIG1lbW9yeSIpOworCQlnb3RvIGZhaWw7CisJfQorI2lmbmRlZiBURVNUX0VOQ1JZUFQK KwlidWZbMF0gPSAnUCc7CisJYnVmWzFdID0gJ0cnOworCSooaW50MTYgKikgKGJ1ZiArIDIp ID0gcGdfaHRvbjE2KGNla2FsZyk7CisjZWxzZQorCW1lbWNweShidWYsIHRlc3RfQSwgc2l6 ZW9mKHRlc3RfQSkpOworI2VuZGlmCisJbWVtY3B5KGJ1ZiArIFBHX0FEX0xFTiwgZW5jciwg ZW5jcmxlbik7CisJKihpbnQ2NCAqKSAoYnVmICsgUEdfQURfTEVOICsgZW5jcmxlbikgPSBw Z19odG9uNjQoUEdfQURfTEVOICogOCk7CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduSW5pdChl dnBfbWRfY3R4LCBOVUxMLCBtZCwgTlVMTCwgcGtleSkpCisJeworCQlzbnByaW50Zihtc2di dWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkaWdlc3QgaW5pdGlh bGl6YXRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhF UlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsK Kwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduVXBkYXRlKGV2cF9tZF9jdHgsIGJ1ZiwgYnVm c2l6ZSkpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBs aWJwcV9nZXR0ZXh0KCJkaWdlc3Qgc2lnbmluZyBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9y ZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1z Z2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWlmICghRVZQX0RpZ2VzdFNpZ25GaW5hbChl dnBfbWRfY3R4LCBtZF92YWx1ZSwgbWRfbGVuX3ApKQorCXsKKwkJc25wcmludGYobXNnYnVm LCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGlnZXN0IHNpZ25pbmcg ZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vy cm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisJQXNz ZXJ0KCptZF9sZW5fcCA9PSBtZF9oYXNoX2xlbmd0aChtZCkpOworCisJLyogdHJ1bmNhdGUg b3V0cHV0IHRvIGhhbGYgdGhlIGxlbmd0aCwgcGVyIHNwZWMgKi8KKwkqbWRfbGVuX3AgLz0g MjsKKworCXJlc3VsdCA9IHRydWU7CitmYWlsOgorCWZyZWUoYnVmKTsKKwlFVlBfUEtFWV9m cmVlKHBrZXkpOworCUVWUF9NRF9DVFhfZnJlZShldnBfbWRfY3R4KTsKKwlyZXR1cm4gcmVz dWx0OworfQorCit1bnNpZ25lZCBjaGFyICoKK2RlY3J5cHRfdmFsdWUoUEdyZXN1bHQgKnJl cywgY29uc3QgUEdDRUsgKmNlaywgaW50IGNla2FsZywgY29uc3QgdW5zaWduZWQgY2hhciAq aW5wdXQsIGludCBpbnB1dGxlbiwgY29uc3QgY2hhciAqKmVycm1zZ3ApCit7CisJc3RhdGlj IGNoYXIgbXNnYnVmWzEwMjRdOworCisJY29uc3QgdW5zaWduZWQgY2hhciAqaXYgPSBOVUxM OworCXNpemVfdAkJaXZsZW47CisKKwljb25zdCBFVlBfQ0lQSEVSICpjaXBoZXI7CisJY29u c3QgRVZQX01EICptZDsKKwlFVlBfQ0lQSEVSX0NUWCAqZXZwX2NpcGhlcl9jdHggPSBOVUxM OworCWludAkJCWVuY19rZXlfbGVuOworCWludAkJCW1hY19rZXlfbGVuOworCWludAkJCWtl eV9sZW47CisJY29uc3QgdW5zaWduZWQgY2hhciAqZW5jX2tleTsKKwljb25zdCB1bnNpZ25l ZCBjaGFyICptYWNfa2V5OworCXVuc2lnbmVkIGNoYXIgbWRfdmFsdWVbRVZQX01BWF9NRF9T SVpFXTsKKwlzaXplX3QJCW1kX2xlbiA9IHNpemVvZihtZF92YWx1ZSk7CisJc2l6ZV90CQli dWZzaXplOworCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IE5VTEw7CisJdW5zaWduZWQgY2hhciAq ZGVjcjsKKwlpbnQJCQlkZWNybGVuLAorCQkJCWRlY3JsZW4yOworCisJdW5zaWduZWQgY2hh ciAqcmVzdWx0ID0gTlVMTDsKKworCWNpcGhlciA9IHBnX2Nla2FsZ190b19vcGVuc3NsX2Np cGhlcihjZWthbGcpOworCWlmICghY2lwaGVyKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBz aXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgidW5yZWNvZ25pemVkIGVuY3J5 cHRpb24gYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVkIiksIGNla2FsZyk7CisJCSplcnJtc2dw ID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJbWQgPSBwZ19jZWthbGdfdG9fb3Bl bnNzbF9tZChjZWthbGcpOworCWlmICghbWQpCisJeworCQlzbnByaW50Zihtc2didWYsIHNp emVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJ1bnJlY29nbml6ZWQgZGlnZXN0 IGFsZ29yaXRobSBpZGVudGlmaWVyOiAlZCIpLCBjZWthbGcpOworCQkqZXJybXNncCA9IG1z Z2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWV2cF9jaXBoZXJfY3R4ID0gRVZQX0NJUEhF Ul9DVFhfbmV3KCk7CisKKwlpZiAoIUVWUF9EZWNyeXB0SW5pdF9leChldnBfY2lwaGVyX2N0 eCwgY2lwaGVyLCBOVUxMLCBOVUxMLCBOVUxMKSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwg c2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImRlY3J5cHRpb24gaW5pdGlh bGl6YXRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhF UlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsK Kwl9CisKKwllbmNfa2V5X2xlbiA9IEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoZXZwX2Np cGhlcl9jdHgpOworCW1hY19rZXlfbGVuID0gbWRfa2V5X2xlbmd0aChtZCk7CisJa2V5X2xl biA9IG1hY19rZXlfbGVuICsgZW5jX2tleV9sZW47CisKKwlpZiAoY2VrLT5jZWtkYXRhbGVu ICE9IGtleV9sZW4pCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAor CQkJCSBsaWJwcV9nZXR0ZXh0KCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgaGFzIHdyb25nIGxl bmd0aCBmb3IgYWxnb3JpdGhtIChoYXM6ICV6dSwgcmVxdWlyZWQ6ICVkKSIpLAorCQkJCSBj ZWstPmNla2RhdGFsZW4sIGtleV9sZW4pOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290 byBmYWlsOworCX0KKworCWVuY19rZXkgPSBjZWstPmNla2RhdGEgKyBtYWNfa2V5X2xlbjsK KwltYWNfa2V5ID0gY2VrLT5jZWtkYXRhOworCisJaWYgKCFnZXRfbWVzc2FnZV9hdXRoX3Rh ZyhtZCwgbWFjX2tleSwgbWFjX2tleV9sZW4sCisJCQkJCQkJICBpbnB1dCwgaW5wdXRsZW4g LSAobWRfaGFzaF9sZW5ndGgobWQpIC8gMiksCisJCQkJCQkJICBjZWthbGcsCisJCQkJCQkJ ICBtZF92YWx1ZSwgJm1kX2xlbiwKKwkJCQkJCQkgIGVycm1zZ3ApKQorCXsKKwkJZ290byBm YWlsOworCX0KKworCWlmIChtZW1jbXAoaW5wdXQgKyAoaW5wdXRsZW4gLSBtZF9sZW4pLCBt ZF92YWx1ZSwgbWRfbGVuKSAhPSAwKQorCXsKKwkJKmVycm1zZ3AgPSBsaWJwcV9nZXR0ZXh0 KCJNQUMgbWlzbWF0Y2giKTsKKwkJZ290byBmYWlsOworCX0KKworCWl2bGVuID0gRVZQX0NJ UEhFUl9DVFhfaXZfbGVuZ3RoKGV2cF9jaXBoZXJfY3R4KTsKKwlpdiA9IGlucHV0OworCWlu cHV0ICs9IGl2bGVuOworCWlucHV0bGVuIC09IGl2bGVuOworCWlmICghRVZQX0RlY3J5cHRJ bml0X2V4KGV2cF9jaXBoZXJfY3R4LCBOVUxMLCBOVUxMLCBlbmNfa2V5LCBpdikpCisJewor CQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0 KCJkZWNyeXB0aW9uIGluaXRpYWxpemF0aW9uIGZhaWxlZDogJXMiKSwKKwkJCQkgRVJSX3Jl YXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCSplcnJtc2dwID0gbXNn YnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJYnVmc2l6ZSA9IGlucHV0bGVuICsgRVZQX0NJ UEhFUl9DVFhfYmxvY2tfc2l6ZShldnBfY2lwaGVyX2N0eCkgKyAxOworI2lmbmRlZiBURVNU X0VOQ1JZUFQKKwlidWYgPSBwcVJlc3VsdEFsbG9jKHJlcywgYnVmc2l6ZSwgZmFsc2UpOwor I2Vsc2UKKwlidWYgPSBtYWxsb2MoYnVmc2l6ZSk7CisjZW5kaWYKKwlpZiAoIWJ1ZikKKwl7 CisJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgib3V0IG9mIG1lbW9yeSIpOworCQlnb3Rv IGZhaWw7CisJfQorCWRlY3IgPSBidWY7CisJaWYgKCFFVlBfRGVjcnlwdFVwZGF0ZShldnBf Y2lwaGVyX2N0eCwgZGVjciwgJmRlY3JsZW4sIGlucHV0LCBpbnB1dGxlbiAtIG1kX2xlbikp CisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9n ZXR0ZXh0KCJkZWNyeXB0aW9uIGZhaWxlZDogJXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJv cl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQln b3RvIGZhaWw7CisJfQorCWlmICghRVZQX0RlY3J5cHRGaW5hbF9leChldnBfY2lwaGVyX2N0 eCwgZGVjciArIGRlY3JsZW4sICZkZWNybGVuMikpCisJeworCQlzbnByaW50Zihtc2didWYs IHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkZWNyeXB0aW9uIGZhaWxl ZDogJXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigp KSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCWRlY3JsZW4g Kz0gZGVjcmxlbjI7CisJQXNzZXJ0KGRlY3JsZW4gPCBidWZzaXplKTsKKwlkZWNyW2RlY3Js ZW5dID0gJ1wwJzsKKwlyZXN1bHQgPSBkZWNyOworCitmYWlsOgorCUVWUF9DSVBIRVJfQ1RY X2ZyZWUoZXZwX2NpcGhlcl9jdHgpOworCisJcmV0dXJuIHJlc3VsdDsKK30KKworI2lmbmRl ZiBURVNUX0VOQ1JZUFQKK3N0YXRpYyBib29sCittYWtlX3NpdihQR2Nvbm4gKmNvbm4sCisJ CSB1bnNpZ25lZCBjaGFyICppdiwgc2l6ZV90IGl2bGVuLAorCQkgY29uc3QgRVZQX01EICpt ZCwKKwkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2X2tleSwgaW50IGl2X2tleV9sZW4sCisJ CSBjb25zdCB1bnNpZ25lZCBjaGFyICpwbGFpbnRleHQsIGludCBwbGFpbnRleHRfbGVuKQor eworCUVWUF9NRF9DVFggKmV2cF9tZF9jdHggPSBOVUxMOworCUVWUF9QS0VZICAgKnBrZXkg PSBOVUxMOworCXVuc2lnbmVkIGNoYXIgbWRfdmFsdWVbRVZQX01BWF9NRF9TSVpFXTsKKwlz aXplX3QJCW1kX2xlbiA9IHNpemVvZihtZF92YWx1ZSk7CisJYm9vbAkJcmVzdWx0ID0gZmFs c2U7CisKKwlldnBfbWRfY3R4ID0gRVZQX01EX0NUWF9uZXcoKTsKKworCXBrZXkgPSBFVlBf UEtFWV9uZXdfcmF3X3ByaXZhdGVfa2V5KEVWUF9QS0VZX0hNQUMsIE5VTEwsIGl2X2tleSwg aXZfa2V5X2xlbik7CisJaWYgKCFwa2V5KQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNv bm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiY291bGQgbm90IGFs bG9jYXRlIGtleSBmb3IgSE1BQzogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9y X3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmICgh RVZQX0RpZ2VzdFNpZ25Jbml0KGV2cF9tZF9jdHgsIE5VTEwsIG1kLCBOVUxMLCBwa2V5KSkK Kwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkg IGxpYnBxX2dldHRleHQoImRpZ2VzdCBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzXG4iKSwK KwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJ CWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduVXBkYXRlKGV2cF9tZF9j dHgsIHBsYWludGV4dCwgcGxhaW50ZXh0X2xlbikpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZl cigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJkaWdlc3Qg c2lnbmluZyBmYWlsZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJp bmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoIUVWUF9E aWdlc3RTaWduRmluYWwoZXZwX21kX2N0eCwgbWRfdmFsdWUsICZtZF9sZW4pKQorCXsKKwkJ YXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFf Z2V0dGV4dCgiZGlnZXN0IHNpZ25pbmcgZmFpbGVkOiAlcyIpLAorCQkJCQkJICBFUlJfcmVh c29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0K KwlBc3NlcnQobWRfbGVuID09IG1kX2hhc2hfbGVuZ3RoKG1kKSk7CisJbWVtY3B5KGl2LCBt ZF92YWx1ZSwgaXZsZW4pOworCisJcmVzdWx0ID0gdHJ1ZTsKK2ZhaWw6CisJRVZQX1BLRVlf ZnJlZShwa2V5KTsKKwlFVlBfTURfQ1RYX2ZyZWUoZXZwX21kX2N0eCk7CisJcmV0dXJuIHJl c3VsdDsKK30KKyNlbmRpZgkJCQkJCQkvKiBURVNUX0VOQ1JZUFQgKi8KKwordW5zaWduZWQg Y2hhciAqCitlbmNyeXB0X3ZhbHVlKFBHY29ubiAqY29ubiwgY29uc3QgUEdDRUsgKmNlaywg aW50IGNla2FsZywgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUsIGludCAqbmJ5dGVzcCwg Ym9vbCBlbmNfZGV0KQoreworCWludAkJCW5ieXRlcyA9ICpuYnl0ZXNwOworCXVuc2lnbmVk IGNoYXIgaXZbRVZQX01BWF9JVl9MRU5HVEhdOworCXNpemVfdAkJaXZsZW47CisJY29uc3Qg RVZQX0NJUEhFUiAqY2lwaGVyOworCWNvbnN0IEVWUF9NRCAqbWQ7CisJRVZQX0NJUEhFUl9D VFggKmV2cF9jaXBoZXJfY3R4ID0gTlVMTDsKKwlpbnQJCQllbmNfa2V5X2xlbjsKKwlpbnQJ CQltYWNfa2V5X2xlbjsKKwlpbnQJCQlrZXlfbGVuOworCWNvbnN0IHVuc2lnbmVkIGNoYXIg KmVuY19rZXk7CisJY29uc3QgdW5zaWduZWQgY2hhciAqbWFjX2tleTsKKwlzaXplX3QJCWJ1 ZnNpemU7CisJdW5zaWduZWQgY2hhciAqYnVmID0gTlVMTDsKKwl1bnNpZ25lZCBjaGFyICpl bmNyOworCWludAkJCWVuY3JsZW4sCisJCQkJZW5jcmxlbjI7CisKKwljb25zdCBjaGFyICpl cnJtc2c7CisJdW5zaWduZWQgY2hhciBtZF92YWx1ZVtFVlBfTUFYX01EX1NJWkVdOworCXNp emVfdAkJbWRfbGVuID0gc2l6ZW9mKG1kX3ZhbHVlKTsKKwlzaXplX3QJCWJ1ZjJzaXplOwor CXVuc2lnbmVkIGNoYXIgKmJ1ZjIgPSBOVUxMOworCisJdW5zaWduZWQgY2hhciAqcmVzdWx0 ID0gTlVMTDsKKworCWNpcGhlciA9IHBnX2Nla2FsZ190b19vcGVuc3NsX2NpcGhlcihjZWth bGcpOworCWlmICghY2lwaGVyKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVy cm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgidW5yZWNvZ25pemVkIGVuY3J5 cHRpb24gYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVkXG4iKSwgY2VrYWxnKTsKKwkJZ290byBm YWlsOworCX0KKworCW1kID0gcGdfY2VrYWxnX3RvX29wZW5zc2xfbWQoY2VrYWxnKTsKKwlp ZiAoIW1kKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwK KwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgidW5yZWNvZ25pemVkIGRpZ2VzdCBhbGdvcml0aG0g aWRlbnRpZmllcjogJWRcbiIpLCBjZWthbGcpOworCQlnb3RvIGZhaWw7CisJfQorCisJZXZw X2NpcGhlcl9jdHggPSBFVlBfQ0lQSEVSX0NUWF9uZXcoKTsKKworCWlmICghRVZQX0VuY3J5 cHRJbml0X2V4KGV2cF9jaXBoZXJfY3R4LCBjaXBoZXIsIE5VTEwsIE5VTEwsIE5VTEwpKQor CXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAg bGlicHFfZ2V0dGV4dCgiZW5jcnlwdGlvbiBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzXG4i KSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7 CisJCWdvdG8gZmFpbDsKKwl9CisKKwllbmNfa2V5X2xlbiA9IEVWUF9DSVBIRVJfQ1RYX2tl eV9sZW5ndGgoZXZwX2NpcGhlcl9jdHgpOworCW1hY19rZXlfbGVuID0gbWRfa2V5X2xlbmd0 aChtZCk7CisJa2V5X2xlbiA9IG1hY19rZXlfbGVuICsgZW5jX2tleV9sZW47CisKKwlpZiAo Y2VrLT5jZWtkYXRhbGVuICE9IGtleV9sZW4pCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigm Y29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb2x1bW4gZW5j cnlwdGlvbiBrZXkgaGFzIHdyb25nIGxlbmd0aCBmb3IgYWxnb3JpdGhtIChoYXM6ICV6dSwg cmVxdWlyZWQ6ICVkKVxuIiksCisJCQkJCQkgIGNlay0+Y2VrZGF0YWxlbiwga2V5X2xlbik7 CisJCWdvdG8gZmFpbDsKKwl9CisKKwllbmNfa2V5ID0gY2VrLT5jZWtkYXRhICsgbWFjX2tl eV9sZW47CisJbWFjX2tleSA9IGNlay0+Y2VrZGF0YTsKKworCWl2bGVuID0gRVZQX0NJUEhF Ul9DVFhfaXZfbGVuZ3RoKGV2cF9jaXBoZXJfY3R4KTsKKwlBc3NlcnQoaXZsZW4gPD0gc2l6 ZW9mKGl2KSk7CisJaWYgKGVuY19kZXQpCisJeworI2lmbmRlZiBURVNUX0VOQ1JZUFQKKwkJ bWFrZV9zaXYoY29ubiwgaXYsIGl2bGVuLCBtZCwgbWFjX2tleSwgbWFjX2tleV9sZW4sIHZh bHVlLCBuYnl0ZXMpOworI2Vsc2UKKwkJbWVtY3B5KGl2LCB0ZXN0X0lWLCBpdmxlbik7Cisj ZW5kaWYKKwl9CisJZWxzZQorCQlwZ19zdHJvbmdfcmFuZG9tKGl2LCBpdmxlbik7CisJaWYg KCFFVlBfRW5jcnlwdEluaXRfZXgoZXZwX2NpcGhlcl9jdHgsIE5VTEwsIE5VTEwsIGVuY19r ZXksIGl2KSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2Us CisJCQkJCQkgIGxpYnBxX2dldHRleHQoImVuY3J5cHRpb24gaW5pdGlhbGl6YXRpb24gZmFp bGVkOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRf ZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJYnVmc2l6ZSA9IGl2bGVuICsgKG5i eXRlcyArIDIgKiBFVlBfQ0lQSEVSX0NUWF9ibG9ja19zaXplKGV2cF9jaXBoZXJfY3R4KSAt IDEpOworCWJ1ZiA9IG1hbGxvYyhidWZzaXplKTsKKwlpZiAoIWJ1ZikKKwl7CisJCWFwcGVu ZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRl eHQoIm91dCBvZiBtZW1vcnlcbiIpKTsKKwkJZ290byBmYWlsOworCX0KKwltZW1jcHkoYnVm LCBpdiwgaXZsZW4pOworCWVuY3IgPSBidWYgKyBpdmxlbjsKKwlpZiAoIUVWUF9FbmNyeXB0 VXBkYXRlKGV2cF9jaXBoZXJfY3R4LCBlbmNyLCAmZW5jcmxlbiwgdmFsdWUsIG5ieXRlcykp CisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJ ICBsaWJwcV9nZXR0ZXh0KCJlbmNyeXB0aW9uIGZhaWxlZDogJXNcbiIpLAorCQkJCQkJICBF UlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWls OworCX0KKwlpZiAoIUVWUF9FbmNyeXB0RmluYWxfZXgoZXZwX2NpcGhlcl9jdHgsIGVuY3Ig KyBlbmNybGVuLCAmZW5jcmxlbjIpKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4t PmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiZW5jcnlwdGlvbiBmYWls ZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9l cnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisJZW5jcmxlbiArPSBlbmNybGVuMjsKKwor CWVuY3IgLT0gaXZsZW47CisJZW5jcmxlbiArPSBpdmxlbjsKKworCUFzc2VydChlbmNybGVu IDw9IGJ1ZnNpemUpOworCisJaWYgKCFnZXRfbWVzc2FnZV9hdXRoX3RhZyhtZCwgbWFjX2tl eSwgbWFjX2tleV9sZW4sCisJCQkJCQkJICBlbmNyLCBlbmNybGVuLAorCQkJCQkJCSAgY2Vr YWxnLAorCQkJCQkJCSAgbWRfdmFsdWUsICZtZF9sZW4sCisJCQkJCQkJICAmZXJybXNnKSkK Kwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsICIlc1xuIiwg ZXJybXNnKTsKKwkJZ290byBmYWlsOworCX0KKworCWJ1ZjJzaXplID0gZW5jcmxlbiArIG1k X2xlbjsKKwlidWYyID0gbWFsbG9jKGJ1ZjJzaXplKTsKKwlpZiAoIWJ1ZjIpCisJeworCQlh cHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9n ZXR0ZXh0KCJvdXQgb2YgbWVtb3J5XG4iKSk7CisJCWdvdG8gZmFpbDsKKwl9CisJbWVtY3B5 KGJ1ZjIsIGVuY3IsIGVuY3JsZW4pOworCW1lbWNweShidWYyICsgZW5jcmxlbiwgbWRfdmFs dWUsIG1kX2xlbik7CisKKwlyZXN1bHQgPSBidWYyOworCW5ieXRlcyA9IGJ1ZjJzaXplOwor CitmYWlsOgorCWZyZWUoYnVmKTsKKwlFVlBfQ0lQSEVSX0NUWF9mcmVlKGV2cF9jaXBoZXJf Y3R4KTsKKworCSpuYnl0ZXNwID0gbmJ5dGVzOworCXJldHVybiByZXN1bHQ7Cit9CisKKwor LyoKKyAqIFJ1biB0ZXN0IGNhc2VzCisgKi8KKyNpZmRlZiBURVNUX0VOQ1JZUFQKKworc3Rh dGljIHZvaWQKK2RlYnVnX3ByaW50X2hleChjb25zdCBjaGFyICpuYW1lLCBjb25zdCB1bnNp Z25lZCBjaGFyICp2YWwsIGludCBsZW4pCit7CisJcHJpbnRmKCIlcyA9IiwgbmFtZSk7CisJ Zm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykKKwl7CisJCWlmIChpICUgMTYgPT0gMCkK KwkJCXByaW50ZigiXG4iKTsKKwkJZWxzZQorCQkJcHJpbnRmKCIgIik7CisJCXByaW50Zigi JTAyeCIsIHZhbFtpXSk7CisJfQorCXByaW50ZigiXG4iKTsKK30KKworc3RhdGljIHZvaWQK K3Rlc3RfY2FzZShpbnQgYWxnLCBjb25zdCB1bnNpZ25lZCBjaGFyICpLLCBzaXplX3QgS19s ZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKlAsIHNpemVfdCBQX2xlbikKK3sKKwl1bnNpZ25l ZCBjaGFyICpDOworCWludAkJCW5ieXRlczsKKwlQR0NFSwkJY2VrOworCisJbmJ5dGVzID0g UF9sZW47CisJY2VrLmNla2RhdGEgPSB1bmNvbnN0aWZ5KHVuc2lnbmVkIGNoYXIgKiwgSyk7 CisJY2VrLmNla2RhdGFsZW4gPSBLX2xlbjsKKworCUMgPSBlbmNyeXB0X3ZhbHVlKE5VTEws ICZjZWssIGFsZywgUCwgJm5ieXRlcywgdHJ1ZSk7CisJZGVidWdfcHJpbnRfaGV4KCJDIiwg QywgbmJ5dGVzKTsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sK KwlwcmludGYoIjUuMVxuIik7CisJdGVzdF9jYXNlKFBHX0NFS19BRUFEX0FFU18xMjhfQ0JD X0hNQUNfU0hBXzI1NiwgSywgMzIsIFAsIHNpemVvZihQKSk7CisJcHJpbnRmKCI1LjJcbiIp OworCXRlc3RfY2FzZShQR19DRUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQsIEss IDQ4LCBQLCBzaXplb2YoUCkpOworCXByaW50ZigiNS4zXG4iKTsKKwl0ZXN0X2Nhc2UoUEdf Q0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0LCBLLCA1NiwgUCwgc2l6ZW9mKFAp KTsKKwlwcmludGYoIjUuNFxuIik7CisJdGVzdF9jYXNlKFBHX0NFS19BRUFEX0FFU18yNTZf Q0JDX0hNQUNfU0hBXzUxMiwgSywgNjQsIFAsIHNpemVvZihQKSk7CisKKwlyZXR1cm4gMDsK K30KKworI2VuZGlmCQkJCQkJCS8qIFRFU1RfRU5DUllQVCAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oIGIvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtZW5jcnlwdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmIw MDkzZGM1MjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1l bmNyeXB0LmgKQEAgLTAsMCArMSwzMyBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgor ICogZmUtZW5jcnlwdC5oCisgKgorICogZW5jcnlwdGlvbiBzdXBwb3J0CisgKgorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMg b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIElERU5USUZJQ0FUSU9O CisgKgkgIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaAorICoKKyAqLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgRkVfRU5DUllQVF9ICisjZGVmaW5lIEZF X0VOQ1JZUFRfSAorCisjaW5jbHVkZSAibGlicHEtZmUuaCIKKyNpbmNsdWRlICJsaWJwcS1p bnQuaCIKKworZXh0ZXJuIHVuc2lnbmVkIGNoYXIgKmRlY3J5cHRfY2VrX2Zyb21fZmlsZShQ R2Nvbm4gKmNvbm4sIEZJTEUgKmZwLCBpbnQgY21rYWxnLAorCQkJCQkJCQkJCQlpbnQgZnJv bWxlbiwgY29uc3QgdW5zaWduZWQgY2hhciAqZnJvbSwKKwkJCQkJCQkJCQkJaW50ICp0b2xl bik7CisKK2V4dGVybiB1bnNpZ25lZCBjaGFyICpkZWNyeXB0X3ZhbHVlKFBHcmVzdWx0ICpy ZXMsIGNvbnN0IFBHQ0VLICpjZWssIGludCBjZWthbGcsCisJCQkJCQkJCQljb25zdCB1bnNp Z25lZCBjaGFyICppbnB1dCwgaW50IGlucHV0bGVuLAorCQkJCQkJCQkJY29uc3QgY2hhciAq KmVycm1zZ3ApOworCitleHRlcm4gdW5zaWduZWQgY2hhciAqZW5jcnlwdF92YWx1ZShQR2Nv bm4gKmNvbm4sIGNvbnN0IFBHQ0VLICpjZWssIGludCBjZWthbGcsCisJCQkJCQkJCQljb25z dCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50ICpuYnl0ZXNwLCBib29sIGVuY19kZXQpOwor CisjZW5kaWYJCQkJCQkJLyogRkVfRU5DUllQVF9IICovCmRpZmYgLS1naXQgYS9zcmMvaW50 ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVj LmMKaW5kZXggYmI4NzRmN2Y1MC4uNGI1MGIyODVlMCAxMDA2NDQKLS0tIGEvc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtZXhlYy5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4 ZWMuYwpAQCAtMjQsNiArMjQsOSBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2VuZGlmCiAK KyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgorI2luY2x1ZGUgImNvbW1vbi9i YXNlNjQuaCIKKyNpbmNsdWRlICJmZS1lbmNyeXB0LmgiCiAjaW5jbHVkZSAibGlicHEtZmUu aCIKICNpbmNsdWRlICJsaWJwcS1pbnQuaCIKICNpbmNsdWRlICJtYi9wZ193Y2hhci5oIgpA QCAtNzIsNyArNzUsOSBAQCBzdGF0aWMgaW50CVBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4gKmNv bm4sCiAJCQkJCQkJY29uc3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVzLAogCQkJCQkJCWNv bnN0IGludCAqcGFyYW1MZW5ndGhzLAogCQkJCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JtYXRz LAotCQkJCQkJCWludCByZXN1bHRGb3JtYXQpOworCQkJCQkJCWNvbnN0IGludCAqcGFyYW1G b3JjZUNvbHVtbkVuY3J5cHRpb25zLAorCQkJCQkJCWludCByZXN1bHRGb3JtYXQsCisJCQkJ CQkJUEdyZXN1bHQgKnBhcmFtRGVzYyk7CiBzdGF0aWMgdm9pZCBwYXJzZUlucHV0KFBHY29u biAqY29ubik7CiBzdGF0aWMgUEdyZXN1bHQgKmdldENvcHlSZXN1bHQoUEdjb25uICpjb25u LCBFeGVjU3RhdHVzVHlwZSBjb3B5dHlwZSk7CiBzdGF0aWMgYm9vbCBQUWV4ZWNTdGFydChQ R2Nvbm4gKmNvbm4pOwpAQCAtMTE4NSw2ICsxMTkwLDM4MiBAQCBwcVNhdmVQYXJhbWV0ZXJT dGF0dXMoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1 ZSkKIAl9CiB9CiAKK2ludAorcHFTYXZlQ29sdW1uTWFzdGVyS2V5KFBHY29ubiAqY29ubiwg aW50IGtleWlkLCBjb25zdCBjaGFyICprZXluYW1lLAorCQkJCQkgIGNvbnN0IGNoYXIgKmtl eXJlYWxtKQoreworCWNoYXIJICAgKmtleW5hbWVfY29weTsKKwljaGFyCSAgICprZXlyZWFs bV9jb3B5OworCWJvb2wJCWZvdW5kOworCisJa2V5bmFtZV9jb3B5ID0gc3RyZHVwKGtleW5h bWUpOworCWlmICgha2V5bmFtZV9jb3B5KQorCQlyZXR1cm4gRU9GOworCWtleXJlYWxtX2Nv cHkgPSBzdHJkdXAoa2V5cmVhbG0pOworCWlmICgha2V5cmVhbG1fY29weSkKKwl7CisJCWZy ZWUoa2V5bmFtZV9jb3B5KTsKKwkJcmV0dXJuIEVPRjsKKwl9CisKKwlmb3VuZCA9IGZhbHNl OworCWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+bmNta3M7IGkrKykKKwl7CisJCXN0cnVj dCBwZ19jbWsgKmNoZWNrY21rID0gJmNvbm4tPmNta3NbaV07CisKKwkJLyogcmVwbGFjZSBl eGlzdGluZz8gKi8KKwkJaWYgKGNoZWNrY21rLT5jbWtpZCA9PSBrZXlpZCkKKwkJeworCQkJ ZnJlZShjaGVja2Ntay0+Y21rbmFtZSk7CisJCQlmcmVlKGNoZWNrY21rLT5jbWtyZWFsbSk7 CisJCQljaGVja2Ntay0+Y21rbmFtZSA9IGtleW5hbWVfY29weTsKKwkJCWNoZWNrY21rLT5j bWtyZWFsbSA9IGtleXJlYWxtX2NvcHk7CisJCQlmb3VuZCA9IHRydWU7CisJCQlicmVhazsK KwkJfQorCX0KKworCS8qIGFwcGVuZCBuZXc/ICovCisJaWYgKCFmb3VuZCkKKwl7CisJCWlu dAkJCW5ld25jbWtzOworCQlzdHJ1Y3QgcGdfY21rICpuZXdjbWtzOworCQlzdHJ1Y3QgcGdf Y21rICpuZXdjbWs7CisKKwkJbmV3bmNta3MgPSBjb25uLT5uY21rcyArIDE7CisJCWlmIChu ZXduY21rcyA8PSAwKQorCQkJcmV0dXJuIEVPRjsKKwkJbmV3Y21rcyA9IHJlYWxsb2MoY29u bi0+Y21rcywgbmV3bmNta3MgKiBzaXplb2Yoc3RydWN0IHBnX2NtaykpOworCQlpZiAoIW5l d2Nta3MpCisJCXsKKwkJCWZyZWUoa2V5bmFtZV9jb3B5KTsKKwkJCWZyZWUoa2V5cmVhbG1f Y29weSk7CisJCQlyZXR1cm4gRU9GOworCQl9CisKKwkJbmV3Y21rID0gJm5ld2Nta3NbbmV3 bmNta3MgLSAxXTsKKwkJbmV3Y21rLT5jbWtpZCA9IGtleWlkOworCQluZXdjbWstPmNta25h bWUgPSBrZXluYW1lX2NvcHk7CisJCW5ld2Ntay0+Y21rcmVhbG0gPSBrZXlyZWFsbV9jb3B5 OworCisJCWNvbm4tPm5jbWtzID0gbmV3bmNta3M7CisJCWNvbm4tPmNta3MgPSBuZXdjbWtz OworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogUmVwbGFjZSBwbGFjZWhvbGRlcnMg aW4gaW5wdXQgc3RyaW5nLiAgUmV0dXJuIHZhbHVlIG1hbGxvYydlZC4KKyAqLworc3RhdGlj IGNoYXIgKgorcmVwbGFjZV9jbWtfcGxhY2Vob2xkZXJzKGNvbnN0IGNoYXIgKmluLCBjb25z dCBjaGFyICpjbWtuYW1lLCBjb25zdCBjaGFyICpjbWtyZWFsbSwgaW50IGNta2FsZywgY29u c3QgY2hhciAqYjY0ZGF0YSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEgYnVmOworCisJaW5pdFBR RXhwQnVmZmVyKCZidWYpOworCisJZm9yIChjb25zdCBjaGFyICpwID0gaW47ICpwOyBwKysp CisJeworCQlpZiAocFswXSA9PSAnJScpCisJCXsKKwkJCXN3aXRjaCAocFsxXSkKKwkJCXsK KwkJCQljYXNlICdhJzoKKwkJCQkJeworCQkJCQkJY29uc3QgY2hhciAqczsKKworCQkJCQkJ c3dpdGNoIChjbWthbGcpCisJCQkJCQl7CisJCQkJCQkJY2FzZSBQR19DTUtfUlNBRVNfT0FF UF9TSEFfMToKKwkJCQkJCQkJcyA9ICJSU0FFU19PQUVQX1NIQV8xIjsKKwkJCQkJCQkJYnJl YWs7CisJCQkJCQkJY2FzZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMjU2OgorCQkJCQkJCQlz ID0gIlJTQUVTX09BRVBfU0hBXzI1NiI7CisJCQkJCQkJCWJyZWFrOworCQkJCQkJCWRlZmF1 bHQ6CisJCQkJCQkJCXMgPSAiSU5WQUxJRCI7CisJCQkJCQl9CisJCQkJCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cigmYnVmLCBzKTsKKwkJCQkJfQorCQkJCQlwKys7CisJCQkJCWJyZWFrOwor CQkJCWNhc2UgJ2InOgorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCBiNjRkYXRh KTsKKwkJCQkJcCsrOworCQkJCQlicmVhazsKKwkJCQljYXNlICdrJzoKKwkJCQkJYXBwZW5k UFFFeHBCdWZmZXJTdHIoJmJ1ZiwgY21rbmFtZSk7CisJCQkJCXArKzsKKwkJCQkJYnJlYWs7 CisJCQkJY2FzZSAncic6CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsIGNta3Jl YWxtKTsKKwkJCQkJcCsrOworCQkJCQlicmVhazsKKwkJCQlkZWZhdWx0OgorCQkJCQlhcHBl bmRQUUV4cEJ1ZmZlckNoYXIoJmJ1ZiwgcFswXSk7CisJCQl9CisJCX0KKwkJZWxzZQorCQkJ YXBwZW5kUFFFeHBCdWZmZXJDaGFyKCZidWYsIHBbMF0pOworCX0KKworCXJldHVybiBidWYu ZGF0YTsKK30KKworI2lmbmRlZiBVU0VfU1NMCisvKgorICogRHVtbXkgaW1wbGVtZW50YXRp b24gZm9yIG5vbi1TU0wgYnVpbGRzCisgKi8KK3Vuc2lnbmVkIGNoYXIgKgorZGVjcnlwdF9j ZWtfZnJvbV9maWxlKFBHY29ubiAqY29ubiwgRklMRSAqZnAsIGludCBjbWthbGcsCisJCQkJ CSAgaW50IGZyb21sZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZyb20sCisJCQkJCSAgaW50 ICp0b2xlbikKK3sKKwlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAor CQkJCQkgIGxpYnBxX2dldHRleHQoImNvbHVtbiBlbmNyeXB0aW9uIG5vdCBzdXBwb3J0ZWQg YnkgdGhpcyBidWlsZFxuIikpOworCXJldHVybiBOVUxMOworfQorI2VuZGlmCisKKy8qCisg KiBEZWNyeXB0IGEgQ0VLIHVzaW5nIHRoZSBnaXZlbiBDTUsuICBUaGUgY2lwaGVydGV4dCBp cyBwYXNzZWQgaW4KKyAqICJmcm9tIiBhbmQgImZyb21sZW4iLiAgUmV0dXJuIHRoZSBkZWNy eXB0ZWQgdmFsdWUgaW4gYSBtYWxsb2MnZWQgYXJlYSwgaXRzCisgKiBsZW5ndGggdmlhICJ0 b2xlbiIuICBSZXR1cm4gTlVMTCBvbiBlcnJvcjsgYWRkIGVycm9yIG1lc3NhZ2VzIGRpcmVj dGx5IHRvCisgKiAiY29ubiIuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBjaGFyICoKK2RlY3J5 cHRfY2VrKFBHY29ubiAqY29ubiwgY29uc3QgUEdDTUsgKmNtaywgaW50IGNta2FsZywKKwkJ CWludCBmcm9tbGVuLCBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLAorCQkJaW50ICp0b2xl bikKK3sKKwljaGFyCSAgICpjbWtsb29rdXA7CisJYm9vbAkJZm91bmQgPSBmYWxzZTsKKwl1 bnNpZ25lZCBjaGFyICpyZXN1bHQgPSBOVUxMOworCisJY21rbG9va3VwID0gc3RyZHVwKGNv bm4tPmNta2xvb2t1cCA/IGNvbm4tPmNta2xvb2t1cCA6ICIiKTsKKworCWlmICghY21rbG9v a3VwKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwgbGli cHFfZ2V0dGV4dCgib3V0IG9mIG1lbW9yeVxuIikpOworCQlyZXR1cm4gTlVMTDsKKwl9CisK KwkvKgorCSAqIEFuYWx5emUgc2VtaWNvbG9uLXNlcGFyYXRlZCBsaXN0CisJICovCisJZm9y IChjaGFyICpzID0gc3RydG9rKGNta2xvb2t1cCwgIjsiKTsgczsgcyA9IHN0cnRvayhOVUxM LCAiOyIpKQorCXsKKwkJY2hhcgkgICAqc2VwOworCisJCS8qIHNwbGl0IGZvdW5kIHRva2Vu IGF0ICc9JyAqLworCQlzZXAgPSBzdHJjaHIocywgJz0nKTsKKwkJaWYgKCFzZXApCisJCXsK KwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJICBs aWJwcV9nZXR0ZXh0KCJzeW50YXggZXJyb3IgaW4gQ01LIGxvb2t1cCBzcGVjaWZpY2F0aW9u LCBtaXNzaW5nIFwiJWNcIjogJXNcbiIpLCAnPScsIHMpOworCQkJYnJlYWs7CisJCX0KKwor CQkvKiBtYXRjaGluZyByZWFsbT8gKi8KKwkJaWYgKHN0cm5jbXAocywgIioiLCBzZXAgLSBz KSA9PSAwIHx8IHN0cm5jbXAocywgY21rLT5jbWtyZWFsbSwgc2VwIC0gcykgPT0gMCkKKwkJ eworCQkJY2hhcgkgICAqc2VwMjsKKworCQkJZm91bmQgPSB0cnVlOworCisJCQlzZXAyID0g c3RyY2hyKHNlcCwgJzonKTsKKwkJCWlmICghc2VwMikKKwkJCXsKKwkJCQlhcHBlbmRQUUV4 cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkgIGxpYnBxX2dldHRleHQo InN5bnRheCBlcnJvciBpbiBDTUsgbG9va3VwIHNwZWNpZmljYXRpb24sIG1pc3NpbmcgXCIl Y1wiOiAlc1xuIiksICc6Jywgcyk7CisJCQkJZ290byBmYWlsOworCQkJfQorCisJCQlpZiAo c3RybmNtcChzZXAgKyAxLCAiZmlsZSIsIHNlcDIgLSAoc2VwICsgMSkpID09IDApCisJCQl7 CisJCQkJY2hhcgkgICAqY21rZmlsZW5hbWU7CisJCQkJRklMRQkgICAqZnA7CisKKwkJCQlj bWtmaWxlbmFtZSA9IHJlcGxhY2VfY21rX3BsYWNlaG9sZGVycyhzZXAyICsgMSwgY21rLT5j bWtuYW1lLCBjbWstPmNta3JlYWxtLCBjbWthbGcsICJJTlZBTElEIik7CisJCQkJZnAgPSBm b3BlbihjbWtmaWxlbmFtZSwgInJiIik7CisJCQkJaWYgKGZwKQorCQkJCXsKKwkJCQkJcmVz dWx0ID0gZGVjcnlwdF9jZWtfZnJvbV9maWxlKGNvbm4sIGZwLCBjbWthbGcsIGZyb21sZW4s IGZyb20sIHRvbGVuKTsKKwkJCQkJZmNsb3NlKGZwKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJ CXsKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJ CQkJCSAgbGlicHFfZ2V0dGV4dCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCI6ICVtXG4i KSwgY21rZmlsZW5hbWUpOworCQkJCQlmcmVlKGNta2ZpbGVuYW1lKTsKKwkJCQkJZ290byBm YWlsOworCQkJCX0KKwkJCQlmcmVlKGNta2ZpbGVuYW1lKTsKKwkJCX0KKwkJCWVsc2UgaWYg KHN0cm5jbXAoc2VwICsgMSwgInJ1biIsIHNlcDIgLSAoc2VwICsgMSkpID09IDApCisJCQl7 CisJCQkJaW50CQkJZW5jbGVuOworCQkJCWNoYXIJICAgKmVuYzsKKwkJCQljaGFyCSAgICpj b21tYW5kOworCQkJCUZJTEUJICAgKmZwOworCQkJCWNoYXIJCWJ1Zls0MDk2XTsKKworCQkJ CWVuY2xlbiA9IHBnX2I2NF9lbmNfbGVuKGZyb21sZW4pOworCQkJCWVuYyA9IG1hbGxvYyhl bmNsZW4gKyAxKTsKKwkJCQlpZiAoIWVuYykKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVm ZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsIGxpYnBxX2dldHRleHQoIm91dCBvZiBtZW1vcnlc biIpKTsKKwkJCQkJZ290byBmYWlsOworCQkJCX0KKwkJCQllbmNsZW4gPSBwZ19iNjRfZW5j b2RlKChjb25zdCBjaGFyICopIGZyb20sIGZyb21sZW4sIGVuYywgZW5jbGVuKTsKKwkJCQlp ZiAoZW5jbGVuIDwgMCkKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5l cnJvck1lc3NhZ2UsIGxpYnBxX2dldHRleHQoImJhc2U2NCBlbmNvZGluZyBmYWlsZWRcbiIp KTsKKwkJCQkJZnJlZShlbmMpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCQkJCWNvbW1h bmQgPSByZXBsYWNlX2Nta19wbGFjZWhvbGRlcnMoc2VwMiArIDEsIGNtay0+Y21rbmFtZSwg Y21rLT5jbWtyZWFsbSwgY21rYWxnLCBlbmMpOworCQkJCWZyZWUoZW5jKTsKKwkJCQlmcCA9 IHBvcGVuKGNvbW1hbmQsICJyIik7CisJCQkJaWYgKCFmcCkKKwkJCQl7CisJCQkJCWFwcGVu ZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCQkgIGxpYnBxX2dl dHRleHQoImNvdWxkIG5vdCBydW4gY29tbWFuZCBcIiVzXCI6ICVtXG4iKSwgY29tbWFuZCk7 CisJCQkJCWZyZWUoY29tbWFuZCk7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJCQkJZnJl ZShjb21tYW5kKTsKKwkJCQlpZiAoZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgZnApKQorCQkJ CXsKKwkJCQkJaW50CQkJbGluZWxlbjsKKwkJCQkJaW50CQkJZGVjbGVuOworCQkJCQljaGFy CSAgICpkZWM7CisKKwkJCQkJbGluZWxlbiA9IHN0cmxlbihidWYpOworCQkJCQlpZiAoYnVm W2xpbmVsZW4gLSAxXSA9PSAnXG4nKQorCQkJCQl7CisJCQkJCQlidWZbbGluZWxlbiAtIDFd ID0gJ1wwJzsKKwkJCQkJCWxpbmVsZW4tLTsKKwkJCQkJfQorCQkJCQlkZWNsZW4gPSBwZ19i NjRfZGVjX2xlbihsaW5lbGVuKTsKKwkJCQkJZGVjID0gbWFsbG9jKGRlY2xlbik7CisJCQkJ CWlmICghZGVjKQorCQkJCQl7CisJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJy b3JNZXNzYWdlLCBsaWJwcV9nZXR0ZXh0KCJvdXQgb2YgbWVtb3J5XG4iKSk7CisJCQkJCQln b3RvIGZhaWw7CisJCQkJCX0KKwkJCQkJZGVjbGVuID0gcGdfYjY0X2RlY29kZShidWYsIGxp bmVsZW4sIGRlYywgZGVjbGVuKTsKKwkJCQkJaWYgKGRlY2xlbiA8IDApCisJCQkJCXsKKwkJ CQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCQkJ ICBsaWJwcV9nZXR0ZXh0KCJiYXNlNjQgZGVjb2RpbmcgZmFpbGVkXG4iKSk7CisJCQkJCQlm cmVlKGRlYyk7CisJCQkJCQlnb3RvIGZhaWw7CisJCQkJCX0KKwkJCQkJcmVzdWx0ID0gKHVu c2lnbmVkIGNoYXIgKikgZGVjOworCQkJCQkqdG9sZW4gPSBkZWNsZW47CisJCQkJfQorCQkJ CWVsc2UKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3Nh Z2UsCisJCQkJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCByZWFkIGZyb20gY29t bWFuZDogJW1cbiIpKTsKKwkJCQkJcGNsb3NlKGZwKTsKKwkJCQkJZ290byBmYWlsOworCQkJ CX0KKwkJCQlwY2xvc2UoZnApOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCWFwcGVuZFBR RXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCSAgbGlicHFfZ2V0dGV4 dCgiQ01LIGxvb2t1cCBzY2hlbWUgXCIlc1wiIG5vdCByZWNvZ25pemVkXG4iKSwgc2VwICsg MSk7CisJCQkJZ290byBmYWlsOworCQkJfQorCQl9CisJfQorCisJaWYgKCFmb3VuZCkKKwl7 CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxp YnBxX2dldHRleHQoIm5vIENNSyBsb29rdXAgZm91bmQgZm9yIHJlYWxtIFwiJXNcIlxuIiks IGNtay0+Y21rcmVhbG0pOworCX0KKworZmFpbDoKKwlmcmVlKGNta2xvb2t1cCk7CisJcmV0 dXJuIHJlc3VsdDsKK30KKworaW50CitwcVNhdmVDb2x1bW5FbmNyeXB0aW9uS2V5KFBHY29u biAqY29ubiwgaW50IGtleWlkLCBpbnQgY21raWQsIGludCBjbWthbGcsIGNvbnN0IHVuc2ln bmVkIGNoYXIgKnZhbHVlLCBpbnQgbGVuKQoreworCVBHQ01LCSAgICpjbWsgPSBOVUxMOwor CXVuc2lnbmVkIGNoYXIgKnBsYWludmFsID0gTlVMTDsKKwlpbnQJCQlwbGFpbnZhbGxlbiA9 IDA7CisJYm9vbAkJZm91bmQ7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IGNvbm4tPm5jbWtz OyBpKyspCisJeworCQlpZiAoY29ubi0+Y21rc1tpXS5jbWtpZCA9PSBjbWtpZCkKKwkJewor CQkJY21rID0gJmNvbm4tPmNta3NbaV07CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmICgh Y21rKQorCQlyZXR1cm4gRU9GOworCisJcGxhaW52YWwgPSBkZWNyeXB0X2Nlayhjb25uLCBj bWssIGNta2FsZywgbGVuLCB2YWx1ZSwgJnBsYWludmFsbGVuKTsKKwlpZiAoIXBsYWludmFs KQorCQlyZXR1cm4gRU9GOworCisJZm91bmQgPSBmYWxzZTsKKwlmb3IgKGludCBpID0gMDsg aSA8IGNvbm4tPm5jZWtzOyBpKyspCisJeworCQlzdHJ1Y3QgcGdfY2VrICpjaGVja2NlayA9 ICZjb25uLT5jZWtzW2ldOworCisJCS8qIHJlcGxhY2UgZXhpc3Rpbmc/ICovCisJCWlmIChj aGVja2Nlay0+Y2VraWQgPT0ga2V5aWQpCisJCXsKKwkJCWZyZWUoY2hlY2tjZWstPmNla2Rh dGEpOworCQkJY2hlY2tjZWstPmNla2RhdGEgPSBwbGFpbnZhbDsKKwkJCWNoZWNrY2VrLT5j ZWtkYXRhbGVuID0gcGxhaW52YWxsZW47CisJCQlmb3VuZCA9IHRydWU7CisJCQlicmVhazsK KwkJfQorCX0KKworCS8qIGFwcGVuZCBuZXc/ICovCisJaWYgKCFmb3VuZCkKKwl7CisJCWlu dAkJCW5ld25jZWtzOworCQlzdHJ1Y3QgcGdfY2VrICpuZXdjZWtzOworCQlzdHJ1Y3QgcGdf Y2VrICpuZXdjZWs7CisKKwkJbmV3bmNla3MgPSBjb25uLT5uY2VrcyArIDE7CisJCWlmIChu ZXduY2VrcyA8PSAwKQorCQl7CisJCQlmcmVlKHBsYWludmFsKTsKKwkJCXJldHVybiBFT0Y7 CisJCX0KKwkJbmV3Y2VrcyA9IHJlYWxsb2MoY29ubi0+Y2VrcywgbmV3bmNla3MgKiBzaXpl b2Yoc3RydWN0IHBnX2NlaykpOworCQlpZiAoIW5ld2Nla3MpCisJCXsKKwkJCWZyZWUocGxh aW52YWwpOworCQkJcmV0dXJuIEVPRjsKKwkJfQorCisJCW5ld2NlayA9ICZuZXdjZWtzW25l d25jZWtzIC0gMV07CisJCW5ld2Nlay0+Y2VraWQgPSBrZXlpZDsKKwkJbmV3Y2VrLT5jZWtk YXRhID0gcGxhaW52YWw7CisJCW5ld2Nlay0+Y2VrZGF0YWxlbiA9IHBsYWludmFsbGVuOwor CisJCWNvbm4tPm5jZWtzID0gbmV3bmNla3M7CisJCWNvbm4tPmNla3MgPSBuZXdjZWtzOwor CX0KKworCXJldHVybiAwOworfQogCiAvKgogICogcHFSb3dQcm9jZXNzb3IKQEAgLTEyNTMs NiArMTYzNCw1NSBAQCBwcVJvd1Byb2Nlc3NvcihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIg KiplcnJtc2dwKQogCQkJYm9vbAkJaXNiaW5hcnkgPSAocmVzLT5hdHREZXNjc1tpXS5mb3Jt YXQgIT0gMCk7CiAJCQljaGFyCSAgICp2YWw7CiAKKwkJCWlmIChyZXMtPmF0dERlc2NzW2ld LmNla2lkKQorCQkJeworI2lmZGVmIFVTRV9TU0wKKwkJCQlQR0NFSwkgICAqY2VrID0gTlVM TDsKKworCQkJCWZvciAoaW50IGogPSAwOyBqIDwgY29ubi0+bmNla3M7IGorKykKKwkJCQl7 CisJCQkJCWlmIChjb25uLT5jZWtzW2pdLmNla2lkID09IHJlcy0+YXR0RGVzY3NbaV0uY2Vr aWQpCisJCQkJCXsKKwkJCQkJCWNlayA9ICZjb25uLT5jZWtzW2pdOworCQkJCQkJYnJlYWs7 CisJCQkJCX0KKwkJCQl9CisJCQkJaWYgKCFjZWspCisJCQkJeworCQkJCQkqZXJybXNncCA9 IGxpYnBxX2dldHRleHQoImNvbHVtbiBlbmNyeXB0aW9uIGtleSBub3QgZm91bmQiKTsKKwkJ CQkJZ290byBmYWlsOworCQkJCX0KKworCQkJCWlmIChpc2JpbmFyeSkKKwkJCQl7CisJCQkJ CXZhbCA9IChjaGFyICopIGRlY3J5cHRfdmFsdWUocmVzLCBjZWssIHJlcy0+YXR0RGVzY3Nb aV0uY2VrYWxnLAorCQkJCQkJCQkJCQkJIChjb25zdCB1bnNpZ25lZCBjaGFyICopIGNvbHVt bnNbaV0udmFsdWUsIGNsZW4sIGVycm1zZ3ApOworCQkJCX0KKwkJCQllbHNlCisJCQkJewor CQkJCQl1bnNpZ25lZCBjaGFyICpidWY7CisJCQkJCXVuc2lnbmVkIGNoYXIgKmVuY2NvbHZh bDsKKwkJCQkJc2l6ZV90CQllbmNjb2x2YWxsZW47CisKKwkJCQkJYnVmID0gbWFsbG9jKGNs ZW4gKyAxKTsKKwkJCQkJbWVtY3B5KGJ1ZiwgY29sdW1uc1tpXS52YWx1ZSwgY2xlbik7CisJ CQkJCWJ1ZltjbGVuXSA9ICdcMCc7CisJCQkJCWVuY2NvbHZhbCA9IFBRdW5lc2NhcGVCeXRl YShidWYsICZlbmNjb2x2YWxsZW4pOworCQkJCQl2YWwgPSAoY2hhciAqKSBkZWNyeXB0X3Zh bHVlKHJlcywgY2VrLCByZXMtPmF0dERlc2NzW2ldLmNla2FsZywKKwkJCQkJCQkJCQkJCSBl bmNjb2x2YWwsIGVuY2NvbHZhbGxlbiwgZXJybXNncCk7CisJCQkJCWZyZWUoZW5jY29sdmFs KTsKKwkJCQkJZnJlZShidWYpOworCQkJCX0KKworCQkJCWlmICh2YWwgPT0gTlVMTCkKKwkJ CQkJZ290byBmYWlsOworI2Vsc2UKKwkJCQkqZXJybXNncCA9IGxpYnBxX2dldHRleHQoImNv bHVtbiBlbmNyeXB0aW9uIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBidWlsZCIpOworCQkJCWdv dG8gZmFpbDsKKyNlbmRpZgorCQkJfQorCQkJZWxzZQorCQkJewogCQkJdmFsID0gKGNoYXIg KikgcHFSZXN1bHRBbGxvYyhyZXMsIGNsZW4gKyAxLCBpc2JpbmFyeSk7CiAJCQlpZiAodmFs ID09IE5VTEwpCiAJCQkJZ290byBmYWlsOwpAQCAtMTI2MCw2ICsxNjkwLDcgQEAgcHFSb3dQ cm9jZXNzb3IoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICoqZXJybXNncCkKIAkJCS8qIGNv cHkgYW5kIHplcm8tdGVybWluYXRlIHRoZSBkYXRhIChldmVuIGlmIGl0J3MgYmluYXJ5KSAq LwogCQkJbWVtY3B5KHZhbCwgY29sdW1uc1tpXS52YWx1ZSwgY2xlbik7CiAJCQl2YWxbY2xl bl0gPSAnXDAnOworCQkJfQogCiAJCQl0dXBbaV0ubGVuID0gY2xlbjsKIAkJCXR1cFtpXS52 YWx1ZSA9IHZhbDsKQEAgLTE1ODcsNyArMjAxOCw5IEBAIFBRc2VuZFF1ZXJ5UGFyYW1zKFBH Y29ubiAqY29ubiwKIAkJCQkJCSAgIHBhcmFtVmFsdWVzLAogCQkJCQkJICAgcGFyYW1MZW5n dGhzLAogCQkJCQkJICAgcGFyYW1Gb3JtYXRzLAotCQkJCQkJICAgcmVzdWx0Rm9ybWF0KTsK KwkJCQkJCSAgIE5VTEwsCisJCQkJCQkgICByZXN1bHRGb3JtYXQsCisJCQkJCQkgICBOVUxM KTsKIH0KIAogLyoKQEAgLTE3MDUsNiArMjEzOCwyMCBAQCBQUXNlbmRRdWVyeVByZXBhcmVk KFBHY29ubiAqY29ubiwKIAkJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkJCWNv bnN0IGludCAqcGFyYW1Gb3JtYXRzLAogCQkJCQlpbnQgcmVzdWx0Rm9ybWF0KQoreworCXJl dHVybiBQUXNlbmRRdWVyeVByZXBhcmVkMihjb25uLCBzdG10TmFtZSwgblBhcmFtcywgcGFy YW1WYWx1ZXMsIHBhcmFtTGVuZ3RocywgcGFyYW1Gb3JtYXRzLCBOVUxMLCByZXN1bHRGb3Jt YXQsIE5VTEwpOworfQorCitpbnQKK1BRc2VuZFF1ZXJ5UHJlcGFyZWQyKFBHY29ubiAqY29u biwKKwkJCQkJIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorCQkJCQkgaW50IG5QYXJhbXMsCisJ CQkJCSBjb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCisJCQkJCSBjb25zdCBpbnQg KnBhcmFtTGVuZ3RocywKKwkJCQkJIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAorCQkJCQkg Y29uc3QgaW50ICpwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnMsCisJCQkJCSBpbnQgcmVz dWx0Rm9ybWF0LAorCQkJCQkgUEdyZXN1bHQgKnBhcmFtRGVzYykKIHsKIAlpZiAoIVBRc2Vu ZFF1ZXJ5U3RhcnQoY29ubiwgdHJ1ZSkpCiAJCXJldHVybiAwOwpAQCAtMTczMiw3ICsyMTc5 LDkgQEAgUFFzZW5kUXVlcnlQcmVwYXJlZChQR2Nvbm4gKmNvbm4sCiAJCQkJCQkgICBwYXJh bVZhbHVlcywKIAkJCQkJCSAgIHBhcmFtTGVuZ3RocywKIAkJCQkJCSAgIHBhcmFtRm9ybWF0 cywKLQkJCQkJCSAgIHJlc3VsdEZvcm1hdCk7CisJCQkJCQkgICBwYXJhbUZvcmNlQ29sdW1u RW5jcnlwdGlvbnMsCisJCQkJCQkgICByZXN1bHRGb3JtYXQsCisJCQkJCQkgICBwYXJhbURl c2MpOwogfQogCiAvKgpAQCAtMTgzMyw3ICsyMjgyLDkgQEAgUFFzZW5kUXVlcnlHdXRzKFBH Y29ubiAqY29ubiwKIAkJCQljb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCiAJCQkJ Y29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMs Ci0JCQkJaW50IHJlc3VsdEZvcm1hdCkKKwkJCQljb25zdCBpbnQgKnBhcmFtRm9yY2VDb2x1 bW5FbmNyeXB0aW9ucywKKwkJCQlpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCVBHcmVzdWx0ICpw YXJhbURlc2MpCiB7CiAJaW50CQkJaTsKIAlQR2NtZFF1ZXVlRW50cnkgKmVudHJ5OwpAQCAt MTg4MCwxNCArMjMzMSw1MyBAQCBQUXNlbmRRdWVyeUd1dHMoUEdjb25uICpjb25uLAogCQlw cVB1dHMoc3RtdE5hbWUsIGNvbm4pIDwgMCkKIAkJZ290byBzZW5kRmFpbGVkOwogCisJLyog Q2hlY2sgZm9yY2UgY29sdW1uIGVuY3J5cHRpb24gKi8KKwlpZiAoblBhcmFtcyA+IDAgJiYg cGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25zKQorCXsKKwkJZm9yIChpID0gMDsgaSA8IG5Q YXJhbXM7IGkrKykKKwkJeworCQkJaWYgKHBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0aW9uc1tp XSkKKwkJCXsKKwkJCQlpZiAoIShwYXJhbURlc2MgJiYKKwkJCQkJICBwYXJhbURlc2MtPnBh cmFtRGVzY3MgJiYKKwkJCQkJICBwYXJhbURlc2MtPnBhcmFtRGVzY3NbaV0uY2VraWQpKQor CQkJCXsKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmNvbm4tPmVycm9yTWVzc2FnZSwK KwkJCQkJCQkJCQkgbGlicHFfZ2V0dGV4dCgicGFyYW1ldGVyIHdpdGggZm9yY2VkIGVuY3J5 cHRpb24gaXMgbm90IHRvIGJlIGVuY3J5cHRlZFxuIikpOworCQkJCQlnb3RvIHNlbmRGYWls ZWQ7CisJCQkJfQorCQkJfQorCQl9CisJfQorCiAJLyogU2VuZCBwYXJhbWV0ZXIgZm9ybWF0 cyAqLwotCWlmIChuUGFyYW1zID4gMCAmJiBwYXJhbUZvcm1hdHMpCisJaWYgKG5QYXJhbXMg PiAwICYmIChwYXJhbUZvcm1hdHMgfHwgKHBhcmFtRGVzYyAmJiBwYXJhbURlc2MtPnBhcmFt RGVzY3MpKSkKIAl7CiAJCWlmIChwcVB1dEludChuUGFyYW1zLCAyLCBjb25uKSA8IDApCiAJ CQlnb3RvIHNlbmRGYWlsZWQ7CisKIAkJZm9yIChpID0gMDsgaSA8IG5QYXJhbXM7IGkrKykK IAkJewotCQkJaWYgKHBxUHV0SW50KHBhcmFtRm9ybWF0c1tpXSwgMiwgY29ubikgPCAwKQor CQkJaW50CQkJZm9ybWF0ID0gcGFyYW1Gb3JtYXRzID8gcGFyYW1Gb3JtYXRzW2ldIDogMDsK KworCQkJaWYgKHBhcmFtRGVzYyAmJiBwYXJhbURlc2MtPnBhcmFtRGVzY3MpCisJCQl7CisJ CQkJUEdyZXNQYXJhbURlc2MgKnBkID0gJnBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXTsKKwor CQkJCWlmIChwZC0+Y2VraWQpCisJCQkJeworCQkJCQlpZiAoZm9ybWF0ICE9IDApCisJCQkJ CXsKKwkJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJ CQkJCQkJCQkJCSBsaWJwcV9nZXR0ZXh0KCJmb3JtYXQgbXVzdCBiZSB0ZXh0IGZvciBlbmNy eXB0ZWQgcGFyYW1ldGVyXG4iKSk7CisJCQkJCQlnb3RvIHNlbmRGYWlsZWQ7CisJCQkJCX0K KwkJCQkJZm9ybWF0ID0gMTsKKwkJCQkJZm9ybWF0IHw9IDB4MTA7CisJCQkJfQorCQkJfQor CisJCQlpZiAocHFQdXRJbnQoZm9ybWF0LCAyLCBjb25uKSA8IDApCiAJCQkJZ290byBzZW5k RmFpbGVkOwogCQl9CiAJfQpAQCAtMTkwNiw2ICsyMzk2LDcgQEAgUFFzZW5kUXVlcnlHdXRz KFBHY29ubiAqY29ubiwKIAkJaWYgKHBhcmFtVmFsdWVzICYmIHBhcmFtVmFsdWVzW2ldKQog CQl7CiAJCQlpbnQJCQluYnl0ZXM7CisJCQljb25zdCBjaGFyICpwYXJhbVZhbHVlOwogCiAJ CQlpZiAocGFyYW1Gb3JtYXRzICYmIHBhcmFtRm9ybWF0c1tpXSAhPSAwKQogCQkJewpAQCAt MTkyNCw5ICsyNDE1LDU0IEBAIFBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4gKmNvbm4sCiAJCQkJ LyogdGV4dCBwYXJhbWV0ZXIsIGRvIG5vdCB1c2UgcGFyYW1MZW5ndGhzICovCiAJCQkJbmJ5 dGVzID0gc3RybGVuKHBhcmFtVmFsdWVzW2ldKTsKIAkJCX0KKworCQkJcGFyYW1WYWx1ZSA9 IHBhcmFtVmFsdWVzW2ldOworCisJCQlpZiAocGFyYW1EZXNjICYmIHBhcmFtRGVzYy0+cGFy YW1EZXNjcyAmJiBwYXJhbURlc2MtPnBhcmFtRGVzY3NbaV0uY2VraWQpCisJCQl7CisjaWZk ZWYgVVNFX1NTTAorCQkJCWJvb2wJCWVuY19kZXQgPSAocGFyYW1EZXNjLT5wYXJhbURlc2Nz W2ldLmZsYWdzICYgMHgwMSkgIT0gMDsKKwkJCQlQR0NFSwkgICAqY2VrID0gTlVMTDsKKwkJ CQljaGFyCSAgICplbmNfcGFyYW1WYWx1ZTsKKwkJCQlpbnQJCQllbmNfbmJ5dGVzID0gbmJ5 dGVzOworCisJCQkJZm9yIChpbnQgaiA9IDA7IGogPCBjb25uLT5uY2VrczsgaisrKQorCQkJ CXsKKwkJCQkJaWYgKGNvbm4tPmNla3Nbal0uY2VraWQgPT0gcGFyYW1EZXNjLT5wYXJhbURl c2NzW2ldLmNla2lkKQorCQkJCQl7CisJCQkJCQljZWsgPSAmY29ubi0+Y2Vrc1tqXTsKKwkJ CQkJCWJyZWFrOworCQkJCQl9CisJCQkJfQorCQkJCWlmICghY2VrKQorCQkJCXsKKwkJCQkJ YXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCQkJCSAgbGli cHFfZ2V0dGV4dCgiY29sdW1uIGVuY3J5cHRpb24ga2V5IG5vdCBmb3VuZFxuIikpOworCQkJ CQlnb3RvIHNlbmRGYWlsZWQ7CisJCQkJfQorCisJCQkJZW5jX3BhcmFtVmFsdWUgPSAoY2hh ciAqKSBlbmNyeXB0X3ZhbHVlKGNvbm4sIGNlaywgcGFyYW1EZXNjLT5wYXJhbURlc2NzW2ld LmNla2FsZywKKwkJCQkJCQkJCQkJCQkJKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgcGFyYW1W YWx1ZSwgJmVuY19uYnl0ZXMsIGVuY19kZXQpOworCQkJCWlmICghZW5jX3BhcmFtVmFsdWUp CisJCQkJCWdvdG8gc2VuZEZhaWxlZDsKKworCQkJCWlmIChwcVB1dEludChlbmNfbmJ5dGVz LCA0LCBjb25uKSA8IDAgfHwKKwkJCQkJcHFQdXRuY2hhcihlbmNfcGFyYW1WYWx1ZSwgZW5j X25ieXRlcywgY29ubikgPCAwKQorCQkJCQlnb3RvIHNlbmRGYWlsZWQ7CisKKwkJCQlmcmVl KGVuY19wYXJhbVZhbHVlKTsKKyNlbHNlCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4t PmVycm9yTWVzc2FnZSwKKwkJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb2x1bW4gZW5jcnlw dGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGRcbiIpKTsKKwkJCQlnb3RvIHNlbmRG YWlsZWQ7CisjZW5kaWYKKwkJCX0KKwkJCWVsc2UKKwkJCXsKIAkJCWlmIChwcVB1dEludChu Ynl0ZXMsIDQsIGNvbm4pIDwgMCB8fAotCQkJCXBxUHV0bmNoYXIocGFyYW1WYWx1ZXNbaV0s IG5ieXRlcywgY29ubikgPCAwKQorCQkJCXBxUHV0bmNoYXIocGFyYW1WYWx1ZSwgbmJ5dGVz LCBjb25uKSA8IDApCiAJCQkJZ290byBzZW5kRmFpbGVkOworCQkJfQogCQl9CiAJCWVsc2UK IAkJewpAQCAtMjM4MCwxMiArMjkxNiwyNyBAQCBQUWV4ZWNQcmVwYXJlZChQR2Nvbm4gKmNv bm4sCiAJCQkgICBjb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKIAkJCSAgIGNvbnN0IGludCAq cGFyYW1Gb3JtYXRzLAogCQkJICAgaW50IHJlc3VsdEZvcm1hdCkKK3sKKwlyZXR1cm4gUFFl eGVjUHJlcGFyZWQyKGNvbm4sIHN0bXROYW1lLCBuUGFyYW1zLCBwYXJhbVZhbHVlcywgcGFy YW1MZW5ndGhzLCBwYXJhbUZvcm1hdHMsIE5VTEwsIHJlc3VsdEZvcm1hdCwgTlVMTCk7Cit9 CisKK1BHcmVzdWx0ICoKK1BRZXhlY1ByZXBhcmVkMihQR2Nvbm4gKmNvbm4sCisJCQkJY29u c3QgY2hhciAqc3RtdE5hbWUsCisJCQkJaW50IG5QYXJhbXMsCisJCQkJY29uc3QgY2hhciAq Y29uc3QgKnBhcmFtVmFsdWVzLAorCQkJCWNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAorCQkJ CWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAorCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JjZUNv bHVtbkVuY3J5cHRpb25zLAorCQkJCWludCByZXN1bHRGb3JtYXQsCisJCQkJUEdyZXN1bHQg KnBhcmFtRGVzYykKIHsKIAlpZiAoIVBRZXhlY1N0YXJ0KGNvbm4pKQogCQlyZXR1cm4gTlVM TDsKLQlpZiAoIVBRc2VuZFF1ZXJ5UHJlcGFyZWQoY29ubiwgc3RtdE5hbWUsCi0JCQkJCQkJ IG5QYXJhbXMsIHBhcmFtVmFsdWVzLCBwYXJhbUxlbmd0aHMsCi0JCQkJCQkJIHBhcmFtRm9y bWF0cywgcmVzdWx0Rm9ybWF0KSkKKwlpZiAoIVBRc2VuZFF1ZXJ5UHJlcGFyZWQyKGNvbm4s IHN0bXROYW1lLAorCQkJCQkJCSAgblBhcmFtcywgcGFyYW1WYWx1ZXMsIHBhcmFtTGVuZ3Ro cywKKwkJCQkJCQkgIHBhcmFtRm9ybWF0cywgcGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25z LAorCQkJCQkJCSAgcmVzdWx0Rm9ybWF0LCBwYXJhbURlc2MpKQogCQlyZXR1cm4gTlVMTDsK IAlyZXR1cm4gUFFleGVjRmluaXNoKGNvbm4pOwogfQpAQCAtMzY4Myw2ICs0MjM0LDE3IEBA IFBRZm1vZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKQogCQlyZXR1cm4g MDsKIH0KIAoraW50CitQUWZpc2VuY3J5cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQg ZmllbGRfbnVtKQoreworCWlmICghY2hlY2tfZmllbGRfbnVtYmVyKHJlcywgZmllbGRfbnVt KSkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChyZXMtPmF0dERlc2NzKQorCQlyZXR1cm4gKHJl cy0+YXR0RGVzY3NbZmllbGRfbnVtXS5jZWtpZCAhPSAwKTsKKwllbHNlCisJCXJldHVybiBm YWxzZTsKK30KKwogY2hhciAqCiBQUWNtZFN0YXR1cyhQR3Jlc3VsdCAqcmVzKQogewpAQCAt Mzg2OCw2ICs0NDMwLDE3IEBAIFBRcGFyYW10eXBlKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGlu dCBwYXJhbV9udW0pCiAJCXJldHVybiBJbnZhbGlkT2lkOwogfQogCitpbnQKK1BRcGFyYW1p c2VuY3J5cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFyYW1fbnVtKQoreworCWlm ICghY2hlY2tfcGFyYW1fbnVtYmVyKHJlcywgcGFyYW1fbnVtKSkKKwkJcmV0dXJuIGZhbHNl OworCWlmIChyZXMtPnBhcmFtRGVzY3MpCisJCXJldHVybiAocmVzLT5wYXJhbURlc2NzW3Bh cmFtX251bV0uY2VraWQgIT0gMCk7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9CisKIAog LyogUFFzZXRub25ibG9ja2luZzoKICAqCXNldHMgdGhlIFBHY29ubidzIGRhdGFiYXNlIGNv bm5lY3Rpb24gbm9uLWJsb2NraW5nIGlmIHRoZSBhcmcgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEv c3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMgYi9zcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1wcm90b2NvbDMuYwppbmRleCBiYmZiNTU1NDJkLi5kYmRhN2Q5YzdmIDEwMDY0 NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYworKysgYi9zcmMv aW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYwpAQCAtNDMsNiArNDMsOCBAQCBzdGF0 aWMgaW50CWdldFJvd0Rlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgp Owogc3RhdGljIGludAlnZXRQYXJhbURlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBt c2dMZW5ndGgpOwogc3RhdGljIGludAlnZXRBbm90aGVyVHVwbGUoUEdjb25uICpjb25uLCBp bnQgbXNnTGVuZ3RoKTsKIHN0YXRpYyBpbnQJZ2V0UGFyYW1ldGVyU3RhdHVzKFBHY29ubiAq Y29ubik7CitzdGF0aWMgaW50CWdldENvbHVtbk1hc3RlcktleShQR2Nvbm4gKmNvbm4pOwor c3RhdGljIGludAlnZXRDb2x1bW5FbmNyeXB0aW9uS2V5KFBHY29ubiAqY29ubik7CiBzdGF0 aWMgaW50CWdldE5vdGlmeShQR2Nvbm4gKmNvbm4pOwogc3RhdGljIGludAlnZXRDb3B5U3Rh cnQoUEdjb25uICpjb25uLCBFeGVjU3RhdHVzVHlwZSBjb3B5dHlwZSk7CiBzdGF0aWMgaW50 CWdldFJlYWR5Rm9yUXVlcnkoUEdjb25uICpjb25uKTsKQEAgLTMxNyw2ICszMTksMjIgQEAg cHFQYXJzZUlucHV0MyhQR2Nvbm4gKmNvbm4pCiAJCQkJCWlmIChwcUdldEludCgmKGNvbm4t PmJlX2tleSksIDQsIGNvbm4pKQogCQkJCQkJcmV0dXJuOwogCQkJCQlicmVhazsKKwkJCQlj YXNlICd5JzoJCS8qIENvbHVtbiBNYXN0ZXIgS2V5ICovCisJCQkJCWlmIChnZXRDb2x1bW5N YXN0ZXJLZXkoY29ubikpCisJCQkJCXsKKwkJCQkJCS8vIFRPRE86IHJldmlldyBlcnJvciBo YW5kbGluZyBoZXJlCisJCQkJCQlwcVNhdmVFcnJvclJlc3VsdChjb25uKTsKKwkJCQkJCXBx SW50ZXJuYWxOb3RpY2UoJmNvbm4tPm5vdGljZUhvb2tzLCAiJXMiLCBjb25uLT5lcnJvck1l c3NhZ2UuZGF0YSk7CisJCQkJCX0KKwkJCQkJYnJlYWs7CisJCQkJY2FzZSAnWSc6CQkvKiBD b2x1bW4gRW5jcnlwdGlvbiBLZXkgKi8KKwkJCQkJaWYgKGdldENvbHVtbkVuY3J5cHRpb25L ZXkoY29ubikpCisJCQkJCXsKKwkJCQkJCS8vIFRPRE86IHJldmlldyBlcnJvciBoYW5kbGlu ZyBoZXJlCisJCQkJCQlwcVNhdmVFcnJvclJlc3VsdChjb25uKTsKKwkJCQkJCXBxSW50ZXJu YWxOb3RpY2UoJmNvbm4tPm5vdGljZUhvb2tzLCAiJXMiLCBjb25uLT5lcnJvck1lc3NhZ2Uu ZGF0YSk7CisJCQkJCX0KKwkJCQkJYnJlYWs7CiAJCQkJY2FzZSAnVCc6CQkvKiBSb3cgRGVz Y3JpcHRpb24gKi8KIAkJCQkJaWYgKGNvbm4tPmVycm9yX3Jlc3VsdCB8fAogCQkJCQkJKGNv bm4tPnJlc3VsdCAhPSBOVUxMICYmCkBAIC01NzQsNiArNTkyLDggQEAgZ2V0Um93RGVzY3Jp cHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0aCkKIAkJaW50CQkJdHlwbGVuOwog CQlpbnQJCQlhdHR0eXBtb2Q7CiAJCWludAkJCWZvcm1hdDsKKwkJaW50CQkJY2VraWQ7CisJ CWludAkJCWNla2FsZzsKIAogCQlpZiAocHFHZXRzKCZjb25uLT53b3JrQnVmZmVyLCBjb25u KSB8fAogCQkJcHFHZXRJbnQoJnRhYmxlaWQsIDQsIGNvbm4pIHx8CkBAIC01ODgsNiArNjA4 LDIxIEBAIGdldFJvd0Rlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgp CiAJCQlnb3RvIGFkdmFuY2VfYW5kX2Vycm9yOwogCQl9CiAKKwkJaWYgKGNvbm4tPmNvbHVt bl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsKKwkJCWlmIChwcUdldEludCgmY2VraWQsIDQs IGNvbm4pIHx8CisJCQkJcHFHZXRJbnQoJmNla2FsZywgMiwgY29ubikpCisJCQl7CisJCQkJ ZXJybXNnID0gbGlicHFfZ2V0dGV4dCgiaW5zdWZmaWNpZW50IGRhdGEgaW4gXCJUXCIgbWVz c2FnZSIpOworCQkJCWdvdG8gYWR2YW5jZV9hbmRfZXJyb3I7CisJCQl9CisJCX0KKwkJZWxz ZQorCQl7CisJCQljZWtpZCA9IDA7CisJCQljZWthbGcgPSAwOworCQl9CisKIAkJLyoKIAkJ ICogU2luY2UgcHFHZXRJbnQgdHJlYXRzIDItYnl0ZSBpbnRlZ2VycyBhcyB1bnNpZ25lZCwg d2UgbmVlZCB0bwogCQkgKiBjb2VyY2UgdGhlc2UgcmVzdWx0cyB0byBzaWduZWQgZm9ybS4K QEAgLTYwOSw4ICs2NDQsMTAgQEAgZ2V0Um93RGVzY3JpcHRpb25zKFBHY29ubiAqY29ubiwg aW50IG1zZ0xlbmd0aCkKIAkJcmVzdWx0LT5hdHREZXNjc1tpXS50eXBpZCA9IHR5cGlkOwog CQlyZXN1bHQtPmF0dERlc2NzW2ldLnR5cGxlbiA9IHR5cGxlbjsKIAkJcmVzdWx0LT5hdHRE ZXNjc1tpXS5hdHR0eXBtb2QgPSBhdHR0eXBtb2Q7CisJCXJlc3VsdC0+YXR0RGVzY3NbaV0u Y2VraWQgPSBjZWtpZDsKKwkJcmVzdWx0LT5hdHREZXNjc1tpXS5jZWthbGcgPSBjZWthbGc7 CiAKLQkJaWYgKGZvcm1hdCAhPSAxKQorCQlpZiAoKGZvcm1hdCAmIDB4MEYpICE9IDEpCiAJ CQlyZXN1bHQtPmJpbmFyeSA9IDA7CiAJfQogCkBAIC03MTIsMTAgKzc0OSwzMSBAQCBnZXRQ YXJhbURlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpCiAJZm9yIChp ID0gMDsgaSA8IG5wYXJhbXM7IGkrKykKIAl7CiAJCWludAkJCXR5cGlkOworCQlpbnQJCQlj ZWtpZDsKKwkJaW50CQkJY2VrYWxnOworCQlpbnQJCQlmbGFnczsKIAogCQlpZiAocHFHZXRJ bnQoJnR5cGlkLCA0LCBjb25uKSkKIAkJCWdvdG8gbm90X2Vub3VnaF9kYXRhOworCQlpZiAo Y29ubi0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJeworCQkJaWYgKHBxR2V0SW50 KCZjZWtpZCwgNCwgY29ubikpCisJCQkJZ290byBub3RfZW5vdWdoX2RhdGE7CisJCQlpZiAo cHFHZXRJbnQoJmNla2FsZywgMiwgY29ubikpCisJCQkJZ290byBub3RfZW5vdWdoX2RhdGE7 CisJCQlpZiAocHFHZXRJbnQoJmZsYWdzLCAyLCBjb25uKSkKKwkJCQlnb3RvIG5vdF9lbm91 Z2hfZGF0YTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWNla2lkID0gMDsKKwkJCWNla2FsZyA9 IDA7CisJCQlmbGFncyA9IDA7CisJCX0KIAkJcmVzdWx0LT5wYXJhbURlc2NzW2ldLnR5cGlk ID0gdHlwaWQ7CisJCXJlc3VsdC0+cGFyYW1EZXNjc1tpXS5jZWtpZCA9IGNla2lkOworCQly ZXN1bHQtPnBhcmFtRGVzY3NbaV0uY2VrYWxnID0gY2VrYWxnOworCQlyZXN1bHQtPnBhcmFt RGVzY3NbaV0uZmxhZ3MgPSBmbGFnczsKIAl9CiAKIAkvKiBTdWNjZXNzISAqLwpAQCAtMTQx Myw2ICsxNDcxLDQwIEBAIHJlcG9ydEVycm9yUG9zaXRpb24oUFFFeHBCdWZmZXIgbXNnLCBj b25zdCBjaGFyICpxdWVyeSwgaW50IGxvYywgaW50IGVuY29kaW5nKQogfQogCiAKK2ludAor cHFHZXROZWdvdGlhdGVQcm90b2NvbFZlcnNpb24zKFBHY29ubiAqY29ubikKK3sKKwlpbnQJ CQl0aGVpcl92ZXJzaW9uOworCWludAkJCW51bTsKKwlQUUV4cEJ1ZmZlckRhdGEgYnVmOwor CisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCWlmIChwcUdldEludCgmdGhlaXJfdmVyc2lv biwgNCwgY29ubikgIT0gMCkKKwkJcmV0dXJuIEVPRjsKKwlpZiAocHFHZXRJbnQoJm51bSwg NCwgY29ubikgIT0gMCkKKwkJcmV0dXJuIEVPRjsKKwlmb3IgKGludCBpID0gMDsgaSA8IG51 bTsgaSsrKQorCXsKKwkJaWYgKHBxR2V0cygmY29ubi0+d29ya0J1ZmZlciwgY29ubikpCisJ CQlyZXR1cm4gRU9GOworCQlpZiAoYnVmLmxlbiA+IDApCisJCQlhcHBlbmRQUUV4cEJ1ZmZl ckNoYXIoJmJ1ZiwgJyAnKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgY29ubi0+ d29ya0J1ZmZlci5kYXRhKTsKKwl9CisKKwlpZiAodGhlaXJfdmVyc2lvbiAhPSBjb25uLT5w dmVyc2lvbikKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJ CQkJCSAgbGlicHFfZ2V0dGV4dCgicHJvdG9jb2wgdmVyc2lvbiBub3Qgc3VwcG9ydGVkIGJ5 IHNlcnZlcjogY2xpZW50IHVzZXMgJWQuJWQsIHNlcnZlciBzdXBwb3J0cyAlZC4lZCIpLAor CQkJCQkJICBQR19QUk9UT0NPTF9NQUpPUihjb25uLT5wdmVyc2lvbiksIFBHX1BST1RPQ09M X01JTk9SKGNvbm4tPnB2ZXJzaW9uKSwKKwkJCQkJCSAgUEdfUFJPVE9DT0xfTUFKT1IodGhl aXJfdmVyc2lvbiksIFBHX1BST1RPQ09MX01JTk9SKHRoZWlyX3ZlcnNpb24pKTsKKwllbHNl CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxp YnBxX2dldHRleHQoInByb3RvY29sIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkIGJ5IHNlcnZl cjogJXNcbiIpLCBidWYuZGF0YSk7CisKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJcmV0 dXJuIDA7Cit9CisKIC8qCiAgKiBBdHRlbXB0IHRvIHJlYWQgYSBQYXJhbWV0ZXJTdGF0dXMg bWVzc2FnZS4KICAqIFRoaXMgaXMgcG9zc2libGUgaW4gc2V2ZXJhbCBwbGFjZXMsIHNvIHdl IGJyZWFrIGl0IG91dCBhcyBhIHN1YnJvdXRpbmUuCkBAIC0xNDQxLDYgKzE1MzMsODkgQEAg Z2V0UGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubikKIAlyZXR1cm4gMDsKIH0KIAorLyoK KyAqIEF0dGVtcHQgdG8gcmVhZCBhIENvbHVtbk1hc3RlcktleSBtZXNzYWdlLgorICogRW50 cnk6ICd5JyBtZXNzYWdlIHR5cGUgYW5kIGxlbmd0aCBoYXZlIGFscmVhZHkgYmVlbiBjb25z dW1lZC4KKyAqIEV4aXQ6IHJldHVybnMgMCBpZiBzdWNjZXNzZnVsbHkgY29uc3VtZWQgbWVz c2FnZS4KKyAqCQkgcmV0dXJucyBFT0YgaWYgbm90IGVub3VnaCBkYXRhLgorICovCitzdGF0 aWMgaW50CitnZXRDb2x1bW5NYXN0ZXJLZXkoUEdjb25uICpjb25uKQoreworCWludAkJCWtl eWlkOworCWNoYXIJICAgKmtleW5hbWU7CisJY2hhcgkgICAqa2V5cmVhbG07CisJaW50CQkJ cmV0OworCisJLyogR2V0IHRoZSBrZXkgSUQgKi8KKwlpZiAocHFHZXRJbnQoJmtleWlkLCA0 LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUga2V5IG5hbWUgKi8K KwlpZiAocHFHZXRzKCZjb25uLT53b3JrQnVmZmVyLCBjb25uKSAhPSAwKQorCQlyZXR1cm4g RU9GOworCWtleW5hbWUgPSBzdHJkdXAoY29ubi0+d29ya0J1ZmZlci5kYXRhKTsKKwlpZiAo IWtleW5hbWUpCisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRoZSBrZXkgcmVhbG0gKi8KKwlp ZiAocHFHZXRzKCZjb25uLT53b3JrQnVmZmVyLCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9G OworCWtleXJlYWxtID0gc3RyZHVwKGNvbm4tPndvcmtCdWZmZXIuZGF0YSk7CisJaWYgKCFr ZXlyZWFsbSkKKwkJcmV0dXJuIEVPRjsKKwkvKiBBbmQgc2F2ZSBpdCAqLworCXJldCA9IHBx U2F2ZUNvbHVtbk1hc3RlcktleShjb25uLCBrZXlpZCwga2V5bmFtZSwga2V5cmVhbG0pOwor CisJZnJlZShrZXluYW1lKTsKKwlmcmVlKGtleXJlYWxtKTsKKworCXJldHVybiByZXQ7Cit9 CisKKy8qCisgKiBBdHRlbXB0IHRvIHJlYWQgYSBDb2x1bW5FbmNyeXB0aW9uS2V5IG1lc3Nh Z2UuCisgKiBFbnRyeTogJ1knIG1lc3NhZ2UgdHlwZSBhbmQgbGVuZ3RoIGhhdmUgYWxyZWFk eSBiZWVuIGNvbnN1bWVkLgorICogRXhpdDogcmV0dXJucyAwIGlmIHN1Y2Nlc3NmdWxseSBj b25zdW1lZCBtZXNzYWdlLgorICoJCSByZXR1cm5zIEVPRiBpZiBub3QgZW5vdWdoIGRhdGEu CisgKi8KK3N0YXRpYyBpbnQKK2dldENvbHVtbkVuY3J5cHRpb25LZXkoUEdjb25uICpjb25u KQoreworCWludAkJCWtleWlkOworCWludAkJCWNta2lkOworCWludAkJCWNta2FsZzsKKwlj aGFyCSAgICpidWY7CisJaW50CQkJdmFsbGVuOworCisJLyogR2V0IHRoZSBrZXkgSUQgKi8K KwlpZiAocHFHZXRJbnQoJmtleWlkLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOwor CS8qIEdldCB0aGUgQ01LIElEICovCisJaWYgKHBxR2V0SW50KCZjbWtpZCwgNCwgY29ubikg IT0gMCkKKwkJcmV0dXJuIEVPRjsKKwkvKiBHZXQgdGhlIENNSyBhbGdvcml0aG0gKi8KKwlp ZiAocHFHZXRJbnQoJmNta2FsZywgMiwgY29ubikgIT0gMCkKKwkJcmV0dXJuIEVPRjsKKwkv KiBHZXQgdGhlIGtleSBkYXRhIGxlbiAqLworCWlmIChwcUdldEludCgmdmFsbGVuLCA0LCBj b25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUga2V5IGRhdGEgKi8KKwli dWYgPSBtYWxsb2ModmFsbGVuKTsKKwlpZiAoIWJ1ZikKKwkJcmV0dXJuIEVPRjsKKwlpZiAo cHFHZXRuY2hhcihidWYsIHZhbGxlbiwgY29ubikgIT0gMCkKKwl7CisJCWZyZWUoYnVmKTsK KwkJcmV0dXJuIEVPRjsKKwl9CisJLyogQW5kIHNhdmUgaXQgKi8KKwlpZiAocHFTYXZlQ29s dW1uRW5jcnlwdGlvbktleShjb25uLCBrZXlpZCwgY21raWQsIGNta2FsZywgKHVuc2lnbmVk IGNoYXIgKikgYnVmLCB2YWxsZW4pICE9IDApCisJeworCQlmcmVlKGJ1Zik7CisJCXJldHVy biBFT0Y7CisJfQorCWZyZWUoYnVmKTsKKwlyZXR1cm4gMDsKK30KIAogLyoKICAqIEF0dGVt cHQgdG8gcmVhZCBhIE5vdGlmeSByZXNwb25zZSBtZXNzYWdlLgpAQCAtMjI2Niw2ICsyNDQx LDkgQEAgYnVpbGRfc3RhcnR1cF9wYWNrZXQoY29uc3QgUEdjb25uICpjb25uLCBjaGFyICpw YWNrZXQsCiAJaWYgKGNvbm4tPmNsaWVudF9lbmNvZGluZ19pbml0aWFsICYmIGNvbm4tPmNs aWVudF9lbmNvZGluZ19pbml0aWFsWzBdKQogCQlBRERfU1RBUlRVUF9PUFRJT04oImNsaWVu dF9lbmNvZGluZyIsIGNvbm4tPmNsaWVudF9lbmNvZGluZ19pbml0aWFsKTsKIAorCWlmIChj b25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQlBRERfU1RBUlRVUF9PUFRJT04o Il9wcV8uY29sdW1uX2VuY3J5cHRpb24iLCAiMSIpOworCiAJLyogQWRkIGFueSBlbnZpcm9u bWVudC1kcml2ZW4gR1VDIHNldHRpbmdzIG5lZWRlZCAqLwogCWZvciAobmV4dF9lbyA9IG9w dGlvbnM7IG5leHRfZW8tPmVudk5hbWU7IG5leHRfZW8rKykKIAl7CmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtdHJhY2UuYwppbmRleCA1ZDY4Y2YyZWIzLi5kMmFlMGUwM2JiIDEwMDY0NAotLS0gYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLXRyYWNlLmMKQEAgLTQ1MCw3ICs0NTAsOCBAQCBwcVRyYWNlT3V0cHV0UyhGSUxF ICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvcikKIAogLyogUGFyYW1ldGVy RGVzY3JpcHRpb24gKi8KIHN0YXRpYyB2b2lkCi1wcVRyYWNlT3V0cHV0dChGSUxFICpmLCBj b25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzKQorcHFUcmFj ZU91dHB1dHQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJv b2wgcmVncmVzcywKKwkJCSAgIGJvb2wgY29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKIHsK IAlpbnQJCQluZmllbGRzOwogCkBAIC00NTgsMTIgKzQ1OSwyMSBAQCBwcVRyYWNlT3V0cHV0 dChGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdy ZXNzKQogCW5maWVsZHMgPSBwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29y KTsKIAogCWZvciAoaW50IGkgPSAwOyBpIDwgbmZpZWxkczsgaSsrKQorCXsKIAkJcHFUcmFj ZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CisJCWlmIChjb2x1 bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7CisJCQlwcVRyYWNlT3V0cHV0SW50MzIoZiwg bWVzc2FnZSwgY3Vyc29yLCByZWdyZXNzKTsKKwkJCXBxVHJhY2VPdXRwdXRJbnQxNihmLCBt ZXNzYWdlLCBjdXJzb3IpOworCQkJcHFUcmFjZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1 cnNvcik7CisJCX0KKwl9CiB9CiAKIC8qIFJvd0Rlc2NyaXB0aW9uICovCiBzdGF0aWMgdm9p ZAotcHFUcmFjZU91dHB1dFQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpj dXJzb3IsIGJvb2wgcmVncmVzcykKK3BxVHJhY2VPdXRwdXRUKEZJTEUgKmYsIGNvbnN0IGNo YXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MsCisJCQkgICBib29sIGNv bHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCiB7CiAJaW50CQkJbmZpZWxkczsKIApAQCAtNDc5 LDYgKzQ4OSwxMSBAQCBwcVRyYWNlT3V0cHV0VChGSUxFICpmLCBjb25zdCBjaGFyICptZXNz YWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzKQogCQlwcVRyYWNlT3V0cHV0SW50MTYo ZiwgbWVzc2FnZSwgY3Vyc29yKTsKIAkJcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2Us IGN1cnNvciwgZmFsc2UpOwogCQlwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vy c29yKTsKKwkJaWYgKGNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsKKwkJCXBxVHJh Y2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIHJlZ3Jlc3MpOworCQkJcHFUcmFj ZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CisJCX0KIAl9CiB9CiAKQEAgLTY0 NywxMCArNjYyLDEyIEBAIHBxVHJhY2VPdXRwdXRNZXNzYWdlKFBHY29ubiAqY29ubiwgY29u c3QgY2hhciAqbWVzc2FnZSwgYm9vbCB0b1NlcnZlcikKIAkJCQlmcHJpbnRmKGNvbm4tPlBm ZGVidWcsICJTeW5jIik7IC8qIG5vIG1lc3NhZ2UgY29udGVudCAqLwogCQkJYnJlYWs7CiAJ CWNhc2UgJ3QnOgkJCQkvKiBQYXJhbWV0ZXIgRGVzY3JpcHRpb24gKi8KLQkJCXBxVHJhY2VP dXRwdXR0KGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jlc3MpOwor CQkJcHFUcmFjZU91dHB1dHQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwg cmVncmVzcywKKwkJCQkJCSAgIGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpOwog CQkJYnJlYWs7CiAJCWNhc2UgJ1QnOgkJCQkvKiBSb3cgRGVzY3JpcHRpb24gKi8KLQkJCXBx VHJhY2VPdXRwdXRUKGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jl c3MpOworCQkJcHFUcmFjZU91dHB1dFQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1 cnNvciwgcmVncmVzcywKKwkJCQkJCSAgIGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJs ZWQpOwogCQkJYnJlYWs7CiAJCWNhc2UgJ3YnOgkJCQkvKiBOZWdvdGlhdGUgUHJvdG9jb2wg VmVyc2lvbiAqLwogCQkJcHFUcmFjZU91dHB1dHYoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwg JmxvZ0N1cnNvcik7CkBAIC02NjUsNiArNjgyLDEyIEBAIHBxVHJhY2VPdXRwdXRNZXNzYWdl KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqbWVzc2FnZSwgYm9vbCB0b1NlcnZlcikKIAkJ CWZwcmludGYoY29ubi0+UGZkZWJ1ZywgIlRlcm1pbmF0ZSIpOwogCQkJLyogTm8gbWVzc2Fn ZSBjb250ZW50ICovCiAJCQlicmVhazsKKwkJY2FzZSAneSc6CisJCQlmcHJpbnRmKGNvbm4t PlBmZGVidWcsICJDb2x1bW5NYXN0ZXJLZXlcdFRPRE8iKTsKKwkJCWJyZWFrOworCQljYXNl ICdZJzoKKwkJCWZwcmludGYoY29ubi0+UGZkZWJ1ZywgIkNvbHVtbkVuY3J5cHRpb25LZXlc dFRPRE8iKTsKKwkJCWJyZWFrOwogCQljYXNlICdaJzoJCQkJLyogUmVhZHkgRm9yIFF1ZXJ5 ICovCiAJCQlwcVRyYWNlT3V0cHV0Wihjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vy c29yKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGli cHEtZmUuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgKaW5kZXggNzk4NjQ0 NWYxYS4uNDJmYmUwY2Q0OSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGli cHEtZmUuaAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oCkBAIC0yNjcs NiArMjY3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgcGdyZXNBdHREZXNjCiAJT2lkCQkJdHlwaWQ7 CQkJLyogdHlwZSBpZCAqLwogCWludAkJCXR5cGxlbjsJCQkvKiB0eXBlIHNpemUgKi8KIAlp bnQJCQlhdHR0eXBtb2Q7CQkvKiB0eXBlLXNwZWNpZmljIG1vZGlmaWVyIGluZm8gKi8KKwlP aWQJCQljZWtpZDsKKwlpbnQJCQljZWthbGc7CiB9IFBHcmVzQXR0RGVzYzsKIAogLyogLS0t LS0tLS0tLS0tLS0tLQpAQCAtNDM4LDYgKzQ0MCwxNSBAQCBleHRlcm4gUEdyZXN1bHQgKlBR ZXhlY1ByZXBhcmVkKFBHY29ubiAqY29ubiwKIAkJCQkJCQkJY29uc3QgaW50ICpwYXJhbUxl bmd0aHMsCiAJCQkJCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAogCQkJCQkJCQlpbnQg cmVzdWx0Rm9ybWF0KTsKK2V4dGVybiBQR3Jlc3VsdCAqUFFleGVjUHJlcGFyZWQyKFBHY29u biAqY29ubiwKKwkJCQkJCQkJIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorCQkJCQkJCQkgaW50 IG5QYXJhbXMsCisJCQkJCQkJCSBjb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCisJ CQkJCQkJCSBjb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKwkJCQkJCQkJIGNvbnN0IGludCAq cGFyYW1Gb3JtYXRzLAorCQkJCQkJCQkgY29uc3QgaW50ICpwYXJhbUZvcmNlQ29sdW1uRW5j cnlwdGlvbnMsCisJCQkJCQkJCSBpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCQkJCQkgUEdyZXN1 bHQgKnBhcmFtRGVzYyk7CiAKIC8qIEludGVyZmFjZSBmb3IgbXVsdGlwbGUtcmVzdWx0IG9y IGFzeW5jaHJvbm91cyBxdWVyaWVzICovCiAjZGVmaW5lIFBRX1FVRVJZX1BBUkFNX01BWF9M SU1JVCA2NTUzNQpAQCAtNDYxLDYgKzQ3MiwxNSBAQCBleHRlcm4gaW50CVBRc2VuZFF1ZXJ5 UHJlcGFyZWQoUEdjb25uICpjb25uLAogCQkJCQkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3Ro cywKIAkJCQkJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJCQkJCWludCByZXN1 bHRGb3JtYXQpOworZXh0ZXJuIGludAlQUXNlbmRRdWVyeVByZXBhcmVkMihQR2Nvbm4gKmNv bm4sCisJCQkJCQkJCSBjb25zdCBjaGFyICpzdG10TmFtZSwKKwkJCQkJCQkJIGludCBuUGFy YW1zLAorCQkJCQkJCQkgY29uc3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVzLAorCQkJCQkJ CQkgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisJCQkJCQkJCSBjb25zdCBpbnQgKnBhcmFt Rm9ybWF0cywKKwkJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRp b25zLAorCQkJCQkJCQkgaW50IHJlc3VsdEZvcm1hdCwKKwkJCQkJCQkJIFBHcmVzdWx0ICpw YXJhbURlc2MpOwogZXh0ZXJuIGludAlQUXNldFNpbmdsZVJvd01vZGUoUEdjb25uICpjb25u KTsKIGV4dGVybiBQR3Jlc3VsdCAqUFFnZXRSZXN1bHQoUEdjb25uICpjb25uKTsKIApAQCAt NTMxLDYgKzU1MSw3IEBAIGV4dGVybiBpbnQJUFFmZm9ybWF0KGNvbnN0IFBHcmVzdWx0ICpy ZXMsIGludCBmaWVsZF9udW0pOwogZXh0ZXJuIE9pZAlQUWZ0eXBlKGNvbnN0IFBHcmVzdWx0 ICpyZXMsIGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGludAlQUWZzaXplKGNvbnN0IFBHcmVz dWx0ICpyZXMsIGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGludAlQUWZtb2QoY29uc3QgUEdy ZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSk7CitleHRlcm4gaW50CVBRZmlzZW5jcnlwdGVk KGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGNoYXIgKlBR Y21kU3RhdHVzKFBHcmVzdWx0ICpyZXMpOwogZXh0ZXJuIGNoYXIgKlBRb2lkU3RhdHVzKGNv bnN0IFBHcmVzdWx0ICpyZXMpOwkvKiBvbGQgYW5kIHVnbHkgKi8KIGV4dGVybiBPaWQJUFFv aWRWYWx1ZShjb25zdCBQR3Jlc3VsdCAqcmVzKTsJLyogbmV3IGFuZCBpbXByb3ZlZCAqLwpA QCAtNTQwLDYgKzU2MSw3IEBAIGV4dGVybiBpbnQJUFFnZXRsZW5ndGgoY29uc3QgUEdyZXN1 bHQgKnJlcywgaW50IHR1cF9udW0sIGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGludAlQUWdl dGlzbnVsbChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgdHVwX251bSwgaW50IGZpZWxkX251 bSk7CiBleHRlcm4gaW50CVBRbnBhcmFtcyhjb25zdCBQR3Jlc3VsdCAqcmVzKTsKIGV4dGVy biBPaWQJUFFwYXJhbXR5cGUoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHBhcmFtX251bSk7 CitleHRlcm4gaW50CVBRcGFyYW1pc2VuY3J5cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBp bnQgcGFyYW1fbnVtKTsKIAogLyogRGVzY3JpYmUgcHJlcGFyZWQgc3RhdGVtZW50cyBhbmQg cG9ydGFscyAqLwogZXh0ZXJuIFBHcmVzdWx0ICpQUWRlc2NyaWJlUHJlcGFyZWQoUEdjb25u ICpjb25uLCBjb25zdCBjaGFyICpzdG10KTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2xpYnBxLWludC5oIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgK aW5kZXggYzc1ZWQ2M2EyYy4uMDkzMDdkYWIxMSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFj ZXMvbGlicHEvbGlicHEtaW50LmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEt aW50LmgKQEAgLTExMiw2ICsxMTIsOSBAQCB1bmlvbiBwZ3Jlc3VsdF9kYXRhCiB0eXBlZGVm IHN0cnVjdCBwZ3Jlc1BhcmFtRGVzYwogewogCU9pZAkJCXR5cGlkOwkJCS8qIHR5cGUgaWQg Ki8KKwlPaWQJCQljZWtpZDsKKwlpbnQJCQljZWthbGc7CisJaW50CQkJZmxhZ3M7CiB9IFBH cmVzUGFyYW1EZXNjOwogCiAvKgpAQCAtMzQzLDYgKzM0NiwyNiBAQCB0eXBlZGVmIHN0cnVj dCBwZ19jb25uX2hvc3QKIAkJCQkJCQkJICogZm91bmQgaW4gcGFzc3dvcmQgZmlsZS4gKi8K IH0gcGdfY29ubl9ob3N0OwogCisvKgorICogQ29sdW1uIGVuY3J5cHRpb24gc3VwcG9ydCBk YXRhCisgKi8KKworLyogY29sdW1uIG1hc3RlciBrZXkgKi8KK3R5cGVkZWYgc3RydWN0IHBn X2NtaworeworCU9pZAkJCWNta2lkOworCWNoYXIJICAgKmNta25hbWU7CisJY2hhcgkgICAq Y21rcmVhbG07Cit9IFBHQ01LOworCisvKiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgKi8KK3R5 cGVkZWYgc3RydWN0IHBnX2NlaworeworCU9pZAkJCWNla2lkOworCXVuc2lnbmVkIGNoYXIg KmNla2RhdGE7CQkvKiAoZGVjcnlwdGVkKSAqLworCXNpemVfdAkJY2VrZGF0YWxlbjsKK30g UEdDRUs7CisKIC8qCiAgKiBQR2Nvbm4gc3RvcmVzIGFsbCB0aGUgc3RhdGUgZGF0YSBhc3Nv Y2lhdGVkIHdpdGggYSBzaW5nbGUgY29ubmVjdGlvbgogICogdG8gYSBiYWNrZW5kLgpAQCAt Mzk2LDYgKzQxOSw4IEBAIHN0cnVjdCBwZ19jb25uCiAJY2hhcgkgICAqc3NsX21pbl9wcm90 b2NvbF92ZXJzaW9uOwkvKiBtaW5pbXVtIFRMUyBwcm90b2NvbCB2ZXJzaW9uICovCiAJY2hh cgkgICAqc3NsX21heF9wcm90b2NvbF92ZXJzaW9uOwkvKiBtYXhpbXVtIFRMUyBwcm90b2Nv bCB2ZXJzaW9uICovCiAJY2hhcgkgICAqdGFyZ2V0X3Nlc3Npb25fYXR0cnM7CS8qIGRlc2ly ZWQgc2Vzc2lvbiBwcm9wZXJ0aWVzICovCisJY2hhcgkgICAqY21rbG9va3VwOwkJLyogQ01L IGxvb2t1cCBzcGVjaWZpY2F0aW9uICovCisJY2hhcgkgICAqY29sdW1uX2VuY3J5cHRpb25f c2V0dGluZzsJLyogY29sdW1uX2VuY3J5cHRpb24gY29ubmVjdGlvbiBwYXJhbWV0ZXIgKDAg b3IgMSkgKi8KIAogCS8qIE9wdGlvbmFsIGZpbGUgdG8gd3JpdGUgdHJhY2UgaW5mbyB0byAq LwogCUZJTEUJICAgKlBmZGVidWc7CkBAIC00NzcsNiArNTAyLDEzIEBAIHN0cnVjdCBwZ19j b25uCiAJUEdWZXJib3NpdHkgdmVyYm9zaXR5OwkJLyogZXJyb3Ivbm90aWNlIG1lc3NhZ2Ug dmVyYm9zaXR5ICovCiAJUEdDb250ZXh0VmlzaWJpbGl0eSBzaG93X2NvbnRleHQ7CS8qIHdo ZXRoZXIgdG8gc2hvdyBDT05URVhUIGZpZWxkICovCiAJUEdsb2JqZnVuY3MgKmxvYmpmdW5j czsJCS8qIHByaXZhdGUgc3RhdGUgZm9yIGxhcmdlLW9iamVjdCBhY2Nlc3MgZm5zICovCisJ Ym9vbAkJY29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZDsJLyogcGFyc2VkIHZlcnNpb24gb2Yg Y29sdW1uX2VuY3J5cHRpb25fc2V0dGluZyAqLworCisJLyogQ29sdW1uIGVuY3J5cHRpb24g c3VwcG9ydCBkYXRhICovCisJaW50CQkJbmNta3M7CisJUEdDTUsJICAgKmNta3M7CisJaW50 CQkJbmNla3M7CisJUEdDRUsJICAgKmNla3M7CiAKIAkvKiBCdWZmZXIgZm9yIGRhdGEgcmVj ZWl2ZWQgZnJvbSBiYWNrZW5kIGFuZCBub3QgeWV0IHByb2Nlc3NlZCAqLwogCWNoYXIJICAg KmluQnVmZmVyOwkJLyogY3VycmVudGx5IGFsbG9jYXRlZCBidWZmZXIgKi8KQEAgLTY3Myw2 ICs3MDUsMTAgQEAgZXh0ZXJuIHZvaWQgcHFTYXZlTWVzc2FnZUZpZWxkKFBHcmVzdWx0ICpy ZXMsIGNoYXIgY29kZSwKIAkJCQkJCQkgICBjb25zdCBjaGFyICp2YWx1ZSk7CiBleHRlcm4g dm9pZCBwcVNhdmVQYXJhbWV0ZXJTdGF0dXMoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpu YW1lLAogCQkJCQkJCQkgIGNvbnN0IGNoYXIgKnZhbHVlKTsKK2V4dGVybiBpbnQJcHFTYXZl Q29sdW1uTWFzdGVyS2V5KFBHY29ubiAqY29ubiwgaW50IGtleWlkLCBjb25zdCBjaGFyICpr ZXluYW1lLAorCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmtleXJlYWxtKTsKK2V4dGVybiBpbnQJ cHFTYXZlQ29sdW1uRW5jcnlwdGlvbktleShQR2Nvbm4gKmNvbm4sIGludCBrZXlpZCwgaW50 IGNta2lkLCBpbnQgY21rYWxnLAorCQkJCQkJCQkJICBjb25zdCB1bnNpZ25lZCBjaGFyICp2 YWx1ZSwgaW50IGxlbik7CiBleHRlcm4gaW50CXBxUm93UHJvY2Vzc29yKFBHY29ubiAqY29u biwgY29uc3QgY2hhciAqKmVycm1zZ3ApOwogZXh0ZXJuIHZvaWQgcHFDb21tYW5kUXVldWVB ZHZhbmNlKFBHY29ubiAqY29ubik7CiBleHRlcm4gaW50CVBRc2VuZFF1ZXJ5Q29udGludWUo UEdjb25uICpjb25uLCBjb25zdCBjaGFyICpxdWVyeSk7CkBAIC02ODUsNiArNzIxLDcgQEAg ZXh0ZXJuIHZvaWQgcHFQYXJzZUlucHV0MyhQR2Nvbm4gKmNvbm4pOwogZXh0ZXJuIGludAlw cUdldEVycm9yTm90aWNlMyhQR2Nvbm4gKmNvbm4sIGJvb2wgaXNFcnJvcik7CiBleHRlcm4g dm9pZCBwcUJ1aWxkRXJyb3JNZXNzYWdlMyhQUUV4cEJ1ZmZlciBtc2csIGNvbnN0IFBHcmVz dWx0ICpyZXMsCiAJCQkJCQkJCSBQR1ZlcmJvc2l0eSB2ZXJib3NpdHksIFBHQ29udGV4dFZp c2liaWxpdHkgc2hvd19jb250ZXh0KTsKK2V4dGVybiBpbnQJcHFHZXROZWdvdGlhdGVQcm90 b2NvbFZlcnNpb24zKFBHY29ubiAqY29ubik7CiBleHRlcm4gaW50CXBxR2V0Q29weURhdGEz KFBHY29ubiAqY29ubiwgY2hhciAqKmJ1ZmZlciwgaW50IGFzeW5jKTsKIGV4dGVybiBpbnQJ cHFHZXRsaW5lMyhQR2Nvbm4gKmNvbm4sIGNoYXIgKnMsIGludCBtYXhsZW4pOwogZXh0ZXJu IGludAlwcUdldGxpbmVBc3luYzMoUEdjb25uICpjb25uLCBjaGFyICpidWZmZXIsIGludCBi dWZzaXplKTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL25scy5tayBiL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL25scy5tawppbmRleCA5MjU2YjQyNmMxLi5jNDVmZTg2ZDFk IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsKKysrIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvbmxzLm1rCkBAIC0xLDUgKzEsNSBAQAogIyBzcmMvaW50ZXJmYWNl cy9saWJwcS9ubHMubWsKIENBVEFMT0dfTkFNRSAgICAgPSBsaWJwcQotR0VUVEVYVF9GSUxF UyAgICA9IGZlLWF1dGguYyBmZS1hdXRoLXNjcmFtLmMgZmUtY29ubmVjdC5jIGZlLWV4ZWMu YyBmZS1nc3NhcGktY29tbW9uLmMgZmUtbG9iai5jIGZlLW1pc2MuYyBmZS1wcm90b2NvbDMu YyBmZS1zZWN1cmUuYyBmZS1zZWN1cmUtY29tbW9uLmMgZmUtc2VjdXJlLWdzc2FwaS5jIGZl LXNlY3VyZS1vcGVuc3NsLmMgd2luMzIuYyAuLi8uLi9wb3J0L3RocmVhZC5jCitHRVRURVhU X0ZJTEVTICAgID0gZmUtYXV0aC5jIGZlLWF1dGgtc2NyYW0uYyBmZS1jb25uZWN0LmMgZmUt ZW5jcnlwdC1vcGVuc3NsLmMgZmUtZXhlYy5jIGZlLWdzc2FwaS1jb21tb24uYyBmZS1sb2Jq LmMgZmUtbWlzYy5jIGZlLXByb3RvY29sMy5jIGZlLXNlY3VyZS5jIGZlLXNlY3VyZS1jb21t b24uYyBmZS1zZWN1cmUtZ3NzYXBpLmMgZmUtc2VjdXJlLW9wZW5zc2wuYyB3aW4zMi5jIC4u Ly4uL3BvcnQvdGhyZWFkLmMKIEdFVFRFWFRfVFJJR0dFUlMgPSBsaWJwcV9nZXR0ZXh0IHBx SW50ZXJuYWxOb3RpY2U6MgogR0VUVEVYVF9GTEFHUyAgICA9IGxpYnBxX2dldHRleHQ6MTpw YXNzLWMtZm9ybWF0IHBxSW50ZXJuYWxOb3RpY2U6MjpjLWZvcm1hdApkaWZmIC0tZ2l0IGEv c3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC8uZ2l0aWdub3JlIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvdGVzdC8uZ2l0aWdub3JlCmluZGV4IDZiYTc4YWRiNjcuLjE4NDY1OTRlYzUgMTAw NjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvLmdpdGlnbm9yZQorKysgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRpZ25vcmUKQEAgLTEsMiArMSwzIEBACisv bGlicHFfdGVzdF9lbmNyeXB0CiAvbGlicHFfdGVzdGNsaWVudAogL2xpYnBxX3VyaV9yZWdy ZXNzCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L01ha2VmaWxlIGIv c3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9NYWtlZmlsZQppbmRleCA3NWFjMDhmOTQzLi5i MWViYWI5MGQ0IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L01ha2Vm aWxlCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvTWFrZWZpbGUKQEAgLTE1LDEw ICsxNSwxNyBAQCBvdmVycmlkZSBDUFBGTEFHUyA6PSAtSSQobGlicHFfc3JjZGlyKSAkKENQ UEZMQUdTKQogTERGTEFHU19JTlRFUk5BTCArPSAkKGxpYnBxX3BncG9ydCkKIAogUFJPR1Mg PSBsaWJwcV90ZXN0Y2xpZW50IGxpYnBxX3VyaV9yZWdyZXNzCitpZmVxICgkKHdpdGhfc3Ns KSxvcGVuc3NsKQorUFJPR1MgKz0gbGlicHFfdGVzdF9lbmNyeXB0CitlbmRpZgorCiAKIGFs bDogJChQUk9HUykKIAogJChQUk9HUyk6ICQoV0lOMzJSRVMpCiAKK2xpYnBxX3Rlc3RfZW5j cnlwdDogLi4vZmUtZW5jcnlwdC1vcGVuc3NsLmMKKwkkKENDKSAkKENQUEZMQUdTKSAtRFRF U1RfRU5DUllQVCAkKENGTEFHUykgJF4gJChMREZMQUdTKSAkKExERkxBR1NfRVgpICQoTElC UykgLW8gJEAkKFgpCisKIGNsZWFuIGRpc3RjbGVhbiBtYWludGFpbmVyLWNsZWFuOgogCXJt IC1mICQoUFJPR1MpICoubwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvTWFrZWZpbGUgYi9zcmMv dGVzdC9NYWtlZmlsZQppbmRleCA2OWVmMDc0ZDc1Li4yMzAwYmU4MzMyIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9NYWtlZmlsZQorKysgYi9zcmMvdGVzdC9NYWtlZmlsZQpAQCAtMzIsNiAr MzIsNyBAQCBTVUJESVJTICs9IGxkYXAKIGVuZGlmCiBlbmRpZgogaWZlcSAoJCh3aXRoX3Nz bCksb3BlbnNzbCkKK1NVQkRJUlMgKz0gY29sdW1uX2VuY3J5cHRpb24KIGlmbmVxICgsJChm aWx0ZXIgc3NsLCQoUEdfVEVTVF9FWFRSQSkpKQogU1VCRElSUyArPSBzc2wKIGVuZGlmCkBA IC00MSw3ICs0Miw3IEBAIGVuZGlmCiAjIGNsZWFuIiBldGMgdG8gcmVjdXJzZSBpbnRvIHRo ZW0uICAoV2UgbXVzdCBmaWx0ZXIgb3V0IHRob3NlIHRoYXQgd2UKICMgaGF2ZSBjb25kaXRp b25hbGx5IGluY2x1ZGVkIGludG8gU1VCRElSUyBhYm92ZSwgZWxzZSB0aGVyZSB3aWxsIGJl CiAjIG1ha2UgY29uZnVzaW9uLikKLUFMV0FZU19TVUJESVJTID0gJChmaWx0ZXItb3V0ICQo U1VCRElSUyksZXhhbXBsZXMga2VyYmVyb3MgaWN1IGxkYXAgc3NsKQorQUxXQVlTX1NVQkRJ UlMgPSAkKGZpbHRlci1vdXQgJChTVUJESVJTKSxleGFtcGxlcyBrZXJiZXJvcyBpY3UgbGRh cCBzc2wgY29sdW1uX2VuY3J5cHRpb24pCiAKICMgV2Ugd2FudCB0byByZWN1cnNlIHRvIGFs bCBzdWJkaXJzIGZvciBhbGwgc3RhbmRhcmQgdGFyZ2V0cywgZXhjZXB0IHRoYXQKICMgaW5z dGFsbGNoZWNrIGFuZCBpbnN0YWxsIHNob3VsZCBub3QgcmVjdXJzZSBpbnRvIHRoZSBzdWJk aXJlY3RvcnkgIm1vZHVsZXMiLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5 cHRpb24vLmdpdGlnbm9yZSBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRpZ25v cmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDU2ZGJmNjlkMgot LS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRpZ25v cmUKQEAgLTAsMCArMSwzIEBACisvdGVzdF9jbGllbnQKKyMgR2VuZXJhdGVkIGJ5IHRlc3Qg c3VpdGUKKy90bXBfY2hlY2svCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlw dGlvbi9NYWtlZmlsZSBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjdhY2E4NGIxN2EKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9NYWtlZmlsZQpAQCAt MCwwICsxLDI5IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIworIyBNYWtlZmlsZSBmb3Ig c3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24KKyMKKyMgUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk2LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisjIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBv ZiBDYWxpZm9ybmlhCisjCisjIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxl CisjCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitzdWJkaXIgPSBzcmMvdGVzdC9jb2x1bW5f ZW5jcnlwdGlvbgordG9wX2J1aWxkZGlyID0gLi4vLi4vLi4KK2luY2x1ZGUgJCh0b3BfYnVp bGRkaXIpL3NyYy9NYWtlZmlsZS5nbG9iYWwKKworb3ZlcnJpZGUgQ1BQRkxBR1MgOj0gLUkk KGxpYnBxX3NyY2RpcikgJChDUFBGTEFHUykKK0xERkxBR1NfSU5URVJOQUwgKz0gLUwkKHRv cF9idWlsZGRpcikvc3JjL2ZlX3V0aWxzIC1scGdmZXV0aWxzICQobGlicHFfcGdwb3J0KQor CithbGw6IHRlc3RfY2xpZW50CisKK2NoZWNrOiBhbGwKKwkkKHByb3ZlX2NoZWNrKQorCitp bnN0YWxsY2hlY2s6CisJJChwcm92ZV9pbnN0YWxsY2hlY2spCisKK2NsZWFuIGRpc3RjbGVh biBtYWludGFpbmVyLWNsZWFuOgorCXJtIC1mIHRlc3RfY2xpZW50Lm8gdGVzdF9jbGllbnQK KwlybSAtcmYgdG1wX2NoZWNrCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlw dGlvbi90LzAwMV9jb2x1bW5fZW5jcnlwdGlvbi5wbCBiL3NyYy90ZXN0L2NvbHVtbl9lbmNy eXB0aW9uL3QvMDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAuLjRhMjM0MTRlZTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMV9jb2x1bW5fZW5jcnlwdGlvbi5wbApAQCAt MCwwICsxLDE4MyBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgUG9zdGdyZVNRTCBH bG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsK K3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6 OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK215ICRub2RlID0gUG9zdGdyZVNRTDo6VGVz dDo6Q2x1c3Rlci0+bmV3KCdub2RlJyk7Ciskbm9kZS0+aW5pdDsKKyRub2RlLT5zdGFydDsK KworCitzdWIgY3JlYXRlX2NtaworeworCW15ICgkY21rbmFtZSkgPSBAXzsKKwlteSAkY21r ZmlsZW5hbWUgPSAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nt a25hbWV9LnBlbSI7CisJc3lzdGVtX29yX2JhaWwgJ29wZW5zc2wnLCAnZ2VucGtleScsICct YWxnb3JpdGhtJywgJ3JzYScsICctb3V0JywgJGNta2ZpbGVuYW1lOworCSRub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgcXF7Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZICR7Y21rbmFt ZX0gV0lUSCAocmVhbG0gPSAnJyl9KTsKKwlyZXR1cm4gJGNta2ZpbGVuYW1lOworfQorCitz dWIgY3JlYXRlX2NlaworeworCW15ICgkY2VrbmFtZSwgJGJ5dGVzLCAkY21rbmFtZSwgJGNt a2ZpbGVuYW1lKSA9IEBfOworCisJIyBnZW5lcmF0ZSByYW5kb20gYnl0ZXMKKwlzeXN0ZW1f b3JfYmFpbCAnb3BlbnNzbCcsICdyYW5kJywgJy1vdXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0 OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbiIsICRieXRlczsKKworCSMgZW5j cnlwdCBDRUsgdXNpbmcgQ01LCisJc3lzdGVtX29yX2JhaWwgJ29wZW5zc2wnLCAncGtleXV0 bCcsICctZW5jcnlwdCcsCisJICAnLWlua2V5JywgJGNta2ZpbGVuYW1lLAorCSAgJy1wa2V5 b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisJICAnLWluJywgIiR7UG9zdGdyZVNR TDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4iLAorCSAgJy1vdXQn LCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJp bi5lbmMiOworCisJbXkgJGNla2VuY2hleCA9IHVucGFjaygnSConLCBzbHVycF9maWxlICIk e1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluLmVu YyIpOworCisJIyBjcmVhdGUgQ0VLIGluIGRhdGFiYXNlCisJJG5vZGUtPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCBxcXtDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZICR7Y2VrbmFtZX0g V0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gJHtjbWtuYW1lfSwgZW5jcnlwdGVk X3ZhbHVlID0gJ1xceCR7Y2VrZW5jaGV4fScpO30pOworCisJcmV0dXJuOworfQorCisKK215 ICRjbWsxZmlsZW5hbWUgPSBjcmVhdGVfY21rKCdjbWsxJyk7CitteSAkY21rMmZpbGVuYW1l ID0gY3JlYXRlX2NtaygnY21rMicpOworY3JlYXRlX2NlaygnY2VrMScsIDMyLCAnY21rMScs ICRjbWsxZmlsZW5hbWUpOworY3JlYXRlX2NlaygnY2VrMicsIDQ4LCAnY21rMicsICRjbWsy ZmlsZW5hbWUpOworCiskRU5WeydQR0NPTFVNTkVOQ1JZUFRJT04nfSA9ICcxJzsKKyRFTlZ7 J1BHQ01LTE9PS1VQJ30gPSAnKj1maWxlOicgLiAke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxz Ojp0bXBfY2hlY2t9IC4gJy8lay5wZW0nOworCisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgcXF7CitDUkVBVEUgVEFCTEUgdGJsMSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0 IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSwKKyAgICBj IHNtYWxsaW50IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsx KQorKTsKK30pOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworQ1JFQVRF IFRBQkxFIHRibDIgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBURUQgV0lUSCAo ZW5jcnlwdGlvbl90eXBlID0gZGV0ZXJtaW5pc3RpYywgY29sdW1uX2VuY3J5cHRpb25fa2V5 ID0gY2VrMSkKKyk7Cit9KTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsK K0NSRUFURSBUQUJMRSB0YmwzICgKKyAgICBhIGludCwKKyAgICBiIHRleHQgRU5DUllQVEVE IFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpLAorICAgIGMgdGV4dCBFTkNS WVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMiwgYWxnb3JpdGhtID0g J0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0JykKKyk7Cit9KTsKKworJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCBxeworSU5TRVJUIElOVE8gdGJsMSAoYSwgYiwgYykgVkFM VUVTICgxLCAkMSwgJDIpIFxnZW5jciAndmFsMScgMTEKK0lOU0VSVCBJTlRPIHRibDEgKGEs IGIsIGMpIFZBTFVFUyAoMiwgJDEsICQyKSBcZ2VuY3IgJ3ZhbDInIDIyCit9KTsKKworIyBF eHBlY3RlZCBjaXBoZXJ0ZXh0IGxlbmd0aCBpcyAyIGJsb2NrcyBvZiBBRVMgb3V0cHV0ICgy ICogMTYpIHBsdXMKKyMgaGFsZiBTSEEtMjU2IG91dHB1dCAoMTYpIGluIGhleCBlbmNvZGlu ZzogKDIgKiAxNiArIDE2KSAqIDIgPSA5NgorbGlrZSgkbm9kZS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsIHF7Q09QWSAoU0VMRUNUICogRlJPTSB0YmwxKSBUTyBTVERPVVR9KSwKKwlxci8x XHRcXFxceFswLTlhLWZdezk2fVx0XFxcXHhbMC05YS1mXXs5Nn1cbjJcdFxcXFx4WzAtOWEt Zl17OTZ9XHRcXFxceFswLTlhLWZdezk2fS8sCisJJ2luc2VydGVkIGRhdGEgaXMgZW5jcnlw dGVkJyk7CisKK215ICRyZXN1bHQ7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxIFxnZGVzY30pOworaXMoJHJl c3VsdCwKKwlxKGF8aW50ZWdlcgorYnx0ZXh0CitjfHNtYWxsaW50KSwKKwkncXVlcnkgcmVz dWx0IGRlc2NyaXB0aW9uIGhhcyBvcmlnaW5hbCB0eXBlJyk7CisKKyRyZXN1bHQgPSAkbm9k ZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7 CitpcygkcmVzdWx0LAorCXEoMXx2YWwxfDExCisyfHZhbDJ8MjIpLAorCSdkZWNyeXB0ZWQg cXVlcnkgcmVzdWx0Jyk7CisKK3sKKwlsb2NhbCAkRU5WeydQR0NNS0xPT0tVUCd9ID0gJyo9 cnVuOmJyb2tlbiAlayAiJWIiJzsKKwkkcmVzdWx0ID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVz JywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKKwlpc250KCRyZXN1bHQsIDAsICdx dWVyeSBmYWlscyB3aXRoIGJyb2tlbiBjbWtsb29rdXAgcnVuIHNldHRpbmcnKTsKK30KKwor eworCWxvY2FsICRFTlZ7J1BHQ01LTE9PS1VQJ30gPSAiKj1ydW46cGVybCAuL3Rlc3RfcnVu X2RlY3J5cHQucGwgJyR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30nICVr ICVhICclYiciOworCisJJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKKwlpcygkcmVzdWx0LAorCQlxKDF8dmFs MXwxMQorMnx2YWwyfDIyKSwKKwkJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgd2l0aCBjbWts b29rdXAgcnVuJyk7Cit9CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXsKK0lO U0VSVCBJTlRPIHRibDMgKGEsIGIsIGMpIFZBTFVFUyAoMSwgJDEsICQyKSBcZ2VuY3IgJ3Zh bEIxJyAndmFsQzEnCit9KTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDN9KTsKK2lzKCRyZXN1bHQsCisJcSgx fHZhbEIxfHZhbEMxKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBtdWx0aXBsZSBrZXlz Jyk7CisKKworJG5vZGUtPmNvbW1hbmRfZmFpbHNfbGlrZShbJ3Rlc3RfY2xpZW50JywgJ3Rl c3QxJ10sIHFyL25vdCBlbmNyeXB0ZWQvLCAndGVzdCBjbGllbnQgZmFpbHMgYmVjYXVzZSBw YXJhbWV0ZXJzIG5vdCBlbmNyeXB0ZWQnKTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKK2lzKCRyZXN1 bHQsCisJcSgxfHZhbDF8MTEKKzJ8dmFsMnwyMiksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1 bHQgYWZ0ZXIgdGVzdCBjbGllbnQgaW5zZXJ0Jyk7CisKKyRub2RlLT5jb21tYW5kX29rKFsn dGVzdF9jbGllbnQnLCAndGVzdDInXSwgJ3Rlc3QgY2xpZW50IHRlc3QgMicpOworCiskcmVz dWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZS T00gdGJsMX0pOworaXMoJHJlc3VsdCwKKwlxKDF8dmFsMXwxMQorMnx2YWwyfDIyCiszfHZh bDN8MzMpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IGFmdGVyIHRlc3QgY2xpZW50IGlu c2VydCAyJyk7CisKK2xpa2UoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe0NPUFkg KFNFTEVDVCAqIEZST00gdGJsMSBXSEVSRSBhID0gMykgVE8gU1RET1VUfSksCisJcXIvM1x0 XFxcXHhbMC05YS1mXXs5Nn0vLAorCSdpbnNlcnRlZCBkYXRhIGlzIGVuY3J5cHRlZCcpOwor Ciskbm9kZS0+Y29tbWFuZF9vayhbJ3Rlc3RfY2xpZW50JywgJ3Rlc3QzJ10sICd0ZXN0IGNs aWVudCB0ZXN0IDMnKTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZh bDF8MTEKKzJ8dmFsMnwyMgorM3x2YWwzdXBkfDMzKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJl c3VsdCBhZnRlciB0ZXN0IGNsaWVudCBpbnNlcnQgMycpOworCiskbm9kZS0+Y29tbWFuZF9v ayhbJ3Rlc3RfY2xpZW50JywgJ3Rlc3Q0J10sICd0ZXN0IGNsaWVudCB0ZXN0IDQnKTsKKwor JHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiBG Uk9NIHRibDJ9KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZhbEEKKzJ8dmFsQgorM3x2YWxBKSwK KwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBhZnRlciB0ZXN0IGNsaWVudCBpbnNlcnQgNCcp OworCitpcygkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGIsIGNvdW50 KCopIEZST00gdGJsMiBHUk9VUCBCWSBiIE9SREVSIEJZIDJ9KSwKKwlxKHZhbEJ8MQordmFs QXwyKSwKKwknZ3JvdXAgYnkgZGV0ZXJtaW5pc3RpY2FsbHkgZW5jcnlwdGVkIGNvbHVtbicp OworCiskbm9kZS0+Y29tbWFuZF9vayhbJ3Rlc3RfY2xpZW50JywgJ3Rlc3Q1J10sICd0ZXN0 IGNsaWVudCB0ZXN0IDUnKTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDN9KTsKK2lzKCRyZXN1bHQsCisJcSgx fHZhbEIxfHZhbEMxCisyfHZhbEIyfHZhbEMyCiszfHZhbEIzfHZhbEMzKSwKKwknZGVjcnlw dGVkIHF1ZXJ5IHJlc3VsdCBtdWx0aXBsZSBrZXlzIGFmdGVyIHRlc3QgY2xpZW50IGluc2Vy dCA1Jyk7CisKK2RvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1u X2VuY3J5cHRpb24vdC8wMDJfY21rX3JvdGF0aW9uLnBsIGIvc3JjL3Rlc3QvY29sdW1uX2Vu Y3J5cHRpb24vdC8wMDJfY21rX3JvdGF0aW9uLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLmVjNDQ3ODcyYWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVz dC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwKQEAgLTAsMCArMSwx MDggQEAKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERl dmVsb3BtZW50IEdyb3VwCisKKyMgVGVzdCBjb2x1bW4gbWFzdGVyIGtleSByb3RhdGlvbi4g IEZpcnN0LCB3ZSBnZW5lcmF0ZSBDTUsxIGFuZCBhIENFSworIyBlbmNyeXB0ZWQgd2l0aCBp dC4gIFRoZW4gd2UgYWRkIGEgQ01LMiBhbmQgZW5jcnlwdCB0aGUgQ0VLIHdpdGggaXQKKyMg YXMgd2VsbC4gIChSZWNhbGwgdGhhdCBhIENFSyBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIG11 bHRpcGxlIENNS3MsCisjIGZvciB0aGlzIHJlYXNvbi4gIFRoYXQncyB3aHkgcGdfY29sZW5j a2V5ZGF0YSBpcyBzcGxpdCBvdXQgZnJvbQorIyBwZ19jb2xlbmNrZXkuKSAgVGhlbiB3ZSBy ZW1vdmUgQ01LMS4gIFdlIHRlc3QgdGhhdCB3ZSBjYW4gZ2V0CisjIGRlY3J5cHRlZCBxdWVy eSByZXN1bHRzIGF0IGVhY2ggc3RlcC4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsK K3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6 OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK215ICRub2RlID0gUG9zdGdyZVNRTDo6VGVz dDo6Q2x1c3Rlci0+bmV3KCdub2RlJyk7Ciskbm9kZS0+aW5pdDsKKyRub2RlLT5zdGFydDsK KworCitzdWIgY3JlYXRlX2NtaworeworCW15ICgkY21rbmFtZSkgPSBAXzsKKwlteSAkY21r ZmlsZW5hbWUgPSAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nt a25hbWV9LnBlbSI7CisJc3lzdGVtX29yX2JhaWwgJ29wZW5zc2wnLCAnZ2VucGtleScsICct YWxnb3JpdGhtJywgJ3JzYScsICctb3V0JywgJGNta2ZpbGVuYW1lOworCSRub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgcXF7Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZICR7Y21rbmFt ZX0gV0lUSCAocmVhbG0gPSAnJyl9KTsKKwlyZXR1cm4gJGNta2ZpbGVuYW1lOworfQorCisK K215ICRjbWsxZmlsZW5hbWUgPSBjcmVhdGVfY21rKCdjbWsxJyk7CisKKyMgY3JlYXRlIENF SworbXkgKCRjZWtuYW1lLCAkYnl0ZXMpID0gKCdjZWsxJywgMTYrMTYpOworCisjIGdlbmVy YXRlIHJhbmRvbSBieXRlcworc3lzdGVtX29yX2JhaWwgJ29wZW5zc2wnLCAncmFuZCcsICct b3V0JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1l fS5iaW4iLCAkYnl0ZXM7CisKKyMgZW5jcnlwdCBDRUsgdXNpbmcgQ01LCitzeXN0ZW1fb3Jf YmFpbCAnb3BlbnNzbCcsICdwa2V5dXRsJywgJy1lbmNyeXB0JywKKyAgJy1pbmtleScsICRj bWsxZmlsZW5hbWUsCisgICctcGtleW9wdCcsICdyc2FfcGFkZGluZ19tb2RlOm9hZXAnLAor ICAnLWluJywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtu YW1lfS5iaW4iLAorICAnLW91dCcsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBf Y2hlY2t9LyR7Y2VrbmFtZX0uYmluLmVuYyI7CisKK215ICRjZWtlbmNoZXggPSB1bnBhY2so J0gqJywgc2x1cnBfZmlsZSAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNr fS8ke2Nla25hbWV9LmJpbi5lbmMiKTsKKworIyBjcmVhdGUgQ0VLIGluIGRhdGFiYXNlCisk bm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0NSRUFURSBDT0xVTU4gRU5DUllQVElP TiBLRVkgJHtjZWtuYW1lfSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsx LCBlbmNyeXB0ZWRfdmFsdWUgPSAnXFx4JHtjZWtlbmNoZXh9Jyk7fSk7CisKKyRFTlZ7J1BH Q09MVU1ORU5DUllQVElPTid9ID0gJzEnOworJEVOVnsnUEdDTUtMT09LVVAnfSA9ICcqPWZp bGU6JyAuICR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30gLiAnLyVrLnBl bSc7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CitDUkVBVEUgVEFCTEUg dGJsMSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5f ZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK30pOworCiskbm9kZS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsIHF7CitJTlNFUlQgSU5UTyB0YmwxIChhLCBiKSBWQUxVRVMgKDEsICQxKSBc Z2VuY3IgJ3ZhbDEnCitJTlNFUlQgSU5UTyB0YmwxIChhLCBiKSBWQUxVRVMgKDIsICQxKSBc Z2VuY3IgJ3ZhbDInCit9KTsKKworaXMoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBx e1NFTEVDVCBhLCBiIEZST00gdGJsMX0pLAorCXEoMXx2YWwxCisyfHZhbDIpLAorCSdkZWNy eXB0ZWQgcXVlcnkgcmVzdWx0IHdpdGggb25lIENNSycpOworCisKKyMgY3JlYXRlIG5ldyBD TUsKK215ICRjbWsyZmlsZW5hbWUgPSBjcmVhdGVfY21rKCdjbWsyJyk7CisKKyMgZW5jcnlw dCBDRUsgdXNpbmcgbmV3IENNSworIworIyAoSGVyZSwgd2Ugc3RpbGwgaGF2ZSB0aGUgcGxh aW50ZXh0IG9mIHRoZSBDRUsgYXZhaWxhYmxlIGZyb20KKyMgZWFybGllci4gIEluIHJlYWxp dHksIG9uZSB3b3VsZCBkZWNyeXB0IHRoZSBDRUsgd2l0aCB0aGUgZmlyc3QgQ01LCisjIGFu ZCB0aGVuIHJlLWVuY3J5cHQgaXQgd2l0aCB0aGUgc2Vjb25kIENNSy4pCitzeXN0ZW1fb3Jf YmFpbCAnb3BlbnNzbCcsICdwa2V5dXRsJywgJy1lbmNyeXB0JywKKyAgJy1pbmtleScsICRj bWsyZmlsZW5hbWUsCisgICctcGtleW9wdCcsICdyc2FfcGFkZGluZ19tb2RlOm9hZXAnLAor ICAnLWluJywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtu YW1lfS5iaW4iLAorICAnLW91dCcsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBf Y2hlY2t9LyR7Y2VrbmFtZX0uYmluLmVuYyI7CisKKyRjZWtlbmNoZXggPSB1bnBhY2soJ0gq Jywgc2x1cnBfZmlsZSAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8k e2Nla25hbWV9LmJpbi5lbmMiKTsKKworIyBhZGQgbmV3IGRhdGEgcmVjb3JkIGZvciBDRUsg aW4gZGF0YWJhc2UKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7QUxURVIgQ09M VU1OIEVOQ1JZUFRJT04gS0VZICR7Y2VrbmFtZX0gQUREIFZBTFVFIChjb2x1bW5fbWFzdGVy X2tleSA9IGNtazIsIGVuY3J5cHRlZF92YWx1ZSA9ICdcXHgke2Nla2VuY2hleH0nKTt9KTsK KworCitpcygkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIgRlJP TSB0YmwxfSksCisJcSgxfHZhbDEKKzJ8dmFsMiksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1 bHQgd2l0aCB0d28gQ01LcycpOworCisKKyMgZGVsZXRlIENFSyByZWNvcmQgZm9yIGZpcnN0 IENNSworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkgJHtjZWtuYW1lfSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9 IGNtazEpO30pOworCisKK2lzKCRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxF Q1QgYSwgYiBGUk9NIHRibDF9KSwKKwlxKDF8dmFsMQorMnx2YWwyKSwKKwknZGVjcnlwdGVk IHF1ZXJ5IHJlc3VsdCB3aXRoIG9ubHkgbmV3IENNSycpOworCisKK2RvbmVfdGVzdGluZygp OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9jbGllbnQu YyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNjM2ZGU4OGM3OAotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMKQEAgLTAs MCArMSwyMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXNf ZmUuaCIKKworI2luY2x1ZGUgImxpYnBxLWZlLmgiCisKKworc3RhdGljIGludAordGVzdDEo UEdjb25uICpjb25uKQoreworCVBHcmVzdWx0ICAgKnJlczsKKwljb25zdCBjaGFyICp2YWx1 ZXNbXSA9IHsiMyIsICJ2YWwzIiwgIjMzIn07CisKKwlyZXMgPSBQUWV4ZWNQYXJhbXMoY29u biwgIklOU0VSVCBJTlRPIHRibDEgKGEsIGIsIGMpIFZBTFVFUyAoJDEsICQyLCAkMykiLAor CQkJCQkgICAzLCBOVUxMLCB2YWx1ZXMsIE5VTEwsIE5VTEwsIDApOworCWlmIChQUXJlc3Vs dFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVy ciwgIlBRZXhlY1BhcmFtcygpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2Uo Y29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlu dAordGVzdDIoUEdjb25uICpjb25uKQoreworCVBHcmVzdWx0ICAgKnJlcywKKwkJCSAgICpy ZXMyOworCWNvbnN0IGNoYXIgKnZhbHVlc1tdID0geyIzIiwgInZhbDMiLCAiMzMifTsKKwlp bnQJCQlmb3JjZXNbXSA9IHtmYWxzZSwgdHJ1ZX07CisKKwlyZXMgPSBQUXByZXBhcmUoY29u biwgIiIsICJJTlNFUlQgSU5UTyB0YmwxIChhLCBiLCBjKSBWQUxVRVMgKCQxLCAkMiwgJDMp IiwKKwkJCQkJMywgTlVMTCk7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNf Q09NTUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFwcmVwYXJlKCkgZmFpbGVk OiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0K KworCXJlczIgPSBQUWRlc2NyaWJlUHJlcGFyZWQoY29ubiwgIiIpOworCWlmIChQUXJlc3Vs dFN0YXR1cyhyZXMyKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRl cnIsICJQUWRlc2NyaWJlUHJlcGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JN ZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKCEoIVBRcGFyYW1pc2Vu Y3J5cHRlZChyZXMyLCAwKSAmJgorCQkgIFBRcGFyYW1pc2VuY3J5cHRlZChyZXMyLCAxKSkp CisJeworCQlmcHJpbnRmKHN0ZGVyciwgIndyb25nIHJlc3VsdHMgZnJvbSBQUXBhcmFtaXNl bmNyeXB0ZWQoKVxuIik7CisJCXJldHVybiAxOworCX0KKworCXJlcyA9IFBRZXhlY1ByZXBh cmVkMihjb25uLCAiIiwgMywgdmFsdWVzLCBOVUxMLCBOVUxMLCBmb3JjZXMsIDAsIHJlczIp OworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJewor CQlmcHJpbnRmKHN0ZGVyciwgIlBRZXhlY1ByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJ CQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAw OworfQorCitzdGF0aWMgaW50Cit0ZXN0MyhQR2Nvbm4gKmNvbm4pCit7CisJUEdyZXN1bHQg ICAqcmVzLAorCQkJICAgKnJlczI7CisJY29uc3QgY2hhciAqdmFsdWVzW10gPSB7IjMiLCAi dmFsM3VwZCJ9OworCisJcmVzID0gUFFwcmVwYXJlKGNvbm4sICIiLCAiVVBEQVRFIHRibDEg U0VUIGIgPSAkMiBXSEVSRSBhID0gJDEiLAorCQkJCQkyLCBOVUxMKTsKKwlpZiAoUFFyZXN1 bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRl cnIsICJQUXByZXBhcmUoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNv bm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmVzMiA9IFBRZGVzY3JpYmVQcmVwYXJlZChj b25uLCAiIik7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlczIpICE9IFBHUkVTX0NPTU1BTkRf T0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRZGVzY3JpYmVQcmVwYXJlZCgpIGZhaWxl ZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9 CisKKwlyZXMgPSBQUWV4ZWNQcmVwYXJlZDIoY29ubiwgIiIsIDIsIHZhbHVlcywgTlVMTCwg TlVMTCwgTlVMTCwgMCwgcmVzMik7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdS RVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFleGVjUHJlcGFyZWQo KSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJu IDE7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3Q0KFBHY29ubiAq Y29ubikKK3sKKwlQR3Jlc3VsdCAgICpyZXMsCisJCQkgICAqcmVzMjsKKwljb25zdCBjaGFy ICp2YWx1ZXNbXSA9IHsiMSIsICJ2YWxBIiwgIjIiLCAidmFsQiIsICIzIiwgInZhbEEifTsK KworCXJlcyA9IFBRcHJlcGFyZShjb25uLCAiIiwgIklOU0VSVCBJTlRPIHRibDIgKGEsIGIp IFZBTFVFUyAoJDEsICQyKSwgKCQzLCAkNCksICgkNSwgJDYpIiwKKwkJCQkJNiwgTlVMTCk7 CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJ CWZwcmludGYoc3RkZXJyLCAiUFFwcmVwYXJlKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVy cm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJlczIgPSBQUWRlc2Ny aWJlUHJlcGFyZWQoY29ubiwgIiIpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMyKSAhPSBQ R1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUWRlc2NyaWJlUHJl cGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJ cmV0dXJuIDE7CisJfQorCisJcmVzID0gUFFleGVjUHJlcGFyZWQyKGNvbm4sICIiLCA2LCB2 YWx1ZXMsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIHJlczIpOworCWlmIChQUXJlc3VsdFN0YXR1 cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBR ZXhlY1ByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25u KSk7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50Cit0 ZXN0NShQR2Nvbm4gKmNvbm4pCit7CisJUEdyZXN1bHQgICAqcmVzLAorCQkJICAgKnJlczI7 CisJY29uc3QgY2hhciAqdmFsdWVzW10gPSB7CisJCSIyIiwgInZhbEIyIiwgInZhbEMyIiwK KwkJIjMiLCAidmFsQjMiLCAidmFsQzMiCisJfTsKKworCXJlcyA9IFBRcHJlcGFyZShjb25u LCAiIiwgIklOU0VSVCBJTlRPIHRibDMgKGEsIGIsIGMpIFZBTFVFUyAoJDEsICQyLCAkMyks ICgkNCwgJDUsICQ2KSIsCisJCQkJCTYsIE5VTEwpOworCWlmIChQUXJlc3VsdFN0YXR1cyhy ZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRcHJl cGFyZSgpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQly ZXR1cm4gMTsKKwl9CisKKwlyZXMyID0gUFFkZXNjcmliZVByZXBhcmVkKGNvbm4sICIiKTsK KwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzMikgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJ CWZwcmludGYoc3RkZXJyLCAiUFFkZXNjcmliZVByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwK KwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJlcyA9 IFBRZXhlY1ByZXBhcmVkMihjb25uLCAiIiwgNiwgdmFsdWVzLCBOVUxMLCBOVUxMLCBOVUxM LCAwLCByZXMyKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5E X09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUWV4ZWNQcmVwYXJlZCgpIGZhaWxlZDog JXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisK KwlyZXR1cm4gMDsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sK KwlQR2Nvbm4JICAgKmNvbm47CisJaW50CQkJcmV0ID0gMDsKKworCWNvbm4gPSBQUWNvbm5l Y3RkYigiIik7CisJaWYgKFBRc3RhdHVzKGNvbm4pICE9IENPTk5FQ1RJT05fT0spCisJewor CQlmcHJpbnRmKHN0ZGVyciwgIkNvbm5lY3Rpb24gdG8gZGF0YWJhc2UgZmFpbGVkOiAlc1xu IiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCWlm IChhcmdjIDwgMiB8fCBhcmd2WzFdID09IE5VTEwpCisJCXJldHVybiA4NzsKKwllbHNlIGlm IChzdHJjbXAoYXJndlsxXSwgInRlc3QxIikgPT0gMCkKKwkJcmV0ID0gdGVzdDEoY29ubik7 CisJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0MiIpID09IDApCisJCXJldCA9IHRl c3QyKGNvbm4pOworCWVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAidGVzdDMiKSA9PSAwKQor CQlyZXQgPSB0ZXN0Myhjb25uKTsKKwllbHNlIGlmIChzdHJjbXAoYXJndlsxXSwgInRlc3Q0 IikgPT0gMCkKKwkJcmV0ID0gdGVzdDQoY29ubik7CisJZWxzZSBpZiAoc3RyY21wKGFyZ3Zb MV0sICJ0ZXN0NSIpID09IDApCisJCXJldCA9IHRlc3Q1KGNvbm4pOworCWVsc2UKKwkJcmV0 ID0gODg7CisKKwlQUWZpbmlzaChjb25uKTsKKwlyZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9ydW5fZGVjcnlwdC5wbCBiL3Ny Yy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwKbmV3IGZpbGUg bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMC4uOTY2NDM0OWYxNAotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwK QEAgLTAsMCArMSw0MSBAQAorIyEvdXNyL2Jpbi9wZXJsCisKKyMgVGVzdC9zYW1wbGUgY29t bWFuZCBmb3IgbGlicHEgY21rbG9va3VwIHJ1biBzY2hlbWUKKyMKKyMgVGhpcyBqdXN0IHBs YWNlcyB0aGUgZGF0YSBpbnRvIHRlbXBvcmFyeSBmaWxlcyBhbmQgcnVucyB0aGUgb3BlbnNz bAorIyBjb21tYW5kIG9uIGl0LiAgKEluIHByYWN0aWNlLCB0aGlzIGNvdWxkIG1vcmUgc2lt cGx5IGJlIHdyaXR0ZW4gYXMgYQorIyBzaGVsbCBzY3JpcHQsIGJ1dCB0aGlzIHdheSBpdCdz IG1vcmUgcG9ydGFibGUuKQorCisjIENvcHlyaWdodCAoYykgMjAyMS0yMDIyLCBQb3N0Z3Jl U1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5p bmdzOworCit1c2UgTUlNRTo6QmFzZTY0OworCitteSAoJHRtcGRpciwgJGNta25hbWUsICRh bGcsICRiNjRkYXRhKSA9IEBBUkdWOworCitkaWUgdW5sZXNzICRhbGcgZXEgJ1JTQUVTX09B RVBfU0hBXzEnOworCitvcGVuIG15ICRmaCwgJz46cmF3JywgIiR7dG1wZGlyfS9pbnB1dC50 bXAiIG9yIGRpZTsKK3ByaW50ICRmaCBkZWNvZGVfYmFzZTY0KCRiNjRkYXRhKTsKK2Nsb3Nl ICRmaDsKKworc3lzdGVtKCdvcGVuc3NsJywgJ3BrZXl1dGwnLCAnLWRlY3J5cHQnLAorCSct aW5rZXknLCAiJHt0bXBkaXJ9LyR7Y21rbmFtZX0ucGVtIiwgJy1wa2V5b3B0JywgJ3JzYV9w YWRkaW5nX21vZGU6b2FlcCcsCisJJy1pbicsICIke3RtcGRpcn0vaW5wdXQudG1wIiwgJy1v dXQnLCAiJHt0bXBkaXJ9L291dHB1dC50bXAiKSA9PSAwIG9yIGRpZTsKKworb3BlbiAkZmgs ICc8OnJhdycsICIke3RtcGRpcn0vb3V0cHV0LnRtcCIgb3IgZGllOworbXkgJGRhdGEgPSAn JzsKKword2hpbGUgKDEpIHsKKwlteSAkc3VjY2VzcyA9IHJlYWQgJGZoLCAkZGF0YSwgMTAw LCBsZW5ndGgoJGRhdGEpOworCWRpZSAkISBpZiBub3QgZGVmaW5lZCAkc3VjY2VzczsKKwls YXN0IGlmIG5vdCAkc3VjY2VzczsKK30KKworY2xvc2UgJGZoOworCit1bmxpbmsgIiR7dG1w ZGlyfS9pbnB1dC50bXAiLCAiJHt0bXBkaXJ9L291dHB1dC50bXAiOworCitwcmludCBlbmNv ZGVfYmFzZTY0KCRkYXRhKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9j b2x1bW5fZW5jcnlwdGlvbi5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uYTMxZTUzOTFjZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0CkBAIC0wLDAgKzEsMTE1IEBACitcc2V0 IEhJREVfQ09MVU1OX0VOQ1JZUFRJT04gZmFsc2UKK0NSRUFURSBST0xFIHJlZ3Jlc3NfZW5j X3VzZXIxOworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazEgV0lUSCAoCisgICAgcmVh bG0gPSAndGVzdCcKKyk7CitDT01NRU5UIE9OIENPTFVNTiBNQVNURVIgS0VZIGNtazEgSVMg J2NvbHVtbiBtYXN0ZXIga2V5JzsKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxYSBX SVRIICgKKyAgICByZWFsbSA9ICd0ZXN0JworKTsKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtF WSBjbWsyIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3QyJworKTsKK0NSRUFURSBDT0xVTU4g TUFTVEVSIEtFWSBjbWsyYSBXSVRIICgKKyAgICByZWFsbSA9ICd0ZXN0MicKKyk7CitDUkVB VEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVt bl9tYXN0ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFf MScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworQ09NTUVOVCBP TiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBJUyAnY29sdW1uIGVuY3J5cHRpb24ga2V5 JzsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIEFERCBWQUxVRSAoCisgICAg Y29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FF UF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworQUxU RVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWwgQUREIFZBTFVFICgKKyAgICBjb2x1bW5f bWFzdGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8x JywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CitFUlJPUjogIGNv bHVtbiBlbmNyeXB0aW9uIGtleSAiZmFpbCIgZG9lcyBub3QgZXhpc3QKK0NSRUFURSBDT0xV TU4gRU5DUllQVElPTiBLRVkgY2VrMiBXSVRIIFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rl cl9rZXkgPSBjbWsyLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAg ICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyksCisoCisgICAgY29sdW1uX21h c3Rlcl9rZXkgPSBjbWsyYSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScs CisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworQ1JFQVRFIENPTFVN TiBFTkNSWVBUSU9OIEtFWSBjZWs0IFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVy X2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAg IGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKK0NSRUFURSBUQUJMRSB0Ymxf ZmFpbCAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQg V0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gbm90ZXhpc3QpCispOworRVJST1I6ICBj b2x1bW4gZW5jcnlwdGlvbiBrZXkgIm5vdGV4aXN0IiBkb2VzIG5vdCBleGlzdAorQ1JFQVRF IFRBQkxFIHRibF8yOWYzICgKKyAgICBhIGludCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0 IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK1xk IHRibF8yOWYzCisgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGJsXzI5ZjMiCisgQ29s dW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGEgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQg ICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGMgICAgICB8IHRleHQgICAgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAorCitcZCsgdGJsXzI5ZjMKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRibF8yOWYzIgorIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdl ICB8IEVuY3J5cHRpb24gfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwg aW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAg ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgfCAg ICAgICAgICAgICAgfCAKKyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAgICAgICAgIHwgZXh0ZXJuYWwgfCBjZWsxICAgICAgIHwgICAgICAgICAgICAgIHwg CisKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBSRVNUUklDVDsgIC0tIGZhaWwKK0VS Uk9SOiAgY2Fubm90IGRyb3AgY29sdW1uIG1hc3RlciBrZXkgY21rMSBiZWNhdXNlIG90aGVy IG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkg Y2VrMSBkYXRhIGZvciBtYXN0ZXIga2V5IGNtazEgZGVwZW5kcyBvbiBjb2x1bW4gbWFzdGVy IGtleSBjbWsxCitjb2x1bW4gZW5jcnlwdGlvbiBrZXkgY2VrNCBkYXRhIGZvciBtYXN0ZXIg a2V5IGNtazEgZGVwZW5kcyBvbiBjb2x1bW4gbWFzdGVyIGtleSBjbWsxCitISU5UOiAgVXNl IERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgor QUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMiBSRU5BTUUgVE8gY21rMzsKK0FMVEVSIENP TFVNTiBNQVNURVIgS0VZIGNtazEgUkVOQU1FIFRPIGNtazM7ICAtLSBmYWlsCitFUlJPUjog IGNvbHVtbiBtYXN0ZXIga2V5ICJjbWszIiBhbHJlYWR5IGV4aXN0cworQUxURVIgQ09MVU1O IE1BU1RFUiBLRVkgY21reCBSRU5BTUUgVE8gY21reTsgIC0tIGZhaWwKK0VSUk9SOiAgY29s dW1uIG1hc3RlciBrZXkgImNta3giIGRvZXMgbm90IGV4aXN0CitBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkgY2VrMiBSRU5BTUUgVE8gY2VrMzsKK0FMVEVSIENPTFVNTiBFTkNSWVBU SU9OIEtFWSBjZWsxIFJFTkFNRSBUTyBjZWszOyAgLS0gZmFpbAorRVJST1I6ICBjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgImNlazMiIGFscmVhZHkgZXhpc3RzCitBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkgY2VreCBSRU5BTUUgVE8gY2VreTsgIC0tIGZhaWwKK0VSUk9SOiAgY29s dW1uIGVuY3J5cHRpb24ga2V5ICJjZWt4IiBkb2VzIG5vdCBleGlzdAorU0VUIFJPTEUgcmVn cmVzc19lbmNfdXNlcjE7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWszOyAgLS0g ZmFpbAorRVJST1I6ICBtdXN0IGJlIG93bmVyIG9mIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBj ZWszCitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNtazM7ICAtLSBmYWlsCitFUlJPUjogIG11 c3QgYmUgb3duZXIgb2YgY29sdW1uIG1hc3RlciBrZXkgY21rMworUkVTRVQgUk9MRTsKK0FM VEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazMgT1dORVIgVE8gcmVncmVzc19lbmNfdXNlcjE7 CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMyBPV05FUiBUTyByZWdyZXNzX2Vu Y191c2VyMTsKK1NFVCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOworRFJPUCBDT0xVTU4gRU5D UllQVElPTiBLRVkgY2VrMzsgIC0tIG9rIG5vdworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBj bWszOyAgLS0gb2sgbm93CitSRVNFVCBST0xFOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04g S0VZIGNlazEgRFJPUCBWQUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSk7CitBTFRF UiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVy X2tleSA9IGNtazFhKTsgIC0tIGZhaWwKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5 ICJjZWsxIiBoYXMgbm8gZGF0YSBmb3IgbWFzdGVyIGtleSAiY21rMWEiCitBTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9 IGZhaWwpOyAgLS0gZmFpbAorRVJST1I6ICBjb2x1bW4gbWFzdGVyIGtleSAiZmFpbCIgZG9l cyBub3QgZXhpc3QKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFM VUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsIGFsZ29yaXRobSA9ICdmb28nKTsgIC0t IGZhaWwKK0VSUk9SOiAgYXR0cmlidXRlICJhbGdvcml0aG0iIG11c3Qgbm90IGJlIHNwZWNp ZmllZAorRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrNDsKK0RST1AgQ09MVU1OIEVO Q1JZUFRJT04gS0VZIGZhaWw7CitFUlJPUjogIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAiZmFp bCIgZG9lcyBub3QgZXhpc3QKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMWE7CitEUk9Q IENPTFVNTiBNQVNURVIgS0VZIGZhaWw7CitFUlJPUjogIGNvbHVtbiBtYXN0ZXIga2V5ICJm YWlsIiBkb2VzIG5vdCBleGlzdAorRFJPUCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dAppbmRleCA0 MTE3ZmMyN2M5Li5iNDNlMjRhOWExIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL29iamVjdF9hZGRyZXNzLm91dApAQCAtMzcsNiArMzcsOCBAQCBDUkVBVEUgU0VSVkVS ICJpbnRlZ2VyIiBGT1JFSUdOIERBVEEgV1JBUFBFUiBhZGRyX2ZkdzsKIENSRUFURSBVU0VS IE1BUFBJTkcgRk9SIHJlZ3Jlc3NfYWRkcl91c2VyIFNFUlZFUiAiaW50ZWdlciI7CiBBTFRF UiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19hZGRyX3VzZXIgSU4gU0NI RU1BIHB1YmxpYyBHUkFOVCBBTEwgT04gVEFCTEVTIFRPIHJlZ3Jlc3NfYWRkcl91c2VyOwog QUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfYWRkcl91c2VyIFJF Vk9LRSBERUxFVEUgT04gVEFCTEVTIEZST00gcmVncmVzc19hZGRyX3VzZXI7CitDUkVBVEUg Q09MVU1OIE1BU1RFUiBLRVkgYWRkcl9jbWsgV0lUSCAocmVhbG0gPSAnJyk7CitDUkVBVEUg Q09MVU1OIEVOQ1JZUFRJT04gS0VZIGFkZHJfY2VrIFdJVEggVkFMVUVTIChjb2x1bW5fbWFz dGVyX2tleSA9IGFkZHJfY21rLCBlbmNyeXB0ZWRfdmFsdWUgPSAnJyk7CiAtLSB0aGlzIHRy YW5zZm9ybSB3b3VsZCBiZSBxdWl0ZSB1bnNhZmUgdG8gbGVhdmUgbHlpbmcgYXJvdW5kLAog LS0gZXhjZXB0IHRoYXQgdGhlIFNRTCBsYW5ndWFnZSBwYXlzIG5vIGF0dGVudGlvbiB0byB0 cmFuc2Zvcm1zOgogQ1JFQVRFIFRSQU5TRk9STSBGT1IgaW50IExBTkdVQUdFIFNRTCAoCkBA IC0xMDUsNyArMTA3LDggQEAgQkVHSU4KIAkJKCd0ZXh0IHNlYXJjaCB0ZW1wbGF0ZScpLCAo J3RleHQgc2VhcmNoIGNvbmZpZ3VyYXRpb24nKSwKIAkJKCdwb2xpY3knKSwgKCd1c2VyIG1h cHBpbmcnKSwgKCdkZWZhdWx0IGFjbCcpLCAoJ3RyYW5zZm9ybScpLAogCQkoJ29wZXJhdG9y IG9mIGFjY2VzcyBtZXRob2QnKSwgKCdmdW5jdGlvbiBvZiBhY2Nlc3MgbWV0aG9kJyksCi0J CSgncHVibGljYXRpb24gcmVsYXRpb24nKQorCQkoJ3B1YmxpY2F0aW9uIHJlbGF0aW9uJyks CisJCSgnY29sdW1uIGVuY3J5cHRpb24ga2V5JyksICgnY29sdW1uIGVuY3J5cHRpb24ga2V5 IGRhdGEnKSwgKCdjb2x1bW4gbWFzdGVyIGtleScpCiAJTE9PUAogCQlGT1IgbmFtZXMgSU4g VkFMVUVTICgne2VpbnN9JyksICgne2FkZHJfbnNwLCB6d2VpfScpLCAoJ3tlaW5zLCB6d2Vp LCBkcmVpfScpCiAJCUxPT1AKQEAgLTMxOSw2ICszMjIsMjQgQEAgV0FSTklORzogIGVycm9y IGZvciBwdWJsaWNhdGlvbiByZWxhdGlvbix7YWRkcl9uc3AsendlaX0se306IGFyZ3VtZW50 IGxpc3QgbGVuZ3QKIFdBUk5JTkc6ICBlcnJvciBmb3IgcHVibGljYXRpb24gcmVsYXRpb24s e2FkZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTogcmVsYXRpb24gImFkZHJfbnNwLnp3ZWkiIGRv ZXMgbm90IGV4aXN0CiBXQVJOSU5HOiAgZXJyb3IgZm9yIHB1YmxpY2F0aW9uIHJlbGF0aW9u LHtlaW5zLHp3ZWksZHJlaX0se306IGFyZ3VtZW50IGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhh Y3RseSAxCiBXQVJOSU5HOiAgZXJyb3IgZm9yIHB1YmxpY2F0aW9uIHJlbGF0aW9uLHtlaW5z LHp3ZWksZHJlaX0se2ludGVnZXJ9OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBu b3QgaW1wbGVtZW50ZWQ6ICJlaW5zLnp3ZWkuZHJlaSIKK1dBUk5JTkc6ICBlcnJvciBmb3Ig Y29sdW1uIGVuY3J5cHRpb24ga2V5LHtlaW5zfSx7fTogY29sdW1uIGVuY3J5cHRpb24ga2V5 ICJlaW5zIiBkb2VzIG5vdCBleGlzdAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5j cnlwdGlvbiBrZXkse2VpbnN9LHtpbnRlZ2VyfTogY29sdW1uIGVuY3J5cHRpb24ga2V5ICJl aW5zIiBkb2VzIG5vdCBleGlzdAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlw dGlvbiBrZXkse2FkZHJfbnNwLHp3ZWl9LHt9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUg ZXhhY3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7 YWRkcl9uc3AsendlaX0se2ludGVnZXJ9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhh Y3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7ZWlu cyx6d2VpLGRyZWl9LHt9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitX QVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7ZWlucyx6d2VpLGRy ZWl9LHtpbnRlZ2VyfTogbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FS TklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7ZWluc30se306 IHVuc3VwcG9ydGVkIG9iamVjdCB0eXBlICJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSIK K1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEse2VpbnN9 LHtpbnRlZ2VyfTogdW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGUgImNvbHVtbiBlbmNyeXB0aW9u IGtleSBkYXRhIgorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkg ZGF0YSx7YWRkcl9uc3AsendlaX0se306IHVuc3VwcG9ydGVkIG9iamVjdCB0eXBlICJjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSIKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVu Y3J5cHRpb24ga2V5IGRhdGEse2FkZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTogdW5zdXBwb3J0 ZWQgb2JqZWN0IHR5cGUgImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIgorV0FSTklORzog IGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7ZWlucyx6d2VpLGRyZWl9 LHt9OiB1bnN1cHBvcnRlZCBvYmplY3QgdHlwZSAiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRh dGEiCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhLHtl aW5zLHp3ZWksZHJlaX0se2ludGVnZXJ9OiB1bnN1cHBvcnRlZCBvYmplY3QgdHlwZSAiY29s dW1uIGVuY3J5cHRpb24ga2V5IGRhdGEiCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBt YXN0ZXIga2V5LHtlaW5zfSx7fTogY29sdW1uIG1hc3RlciBrZXkgImVpbnMiIGRvZXMgbm90 IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0ZXIga2V5LHtlaW5zfSx7 aW50ZWdlcn06IGNvbHVtbiBtYXN0ZXIga2V5ICJlaW5zIiBkb2VzIG5vdCBleGlzdAorV0FS TklORzogIGVycm9yIGZvciBjb2x1bW4gbWFzdGVyIGtleSx7YWRkcl9uc3AsendlaX0se306 IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBlcnJvciBm b3IgY29sdW1uIG1hc3RlciBrZXkse2FkZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTogbmFtZSBs aXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBjb2x1 bW4gbWFzdGVyIGtleSx7ZWlucyx6d2VpLGRyZWl9LHt9OiBuYW1lIGxpc3QgbGVuZ3RoIG11 c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0ZXIga2V5 LHtlaW5zLHp3ZWksZHJlaX0se2ludGVnZXJ9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUg ZXhhY3RseSAxCiAtLSB0aGVzZSBvYmplY3QgdHlwZXMgY2Fubm90IGJlIHF1YWxpZmllZCBu YW1lcwogU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnbGFuZ3VhZ2UnLCAne29uZX0n LCAne30nKTsKIEVSUk9SOiAgbGFuZ3VhZ2UgIm9uZSIgZG9lcyBub3QgZXhpc3QKQEAgLTM3 NCw2ICszOTUsMTQgQEAgU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc3Vic2NyaXB0 aW9uJywgJ3tvbmV9JywgJ3t9Jyk7CiBFUlJPUjogIHN1YnNjcmlwdGlvbiAib25lIiBkb2Vz IG5vdCBleGlzdAogU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc3Vic2NyaXB0aW9u JywgJ3tvbmUsdHdvfScsICd7fScpOwogRVJST1I6ICBuYW1lIGxpc3QgbGVuZ3RoIG11c3Qg YmUgZXhhY3RseSAxCitTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gZW5j cnlwdGlvbiBrZXknLCAne29uZX0nLCAne30nKTsKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRp b24ga2V5ICJvbmUiIGRvZXMgbm90IGV4aXN0CitTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRy ZXNzKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne29uZSx0d299JywgJ3t9Jyk7CitFUlJP UjogIG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1NFTEVDVCBwZ19nZXRf b2JqZWN0X2FkZHJlc3MoJ2NvbHVtbiBtYXN0ZXIga2V5JywgJ3tvbmV9JywgJ3t9Jyk7CitF UlJPUjogIGNvbHVtbiBtYXN0ZXIga2V5ICJvbmUiIGRvZXMgbm90IGV4aXN0CitTRUxFQ1Qg cGdfZ2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gbWFzdGVyIGtleScsICd7b25lLHR3b30n LCAne30nKTsKK0VSUk9SOiAgbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQog LS0gdGVzdCBzdWNjZXNzZnVsIGNhc2VzCiBXSVRIIG9iamVjdHMgKHR5cGUsIG5hbWUsIGFy Z3MpIEFTIChWQUxVRVMKIAkJCQkoJ3RhYmxlJywgJ3thZGRyX25zcCwgZ2VudGFibGV9Jzo6 dGV4dFtdLCAne30nOjp0ZXh0W10pLApAQCAtMzk2LDYgKzQyNSw5IEBAIFdJVEggb2JqZWN0 cyAodHlwZSwgbmFtZSwgYXJncykgQVMgKFZBTFVFUwogCQkJCSgndHlwZScsICd7YWRkcl9u c3AuZ2VuZW51bX0nLCAne30nKSwKIAkJCQkoJ2Nhc3QnLCAne2ludDh9JywgJ3tpbnQ0fScp LAogCQkJCSgnY29sbGF0aW9uJywgJ3tkZWZhdWx0fScsICd7fScpLAorCQkJCSgnY29sdW1u IGVuY3J5cHRpb24ga2V5JywgJ3thZGRyX2Nla30nLCAne30nKSwKKy0tVE9ETzoJCQkJKCdj b2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YScsICd7YWRkcl9jZWt9JywgJ3thZGRyX2Nta30n KSwKKwkJCQkoJ2NvbHVtbiBtYXN0ZXIga2V5JywgJ3thZGRyX2Nta30nLCAne30nKSwKIAkJ CQkoJ3RhYmxlIGNvbnN0cmFpbnQnLCAne2FkZHJfbnNwLCBnZW50YWJsZSwgYV9jaGt9Jywg J3t9JyksCiAJCQkJKCdkb21haW4gY29uc3RyYWludCcsICd7YWRkcl9uc3AuZ2VuZG9tYWlu fScsICd7ZG9tY29uc3RyfScpLAogCQkJCSgnY29udmVyc2lvbicsICd7cGdfY2F0YWxvZywg a29pOF9yX3RvX21pY30nLCAne30nKSwKQEAgLTQ5Myw3ICs1MjUsOSBAQCBTRUxFQ1QgKHBn X2lkZW50aWZ5X29iamVjdChhZGRyMS5jbGFzc2lkLCBhZGRyMS5vYmppZCwgYWRkcjEub2Jq c3ViaWQpKS4qLAogIHB1YmxpY2F0aW9uICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg YWRkcl9wdWIgICAgICAgICAgfCBhZGRyX3B1YiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKICBwdWJsaWNhdGlvbiBy ZWxhdGlvbiAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgYWRkcl9u c3AuZ2VudGFibGUgaW4gcHVibGljYXRpb24gYWRkcl9wdWIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCB0CiAgcHVibGljYXRpb24gbmFtZXNwYWNlICAgICB8ICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICB8IGFkZHJfbnNwIGluIHB1YmxpY2F0aW9uIGFkZHJfcHVi X3NjaGVtYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotKDUwIHJvd3MpCisg Y29sdW1uIG1hc3RlciBrZXkgICAgICAgICB8ICAgICAgICAgICAgfCBhZGRyX2NtayAgICAg ICAgICB8IGFkZHJfY21rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgdAorIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAgICAg fCAgICAgICAgICAgIHwgYWRkcl9jZWsgICAgICAgICAgfCBhZGRyX2NlayAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQK Kyg1MiByb3dzKQogCiAtLS0KIC0tLSBDbGVhbnVwIHJlc291cmNlcwpAQCAtNTA3LDYgKzU0 MSw4IEBAIGRyb3AgY2FzY2FkZXMgdG8gdXNlciBtYXBwaW5nIGZvciByZWdyZXNzX2FkZHJf dXNlciBvbiBzZXJ2ZXIgaW50ZWdlcgogRFJPUCBQVUJMSUNBVElPTiBhZGRyX3B1YjsKIERS T1AgUFVCTElDQVRJT04gYWRkcl9wdWJfc2NoZW1hOwogRFJPUCBTVUJTQ1JJUFRJT04gcmVn cmVzc19hZGRyX3N1YjsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGFkZHJfY2VrOwor RFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBhZGRyX2NtazsKIERST1AgU0NIRU1BIGFkZHJfbnNw IENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDE0IG90aGVyIG9iamVjdHMK IERFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdGV4dCBzZWFyY2ggZGljdGlvbmFyeSBhZGRy X3RzX2RpY3QKQEAgLTU0Miw2ICs1NzgsOSBAQCBXSVRIIG9iamVjdHMgKGNsYXNzaWQsIG9i amlkLCBvYmpzdWJpZCkgQVMgKFZBTFVFUwogICAgICgncGdfdHlwZSc6OnJlZ2NsYXNzLCAw LCAwKSwgLS0gbm8gdHlwZQogICAgICgncGdfY2FzdCc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0g bm8gY2FzdAogICAgICgncGdfY29sbGF0aW9uJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBj b2xsYXRpb24KKyAgICAoJ3BnX2NvbGVuY2tleSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8g Y29sdW1uIGVuY3J5cHRpb24ga2V5CistLVRPRE86ICAgICgncGdfY29sZW5ja2V5ZGF0YSc6 OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEKKyAg ICAoJ3BnX2NvbG1hc3RlcmtleSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29sdW1uIG1h c3RlciBrZXkKICAgICAoJ3BnX2NvbnN0cmFpbnQnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5v IGNvbnN0cmFpbnQKICAgICAoJ3BnX2NvbnZlcnNpb24nOjpyZWdjbGFzcywgMCwgMCksIC0t IG5vIGNvbnZlcnNpb24KICAgICAoJ3BnX2F0dHJkZWYnOjpyZWdjbGFzcywgMCwgMCksIC0t IG5vIGRlZmF1bHQgYXR0cmlidXRlCkBAIC01NzIsNiArNjExLDcgQEAgV0lUSCBvYmplY3Rz IChjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQpIEFTIChWQUxVRVMKICAgICAoJ3BnX2V2ZW50 X3RyaWdnZXInOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGV2ZW50IHRyaWdnZXIKICAgICAo J3BnX3BvbGljeSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcG9saWN5CiAgICAgKCdwZ19w dWJsaWNhdGlvbic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcHVibGljYXRpb24KKyAgICAo J3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcHVi bGljYXRpb24gbmFtZXNwYWNlCiAgICAgKCdwZ19wdWJsaWNhdGlvbl9yZWwnOjpyZWdjbGFz cywgMCwgMCksIC0tIG5vIHB1YmxpY2F0aW9uIHJlbGF0aW9uCiAgICAgKCdwZ19zdWJzY3Jp cHRpb24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHN1YnNjcmlwdGlvbgogICAgICgncGdf dHJhbnNmb3JtJzo6cmVnY2xhc3MsIDAsIDApIC0tIG5vIHRyYW5zZm9ybWF0aW9uCkBAIC02 MjMsNSArNjYzLDggQEAgT1JERVIgQlkgb2JqZWN0cy5jbGFzc2lkLCBvYmplY3RzLm9iamlk LCBvYmplY3RzLm9ianN1YmlkOwogKCIoc3Vic2NyaXB0aW9uLCwsKSIpfCgiKHN1YnNjcmlw dGlvbiwsKSIpfE5VTEwKICgiKHB1YmxpY2F0aW9uLCwsKSIpfCgiKHB1YmxpY2F0aW9uLCwp Iil8TlVMTAogKCIoIiJwdWJsaWNhdGlvbiByZWxhdGlvbiIiLCwsKSIpfCgiKCIicHVibGlj YXRpb24gcmVsYXRpb24iIiwsKSIpfE5VTEwKKygiKCIicHVibGljYXRpb24gbmFtZXNwYWNl IiIsLCwpIil8KCIoIiJwdWJsaWNhdGlvbiBuYW1lc3BhY2UiIiwsKSIpfE5VTEwKKygiKCIi Y29sdW1uIG1hc3RlciBrZXkiIiwsLCkiKXwoIigiImNvbHVtbiBtYXN0ZXIga2V5IiIsLCki KXxOVUxMCisoIigiImNvbHVtbiBlbmNyeXB0aW9uIGtleSIiLCwsKSIpfCgiKCIiY29sdW1u IGVuY3J5cHRpb24ga2V5IiIsLCkiKXxOVUxMCiAtLSByZXN0b3JlIG5vcm1hbCBvdXRwdXQg bW9kZQogXGFcdApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRq b2lucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAppbmRl eCAyMTVlYjg5OWJlLi4yYWEwZTE2MzIzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L29pZGpvaW5zLm91dApAQCAtNzMsNiArNzMsOCBAQCBOT1RJQ0U6ICBjaGVja2luZyBwZ190 eXBlIHt0eXBiYXNldHlwZX0gPT4gcGdfdHlwZSB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcg cGdfdHlwZSB7dHlwY29sbGF0aW9ufSA9PiBwZ19jb2xsYXRpb24ge29pZH0KIE5PVElDRTog IGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7YXR0cmVsaWR9ID0+IHBnX2NsYXNzIHtvaWR9CiBO T1RJQ0U6ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUge2F0dHR5cGlkfSA9PiBwZ190eXBlIHtv aWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUge2F0dGNla30gPT4gcGdfY29s ZW5ja2V5IHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUge2F0dHJlYWx0 eXBpZH0gPT4gcGdfdHlwZSB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfYXR0cmlidXRl IHthdHRjb2xsYXRpb259ID0+IHBnX2NvbGxhdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tp bmcgcGdfY2xhc3Mge3JlbG5hbWVzcGFjZX0gPT4gcGdfbmFtZXNwYWNlIHtvaWR9CiBOT1RJ Q0U6ICBjaGVja2luZyBwZ19jbGFzcyB7cmVsdHlwZX0gPT4gcGdfdHlwZSB7b2lkfQpAQCAt MjY2LDMgKzI2OCw3IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbiB7c3Vi ZGJpZH0gPT4gcGdfZGF0YWJhc2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNj cmlwdGlvbiB7c3Vib3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQogTk9USUNFOiAgY2hlY2tp bmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JzdWJpZH0gPT4gcGdfc3Vic2NyaXB0aW9uIHtv aWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnJlbGlkfSA9 PiBwZ19jbGFzcyB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfY29sbWFzdGVya2V5IHtj bWtvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19jb2xl bmNrZXkge2Nla293bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KK05PVElDRTogIGNoZWNraW5n IHBnX2NvbGVuY2tleWRhdGEge2NrZGNla2lkfSA9PiBwZ19jb2xlbmNrZXkge29pZH0KK05P VElDRTogIGNoZWNraW5nIHBnX2NvbGVuY2tleWRhdGEge2NrZGNta2lkfSA9PiBwZ19jb2xt YXN0ZXJrZXkge29pZH0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv b3ByX3Nhbml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHku b3V0CmluZGV4IDMzMGViMGY3NjUuLjY0NjUwN2YwMjkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dApAQCAtMTc1LDEzICsxNzUsMTQgQEAgV0hFUkUg cDEub2lkICE9IHAyLm9pZCBBTkQKIE9SREVSIEJZIDEsIDI7CiAgICAgICAgICBwcm9hcmd0 eXBlcyAgICAgICAgIHwgICAgICAgcHJvYXJndHlwZXMgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBieXRlYSAg ICAgICAgICAgICAgICAgICAgICAgfCBwZ19lbmNyeXB0ZWRfZGV0CiAgYmlnaW50ICAgICAg ICAgICAgICAgICAgICAgIHwgeGlkOAogIHRleHQgICAgICAgICAgICAgICAgICAgICAgICB8 IGNoYXJhY3RlcgogIHRleHQgICAgICAgICAgICAgICAgICAgICAgICB8IGNoYXJhY3RlciB2 YXJ5aW5nCiAgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGgg dGltZSB6b25lCiAgYml0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgYml0IHZhcnlpbmcK ICB0eGlkX3NuYXBzaG90ICAgICAgICAgICAgICAgfCBwZ19zbmFwc2hvdAotKDYgcm93cykK Kyg3IHJvd3MpCiAKIFNFTEVDVCBESVNUSU5DVCBwMS5wcm9hcmd0eXBlc1sxXTo6cmVndHlw ZSwgcDIucHJvYXJndHlwZXNbMV06OnJlZ3R5cGUKIEZST00gcGdfcHJvYyBBUyBwMSwgcGdf cHJvYyBBUyBwMgpAQCAtMTk3LDEyICsxOTgsMTMgQEAgV0hFUkUgcDEub2lkICE9IHAyLm9p ZCBBTkQKIE9SREVSIEJZIDEsIDI7CiAgICAgICAgICBwcm9hcmd0eXBlcyAgICAgICAgIHwg ICAgICAgcHJvYXJndHlwZXMgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBieXRlYSAgICAgICAgICAgICAgICAg ICAgICAgfCBwZ19lbmNyeXB0ZWRfZGV0CiAgaW50ZWdlciAgICAgICAgICAgICAgICAgICAg IHwgeGlkCiAgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGgg dGltZSB6b25lCiAgYml0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgYml0IHZhcnlpbmcK ICB0eGlkX3NuYXBzaG90ICAgICAgICAgICAgICAgfCBwZ19zbmFwc2hvdAogIGFueXJhbmdl ICAgICAgICAgICAgICAgICAgICB8IGFueW11bHRpcmFuZ2UKLSg1IHJvd3MpCisoNiByb3dz KQogCiBTRUxFQ1QgRElTVElOQ1QgcDEucHJvYXJndHlwZXNbMl06OnJlZ3R5cGUsIHAyLnBy b2FyZ3R5cGVzWzJdOjpyZWd0eXBlCiBGUk9NIHBnX3Byb2MgQVMgcDEsIHBnX3Byb2MgQVMg cDIKQEAgLTg0MSw2ICs4NDMsOCBAQCB4aWQ4Z2UoeGlkOCx4aWQ4KQogeGlkOGVxKHhpZDgs eGlkOCkKIHhpZDhuZSh4aWQ4LHhpZDgpCiB4aWQ4Y21wKHhpZDgseGlkOCkKK3BnX2VuY3J5 cHRlZF9kZXRfZXEocGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KQorcGdfZW5j cnlwdGVkX2RldF9uZShwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpCiAtLSBy ZXN0b3JlIG5vcm1hbCBvdXRwdXQgbW9kZQogXGFcdAogLS0gTGlzdCBvZiBmdW5jdGlvbnMg dXNlZCBieSBsaWJwcSdzIGZlLWxvYmouYwpAQCAtOTg4LDcgKzk5Miw5IEBAIFdIRVJFIGMu Y2FzdG1ldGhvZCA9ICdiJyBBTkQKICB4bWwgICAgICAgICAgICAgICB8IHRleHQgICAgICAg ICAgICAgIHwgICAgICAgIDAgfCBhCiAgeG1sICAgICAgICAgICAgICAgfCBjaGFyYWN0ZXIg dmFyeWluZyB8ICAgICAgICAwIHwgYQogIHhtbCAgICAgICAgICAgICAgIHwgY2hhcmFjdGVy ICAgICAgICAgfCAgICAgICAgMCB8IGEKLSgxMCByb3dzKQorIGJ5dGVhICAgICAgICAgICAg IHwgcGdfZW5jcnlwdGVkX2RldCAgfCAgICAgICAgMCB8IGUKKyBieXRlYSAgICAgICAgICAg ICB8IHBnX2VuY3J5cHRlZF9ybmQgIHwgICAgICAgIDAgfCBlCisoMTIgcm93cykKIAogLS0g KioqKioqKioqKioqKioqKiBwZ19jb252ZXJzaW9uICoqKioqKioqKioqKioqKioKIC0tIExv b2sgZm9yIGlsbGVnYWwgdmFsdWVzIGluIHBnX2NvbnZlcnNpb24gZmllbGRzLgpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcmVwYXJlLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJlcGFyZS5vdXQKaW5kZXggNTgxNWUxN2IzOS4uNDQ4MmE2 NWQyNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcmVwYXJlLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByZXBhcmUub3V0CkBAIC0xNjIs MjYgKzE2MiwyNiBAQCBQUkVQQVJFIHE3KHVua25vd24pIEFTCiAtLSBETUwgc3RhdGVtZW50 cwogUFJFUEFSRSBxOCBBUwogICAgIFVQREFURSB0ZW5rMSBTRVQgc3RyaW5ndTEgPSAkMiBX SEVSRSB1bmlxdWUxID0gJDE7Ci1TRUxFQ1QgbmFtZSwgc3RhdGVtZW50LCBwYXJhbWV0ZXJf dHlwZXMsIHJlc3VsdF90eXBlcyBGUk9NIHBnX3ByZXBhcmVkX3N0YXRlbWVudHMKK1NFTEVD VCBuYW1lLCBzdGF0ZW1lbnQsIHBhcmFtZXRlcl90eXBlcywgcGFyYW1ldGVyX29yaWdfdGFi bGVzLCBwYXJhbWV0ZXJfb3JpZ19jb2x1bW5zLCByZXN1bHRfdHlwZXMgRlJPTSBwZ19wcmVw YXJlZF9zdGF0ZW1lbnRzCiAgICAgT1JERVIgQlkgbmFtZTsKLSBuYW1lIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RhdGVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyX3R5cGVzICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmVzdWx0X3R5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAotLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0g cTIgICB8IFBSRVBBUkUgcTIodGV4dCkgQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArfCB7dGV4dH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHtuYW1lLGJvb2xlYW4sYm9vbGVhbn0KLSAgICAgIHwgICAg ICAgICBTRUxFQ1QgZGF0bmFtZSwgZGF0aXN0ZW1wbGF0ZSwgZGF0YWxsb3djb25uICAgICAg ICAgICAgICt8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgCi0gICAgICB8ICAgICAgICAgRlJPTSBwZ19kYXRhYmFzZSBXSEVSRSBkYXRu YW1lID0gJDE7ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAotIHEzICAgfCBQUkVQQVJFIHEzKHRl eHQsIGludCwgZmxvYXQsIGJvb2xlYW4sIHNtYWxsaW50KSBBUyAgICAgICAgICAgICAgK3wg e3RleHQsaW50ZWdlciwiZG91YmxlIHByZWNpc2lvbiIsYm9vbGVhbixzbWFsbGludH0gfCB7 aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdl cixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixuYW1l LG5hbWUsbmFtZX0KLSAgICAgIHwgICAgICAgICBTRUxFQ1QgKiBGUk9NIHRlbmsxIFdIRVJF IHN0cmluZzQgPSAkMSBBTkQgKGZvdXIgPSAkMiBPUit8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCi0gICAgICB8ICAgICAgICAgdGVu ID0gJDM6OmJpZ2ludCBPUiB0cnVlID0gJDQgT1Igb2RkID0gJDU6OmludCkgICAgICAgICAr fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IAotICAgICAgfCAgICAgICAgIE9SREVSIEJZIHVuaXF1ZTE7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAKLSBxNSAgIHwgUFJFUEFSRSBxNShpbnQsIHRleHQp IEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IHtpbnRlZ2Vy LHRleHR9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwge2ludGVnZXIs aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdl cixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsbmFtZSxuYW1lLG5h bWV9Ci0gICAgICB8ICAgICAgICAgU0VMRUNUICogRlJPTSB0ZW5rMSBXSEVSRSB1bmlxdWUx ID0gJDEgT1Igc3RyaW5ndTEgPSAkMiArfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IAotICAgICAgfCAgICAgICAgIE9SREVSIEJZIHVu aXF1ZTE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSBxNiAg IHwgUFJFUEFSRSBxNiBBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICt8IHtpbnRlZ2VyLG5hbWV9ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwge2ludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdl cixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRl Z2VyLGludGVnZXIsbmFtZSxuYW1lLG5hbWV9Ci0gICAgICB8ICAgICBTRUxFQ1QgKiBGUk9N IHRlbmsxIFdIRVJFIHVuaXF1ZTEgPSAkMSBBTkQgc3RyaW5ndTEgPSAkMjsgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAotIHE3 ICAgfCBQUkVQQVJFIHE3KHVua25vd24pIEFTICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgK3wge3BhdGh9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCB7dGV4dCxwYXRofQotICAgICAgfCAgICAgU0VMRUNUICogRlJP TSByb2FkIFdIRVJFIHRoZXBhdGggPSAkMTsgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSBx OCAgIHwgUFJFUEFSRSBxOCBBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICt8IHtpbnRlZ2VyLG5hbWV9ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgCi0gICAgICB8ICAgICBVUERBVEUgdGVuazEgU0VUIHN0cmlu Z3UxID0gJDIgV0hFUkUgdW5pcXVlMSA9ICQxOyAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAorIG5hbWUgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZW1lbnQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJfdHlwZXMgICAgICAgICAgICAg ICAgICAgfCBwYXJhbWV0ZXJfb3JpZ190YWJsZXMgfCBwYXJhbWV0ZXJfb3JpZ19jb2x1bW5z IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmVzdWx0X3R5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHEyICAg fCBQUkVQQVJFIHEyKHRleHQpIEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgK3wge3RleHR9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCB7LX0gICAgICAgICAgICAgICAgICAgfCB7MH0gICAgICAgICAgICAg ICAgICAgIHwge25hbWUsYm9vbGVhbixib29sZWFufQorICAgICAgfCAgICAgICAgIFNFTEVD VCBkYXRuYW1lLCBkYXRpc3RlbXBsYXRlLCBkYXRhbGxvd2Nvbm4gICAgICAgICAgICAgK3wg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAg ICB8ICAgICAgICAgRlJPTSBwZ19kYXRhYmFzZSBXSEVSRSBkYXRuYW1lID0gJDE7ICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgfCAKKyBxMyAgIHwgUFJFUEFSRSBxMyh0ZXh0LCBpbnQsIGZsb2F0LCBib29s ZWFuLCBzbWFsbGludCkgQVMgICAgICAgICAgICAgICt8IHt0ZXh0LGludGVnZXIsImRvdWJs ZSBwcmVjaXNpb24iLGJvb2xlYW4sc21hbGxpbnR9IHwgey0sLSwtLC0sLX0gICAgICAgICAg IHwgezAsMCwwLDAsMH0gICAgICAgICAgICB8IHtpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixp bnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2Vy LGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLG5hbWUsbmFtZSxuYW1lfQorICAgICAgfCAgICAg ICAgIFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUgc3RyaW5nNCA9ICQxIEFORCAoZm91ciA9 ICQyIE9SK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg IHwgCisgICAgICB8ICAgICAgICAgdGVuID0gJDM6OmJpZ2ludCBPUiB0cnVlID0gJDQgT1Ig b2RkID0gJDU6OmludCkgICAgICAgICArfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgfCAKKyAgICAgIHwgICAgICAgICBPUkRFUiBCWSB1bmlxdWUx OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorIHE1ICAgfCBQUkVQQVJF IHE1KGludCwgdGV4dCkgQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgK3wge2ludGVnZXIsdGV4dH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCB7LSwtfSAgICAgICAgICAgICAgICAgfCB7MCwwfSAgICAgICAgICAgICAgICAgIHwg e2ludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVn ZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsbmFt ZSxuYW1lLG5hbWV9CisgICAgICB8ICAgICAgICAgU0VMRUNUICogRlJPTSB0ZW5rMSBXSEVS RSB1bmlxdWUxID0gJDEgT1Igc3RyaW5ndTEgPSAkMiArfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgIHwgICAgICAgICBPUkRFUiBC WSB1bmlxdWUxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorIHE2ICAg fCBQUkVQQVJFIHE2IEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgK3wge2ludGVnZXIsbmFtZX0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCB7LSwtfSAgICAgICAgICAgICAgICAgfCB7MCwwfSAgICAgICAgICAg ICAgICAgIHwge2ludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRl Z2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGlu dGVnZXIsbmFtZSxuYW1lLG5hbWV9CisgICAgICB8ICAgICBTRUxFQ1QgKiBGUk9NIHRlbmsx IFdIRVJFIHVuaXF1ZTEgPSAkMSBBTkQgc3RyaW5ndTEgPSAkMjsgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBxNyAgIHwgUFJFUEFS RSBxNyh1bmtub3duKSBBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICt8IHtwYXRofSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgey19ICAgICAgICAgICAgICAgICAgIHwgezB9ICAgICAgICAgICAgICAgICAgICB8 IHt0ZXh0LHBhdGh9CisgICAgICB8ICAgICBTRUxFQ1QgKiBGUk9NIHJvYWQgV0hFUkUgdGhl cGF0aCA9ICQxOyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBxOCAgIHwgUFJFUEFSRSBxOCBBUyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IHtp bnRlZ2VyLG5hbWV9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgey0s dGVuazF9ICAgICAgICAgICAgIHwgezAsMTR9ICAgICAgICAgICAgICAgICB8IAorICAgICAg fCAgICAgVVBEQVRFIHRlbmsxIFNFVCBzdHJpbmd1MSA9ICQyIFdIRVJFIHVuaXF1ZTEgPSAk MTsgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgIHwgCiAoNiByb3dzKQogCiAtLSB0ZXN0IERFQUxMT0NBVEUgQUxMOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggYTdmNTcwMGVkYy4uMmVlNWY3NTQ2ZCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC0yMzcsNiArMjM3LDMxIEBA IFNFTEVDVCAzIEFTIHgsICdIZWxsbycsIDQgQVMgeSwgdHJ1ZSBBUyAiZGlydHlcbmFtZSIg XGdkZXNjIFxnCiAgMyB8IEhlbGxvICAgIHwgNCB8IHQKICgxIHJvdykKIAorLS0gXGdlbmNy CistLSAoVGhpcyBqdXN0IHRlc3RzIHRoZSBwYXJhbWV0ZXIgcGFzc2luZzsgdGhlcmUgaXMg bm8gZW5jcnlwdGlvbiBoZXJlLikKK0NSRUFURSBUQUJMRSB0ZXN0X2dlbmNyIChhIGludCwg YiB0ZXh0KTsKK0lOU0VSVCBJTlRPIHRlc3RfZ2VuY3IgVkFMVUVTICgxLCAnb25lJykgXGdl bmNyCitTRUxFQ1QgKiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9IDEgXGdlbmNyCisgYSB8 ICBiICAKKy0tLSstLS0tLQorIDEgfCBvbmUKKygxIHJvdykKKworSU5TRVJUIElOVE8gdGVz dF9nZW5jciBWQUxVRVMgKCQxLCAkMikgXGdlbmNyIDIgJ3R3bycKK1NFTEVDVCAqIEZST00g dGVzdF9nZW5jciBXSEVSRSBhIElOICgkMSwgJDIpIFxnZW5jciAyIDMKKyBhIHwgIGIgIAor LS0tKy0tLS0tCisgMiB8IHR3bworKDEgcm93KQorCistLSB0ZXN0IHBhcnNlIGVycm9yCitT RUxFQ1QgKiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9IHggXGdlbmNyCitFUlJPUjogIGNv bHVtbiAieCIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUICogRlJPTSB0ZXN0X2dl bmNyIFdIRVJFIGEgPSB4IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KKy0tIHRlc3QgYmluZCBlcnJvcgorU0VMRUNUICogRlJPTSB0ZXN0X2dlbmNy IFdIRVJFIGEgPSAkMSBcZ2VuY3IKK0VSUk9SOiAgYmluZCBtZXNzYWdlIHN1cHBsaWVzIDAg cGFyYW1ldGVycywgYnV0IHByZXBhcmVkIHN0YXRlbWVudCAiIiByZXF1aXJlcyAxCiAtLSBc Z2V4ZWMKIGNyZWF0ZSB0ZW1wb3JhcnkgdGFibGUgZ2V4ZWNfdGVzdChhIGludCwgYiB0ZXh0 LCBjIGRhdGUsIGQgZmxvYXQpOwogc2VsZWN0IGZvcm1hdCgnY3JlYXRlIGluZGV4IG9uIGdl eGVjX3Rlc3QoJUkpJywgYXR0bmFtZSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5v dXQKaW5kZXggOWRkMTM3NDE1ZS4uN2ViZjZmZGIyNSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQKQEAgLTE0MjMsMTEgKzE0MjMsMTMgQEAgcGdfcHJlcGFyZWRfc3Rh dGVtZW50c3wgU0VMRUNUIHAubmFtZSwKICAgICBwLnN0YXRlbWVudCwKICAgICBwLnByZXBh cmVfdGltZSwKICAgICBwLnBhcmFtZXRlcl90eXBlcywKKyAgICBwLnBhcmFtZXRlcl9vcmln X3RhYmxlcywKKyAgICBwLnBhcmFtZXRlcl9vcmlnX2NvbHVtbnMsCiAgICAgcC5yZXN1bHRf dHlwZXMsCiAgICAgcC5mcm9tX3NxbCwKICAgICBwLmdlbmVyaWNfcGxhbnMsCiAgICAgcC5j dXN0b21fcGxhbnMKLSAgIEZST00gcGdfcHJlcGFyZWRfc3RhdGVtZW50KCkgcChuYW1lLCBz dGF0ZW1lbnQsIHByZXBhcmVfdGltZSwgcGFyYW1ldGVyX3R5cGVzLCByZXN1bHRfdHlwZXMs IGZyb21fc3FsLCBnZW5lcmljX3BsYW5zLCBjdXN0b21fcGxhbnMpOworICAgRlJPTSBwZ19w cmVwYXJlZF9zdGF0ZW1lbnQoKSBwKG5hbWUsIHN0YXRlbWVudCwgcHJlcGFyZV90aW1lLCBw YXJhbWV0ZXJfdHlwZXMsIHBhcmFtZXRlcl9vcmlnX3RhYmxlcywgcGFyYW1ldGVyX29yaWdf Y29sdW1ucywgcmVzdWx0X3R5cGVzLCBmcm9tX3NxbCwgZ2VuZXJpY19wbGFucywgY3VzdG9t X3BsYW5zKTsKIHBnX3ByZXBhcmVkX3hhY3RzfCBTRUxFQ1QgcC50cmFuc2FjdGlvbiwKICAg ICBwLmdpZCwKICAgICBwLnByZXBhcmVkLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC90eXBlX3Nhbml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3R5cGVfc2FuaXR5Lm91dAppbmRleCBkM2FjMDhjOWVlLi4zNTcwOTVlMWI5IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5Lm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5Lm91dApAQCAtNzUsNyArNzUs OSBAQCBPUkRFUiBCWSB0MS5vaWQ7CiAgNDYwMCB8IHBnX2JyaW5fYmxvb21fc3VtbWFyeQog IDQ2MDEgfCBwZ19icmluX21pbm1heF9tdWx0aV9zdW1tYXJ5CiAgNTAxNyB8IHBnX21jdl9s aXN0Ci0oNiByb3dzKQorIDgyNDMgfCBwZ19lbmNyeXB0ZWRfZGV0CisgODI0NCB8IHBnX2Vu Y3J5cHRlZF9ybmQKKyg4IHJvd3MpCiAKIC0tIE1ha2Ugc3VyZSB0eXBhcnJheSBwb2ludHMg dG8gYSAidHJ1ZSIgYXJyYXkgdHlwZSBvZiBvdXIgb3duIGJhc2UKIFNFTEVDVCB0MS5vaWQs IHQxLnR5cG5hbWUgYXMgYmFzZXR5cGUsIHQyLnR5cG5hbWUgYXMgYXJyYXl0eXBlLApAQCAt MTcxLDEwICsxNzMsMTIgQEAgV0hFUkUgdDEudHlwaW5wdXQgPSBwMS5vaWQgQU5EIHQxLnR5 cHR5cGUgaW4gKCdiJywgJ3AnKSBBTkQgTk9UCiAgICAgKHQxLnR5cGVsZW0gIT0gMCBBTkQg dDEudHlwbGVuIDwgMCkgQU5EIE5PVAogICAgIChwMS5wcm9yZXR0eXBlID0gdDEub2lkIEFO RCBOT1QgcDEucHJvcmV0c2V0KQogT1JERVIgQlkgMTsKLSBvaWQgIHwgIHR5cG5hbWUgIHwg b2lkIHwgcHJvbmFtZSAKLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLS0KLSAx NzkwIHwgcmVmY3Vyc29yIHwgIDQ2IHwgdGV4dGluCi0oMSByb3cpCisgb2lkICB8ICAgICB0 eXBuYW1lICAgICAgfCBvaWQgIHwgcHJvbmFtZSAKKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLQorIDE3OTAgfCByZWZjdXJzb3IgICAgICAgIHwgICA0NiB8 IHRleHRpbgorIDgyNDMgfCBwZ19lbmNyeXB0ZWRfZGV0IHwgMTI0NCB8IGJ5dGVhaW4KKyA4 MjQ0IHwgcGdfZW5jcnlwdGVkX3JuZCB8IDEyNDQgfCBieXRlYWluCisoMyByb3dzKQogCiAt LSBWYXJsZW5hIGFycmF5IHR5cGVzIHdpbGwgcG9pbnQgdG8gYXJyYXlfaW4KIC0tIEV4Y2Vw dGlvbiBhcyBvZiA4LjE6IGludDJ2ZWN0b3IgYW5kIG9pZHZlY3RvciBoYXZlIHRoZWlyIG93 biBJL08gcm91dGluZXMKQEAgLTIyMywxMCArMjI3LDEyIEBAIFdIRVJFIHQxLnR5cG91dHB1 dCA9IHAxLm9pZCBBTkQgdDEudHlwdHlwZSBpbiAoJ2InLCAncCcpIEFORCBOT1QKICAgICAg IChwMS5vaWQgPSAnYXJyYXlfb3V0Jzo6cmVncHJvYyBBTkQKICAgICAgICB0MS50eXBlbGVt ICE9IDAgQU5EIHQxLnR5cGxlbiA9IC0xKSkpCiBPUkRFUiBCWSAxOwotIG9pZCAgfCAgdHlw bmFtZSAgfCBvaWQgfCBwcm9uYW1lIAotLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tKy0tLS0t LS0tLQotIDE3OTAgfCByZWZjdXJzb3IgfCAgNDcgfCB0ZXh0b3V0Ci0oMSByb3cpCisgb2lk ICB8ICAgICB0eXBuYW1lICAgICAgfCBvaWQgfCBwcm9uYW1lICAKKy0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0tLQorIDE3OTAgfCByZWZjdXJzb3IgICAgICAg IHwgIDQ3IHwgdGV4dG91dAorIDgyNDMgfCBwZ19lbmNyeXB0ZWRfZGV0IHwgIDMxIHwgYnl0 ZWFvdXQKKyA4MjQ0IHwgcGdfZW5jcnlwdGVkX3JuZCB8ICAzMSB8IGJ5dGVhb3V0CisoMyBy b3dzKQogCiBTRUxFQ1QgdDEub2lkLCB0MS50eXBuYW1lLCBwMS5vaWQsIHAxLnByb25hbWUK IEZST00gcGdfdHlwZSBBUyB0MSwgcGdfcHJvYyBBUyBwMQpAQCAtMjg3LDEwICsyOTMsMTIg QEAgV0hFUkUgdDEudHlwcmVjZWl2ZSA9IHAxLm9pZCBBTkQgdDEudHlwdHlwZSBpbiAoJ2In LCAncCcpIEFORCBOT1QKICAgICAodDEudHlwZWxlbSAhPSAwIEFORCB0MS50eXBsZW4gPCAw KSBBTkQgTk9UCiAgICAgKHAxLnByb3JldHR5cGUgPSB0MS5vaWQgQU5EIE5PVCBwMS5wcm9y ZXRzZXQpCiBPUkRFUiBCWSAxOwotIG9pZCAgfCAgdHlwbmFtZSAgfCBvaWQgIHwgcHJvbmFt ZSAgCi0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0KLSAxNzkwIHwgcmVm Y3Vyc29yIHwgMjQxNCB8IHRleHRyZWN2Ci0oMSByb3cpCisgb2lkICB8ICAgICB0eXBuYW1l ICAgICAgfCBvaWQgIHwgIHByb25hbWUgIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0KKyAxNzkwIHwgcmVmY3Vyc29yICAgICAgICB8IDI0MTQgfCB0 ZXh0cmVjdgorIDgyNDMgfCBwZ19lbmNyeXB0ZWRfZGV0IHwgMjQxMiB8IGJ5dGVhcmVjdgor IDgyNDQgfCBwZ19lbmNyeXB0ZWRfcm5kIHwgMjQxMiB8IGJ5dGVhcmVjdgorKDMgcm93cykK IAogLS0gVmFybGVuYSBhcnJheSB0eXBlcyB3aWxsIHBvaW50IHRvIGFycmF5X3JlY3YKIC0t IEV4Y2VwdGlvbiBhcyBvZiA4LjE6IGludDJ2ZWN0b3IgYW5kIG9pZHZlY3RvciBoYXZlIHRo ZWlyIG93biBJL08gcm91dGluZXMKQEAgLTM0OCwxMCArMzU2LDEyIEBAIFdIRVJFIHQxLnR5 cHNlbmQgPSBwMS5vaWQgQU5EIHQxLnR5cHR5cGUgaW4gKCdiJywgJ3AnKSBBTkQgTk9UCiAg ICAgICAocDEub2lkID0gJ2FycmF5X3NlbmQnOjpyZWdwcm9jIEFORAogICAgICAgIHQxLnR5 cGVsZW0gIT0gMCBBTkQgdDEudHlwbGVuID0gLTEpKSkKIE9SREVSIEJZIDE7Ci0gb2lkICB8 ICB0eXBuYW1lICB8IG9pZCAgfCBwcm9uYW1lICAKLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0rLS0tLS0tLS0tLQotIDE3OTAgfCByZWZjdXJzb3IgfCAyNDE1IHwgdGV4dHNlbmQKLSgx IHJvdykKKyBvaWQgIHwgICAgIHR5cG5hbWUgICAgICB8IG9pZCAgfCAgcHJvbmFtZSAgCist LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLQorIDE3OTAgfCBy ZWZjdXJzb3IgICAgICAgIHwgMjQxNSB8IHRleHRzZW5kCisgODI0MyB8IHBnX2VuY3J5cHRl ZF9kZXQgfCAyNDEzIHwgYnl0ZWFzZW5kCisgODI0NCB8IHBnX2VuY3J5cHRlZF9ybmQgfCAy NDEzIHwgYnl0ZWFzZW5kCisoMyByb3dzKQogCiBTRUxFQ1QgdDEub2lkLCB0MS50eXBuYW1l LCBwMS5vaWQsIHAxLnByb25hbWUKIEZST00gcGdfdHlwZSBBUyB0MSwgcGdfcHJvYyBBUyBw MQpAQCAtNzA3LDYgKzcxNyw4IEBAIENSRUFURSBUQUJMRSB0YWJfY29yZV90eXBlcyBBUyBT RUxFQ1QKICAgJ3R4dCc6OnRleHQsCiAgIHRydWU6OmJvb2wsCiAgIEUnXFx4REVBREJFRUYn OjpieXRlYSwKKyAgRSdcXHhERUFEQkVFRic6OnBnX2VuY3J5cHRlZF9ybmQsCisgIEUnXFx4 REVBREJFRUYnOjpwZ19lbmNyeXB0ZWRfZGV0LAogICBCJzEwMDAxJzo6Yml0LAogICBCJzEw MDAxJzo6dmFyYml0IEFTIHZhcmJpdCwKICAgJzEyLjM0Jzo6bW9uZXksCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVz cy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCA5ZjY0NGEwYzFiLi5lNjhiY2NmZGM4IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTEyOSw2ICsxMjksOSBAQCB0ZXN0 OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNz IHByZXBhcmUgY29udmVyc2lvbiB0cgogIyAtLS0tLS0tLS0tCiB0ZXN0OiBwYXJ0aXRpb25f am9pbiBwYXJ0aXRpb25fcHJ1bmUgcmVsb3B0aW9ucyBoYXNoX3BhcnQgaW5kZXhpbmcgcGFy dGl0aW9uX2FnZ3JlZ2F0ZSBwYXJ0aXRpb25faW5mbyB0dXBsZXNvcnQgZXhwbGFpbiBjb21w cmVzc2lvbiBtZW1vaXplIHN0YXRzCiAKKyMgV0lQCit0ZXN0OiBjb2x1bW5fZW5jcnlwdGlv bgorCiAjIGV2ZW50X3RyaWdnZXIgY2Fubm90IHJ1biBjb25jdXJyZW50bHkgd2l0aCBhbnkg dGVzdCB0aGF0IHJ1bnMgRERMCiAjIG9pZGpvaW5zIGlzIHJlYWQtb25seSwgdGhvdWdoLCBh bmQgc2hvdWxkIHJ1biBsYXRlIGZvciBiZXN0IGNvdmVyYWdlCiB0ZXN0OiBldmVudF90cmln Z2VyIG9pZGpvaW5zCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3Nf bWFpbi5jIGIvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzX21haW4uYwppbmRleCBhNGIz NTRjOWU2Li44YWQxZjQ1OGQ1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BnX3Jl Z3Jlc3NfbWFpbi5jCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzc19tYWluLmMK QEAgLTgyLDcgKzgyLDcgQEAgcHNxbF9zdGFydF90ZXN0KGNvbnN0IGNoYXIgKnRlc3RuYW1l LAogCQkJCQkgICBiaW5kaXIgPyBiaW5kaXIgOiAiIiwKIAkJCQkJICAgYmluZGlyID8gIi8i IDogIiIsCiAJCQkJCSAgIGRibGlzdC0+c3RyLAotCQkJCQkgICAiLXYgSElERV9UQUJMRUFN PW9uIC12IEhJREVfVE9BU1RfQ09NUFJFU1NJT049b24iLAorCQkJCQkgICAiLXYgSElERV9U QUJMRUFNPW9uIC12IEhJREVfVE9BU1RfQ09NUFJFU1NJT049b24gLXYgSElERV9DT0xVTU5f RU5DUllQVElPTj1vbiIsCiAJCQkJCSAgIGluZmlsZSwKIAkJCQkJICAgb3V0ZmlsZSk7CiAJ aWYgKG9mZnNldCA+PSBzaXplb2YocHNxbF9jbWQpKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvY29sdW1uX2VuY3J5cHRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLmVkNGI3YzVkNjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9jb2x1bW5fZW5jcnlwdGlvbi5zcWwKQEAgLTAsMCArMSwxMDcgQEAKK1xzZXQg SElERV9DT0xVTU5fRU5DUllQVElPTiBmYWxzZQorCitDUkVBVEUgUk9MRSByZWdyZXNzX2Vu Y191c2VyMTsKKworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazEgV0lUSCAoCisgICAg cmVhbG0gPSAndGVzdCcKKyk7CisKK0NPTU1FTlQgT04gQ09MVU1OIE1BU1RFUiBLRVkgY21r MSBJUyAnY29sdW1uIG1hc3RlciBrZXknOworCitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkg Y21rMWEgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdCcKKyk7CisKK0NSRUFURSBDT0xVTU4g TUFTVEVSIEtFWSBjbWsyIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3QyJworKTsKKworQ1JF QVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazJhIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3Qy JworKTsKKworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFdJVEggVkFMVUVT ICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JT QUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJwor KTsKKworQ09NTUVOVCBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBJUyAnY29sdW1u IGVuY3J5cHRpb24ga2V5JzsKKworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEg QUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29y aXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhE RUFEQkVFRicKKyk7CisKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBmYWlsIEFERCBW QUxVRSAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwKKyAgICBhbGdvcml0aG0g PSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJF RUYnCispOworCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazIgV0lUSCBWQUxV RVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMiwKKyAgICBhbGdvcml0aG0gPSAn UlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYn CispLAorKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMmEsCisgICAgYWxnb3JpdGht ID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURC RUVGJworKTsKKworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWs0IFdJVEggVkFM VUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0g J1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVG JworKTsKKworQ1JFQVRFIFRBQkxFIHRibF9mYWlsICgKKyAgICBhIGludCwKKyAgICBiIHRl eHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkg PSBub3RleGlzdCkKKyk7CisKK0NSRUFURSBUQUJMRSB0YmxfMjlmMyAoCisgICAgYSBpbnQs CisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5 cHRpb25fa2V5ID0gY2VrMSkKKyk7CisKK1xkIHRibF8yOWYzCitcZCsgdGJsXzI5ZjMKKwor RFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFJFU1RSSUNUOyAgLS0gZmFpbAorCitBTFRF UiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsyIFJFTkFNRSBUTyBjbWszOworQUxURVIgQ09MVU1O IE1BU1RFUiBLRVkgY21rMSBSRU5BTUUgVE8gY21rMzsgIC0tIGZhaWwKK0FMVEVSIENPTFVN TiBNQVNURVIgS0VZIGNta3ggUkVOQU1FIFRPIGNta3k7ICAtLSBmYWlsCisKK0FMVEVSIENP TFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsyIFJFTkFNRSBUTyBjZWszOworQUxURVIgQ09MVU1O IEVOQ1JZUFRJT04gS0VZIGNlazEgUkVOQU1FIFRPIGNlazM7ICAtLSBmYWlsCitBTFRFUiBD T0xVTU4gRU5DUllQVElPTiBLRVkgY2VreCBSRU5BTUUgVE8gY2VreTsgIC0tIGZhaWwKKwor U0VUIFJPTEUgcmVncmVzc19lbmNfdXNlcjE7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtF WSBjZWszOyAgLS0gZmFpbAorRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjbWszOyAgLS0gZmFp bAorUkVTRVQgUk9MRTsKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazMgT1dORVIgVE8g cmVncmVzc19lbmNfdXNlcjE7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMyBP V05FUiBUTyByZWdyZXNzX2VuY191c2VyMTsKK1NFVCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIx OworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMzsgIC0tIG9rIG5vdworRFJPUCBD T0xVTU4gTUFTVEVSIEtFWSBjbWszOyAgLS0gb2sgbm93CitSRVNFVCBST0xFOworCitBTFRF UiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVy X2tleSA9IGNtazFhKTsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1Ag VkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEpOyAgLS0gZmFpbAorQUxURVIgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoY29sdW1uX21hc3Rlcl9rZXkg PSBmYWlsKTsgIC0tIGZhaWwKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERS T1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsIGFsZ29yaXRobSA9ICdmb28n KTsgIC0tIGZhaWwKKworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrNDsKK0RST1Ag Q09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWw7CisKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkg Y21rMWE7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGZhaWw7CisKK0RST1AgUk9MRSByZWdy ZXNzX2VuY191c2VyMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVj dF9hZGRyZXNzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNx bAppbmRleCBhY2QwNDY4YTlkLi44ZjRmYTZlMjFjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvb2JqZWN0X2FkZHJlc3Muc3FsCkBAIC00MCw2ICs0MCw4IEBAIENSRUFURSBTRVJWRVIg ImludGVnZXIiIEZPUkVJR04gREFUQSBXUkFQUEVSIGFkZHJfZmR3OwogQ1JFQVRFIFVTRVIg TUFQUElORyBGT1IgcmVncmVzc19hZGRyX3VzZXIgU0VSVkVSICJpbnRlZ2VyIjsKIEFMVEVS IERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2FkZHJfdXNlciBJTiBTQ0hF TUEgcHVibGljIEdSQU5UIEFMTCBPTiBUQUJMRVMgVE8gcmVncmVzc19hZGRyX3VzZXI7CiBB TFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19hZGRyX3VzZXIgUkVW T0tFIERFTEVURSBPTiBUQUJMRVMgRlJPTSByZWdyZXNzX2FkZHJfdXNlcjsKK0NSRUFURSBD T0xVTU4gTUFTVEVSIEtFWSBhZGRyX2NtayBXSVRIIChyZWFsbSA9ICcnKTsKK0NSRUFURSBD T0xVTU4gRU5DUllQVElPTiBLRVkgYWRkcl9jZWsgV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0 ZXJfa2V5ID0gYWRkcl9jbWssIGVuY3J5cHRlZF92YWx1ZSA9ICcnKTsKIC0tIHRoaXMgdHJh bnNmb3JtIHdvdWxkIGJlIHF1aXRlIHVuc2FmZSB0byBsZWF2ZSBseWluZyBhcm91bmQsCiAt LSBleGNlcHQgdGhhdCB0aGUgU1FMIGxhbmd1YWdlIHBheXMgbm8gYXR0ZW50aW9uIHRvIHRy YW5zZm9ybXM6CiBDUkVBVEUgVFJBTlNGT1JNIEZPUiBpbnQgTEFOR1VBR0UgU1FMICgKQEAg LTk4LDcgKzEwMCw4IEBAIENSRUFURSBTVEFUSVNUSUNTIGFkZHJfbnNwLmdlbnRhYmxlX3N0 YXQgT04gYSwgYiBGUk9NIGFkZHJfbnNwLmdlbnRhYmxlOwogCQkoJ3RleHQgc2VhcmNoIHRl bXBsYXRlJyksICgndGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbicpLAogCQkoJ3BvbGljeScp LCAoJ3VzZXIgbWFwcGluZycpLCAoJ2RlZmF1bHQgYWNsJyksICgndHJhbnNmb3JtJyksCiAJ CSgnb3BlcmF0b3Igb2YgYWNjZXNzIG1ldGhvZCcpLCAoJ2Z1bmN0aW9uIG9mIGFjY2VzcyBt ZXRob2QnKSwKLQkJKCdwdWJsaWNhdGlvbiByZWxhdGlvbicpCisJCSgncHVibGljYXRpb24g cmVsYXRpb24nKSwKKwkJKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknKSwgKCdjb2x1bW4gZW5j cnlwdGlvbiBrZXkgZGF0YScpLCAoJ2NvbHVtbiBtYXN0ZXIga2V5JykKIAlMT09QCiAJCUZP UiBuYW1lcyBJTiBWQUxVRVMgKCd7ZWluc30nKSwgKCd7YWRkcl9uc3AsIHp3ZWl9JyksICgn e2VpbnMsIHp3ZWksIGRyZWl9JykKIAkJTE9PUApAQCAtMTQzLDYgKzE0NiwxMCBAQCBDUkVB VEUgU1RBVElTVElDUyBhZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRy X25zcC5nZW50YWJsZTsKIFNFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3B1YmxpY2F0 aW9uJywgJ3tvbmUsdHdvfScsICd7fScpOwogU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVz cygnc3Vic2NyaXB0aW9uJywgJ3tvbmV9JywgJ3t9Jyk7CiBTRUxFQ1QgcGdfZ2V0X29iamVj dF9hZGRyZXNzKCdzdWJzY3JpcHRpb24nLCAne29uZSx0d299JywgJ3t9Jyk7CitTRUxFQ1Qg cGdfZ2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne29uZX0n LCAne30nKTsKK1NFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ2NvbHVtbiBlbmNyeXB0 aW9uIGtleScsICd7b25lLHR3b30nLCAne30nKTsKK1NFTEVDVCBwZ19nZXRfb2JqZWN0X2Fk ZHJlc3MoJ2NvbHVtbiBtYXN0ZXIga2V5JywgJ3tvbmV9JywgJ3t9Jyk7CitTRUxFQ1QgcGdf Z2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gbWFzdGVyIGtleScsICd7b25lLHR3b30nLCAn e30nKTsKIAogLS0gdGVzdCBzdWNjZXNzZnVsIGNhc2VzCiBXSVRIIG9iamVjdHMgKHR5cGUs IG5hbWUsIGFyZ3MpIEFTIChWQUxVRVMKQEAgLTE2Niw2ICsxNzMsOSBAQCBDUkVBVEUgU1RB VElTVElDUyBhZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5n ZW50YWJsZTsKIAkJCQkoJ3R5cGUnLCAne2FkZHJfbnNwLmdlbmVudW19JywgJ3t9JyksCiAJ CQkJKCdjYXN0JywgJ3tpbnQ4fScsICd7aW50NH0nKSwKIAkJCQkoJ2NvbGxhdGlvbicsICd7 ZGVmYXVsdH0nLCAne30nKSwKKwkJCQkoJ2NvbHVtbiBlbmNyeXB0aW9uIGtleScsICd7YWRk cl9jZWt9JywgJ3t9JyksCistLVRPRE86CQkJCSgnY29sdW1uIGVuY3J5cHRpb24ga2V5IGRh dGEnLCAne2FkZHJfY2VrfScsICd7YWRkcl9jbWt9JyksCisJCQkJKCdjb2x1bW4gbWFzdGVy IGtleScsICd7YWRkcl9jbWt9JywgJ3t9JyksCiAJCQkJKCd0YWJsZSBjb25zdHJhaW50Jywg J3thZGRyX25zcCwgZ2VudGFibGUsIGFfY2hrfScsICd7fScpLAogCQkJCSgnZG9tYWluIGNv bnN0cmFpbnQnLCAne2FkZHJfbnNwLmdlbmRvbWFpbn0nLCAne2RvbWNvbnN0cn0nKSwKIAkJ CQkoJ2NvbnZlcnNpb24nLCAne3BnX2NhdGFsb2csIGtvaThfcl90b19taWN9JywgJ3t9Jyks CkBAIC0yMTksNiArMjI5LDggQEAgQ1JFQVRFIFNUQVRJU1RJQ1MgYWRkcl9uc3AuZ2VudGFi bGVfc3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2VudGFibGU7CiBEUk9QIFBVQkxJQ0FU SU9OIGFkZHJfcHViOwogRFJPUCBQVUJMSUNBVElPTiBhZGRyX3B1Yl9zY2hlbWE7CiBEUk9Q IFNVQlNDUklQVElPTiByZWdyZXNzX2FkZHJfc3ViOworRFJPUCBDT0xVTU4gRU5DUllQVElP TiBLRVkgYWRkcl9jZWs7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGFkZHJfY21rOwogCiBE Uk9QIFNDSEVNQSBhZGRyX25zcCBDQVNDQURFOwogCkBAIC0yNDMsNiArMjU1LDkgQEAgQ1JF QVRFIFNUQVRJU1RJQ1MgYWRkcl9uc3AuZ2VudGFibGVfc3RhdCBPTiBhLCBiIEZST00gYWRk cl9uc3AuZ2VudGFibGU7CiAgICAgKCdwZ190eXBlJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBu byB0eXBlCiAgICAgKCdwZ19jYXN0Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjYXN0CiAg ICAgKCdwZ19jb2xsYXRpb24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbGxhdGlvbgor ICAgICgncGdfY29sZW5ja2V5Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4gZW5j cnlwdGlvbiBrZXkKKy0tVE9ETzogICAgKCdwZ19jb2xlbmNrZXlkYXRhJzo6cmVnY2xhc3Ms IDAsIDApLCAtLSBubyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YQorICAgICgncGdfY29s bWFzdGVya2V5Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4gbWFzdGVyIGtleQog ICAgICgncGdfY29uc3RyYWludCc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29uc3RyYWlu dAogICAgICgncGdfY29udmVyc2lvbic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29udmVy c2lvbgogICAgICgncGdfYXR0cmRlZic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gZGVmYXVs dCBhdHRyaWJ1dGUKQEAgLTI3Myw2ICsyODgsNyBAQCBDUkVBVEUgU1RBVElTVElDUyBhZGRy X25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5nZW50YWJsZTsKICAg ICAoJ3BnX2V2ZW50X3RyaWdnZXInOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGV2ZW50IHRy aWdnZXIKICAgICAoJ3BnX3BvbGljeSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcG9saWN5 CiAgICAgKCdwZ19wdWJsaWNhdGlvbic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcHVibGlj YXRpb24KKyAgICAoJ3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSc6OnJlZ2NsYXNzLCAwLCAw KSwgLS0gbm8gcHVibGljYXRpb24gbmFtZXNwYWNlCiAgICAgKCdwZ19wdWJsaWNhdGlvbl9y ZWwnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHB1YmxpY2F0aW9uIHJlbGF0aW9uCiAgICAg KCdwZ19zdWJzY3JpcHRpb24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHN1YnNjcmlwdGlv bgogICAgICgncGdfdHJhbnNmb3JtJzo6cmVnY2xhc3MsIDAsIDApIC0tIG5vIHRyYW5zZm9y bWF0aW9uCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVwYXJlLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZXBhcmUuc3FsCmluZGV4IGM2MDk4ZGM5NWMuLjdk Yjc4ODczNWMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZXBhcmUuc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZXBhcmUuc3FsCkBAIC03NSw3ICs3NSw3 IEBAIENSRUFURSBURU1QT1JBUlkgVEFCTEUgcTVfcHJlcF9ub2RhdGEgQVMgRVhFQ1VURSBx NSgyMDAsICdEVEFBQUEnKQogUFJFUEFSRSBxOCBBUwogICAgIFVQREFURSB0ZW5rMSBTRVQg c3RyaW5ndTEgPSAkMiBXSEVSRSB1bmlxdWUxID0gJDE7CiAKLVNFTEVDVCBuYW1lLCBzdGF0 ZW1lbnQsIHBhcmFtZXRlcl90eXBlcywgcmVzdWx0X3R5cGVzIEZST00gcGdfcHJlcGFyZWRf c3RhdGVtZW50cworU0VMRUNUIG5hbWUsIHN0YXRlbWVudCwgcGFyYW1ldGVyX3R5cGVzLCBw YXJhbWV0ZXJfb3JpZ190YWJsZXMsIHBhcmFtZXRlcl9vcmlnX2NvbHVtbnMsIHJlc3VsdF90 eXBlcyBGUk9NIHBnX3ByZXBhcmVkX3N0YXRlbWVudHMKICAgICBPUkRFUiBCWSBuYW1lOwog CiAtLSB0ZXN0IERFQUxMT0NBVEUgQUxMOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHNxbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbAppbmRleCAx MTQ5YzZhODM5Li5lODhjNzBkMzAyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9wc3FsLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbApAQCAtMTE5 LDYgKzExOSwyMyBAQCBDUkVBVEUgVEFCTEUgYnVidWJ1KGEgaW50KSBcZ2Rlc2MKIC0tIGFs bCBvbiBvbmUgbGluZQogU0VMRUNUIDMgQVMgeCwgJ0hlbGxvJywgNCBBUyB5LCB0cnVlIEFT ICJkaXJ0eVxuYW1lIiBcZ2Rlc2MgXGcKIAorCistLSBcZ2VuY3IKKy0tIChUaGlzIGp1c3Qg dGVzdHMgdGhlIHBhcmFtZXRlciBwYXNzaW5nOyB0aGVyZSBpcyBubyBlbmNyeXB0aW9uIGhl cmUuKQorCitDUkVBVEUgVEFCTEUgdGVzdF9nZW5jciAoYSBpbnQsIGIgdGV4dCk7CitJTlNF UlQgSU5UTyB0ZXN0X2dlbmNyIFZBTFVFUyAoMSwgJ29uZScpIFxnZW5jcgorU0VMRUNUICog RlJPTSB0ZXN0X2dlbmNyIFdIRVJFIGEgPSAxIFxnZW5jcgorCitJTlNFUlQgSU5UTyB0ZXN0 X2dlbmNyIFZBTFVFUyAoJDEsICQyKSBcZ2VuY3IgMiAndHdvJworU0VMRUNUICogRlJPTSB0 ZXN0X2dlbmNyIFdIRVJFIGEgSU4gKCQxLCAkMikgXGdlbmNyIDIgMworCistLSB0ZXN0IHBh cnNlIGVycm9yCitTRUxFQ1QgKiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9IHggXGdlbmNy CistLSB0ZXN0IGJpbmQgZXJyb3IKK1NFTEVDVCAqIEZST00gdGVzdF9nZW5jciBXSEVSRSBh ID0gJDEgXGdlbmNyCisKKwogLS0gXGdleGVjCiAKIGNyZWF0ZSB0ZW1wb3JhcnkgdGFibGUg Z2V4ZWNfdGVzdChhIGludCwgYiB0ZXh0LCBjIGRhdGUsIGQgZmxvYXQpOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHlwZV9zYW5pdHkuc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvdHlwZV9zYW5pdHkuc3FsCmluZGV4IDVlZGMxZjFmNmUuLjBmZmU0NWZkMzcg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2FuaXR5LnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC90eXBlX3Nhbml0eS5zcWwKQEAgLTUyOSw2ICs1Mjks OCBAQCBDUkVBVEUgVEFCTEUgdGFiX2NvcmVfdHlwZXMgQVMgU0VMRUNUCiAgICd0eHQnOjp0 ZXh0LAogICB0cnVlOjpib29sLAogICBFJ1xceERFQURCRUVGJzo6Ynl0ZWEsCisgIEUnXFx4 REVBREJFRUYnOjpwZ19lbmNyeXB0ZWRfcm5kLAorICBFJ1xceERFQURCRUVGJzo6cGdfZW5j cnlwdGVkX2RldCwKICAgQicxMDAwMSc6OmJpdCwKICAgQicxMDAwMSc6OnZhcmJpdCBBUyB2 YXJiaXQsCiAgICcxMi4zNCc6Om1vbmV5LAoKYmFzZS1jb21taXQ6IGJiNjI5YzI5NGJlYTUz Mzg4NGEzNzllZWU1ZjhlZDYzMDdjMTdiZjIKLS0gCjIuMzcuMwoK --------------W7fzo2UktvQgR590aBKOrJVN--