From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by sourceware.org (Postfix) with ESMTPS id 240903857400 for ; Thu, 16 Sep 2021 13:12:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 240903857400 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.cz Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 06F54223B7; Thu, 16 Sep 2021 13:12:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1631797959; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=oS+0Xp/IhEUznJq6L98NiT2n6eGLgbrg8fhCqaF3KS8=; b=XdlpV20/I6uxU9kVYR95yi9jo20tElClqXNIIuYsIRq1dFR/J4DnUyty4B1qN7WOvg9J9A Lmk+aRazt5BFClHucJLMDywC1qEo67pSFgNBqRYpfjl9i3M3H4MgvHlez/3HjzCFqr0uPY VfYav9bZTEuOvOVsrH6h/LV7Puwt43M= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1631797959; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=oS+0Xp/IhEUznJq6L98NiT2n6eGLgbrg8fhCqaF3KS8=; b=m1Cz4EJN6QLaarMepklzOn7EJz0ebMUNGK/UmDBntzr50hMTPzaSxMJEaTxipLRkQjHA2H aqj5vlkGLPmUgmDQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id DA64713A1C; Thu, 16 Sep 2021 13:12:38 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 1TxLNMZCQ2FrWgAAMHmgww (envelope-from ); Thu, 16 Sep 2021 13:12:38 +0000 Content-Type: multipart/mixed; boundary="------------5TmGHbfRuiqg0rx5aIQchTc4" Message-ID: <6a4d22df-d810-ea08-4782-6d79cc639e1b@suse.cz> Date: Thu, 16 Sep 2021 15:12:38 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.1 Subject: [PATCH 3/N] Come up with casm global state. Content-Language: en-US From: =?UTF-8?Q?Martin_Li=c5=a1ka?= To: GCC Patches References: <8aa1fb10-334d-aa62-13e4-2ebc24d4ea16@suse.cz> In-Reply-To: <8aa1fb10-334d-aa62-13e4-2ebc24d4ea16@suse.cz> X-Spam-Status: No, score=-10.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_STOCKGEN, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Sep 2021 13:12:45 -0000 This is a multi-part message in MIME format. --------------5TmGHbfRuiqg0rx5aIQchTc4 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit This patch comes up with asm_out_state and a new global variable casm. Tested on all cross compilers. Patch can bootstrap on x86_64-linux-gnu and survives regression tests. Ready to be installed? Thanks, Martin --------------5TmGHbfRuiqg0rx5aIQchTc4 Content-Type: text/x-patch; charset=UTF-8; name="0001-Come-up-with-casm-global-state.patch" Content-Disposition: attachment; filename="0001-Come-up-with-casm-global-state.patch" Content-Transfer-Encoding: base64 RnJvbSA4OGJiMzg5YzYxNzY2MGExNGFkZjk2OGUwNDcwNDE3YTVjODY4OGFmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gTGlza2EgPG1saXNrYUBzdXNlLmN6PgpE YXRlOiBUdWUsIDcgU2VwIDIwMjEgMTM6MzI6NTcgKzAyMDAKU3ViamVjdDogW1BBVENIXSBD b21lIHVwIHdpdGggY2FzbSBnbG9iYWwgc3RhdGUuCgpnY2MvQ2hhbmdlTG9nOgoKCSogb3V0 cHV0LmggKHN0cnVjdCBhc21fb3V0X2ZpbGUpOiBOZXcgc3RydWN0IHRoYXQgcmVwbGFjZXMg YQoJY291cGxlIG9mIGdsb2JhbCB2YXJpYWJsZXMuCgkqIGdnYy1jb21tb24uYyAoZ3RfcGNo X3Jlc3RvcmUpOiBTa2lwIG92ZXJ3cml0ZSBvZgoJY2FzbS0+b3V0X2ZpbGUgYXMgaXQgbWF5 IGJlIG92ZXJ3cml0dGVuIGJ5IFBDSC4KCSogZG9jL3RtLnRleGk6IERvY3VtZW50IG5ldyB1 c2FnZSBvZiBjYXNtLgoJKiBkb2MvdG0udGV4aS5pbjogTGlrZXdpc2UuCgkqIHZhcmFzbS5j OiBEZWxldGUgdW51c2VkIGdsb2JhbCB2YXJpYWJsZXMuCgkoaGFuZGxlX3Z0dl9jb21kYXRf c2VjdGlvbik6IFVzZSBuZXcgY2FzbS4KCShzdHJ1Y3Qgc2VjdGlvbl9oYXNoZXIpOiBMaWtl d2lzZS4KCShHVFkpOiBMaWtld2lzZS4KCShnZXRfc2VjdGlvbik6IExpa2V3aXNlLgoJKGFz bV9vdXRwdXRfYWxpZ25lZF9ic3MpOiBMaWtld2lzZS4KCShob3RfZnVuY3Rpb25fc2VjdGlv bik6IExpa2V3aXNlLgoJKGN1cnJlbnRfZnVuY3Rpb25fc2VjdGlvbik6IExpa2V3aXNlLgoJ KHN3aXRjaF90b19vdGhlcl90ZXh0X3BhcnRpdGlvbik6IExpa2V3aXNlLgoJKGRlZmF1bHRf ZnVuY3Rpb25fcm9kYXRhX3NlY3Rpb24pOiBMaWtld2lzZS4KCShkZWZhdWx0X25vX2Z1bmN0 aW9uX3JvZGF0YV9zZWN0aW9uKTogTGlrZXdpc2UuCgkobWVyZ2VhYmxlX3N0cmluZ19zZWN0 aW9uKTogTGlrZXdpc2UuCgkobWVyZ2VhYmxlX2NvbnN0YW50X3NlY3Rpb24pOiBMaWtld2lz ZS4KCShnZXRfdmFyaWFibGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGRlZmF1bHRfZHRvcl9z ZWN0aW9uX2FzbV9vdXRfZGVzdHJ1Y3Rvcik6IExpa2V3aXNlLgoJKGRlZmF1bHRfY3Rvcl9z ZWN0aW9uX2FzbV9vdXRfY29uc3RydWN0b3IpOiBMaWtld2lzZS4KCShkZWNpZGVfZnVuY3Rp b25fc2VjdGlvbik6IExpa2V3aXNlLgoJKGFzc2VtYmxlX3N0YXJ0X2Z1bmN0aW9uKTogTGlr ZXdpc2UuCgkoYXNzZW1ibGVfZW5kX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkoYXNzZW1ibGVf c3RyaW5nKTogTGlrZXdpc2UuCgkob3V0cHV0X2NvbnN0YW50X3Bvb2xfMSk6IExpa2V3aXNl LgoJKGluaXRfdmFyYXNtX29uY2UpOiBMaWtld2lzZS4KCShoYXZlX2dsb2JhbF9ic3NfcCk6 IExpa2V3aXNlLgoJKGRlZmF1bHRfc2VsZWN0X3NlY3Rpb24pOiBMaWtld2lzZS4KCShkZWZh dWx0X2VsZl9zZWxlY3Rfc2VjdGlvbik6IExpa2V3aXNlLgoJKGRlZmF1bHRfc2VsZWN0X3J0 eF9zZWN0aW9uKTogTGlrZXdpc2UuCgkoc3dpdGNoX3RvX3NlY3Rpb24pOiBMaWtld2lzZS4K CShnZXRfc2VjdGlvbl9hbmNob3IpOiBMaWtld2lzZS4KCSogY2dyYXBodW5pdC5jIChzeW1i b2xfdGFibGU6OmNvbXBpbGUpOiBMaWtld2lzZS4KCSogY29uZmlnL2FhcmNoNjQvYWFyY2g2 NC5jIChhYXJjaDY0X3Nsc19lbWl0X2Jscl9mdW5jdGlvbl90aHVua3MpOiBMaWtld2lzZS4K CSogY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5oIChUUkFNUE9MSU5FX1NFQ1RJT04pOiBMaWtl d2lzZS4KCSogY29uZmlnL2FscGhhL2FscGhhLmMgKGFscGhhX2VsZl9zZWxlY3RfcnR4X3Nl Y3Rpb24pOiBMaWtld2lzZS4KCShhbHBoYV93cml0ZV9saW5rYWdlKTogTGlrZXdpc2UuCgko dm1zX2FzbV9vdXRfY29uc3RydWN0b3IpOiBMaWtld2lzZS4KCSh2bXNfYXNtX291dF9kZXN0 cnVjdG9yKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9hbHBoYS9lbGYuaDogTGlrZXdpc2UuCgkq IGNvbmZpZy9hcmMvYXJjLmMgKGFyY19hc21fb3V0cHV0X2FsaWduZWRfZGVjbF9sb2NhbCk6 IExpa2V3aXNlLgoJKiBjb25maWcvYXJtL2FvdXQuaCAoQVNNX09VVFBVVF9BTElHTkVEX0xP Q0FMKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9hcm0vYXJtLmMgKGdldF9qdW1wX3RhYmxlX3Np emUpOiBMaWtld2lzZS4KCShhcm1fZWxmX2FzbV9jZHRvcik6IExpa2V3aXNlLgoJKHRodW1i X2NhbGxfdmlhX3JlZyk6IExpa2V3aXNlLgoJKGFybV9maWxlX2VuZCk6IExpa2V3aXNlLgoJ KiBjb25maWcvYXJtL2FybS5oIChBUk1fR0VfQklUU19SRUFEKTogTGlrZXdpc2UuCgkqIGNv bmZpZy9hcm0vdW5rbm93bi1lbGYuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9hdnIvYXZyLmMg KGF2cl9hc21fYXNtX291dHB1dF9hbGlnbmVkX2Jzcyk6IExpa2V3aXNlLgoJKGF2cl9vdXRw dXRfZGF0YV9zZWN0aW9uX2FzbV9vcCk6IExpa2V3aXNlLgoJKGF2cl9vdXRwdXRfYWRkcl92 ZWMpOiBMaWtld2lzZS4KCSogY29uZmlnL2JmaW4vYmZpbi5oOiBMaWtld2lzZS4KCSogY29u ZmlnL2M2eC9jNnguYyAoYzZ4X3NlbGVjdF9ydHhfc2VjdGlvbik6IExpa2V3aXNlLgoJKGM2 eF9hc21faW5pdF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBjb25maWcvYzZ4L2M2eC5oOiBM aWtld2lzZS4KCSogY29uZmlnL2Nza3kvY3NreS5jIChnZXRfY3NreV9qdW1wX3RhYmxlX3Np emUpOiBMaWtld2lzZS4KCSogY29uZmlnL2Rhcndpbi5jIChvdXRwdXRfb2JqY19zZWN0aW9u X2FzbV9vcCk6IExpa2V3aXNlLgoJKERFRl9TRUNUSU9OKTogTGlrZXdpc2UuCgkobWFjaG9w aWNfb3V0cHV0X2RhdGFfc2VjdGlvbl9pbmRpcmVjdGlvbik6IExpa2V3aXNlLgoJKGRhcndp bl9tZXJnZWFibGVfc3RyaW5nX3NlY3Rpb24pOiBMaWtld2lzZS4KCShkYXJ3aW5fbWVyZ2Vh YmxlX2NvbnN0YW50X3NlY3Rpb24pOiBMaWtld2lzZS4KCShkYXJ3aW5fb2JqYzJfc2VjdGlv bik6IExpa2V3aXNlLgoJKG1hY2hvcGljX3NlbGVjdF9zZWN0aW9uKTogTGlrZXdpc2UuCgko ZnByaW50Zik6IExpa2V3aXNlLgoJKGRhcndpbl9hc21fZGVjbGFyZV9jb25zdGFudF9uYW1l KTogTGlrZXdpc2UuCgkoZGFyd2luX2VtaXRfd2Vha19vcl9jb21kYXQpOiBMaWtld2lzZS4K CShkYXJ3aW5fZW1pdF9vYmpjX3plcm9lZCk6IExpa2V3aXNlLgoJKGRhcndpbl9lbWl0X2xv Y2FsX2Jzcyk6IExpa2V3aXNlLgoJKGRhcndpbl9lbWl0X2NvbW1vbik6IExpa2V3aXNlLgoJ KiBjb25maWcvZnJ2L2Zydi5jIChmcnZfYXNtX291dF9jb25zdHJ1Y3Rvcik6IExpa2V3aXNl LgoJKGZydl9hc21fb3V0X2Rlc3RydWN0b3IpOiBMaWtld2lzZS4KCSogY29uZmlnL2Zydi9m cnYuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9mdDMyL2Z0MzIuaCAoQVNNX09VVFBVVF9TWU1C T0xfUkVGKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L2N5Z21pbmcuaCAoZHJlY3R2ZV9z ZWN0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L2Rhcndpbi5oOiBMaWtld2lzZS4K CSogY29uZmlnL2kzODYvaTM4Ni5jICh4ODZfb3V0cHV0X2FsaWduZWRfYnNzKTogTGlrZXdp c2UuCgkob3V0cHV0X2luZGlyZWN0X3RodW5rX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkoaXg4 Nl9jb2RlX2VuZCk6IExpa2V3aXNlLgoJKiBjb25maWcvaTM4Ni9zb2wyLmg6IExpa2V3aXNl LgoJKiBjb25maWcvaTM4Ni93aW5udC5jIChpMzg2X3BlX3NlaF9pbml0X3NlY3Rpb25zKTog TGlrZXdpc2UuCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoaWE2NF9hc21faW5pdF9zZWN0aW9u cyk6IExpa2V3aXNlLgoJKGlhNjRfc2VsZWN0X3J0eF9zZWN0aW9uKTogTGlrZXdpc2UuCgkq IGNvbmZpZy9pYTY0L3N5c3Y0Lmg6IExpa2V3aXNlLgoJKiBjb25maWcvbG0zMi9sbTMyLmg6 IExpa2V3aXNlLgoJKiBjb25maWcvbTMyci9tMzJyLmg6IExpa2V3aXNlLgoJKiBjb25maWcv bWNvcmUvbWNvcmUtZWxmLmg6IExpa2V3aXNlLgoJKiBjb25maWcvbWljcm9ibGF6ZS9taWNy b2JsYXplLmMgKG1pY3JvYmxhemVfZWxmX2FzbV9jZHRvcik6IExpa2V3aXNlLgoJKG1pY3Jv YmxhemVfc2VsZWN0X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL21pY3JvYmxhemUv bWljcm9ibGF6ZS5oOiBMaWtld2lzZS4KCSogY29uZmlnL21pcHMvbWlwcy5jIChtaXBzX291 dHB1dF9hbGlnbmVkX2RlY2xfY29tbW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9tbWl4L21t aXguYyAobW1peF9maWxlX3N0YXJ0KTogTGlrZXdpc2UuCgkobW1peF9maWxlX2VuZCk6IExp a2V3aXNlLgoJKG1taXhfYXNtX291dHB1dF9hbGlnbmVkX2xvY2FsKTogTGlrZXdpc2UuCgkq IGNvbmZpZy9tc3A0MzAvbXNwNDMwLmMgKG1zcDQzMF9zZWxlY3Rfc2VjdGlvbik6IExpa2V3 aXNlLgoJKiBjb25maWcvbmlvczIvbmlvczIuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9wYS9w YS5jIChwYV9vdXRwdXRfZnVuY3Rpb25fZXBpbG9ndWUpOiBMaWtld2lzZS4KCShvdXRwdXRf ZGVmZXJyZWRfcHJvZmlsZV9jb3VudGVycyk6IExpa2V3aXNlLgoJKG91dHB1dF9kZWZlcnJl ZF9wbGFiZWxzKTogTGlrZXdpc2UuCgkocGFfYXNtX291dHB1dF9taV90aHVuayk6IExpa2V3 aXNlLgoJKHBhX2FzbV9vdXRwdXRfYWxpZ25lZF9ic3MpOiBMaWtld2lzZS4KCShwYV9hc21f b3V0cHV0X2FsaWduZWRfY29tbW9uKTogTGlrZXdpc2UuCgkocGFfYXNtX291dHB1dF9hbGln bmVkX2xvY2FsKTogTGlrZXdpc2UuCgkoc29tX291dHB1dF90ZXh0X3NlY3Rpb25fYXNtX29w KTogTGlrZXdpc2UuCgkoc29tX291dHB1dF9jb21kYXRfZGF0YV9zZWN0aW9uX2FzbV9vcCk6 IExpa2V3aXNlLgoJKHBhX3NvbV9hc21faW5pdF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKHBh X3NlbGVjdF9zZWN0aW9uKTogTGlrZXdpc2UuCgkocGFfZnVuY3Rpb25fc2VjdGlvbik6IExp a2V3aXNlLgoJKiBjb25maWcvcGRwMTEvcGRwMTEuYyAocGRwMTFfYXNtX291dHB1dF92YXIp OiBMaWtld2lzZS4KCShwZHAxMV9hc21faW5pdF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBj b25maWcvcHJ1L3BydS5oOiBMaWtld2lzZS4KCSogY29uZmlnL3Jpc2N2L3Jpc2N2LmMgKHJp c2N2X2VsZl9zZWxlY3RfcnR4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3JsNzgv cmw3OC5jIChybDc4X3NlbGVjdF9zZWN0aW9uKTogTGlrZXdpc2UuCgkocmw3OF9hc21fY3Rv cl9kdG9yKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9h c3NlbWJsZV9pbnRlZ2VyKTogTGlrZXdpc2UuCgkocnM2MDAwX2VsZl9maWxlX2VuZCk6IExp a2V3aXNlLgoJKHJzNjAwMF94Y29mZl9hc21faW5pdF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJ KHJzNjAwMF94Y29mZl9zZWxlY3Rfc2VjdGlvbik6IExpa2V3aXNlLgoJKHJzNjAwMF94Y29m Zl9maWxlX3N0YXJ0KTogTGlrZXdpc2UuCgkocnM2MDAwX3hjb2ZmX2ZpbGVfZW5kKTogTGlr ZXdpc2UuCgkocnM2MDAwX3hjb2ZmX3Zpc2liaWxpdHkpOiBMaWtld2lzZS4KCShyczYwMDBf eGNvZmZfZGVjbGFyZV9mdW5jdGlvbl9uYW1lKTogTGlrZXdpc2UuCgkocnM2MDAwX3hjb2Zm X2FzbV9vdXRwdXRfYWxpZ25lZF9kZWNsX2NvbW1vbik6IExpa2V3aXNlLgoJKiBjb25maWcv cnM2MDAwL3N5c3Y0Lmg6IExpa2V3aXNlLgoJKiBjb25maWcvcngvcnguYyAocnhfc2VsZWN0 X3J0eF9zZWN0aW9uKTogTGlrZXdpc2UuCgkocnhfc2VsZWN0X3NlY3Rpb24pOiBMaWtld2lz ZS4KCShyeF9lbGZfYXNtX2NkdG9yKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zMzkwL3MzOTAu YyAoczM5MF9vdXRwdXRfaW5kaXJlY3RfdGh1bmtfZnVuY3Rpb24pOiBMaWtld2lzZS4KCSog Y29uZmlnL3NoL3NoLmMgKHNoX2ZpbGVfc3RhcnQpOiBMaWtld2lzZS4KCSogY29uZmlnL3Nw YXJjL3NvbDIuaCAoaG9zdF9kZXRlY3RfbG9jYWxfY3B1KTogTGlrZXdpc2UuCgkqIGNvbmZp Zy9zcGFyYy9zcGFyYy5jIChzcGFyY19maWxlX2VuZCk6IExpa2V3aXNlLgoJKiBjb25maWcv dGlsZWd4L3RpbGVneC5oIChUUkFNUE9MSU5FX1NFQ1RJT04pOiBMaWtld2lzZS4KCSogY29u ZmlnL3RpbGVwcm8vdGlsZXByby5oIChUUkFNUE9MSU5FX1NFQ1RJT04pOiBMaWtld2lzZS4K CSogY29uZmlnL3Y4NTAvdjg1MC5jICh2ODUwX291dHB1dF9hbGlnbmVkX2Jzcyk6IExpa2V3 aXNlLgoJKHY4NTBfc2VsZWN0X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3Zpc2l1 bS92aXNpdW0uaDogTGlrZXdpc2UuCgkqIGRieG91dC5jIChkYnhvdXRfZnVuY3Rpb25fZW5k KTogTGlrZXdpc2UuCgkoZGJ4b3V0X2luaXQpOiBMaWtld2lzZS4KCShkYnhvdXRfc291cmNl X2ZpbGUpOiBMaWtld2lzZS4KCShkYnhvdXRfc3dpdGNoX3RleHRfc2VjdGlvbik6IExpa2V3 aXNlLgoJKGRieG91dF9ibG9jayk6IExpa2V3aXNlLgoJKiBkd2FyZjJvdXQuYyAoc3dpdGNo X3RvX2VoX2ZyYW1lX3NlY3Rpb24pOiBMaWtld2lzZS4KCShkd2FyZjJvdXRfYmVnaW5fcHJv bG9ndWUpOiBMaWtld2lzZS4KCShkd2FyZjJvdXRfc3dpdGNoX3RleHRfc2VjdGlvbik6IExp a2V3aXNlLgoJKHNlY25hbWVfZm9yX2RlY2wpOiBMaWtld2lzZS4KCShkd19sb2NfbGlzdCk6 IExpa2V3aXNlLgoJKHNldF9jdXJfbGluZV9pbmZvX3RhYmxlKTogTGlrZXdpc2UuCgkoZHdh cmYyb3V0X2JlZ2luX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkoZHdhcmYyb3V0X2Fzc2VtYmx5 X3N0YXJ0KTogTGlrZXdpc2UuCgkoZHdhcmYyb3V0X2ZpbmlzaCk6IExpa2V3aXNlLgoJKGR3 YXJmMm91dF9lYXJseV9maW5pc2gpOiBMaWtld2lzZS4KCSogZHdhcmYyb3V0LmggKHN0cnVj dCBkd19mZGVfbm9kZSk6IExpa2V3aXNlLgoJKiBleGNlcHQuYyAoc3dpdGNoX3RvX2V4Y2Vw dGlvbl9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGZpbmFsLmMgKHNob3J0ZW5fYnJhbmNoZXMp OiBMaWtld2lzZS4KCShwcm9maWxlX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkoZmluYWxfc2Nh bl9pbnNuXzEpOiBMaWtld2lzZS4KCSogbGFuZ2hvb2tzLmMgKGxoZF9iZWdpbl9zZWN0aW9u KTogTGlrZXdpc2UuCgkqIHZtc2RiZ291dC5jICh2bXNkYmdvdXRfZmluaXNoKTogTGlrZXdp c2UuCgkqIHJ1bi1ydGwtcGFzc2VzLmMgKHJ1bl9ydGxfcGFzc2VzKTogTGlrZXdpc2UuCgkq IHRhcmdob29rcy5jIChkZWZhdWx0X3ByaW50X3BhdGNoYWJsZV9mdW5jdGlvbl9lbnRyeV8x KTogTGlrZXdpc2UuCgkqIHRvcGxldi5jIChpbml0X2FzbV9vdXRwdXQpOiBMaWtld2lzZS4K CShnZW5lcmFsX2luaXQpOiBMaWtld2lzZS4KCShmaW5hbGl6ZSk6IExpa2V3aXNlLgotLS0K IGdjYy9jZ3JhcGh1bml0LmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGdjYy9jb25m aWcvYWFyY2g2NC9hYXJjaDY0LmMgICAgICAgfCAgIDIgKy0KIGdjYy9jb25maWcvYWFyY2g2 NC9hYXJjaDY0LmggICAgICAgfCAgIDIgKy0KIGdjYy9jb25maWcvYWxwaGEvYWxwaGEuYyAg ICAgICAgICAgfCAgMTIgKy0KIGdjYy9jb25maWcvYWxwaGEvZWxmLmggICAgICAgICAgICAg fCAgIDQgKy0KIGdjYy9jb25maWcvYXJjL2FyYy5jICAgICAgICAgICAgICAgfCAgIDIgKy0K IGdjYy9jb25maWcvYXJtL2FvdXQuaCAgICAgICAgICAgICAgfCAgIDIgKy0KIGdjYy9jb25m aWcvYXJtL2FybS5jICAgICAgICAgICAgICAgfCAgMTQgKy0KIGdjYy9jb25maWcvYXJtL2Fy bS5oICAgICAgICAgICAgICAgfCAgIDIgKy0KIGdjYy9jb25maWcvYXJtL3Vua25vd24tZWxm LmggICAgICAgfCAgIDQgKy0KIGdjYy9jb25maWcvYXZyL2F2ci5jICAgICAgICAgICAgICAg fCAgMTIgKy0KIGdjYy9jb25maWcvYmZpbi9iZmluLmggICAgICAgICAgICAgfCAgIDIgKy0K IGdjYy9jb25maWcvYzZ4L2M2eC5jICAgICAgICAgICAgICAgfCAgIDQgKy0KIGdjYy9jb25m aWcvYzZ4L2M2eC5oICAgICAgICAgICAgICAgfCAgIDQgKy0KIGdjYy9jb25maWcvY3NreS9j c2t5LmMgICAgICAgICAgICAgfCAgIDIgKy0KIGdjYy9jb25maWcvZGFyd2luLmMgICAgICAg ICAgICAgICAgfCAgNjYgKysrKystLS0tLQogZ2NjL2NvbmZpZy9mcnYvZnJ2LmMgICAgICAg ICAgICAgICB8ICAgNCArLQogZ2NjL2NvbmZpZy9mcnYvZnJ2LmggICAgICAgICAgICAgICB8 ICAgMiArLQogZ2NjL2NvbmZpZy9mdDMyL2Z0MzIuaCAgICAgICAgICAgICB8ICAgNiArLQog Z2NjL2NvbmZpZy9pMzg2L2N5Z21pbmcuaCAgICAgICAgICB8ICAgMiArLQogZ2NjL2NvbmZp Zy9pMzg2L2Rhcndpbi5oICAgICAgICAgICB8ICAgMiArLQogZ2NjL2NvbmZpZy9pMzg2L2kz ODYuYyAgICAgICAgICAgICB8ICAgNiArLQogZ2NjL2NvbmZpZy9pMzg2L3NvbDIuaCAgICAg ICAgICAgICB8ICAgNiArLQogZ2NjL2NvbmZpZy9pMzg2L3dpbm50LmMgICAgICAgICAgICB8 ICAgMiArLQogZ2NjL2NvbmZpZy9pYTY0L2lhNjQuYyAgICAgICAgICAgICB8ICAgNCArLQog Z2NjL2NvbmZpZy9pYTY0L3N5c3Y0LmggICAgICAgICAgICB8ICAgNCArLQogZ2NjL2NvbmZp Zy9sbTMyL2xtMzIuaCAgICAgICAgICAgICB8ICAgOCArLQogZ2NjL2NvbmZpZy9tMzJyL20z MnIuaCAgICAgICAgICAgICB8ICAgMiArLQogZ2NjL2NvbmZpZy9tY29yZS9tY29yZS1lbGYu aCAgICAgICB8ICAgNCArLQogZ2NjL2NvbmZpZy9taWNyb2JsYXplL21pY3JvYmxhemUuYyB8 ICAgNiArLQogZ2NjL2NvbmZpZy9taWNyb2JsYXplL21pY3JvYmxhemUuaCB8ICAgOCArLQog Z2NjL2NvbmZpZy9taXBzL21pcHMuYyAgICAgICAgICAgICB8ICAgMiArLQogZ2NjL2NvbmZp Zy9tbWl4L21taXguYyAgICAgICAgICAgICB8ICAgNiArLQogZ2NjL2NvbmZpZy9tc3A0MzAv bXNwNDMwLmMgICAgICAgICB8ICAgOCArLQogZ2NjL2NvbmZpZy9uaW9zMi9uaW9zMi5oICAg ICAgICAgICB8ICAgNCArLQogZ2NjL2NvbmZpZy9wYS9wYS5jICAgICAgICAgICAgICAgICB8 ICAzNCArKy0tLQogZ2NjL2NvbmZpZy9wZHAxMS9wZHAxMS5jICAgICAgICAgICB8ICAgNiAr LQogZ2NjL2NvbmZpZy9wcnUvcHJ1LmggICAgICAgICAgICAgICB8ICAgMiArLQogZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi5jICAgICAgICAgICB8ICAgNCArLQogZ2NjL2NvbmZpZy9ybDc4 L3JsNzguYyAgICAgICAgICAgICB8ICAxMiArLQogZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAw LmMgICAgICAgICB8ICAyNCArKy0tCiBnY2MvY29uZmlnL3JzNjAwMC9zeXN2NC5oICAgICAg ICAgIHwgICAyICstCiBnY2MvY29uZmlnL3J4L3J4LmMgICAgICAgICAgICAgICAgIHwgIDEy ICstCiBnY2MvY29uZmlnL3MzOTAvczM5MC5jICAgICAgICAgICAgIHwgICAyICstCiBnY2Mv Y29uZmlnL3NoL3NoLmMgICAgICAgICAgICAgICAgIHwgICAyICstCiBnY2MvY29uZmlnL3Nw YXJjL3NvbDIuaCAgICAgICAgICAgIHwgICA2ICstCiBnY2MvY29uZmlnL3NwYXJjL3NwYXJj LmMgICAgICAgICAgIHwgICAyICstCiBnY2MvY29uZmlnL3RpbGVneC90aWxlZ3guaCAgICAg ICAgIHwgICAyICstCiBnY2MvY29uZmlnL3RpbGVwcm8vdGlsZXByby5oICAgICAgIHwgICAy ICstCiBnY2MvY29uZmlnL3Y4NTAvdjg1MC5jICAgICAgICAgICAgIHwgIDEwICstCiBnY2Mv Y29uZmlnL3Zpc2l1bS92aXNpdW0uaCAgICAgICAgIHwgICA0ICstCiBnY2MvZGJ4b3V0LmMg ICAgICAgICAgICAgICAgICAgICAgIHwgIDIwICstLQogZ2NjL2RvYy90bS50ZXhpICAgICAg ICAgICAgICAgICAgICB8ICAxNCArLQogZ2NjL2RvYy90bS50ZXhpLmluICAgICAgICAgICAg ICAgICB8ICAxNCArLQogZ2NjL2R3YXJmMm91dC5jICAgICAgICAgICAgICAgICAgICB8ICA1 NiArKysrLS0tLQogZ2NjL2R3YXJmMm91dC5oICAgICAgICAgICAgICAgICAgICB8ICAgNCAr LQogZ2NjL2V4Y2VwdC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogZ2NjL2Zp bmFsLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNCArKy0tCiBnY2MvZ2djLWNvbW1v bi5jICAgICAgICAgICAgICAgICAgIHwgICA3ICsKIGdjYy9sYW5naG9va3MuYyAgICAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KIGdjYy9vdXRwdXQuaCAgICAgICAgICAgICAgICAgICAg ICAgfCAgOTMgKysrKysrKysrKy0tLQogZ2NjL3J1bi1ydGwtcGFzc2VzLmMgICAgICAgICAg ICAgICB8ICAgMiArLQogZ2NjL3Rhcmdob29rcy5jICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQogZ2NjL3RvcGxldi5jICAgICAgICAgICAgICAgICAgICAgICB8ICAzOCArKystLS0K IGdjYy92YXJhc20uYyAgICAgICAgICAgICAgICAgICAgICAgfCAyMDEgKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0KIGdjYy92bXNkYmdvdXQuYyAgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIDY2IGZpbGVzIGNoYW5nZWQsIDQyNiBpbnNlcnRpb25zKCspLCA0MTUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2NjL2NncmFwaHVuaXQuYyBiL2djYy9jZ3JhcGh1 bml0LmMKaW5kZXggNTVjYjAzNDcxNDkuLjc3M2NhNGZiMjdkIDEwMDY0NAotLS0gYS9nY2Mv Y2dyYXBodW5pdC5jCisrKyBiL2djYy9jZ3JhcGh1bml0LmMKQEAgLTIzMDksNyArMjMwOSw3 IEBAIHN5bWJvbF90YWJsZTo6Y29tcGlsZSAodm9pZCkKICAgdGltZXZhcl9wb3AgKFRWX0NH UkFQSE9QVCk7CiAKICAgLyogT3V0cHV0IGV2ZXJ5dGhpbmcuICAqLwotICBzd2l0Y2hfdG9f c2VjdGlvbiAodGV4dF9zZWN0aW9uKTsKKyAgc3dpdGNoX3RvX3NlY3Rpb24gKGNhc20tPnNl Yy50ZXh0KTsKICAgKCpkZWJ1Z19ob29rcy0+YXNzZW1ibHlfc3RhcnQpICgpOwogICBpZiAo IXF1aWV0X2ZsYWcpCiAgICAgZnByaW50ZiAoc3RkZXJyLCAiQXNzZW1ibGluZyBmdW5jdGlv bnM6XG4iKTsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmMgYi9n Y2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5jCmluZGV4IDM2NTE5Y2NjNWE1Li45NTk0OWM4 ZDA0OSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuYworKysgYi9n Y2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5jCkBAIC0yNTczNyw3ICsyNTczNyw3IEBAIGFh cmNoNjRfc2xzX2VtaXRfYmxyX2Z1bmN0aW9uX3RodW5rcyAoRklMRSAqb3V0X2ZpbGUpCiAg ICAgIHdvdWxkIGhhcHBlbiBpbiBhIGRpZmZlcmVudCBzZWN0aW9uIC0tIGxlYXZpbmcgYW4g dW5tYXRjaGVkCiAgICAgIGAuY2ZpX3N0YXJ0cHJvY2AgaW4gdGhlIGNvbGQgdGV4dCBzZWN0 aW9uIGFuZCBhbiB1bm1hdGNoZWQgYC5jZmlfZW5kcHJvY2AKICAgICAgaW4gdGhlIHN0YW5k YXJkIHRleHQgc2VjdGlvbi4gICovCi0gIHNlY3Rpb24gKnNhdmVfdGV4dF9zZWN0aW9uID0g aW5fc2VjdGlvbjsKKyAgc2VjdGlvbiAqc2F2ZV90ZXh0X3NlY3Rpb24gPSBjYXNtLT5pbl9z ZWN0aW9uOwogICBzd2l0Y2hfdG9fc2VjdGlvbiAoZnVuY3Rpb25fc2VjdGlvbiAoY3VycmVu dF9mdW5jdGlvbl9kZWNsKSk7CiAgIGZvciAoaW50IHJlZ251bSA9IDA7IHJlZ251bSA8IDMw OyArK3JlZ251bSkKICAgICB7CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFy Y2g2NC5oIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuaAppbmRleCBhNWJhNmMyNDAz Ny4uM2VkMmQ1NDA3OGUgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0 LmgKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuaApAQCAtMTEyMyw3ICsxMTIz LDcgQEAgdHlwZWRlZiBzdHJ1Y3QKIAogLyogUHV0IHRyYW1wb2xpbmVzIGluIHRoZSB0ZXh0 IHNlY3Rpb24gc28gdGhhdCBtYXBwaW5nIHN5bWJvbHMgd29yawogICAgY29ycmVjdGx5LiAg Ki8KLSNkZWZpbmUgVFJBTVBPTElORV9TRUNUSU9OIHRleHRfc2VjdGlvbgorI2RlZmluZSBU UkFNUE9MSU5FX1NFQ1RJT04gY2FzbS0+c2VjLnRleHQKIAogLyogVG8gc3RhcnQgd2l0aC4g ICovCiAjZGVmaW5lIEJSQU5DSF9DT1NUKFNQRUVEX1AsIFBSRURJQ1RBQkxFX1ApIFwKZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvYWxwaGEvYWxwaGEuYyBiL2djYy9jb25maWcvYWxwaGEv YWxwaGEuYwppbmRleCBjNzAyZTY4M2MzMS4uNjI3YTQyZDRlZTMgMTAwNjQ0Ci0tLSBhL2dj Yy9jb25maWcvYWxwaGEvYWxwaGEuYworKysgYi9nY2MvY29uZmlnL2FscGhhL2FscGhhLmMK QEAgLTgwNTUsMTMgKzgwNTUsMTMgQEAgYWxwaGFfc3RhcnRfZnVuY3Rpb24gKEZJTEUgKmZp bGUsIGNvbnN0IGNoYXIgKmZubmFtZSwKIAogI2lmZGVmIFRBUkdFVF9WTVNfQ1JBU0hfREVC VUcKICAgLyogU3VwcG9ydCBvZiBtaW5pbWFsIHRyYWNlYmFjayBpbmZvLiAgKi8KLSAgc3dp dGNoX3RvX3NlY3Rpb24gKHJlYWRvbmx5X2RhdGFfc2VjdGlvbik7CisgIHN3aXRjaF90b19z ZWN0aW9uIChjYXNtLT5zZWMucmVhZG9ubHlfZGF0YSk7CiAgIGZwcmludGYgKGZpbGUsICJc dC5hbGlnbiAzXG4iKTsKICAgYXNzZW1ibGVfbmFtZSAoZmlsZSwgZm5uYW1lKTsgZnB1dHMg KCIuLm5hOlxuIiwgZmlsZSk7CiAgIGZwdXRzICgiXHQuYXNjaWkgXCIiLCBmaWxlKTsKICAg YXNzZW1ibGVfbmFtZSAoZmlsZSwgZm5uYW1lKTsKICAgZnB1dHMgKCJcXDBcIlxuIiwgZmls ZSk7Ci0gIHN3aXRjaF90b19zZWN0aW9uICh0ZXh0X3NlY3Rpb24pOworICBzd2l0Y2hfdG9f c2VjdGlvbiAoY2FzbS0+c2VjLnRleHQpOwogI2VuZGlmCiAjZW5kaWYgLyogVEFSR0VUX0FC SV9PUEVOX1ZNUyAqLwogfQpAQCAtOTQ0Niw3ICs5NDQ2LDcgQEAgYWxwaGFfZWxmX3NlbGVj dF9ydHhfc2VjdGlvbiAobWFjaGluZV9tb2RlIG1vZGUsIHJ0eCB4LAogewogICBpZiAoVEFS R0VUX1NNQUxMX0RBVEEgJiYgR0VUX01PREVfU0laRSAobW9kZSkgPD0gZ19zd2l0Y2hfdmFs dWUpCiAgICAgLyogPz8/IENvbnNpZGVyIHVzaW5nIG1lcmdlYWJsZSBzZGF0YSBzZWN0aW9u cy4gICovCi0gICAgcmV0dXJuIHNkYXRhX3NlY3Rpb247CisgICAgcmV0dXJuIGNhc20tPnNl Yy5zZGF0YTsKICAgZWxzZQogICAgIHJldHVybiBkZWZhdWx0X2VsZl9zZWxlY3RfcnR4X3Nl Y3Rpb24gKG1vZGUsIHgsIGFsaWduKTsKIH0KQEAgLTk2MTMsNyArOTYxMyw3IEBAIGFscGhh X3dyaXRlX2xpbmthZ2UgKEZJTEUgKnN0cmVhbSwgY29uc3QgY2hhciAqZnVubmFtZSkKIHsK ICAgZnByaW50ZiAoc3RyZWFtLCAiXHQubGlua1xuIik7CiAgIGZwcmludGYgKHN0cmVhbSwg Ilx0LmFsaWduIDNcbiIpOwotICBpbl9zZWN0aW9uID0gTlVMTDsKKyAgY2FzbS0+aW5fc2Vj dGlvbiA9IE5VTEw7CiAKICNpZmRlZiBUQVJHRVRfVk1TX0NSQVNIX0RFQlVHCiAgIGZwdXRz ICgiXHQubmFtZSAiLCBzdHJlYW0pOwpAQCAtOTY2NSw3ICs5NjY1LDcgQEAgdm1zX2FzbV9u YW1lZF9zZWN0aW9uIChjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCiBz dGF0aWMgdm9pZAogdm1zX2FzbV9vdXRfY29uc3RydWN0b3IgKHJ0eCBzeW1ib2wsIGludCBw cmlvcml0eSBBVFRSSUJVVEVfVU5VU0VEKQogewotICBzd2l0Y2hfdG9fc2VjdGlvbiAoY3Rv cnNfc2VjdGlvbik7CisgIHN3aXRjaF90b19zZWN0aW9uIChjYXNtLT5zZWMuY3RvcnMpOwog ICBhc3NlbWJsZV9hbGlnbiAoQklUU19QRVJfV09SRCk7CiAgIGFzc2VtYmxlX2ludGVnZXIg KHN5bWJvbCwgVU5JVFNfUEVSX1dPUkQsIEJJVFNfUEVSX1dPUkQsIDEpOwogfQpAQCAtOTY3 Myw3ICs5NjczLDcgQEAgdm1zX2FzbV9vdXRfY29uc3RydWN0b3IgKHJ0eCBzeW1ib2wsIGlu dCBwcmlvcml0eSBBVFRSSUJVVEVfVU5VU0VEKQogc3RhdGljIHZvaWQKIHZtc19hc21fb3V0 X2Rlc3RydWN0b3IgKHJ0eCBzeW1ib2wsIGludCBwcmlvcml0eSBBVFRSSUJVVEVfVU5VU0VE KQogewotICBzd2l0Y2hfdG9fc2VjdGlvbiAoZHRvcnNfc2VjdGlvbik7CisgIHN3aXRjaF90 b19zZWN0aW9uIChjYXNtLT5zZWMuZHRvcnMpOwogICBhc3NlbWJsZV9hbGlnbiAoQklUU19Q RVJfV09SRCk7CiAgIGFzc2VtYmxlX2ludGVnZXIgKHN5bWJvbCwgVU5JVFNfUEVSX1dPUkQs IEJJVFNfUEVSX1dPUkQsIDEpOwogfQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hbHBoYS9l bGYuaCBiL2djYy9jb25maWcvYWxwaGEvZWxmLmgKaW5kZXggYjczNWYyNzliMzAuLjVhMzRi Y2NjY2FkIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FscGhhL2VsZi5oCisrKyBiL2djYy9j b25maWcvYWxwaGEvZWxmLmgKQEAgLTQ2LDkgKzQ2LDkgQEAgYWxvbmcgd2l0aCBHQ0M7IHNl ZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKICNkZWZpbmUgQVNNX09VVFBVVF9B TElHTkVEX0xPQ0FMKEZJTEUsIE5BTUUsIFNJWkUsIEFMSUdOKQkJXAogZG8gewkJCQkJCQkJ CVwKICAgaWYgKChTSVpFKSA8PSAodW5zaWduZWQgSE9TVF9XSURFX0lOVCkgZ19zd2l0Y2hf dmFsdWUpCQlcCi0gICAgc3dpdGNoX3RvX3NlY3Rpb24gKHNic3Nfc2VjdGlvbik7CQkJCQlc CisgICAgc3dpdGNoX3RvX3NlY3Rpb24gKGNhc20tPnNlYy5zYnNzKTsJCQkJCVwKICAgZWxz ZQkJCQkJCQkJCVwKLSAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoYnNzX3NlY3Rpb24pOwkJCQkJ XAorICAgIHN3aXRjaF90b19zZWN0aW9uIChjYXNtLT5zZWMuYnNzKTsJCQkJCVwKICAgQVNN X09VVFBVVF9UWVBFX0RJUkVDVElWRSAoRklMRSwgTkFNRSwgIm9iamVjdCIpOwkJCVwKICAg aWYgKCFmbGFnX2luaGliaXRfc2l6ZV9kaXJlY3RpdmUpCQkJCQlcCiAgICAgQVNNX09VVFBV VF9TSVpFX0RJUkVDVElWRSAoRklMRSwgTkFNRSwgU0laRSk7CQkJXApkaWZmIC0tZ2l0IGEv Z2NjL2NvbmZpZy9hcmMvYXJjLmMgYi9nY2MvY29uZmlnL2FyYy9hcmMuYwppbmRleCA5Mjc5 N2RiOTZiNy4uYjQ5ZTk4YzIxNTcgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYXJjL2FyYy5j CisrKyBiL2djYy9jb25maWcvYXJjL2FyYy5jCkBAIC04ODMyLDcgKzg4MzIsNyBAQCBhcmNf YXNtX291dHB1dF9hbGlnbmVkX2RlY2xfbG9jYWwgKEZJTEUgKiBzdHJlYW0sIHRyZWUgZGVj bCwgY29uc3QgY2hhciAqIG5hbWUsCiAgICAgc3dpdGNoX3RvX3NlY3Rpb24gKGdldF9uYW1l ZF9zZWN0aW9uIChOVUxMLCAiLnNic3MiLCAwKSk7CiAgIC8qICAgIG5hbWVkX3NlY3Rpb24g KDAsIi5zYnNzIiwwKTsgKi8KICAgZWxzZQotICAgIHN3aXRjaF90b19zZWN0aW9uIChic3Nf c2VjdGlvbik7CisgICAgc3dpdGNoX3RvX3NlY3Rpb24gKGNhc20tPnNlYy5ic3MpOwogCiAg IGlmIChnbG9iYWxpemVfcCkKICAgICAoKnRhcmdldG0uYXNtX291dC5nbG9iYWxpemVfbGFi ZWwpIChzdHJlYW0sIG5hbWUpOwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vYW91dC5o IGIvZ2NjL2NvbmZpZy9hcm0vYW91dC5oCmluZGV4IDI1YTI4MTJhNjYzLi4wMTc0M2JiMDQw ZSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hcm0vYW91dC5oCisrKyBiL2djYy9jb25maWcv YXJtL2FvdXQuaApAQCAtMjg4LDcgKzI4OCw3IEBACiAjZGVmaW5lIEFTTV9PVVRQVVRfQUxJ R05FRF9MT0NBTChTVFJFQU0sIE5BTUUsIFNJWkUsIEFMSUdOKQkJXAogICBkbwkJCQkJCQkJ CVwKICAgICB7CQkJCQkJCQkJXAotICAgICAgc3dpdGNoX3RvX3NlY3Rpb24gKGJzc19zZWN0 aW9uKTsJCQkJCVwKKyAgICAgIHN3aXRjaF90b19zZWN0aW9uIChjYXNtLT5zZWMuYnNzKTsJ CQkJCVwKICAgICAgIEFTTV9PVVRQVVRfQUxJR04gKFNUUkVBTSwgZmxvb3JfbG9nMiAoQUxJ R04gLyBCSVRTX1BFUl9VTklUKSk7CVwKICAgICAgIEFTTV9PVVRQVVRfTEFCRUwgKFNUUkVB TSwgTkFNRSk7CQkJCQlcCiAgICAgICBmcHJpbnRmIChTVFJFQU0sICJcdC5zcGFjZVx0JWRc biIsIChpbnQpKFNJWkUpKTsJCQlcCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS9hcm0u YyBiL2djYy9jb25maWcvYXJtL2FybS5jCmluZGV4IDFhN2I0N2QyMzZlLi5jY2Q1YmUzMGUw NyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hcm0vYXJtLmMKKysrIGIvZ2NjL2NvbmZpZy9h cm0vYXJtLmMKQEAgLTE3MjU0LDcgKzE3MjU0LDcgQEAgZ2V0X2p1bXBfdGFibGVfc2l6ZSAo cnR4X2p1bXBfdGFibGVfZGF0YSAqaW5zbikKIHsKICAgLyogQUREUl9WRUNzIG9ubHkgdGFr ZSByb29tIGlmIHJlYWQtb25seSBkYXRhIGRvZXMgaW50byB0aGUgdGV4dAogICAgICBzZWN0 aW9uLiAgKi8KLSAgaWYgKEpVTVBfVEFCTEVTX0lOX1RFWFRfU0VDVElPTiB8fCByZWFkb25s eV9kYXRhX3NlY3Rpb24gPT0gdGV4dF9zZWN0aW9uKQorICBpZiAoSlVNUF9UQUJMRVNfSU5f VEVYVF9TRUNUSU9OIHx8IGNhc20tPnNlYy5yZWFkb25seV9kYXRhID09IGNhc20tPnNlYy50 ZXh0KQogICAgIHsKICAgICAgIHJ0eCBib2R5ID0gUEFUVEVSTiAoaW5zbik7CiAgICAgICBp bnQgZWx0ID0gR0VUX0NPREUgKGJvZHkpID09IEFERFJfRElGRl9WRUMgPyAxIDogMDsKQEAg LTI0NjYyLDkgKzI0NjYyLDkgQEAgYXJtX2VsZl9hc21fY2R0b3IgKHJ0eCBzeW1ib2wsIGlu dCBwcmlvcml0eSwgYm9vbCBpc19jdG9yKQogICAgICAgcyA9IGdldF9zZWN0aW9uIChidWYs IFNFQ1RJT05fV1JJVEUgfCBTRUNUSU9OX05PVFlQRSwgTlVMTF9UUkVFKTsKICAgICB9CiAg IGVsc2UgaWYgKGlzX2N0b3IpCi0gICAgcyA9IGN0b3JzX3NlY3Rpb247CisgICAgcyA9IGNh c20tPnNlYy5jdG9yczsKICAgZWxzZQotICAgIHMgPSBkdG9yc19zZWN0aW9uOworICAgIHMg PSBjYXNtLT5zZWMuZHRvcnM7CiAKICAgc3dpdGNoX3RvX3NlY3Rpb24gKHMpOwogICBhc3Nl bWJsZV9hbGlnbiAoUE9JTlRFUl9TSVpFKTsKQEAgLTI3OTMwLDcgKzI3OTMwLDcgQEAgdGh1 bWJfY2FsbF92aWFfcmVnIChydHggcmVnKQogICAvKiBJZiB3ZSBhcmUgaW4gdGhlIG5vcm1h bCB0ZXh0IHNlY3Rpb24gd2UgY2FuIHVzZSBhIHNpbmdsZSBpbnN0YW5jZQogICAgICBwZXIg Y29tcGlsYXRpb24gdW5pdC4gIElmIHdlIGFyZSBkb2luZyBmdW5jdGlvbiBzZWN0aW9ucywg dGhlbiB3ZSBuZWVkCiAgICAgIGFuIGVudHJ5IHBlciBzZWN0aW9uLCBzaW5jZSB3ZSBjYW4n dCByZWx5IG9uIHJlYWNoYWJpbGl0eS4gICovCi0gIGlmIChpbl9zZWN0aW9uID09IHRleHRf c2VjdGlvbikKKyAgaWYgKGNhc20tPmluX3NlY3Rpb24gPT0gY2FzbS0+c2VjLnRleHQpCiAg ICAgewogICAgICAgdGh1bWJfY2FsbF9yZWdfbmVlZGVkID0gMTsKIApAQCAtMjgzMjIsNyAr MjgzMjIsNyBAQCBhcm1fZmlsZV9lbmQgKHZvaWQpCiAgIGlmICghIHRodW1iX2NhbGxfcmVn X25lZWRlZCkKICAgICByZXR1cm47CiAKLSAgc3dpdGNoX3RvX3NlY3Rpb24gKHRleHRfc2Vj dGlvbik7CisgIHN3aXRjaF90b19zZWN0aW9uIChjYXNtLT5zZWMudGV4dCk7CiAgIGFzbV9m cHJpbnRmIChhc21fb3V0X2ZpbGUsICJcdC5jb2RlIDE2XG4iKTsKICAgQVNNX09VVFBVVF9B TElHTiAoYXNtX291dF9maWxlLCAxKTsKIApAQCAtMjk3NzIsMTMgKzI5NzcyLDEzIEBAIHN0 YXRpYyB2b2lkCiBhcm1fYXNtX2luaXRfc2VjdGlvbnMgKHZvaWQpCiB7CiAjaWYgQVJNX1VO V0lORF9JTkZPCi0gIGV4Y2VwdGlvbl9zZWN0aW9uID0gZ2V0X3VubmFtZWRfc2VjdGlvbiAo MCwgb3V0cHV0X3NlY3Rpb25fYXNtX29wLAorICBjYXNtLT5zZWMuZXhjZXB0aW9uID0gZ2V0 X3VubmFtZWRfc2VjdGlvbiAoMCwgb3V0cHV0X3NlY3Rpb25fYXNtX29wLAogCQkJCQkgICAi XHQuaGFuZGxlcmRhdGEiKTsKICNlbmRpZiAvKiBBUk1fVU5XSU5EX0lORk8gKi8KIAogI2lm ZGVmIE9CSkVDVF9GT1JNQVRfRUxGCiAgIGlmICh0YXJnZXRfcHVyZV9jb2RlKQotICAgIHRl eHRfc2VjdGlvbi0+dW5uYW1lZC5kYXRhID0gIlx0LnNlY3Rpb24gLnRleHQsXCIweDIwMDAw MDA2XCIsJXByb2diaXRzIjsKKyAgICBjYXNtLT5zZWMudGV4dC0+dW5uYW1lZC5kYXRhID0g Ilx0LnNlY3Rpb24gLnRleHQsXCIweDIwMDAwMDA2XCIsJXByb2diaXRzIjsKICNlbmRpZgog fQogCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS9hcm0uaCBiL2djYy9jb25maWcvYXJt L2FybS5oCmluZGV4IDAxNTI5OWMxNTM0Li44NDViOTY1Zjc1ZiAxMDA2NDQKLS0tIGEvZ2Nj L2NvbmZpZy9hcm0vYXJtLmgKKysrIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLmgKQEAgLTE2MTMs NyArMTYxMyw3IEBAIG1hY2hpbmVfZnVuY3Rpb247CiAjZGVmaW5lIEFSTV9HRV9CSVRTX1JF QUQgKGFybV9nZV9iaXRzX2FjY2VzcyAoKSkKIAogLyogQXMgaW4gdGhlIG1hY2hpbmVfZnVu Y3Rpb24sIGEgZ2xvYmFsIHNldCBvZiBjYWxsLXZpYSBsYWJlbHMsIGZvciBjb2RlIAotICAg dGhhdCBpcyBpbiB0ZXh0X3NlY3Rpb24uICAqLworICAgdGhhdCBpcyBpbiBjYXNtLT5zZWMu dGV4dC4gICovCiBleHRlcm4gR1RZKCgpKSBydHggdGh1bWJfY2FsbF92aWFfbGFiZWxbMTRd OwogCiAvKiBUaGUgbnVtYmVyIG9mIHBvdGVudGlhbCB3YXlzIG9mIGFzc2lnbmluZyB0byBh IGNvLXByb2Nlc3Nvci4gICovCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS91bmtub3du LWVsZi5oIGIvZ2NjL2NvbmZpZy9hcm0vdW5rbm93bi1lbGYuaAppbmRleCBjY2E2ZjBlY2U1 NC4uNmFiYTUyMjg0YzMgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYXJtL3Vua25vd24tZWxm LmgKKysrIGIvZ2NjL2NvbmZpZy9hcm0vdW5rbm93bi1lbGYuaApAQCAtNjEsNyArNjEsNyBA QAogICAgICAgaWYgKElOX05BTUVEX1NFQ1RJT05fUCAoREVDTCkpCQkJCQlcCiAJc3dpdGNo X3RvX3NlY3Rpb24gKGdldF9uYW1lZF9zZWN0aW9uIChERUNMLCBOVUxMLCAwKSk7CQlcCiAg ICAgICBlbHNlCQkJCQkJCQlcCi0Jc3dpdGNoX3RvX3NlY3Rpb24gKGJzc19zZWN0aW9uKTsJ CQkJXAorCXN3aXRjaF90b19zZWN0aW9uIChjYXNtLT5zZWMuYnNzKTsJCQkJXAogICAgICAg CQkJCQkJCQkJXAogICAgICAgQVNNX09VVFBVVF9BTElHTiAoRklMRSwgZmxvb3JfbG9nMiAo QUxJR04gLyBCSVRTX1BFUl9VTklUKSk7CVwKIAkJCQkJCQkJCVwKQEAgLTc4LDcgKzc4LDcg QEAKICAgICAgIGlmICgoREVDTCkgIT0gTlVMTCAmJiBJTl9OQU1FRF9TRUNUSU9OX1AgKERF Q0wpKQkJCVwKIAlzd2l0Y2hfdG9fc2VjdGlvbiAoZ2V0X25hbWVkX3NlY3Rpb24gKERFQ0ws IE5VTEwsIDApKTsJCVwKICAgICAgIGVsc2UJCQkJCQkJCVwKLQlzd2l0Y2hfdG9fc2VjdGlv biAoYnNzX3NlY3Rpb24pOwkJCQlcCisJc3dpdGNoX3RvX3NlY3Rpb24gKGNhc20tPnNlYy5i c3MpOwkJCQlcCiAJCQkJCQkJCQlcCiAgICAgICBBU01fT1VUUFVUX0FMSUdOIChGSUxFLCBm bG9vcl9sb2cyIChBTElHTiAvIEJJVFNfUEVSX1VOSVQpKTsJXAogICAgICAgQVNNX09VVFBV VF9MQUJFTCAoRklMRSwgTkFNRSk7CQkJCQlcCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2F2 ci9hdnIuYyBiL2djYy9jb25maWcvYXZyL2F2ci5jCmluZGV4IDIwMDcwMWE1ODNjLi5jODll N2I2MTBlYSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hdnIvYXZyLmMKKysrIGIvZ2NjL2Nv bmZpZy9hdnIvYXZyLmMKQEAgLTEwMDg1LDcgKzEwMDg1LDcgQEAgYXZyX2FzbV9hc21fb3V0 cHV0X2FsaWduZWRfYnNzIChGSUxFICpmaWxlLCB0cmVlIGRlY2wsIGNvbnN0IGNoYXIgKm5h bWUsCiB9CiAKIAotLyogVW5uYW1lZCBzZWN0aW9uIGNhbGxiYWNrIGZvciBkYXRhX3NlY3Rp b24KKy8qIFVubmFtZWQgc2VjdGlvbiBjYWxsYmFjayBmb3IgY2FzbS0+c2VjLmRhdGEKICAg IHRvIHRyYWNrIG5lZWQgb2YgX19kb19jb3B5X2RhdGEuICAqLwogCiBzdGF0aWMgdm9pZApA QCAtMTAwOTgsNyArMTAwOTgsNyBAQCBhdnJfb3V0cHV0X2RhdGFfc2VjdGlvbl9hc21fb3Ag KGNvbnN0IHZvaWQgKmRhdGEpCiB9CiAKIAotLyogVW5uYW1lZCBzZWN0aW9uIGNhbGxiYWNr IGZvciBic3Nfc2VjdGlvbgorLyogVW5uYW1lZCBzZWN0aW9uIGNhbGxiYWNrIGZvciBjYXNt LT5zZWMuYnNzCiAgICB0byB0cmFjayBuZWVkIG9mIF9fZG9fY2xlYXJfYnNzLiAgKi8KIAog c3RhdGljIHZvaWQKQEAgLTEwMTMzLDkgKzEwMTMzLDkgQEAgYXZyX2FzbV9pbml0X3NlY3Rp b25zICh2b2lkKQogI2lmIGRlZmluZWQgSEFWRV9MRF9BVlJfQVZSWE1FR0EzX1JPREFUQV9J Tl9GTEFTSAogICBpZiAoYXZyX2FyY2gtPmZsYXNoX3BtX29mZnNldCA9PSAwKQogI2VuZGlm Ci0gICAgcmVhZG9ubHlfZGF0YV9zZWN0aW9uLT51bm5hbWVkLmNhbGxiYWNrID0gYXZyX291 dHB1dF9kYXRhX3NlY3Rpb25fYXNtX29wOwotICBkYXRhX3NlY3Rpb24tPnVubmFtZWQuY2Fs bGJhY2sgPSBhdnJfb3V0cHV0X2RhdGFfc2VjdGlvbl9hc21fb3A7Ci0gIGJzc19zZWN0aW9u LT51bm5hbWVkLmNhbGxiYWNrID0gYXZyX291dHB1dF9ic3Nfc2VjdGlvbl9hc21fb3A7Cisg ICAgY2FzbS0+c2VjLnJlYWRvbmx5X2RhdGEtPnVubmFtZWQuY2FsbGJhY2sgPSBhdnJfb3V0 cHV0X2RhdGFfc2VjdGlvbl9hc21fb3A7CisgIGNhc20tPnNlYy5kYXRhLT51bm5hbWVkLmNh bGxiYWNrID0gYXZyX291dHB1dF9kYXRhX3NlY3Rpb25fYXNtX29wOworICBjYXNtLT5zZWMu YnNzLT51bm5hbWVkLmNhbGxiYWNrID0gYXZyX291dHB1dF9ic3Nfc2VjdGlvbl9hc21fb3A7 CiB9CiAKIApAQCAtMTI1NjcsNyArMTI1NjcsNyBAQCBhdnJfb3V0cHV0X2FkZHJfdmVjIChy dHhfaW5zbiAqbGFibCwgcnR4IHRhYmxlKQogICAvLyBTd2l0Y2ggYmFjayB0byBvcmlnaW5h bCBzZWN0aW9uLiAgQXMgd2UgY2xvYmJlcmVkIHRoZSBzZWN0aW9uIGFib3ZlLAogICAvLyBm b3JnZXQgdGhlIGN1cnJlbnQgc2VjdGlvbiBiZWZvcmUgc3dpdGNoaW5nIGJhY2suCiAKLSAg aW5fc2VjdGlvbiA9IE5VTEw7CisgIGNhc20tPmluX3NlY3Rpb24gPSBOVUxMOwogICBzd2l0 Y2hfdG9fc2VjdGlvbiAoY3VycmVudF9mdW5jdGlvbl9zZWN0aW9uICgpKTsKIH0KIApkaWZm IC0tZ2l0IGEvZ2NjL2NvbmZpZy9iZmluL2JmaW4uaCBiL2djYy9jb25maWcvYmZpbi9iZmlu LmgKaW5kZXggODIzY2EyZDcxMjQuLjRhYWVlNDJlMGU2IDEwMDY0NAotLS0gYS9nY2MvY29u ZmlnL2JmaW4vYmZpbi5oCisrKyBiL2djYy9jb25maWcvYmZpbi9iZmluLmgKQEAgLTEwNTMs NyArMTA1Myw3IEBAIGRvIHsgY2hhciBfX2J1ZlsyNTZdOwkJCQkJXAogCiAjZGVmaW5lIEFT TV9PVVRQVVRfTE9DQUwoRklMRSwgTkFNRSwgU0laRSwgUk9VTkRFRCkgCVwKIGRvIHsgCQkJ CQkJXAotICAgIHN3aXRjaF90b19zZWN0aW9uIChkYXRhX3NlY3Rpb24pOwkJCQlcCisgICAg c3dpdGNoX3RvX3NlY3Rpb24gKGNhc20tPnNlYy5kYXRhKTsJCQkJXAogICAgIGlmICgoU0la RSkgPj0gKHVuc2lnbmVkIGludCkgNCApIEFTTV9PVVRQVVRfQUxJR04oRklMRSwyKTsJXAog ICAgIEFTTV9PVVRQVVRfU0laRV9ESVJFQ1RJVkUgKEZJTEUsIE5BTUUsIFNJWkUpOwkJXAog ICAgIEFTTV9PVVRQVVRfTEFCRUwgKEZJTEUsIE5BTUUpOwkJCQlcCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL2M2eC9jNnguYyBiL2djYy9jb25maWcvYzZ4L2M2eC5jCmluZGV4IGNlNDk0 OTUxNmNmLi5iMmI5Njg1YmFjOCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9jNngvYzZ4LmMK KysrIGIvZ2NjL2NvbmZpZy9jNngvYzZ4LmMKQEAgLTg5MCw3ICs4OTAsNyBAQCBjNnhfc2Vs ZWN0X3J0eF9zZWN0aW9uIChtYWNoaW5lX21vZGUgbW9kZSwgcnR4IHgsCiAgIGlmIChjNnhf c2RhdGFfbW9kZSA9PSBDNlhfU0RBVEFfQUxMCiAgICAgICB8fCAoYzZ4X3NkYXRhX21vZGUg IT0gQzZYX1NEQVRBX05PTkUgJiYgR0VUX01PREVfU0laRSAobW9kZSkgPD0gOCkpCiAgICAg LyogPz8/IENvbnNpZGVyIHVzaW5nIG1lcmdlYWJsZSBzZGF0YSBzZWN0aW9ucy4gICovCi0g ICAgcmV0dXJuIHNkYXRhX3NlY3Rpb247CisgICAgcmV0dXJuIGNhc20tPnNlYy5zZGF0YTsK ICAgZWxzZQogICAgIHJldHVybiBkZWZhdWx0X2VsZl9zZWxlY3RfcnR4X3NlY3Rpb24gKG1v ZGUsIHgsIGFsaWduKTsKIH0KQEAgLTU0NzMsNyArNTQ3Myw3IEBAIGM2eF9hc21fZW1pdF9l eGNlcHRfcGVyc29uYWxpdHkgKHJ0eCBwZXJzb25hbGl0eSkKIHN0YXRpYyB2b2lkCiBjNnhf YXNtX2luaXRfc2VjdGlvbnMgKHZvaWQpCiB7Ci0gIGV4Y2VwdGlvbl9zZWN0aW9uID0gZ2V0 X3VubmFtZWRfc2VjdGlvbiAoMCwgb3V0cHV0X3NlY3Rpb25fYXNtX29wLAorICBjYXNtLT5z ZWMuZXhjZXB0aW9uID0gZ2V0X3VubmFtZWRfc2VjdGlvbiAoMCwgb3V0cHV0X3NlY3Rpb25f YXNtX29wLAogCQkJCQkgICAiXHQuaGFuZGxlcmRhdGEiKTsKIH0KIApkaWZmIC0tZ2l0IGEv Z2NjL2NvbmZpZy9jNngvYzZ4LmggYi9nY2MvY29uZmlnL2M2eC9jNnguaAppbmRleCA5ZTBh MjBkMjBjYi4uNGI5ZWM1MWJkNzIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYzZ4L2M2eC5o CisrKyBiL2djYy9jb25maWcvYzZ4L2M2eC5oCkBAIC01NTcsOSArNTU3LDkgQEAgZG8geyBj aGFyIF9fYnVmWzI1Nl07CQkJCQlcCiAjZGVmaW5lIEFTTV9PVVRQVVRfQUxJR05FRF9ERUNM X0xPQ0FMKEZJTEUsIERFQ0wsIE5BTUUsIFNJWkUsIEFMSUdOKQlcCiBkbyB7CQkJCQkJCQkJ XAogICBpZiAoUExBQ0VfSU5fU0RBVEFfUCAoREVDTCkpCQkJCQkJXAotICAgIHN3aXRjaF90 b19zZWN0aW9uIChzYnNzX3NlY3Rpb24pOwkJCQkJXAorICAgIHN3aXRjaF90b19zZWN0aW9u IChjYXNtLT5zZWMuc2Jzcyk7CQkJCQlcCiAgIGVsc2UJCQkJCQkJCQlcCi0gICAgc3dpdGNo X3RvX3NlY3Rpb24gKGJzc19zZWN0aW9uKTsJCQkJCVwKKyAgICBzd2l0Y2hfdG9fc2VjdGlv biAoY2FzbS0+c2VjLmJzcyk7CQkJCQlcCiAgIEFTTV9PVVRQVVRfVFlQRV9ESVJFQ1RJVkUg KEZJTEUsIE5BTUUsICJvYmplY3QiKTsJCQlcCiAgIGlmICghZmxhZ19pbmhpYml0X3NpemVf ZGlyZWN0aXZlKQkJCQkJXAogICAgIEFTTV9PVVRQVVRfU0laRV9ESVJFQ1RJVkUgKEZJTEUs IE5BTUUsIFNJWkUpOwkJCVwKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvY3NreS9jc2t5LmMg Yi9nY2MvY29uZmlnL2Nza3kvY3NreS5jCmluZGV4IGU1NTgyMWZlMmVlLi4zZTg2MDdjMWNj YyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9jc2t5L2Nza3kuYworKysgYi9nY2MvY29uZmln L2Nza3kvY3NreS5jCkBAIC05NTgsNyArOTU4LDcgQEAgZ2V0X2Nza3lfanVtcF90YWJsZV9z aXplIChydHggaW5zbikKIHsKICAgLyogQUREUl9WRUNzIG9ubHkgdGFrZSByb29tIGlmIHJl YWQtb25seSBkYXRhIGRvZXMgaW50byB0aGUgdGV4dAogICAgICBzZWN0aW9uLiAgKi8KLSAg aWYgKEpVTVBfVEFCTEVTX0lOX1RFWFRfU0VDVElPTiB8fCByZWFkb25seV9kYXRhX3NlY3Rp b24gPT0gdGV4dF9zZWN0aW9uKQorICBpZiAoSlVNUF9UQUJMRVNfSU5fVEVYVF9TRUNUSU9O IHx8IGNhc20tPnNlYy5yZWFkb25seV9kYXRhID09IGNhc20tPnNlYy50ZXh0KQogICAgIHsK ICAgICAgIHJ0eCBib2R5ID0gUEFUVEVSTiAoaW5zbik7CiAgICAgICBpbnQgZWx0ID0gR0VU X0NPREUgKGJvZHkpID09IEFERFJfRElGRl9WRUMgPyAxIDogMDsKZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcvZGFyd2luLmMgYi9nY2MvY29uZmlnL2Rhcndpbi5jCmluZGV4IGFiY2JkYjFl MDI4Li41MmRmYTYzMDQ4ZSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9kYXJ3aW4uYworKysg Yi9nY2MvY29uZmlnL2Rhcndpbi5jCkBAIC0xNDMsNyArMTQzLDcgQEAgb3V0cHV0X29iamNf c2VjdGlvbl9hc21fb3AgKGNvbnN0IHZvaWQgKmRpcmVjdGl2ZSkKICAgICAgc2VjdGlvbiBp cyByZXF1ZXN0ZWQuICAqLwogICBpZiAoZGFyd2luX3N5bWJvbF9zdHVicyAmJiAhIGJlZW5f aGVyZSkKICAgICB7Ci0gICAgICBzZWN0aW9uICpzYXZlZF9pbl9zZWN0aW9uID0gaW5fc2Vj dGlvbjsKKyAgICAgIHNlY3Rpb24gKnNhdmVkX2luX3NlY3Rpb24gPSBjYXNtLT5pbl9zZWN0 aW9uOwogICAgICAgc3RhdGljIGNvbnN0IGVudW0gZGFyd2luX3NlY3Rpb25fZW51bSB0b21h cmtbXSA9CiAJewogCSAgLyogd3JpdHRlbiwgY29sZCAtPiBob3QgKi8KQEAgLTIzNiwxNCAr MjM2LDE0IEBAIGRhcndpbl9pbml0X3NlY3Rpb25zICh2b2lkKQogI2luY2x1ZGUgImNvbmZp Zy9kYXJ3aW4tc2VjdGlvbnMuZGVmIgogI3VuZGVmIERFRl9TRUNUSU9OCiAKLSAgcmVhZG9u bHlfZGF0YV9zZWN0aW9uID0gZGFyd2luX3NlY3Rpb25zW2NvbnN0X3NlY3Rpb25dOwotICBl eGNlcHRpb25fc2VjdGlvbiA9IGRhcndpbl9zZWN0aW9uc1tkYXJ3aW5fZXhjZXB0aW9uX3Nl Y3Rpb25dOwotICBlaF9mcmFtZV9zZWN0aW9uID0gZGFyd2luX3NlY3Rpb25zW2Rhcndpbl9l aF9mcmFtZV9zZWN0aW9uXTsKKyAgY2FzbS0+c2VjLnJlYWRvbmx5X2RhdGEgPSBkYXJ3aW5f c2VjdGlvbnNbY29uc3Rfc2VjdGlvbl07CisgIGNhc20tPnNlYy5leGNlcHRpb24gPSBkYXJ3 aW5fc2VjdGlvbnNbZGFyd2luX2V4Y2VwdGlvbl9zZWN0aW9uXTsKKyAgY2FzbS0+c2VjLmVo X2ZyYW1lID0gZGFyd2luX3NlY3Rpb25zW2Rhcndpbl9laF9mcmFtZV9zZWN0aW9uXTsKIAog ICAvKiBJZiBvdXIgbGlua2VyIGlzIG5ldyBlbm91Z2ggdG8gY29hbGVzY2Ugd2VhayBzeW1i b2xzLCB0aGVuIHdlCiAgICAgIGNhbiBqdXN0IHB1dCBwaWNiYXNlX3RodW5rcyBpbnRvIHRo ZSB0ZXh0IHNlY3Rpb24uICAqLwogICBpZiAoISBsZF91c2VzX2NvYWxfc2VjdHMgKQotICAg IGRhcndpbl9zZWN0aW9uc1twaWNiYXNlX3RodW5rX3NlY3Rpb25dID0gdGV4dF9zZWN0aW9u OworICAgIGRhcndpbl9zZWN0aW9uc1twaWNiYXNlX3RodW5rX3NlY3Rpb25dID0gY2FzbS0+ c2VjLnRleHQ7CiB9CiAKIGludApAQCAtMTA3MSw3ICsxMDcxLDcgQEAgbWFjaG9waWNfb3V0 cHV0X2RhdGFfc2VjdGlvbl9pbmRpcmVjdGlvbiAobWFjaG9waWNfaW5kaXJlY3Rpb24gKipz bG90LAogICAvKiBUaGUgbmFtZSBvZiB0aGUgaW5kaXJlY3Rpb24gc3ltYm9sLiAgKi8KICAg Y29uc3QgY2hhciAqcHRyX25hbWUgPSBwLT5wdHJfbmFtZTsKIAotICBzd2l0Y2hfdG9fc2Vj dGlvbiAoZGF0YV9zZWN0aW9uKTsKKyAgc3dpdGNoX3RvX3NlY3Rpb24gKGNhc20tPnNlYy5k YXRhKTsKICAgYXNzZW1ibGVfYWxpZ24gKEdFVF9NT0RFX0FMSUdOTUVOVCAoUG1vZGUpKTsK ICAgYXNzZW1ibGVfbGFiZWwgKG91dF9maWxlLCBwdHJfbmFtZSk7CiAgIGFzc2VtYmxlX2lu dGVnZXIgKGdlbl9ydHhfU1lNQk9MX1JFRiAoUG1vZGUsIHN5bV9uYW1lKSwKQEAgLTEzNDAs NyArMTM0MCw3IEBAIGRhcndpbl9tZXJnZWFibGVfc3RyaW5nX3NlY3Rpb24gKHRyZWUgZXhw LAogICAgICAgJiYgVFJFRV9TVFJJTkdfTEVOR1RIIChleHApID09IDApCiAgICAgcmV0dXJu IGRhcndpbl9zZWN0aW9uc1t6b2JqX2NvbnN0X3NlY3Rpb25dOwogCi0gIHJldHVybiByZWFk b25seV9kYXRhX3NlY3Rpb247CisgIHJldHVybiBjYXNtLT5zZWMucmVhZG9ubHlfZGF0YTsK IH0KIAogI2lmbmRlZiBIQVZFX0dBU19MSVRFUkFMMTYKQEAgLTEzNjIsNyArMTM2Miw3IEBA IGRhcndpbl9tZXJnZWFibGVfY29uc3RhbnRfc2VjdGlvbiAodHJlZSBleHAsCiAgICAgICB8 fCBhbGlnbiA8IDgKICAgICAgIHx8IGFsaWduID4gMjU2CiAgICAgICB8fCAoYWxpZ24gJiAo YWxpZ24gLTEpKSAhPSAwKQotICAgIHJldHVybiByZWFkb25seV9kYXRhX3NlY3Rpb247Cisg ICAgcmV0dXJuIGNhc20tPnNlYy5yZWFkb25seV9kYXRhOwogCiAgIC8qIFRoaXMgd2lsbCBJ Q0UgaWYgdGhlIG1vZGUgaXMgbm90IGEgY29uc3RhbnQgc2l6ZSwgYnV0IHRoYXQgaXMgcmVh c29uYWJsZSwKICAgICAgc2luY2Ugb25lIGNhbm5vdCBwdXQgYSB2YXJpYWJsZS1zaXplZCB0 aGluZyBpbnRvIGEgY29uc3RhbnQgc2VjdGlvbiwgd2UKQEAgLTEzNzAsMTIgKzEzNzAsMTIg QEAgZGFyd2luX21lcmdlYWJsZV9jb25zdGFudF9zZWN0aW9uICh0cmVlIGV4cCwKICAgY29u c3QgdW5zaWduZWQgaW50IG1vZGVzaXplID0gR0VUX01PREVfQklUU0laRSAobW9kZSkudG9f Y29uc3RhbnQgKCk7CiAKICAgaWYgKG1vZGVzaXplID4gYWxpZ24pCi0gICAgcmV0dXJuIHJl YWRvbmx5X2RhdGFfc2VjdGlvbjsKKyAgICByZXR1cm4gY2FzbS0+c2VjLnJlYWRvbmx5X2Rh dGE7CiAKICAgdHJlZSBzaXplID0gVFlQRV9TSVpFX1VOSVQgKFRSRUVfVFlQRSAoZXhwKSk7 CiAKICAgaWYgKFRSRUVfQ09ERSAoc2l6ZSkgIT0gSU5URUdFUl9DU1QpCi0gICAgcmV0dXJu IHJlYWRvbmx5X2RhdGFfc2VjdGlvbjsKKyAgICByZXR1cm4gY2FzbS0+c2VjLnJlYWRvbmx5 X2RhdGE7CiAKICAgdW5zaWduZWQgaXNpemUgPSBUUkVFX0lOVF9DU1RfTE9XIChzaXplKTsK ICAgaWYgKGlzaXplID09IDQpCkBAIC0xMzg3LDcgKzEzODcsNyBAQCBkYXJ3aW5fbWVyZ2Vh YmxlX2NvbnN0YW50X3NlY3Rpb24gKHRyZWUgZXhwLAogCSAgICYmIGlzaXplID09IDE2KQog ICAgIHJldHVybiBkYXJ3aW5fc2VjdGlvbnNbbGl0ZXJhbDE2X3NlY3Rpb25dOwogCi0gIHJl dHVybiByZWFkb25seV9kYXRhX3NlY3Rpb247CisgIHJldHVybiBjYXNtLT5zZWMucmVhZG9u bHlfZGF0YTsKIH0KIAogc2VjdGlvbiAqCkBAIC0xNDQzLDcgKzE0NDMsNyBAQCBkYXJ3aW5f b2JqYzJfc2VjdGlvbiAodHJlZSBkZWNsIEFUVFJJQlVURV9VTlVTRUQsIHRyZWUgbWV0YSwg c2VjdGlvbiAqIGJhc2UpCiAKICAgb2JqY19tZXRhZGF0YV9zZWVuID0gMTsKIAotICBpZiAo YmFzZSA9PSBkYXRhX3NlY3Rpb24pCisgIGlmIChiYXNlID09IGNhc20tPnNlYy5kYXRhKQog ICAgIGJhc2UgPSBkYXJ3aW5fc2VjdGlvbnNbb2JqYzJfbWV0YWRhdGFfc2VjdGlvbl07CiAK ICAgLyogTW9zdCBvZiB0aGUgT0JKQzIgTUVUQS1kYXRhIGVuZCB1cCBpbiB0aGUgYmFzZSBz ZWN0aW9uLCBzbyBjaGVjayBpdApAQCAtMTQ5NCw3ICsxNDk0LDcgQEAgZGFyd2luX29iamMy X3NlY3Rpb24gKHRyZWUgZGVjbCBBVFRSSUJVVEVfVU5VU0VELCB0cmVlIG1ldGEsIHNlY3Rp b24gKiBiYXNlKQogCiAgIGVsc2UgaWYgKHN0YXJ0c3dpdGggKHAsICJWMl9FSFRZIikpCiAg ICAgcmV0dXJuIGxkX3VzZXNfY29hbF9zZWN0cyA/IGRhcndpbl9zZWN0aW9uc1tkYXRhX2Nv YWxfc2VjdGlvbl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZGF0YV9zZWN0 aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjYXNtLT5zZWMuZGF0YTsK IAogICBlbHNlIGlmIChzdGFydHN3aXRoIChwLCAiVjJfQ1NUUiIpKQogICAgIHJldHVybiBk YXJ3aW5fc2VjdGlvbnNbb2JqYzJfY29uc3RhbnRfc3RyaW5nX29iamVjdF9zZWN0aW9uXTsK QEAgLTE2ODAsNyArMTY4MCw3IEBAIG1hY2hvcGljX3NlbGVjdF9zZWN0aW9uICh0cmVlIGRl Y2wsCiAgICAgICBlbHNlIGlmIChybykKIAliYXNlX3NlY3Rpb24gPSBkYXJ3aW5fc2VjdGlv bnNbY29uc3RfZGF0YV9zZWN0aW9uXTsKICAgICAgIGVsc2UKLQliYXNlX3NlY3Rpb24gPSBk YXRhX3NlY3Rpb247CisJYmFzZV9zZWN0aW9uID0gY2FzbS0+c2VjLmRhdGE7CiAgICAgICBi cmVhazsKICAgICBjYXNlIFNFQ0NBVF9CU1M6CiAgICAgY2FzZSBTRUNDQVRfU0JTUzoKQEAg LTE2OTAsMTEgKzE2OTAsMTEgQEAgbWFjaG9waWNfc2VsZWN0X3NlY3Rpb24gKHRyZWUgZGVj bCwKICAgICAgIGVsc2UKIAl7CiAJICBpZiAoIVRSRUVfUFVCTElDIChkZWNsKSkKLQkgICAg YmFzZV9zZWN0aW9uID0gbGNvbW1fc2VjdGlvbjsKLQkgIGVsc2UgaWYgKGJzc19ub3N3aXRj aF9zZWN0aW9uKQotCSAgICBiYXNlX3NlY3Rpb24gPSBic3Nfbm9zd2l0Y2hfc2VjdGlvbjsK KwkgICAgYmFzZV9zZWN0aW9uID0gY2FzbS0+c2VjLmxjb21tOworCSAgZWxzZSBpZiAoY2Fz bS0+c2VjLmJzc19ub3N3aXRjaCkKKwkgICAgYmFzZV9zZWN0aW9uID0gY2FzbS0+c2VjLmJz c19ub3N3aXRjaDsKIAkgIGVsc2UKLQkgICAgYmFzZV9zZWN0aW9uID0gZGF0YV9zZWN0aW9u OworCSAgICBiYXNlX3NlY3Rpb24gPSBjYXNtLT5zZWMuZGF0YTsKIAl9CiAgICAgICBicmVh azsKIApAQCAtMjM2NSw4ICsyMzY1LDggQEAgZnByaW50ZiAoZmlsZSwgIiMgZGFkb246ICVz ICVzICglbGx1LCAldSkgbG9jYWwgJWQgd2VhayAlZCIKICAgICAgIC8qIENoZWNrIHRoYXQg d2UndmUgY29ycmVjdGx5IHBpY2tlZCB1cCB0aGUgemVyby1zaXplZCBpdGVtIGFuZCBwbGFj ZWQgaXQKICAgICAgICAgIHByb3Blcmx5LiAgKi8KICAgICAgIGdjY19hc3NlcnQgKCghREFS V0lOX1NFQ1RJT05fQU5DSE9SUyB8fCAhZmxhZ19zZWN0aW9uX2FuY2hvcnMpCi0JCSAgfHwg KGluX3NlY3Rpb24KLQkJICAgICAgJiYgKGluX3NlY3Rpb24tPmNvbW1vbi5mbGFncyAmIFNF Q1RJT05fTk9fQU5DSE9SKSkpOworCQkgIHx8IChjYXNtLT5pbl9zZWN0aW9uCisJCSAgICAg ICYmIChjYXNtLT5pbl9zZWN0aW9uLT5jb21tb24uZmxhZ3MgJiBTRUNUSU9OX05PX0FOQ0hP UikpKTsKICAgICB9CiAgIGVsc2UKICAgICBBU01fT1VUUFVUX0xBQkVMIChmaWxlLCB4bmFt ZSk7CkBAIC0yMzg2LDggKzIzODYsOCBAQCBkYXJ3aW5fYXNtX2RlY2xhcmVfY29uc3RhbnRf bmFtZSAoRklMRSAqZmlsZSwgY29uc3QgY2hhciAqbmFtZSwKICAgICAgIC8qIENoZWNrIHRo YXQgd2UndmUgY29ycmVjdGx5IHBpY2tlZCB1cCB0aGUgemVyby1zaXplZCBpdGVtIGFuZCBw bGFjZWQgaXQKICAgICAgICAgIHByb3Blcmx5LiAgKi8KICAgICAgIGdjY19hc3NlcnQgKCgh REFSV0lOX1NFQ1RJT05fQU5DSE9SUyB8fCAhZmxhZ19zZWN0aW9uX2FuY2hvcnMpCi0JCSAg fHwgKGluX3NlY3Rpb24KLQkJICAgICAgJiYgKGluX3NlY3Rpb24tPmNvbW1vbi5mbGFncyAm IFNFQ1RJT05fTk9fQU5DSE9SKSkpOworCQkgIHx8IChjYXNtLT5pbl9zZWN0aW9uCisJCSAg ICAgICYmIChjYXNtLT5pbl9zZWN0aW9uLT5jb21tb24uZmxhZ3MgJiBTRUNUSU9OX05PX0FO Q0hPUikpKTsKICAgICB9CiB9CiAKQEAgLTI0MjQsNyArMjQyNCw3IEBAIGRhcndpbl9lbWl0 X3dlYWtfb3JfY29tZGF0IChGSUxFICpmcCwgdHJlZSBkZWNsLCBjb25zdCBjaGFyICpuYW1l LAogCQkJCTogZGFyd2luX3NlY3Rpb25zW2NvbnN0X2RhdGFfc2VjdGlvbl0pOwogICBlbHNl CiAgICAgc3dpdGNoX3RvX3NlY3Rpb24gKHVzZV9jb2FsID8gZGFyd2luX3NlY3Rpb25zW2Rh dGFfY29hbF9zZWN0aW9uXQotCQkJCTogZGF0YV9zZWN0aW9uKTsKKwkJCQk6IGNhc20tPnNl Yy5kYXRhKTsKIAogICAvKiBUbyBiZSBjb25zaXN0ZW50LCB3ZSdsbCBhbGxvdyBkYXJ3aW5f YXNtX2RlY2xhcmVfb2JqZWN0X25hbWUgdG8gYXNzZW1ibGUKICAgICAgdGhlIGFsaWduIGlu Zm8gZm9yIHplcm8tc2l6ZWQgaXRlbXMuLi4gYnV0IGRvIGl0IGhlcmUgb3RoZXJ3aXNlLiAg Ki8KQEAgLTI0NDYsNyArMjQ0Niw3IEBAIGRhcndpbl9lbWl0X29iamNfemVyb2VkIChGSUxF ICpmcCwgdHJlZSBkZWNsLCBjb25zdCBjaGFyICpuYW1lLAogCQkJCSAgdW5zaWduZWQgSE9T VF9XSURFX0lOVCBzaXplLAogCQkJCSAgdW5zaWduZWQgaW50IGFsaWduLCB0cmVlIG1ldGEp CiB7Ci0gIHNlY3Rpb24gKm9jcyA9IGRhdGFfc2VjdGlvbjsKKyAgc2VjdGlvbiAqb2NzID0g Y2FzbS0+c2VjLmRhdGE7CiAKICAgaWYgKFRSRUVfUFVSUE9TRSAobWV0YSkgPT0gZ2V0X2lk ZW50aWZpZXIoIk9CSkMyTUVUQSIpKQogICAgIG9jcyA9IGRhcndpbl9vYmpjMl9zZWN0aW9u IChkZWNsLCBtZXRhLCBvY3MpOwpAQCAtMjQ4OCwxMyArMjQ4OCwxMyBAQCBkYXJ3aW5fZW1p dF9sb2NhbF9ic3MgKEZJTEUgKmZwLCB0cmVlIGRlY2wsIGNvbnN0IGNoYXIgKm5hbWUsCiAg ICAgICBpZiAoIXNpemUpCiAJewogCSAgZnB1dHMgKCJcdC5zZWN0aW9uXHRfX0RBVEEsX196 b2JqX2Jzc1xuIiwgZnApOwotCSAgaW5fc2VjdGlvbiA9IGRhcndpbl9zZWN0aW9uc1t6b2Jq X2Jzc19zZWN0aW9uXTsKKwkgIGNhc20tPmluX3NlY3Rpb24gPSBkYXJ3aW5fc2VjdGlvbnNb em9ial9ic3Nfc2VjdGlvbl07CiAJICBzaXplID0gMTsKIAl9CiAgICAgICBlbHNlCiAJewog CSAgZnB1dHMgKCJcdC5zdGF0aWNfZGF0YVxuIiwgZnApOwotCSAgaW5fc2VjdGlvbiA9IGRh cndpbl9zZWN0aW9uc1tzdGF0aWNfZGF0YV9zZWN0aW9uXTsKKwkgIGNhc20tPmluX3NlY3Rp b24gPSBkYXJ3aW5fc2VjdGlvbnNbc3RhdGljX2RhdGFfc2VjdGlvbl07CiAJfQogCiAgICAg ICBpZiAobDJhbGlnbikKQEAgLTI1MTIsNyArMjUxMiw3IEBAIGRhcndpbl9lbWl0X2xvY2Fs X2JzcyAoRklMRSAqZnAsIHRyZWUgZGVjbCwgY29uc3QgY2hhciAqbmFtZSwKICAgICAgIGNo YXIgc2VjbmFtWzY0XTsKICAgICAgIHNucHJpbnRmIChzZWNuYW0sIDY0LCAiX19EQVRBLF9f YnNzIik7CiAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MgPSBTRUNUSU9OX0JTU3xTRUNUSU9O X1dSSVRFfFNFQ1RJT05fTk9fQU5DSE9SOwotICAgICAgaW5fc2VjdGlvbiA9IGdldF9zZWN0 aW9uIChzZWNuYW0sIGZsYWdzLCBOVUxMKTsKKyAgICAgIGNhc20tPmluX3NlY3Rpb24gPSBn ZXRfc2VjdGlvbiAoc2VjbmFtLCBmbGFncywgTlVMTCk7CiAgICAgICBmcHJpbnRmIChmcCwg Ilx0Lnplcm9maWxsICVzLCIsIHNlY25hbSk7CiAgICAgICBhc3NlbWJsZV9uYW1lIChmcCwg bmFtZSk7CiAgICAgICBpZiAoIXNpemUpCkBAIC0yNTU5LDcgKzI1NTksNyBAQCBkYXJ3aW5f ZW1pdF9jb21tb24gKEZJTEUgKmZwLCBjb25zdCBjaGFyICpuYW1lLAogICBsMmFsaWduID0g Zmxvb3JfbG9nMiAoYWxpZ24pOwogICBnY2NfYXNzZXJ0IChsMmFsaWduIDw9IEwyX01BWF9P RklMRV9BTElHTk1FTlQpOwogCi0gIGluX3NlY3Rpb24gPSBjb21tX3NlY3Rpb247CisgIGNh c20tPmluX3NlY3Rpb24gPSBjYXNtLT5zZWMuY29tbTsKICAgLyogV2UgbXVzdG4ndCBhbGxv dyBtdWx0aXBsZSBwdWJsaWMgc3ltYm9scyB0byBzaGFyZSBhbiBhZGRyZXNzIHdoZW4gdXNp bmcKICAgICAgdGhlIG5vcm1hbCBPU1ggdG9vbGNoYWluLiAgKi8KICAgaWYgKCFzaXplKQpA QCAtMjU2Nyw3ICsyNTY3LDcgQEAgZGFyd2luX2VtaXRfY29tbW9uIChGSUxFICpmcCwgY29u c3QgY2hhciAqbmFtZSwKICAgICAgIC8qIFB1dCBhdCBsZWFzdCBvbmUgYnl0ZS4gICovCiAg ICAgICBzaXplID0gMTsKICAgICAgIC8qIFRoaXMgc2VjdGlvbiBjYW4gbm8gbG9uZ2VyIHBh cnRpY2lwYXRlIGluIHNlY3Rpb24gYW5jaG9yaW5nLiAgKi8KLSAgICAgIGNvbW1fc2VjdGlv bi0+Y29tbW9uLmZsYWdzIHw9IFNFQ1RJT05fTk9fQU5DSE9SOworICAgICAgY2FzbS0+c2Vj LmNvbW0tPmNvbW1vbi5mbGFncyB8PSBTRUNUSU9OX05PX0FOQ0hPUjsKICAgICB9CiAKICAg ZnB1dHMgKCJcdC5jb21tXHQiLCBmcCk7CkBAIC0yNjU2LDEzICsyNjU2LDEzIEBAIGZwcmlu dGYgKGZwLCAiIyBhbGJzczogJXMgKCVsbGQsJWQpIHJvICVkIGNzdCAlZCBzdGF0ICVkIGNv bSAlZCIKICAgICAgIGlmICghc2l6ZSkKIAl7CiAJICBmcHV0cyAoIlx0LnNlY3Rpb25cdF9f REFUQSxfX3pvYmpfZGF0YVxuIiwgZnApOwotCSAgaW5fc2VjdGlvbiA9IGRhcndpbl9zZWN0 aW9uc1t6b2JqX2RhdGFfc2VjdGlvbl07CisJICBjYXNtLT5pbl9zZWN0aW9uID0gZGFyd2lu X3NlY3Rpb25zW3pvYmpfZGF0YV9zZWN0aW9uXTsKIAkgIHNpemUgPSAxOwogCX0KICAgICAg IGVsc2UKIAl7CiAJICBmcHV0cyAoIlx0LmRhdGFcbiIsIGZwKTsKLQkgIGluX3NlY3Rpb24g PSBkYXRhX3NlY3Rpb247CisJICBjYXNtLT5pbl9zZWN0aW9uID0gY2FzbS0+c2VjLmRhdGE7 CiAJfQogCiAgICAgICBpZiAobDJhbGlnbikKQEAgLTI2NzcsNyArMjY3Nyw3IEBAIGZwcmlu dGYgKGZwLCAiIyBhbGJzczogJXMgKCVsbGQsJWQpIHJvICVkIGNzdCAlZCBzdGF0ICVkIGNv bSAlZCIKICAgICAgIHVuc2lnbmVkIGludCBmbGFncyA9IFNFQ1RJT05fQlNTfFNFQ1RJT05f V1JJVEV8U0VDVElPTl9OT19BTkNIT1I7CiAgICAgICBjaGFyIHNlY25hbVs2NF07CiAgICAg ICBzbnByaW50ZiAoc2VjbmFtLCA2NCwgIl9fREFUQSxfX2NvbW1vbiIpOwotICAgICAgaW5f c2VjdGlvbiA9IGdldF9zZWN0aW9uIChzZWNuYW0sIGZsYWdzLCBOVUxMKTsKKyAgICAgIGNh c20tPmluX3NlY3Rpb24gPSBnZXRfc2VjdGlvbiAoc2VjbmFtLCBmbGFncywgTlVMTCk7CiAg ICAgICBmcHJpbnRmIChmcCwgIlx0Lnplcm9maWxsICVzLCIsIHNlY25hbSk7CiAgICAgICBh c3NlbWJsZV9uYW1lIChmcCwgbmFtZSk7CiAgICAgICBpZiAoIXNpemUpCkBAIC0zODkzLDcg KzM4OTMsNyBAQCBkYXJ3aW5fZnVuY3Rpb25fc2VjdGlvbiAodHJlZSBkZWNsLCBlbnVtIG5v ZGVfZnJlcXVlbmN5IGZyZXEsCiAgIC8qIE90aGVyd2lzZSwgZGVmYXVsdCB0byB0aGUgJ25v cm1hbCcgbm9uLXJlb3JkZXJlZCBzZWN0aW9ucy4gICovCiBkZWZhdWx0X2Z1bmN0aW9uX3Nl Y3Rpb25zOgogICByZXR1cm4gKHVzZV9jb2FsKSA/IGRhcndpbl9zZWN0aW9uc1t0ZXh0X2Nv YWxfc2VjdGlvbl0KLQkJICAgIDogdGV4dF9zZWN0aW9uOworCQkgICAgOiBjYXNtLT5zZWMu dGV4dDsKIH0KIAogI2luY2x1ZGUgImd0LWRhcndpbi5oIgpkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9mcnYvZnJ2LmMgYi9nY2MvY29uZmlnL2Zydi9mcnYuYwppbmRleCBhN2Y3ZjA4NmQx Ny4uMDFjYjdkNWYzZmEgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvZnJ2L2Zydi5jCisrKyBi L2djYy9jb25maWcvZnJ2L2Zydi5jCkBAIC05Mzk1LDcgKzkzOTUsNyBAQCBmcnZfcnR4X2Nv c3RzIChydHggeCwKIHN0YXRpYyB2b2lkCiBmcnZfYXNtX291dF9jb25zdHJ1Y3RvciAocnR4 IHN5bWJvbCwgaW50IHByaW9yaXR5IEFUVFJJQlVURV9VTlVTRUQpCiB7Ci0gIHN3aXRjaF90 b19zZWN0aW9uIChjdG9yc19zZWN0aW9uKTsKKyAgc3dpdGNoX3RvX3NlY3Rpb24gKGNhc20t PnNlYy5jdG9ycyk7CiAgIGFzc2VtYmxlX2FsaWduIChQT0lOVEVSX1NJWkUpOwogICBpZiAo VEFSR0VUX0ZEUElDKQogICAgIHsKQEAgLTk0MTAsNyArOTQxMCw3IEBAIGZydl9hc21fb3V0 X2NvbnN0cnVjdG9yIChydHggc3ltYm9sLCBpbnQgcHJpb3JpdHkgQVRUUklCVVRFX1VOVVNF RCkKIHN0YXRpYyB2b2lkCiBmcnZfYXNtX291dF9kZXN0cnVjdG9yIChydHggc3ltYm9sLCBp bnQgcHJpb3JpdHkgQVRUUklCVVRFX1VOVVNFRCkKIHsKLSAgc3dpdGNoX3RvX3NlY3Rpb24g KGR0b3JzX3NlY3Rpb24pOworICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2VjLmR0b3Jz KTsKICAgYXNzZW1ibGVfYWxpZ24gKFBPSU5URVJfU0laRSk7CiAgIGlmIChUQVJHRVRfRkRQ SUMpCiAgICAgewpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9mcnYvZnJ2LmggYi9nY2MvY29u ZmlnL2Zydi9mcnYuaAppbmRleCA2NTA5MTk1MmViZC4uNmZkMDcyYzI1ZDggMTAwNjQ0Ci0t LSBhL2djYy9jb25maWcvZnJ2L2Zydi5oCisrKyBiL2djYy9jb25maWcvZnJ2L2Zydi5oCkBA IC0xNTQwLDcgKzE1NDAsNyBAQCBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAlcCiAgIGlmICgoU0laRSkg PiAwICYmIChTSVpFKSA8PSAodW5zaWduZWQgSE9TVF9XSURFX0lOVCkgZ19zd2l0Y2hfdmFs dWUpCVwKICAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoZ2V0X25hbWVkX3NlY3Rpb24gKE5VTEws ICIuc2JzcyIsIDApKTsgICAgICAgICAgIFwKICAgZWxzZSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCVwKLSAgICBz d2l0Y2hfdG9fc2VjdGlvbiAoYnNzX3NlY3Rpb24pOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAJXAorICAgIHN3aXRjaF90b19zZWN0aW9uIChjYXNtLT5zZWMuYnNzKTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCVwKICAgQVNNX09VVFBVVF9BTElH TiAoU1RSRUFNLCBmbG9vcl9sb2cyICgoQUxJR04pIC8gQklUU19QRVJfVU5JVCkpOyAgICAg CVwKICAgQVNNX0RFQ0xBUkVfT0JKRUNUX05BTUUgKFNUUkVBTSwgTkFNRSwgREVDTCk7ICAg ICAgICAgICAgICAgICAgICAgICAgCVwKICAgQVNNX09VVFBVVF9TS0lQIChTVFJFQU0sIChT SVpFKSA/IChTSVpFKSA6IDEpOyAgICAgICAgICAgICAgICAgICAgICAgCVwKZGlmZiAtLWdp dCBhL2djYy9jb25maWcvZnQzMi9mdDMyLmggYi9nY2MvY29uZmlnL2Z0MzIvZnQzMi5oCmlu ZGV4IGY4ZDA3NjNlMzk0Li44ZTJiMDY2N2I2NCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9m dDMyL2Z0MzIuaAorKysgYi9nY2MvY29uZmlnL2Z0MzIvZnQzMi5oCkBAIC00NzgsOSArNDc4 LDkgQEAgZXh0ZXJuIGludCBmdDMyX2lzX21lbV9wbShydHggbyk7CiAjZGVmaW5lIEFTTV9P VVRQVVRfU1lNQk9MX1JFRihzdHJlYW0sIHN5bSkgXAogICBkbyB7IFwKICAgICBhc3NlbWJs ZV9uYW1lIChzdHJlYW0sIFhTVFIgKHN5bSwgMCkpOyBcCi0gICAgaW50IHNlY3Rpb25fZGVi dWcgPSBpbl9zZWN0aW9uICYmIFwKLSAgICAgIChTRUNUSU9OX1NUWUxFIChpbl9zZWN0aW9u KSA9PSBTRUNUSU9OX05BTUVEKSAmJiBcCi0gICAgICAoaW5fc2VjdGlvbi0+bmFtZWQuY29t bW9uLmZsYWdzICYgU0VDVElPTl9ERUJVRyk7IFwKKyAgICBpbnQgc2VjdGlvbl9kZWJ1ZyA9 IGNhc20tPmluX3NlY3Rpb24gJiYgXAorICAgICAgKFNFQ1RJT05fU1RZTEUgKGNhc20tPmlu X3NlY3Rpb24pID09IFNFQ1RJT05fTkFNRUQpICYmIFwKKyAgICAgIChjYXNtLT5pbl9zZWN0 aW9uLT5uYW1lZC5jb21tb24uZmxhZ3MgJiBTRUNUSU9OX0RFQlVHKTsgXAogICAgIGlmICgh c2VjdGlvbl9kZWJ1ZyAmJiBTWU1CT0xfUkVGX0ZMQUdTIChzeW0pICYgMHgxMDAwKSBcCiAg ICAgICBhc21fZnByaW50ZiAoc3RyZWFtLCAiLTB4ODAwMDAwIik7IFwKICAgfSB3aGlsZSAo MCkKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9jeWdtaW5nLmggYi9nY2MvY29uZmln L2kzODYvY3lnbWluZy5oCmluZGV4IGRhODcyZDEwY2QzLi4yODI2ZDJjMzVjNiAxMDA2NDQK LS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2N5Z21pbmcuaAorKysgYi9nY2MvY29uZmlnL2kzODYv Y3lnbWluZy5oCkBAIC0xODcsNyArMTg3LDcgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUg ZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKIAwKICNkZWZpbmUgZHJlY3R2ZV9zZWN0aW9u KCkgXAogICAoZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQuc2VjdGlvbiAuZHJlY3R2ZVxu IiksIFwKLSAgIGluX3NlY3Rpb24gPSBOVUxMKQorICAgY2FzbS0+aW5fc2VjdGlvbiA9IE5V TEwpCiAKIC8qIE9sZGVyIHZlcnNpb25zIG9mIGdhcyBkb24ndCBoYW5kbGUgJ3InIGFzIGRh dGEuCiAgICBFeHBsaWNpdGx5IHNldCBkYXRhIGZsYWcgd2l0aCAnZCcuICAqLyAgCmRpZmYg LS1naXQgYS9nY2MvY29uZmlnL2kzODYvZGFyd2luLmggYi9nY2MvY29uZmlnL2kzODYvZGFy d2luLmgKaW5kZXggYzRhNmY0ZGZkYTcuLmQ0MDJhOWE4YjU1IDEwMDY0NAotLS0gYS9nY2Mv Y29uZmlnL2kzODYvZGFyd2luLmgKKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2Rhcndpbi5oCkBA IC0yMTYsNyArMjE2LDcgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5H My4gIElmIG5vdCBzZWUKICAgZG8gewkJCQkJCQkJICAgXAogICAgIGlmICgoTE9HKSAhPSAw KQkJCQkJCSAgIFwKICAgICAgIHsJCQkJCQkJCSAgIFwKLQlpZiAoaW5fc2VjdGlvbiA9PSB0 ZXh0X3NlY3Rpb24pCQkJCSAgIFwKKwlpZiAoY2FzbS0+aW5fc2VjdGlvbiA9PSBjYXNtLT5z ZWMudGV4dCkJCQkJICAgXAogCSAgZnByaW50ZiAoRklMRSwgIlx0JXMgJWQsMHg5MFxuIiwg QUxJR05fQVNNX09QLCAoTE9HKSk7ICAgXAogCWVsc2UJCQkJCQkJICAgXAogCSAgZnByaW50 ZiAoRklMRSwgIlx0JXMgJWRcbiIsIEFMSUdOX0FTTV9PUCwgKExPRykpOwkgICBcCmRpZmYg LS1naXQgYS9nY2MvY29uZmlnL2kzODYvaTM4Ni5jIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYu YwppbmRleCBhNWM0ZmE4NTdhNy4uNDgzNGMzNTNmYzMgMTAwNjQ0Ci0tLSBhL2djYy9jb25m aWcvaTM4Ni9pMzg2LmMKKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYuYwpAQCAtODY5LDcg Kzg2OSw3IEBAIHg4Nl9vdXRwdXRfYWxpZ25lZF9ic3MgKEZJTEUgKmZpbGUsIHRyZWUgZGVj bCwgY29uc3QgY2hhciAqbmFtZSwKICAgICAgICYmIHNpemUgPiAodW5zaWduZWQgaW50KWl4 ODZfc2VjdGlvbl90aHJlc2hvbGQpCiAgICAgc3dpdGNoX3RvX3NlY3Rpb24gKGdldF9uYW1l ZF9zZWN0aW9uIChkZWNsLCAiLmxic3MiLCAwKSk7CiAgIGVsc2UKLSAgICBzd2l0Y2hfdG9f c2VjdGlvbiAoYnNzX3NlY3Rpb24pOworICAgIHN3aXRjaF90b19zZWN0aW9uIChjYXNtLT5z ZWMuYnNzKTsKICAgQVNNX09VVFBVVF9BTElHTiAoZmlsZSwgZmxvb3JfbG9nMiAoYWxpZ24g LyBCSVRTX1BFUl9VTklUKSk7CiAjaWZkZWYgQVNNX0RFQ0xBUkVfT0JKRUNUX05BTUUKICAg bGFzdF9hc3NlbWJsZV92YXJpYWJsZV9kZWNsID0gZGVjbDsKQEAgLTU5NTQsNyArNTk1NCw3 IEBAIG91dHB1dF9pbmRpcmVjdF90aHVua19mdW5jdGlvbiAoZW51bSBpbmRpcmVjdF90aHVu a19wcmVmaXggbmVlZF9wcmVmaXgsCiAgICAgICB9CiAgICAgZWxzZQogICAgICAgewotCXN3 aXRjaF90b19zZWN0aW9uICh0ZXh0X3NlY3Rpb24pOworCXN3aXRjaF90b19zZWN0aW9uIChj YXNtLT5zZWMudGV4dCk7CiAJQVNNX09VVFBVVF9MQUJFTCAoYXNtX291dF9maWxlLCBuYW1l KTsKICAgICAgIH0KIApAQCAtNjA3NCw3ICs2MDc0LDcgQEAgaXg4Nl9jb2RlX2VuZCAodm9p ZCkKIAl9CiAgICAgICBlbHNlCiAJewotCSAgc3dpdGNoX3RvX3NlY3Rpb24gKHRleHRfc2Vj dGlvbik7CisJICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2VjLnRleHQpOwogCSAgQVNN X09VVFBVVF9MQUJFTCAoYXNtX291dF9maWxlLCBuYW1lKTsKIAl9CiAKZGlmZiAtLWdpdCBh L2djYy9jb25maWcvaTM4Ni9zb2wyLmggYi9nY2MvY29uZmlnL2kzODYvc29sMi5oCmluZGV4 IDI5YjM3YTE0M2Y1Li43Mjk3ZGIyYmI3MCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2 L3NvbDIuaAorKysgYi9nY2MvY29uZmlnL2kzODYvc29sMi5oCkBAIC0xOTUsOSArMTk1LDkg QEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUK ICAgZG8JCQkJCQkJCQlcCiAgICAgewkJCQkJCQkJCVwKICAgICAgIGlmIChUQVJHRVRfU1VO X1RMUwkJCQkJCVwKLQkgICYmIGluX3NlY3Rpb24JCQkJCQkJXAotCSAgJiYgKChpbl9zZWN0 aW9uLT5jb21tb24uZmxhZ3MgJiBTRUNUSU9OX1RMUykgPT0gU0VDVElPTl9UTFMpKQlcCi0J c3dpdGNoX3RvX3NlY3Rpb24gKGJzc19zZWN0aW9uKTsJCQkJXAorCSAgJiYgY2FzbS0+aW5f c2VjdGlvbgkJCQkJCQlcCisJICAmJiAoKGNhc20tPmluX3NlY3Rpb24tPmNvbW1vbi5mbGFn cyAmIFNFQ1RJT05fVExTKSA9PSBTRUNUSU9OX1RMUykpCVwKKwlzd2l0Y2hfdG9fc2VjdGlv biAoY2FzbS0+c2VjLmJzcyk7CQkJCVwKICAgICAgIHg4Nl9lbGZfYWxpZ25lZF9kZWNsX2Nv bW1vbiAoRklMRSwgREVDTCwgTkFNRSwgU0laRSwgQUxJR04pOwlcCiAgICAgfQkJCQkJCQkJ CVwKICAgd2hpbGUgICgwKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L3dpbm50LmMg Yi9nY2MvY29uZmlnL2kzODYvd2lubnQuYwppbmRleCA3YzBlYTRmNzMxYy4uYTI1NDEyZGRm MzAgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaTM4Ni93aW5udC5jCisrKyBiL2djYy9jb25m aWcvaTM4Ni93aW5udC5jCkBAIC0xMzQ3LDcgKzEzNDcsNyBAQCB2b2lkCiBpMzg2X3BlX3Nl aF9pbml0X3NlY3Rpb25zICh2b2lkKQogewogICBpZiAoVEFSR0VUX1NFSCkKLSAgICBleGNl cHRpb25fc2VjdGlvbiA9IGdldF91bm5hbWVkX3NlY3Rpb24gKDAsIG91dHB1dF9zZWN0aW9u X2FzbV9vcCwKKyAgICBjYXNtLT5zZWMuZXhjZXB0aW9uID0gZ2V0X3VubmFtZWRfc2VjdGlv biAoMCwgb3V0cHV0X3NlY3Rpb25fYXNtX29wLAogCQkJCQkgICAgICJcdC5zZWhfaGFuZGxl cmRhdGEiKTsKIH0KIAwKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaWE2NC9pYTY0LmMgYi9n Y2MvY29uZmlnL2lhNjQvaWE2NC5jCmluZGV4IGNkZjc4Y2RjNTE4Li5lZjk0ZDMzZWMyNyAx MDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pYTY0L2lhNjQuYworKysgYi9nY2MvY29uZmlnL2lh NjQvaWE2NC5jCkBAIC0xMDQwNiw3ICsxMDQwNiw3IEBAIGlhNjRfYXNtX2VtaXRfZXhjZXB0 X3BlcnNvbmFsaXR5IChydHggcGVyc29uYWxpdHkpCiBzdGF0aWMgdm9pZAogaWE2NF9hc21f aW5pdF9zZWN0aW9ucyAodm9pZCkKIHsKLSAgZXhjZXB0aW9uX3NlY3Rpb24gPSBnZXRfdW5u YW1lZF9zZWN0aW9uICgwLCBvdXRwdXRfc2VjdGlvbl9hc21fb3AsCisgIGNhc20tPnNlYy5l eGNlcHRpb24gPSBnZXRfdW5uYW1lZF9zZWN0aW9uICgwLCBvdXRwdXRfc2VjdGlvbl9hc21f b3AsCiAJCQkJCSAgICJcdC5oYW5kbGVyZGF0YSIpOwogfQogCkBAIC0xMDg1OCw3ICsxMDg1 OCw3IEBAIGlhNjRfc2VsZWN0X3J0eF9zZWN0aW9uIChtYWNoaW5lX21vZGUgbW9kZSwgcnR4 IHgsCiAgIGlmIChHRVRfTU9ERV9TSVpFIChtb2RlKSA+IDAKICAgICAgICYmIEdFVF9NT0RF X1NJWkUgKG1vZGUpIDw9IGlhNjRfc2VjdGlvbl90aHJlc2hvbGQKICAgICAgICYmICFUQVJH RVRfTk9fU0RBVEEpCi0gICAgcmV0dXJuIHNkYXRhX3NlY3Rpb247CisgICAgcmV0dXJuIGNh c20tPnNlYy5zZGF0YTsKICAgZWxzZQogICAgIHJldHVybiBkZWZhdWx0X2VsZl9zZWxlY3Rf cnR4X3NlY3Rpb24gKG1vZGUsIHgsIGFsaWduKTsKIH0KZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvaWE2NC9zeXN2NC5oIGIvZ2NjL2NvbmZpZy9pYTY0L3N5c3Y0LmgKaW5kZXggYTQxMzNk M2JlYWIuLmE2OGYyODA3NGZiIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2lhNjQvc3lzdjQu aAorKysgYi9nY2MvY29uZmlnL2lhNjQvc3lzdjQuaApAQCAtNjksOSArNjksOSBAQCBleHRl cm4gaW50IHNpemVfZGlyZWN0aXZlX291dHB1dDsKICNkZWZpbmUgQVNNX09VVFBVVF9BTElH TkVEX0RFQ0xfTE9DQUwoRklMRSwgREVDTCwgTkFNRSwgU0laRSwgQUxJR04pIFwKIGRvIHsJ CQkJCQkJCQlcCiAgIGlmICgoREVDTCkgJiYgc2RhdGFfc3ltYm9saWNfb3BlcmFuZCAoWEVY UCAoREVDTF9SVEwgKERFQ0wpLCAwKSwgUG1vZGUpKSBcCi0gICAgc3dpdGNoX3RvX3NlY3Rp b24gKHNic3Nfc2VjdGlvbik7CQkJCQlcCisgICAgc3dpdGNoX3RvX3NlY3Rpb24gKGNhc20t PnNlYy5zYnNzKTsJCQkJCVwKICAgZWxzZQkJCQkJCQkJCVwKLSAgICBzd2l0Y2hfdG9fc2Vj dGlvbiAoYnNzX3NlY3Rpb24pOwkJCQkJXAorICAgIHN3aXRjaF90b19zZWN0aW9uIChjYXNt LT5zZWMuYnNzKTsJCQkJCVwKICAgQVNNX09VVFBVVF9BTElHTiAoRklMRSwgZmxvb3JfbG9n MiAoKEFMSUdOKSAvIEJJVFNfUEVSX1VOSVQpKTsJXAogICBBU01fREVDTEFSRV9PQkpFQ1Rf TkFNRSAoRklMRSwgTkFNRSwgREVDTCk7CQkJCVwKICAgQVNNX09VVFBVVF9TS0lQIChGSUxF LCBTSVpFID8gU0laRSA6IDEpOwkJCQlcCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2xtMzIv bG0zMi5oIGIvZ2NjL2NvbmZpZy9sbTMyL2xtMzIuaAppbmRleCBhMTNjMGM1MGVlMS4uZDY2 NWMzOGYwZTMgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvbG0zMi9sbTMyLmgKKysrIGIvZ2Nj L2NvbmZpZy9sbTMyL2xtMzIuaApAQCAtMzg1LDkgKzM4NSw5IEBAIGVudW0gcmVnX2NsYXNz CiAjZGVmaW5lIEFTTV9PVVRQVVRfQUxJR05FRF9MT0NBTChGSUxFLCBOQU1FLCBTSVpFLCBB TElHTikJCVwKIGRvIHsJCQkJCQkJCQlcCiAgIGlmICgoU0laRSkgPD0gKHVuc2lnbmVkIEhP U1RfV0lERV9JTlQpIGdfc3dpdGNoX3ZhbHVlKQkJXAotICAgIHN3aXRjaF90b19zZWN0aW9u IChzYnNzX3NlY3Rpb24pOwkJCQkJXAorICAgIHN3aXRjaF90b19zZWN0aW9uIChjYXNtLT5z ZWMuc2Jzcyk7CQkJCQlcCiAgIGVsc2UJCQkJCQkJCQlcCi0gICAgc3dpdGNoX3RvX3NlY3Rp b24gKGJzc19zZWN0aW9uKTsJCQkJCVwKKyAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2FzbS0+ c2VjLmJzcyk7CQkJCQlcCiAgIEFTTV9PVVRQVVRfVFlQRV9ESVJFQ1RJVkUgKEZJTEUsIE5B TUUsICJvYmplY3QiKTsJCQlcCiAgIGlmICghZmxhZ19pbmhpYml0X3NpemVfZGlyZWN0aXZl KQkJCQkJXAogICAgIEFTTV9PVVRQVVRfU0laRV9ESVJFQ1RJVkUgKEZJTEUsIE5BTUUsIFNJ WkUpOwkJCVwKQEAgLTQwMyw3ICs0MDMsNyBAQCBkbyAJCQkJCQkJCQlcCiB7CQkJCQkJCQkJ XAogICBpZiAoKFNJWkUpIDw9ICh1bnNpZ25lZCBIT1NUX1dJREVfSU5UKSBnX3N3aXRjaF92 YWx1ZSkJCVwKICAgICB7CQkJCQkJCQkJXAotICAgICAgc3dpdGNoX3RvX3NlY3Rpb24gKHNi c3Nfc2VjdGlvbik7CQkJCQlcCisgICAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2Vj LnNic3MpOwkJCQkJXAogICAgICAgKCp0YXJnZXRtLmFzbV9vdXQuZ2xvYmFsaXplX2xhYmVs KSAoRklMRSwgTkFNRSk7CQkJXAogICAgICAgQVNNX09VVFBVVF9UWVBFX0RJUkVDVElWRSAo RklMRSwgTkFNRSwgIm9iamVjdCIpOwkJCVwKICAgICAgIGlmICghZmxhZ19pbmhpYml0X3Np emVfZGlyZWN0aXZlKQkJCQkJXApAQCAtNDE0LDcgKzQxNCw3IEBAIGRvIAkJCQkJCQkJCVwK ICAgICB9CQkJCQkJCQkJXAogICBlbHNlCQkJCQkJCQkJXAogICAgIHsJCQkJCQkJCQlcCi0g ICAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoYnNzX3NlY3Rpb24pOwkJCQkJXAorICAgICAgc3dp dGNoX3RvX3NlY3Rpb24gKGNhc20tPnNlYy5ic3MpOwkJCQkJXAogICAgICAgZnByaW50ZiAo KEZJTEUpLCAiJXMiLCBDT01NT05fQVNNX09QKTsJCQkJXAogICAgICAgYXNzZW1ibGVfbmFt ZSAoKEZJTEUpLCAoTkFNRSkpOwkJCQkJXAogICAgICAgZnByaW50ZiAoKEZJTEUpLCAiLCIg SE9TVF9XSURFX0lOVF9QUklOVF9VTlNJR05FRCIsJXVcbiIsICAgICAgICAgIFwKZGlmZiAt LWdpdCBhL2djYy9jb25maWcvbTMyci9tMzJyLmggYi9nY2MvY29uZmlnL20zMnIvbTMyci5o CmluZGV4IDA0NzgwNWZkODA4Li42NGI1ZjY5ZjNhNyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZp Zy9tMzJyL20zMnIuaAorKysgYi9nY2MvY29uZmlnL20zMnIvbTMyci5oCkBAIC04OTcsNyAr ODk3LDcgQEAgTDI6ICAgICAud29yZCBTVEFUSUMKIAkgICYmIChTSVpFKSA8PSAodW5zaWdu ZWQgSE9TVF9XSURFX0lOVCkgZ19zd2l0Y2hfdmFsdWUpCQlcCiAgICAgICAgIHN3aXRjaF90 b19zZWN0aW9uIChnZXRfbmFtZWRfc2VjdGlvbiAoTlVMTCwgIi5zYnNzIiwgMCkpOwlcCiAg ICAgICBlbHNlCQkJCQkJCQlcCi0gICAgICAgIHN3aXRjaF90b19zZWN0aW9uIChic3Nfc2Vj dGlvbik7CQkJCVwKKyAgICAgICAgc3dpdGNoX3RvX3NlY3Rpb24gKGNhc20tPnNlYy5ic3Mp OwkJCQlcCiAgICAgICBBU01fT1VUUFVUX0FMSUdOIChGSUxFLCBmbG9vcl9sb2cyIChBTElH TiAvIEJJVFNfUEVSX1VOSVQpKTsJXAogICAgICAgbGFzdF9hc3NlbWJsZV92YXJpYWJsZV9k ZWNsID0gREVDTDsJCQkJXAogICAgICAgQVNNX0RFQ0xBUkVfT0JKRUNUX05BTUUgKEZJTEUs IE5BTUUsIERFQ0wpOwkJCVwKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvbWNvcmUvbWNvcmUt ZWxmLmggYi9nY2MvY29uZmlnL21jb3JlL21jb3JlLWVsZi5oCmluZGV4IGQ1MGY1NzhjM2Rk Li4wMjI3OGVlYzNjMyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9tY29yZS9tY29yZS1lbGYu aAorKysgYi9nY2MvY29uZmlnL21jb3JlL21jb3JlLWVsZi5oCkBAIC0zMyw3ICszMyw3IEBA IGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCiAg ICAgICBmcHJpbnRmIChTVFJFQU0sICJcdC5zZWN0aW9uIC5leHBvcnRzXG4iKTsJXAogICAg ICAgZnByaW50ZiAoU1RSRUFNLCAiXHQuYXNjaWkgXCIgLWV4cG9ydDolc1wiXG4iLAlcCiAJ ICAgICAgICgqIHRhcmdldG0uc3RyaXBfbmFtZV9lbmNvZGluZykgKE5BTUUpKTsJXAotICAg ICAgaW5fc2VjdGlvbiA9IE5VTEw7CQkJCVwKKyAgICAgIGNhc20tPmluX3NlY3Rpb24gPSBO VUxMOwkJCQlcCiAgICAgfQkJCQkJCQlcCiAgIHdoaWxlICgwKQogCkBAIC02Myw3ICs2Myw3 IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2Vl CiAgICAgICBIT1NUX1dJREVfSU5UIHNpemU7CQkJCQlcCiAgICAgICBpZiAobWNvcmVfZGxs ZXhwb3J0X25hbWVfcCAoTkFNRSkpCQkJXAogICAgICAgICB7CQkJCQkJCVwKLQkgIHNlY3Rp b24gKnNhdmVfc2VjdGlvbiA9IGluX3NlY3Rpb247CQkJXAorCSAgc2VjdGlvbiAqc2F2ZV9z ZWN0aW9uID0gY2FzbS0+aW5fc2VjdGlvbjsJCQlcCiAJICBNQ09SRV9FWFBPUlRfTkFNRSAo RklMRSwgTkFNRSk7CQkJXAogCSAgc3dpdGNoX3RvX3NlY3Rpb24gKHNhdmVfc2VjdGlvbik7 CQkJXAogICAgICAgICB9CQkJCQkJCVwKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvbWljcm9i bGF6ZS9taWNyb2JsYXplLmMgYi9nY2MvY29uZmlnL21pY3JvYmxhemUvbWljcm9ibGF6ZS5j CmluZGV4IDZlOGYzNjdjODBhLi4wMDI4ZGE0OTRlYSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZp Zy9taWNyb2JsYXplL21pY3JvYmxhemUuYworKysgYi9nY2MvY29uZmlnL21pY3JvYmxhemUv bWljcm9ibGF6ZS5jCkBAIC0yODM2LDkgKzI4MzYsOSBAQCBtaWNyb2JsYXplX2VsZl9hc21f Y2R0b3IgKHJ0eCBzeW1ib2wsIGludCBwcmlvcml0eSwgYm9vbCBpc19jdG9yKQogICAgICAg cyA9IGdldF9zZWN0aW9uIChidWYsIFNFQ1RJT05fV1JJVEUsIE5VTExfVFJFRSk7CiAgICAg fQogICBlbHNlIGlmIChpc19jdG9yKQotICAgIHMgPSBjdG9yc19zZWN0aW9uOworICAgIHMg PSBjYXNtLT5zZWMuY3RvcnM7CiAgIGVsc2UKLSAgICBzID0gZHRvcnNfc2VjdGlvbjsKKyAg ICBzID0gY2FzbS0+c2VjLmR0b3JzOwogCiAgIHN3aXRjaF90b19zZWN0aW9uIChzKTsKICAg YXNzZW1ibGVfYWxpZ24gKFBPSU5URVJfU0laRSk7CkBAIC0zMjYxLDcgKzMyNjEsNyBAQCBt aWNyb2JsYXplX3NlbGVjdF9zZWN0aW9uICh0cmVlIGRlY2wsIGludCByZWxvYywgdW5zaWdu ZWQgSE9TVF9XSURFX0lOVCBhbGlnbikKICAgICAgICAgIHJlbGF4YXRpb24vcmVsb2NhdGlv bi4gQ3VycmVudGx5LCB0dXJuaW5nIG1lcmdlYWJsZSBzZWN0aW9ucyAKICAgICAgICAgIGlu dG8gcmVndWxhciByZWFkb25seSBzZWN0aW9ucy4gICovCiAKLSAgICAgIHJldHVybiByZWFk b25seV9kYXRhX3NlY3Rpb247CisgICAgICByZXR1cm4gY2FzbS0+c2VjLnJlYWRvbmx5X2Rh dGE7CiAgICAgZGVmYXVsdDoKICAgICAgIHJldHVybiBkZWZhdWx0X2VsZl9zZWxlY3Rfc2Vj dGlvbiAoZGVjbCwgcmVsb2MsIGFsaWduKTsKICAgICB9CmRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL21pY3JvYmxhemUvbWljcm9ibGF6ZS5oIGIvZ2NjL2NvbmZpZy9taWNyb2JsYXplL21p Y3JvYmxhemUuaAppbmRleCAyZWNlYzc1MDUyNi4uM2YxMzY4ZDA4ODQgMTAwNjQ0Ci0tLSBh L2djYy9jb25maWcvbWljcm9ibGF6ZS9taWNyb2JsYXplLmgKKysrIGIvZ2NjL2NvbmZpZy9t aWNyb2JsYXplL21pY3JvYmxhemUuaApAQCAtNjIzLDExICs2MjMsMTEgQEAgZG8gewkJCQkJ CQkJCVwKICAgICAgICYmIChpbnQpIChTSVpFKSA8PSBtaWNyb2JsYXplX3NlY3Rpb25fdGhy ZXNob2xkCQkJXAogICAgICAgJiYgVEFSR0VUX1hMR1BPUFQpCQkJCQkJXAogICAgIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAotICAgICAgc3dpdGNoX3RvX3NlY3Rpb24gKHNic3Nfc2VjdGlvbik7CQkJ CQlcCisgICAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2VjLnNic3MpOwkJCQkJXAog ICAgIH0JCQkJCQkJCQlcCiAgIGVsc2UJCQkJCQkJCQlcCiAgICAgewkJCQkJCQkJCVwKLSAg ICAgIHN3aXRjaF90b19zZWN0aW9uIChic3Nfc2VjdGlvbik7CQkJCQlcCisgICAgICBzd2l0 Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2VjLmJzcyk7CQkJCQlcCiAgICAgfSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgIGZwcmludGYgKEZJTEUsICIlcyIsIENPTU1PTl9BU01fT1ApOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgIGFzc2VtYmxlX25hbWUgKChGSUxFKSwgKE5B TUUpKTsJCQkJCVwKQEAgLTY0MywxMSArNjQzLDExIEBAIGRvIHsJCQkJCQkJCQlcCiAgICAg ICAmJiAoaW50KSAoU0laRSkgPD0gbWljcm9ibGF6ZV9zZWN0aW9uX3RocmVzaG9sZAkJCVwK ICAgICAgICYmIFRBUkdFVF9YTEdQT1BUKQkJCQkJCVwKICAgICB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK LSAgICAgIHN3aXRjaF90b19zZWN0aW9uIChzYnNzX3NlY3Rpb24pOwkJCQkJXAorICAgICAg c3dpdGNoX3RvX3NlY3Rpb24gKGNhc20tPnNlYy5zYnNzKTsJCQkJCVwKICAgICB9CQkJCQkJ CQkJXAogICBlbHNlCQkJCQkJCQkJXAogICAgIHsJCQkJCQkJCQlcCi0gICAgICBzd2l0Y2hf dG9fc2VjdGlvbiAoYnNzX3NlY3Rpb24pOwkJCQkJXAorICAgICAgc3dpdGNoX3RvX3NlY3Rp b24gKGNhc20tPnNlYy5ic3MpOwkJCQkJXAogICAgIH0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICBmcHJp bnRmIChGSUxFLCAiJXMiLCBMQ09NTU9OX0FTTV9PUCk7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICBhc3NlbWJsZV9uYW1lICgoRklMRSksIChOQU1FKSk7CQkJCQlc CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL21pcHMvbWlwcy5jIGIvZ2NjL2NvbmZpZy9taXBz L21pcHMuYwppbmRleCBhZGU1ZDcwNDFmMC4uYTgzMDE1Y2FjYzAgMTAwNjQ0Ci0tLSBhL2dj Yy9jb25maWcvbWlwcy9taXBzLmMKKysrIGIvZ2NjL2NvbmZpZy9taXBzL21pcHMuYwpAQCAt OTcxOCw3ICs5NzE4LDcgQEAgbWlwc19vdXRwdXRfYWxpZ25lZF9kZWNsX2NvbW1vbiAoRklM RSAqc3RyZWFtLCB0cmVlIGRlY2wsIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICBpZiAoVFJF RV9QVUJMSUMgKGRlY2wpICYmIERFQ0xfTkFNRSAoZGVjbCkpCiAJdGFyZ2V0bS5hc21fb3V0 Lmdsb2JhbGl6ZV9sYWJlbCAoc3RyZWFtLCBuYW1lKTsKIAotICAgICAgc3dpdGNoX3RvX3Nl Y3Rpb24gKHJlYWRvbmx5X2RhdGFfc2VjdGlvbik7CisgICAgICBzd2l0Y2hfdG9fc2VjdGlv biAoY2FzbS0+c2VjLnJlYWRvbmx5X2RhdGEpOwogICAgICAgQVNNX09VVFBVVF9BTElHTiAo c3RyZWFtLCBmbG9vcl9sb2cyIChhbGlnbiAvIEJJVFNfUEVSX1VOSVQpKTsKICAgICAgIG1p cHNfZGVjbGFyZV9vYmplY3QgKHN0cmVhbSwgbmFtZSwgIiIsCiAJCQkgICAiOlxuXHQuc3Bh Y2VcdCIgSE9TVF9XSURFX0lOVF9QUklOVF9VTlNJR05FRCAiXG4iLApkaWZmIC0tZ2l0IGEv Z2NjL2NvbmZpZy9tbWl4L21taXguYyBiL2djYy9jb25maWcvbW1peC9tbWl4LmMKaW5kZXgg MDEwY2Q0NzczZWEuLjRlYTA3ODE5OTgzIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL21taXgv bW1peC5jCisrKyBiL2djYy9jb25maWcvbW1peC9tbWl4LmMKQEAgLTEzMjEsNyArMTMyMSw3 IEBAIG1taXhfZmlsZV9zdGFydCAodm9pZCkKICAgZnB1dHMgKCIhIG1taXhhbDo9IDhIIExP QyBEYXRhX1NlY3Rpb25cbiIsIGFzbV9vdXRfZmlsZSk7CiAKICAgLyogTWFrZSBzdXJlIGVh Y2ggZmlsZSBzdGFydHMgd2l0aCB0aGUgdGV4dCBzZWN0aW9uLiAgKi8KLSAgc3dpdGNoX3Rv X3NlY3Rpb24gKHRleHRfc2VjdGlvbik7CisgIHN3aXRjaF90b19zZWN0aW9uIChjYXNtLT5z ZWMudGV4dCk7CiB9CiAKIC8qIFRBUkdFVF9BU01fRklMRV9FTkQuICAqLwpAQCAtMTMzMCw3 ICsxMzMwLDcgQEAgc3RhdGljIHZvaWQKIG1taXhfZmlsZV9lbmQgKHZvaWQpCiB7CiAgIC8q IE1ha2Ugc3VyZSBlYWNoIGZpbGUgZW5kcyB3aXRoIHRoZSBkYXRhIHNlY3Rpb24uICAqLwot ICBzd2l0Y2hfdG9fc2VjdGlvbiAoZGF0YV9zZWN0aW9uKTsKKyAgc3dpdGNoX3RvX3NlY3Rp b24gKGNhc20tPnNlYy5kYXRhKTsKIH0KIAogLyogVEFSR0VUX0FTTV9PVVRQVVRfU09VUkNF X0ZJTEVOQU1FLiAgKi8KQEAgLTE1MTAsNyArMTUxMCw3IEBAIG1taXhfYXNtX291dHB1dF9h bGlnbmVkX2xvY2FsIChGSUxFICpzdHJlYW0sCiAJCQkgICAgICAgaW50IHNpemUsCiAJCQkg ICAgICAgaW50IGFsaWduKQogewotICBzd2l0Y2hfdG9fc2VjdGlvbiAoZGF0YV9zZWN0aW9u KTsKKyAgc3dpdGNoX3RvX3NlY3Rpb24gKGNhc20tPnNlYy5kYXRhKTsKIAogICBBU01fT1VU UFVUX0FMSUdOIChzdHJlYW0sIGV4YWN0X2xvZzIgKGFsaWduL0JJVFNfUEVSX1VOSVQpKTsK ICAgYXNzZW1ibGVfbmFtZSAoc3RyZWFtLCBuYW1lKTsKZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvbXNwNDMwL21zcDQzMC5jIGIvZ2NjL2NvbmZpZy9tc3A0MzAvbXNwNDMwLmMKaW5kZXgg MWNkYWNiN2Y0ODAuLmJhNDFjZTFmNTRhIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL21zcDQz MC9tc3A0MzAuYworKysgYi9nY2MvY29uZmlnL21zcDQzMC9tc3A0MzAuYwpAQCAtMjM5OCwy MiArMjM5OCwyMiBAQCBtc3A0MzBfc2VsZWN0X3NlY3Rpb24gKHRyZWUgZGVjbCwgaW50IHJl bG9jLCB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIGFsaWduKQogICAgIHsKICAgICBjYXNlIFNF Q0NBVF9URVhUOgogICAgICAgaWYgKCFwcmVmaXgpCi0JcmV0dXJuIHRleHRfc2VjdGlvbjsK KwlyZXR1cm4gY2FzbS0+c2VjLnRleHQ7CiAgICAgICBiYXNlX3NlY19uYW1lID0gIi50ZXh0 IjsKICAgICAgIGJyZWFrOwogICAgIGNhc2UgU0VDQ0FUX0RBVEE6CiAgICAgICBpZiAoIXBy ZWZpeCkKLQlyZXR1cm4gZGF0YV9zZWN0aW9uOworCXJldHVybiBjYXNtLT5zZWMuZGF0YTsK ICAgICAgIGJhc2Vfc2VjX25hbWUgPSAiLmRhdGEiOwogICAgICAgYnJlYWs7CiAgICAgY2Fz ZSBTRUNDQVRfQlNTOgogICAgICAgaWYgKCFwcmVmaXgpCi0JcmV0dXJuIGJzc19zZWN0aW9u OworCXJldHVybiBjYXNtLT5zZWMuYnNzOwogICAgICAgYmFzZV9zZWNfbmFtZSA9ICIuYnNz IjsKICAgICAgIGJyZWFrOwogICAgIGNhc2UgU0VDQ0FUX1JPREFUQToKICAgICAgIGlmICgh cHJlZml4KQotCXJldHVybiByZWFkb25seV9kYXRhX3NlY3Rpb247CisJcmV0dXJuIGNhc20t PnNlYy5yZWFkb25seV9kYXRhOwogICAgICAgYmFzZV9zZWNfbmFtZSA9ICIucm9kYXRhIjsK ICAgICAgIGJyZWFrOwogCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL25pb3MyL25pb3MyLmgg Yi9nY2MvY29uZmlnL25pb3MyL25pb3MyLmgKaW5kZXggZGZjYTEyY2M1MjUuLmMyZGEzNDcw NjJiIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL25pb3MyL25pb3MyLmgKKysrIGIvZ2NjL2Nv bmZpZy9uaW9zMi9uaW9zMi5oCkBAIC00NzAsOSArNDcwLDkgQEAgd2hpbGUgKDApCiAjZGVm aW5lIEFTTV9PVVRQVVRfQUxJR05FRF9ERUNMX0xPQ0FMKEZJTEUsIERFQ0wsIE5BTUUsIFNJ WkUsIEFMSUdOKQlcCiBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgaWYgKHRhcmdldG0uaW5fc21h bGxfZGF0YV9wIChERUNMKSkJCQkJCVwKLSAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoc2Jzc19z ZWN0aW9uKTsJCQkJCVwKKyAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2VjLnNic3Mp OwkJCQkJXAogICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHN3aXRjaF90b19zZWN0aW9uIChi c3Nfc2VjdGlvbik7CQkJCQlcCisgICAgc3dpdGNoX3RvX3NlY3Rpb24gKGNhc20tPnNlYy5i c3MpOwkJCQkJXAogICBBU01fT1VUUFVUX1RZUEVfRElSRUNUSVZFIChGSUxFLCBOQU1FLCAi b2JqZWN0Iik7ICAgICAgICAgICAgICAgICAgICAgXAogICBpZiAoIWZsYWdfaW5oaWJpdF9z aXplX2RpcmVjdGl2ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog ICAgIEFTTV9PVVRQVVRfU0laRV9ESVJFQ1RJVkUgKEZJTEUsIE5BTUUsIFNJWkUpOyAgICAg ICAgICAgICAgICAgICAgICAgXApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9wYS9wYS5jIGIv Z2NjL2NvbmZpZy9wYS9wYS5jCmluZGV4IDA2MTQzMDIzYjQ2Li45M2IzNDc5MDczOCAxMDA2 NDQKLS0tIGEvZ2NjL2NvbmZpZy9wYS9wYS5jCisrKyBiL2djYy9jb25maWcvcGEvcGEuYwpA QCAtNDQ0NCw3ICs0NDQ0LDcgQEAgcGFfb3V0cHV0X2Z1bmN0aW9uX2VwaWxvZ3VlIChGSUxF ICpmaWxlKQogICAgICAgLyogV2UgYXJlIGRvbmUgd2l0aCB0aGlzIHN1YnNwYWNlIGV4Y2Vw dCBwb3NzaWJseSBmb3Igc29tZSBhZGRpdGlvbmFsCiAJIGRlYnVnIGluZm9ybWF0aW9uLiAg Rm9yZ2V0IHRoYXQgd2UgYXJlIGluIHRoaXMgc3Vic3BhY2UgdG8gZW5zdXJlCiAJIHRoYXQg dGhlIG5leHQgZnVuY3Rpb24gaXMgb3V0cHV0IGluIGl0cyBvd24gc3Vic3BhY2UuICAqLwot ICAgICAgaW5fc2VjdGlvbiA9IE5VTEw7CisgICAgICBjYXNtLT5pbl9zZWN0aW9uID0gTlVM TDsKICAgICAgIGNmdW4tPm1hY2hpbmUtPmluX25zdWJzcGEgPSAyOwogICAgIH0KIApAQCAt NDY5Myw3ICs0NjkzLDcgQEAgb3V0cHV0X2RlZmVycmVkX3Byb2ZpbGVfY291bnRlcnMgKHZv aWQpCiAgIGlmIChmdW5jZGVmX25vcy5pc19lbXB0eSAoKSkKICAgIHJldHVybjsKIAotICBz d2l0Y2hfdG9fc2VjdGlvbiAoZGF0YV9zZWN0aW9uKTsKKyAgc3dpdGNoX3RvX3NlY3Rpb24g KGNhc20tPnNlYy5kYXRhKTsKICAgYWxpZ24gPSBNSU4gKEJJR0dFU1RfQUxJR05NRU5ULCBM T05HX1RZUEVfU0laRSk7CiAgIEFTTV9PVVRQVVRfQUxJR04gKGFzbV9vdXRfZmlsZSwgZmxv b3JfbG9nMiAoYWxpZ24gLyBCSVRTX1BFUl9VTklUKSk7CiAKQEAgLTU4NjMsNyArNTg2Myw3 IEBAIG91dHB1dF9kZWZlcnJlZF9wbGFiZWxzICh2b2lkKQogICAgICBiZWZvcmUgb3V0cHV0 dGluZyB0aGUgZGVmZXJyZWQgcGxhYmVscy4gICovCiAgIGlmIChuX2RlZmVycmVkX3BsYWJl bHMpCiAgICAgewotICAgICAgc3dpdGNoX3RvX3NlY3Rpb24gKGZsYWdfcGljID8gZGF0YV9z ZWN0aW9uIDogcmVhZG9ubHlfZGF0YV9zZWN0aW9uKTsKKyAgICAgIHN3aXRjaF90b19zZWN0 aW9uIChmbGFnX3BpYyA/IGNhc20tPnNlYy5kYXRhIDogY2FzbS0+c2VjLnJlYWRvbmx5X2Rh dGEpOwogICAgICAgQVNNX09VVFBVVF9BTElHTiAoYXNtX291dF9maWxlLCBUQVJHRVRfNjRC SVQgPyAzIDogMik7CiAgICAgfQogCkBAIC04ODcyLDcgKzg4NzIsNyBAQCBwYV9hc21fb3V0 cHV0X21pX3RodW5rIChGSUxFICpmaWxlLCB0cmVlIHRodW5rX2ZuZGVjbCwgSE9TVF9XSURF X0lOVCBkZWx0YSwKIAogICBpZiAoVEFSR0VUX1NPTSAmJiBmbGFnX3BpYyAmJiBUUkVFX1BV QkxJQyAoZnVuY3Rpb24pKQogICAgIHsKLSAgICAgIHN3aXRjaF90b19zZWN0aW9uIChkYXRh X3NlY3Rpb24pOworICAgICAgc3dpdGNoX3RvX3NlY3Rpb24gKGNhc20tPnNlYy5kYXRhKTsK ICAgICAgIG91dHB1dF9hc21faW5zbiAoIi5hbGlnbiA0IiwgeG9wZXJhbmRzKTsKICAgICAg IEFTTV9PVVRQVVRfTEFCRUwgKGZpbGUsIGxhYmVsKTsKICAgICAgIG91dHB1dF9hc21faW5z biAoIi53b3JkIFAnJTAiLCB4b3BlcmFuZHMpOwpAQCAtOTA0Nyw3ICs5MDQ3LDcgQEAgcGFf YXNtX291dHB1dF9hbGlnbmVkX2JzcyAoRklMRSAqc3RyZWFtLAogCQkJICAgdW5zaWduZWQg SE9TVF9XSURFX0lOVCBzaXplLAogCQkJICAgdW5zaWduZWQgaW50IGFsaWduKQogewotICBz d2l0Y2hfdG9fc2VjdGlvbiAoYnNzX3NlY3Rpb24pOworICBzd2l0Y2hfdG9fc2VjdGlvbiAo Y2FzbS0+c2VjLmJzcyk7CiAKICNpZmRlZiBBU01fT1VUUFVUX1RZUEVfRElSRUNUSVZFCiAg IEFTTV9PVVRQVVRfVFlQRV9ESVJFQ1RJVkUgKHN0cmVhbSwgbmFtZSwgIm9iamVjdCIpOwpA QCAtOTA4NCw3ICs5MDg0LDcgQEAgcGFfYXNtX291dHB1dF9hbGlnbmVkX2NvbW1vbiAoRklM RSAqc3RyZWFtLAogICAgICAgYWxpZ24gPSBtYXhfY29tbW9uX2FsaWduOwogICAgIH0KIAot ICBzd2l0Y2hfdG9fc2VjdGlvbiAoYnNzX3NlY3Rpb24pOworICBzd2l0Y2hfdG9fc2VjdGlv biAoY2FzbS0+c2VjLmJzcyk7CiAKICAgYXNzZW1ibGVfbmFtZSAoc3RyZWFtLCBuYW1lKTsK ICAgZnByaW50ZiAoc3RyZWFtLCAiXHQuY29tbSAiIEhPU1RfV0lERV9JTlRfUFJJTlRfVU5T SUdORUQiXG4iLApAQCAtOTEwNCw3ICs5MTA0LDcgQEAgcGFfYXNtX291dHB1dF9hbGlnbmVk X2xvY2FsIChGSUxFICpzdHJlYW0sCiAJCQkgICAgIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQg c2l6ZSwKIAkJCSAgICAgdW5zaWduZWQgaW50IGFsaWduKQogewotICBzd2l0Y2hfdG9fc2Vj dGlvbiAoYnNzX3NlY3Rpb24pOworICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2VjLmJz cyk7CiAgIGZwcmludGYgKHN0cmVhbSwgIlx0LmFsaWduICV1XG4iLCBhbGlnbiAvIEJJVFNf UEVSX1VOSVQpOwogCiAjaWZkZWYgTE9DQUxfQVNNX09QCkBAIC0xMDAzMCwxMCArMTAwMzAs MTAgQEAgc29tX291dHB1dF90ZXh0X3NlY3Rpb25fYXNtX29wIChjb25zdCB2b2lkICpkYXRh IEFUVFJJQlVURV9VTlVTRUQpCiAJICAgICBmdW5jdGlvbiBoYXMgYmVlbiBjb21wbGV0ZWQu ICBTbywgd2UgYXJlIGNoYW5naW5nIHRvIHRoZQogCSAgICAgdGV4dCBzZWN0aW9uIHRvIG91 dHB1dCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uICBUaHVzLCB3ZQogCSAgICAgbmVlZCB0byBm b3JnZXQgdGhhdCB3ZSBhcmUgaW4gdGhlIHRleHQgc2VjdGlvbiBzbyB0aGF0Ci0JICAgICB2 YXJhc20uYyB3aWxsIGNhbGwgdXMgd2hlbiB0ZXh0X3NlY3Rpb24gaXMgc2VsZWN0ZWQgYWdh aW4uICAqLworCSAgICAgdmFyYXNtLmMgd2lsbCBjYWxsIHVzIHdoZW4gY2FzbS0+c2VjLnRl eHQgaXMgc2VsZWN0ZWQgYWdhaW4uICAqLwogCSAgZ2NjX2Fzc2VydCAoIWNmdW4gfHwgIWNm dW4tPm1hY2hpbmUKIAkJICAgICAgfHwgY2Z1bi0+bWFjaGluZS0+aW5fbnN1YnNwYSA9PSAy KTsKLQkgIGluX3NlY3Rpb24gPSBOVUxMOworCSAgY2FzbS0+aW5fc2VjdGlvbiA9IE5VTEw7 CiAJfQogICAgICAgb3V0cHV0X3NlY3Rpb25fYXNtX29wICgiXHQuU1BBQ0UgJFRFWFQkXG5c dC5OU1VCU1BBICRDT0RFJCIpOwogICAgICAgcmV0dXJuOwpAQCAtMTAwNDcsNyArMTAwNDcs NyBAQCBzb21fb3V0cHV0X3RleHRfc2VjdGlvbl9hc21fb3AgKGNvbnN0IHZvaWQgKmRhdGEg QVRUUklCVVRFX1VOVVNFRCkKIHN0YXRpYyB2b2lkCiBzb21fb3V0cHV0X2NvbWRhdF9kYXRh X3NlY3Rpb25fYXNtX29wIChjb25zdCB2b2lkICpkYXRhKQogewotICBpbl9zZWN0aW9uID0g TlVMTDsKKyAgY2FzbS0+aW5fc2VjdGlvbiA9IE5VTEw7CiAgIG91dHB1dF9zZWN0aW9uX2Fz bV9vcCAoZGF0YSk7CiB9CiAKQEAgLTEwMDU2LDcgKzEwMDU2LDcgQEAgc29tX291dHB1dF9j b21kYXRfZGF0YV9zZWN0aW9uX2FzbV9vcCAoY29uc3Qgdm9pZCAqZGF0YSkKIHN0YXRpYyB2 b2lkCiBwYV9zb21fYXNtX2luaXRfc2VjdGlvbnMgKHZvaWQpCiB7Ci0gIHRleHRfc2VjdGlv bgorICBjYXNtLT5zZWMudGV4dAogICAgID0gZ2V0X3VubmFtZWRfc2VjdGlvbiAoMCwgc29t X291dHB1dF90ZXh0X3NlY3Rpb25fYXNtX29wLCBOVUxMKTsKIAogICAvKiBTT00gcHV0cyBy ZWFkb25seSBkYXRhIGluIHRoZSBkZWZhdWx0ICRMSVQkIHN1YnNwYWNlIHdoZW4gUElDIGNv ZGUKQEAgLTEwMTA0LDE0ICsxMDEwNCwxNCBAQCBwYV9zb21fYXNtX2luaXRfc2VjdGlvbnMg KHZvaWQpCiAgICAgIHdoZW4gZ2VuZXJhdGluZyBQSUMgY29kZS4gIFRoaXMgcmVkdWNlcyBz aGFyaW5nLCBidXQgaXQgd29ya3MKICAgICAgY29ycmVjdGx5LiAgTm93IHdlIHJlbHkgb24g cGFfcmVsb2NfcndfbWFzaygpIGZvciBzZWN0aW9uIHNlbGVjdGlvbi4KICAgICAgVGhpcyBw dXRzIGNvbnN0YW50IGRhdGEgbm90IG5lZWRpbmcgcmVsb2NhdGlvbiBpbnRvIHRoZSAkVEVY VCQgc3BhY2UuICAqLwotICByZWFkb25seV9kYXRhX3NlY3Rpb24gPSBzb21fcmVhZG9ubHlf ZGF0YV9zZWN0aW9uOworICBjYXNtLT5zZWMucmVhZG9ubHlfZGF0YSA9IHNvbV9yZWFkb25s eV9kYXRhX3NlY3Rpb247CiAKICAgLyogV2UgbXVzdCBub3QgaGF2ZSBhIHJlZmVyZW5jZSB0 byBhbiBleHRlcm5hbCBzeW1ib2wgZGVmaW5lZCBpbiBhCiAgICAgIHNoYXJlZCBsaWJyYXJ5 IGluIGEgcmVhZG9ubHkgc2VjdGlvbiwgZWxzZSB0aGUgU09NIGxpbmtlciB3aWxsCiAgICAg IGNvbXBsYWluLgogCiAgICAgIFNvLCB3ZSBmb3JjZSBleGNlcHRpb24gaW5mb3JtYXRpb24g aW50byB0aGUgZGF0YSBzZWN0aW9uLiAgKi8KLSAgZXhjZXB0aW9uX3NlY3Rpb24gPSBkYXRh X3NlY3Rpb247CisgIGNhc20tPnNlYy5leGNlcHRpb24gPSBjYXNtLT5zZWMuZGF0YTsKIH0K IAogLyogSW1wbGVtZW50IFRBUkdFVF9BU01fVE1fQ0xPTkVfVEFCTEVfU0VDVElPTi4gICov CkBAIC0xMDE0NCwxOCArMTAxNDQsMTggQEAgcGFfc2VsZWN0X3NlY3Rpb24gKHRyZWUgZXhw LCBpbnQgcmVsb2MsCiAJICAmJiAhREVDTF9XRUFLIChleHApKQogCXJldHVybiBzb21fb25l X29ubHlfcmVhZG9ubHlfZGF0YV9zZWN0aW9uOwogICAgICAgZWxzZQotCXJldHVybiByZWFk b25seV9kYXRhX3NlY3Rpb247CisJcmV0dXJuIGNhc20tPnNlYy5yZWFkb25seV9kYXRhOwog ICAgIH0KICAgZWxzZSBpZiAoQ09OU1RBTlRfQ0xBU1NfUCAoZXhwKQogCSAgICYmICEocmVs b2MgJiBwYV9yZWxvY19yd19tYXNrICgpKSkKLSAgICByZXR1cm4gcmVhZG9ubHlfZGF0YV9z ZWN0aW9uOworICAgIHJldHVybiBjYXNtLT5zZWMucmVhZG9ubHlfZGF0YTsKICAgZWxzZSBp ZiAoVEFSR0VUX1NPTQogCSAgICYmIFRSRUVfQ09ERSAoZXhwKSA9PSBWQVJfREVDTAogCSAg ICYmIERFQ0xfT05FX09OTFkgKGV4cCkKIAkgICAmJiAhREVDTF9XRUFLIChleHApKQogICAg IHJldHVybiBzb21fb25lX29ubHlfZGF0YV9zZWN0aW9uOwogICBlbHNlCi0gICAgcmV0dXJu IGRhdGFfc2VjdGlvbjsKKyAgICByZXR1cm4gY2FzbS0+c2VjLmRhdGE7CiB9CiAKIC8qIElt cGxlbWVudCBwYV9lbGZfc2VsZWN0X3J0eF9zZWN0aW9uLiAgSWYgWCBpcyBhIGZ1bmN0aW9u IGxhYmVsIG9wZXJhbmQKQEAgLTEwNjQ4LDcgKzEwNjQ4LDcgQEAgcGFfZnVuY3Rpb25fc2Vj dGlvbiAodHJlZSBkZWNsLCBlbnVtIG5vZGVfZnJlcXVlbmN5IGZyZXEsCiB7CiAgIC8qIFB1 dCBmdW5jdGlvbnMgaW4gdGV4dCBzZWN0aW9uIGlmIHRhcmdldCBkb2Vzbid0IGhhdmUgbmFt ZWQgc2VjdGlvbnMuICAqLwogICBpZiAoIXRhcmdldG1fY29tbW9uLmhhdmVfbmFtZWRfc2Vj dGlvbnMpCi0gICAgcmV0dXJuIHRleHRfc2VjdGlvbjsKKyAgICByZXR1cm4gY2FzbS0+c2Vj LnRleHQ7CiAKICAgLyogRm9yY2UgbmVzdGVkIGZ1bmN0aW9ucyBpbnRvIHRoZSBzYW1lIHNl Y3Rpb24gYXMgdGhlIGNvbnRhaW5pbmcKICAgICAgZnVuY3Rpb24uICAqLwpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9wZHAxMS9wZHAxMS5jIGIvZ2NjL2NvbmZpZy9wZHAxMS9wZHAxMS5j CmluZGV4IGNlZDY1MzExNmE0Li4xMWIxMjNjMDU4NiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZp Zy9wZHAxMS9wZHAxMS5jCisrKyBiL2djYy9jb25maWcvcGRwMTEvcGRwMTEuYwpAQCAtNzQz LDcgKzc0Myw3IEBAIHZvaWQKIHBkcDExX2FzbV9vdXRwdXRfdmFyIChGSUxFICpmaWxlLCBj b25zdCBjaGFyICpuYW1lLCBpbnQgc2l6ZSwKIAkJICAgICAgaW50IGFsaWduLCBib29sIGds b2JhbCkKIHsKLSAgc3dpdGNoX3RvX3NlY3Rpb24gKGRhdGFfc2VjdGlvbik7CisgIHN3aXRj aF90b19zZWN0aW9uIChjYXNtLT5zZWMuZGF0YSk7CiAgIGlmIChhbGlnbiA+IDgpCiAgICAg ZnByaW50ZiAoZmlsZSwgIlx0LmV2ZW5cbiIpOwogICBpZiAoVEFSR0VUX0RFQ19BU00pCkBA IC0yMzIzLDExICsyMzIzLDExIEBAIHBkcDExX2FzbV9pbml0X3NlY3Rpb25zICh2b2lkKQog ewogICBpZiAoVEFSR0VUX0RFQ19BU00pCiAgICAgewotICAgICAgYnNzX3NlY3Rpb24gPSBk YXRhX3NlY3Rpb247CisgICAgICBjYXNtLT5zZWMuYnNzID0gY2FzbS0+c2VjLmRhdGE7CiAg ICAgfQogICBlbHNlIGlmIChUQVJHRVRfR05VX0FTTSkKICAgICB7Ci0gICAgICBic3Nfc2Vj dGlvbiA9IGdldF91bm5hbWVkX3NlY3Rpb24gKFNFQ1RJT05fV1JJVEUgfCBTRUNUSU9OX0JT UywKKyAgICAgIGNhc20tPnNlYy5ic3MgPSBnZXRfdW5uYW1lZF9zZWN0aW9uIChTRUNUSU9O X1dSSVRFIHwgU0VDVElPTl9CU1MsCiAJCQkJCSBvdXRwdXRfc2VjdGlvbl9hc21fb3AsCiAJ CQkJCSAiLmJzcyIpOwogICAgIH0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcHJ1L3BydS5o IGIvZ2NjL2NvbmZpZy9wcnUvcHJ1LmgKaW5kZXggOWI2YmUzMjNlNmQuLjY4YTU1YmE2ZmM3 IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3BydS9wcnUuaAorKysgYi9nY2MvY29uZmlnL3By dS9wcnUuaApAQCAtNTQyLDcgKzU0Miw3IEBAIHdoaWxlICgwKQogI3VuZGVmICBBU01fT1VU UFVUX0FMSUdORURfTE9DQUwKICNkZWZpbmUgQVNNX09VVFBVVF9BTElHTkVEX0xPQ0FMKEZJ TEUsIE5BTUUsIFNJWkUsIEFMSUdOKQkJXAogZG8gewkJCQkJCQkJCVwKLSAgc3dpdGNoX3Rv X3NlY3Rpb24gKGJzc19zZWN0aW9uKTsJCQkJCVwKKyAgc3dpdGNoX3RvX3NlY3Rpb24gKGNh c20tPnNlYy5ic3MpOwkJCQkJXAogICBBU01fT1VUUFVUX1RZUEVfRElSRUNUSVZFIChGSUxF LCBOQU1FLCAib2JqZWN0Iik7CQkJXAogICBpZiAoIWZsYWdfaW5oaWJpdF9zaXplX2RpcmVj dGl2ZSkJCQkJCVwKICAgICBBU01fT1VUUFVUX1NJWkVfRElSRUNUSVZFIChGSUxFLCBOQU1F LCBTSVpFKTsJCQlcCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmMgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmMKaW5kZXggNTc2OTYwYmIzN2MuLjllYWEyZGNhNDRh IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmMKKysrIGIvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi5jCkBAIC0zNjE1LDggKzM2MTUsOCBAQCByaXNjdl9lbGZfc2VsZWN0 X3J0eF9zZWN0aW9uIChtYWNoaW5lX21vZGUgbW9kZSwgcnR4IHgsCiAJICByZXR1cm4gZ2V0 X3NlY3Rpb24gKG5hbWUsIHMtPm5hbWVkLmNvbW1vbi5mbGFncywgTlVMTCk7CiAJfQogCi0g ICAgICBpZiAocyA9PSBkYXRhX3NlY3Rpb24pCi0JcmV0dXJuIHNkYXRhX3NlY3Rpb247Cisg ICAgICBpZiAocyA9PSBjYXNtLT5zZWMuZGF0YSkKKwlyZXR1cm4gY2FzbS0+c2VjLnNkYXRh OwogICAgIH0KIAogICByZXR1cm4gczsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmw3OC9y bDc4LmMgYi9nY2MvY29uZmlnL3JsNzgvcmw3OC5jCmluZGV4IDRjMzQ5NDlhOTdmLi4wMTI5 OTI5YzgyMSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9ybDc4L3JsNzguYworKysgYi9nY2Mv Y29uZmlnL3JsNzgvcmw3OC5jCkBAIC00NjQ0LDE0ICs0NjQ0LDE0IEBAIHJsNzhfc2VsZWN0 X3NlY3Rpb24gKHRyZWUgZGVjbCwKICAgICB9CiAKICAgaWYgKHJlYWRvbmx5KQotICAgIHJl dHVybiBUQVJHRVRfRVMwID8gZnJvZGF0YV9zZWN0aW9uIDogcmVhZG9ubHlfZGF0YV9zZWN0 aW9uOworICAgIHJldHVybiBUQVJHRVRfRVMwID8gZnJvZGF0YV9zZWN0aW9uIDogY2FzbS0+ c2VjLnJlYWRvbmx5X2RhdGE7CiAKICAgc3dpdGNoIChjYXRlZ29yaXplX2RlY2xfZm9yX3Nl Y3Rpb24gKGRlY2wsIHJlbG9jKSkKICAgICB7Ci0gICAgY2FzZSBTRUNDQVRfVEVYVDogICBy ZXR1cm4gdGV4dF9zZWN0aW9uOwotICAgIGNhc2UgU0VDQ0FUX0RBVEE6ICAgcmV0dXJuIGRh dGFfc2VjdGlvbjsKLSAgICBjYXNlIFNFQ0NBVF9CU1M6ICAgIHJldHVybiBic3Nfc2VjdGlv bjsKLSAgICBjYXNlIFNFQ0NBVF9ST0RBVEE6IHJldHVybiBUQVJHRVRfRVMwID8gZnJvZGF0 YV9zZWN0aW9uIDogcmVhZG9ubHlfZGF0YV9zZWN0aW9uOworICAgIGNhc2UgU0VDQ0FUX1RF WFQ6ICAgcmV0dXJuIGNhc20tPnNlYy50ZXh0OworICAgIGNhc2UgU0VDQ0FUX0RBVEE6ICAg cmV0dXJuIGNhc20tPnNlYy5kYXRhOworICAgIGNhc2UgU0VDQ0FUX0JTUzogICAgcmV0dXJu IGNhc20tPnNlYy5ic3M7CisgICAgY2FzZSBTRUNDQVRfUk9EQVRBOiByZXR1cm4gVEFSR0VU X0VTMCA/IGZyb2RhdGFfc2VjdGlvbiA6IGNhc20tPnNlYy5yZWFkb25seV9kYXRhOwogICAg IGRlZmF1bHQ6CiAgICAgICByZXR1cm4gZGVmYXVsdF9zZWxlY3Rfc2VjdGlvbiAoZGVjbCwg cmVsb2MsIGFsaWduKTsKICAgICB9CkBAIC00Nzg2LDcgKzQ3ODYsNyBAQCBybDc4X2FzbV9j dG9yX2R0b3IgKHJ0eCBzeW1ib2wsIGludCBwcmlvcml0eSwgYm9vbCBpc19jdG9yKQogICAg ICAgc2VjID0gZ2V0X3NlY3Rpb24gKGJ1ZiwgMCwgTlVMTCk7CiAgICAgfQogICBlbHNlCi0g ICAgc2VjID0gaXNfY3RvciA/IGN0b3JzX3NlY3Rpb24gOiBkdG9yc19zZWN0aW9uOworICAg IHNlYyA9IGlzX2N0b3IgPyBjYXNtLT5zZWMuY3RvcnMgOiBjYXNtLT5zZWMuZHRvcnM7CiAK ICAgYXNzZW1ibGVfYWRkcl90b19zZWN0aW9uIChzeW1ib2wsIHNlYyk7CiB9CmRpZmYgLS1n aXQgYS9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuYyBiL2djYy9jb25maWcvcnM2MDAwL3Jz NjAwMC5jCmluZGV4IGFkODFkZmIzMTZkLi5hZjczN2M1YmQ1NiAxMDA2NDQKLS0tIGEvZ2Nj L2NvbmZpZy9yczYwMDAvcnM2MDAwLmMKKysrIGIvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAw LmMKQEAgLTE0NDk5LDcgKzE0NDk5LDcgQEAgcnM2MDAwX2Fzc2VtYmxlX2ludGVnZXIgKHJ0 eCB4LCB1bnNpZ25lZCBpbnQgc2l6ZSwgaW50IGFsaWduZWRfcCkKIAkgc2VjdGlvbi4gICov CiAgICAgICBpZiAoREVGQVVMVF9BQkkgPT0gQUJJX1Y0CiAJICAmJiAoVEFSR0VUX1JFTE9D QVRBQkxFIHx8IGZsYWdfcGljID4gMSkKLQkgICYmIGluX3NlY3Rpb24gIT0gdG9jX3NlY3Rp b24KKwkgICYmIGNhc20tPmluX3NlY3Rpb24gIT0gdG9jX3NlY3Rpb24KIAkgICYmICFyZWN1 cnNlCiAJICAmJiAhQ09OU1RfU0NBTEFSX0lOVF9QICh4KQogCSAgJiYgQ09OU1RBTlRfUCAo eCkpCkBAIC0yMTA0OCw3ICsyMTA0OCw3IEBAIHJzNjAwMF9lbGZfZmlsZV9lbmQgKHZvaWQp CiAgICAgICAvKiBXZSBoYXZlIGV4cGFuZGVkIGEgQ1BVIGJ1aWx0aW4sIHNvIHdlIG5lZWQg dG8gZW1pdCBhIHJlZmVyZW5jZSB0bwogCSB0aGUgc3BlY2lhbCBzeW1ib2wgdGhhdCBMSUJD IHVzZXMgdG8gZGVjbGFyZSBpdCBzdXBwb3J0cyB0aGUKIAkgQVRfUExBVEZPUk0gYW5kIEFU X0hXQ0FQL0FUX0hXQ0FQMiBpbiB0aGUgVENCIGZlYXR1cmUuICAqLwotICAgICAgc3dpdGNo X3RvX3NlY3Rpb24gKGRhdGFfc2VjdGlvbik7CisgICAgICBzd2l0Y2hfdG9fc2VjdGlvbiAo Y2FzbS0+c2VjLmRhdGEpOwogICAgICAgZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQuYWxp Z24gJXVcbiIsIFRBUkdFVF8zMkJJVCA/IDIgOiAzKTsKICAgICAgIGZwcmludGYgKGFzbV9v dXRfZmlsZSwgIlx0JXMgJXNcbiIsCiAJICAgICAgIFRBUkdFVF8zMkJJVCA/ICIubG9uZyIg OiAiLnF1YWQiLCB0Y2JfdmVyaWZpY2F0aW9uX3N5bWJvbCk7CkBAIC0yMTE3Myw3ICsyMTE3 Myw3IEBAIHJzNjAwMF94Y29mZl9hc21faW5pdF9zZWN0aW9ucyAodm9pZCkKICAgdG9jX3Nl Y3Rpb24KICAgICA9IGdldF91bm5hbWVkX3NlY3Rpb24gKDAsIHJzNjAwMF94Y29mZl9vdXRw dXRfdG9jX3NlY3Rpb25fYXNtX29wLCBOVUxMKTsKIAotICByZWFkb25seV9kYXRhX3NlY3Rp b24gPSByZWFkX29ubHlfZGF0YV9zZWN0aW9uOworICBjYXNtLT5zZWMucmVhZG9ubHlfZGF0 YSA9IHJlYWRfb25seV9kYXRhX3NlY3Rpb247CiB9CiAKIHN0YXRpYyBpbnQKQEAgLTIxMjUx LDcgKzIxMjUxLDcgQEAgcnM2MDAwX3hjb2ZmX3NlbGVjdF9zZWN0aW9uICh0cmVlIGRlY2ws IGludCByZWxvYywKICAgICAgIGlmIChUUkVFX0NPREUgKGRlY2wpID09IFZBUl9ERUNMICYm IERFQ0xfVEhSRUFEX0xPQ0FMX1AgKGRlY2wpKQogCXsKIAkgIGlmIChic3NfaW5pdGlhbGl6 ZXJfcCAoZGVjbCkpCi0JICAgIHJldHVybiB0bHNfY29tbV9zZWN0aW9uOworCSAgICByZXR1 cm4gY2FzbS0+c2VjLnRsc19jb21tOwogCSAgZWxzZSBpZiAoVFJFRV9QVUJMSUMgKGRlY2wp KQogCSAgICByZXR1cm4gdGxzX2RhdGFfc2VjdGlvbjsKIAkgIGVsc2UKQEAgLTIxMjYwLDcg KzIxMjYwLDcgQEAgcnM2MDAwX3hjb2ZmX3NlbGVjdF9zZWN0aW9uICh0cmVlIGRlY2wsIGlu dCByZWxvYywKICAgICAgIGVsc2UKICNlbmRpZgogCWlmIChUUkVFX1BVQkxJQyAoZGVjbCkp Ci0JcmV0dXJuIGRhdGFfc2VjdGlvbjsKKwlyZXR1cm4gY2FzbS0+c2VjLmRhdGE7CiAgICAg ICBlbHNlCiAJcmV0dXJuIHByaXZhdGVfZGF0YV9zZWN0aW9uOwogICAgIH0KQEAgLTIxMzY1 LDcgKzIxMzY1LDcgQEAgcnM2MDAwX3hjb2ZmX2ZpbGVfc3RhcnQgKHZvaWQpCiAgIGlmICh3 cml0ZV9zeW1ib2xzICE9IE5PX0RFQlVHKQogICAgIHN3aXRjaF90b19zZWN0aW9uIChwcml2 YXRlX2RhdGFfc2VjdGlvbik7CiAgIHN3aXRjaF90b19zZWN0aW9uICh0b2Nfc2VjdGlvbik7 Ci0gIHN3aXRjaF90b19zZWN0aW9uICh0ZXh0X3NlY3Rpb24pOworICBzd2l0Y2hfdG9fc2Vj dGlvbiAoY2FzbS0+c2VjLnRleHQpOwogICBpZiAocHJvZmlsZV9mbGFnKQogICAgIGZwcmlu dGYgKGFzbV9vdXRfZmlsZSwgIlx0LmV4dGVybiAlc1xuIiwgUlM2MDAwX01DT1VOVCk7CiAg IHJzNjAwMF9maWxlX3N0YXJ0ICgpOwpAQCAtMjEzNzcsOSArMjEzNzcsOSBAQCByczYwMDBf eGNvZmZfZmlsZV9zdGFydCAodm9pZCkKIHN0YXRpYyB2b2lkCiByczYwMDBfeGNvZmZfZmls ZV9lbmQgKHZvaWQpCiB7Ci0gIHN3aXRjaF90b19zZWN0aW9uICh0ZXh0X3NlY3Rpb24pOwor ICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2VjLnRleHQpOwogICBmcHV0cyAoIl9zZWN0 aW9uXy50ZXh0OlxuIiwgYXNtX291dF9maWxlKTsKLSAgc3dpdGNoX3RvX3NlY3Rpb24gKGRh dGFfc2VjdGlvbik7CisgIHN3aXRjaF90b19zZWN0aW9uIChjYXNtLT5zZWMuZGF0YSk7CiAg IGZwdXRzIChUQVJHRVRfMzJCSVQKIAkgPyAiXHQubG9uZyBfc2VjdGlvbl8udGV4dFxuIiA6 ICJcdC5sbG9uZyBfc2VjdGlvbl8udGV4dFxuIiwKIAkgYXNtX291dF9maWxlKTsKQEAgLTIx NDk5LDcgKzIxNDk5LDcgQEAgcnM2MDAwX3hjb2ZmX3Zpc2liaWxpdHkgKHRyZWUgZGVjbCkK ICAgIERvbGxhciBzaWducyBhcmUgY29udmVydGVkIHRvIHVuZGVyc2NvcmVzLgogCiAgICBU aGUgY3NlY3QgZm9yIHRoZSBmdW5jdGlvbiB3aWxsIGhhdmUgYWxyZWFkeSBiZWVuIGNyZWF0 ZWQgd2hlbgotICAgdGV4dF9zZWN0aW9uIHdhcyBzZWxlY3RlZC4gIFdlIGRvIGhhdmUgdG8g Z28gYmFjayB0byB0aGF0IGNzZWN0LCBob3dldmVyLgorICAgY2FzbS0+c2VjLnRleHQgd2Fz IHNlbGVjdGVkLiAgV2UgZG8gaGF2ZSB0byBnbyBiYWNrIHRvIHRoYXQgY3NlY3QsIGhvd2V2 ZXIuCiAKICAgIFRoZSB0aGlyZCBhbmQgZm91cnRoIHBhcmFtZXRlcnMgdG8gdGhlIC5mdW5j dGlvbiBwc2V1ZG8tb3AgKDE2IGFuZCAwNDQpCiAgICBhcmUgcGxhY2Vob2xkZXJzIHdoaWNo IG5vIGxvbmdlciBoYXZlIGFueSB1c2UuCkBAIC0yMTU2MSw3ICsyMTU2MSw3IEBAIHJzNjAw MF94Y29mZl9kZWNsYXJlX2Z1bmN0aW9uX25hbWUgKEZJTEUgKmZpbGUsIGNvbnN0IGNoYXIg Km5hbWUsIHRyZWUgZGVjbCkKICAgUlM2MDAwX09VVFBVVF9CQVNFTkFNRSAoZmlsZSwgYnVm ZmVyKTsKICAgZnB1dHMgKCIsIFRPQ1t0YzBdLCAwXG4iLCBmaWxlKTsKIAotICBpbl9zZWN0 aW9uID0gTlVMTDsKKyAgY2FzbS0+aW5fc2VjdGlvbiA9IE5VTEw7CiAgIHN3aXRjaF90b19z ZWN0aW9uIChmdW5jdGlvbl9zZWN0aW9uIChkZWNsKSk7CiAgIHB1dGMgKCcuJywgZmlsZSk7 CiAgIEFTTV9PVVRQVVRfTEFCRUwgKGZpbGUsIGJ1ZmZlcik7CkBAIC0yMTYyMSw3ICsyMTYy MSw3IEBAIHJzNjAwMF94Y29mZl9hc21fb3V0cHV0X2FsaWduZWRfZGVjbF9jb21tb24gKEZJ TEUgKnN0cmVhbSwKICAgaWYgKCEgREVDTF9DT01NT04gKGRlY2wpKQogICAgIHsKICAgICAg IC8qIEZvcmdldCBzZWN0aW9uLiAgKi8KLSAgICAgIGluX3NlY3Rpb24gPSBOVUxMOworICAg ICAgY2FzbS0+aW5fc2VjdGlvbiA9IE5VTEw7CiAKICAgICAgIC8qIEdsb2JhbGl6ZSBUTFMg QlNTLiAgKi8KICAgICAgIGlmIChUUkVFX1BVQkxJQyAoZGVjbCkgJiYgREVDTF9USFJFQURf TE9DQUxfUCAoZGVjbCkpCkBAIC0yNjYxNyw3ICsyNjYxNyw3IEBAIHJzNjAwMF9jb2RlX2Vu ZCAodm9pZCkKICAgZWxzZQogI2VuZGlmCiAgICAgewotICAgICAgc3dpdGNoX3RvX3NlY3Rp b24gKHRleHRfc2VjdGlvbik7CisgICAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2Vj LnRleHQpOwogICAgICAgQVNNX09VVFBVVF9MQUJFTCAoYXNtX291dF9maWxlLCBuYW1lKTsK ICAgICB9CiAKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcnM2MDAwL3N5c3Y0LmggYi9nY2Mv Y29uZmlnL3JzNjAwMC9zeXN2NC5oCmluZGV4IDIzZmY1OTQwM2EzLi4wOWJkNGVkNjRiYyAx MDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yczYwMDAvc3lzdjQuaAorKysgYi9nY2MvY29uZmln L3JzNjAwMC9zeXN2NC5oCkBAIC00MjcsNyArNDI3LDcgQEAgZG8gewkJCQkJCQkJCVwKIGRv IHsJCQkJCQkJCQlcCiAgIGlmICgoREVDTCkgJiYgcnM2MDAwX2VsZl9pbl9zbWFsbF9kYXRh X3AgKERFQ0wpKQkJCVwKICAgICB7CQkJCQkJCQkJXAotICAgICAgc3dpdGNoX3RvX3NlY3Rp b24gKHNic3Nfc2VjdGlvbik7CQkJCQlcCisgICAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2Fz bS0+c2VjLnNic3MpOwkJCQkJXAogICAgICAgQVNNX09VVFBVVF9BTElHTiAoRklMRSwgZXhh Y3RfbG9nMiAoQUxJR04gLyBCSVRTX1BFUl9VTklUKSk7CVwKICAgICAgIEFTTV9PVVRQVVRf TEFCRUwgKEZJTEUsIE5BTUUpOwkJCQkJXAogICAgICAgQVNNX09VVFBVVF9TS0lQIChGSUxF LCBTSVpFKTsJCQkJCVwKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcngvcnguYyBiL2djYy9j b25maWcvcngvcnguYwppbmRleCBhZjU0Y2NjMjU4OC4uYzQ1YWZhY2UyMWQgMTAwNjQ0Ci0t LSBhL2djYy9jb25maWcvcngvcnguYworKysgYi9nY2MvY29uZmlnL3J4L3J4LmMKQEAgLTIz MDUsNyArMjMwNSw3IEBAIHJ4X3NlbGVjdF9ydHhfc2VjdGlvbiAobWFjaGluZV9tb2RlIG1v ZGUsCiAgIGlmIChyeF9zbWFsbF9kYXRhX2xpbWl0ID4gMAogICAgICAgJiYgR0VUX01PREVf U0laRSAobW9kZSkgPD0gcnhfc21hbGxfZGF0YV9saW1pdAogICAgICAgJiYgYWxpZ24gPD0g KHVuc2lnbmVkIEhPU1RfV0lERV9JTlQpIHJ4X3NtYWxsX2RhdGFfbGltaXQgKiBCSVRTX1BF Ul9VTklUKQotICAgIHJldHVybiBzZGF0YV9zZWN0aW9uOworICAgIHJldHVybiBjYXNtLT5z ZWMuc2RhdGE7CiAKICAgcmV0dXJuIGRlZmF1bHRfZWxmX3NlbGVjdF9ydHhfc2VjdGlvbiAo bW9kZSwgeCwgYWxpZ24pOwogfQpAQCAtMjMxOSw4ICsyMzE5LDggQEAgcnhfc2VsZWN0X3Nl Y3Rpb24gKHRyZWUgZGVjbCwKICAgICB7CiAgICAgICBzd2l0Y2ggKGNhdGVnb3JpemVfZGVj bF9mb3Jfc2VjdGlvbiAoZGVjbCwgcmVsb2MpKQogCXsKLQljYXNlIFNFQ0NBVF9TREFUQToJ cmV0dXJuIHNkYXRhX3NlY3Rpb247Ci0JY2FzZSBTRUNDQVRfU0JTUzoJcmV0dXJuIHNic3Nf c2VjdGlvbjsKKwljYXNlIFNFQ0NBVF9TREFUQToJcmV0dXJuIGNhc20tPnNlYy5zZGF0YTsK KwljYXNlIFNFQ0NBVF9TQlNTOglyZXR1cm4gY2FzbS0+c2VjLnNic3M7CiAJY2FzZSBTRUND QVRfU1JPREFUQToKIAkgIC8qIEZhbGwgdGhyb3VnaC4gIFdlIGRvIG5vdCBwdXQgc21hbGws IHJlYWQgb25seQogCSAgICAgZGF0YSBpbnRvIHRoZSBDXzIgc2VjdGlvbiBiZWNhdXNlIHdl IGFyZSBub3QKQEAgLTIzNDIsNyArMjM0Miw3IEBAIHJ4X3NlbGVjdF9zZWN0aW9uICh0cmVl IGRlY2wsCiAgICAgICBjYXNlIFNFQ0NBVF9ST0RBVEFfTUVSR0VfQ09OU1Q6CiAgICAgICBj YXNlIFNFQ0NBVF9ST0RBVEFfTUVSR0VfU1RSX0lOSVQ6CiAgICAgICBjYXNlIFNFQ0NBVF9S T0RBVEFfTUVSR0VfU1RSOgotCXJldHVybiByZWFkb25seV9kYXRhX3NlY3Rpb247CisJcmV0 dXJuIGNhc20tPnNlYy5yZWFkb25seV9kYXRhOwogCiAgICAgICBkZWZhdWx0OgogCWJyZWFr OwpAQCAtMjY5MCw5ICsyNjkwLDkgQEAgcnhfZWxmX2FzbV9jZHRvciAocnR4IHN5bWJvbCwg aW50IHByaW9yaXR5LCBib29sIGlzX2N0b3IpCiAgICAgICBzID0gZ2V0X3NlY3Rpb24gKGJ1 ZiwgU0VDVElPTl9XUklURSwgTlVMTF9UUkVFKTsKICAgICB9CiAgIGVsc2UgaWYgKGlzX2N0 b3IpCi0gICAgcyA9IGN0b3JzX3NlY3Rpb247CisgICAgcyA9IGNhc20tPnNlYy5jdG9yczsK ICAgZWxzZQotICAgIHMgPSBkdG9yc19zZWN0aW9uOworICAgIHMgPSBjYXNtLT5zZWMuZHRv cnM7CiAKICAgc3dpdGNoX3RvX3NlY3Rpb24gKHMpOwogICBhc3NlbWJsZV9hbGlnbiAoUE9J TlRFUl9TSVpFKTsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvczM5MC9zMzkwLmMgYi9nY2Mv Y29uZmlnL3MzOTAvczM5MC5jCmluZGV4IDNlNDIyZjA0NWM5Li4xMGIzMzk3NmE5NyAxMDA2 NDQKLS0tIGEvZ2NjL2NvbmZpZy9zMzkwL3MzOTAuYworKysgYi9nY2MvY29uZmlnL3MzOTAv czM5MC5jCkBAIC0xNjYxMiw3ICsxNjYxMiw3IEBAIHMzOTBfb3V0cHV0X2luZGlyZWN0X3Ro dW5rX2Z1bmN0aW9uICh1bnNpZ25lZCBpbnQgcmVnbm8sIGJvb2wgejEwX3ApCiAgICAgfQog ICBlbHNlCiAgICAgewotICAgICAgc3dpdGNoX3RvX3NlY3Rpb24gKHRleHRfc2VjdGlvbik7 CisgICAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2VjLnRleHQpOwogICAgICAgQVNN X09VVFBVVF9MQUJFTCAoYXNtX291dF9maWxlLCB0aHVua19sYWJlbCk7CiAgICAgfQogCmRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL3NoL3NoLmMgYi9nY2MvY29uZmlnL3NoL3NoLmMKaW5k ZXggMTU2NDEwOWM5NDIuLmVmNDJmYzdkNDg5IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3No L3NoLmMKKysrIGIvZ2NjL2NvbmZpZy9zaC9zaC5jCkBAIC0yODI4LDcgKzI4MjgsNyBAQCBz aF9maWxlX3N0YXJ0ICh2b2lkKQogICBlbHNlCiAgICAgLyogU3dpdGNoIHRvIHRoZSBkYXRh IHNlY3Rpb24gc28gdGhhdCB0aGUgY29mZnNlbSBzeW1ib2wKICAgICAgICBpc24ndCBpbiB0 aGUgdGV4dCBzZWN0aW9uLiAgKi8KLSAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoZGF0YV9zZWN0 aW9uKTsKKyAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2VjLmRhdGEpOwogCiAgIGlm IChUQVJHRVRfTElUVExFX0VORElBTikKICAgICBmcHV0cyAoIlx0LmxpdHRsZVxuIiwgYXNt X291dF9maWxlKTsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvc3BhcmMvc29sMi5oIGIvZ2Nj L2NvbmZpZy9zcGFyYy9zb2wyLmgKaW5kZXggMWI0YWEyOGJkMjEuLjFkZDMzZGFhNDQ3IDEw MDY0NAotLS0gYS9nY2MvY29uZmlnL3NwYXJjL3NvbDIuaAorKysgYi9nY2MvY29uZmlnL3Nw YXJjL3NvbDIuaApAQCAtMzk5LDkgKzM5OSw5IEBAIGV4dGVybiBjb25zdCBjaGFyICpob3N0 X2RldGVjdF9sb2NhbF9jcHUgKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndik7CiAgIGRv CQkJCQkJCQkJXAogICAgIHsJCQkJCQkJCQlcCiAgICAgICBpZiAoVEFSR0VUX1NVTl9UTFMJ CQkJCQlcCi0JICAmJiBpbl9zZWN0aW9uCQkJCQkJCVwKLQkgICYmICgoaW5fc2VjdGlvbi0+ Y29tbW9uLmZsYWdzICYgU0VDVElPTl9UTFMpID09IFNFQ1RJT05fVExTKSkJXAotCXN3aXRj aF90b19zZWN0aW9uIChic3Nfc2VjdGlvbik7CQkJCVwKKwkgICYmIGNhc20tPmluX3NlY3Rp b24JCQkJCQkJXAorCSAgJiYgKChjYXNtLT5pbl9zZWN0aW9uLT5jb21tb24uZmxhZ3MgJiBT RUNUSU9OX1RMUykgPT0gU0VDVElPTl9UTFMpKQlcCisJc3dpdGNoX3RvX3NlY3Rpb24gKGNh c20tPnNlYy5ic3MpOwkJCQlcCiAgICAgICBmcHJpbnRmICgoRklMRSksICIlcyIsIENPTU1P Tl9BU01fT1ApOwkJCQlcCiAgICAgICBhc3NlbWJsZV9uYW1lICgoRklMRSksIChOQU1FKSk7 CQkJCQlcCiAgICAgICBmcHJpbnRmICgoRklMRSksICIsIiBIT1NUX1dJREVfSU5UX1BSSU5U X1VOU0lHTkVEIiwldVxuIiwJCVwKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvc3BhcmMvc3Bh cmMuYyBiL2djYy9jb25maWcvc3BhcmMvc3BhcmMuYwppbmRleCAwNmY0MWQ3YmI1My4uOGIx ZDY0MTE3YTkgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvc3BhcmMvc3BhcmMuYworKysgYi9n Y2MvY29uZmlnL3NwYXJjL3NwYXJjLmMKQEAgLTEyNDk5LDcgKzEyNDk5LDcgQEAgc3BhcmNf ZmlsZV9lbmQgKHZvaWQpCiAgICAgICBlbHNlCiAJewogCSAgY29uc3QgaW50IGFsaWduID0g Zmxvb3JfbG9nMiAoRlVOQ1RJT05fQk9VTkRBUlkgLyBCSVRTX1BFUl9VTklUKTsKLSAgICAg ICAgICBzd2l0Y2hfdG9fc2VjdGlvbiAodGV4dF9zZWN0aW9uKTsKKyAgICAgICAgICBzd2l0 Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2VjLnRleHQpOwogCSAgaWYgKGFsaWduID4gMCkKIAkg ICAgQVNNX09VVFBVVF9BTElHTiAoYXNtX291dF9maWxlLCBhbGlnbik7CiAJICBBU01fT1VU UFVUX0xBQkVMIChhc21fb3V0X2ZpbGUsIG5hbWUpOwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy90aWxlZ3gvdGlsZWd4LmggYi9nY2MvY29uZmlnL3RpbGVneC90aWxlZ3guaAppbmRleCBi MGRjY2NmYTNhYS4uOTMxZDkwMDAwMmIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvdGlsZWd4 L3RpbGVneC5oCisrKyBiL2djYy9jb25maWcvdGlsZWd4L3RpbGVneC5oCkBAIC0yOTAsNyAr MjkwLDcgQEAgZW51bSByZWdfY2xhc3MKIAogI2RlZmluZSBUUkFNUE9MSU5FX1NJWkUgKFRB UkdFVF8zMkJJVCA/IDQ4IDogNTYpCiAjZGVmaW5lIFRSQU1QT0xJTkVfQUxJR05NRU5UIDY0 Ci0jZGVmaW5lIFRSQU1QT0xJTkVfU0VDVElPTiB0ZXh0X3NlY3Rpb24KKyNkZWZpbmUgVFJB TVBPTElORV9TRUNUSU9OIGNhc20tPnNlYy50ZXh0CiAMCiAKIC8qIENhbGwgZnJhbWUgZGVi dWdnaW5nIGluZm9ybWF0aW9uLiAgKi8KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvdGlsZXBy by90aWxlcHJvLmggYi9nY2MvY29uZmlnL3RpbGVwcm8vdGlsZXByby5oCmluZGV4IDE5ODZm ODAwODRjLi4zZjk3MjBjNTgyYSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy90aWxlcHJvL3Rp bGVwcm8uaAorKysgYi9nY2MvY29uZmlnL3RpbGVwcm8vdGlsZXByby5oCkBAIC0yNTMsNyAr MjUzLDcgQEAgZW51bSByZWdfY2xhc3MKIAogI2RlZmluZSBUUkFNUE9MSU5FX1NJWkUgNDgK ICNkZWZpbmUgVFJBTVBPTElORV9BTElHTk1FTlQgNjQKLSNkZWZpbmUgVFJBTVBPTElORV9T RUNUSU9OIHRleHRfc2VjdGlvbgorI2RlZmluZSBUUkFNUE9MSU5FX1NFQ1RJT04gY2FzbS0+ c2VjLnRleHQKIAwKIAogLyogQ2FsbCBmcmFtZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uICAq LwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy92ODUwL3Y4NTAuYyBiL2djYy9jb25maWcvdjg1 MC92ODUwLmMKaW5kZXggNDk3OGZhZjkzMTguLjlkYWZhM2QxYTc2IDEwMDY0NAotLS0gYS9n Y2MvY29uZmlnL3Y4NTAvdjg1MC5jCisrKyBiL2djYy9jb25maWcvdjg1MC92ODUwLmMKQEAg LTIzOTgsNyArMjM5OCw3IEBAIHY4NTBfb3V0cHV0X2FsaWduZWRfYnNzIChGSUxFICogZmls ZSwKICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBEQVRBX0FSRUFfU0RBOgotICAgICAgc3dp dGNoX3RvX3NlY3Rpb24gKHNic3Nfc2VjdGlvbik7CisgICAgICBzd2l0Y2hfdG9fc2VjdGlv biAoY2FzbS0+c2VjLnNic3MpOwogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIERBVEFfQVJF QV9UREE6CkBAIC0yNDA2LDcgKzI0MDYsNyBAQCB2ODUwX291dHB1dF9hbGlnbmVkX2JzcyAo RklMRSAqIGZpbGUsCiAgICAgICBicmVhazsKICAgICAgIAogICAgIGRlZmF1bHQ6Ci0gICAg ICBzd2l0Y2hfdG9fc2VjdGlvbiAoYnNzX3NlY3Rpb24pOworICAgICAgc3dpdGNoX3RvX3Nl Y3Rpb24gKGNhc20tPnNlYy5ic3MpOwogICAgICAgYnJlYWs7CiAgICAgfQogICAKQEAgLTI4 ODIsMTMgKzI4ODIsMTMgQEAgdjg1MF9zZWxlY3Rfc2VjdGlvbiAodHJlZSBleHAsCiAJICBy ZXR1cm4gdGRhdGFfc2VjdGlvbjsKIAogICAgICAgICBjYXNlIERBVEFfQVJFQV9TREE6Ci0J ICByZXR1cm4gaXNfY29uc3QgPyByb3NkYXRhX3NlY3Rpb24gOiBzZGF0YV9zZWN0aW9uOwor CSAgcmV0dXJuIGlzX2NvbnN0ID8gcm9zZGF0YV9zZWN0aW9uIDogY2FzbS0+c2VjLnNkYXRh OwogCiAgICAgICAgIGRlZmF1bHQ6Ci0JICByZXR1cm4gaXNfY29uc3QgPyByZWFkb25seV9k YXRhX3NlY3Rpb24gOiBkYXRhX3NlY3Rpb247CisJICByZXR1cm4gaXNfY29uc3QgPyBjYXNt LT5zZWMucmVhZG9ubHlfZGF0YSA6IGNhc20tPnNlYy5kYXRhOwogICAgICAgICB9CiAgICAg fQotICByZXR1cm4gcmVhZG9ubHlfZGF0YV9zZWN0aW9uOworICByZXR1cm4gY2FzbS0+c2Vj LnJlYWRvbmx5X2RhdGE7CiB9CiAMCiAvKiBXb3JrZXIgZnVuY3Rpb24gZm9yIFRBUkdFVF9G VU5DVElPTl9WQUxVRV9SRUdOT19QLiAgKi8KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvdmlz aXVtL3Zpc2l1bS5oIGIvZ2NjL2NvbmZpZy92aXNpdW0vdmlzaXVtLmgKaW5kZXggNjZlM2Rl Y2QwY2MuLmRiZTY1NzY2ZDA5IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Zpc2l1bS92aXNp dW0uaAorKysgYi9nY2MvY29uZmlnL3Zpc2l1bS92aXNpdW0uaApAQCAtMTIzNSw4ICsxMjM1 LDggQEAgZG8JCQkJCQkJCQlcCiAgICBgRVhUUkFfU0VDVElPTl9GVU5DVElPTlMnCiAKICAg IE9uZSBvciBtb3JlIGZ1bmN0aW9ucyB0byBiZSBkZWZpbmVkIGluIGB2YXJhc20uYycuICBU aGVzZSBmdW5jdGlvbnMKLSAgIHNob3VsZCBkbyBqb2JzIGFuYWxvZ291cyB0byB0aG9zZSBv ZiBgdGV4dF9zZWN0aW9uJyBhbmQKLSAgIGBkYXRhX3NlY3Rpb24nLCBmb3IgeW91ciBhZGRp dGlvbmFsIHNlY3Rpb25zLiAgRG8gbm90IGRlZmluZSB0aGlzCisgICBzaG91bGQgZG8gam9i cyBhbmFsb2dvdXMgdG8gdGhvc2Ugb2YgYGNhc20tPnNlYy50ZXh0JyBhbmQKKyAgIGBjYXNt LT5zZWMuZGF0YScsIGZvciB5b3VyIGFkZGl0aW9uYWwgc2VjdGlvbnMuICBEbyBub3QgZGVm aW5lIHRoaXMKICAgIG1hY3JvIGlmIHlvdSBkbyBub3QgZGVmaW5lIGBFWFRSQV9TRUNUSU9O UycuCiAKICAgIGBKVU1QX1RBQkxFU19JTl9URVhUX1NFQ1RJT04nIERlZmluZSB0aGlzIG1h Y3JvIGlmIGp1bXAgdGFibGVzIChmb3IKZGlmZiAtLWdpdCBhL2djYy9kYnhvdXQuYyBiL2dj Yy9kYnhvdXQuYwppbmRleCA2YmUyODI3MTRjZi4uZDhjOTFkMDdjYTcgMTAwNjQ0Ci0tLSBh L2djYy9kYnhvdXQuYworKysgYi9nY2MvZGJ4b3V0LmMKQEAgLTkzNCw3ICs5MzQsNyBAQCBk YnhvdXRfZnVuY3Rpb25fZW5kICh0cmVlIGRlY2wgQVRUUklCVVRFX1VOVVNFRCkKICAgaWYg KGNydGwtPmhhc19iYl9wYXJ0aXRpb24pCiAgICAgewogICAgICAgZGJ4b3V0X2JlZ2luX2Vt cHR5X3N0YWJzIChOX0ZVTik7Ci0gICAgICBpZiAoaW5fY29sZF9zZWN0aW9uX3ApCisgICAg ICBpZiAoY2FzbS0+aW5fY29sZF9zZWN0aW9uX3ApCiAJZGJ4b3V0X3N0YWJfdmFsdWVfbGFi ZWxfZGlmZiAoY3J0bC0+c3Vic2VjdGlvbnMuY29sZF9zZWN0aW9uX2VuZF9sYWJlbCwKIAkJ CQkgICAgICBjcnRsLT5zdWJzZWN0aW9ucy5jb2xkX3NlY3Rpb25fbGFiZWwpOwogICAgICAg ZWxzZQpAQCAtMTA0Miw3ICsxMDQyLDcgQEAgZGJ4b3V0X2luaXQgKGNvbnN0IGNoYXIgKmlu cHV0X2ZpbGVfbmFtZSkKIAogICBpZiAodXNlZF9sdGV4dF9sYWJlbF9uYW1lKQogICAgIHsK LSAgICAgIHN3aXRjaF90b19zZWN0aW9uICh0ZXh0X3NlY3Rpb24pOworICAgICAgc3dpdGNo X3RvX3NlY3Rpb24gKGNhc20tPnNlYy50ZXh0KTsKICAgICAgIHRhcmdldG0uYXNtX291dC5p bnRlcm5hbF9sYWJlbCAoYXNtX291dF9maWxlLCAiTHRleHQiLCAwKTsKICAgICB9CiAKQEAg LTEyNDQsNyArMTI0NCw3IEBAIGRieG91dF9zb3VyY2VfZmlsZSAoY29uc3QgY2hhciAqZmls ZW5hbWUpCiAgICAgewogICAgICAgLyogRG9uJ3QgY2hhbmdlIHNlY3Rpb24gYW1pZCBmdW5j dGlvbi4gICovCiAgICAgICBpZiAoY3VycmVudF9mdW5jdGlvbl9kZWNsID09IE5VTExfVFJF RSkKLQlzd2l0Y2hfdG9fc2VjdGlvbiAodGV4dF9zZWN0aW9uKTsKKwlzd2l0Y2hfdG9fc2Vj dGlvbiAoY2FzbS0+c2VjLnRleHQpOwogCiAgICAgICBkYnhvdXRfYmVnaW5fc2ltcGxlX3N0 YWJzIChyZW1hcF9kZWJ1Z19maWxlbmFtZSAoZmlsZW5hbWUpLCBOX1NPTCk7CiAgICAgICBk YnhvdXRfc3RhYl92YWx1ZV9pbnRlcm5hbF9sYWJlbCAoIkx0ZXh0IiwgJnNvdXJjZV9sYWJl bF9udW1iZXIpOwpAQCAtMTMxNCwxMiArMTMxNCwxMiBAQCBkYnhvdXRfc3dpdGNoX3RleHRf c2VjdGlvbiAodm9pZCkKICAgLyogVGhlIE5fRlVOIHRhZyBhdCB0aGUgZW5kIG9mIHRoZSBm dW5jdGlvbiBpcyBhIEdOVSBleHRlbnNpb24sCiAgICAgIHdoaWNoIG1heSBiZSB1bmRlc2ly YWJsZSwgYW5kIGlzIHVubmVjZXNzYXJ5IGlmIHdlIGRvIG5vdCBoYXZlCiAgICAgIG5hbWVk IHNlY3Rpb25zLiAgKi8KLSAgaW5fY29sZF9zZWN0aW9uX3AgPSAhaW5fY29sZF9zZWN0aW9u X3A7CisgIGNhc20tPmluX2NvbGRfc2VjdGlvbl9wID0gIWNhc20tPmluX2NvbGRfc2VjdGlv bl9wOwogICBzd2l0Y2hfdG9fc2VjdGlvbiAoY3VycmVudF9mdW5jdGlvbl9zZWN0aW9uICgp KTsKICAgZGJ4b3V0X2Jsb2NrIChERUNMX0lOSVRJQUwgKGN1cnJlbnRfZnVuY3Rpb25fZGVj bCksIDAsCiAJCURFQ0xfQVJHVU1FTlRTIChjdXJyZW50X2Z1bmN0aW9uX2RlY2wpLCAtMSk7 CiAgIGRieG91dF9mdW5jdGlvbl9lbmQgKGN1cnJlbnRfZnVuY3Rpb25fZGVjbCk7Ci0gIGlu X2NvbGRfc2VjdGlvbl9wID0gIWluX2NvbGRfc2VjdGlvbl9wOworICBjYXNtLT5pbl9jb2xk X3NlY3Rpb25fcCA9ICFjYXNtLT5pbl9jb2xkX3NlY3Rpb25fcDsKIAogICBzd2l0Y2hfdG9f c2VjdGlvbiAoY3VycmVudF9mdW5jdGlvbl9zZWN0aW9uICgpKTsKIApAQCAtMTQzMiw3ICsx NDMyLDcgQEAgZGJ4b3V0X2ZpbmlzaCAoY29uc3QgY2hhciAqZmlsZW5hbWUgQVRUUklCVVRF X1VOVVNFRCkKICAgREJYX09VVFBVVF9NQUlOX1NPVVJDRV9GSUxFX0VORCAoYXNtX291dF9m aWxlLCBmaWxlbmFtZSk7CiAjZWxpZiBkZWZpbmVkIERCWF9PVVRQVVRfTlVMTF9OX1NPX0FU X01BSU5fU09VUkNFX0ZJTEVfRU5ECiAgewotICAgc3dpdGNoX3RvX3NlY3Rpb24gKHRleHRf c2VjdGlvbik7CisgICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2VjLnRleHQpOwogICAg ZGJ4b3V0X2JlZ2luX2VtcHR5X3N0YWJzIChOX1NPKTsKICAgIGRieG91dF9zdGFiX3ZhbHVl X2ludGVybmFsX2xhYmVsICgiTGV0ZXh0IiwgMCk7CiAgfQpAQCAtMzExNCw3ICszMTE0LDcg QEAgZGJ4b3V0X3N5bWJvbF9sb2NhdGlvbiAodHJlZSBkZWNsLCB0cmVlIHR5cGUsIGNvbnN0 IGNoYXIgKnN1ZmZpeCwgcnR4IGhvbWUpCiAJICAgIHsKIAkgICAgICAvKiBVbHRyaXggYGFz JyBzZWVtcyB0byBuZWVkIHRoaXMuICAqLwogI2lmZGVmIERCWF9TVEFUSUNfU1RBQl9EQVRB X1NFQ1RJT04KLQkgICAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoZGF0YV9zZWN0aW9uKTsKKwkg ICAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2VjLmRhdGEpOwogI2VuZGlmCiAJICAg ICAgY29kZSA9IE5fU1RTWU07CiAJICAgIH0KQEAgLTM3NzYsNyArMzc3Niw3IEBAIGRieG91 dF9ibG9jayAodHJlZSBibG9jaywgaW50IGRlcHRoLCB0cmVlIGFyZ3MsIGludCBwYXJlbnRf YmxvY2tudW0pCiAKICAgLyogSWYgY2FsbGVkIGZvciB0aGUgc2Vjb25kIHBhcnRpdGlvbiwg aWdub3JlIGJsb2NrcyB0aGF0IGRvbid0IGhhdmUKICAgICAgYW55IGNoaWxkcmVuIGluIHRo ZSBzZWNvbmQgcGFydGl0aW9uLiAgKi8KLSAgaWYgKGNydGwtPmhhc19iYl9wYXJ0aXRpb24g JiYgaW5fY29sZF9zZWN0aW9uX3AgJiYgZGVwdGggPT0gMCkKKyAgaWYgKGNydGwtPmhhc19i Yl9wYXJ0aXRpb24gJiYgY2FzbS0+aW5fY29sZF9zZWN0aW9uX3AgJiYgZGVwdGggPT0gMCkK ICAgICBkYnhfYmxvY2tfd2l0aF9jb2xkX2NoaWxkcmVuIChibG9jayk7CiAKICAgZm9yICg7 IGJsb2NrOyBibG9jayA9IEJMT0NLX0NIQUlOIChibG9jaykpCkBAIC0zODAxLDcgKzM4MDEs NyBAQCBkYnhvdXRfYmxvY2sgKHRyZWUgYmxvY2ssIGludCBkZXB0aCwgdHJlZSBhcmdzLCBp bnQgcGFyZW50X2Jsb2NrbnVtKQogCSAgICAgdGhlIGFzc2VtYmxlciBzeW1ib2xzIExCQm4g YW5kIExCRW4KIAkgICAgIHRoYXQgZmluYWwgd2lsbCBkZWZpbmUgYXJvdW5kIHRoZSBjb2Rl IGluIHRoaXMgYmxvY2suICAqLwogCSAgaWYgKGRpZF9vdXRwdXQKLQkgICAgICAmJiBCTE9D S19JTl9DT0xEX1NFQ1RJT05fUCAoYmxvY2spID09IGluX2NvbGRfc2VjdGlvbl9wKQorCSAg ICAgICYmIEJMT0NLX0lOX0NPTERfU0VDVElPTl9QIChibG9jaykgPT0gY2FzbS0+aW5fY29s ZF9zZWN0aW9uX3ApCiAJICAgIHsKIAkgICAgICBjaGFyIGJ1ZlsyMF07CiAJICAgICAgY29u c3QgY2hhciAqc2NvcGVfc3RhcnQ7CkBAIC0zODI5LDcgKzM4MjksNyBAQCBkYnhvdXRfYmxv Y2sgKHRyZWUgYmxvY2ssIGludCBkZXB0aCwgdHJlZSBhcmdzLCBpbnQgcGFyZW50X2Jsb2Nr bnVtKQogCiAJICAvKiBSZWZlciB0byB0aGUgbWFya2VyIGZvciB0aGUgZW5kIG9mIHRoZSBi bG9jay4gICovCiAJICBpZiAoZGlkX291dHB1dAotCSAgICAgICYmIEJMT0NLX0lOX0NPTERf U0VDVElPTl9QIChibG9jaykgPT0gaW5fY29sZF9zZWN0aW9uX3ApCisJICAgICAgJiYgQkxP Q0tfSU5fQ09MRF9TRUNUSU9OX1AgKGJsb2NrKSA9PSBjYXNtLT5pbl9jb2xkX3NlY3Rpb25f cCkKIAkgICAgewogCSAgICAgIGNoYXIgYnVmWzEwMF07CiAJICAgICAgaWYgKGRlcHRoID09 IDApCmRpZmYgLS1naXQgYS9nY2MvZG9jL3RtLnRleGkgYi9nY2MvZG9jL3RtLnRleGkKaW5k ZXggYmU4MTQ4NTgzZDguLmM2NmJkNTllYWQ5IDEwMDY0NAotLS0gYS9nY2MvZG9jL3RtLnRl eGkKKysrIGIvZ2NjL2RvYy90bS50ZXhpCkBAIC01NTYyLDcgKzU1NjIsNyBAQCB0byBnZW5l cmF0ZSBpdCBvbiB0aGUgc3BvdC4KIAogQGRlZm1hYyBUUkFNUE9MSU5FX1NFQ1RJT04KIFJl dHVybiB0aGUgc2VjdGlvbiBpbnRvIHdoaWNoIHRoZSB0cmFtcG9saW5lIHRlbXBsYXRlIGlz IHRvIGJlIHBsYWNlZAotKEBweHJlZntTZWN0aW9uc30pLiAgVGhlIGRlZmF1bHQgdmFsdWUg aXMgQGNvZGV7cmVhZG9ubHlfZGF0YV9zZWN0aW9ufS4KKyhAcHhyZWZ7U2VjdGlvbnN9KS4g IFRoZSBkZWZhdWx0IHZhbHVlIGlzIEBjb2Rle2Nhc20tPnNlYy5yZWFkb25seV9kYXRhfS4K IEBlbmQgZGVmbWFjCiAKIEBkZWZtYWMgVFJBTVBPTElORV9TSVpFCkBAIC03NjIzLDcgKzc2 MjMsNyBAQCBzZWN0aW9ufSwgd2hpY2ggaG9sZHMgdW5pbml0aWFsaXplZCBkYXRhLiAgU29t ZSBzeXN0ZW1zIGhhdmUgb3RoZXIga2luZHMKIG9mIHNlY3Rpb25zLgogCiBAZmlsZXt2YXJh c20uY30gcHJvdmlkZXMgc2V2ZXJhbCB3ZWxsLWtub3duIHNlY3Rpb25zLCBzdWNoIGFzCi1A Y29kZXt0ZXh0X3NlY3Rpb259LCBAY29kZXtkYXRhX3NlY3Rpb259IGFuZCBAY29kZXtic3Nf c2VjdGlvbn0uCitAY29kZXtjYXNtLT5zZWMudGV4dH0sIEBjb2Rle2Nhc20tPnNlYy5kYXRh fSBhbmQgQGNvZGV7Y2FzbS0+c2VjLmJzc30uCiBUaGUgbm9ybWFsIHdheSBvZiBjb250cm9s bGluZyBhIEBjb2Rle0B2YXJ7Zm9vfV9zZWN0aW9ufSB2YXJpYWJsZQogaXMgdG8gZGVmaW5l IHRoZSBhc3NvY2lhdGVkIEBjb2Rle0B2YXJ7Rk9PfV9TRUNUSU9OX0FTTV9PUH0gbWFjcm8s CiBhcyBkZXNjcmliZWQgYmVsb3cuICBUaGUgbWFjcm9zIGFyZSBvbmx5IHJlYWQgb25jZSwg d2hlbiBAZmlsZXt2YXJhc20uY30KQEAgLTc2MzksMTIgKzc2MzksMTIgQEAgc2VjdGlvbiBp cyBzZWxlY3RlZC4gIElmIHlvdXIgYXNzZW1ibGVyIGZhbGxzIGludG8gdGhpcyBjYXRlZ29y eSwgeW91CiBzaG91bGQgZGVmaW5lIHRoZSBAY29kZXtUQVJHRVRfQVNNX0lOSVRfU0VDVElP TlN9IGhvb2sgYW5kIHVzZQogQGNvZGV7Z2V0X3VubmFtZWRfc2VjdGlvbn0gdG8gc2V0IHVw IHRoZSBzZWN0aW9ucy4KIAotWW91IG11c3QgYWx3YXlzIGNyZWF0ZSBhIEBjb2Rle3RleHRf c2VjdGlvbn0sIGVpdGhlciBieSBkZWZpbmluZwotQGNvZGV7VEVYVF9TRUNUSU9OX0FTTV9P UH0gb3IgYnkgaW5pdGlhbGl6aW5nIEBjb2Rle3RleHRfc2VjdGlvbn0KK1lvdSBtdXN0IGFs d2F5cyBjcmVhdGUgYSBAY29kZXtjYXNtLT5zZWMudGV4dH0sIGVpdGhlciBieSBkZWZpbmlu ZworQGNvZGV7VEVYVF9TRUNUSU9OX0FTTV9PUH0gb3IgYnkgaW5pdGlhbGl6aW5nIEBjb2Rl e2Nhc20tPnNlYy50ZXh0fQogaW4gQGNvZGV7VEFSR0VUX0FTTV9JTklUX1NFQ1RJT05TfS4g IFRoZSBzYW1lIGlzIHRydWUgb2YKLUBjb2Rle2RhdGFfc2VjdGlvbn0gYW5kIEBjb2Rle0RB VEFfU0VDVElPTl9BU01fT1B9LiAgSWYgeW91IGRvIG5vdAotY3JlYXRlIGEgZGlzdGluY3Qg QGNvZGV7cmVhZG9ubHlfZGF0YV9zZWN0aW9ufSwgdGhlIGRlZmF1bHQgaXMgdG8KLXJldXNl IEBjb2Rle3RleHRfc2VjdGlvbn0uCitAY29kZXtjYXNtLT5zZWMuZGF0YX0gYW5kIEBjb2Rl e0RBVEFfU0VDVElPTl9BU01fT1B9LiAgSWYgeW91IGRvIG5vdAorY3JlYXRlIGEgZGlzdGlu Y3QgQGNvZGV7Y2FzbS0+c2VjLnJlYWRvbmx5X2RhdGF9LCB0aGUgZGVmYXVsdCBpcyB0bwor cmV1c2UgQGNvZGV7Y2FzbS0+c2VjLnRleHR9LgogCiBBbGwgdGhlIG90aGVyIEBmaWxle3Zh cmFzbS5jfSBzZWN0aW9ucyBhcmUgb3B0aW9uYWwsIGFuZCBhcmUgbnVsbAogaWYgdGhlIHRh cmdldCBkb2VzIG5vdCBwcm92aWRlIHRoZW0uCmRpZmYgLS1naXQgYS9nY2MvZG9jL3RtLnRl eGkuaW4gYi9nY2MvZG9jL3RtLnRleGkuaW4KaW5kZXggZDA4OGVlZTRhZmUuLjA2ODg0ZjFk YzIxIDEwMDY0NAotLS0gYS9nY2MvZG9jL3RtLnRleGkuaW4KKysrIGIvZ2NjL2RvYy90bS50 ZXhpLmluCkBAIC0zODYyLDcgKzM4NjIsNyBAQCBzZXBhcmF0ZWx5LgogCiBAZGVmbWFjIFRS QU1QT0xJTkVfU0VDVElPTgogUmV0dXJuIHRoZSBzZWN0aW9uIGludG8gd2hpY2ggdGhlIHRy YW1wb2xpbmUgdGVtcGxhdGUgaXMgdG8gYmUgcGxhY2VkCi0oQHB4cmVme1NlY3Rpb25zfSku ICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBAY29kZXtyZWFkb25seV9kYXRhX3NlY3Rpb259Lgor KEBweHJlZntTZWN0aW9uc30pLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgQGNvZGV7Y2FzbS0+ c2VjLnJlYWRvbmx5X2RhdGF9LgogQGVuZCBkZWZtYWMKIAogQGRlZm1hYyBUUkFNUE9MSU5F X1NJWkUKQEAgLTQ3NTgsNyArNDc1OCw3IEBAIHNlY3Rpb259LCB3aGljaCBob2xkcyB1bmlu aXRpYWxpemVkIGRhdGEuICBTb21lIHN5c3RlbXMgaGF2ZSBvdGhlciBraW5kcwogb2Ygc2Vj dGlvbnMuCiAKIEBmaWxle3ZhcmFzbS5jfSBwcm92aWRlcyBzZXZlcmFsIHdlbGwta25vd24g c2VjdGlvbnMsIHN1Y2ggYXMKLUBjb2Rle3RleHRfc2VjdGlvbn0sIEBjb2Rle2RhdGFfc2Vj dGlvbn0gYW5kIEBjb2Rle2Jzc19zZWN0aW9ufS4KK0Bjb2Rle2Nhc20tPnNlYy50ZXh0fSwg QGNvZGV7Y2FzbS0+c2VjLmRhdGF9IGFuZCBAY29kZXtjYXNtLT5zZWMuYnNzfS4KIFRoZSBu b3JtYWwgd2F5IG9mIGNvbnRyb2xsaW5nIGEgQGNvZGV7QHZhcntmb299X3NlY3Rpb259IHZh cmlhYmxlCiBpcyB0byBkZWZpbmUgdGhlIGFzc29jaWF0ZWQgQGNvZGV7QHZhcntGT099X1NF Q1RJT05fQVNNX09QfSBtYWNybywKIGFzIGRlc2NyaWJlZCBiZWxvdy4gIFRoZSBtYWNyb3Mg YXJlIG9ubHkgcmVhZCBvbmNlLCB3aGVuIEBmaWxle3ZhcmFzbS5jfQpAQCAtNDc3NCwxMiAr NDc3NCwxMiBAQCBzZWN0aW9uIGlzIHNlbGVjdGVkLiAgSWYgeW91ciBhc3NlbWJsZXIgZmFs bHMgaW50byB0aGlzIGNhdGVnb3J5LCB5b3UKIHNob3VsZCBkZWZpbmUgdGhlIEBjb2Rle1RB UkdFVF9BU01fSU5JVF9TRUNUSU9OU30gaG9vayBhbmQgdXNlCiBAY29kZXtnZXRfdW5uYW1l ZF9zZWN0aW9ufSB0byBzZXQgdXAgdGhlIHNlY3Rpb25zLgogCi1Zb3UgbXVzdCBhbHdheXMg Y3JlYXRlIGEgQGNvZGV7dGV4dF9zZWN0aW9ufSwgZWl0aGVyIGJ5IGRlZmluaW5nCi1AY29k ZXtURVhUX1NFQ1RJT05fQVNNX09QfSBvciBieSBpbml0aWFsaXppbmcgQGNvZGV7dGV4dF9z ZWN0aW9ufQorWW91IG11c3QgYWx3YXlzIGNyZWF0ZSBhIEBjb2Rle2Nhc20tPnNlYy50ZXh0 fSwgZWl0aGVyIGJ5IGRlZmluaW5nCitAY29kZXtURVhUX1NFQ1RJT05fQVNNX09QfSBvciBi eSBpbml0aWFsaXppbmcgQGNvZGV7Y2FzbS0+c2VjLnRleHR9CiBpbiBAY29kZXtUQVJHRVRf QVNNX0lOSVRfU0VDVElPTlN9LiAgVGhlIHNhbWUgaXMgdHJ1ZSBvZgotQGNvZGV7ZGF0YV9z ZWN0aW9ufSBhbmQgQGNvZGV7REFUQV9TRUNUSU9OX0FTTV9PUH0uICBJZiB5b3UgZG8gbm90 Ci1jcmVhdGUgYSBkaXN0aW5jdCBAY29kZXtyZWFkb25seV9kYXRhX3NlY3Rpb259LCB0aGUg ZGVmYXVsdCBpcyB0bwotcmV1c2UgQGNvZGV7dGV4dF9zZWN0aW9ufS4KK0Bjb2Rle2Nhc20t PnNlYy5kYXRhfSBhbmQgQGNvZGV7REFUQV9TRUNUSU9OX0FTTV9PUH0uICBJZiB5b3UgZG8g bm90CitjcmVhdGUgYSBkaXN0aW5jdCBAY29kZXtjYXNtLT5zZWMucmVhZG9ubHlfZGF0YX0s IHRoZSBkZWZhdWx0IGlzIHRvCityZXVzZSBAY29kZXtjYXNtLT5zZWMudGV4dH0uCiAKIEFs bCB0aGUgb3RoZXIgQGZpbGV7dmFyYXNtLmN9IHNlY3Rpb25zIGFyZSBvcHRpb25hbCwgYW5k IGFyZSBudWxsCiBpZiB0aGUgdGFyZ2V0IGRvZXMgbm90IHByb3ZpZGUgdGhlbS4KZGlmZiAt LWdpdCBhL2djYy9kd2FyZjJvdXQuYyBiL2djYy9kd2FyZjJvdXQuYwppbmRleCA5ODc2NzUw ZTRmOS4uODYzNzI5YWVhMjUgMTAwNjQ0Ci0tLSBhL2djYy9kd2FyZjJvdXQuYworKysgYi9n Y2MvZHdhcmYyb3V0LmMKQEAgLTQzOCwxNCArNDM4LDE0IEBAIHNob3VsZF9lbWl0X3N0cnVj dF9kZWJ1ZyAodHJlZSB0eXBlLCBlbnVtIGRlYnVnX2luZm9fdXNhZ2UgdXNhZ2UpCiAgIHJl dHVybiBEVU1QX0dTVFJVQ1QgKHR5cGUsIHVzYWdlLCBjcml0ZXJpb24sIGdlbmVyaWMsIGZh bHNlLCBmYWxzZSk7CiB9CiAMCi0vKiBTd2l0Y2ggW0JBQ0tdIHRvIGVoX2ZyYW1lX3NlY3Rp b24uICBJZiB3ZSBkb24ndCBoYXZlIGFuIGVoX2ZyYW1lX3NlY3Rpb24sCisvKiBTd2l0Y2gg W0JBQ0tdIHRvIGNhc20tPnNlYy5laF9mcmFtZS4gIElmIHdlIGRvbid0IGhhdmUgYW4gY2Fz bS0+c2VjLmVoX2ZyYW1lLAogICAgc3dpdGNoIHRvIHRoZSBkYXRhIHNlY3Rpb24gaW5zdGVh ZCwgYW5kIHdyaXRlIG91dCBhIHN5bnRoZXRpYyBzdGFydCBsYWJlbAogICAgZm9yIGNvbGxl Y3QyIHRoZSBmaXJzdCB0aW1lIGFyb3VuZC4gICovCiAKIHN0YXRpYyB2b2lkCiBzd2l0Y2hf dG9fZWhfZnJhbWVfc2VjdGlvbiAoYm9vbCBiYWNrIEFUVFJJQlVURV9VTlVTRUQpCiB7Ci0g IGlmIChlaF9mcmFtZV9zZWN0aW9uID09IDApCisgIGlmIChjYXNtLT5zZWMuZWhfZnJhbWUg PT0gMCkKICAgICB7CiAgICAgICBpbnQgZmxhZ3M7CiAKQEAgLTQ3NCwxNCArNDc0LDE0IEBA IHN3aXRjaF90b19laF9mcmFtZV9zZWN0aW9uIChib29sIGJhY2sgQVRUUklCVVRFX1VOVVNF RCkKIAlmbGFncyA9IFNFQ1RJT05fV1JJVEU7CiAKICNpZmRlZiBFSF9GUkFNRV9TRUNUSU9O X05BTUUKLSAgICAgIGVoX2ZyYW1lX3NlY3Rpb24gPSBnZXRfc2VjdGlvbiAoRUhfRlJBTUVf U0VDVElPTl9OQU1FLCBmbGFncywgTlVMTCk7CisgICAgICBjYXNtLT5zZWMuZWhfZnJhbWUg PSBnZXRfc2VjdGlvbiAoRUhfRlJBTUVfU0VDVElPTl9OQU1FLCBmbGFncywgTlVMTCk7CiAj ZWxzZQotICAgICAgZWhfZnJhbWVfc2VjdGlvbiA9ICgoZmxhZ3MgPT0gU0VDVElPTl9XUklU RSkKLQkJCSAgPyBkYXRhX3NlY3Rpb24gOiByZWFkb25seV9kYXRhX3NlY3Rpb24pOworICAg ICAgY2FzbS0+c2VjLmVoX2ZyYW1lID0gKChmbGFncyA9PSBTRUNUSU9OX1dSSVRFKQorCQkJ ICA/IGNhc20tPnNlYy5kYXRhIDogY2FzbS0+c2VjLnJlYWRvbmx5X2RhdGEpOwogI2VuZGlm IC8qIEVIX0ZSQU1FX1NFQ1RJT05fTkFNRSAqLwogICAgIH0KIAotICBzd2l0Y2hfdG9fc2Vj dGlvbiAoZWhfZnJhbWVfc2VjdGlvbik7CisgIHN3aXRjaF90b19zZWN0aW9uIChjYXNtLT5z ZWMuZWhfZnJhbWUpOwogCiAjaWZkZWYgRUhfRlJBTUVfVEhST1VHSF9DT0xMRUNUMgogICAv KiBXZSBoYXZlIG5vIHNwZWNpYWwgZWhfZnJhbWUgc2VjdGlvbi4gIEVtaXQgc3BlY2lhbCBs YWJlbHMgdG8gZ3VpZGUKQEAgLTExMTMsMTAgKzExMTMsMTAgQEAgZHdhcmYyb3V0X2JlZ2lu X3Byb2xvZ3VlICh1bnNpZ25lZCBpbnQgbGluZSBBVFRSSUJVVEVfVU5VU0VELAogICAvKiBJ bml0aWFsaXplIHRoZSBiaXRzIG9mIENVUlJFTlRfRkRFIHRoYXQgd2VyZSBub3QgYXZhaWxh YmxlIGVhcmxpZXIuICAqLwogICBmZGUtPmR3X2ZkZV9iZWdpbiA9IGR1cF9sYWJlbDsKICAg ZmRlLT5kd19mZGVfY3VycmVudF9sYWJlbCA9IGR1cF9sYWJlbDsKLSAgZmRlLT5pbl9zdGRf c2VjdGlvbiA9IChmbnNlYyA9PSB0ZXh0X3NlY3Rpb24KKyAgZmRlLT5pbl9zdGRfc2VjdGlv biA9IChmbnNlYyA9PSBjYXNtLT5zZWMudGV4dAogCQkJIHx8IChjb2xkX3RleHRfc2VjdGlv biAmJiBmbnNlYyA9PSBjb2xkX3RleHRfc2VjdGlvbikpOwogICBmZGUtPmlnbm9yZWRfZGVi dWcgPSBERUNMX0lHTk9SRURfUCAoY3VycmVudF9mdW5jdGlvbl9kZWNsKTsKLSAgaW5fdGV4 dF9zZWN0aW9uX3AgPSBmbnNlYyA9PSB0ZXh0X3NlY3Rpb247CisgIGluX3RleHRfc2VjdGlv bl9wID0gZm5zZWMgPT0gY2FzbS0+c2VjLnRleHQ7CiAKICAgLyogV2Ugb25seSB3YW50IHRv IG91dHB1dCBsaW5lIG51bWJlciBpbmZvcm1hdGlvbiBmb3IgdGhlIGdlbnVpbmUgZHdhcmYy CiAgICAgIHByb2xvZ3VlIGNhc2UsIG5vdCB0aGUgZWggZnJhbWUgY2FzZS4gICovCkBAIC0x Mjk1LDcgKzEyOTUsNyBAQCBkd2FyZjJvdXRfc3dpdGNoX3RleHRfc2VjdGlvbiAodm9pZCkK IAkJCSAgICAgICBjdXJyZW50X2Z1bmN0aW9uX2Z1bmNkZWZfbm8pOwogCiAgIGZkZS0+ZHdf ZmRlX3NlY29uZF9iZWdpbiA9IGdnY19zdHJkdXAgKGxhYmVsKTsKLSAgaWYgKCFpbl9jb2xk X3NlY3Rpb25fcCkKKyAgaWYgKCFjYXNtLT5pbl9jb2xkX3NlY3Rpb25fcCkKICAgICB7CiAg ICAgICBmZGUtPmR3X2ZkZV9lbmQgPSBjcnRsLT5zdWJzZWN0aW9ucy5jb2xkX3NlY3Rpb25f ZW5kX2xhYmVsOwogICAgICAgZmRlLT5kd19mZGVfc2Vjb25kX2VuZCA9IGNydGwtPnN1YnNl Y3Rpb25zLmhvdF9zZWN0aW9uX2VuZF9sYWJlbDsKQEAgLTEzMTcsOSArMTMxNyw5IEBAIGR3 YXJmMm91dF9zd2l0Y2hfdGV4dF9zZWN0aW9uICh2b2lkKQogICBzd2l0Y2hfdG9fc2VjdGlv biAoc2VjdCk7CiAKICAgZmRlLT5zZWNvbmRfaW5fc3RkX3NlY3Rpb24KLSAgICA9IChzZWN0 ID09IHRleHRfc2VjdGlvbgorICAgID0gKHNlY3QgPT0gY2FzbS0+c2VjLnRleHQKICAgICAg ICB8fCAoY29sZF90ZXh0X3NlY3Rpb24gJiYgc2VjdCA9PSBjb2xkX3RleHRfc2VjdGlvbikp OwotICBpbl90ZXh0X3NlY3Rpb25fcCA9IHNlY3QgPT0gdGV4dF9zZWN0aW9uOworICBpbl90 ZXh0X3NlY3Rpb25fcCA9IHNlY3QgPT0gY2FzbS0+c2VjLnRleHQ7CiAKICAgaWYgKGR3YXJm Mm91dF9kb19jZmlfYXNtICgpKQogICAgIGR3YXJmMm91dF9kb19jZmlfc3RhcnRwcm9jICh0 cnVlKTsKQEAgLTE3MjY4LDcgKzE3MjY4LDcgQEAgc2VjbmFtZV9mb3JfZGVjbCAoY29uc3Rf dHJlZSBkZWNsKQogICAgIHNlY25hbWUgPSBERUNMX1NFQ1RJT05fTkFNRSAoZGVjbCk7CiAg IGVsc2UgaWYgKGN1cnJlbnRfZnVuY3Rpb25fZGVjbCAmJiBERUNMX1NFQ1RJT05fTkFNRSAo Y3VycmVudF9mdW5jdGlvbl9kZWNsKSkKICAgICB7Ci0gICAgICBpZiAoaW5fY29sZF9zZWN0 aW9uX3ApCisgICAgICBpZiAoY2FzbS0+aW5fY29sZF9zZWN0aW9uX3ApCiAJewogCSAgc2Vj dGlvbiAqc2VjID0gY3VycmVudF9mdW5jdGlvbl9zZWN0aW9uICgpOwogCSAgaWYgKHNlYy0+ Y29tbW9uLmZsYWdzICYgU0VDVElPTl9OQU1FRCkKQEAgLTE3Mjc2LDcgKzE3Mjc2LDcgQEAg c2VjbmFtZV9mb3JfZGVjbCAoY29uc3RfdHJlZSBkZWNsKQogCX0KICAgICAgIHNlY25hbWUg PSBERUNMX1NFQ1RJT05fTkFNRSAoY3VycmVudF9mdW5jdGlvbl9kZWNsKTsKICAgICB9Ci0g IGVsc2UgaWYgKGNmdW4gJiYgaW5fY29sZF9zZWN0aW9uX3ApCisgIGVsc2UgaWYgKGNmdW4g JiYgY2FzbS0+aW5fY29sZF9zZWN0aW9uX3ApCiAgICAgc2VjbmFtZSA9IGNydGwtPnN1YnNl Y3Rpb25zLmNvbGRfc2VjdGlvbl9sYWJlbDsKICAgZWxzZQogICAgIHNlY25hbWUgPSB0ZXh0 X3NlY3Rpb25fbGFiZWw7CkBAIC0xNzU5NywxMiArMTc1OTcsMTIgQEAgZHdfbG9jX2xpc3Qg KHZhcl9sb2NfbGlzdCAqbG9jX2xpc3QsIHRyZWUgZGVjbCwgaW50IHdhbnRfYWRkcmVzcykK IAogICBpZiAoY2Z1biAmJiBjcnRsLT5oYXNfYmJfcGFydGl0aW9uKQogICAgIHsKLSAgICAg IGJvb2wgc2F2ZV9pbl9jb2xkX3NlY3Rpb25fcCA9IGluX2NvbGRfc2VjdGlvbl9wOwotICAg ICAgaW5fY29sZF9zZWN0aW9uX3AgPSBmaXJzdF9mdW5jdGlvbl9ibG9ja19pc19jb2xkOwor ICAgICAgYm9vbCBzYXZlX2luX2NvbGRfc2VjdGlvbl9wID0gY2FzbS0+aW5fY29sZF9zZWN0 aW9uX3A7CisgICAgICBjYXNtLT5pbl9jb2xkX3NlY3Rpb25fcCA9IGZpcnN0X2Z1bmN0aW9u X2Jsb2NrX2lzX2NvbGQ7CiAgICAgICBpZiAobG9jX2xpc3QtPmxhc3RfYmVmb3JlX3N3aXRj aCA9PSBOVUxMKQotCWluX2NvbGRfc2VjdGlvbl9wID0gIWluX2NvbGRfc2VjdGlvbl9wOwor CWNhc20tPmluX2NvbGRfc2VjdGlvbl9wID0gIWNhc20tPmluX2NvbGRfc2VjdGlvbl9wOwog ICAgICAgc2VjbmFtZSA9IHNlY25hbWVfZm9yX2RlY2wgKGRlY2wpOwotICAgICAgaW5fY29s ZF9zZWN0aW9uX3AgPSBzYXZlX2luX2NvbGRfc2VjdGlvbl9wOworICAgICAgY2FzbS0+aW5f Y29sZF9zZWN0aW9uX3AgPSBzYXZlX2luX2NvbGRfc2VjdGlvbl9wOwogICAgIH0KICAgZWxz ZQogICAgIHNlY25hbWUgPSBzZWNuYW1lX2Zvcl9kZWNsIChkZWNsKTsKQEAgLTE3NjgwLDEw ICsxNzY4MCwxMCBAQCBkd19sb2NfbGlzdCAodmFyX2xvY19saXN0ICpsb2NfbGlzdCwgdHJl ZSBkZWNsLCBpbnQgd2FudF9hZGRyZXNzKQogCSAgJiYgY3J0bC0+aGFzX2JiX3BhcnRpdGlv bgogCSAgJiYgbm9kZSA9PSBsb2NfbGlzdC0+bGFzdF9iZWZvcmVfc3dpdGNoKQogCXsKLQkg IGJvb2wgc2F2ZV9pbl9jb2xkX3NlY3Rpb25fcCA9IGluX2NvbGRfc2VjdGlvbl9wOwotCSAg aW5fY29sZF9zZWN0aW9uX3AgPSAhZmlyc3RfZnVuY3Rpb25fYmxvY2tfaXNfY29sZDsKKwkg IGJvb2wgc2F2ZV9pbl9jb2xkX3NlY3Rpb25fcCA9IGNhc20tPmluX2NvbGRfc2VjdGlvbl9w OworCSAgY2FzbS0+aW5fY29sZF9zZWN0aW9uX3AgPSAhZmlyc3RfZnVuY3Rpb25fYmxvY2tf aXNfY29sZDsKIAkgIHNlY25hbWUgPSBzZWNuYW1lX2Zvcl9kZWNsIChkZWNsKTsKLQkgIGlu X2NvbGRfc2VjdGlvbl9wID0gc2F2ZV9pbl9jb2xkX3NlY3Rpb25fcDsKKwkgIGNhc20tPmlu X2NvbGRfc2VjdGlvbl9wID0gc2F2ZV9pbl9jb2xkX3NlY3Rpb25fcDsKIAl9CiAKICAgICAg IGlmIChyYW5nZV9hY3Jvc3Nfc3dpdGNoKQpAQCAtMjc4NTEsNyArMjc4NTEsNyBAQCBjcmVh dGVfbGFiZWw6CiAgICAgIGxhc3Rfeyxwb3N0Y2FsbF99bGFiZWwgc28gdGhhdCB0aGV5IGFy ZSBub3QgcmV1c2VkIHRoaXMgdGltZS4gICovCiAgIGlmIChsYXN0X3Zhcl9sb2NhdGlvbl9p bnNuID09IE5VTExfUlRYCiAgICAgICB8fCBsYXN0X3Zhcl9sb2NhdGlvbl9pbnNuICE9IG5l eHRfcmVhbAotICAgICAgfHwgbGFzdF9pbl9jb2xkX3NlY3Rpb25fcCAhPSBpbl9jb2xkX3Nl Y3Rpb25fcCkKKyAgICAgIHx8IGxhc3RfaW5fY29sZF9zZWN0aW9uX3AgIT0gY2FzbS0+aW5f Y29sZF9zZWN0aW9uX3ApCiAgICAgewogICAgICAgbGFzdF9sYWJlbCA9IE5VTEw7CiAgICAg ICBsYXN0X3Bvc3RjYWxsX2xhYmVsID0gTlVMTDsKQEAgLTI4MDIyLDcgKzI4MDIyLDcgQEAg Y3JlYXRlX2xhYmVsOgogICAgIH0KIAogICBsYXN0X3Zhcl9sb2NhdGlvbl9pbnNuID0gbmV4 dF9yZWFsOwotICBsYXN0X2luX2NvbGRfc2VjdGlvbl9wID0gaW5fY29sZF9zZWN0aW9uX3A7 CisgIGxhc3RfaW5fY29sZF9zZWN0aW9uX3AgPSBjYXNtLT5pbl9jb2xkX3NlY3Rpb25fcDsK IH0KIAogLyogQ2hlY2sgd2hldGhlciBCTE9DSywgYSBsZXhpY2FsIGJsb2NrLCBpcyBuZXN0 ZWQgd2l0aGluIE9VVEVSLCBvciBpcwpAQCAtMjgxOTAsNyArMjgxOTAsNyBAQCBzZXRfY3Vy X2xpbmVfaW5mb190YWJsZSAoc2VjdGlvbiAqc2VjKQogewogICBkd19saW5lX2luZm9fdGFi bGUgKnRhYmxlOwogCi0gIGlmIChzZWMgPT0gdGV4dF9zZWN0aW9uKQorICBpZiAoc2VjID09 IGNhc20tPnNlYy50ZXh0KQogICAgIHRhYmxlID0gdGV4dF9zZWN0aW9uX2xpbmVfaW5mbzsK ICAgZWxzZSBpZiAoc2VjID09IGNvbGRfdGV4dF9zZWN0aW9uKQogICAgIHsKQEAgLTI4MjA3 LDcgKzI4MjA3LDcgQEAgc2V0X2N1cl9saW5lX2luZm9fdGFibGUgKHNlY3Rpb24gKnNlYykK IAogICAgICAgaWYgKGNydGwtPmhhc19iYl9wYXJ0aXRpb24pCiAJewotCSAgaWYgKGluX2Nv bGRfc2VjdGlvbl9wKQorCSAgaWYgKGNhc20tPmluX2NvbGRfc2VjdGlvbl9wKQogCSAgICBl bmRfbGFiZWwgPSBjcnRsLT5zdWJzZWN0aW9ucy5jb2xkX3NlY3Rpb25fZW5kX2xhYmVsOwog CSAgZWxzZQogCSAgICBlbmRfbGFiZWwgPSBjcnRsLT5zdWJzZWN0aW9ucy5ob3Rfc2VjdGlv bl9lbmRfbGFiZWw7CkBAIC0yODI0NCw3ICsyODI0NCw3IEBAIGR3YXJmMm91dF9iZWdpbl9m dW5jdGlvbiAodHJlZSBmdW4pCiB7CiAgIHNlY3Rpb24gKnNlYyA9IGZ1bmN0aW9uX3NlY3Rp b24gKGZ1bik7CiAKLSAgaWYgKHNlYyAhPSB0ZXh0X3NlY3Rpb24pCisgIGlmIChzZWMgIT0g Y2FzbS0+c2VjLnRleHQpCiAgICAgaGF2ZV9tdWx0aXBsZV9mdW5jdGlvbl9zZWN0aW9ucyA9 IHRydWU7CiAKICAgaWYgKGNydGwtPmhhc19iYl9wYXJ0aXRpb24gJiYgIWNvbGRfdGV4dF9z ZWN0aW9uKQpAQCAtMjkzNzMsNyArMjkzNzMsNyBAQCBkd2FyZjJvdXRfYXNzZW1ibHlfc3Rh cnQgKHZvaWQpCiAJCQkgICAgICAgQ09MRF9URVhUX1NFQ1RJT05fTEFCRUwsIDApOwogICBB U01fR0VORVJBVEVfSU5URVJOQUxfTEFCRUwgKGNvbGRfZW5kX2xhYmVsLCBDT0xEX0VORF9M QUJFTCwgMCk7CiAKLSAgc3dpdGNoX3RvX3NlY3Rpb24gKHRleHRfc2VjdGlvbik7CisgIHN3 aXRjaF90b19zZWN0aW9uIChjYXNtLT5zZWMudGV4dCk7CiAgIEFTTV9PVVRQVVRfTEFCRUwg KGFzbV9vdXRfZmlsZSwgdGV4dF9zZWN0aW9uX2xhYmVsKTsKICNlbmRpZgogCkBAIC0zMjA4 MCw3ICszMjA4MCw3IEBAIGR3YXJmMm91dF9maW5pc2ggKGNvbnN0IGNoYXIgKmZpbGVuYW1l KQogICAgIG1haW5fY29tcF91bml0X2RpZSA9IGNvbXBfdW5pdF9kaWUgKCk7CiAKICAgLyog T3V0cHV0IGEgdGVybWluYXRvciBsYWJlbCBmb3IgdGhlIC50ZXh0IHNlY3Rpb24uICAqLwot ICBzd2l0Y2hfdG9fc2VjdGlvbiAodGV4dF9zZWN0aW9uKTsKKyAgc3dpdGNoX3RvX3NlY3Rp b24gKGNhc20tPnNlYy50ZXh0KTsKICAgdGFyZ2V0bS5hc21fb3V0LmludGVybmFsX2xhYmVs IChhc21fb3V0X2ZpbGUsIFRFWFRfRU5EX0xBQkVMLCAwKTsKICAgaWYgKGNvbGRfdGV4dF9z ZWN0aW9uKQogICAgIHsKQEAgLTMyOTk2LDcgKzMyOTk2LDcgQEAgZHdhcmYyb3V0X2Vhcmx5 X2ZpbmlzaCAoY29uc3QgY2hhciAqZmlsZW5hbWUpCiAgICAgfQogCiAgIC8qIFN3aXRjaCBi YWNrIHRvIHRoZSB0ZXh0IHNlY3Rpb24uICAqLwotICBzd2l0Y2hfdG9fc2VjdGlvbiAodGV4 dF9zZWN0aW9uKTsKKyAgc3dpdGNoX3RvX3NlY3Rpb24gKGNhc20tPnNlYy50ZXh0KTsKIH0K IAogLyogUmVzZXQgYWxsIHN0YXRlIHdpdGhpbiBkd2FyZjJvdXQuYyBzbyB0aGF0IHdlIGNh biByZXJ1biB0aGUgY29tcGlsZXIKZGlmZiAtLWdpdCBhL2djYy9kd2FyZjJvdXQuaCBiL2dj Yy9kd2FyZjJvdXQuaAppbmRleCAzMTJhOTkwOTc4NC4uNjQ5MWI0NGRhOTUgMTAwNjQ0Ci0t LSBhL2djYy9kd2FyZjJvdXQuaAorKysgYi9nY2MvZHdhcmYyb3V0LmgKQEAgLTEwMyw5ICsx MDMsOSBAQCBzdHJ1Y3QgR1RZKCgpKSBkd19mZGVfbm9kZSB7CiAgIHVuc2lnbmVkIHN0YWNr X3JlYWxpZ24gOiAxOwogICAvKiBXaGV0aGVyIGR5bmFtaWMgcmVhbGlnbiBhcmd1bWVudCBw b2ludGVyIHJlZ2lzdGVyIGhhcyBiZWVuIHNhdmVkLiAgKi8KICAgdW5zaWduZWQgZHJhcF9y ZWdfc2F2ZWQ6IDE7Ci0gIC8qIFRydWUgaWZmIGR3X2ZkZV9iZWdpbiBsYWJlbCBpcyBpbiB0 ZXh0X3NlY3Rpb24gb3IgY29sZF90ZXh0X3NlY3Rpb24uICAqLworICAvKiBUcnVlIGlmZiBk d19mZGVfYmVnaW4gbGFiZWwgaXMgaW4gY2FzbS0+c2VjLnRleHQgb3IgY29sZF90ZXh0X3Nl Y3Rpb24uICAqLwogICB1bnNpZ25lZCBpbl9zdGRfc2VjdGlvbiA6IDE7Ci0gIC8qIFRydWUg aWZmIGR3X2ZkZV9zZWNvbmRfYmVnaW4gbGFiZWwgaXMgaW4gdGV4dF9zZWN0aW9uIG9yCisg IC8qIFRydWUgaWZmIGR3X2ZkZV9zZWNvbmRfYmVnaW4gbGFiZWwgaXMgaW4gY2FzbS0+c2Vj LnRleHQgb3IKICAgICAgY29sZF90ZXh0X3NlY3Rpb24uICAqLwogICB1bnNpZ25lZCBzZWNv bmRfaW5fc3RkX3NlY3Rpb24gOiAxOwogICAvKiBUcnVlIGlmIFJ1bGUgMTggZGVzY3JpYmVk IGluIGR3YXJmMmNmaS5jIGlzIGluIGFjdGlvbiwgaS5lLiBmb3IgZHluYW1pYwpkaWZmIC0t Z2l0IGEvZ2NjL2V4Y2VwdC5jIGIvZ2NjL2V4Y2VwdC5jCmluZGV4IDhlOTA1YTMwOTM5Li5j ZTM4YTU3ZWQyZiAxMDA2NDQKLS0tIGEvZ2NjL2V4Y2VwdC5jCisrKyBiL2djYy9leGNlcHQu YwpAQCAtMjkwNiw4ICsyOTA2LDggQEAgc3dpdGNoX3RvX2V4Y2VwdGlvbl9zZWN0aW9uIChj b25zdCBjaGFyICogQVJHX1VOVVNFRCAoZm5uYW1lKSkKIHsKICAgc2VjdGlvbiAqczsKIAot ICBpZiAoZXhjZXB0aW9uX3NlY3Rpb24pCi0gICAgcyA9IGV4Y2VwdGlvbl9zZWN0aW9uOwor ICBpZiAoY2FzbS0+c2VjLmV4Y2VwdGlvbikKKyAgICBzID0gY2FzbS0+c2VjLmV4Y2VwdGlv bjsKICAgZWxzZQogICAgIHsKICAgICAgIGludCBmbGFnczsKQEAgLTI5MjQsNyArMjkyNCw3 IEBAIHN3aXRjaF90b19leGNlcHRpb25fc2VjdGlvbiAoY29uc3QgY2hhciAqIEFSR19VTlVT RUQgKGZubmFtZSkpCiAgICAgICBlbHNlCiAJZmxhZ3MgPSBTRUNUSU9OX1dSSVRFOwogCi0g ICAgICAvKiBDb21wdXRlIHRoZSBzZWN0aW9uIGFuZCBjYWNoZSBpdCBpbnRvIGV4Y2VwdGlv bl9zZWN0aW9uLAorICAgICAgLyogQ29tcHV0ZSB0aGUgc2VjdGlvbiBhbmQgY2FjaGUgaXQg aW50byBjYXNtLT5zZWMuZXhjZXB0aW9uLAogCSB1bmxlc3MgaXQgZGVwZW5kcyBvbiB0aGUg ZnVuY3Rpb24gbmFtZS4gICovCiAgICAgICBpZiAodGFyZ2V0bV9jb21tb24uaGF2ZV9uYW1l ZF9zZWN0aW9ucykKIAl7CkBAIC0yOTQzLDEyICsyOTQzLDEyIEBAIHN3aXRjaF90b19leGNl cHRpb25fc2VjdGlvbiAoY29uc3QgY2hhciAqIEFSR19VTlVTRUQgKGZubmFtZSkpCiAJICAg IH0KIAkgIGVsc2UKICNlbmRpZgotCSAgICBleGNlcHRpb25fc2VjdGlvbgorCSAgICBjYXNt LT5zZWMuZXhjZXB0aW9uCiAJICAgICAgPSBzID0gZ2V0X3NlY3Rpb24gKCIuZ2NjX2V4Y2Vw dF90YWJsZSIsIGZsYWdzLCBOVUxMKTsKIAl9CiAgICAgICBlbHNlCi0JZXhjZXB0aW9uX3Nl Y3Rpb24KLQkgID0gcyA9IGZsYWdzID09IFNFQ1RJT05fV1JJVEUgPyBkYXRhX3NlY3Rpb24g OiByZWFkb25seV9kYXRhX3NlY3Rpb247CisJY2FzbS0+c2VjLmV4Y2VwdGlvbgorCSAgPSBz ID0gZmxhZ3MgPT0gU0VDVElPTl9XUklURSA/IGNhc20tPnNlYy5kYXRhOiBjYXNtLT5zZWMu cmVhZG9ubHlfZGF0YTsKICAgICB9CiAKICAgc3dpdGNoX3RvX3NlY3Rpb24gKHMpOwpkaWZm IC0tZ2l0IGEvZ2NjL2ZpbmFsLmMgYi9nY2MvZmluYWwuYwppbmRleCBhYzY4OTJkMDQxYy4u MDNjODUzM2U5MmIgMTAwNjQ0Ci0tLSBhL2djYy9maW5hbC5jCisrKyBiL2djYy9maW5hbC5j CkBAIC04ODUsNyArODg1LDcgQEAgc2hvcnRlbl9icmFuY2hlcyAocnR4X2luc24gKmZpcnN0 KQogCSAgLyogQUREUl9WRUNzIG9ubHkgdGFrZSByb29tIGlmIHJlYWQtb25seSBkYXRhIGdv ZXMgaW50byB0aGUgdGV4dAogCSAgICAgc2VjdGlvbi4gICovCiAJICBpZiAoKEpVTVBfVEFC TEVTX0lOX1RFWFRfU0VDVElPTgotCSAgICAgICB8fCByZWFkb25seV9kYXRhX3NlY3Rpb24g PT0gdGV4dF9zZWN0aW9uKQorCSAgICAgICB8fCBjYXNtLT5zZWMucmVhZG9ubHlfZGF0YSA9 PSBjYXNtLT5zZWMudGV4dCkKIAkgICAgICAmJiB0YWJsZSkKIAkgICAgewogCSAgICAgIGFs aWduX2ZsYWdzIGFsaWdubWVudCA9IGFsaWduX2ZsYWdzIChBRERSX1ZFQ19BTElHTiAodGFi bGUpKTsKQEAgLTEwNTEsNyArMTA1MSw3IEBAIHNob3J0ZW5fYnJhbmNoZXMgKHJ0eF9pbnNu ICpmaXJzdCkKIAkgIC8qIFRoaXMgb25seSB0YWtlcyByb29tIGlmIHJlYWQtb25seSBkYXRh IGdvZXMgaW50byB0aGUgdGV4dAogCSAgICAgc2VjdGlvbi4gICovCiAJICBpZiAoSlVNUF9U QUJMRVNfSU5fVEVYVF9TRUNUSU9OCi0JICAgICAgfHwgcmVhZG9ubHlfZGF0YV9zZWN0aW9u ID09IHRleHRfc2VjdGlvbikKKwkgICAgICB8fCBjYXNtLT5zZWMucmVhZG9ubHlfZGF0YSA9 PSBjYXNtLT5zZWMudGV4dCkKIAkgICAgaW5zbl9sZW5ndGhzW3VpZF0gPSAoWFZFQ0xFTiAo Ym9keSwKIAkJCQkJICBHRVRfQ09ERSAoYm9keSkgPT0gQUREUl9ESUZGX1ZFQykKIAkJCQkg KiBHRVRfTU9ERV9TSVpFICh0YWJsZS0+Z2V0X2RhdGFfbW9kZSAoKSkpOwpAQCAtMTE0Myw3 ICsxMTQzLDcgQEAgc2hvcnRlbl9icmFuY2hlcyAocnR4X2luc24gKmZpcnN0KQogCQkgbWF5 IG5lZWQgdG8gdXBkYXRlIHRoZSBhbGlnbm1lbnQgb2YgdGhpcyBsYWJlbC4gICovCiAKIAkg ICAgICBpZiAoSlVNUF9UQUJMRVNfSU5fVEVYVF9TRUNUSU9OCi0JCSAgfHwgcmVhZG9ubHlf ZGF0YV9zZWN0aW9uID09IHRleHRfc2VjdGlvbikKKwkJICB8fCBjYXNtLT5zZWMucmVhZG9u bHlfZGF0YSA9PSBjYXNtLT5zZWMudGV4dCkKIAkJewogCQkgIHJ0eF9qdW1wX3RhYmxlX2Rh dGEgKnRhYmxlID0ganVtcF90YWJsZV9mb3JfbGFiZWwgKGxhYmVsKTsKIAkJICBpZiAodGFi bGUpCkBAIC0xMjg0LDcgKzEyODQsNyBAQCBzaG9ydGVuX2JyYW5jaGVzIChydHhfaW5zbiAq Zmlyc3QpCiAJCSAgICAgID49IEdFVF9NT0RFX1NJWkUgKHRhYmxlLT5nZXRfZGF0YV9tb2Rl ICgpKSkpCiAJCVBVVF9NT0RFIChib2R5LCB2ZWNfbW9kZSk7CiAJICAgICAgaWYgKEpVTVBf VEFCTEVTX0lOX1RFWFRfU0VDVElPTgotCQkgIHx8IHJlYWRvbmx5X2RhdGFfc2VjdGlvbiA9 PSB0ZXh0X3NlY3Rpb24pCisJCSAgfHwgY2FzbS0+c2VjLnJlYWRvbmx5X2RhdGEgPT0gY2Fz bS0+c2VjLnRleHQpCiAJCXsKIAkJICBpbnNuX2xlbmd0aHNbdWlkXQogCQkgICAgPSAoWFZF Q0xFTiAoYm9keSwgMSkKQEAgLTE4MzYsNyArMTgzNiw3IEBAIHByb2ZpbGVfZnVuY3Rpb24g KEZJTEUgKmZpbGUgQVRUUklCVVRFX1VOVVNFRCkKICAgaWYgKCEgTk9fUFJPRklMRV9DT1VO VEVSUykKICAgICB7CiAgICAgICBpbnQgYWxpZ24gPSBNSU4gKEJJR0dFU1RfQUxJR05NRU5U LCBMT05HX1RZUEVfU0laRSk7Ci0gICAgICBzd2l0Y2hfdG9fc2VjdGlvbiAoZGF0YV9zZWN0 aW9uKTsKKyAgICAgIHN3aXRjaF90b19zZWN0aW9uIChjYXNtLT5zZWMuZGF0YSk7CiAgICAg ICBBU01fT1VUUFVUX0FMSUdOIChmaWxlLCBmbG9vcl9sb2cyIChhbGlnbiAvIEJJVFNfUEVS X1VOSVQpKTsKICAgICAgIHRhcmdldG0uYXNtX291dC5pbnRlcm5hbF9sYWJlbCAoZmlsZSwg IkxQIiwgY3VycmVudF9mdW5jdGlvbl9mdW5jZGVmX25vKTsKICAgICAgIGFzc2VtYmxlX2lu dGVnZXIgKGNvbnN0MF9ydHgsIExPTkdfVFlQRV9TSVpFIC8gQklUU19QRVJfVU5JVCwgYWxp Z24sIDEpOwpAQCAtMjE4OSwxMCArMjE4OSwxMCBAQCBmaW5hbF9zY2FuX2luc25fMSAocnR4 X2luc24gKmluc24sIEZJTEUgKmZpbGUsIGludCBvcHRpbWl6ZV9wIEFUVFJJQlVURV9VTlVT RUQsCiAJICBpZiAodGFyZ2V0bS5hc21fb3V0LnVud2luZF9lbWl0KQogCSAgICB0YXJnZXRt LmFzbV9vdXQudW53aW5kX2VtaXQgKGFzbV9vdXRfZmlsZSwgaW5zbik7CiAKLQkgIGluX2Nv bGRfc2VjdGlvbl9wID0gIWluX2NvbGRfc2VjdGlvbl9wOworCSAgY2FzbS0+aW5fY29sZF9z ZWN0aW9uX3AgPSAhY2FzbS0+aW5fY29sZF9zZWN0aW9uX3A7CiAKLQkgIGdjY19jaGVja2lu Z19hc3NlcnQgKGluX2NvbGRfc2VjdGlvbl9wKTsKLQkgIGlmIChpbl9jb2xkX3NlY3Rpb25f cCkKKwkgIGdjY19jaGVja2luZ19hc3NlcnQgKGNhc20tPmluX2NvbGRfc2VjdGlvbl9wKTsK KwkgIGlmIChjYXNtLT5pbl9jb2xkX3NlY3Rpb25fcCkKIAkgICAgY29sZF9mdW5jdGlvbl9u YW1lCiAJICAgICAgPSBjbG9uZV9mdW5jdGlvbl9uYW1lIChjdXJyZW50X2Z1bmN0aW9uX2Rl Y2wsICJjb2xkIik7CiAKQEAgLTIyMTMsMTAgKzIyMTMsMTAgQEAgZmluYWxfc2Nhbl9pbnNu XzEgKHJ0eF9pbnNuICppbnNuLCBGSUxFICpmaWxlLCBpbnQgb3B0aW1pemVfcCBBVFRSSUJV VEVfVU5VU0VELAogCSAgc3dpdGNoX3RvX3NlY3Rpb24gKGN1cnJlbnRfZnVuY3Rpb25fc2Vj dGlvbiAoKSk7CiAJICB0YXJnZXRtLmFzbV9vdXQuZnVuY3Rpb25fc3dpdGNoZWRfdGV4dF9z ZWN0aW9ucyAoYXNtX291dF9maWxlLAogCQkJCQkJCSAgIGN1cnJlbnRfZnVuY3Rpb25fZGVj bCwKLQkJCQkJCQkgICBpbl9jb2xkX3NlY3Rpb25fcCk7CisJCQkJCQkJICAgY2FzbS0+aW5f Y29sZF9zZWN0aW9uX3ApOwogCSAgLyogRW1pdCBhIGxhYmVsIGZvciB0aGUgc3BsaXQgY29s ZCBzZWN0aW9uLiAgRm9ybSBsYWJlbCBuYW1lIGJ5CiAJICAgICBzdWZmaXhpbmcgImNvbGQi IHRvIHRoZSBvcmlnaW5hbCBmdW5jdGlvbidzIG5hbWUuICAqLwotCSAgaWYgKGluX2NvbGRf c2VjdGlvbl9wKQorCSAgaWYgKGNhc20tPmluX2NvbGRfc2VjdGlvbl9wKQogCSAgICB7CiAj aWZkZWYgQVNNX0RFQ0xBUkVfQ09MRF9GVU5DVElPTl9OQU1FCiAJICAgICAgQVNNX0RFQ0xB UkVfQ09MRF9GVU5DVElPTl9OQU1FIChhc21fb3V0X2ZpbGUsCkBAIC0yMzIzLDcgKzIzMjMs NyBAQCBmaW5hbF9zY2FuX2luc25fMSAocnR4X2luc24gKmluc24sIEZJTEUgKmZpbGUsIGlu dCBvcHRpbWl6ZV9wIEFUVFJJQlVURV9VTlVTRUQsCiAKIAkgICAgICAvKiBNYXJrIHRoaXMg YmxvY2sgYXMgb3V0cHV0LiAgKi8KIAkgICAgICBUUkVFX0FTTV9XUklUVEVOIChOT1RFX0JM T0NLIChpbnNuKSkgPSAxOwotCSAgICAgIEJMT0NLX0lOX0NPTERfU0VDVElPTl9QIChOT1RF X0JMT0NLIChpbnNuKSkgPSBpbl9jb2xkX3NlY3Rpb25fcDsKKwkgICAgICBCTE9DS19JTl9D T0xEX1NFQ1RJT05fUCAoTk9URV9CTE9DSyAoaW5zbikpID0gY2FzbS0+aW5fY29sZF9zZWN0 aW9uX3A7CiAJICAgIH0KIAkgIGlmICh3cml0ZV9zeW1ib2xzID09IERCWF9ERUJVRykKIAkg ICAgewpAQCAtMjM1OCw3ICsyMzU4LDcgQEAgZmluYWxfc2Nhbl9pbnNuXzEgKHJ0eF9pbnNu ICppbnNuLCBGSUxFICpmaWxlLCBpbnQgb3B0aW1pemVfcCBBVFRSSUJVVEVfVU5VU0VELAog CSAgICAgIGlmICghREVDTF9JR05PUkVEX1AgKGN1cnJlbnRfZnVuY3Rpb25fZGVjbCkpCiAJ CWRlYnVnX2hvb2tzLT5lbmRfYmxvY2sgKGhpZ2hfYmxvY2tfbGluZW51bSwgbik7CiAJICAg ICAgZ2NjX2Fzc2VydCAoQkxPQ0tfSU5fQ09MRF9TRUNUSU9OX1AgKE5PVEVfQkxPQ0sgKGlu c24pKQotCQkJICA9PSBpbl9jb2xkX3NlY3Rpb25fcCk7CisJCQkgID09IGNhc20tPmluX2Nv bGRfc2VjdGlvbl9wKTsKIAkgICAgfQogCSAgaWYgKHdyaXRlX3N5bWJvbHMgPT0gREJYX0RF QlVHKQogCSAgICB7CmRpZmYgLS1naXQgYS9nY2MvZ2djLWNvbW1vbi5jIGIvZ2NjL2dnYy1j b21tb24uYwppbmRleCAzMmJhNWJlNDJiMi4uZDkwYTg1NzBkYmEgMTAwNjQ0Ci0tLSBhL2dj Yy9nZ2MtY29tbW9uLmMKKysrIGIvZ2NjL2dnYy1jb21tb24uYwpAQCAtMzAsNiArMzAsNyBA QCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQog I2luY2x1ZGUgImhvc3Rob29rcy5oIgogI2luY2x1ZGUgInBsdWdpbi5oIgogI2luY2x1ZGUg Im9wdGlvbnMuaCIKKyNpbmNsdWRlICJvdXRwdXQuaCIKIAogLyogV2hlbiB0cnVlLCBwcm90 ZWN0IHRoZSBjb250ZW50cyBvZiB0aGUgaWRlbnRpZmllciBoYXNoIHRhYmxlLiAgKi8KIGJv b2wgZ2djX3Byb3RlY3RfaWRlbnRpZmllcnMgPSB0cnVlOwpAQCAtNTg5LDYgKzU5MCw5IEBA IGd0X3BjaF9yZXN0b3JlIChGSUxFICpmKQogICBzdHJ1Y3QgbW1hcF9pbmZvIG1taTsKICAg aW50IHJlc3VsdDsKIAorICAvKiBIaWRlIEFTTSBzdGF0ZSBvYmplY3QgYXMgd2UgZG9uJ3Qg d2FudCBpdCB0byBiZSBzdHJlYW1lZC4gICovCisgIEZJTEUgKnNhdmVkX2Nhc21fb3V0X2Zp bGUgPSBjYXNtICE9IE5VTEwgPyBjYXNtLT5vdXRfZmlsZSA6IE5VTEw7CisKICAgLyogRGVs ZXRlIGFueSBkZWxldGFibGUgb2JqZWN0cy4gIFRoaXMgbWFrZXMgZ2djX3BjaF9yZWFkIG11 Y2gKICAgICAgZmFzdGVyLCBhcyBpdCBjYW4gYmUgc3VyZSB0aGF0IG5vIEdDYWJsZSBvYmpl Y3RzIHJlbWFpbiBvdGhlcgogICAgICB0aGFuIHRoZSBvbmVzIGp1c3QgcmVhZCBpbi4gICov CkBAIC02MjksNiArNjMzLDkgQEAgZ3RfcGNoX3Jlc3RvcmUgKEZJTEUgKmYpCiAgIGdnY19w Y2hfcmVhZCAoZiwgbW1pLnByZWZlcnJlZF9iYXNlKTsKIAogICBndF9wY2hfcmVzdG9yZV9z dHJpbmdwb29sICgpOworCisgIGlmIChjYXNtICE9IE5VTEwpCisgICAgY2FzbS0+b3V0X2Zp bGUgPSBzYXZlZF9jYXNtX291dF9maWxlOwogfQogCiAvKiBEZWZhdWx0IHZlcnNpb24gb2Yg SE9TVF9IT09LU19HVF9QQ0hfR0VUX0FERFJFU1Mgd2hlbiBtbWFwIGlzIG5vdCBwcmVzZW50 LgpkaWZmIC0tZ2l0IGEvZ2NjL2xhbmdob29rcy5jIGIvZ2NjL2xhbmdob29rcy5jCmluZGV4 IDQ4YzcyMzc3Nzc4Li5jZDFlZDA2NTVlNSAxMDA2NDQKLS0tIGEvZ2NjL2xhbmdob29rcy5j CisrKyBiL2djYy9sYW5naG9va3MuYwpAQCAtODAzLDkgKzgwMyw5IEBAIGxoZF9iZWdpbl9z ZWN0aW9uIChjb25zdCBjaGFyICpuYW1lKQogCiAgIC8qIFNhdmUgdGhlIG9sZCBzZWN0aW9u IHNvIHdlIGNhbiByZXN0b3JlIGl0IGluIGx0b19lbmRfYXNtX3NlY3Rpb24uICAqLwogICBn Y2NfYXNzZXJ0ICghc2F2ZWRfc2VjdGlvbik7Ci0gIHNhdmVkX3NlY3Rpb24gPSBpbl9zZWN0 aW9uOworICBzYXZlZF9zZWN0aW9uID0gY2FzbS0+aW5fc2VjdGlvbjsKICAgaWYgKCFzYXZl ZF9zZWN0aW9uKQotICAgIHNhdmVkX3NlY3Rpb24gPSB0ZXh0X3NlY3Rpb247CisgICAgc2F2 ZWRfc2VjdGlvbiA9IGNhc20tPnNlYy50ZXh0OwogCiAgIC8qIENyZWF0ZSBhIG5ldyBzZWN0 aW9uIGFuZCBzd2l0Y2ggdG8gaXQuICAqLwogICBzZWN0aW9uID0gZ2V0X3NlY3Rpb24gKG5h bWUsIFNFQ1RJT05fREVCVUcgfCBTRUNUSU9OX0VYQ0xVREUsIE5VTEwsIHRydWUpOwpkaWZm IC0tZ2l0IGEvZ2NjL291dHB1dC5oIGIvZ2NjL291dHB1dC5oCmluZGV4IDczY2E0NTQ1ZjRm Li5hNWNiMTI2MDIxOSAxMDA2NDQKLS0tIGEvZ2NjL291dHB1dC5oCisrKyBiL2djYy9vdXRw dXQuaApAQCAtMzEzLDkgKzMxMyw3OCBAQCBleHRlcm4gcnR4X3NlcXVlbmNlICpmaW5hbF9z ZXF1ZW5jZTsKIAogLyogRmlsZSBpbiB3aGljaCBhc3NlbWJsZXIgY29kZSBpcyBiZWluZyB3 cml0dGVuLiAgKi8KIAotI2lmZGVmIEJVRlNJWgotZXh0ZXJuIEZJTEUgKmFzbV9vdXRfZmls ZTsKLSNlbmRpZgorc3RydWN0IHNlY3Rpb25faGFzaGVyIDogZ2djX3B0cl9oYXNoPHNlY3Rp b24+Cit7CisgIHR5cGVkZWYgY29uc3QgY2hhciAqY29tcGFyZV90eXBlOworCisgIHN0YXRp YyBoYXNodmFsX3QgaGFzaCAoc2VjdGlvbiAqKTsKKyAgc3RhdGljIGJvb2wgZXF1YWwgKHNl Y3Rpb24gKiwgY29uc3QgY2hhciAqKTsKK307CisKKy8qIEFzc2VtYmx5IG91dHB1dCBzdGF0 ZS4gICovCisKK3N0cnVjdCBHVFkoKCkpIGFzbV9vdXRfc3RhdGUKK3sKKyAgYXNtX291dF9z dGF0ZSAoKTogb3V0X2ZpbGUgKE5VTEwpLCBpbl9zZWN0aW9uIChOVUxMKSwKKyAgICBzZWMg KHt9KSwgYW5jaG9yX2xhYmVsbm8gKDApLCBpbl9jb2xkX3NlY3Rpb25fcCAoZmFsc2UpCisg IHsKKyAgICBzZWN0aW9uX2h0YWIgPSBoYXNoX3RhYmxlPHNlY3Rpb25faGFzaGVyPjo6Y3Jl YXRlX2dnYyAoMzEpOworICB9CisKKyAgLyogQXNzZW1ibHkgb3V0cHV0IHN0cmVhbS4gICov CisgIEZJTEUgKiBHVFkoKHNraXApKSBvdXRfZmlsZTsKKworICAvKiBIYXNoIHRhYmxlIG9m IG5hbWVkIHNlY3Rpb25zLiAgKi8KKyAgaGFzaF90YWJsZTxzZWN0aW9uX2hhc2hlcj4gKnNl Y3Rpb25faHRhYjsKKworICAvKiBhc21fb3V0X2ZpbGUncyBjdXJyZW50IHNlY3Rpb24uICBU aGlzIGlzIE5VTEwgaWYgbm8gc2VjdGlvbiBoYXMgeWV0CisgICAgIGJlZW4gc2VsZWN0ZWQg b3IgaWYgd2UgbG9zZSB0cmFjayBvZiB3aGF0IHRoZSBjdXJyZW50IHNlY3Rpb24gaXMuICAq LworICBzZWN0aW9uICppbl9zZWN0aW9uOworCisgIC8qIFdlbGwta25vd24gc2VjdGlvbnMs IGVhY2ggb25lIGFzc29jaWF0ZWQgd2l0aCBzb21lIHNvcnQgb2YgKl9BU01fT1AuICAqLwor ICBzdHJ1Y3QKKyAgeworICAgIHNlY3Rpb24gKnRleHQ7CisgICAgc2VjdGlvbiAqZGF0YTsK KyAgICBzZWN0aW9uICpyZWFkb25seV9kYXRhOworICAgIHNlY3Rpb24gKnNkYXRhOworICAg IHNlY3Rpb24gKmN0b3JzOworICAgIHNlY3Rpb24gKmR0b3JzOworICAgIHNlY3Rpb24gKmJz czsKKyAgICBzZWN0aW9uICpzYnNzOworCisgICAgLyogVmFyaW91cyBmb3JtcyBvZiBjb21t b24gc2VjdGlvbi4gIEFsbCBhcmUgZ3VhcmFudGVlZCB0byBiZSBub25udWxsLiAgKi8KKyAg ICBzZWN0aW9uICp0bHNfY29tbTsKKyAgICBzZWN0aW9uICpjb21tOworICAgIHNlY3Rpb24g Kmxjb21tOworCisgICAgLyogQSBTRUNUSU9OX05PU1dJVENIIHNlY3Rpb24gdXNlZCBmb3Ig ZGVjbGFyaW5nIGdsb2JhbCBCU1MgdmFyaWFibGVzLgorICAgICAgIE1heSBiZSBudWxsLiAg Ki8KKyAgICBzZWN0aW9uICpic3Nfbm9zd2l0Y2g7CisKKyAgICAvKiBUaGUgc2VjdGlvbiB0 aGF0IGhvbGRzIHRoZSBtYWluIGV4Y2VwdGlvbiB0YWJsZSwgd2hlbiBrbm93bi4gIFRoZSBz ZWN0aW9uCisgICAgICAgaXMgc2V0IGVpdGhlciBieSB0aGUgdGFyZ2V0J3MgaW5pdF9zZWN0 aW9ucyBob29rIG9yIGJ5IHRoZSBmaXJzdCBjYWxsIHRvCisgICAgICAgc3dpdGNoX3RvX2V4 Y2VwdGlvbl9zZWN0aW9uLiAgKi8KKyAgICBzZWN0aW9uICpleGNlcHRpb247CisKKyAgICAv KiBUaGUgc2VjdGlvbiB0aGF0IGhvbGRzIHRoZSBEV0FSRjIgZnJhbWUgdW53aW5kIGluZm9y bWF0aW9uLCB3aGVuIGtub3duLgorICAgICAgIFRoZSBzZWN0aW9uIGlzIHNldCBlaXRoZXIg YnkgdGhlIHRhcmdldCdzIGluaXRfc2VjdGlvbnMgaG9vayBvciBieSB0aGUKKyAgICAgICBm aXJzdCBjYWxsIHRvIHN3aXRjaF90b19laF9mcmFtZV9zZWN0aW9uLiAgKi8KKyAgICBzZWN0 aW9uICplaF9mcmFtZTsKKyAgfSBzZWM7CisKKyAgLyogVGhlIG5leHQgbnVtYmVyIHRvIHVz ZSBmb3IgaW50ZXJuYWwgYW5jaG9yIGxhYmVscy4gICovCisgIGludCBhbmNob3JfbGFiZWxu bzsKKworICAvKiBUcnVlIGlmIGNvZGUgZm9yIHRoZSBjdXJyZW50IGZ1bmN0aW9uIGlzIGN1 cnJlbnRseSBiZWluZyBkaXJlY3RlZAorICAgICBhdCB0aGUgY29sZCBzZWN0aW9uLiAgKi8K KyAgYm9vbCBpbl9jb2xkX3NlY3Rpb25fcDsKK307CisKK2V4dGVybiBHVFkoKCkpIGFzbV9v dXRfc3RhdGUgKmNhc207CisKKy8qIEhlbHBlciBtYWNybyBmb3IgY29tbW9ubHkgdXNlZCBh Y2Nlc3Nlcy4gICovCisjZGVmaW5lIGFzbV9vdXRfZmlsZSBjYXNtLT5vdXRfZmlsZQogCiAv KiBUaGUgZmlyc3QgZ2xvYmFsIG9iamVjdCBpbiB0aGUgZmlsZS4gICovCiBleHRlcm4gY29u c3QgY2hhciAqZmlyc3RfZ2xvYmFsX29iamVjdF9uYW1lOwpAQCAtNTExLDI0ICs1ODAsNiBA QCB1bmlvbiBHVFkgKChkZXNjICgiU0VDVElPTl9TVFlMRSAoJiglaCkpIiksIGZvcl91c2Vy KSkgc2VjdGlvbiB7CiBzdHJ1Y3Qgb2JqZWN0X2Jsb2NrOwogCiAvKiBTcGVjaWFsIHdlbGwt a25vd24gc2VjdGlvbnMuICAqLwotZXh0ZXJuIEdUWSgoKSkgc2VjdGlvbiAqdGV4dF9zZWN0 aW9uOwotZXh0ZXJuIEdUWSgoKSkgc2VjdGlvbiAqZGF0YV9zZWN0aW9uOwotZXh0ZXJuIEdU WSgoKSkgc2VjdGlvbiAqcmVhZG9ubHlfZGF0YV9zZWN0aW9uOwotZXh0ZXJuIEdUWSgoKSkg c2VjdGlvbiAqc2RhdGFfc2VjdGlvbjsKLWV4dGVybiBHVFkoKCkpIHNlY3Rpb24gKmN0b3Jz X3NlY3Rpb247Ci1leHRlcm4gR1RZKCgpKSBzZWN0aW9uICpkdG9yc19zZWN0aW9uOwotZXh0 ZXJuIEdUWSgoKSkgc2VjdGlvbiAqYnNzX3NlY3Rpb247Ci1leHRlcm4gR1RZKCgpKSBzZWN0 aW9uICpzYnNzX3NlY3Rpb247Ci1leHRlcm4gR1RZKCgpKSBzZWN0aW9uICpleGNlcHRpb25f c2VjdGlvbjsKLWV4dGVybiBHVFkoKCkpIHNlY3Rpb24gKmVoX2ZyYW1lX3NlY3Rpb247Ci1l eHRlcm4gR1RZKCgpKSBzZWN0aW9uICp0bHNfY29tbV9zZWN0aW9uOwotZXh0ZXJuIEdUWSgo KSkgc2VjdGlvbiAqY29tbV9zZWN0aW9uOwotZXh0ZXJuIEdUWSgoKSkgc2VjdGlvbiAqbGNv bW1fc2VjdGlvbjsKLWV4dGVybiBHVFkoKCkpIHNlY3Rpb24gKmJzc19ub3N3aXRjaF9zZWN0 aW9uOwotCi1leHRlcm4gR1RZKCgpKSBzZWN0aW9uICppbl9zZWN0aW9uOwotZXh0ZXJuIEdU WSgoKSkgYm9vbCBpbl9jb2xkX3NlY3Rpb25fcDsKLQogZXh0ZXJuIHNlY3Rpb24gKmdldF91 bm5hbWVkX3NlY3Rpb24gKHVuc2lnbmVkIGludCwgdm9pZCAoKikgKGNvbnN0IHZvaWQgKiks CiAJCQkJICAgICBjb25zdCB2b2lkICopOwogZXh0ZXJuIHNlY3Rpb24gKmdldF9zZWN0aW9u IChjb25zdCBjaGFyICosIHVuc2lnbmVkIGludCwgdHJlZSwKZGlmZiAtLWdpdCBhL2djYy9y dW4tcnRsLXBhc3Nlcy5jIGIvZ2NjL3J1bi1ydGwtcGFzc2VzLmMKaW5kZXggMzdhMDI4MTNm MjIuLmU2OTc2YmY5MDcwIDEwMDY0NAotLS0gYS9nY2MvcnVuLXJ0bC1wYXNzZXMuYworKysg Yi9nY2MvcnVuLXJ0bC1wYXNzZXMuYwpAQCAtNDYsNyArNDYsNyBAQCBydW5fcnRsX3Bhc3Nl cyAoY2hhciAqaW5pdGlhbF9wYXNzX25hbWUpCiAgIG1heF9yZWdubyA9IG1heF9yZWdfbnVt ICgpOwogCiAgIC8qIGNncmFwaHVuaXQuYyBub3JtYWxseSBoYW5kbGVzIHRoaXMuICAqLwot ICBzd2l0Y2hfdG9fc2VjdGlvbiAodGV4dF9zZWN0aW9uKTsKKyAgc3dpdGNoX3RvX3NlY3Rp b24gKGNhc20tPnNlYy50ZXh0KTsKICAgKCpkZWJ1Z19ob29rcy0+YXNzZW1ibHlfc3RhcnQp ICgpOwogCiAgIGlmIChpbml0aWFsX3Bhc3NfbmFtZSkKZGlmZiAtLWdpdCBhL2djYy90YXJn aG9va3MuYyBiL2djYy90YXJnaG9va3MuYwppbmRleCBjOWI1MjA4ODUzZC4uNjg2NjAxODZl YzUgMTAwNjQ0Ci0tLSBhL2djYy90YXJnaG9va3MuYworKysgYi9nY2MvdGFyZ2hvb2tzLmMK QEAgLTE5NjIsNyArMTk2Miw3IEBAIGRlZmF1bHRfcHJpbnRfcGF0Y2hhYmxlX2Z1bmN0aW9u X2VudHJ5XzEgKEZJTEUgKmZpbGUsCiAgICAgewogICAgICAgY2hhciBidWZbMjU2XTsKICAg ICAgIHN0YXRpYyBpbnQgcGF0Y2hfYXJlYV9udW1iZXI7Ci0gICAgICBzZWN0aW9uICpwcmV2 aW91c19zZWN0aW9uID0gaW5fc2VjdGlvbjsKKyAgICAgIHNlY3Rpb24gKnByZXZpb3VzX3Nl Y3Rpb24gPSBjYXNtLT5pbl9zZWN0aW9uOwogICAgICAgY29uc3QgY2hhciAqYXNtX29wID0g aW50ZWdlcl9hc21fb3AgKFBPSU5URVJfU0laRV9VTklUUywgZmFsc2UpOwogCiAgICAgICBn Y2NfYXNzZXJ0IChhc21fb3AgIT0gTlVMTCk7CmRpZmYgLS1naXQgYS9nY2MvdG9wbGV2LmMg Yi9nY2MvdG9wbGV2LmMKaW5kZXggMTRkMTMzNWU3OWUuLjU5ZGJiNTg1ZDkxIDEwMDY0NAot LS0gYS9nY2MvdG9wbGV2LmMKKysrIGIvZ2NjL3RvcGxldi5jCkBAIC0xNzIsNyArMTcyLDgg QEAgY29uc3QgY2hhciAqdXNlcl9sYWJlbF9wcmVmaXg7CiAvKiBPdXRwdXQgZmlsZXMgZm9y IGFzc2VtYmxlciBjb2RlIChyZWFsIGNvbXBpbGVyIG91dHB1dCkKICAgIGFuZCBkZWJ1Z2dp bmcgZHVtcHMuICAqLwogCi1GSUxFICphc21fb3V0X2ZpbGU7Cithc21fb3V0X3N0YXRlICpj YXNtOworCiBGSUxFICphdXhfaW5mb19maWxlOwogRklMRSAqY2FsbGdyYXBoX2luZm9fZmls ZSA9IE5VTEw7CiBzdGF0aWMgYml0bWFwIGNhbGxncmFwaF9pbmZvX2V4dGVybmFsX3ByaW50 ZWQ7CkBAIC01NTIsMTMgKzU1MywxMyBAQCBjb21waWxlX2ZpbGUgKHZvaWQpCiAgIGlmIChm bGFnX2dlbmVyYXRlX2x0byAmJiAhZmxhZ19mYXRfbHRvX29iamVjdHMpCiAgICAgewogI2lm IGRlZmluZWQgQVNNX09VVFBVVF9BTElHTkVEX0RFQ0xfQ09NTU9OCi0gICAgICBBU01fT1VU UFVUX0FMSUdORURfREVDTF9DT01NT04gKGFzbV9vdXRfZmlsZSwgTlVMTF9UUkVFLCAiX19n bnVfbHRvX3NsaW0iLAorICAgICAgQVNNX09VVFBVVF9BTElHTkVEX0RFQ0xfQ09NTU9OIChj YXNtLT5vdXRfZmlsZSwgTlVMTF9UUkVFLCAiX19nbnVfbHRvX3NsaW0iLAogCQkJCSAgICAg IEhPU1RfV0lERV9JTlRfMVUsIDgpOwogI2VsaWYgZGVmaW5lZCBBU01fT1VUUFVUX0FMSUdO RURfQ09NTU9OCi0gICAgICBBU01fT1VUUFVUX0FMSUdORURfQ09NTU9OIChhc21fb3V0X2Zp bGUsICJfX2dudV9sdG9fc2xpbSIsCisgICAgICBBU01fT1VUUFVUX0FMSUdORURfQ09NTU9O IChjYXNtLT5vdXRfZmlsZSwgIl9fZ251X2x0b19zbGltIiwKIAkJCQkgSE9TVF9XSURFX0lO VF8xVSwgOCk7CiAjZWxzZQotICAgICAgQVNNX09VVFBVVF9DT01NT04gKGFzbV9vdXRfZmls ZSwgIl9fZ251X2x0b19zbGltIiwKKyAgICAgIEFTTV9PVVRQVVRfQ09NTU9OIChjYXNtLT5v dXRfZmlsZSwgIl9fZ251X2x0b19zbGltIiwKIAkJCSBIT1NUX1dJREVfSU5UXzFVLAogCQkJ IEhPU1RfV0lERV9JTlRfMVUpOwogI2VuZGlmCkBAIC02OTYsNyArNjk3LDcgQEAgc3RhdGlj IHZvaWQKIGluaXRfYXNtX291dHB1dCAoY29uc3QgY2hhciAqbmFtZSkKIHsKICAgaWYgKG5h bWUgPT0gTlVMTCAmJiBhc21fZmlsZV9uYW1lID09IDApCi0gICAgYXNtX291dF9maWxlID0g c3Rkb3V0OworICAgIGNhc20tPm91dF9maWxlID0gc3Rkb3V0OwogICBlbHNlCiAgICAgewog ICAgICAgaWYgKGFzbV9maWxlX25hbWUgPT0gMCkKQEAgLTcxMCwxNyArNzExLDE3IEBAIGlu aXRfYXNtX291dHB1dCAoY29uc3QgY2hhciAqbmFtZSkKIAkgIGFzbV9maWxlX25hbWUgPSBk dW1wbmFtZTsKIAl9CiAgICAgICBpZiAoIXN0cmNtcCAoYXNtX2ZpbGVfbmFtZSwgIi0iKSkK LQlhc21fb3V0X2ZpbGUgPSBzdGRvdXQ7CisJY2FzbS0+b3V0X2ZpbGUgPSBzdGRvdXQ7CiAg ICAgICBlbHNlIGlmICghY2Fub25pY2FsX2ZpbGVuYW1lX2VxIChhc21fZmlsZV9uYW1lLCBu YW1lKQogCSAgICAgICB8fCAhc3RyY21wIChhc21fZmlsZV9uYW1lLCBIT1NUX0JJVF9CVUNL RVQpKQotCWFzbV9vdXRfZmlsZSA9IGZvcGVuIChhc21fZmlsZV9uYW1lLCAidyIpOworCWNh c20tPm91dF9maWxlID0gZm9wZW4gKGFzbV9maWxlX25hbWUsICJ3Iik7CiAgICAgICBlbHNl CiAJLyogVXNlIFVOS09XTl9MT0NBVElPTiB0byBwcmV2ZW50IGdjYyBmcm9tIHByaW50aW5n IHRoZSBmaXJzdAogCSAgIGxpbmUgaW4gdGhlIGN1cnJlbnQgZmlsZS4gKi8KIAlmYXRhbF9l cnJvciAoVU5LTk9XTl9MT0NBVElPTiwKIAkJICAgICAiaW5wdXQgZmlsZSAlcXMgaXMgdGhl IHNhbWUgYXMgb3V0cHV0IGZpbGUiLAogCQkgICAgIGFzbV9maWxlX25hbWUpOwotICAgICAg aWYgKGFzbV9vdXRfZmlsZSA9PSAwKQorICAgICAgaWYgKGNhc20tPm91dF9maWxlID09IDAp CiAJZmF0YWxfZXJyb3IgKFVOS05PV05fTE9DQVRJT04sCiAJCSAgICAgImNhbm5vdCBvcGVu ICVxcyBmb3Igd3JpdGluZzogJW0iLCBhc21fZmlsZV9uYW1lKTsKICAgICB9CkBAIC03NDcs MTQgKzc0OCwxNCBAQCBpbml0X2FzbV9vdXRwdXQgKGNvbnN0IGNoYXIgKm5hbWUpCiAKICAg ICAgIGlmIChmbGFnX3ZlcmJvc2VfYXNtKQogCXsKLQkgIHByaW50X3ZlcnNpb24gKGFzbV9v dXRfZmlsZSwgQVNNX0NPTU1FTlRfU1RBUlQsIHRydWUpOwotCSAgZnB1dHMgKEFTTV9DT01N RU5UX1NUQVJULCBhc21fb3V0X2ZpbGUpOwotCSAgZnB1dHMgKCIgb3B0aW9ucyBwYXNzZWQ6 ICIsIGFzbV9vdXRfZmlsZSk7CisJICBwcmludF92ZXJzaW9uIChjYXNtLT5vdXRfZmlsZSwg QVNNX0NPTU1FTlRfU1RBUlQsIHRydWUpOworCSAgZnB1dHMgKEFTTV9DT01NRU5UX1NUQVJU LCBjYXNtLT5vdXRfZmlsZSk7CisJICBmcHV0cyAoIiBvcHRpb25zIHBhc3NlZDogIiwgY2Fz bS0+b3V0X2ZpbGUpOwogCSAgY2hhciAqY21kbGluZSA9IGdlbl9jb21tYW5kX2xpbmVfc3Ry aW5nIChzYXZlX2RlY29kZWRfb3B0aW9ucywKIAkJCQkJCSAgIHNhdmVfZGVjb2RlZF9vcHRp b25zX2NvdW50KTsKLQkgIGZwdXRzIChjbWRsaW5lLCBhc21fb3V0X2ZpbGUpOworCSAgZnB1 dHMgKGNtZGxpbmUsIGNhc20tPm91dF9maWxlKTsKIAkgIGZyZWUgKGNtZGxpbmUpOwotCSAg ZnB1dGMgKCdcbicsIGFzbV9vdXRfZmlsZSk7CisJICBmcHV0YyAoJ1xuJywgY2FzbS0+b3V0 X2ZpbGUpOwogCX0KICAgICB9CiB9CkBAIC0xOTI0LDcgKzE5MjUsOCBAQCBsYW5nX2RlcGVu ZGVudF9pbml0IChjb25zdCBjaGFyICpuYW1lKQogCiAgIGlmICghZmxhZ193cGEpCiAgICAg ewotICAgICAgaW5pdF9hc21fb3V0cHV0IChuYW1lKTsKKyAgICAgIGlmICghZmxhZ19zeW50 YXhfb25seSkKKwlpbml0X2FzbV9vdXRwdXQgKG5hbWUpOwogCiAgICAgICBpZiAoIWZsYWdf Z2VuZXJhdGVfbHRvICYmICFmbGFnX2NvbXBhcmVfZGVidWcpCiAJewpAQCAtMjA4MywxMyAr MjA4NSwxMyBAQCBmaW5hbGl6ZSAoYm9vbCBub19iYWNrZW5kKQogICAgICB3aGV0aGVyIGZj bG9zZSByZXR1cm5zIGFuIGVycm9yLCBzaW5jZSB0aGUgcGFnZXMgbWlnaHQgc3RpbGwgYmUg b24gdGhlCiAgICAgIGJ1ZmZlciBjaGFpbiB3aGlsZSB0aGUgZmlsZSBpcyBvcGVuLiAgKi8K IAotICBpZiAoYXNtX291dF9maWxlKQorICBpZiAoY2FzbSAhPSBOVUxMICYmIGNhc20tPm91 dF9maWxlKQogICAgIHsKLSAgICAgIGlmIChmZXJyb3IgKGFzbV9vdXRfZmlsZSkgIT0gMCkK KyAgICAgIGlmIChmZXJyb3IgKGNhc20tPm91dF9maWxlKSAhPSAwKQogCWZhdGFsX2Vycm9y IChpbnB1dF9sb2NhdGlvbiwgImVycm9yIHdyaXRpbmcgdG8gJXM6ICVtIiwgYXNtX2ZpbGVf bmFtZSk7Ci0gICAgICBpZiAoZmNsb3NlIChhc21fb3V0X2ZpbGUpICE9IDApCisgICAgICBp ZiAoZmNsb3NlIChjYXNtLT5vdXRfZmlsZSkgIT0gMCkKIAlmYXRhbF9lcnJvciAoaW5wdXRf bG9jYXRpb24sICJlcnJvciBjbG9zaW5nICVzOiAlbSIsIGFzbV9maWxlX25hbWUpOwotICAg ICAgYXNtX291dF9maWxlID0gTlVMTDsKKyAgICAgIGNhc20tPm91dF9maWxlID0gTlVMTDsK ICAgICB9CiAKICAgaWYgKHN0YWNrX3VzYWdlX2ZpbGUpCmRpZmYgLS1naXQgYS9nY2MvdmFy YXNtLmMgYi9nY2MvdmFyYXNtLmMKaW5kZXggMmQyNjFiMzUzYmYuLmI4ZGYzNDRlODZiIDEw MDY0NAotLS0gYS9nY2MvdmFyYXNtLmMKKysrIGIvZ2NjL3ZhcmFzbS5jCkBAIC0xMzAsNDMg KzEzMCw2IEBAIHN0YXRpYyB2b2lkIG1hcmtfd2VhayAodHJlZSk7CiBzdGF0aWMgdm9pZCBv dXRwdXRfY29uc3RhbnRfcG9vbCAoY29uc3QgY2hhciAqLCB0cmVlKTsKIHN0YXRpYyB2b2lk IGhhbmRsZV92dHZfY29tZGF0X3NlY3Rpb24gKHNlY3Rpb24gKiwgY29uc3RfdHJlZSk7CiAM Ci0vKiBXZWxsLWtub3duIHNlY3Rpb25zLCBlYWNoIG9uZSBhc3NvY2lhdGVkIHdpdGggc29t ZSBzb3J0IG9mICpfQVNNX09QLiAgKi8KLXNlY3Rpb24gKnRleHRfc2VjdGlvbjsKLXNlY3Rp b24gKmRhdGFfc2VjdGlvbjsKLXNlY3Rpb24gKnJlYWRvbmx5X2RhdGFfc2VjdGlvbjsKLXNl Y3Rpb24gKnNkYXRhX3NlY3Rpb247Ci1zZWN0aW9uICpjdG9yc19zZWN0aW9uOwotc2VjdGlv biAqZHRvcnNfc2VjdGlvbjsKLXNlY3Rpb24gKmJzc19zZWN0aW9uOwotc2VjdGlvbiAqc2Jz c19zZWN0aW9uOwotCi0vKiBWYXJpb3VzIGZvcm1zIG9mIGNvbW1vbiBzZWN0aW9uLiAgQWxs IGFyZSBndWFyYW50ZWVkIHRvIGJlIG5vbm51bGwuICAqLwotc2VjdGlvbiAqdGxzX2NvbW1f c2VjdGlvbjsKLXNlY3Rpb24gKmNvbW1fc2VjdGlvbjsKLXNlY3Rpb24gKmxjb21tX3NlY3Rp b247Ci0KLS8qIEEgU0VDVElPTl9OT1NXSVRDSCBzZWN0aW9uIHVzZWQgZm9yIGRlY2xhcmlu ZyBnbG9iYWwgQlNTIHZhcmlhYmxlcy4KLSAgIE1heSBiZSBudWxsLiAgKi8KLXNlY3Rpb24g KmJzc19ub3N3aXRjaF9zZWN0aW9uOwotCi0vKiBUaGUgc2VjdGlvbiB0aGF0IGhvbGRzIHRo ZSBtYWluIGV4Y2VwdGlvbiB0YWJsZSwgd2hlbiBrbm93bi4gIFRoZSBzZWN0aW9uCi0gICBp cyBzZXQgZWl0aGVyIGJ5IHRoZSB0YXJnZXQncyBpbml0X3NlY3Rpb25zIGhvb2sgb3IgYnkg dGhlIGZpcnN0IGNhbGwgdG8KLSAgIHN3aXRjaF90b19leGNlcHRpb25fc2VjdGlvbi4gICov Ci1zZWN0aW9uICpleGNlcHRpb25fc2VjdGlvbjsKLQotLyogVGhlIHNlY3Rpb24gdGhhdCBo b2xkcyB0aGUgRFdBUkYyIGZyYW1lIHVud2luZCBpbmZvcm1hdGlvbiwgd2hlbiBrbm93bi4K LSAgIFRoZSBzZWN0aW9uIGlzIHNldCBlaXRoZXIgYnkgdGhlIHRhcmdldCdzIGluaXRfc2Vj dGlvbnMgaG9vayBvciBieSB0aGUKLSAgIGZpcnN0IGNhbGwgdG8gc3dpdGNoX3RvX2VoX2Zy YW1lX3NlY3Rpb24uICAqLwotc2VjdGlvbiAqZWhfZnJhbWVfc2VjdGlvbjsKLQotLyogYXNt X291dF9maWxlJ3MgY3VycmVudCBzZWN0aW9uLiAgVGhpcyBpcyBOVUxMIGlmIG5vIHNlY3Rp b24gaGFzIHlldAotICAgYmVlbiBzZWxlY3RlZCBvciBpZiB3ZSBsb3NlIHRyYWNrIG9mIHdo YXQgdGhlIGN1cnJlbnQgc2VjdGlvbiBpcy4gICovCi1zZWN0aW9uICppbl9zZWN0aW9uOwot Ci0vKiBUcnVlIGlmIGNvZGUgZm9yIHRoZSBjdXJyZW50IGZ1bmN0aW9uIGlzIGN1cnJlbnRs eSBiZWluZyBkaXJlY3RlZAotICAgYXQgdGhlIGNvbGQgc2VjdGlvbi4gICovCi1ib29sIGlu X2NvbGRfc2VjdGlvbl9wOwotCiAvKiBUaGUgZm9sbG93aW5nIGdsb2JhbCBob2xkcyB0aGUg ImZ1bmN0aW9uIG5hbWUiIGZvciB0aGUgY29kZSBpbiB0aGUKICAgIGNvbGQgc2VjdGlvbiBv ZiBhIGZ1bmN0aW9uLCBpZiBob3QvY29sZCBmdW5jdGlvbiBzcGxpdHRpbmcgaXMgZW5hYmxl ZAogICAgYW5kIHRoZXJlIHdhcyBhY3R1YWxseSBjb2RlIHRoYXQgd2VudCBpbnRvIHRoZSBj b2xkIHNlY3Rpb24uICBBCkBAIC0xODEsMTcgKzE0NCw2IEBAIHN0YXRpYyBHVFkoKCkpIHNl Y3Rpb24gKnVubmFtZWRfc2VjdGlvbnM7CiAjZGVmaW5lIElOX05BTUVEX1NFQ1RJT04oREVD TCkgXAogICAoVkFSX09SX0ZVTkNUSU9OX0RFQ0xfUCAoREVDTCkgJiYgREVDTF9TRUNUSU9O X05BTUUgKERFQ0wpICE9IE5VTEwpCiAKLXN0cnVjdCBzZWN0aW9uX2hhc2hlciA6IGdnY19w dHJfaGFzaDxzZWN0aW9uPgotewotICB0eXBlZGVmIGNvbnN0IGNoYXIgKmNvbXBhcmVfdHlw ZTsKLQotICBzdGF0aWMgaGFzaHZhbF90IGhhc2ggKHNlY3Rpb24gKik7Ci0gIHN0YXRpYyBi b29sIGVxdWFsIChzZWN0aW9uICosIGNvbnN0IGNoYXIgKik7Ci19OwotCi0vKiBIYXNoIHRh YmxlIG9mIG5hbWVkIHNlY3Rpb25zLiAgKi8KLXN0YXRpYyBHVFkoKCkpIGhhc2hfdGFibGU8 c2VjdGlvbl9oYXNoZXI+ICpzZWN0aW9uX2h0YWI7Ci0KIHN0cnVjdCBvYmplY3RfYmxvY2tf aGFzaGVyIDogZ2djX3B0cl9oYXNoPG9iamVjdF9ibG9jaz4KIHsKICAgdHlwZWRlZiBjb25z dCBzZWN0aW9uICpjb21wYXJlX3R5cGU7CkBAIC0yMDMsOSArMTU1LDYgQEAgc3RydWN0IG9i amVjdF9ibG9ja19oYXNoZXIgOiBnZ2NfcHRyX2hhc2g8b2JqZWN0X2Jsb2NrPgogLyogQSB0 YWJsZSBvZiBvYmplY3RfYmxvY2tzLCBpbmRleGVkIGJ5IHNlY3Rpb24uICAqLwogc3RhdGlj IEdUWSgoKSkgaGFzaF90YWJsZTxvYmplY3RfYmxvY2tfaGFzaGVyPiAqb2JqZWN0X2Jsb2Nr X2h0YWI7CiAKLS8qIFRoZSBuZXh0IG51bWJlciB0byB1c2UgZm9yIGludGVybmFsIGFuY2hv ciBsYWJlbHMuICAqLwotc3RhdGljIEdUWSgoKSkgaW50IGFuY2hvcl9sYWJlbG5vOwotCiAv KiBBIHBvb2wgb2YgY29uc3RhbnRzIHRoYXQgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGZ1bmN0 aW9ucy4gICovCiBzdGF0aWMgR1RZKCgpKSBzdHJ1Y3QgcnR4X2NvbnN0YW50X3Bvb2wgKnNo YXJlZF9jb25zdGFudF9wb29sOwogCkBAIC0yOTQsOCArMjQzLDggQEAgZ2V0X3NlY3Rpb24g KGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGludCBmbGFncywgdHJlZSBkZWNsLAogewog ICBzZWN0aW9uICpzZWN0LCAqKnNsb3Q7CiAKLSAgc2xvdCA9IHNlY3Rpb25faHRhYi0+Zmlu ZF9zbG90X3dpdGhfaGFzaCAobmFtZSwgaHRhYl9oYXNoX3N0cmluZyAobmFtZSksCi0JCQkJ CSAgICBJTlNFUlQpOworICBzbG90ID0gY2FzbS0+c2VjdGlvbl9odGFiLT5maW5kX3Nsb3Rf d2l0aF9oYXNoIChuYW1lLCBodGFiX2hhc2hfc3RyaW5nIChuYW1lKSwKKwkJCQkJCSAgSU5T RVJUKTsKICAgZmxhZ3MgfD0gU0VDVElPTl9OQU1FRDsKICAgaWYgKGRlY2wgIT0gbnVsbHB0 cgogICAgICAgJiYgREVDTF9QIChkZWNsKQpAQCAtNTEwLDcgKzQ1OSw3IEBAIGFzbV9vdXRw dXRfYWxpZ25lZF9ic3MgKEZJTEUgKmZpbGUsIHRyZWUgZGVjbCBBVFRSSUJVVEVfVU5VU0VE LAogCQkJY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgSE9TVF9XSURFX0lOVCBzaXplLAog CQkJaW50IGFsaWduKQogewotICBzd2l0Y2hfdG9fc2VjdGlvbiAoYnNzX3NlY3Rpb24pOwor ICBzd2l0Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2VjLmJzcyk7CiAgIEFTTV9PVVRQVVRfQUxJ R04gKGZpbGUsIGZsb29yX2xvZzIgKGFsaWduIC8gQklUU19QRVJfVU5JVCkpOwogI2lmZGVm IEFTTV9ERUNMQVJFX09CSkVDVF9OQU1FCiAgIGxhc3RfYXNzZW1ibGVfdmFyaWFibGVfZGVj bCA9IGRlY2w7CkBAIC01MjcsNyArNDc2LDcgQEAgYXNtX291dHB1dF9hbGlnbmVkX2JzcyAo RklMRSAqZmlsZSwgdHJlZSBkZWNsIEFUVFJJQlVURV9VTlVTRUQsCiAjZW5kaWYgLyogQlNT X1NFQ1RJT05fQVNNX09QICovCiAKICNpZm5kZWYgVVNFX1NFTEVDVF9TRUNUSU9OX0ZPUl9G VU5DVElPTlMKLS8qIFJldHVybiB0aGUgaG90IHNlY3Rpb24gZm9yIGZ1bmN0aW9uIERFQ0wu ICBSZXR1cm4gdGV4dF9zZWN0aW9uIGZvcgorLyogUmV0dXJuIHRoZSBob3Qgc2VjdGlvbiBm b3IgZnVuY3Rpb24gREVDTC4gIFJldHVybiBjYXNtLT5zZWMudGV4dCBmb3IKICAgIG51bGwg REVDTHMuICAqLwogCiBzdGF0aWMgc2VjdGlvbiAqCkBAIC01MzgsNyArNDg3LDcgQEAgaG90 X2Z1bmN0aW9uX3NlY3Rpb24gKHRyZWUgZGVjbCkKICAgICAgICYmIHRhcmdldG1fY29tbW9u LmhhdmVfbmFtZWRfc2VjdGlvbnMpCiAgICAgcmV0dXJuIGdldF9uYW1lZF9zZWN0aW9uIChk ZWNsLCBOVUxMLCAwKTsKICAgZWxzZQotICAgIHJldHVybiB0ZXh0X3NlY3Rpb247CisgICAg cmV0dXJuIGNhc20tPnNlYy50ZXh0OwogfQogI2VuZGlmCiAKQEAgLTcxOCw3ICs2NjcsNyBA QCBmdW5jdGlvbl9zZWN0aW9uICh0cmVlIGRlY2wpCiBzZWN0aW9uICoKIGN1cnJlbnRfZnVu Y3Rpb25fc2VjdGlvbiAodm9pZCkKIHsKLSAgcmV0dXJuIGZ1bmN0aW9uX3NlY3Rpb25fMSAo Y3VycmVudF9mdW5jdGlvbl9kZWNsLCBpbl9jb2xkX3NlY3Rpb25fcCk7CisgIHJldHVybiBm dW5jdGlvbl9zZWN0aW9uXzEgKGN1cnJlbnRfZnVuY3Rpb25fZGVjbCwgY2FzbS0+aW5fY29s ZF9zZWN0aW9uX3ApOwogfQogCiAvKiBUZWxsIGFzc2VtYmxlciB0byBzd2l0Y2ggdG8gdW5s aWtlbHktdG8tYmUtZXhlY3V0ZWQgdGV4dCBzZWN0aW9uLiAgKi8KQEAgLTc0Niw3ICs2OTUs NyBAQCB1bmxpa2VseV90ZXh0X3NlY3Rpb25fcCAoc2VjdGlvbiAqc2VjdCkKIHZvaWQKIHN3 aXRjaF90b19vdGhlcl90ZXh0X3BhcnRpdGlvbiAodm9pZCkKIHsKLSAgaW5fY29sZF9zZWN0 aW9uX3AgPSAhaW5fY29sZF9zZWN0aW9uX3A7CisgIGNhc20tPmluX2NvbGRfc2VjdGlvbl9w ID0gIWNhc20tPmluX2NvbGRfc2VjdGlvbl9wOwogICBzd2l0Y2hfdG9fc2VjdGlvbiAoY3Vy cmVudF9mdW5jdGlvbl9zZWN0aW9uICgpKTsKIH0KIApAQCAtODMxLDcgKzc4MCw3IEBAIGRl ZmF1bHRfZnVuY3Rpb25fcm9kYXRhX3NlY3Rpb24gKHRyZWUgZGVjbCwgYm9vbCByZWxvY2F0 YWJsZSkKICAgaWYgKHJlbG9jYXRhYmxlKQogICAgIHJldHVybiBnZXRfc2VjdGlvbiAoc25h bWUsIGZsYWdzLCBkZWNsKTsKICAgZWxzZQotICAgIHJldHVybiByZWFkb25seV9kYXRhX3Nl Y3Rpb247CisgICAgcmV0dXJuIGNhc20tPnNlYy5yZWFkb25seV9kYXRhOwogfQogCiAvKiBS ZXR1cm4gdGhlIHJlYWQtb25seSBkYXRhIHNlY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGZ1bmN0 aW9uIERFQ0wKQEAgLTg0MSw3ICs3OTAsNyBAQCBkZWZhdWx0X2Z1bmN0aW9uX3JvZGF0YV9z ZWN0aW9uICh0cmVlIGRlY2wsIGJvb2wgcmVsb2NhdGFibGUpCiBzZWN0aW9uICoKIGRlZmF1 bHRfbm9fZnVuY3Rpb25fcm9kYXRhX3NlY3Rpb24gKHRyZWUsIGJvb2wpCiB7Ci0gIHJldHVy biByZWFkb25seV9kYXRhX3NlY3Rpb247CisgIHJldHVybiBjYXNtLT5zZWMucmVhZG9ubHlf ZGF0YTsKIH0KIAogLyogQSBzdWJyb3V0aW5lIG9mIG1lcmdlYWJsZV9zdHJpbmdfc2VjdGlv biBhbmQgbWVyZ2VhYmxlX2NvbnN0YW50X3NlY3Rpb24uICAqLwpAQCAtODkwLDcgKzgzOSw3 IEBAIG1lcmdlYWJsZV9zdHJpbmdfc2VjdGlvbiAodHJlZSBkZWNsIEFUVFJJQlVURV9VTlVT RUQsCiAJICAgIGFsaWduID0gbW9kZXNpemU7CiAKIAkgIGlmICghSEFWRV9MRF9BTElHTkVE X1NIRl9NRVJHRSAmJiBhbGlnbiA+IDgpCi0JICAgIHJldHVybiByZWFkb25seV9kYXRhX3Nl Y3Rpb247CisJICAgIHJldHVybiBjYXNtLT5zZWMucmVhZG9ubHlfZGF0YTsKIAogCSAgc3Ry ID0gVFJFRV9TVFJJTkdfUE9JTlRFUiAoZGVjbCk7CiAJICB1bml0ID0gR0VUX01PREVfU0la RSAobW9kZSk7CkBAIC05MTQsNyArODYzLDcgQEAgbWVyZ2VhYmxlX3N0cmluZ19zZWN0aW9u ICh0cmVlIGRlY2wgQVRUUklCVVRFX1VOVVNFRCwKIAl9CiAgICAgfQogCi0gIHJldHVybiBy ZWFkb25seV9kYXRhX3NlY3Rpb247CisgIHJldHVybiBjYXNtLT5zZWMucmVhZG9ubHlfZGF0 YTsKIH0KIAogLyogUmV0dXJuIHRoZSBzZWN0aW9uIHRvIHVzZSBmb3IgY29uc3RhbnQgbWVy Z2luZy4gICovCkBAIC05NDAsNyArODg5LDcgQEAgbWVyZ2VhYmxlX2NvbnN0YW50X3NlY3Rp b24gKG1hY2hpbmVfbW9kZSBtb2RlIEFUVFJJQlVURV9VTlVTRUQsCiAgICAgICBmbGFncyB8 PSAoYWxpZ24gLyA4KSB8IFNFQ1RJT05fTUVSR0U7CiAgICAgICByZXR1cm4gZ2V0X3NlY3Rp b24gKG5hbWUsIGZsYWdzLCBOVUxMKTsKICAgICB9Ci0gIHJldHVybiByZWFkb25seV9kYXRh X3NlY3Rpb247CisgIHJldHVybiBjYXNtLT5zZWMucmVhZG9ubHlfZGF0YTsKIH0KIAwKIC8q IEdpdmVuIE5BTUUsIGEgcHV0YXRpdmUgcmVnaXN0ZXIgbmFtZSwgZGlzY2FyZCBhbnkgY3Vz dG9tYXJ5IHByZWZpeGVzLiAgKi8KQEAgLTEyNTMsOSArMTIwMiw5IEBAIGdldF92YXJpYWJs ZV9zZWN0aW9uICh0cmVlIGRlY2wsIGJvb2wgcHJlZmVyX25vc3dpdGNoX3ApCiAgICAgICBn Y2NfYXNzZXJ0IChERUNMX1NFQ1RJT05fTkFNRSAoZGVjbCkgPT0gTlVMTAogCQkgICYmIEFE RFJfU1BBQ0VfR0VORVJJQ19QIChhcykpOwogICAgICAgaWYgKERFQ0xfVEhSRUFEX0xPQ0FM X1AgKGRlY2wpKQotCXJldHVybiB0bHNfY29tbV9zZWN0aW9uOworCXJldHVybiBjYXNtLT5z ZWMudGxzX2NvbW07CiAgICAgICBlbHNlIGlmIChUUkVFX1BVQkxJQyAoZGVjbCkgJiYgYnNz X2luaXRpYWxpemVyX3AgKGRlY2wpKQotCXJldHVybiBjb21tX3NlY3Rpb247CisJcmV0dXJu IGNhc20tPnNlYy5jb21tOwogICAgIH0KIAogICByZWxvYyA9IGNvbXB1dGVfcmVsb2NfZm9y X3ZhciAoZGVjbCk7CkBAIC0xMjg1LDkgKzEyMzQsOSBAQCBnZXRfdmFyaWFibGVfc2VjdGlv biAodHJlZSBkZWNsLCBib29sIHByZWZlcl9ub3N3aXRjaF9wKQogICAgICAgaWYgKCFUUkVF X1BVQkxJQyAoZGVjbCkKIAkgICYmICEoKGZsYWdfc2FuaXRpemUgJiBTQU5JVElaRV9BRERS RVNTKQogCSAgICAgICAmJiBhc2FuX3Byb3RlY3RfZ2xvYmFsIChkZWNsKSkpCi0JcmV0dXJu IGxjb21tX3NlY3Rpb247Ci0gICAgICBpZiAoYnNzX25vc3dpdGNoX3NlY3Rpb24pCi0JcmV0 dXJuIGJzc19ub3N3aXRjaF9zZWN0aW9uOworCXJldHVybiBjYXNtLT5zZWMubGNvbW07Cisg ICAgICBpZiAoY2FzbS0+c2VjLmJzc19ub3N3aXRjaCkKKwlyZXR1cm4gY2FzbS0+c2VjLmJz c19ub3N3aXRjaDsKICAgICB9CiAKICAgcmV0dXJuIHRhcmdldG0uYXNtX291dC5zZWxlY3Rf c2VjdGlvbiAoZGVjbCwgcmVsb2MsCkBAIC0xNzMzLDcgKzE2ODIsNyBAQCB2b2lkCiBkZWZh dWx0X2R0b3Jfc2VjdGlvbl9hc21fb3V0X2Rlc3RydWN0b3IgKHJ0eCBzeW1ib2wsCiAJCQkJ CSBpbnQgcHJpb3JpdHkgQVRUUklCVVRFX1VOVVNFRCkKIHsKLSAgYXNzZW1ibGVfYWRkcl90 b19zZWN0aW9uIChzeW1ib2wsIGR0b3JzX3NlY3Rpb24pOworICBhc3NlbWJsZV9hZGRyX3Rv X3NlY3Rpb24gKHN5bWJvbCwgY2FzbS0+c2VjLmR0b3JzKTsKIH0KICNlbmRpZgogCkBAIC0x NzU2LDcgKzE3MDUsNyBAQCB2b2lkCiBkZWZhdWx0X2N0b3Jfc2VjdGlvbl9hc21fb3V0X2Nv bnN0cnVjdG9yIChydHggc3ltYm9sLAogCQkJCQkgIGludCBwcmlvcml0eSBBVFRSSUJVVEVf VU5VU0VEKQogewotICBhc3NlbWJsZV9hZGRyX3RvX3NlY3Rpb24gKHN5bWJvbCwgY3RvcnNf c2VjdGlvbik7CisgIGFzc2VtYmxlX2FkZHJfdG9fc2VjdGlvbiAoc3ltYm9sLCBjYXNtLT5z ZWMuY3RvcnMpOwogfQogI2VuZGlmCiAMCkBAIC0xODI0LDcgKzE3NzMsNyBAQCBkZWNpZGVf ZnVuY3Rpb25fc2VjdGlvbiAodHJlZSBkZWNsKQogCQkJCSAgICAgID09IE5PREVfRlJFUVVF TkNZX1VOTElLRUxZX0VYRUNVVEVEKTsKICAgICB9CiAKLSAgaW5fY29sZF9zZWN0aW9uX3Ag PSBmaXJzdF9mdW5jdGlvbl9ibG9ja19pc19jb2xkOworICBjYXNtLT5pbl9jb2xkX3NlY3Rp b25fcCA9IGZpcnN0X2Z1bmN0aW9uX2Jsb2NrX2lzX2NvbGQ7CiB9CiAKIC8qIEdldCB0aGUg ZnVuY3Rpb24ncyBuYW1lLCBhcyBkZXNjcmliZWQgYnkgaXRzIFJUTC4gIFRoaXMgbWF5IGJl CkBAIC0xOTAwLDEzICsxODQ5LDEzIEBAIGFzc2VtYmxlX3N0YXJ0X2Z1bmN0aW9uICh0cmVl IGRlY2wsIGNvbnN0IGNoYXIgKmZubmFtZSkKICAgICAgIGlmICghY2Z1bi0+aXNfdGh1bmsK IAkgICYmIEJCX1BBUlRJVElPTiAoRU5UUllfQkxPQ0tfUFRSX0ZPUl9GTiAoY2Z1biktPm5l eHRfYmIpID09IEJCX0NPTERfUEFSVElUSU9OKQogCXsKLQkgIHN3aXRjaF90b19zZWN0aW9u ICh0ZXh0X3NlY3Rpb24pOworCSAgc3dpdGNoX3RvX3NlY3Rpb24gKGNhc20tPnNlYy50ZXh0 KTsKIAkgIGFzc2VtYmxlX2FsaWduIChhbGlnbik7CiAJICBBU01fT1VUUFVUX0xBQkVMIChh c21fb3V0X2ZpbGUsIGNydGwtPnN1YnNlY3Rpb25zLmhvdF9zZWN0aW9uX2xhYmVsKTsKIAkg IGhvdF9sYWJlbF93cml0dGVuID0gdHJ1ZTsKIAkgIGZpcnN0X2Z1bmN0aW9uX2Jsb2NrX2lz X2NvbGQgPSB0cnVlOwogCX0KLSAgICAgIGluX2NvbGRfc2VjdGlvbl9wID0gZmlyc3RfZnVu Y3Rpb25fYmxvY2tfaXNfY29sZDsKKyAgICAgIGNhc20tPmluX2NvbGRfc2VjdGlvbl9wID0g Zmlyc3RfZnVuY3Rpb25fYmxvY2tfaXNfY29sZDsKICAgICB9CiAKIApAQCAtMjAyMCw3ICsx OTY5LDcgQEAgYXNzZW1ibGVfZW5kX2Z1bmN0aW9uICh0cmVlIGRlY2wsIGNvbnN0IGNoYXIg KmZubmFtZSBBVFRSSUJVVEVfVU5VU0VEKQogICAgIHsKICAgICAgIHNlY3Rpb24gKnNhdmVf dGV4dF9zZWN0aW9uOwogCi0gICAgICBzYXZlX3RleHRfc2VjdGlvbiA9IGluX3NlY3Rpb247 CisgICAgICBzYXZlX3RleHRfc2VjdGlvbiA9IGNhc20tPmluX3NlY3Rpb247CiAgICAgICBz d2l0Y2hfdG9fc2VjdGlvbiAodW5saWtlbHlfdGV4dF9zZWN0aW9uICgpKTsKICNpZmRlZiBB U01fREVDTEFSRV9DT0xEX0ZVTkNUSU9OX1NJWkUKICAgICAgIGlmIChjb2xkX2Z1bmN0aW9u X25hbWUgIT0gTlVMTF9UUkVFKQpAQCAtMjAzMCw3ICsxOTc5LDcgQEAgYXNzZW1ibGVfZW5k X2Z1bmN0aW9uICh0cmVlIGRlY2wsIGNvbnN0IGNoYXIgKmZubmFtZSBBVFRSSUJVVEVfVU5V U0VEKQogI2VuZGlmCiAgICAgICBBU01fT1VUUFVUX0xBQkVMIChhc21fb3V0X2ZpbGUsIGNy dGwtPnN1YnNlY3Rpb25zLmNvbGRfc2VjdGlvbl9lbmRfbGFiZWwpOwogICAgICAgaWYgKGZp cnN0X2Z1bmN0aW9uX2Jsb2NrX2lzX2NvbGQpCi0Jc3dpdGNoX3RvX3NlY3Rpb24gKHRleHRf c2VjdGlvbik7CisJc3dpdGNoX3RvX3NlY3Rpb24gKGNhc20tPnNlYy50ZXh0KTsKICAgICAg IGVsc2UKIAlzd2l0Y2hfdG9fc2VjdGlvbiAoZnVuY3Rpb25fc2VjdGlvbiAoZGVjbCkpOwog ICAgICAgQVNNX09VVFBVVF9MQUJFTCAoYXNtX291dF9maWxlLCBjcnRsLT5zdWJzZWN0aW9u cy5ob3Rfc2VjdGlvbl9lbmRfbGFiZWwpOwpAQCAtMjA1MCw3ICsxOTk5LDcgQEAgYXNzZW1i bGVfemVyb3MgKHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgc2l6ZSkKICNpZmRlZiBBU01fTk9f U0tJUF9JTl9URVhUCiAgIC8qIFRoZSBgc3BhY2UnIHBzZXVkbyBpbiB0aGUgdGV4dCBzZWN0 aW9uIG91dHB1dHMgbm9wIGluc25zIHJhdGhlciB0aGFuIDBzLAogICAgICBzbyB3ZSBtdXN0 IG91dHB1dCAwcyBleHBsaWNpdGx5IGluIHRoZSB0ZXh0IHNlY3Rpb24uICAqLwotICBpZiAo QVNNX05PX1NLSVBfSU5fVEVYVCAmJiAoaW5fc2VjdGlvbi0+Y29tbW9uLmZsYWdzICYgU0VD VElPTl9DT0RFKSAhPSAwKQorICBpZiAoQVNNX05PX1NLSVBfSU5fVEVYVCAmJiAoY2FzbS0+ aW5fc2VjdGlvbi0+Y29tbW9uLmZsYWdzICYgU0VDVElPTl9DT0RFKSAhPSAwKQogICAgIHsK ICAgICAgIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgaTsKICAgICAgIGZvciAoaSA9IDA7IGkg PCBzaXplOyBpKyspCkBAIC0yMDk3LDcgKzIwNDYsNyBAQCBhc3NlbWJsZV9zdHJpbmcgKGNv bnN0IGNoYXIgKnAsIGludCBzaXplKQogfQogCiAMCi0vKiBBIG5vc3dpdGNoX3NlY3Rpb25f Y2FsbGJhY2sgZm9yIGxjb21tX3NlY3Rpb24uICAqLworLyogQSBub3N3aXRjaF9zZWN0aW9u X2NhbGxiYWNrIGZvciBjYXNtLT5zZWMubGNvbW0uICAqLwogCiBzdGF0aWMgYm9vbAogZW1p dF9sb2NhbCAodHJlZSBkZWNsIEFUVFJJQlVURV9VTlVTRUQsCkBAIC0yMTIwLDcgKzIwNjks NyBAQCBlbWl0X2xvY2FsICh0cmVlIGRlY2wgQVRUUklCVVRFX1VOVVNFRCwKICNlbmRpZgog fQogCi0vKiBBIG5vc3dpdGNoX3NlY3Rpb25fY2FsbGJhY2sgZm9yIGJzc19ub3N3aXRjaF9z ZWN0aW9uLiAgKi8KKy8qIEEgbm9zd2l0Y2hfc2VjdGlvbl9jYWxsYmFjayBmb3IgY2FzbS0+ c2VjLmJzc19ub3N3aXRjaC4gICovCiAKICNpZiBkZWZpbmVkIEFTTV9PVVRQVVRfQUxJR05F RF9CU1MKIHN0YXRpYyBib29sCkBAIC0yMTM1LDcgKzIwODQsNyBAQCBlbWl0X2JzcyAodHJl ZSBkZWNsIEFUVFJJQlVURV9VTlVTRUQsCiB9CiAjZW5kaWYKIAotLyogQSBub3N3aXRjaF9z ZWN0aW9uX2NhbGxiYWNrIGZvciBjb21tX3NlY3Rpb24uICAqLworLyogQSBub3N3aXRjaF9z ZWN0aW9uX2NhbGxiYWNrIGZvciBjYXNtLT5zZWMuY29tbS4gICovCiAKIHN0YXRpYyBib29s CiBlbWl0X2NvbW1vbiAodHJlZSBkZWNsIEFUVFJJQlVURV9VTlVTRUQsCkBAIC0yMTU3LDcg KzIxMDYsNyBAQCBlbWl0X2NvbW1vbiAodHJlZSBkZWNsIEFUVFJJQlVURV9VTlVTRUQsCiAj ZW5kaWYKIH0KIAotLyogQSBub3N3aXRjaF9zZWN0aW9uX2NhbGxiYWNrIGZvciB0bHNfY29t bV9zZWN0aW9uLiAgKi8KKy8qIEEgbm9zd2l0Y2hfc2VjdGlvbl9jYWxsYmFjayBmb3IgY2Fz bS0+c2VjLnRsc19jb21tLiAgKi8KIAogc3RhdGljIGJvb2wKIGVtaXRfdGxzX2NvbW1vbiAo dHJlZSBkZWNsIEFUVFJJQlVURV9VTlVTRUQsCkBAIC0yNzc0LDcgKzI3MjMsNyBAQCBhc3Nl bWJsZV90cmFtcG9saW5lX3RlbXBsYXRlICh2b2lkKQogI2lmZGVmIFRSQU1QT0xJTkVfU0VD VElPTgogICBzd2l0Y2hfdG9fc2VjdGlvbiAoVFJBTVBPTElORV9TRUNUSU9OKTsKICNlbHNl Ci0gIHN3aXRjaF90b19zZWN0aW9uIChyZWFkb25seV9kYXRhX3NlY3Rpb24pOworICBzd2l0 Y2hfdG9fc2VjdGlvbiAoY2FzbS0+c2VjLnJlYWRvbmx5X2RhdGEpOwogI2VuZGlmCiAKICAg LyogV3JpdGUgdGhlIGFzc2VtYmxlciBjb2RlIHRvIGRlZmluZSBvbmUuICAqLwpAQCAtNDE5 Miw4ICs0MTQxLDggQEAgb3V0cHV0X2NvbnN0YW50X3Bvb2xfMSAoY2xhc3MgY29uc3RhbnRf ZGVzY3JpcHRvcl9ydHggKmRlc2MsCiAgIC8qIE1ha2Ugc3VyZSBhbGwgY29uc3RhbnRzIGlu IFNFQ1RJT05fTUVSR0UgYW5kIG5vdCBTRUNUSU9OX1NUUklOR1MKICAgICAgc2VjdGlvbnMg aGF2ZSBwcm9wZXIgc2l6ZS4gICovCiAgIGlmIChhbGlnbiA+IEdFVF9NT0RFX0JJVFNJWkUg KGRlc2MtPm1vZGUpCi0gICAgICAmJiBpbl9zZWN0aW9uCi0gICAgICAmJiAoaW5fc2VjdGlv bi0+Y29tbW9uLmZsYWdzICYgU0VDVElPTl9NRVJHRSkpCisgICAgICAmJiBjYXNtLT5pbl9z ZWN0aW9uCisgICAgICAmJiAoY2FzbS0+aW5fc2VjdGlvbi0+Y29tbW9uLmZsYWdzICYgU0VD VElPTl9NRVJHRSkpCiAgICAgYXNzZW1ibGVfYWxpZ24gKGFsaWduKTsKIAogI2lmZGVmIEFT TV9PVVRQVVRfU1BFQ0lBTF9QT09MX0VOVFJZCkBAIC02NjAyLDcwICs2NTUxLDcyIEBAIG1h a2VfZGVjbF9vbmVfb25seSAodHJlZSBkZWNsLCB0cmVlIGNvbWRhdF9ncm91cCkKIHZvaWQK IGluaXRfdmFyYXNtX29uY2UgKHZvaWQpCiB7Ci0gIHNlY3Rpb25faHRhYiA9IGhhc2hfdGFi bGU8c2VjdGlvbl9oYXNoZXI+OjpjcmVhdGVfZ2djICgzMSk7CisgIC8qIEluaXRpYWxpemUg QVNNIG91dCBzdGF0ZS4gICovCisgIGNhc20gPSBuZXcgKGdnY19hbGxvYzxhc21fb3V0X3N0 YXRlPiAoKSkgYXNtX291dF9zdGF0ZSAoKTsKKwogICBvYmplY3RfYmxvY2tfaHRhYiA9IGhh c2hfdGFibGU8b2JqZWN0X2Jsb2NrX2hhc2hlcj46OmNyZWF0ZV9nZ2MgKDMxKTsKICAgY29u c3RfZGVzY19odGFiID0gaGFzaF90YWJsZTx0cmVlX2Rlc2NyaXB0b3JfaGFzaGVyPjo6Y3Jl YXRlX2dnYyAoMTAwOSk7CiAKICAgc2hhcmVkX2NvbnN0YW50X3Bvb2wgPSBjcmVhdGVfY29u c3RhbnRfcG9vbCAoKTsKIAogI2lmZGVmIFRFWFRfU0VDVElPTl9BU01fT1AKLSAgdGV4dF9z ZWN0aW9uID0gZ2V0X3VubmFtZWRfc2VjdGlvbiAoU0VDVElPTl9DT0RFLCBvdXRwdXRfc2Vj dGlvbl9hc21fb3AsCisgIGNhc20tPnNlYy50ZXh0ID0gZ2V0X3VubmFtZWRfc2VjdGlvbiAo U0VDVElPTl9DT0RFLCBvdXRwdXRfc2VjdGlvbl9hc21fb3AsCiAJCQkJICAgICAgVEVYVF9T RUNUSU9OX0FTTV9PUCk7CiAjZW5kaWYKIAogI2lmZGVmIERBVEFfU0VDVElPTl9BU01fT1AK LSAgZGF0YV9zZWN0aW9uID0gZ2V0X3VubmFtZWRfc2VjdGlvbiAoU0VDVElPTl9XUklURSwg b3V0cHV0X3NlY3Rpb25fYXNtX29wLAotCQkJCSAgICAgIERBVEFfU0VDVElPTl9BU01fT1Ap OworICBjYXNtLT5zZWMuZGF0YSA9IGdldF91bm5hbWVkX3NlY3Rpb24gKFNFQ1RJT05fV1JJ VEUsIG91dHB1dF9zZWN0aW9uX2FzbV9vcCwKKwkJCQkJICAgICBEQVRBX1NFQ1RJT05fQVNN X09QKTsKICNlbmRpZgogCiAjaWZkZWYgU0RBVEFfU0VDVElPTl9BU01fT1AKLSAgc2RhdGFf c2VjdGlvbiA9IGdldF91bm5hbWVkX3NlY3Rpb24gKFNFQ1RJT05fV1JJVEUsIG91dHB1dF9z ZWN0aW9uX2FzbV9vcCwKKyAgY2FzbS0+c2VjLnNkYXRhID0gZ2V0X3VubmFtZWRfc2VjdGlv biAoU0VDVElPTl9XUklURSwgb3V0cHV0X3NlY3Rpb25fYXNtX29wLAogCQkJCSAgICAgICBT REFUQV9TRUNUSU9OX0FTTV9PUCk7CiAjZW5kaWYKIAogI2lmZGVmIFJFQURPTkxZX0RBVEFf U0VDVElPTl9BU01fT1AKLSAgcmVhZG9ubHlfZGF0YV9zZWN0aW9uID0gZ2V0X3VubmFtZWRf c2VjdGlvbiAoMCwgb3V0cHV0X3NlY3Rpb25fYXNtX29wLAotCQkJCQkgICAgICAgUkVBRE9O TFlfREFUQV9TRUNUSU9OX0FTTV9PUCk7CisgIGNhc20tPnNlYy5yZWFkb25seV9kYXRhID0g Z2V0X3VubmFtZWRfc2VjdGlvbiAoMCwgb3V0cHV0X3NlY3Rpb25fYXNtX29wLAorCQkJCQkJ ICAgICAgUkVBRE9OTFlfREFUQV9TRUNUSU9OX0FTTV9PUCk7CiAjZW5kaWYKIAogI2lmZGVm IENUT1JTX1NFQ1RJT05fQVNNX09QCi0gIGN0b3JzX3NlY3Rpb24gPSBnZXRfdW5uYW1lZF9z ZWN0aW9uICgwLCBvdXRwdXRfc2VjdGlvbl9hc21fb3AsCisgIGNhc20tPnNlYy5jdG9ycyA9 IGdldF91bm5hbWVkX3NlY3Rpb24gKDAsIG91dHB1dF9zZWN0aW9uX2FzbV9vcCwKIAkJCQkg ICAgICAgQ1RPUlNfU0VDVElPTl9BU01fT1ApOwogI2VuZGlmCiAKICNpZmRlZiBEVE9SU19T RUNUSU9OX0FTTV9PUAotICBkdG9yc19zZWN0aW9uID0gZ2V0X3VubmFtZWRfc2VjdGlvbiAo MCwgb3V0cHV0X3NlY3Rpb25fYXNtX29wLAorICBjYXNtLT5zZWMuZHRvcnMgPSBnZXRfdW5u YW1lZF9zZWN0aW9uICgwLCBvdXRwdXRfc2VjdGlvbl9hc21fb3AsCiAJCQkJICAgICAgIERU T1JTX1NFQ1RJT05fQVNNX09QKTsKICNlbmRpZgogCiAjaWZkZWYgQlNTX1NFQ1RJT05fQVNN X09QCi0gIGJzc19zZWN0aW9uID0gZ2V0X3VubmFtZWRfc2VjdGlvbiAoU0VDVElPTl9XUklU RSB8IFNFQ1RJT05fQlNTLAotCQkJCSAgICAgb3V0cHV0X3NlY3Rpb25fYXNtX29wLAotCQkJ CSAgICAgQlNTX1NFQ1RJT05fQVNNX09QKTsKKyAgY2FzbS0+c2VjLmJzcyA9IGdldF91bm5h bWVkX3NlY3Rpb24gKFNFQ1RJT05fV1JJVEUgfCBTRUNUSU9OX0JTUywKKwkJCQkJICAgIG91 dHB1dF9zZWN0aW9uX2FzbV9vcCwKKwkJCQkJICAgIEJTU19TRUNUSU9OX0FTTV9PUCk7CiAj ZW5kaWYKIAogI2lmZGVmIFNCU1NfU0VDVElPTl9BU01fT1AKLSAgc2Jzc19zZWN0aW9uID0g Z2V0X3VubmFtZWRfc2VjdGlvbiAoU0VDVElPTl9XUklURSB8IFNFQ1RJT05fQlNTLAorICBj YXNtLT5zZWMuc2JzcyA9IGdldF91bm5hbWVkX3NlY3Rpb24gKFNFQ1RJT05fV1JJVEUgfCBT RUNUSU9OX0JTUywKIAkJCQkgICAgICBvdXRwdXRfc2VjdGlvbl9hc21fb3AsCiAJCQkJICAg ICAgU0JTU19TRUNUSU9OX0FTTV9PUCk7CiAjZW5kaWYKIAotICB0bHNfY29tbV9zZWN0aW9u ID0gZ2V0X25vc3dpdGNoX3NlY3Rpb24gKFNFQ1RJT05fV1JJVEUgfCBTRUNUSU9OX0JTUwot CQkJCQkgICB8IFNFQ1RJT05fQ09NTU9OLCBlbWl0X3Rsc19jb21tb24pOwotICBsY29tbV9z ZWN0aW9uID0gZ2V0X25vc3dpdGNoX3NlY3Rpb24gKFNFQ1RJT05fV1JJVEUgfCBTRUNUSU9O X0JTUwotCQkJCQl8IFNFQ1RJT05fQ09NTU9OLCBlbWl0X2xvY2FsKTsKLSAgY29tbV9zZWN0 aW9uID0gZ2V0X25vc3dpdGNoX3NlY3Rpb24gKFNFQ1RJT05fV1JJVEUgfCBTRUNUSU9OX0JT UwotCQkJCSAgICAgICB8IFNFQ1RJT05fQ09NTU9OLCBlbWl0X2NvbW1vbik7CisgIGNhc20t PnNlYy50bHNfY29tbSA9IGdldF9ub3N3aXRjaF9zZWN0aW9uIChTRUNUSU9OX1dSSVRFIHwg U0VDVElPTl9CU1MKKwkJCQkJCSAgfCBTRUNUSU9OX0NPTU1PTiwgZW1pdF90bHNfY29tbW9u KTsKKyAgY2FzbS0+c2VjLmxjb21tID0gZ2V0X25vc3dpdGNoX3NlY3Rpb24gKFNFQ1RJT05f V1JJVEUgfCBTRUNUSU9OX0JTUworCQkJCQkgICAgICAgfCBTRUNUSU9OX0NPTU1PTiwgZW1p dF9sb2NhbCk7CisgIGNhc20tPnNlYy5jb21tID0gZ2V0X25vc3dpdGNoX3NlY3Rpb24gKFNF Q1RJT05fV1JJVEUgfCBTRUNUSU9OX0JTUworCQkJCQkgICAgICB8IFNFQ1RJT05fQ09NTU9O LCBlbWl0X2NvbW1vbik7CiAKICNpZiBkZWZpbmVkIEFTTV9PVVRQVVRfQUxJR05FRF9CU1MK LSAgYnNzX25vc3dpdGNoX3NlY3Rpb24gPSBnZXRfbm9zd2l0Y2hfc2VjdGlvbiAoU0VDVElP Tl9XUklURSB8IFNFQ1RJT05fQlNTLAotCQkJCQkgICAgICAgZW1pdF9ic3MpOworICBjYXNt LT5zZWMuYnNzX25vc3dpdGNoID0gZ2V0X25vc3dpdGNoX3NlY3Rpb24gKFNFQ1RJT05fV1JJ VEUgfCBTRUNUSU9OX0JTUywKKwkJCQkJCSAgICAgIGVtaXRfYnNzKTsKICNlbmRpZgogCiAg IHRhcmdldG0uYXNtX291dC5pbml0X3NlY3Rpb25zICgpOwogCi0gIGlmIChyZWFkb25seV9k YXRhX3NlY3Rpb24gPT0gTlVMTCkKLSAgICByZWFkb25seV9kYXRhX3NlY3Rpb24gPSB0ZXh0 X3NlY3Rpb247CisgIGlmIChjYXNtLT5zZWMucmVhZG9ubHlfZGF0YSA9PSBOVUxMKQorICAg IGNhc20tPnNlYy5yZWFkb25seV9kYXRhID0gY2FzbS0+c2VjLnRleHQ7CiAKICNpZmRlZiBB U01fT1VUUFVUX0VYVEVSTkFMCiAgIHBlbmRpbmdfYXNzZW1ibGVfZXh0ZXJuYWxzX3NldCA9 IG5ldyBoYXNoX3NldDx0cmVlPjsKQEAgLTY3OTAsMTMgKzY3NDEsMTMgQEAgZGVmYXVsdF9z ZWN0aW9uX3R5cGVfZmxhZ3MgKHRyZWUgZGVjbCwgY29uc3QgY2hhciAqbmFtZSwgaW50IHJl bG9jKQogfQogCiAvKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgdGFyZ2V0IHN1cHBvcnRzIHNvbWUg Zm9ybSBvZiBnbG9iYWwgQlNTLAotICAgZWl0aGVyIHRocm91Z2ggYnNzX25vc3dpdGNoX3Nl Y3Rpb24sIG9yIGJ5IHNlbGVjdGluZyBhIEJTUworICAgZWl0aGVyIHRocm91Z2ggY2FzbS0+ c2VjLmJzc19ub3N3aXRjaCwgb3IgYnkgc2VsZWN0aW5nIGEgQlNTCiAgICBzZWN0aW9uIGlu IFRBUkdFVF9BU01fU0VMRUNUX1NFQ1RJT04uICAqLwogCiBib29sCiBoYXZlX2dsb2JhbF9i c3NfcCAodm9pZCkKIHsKLSAgcmV0dXJuIGJzc19ub3N3aXRjaF9zZWN0aW9uIHx8IHRhcmdl dG0uaGF2ZV9zd2l0Y2hhYmxlX2Jzc19zZWN0aW9uczsKKyAgcmV0dXJuIGNhc20tPnNlYy5i c3Nfbm9zd2l0Y2ggfHwgdGFyZ2V0bS5oYXZlX3N3aXRjaGFibGVfYnNzX3NlY3Rpb25zOwog fQogCiAvKiBPdXRwdXQgYXNzZW1ibHkgdG8gc3dpdGNoIHRvIHNlY3Rpb24gTkFNRSB3aXRo IGF0dHJpYnV0ZSBGTEFHUy4KQEAgLTY5NTgsNyArNjkwOSw3IEBAIGRlZmF1bHRfc2VsZWN0 X3NlY3Rpb24gKHRyZWUgZGVjbCwgaW50IHJlbG9jLAogICBpZiAoREVDTF9QIChkZWNsKSkK ICAgICB7CiAgICAgICBpZiAoZGVjbF9yZWFkb25seV9zZWN0aW9uIChkZWNsLCByZWxvYykp Ci0JcmV0dXJuIHJlYWRvbmx5X2RhdGFfc2VjdGlvbjsKKwlyZXR1cm4gY2FzbS0+c2VjLnJl YWRvbmx5X2RhdGE7CiAgICAgfQogICBlbHNlIGlmIChUUkVFX0NPREUgKGRlY2wpID09IENP TlNUUlVDVE9SKQogICAgIHsKQEAgLTY5NjYsMTQgKzY5MTcsMTQgQEAgZGVmYXVsdF9zZWxl Y3Rfc2VjdGlvbiAodHJlZSBkZWNsLCBpbnQgcmVsb2MsCiAJICAgICB8fCAhVFJFRV9SRUFE T05MWSAoZGVjbCkKIAkgICAgIHx8IFRSRUVfU0lERV9FRkZFQ1RTIChkZWNsKQogCSAgICAg fHwgIVRSRUVfQ09OU1RBTlQgKGRlY2wpKSkKLQlyZXR1cm4gcmVhZG9ubHlfZGF0YV9zZWN0 aW9uOworCXJldHVybiBjYXNtLT5zZWMucmVhZG9ubHlfZGF0YTsKICAgICB9CiAgIGVsc2Ug aWYgKFRSRUVfQ09ERSAoZGVjbCkgPT0gU1RSSU5HX0NTVCkKLSAgICByZXR1cm4gcmVhZG9u bHlfZGF0YV9zZWN0aW9uOworICAgIHJldHVybiBjYXNtLT5zZWMucmVhZG9ubHlfZGF0YTsK ICAgZWxzZSBpZiAoISAoZmxhZ19waWMgJiYgcmVsb2MpKQotICAgIHJldHVybiByZWFkb25s eV9kYXRhX3NlY3Rpb247CisgICAgcmV0dXJuIGNhc20tPnNlYy5yZWFkb25seV9kYXRhOwog Ci0gIHJldHVybiBkYXRhX3NlY3Rpb247CisgIHJldHVybiBjYXNtLT5zZWMuZGF0YTsKIH0K IAogZW51bSBzZWN0aW9uX2NhdGVnb3J5CkBAIC03MTEyLDcgKzcwNjMsNyBAQCBkZWZhdWx0 X2VsZl9zZWxlY3Rfc2VjdGlvbiAodHJlZSBkZWNsLCBpbnQgcmVsb2MsCiAgICAgICAvKiBX ZSdyZSBub3Qgc3VwcG9zZWQgdG8gYmUgY2FsbGVkIG9uIEZVTkNUSU9OX0RFQ0xzLiAgKi8K ICAgICAgIGdjY191bnJlYWNoYWJsZSAoKTsKICAgICBjYXNlIFNFQ0NBVF9ST0RBVEE6Ci0g ICAgICByZXR1cm4gcmVhZG9ubHlfZGF0YV9zZWN0aW9uOworICAgICAgcmV0dXJuIGNhc20t PnNlYy5yZWFkb25seV9kYXRhOwogICAgIGNhc2UgU0VDQ0FUX1JPREFUQV9NRVJHRV9TVFI6 CiAgICAgICByZXR1cm4gbWVyZ2VhYmxlX3N0cmluZ19zZWN0aW9uIChkZWNsLCBhbGlnbiwg MCk7CiAgICAgY2FzZSBTRUNDQVRfUk9EQVRBX01FUkdFX1NUUl9JTklUOgpAQCAtNzEyOCw3 ICs3MDc5LDcgQEAgZGVmYXVsdF9lbGZfc2VsZWN0X3NlY3Rpb24gKHRyZWUgZGVjbCwgaW50 IHJlbG9jLAogCSAgc25hbWUgPSAiLnBlcnNpc3RlbnQiOwogCSAgYnJlYWs7CiAJfQotICAg ICAgcmV0dXJuIGRhdGFfc2VjdGlvbjsKKyAgICAgIHJldHVybiBjYXNtLT5zZWMuZGF0YTsK ICAgICBjYXNlIFNFQ0NBVF9EQVRBX1JFTDoKICAgICAgIHNuYW1lID0gIi5kYXRhLnJlbCI7 CiAgICAgICBicmVhazsKQEAgLTcxNTMsOCArNzEwNCw4IEBAIGRlZmF1bHRfZWxmX3NlbGVj dF9zZWN0aW9uICh0cmVlIGRlY2wsIGludCByZWxvYywKIAkgIHNuYW1lID0gIi5ub2luaXQi OwogCSAgYnJlYWs7CiAJfQotICAgICAgaWYgKGJzc19zZWN0aW9uKQotCXJldHVybiBic3Nf c2VjdGlvbjsKKyAgICAgIGlmIChjYXNtLT5zZWMuYnNzKQorCXJldHVybiBjYXNtLT5zZWMu YnNzOwogICAgICAgc25hbWUgPSAiLmJzcyI7CiAgICAgICBicmVhazsKICAgICBjYXNlIFNF Q0NBVF9TQlNTOgpAQCAtNzMwNCw5ICs3MjU1LDkgQEAgZGVmYXVsdF9zZWxlY3RfcnR4X3Nl Y3Rpb24gKG1hY2hpbmVfbW9kZSBtb2RlIEFUVFJJQlVURV9VTlVTRUQsCiAJCQkgICAgdW5z aWduZWQgSE9TVF9XSURFX0lOVCBhbGlnbiBBVFRSSUJVVEVfVU5VU0VEKQogewogICBpZiAo Y29tcHV0ZV9yZWxvY19mb3JfcnR4ICh4KSAmIHRhcmdldG0uYXNtX291dC5yZWxvY19yd19t YXNrICgpKQotICAgIHJldHVybiBkYXRhX3NlY3Rpb247CisgICAgcmV0dXJuIGNhc20tPnNl Yy5kYXRhOwogICBlbHNlCi0gICAgcmV0dXJuIHJlYWRvbmx5X2RhdGFfc2VjdGlvbjsKKyAg ICByZXR1cm4gY2FzbS0+c2VjLnJlYWRvbmx5X2RhdGE7CiB9CiAKIHNlY3Rpb24gKgpAQCAt NzgyNCwxMyArNzc3NSwxMyBAQCBzd2l0Y2hfdG9fc2VjdGlvbiAoc2VjdGlvbiAqbmV3X3Nl Y3Rpb24sIHRyZWUgZGVjbCkKIAkJICAiJXFEIHdhcyBkZWNsYXJlZCBoZXJlIiwgdXNlZF9k ZWNsKTsKIAl9CiAgICAgfQotICBlbHNlIGlmIChpbl9zZWN0aW9uID09IG5ld19zZWN0aW9u KQorICBlbHNlIGlmIChjYXNtLT5pbl9zZWN0aW9uID09IG5ld19zZWN0aW9uKQogICAgIHJl dHVybjsKIAogICBpZiAobmV3X3NlY3Rpb24tPmNvbW1vbi5mbGFncyAmIFNFQ1RJT05fRk9S R0VUKQotICAgIGluX3NlY3Rpb24gPSBOVUxMOworICAgIGNhc20tPmluX3NlY3Rpb24gPSBO VUxMOwogICBlbHNlCi0gICAgaW5fc2VjdGlvbiA9IG5ld19zZWN0aW9uOworICAgIGNhc20t PmluX3NlY3Rpb24gPSBuZXdfc2VjdGlvbjsKIAogICBzd2l0Y2ggKFNFQ1RJT05fU1RZTEUg KG5ld19zZWN0aW9uKSkKICAgICB7CkBAIC04MDA2LDcgKzc5NTcsNyBAQCBnZXRfc2VjdGlv bl9hbmNob3IgKHN0cnVjdCBvYmplY3RfYmxvY2sgKmJsb2NrLCBIT1NUX1dJREVfSU5UIG9m ZnNldCwKICAgICB9CiAKICAgLyogQ3JlYXRlIGEgbmV3IGFuY2hvciB3aXRoIGEgdW5pcXVl IGxhYmVsLiAgKi8KLSAgQVNNX0dFTkVSQVRFX0lOVEVSTkFMX0xBQkVMIChsYWJlbCwgIkxB TkNIT1IiLCBhbmNob3JfbGFiZWxubysrKTsKKyAgQVNNX0dFTkVSQVRFX0lOVEVSTkFMX0xB QkVMIChsYWJlbCwgIkxBTkNIT1IiLCBjYXNtLT5hbmNob3JfbGFiZWxubysrKTsKICAgYW5j aG9yID0gY3JlYXRlX2Jsb2NrX3N5bWJvbCAoZ2djX3N0cmR1cCAobGFiZWwpLCBibG9jaywg b2Zmc2V0KTsKICAgU1lNQk9MX1JFRl9GTEFHUyAoYW5jaG9yKSB8PSBTWU1CT0xfRkxBR19M T0NBTCB8IFNZTUJPTF9GTEFHX0FOQ0hPUjsKICAgU1lNQk9MX1JFRl9GTEFHUyAoYW5jaG9y KSB8PSBtb2RlbCA8PCBTWU1CT0xfRkxBR19UTFNfU0hJRlQ7CkBAIC04NDc1LDcgKzg0MjYs NyBAQCBoYW5kbGVfdnR2X2NvbWRhdF9zZWN0aW9uIChzZWN0aW9uICpzZWN0LCBjb25zdF90 cmVlIGRlY2wgQVRUUklCVVRFX1VOVVNFRCkKIAkJCQkgc2VjdC0+bmFtZWQuY29tbW9uLmZs YWdzCiAJCQkJIHwgU0VDVElPTl9MSU5LT05DRSwKIAkJCQkgREVDTF9OQU1FIChkZWNsKSk7 Ci0gIGluX3NlY3Rpb24gPSBzZWN0OworICBjYXNtLT5pbl9zZWN0aW9uID0gc2VjdDsKICNl bHNlCiAgIC8qIE5laXRoZXIgT0JKRUNUX0ZPUk1BVF9QRSwgbm9yIE9CSkVDVF9GT1JNQVRf Q09GRiBpcyBzZXQgaGVyZS4KICAgICAgVGhlcmVmb3JlIHRoZSBmb2xsb3dpbmcgY2hlY2sg aXMgdXNlZC4KQEAgLTg1MDEsNyArODQ1Miw3IEBAIGhhbmRsZV92dHZfY29tZGF0X3NlY3Rp b24gKHNlY3Rpb24gKnNlY3QsIGNvbnN0X3RyZWUgZGVjbCBBVFRSSUJVVEVfVU5VU0VEKQog CQkJCSAgICAgc2VjdC0+bmFtZWQuY29tbW9uLmZsYWdzCiAJCQkJICAgICB8IFNFQ1RJT05f TElOS09OQ0UsCiAJCQkJICAgICBERUNMX05BTUUgKGRlY2wpKTsKLSAgICAgIGluX3NlY3Rp b24gPSBzZWN0OworICAgICAgY2FzbS0+aW5fc2VjdGlvbiA9IHNlY3Q7CiAgICAgfQogICBl bHNlCiAgICAgc3dpdGNoX3RvX3NlY3Rpb24gKHNlY3QpOwpkaWZmIC0tZ2l0IGEvZ2NjL3Zt c2RiZ291dC5jIGIvZ2NjL3Ztc2RiZ291dC5jCmluZGV4IDA1ZmFkY2UwNzVlLi5lYWI1MmM2 MjMwNyAxMDA2NDQKLS0tIGEvZ2NjL3Ztc2RiZ291dC5jCisrKyBiL2djYy92bXNkYmdvdXQu YwpAQCAtMTU4Myw3ICsxNTgzLDcgQEAgdm1zZGJnb3V0X2ZpbmlzaCAoY29uc3QgY2hhciAq ZmlsZW5hbWUgQVRUUklCVVRFX1VOVVNFRCkKICAgICByZXR1cm47CiAKICAgLyogT3V0cHV0 IGEgdGVybWluYXRvciBsYWJlbCBmb3IgdGhlIC50ZXh0IHNlY3Rpb24uICAqLwotICBzd2l0 Y2hfdG9fc2VjdGlvbiAodGV4dF9zZWN0aW9uKTsKKyAgc3dpdGNoX3RvX3NlY3Rpb24gKGNh c20tPnNlYy50ZXh0KTsKICAgdGFyZ2V0bS5hc21fb3V0LmludGVybmFsX2xhYmVsIChhc21f b3V0X2ZpbGUsIFRFWFRfRU5EX0xBQkVMLCAwKTsKIAogICAvKiBPdXRwdXQgZGVidWdnaW5n IGluZm9ybWF0aW9uLgotLSAKMi4zMy4wCgo= --------------5TmGHbfRuiqg0rx5aIQchTc4--