From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2CD6FC48260 for ; Fri, 16 Feb 2024 15:00:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=P0uksauIvP3oH8E/HDPECx7E8BNlw6o7FdsF5XDThsc=; b=yMm8SHtQAxhl39 eDvNCSvbObTCfk+nm/NkRYqfBCmVc5Ej1ESvzVu/1tHFbo8M7AvFH88lW4T2Fc4l8FOm2/nErfVJW 7vhol3a3e2/AMK0aIW6qnhG1oyZa+LYECE+ULiNb+XeP6/BMhYFtzHDTA4i5eoa1SnkLquJoby0qD L6KKLrVVw/DWjBtzRlHkaVhbDcqJ+Te8v183MJ8x0imP+eW0UjyYVKESXRjXJKIdfzOKIezNDlbwR 2kFig4kvRslaE8Xm1ZhrM/pvqmyyy1Q0XIQ0eyzW4jlOV8g75WVlC4m6P0hBU3lui0tqb6nFay9KJ 7pYfSloaDxQ8g+RhEksA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1razh8-00000002gPM-19YO; Fri, 16 Feb 2024 15:00:06 +0000 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1razh5-00000002gOP-18LH for linux-arm-kernel@lists.infradead.org; Fri, 16 Feb 2024 15:00:04 +0000 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-1d72f71f222so6658955ad.1 for ; Fri, 16 Feb 2024 07:00:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1708095600; x=1708700400; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=VyriGIXGikes2cj/vPRFHqKk0WgMm9h1VOVbxdZuKWU=; b=Xeq5QTM9d8Btgrvnl5ViZybeVkTAl3nOgxDrmTsZsec6R58p4QIVosM+VSej7HpwEA JmiRVCQ6PwxF0PUGR4kXO0iTtK/FW9ZEJvgG0NVRRiD4GOJPQp7uTTYXCYuNjN0E2zIc AnT2xGIAH5Hc3r5s69ZlAbt34rKAFrSSbcB3zFuOWGd2aaA3BFF5WUqcal8lJfiAN4pU CjHuMOVqyQPNdKxbNNlVJxfoQfm+em9dSd0/cbSL2KwPF750Ry/RcEEBVZQM+FHkTcY0 m4hZSZGaDtUN2EGE0rh57fE2Clm0eJZum4ZYjKesMxsdM6ikv7ddv5BMg6Vp5LgCweOF v+1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708095600; x=1708700400; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VyriGIXGikes2cj/vPRFHqKk0WgMm9h1VOVbxdZuKWU=; b=WaRWVb1xJ9DVaZh3WwVByB3s90ATgK11zC5yrzp0UwIclZrOu2kjxuW+HLpb7wytXG wC79Py/7ZKU1nQ8H/wzebmMOJBX793ypRKnauotac6eS0vm2YwxcNocyDdt43JgN2CNc l1IQAtq97L/94ztFlrHAHE8BS5DQnj5xl5YPsoGQlDzEdIXx/wQgvtoL8P2SImtI7i0G M95i0KfKs26cX8C6OOYaCuRQRuXs0d9oLdX5s3kfsv8d1XylF6M56bEMqT4c9qR9afap LcOGmYseavDPSjmJBnpxG1LI9VFVLfVB9RAcjGusq4KNByww3ooc69tPafZHrCHBfJAE LuJg== X-Forwarded-Encrypted: i=1; AJvYcCVCRitE//vdv7VpqU8jevPy5XpUS3O/rXA/PkVmb8axMk28wXglcRGA/W8O52kCmUCQhIAo26WQFfYy+LZSoR5zd6029QBodxEHF6nvoGau5QsGxFI= X-Gm-Message-State: AOJu0YyqBpPL2P0jHToqU53sevBuJOwErbX804VBST1l2yyFnJESWFYA aUobrraF2qHgZFlufJn44DU9HHR/oSxujHddayCGj0pfsPuxakL1+Ptx3IxFfQ== X-Google-Smtp-Source: AGHT+IFXJp8wGRl2uuCQwk1KM4W7ch6yMca/kYem0AP04Yd2D5i2im8NdPtdtPcZt/X5D+qhy4/IuQ== X-Received: by 2002:a17:90a:77c3:b0:298:b9e3:691f with SMTP id e3-20020a17090a77c300b00298b9e3691fmr5237308pjs.23.1708095600213; Fri, 16 Feb 2024 07:00:00 -0800 (PST) Received: from thinkpad ([120.138.12.48]) by smtp.gmail.com with ESMTPSA id qn11-20020a17090b3d4b00b00298f88c3e48sm92830pjb.11.2024.02.16.06.59.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Feb 2024 06:59:59 -0800 (PST) Date: Fri, 16 Feb 2024 20:29:50 +0530 From: Manivannan Sadhasivam To: Niklas Cassel Cc: Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Rob Herring , Bjorn Helgaas , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Minghuan Lian , Mingkai Hu , Roy Zang , Srikanth Thokala , Marek Vasut , Yoshihiro Shimoda , Thierry Reding , Jonathan Hunter , Kunihiko Hayashi , Masami Hiramatsu , Jon Mason , Dave Jiang , Allen Hubbe , Kishon Vijay Abraham I , Damien Le Moal , Frank Li , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, linux-renesas-soc@vger.kernel.org, linux-tegra@vger.kernel.org, ntb@lists.linux.dev Subject: Re: [PATCH v2 1/2] PCI: endpoint: Clean up hardware description for BARs Message-ID: <20240216145950.GB39963@thinkpad> References: <20240216134524.1142149-1-cassel@kernel.org> <20240216134524.1142149-2-cassel@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240216134524.1142149-2-cassel@kernel.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240216_070003_367342_B01C0361 X-CRM114-Status: GOOD ( 25.47 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBGZWIgMTYsIDIwMjQgYXQgMDI6NDU6MTRQTSArMDEwMCwgTmlrbGFzIENhc3NlbCB3 cm90ZToKPiBUaGUgaGFyZHdhcmUgZGVzY3JpcHRpb24gZm9yIEJBUnMgaXMgc2NhdHRlcmVkIGlu IG1hbnkgZGlmZmVyZW50IHZhcmlhYmxlcwo+IGluIHBjaV9lcGNfZmVhdHVyZXMuIFNvbWUgb2Yg dGhlc2UgdGhpbmdzIGFyZSBtdXR1YWxseSBleGNsdXNpdmUsIHNvIGl0Cj4gY2FuIGNyZWF0ZSBj b25mdXNpb24gb3ZlciB3aGljaCB2YXJpYWJsZSB0aGF0IGhhcyBwcmVjZWRlbmNlIG92ZXIgYW5v dGhlci4KPiAKPiBJbXByb3ZlIHRoZSBzaXR1YXRpb24gYnkgY3JlYXRpbmcgYSBzdHJ1Y3QgcGNp X2VwY19iYXJfZGVzYywgYW5kIGEgbmV3Cj4gZW51bSBwY2lfZXBjX2Jhcl90eXBlLCBhbmQgY29u dmVydCB0aGUgZW5kcG9pbnQgY29udHJvbGxlciBkcml2ZXJzIHRvIHVzZQo+IHRoaXMgbW9yZSB3 ZWxsIGRlZmluZWQgZm9ybWF0Lgo+IAo+IEFkZGl0aW9uYWxseSwgc29tZSBlbmRwb2ludCBjb250 cm9sbGVyIGRyaXZlcnMgbWFyayB0aGUgQkFSIHN1Y2NlZWRpbmcgYQo+ICI2NC1iaXQgb25seSBC QVIiIGFzIHJlc2VydmVkLCB3aGlsZSBzb21lIGRvIG5vdC4gQnkgZGVmaW5pdGlvbiwgYSA2NC1i aXQKPiBCQVIgdXNlcyB0aGUgc3VjY2VlZGluZyBCQVIgZm9yIHRoZSB1cHBlciAzMi1iaXRzLCBz byBhbiBFUEYgZHJpdmVyIGNhbm5vdAo+IHVzZSBhIEJBUiBzdWNjZWVkaW5nIGEgNjQtYml0IEJB Ui4gRW5zdXJlIHRoYXQgYWxsIGVuZHBvaW50IGNvbnRyb2xsZXIKPiBkcml2ZXJzIGFyZSB1bmlm b3JtLCBhbmQgYWN0dWFsbHkgZGVzY3JpYmUgYSByZXNlcnZlZCBCQVIgYXMgcmVzZXJ2ZWQuCj4g Cj4gU2lnbmVkLW9mZi1ieTogTmlrbGFzIENhc3NlbCA8Y2Fzc2VsQGtlcm5lbC5vcmc+CgpSZXZp ZXdlZC1ieTogTWFuaXZhbm5hbiBTYWRoYXNpdmFtIDxtYW5pdmFubmFuLnNhZGhhc2l2YW1AbGlu YXJvLm9yZz4KCi0gTWFuaQoKPiBSZXZpZXdlZC1ieTogS2lzaG9uIFZpamF5IEFicmFoYW0gSSA8 a2lzaG9uQGtlcm5lbC5vcmc+Cj4gLS0tCj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3Bj aS1pbXg2LmMgICAgICAgICB8ICAzICstCj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3Bj aS1rZXlzdG9uZS5jICAgICB8IDEyICsrKy0tLS0KPiAgLi4uL3BjaS9jb250cm9sbGVyL2R3Yy9w Y2ktbGF5ZXJzY2FwZS1lcC5jICAgIHwgIDUgKystCj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIv ZHdjL3BjaWUta2VlbWJheS5jICAgICB8ICA4ICsrKy0tCj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvZHdjL3BjaWUtcmNhci1nZW40LmMgICB8ICA0ICsrLQo+ICBkcml2ZXJzL3BjaS9jb250cm9s bGVyL2R3Yy9wY2llLXRlZ3JhMTk0LmMgICAgfCAxMCArKysrLS0KPiAgZHJpdmVycy9wY2kvY29u dHJvbGxlci9kd2MvcGNpZS11bmlwaGllci1lcC5jIHwgMTUgKysrKysrLS0KPiAgZHJpdmVycy9w Y2kvY29udHJvbGxlci9wY2llLXJjYXItZXAuYyAgICAgICAgIHwgMTQgKysrKystLS0KPiAgZHJp dmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtbnRiLmMgIHwgIDQgKy0tCj4gIGRy aXZlcnMvcGNpL2VuZHBvaW50L2Z1bmN0aW9ucy9wY2ktZXBmLXRlc3QuYyB8ICA4ICsrLS0tCj4g IGRyaXZlcnMvcGNpL2VuZHBvaW50L2Z1bmN0aW9ucy9wY2ktZXBmLXZudGIuYyB8ICAyICstCj4g IGRyaXZlcnMvcGNpL2VuZHBvaW50L3BjaS1lcGMtY29yZS5jICAgICAgICAgICB8IDMyICsrKysr KysrKy0tLS0tLS0tCj4gIGRyaXZlcnMvcGNpL2VuZHBvaW50L3BjaS1lcGYtY29yZS5jICAgICAg ICAgICB8IDE1ICsrKystLS0tCj4gIGluY2x1ZGUvbGludXgvcGNpLWVwYy5oICAgICAgICAgICAg ICAgICAgICAgICB8IDM0ICsrKysrKysrKysrKysrKy0tLS0KPiAgMTQgZmlsZXMgY2hhbmdlZCwg MTA4IGluc2VydGlvbnMoKyksIDU4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxl ci9kd2MvcGNpLWlteDYuYwo+IGluZGV4IGRjMmMwMzZhYjI4Yy4uNDdhOWE5NjQ4NGVkIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMKPiArKysgYi9k cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jCj4gQEAgLTEwODEsNyArMTA4MSw4 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2VwY19mZWF0dXJlcyBpbXg4bV9wY2llX2VwY19m ZWF0dXJlcyA9IHsKPiAgCS5saW5rdXBfbm90aWZpZXIgPSBmYWxzZSwKPiAgCS5tc2lfY2FwYWJs ZSA9IHRydWUsCj4gIAkubXNpeF9jYXBhYmxlID0gZmFsc2UsCj4gLQkucmVzZXJ2ZWRfYmFyID0g MSA8PCBCQVJfMSB8IDEgPDwgQkFSXzMsCj4gKwkuYmFyW0JBUl8xXSA9IHsgLnR5cGUgPSBCQVJf UkVTRVJWRUQsIH0sCj4gKwkuYmFyW0JBUl8zXSA9IHsgLnR5cGUgPSBCQVJfUkVTRVJWRUQsIH0s Cj4gIAkuYWxpZ24gPSBTWl82NEssCj4gIH07Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL2R3Yy9wY2kta2V5c3RvbmUuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv ZHdjL3BjaS1rZXlzdG9uZS5jCj4gaW5kZXggYzBjNjI1MzNhM2YxLi5iMmI5M2I0ZmE4MmQgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWtleXN0b25lLmMKPiAr KysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2kta2V5c3RvbmUuYwo+IEBAIC05MjQs MTIgKzkyNCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9lcGNfZmVhdHVyZXMga3NfcGNp ZV9hbTY1NF9lcGNfZmVhdHVyZXMgPSB7Cj4gIAkubGlua3VwX25vdGlmaWVyID0gZmFsc2UsCj4g IAkubXNpX2NhcGFibGUgPSB0cnVlLAo+ICAJLm1zaXhfY2FwYWJsZSA9IHRydWUsCj4gLQkucmVz ZXJ2ZWRfYmFyID0gMSA8PCBCQVJfMCB8IDEgPDwgQkFSXzEsCj4gLQkuYmFyX2ZpeGVkXzY0Yml0 ID0gMSA8PCBCQVJfMCwKPiAtCS5iYXJfZml4ZWRfc2l6ZVsyXSA9IFNaXzFNLAo+IC0JLmJhcl9m aXhlZF9zaXplWzNdID0gU1pfNjRLLAo+IC0JLmJhcl9maXhlZF9zaXplWzRdID0gMjU2LAo+IC0J LmJhcl9maXhlZF9zaXplWzVdID0gU1pfMU0sCj4gKwkuYmFyW0JBUl8wXSA9IHsgLnR5cGUgPSBC QVJfUkVTRVJWRUQsIC5vbmx5XzY0Yml0ID0gdHJ1ZSwgfSwKPiArCS5iYXJbQkFSXzFdID0geyAu dHlwZSA9IEJBUl9SRVNFUlZFRCwgfSwKPiArCS5iYXJbQkFSXzJdID0geyAudHlwZSA9IEJBUl9G SVhFRCwgLmZpeGVkX3NpemUgPSBTWl8xTSwgfSwKPiArCS5iYXJbQkFSXzNdID0geyAudHlwZSA9 IEJBUl9GSVhFRCwgLmZpeGVkX3NpemUgPSBTWl82NEssIH0sCj4gKwkuYmFyW0JBUl80XSA9IHsg LnR5cGUgPSBCQVJfRklYRUQsIC5maXhlZF9zaXplID0gMjU2LCB9LAo+ICsJLmJhcltCQVJfNV0g PSB7IC50eXBlID0gQkFSX0ZJWEVELCAuZml4ZWRfc2l6ZSA9IFNaXzFNLCB9LAo+ICAJLmFsaWdu ID0gU1pfMU0sCj4gIH07Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L2R3Yy9wY2ktbGF5ZXJzY2FwZS1lcC5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp LWxheWVyc2NhcGUtZXAuYwo+IGluZGV4IDJlMzk4NDk0ZTdjMC4uMWY2ZWUxNDYwZWMyIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1sYXllcnNjYXBlLWVwLmMK PiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbGF5ZXJzY2FwZS1lcC5jCj4g QEAgLTI1MCw3ICsyNTAsMTAgQEAgc3RhdGljIGludCBfX2luaXQgbHNfcGNpZV9lcF9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJcGNpLT5kZXYgPSBkZXY7Cj4gIAlwY2kt Pm9wcyA9IHBjaWUtPmRydmRhdGEtPmR3X3BjaWVfb3BzOwo+ICAKPiAtCWxzX2VwYy0+YmFyX2Zp eGVkXzY0Yml0ID0gKDEgPDwgQkFSXzIpIHwgKDEgPDwgQkFSXzQpOwo+ICsJbHNfZXBjLT5iYXJb QkFSXzJdLm9ubHlfNjRiaXQgPSB0cnVlOwo+ICsJbHNfZXBjLT5iYXJbQkFSXzNdLnR5cGUgPSBC QVJfUkVTRVJWRUQ7Cj4gKwlsc19lcGMtPmJhcltCQVJfNF0ub25seV82NGJpdCA9IHRydWU7Cj4g Kwlsc19lcGMtPmJhcltCQVJfNV0udHlwZSA9IEJBUl9SRVNFUlZFRDsKPiAgCWxzX2VwYy0+bGlu a3VwX25vdGlmaWVyID0gdHJ1ZTsKPiAgCj4gIAlwY2llLT5wY2kgPSBwY2k7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUta2VlbWJheS5jIGIvZHJpdmVycy9w Y2kvY29udHJvbGxlci9kd2MvcGNpZS1rZWVtYmF5LmMKPiBpbmRleCAyMDhkM2IwYmExOTYuLjVl OGU1NGY1OTdkZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ll LWtlZW1iYXkuYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUta2VlbWJh eS5jCj4gQEAgLTMxMiw4ICszMTIsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZXBjX2Zl YXR1cmVzIGtlZW1iYXlfcGNpZV9lcGNfZmVhdHVyZXMgPSB7Cj4gIAkubGlua3VwX25vdGlmaWVy CT0gZmFsc2UsCj4gIAkubXNpX2NhcGFibGUJCT0gdHJ1ZSwKPiAgCS5tc2l4X2NhcGFibGUJCT0g dHJ1ZSwKPiAtCS5yZXNlcnZlZF9iYXIJCT0gQklUKEJBUl8xKSB8IEJJVChCQVJfMykgfCBCSVQo QkFSXzUpLAo+IC0JLmJhcl9maXhlZF82NGJpdAk9IEJJVChCQVJfMCkgfCBCSVQoQkFSXzIpIHwg QklUKEJBUl80KSwKPiArCS5iYXJbQkFSXzBdCQk9IHsgLm9ubHlfNjRiaXQgPSB0cnVlLCB9LAo+ ICsJLmJhcltCQVJfMV0JCT0geyAudHlwZSA9IEJBUl9SRVNFUlZFRCwgfSwKPiArCS5iYXJbQkFS XzJdCQk9IHsgLm9ubHlfNjRiaXQgPSB0cnVlLCB9LAo+ICsJLmJhcltCQVJfM10JCT0geyAudHlw ZSA9IEJBUl9SRVNFUlZFRCwgfSwKPiArCS5iYXJbQkFSXzRdCQk9IHsgLm9ubHlfNjRiaXQgPSB0 cnVlLCB9LAo+ICsJLmJhcltCQVJfNV0JCT0geyAudHlwZSA9IEJBUl9SRVNFUlZFRCwgfSwKPiAg CS5hbGlnbgkJCT0gU1pfMTZLLAo+ICB9Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpZS1yY2FyLWdlbjQuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv ZHdjL3BjaWUtcmNhci1nZW40LmMKPiBpbmRleCBlOTE2NjYxOWIxZjkuLjBiZTc2MGVkNDIwYiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXJjYXItZ2VuNC5j Cj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1yY2FyLWdlbjQuYwo+IEBA IC0zODMsNyArMzgzLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZXBjX2ZlYXR1cmVzIHJj YXJfZ2VuNF9wY2llX2VwY19mZWF0dXJlcyA9IHsKPiAgCS5saW5rdXBfbm90aWZpZXIgPSBmYWxz ZSwKPiAgCS5tc2lfY2FwYWJsZSA9IHRydWUsCj4gIAkubXNpeF9jYXBhYmxlID0gZmFsc2UsCj4g LQkucmVzZXJ2ZWRfYmFyID0gMSA8PCBCQVJfMSB8IDEgPDwgQkFSXzMgfCAxIDw8IEJBUl81LAo+ ICsJLmJhcltCQVJfMV0gPSB7IC50eXBlID0gQkFSX1JFU0VSVkVELCB9LAo+ICsJLmJhcltCQVJf M10gPSB7IC50eXBlID0gQkFSX1JFU0VSVkVELCB9LAo+ICsJLmJhcltCQVJfNV0gPSB7IC50eXBl ID0gQkFSX1JFU0VSVkVELCB9LAo+ICAJLmFsaWduID0gU1pfMU0sCj4gIH07Cj4gIAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXRlZ3JhMTk0LmMgYi9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXRlZ3JhMTk0LmMKPiBpbmRleCA3YWZhOWU5YWFi ZTIuLjFmN2I2NjJjYjhlMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLXRlZ3JhMTk0LmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ll LXRlZ3JhMTk0LmMKPiBAQCAtMjAwNyw5ICsyMDA3LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg cGNpX2VwY19mZWF0dXJlcyB0ZWdyYV9wY2llX2VwY19mZWF0dXJlcyA9IHsKPiAgCS5jb3JlX2lu aXRfbm90aWZpZXIgPSB0cnVlLAo+ICAJLm1zaV9jYXBhYmxlID0gZmFsc2UsCj4gIAkubXNpeF9j YXBhYmxlID0gZmFsc2UsCj4gLQkucmVzZXJ2ZWRfYmFyID0gMSA8PCBCQVJfMiB8IDEgPDwgQkFS XzMgfCAxIDw8IEJBUl80IHwgMSA8PCBCQVJfNSwKPiAtCS5iYXJfZml4ZWRfNjRiaXQgPSAxIDw8 IEJBUl8wLAo+IC0JLmJhcl9maXhlZF9zaXplWzBdID0gU1pfMU0sCj4gKwkuYmFyW0JBUl8wXSA9 IHsgLnR5cGUgPSBCQVJfRklYRUQsIC5maXhlZF9zaXplID0gU1pfMU0sCj4gKwkJCS5vbmx5XzY0 Yml0ID0gdHJ1ZSwgfSwKPiArCS5iYXJbQkFSXzFdID0geyAudHlwZSA9IEJBUl9SRVNFUlZFRCwg fSwKPiArCS5iYXJbQkFSXzJdID0geyAudHlwZSA9IEJBUl9SRVNFUlZFRCwgfSwKPiArCS5iYXJb QkFSXzNdID0geyAudHlwZSA9IEJBUl9SRVNFUlZFRCwgfSwKPiArCS5iYXJbQkFSXzRdID0geyAu dHlwZSA9IEJBUl9SRVNFUlZFRCwgfSwKPiArCS5iYXJbQkFSXzVdID0geyAudHlwZSA9IEJBUl9S RVNFUlZFRCwgfSwKPiAgfTsKPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2VwY19mZWF0 dXJlcyoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS11bmlw aGllci1lcC5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS11bmlwaGllci1lcC5j Cj4gaW5kZXggM2ZjZWQwZDNlODUxLi4yNjVmNjVmYzY3M2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS11bmlwaGllci1lcC5jCj4gKysrIGIvZHJpdmVycy9w Y2kvY29udHJvbGxlci9kd2MvcGNpZS11bmlwaGllci1lcC5jCj4gQEAgLTQxMSw4ICs0MTEsMTIg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1bmlwaGllcl9wY2llX2VwX3NvY19kYXRhIHVuaXBoaWVy X3BybzVfZGF0YSA9IHsKPiAgCQkubXNpX2NhcGFibGUgPSB0cnVlLAo+ICAJCS5tc2l4X2NhcGFi bGUgPSBmYWxzZSwKPiAgCQkuYWxpZ24gPSAxIDw8IDE2LAo+IC0JCS5iYXJfZml4ZWRfNjRiaXQg PSBCSVQoQkFSXzApIHwgQklUKEJBUl8yKSB8IEJJVChCQVJfNCksCj4gLQkJLnJlc2VydmVkX2Jh ciA9ICBCSVQoQkFSXzQpLAo+ICsJCS5iYXJbQkFSXzBdID0geyAub25seV82NGJpdCA9IHRydWUs IH0sCj4gKwkJLmJhcltCQVJfMV0gPSB7IC50eXBlID0gQkFSX1JFU0VSVkVELCB9LAo+ICsJCS5i YXJbQkFSXzJdID0geyAub25seV82NGJpdCA9IHRydWUsIH0sCj4gKwkJLmJhcltCQVJfM10gPSB7 IC50eXBlID0gQkFSX1JFU0VSVkVELCB9LAo+ICsJCS5iYXJbQkFSXzRdID0geyAudHlwZSA9IEJB Ul9SRVNFUlZFRCwgLm9ubHlfNjRiaXQgPSB0cnVlLCB9LAo+ICsJCS5iYXJbQkFSXzVdID0geyAu dHlwZSA9IEJBUl9SRVNFUlZFRCwgfSwKPiAgCX0sCj4gIH07Cj4gIAo+IEBAIC00MjUsNyArNDI5 LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdW5pcGhpZXJfcGNpZV9lcF9zb2NfZGF0YSB1bmlw aGllcl9ueDFfZGF0YSA9IHsKPiAgCQkubXNpX2NhcGFibGUgPSB0cnVlLAo+ICAJCS5tc2l4X2Nh cGFibGUgPSBmYWxzZSwKPiAgCQkuYWxpZ24gPSAxIDw8IDEyLAo+IC0JCS5iYXJfZml4ZWRfNjRi aXQgPSBCSVQoQkFSXzApIHwgQklUKEJBUl8yKSB8IEJJVChCQVJfNCksCj4gKwkJLmJhcltCQVJf MF0gPSB7IC5vbmx5XzY0Yml0ID0gdHJ1ZSwgfSwKPiArCQkuYmFyW0JBUl8xXSA9IHsgLnR5cGUg PSBCQVJfUkVTRVJWRUQsIH0sCj4gKwkJLmJhcltCQVJfMl0gPSB7IC5vbmx5XzY0Yml0ID0gdHJ1 ZSwgfSwKPiArCQkuYmFyW0JBUl8zXSA9IHsgLnR5cGUgPSBCQVJfUkVTRVJWRUQsIH0sCj4gKwkJ LmJhcltCQVJfNF0gPSB7IC5vbmx5XzY0Yml0ID0gdHJ1ZSwgfSwKPiArCQkuYmFyW0JBUl81XSA9 IHsgLnR5cGUgPSBCQVJfUkVTRVJWRUQsIH0sCj4gIAl9LAo+ICB9Owo+ICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXJjYXItZXAuYyBiL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvcGNpZS1yY2FyLWVwLmMKPiBpbmRleCBlNjkwOTI3MWRlZjcuLjA1OTY3YzZjMGI0 MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcmNhci1lcC5jCj4g KysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXJjYXItZXAuYwo+IEBAIC00NDAsMTEg KzQ0MCwxNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9lcGNfZmVhdHVyZXMgcmNhcl9wY2ll X2VwY19mZWF0dXJlcyA9IHsKPiAgCS5tc2lfY2FwYWJsZSA9IHRydWUsCj4gIAkubXNpeF9jYXBh YmxlID0gZmFsc2UsCj4gIAkvKiB1c2UgNjQtYml0IEJBUnMgc28gbWFyayBCQVJbMSwzLDVdIGFz IHJlc2VydmVkICovCj4gLQkucmVzZXJ2ZWRfYmFyID0gMSA8PCBCQVJfMSB8IDEgPDwgQkFSXzMg fCAxIDw8IEJBUl81LAo+IC0JLmJhcl9maXhlZF82NGJpdCA9IDEgPDwgQkFSXzAgfCAxIDw8IEJB Ul8yIHwgMSA8PCBCQVJfNCwKPiAtCS5iYXJfZml4ZWRfc2l6ZVswXSA9IDEyOCwKPiAtCS5iYXJf Zml4ZWRfc2l6ZVsyXSA9IDI1NiwKPiAtCS5iYXJfZml4ZWRfc2l6ZVs0XSA9IDI1NiwKPiArCS5i YXJbQkFSXzBdID0geyAudHlwZSA9IEJBUl9GSVhFRCwgLmZpeGVkX3NpemUgPSAxMjgsCj4gKwkJ CS5vbmx5XzY0Yml0ID0gdHJ1ZSwgfSwKPiArCS5iYXJbQkFSXzFdID0geyAudHlwZSA9IEJBUl9S RVNFUlZFRCwgfSwKPiArCS5iYXJbQkFSXzJdID0geyAudHlwZSA9IEJBUl9GSVhFRCwgLmZpeGVk X3NpemUgPSAyNTYsCj4gKwkJCS5vbmx5XzY0Yml0ID0gdHJ1ZSwgfSwKPiArCS5iYXJbQkFSXzNd ID0geyAudHlwZSA9IEJBUl9SRVNFUlZFRCwgfSwKPiArCS5iYXJbQkFSXzRdID0geyAudHlwZSA9 IEJBUl9GSVhFRCwgLmZpeGVkX3NpemUgPSAyNTYsCj4gKwkJCS5vbmx5XzY0Yml0ID0gdHJ1ZSwg fSwKPiArCS5iYXJbQkFSXzVdID0geyAudHlwZSA9IEJBUl9SRVNFUlZFRCwgfSwKPiAgfTsKPiAg Cj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2VwY19mZWF0dXJlcyoKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtbnRiLmMgYi9kcml2ZXJzL3Bj aS9lbmRwb2ludC9mdW5jdGlvbnMvcGNpLWVwZi1udGIuYwo+IGluZGV4IDQzY2QzMDljZTIyZi4u ZTAxYTk4ZTc0ZDIxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2VuZHBvaW50L2Z1bmN0aW9u cy9wY2ktZXBmLW50Yi5jCj4gKysrIGIvZHJpdmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3Bj aS1lcGYtbnRiLmMKPiBAQCAtMTAxMiwxMyArMTAxMiwxMyBAQCBzdGF0aWMgaW50IGVwZl9udGJf Y29uZmlnX3NwYWRfYmFyX2FsbG9jKHN0cnVjdCBlcGZfbnRiICpudGIsCj4gIAo+ICAJZXBjX2Zl YXR1cmVzID0gbnRiX2VwYy0+ZXBjX2ZlYXR1cmVzOwo+ICAJYmFybm8gPSBudGJfZXBjLT5lcGZf bnRiX2JhcltCQVJfQ09ORklHXTsKPiAtCXNpemUgPSBlcGNfZmVhdHVyZXMtPmJhcl9maXhlZF9z aXplW2Jhcm5vXTsKPiArCXNpemUgPSBlcGNfZmVhdHVyZXMtPmJhcltiYXJub10uZml4ZWRfc2l6 ZTsKPiAgCWFsaWduID0gZXBjX2ZlYXR1cmVzLT5hbGlnbjsKPiAgCj4gIAlwZWVyX250Yl9lcGMg PSBudGItPmVwY1shdHlwZV07Cj4gIAlwZWVyX2VwY19mZWF0dXJlcyA9IHBlZXJfbnRiX2VwYy0+ ZXBjX2ZlYXR1cmVzOwo+ICAJcGVlcl9iYXJubyA9IG50Yl9lcGMtPmVwZl9udGJfYmFyW0JBUl9Q RUVSX1NQQURdOwo+IC0JcGVlcl9zaXplID0gcGVlcl9lcGNfZmVhdHVyZXMtPmJhcl9maXhlZF9z aXplW3BlZXJfYmFybm9dOwo+ICsJcGVlcl9zaXplID0gcGVlcl9lcGNfZmVhdHVyZXMtPmJhcltw ZWVyX2Jhcm5vXS5maXhlZF9zaXplOwo+ICAKPiAgCS8qIENoZWNrIGlmIGVwY19mZWF0dXJlcyBp cyBwb3B1bGF0ZWQgaW5jb3JyZWN0bHkgKi8KPiAgCWlmICgoIUlTX0FMSUdORUQoc2l6ZSwgYWxp Z24pKSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1l cGYtdGVzdC5jIGIvZHJpdmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtdGVzdC5j Cj4gaW5kZXggOTgxODk0ZTQwNjgxLi5jZDRmZmIzOWRjZGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtdGVzdC5jCj4gKysrIGIvZHJpdmVycy9w Y2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtdGVzdC5jCj4gQEAgLTcyOSw3ICs3MjksNyBA QCBzdGF0aWMgaW50IHBjaV9lcGZfdGVzdF9zZXRfYmFyKHN0cnVjdCBwY2lfZXBmICplcGYpCj4g IAkJICovCj4gIAkJYWRkID0gKGVwZl9iYXItPmZsYWdzICYgUENJX0JBU0VfQUREUkVTU19NRU1f VFlQRV82NCkgPyAyIDogMTsKPiAgCj4gLQkJaWYgKCEhKGVwY19mZWF0dXJlcy0+cmVzZXJ2ZWRf YmFyICYgKDEgPDwgYmFyKSkpCj4gKwkJaWYgKGVwY19mZWF0dXJlcy0+YmFyW2Jhcl0udHlwZSA9 PSBCQVJfUkVTRVJWRUQpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQlyZXQgPSBwY2lfZXBjX3Nl dF9iYXIoZXBjLCBlcGYtPmZ1bmNfbm8sIGVwZi0+dmZ1bmNfbm8sCj4gQEAgLTg1Niw3ICs4NTYs NyBAQCBzdGF0aWMgaW50IHBjaV9lcGZfdGVzdF9hbGxvY19zcGFjZShzdHJ1Y3QgcGNpX2VwZiAq ZXBmKQo+ICAJCWlmIChiYXIgPT0gdGVzdF9yZWdfYmFyKQo+ICAJCQljb250aW51ZTsKPiAgCj4g LQkJaWYgKCEhKGVwY19mZWF0dXJlcy0+cmVzZXJ2ZWRfYmFyICYgKDEgPDwgYmFyKSkpCj4gKwkJ aWYgKGVwY19mZWF0dXJlcy0+YmFyW2Jhcl0udHlwZSA9PSBCQVJfUkVTRVJWRUQpCj4gIAkJCWNv bnRpbnVlOwo+ICAKPiAgCQliYXNlID0gcGNpX2VwZl9hbGxvY19zcGFjZShlcGYsIGJhcl9zaXpl W2Jhcl0sIGJhciwKPiBAQCAtODc0LDEzICs4NzQsMTEgQEAgc3RhdGljIHZvaWQgcGNpX2VwZl9j b25maWd1cmVfYmFyKHN0cnVjdCBwY2lfZXBmICplcGYsCj4gIAkJCQkgIGNvbnN0IHN0cnVjdCBw Y2lfZXBjX2ZlYXR1cmVzICplcGNfZmVhdHVyZXMpCj4gIHsKPiAgCXN0cnVjdCBwY2lfZXBmX2Jh ciAqZXBmX2JhcjsKPiAtCWJvb2wgYmFyX2ZpeGVkXzY0Yml0Owo+ICAJaW50IGk7Cj4gIAo+ICAJ Zm9yIChpID0gMDsgaSA8IFBDSV9TVERfTlVNX0JBUlM7IGkrKykgewo+ICAJCWVwZl9iYXIgPSAm ZXBmLT5iYXJbaV07Cj4gLQkJYmFyX2ZpeGVkXzY0Yml0ID0gISEoZXBjX2ZlYXR1cmVzLT5iYXJf Zml4ZWRfNjRiaXQgJiAoMSA8PCBpKSk7Cj4gLQkJaWYgKGJhcl9maXhlZF82NGJpdCkKPiArCQlp ZiAoZXBjX2ZlYXR1cmVzLT5iYXJbaV0ub25seV82NGJpdCkKPiAgCQkJZXBmX2Jhci0+ZmxhZ3Mg fD0gUENJX0JBU0VfQUREUkVTU19NRU1fVFlQRV82NDsKPiAgCX0KPiAgfQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL3BjaS9lbmRwb2ludC9mdW5jdGlvbnMvcGNpLWVwZi12bnRiLmMgYi9kcml2ZXJz L3BjaS9lbmRwb2ludC9mdW5jdGlvbnMvcGNpLWVwZi12bnRiLmMKPiBpbmRleCAwNjc1OTI5ZmM1 MjkuLjhlNzc5ZWVjZDYyZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BjaS9lbmRwb2ludC9mdW5j dGlvbnMvcGNpLWVwZi12bnRiLmMKPiArKysgYi9kcml2ZXJzL3BjaS9lbmRwb2ludC9mdW5jdGlv bnMvcGNpLWVwZi12bnRiLmMKPiBAQCAtNDIyLDcgKzQyMiw3IEBAIHN0YXRpYyBpbnQgZXBmX250 Yl9jb25maWdfc3BhZF9iYXJfYWxsb2Moc3RydWN0IGVwZl9udGIgKm50YikKPiAgCQkJCQkJCQll cGYtPmZ1bmNfbm8sCj4gIAkJCQkJCQkJZXBmLT52ZnVuY19ubyk7Cj4gIAliYXJubyA9IG50Yi0+ ZXBmX250Yl9iYXJbQkFSX0NPTkZJR107Cj4gLQlzaXplID0gZXBjX2ZlYXR1cmVzLT5iYXJfZml4 ZWRfc2l6ZVtiYXJub107Cj4gKwlzaXplID0gZXBjX2ZlYXR1cmVzLT5iYXJbYmFybm9dLmZpeGVk X3NpemU7Cj4gIAlhbGlnbiA9IGVwY19mZWF0dXJlcy0+YWxpZ247Cj4gIAo+ICAJaWYgKCghSVNf QUxJR05FRChzaXplLCBhbGlnbikpKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9lbmRwb2lu dC9wY2ktZXBjLWNvcmUuYyBiL2RyaXZlcnMvcGNpL2VuZHBvaW50L3BjaS1lcGMtY29yZS5jCj4g aW5kZXggZGNkNGU2NjQzMGMxLi43ZmU4ZjQzMzY3NjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9w Y2kvZW5kcG9pbnQvcGNpLWVwYy1jb3JlLmMKPiArKysgYi9kcml2ZXJzL3BjaS9lbmRwb2ludC9w Y2ktZXBjLWNvcmUuYwo+IEBAIC04Nyw3ICs4Nyw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHBjaV9l cGNfZ2V0KTsKPiAgICogQGVwY19mZWF0dXJlczogcGNpX2VwY19mZWF0dXJlcyBzdHJ1Y3R1cmUg dGhhdCBob2xkcyB0aGUgcmVzZXJ2ZWQgYmFyIGJpdG1hcAo+ICAgKgo+ICAgKiBJbnZva2UgdG8g Z2V0IHRoZSBmaXJzdCB1bnJlc2VydmVkIEJBUiB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZSBlbmRw b2ludAo+IC0gKiBmdW5jdGlvbi4gRm9yIGFueSBpbmNvcnJlY3QgdmFsdWUgaW4gcmVzZXJ2ZWRf YmFyIHJldHVybiAnMCcuCj4gKyAqIGZ1bmN0aW9uLgo+ICAgKi8KPiAgZW51bSBwY2lfYmFybm8K PiAgcGNpX2VwY19nZXRfZmlyc3RfZnJlZV9iYXIoY29uc3Qgc3RydWN0IHBjaV9lcGNfZmVhdHVy ZXMgKmVwY19mZWF0dXJlcykKPiBAQCAtMTAyLDMyICsxMDIsMzQgQEAgRVhQT1JUX1NZTUJPTF9H UEwocGNpX2VwY19nZXRfZmlyc3RfZnJlZV9iYXIpOwo+ICAgKiBAYmFyOiB0aGUgc3RhcnRpbmcg QkFSIG51bWJlciBmcm9tIHdoZXJlIHVucmVzZXJ2ZWQgQkFSIHNob3VsZCBiZSBzZWFyY2hlZAo+ ICAgKgo+ICAgKiBJbnZva2UgdG8gZ2V0IHRoZSBuZXh0IHVucmVzZXJ2ZWQgQkFSIHN0YXJ0aW5n IGZyb20gQGJhciB0aGF0IGNhbiBiZSB1c2VkCj4gLSAqIGZvciBlbmRwb2ludCBmdW5jdGlvbi4g Rm9yIGFueSBpbmNvcnJlY3QgdmFsdWUgaW4gcmVzZXJ2ZWRfYmFyIHJldHVybiAnMCcuCj4gKyAq IGZvciBlbmRwb2ludCBmdW5jdGlvbi4KPiAgICovCj4gIGVudW0gcGNpX2Jhcm5vIHBjaV9lcGNf Z2V0X25leHRfZnJlZV9iYXIoY29uc3Qgc3RydWN0IHBjaV9lcGNfZmVhdHVyZXMKPiAgCQkJCQkg KmVwY19mZWF0dXJlcywgZW51bSBwY2lfYmFybm8gYmFyKQo+ICB7Cj4gLQl1bnNpZ25lZCBsb25n IGZyZWVfYmFyOwo+ICsJaW50IGk7Cj4gIAo+ICAJaWYgKCFlcGNfZmVhdHVyZXMpCj4gIAkJcmV0 dXJuIEJBUl8wOwo+ICAKPiAgCS8qIElmICdiYXIgLSAxJyBpcyBhIDY0LWJpdCBCQVIsIG1vdmUg dG8gdGhlIG5leHQgQkFSICovCj4gLQlpZiAoKGVwY19mZWF0dXJlcy0+YmFyX2ZpeGVkXzY0Yml0 IDw8IDEpICYgMSA8PCBiYXIpCj4gKwlpZiAoYmFyID4gMCAmJiBlcGNfZmVhdHVyZXMtPmJhclti YXIgLSAxXS5vbmx5XzY0Yml0KQo+ICAJCWJhcisrOwo+ICAKPiAtCS8qIEZpbmQgaWYgdGhlIHJl c2VydmVkIEJBUiBpcyBhbHNvIGEgNjQtYml0IEJBUiAqLwo+IC0JZnJlZV9iYXIgPSBlcGNfZmVh dHVyZXMtPnJlc2VydmVkX2JhciAmIGVwY19mZWF0dXJlcy0+YmFyX2ZpeGVkXzY0Yml0Owo+IC0K PiAtCS8qIFNldCB0aGUgYWRqYWNlbnQgYml0IGlmIHRoZSByZXNlcnZlZCBCQVIgaXMgYWxzbyBh IDY0LWJpdCBCQVIgKi8KPiAtCWZyZWVfYmFyIDw8PSAxOwo+IC0JZnJlZV9iYXIgfD0gZXBjX2Zl YXR1cmVzLT5yZXNlcnZlZF9iYXI7Cj4gLQo+IC0JZnJlZV9iYXIgPSBmaW5kX25leHRfemVyb19i aXQoJmZyZWVfYmFyLCA2LCBiYXIpOwo+IC0JaWYgKGZyZWVfYmFyID4gNSkKPiAtCQlyZXR1cm4g Tk9fQkFSOwo+ICsJZm9yIChpID0gYmFyOyBpIDwgUENJX1NURF9OVU1fQkFSUzsgaSsrKSB7Cj4g KwkJLyogSWYgdGhlIEJBUiBpcyBub3QgcmVzZXJ2ZWQsIHJldHVybiBpdC4gKi8KPiArCQlpZiAo ZXBjX2ZlYXR1cmVzLT5iYXJbaV0udHlwZSAhPSBCQVJfUkVTRVJWRUQpCj4gKwkJCXJldHVybiBp Owo+ICsKPiArCQkvKgo+ICsJCSAqIElmIHRoZSBCQVIgaXMgcmVzZXJ2ZWQsIGFuZCBtYXJrZWQg YXMgNjQtYml0IG9ubHksIHRoZW4gdGhlCj4gKwkJICogc3VjY2VlZGluZyBCQVIgaXMgYWxzbyBy ZXNlcnZlZC4KPiArCQkgKi8KPiArCQlpZiAoZXBjX2ZlYXR1cmVzLT5iYXJbaV0ub25seV82NGJp dCkKPiArCQkJaSsrOwo+ICsJfQo+ICAKPiAtCXJldHVybiBmcmVlX2JhcjsKPiArCXJldHVybiBO T19CQVI7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwocGNpX2VwY19nZXRfbmV4dF9mcmVlX2Jh cik7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9lbmRwb2ludC9wY2ktZXBmLWNvcmUu YyBiL2RyaXZlcnMvcGNpL2VuZHBvaW50L3BjaS1lcGYtY29yZS5jCj4gaW5kZXggZjJiNGQzNDQ1 NGM0Li4wYTI4YTBiMDkxMWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvZW5kcG9pbnQvcGNp LWVwZi1jb3JlLmMKPiArKysgYi9kcml2ZXJzL3BjaS9lbmRwb2ludC9wY2ktZXBmLWNvcmUuYwo+ IEBAIC0yNjAsNyArMjYwLDcgQEAgdm9pZCAqcGNpX2VwZl9hbGxvY19zcGFjZShzdHJ1Y3QgcGNp X2VwZiAqZXBmLCBzaXplX3Qgc2l6ZSwgZW51bSBwY2lfYmFybm8gYmFyLAo+ICAJCQkgIGNvbnN0 IHN0cnVjdCBwY2lfZXBjX2ZlYXR1cmVzICplcGNfZmVhdHVyZXMsCj4gIAkJCSAgZW51bSBwY2lf ZXBjX2ludGVyZmFjZV90eXBlIHR5cGUpCj4gIHsKPiAtCXU2NCBiYXJfZml4ZWRfc2l6ZSA9IGVw Y19mZWF0dXJlcy0+YmFyX2ZpeGVkX3NpemVbYmFyXTsKPiArCXU2NCBiYXJfZml4ZWRfc2l6ZSA9 IGVwY19mZWF0dXJlcy0+YmFyW2Jhcl0uZml4ZWRfc2l6ZTsKPiAgCXNpemVfdCBhbGlnbiA9IGVw Y19mZWF0dXJlcy0+YWxpZ247Cj4gIAlzdHJ1Y3QgcGNpX2VwZl9iYXIgKmVwZl9iYXI7Cj4gIAlk bWFfYWRkcl90IHBoeXNfYWRkcjsKPiBAQCAtMjcxLDEzICsyNzEsMTQgQEAgdm9pZCAqcGNpX2Vw Zl9hbGxvY19zcGFjZShzdHJ1Y3QgcGNpX2VwZiAqZXBmLCBzaXplX3Qgc2l6ZSwgZW51bSBwY2lf YmFybm8gYmFyLAo+ICAJaWYgKHNpemUgPCAxMjgpCj4gIAkJc2l6ZSA9IDEyODsKPiAgCj4gLQlp ZiAoYmFyX2ZpeGVkX3NpemUgJiYgc2l6ZSA+IGJhcl9maXhlZF9zaXplKSB7Cj4gLQkJZGV2X2Vy cigmZXBmLT5kZXYsICJyZXF1ZXN0ZWQgQkFSIHNpemUgaXMgbGFyZ2VyIHRoYW4gZml4ZWQgc2l6 ZVxuIik7Cj4gLQkJcmV0dXJuIE5VTEw7Cj4gLQl9Cj4gLQo+IC0JaWYgKGJhcl9maXhlZF9zaXpl KQo+ICsJaWYgKGVwY19mZWF0dXJlcy0+YmFyW2Jhcl0udHlwZSA9PSBCQVJfRklYRUQgJiYgYmFy X2ZpeGVkX3NpemUpIHsKPiArCQlpZiAoc2l6ZSA+IGJhcl9maXhlZF9zaXplKSB7Cj4gKwkJCWRl dl9lcnIoJmVwZi0+ZGV2LAo+ICsJCQkJInJlcXVlc3RlZCBCQVIgc2l6ZSBpcyBsYXJnZXIgdGhh biBmaXhlZCBzaXplXG4iKTsKPiArCQkJcmV0dXJuIE5VTEw7Cj4gKwkJfQo+ICAJCXNpemUgPSBi YXJfZml4ZWRfc2l6ZTsKPiArCX0KPiAgCj4gIAlpZiAoYWxpZ24pCj4gIAkJc2l6ZSA9IEFMSUdO KHNpemUsIGFsaWduKTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2ktZXBjLmggYi9p bmNsdWRlL2xpbnV4L3BjaS1lcGMuaAo+IGluZGV4IDQwZWExOGY1YWEwMi4uNGNjYjRmNGYzODgz IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvcGNpLWVwYy5oCj4gKysrIGIvaW5jbHVkZS9s aW51eC9wY2ktZXBjLmgKPiBAQCAtMTQ1LDYgKzE0NSwzMiBAQCBzdHJ1Y3QgcGNpX2VwYyB7Cj4g IAl1bnNpZ25lZCBsb25nCQkJZnVuY3Rpb25fbnVtX21hcDsKPiAgfTsKPiAgCj4gKy8qKgo+ICsg KiBAQkFSX1BST0dSQU1NQUJMRTogVGhlIEJBUiBtYXNrIGNhbiBiZSBjb25maWd1cmVkIGJ5IHRo ZSBFUEMuCj4gKyAqIEBCQVJfRklYRUQ6IFRoZSBCQVIgbWFzayBpcyBmaXhlZCBieSB0aGUgaGFy ZHdhcmUuCj4gKyAqIEBCQVJfUkVTRVJWRUQ6IFRoZSBCQVIgc2hvdWxkIG5vdCBiZSB0b3VjaGVk IGJ5IGFuIEVQRiBkcml2ZXIuCj4gKyAqLwo+ICtlbnVtIHBjaV9lcGNfYmFyX3R5cGUgewo+ICsJ QkFSX1BST0dSQU1NQUJMRSA9IDAsCj4gKwlCQVJfRklYRUQsCj4gKwlCQVJfUkVTRVJWRUQsCj4g K307Cj4gKwo+ICsvKioKPiArICogc3RydWN0IHBjaV9lcGNfYmFyX2Rlc2MgLSBoYXJkd2FyZSBk ZXNjcmlwdGlvbiBmb3IgYSBCQVIKPiArICogQHR5cGU6IHRoZSB0eXBlIG9mIHRoZSBCQVIKPiAr ICogQGZpeGVkX3NpemU6IHRoZSBmaXhlZCBzaXplLCBvbmx5IGFwcGxpY2FibGUgaWYgdHlwZSBp cyBCQVJfRklYRURfTUFTSy4KPiArICogQG9ubHlfNjRiaXQ6IGlmIHRydWUsIGFuIEVQRiBkcml2 ZXIgaXMgbm90IGFsbG93ZWQgdG8gY2hvb3NlIGlmIHRoaXMgQkFSCj4gKyAqCQlzaG91bGQgYmUg Y29uZmlndXJlZCBhcyAzMi1iaXQgb3IgNjQtYml0LCB0aGUgRVBGIGRyaXZlciBtdXN0Cj4gKyAq CQljb25maWd1cmUgdGhpcyBCQVIgYXMgNjQtYml0LiBBZGRpdGlvbmFsbHksIHRoZSBCQVIgc3Vj Y2VlZGluZwo+ICsgKgkJdGhpcyBCQVIgbXVzdCBiZSBzZXQgdG8gdHlwZSBCQVJfUkVTRVJWRUQu Cj4gKyAqLwo+ICtzdHJ1Y3QgcGNpX2VwY19iYXJfZGVzYyB7Cj4gKwllbnVtIHBjaV9lcGNfYmFy X3R5cGUgdHlwZTsKPiArCXU2NCBmaXhlZF9zaXplOwo+ICsJYm9vbCBvbmx5XzY0Yml0Owo+ICt9 Owo+ICsKPiAgLyoqCj4gICAqIHN0cnVjdCBwY2lfZXBjX2ZlYXR1cmVzIC0gZmVhdHVyZXMgc3Vw cG9ydGVkIGJ5IGEgRVBDIGRldmljZSBwZXIgZnVuY3Rpb24KPiAgICogQGxpbmt1cF9ub3RpZmll cjogaW5kaWNhdGUgaWYgdGhlIEVQQyBkZXZpY2UgY2FuIG5vdGlmeSBFUEYgZHJpdmVyIG9uIGxp bmsgdXAKPiBAQCAtMTUyLDkgKzE3OCw3IEBAIHN0cnVjdCBwY2lfZXBjIHsKPiAgICoJCQlmb3Ig aW5pdGlhbGl6YXRpb24KPiAgICogQG1zaV9jYXBhYmxlOiBpbmRpY2F0ZSBpZiB0aGUgZW5kcG9p bnQgZnVuY3Rpb24gaGFzIE1TSSBjYXBhYmlsaXR5Cj4gICAqIEBtc2l4X2NhcGFibGU6IGluZGlj YXRlIGlmIHRoZSBlbmRwb2ludCBmdW5jdGlvbiBoYXMgTVNJLVggY2FwYWJpbGl0eQo+IC0gKiBA cmVzZXJ2ZWRfYmFyOiBiaXRtYXAgdG8gaW5kaWNhdGUgcmVzZXJ2ZWQgQkFSIHVuYXZhaWxhYmxl IHRvIGZ1bmN0aW9uIGRyaXZlcgo+IC0gKiBAYmFyX2ZpeGVkXzY0Yml0OiBiaXRtYXAgdG8gaW5k aWNhdGUgZml4ZWQgNjRiaXQgQkFScwo+IC0gKiBAYmFyX2ZpeGVkX3NpemU6IEFycmF5IHNwZWNp ZnlpbmcgdGhlIHNpemUgc3VwcG9ydGVkIGJ5IGVhY2ggQkFSCj4gKyAqIEBiYXI6IGFycmF5IHNw ZWNpZnlpbmcgdGhlIGhhcmR3YXJlIGRlc2NyaXB0aW9uIGZvciBlYWNoIEJBUgo+ICAgKiBAYWxp Z246IGFsaWdubWVudCBzaXplIHJlcXVpcmVkIGZvciBCQVIgYnVmZmVyIGFsbG9jYXRpb24KPiAg ICovCj4gIHN0cnVjdCBwY2lfZXBjX2ZlYXR1cmVzIHsKPiBAQCAtMTYyLDkgKzE4Niw3IEBAIHN0 cnVjdCBwY2lfZXBjX2ZlYXR1cmVzIHsKPiAgCXVuc2lnbmVkIGludAljb3JlX2luaXRfbm90aWZp ZXIgOiAxOwo+ICAJdW5zaWduZWQgaW50CW1zaV9jYXBhYmxlIDogMTsKPiAgCXVuc2lnbmVkIGlu dAltc2l4X2NhcGFibGUgOiAxOwo+IC0JdTgJcmVzZXJ2ZWRfYmFyOwo+IC0JdTgJYmFyX2ZpeGVk XzY0Yml0Owo+IC0JdTY0CWJhcl9maXhlZF9zaXplW1BDSV9TVERfTlVNX0JBUlNdOwo+ICsJc3Ry dWN0CXBjaV9lcGNfYmFyX2Rlc2MgYmFyW1BDSV9TVERfTlVNX0JBUlNdOwo+ICAJc2l6ZV90CWFs aWduOwo+ICB9Owo+ICAKPiAtLSAKPiAyLjQzLjEKPiAKCi0tIArgrq7grqPgrr/grrXgrqPgr43g rqPgrqngr40g4K6a4K6k4K6+4K6a4K6/4K614K6u4K+NCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAps aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==