Received: by 2002:ab2:3350:0:b0:1f4:6588:b3a7 with SMTP id o16csp77400lqe; Fri, 5 Apr 2024 13:12:48 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXdAD8+uOGMnl0XHMTggcn7WDmXhqlOCfRBP5Gx9ZP5jHwdx83Wzo9KJOF+qyoEVsj8GbsrSxYnG1KLI4Y6cE4ELpxdZd4sS1n9j5TGMQ== X-Google-Smtp-Source: AGHT+IHoNkelgfnA4Z+1kquUZrM8VIqZhG+Jxt/04Ejzui9BE/RMC+Ls8vuk4UTP8RtwvaXbODJ2 X-Received: by 2002:a17:90a:ca8a:b0:2a2:9fce:eff7 with SMTP id y10-20020a17090aca8a00b002a29fceeff7mr2776074pjt.34.1712347968089; Fri, 05 Apr 2024 13:12:48 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1712347968; cv=pass; d=google.com; s=arc-20160816; b=pNu0D4jOnDXI1YI+I9hdV6VRCC0fyNZRPBjPzqgahzPit11cYteTlgVr3LroLFrx3r WwGlv1Gd/sjninYmM60kIcEV3ftRGXulgGMfZZF6CKgRqQx4yRuSYapRCtwT5rABkCPu uuvyoshosci3g9RRyNatLrqBxVUAuAtfoNqigTxGMFXgnhP2UjFIY7k504VEeNssP/TK jRVnzOp/l92NXG9uzMMdPdyyjv/qWE+ykhHjxxKoUyA5C0mfYqzZvKRzZK4qy8LRVpuL v29wykijyFhXvUBbmuCGFOPYrDobhnHtN9XlY1w1FiBmQ23E0BK2QmGvE9rMT81LWAVw uKdQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :user-agent:content-transfer-encoding:references:in-reply-to:date:cc :to:from:subject:message-id:dkim-signature; bh=hwN/ySqhHhtFjFR/mJoFoHfpnKhTUJQbVPCyeiGfh5g=; fh=LXnUZ3xlKEPQxqgVi0jEK65UfWg2F6xjmobdlD7MEz4=; b=FLAibqcoipxFTg7JnDBlqVFJhEjukN2Y/ARm2cmE4humpl0OujojMb7IuC5BMsnBiB xfyg3LvbCCrBfrbxQwrdfnkCuX4cyBVt65GgAHmCjeagNMlu9Ucf1SqKRUP2iFRbZuEp txXQy/JVaXPEw7RrnuTwNIYyjHJeRbX309fwH2BF21I7VW2It9xMUrJD0+exj2qct+Ri RYUSvINypATLbnp5amjIdTz1mUts0UCS8Zl7Yfs3ua2ys7+gcE6wrnNpZOh5mUFziJCn y2NkdU02Va8b9TGhHVOhZD+EDd41xFfbrlx4SHxoVmhPTH1+fUbl06IHxEkMlKuOMsn1 e8/g==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="WJnI/sB/"; arc=pass (i=1 dkim=pass dkdomain=intel.com dmarc=pass fromdomain=linux.intel.com); spf=pass (google.com: domain of linux-crypto+bounces-3374-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-crypto+bounces-3374-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id d9-20020a17090a110900b002a2755c2f65si2000032pja.151.2024.04.05.13.12.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Apr 2024 13:12:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto+bounces-3374-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="WJnI/sB/"; arc=pass (i=1 dkim=pass dkdomain=intel.com dmarc=pass fromdomain=linux.intel.com); spf=pass (google.com: domain of linux-crypto+bounces-3374-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-crypto+bounces-3374-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 75C16282FDD for ; Fri, 5 Apr 2024 20:12:47 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A8316173348; Fri, 5 Apr 2024 20:12:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="WJnI/sB/" X-Original-To: linux-crypto@vger.kernel.org Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6C5A9172BC7; Fri, 5 Apr 2024 20:12:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.7 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712347962; cv=none; b=jLjak9x8mq18QmGRXMW0+K88w2VorYLIsRJjpfBNrjYO0Exs7b/lB7dlmPcAfaIyCA7Xj56xCGJZKN4ZdX5KJX5nvoe5P5ql3tp557MkcM3Yf7dDezklJG5Ajn9ocNgxtWj+wY1n9+fVid0TQCe5id5rU2czc7LvkMb0c4iZrDc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712347962; c=relaxed/simple; bh=hwN/ySqhHhtFjFR/mJoFoHfpnKhTUJQbVPCyeiGfh5g=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=BcwCDigSAAqMiOQvydpsOyYS/GAAJH2uIqpnS/1rtu1OWfpPbS2Ip+pvZ/IMaeg8Q3lIRVmfn8ElflRQQyBjRI3/Ldd14fSTSv5b6ZH2DcOPXR9tiEtGqNDbRbxDHVNpDJkqS/FrgpXPkk32dkb4kpGcDJkfpHG3yl0hFz1E0Z4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=WJnI/sB/; arc=none smtp.client-ip=192.198.163.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1712347959; x=1743883959; h=message-id:subject:from:to:cc:date:in-reply-to: references:content-transfer-encoding:mime-version; bh=hwN/ySqhHhtFjFR/mJoFoHfpnKhTUJQbVPCyeiGfh5g=; b=WJnI/sB/UsXb3Jaw6nT3pJI4mvEEUk1OQJao18a9c6MI2K8lPraywfQN 2spuJl3kSDtD4FEYdkM8Cz4+fMIpPY62i1v09EzMZdKy4Iocl0ao0f1M9 LWhaj8/+K55A6AS/LM5AQyYQBgs/kA0ACOC9KQ1vcjAYKYDFn4Q0/2nxT BzkLLTP2pJDT3wVBHA5ZhIiUAA9l3No1RqWuLuXgHiH0CDg0/fI81DYNJ flrpQ6G6ji8RpLaUNAy4Xm74IK9XTUBDbAHOs2ndL+1e/3TsWenjY+KQb pvZOtnygOTCgXvA8Ya+ynpRm9U3t4Psar0it246tz6f02JMfnwZtqACP4 g==; X-CSE-ConnectionGUID: qjDGf5aqT++Bu09gBqQNDg== X-CSE-MsgGUID: Alrw60JeQ6m/hE7UPCvvOA== X-IronPort-AV: E=McAfee;i="6600,9927,11035"; a="33096055" X-IronPort-AV: E=Sophos;i="6.07,182,1708416000"; d="scan'208";a="33096055" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Apr 2024 13:12:38 -0700 X-CSE-ConnectionGUID: 1U10E1sjRqexa5TecHBvXA== X-CSE-MsgGUID: DjPfk6XHQX2Wdkac1q9suA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,182,1708416000"; d="scan'208";a="23763894" Received: from jaclynth-mobl2.amr.corp.intel.com ([10.212.51.66]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Apr 2024 13:12:38 -0700 Message-ID: <3ca40b8dbe355722daa999f9e7fb0e4fcbe51d53.camel@linux.intel.com> Subject: Re: [PATCH 2/4] crypto: iaa - Add deflate-canned compression algorithm From: Tom Zanussi To: Andre Glover , herbert@gondor.apana.org.au, davem@davemloft.net Cc: dave.jiang@intel.com, fenghua.yu@intel.com, wajdi.k.feghali@intel.com, james.guilford@intel.com, vinodh.gopal@intel.com, tony.luck@intel.com, linux-crypto@vger.kernel.org, dmaengine@vger.kernel.org Date: Fri, 05 Apr 2024 15:12:36 -0500 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.44.4-0ubuntu2 Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 SGkgQW5kcmUsCgpTb21lIGNvbW1lbnRzIGlubGluZSBiZWxvdy4uLgoKT24gVGh1LCAyMDI0LTAz LTI4IGF0IDEwOjQ0IC0wNzAwLCBBbmRyZSBHbG92ZXIgd3JvdGU6Cj4gVGhlICdjYW5uZWQnIGNv bXByZXNzaW9uIG1vZGUgaW1wbGVtZW50cyBhIGNvbXByZXNzaW9uIHNjaGVtZSB0aGF0IHVzZXMK PiBzdGF0aWNhbGx5LWRlZmluZWQgY3VzdG9taXplZCBIdWZmbWFuIHRhYmxlcy4gU2luY2UgdGhl IERlZmxhdGUgYmxvY2sKPiBoZWFkZXIgaXMgYSBjb25zdGFudCwgaXQgaXMgbm90IHN0b3JlZCB3 aXRoIHRoZSBjb21wcmVzc2VkIGRhdGEuIFRoZQo+IEh1ZmZtYW4gdGFibGVzIHVzZWQgd2VyZSBn ZW5lcmF0ZWQgZnJvbSBzdGF0aXN0aWNzIGRlcml2ZWQgZnJvbSBzd2FwcGVkCj4gNEtCIHBhZ2Vz IG9mIFNQRUMgQ1BVMTcgd29ya2xvYWRzLiBDYW5uZWQgbW9kZSBwcm92aWRlcyBiZXR0ZXIgY29t cHJlc3Npb24KPiB0aGFuIHVzaW5nIHRoZSBEZWZsYXRlIHN0YW5kYXJkJ3MgKFJGQy0xOTUxKSAi Zml4ZWQiIHRhYmxlcyBhbmQgYmV0dGVyCj4gbGF0ZW5jaWVzIHRoYW4gZHluYW1pYyBjb21wcmVz c2lvbi4KPiAKPiBDb21wcmVzc2luZyBhIGRhdGEgc2V0IG9mIDQzMDAgNEtCIHBhZ2VzIHNhbXBs ZWQgZnJvbSBTUEVDIENQVTE3IHdvcmtsb2Fkcwo+IHByb2R1Y2VzIGEgY29tcHJlc3Npb24gcmF0 aW8gb2YgMi44OCBmb3IgSUFBIGNhbm5lZCBjb21wcmVzc2lvbiBhbmQgMi42OQo+IGZvciBJQUEg Zml4ZWQgY29tcHJlc3Npb24sIHdoaWNoIGlzIGEgNyUgaW1wcm92ZW1lbnQuCj4gCj4gRWl0aGVy ICdmaXhlZCcgb3IgJ2Nhbm5lZCcgbW9kZXMgY2FuIGJlIGNob3NlbiBhcyB0aGUgbW9kZSB0byBi ZSB1c2VkCj4gYnkgY3J5cHRvIGZhY2lsaXRpZXMgYnkgc2VsZWN0aW5nIHRoZSBjb3JyZXNwb25k aW5nIGFsZ29yaXRobS7CoCBGb3IKPiBleGFtcGxlLCB0byB1c2UgSUFBIGZpeGVkIG1vZGUgaW4g enN3YXA6Cj4gCj4gwqAgZWNobyBkZWZsYXRlLWlhYSA+IC9zeXMvbW9kdWxlL3pzd2FwL3BhcmFt ZXRlcnMvY29tcHJlc3Nvcgo+IAo+IFRvIGNob29zZSAnY2FubmVkJyBtb2RlOgo+IAo+IMKgIGVj aG8gZGVmbGF0ZS1pYWEtY2FubmVkID4gL3N5cy9tb2R1bGUvenN3YXAvcGFyYW1ldGVycy9jb21w cmVzc29yCj4gCj4gWyBCYXNlZCBvbiB3b3JrIG9yaWdpbmFsbHkgYnkgR2VvcmdlIFBvd2xleSwg SmluZyBMaW4gYW5kIEt5dW5nIE1pbgo+IFBhcmsgXQo+IAo+IFNpZ25lZC1vZmYtYnk6IFRvbSBa YW51c3NpIDx0b20uemFudXNzaUBsaW51eC5pbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogQW5k cmUgR2xvdmVyIDxhbmRyZS5nbG92ZXJAbGludXguaW50ZWwuY29tPgo+IC0tLQo+IMKgLi4uL2Ry aXZlci1hcGkvY3J5cHRvL2lhYS9pYWEtY3J5cHRvLnJzdMKgwqDCoMKgwqAgfMKgIDE1ICstCj4g wqBjcnlwdG8vdGVzdG1nci5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMTAgKwo+IMKgY3J5cHRvL3Rlc3RtZ3IuaMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDcy ICsrKysrCj4gwqBkcml2ZXJzL2NyeXB0by9pbnRlbC9pYWEvS2NvbmZpZ8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHzCoMKgIDEgKwo+IMKgZHJpdmVycy9jcnlwdG8vaW50ZWwvaWFhL01ha2Vm aWxlwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDIgKy0KPiDCoGRyaXZlcnMvY3J5cHRv L2ludGVsL2lhYS9pYWFfY3J5cHRvLmjCoMKgwqDCoMKgwqDCoMKgIHzCoCAzOCArKysKPiDCoC4u Li9jcnlwdG8vaW50ZWwvaWFhL2lhYV9jcnlwdG9fY29tcF9jYW5uZWQuYyB8IDExNiArKysrKysr Kwo+IMKgLi4uL2NyeXB0by9pbnRlbC9pYWEvaWFhX2NyeXB0b19jb21wX2ZpeGVkLmPCoCB8wqDC oCAxICsKPiDCoGRyaXZlcnMvY3J5cHRvL2ludGVsL2lhYS9pYWFfY3J5cHRvX21haW4uY8KgwqDC oCB8IDI3MSArKysrKysrKysrKysrKysrLS0KPiDCoDkgZmlsZXMgY2hhbmdlZCwgNTAwIGluc2Vy dGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Y3J5cHRvL2ludGVsL2lhYS9pYWFfY3J5cHRvX2NvbXBfY2FubmVkLmMKPiAKPiBkaWZmIC0tZ2l0 IGEvRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL2NyeXB0by9pYWEvaWFhLWNyeXB0by5yc3QgYi9E b2N1bWVudGF0aW9uL2RyaXZlci1hcGkvY3J5cHRvL2lhYS9pYWEtY3J5cHRvLnJzdAo+IGluZGV4 IDdiMjhhZWYzOWJhMC4uYjY0YmQ3ODBhZDg3IDEwMDY0NAo+IC0tLSBhL0RvY3VtZW50YXRpb24v ZHJpdmVyLWFwaS9jcnlwdG8vaWFhL2lhYS1jcnlwdG8ucnN0Cj4gKysrIGIvRG9jdW1lbnRhdGlv bi9kcml2ZXItYXBpL2NyeXB0by9pYWEvaWFhLWNyeXB0by5yc3QKPiBAQCAtMzAsOCArMzAsOCBA QCBhbGdvcml0aG06Ogo+IMKgVGhpcyB3aWxsIHRlbGwgenN3YXAgdG8gdXNlIHRoZSBJQUEgJ2Zp eGVkJyBjb21wcmVzc2lvbiBtb2RlIGZvciBhbGwKPiDCoGNvbXByZXNzZXMgYW5kIGRlY29tcHJl c3Nlcy4KPiDCoAo+IC1DdXJyZW50bHksIHRoZXJlIGlzIG9ubHkgb25lIGNvbXByZXNzaW9uIG1v ZGVzIGF2YWlsYWJsZSwgJ2ZpeGVkJwo+IC1tb2RlLgo+ICtDdXJyZW50bHksIHR3byBjb21wcmVz c2lvbiBtb2RlcyBhcmUgYXZhaWxhYmxlIHRvIGFsbCBJQUEgaGFyZHdhcmUsCj4gKydjYW5uZWQn IGFuZCAnZml4ZWQnIG1vZGVzLgo+IMKgCj4gwqBUaGUgJ2ZpeGVkJyBjb21wcmVzc2lvbiBtb2Rl IGltcGxlbWVudHMgdGhlIGNvbXByZXNzaW9uIHNjaGVtZQo+IMKgc3BlY2lmaWVkIGJ5IFJGQyAx OTUxIGFuZCBpcyBnaXZlbiB0aGUgY3J5cHRvIGFsZ29yaXRobSBuYW1lCj4gQEAgLTQyLDYgKzQy LDE3IEBAIHdoaWNoIGFsbG93cyBmb3IgYSB3aW5kb3cgb2YgdXAgdG8gMzJrLsKgIEJlY2F1c2Ug b2YgdGhpcyBsaW1pdGF0aW9uLAo+IMKgdGhlIElBQSBmaXhlZCBtb2RlIGRlZmxhdGUgYWxnb3Jp dGhtIGlzIGdpdmVuIGl0cyBvd24gYWxnb3JpdGhtIG5hbWUKPiDCoHJhdGhlciB0aGFuIHNpbXBs eSAnZGVmbGF0ZScpLgo+IMKgCj4gK1RoZSAnY2FubmVkJyBjb21wcmVzc2lvbiBtb2RlIGltcGxl bWVudHMgYSBnb29kIGdlbmVyYWwtcHVycG9zZQo+ICtjb21wcmVzc2lvbiBzY2hlbWUgd2hvc2Ug dGFibGVzIHdlcmUgZ2VuZXJhdGVkIGZyb20gc3RhdGlzdGljcyBkZXJpdmVkCj4gK2Zyb20gYSB3 aWRlIHZhcmlldHkgb2YgU1BFQzE3IHdvcmtsb2Fkcy7CoCBJdCBwcm92aWRlcyBtdWNoIGJldHRl cgo+ICtvdmVyYWxsIGNoYXJhY3RlcmlzdGljcyB0aGFuIHRoZSBleGlzdGluZyBkZWZsYXRlLTE5 NTEgdGFibGVzCj4gK2ltcGxlbWVudGVkIGJ5ICdmaXhlZCcuICdDYW5uZWQnIG1vZGUgaXMgaW1w bGVtZW50ZWQgYnkgdGhlCj4gKydkZWZsYXRlLWlhYS1jYW5uZWQnIGNyeXB0byBhbGdvcml0aG0u OjoKClRoZSBkb3VibGUgY29sb24gaGVyZSBpc24ndCBuZWNlc3NhcnkuCgo+ICsKPiArQSB6c3dh cCBkZXZpY2UgY2FuIHNlbGVjdCB0aGUgSUFBICdjYW5uZWQnIG1vZGUgcmVwcmVzZW50ZWQgYnkK PiArc2VsZWN0aW5nIHRoZSAnZGVmbGF0ZS1pYWEtY2FubmVkJyBjcnlwdG8gY29tcHJlc3Npb24g YWxnb3JpdGhtOjoKPiArCj4gK8KgICMgZWNobyBkZWZsYXRlLWlhYS1jYW5uZWQgPiAvc3lzL21v ZHVsZS96c3dhcC9wYXJhbWV0ZXJzL2NvbXByZXNzb3IKPiDCoAo+IMKgQ29uZmlnIG9wdGlvbnMg YW5kIG90aGVyIHNldHVwCj4gwqA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiBkaWZm IC0tZ2l0IGEvY3J5cHRvL3Rlc3RtZ3IuYyBiL2NyeXB0by90ZXN0bWdyLmMKPiBpbmRleCA5NGZk OWNlZWYyMDcuLjg5ODFlOGZiMjIwYiAxMDA2NDQKPiAtLS0gYS9jcnlwdG8vdGVzdG1nci5jCj4g KysrIGIvY3J5cHRvL3Rlc3RtZ3IuYwo+IEBAIC00ODA2LDYgKzQ4MDYsMTYgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBhbGdfdGVzdF9kZXNjIGFsZ190ZXN0X2Rlc2NzW10gPSB7Cj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5k ZWNvbXAgPSBfX1ZFQ1MoZGVmbGF0ZV9kZWNvbXBfdHZfdGVtcGxhdGUpCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgfQo+ICvCoMKgwqDCoMKgwqDCoH0sIHsKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgLmFsZyA9ICJkZWZsYXRlLWlhYS1jYW5uZWQiLAo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAudGVzdCA9IGFsZ190ZXN0X2NvbXAsCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoC5maXBzX2FsbG93ZWQgPSAxLAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAuc3VpdGUgPSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAuY29tcCA9IHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuY29tcCA9IF9fVkVDUyhkZWZsYXRl X2lhYV9jYW5uZWRfY29tcF90dl90ZW1wbGF0ZSksCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmRlY29tcCA9IF9fVkVDUyhk ZWZsYXRlX2lhYV9jYW5uZWRfZGVjb21wX3R2X3RlbXBsYXRlKQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB9Cj4gwqDCoMKgwqDCoMKgwqDCoH0sIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoC5hbGcgPSAiZGVmbGF0ZS1zY29tcC1jYW5uZWQiLAo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgLnRlc3QgPSBhbGdfdGVzdF9jb21wLAo+IGRpZmYgLS1naXQgYS9j cnlwdG8vdGVzdG1nci5oIGIvY3J5cHRvL3Rlc3RtZ3IuaAo+IGluZGV4IDM4YzRjOTZlMTFlMi4u Yzc5YmEzMGMyMTk0IDEwMDY0NAo+IC0tLSBhL2NyeXB0by90ZXN0bWdyLmgKPiArKysgYi9jcnlw dG8vdGVzdG1nci5oCj4gQEAgLTM0NTI2LDYgKzM0NTI2LDc4IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgY29tcF90ZXN0dmVjIGRlZmxhdGVfZGVjb21wX3R2X3RlbXBsYXRlW10gPSB7Cj4gwqDCoMKg wqDCoMKgwqDCoH0sCj4gwqB9Owo+IMKgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcF90ZXN0 dmVjIGRlZmxhdGVfaWFhX2Nhbm5lZF9jb21wX3R2X3RlbXBsYXRlW10gPSB7Cj4gK8KgwqDCoMKg wqDCoMKgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuaW5sZW7CoMKgPSA3MCwK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLm91dGxlbsKgPSAzNywKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmlucHV0wqDCoD0gIkpvaW4gdXMgbm93IGFuZCBzaGFy ZSB0aGUgc29mdHdhcmUgIgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIkpvaW4gdXMgbm93IGFuZCBzaGFyZSB0aGUgc29mdHdhcmUgIiwKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLm91dHB1dMKgPSAiXHg2ZFx4MjNceDQzXHgyM1x4YTRc eDcxXHgzMVx4ZDIiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAiXHg4OFx4YzhceDYxXHg1Mlx4NzVceDg0XHg1Nlx4MWEiCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHgxM1x4YTJceDhlXHhkNlx4 NDlceDYzXHg0M1x4NzQiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAiXHhkMlx4OThceGM4XHhlMFx4ZDhceDYxXHg1OFx4NjkiCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHhjYlx4NzFceDAxXHhl NVx4M2YiLAo+ICvCoMKgwqDCoMKgwqDCoH0sIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgLmlubGVuwqDCoD0gMTkxLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAu b3V0bGVuwqA9IDEyOCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmlucHV0wqDC oD0gIlRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIGEgY29tcHJlc3Npb24gbWV0aG9kIGJhc2VkIG9u IHRoZSBERUZMQVRFIgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgImNvbXByZXNzaW9uIGFsZ29yaXRobS7CoCBUaGlzIGRvY3VtZW50IGRlZmluZXMgdGhl IGFwcGxpY2F0aW9uIG9mICIKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCJ0aGUgREVGTEFURSBhbGdvcml0aG0gdG8gdGhlIElQIFBheWxvYWQgQ29tcHJl c3Npb24gUHJvdG9jb2wuIiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLm91dHB1 dMKgPSAiXHhkZFx4NDJceDQyXHg2M1x4YTRceGRhXHg0OFx4NGQiCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHg1Y1x4YjhceDJlXHgyMlx4NTZc eGFhXHhkNVx4YzUiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAiXHg2OFx4YTJceDQzXHg4M1x4NzRceDMxXHg1Mlx4YjUiCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHg1NFx4MTNceDE5XHgxZVx4 MTVceGFkXHg4Ylx4ODkiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAiXHgwOVx4OGRceDhjXHg5MFx4ODZceGViXHg2Mlx4NDMiCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHgyMlx4YjVceGQyXHgy MFx4NzVceDhjXHg0ZVx4MmIiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAiXHgwNVx4M2RceDM2XHg0NFx4MjdceGY1XHg2OVx4ZTUiCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHhkYlx4ZGVceGJi XHg1Ylx4MmJceDdkXHgzN1x4NzUiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAiXHhkOFx4YzBceGM4XHhlOFx4ZDBceGQ4XHg5MFx4NzAiCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHg3Ylx4YTlc eDU0XHgxY1x4MzhceDM4XHgzNFx4MDIiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAiXHhjMlx4ZTJceDhlXHhlYVx4YThceGE4XHhiMFx4NTAiCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHg4ZFx4 M2FceDE2XHhmN1x4ODhceDBjXHhkNlx4OGYiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHg5NVx4MWZceDQwXHgxYVx4MWJceDI5XHgzNFx4YjQi Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHhm MVx4OTdceGZhXHhhYlx4ODdceDg3XHg0NVx4YWEiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHhiNVx4ZDJceDk2XHg3YVx4MDNceGY5XHg0N1x4 NDciCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAi XHhjNlx4NDZceDZhXHgyMlx4YzNceGVjXHhmZlx4MDMiLAo+ICvCoMKgwqDCoMKgwqDCoH0sCj4g K307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNvbXBfdGVzdHZlYyBkZWZsYXRlX2lhYV9j YW5uZWRfZGVjb21wX3R2X3RlbXBsYXRlW10gPSB7Cj4gK8KgwqDCoMKgwqDCoMKgewo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuaW5sZW7CoMKgPSAxMjgsCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoC5vdXRsZW7CoD0gMTkxLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAuaW5wdXTCoMKgPSAiXHhkZFx4NDJceDQyXHg2M1x4YTRceGRhXHg0OFx4NGQi Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHg1 Y1x4YjhceDJlXHgyMlx4NTZceGFhXHhkNVx4YzUiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHg2OFx4YTJceDQzXHg4M1x4NzRceDMxXHg1Mlx4 YjUiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAi XHg1NFx4MTNceDE5XHgxZVx4MTVceGFkXHg4Ylx4ODkiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHgwOVx4OGRceDhjXHg5MFx4ODZceGViXHg2 Mlx4NDMiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAiXHgyMlx4YjVceGQyXHgyMFx4NzVceDhjXHg0ZVx4MmIiCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHgwNVx4M2RceDM2XHg0NFx4MjdceGY1 XHg2OVx4ZTUiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAiXHhkYlx4ZGVceGJiXHg1Ylx4MmJceDdkXHgzN1x4NzUiCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHhkOFx4YzBceGM4XHhlOFx4ZDBc eGQ4XHg5MFx4NzAiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAiXHg3Ylx4YTlceDU0XHgxY1x4MzhceDM4XHgzNFx4MDIiCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHhjMlx4ZTJceDhlXHhlYVx4 YThceGE4XHhiMFx4NTAiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAiXHg4ZFx4M2FceDE2XHhmN1x4ODhceDBjXHhkNlx4OGYiCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHg5NVx4MWZceDQwXHgx YVx4MWJceDI5XHgzNFx4YjQiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAiXHhmMVx4OTdceGZhXHhhYlx4ODdceDg3XHg0NVx4YWEiCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXHhiNVx4ZDJceDk2 XHg3YVx4MDNceGY5XHg0N1x4NDciCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAiXHhjNlx4NDZceDZhXHgyMlx4YzNceGVjXHhmZlx4MDMiLAo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAub3V0cHV0wqA9ICJUaGlzIGRvY3VtZW50IGRl c2NyaWJlcyBhIGNvbXByZXNzaW9uIG1ldGhvZCBiYXNlZCBvbiB0aGUgREVGTEFURSIKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCJjb21wcmVzc2lvbiBh bGdvcml0aG0uwqAgVGhpcyBkb2N1bWVudCBkZWZpbmVzIHRoZSBhcHBsaWNhdGlvbiBvZiAiCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAidGhlIERFRkxB VEUgYWxnb3JpdGhtIHRvIHRoZSBJUCBQYXlsb2FkIENvbXByZXNzaW9uIFByb3RvY29sLiIsCj4g K8KgwqDCoMKgwqDCoMKgfSwgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuaW5s ZW7CoMKgPSAzNywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLm91dGxlbsKgPSA3 MCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmlucHV0wqDCoD0gIlx4NmRceDIz XHg0M1x4MjNceGE0XHg3MVx4MzFceGQyIgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgIlx4ODhceGM4XHg2MVx4NTJceDc1XHg4NFx4NTZceDFhIgo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIlx4MTNc eGEyXHg4ZVx4ZDZceDQ5XHg2M1x4NDNceDc0Igo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIlx4ZDJceDk4XHhjOFx4ZTBceGQ4XHg2MVx4NThceDY5 Igo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIlx4 Y2JceDcxXHgwMVx4ZTVceDNmIiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLm91 dHB1dMKgPSAiSm9pbiB1cyBub3cgYW5kIHNoYXJlIHRoZSBzb2Z0d2FyZSAiCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAiSm9pbiB1cyBub3cgYW5kIHNo YXJlIHRoZSBzb2Z0d2FyZSAiLAo+ICvCoMKgwqDCoMKgwqDCoH0sCj4gK307Cj4gKwo+IMKgc3Rh dGljIGNvbnN0IHN0cnVjdCBjb21wX3Rlc3R2ZWMgZGVmbGF0ZV9zY29tcF9jYW5uZWRfY29tcF90 dl90ZW1wbGF0ZVtdID0gewo+IMKgwqDCoMKgwqDCoMKgwqB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAuaW5sZW7CoMKgPSA3MCwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlw dG8vaW50ZWwvaWFhL0tjb25maWcgYi9kcml2ZXJzL2NyeXB0by9pbnRlbC9pYWEvS2NvbmZpZwo+ IGluZGV4IGQ1M2Y0YjFkNDk0Zi4uYTc4ZmIwZGI4MTRmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Y3J5cHRvL2ludGVsL2lhYS9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9jcnlwdG8vaW50ZWwvaWFh L0tjb25maWcKPiBAQCAtMiw2ICsyLDcgQEAgY29uZmlnIENSWVBUT19ERVZfSUFBX0NSWVBUTwo+ IMKgwqDCoMKgwqDCoMKgwqB0cmlzdGF0ZSAiU3VwcG9ydCBmb3IgSW50ZWwoUikgSUFBIENvbXBy ZXNzaW9uIEFjY2VsZXJhdG9yIgo+IMKgwqDCoMKgwqDCoMKgwqBkZXBlbmRzIG9uIENSWVBUT19E RUZMQVRFCj4gwqDCoMKgwqDCoMKgwqDCoGRlcGVuZHMgb24gSU5URUxfSURYRAo+ICvCoMKgwqDC oMKgwqDCoHNlbGVjdCBaTElCX0NBTk5FRAo+IMKgwqDCoMKgwqDCoMKgwqBkZWZhdWx0IG4KPiDC oMKgwqDCoMKgwqDCoMKgaGVscAo+IMKgwqDCoMKgwqDCoMKgwqDCoCBUaGlzIGRyaXZlciBzdXBw b3J0cyBhY2NlbGVyYXRpb24gZm9yIGNvbXByZXNzaW9uIGFuZAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2NyeXB0by9pbnRlbC9pYWEvTWFrZWZpbGUgYi9kcml2ZXJzL2NyeXB0by9pbnRlbC9pYWEv TWFrZWZpbGUKPiBpbmRleCBiNjRiMjA4ZDIzNDQuLjk2NjdlODliZDg4YSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2NyeXB0by9pbnRlbC9pYWEvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2NyeXB0 by9pbnRlbC9pYWEvTWFrZWZpbGUKPiBAQCAtNyw2ICs3LDYgQEAgY2NmbGFncy15ICs9IC1JICQo c3JjdHJlZSkvZHJpdmVycy9kbWEvaWR4ZCAtRERFRkFVTFRfU1lNQk9MX05BTUVTUEFDRT1JRFhE Cj4gwqAKPiDCoG9iai0kKENPTkZJR19DUllQVE9fREVWX0lBQV9DUllQVE8pIDo9IGlhYV9jcnlw dG8ubwo+IMKgCj4gLWlhYV9jcnlwdG8teSA6PSBpYWFfY3J5cHRvX21haW4ubyBpYWFfY3J5cHRv X2NvbXBfZml4ZWQubwo+ICtpYWFfY3J5cHRvLXkgOj0gaWFhX2NyeXB0b19tYWluLm8gaWFhX2Ny eXB0b19jb21wX2ZpeGVkLm8gaWFhX2NyeXB0b19jb21wX2Nhbm5lZC5vCj4gwqAKPiDCoGlhYV9j cnlwdG8tJChDT05GSUdfQ1JZUFRPX0RFVl9JQUFfQ1JZUFRPX1NUQVRTKSArPSBpYWFfY3J5cHRv X3N0YXRzLm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vaW50ZWwvaWFhL2lhYV9jcnlw dG8uaCBiL2RyaXZlcnMvY3J5cHRvL2ludGVsL2lhYS9pYWFfY3J5cHRvLmgKPiBpbmRleCA1Njk4 NWUzOTUyNjMuLjMzZmYwZjk1YzU0MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2NyeXB0by9pbnRl bC9pYWEvaWFhX2NyeXB0by5oCj4gKysrIGIvZHJpdmVycy9jcnlwdG8vaW50ZWwvaWFhL2lhYV9j cnlwdG8uaAo+IEBAIC0zOSw2ICszOSwxNSBAQAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIElB QV9ERUNPTVBfQ0hFQ0tfRk9SX0VPQiB8IFwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBJQUFf REVDT01QX1NUT1BfT05fRU9CKQo+IMKgCj4gKy8qCj4gKyAqIGlhYV9jYXAuZGVjX2FlY3NfZm9y bWF0X3ZlciA9PSAxIG1lYW5zIHRoZSBkZWNvbXByZXNzIGludGVybmFsIHN0YXRlIGluCj4gKyAq IHRoZSBBRUNTIGlzIEZvcm1hdCAyLCB3aGljaCByZXF1aXJlcyBhIGRpZmZlcmVudCBsZW5ndGgg ZnJvbSBGb3JtYXQgMS4KPiArICogU2VlIEludGVswq4gSW4tTWVtb3J5IEFuYWx5dGljcyBBY2Nl bGVyYXRvciBBcmNoaXRlY3R1cmUgU3BlY2lmaWNhdGlvbgo+ICsgKiBTZWN0aW9ucyA2LjQuMS4x IGFuZCA3LjIuMiBmb3IgZGV0YWlscy4KPiArICovCj4gKyNkZWZpbmUgREVDT01QX0lOVF9TVEFU RV9GTVQxX0xFTsKgwqDCoMKgwqDCoDEwODgKPiArI2RlZmluZSBERUNPTVBfSU5UX1NUQVRFX0ZN VDJfTEVOwqDCoMKgwqDCoMKgMTI0OAo+ICsKPiDCoC8qIFJlcHJlc2VudGF0aW9uIG9mIElBQSB3 b3JrcXVldWUgKi8KPiDCoHN0cnVjdCBpYWFfd3Egewo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qg bGlzdF9oZWFkwqDCoMKgwqDCoMKgwqDCoGxpc3Q7Cj4gQEAgLTU5LDggKzY4LDEwIEBAIHN0cnVj dCBpYWFfZGV2aWNlX2NvbXByZXNzaW9uX21vZGUgewo+IMKgwqDCoMKgwqDCoMKgwqBjb25zdCBj aGFywqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqbmFtZTsKPiDC oAo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgYWVjc19jb21wX3RhYmxlX3JlY29yZMKgwqDCoCph ZWNzX2NvbXBfdGFibGU7Cj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IGFlY3NfZGVjb21wX3RhYmxl X3JlY29yZMKgKmFlY3NfZGVjb21wX3RhYmxlOwo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoGRtYV9h ZGRyX3TCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFlY3NfY29t cF90YWJsZV9kbWFfYWRkcjsKPiArwqDCoMKgwqDCoMKgwqBkbWFfYWRkcl90wqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhZWNzX2RlY29tcF90YWJsZV9kbWFfYWRk cjsKPiDCoH07Cj4gwqAKPiDCoC8qIFJlcHJlc2VudGF0aW9uIG9mIElBQSBkZXZpY2Ugd2l0aCB3 cXMsIHBvcHVsYXRlZCBieSBwcm9iZSAqLwo+IEBAIC03Nyw2ICs4OCw3IEBAIHN0cnVjdCBpYWFf ZGV2aWNlIHsKPiDCoMKgwqDCoMKgwqDCoMKgYXRvbWljNjRfdMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29tcF9ieXRlczsKPiDCoMKgwqDCoMKgwqDCoMKgYXRv bWljNjRfdMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGVjb21w X2NhbGxzOwo+IMKgwqDCoMKgwqDCoMKgwqBhdG9taWM2NF90wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkZWNvbXBfYnl0ZXM7CgpDb3VsZCB5b3UgYWRkIGEgc3Bh Y2UgaGVyZSwgdG8gdmlzdWFsbHkgc2VwYXJhdGUgdGhlIHN0YXRzIGZpZWxkcwpmcm9tIHRoZSB1 bnJlbGF0ZWQgZmllbGQgYmVsb3c/Cgo+ICvCoMKgwqDCoMKgwqDCoHUzMsKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzcmMyX3NpemU7Cj4g wqB9Owo+IMKgCj4gwqBzdHJ1Y3Qgd3FfdGFibGVfZW50cnkgewo+IEBAIC0xMDUsOCArMTE3LDI3 IEBAIHN0cnVjdCBhZWNzX2NvbXBfdGFibGVfcmVjb3JkIHsKPiDCoMKgwqDCoMKgwqDCoMKgdTMy IHJlc2VydmVkX3BhZGRpbmdbMl07Cj4gwqB9IF9fcGFja2VkOwo+IMKgCj4gKy8qIEFFQ1MgZm9y IGRlY29tcHJlc3MgKi8KPiArc3RydWN0IGFlY3NfZGVjb21wX3RhYmxlX3JlY29yZCB7Cj4gK8Kg wqDCoMKgwqDCoMKgdTMyIGNyYzsKPiArwqDCoMKgwqDCoMKgwqB1MzIgeG9yX2NoZWNrc3VtOwo+ ICvCoMKgwqDCoMKgwqDCoHUzMiBsb3dfZmlsdGVyX3BhcmFtOwo+ICvCoMKgwqDCoMKgwqDCoHUz MiBoaWdoX2ZpbHRlcl9wYXJhbTsKPiArwqDCoMKgwqDCoMKgwqB1MzIgb3V0cHV0X21vZF9pZHg7 Cj4gK8KgwqDCoMKgwqDCoMKgdTMyIGRyb3BfaW5pdF9kZWNvbXBfb3V0X2J5dGVzOwo+ICvCoMKg wqDCoMKgwqDCoHUzMiByZXNlcnZlZFszNl07Cj4gK8KgwqDCoMKgwqDCoMKgdTMyIG91dHB1dF9h Y2N1bV9kYXRhWzJdOwo+ICvCoMKgwqDCoMKgwqDCoHUzMiBvdXRfYml0c192YWxpZDsKPiArwqDC oMKgwqDCoMKgwqB1MzIgYml0X29mZl9pbmRleGluZzsKPiArwqDCoMKgwqDCoMKgwqB1MzIgaW5w dXRfYWNjdW1fZGF0YVs2NF07Cj4gK8KgwqDCoMKgwqDCoMKgdTjCoCBzaXplX3F3WzMyXTsKPiAr wqDCoMKgwqDCoMKgwqB1MzIgZGVjb21wX3N0YXRlWzEyMjBdOwo+ICt9IF9fcGFja2VkOwo+ICsK PiDCoGludCBpYWFfYWVjc19pbml0X2ZpeGVkKHZvaWQpOwo+IMKgdm9pZCBpYWFfYWVjc19jbGVh bnVwX2ZpeGVkKHZvaWQpOwo+ICtpbnQgaWFhX2FlY3NfaW5pdF9jYW5uZWQodm9pZCk7Cj4gK3Zv aWQgaWFhX2FlY3NfY2xlYW51cF9jYW5uZWQodm9pZCk7Cj4gwqAKPiDCoHR5cGVkZWYgaW50ICgq aWFhX2Rldl9jb21wX2luaXRfZm5fdCkgKHN0cnVjdCBpYWFfZGV2aWNlX2NvbXByZXNzaW9uX21v ZGUgKm1vZGUpOwo+IMKgdHlwZWRlZiBpbnQgKCppYWFfZGV2X2NvbXBfZnJlZV9mbl90KSAoc3Ry dWN0IGlhYV9kZXZpY2VfY29tcHJlc3Npb25fbW9kZSAqbW9kZSk7Cj4gQEAgLTExNyw2ICsxNDgs OSBAQCBzdHJ1Y3QgaWFhX2NvbXByZXNzaW9uX21vZGUgewo+IMKgwqDCoMKgwqDCoMKgwqBpbnTC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsbF90YWJsZV9zaXplOwo+ IMKgwqDCoMKgwqDCoMKgwqB1MzLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAqZF90YWJsZTsKPiDCoMKgwqDCoMKgwqDCoMKgaW50wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgZF90YWJsZV9zaXplOwo+ICvCoMKgwqDCoMKgwqDCoHU4wqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqaGVhZGVyX3RhYmxlOwo+ ICvCoMKgwqDCoMKgwqDCoGludMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGhlYWRlcl90YWJsZV9zaXplOwo+ICvCoMKgwqDCoMKgwqDCoHUxNsKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdlbl9kZWNvbXBfdGFibGVfZmxhZ3M7Cj4gwqDC oMKgwqDCoMKgwqDCoGlhYV9kZXZfY29tcF9pbml0X2ZuX3TCoMKgaW5pdDsKPiDCoMKgwqDCoMKg wqDCoMKgaWFhX2Rldl9jb21wX2ZyZWVfZm5fdMKgwqBmcmVlOwo+IMKgfTsKPiBAQCAtMTI2LDYg KzE2MCw5IEBAIGludCBhZGRfaWFhX2NvbXByZXNzaW9uX21vZGUoY29uc3QgY2hhciAqbmFtZSwK PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBpbnQgbGxfdGFibGVfc2l6ZSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25zdCB1MzIgKmRfdGFibGUsCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IGRfdGFibGVf c2l6ZSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGNvbnN0IHU4ICpoZWFkZXJfdGFibGUsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgaGVhZGVyX3RhYmxlX3NpemUsCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1 MTYgZ2VuX2RlY29tcF90YWJsZV9mbGFncywKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpYWFfZGV2X2NvbXBfaW5pdF9mbl90IGluaXQs Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgaWFhX2Rldl9jb21wX2ZyZWVfZm5fdCBmcmVlKTsKPiDCoAo+IEBAIC0xMzMsNiArMTcwLDcg QEAgdm9pZCByZW1vdmVfaWFhX2NvbXByZXNzaW9uX21vZGUoY29uc3QgY2hhciAqbmFtZSk7Cj4g wqAKPiDCoGVudW0gaWFhX21vZGUgewo+IMKgwqDCoMKgwqDCoMKgwqBJQUFfTU9ERV9GSVhFRCwK PiArwqDCoMKgwqDCoMKgwqBJQUFfTU9ERV9DQU5ORUQsCj4gwqB9Owo+IMKgCj4gwqBzdHJ1Y3Qg aWFhX2NvbXByZXNzaW9uX2N0eCB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2ludGVs L2lhYS9pYWFfY3J5cHRvX2NvbXBfY2FubmVkLmMgYi9kcml2ZXJzL2NyeXB0by9pbnRlbC9pYWEv aWFhX2NyeXB0b19jb21wX2Nhbm5lZC5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAw MDAwMDAwMDAwMDAuLjI2ZWE4ODc5NzhlNgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJz L2NyeXB0by9pbnRlbC9pYWEvaWFhX2NyeXB0b19jb21wX2Nhbm5lZC5jCj4gQEAgLTAsMCArMSwx MTYgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiArLyogQ29weXJp Z2h0KGMpIDIwMjEgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcnN2ZC4gKi8KPiArCj4g KyNpbmNsdWRlICJpYWFfY3J5cHRvLmgiCj4gKyNpbmNsdWRlICJpZHhkLmgiCj4gKwo+ICsjZGVm aW5lIElBQV9BRUNTX0FMSUdOwqAzMgo+ICsKPiArLyoKPiArICogVGhlc2UgdGFibGVzIHdlcmUg Z2VuZXJhdGVkIGZyb20gc3RhdGlzdGljcyBkZXJpdmVkIGZyb20gYSB3aWRlCj4gKyAqIHZhcmll dHkgb2YgU1BFQzE3IHdvcmtsb2FkcyBhbmQgaW1wbGVtZW50IGEgZ29vZCBnZW5lcmFsLXB1cnBv c2UKPiArICogY29tcHJlc3Npb24gc2NoZW1lIGNhbGxlZCBzaW1wbHkgJ2Nhbm5lZCcuCj4gKyAq Lwo+ICsKPiArc3RhdGljIGNvbnN0IHUzMiBjYW5uZWRfbGxfaWFhWzI4Nl0gPSB7Cj4gKzB4Mjgw MDIswqAgMHgzODAyNCzCoCAweDQwMDY2LMKgIDB4NDAwNjcswqAgMHg0MDA2OCzCoCAweDQ4MTQ0 LMKgIDB4NDAwNjkswqAgMHg0ODE0NSwKPiArMHg0MDA2YSzCoCAweDQ4MTQ2LMKgIDB4NDAwNmIs wqAgMHg0ODE0NyzCoCAweDQ4MTQ4LMKgIDB4NDgxNDkswqAgMHg0ODE0YSzCoCAweDQ4MTRiLAo+ ICsweDQwMDZjLMKgIDB4NDgxNGMswqAgMHg0ODE0ZCzCoCAweDQ4MTRlLMKgIDB4NDgxNGYswqAg MHg0ODE1MCzCoCAweDQ4MTUxLMKgIDB4NDgxNTIsCj4gKzB4NDAwNmQswqAgMHg0ODE1MyzCoCAw eDQ4MTU0LMKgIDB4NDgxNTUswqAgMHg0ODE1NizCoCAweDQ4MTU3LMKgIDB4NDgxNTgswqAgMHg0 ODE1OSwKPiArMHgzODAyNSzCoCAweDQ4MTVhLMKgIDB4NDgxNWIswqAgMHg0ODE1YyzCoCAweDQ4 MTVkLMKgIDB4NDgxNWUswqAgMHg0ODE1ZizCoCAweDQ4MTYwLAo+ICsweDQwMDZlLMKgIDB4NDgx NjEswqAgMHg0ODE2MizCoCAweDQ4MTYzLMKgIDB4NDgxNjQswqAgMHg0ODE2NSzCoCAweDQwMDZm LMKgIDB4NDgxNjYsCj4gKzB4MzgwMjYswqAgMHgzODAyNyzCoCAweDQwMDcwLMKgIDB4NDAwNzEs wqAgMHg0MDA3MizCoCAweDQwMDczLMKgIDB4NDAwNzQswqAgMHg0MDA3NSwKPiArMHgzODAyOCzC oCAweDQwMDc2LMKgIDB4NDAwNzcswqAgMHg0ODE2NyzCoCAweDQwMDc4LMKgIDB4NDAwNzkswqAg MHg0MDA3YSzCoCAweDM4MDI5LAo+ICsweDM4MDJhLMKgIDB4NDAwN2IswqAgMHg0ODE2OCzCoCAw eDQ4MTY5LMKgIDB4NDAwN2MswqAgMHg0ODE2YSzCoCAweDQwMDdkLMKgIDB4NDgxNmIsCj4gKzB4 NDAwN2UswqAgMHg0ODE2YyzCoCAweDQ4MTZkLMKgIDB4NDgxNmUswqAgMHg0ODE2ZizCoCAweDQ4 MTcwLMKgIDB4NDgxNzEswqAgMHg0ODE3MiwKPiArMHg0MDA3ZizCoCAweDQ4MTczLMKgIDB4NDgx NzQswqAgMHg0ODE3NSzCoCAweDQ4MTc2LMKgIDB4NDgxNzcswqAgMHg0ODE3OCzCoCAweDQ4MTc5 LAo+ICsweDQwMDgwLMKgIDB4NDgxN2EswqAgMHg0ODE3YizCoCAweDQ4MTdjLMKgIDB4NDgxN2Qs wqAgMHg0ODE3ZSzCoCAweDQ4MTdmLMKgIDB4NDgxODAsCj4gKzB4NDAwODEswqAgMHgzODAyYizC oCAweDQwMDgyLMKgIDB4MzgwMmMswqAgMHgzODAyZCzCoCAweDM4MDJlLMKgIDB4NDAwODMswqAg MHg0ODE4MSwKPiArMHg0MDA4NCzCoCAweDQwMDg1LMKgIDB4NDgxODIswqAgMHg0ODE4MyzCoCAw eDQwMDg2LMKgIDB4NDAwODcswqAgMHg0MDA4OCzCoCAweDQwMDg5LAo+ICsweDQwMDhhLMKgIDB4 NDgxODQswqAgMHg0MDA4YizCoCAweDQwMDhjLMKgIDB4NDAwOGQswqAgMHg0MDA4ZSzCoCAweDQ4 MTg1LMKgIDB4NDgxODYsCj4gKzB4NDAwOGYswqAgMHg0ODE4NyzCoCAweDQ4MTg4LMKgIDB4NDgx ODkswqAgMHg0ODE4YSzCoCAweDQ4MThiLMKgIDB4NDgxOGMswqAgMHg0ODE4ZCwKPiArMHg0MDA5 MCzCoCAweDQ4MThlLMKgIDB4NDgxOGYswqAgMHg0ODE5MCzCoCAweDQ4MTkxLMKgIDB4NDgxOTIs wqAgMHg0ODE5MyzCoCAweDQ4MTk0LAo+ICsweDQwMDkxLMKgIDB4NDgxOTUswqAgMHg0ODE5NizC oCAweDQ4MTk3LMKgIDB4NDgxOTgswqAgMHg0ODE5OSzCoCAweDQ4MTlhLMKgIDB4NDgxOWIsCj4g KzB4NDAwOTIswqAgMHg0ODE5YyzCoCAweDQ4MTlkLMKgIDB4NDgxOWUswqAgMHg0ODE5ZizCoCAw eDQ4MWEwLMKgIDB4NDgxYTEswqAgMHg0ODFhMiwKPiArMHg0MDA5MyzCoCAweDQ4MWEzLMKgIDB4 NDgxYTQswqAgMHg0ODFhNSzCoCAweDQ4MWE2LMKgIDB4NDgxYTcswqAgMHg0ODFhOCzCoCAweDQ4 MWE5LAo+ICsweDQwMDk0LMKgIDB4NDgxYWEswqAgMHg0ODFhYizCoCAweDQ4MWFjLMKgIDB4NDgx YWQswqAgMHg0ODFhZSzCoCAweDQ4MWFmLMKgIDB4NDgxYjAsCj4gKzB4NDgxYjEswqAgMHg0ODFi MizCoCAweDQ4MWIzLMKgIDB4NDgxYjQswqAgMHg0ODFiNSzCoCAweDQ4MWI2LMKgIDB4NDgxYjcs wqAgMHg0ODFiOCwKPiArMHg0MDA5NSzCoCAweDQ4MWI5LMKgIDB4NDgxYmEswqAgMHg0ODFiYizC oCAweDQ4MWJjLMKgIDB4NDgxYmQswqAgMHg0ODFiZSzCoCAweDQ4MWJmLAo+ICsweDQwMDk2LMKg IDB4NDgxYzAswqAgMHg0ODFjMSzCoCAweDQ4MWMyLMKgIDB4NDgxYzMswqAgMHg0ODFjNCzCoCAw eDQ4MWM1LMKgIDB4NDAwOTcsCj4gKzB4NDAwOTgswqAgMHg0ODFjNizCoCAweDQ4MWM3LMKgIDB4 NDgxYzgswqAgMHg0ODFjOSzCoCAweDQ4MWNhLMKgIDB4NDgxY2IswqAgMHg0ODFjYywKPiArMHg0 MDA5OSzCoCAweDQ4MWNkLMKgIDB4NDgxY2UswqAgMHg0ODFjZizCoCAweDQ4MWQwLMKgIDB4NDgx ZDEswqAgMHg0ODFkMizCoCAweDQ4MWQzLAo+ICsweDQwMDlhLMKgIDB4NDgxZDQswqAgMHg0ODFk NSzCoCAweDQ4MWQ2LMKgIDB4NDgxZDcswqAgMHg0ODFkOCzCoCAweDQ4MWQ5LMKgIDB4NDgxZGEs Cj4gKzB4NDgxZGIswqAgMHg0ODFkYyzCoCAweDQ4MWRkLMKgIDB4NDgxZGUswqAgMHg0ODFkZizC oCAweDQ4MWUwLMKgIDB4NDgxZTEswqAgMHg0ODFlMiwKPiArMHg0MDA5YizCoCAweDQ4MWUzLMKg IDB4NDgxZTQswqAgMHg0ODFlNSzCoCAweDQ4MWU2LMKgIDB4NDgxZTcswqAgMHg0ODFlOCzCoCAw eDQ4MWU5LAo+ICsweDQ4MWVhLMKgIDB4NDgxZWIswqAgMHg0ODFlYyzCoCAweDQ4MWVkLMKgIDB4 NDgxZWUswqAgMHg0ODFlZizCoCAweDQ4MWYwLMKgIDB4NDgxZjEsCj4gKzB4NDAwOWMswqAgMHg0 ODFmMizCoCAweDQ4MWYzLMKgIDB4NDgxZjQswqAgMHg0ODFmNSzCoCAweDQ4MWY2LMKgIDB4NDgx ZjcswqAgMHg0ODFmOCwKPiArMHg0ODFmOSzCoCAweDQ4MWZhLMKgIDB4NDgxZmIswqAgMHg1ODdm ZSzCoCAweDQ4MWZjLMKgIDB4NDgxZmQswqAgMHg0ODFmZSzCoCAweDQwMDlkLAo+ICsweDUwM2Zl LMKgIDB4MjAwMDAswqAgMHgyODAwMyzCoCAweDMwMDEwLMKgIDB4MjgwMDQswqAgMHgyODAwNSzC oCAweDI4MDA2LMKgIDB4NDAwOWUsCj4gKzB4NDAwOWYswqAgMHgzODAyZizCoCAweDM4MDMwLMKg IDB4MzAwMTEswqAgMHg0MDBhMCzCoCAweDM4MDMxLMKgIDB4MzgwMzIswqAgMHg0MDBhMSwKPiAr MHgyODAwNyzCoCAweDczZmY4LMKgIDB4NzNmZjkswqAgMHg3ZmZmNizCoCAweDdmZmY3LMKgIDB4 N2ZmZjgswqAgMHg3ZmZmOSzCoCAweDdmZmZhLAo+ICsweDdmZmZiLMKgIDB4N2ZmZmMswqAgMHg3 ZmZmZCzCoCAweDdmZmZlLMKgIDB4N2ZmZmYswqAgMHg3M2ZmYSwKPiArfTsKPiArCj4gK3N0YXRp YyBjb25zdCB1MzIgY2FubmVkX2RfaWFhWzMwXSA9IHsKPiArMHgzODA3ZSzCoCAweDIwMDA0LMKg IDB4NDgxZmUswqAgMHgxODAwMCzCoCAweDQwMGZlLMKgIDB4MTgwMDEswqAgMHgzMDAzYyzCoCAw eDIwMDA1LAo+ICsweDIwMDA2LMKgIDB4MjgwMTYswqAgMHgyMDAwNyzCoCAweDI4MDE3LMKgIDB4 MjAwMDgswqAgMHgyODAxOCzCoCAweDI4MDE5LMKgIDB4MjAwMDksCj4gKzB4MjAwMGEswqAgMHgy ODAxYSzCoCAweDI4MDFiLMKgIDB4MjgwMWMswqAgMHgyODAxZCzCoCAweDMwMDNkLMKgIDB4MzAw M2UswqAgMHg0ODFmZiwKPiArMHgwLMKgIDB4MCzCoCAweDAswqAgMHgwLMKgIDB4MCzCoCAweDAs Cj4gK307Cj4gKwo+ICsjZGVmaW5lIEhFQURFUl9TSVpFX0lOX0JJVFMgNjU2Cj4gK3N0YXRpYyBj b25zdCB1OCBjYW5uZWRfaGVhZGVyW10gPSB7Cj4gKzB4ZWQsIDB4ZmQsIDB4MDUsIDB4NWMsIDB4 NTQsIDB4Y2YsIDB4MTcsIDB4MDYsCj4gKzB4OGMsIDB4Y2YsIDB4MDIsIDB4MjIsIDB4NjIsIDB4 NjEsIDB4NjMsIDB4YWYsCj4gKzB4OGQsIDB4ODUsIDB4YmIsIDB4ZTQsIDB4ODIsIDB4YzAsIDB4 MmUsIDB4OGEsCj4gKzB4ODgsIDB4OGQsIDB4OGQsIDB4Y2QsIDB4YjIsIDB4YmIsIDB4MDgsIDB4 NGEsCj4gKzB4NDksIDB4MjgsIDB4MzYsIDB4MzYsIDB4MzYsIDB4MzYsIDB4MzYsIDB4NzYsCj4g KzB4MmIsIDB4MzYsIDB4MjYsIDB4ZDgsIDB4ZDgsIDB4ZDgsIDB4YWQsIDB4ZDgsCj4gKzB4YWQs IDB4ZDgsIDB4ZjEsIDB4NTMsIDB4ZjksIDB4OWUsIDB4YjksIDB4MzMsCj4gKzB4MDMsIDB4YmIs IDB4OTcsIDB4NWQsIDB4ZTYsIDB4N2QsIDB4ZmYsIDB4MWQsCj4gKzB4ZWYsIDB4MWUsIDB4MWYs IDB4OWUsIDB4N2IsIDB4Y2UsIDB4OWMsIDB4MzksCj4gKzB4MzMsIDB4ZTcsIDB4NGMsIDB4ZGMs IDB4ZWIsIDB4ZTcsIDB4ZjMsIDB4ZjksCj4gKzB4N2MsIDB4M2UsCj4gK307Cj4gKwo+ICsjZGVm aW5lIENFSUwoYSwgYinCoMKgwqDCoMKgKCgoYSkgKyAoKGIpIC0gMSkpIC8gKGIpKQo+ICsKPiAr aW50IGlhYV9hZWNzX2luaXRfY2FubmVkKHZvaWQpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqB1MTYg Z2VuX2RlY29tcF90YWJsZV9mbGFnczsKPiArwqDCoMKgwqDCoMKgwqB1bnNpZ25lZCBpbnQgc2xl bjsKPiArwqDCoMKgwqDCoMKgwqBpbnQgcmV0Owo+ICsKPiArwqDCoMKgwqDCoMKgwqBzbGVuID0g Q0VJTChIRUFERVJfU0laRV9JTl9CSVRTLCA4KTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgZ2VuX2Rl Y29tcF90YWJsZV9mbGFncyA9IDB4MTsgLyogZW5hYmxlIGRlY29tcHJlc3Npb24gKi8KPiArwqDC oMKgwqDCoMKgwqBnZW5fZGVjb21wX3RhYmxlX2ZsYWdzIHw9IDEgPDwgOTsgLyogc3VwcHJlc3Mg b3V0cHV0ICovCj4gKwo+ICvCoMKgwqDCoMKgwqDCoC8qCj4gK8KgwqDCoMKgwqDCoMKgICogQml0 cyA4OjYgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGJpdHMgdG8gaWdub3JlIGF0IHRoZSBlbmQgb2Yg dGhlCj4gK8KgwqDCoMKgwqDCoMKgICogY29tcHJlc3NlZCBpbnB1dCBzdHJlYW0uCj4gK8KgwqDC oMKgwqDCoMKgICogU2VlIEludGVswq4gSW4tTWVtb3J5IEFuYWx5dGljcyBBY2NlbGVyYXRvciBB cmNoaXRlY3R1cmUgU3BlY2lmaWNhdGlvbgo+ICvCoMKgwqDCoMKgwqDCoCAqIFNlY3Rpb25zIDYu My4zLjEgZm9yIGRldGFpbHMuCj4gK8KgwqDCoMKgwqDCoMKgICovCj4gK8KgwqDCoMKgwqDCoMKg Z2VuX2RlY29tcF90YWJsZV9mbGFncyB8PSAoKChzbGVuICogOCkgLSBIRUFERVJfU0laRV9JTl9C SVRTKSA8PCA2KTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgcmV0ID0gYWRkX2lhYV9jb21wcmVzc2lv bl9tb2RlKCJjYW5uZWQiLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjYW5uZWRfbGxfaWFhLAo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBzaXplb2YoY2FubmVkX2xsX2lhYSksCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGNhbm5lZF9kX2lhYSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZW9mKGNhbm5lZF9kX2lh YSksCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhbm5lZF9oZWFkZXIsCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHNpemVvZihjYW5uZWRfaGVhZGVyKSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ2VuX2RlY29t cF90YWJsZV9mbGFncywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgTlVMTCwgTlVMTCk7Cj4gKwo+ICvC oMKgwqDCoMKgwqDCoGlmICghcmV0KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBw cl9kZWJ1ZygiSUFBIGNhbm5lZCBjb21wcmVzc2lvbiBtb2RlIGluaXRpYWxpemVkXG4iKTsKPiAr Cj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIHJldDsKPiArfQo+ICsKPiArdm9pZCBpYWFfYWVjc19j bGVhbnVwX2Nhbm5lZCh2b2lkKQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgcmVtb3ZlX2lhYV9jb21w cmVzc2lvbl9tb2RlKCJjYW5uZWQiKTsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0 by9pbnRlbC9pYWEvaWFhX2NyeXB0b19jb21wX2ZpeGVkLmMgYi9kcml2ZXJzL2NyeXB0by9pbnRl bC9pYWEvaWFhX2NyeXB0b19jb21wX2ZpeGVkLmMKPiBpbmRleCAxOWQ5YTMzM2FjNDkuLjQ1Y2Y1 ZDc0ZjBmYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2NyeXB0by9pbnRlbC9pYWEvaWFhX2NyeXB0 b19jb21wX2ZpeGVkLmMKPiArKysgYi9kcml2ZXJzL2NyeXB0by9pbnRlbC9pYWEvaWFhX2NyeXB0 b19jb21wX2ZpeGVkLmMKPiBAQCAtNzgsNiArNzgsNyBAQCBpbnQgaWFhX2FlY3NfaW5pdF9maXhl ZCh2b2lkKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZW9mKGZpeGVkX2xsX3N5bSksCj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBmaXhlZF9kX3N5bSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemVv ZihmaXhlZF9kX3N5bSksCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE5VTEwsIDAsIDAsCj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBpbml0X2ZpeGVkX21vZGUsIE5VTEwpOwo+IMKgwqDCoMKgwqDCoMKgwqBp ZiAoIXJldCkKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHByX2RlYnVnKCJJQUEg Zml4ZWQgY29tcHJlc3Npb24gbW9kZSBpbml0aWFsaXplZFxuIik7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvY3J5cHRvL2ludGVsL2lhYS9pYWFfY3J5cHRvX21haW4uYyBiL2RyaXZlcnMvY3J5cHRv L2ludGVsL2lhYS9pYWFfY3J5cHRvX21haW4uYwo+IGluZGV4IDFmZjZiN2M3N2Q4OS4uZjE0MWEz ODlmNWNhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvY3J5cHRvL2ludGVsL2lhYS9pYWFfY3J5cHRv X21haW4uYwo+ICsrKyBiL2RyaXZlcnMvY3J5cHRvL2ludGVsL2lhYS9pYWFfY3J5cHRvX21haW4u Ywo+IEBAIC0zNCw2ICszNCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbnJfY3B1c19wZXJfbm9k ZTsKPiDCoHN0YXRpYyB1bnNpZ25lZCBpbnQgY3B1c19wZXJfaWFhOwo+IMKgCj4gwqBzdGF0aWMg c3RydWN0IGNyeXB0b19jb21wICpkZWZsYXRlX2dlbmVyaWNfdGZtOwo+ICtzdGF0aWMgc3RydWN0 IGNyeXB0b19hY29tcCAqZGVmbGF0ZV9jYW5uZWRfdGZtOwo+IMKgCj4gwqAvKiBQZXItY3B1IGxv b2t1cCB0YWJsZSBmb3IgYmFsYW5jZWQgd3FzICovCj4gwqBzdGF0aWMgc3RydWN0IHdxX3RhYmxl X2VudHJ5IF9fcGVyY3B1ICp3cV90YWJsZTsKPiBAQCAtOTEsNyArOTIsOCBAQCBERUZJTkVfTVVU RVgoaWFhX2RldmljZXNfbG9jayk7Cj4gwqAKPiDCoC8qIElmIGVuYWJsZWQsIElBQSBodyBjcnlw dG8gYWxnb3MgYXJlIHJlZ2lzdGVyZWQsIHVuYXZhaWxhYmxlIG90aGVyd2lzZSAqLwo+IMKgc3Rh dGljIGJvb2wgaWFhX2NyeXB0b19lbmFibGVkOwo+IC1zdGF0aWMgYm9vbCBpYWFfY3J5cHRvX3Jl Z2lzdGVyZWQ7Cj4gK3N0YXRpYyBib29sIGlhYV9jcnlwdG9fZml4ZWRfcmVnaXN0ZXJlZDsKPiAr c3RhdGljIGJvb2wgaWFhX2NyeXB0b19jYW5uZWRfcmVnaXN0ZXJlZDsKPiDCoAo+IMKgLyogVmVy aWZ5IHJlc3VsdHMgb2YgSUFBIGNvbXByZXNzIG9yIG5vdCAqLwo+IMKgc3RhdGljIGJvb2wgaWFh X3ZlcmlmeV9jb21wcmVzcyA9IHRydWU7Cj4gQEAgLTI1OCwxNCArMjYwLDE2IEBAIHN0YXRpYyB2 b2lkIGZyZWVfaWFhX2NvbXByZXNzaW9uX21vZGUoc3RydWN0IGlhYV9jb21wcmVzc2lvbl9tb2Rl ICptb2RlKQo+IMKgwqDCoMKgwqDCoMKgwqBrZnJlZShtb2RlLT5uYW1lKTsKPiDCoMKgwqDCoMKg wqDCoMKga2ZyZWUobW9kZS0+bGxfdGFibGUpOwo+IMKgwqDCoMKgwqDCoMKgwqBrZnJlZShtb2Rl LT5kX3RhYmxlKTsKPiArwqDCoMKgwqDCoMKgwqBrZnJlZShtb2RlLT5oZWFkZXJfdGFibGUpOwo+ IMKgCj4gwqDCoMKgwqDCoMKgwqDCoGtmcmVlKG1vZGUpOwo+IMKgfQo+IMKgCj4gwqAvKgo+IC0g KiBJQUEgQ29tcHJlc3Npb24gbW9kZXMgYXJlIGRlZmluZWQgYnkgYW4gbGxfdGFibGUgYW5kIGEg ZF90YWJsZS4KPiAtICogVGhlc2UgdGFibGVzIGFyZSB0eXBpY2FsbHkgZ2VuZXJhdGVkIGFuZCBj YXB0dXJlZCB1c2luZyBzdGF0aXN0aWNzCj4gLSAqIGNvbGxlY3RlZCBmcm9tIHJ1bm5pbmcgYWN0 dWFsIGNvbXByZXNzL2RlY29tcHJlc3Mgd29ya2xvYWRzLgo+ICsgKiBJQUEgQ29tcHJlc3Npb24g bW9kZXMgYXJlIGRlZmluZWQgYnkgYW4gbGxfdGFibGUsIGEgZF90YWJsZSwgYW5kIGFuCj4gKyAq IG9wdGlvbmFsIGhlYWRlcl90YWJsZS4gVGhlc2UgdGFibGVzIGFyZSB0eXBpY2FsbHkgZ2VuZXJh dGVkIGFuZAo+ICsgKiBjYXB0dXJlZCB1c2luZyBzdGF0aXN0aWNzIGNvbGxlY3RlZCBmcm9tIHJ1 bm5pbmcgYWN0dWFsCj4gKyAqIGNvbXByZXNzL2RlY29tcHJlc3Mgd29ya2xvYWRzLgo+IMKgICoK PiDCoCAqIEEgbW9kdWxlIG9yIG90aGVyIGtlcm5lbCBjb2RlIGNhbiBhZGQgYW5kIHJlbW92ZSBj b21wcmVzc2lvbiBtb2Rlcwo+IMKgICogd2l0aCBhIGdpdmVuIG5hbWUgdXNpbmcgdGhlIGV4cG9y dGVkIEBhZGRfaWFhX2NvbXByZXNzaW9uX21vZGUoKQo+IEBAIC0zMTMsNiArMzE3LDkgQEAgRVhQ T1JUX1NZTUJPTF9HUEwocmVtb3ZlX2lhYV9jb21wcmVzc2lvbl9tb2RlKTsKPiDCoCAqIEBsbF90 YWJsZV9zaXplOiBUaGUgbGwgdGFibGUgc2l6ZSBpbiBieXRlcwo+IMKgICogQGRfdGFibGU6IFRo ZSBkIHRhYmxlCj4gwqAgKiBAZF90YWJsZV9zaXplOiBUaGUgZCB0YWJsZSBzaXplIGluIGJ5dGVz Cj4gKyAqIEBoZWFkZXJfdGFibGU6IE9wdGlvbmFsIGhlYWRlciB0YWJsZQo+ICsgKiBAaGVhZGVy X3RhYmxlX3NpemU6IE9wdGlvbmFsIGhlYWRlciB0YWJsZSBzaXplIGluIGJ5dGVzCj4gKyAqIEBn ZW5fZGVjb21wX3RhYmxlX2ZsYWdzOiBPdGlvbmFsIGZsYWdzIHVzZWQgdG8gZ2VuZXJhdGUgdGhl IGRlY29tcCB0YWJsZQo+IMKgICogQGluaXQ6IE9wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHRv IGluaXQgdGhlIGNvbXByZXNzaW9uIG1vZGUgZGF0YQo+IMKgICogQGZyZWU6IE9wdGlvbmFsIGNh bGxiYWNrIGZ1bmN0aW9uIHRvIGZyZWUgdGhlIGNvbXByZXNzaW9uIG1vZGUgZGF0YQo+IMKgICoK PiBAQCAtMzI1LDYgKzMzMiw5IEBAIGludCBhZGRfaWFhX2NvbXByZXNzaW9uX21vZGUoY29uc3Qg Y2hhciAqbmFtZSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBpbnQgbGxfdGFibGVfc2l6ZSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25zdCB1MzIgKmRfdGFibGUsCj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg aW50IGRfdGFibGVfc2l6ZSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IHU4ICpoZWFkZXJfdGFibGUsCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgaGVhZGVyX3Rh YmxlX3NpemUsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB1MTYgZ2VuX2RlY29tcF90YWJsZV9mbGFncywKPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpYWFfZGV2X2NvbXBfaW5p dF9mbl90IGluaXQsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgaWFhX2Rldl9jb21wX2ZyZWVfZm5fdCBmcmVlKQo+IMKgewo+IEBAIC0z NjIsNiArMzcyLDE2IEBAIGludCBhZGRfaWFhX2NvbXByZXNzaW9uX21vZGUoY29uc3QgY2hhciAq bmFtZSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG1vZGUtPmRfdGFibGVfc2l6 ZSA9IGRfdGFibGVfc2l6ZTsKPiDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgCj4gK8KgwqDCoMKgwqDC oMKgaWYgKGhlYWRlcl90YWJsZSkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBt b2RlLT5oZWFkZXJfdGFibGUgPSBremFsbG9jKGhlYWRlcl90YWJsZV9zaXplLCBHRlBfS0VSTkVM KTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKCFtb2RlLT5oZWFkZXJfdGFi bGUpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3Rv IGZyZWU7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG1lbWNweShtb2RlLT5oZWFk ZXJfdGFibGUsIGhlYWRlcl90YWJsZSwgaGVhZGVyX3RhYmxlX3NpemUpOwo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBtb2RlLT5oZWFkZXJfdGFibGVfc2l6ZSA9IGhlYWRlcl90YWJs ZV9zaXplOwo+ICvCoMKgwqDCoMKgwqDCoH0KPiArCj4gK8KgwqDCoMKgwqDCoMKgbW9kZS0+Z2Vu X2RlY29tcF90YWJsZV9mbGFncyA9IGdlbl9kZWNvbXBfdGFibGVfZmxhZ3M7Cj4gKwo+IMKgwqDC oMKgwqDCoMKgwqBtb2RlLT5pbml0ID0gaW5pdDsKPiDCoMKgwqDCoMKgwqDCoMKgbW9kZS0+ZnJl ZSA9IGZyZWU7Cj4gwqAKPiBAQCAtMzk0LDE0ICs0MTQsMTkgQEAgZ2V0X2lhYV9kZXZpY2VfY29t cHJlc3Npb25fbW9kZShzdHJ1Y3QgaWFhX2RldmljZSAqaWFhX2RldmljZSwgaW50IGlkeCkKPiDC oHN0YXRpYyB2b2lkIGZyZWVfZGV2aWNlX2NvbXByZXNzaW9uX21vZGUoc3RydWN0IGlhYV9kZXZp Y2UgKmlhYV9kZXZpY2UsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGlhYV9kZXZp Y2VfY29tcHJlc3Npb25fbW9kZSAqZGV2aWNlX21vZGUpCj4gwqB7Cj4gLcKgwqDCoMKgwqDCoMKg c2l6ZV90IHNpemUgPSBzaXplb2Yoc3RydWN0IGFlY3NfY29tcF90YWJsZV9yZWNvcmQpICsgSUFB X0FFQ1NfQUxJR047Cj4gK8KgwqDCoMKgwqDCoMKgc2l6ZV90IGNfc2l6ZSA9IHNpemVvZihzdHJ1 Y3QgYWVjc19jb21wX3RhYmxlX3JlY29yZCkgKyBJQUFfQUVDU19BTElHTjsKPiArwqDCoMKgwqDC oMKgwqBzaXplX3QgZF9zaXplID0gc2l6ZW9mKHN0cnVjdCBhZWNzX2RlY29tcF90YWJsZV9yZWNv cmQpICsgSUFBX0FFQ1NfQUxJR047Cj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBkZXZpY2UgKmRl diA9ICZpYWFfZGV2aWNlLT5pZHhkLT5wZGV2LT5kZXY7Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKg a2ZyZWUoZGV2aWNlX21vZGUtPm5hbWUpOwo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoGlmIChkZXZp Y2VfbW9kZS0+YWVjc19jb21wX3RhYmxlKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBkbWFfZnJlZV9jb2hlcmVudChkZXYsIHNpemUsIGRldmljZV9tb2RlLT5hZWNzX2NvbXBfdGFi bGUsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRtYV9mcmVlX2NvaGVyZW50KGRl diwgY19zaXplLCBkZXZpY2VfbW9kZS0+YWVjc19jb21wX3RhYmxlLAo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZXZp Y2VfbW9kZS0+YWVjc19jb21wX3RhYmxlX2RtYV9hZGRyKTsKPiArwqDCoMKgwqDCoMKgwqBpZiAo ZGV2aWNlX21vZGUtPmFlY3NfZGVjb21wX3RhYmxlKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBkbWFfZnJlZV9jb2hlcmVudChkZXYsIGRfc2l6ZSwgZGV2aWNlX21vZGUtPmFlY3Nf ZGVjb21wX3RhYmxlLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRldmljZV9tb2RlLT5hZWNzX2RlY29tcF90YWJsZV9k bWFfYWRkcik7Cj4gKwo+IMKgwqDCoMKgwqDCoMKgwqBrZnJlZShkZXZpY2VfbW9kZSk7Cj4gwqB9 Cj4gwqAKPiBAQCAtNDE4LDExICs0NDMsNzkgQEAgc3RhdGljIGludCBjaGVja19jb21wbGV0aW9u KHN0cnVjdCBkZXZpY2UgKmRldiwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgYm9vbCBjb21wcmVzcywKPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYm9vbCBvbmx5X29uY2UpOwo+IMKg Cj4gK3N0YXRpYyBpbnQgZGVjb21wcmVzc19oZWFkZXIoc3RydWN0IGlhYV9kZXZpY2VfY29tcHJl c3Npb25fbW9kZSAqZGV2aWNlX21vZGUsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgaWFhX2NvbXByZXNzaW9uX21vZGUgKm1v ZGUsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBzdHJ1Y3QgaWR4ZF93cSAqd3EpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqBkbWFfYWRkcl90 IHNyY19hZGRyLCBzcmMyX2FkZHI7Cj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IGlkeGRfZGVzYyAq aWR4ZF9kZXNjOwo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBpYXhfaHdfZGVzYyAqZGVzYzsKPiAr wqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0 IGlhYV93cSAqaWFhX3dxOwo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBpYWFfZGV2aWNlICppYWFf ZGV2aWNlOwo+ICvCoMKgwqDCoMKgwqDCoGludCByZXQgPSAwOwo+ICsKCkp1c3QgYSBzbWFsbCBz dHlsZSB0aGluZyAtIHdoZW4gcG9zc2libGUsIGl0J3MgZ29vZCB0byB1c2UgJ3JldmVyc2UKQ2hy aXN0bWFzIHRyZWUnIG9yZGVyIGZvciBsb2NhbHMgc28gZS5nLiBpbnN0ZWFkIG9mIHRoZSBhYm92 ZSBpdCB3b3VsZApsb29rIGxpa2UgdGhpczoKCisgICAgICAgZG1hX2FkZHJfdCBzcmNfYWRkciwg c3JjMl9hZGRyOworICAgICAgIHN0cnVjdCBpYWFfZGV2aWNlICppYWFfZGV2aWNlOworICAgICAg IHN0cnVjdCBpZHhkX2Rlc2MgKmlkeGRfZGVzYzsKKyAgICAgICBzdHJ1Y3QgaWF4X2h3X2Rlc2Mg KmRlc2M7CisgICAgICAgc3RydWN0IGlhYV93cSAqaWFhX3dxOworICAgICAgIHN0cnVjdCBkZXZp Y2UgKmRldjsKKyAgICAgICBpbnQgcmV0ID0gMDsKClNvLCB0aGUgbG9uZ2VzdCBhdCB0aGUgdG9w LCBmb2xsb3dlZCBieSB0aGUgbmV4dCBsb25nZXN0LCBldGMuCgo+ICvCoMKgwqDCoMKgwqDCoGlk eGRfZGVzYyA9IGlkeGRfYWxsb2NfZGVzYyh3cSwgSURYRF9PUF9CTE9DSyk7Cj4gK8KgwqDCoMKg wqDCoMKgaWYgKElTX0VSUihpZHhkX2Rlc2MpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqByZXR1cm4gUFRSX0VSUihpZHhkX2Rlc2MpOwo+ICsKPiArwqDCoMKgwqDCoMKgwqBkZXNj ID0gaWR4ZF9kZXNjLT5pYXhfaHc7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGlhYV93cSA9IGlkeGRf d3FfZ2V0X3ByaXZhdGUod3EpOwo+ICvCoMKgwqDCoMKgwqDCoGlhYV9kZXZpY2UgPSBpYWFfd3Et PmlhYV9kZXZpY2U7Cj4gK8KgwqDCoMKgwqDCoMKgZGV2ID0gJndxLT5pZHhkLT5wZGV2LT5kZXY7 Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoHNyY19hZGRyID0gZG1hX21hcF9zaW5nbGUoZGV2LCAodm9p ZCAqKW1vZGUtPmhlYWRlcl90YWJsZSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtb2RlLT5oZWFkZXJfdGFibGVfc2l6 ZSwgRE1BX1RPX0RFVklDRSk7Cj4gK8KgwqDCoMKgwqDCoMKgZGV2X2RiZyhkZXYsICIlczogbW9k ZS0+bmFtZSAlcywgc3JjX2FkZHIgJWxseCwgZGV2ICVwLCBzcmMgJXAsIHNsZW4gJWRcbiIsCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoF9fZnVuY19fLCBtb2RlLT5uYW1lLCBzcmNf YWRkcizCoGRldiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbW9kZS0+aGVhZGVy X3RhYmxlLCBtb2RlLT5oZWFkZXJfdGFibGVfc2l6ZSk7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKHVu bGlrZWx5KGRtYV9tYXBwaW5nX2Vycm9yKGRldiwgc3JjX2FkZHIpKSkgewo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBkZXZfZGJnKGRldiwgImRtYV9tYXBfc2luZ2xlIGVyciwgZXhp dGluZ1xuIik7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldCA9IC1FTk9NRU07 Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiByZXQ7Cj4gK8KgwqDCoMKg wqDCoMKgfQo+ICvCoMKgwqDCoMKgwqDCoHNyYzJfYWRkciA9IGRldmljZV9tb2RlLT5hZWNzX2Rl Y29tcF90YWJsZV9kbWFfYWRkcjsKPiArCj4gK8KgwqDCoMKgwqDCoMKgZGVzYy0+ZmxhZ3MgPSBJ QVhfQUVDU19HRU5fRkxBRzsKPiArwqDCoMKgwqDCoMKgwqBkZXNjLT5vcGNvZGUgPSBJQVhfT1BD T0RFX0RFQ09NUFJFU1M7Cj4gK8KgwqDCoMKgwqDCoMKgZGVzYy0+ZGVjb21wcl9mbGFncyA9IG1v ZGUtPmdlbl9kZWNvbXBfdGFibGVfZmxhZ3M7Cj4gK8KgwqDCoMKgwqDCoMKgZGVzYy0+cHJpdiA9 IDA7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGRlc2MtPnNyYzFfYWRkciA9ICh1NjQpc3JjX2FkZHI7 Cj4gK8KgwqDCoMKgwqDCoMKgZGVzYy0+c3JjMV9zaXplID0gbW9kZS0+aGVhZGVyX3RhYmxlX3Np emU7Cj4gK8KgwqDCoMKgwqDCoMKgZGVzYy0+c3JjMl9hZGRyID0gKHU2NClzcmMyX2FkZHI7Cj4g K8KgwqDCoMKgwqDCoMKgZGVzYy0+c3JjMl9zaXplID0gaWFhX2RldmljZS0+c3JjMl9zaXplOwo+ ICvCoMKgwqDCoMKgwqDCoGRldl9kYmcoZGV2LCAiJXM6IG1vZGUtPm5hbWUgJXMsIHNyYzJfYWRk ciAlbGx4LCBkZXYgJXAsIHNyYzJfc2l6ZSAlZFxuIiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgX19mdW5jX18sIG1vZGUtPm5hbWUsIGRlc2MtPnNyYzJfYWRkciwgZGV2LCBkZXNj LT5zcmMyX3NpemUpOwo+ICvCoMKgwqDCoMKgwqDCoGRlc2MtPm1heF9kc3Rfc2l6ZSA9IDA7IC8v IHN1cHByZXNzZWQgb3V0cHV0Cj4gK8KgwqDCoMKgwqDCoMKgZGVzYy0+Y29tcGxldGlvbl9hZGRy ID0gaWR4ZF9kZXNjLT5jb21wbF9kbWE7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoHJldCA9IGlkeGRf c3VibWl0X2Rlc2Mod3EsIGlkeGRfZGVzYyk7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKHJldCkgewo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwcl9lcnIoIiVzOiBzdWJtaXRfZGVzYyBm YWlsZWQgcmV0PTB4JXhcbiIsIF9fZnVuY19fLCByZXQpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBnb3RvIG91dDsKPiArwqDCoMKgwqDCoMKgwqB9Cj4gKwo+ICvCoMKgwqDCoMKg wqDCoHJldCA9IGNoZWNrX2NvbXBsZXRpb24oZGV2LCBpZHhkX2Rlc2MtPmlheF9jb21wbGV0aW9u LCBmYWxzZSwgZmFsc2UpOwo+ICvCoMKgwqDCoMKgwqDCoGlmIChyZXQpCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGRldl9kYmcoZGV2LCAiJXM6IG1vZGUtPm5hbWUgJXMgY2hlY2tf Y29tcGxldGlvbiBmYWlsZWQgcmV0PSVkXG4iLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgX19mdW5jX18sIG1vZGUtPm5hbWUsIHJldCk7Cj4gK8KgwqDC oMKgwqDCoMKgZWxzZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkZXZfZGJnKGRl diwgIiVzOiBtb2RlLT5uYW1lICVzIHN1Y2NlZWRlZFxuIiwgX19mdW5jX18sCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBtb2RlLT5uYW1lKTsKPiArb3V0 Ogo+ICvCoMKgwqDCoMKgwqDCoGRtYV91bm1hcF9zaW5nbGUoZGV2LCBzcmNfYWRkciwgZGVzYy0+ c3JjMl9zaXplLCBETUFfVE9fREVWSUNFKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIHJl dDsKPiArfQo+ICsKPiDCoHN0YXRpYyBpbnQgaW5pdF9kZXZpY2VfY29tcHJlc3Npb25fbW9kZShz dHJ1Y3QgaWFhX2RldmljZSAqaWFhX2RldmljZSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN0 cnVjdCBpYWFfY29tcHJlc3Npb25fbW9kZSAqbW9kZSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGludCBpZHgsIHN0cnVjdCBpZHhkX3dxICp3cSkKPiDCoHsKPiAtwqDCoMKgwqDCoMKgwqBzaXpl X3Qgc2l6ZSA9IHNpemVvZihzdHJ1Y3QgYWVjc19jb21wX3RhYmxlX3JlY29yZCkgKyBJQUFfQUVD U19BTElHTjsKPiArwqDCoMKgwqDCoMKgwqBzaXplX3QgY19zaXplID0gc2l6ZW9mKHN0cnVjdCBh ZWNzX2NvbXBfdGFibGVfcmVjb3JkKSArIElBQV9BRUNTX0FMSUdOOwo+ICvCoMKgwqDCoMKgwqDC oHNpemVfdCBkX3NpemUgPSBzaXplb2Yoc3RydWN0IGFlY3NfZGVjb21wX3RhYmxlX3JlY29yZCkg KyBJQUFfQUVDU19BTElHTjsKPiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGRldmljZSAqZGV2ID0g JmlhYV9kZXZpY2UtPmlkeGQtPnBkZXYtPmRldjsKPiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGlh YV9kZXZpY2VfY29tcHJlc3Npb25fbW9kZSAqZGV2aWNlX21vZGU7Cj4gwqDCoMKgwqDCoMKgwqDC oGludCByZXQgPSAtRU5PTUVNOwo+IEBAIC00MzUsMTYgKzUyOCwyOSBAQCBzdGF0aWMgaW50IGlu aXRfZGV2aWNlX2NvbXByZXNzaW9uX21vZGUoc3RydWN0IGlhYV9kZXZpY2UgKmlhYV9kZXZpY2Us Cj4gwqDCoMKgwqDCoMKgwqDCoGlmICghZGV2aWNlX21vZGUtPm5hbWUpCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIGZyZWU7Cj4gwqAKPiAtwqDCoMKgwqDCoMKgwqBkZXZp Y2VfbW9kZS0+YWVjc19jb21wX3RhYmxlID0gZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgc2l6ZSwK PiArwqDCoMKgwqDCoMKgwqBkZXZpY2VfbW9kZS0+YWVjc19jb21wX3RhYmxlID0gZG1hX2FsbG9j X2NvaGVyZW50KGRldiwgY19zaXplLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmZGV2aWNlX21vZGUtPmFlY3NfY29tcF90YWJsZV9k bWFfYWRkciwgR0ZQX0tFUk5FTCk7Cj4gwqDCoMKgwqDCoMKgwqDCoGlmICghZGV2aWNlX21vZGUt PmFlY3NfY29tcF90YWJsZSkKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8g ZnJlZTsKPiDCoAo+ICvCoMKgwqDCoMKgwqDCoGRldmljZV9tb2RlLT5hZWNzX2RlY29tcF90YWJs ZSA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYsIGRfc2l6ZSwKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJmRldmljZV9tb2RlLT5h ZWNzX2RlY29tcF90YWJsZV9kbWFfYWRkciwgR0ZQX0tFUk5FTCk7Cj4gK8KgwqDCoMKgwqDCoMKg aWYgKCFkZXZpY2VfbW9kZS0+YWVjc19kZWNvbXBfdGFibGUpCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGdvdG8gZnJlZTsKPiArCj4gwqDCoMKgwqDCoMKgwqDCoC8qIEFkZCBIdWZm bWFuIHRhYmxlIHRvIGFlY3MgKi8KPiDCoMKgwqDCoMKgwqDCoMKgbWVtc2V0KGRldmljZV9tb2Rl LT5hZWNzX2NvbXBfdGFibGUsIDAsIHNpemVvZigqZGV2aWNlX21vZGUtPmFlY3NfY29tcF90YWJs ZSkpOwo+IMKgwqDCoMKgwqDCoMKgwqBtZW1jcHkoZGV2aWNlX21vZGUtPmFlY3NfY29tcF90YWJs ZS0+bGxfc3ltLCBtb2RlLT5sbF90YWJsZSwgbW9kZS0+bGxfdGFibGVfc2l6ZSk7Cj4gwqDCoMKg wqDCoMKgwqDCoG1lbWNweShkZXZpY2VfbW9kZS0+YWVjc19jb21wX3RhYmxlLT5kX3N5bSwgbW9k ZS0+ZF90YWJsZSwgbW9kZS0+ZF90YWJsZV9zaXplKTsKPiDCoAo+ICvCoMKgwqDCoMKgwqDCoGlm IChtb2RlLT5oZWFkZXJfdGFibGUpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg cmV0ID0gZGVjb21wcmVzc19oZWFkZXIoZGV2aWNlX21vZGUsIG1vZGUsIHdxKTsKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHJldCkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHJfZGVidWcoImlhYSBoZWFkZXIgZGVjb21wcmVz c2lvbiBmYWlsZWQ6IHJldD0lZFxuIiwgcmV0KTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gZnJlZTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgfQo+ICvCoMKgwqDCoMKgwqDCoH0KPiArCj4gwqDCoMKgwqDCoMKgwqDCoGlmICht b2RlLT5pbml0KSB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXQgPSBtb2Rl LT5pbml0KGRldmljZV9tb2RlKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlm IChyZXQpCj4gQEAgLTc4Niw2ICs4OTIsMTMgQEAgc3RhdGljIGludCBzYXZlX2lhYV93cShzdHJ1 Y3QgaWR4ZF93cSAqd3EpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgZ290byBvdXQ7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9Cj4g wqAKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWR4ZCA9IG5ld19kZXZpY2UtPmlk eGQ7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIFNldCBJQUEgZGV2aWNlIHNy YzIgc2l6ZSBiYXNlZCBvbiBBRUNTIEZvcm1hdCBWZXJzaW9uICovCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGlmIChpZHhkLT5ody5pYWFfY2FwLmRlY19hZWNzX2Zvcm1hdF92ZXIp Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBuZXdfZGV2 aWNlLT5zcmMyX3NpemUgPSBERUNPTVBfSU5UX1NUQVRFX0ZNVDJfTEVOOwo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBlbHNlCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBuZXdfZGV2aWNlLT5zcmMyX3NpemUgPSBERUNPTVBfSU5UX1NUQVRF X0ZNVDFfTEVOOwo+ICsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldCA9IGFk ZF9pYWFfd3EobmV3X2RldmljZSwgd3EsICZuZXdfd3EpOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgaWYgKHJldCkgewo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGRlbF9pYWFfZGV2aWNlKG5ld19kZXZpY2UpOwo+IEBAIC0xMDA2LDYg KzExMTksMjQgQEAgc3RhdGljIGludCBkZWZsYXRlX2dlbmVyaWNfZGVjb21wcmVzcyhzdHJ1Y3Qg YWNvbXBfcmVxICpyZXEpCj4gwqDCoMKgwqDCoMKgwqDCoHJldHVybiByZXQ7Cj4gwqB9Cj4gwqAK PiArc3RhdGljIGludCBkZWZsYXRlX2Nhbm5lZF9kZWNvbXByZXNzKHN0cnVjdCBhY29tcF9yZXEg KnJlcSkKPiArewo+ICvCoMKgwqDCoMKgwqDCoGludCByZXQ7Cj4gK8KgwqDCoMKgwqDCoMKgc3Ry dWN0IGFjb21wX3JlcSAqc3dfcmVxOwo+ICsKClJldmVyc2UgQ2hyaXN0bWFzIHRyZWUgaGVyZSB0 b28gKEkgd29uJ3QgZ28gdGhyb3VnaCB0aGVtIGFsbCwgcGxlYXNlCmp1c3QgY2hlY2sgdGhpcyBp biBhbnkgbmV3L2NoYW5nZWQgZnVuY3Rpb25zIHRocm91Z2hvdXQpLgoKClRoYW5rcywKClRvbQo=