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 05D73C4707B for ; Mon, 15 Jan 2024 14:35:43 +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=KeOKumfMNH7P2+eIJkzraBMqcoGP01OjATfb/VzVypg=; b=EGoi+XpHYJQdE+ 4q3Lpa/iGjAKVjMf3KZEBpnkRn7hIlQgl3fR2nYPRwWoAmkjPqooHdohOinpDpDUhCPFnO/7Vv4g4 hwYaKM7Kj83gIM5aVbGKpyklP+bIqipQs1Sh7WnAgPzD2HCkwxh1/yIkbHtMNdZ+EOry4ah3o5gEh g5PSe8e3FcsVOGYyttA1XOhX9LLe0HqXBhOutrQr2ZJuhfgdokXlhpRo2DHv6+iLWis/MSQtSpjXH e0Mew+5UnCzgSFittKUuH5uw810stLhJCl120iYk713VsT9uL43NIwJ8gsz6Ybkxz2IKVQ+ubmpFx q182mKleoMDD/BRcNy3Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rPO3T-009EcH-1V; Mon, 15 Jan 2024 14:35:11 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rPO3L-009EXe-0i for linux-arm-kernel@lists.infradead.org; Mon, 15 Jan 2024 14:35:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1705329301; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=28ByMKhxREBk/TWcgDByOFvaCc0zqNnOfSlV0PATldA=; b=CsM4p8V5o0QsFCQhRaYOoaBnbr7dyXz5aaaG5evy3dIP18Fjrt0jE0E/PmOFELDEouu8F/ EBNFT5Np0miMcWiWupQ6rxCnDVyHRJbL+fs1HTQrKNwh//7tV6vmHjVXqOHBUJKHUIkC+Z 3p39dr2B0ClsScg0iYSkvIFKl5CG/rw= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-661-g632zJ8dN6aLEermLzIEJw-1; Mon, 15 Jan 2024 09:33:12 -0500 X-MC-Unique: g632zJ8dN6aLEermLzIEJw-1 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-40e6f3c5730so14664045e9.1 for ; Mon, 15 Jan 2024 06:33:12 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705329191; x=1705933991; 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=28ByMKhxREBk/TWcgDByOFvaCc0zqNnOfSlV0PATldA=; b=tTGa4tOa4Fgy18ogCWtaEz+6R2A0iyh0KPLQax/Y1FXWOpJkV1PDCMagrS8sG5PDFs LNUSSghKGSq2eFweILDDooU4Pyj6fL77E6034CpMBjAfthBi8jkQdMy4WGQr7TFzVyxQ MWsAf1ScCinF7j3xheiQ9n56WYRz+oVLWNdFO4YhGW4Lc5Pk5/T+F7PTOK9x3Mh1YK6I BCQBNefN6v+Ss9uLZFnEoOl1fVu/t/b2yHU5VGcnTyFXqxu36QcpI5UGZIHGfbk9iSaD Zm+Yf9Cue8tks0cTnRfk3/3HbdFTG+7E47SKGUPn7ThXQIICWXiDISLg7H3CBbik8yyr /3jg== X-Gm-Message-State: AOJu0YzQqaax31lNhf+5Hdwbn4Ym/+vB9K9d9/s9ZAhN48mwodOqyptJ D27VweJtMs1pycV0brJae2bXlhaVAyqwNu7Z2qlMsNw/Ekzby8J0qz5Bs7GpcP8jnmhWtO3Tmrz 32mXpYr3oyolkEbe6kDFcC5UsGRlQPUx2bqQ94Ea5wTw= X-Received: by 2002:a7b:cc81:0:b0:40e:3f90:3920 with SMTP id p1-20020a7bcc81000000b0040e3f903920mr2035182wma.230.1705329191023; Mon, 15 Jan 2024 06:33:11 -0800 (PST) X-Google-Smtp-Source: AGHT+IGnFpNvbECPYnHXUb6ozmA7yyk68z6lU24Rulo6C/Itudf1qtyIV6rA40/SMTmfGJac297SBQ== X-Received: by 2002:a7b:cc81:0:b0:40e:3f90:3920 with SMTP id p1-20020a7bcc81000000b0040e3f903920mr2035169wma.230.1705329190506; Mon, 15 Jan 2024 06:33:10 -0800 (PST) Received: from toolbox ([2001:9e8:8996:a800:5fa3:a411:5e47:8fe5]) by smtp.gmail.com with ESMTPSA id o8-20020a05600c4fc800b0040e549c77a1sm20056078wmq.32.2024.01.15.06.33.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jan 2024 06:33:10 -0800 (PST) Date: Mon, 15 Jan 2024 15:33:08 +0100 From: Sebastian Wick To: Maxime Ripard Cc: Maarten Lankhorst , Thomas Zimmermann , David Airlie , Daniel Vetter , Emma Anholt , Jonathan Corbet , Sandy Huang , Heiko =?iso-8859-1?Q?St=FCbner?= , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Hans Verkuil , linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Subject: Re: [PATCH v5 08/44] drm/connector: hdmi: Add Broadcast RGB property Message-ID: <20240115143308.GA159345@toolbox> References: <20231207-kms-hdmi-connector-state-v5-0-6538e19d634d@kernel.org> <20231207-kms-hdmi-connector-state-v5-8-6538e19d634d@kernel.org> MIME-Version: 1.0 In-Reply-To: <20231207-kms-hdmi-connector-state-v5-8-6538e19d634d@kernel.org> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240115_063503_422567_BBD93CAA X-CRM114-Status: GOOD ( 42.63 ) 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 T24gVGh1LCBEZWMgMDcsIDIwMjMgYXQgMDQ6NDk6MzFQTSArMDEwMCwgTWF4aW1lIFJpcGFyZCB3 cm90ZToKPiBUaGUgaTkxNSBkcml2ZXIgaGFzIGEgcHJvcGVydHkgdG8gZm9yY2UgdGhlIFJHQiBy YW5nZSBvZiBhbiBIRE1JIG91dHB1dC4KPiBUaGUgdmM0IGRyaXZlciB0aGVuIGltcGxlbWVudGVk IHRoZSBzYW1lIHByb3BlcnR5IHdpdGggdGhlIHNhbWUKPiBzZW1hbnRpY3MuIEtXaW4gaGFzIHN1 cHBvcnQgZm9yIGl0LCBhbmQgYSBQUiBmb3IgbXV0dGVyIGlzIGFsc28gdGhlcmUgdG8KPiBzdXBw b3J0IGl0Lgo+IAo+IEJvdGggZHJpdmVycyBpbXBsZW1lbnRpbmcgdGhlIHNhbWUgcHJvcGVydHkg d2l0aCB0aGUgc2FtZSBzZW1hbnRpY3MsCj4gcGx1cyB0aGUgdXNlcnNwYWNlIGhhdmluZyBzdXBw b3J0IGZvciBpdCwgaXMgcHJvb2YgZW5vdWdoIHRoYXQgaXQncwo+IHByZXR0eSBtdWNoIGEgZGUt ZmFjdG8gc3RhbmRhcmQgbm93IGFuZCB3ZSBjYW4gcHJvdmlkZSBoZWxwZXJzIGZvciBpdC4KPiAK PiBMZXQncyBwbHVtYiBpdCBpbnRvIHRoZSBuZXdseSBjcmVhdGVkIEhETUkgY29ubmVjdG9yLgo+ IAo+IFNpZ25lZC1vZmYtYnk6IE1heGltZSBSaXBhcmQgPG1yaXBhcmRAa2VybmVsLm9yZz4KPiAt LS0KPiAgRG9jdW1lbnRhdGlvbi9ncHUva21zLXByb3BlcnRpZXMuY3N2ICAgICAgICAgICAgICAg fCAgIDEgLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICAgICAgICAgICAg ICAgICB8ICAgNSArCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5j ICAgICAgICAgIHwgIDE3ICsKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jICAg ICAgICAgICAgICAgICAgfCAgIDQgKwo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5j ICAgICAgICAgICAgICAgICAgICB8ICA3NiArKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vdGVzdHMv TWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCj4gIC4uLi9ncHUvZHJtL3Rlc3Rz L2RybV9hdG9taWNfc3RhdGVfaGVscGVyX3Rlc3QuYyAgIHwgMzc2ICsrKysrKysrKysrKysrKysr KysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2Nvbm5lY3Rvcl90ZXN0LmMgICAgICAg ICB8IDExNyArKysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fa3VuaXRfZWRpZC5o ICAgICAgICAgICAgIHwgMTA2ICsrKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgg ICAgICAgICAgICAgICAgICAgICAgICB8ICAzNiArKwo+ICAxMCBmaWxlcyBjaGFuZ2VkLCA3Mzcg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRh dGlvbi9ncHUva21zLXByb3BlcnRpZXMuY3N2IGIvRG9jdW1lbnRhdGlvbi9ncHUva21zLXByb3Bl cnRpZXMuY3N2Cj4gaW5kZXggMGY5NTkwODM0ODI5Li5jYWVmMTRjNTMyZDQgMTAwNjQ0Cj4gLS0t IGEvRG9jdW1lbnRhdGlvbi9ncHUva21zLXByb3BlcnRpZXMuY3N2Cj4gKysrIGIvRG9jdW1lbnRh dGlvbi9ncHUva21zLXByb3BlcnRpZXMuY3N2Cj4gQEAgLTE3LDcgKzE3LDYgQEAgT3duZXIgTW9k dWxlL0RyaXZlcnMsR3JvdXAsUHJvcGVydHkgTmFtZSxUeXBlLFByb3BlcnR5IFZhbHVlcyxPYmpl Y3QgYXR0YWNoZWQsRGUKPiAgLFZpcnR1YWwgR1BVLOKAnHN1Z2dlc3RlZCBY4oCdLFJBTkdFLCJN aW49MCwgTWF4PTB4ZmZmZmZmZmYiLENvbm5lY3Rvcixwcm9wZXJ0eSB0byBzdWdnZXN0IGFuIFgg b2Zmc2V0IGZvciBhIGNvbm5lY3Rvcgo+ICAsLOKAnHN1Z2dlc3RlZCBZ4oCdLFJBTkdFLCJNaW49 MCwgTWF4PTB4ZmZmZmZmZmYiLENvbm5lY3Rvcixwcm9wZXJ0eSB0byBzdWdnZXN0IGFuIFkgb2Zm c2V0IGZvciBhIGNvbm5lY3Rvcgo+ICAsT3B0aW9uYWwsIiIiYXNwZWN0IHJhdGlvIiIiLEVOVU0s InsgIiJOb25lIiIsICIiNDozIiIsICIiMTY6OSIiIH0iLENvbm5lY3RvcixUREIKPiAtaTkxNSxH ZW5lcmljLCIiIkJyb2FkY2FzdCBSR0IiIiIsRU5VTSwieyAiIkF1dG9tYXRpYyIiLCAiIkZ1bGwi IiwgIiJMaW1pdGVkIDE2OjIzNSIiIH0iLENvbm5lY3RvciwiV2hlbiB0aGlzIHByb3BlcnR5IGlz IHNldCB0byBMaW1pdGVkIDE2OjIzNSBhbmQgQ1RNIGlzIHNldCwgdGhlIGhhcmR3YXJlIHdpbGwg YmUgcHJvZ3JhbW1lZCB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIG11bHRpcGxpY2F0aW9uIG9mIENU TSBieSB0aGUgbGltaXRlZCByYW5nZSBtYXRyaXggdG8gZW5zdXJlIHRoZSBwaXhlbHMgbm9ybWFs bHkgaW4gdGhlIHJhbmdlIDAuLjEuMCBhcmUgcmVtYXBwZWQgdG8gdGhlIHJhbmdlIDE2LzI1NS4u MjM1LzI1NS4iCj4gICws4oCcYXVkaW/igJ0sRU5VTSwieyAiImZvcmNlLWR2aSIiLCAiIm9mZiIi LCAiImF1dG8iIiwgIiJvbiIiIH0iLENvbm5lY3RvcixUQkQKPiAgLFNEVk8tVFYs4oCcbW9kZeKA nSxFTlVNLCJ7ICIiTlRTQ19NIiIsICIiTlRTQ19KIiIsICIiTlRTQ180NDMiIiwgIiJQQUxfQiIi IH0gZXRjLiIsQ29ubmVjdG9yLFRCRAo+ICAsLCIiImxlZnRfbWFyZ2luIiIiLFJBTkdFLCJNaW49 MCwgTWF4PSBTRFZPIGRlcGVuZGVudCIsQ29ubmVjdG9yLFRCRAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ IGluZGV4IGMzMWZjMGI0OGMzMS4uMTQ2NWE3ZjA5YTBiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5j Cj4gQEAgLTExNDIsNiArMTE0MiwxMSBAQCBzdGF0aWMgdm9pZCBkcm1fYXRvbWljX2Nvbm5lY3Rv cl9wcmludF9zdGF0ZShzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsCj4gIAlkcm1fcHJpbnRmKHAsICJc dG1heF9yZXF1ZXN0ZWRfYnBjPSVkXG4iLCBzdGF0ZS0+bWF4X3JlcXVlc3RlZF9icGMpOwo+ICAJ ZHJtX3ByaW50ZihwLCAiXHRjb2xvcnNwYWNlPSVzXG4iLCBkcm1fZ2V0X2NvbG9yc3BhY2VfbmFt ZShzdGF0ZS0+Y29sb3JzcGFjZSkpOwo+ICAKPiArCWlmIChjb25uZWN0b3ItPmNvbm5lY3Rvcl90 eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQSB8fAo+ICsJICAgIGNvbm5lY3Rvci0+Y29u bmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0hETUlCKQo+ICsJCWRybV9wcmludGYo cCwgIlx0YnJvYWRjYXN0X3JnYj0lc1xuIiwKPiArCQkJICAgZHJtX2hkbWlfY29ubmVjdG9yX2dl dF9icm9hZGNhc3RfcmdiX25hbWUoc3RhdGUtPmhkbWkuYnJvYWRjYXN0X3JnYikpOwo+ICsKPiAg CWlmIChjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9XUklU RUJBQ0spCj4gIAkJaWYgKHN0YXRlLT53cml0ZWJhY2tfam9iICYmIHN0YXRlLT53cml0ZWJhY2tf am9iLT5mYikKPiAgCQkJZHJtX3ByaW50ZihwLCAiXHRmYj0lZFxuIiwgc3RhdGUtPndyaXRlYmFj a19qb2ItPmZiLT5iYXNlLmlkKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWNfc3RhdGVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19zdGF0ZV9o ZWxwZXIuYwo+IGluZGV4IGU2OWMwY2MxYzZkYS4uMTBkOTg2MjBhMzU4IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMKPiBAQCAtNTgzLDYgKzU4Myw3IEBA IEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3R2X3Jlc2V0KTsKPiAg dm9pZCBfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9oZG1pX3Jlc2V0KHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAkJCQkJICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKm5ld19zdGF0ZSkKPiAgewo+ICsJbmV3X3N0YXRlLT5oZG1pLmJyb2FkY2FzdF9yZ2Ig PSBEUk1fSERNSV9CUk9BRENBU1RfUkdCX0FVVE87Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChfX2Ry bV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9oZG1pX3Jlc2V0KTsKPiAgCj4gQEAgLTY1MCw2ICs2 NTEsMjIgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfdHZfY2hl Y2spOwo+ICBpbnQgZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfY2hlY2soc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkJCQkgICBzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpCj4gIHsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfc3Rh dGUgPQo+ICsJCWRybV9hdG9taWNfZ2V0X29sZF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm5l Y3Rvcik7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X3N0YXRlID0KPiArCQlk cm1fYXRvbWljX2dldF9uZXdfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IpOwo+ICsK PiArCWlmIChvbGRfc3RhdGUtPmhkbWkuYnJvYWRjYXN0X3JnYiAhPSBuZXdfc3RhdGUtPmhkbWku YnJvYWRjYXN0X3JnYikgewo+ICsJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG5ld19zdGF0ZS0+ Y3J0YzsKPiArCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gKwo+ICsJCWNy dGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiArCQlp ZiAoSVNfRVJSKGNydGNfc3RhdGUpKQo+ICsJCQlyZXR1cm4gUFRSX0VSUihjcnRjX3N0YXRlKTsK PiArCj4gKwkJY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKPiArCX0KPiArCj4gIAly ZXR1cm4gMDsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rv cl9oZG1pX2NoZWNrKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf dWFwaS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gaW5kZXggYWVlNGE2 NWQ0OTU5Li4zZWI0ZjRiYzhiNzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWNfdWFwaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4g QEAgLTgxOCw2ICs4MTgsOCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfY29ubmVjdG9yX3NldF9w cm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCXN0YXRlLT5tYXhf cmVxdWVzdGVkX2JwYyA9IHZhbDsKPiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9y LT5wcml2YWN5X3NjcmVlbl9zd19zdGF0ZV9wcm9wZXJ0eSkgewo+ICAJCXN0YXRlLT5wcml2YWN5 X3NjcmVlbl9zd19zdGF0ZSA9IHZhbDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVj dG9yLT5icm9hZGNhc3RfcmdiX3Byb3BlcnR5KSB7Cj4gKwkJc3RhdGUtPmhkbWkuYnJvYWRjYXN0 X3JnYiA9IHZhbDsKPiAgCX0gZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX3NldF9w cm9wZXJ0eSkgewo+ICAJCXJldHVybiBjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3Bl cnR5KGNvbm5lY3RvciwKPiAgCQkJCXN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKPiBAQCAtOTAxLDYg KzkwMyw4IEBAIGRybV9hdG9taWNfY29ubmVjdG9yX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCSp2YWwgPSBzdGF0ZS0+bWF4X3JlcXVlc3RlZF9icGM7 Cj4gIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+cHJpdmFjeV9zY3JlZW5fc3df c3RhdGVfcHJvcGVydHkpIHsKPiAgCQkqdmFsID0gc3RhdGUtPnByaXZhY3lfc2NyZWVuX3N3X3N0 YXRlOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPmJyb2FkY2FzdF9yZ2Jf cHJvcGVydHkpIHsKPiArCQkqdmFsID0gc3RhdGUtPmhkbWkuYnJvYWRjYXN0X3JnYjsKPiAgCX0g ZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0eSkgewo+ICAJCXJl dHVybiBjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KGNvbm5lY3RvciwKPiAg CQkJCXN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiBpbmRl eCBkOTk2MWNjZTgyNDUuLjkyOWIwYTkxMWY2MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2Nvbm5lY3Rvci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3Iu Ywo+IEBAIC0xMTgzLDYgKzExODMsMjkgQEAgc3RhdGljIGNvbnN0IHUzMiBkcF9jb2xvcnNwYWNl cyA9Cj4gIAlCSVQoRFJNX01PREVfQ09MT1JJTUVUUllfQlQyMDIwX0NZQ0MpIHwKPiAgCUJJVChE Uk1fTU9ERV9DT0xPUklNRVRSWV9CVDIwMjBfWUNDKTsKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX3Byb3BfZW51bV9saXN0IGJyb2FkY2FzdF9yZ2JfbmFtZXNbXSA9IHsKPiArCXsgRFJN X0hETUlfQlJPQURDQVNUX1JHQl9BVVRPLCAiQXV0b21hdGljIiB9LAo+ICsJeyBEUk1fSERNSV9C Uk9BRENBU1RfUkdCX0ZVTEwsICJGdWxsIiB9LAo+ICsJeyBEUk1fSERNSV9CUk9BRENBU1RfUkdC X0xJTUlURUQsICJMaW1pdGVkIDE2OjIzNSIgfSwKPiArfTsKPiArCj4gKy8qCj4gKyAqIGRybV9o ZG1pX2Nvbm5lY3Rvcl9nZXRfYnJvYWRjYXN0X3JnYl9uYW1lIC0gUmV0dXJuIGEgc3RyaW5nIGZv ciBIRE1JIGNvbm5lY3RvciBSR0IgYnJvYWRjYXN0IHNlbGVjdGlvbgo+ICsgKiBAYnJvYWRjYXN0 X3JnYjogQnJvYWRjYXN0IFJHQiBzZWxlY3Rpb24gdG8gY29tcHV0ZSBuYW1lIG9mCj4gKyAqCj4g KyAqIFJldHVybnM6IHRoZSBuYW1lIG9mIHRoZSBCcm9hZGNhc3QgUkdCIHNlbGVjdGlvbiwgb3Ig TlVMTCBpZiB0aGUgdHlwZQo+ICsgKiBpcyBub3QgdmFsaWQuCj4gKyAqLwo+ICtjb25zdCBjaGFy ICoKPiArZHJtX2hkbWlfY29ubmVjdG9yX2dldF9icm9hZGNhc3RfcmdiX25hbWUoZW51bSBkcm1f aGRtaV9icm9hZGNhc3RfcmdiIGJyb2FkY2FzdF9yZ2IpCj4gK3sKPiArCWlmIChicm9hZGNhc3Rf cmdiID4gRFJNX0hETUlfQlJPQURDQVNUX1JHQl9MSU1JVEVEKQo+ICsJCXJldHVybiBOVUxMOwo+ ICsKPiArCXJldHVybiBicm9hZGNhc3RfcmdiX25hbWVzW2Jyb2FkY2FzdF9yZ2JdLm5hbWU7Cj4g K30KPiArRVhQT1JUX1NZTUJPTChkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2Jf bmFtZSk7Cj4gKwo+ICAvKioKPiAgICogRE9DOiBzdGFuZGFyZCBjb25uZWN0b3IgcHJvcGVydGll cwo+ICAgKgo+IEBAIC0xNjU1LDYgKzE2NzgsMjYgQEAgRVhQT1JUX1NZTUJPTChkcm1fY29ubmVj dG9yX2F0dGFjaF9kcF9zdWJjb25uZWN0b3JfcHJvcGVydHkpOwo+ICAvKioKPiAgICogRE9DOiBI RE1JIGNvbm5lY3RvciBwcm9wZXJ0aWVzCj4gICAqCj4gKyAqIEJyb2FkY2FzdCBSR0IKPiArICog ICAgICBJbmRpY2F0ZXMgdGhlIFJHQiBRdWFudGl6YXRpb24gUmFuZ2UgKEZ1bGwgdnMgTGltaXRl ZCkgdXNlZC4KPiArICogICAgICBJbmZvZnJhbWVzIHdpbGwgYmUgZ2VuZXJhdGVkIGFjY29yZGlu ZyB0byB0aGF0IHZhbHVlLgo+ICsgKgo+ICsgKiAgICAgIFRoZSB2YWx1ZSBvZiB0aGlzIHByb3Bl cnR5IGNhbiBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKPiArICoKPiArICogICAgICBBdXRvbWF0 aWM6Cj4gKyAqICAgICAgICAgICAgICBSR0IgUmFuZ2UgaXMgc2VsZWN0ZWQgYXV0b21hdGljYWxs eSBiYXNlZCBvbiB0aGUgbW9kZQo+ICsgKiAgICAgICAgICAgICAgYWNjb3JkaW5nIHRvIHRoZSBI RE1JIHNwZWNpZmljYXRpb25zLgo+ICsgKgo+ICsgKiAgICAgIEZ1bGw6Cj4gKyAqICAgICAgICAg ICAgICBGdWxsIFJHQiBSYW5nZSBpcyBmb3JjZWQuCj4gKyAqCj4gKyAqICAgICAgTGltaXRlZCAx NjoyMzU6Cj4gKyAqICAgICAgICAgICAgICBMaW1pdGVkIFJHQiBSYW5nZSBpcyBmb3JjZWQuIFVu bGlrZSB0aGUgbmFtZSBzdWdnZXN0cywKPiArICogICAgICAgICAgICAgIHRoaXMgd29ya3MgZm9y IGFueSBudW1iZXIgb2YgYml0cy1wZXItY29tcG9uZW50Lgo+ICsgKgo+ICsgKiAgICAgIERyaXZl cnMgY2FuIHNldCB1cCB0aGlzIHByb3BlcnR5IGJ5IGNhbGxpbmcKPiArICogICAgICBkcm1fY29u bmVjdG9yX2F0dGFjaF9icm9hZGNhc3RfcmdiX3Byb3BlcnR5KCkuCj4gKyAqCgpUaGlzIGlzIGEg Z29vZCB0aW1lIHRvIGRvY3VtZW50IHRoaXMgaW4gbW9yZSBkZXRhaWwuIFRoZXJlIG1pZ2h0IGJl IHR3bwpkaWZmZXJlbnQgdGhpbmdzIGJlaW5nIGFmZmVjdGVkOgoKMS4gVGhlIHNpZ25hbGxpbmcg KEluZm9GcmFtZS9TRFAvLi4uKQoyLiBUaGUgY29sb3IgcGlwZWxpbmUgcHJvY2Vzc2luZwoKQWxs IHZhbHVlcyBvZiBCcm9hZGNhc3QgUkdCIGFsd2F5cyBhZmZlY3QgdGhlIGNvbG9yIHBpcGVsaW5l IHByb2Nlc3NpbmcKc3VjaCB0aGF0IGEgZnVsbC1yYW5nZSBpbnB1dCB0byB0aGUgQ1JUQyBpcyBj b252ZXJ0ZWQgdG8gZWl0aGVyIGZ1bGwtIG9yCmxpbWl0ZWQtcmFuZ2UsIGRlcGVuZGluZyBvbiB3 aGF0IHRoZSBtb25pdG9yIGlzIHN1cHBvc2VkIHRvIGFjY2VwdC4KCldoZW4gYXV0b21hdGljIGlz IHNlbGVjdGVkLCBkb2VzIHRoYXQgbWVhbiB0aGF0IHRoZXJlIGlzIG5vIHNpZ25hbGxpbmcsCm9y IHRoYXQgdGhlIHNpZ25hbGxpbmcgbWF0Y2hlcyB3aGF0IHRoZSBtb25pdG9yIGlzIHN1cHBvc2Vk IHRvIGFjY2VwdAphY2NvcmRpbmcgdG8gdGhlIHNwZWM/IEFsc28sIGlzIHRoaXMgcmVhbGx5IEhE TUkgc3BlY2lmaWM/CgpXaGVuIGZ1bGwgb3IgbGltaXRlZCBpcyBzZWxlY3RlZCBhbmQgdGhlIG1v bml0b3IgZG9lc24ndCBzdXBwb3J0IHRoZQpzaWduYWxsaW5nLCB3aGF0IGhhcHBlbnM/Cgo+ICAg KiBjb250ZW50IHR5cGUgKEhETUkgc3BlY2lmaWMpOgo+ICAgKglJbmRpY2F0ZXMgY29udGVudCB0 eXBlIHNldHRpbmcgdG8gYmUgdXNlZCBpbiBIRE1JIGluZm9mcmFtZXMgdG8gaW5kaWNhdGUKPiAg ICoJY29udGVudCB0eXBlIGZvciB0aGUgZXh0ZXJuYWwgZGV2aWNlLCBzbyB0aGF0IGl0IGFkanVz dHMgaXRzIGRpc3BsYXkKPiBAQCAtMjUxNyw2ICsyNTYwLDM5IEBAIGludCBkcm1fY29ubmVjdG9y X2F0dGFjaF9oZHJfb3V0cHV0X21ldGFkYXRhX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fY29ubmVjdG9yX2F0dGFjaF9oZHJfb3V0 cHV0X21ldGFkYXRhX3Byb3BlcnR5KTsKPiAgCj4gKy8qKgo+ICsgKiBkcm1fY29ubmVjdG9yX2F0 dGFjaF9icm9hZGNhc3RfcmdiX3Byb3BlcnR5IC0gYXR0YWNoICJCcm9hZGNhc3QgUkdCIiBwcm9w ZXJ0eQo+ICsgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgdG8gYXR0YWNoIHRoZSBwcm9wZXJ0eSBv bi4KPiArICoKPiArICogVGhpcyBpcyB1c2VkIHRvIGFkZCBzdXBwb3J0IGZvciBmb3JjaW5nIHRo ZSBSR0IgcmFuZ2Ugb24gYSBjb25uZWN0b3IKPiArICoKPiArICogUmV0dXJuczoKPiArICogWmVy byBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJubyBvbiBmYWlsdXJlLgo+ICsgKi8KPiAraW50IGRy bV9jb25uZWN0b3JfYXR0YWNoX2Jyb2FkY2FzdF9yZ2JfcHJvcGVydHkoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5l Y3Rvci0+ZGV2Owo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsKPiArCj4gKwlwcm9wID0g Y29ubmVjdG9yLT5icm9hZGNhc3RfcmdiX3Byb3BlcnR5Owo+ICsJaWYgKCFwcm9wKSB7Cj4gKwkJ cHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfZW51bShkZXYsIERSTV9NT0RFX1BST1BfRU5VTSwK PiArCQkJCQkJIkJyb2FkY2FzdCBSR0IiLAo+ICsJCQkJCQlicm9hZGNhc3RfcmdiX25hbWVzLAo+ ICsJCQkJCQlBUlJBWV9TSVpFKGJyb2FkY2FzdF9yZ2JfbmFtZXMpKTsKPiArCQlpZiAoIXByb3Ap Cj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCQljb25uZWN0b3ItPmJyb2FkY2FzdF9yZ2Jf cHJvcGVydHkgPSBwcm9wOwo+ICsJfQo+ICsKPiArCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5 KCZjb25uZWN0b3ItPmJhc2UsIHByb3AsCj4gKwkJCQkgICBEUk1fSERNSV9CUk9BRENBU1RfUkdC X0FVVE8pOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2Nvbm5l Y3Rvcl9hdHRhY2hfYnJvYWRjYXN0X3JnYl9wcm9wZXJ0eSk7Cj4gKwo+ICAvKioKPiAgICogZHJt X2Nvbm5lY3Rvcl9hdHRhY2hfY29sb3JzcGFjZV9wcm9wZXJ0eSAtIGF0dGFjaCAiQ29sb3JzcGFj ZSIgcHJvcGVydHkKPiAgICogQGNvbm5lY3RvcjogY29ubmVjdG9yIHRvIGF0dGFjaCB0aGUgcHJv cGVydHkgb24uCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9NYWtlZmlsZSBi L2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9NYWtlZmlsZQo+IGluZGV4IGQ2MTgzYjNkNzY4OC4uYjI5 ZGRmZDkwNTk2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9NYWtlZmlsZQo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9NYWtlZmlsZQo+IEBAIC00LDYgKzQsNyBAQCBv YmotJChDT05GSUdfRFJNX0tVTklUX1RFU1RfSEVMUEVSUykgKz0gXAo+ICAJZHJtX2t1bml0X2hl bHBlcnMubwo+ICAKPiAgb2JqLSQoQ09ORklHX0RSTV9LVU5JVF9URVNUKSArPSBcCj4gKwlkcm1f YXRvbWljX3N0YXRlX2hlbHBlcl90ZXN0Lm8gXAo+ICAJZHJtX2J1ZGR5X3Rlc3QubyBcCj4gIAlk cm1fY21kbGluZV9wYXJzZXJfdGVzdC5vIFwKPiAgCWRybV9jb25uZWN0b3JfdGVzdC5vIFwKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9hdG9taWNfc3RhdGVfaGVscGVy X3Rlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fYXRvbWljX3N0YXRlX2hlbHBlcl90 ZXN0LmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uMjFlNmY3 OTZlZTEzCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1f YXRvbWljX3N0YXRlX2hlbHBlcl90ZXN0LmMKPiBAQCAtMCwwICsxLDM3NiBAQAo+ICsvLyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ICsKPiArLyoKPiArICogS3VuaXQgdGVzdCBm b3IgZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIgZnVuY3Rpb25zCj4gKyAqLwo+ICsKPiArI2luY2x1 ZGUgPGRybS9kcm1fYXRvbWljLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19zdGF0ZV9o ZWxwZXIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX3VhcGkuaD4KPiArI2luY2x1ZGUg PGRybS9kcm1fZHJ2Lmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KPiArI2luY2x1ZGUg PGRybS9kcm1fY29ubmVjdG9yLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgo+ICsj aW5jbHVkZSA8ZHJtL2RybV9rdW5pdF9oZWxwZXJzLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX21h bmFnZWQuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oPgo+ ICsjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KPiArCj4gKyNpbmNsdWRlIDxkcm0v ZHJtX3ByaW50Lmg+Cj4gKyNpbmNsdWRlICIuLi9kcm1fY3J0Y19pbnRlcm5hbC5oIgo+ICsKPiAr I2luY2x1ZGUgPGt1bml0L3Rlc3QuaD4KPiArCj4gKyNpbmNsdWRlICJkcm1fa3VuaXRfZWRpZC5o Igo+ICsKPiArc3RydWN0IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9oZG1pX3ByaXYgewo+ ICsJc3RydWN0IGRybV9kZXZpY2UgZHJtOwo+ICsJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4g KwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgZW5jb2RlcjsK PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yIGNvbm5lY3RvcjsKPiArCj4gKwljb25zdCBjaGFyICpj dXJyZW50X2VkaWQ7Cj4gKwlzaXplX3QgY3VycmVudF9lZGlkX2xlbjsKPiArfTsKPiArCj4gKyNk ZWZpbmUgY29ubmVjdG9yX3RvX3ByaXYoYykgXAo+ICsJY29udGFpbmVyX29mX2NvbnN0KGMsIHN0 cnVjdCBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9wcml2LCBjb25uZWN0b3IpCj4g Kwo+ICtzdGF0aWMgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmZpbmRfcHJlZmVycmVkX21vZGUo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IGRybV9kZXZp Y2UgKmRybSA9IGNvbm5lY3Rvci0+ZGV2Owo+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGUsICpwcmVmZXJyZWQ7Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZHJtLT5tb2RlX2NvbmZpZy5tdXRl eCk7Cj4gKwlwcmVmZXJyZWQgPSBsaXN0X2ZpcnN0X2VudHJ5KCZjb25uZWN0b3ItPm1vZGVzLCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSwgaGVhZCk7Cj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1v ZGUsICZjb25uZWN0b3ItPm1vZGVzLCBoZWFkKQo+ICsJCWlmIChtb2RlLT50eXBlICYgRFJNX01P REVfVFlQRV9QUkVGRVJSRUQpCj4gKwkJCXByZWZlcnJlZCA9IG1vZGU7Cj4gKwltdXRleF91bmxv Y2soJmRybS0+bW9kZV9jb25maWcubXV0ZXgpOwo+ICsKPiArCXJldHVybiBwcmVmZXJyZWQ7Cj4g K30KPiArCj4gK3N0YXRpYyBpbnQgbGlnaHRfdXBfY29ubmVjdG9yKHN0cnVjdCBrdW5pdCAqdGVz dCwKPiArCQkJICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRybSwKPiArCQkJICAgICAgc3RydWN0 IGRybV9jcnRjICpjcnRjLAo+ICsJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAo+ICsJCQkgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiArCQkJICAg ICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCj4gK3sKPiArCXN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpj b25uX3N0YXRlOwo+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ICsJaW50 IHJldDsKPiArCj4gKwlzdGF0ZSA9IGRybV9rdW5pdF9oZWxwZXJfYXRvbWljX3N0YXRlX2FsbG9j KHRlc3QsIGRybSwgY3R4KTsKPiArCUtVTklUX0FTU0VSVF9OT1RfRVJSX09SX05VTEwodGVzdCwg c3RhdGUpOwo+ICsKPiArCWNvbm5fc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3Rh dGUoc3RhdGUsIGNvbm5lY3Rvcik7Cj4gKwlLVU5JVF9BU1NFUlRfTk9UX0VSUl9PUl9OVUxMKHRl c3QsIGNvbm5fc3RhdGUpOwo+ICsKPiArCXJldCA9IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX2Nv bm5lY3Rvcihjb25uX3N0YXRlLCBjcnRjKTsKPiArCUtVTklUX0VYUEVDVF9FUSh0ZXN0LCByZXQs IDApOwo+ICsKPiArCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRl LCBjcnRjKTsKPiArCUtVTklUX0FTU0VSVF9OT1RfRVJSX09SX05VTEwodGVzdCwgY3J0Y19zdGF0 ZSk7Cj4gKwo+ICsJcmV0ID0gZHJtX2F0b21pY19zZXRfbW9kZV9mb3JfY3J0YyhjcnRjX3N0YXRl LCBtb2RlKTsKPiArCUtVTklUX0VYUEVDVF9FUSh0ZXN0LCByZXQsIDApOwo+ICsKPiArCWNydGNf c3RhdGUtPmVuYWJsZSA9IHRydWU7Cj4gKwljcnRjX3N0YXRlLT5hY3RpdmUgPSB0cnVlOwo+ICsK PiArCXJldCA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRlKTsKPiArCUtVTklUX0FTU0VSVF9FUSh0 ZXN0LCByZXQsIDApOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHNl dF9jb25uZWN0b3JfZWRpZChzdHJ1Y3Qga3VuaXQgKnRlc3QsIHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsCj4gKwkJCSAgICAgIGNvbnN0IGNoYXIgKmVkaWQsIHNpemVfdCBlZGlkX2xl bikKPiArewo+ICsJc3RydWN0IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9oZG1pX3ByaXYg KnByaXYgPQo+ICsJCWNvbm5lY3Rvcl90b19wcml2KGNvbm5lY3Rvcik7Cj4gKwlzdHJ1Y3QgZHJt X2RldmljZSAqZHJtID0gY29ubmVjdG9yLT5kZXY7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXByaXYt PmN1cnJlbnRfZWRpZCA9IGVkaWQ7Cj4gKwlwcml2LT5jdXJyZW50X2VkaWRfbGVuID0gZWRpZF9s ZW47Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZHJtLT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4gKwlyZXQg PSBjb25uZWN0b3ItPmZ1bmNzLT5maWxsX21vZGVzKGNvbm5lY3RvciwgNDA5NiwgNDA5Nik7Cj4g KwltdXRleF91bmxvY2soJmRybS0+bW9kZV9jb25maWcubXV0ZXgpOwo+ICsJS1VOSVRfQVNTRVJU X0dUKHRlc3QsIHJldCwgMCk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBp bnQgZHVtbXlfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfcHJp diAqcHJpdiA9Cj4gKwkJY29ubmVjdG9yX3RvX3ByaXYoY29ubmVjdG9yKTsKPiArCWNvbnN0IHN0 cnVjdCBkcm1fZWRpZCAqZWRpZDsKPiArCXVuc2lnbmVkIGludCBudW1fbW9kZXM7Cj4gKwo+ICsJ ZWRpZCA9IGRybV9lZGlkX2FsbG9jKHByaXYtPmN1cnJlbnRfZWRpZCwgcHJpdi0+Y3VycmVudF9l ZGlkX2xlbik7Cj4gKwlpZiAoIWVkaWQpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJZHJt X2VkaWRfY29ubmVjdG9yX3VwZGF0ZShjb25uZWN0b3IsIGVkaWQpOwo+ICsJbnVtX21vZGVzID0g ZHJtX2VkaWRfY29ubmVjdG9yX2FkZF9tb2Rlcyhjb25uZWN0b3IpOwo+ICsKPiArCWRybV9lZGlk X2ZyZWUoZWRpZCk7Cj4gKwo+ICsJcmV0dXJuIG51bV9tb2RlczsKPiArfQo+ICsKPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBkdW1teV9jb25uZWN0b3Jf aGVscGVyX2Z1bmNzID0gewo+ICsJLmF0b21pY19jaGVjawk9IGRybV9hdG9taWNfaGVscGVyX2Nv bm5lY3Rvcl9oZG1pX2NoZWNrLAo+ICsJLmdldF9tb2Rlcwk9IGR1bW15X2Nvbm5lY3Rvcl9nZXRf bW9kZXMsCj4gK307Cj4gKwo+ICtzdGF0aWMgdm9pZCBkdW1teV9oZG1pX2Nvbm5lY3Rvcl9yZXNl dChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlkcm1fYXRvbWljX2hl bHBlcl9jb25uZWN0b3JfcmVzZXQoY29ubmVjdG9yKTsKPiArCV9fZHJtX2F0b21pY19oZWxwZXJf Y29ubmVjdG9yX2hkbWlfcmVzZXQoY29ubmVjdG9yLCBjb25uZWN0b3ItPnN0YXRlKTsKPiArfQo+ ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGR1bW15X2Nvbm5l Y3Rvcl9mdW5jcyA9IHsKPiArCS5hdG9taWNfZGVzdHJveV9zdGF0ZQk9IGRybV9hdG9taWNfaGVs cGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAo+ICsJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUJ PSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlLAo+ICsJLmZpbGxf bW9kZXMJCT0gZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAo+ICsJLnJl c2V0CQkJPSBkdW1teV9oZG1pX2Nvbm5lY3Rvcl9yZXNldCwKPiArfTsKPiArCj4gK3N0YXRpYwo+ ICtzdHJ1Y3QgZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfcHJpdiAqCj4gK2RybV9h dG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9oZG1pX2luaXQoc3RydWN0IGt1bml0ICp0ZXN0KQo+ICt7 Cj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfcHJpdiAqcHJpdjsK PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOwo+ICsJc3RydWN0IGRybV9lbmNvZGVyICpl bmM7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOwo+ICsJc3RydWN0IGRldmljZSAqZGV2Owo+ ICsJaW50IHJldDsKPiArCj4gKwlkZXYgPSBkcm1fa3VuaXRfaGVscGVyX2FsbG9jX2RldmljZSh0 ZXN0KTsKPiArCUtVTklUX0FTU0VSVF9OT1RfRVJSX09SX05VTEwodGVzdCwgZGV2KTsKPiArCj4g Kwlwcml2ID0gZHJtX2t1bml0X2hlbHBlcl9hbGxvY19kcm1fZGV2aWNlKHRlc3QsIGRldiwKPiAr CQkJCQkJIHN0cnVjdCBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9wcml2LCBkcm0s Cj4gKwkJCQkJCSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMpOwo+ICsJS1VOSVRfQVNT RVJUX05PVF9FUlJfT1JfTlVMTCh0ZXN0LCBwcml2KTsKPiArCXRlc3QtPnByaXYgPSBwcml2Owo+ ICsKPiArCWRybSA9ICZwcml2LT5kcm07Cj4gKwlwcml2LT5wbGFuZSA9IGRybV9rdW5pdF9oZWxw ZXJfY3JlYXRlX3ByaW1hcnlfcGxhbmUodGVzdCwgZHJtLAo+ICsJCQkJCQkJICAgIE5VTEwsCj4g KwkJCQkJCQkgICAgTlVMTCwKPiArCQkJCQkJCSAgICBOVUxMLCAwLAo+ICsJCQkJCQkJICAgIE5V TEwpOwo+ICsJS1VOSVRfQVNTRVJUX05PVF9FUlJfT1JfTlVMTCh0ZXN0LCBwcml2LT5wbGFuZSk7 Cj4gKwo+ICsJcHJpdi0+Y3J0YyA9IGRybV9rdW5pdF9oZWxwZXJfY3JlYXRlX2NydGModGVzdCwg ZHJtLAo+ICsJCQkJCQkgIHByaXYtPnBsYW5lLCBOVUxMLAo+ICsJCQkJCQkgIE5VTEwsCj4gKwkJ CQkJCSAgTlVMTCk7Cj4gKwlLVU5JVF9BU1NFUlRfTk9UX0VSUl9PUl9OVUxMKHRlc3QsIHByaXYt PmNydGMpOwo+ICsKPiArCWVuYyA9ICZwcml2LT5lbmNvZGVyOwo+ICsJcmV0ID0gZHJtbV9lbmNv ZGVyX2luaXQoZHJtLCBlbmMsIE5VTEwsIERSTV9NT0RFX0VOQ09ERVJfVE1EUywgTlVMTCk7Cj4g KwlLVU5JVF9BU1NFUlRfRVEodGVzdCwgcmV0LCAwKTsKPiArCj4gKwllbmMtPnBvc3NpYmxlX2Ny dGNzID0gZHJtX2NydGNfbWFzayhwcml2LT5jcnRjKTsKPiArCj4gKwljb25uID0gJnByaXYtPmNv bm5lY3RvcjsKPiArCXJldCA9IGRybW1fY29ubmVjdG9yX2hkbWlfaW5pdChkcm0sIGNvbm4sCj4g KwkJCQkgICAgICAgJmR1bW15X2Nvbm5lY3Rvcl9mdW5jcywKPiArCQkJCSAgICAgICBEUk1fTU9E RV9DT05ORUNUT1JfSERNSUEsCj4gKwkJCQkgICAgICAgTlVMTCk7Cj4gKwlLVU5JVF9BU1NFUlRf RVEodGVzdCwgcmV0LCAwKTsKPiArCj4gKwlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubiwg JmR1bW15X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwo+ICsJZHJtX2Nvbm5lY3Rvcl9hdHRhY2hf ZW5jb2Rlcihjb25uLCBlbmMpOwo+ICsKPiArCWRybV9tb2RlX2NvbmZpZ19yZXNldChkcm0pOwo+ ICsKPiArCXJldCA9IHNldF9jb25uZWN0b3JfZWRpZCh0ZXN0LCBjb25uLAo+ICsJCQkJIHRlc3Rf ZWRpZF9oZG1pXzEwODBwX3JnYl9tYXhfMjAwbWh6LAo+ICsJCQkJIEFSUkFZX1NJWkUodGVzdF9l ZGlkX2hkbWlfMTA4MHBfcmdiX21heF8yMDBtaHopKTsKPiArCUtVTklUX0FTU0VSVF9FUSh0ZXN0 LCByZXQsIDApOwo+ICsKPiArCXJldHVybiBwcml2Owo+ICt9Cj4gKwo+ICsvKgo+ICsgKiBUZXN0 IHRoYXQgaWYgd2UgY2hhbmdlIHRoZSBSR0IgcXVhbnRpemF0aW9uIHByb3BlcnR5IHRvIGEgZGlm ZmVyZW50Cj4gKyAqIHZhbHVlLCB3ZSB0cmlnZ2VyIGEgbW9kZSBjaGFuZ2Ugb24gdGhlIGNvbm5l Y3RvcidzIENSVEMsIHdoaWNoIHdpbGwKPiArICogaW4gdHVybiBkaXNhYmxlL2VuYWJsZSB0aGUg Y29ubmVjdG9yLgo+ICsgKi8KPiArc3RhdGljIHZvaWQgZHJtX3Rlc3RfY2hlY2tfYnJvYWRjYXN0 X3JnYl9jcnRjX21vZGVfY2hhbmdlZChzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gK3sKPiArCXN0cnVj dCBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9wcml2ICpwcml2Owo+ICsJc3RydWN0 IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHg7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9z dGF0ZSAqb2xkX2Nvbm5fc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3 X2Nvbm5fc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gKwlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqcHJlZmVycmVkOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm47Cj4gKwlzdHJ1Y3Qg ZHJtX2RldmljZSAqZHJtOwo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICsJaW50IHJldDsK PiArCj4gKwlwcml2ID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfaW5pdCh0ZXN0 KTsKPiArCUtVTklUX0FTU0VSVF9OT1RfTlVMTCh0ZXN0LCBwcml2KTsKPiArCj4gKwljdHggPSBk cm1fa3VuaXRfaGVscGVyX2FjcXVpcmVfY3R4X2FsbG9jKHRlc3QpOwo+ICsJS1VOSVRfQVNTRVJU X05PVF9FUlJfT1JfTlVMTCh0ZXN0LCBjdHgpOwo+ICsKPiArCWNvbm4gPSAmcHJpdi0+Y29ubmVj dG9yOwo+ICsJcHJlZmVycmVkID0gZmluZF9wcmVmZXJyZWRfbW9kZShjb25uKTsKPiArCUtVTklU X0FTU0VSVF9OT1RfTlVMTCh0ZXN0LCBwcmVmZXJyZWQpOwo+ICsKPiArCWRybSA9ICZwcml2LT5k cm07Cj4gKwljcnRjID0gcHJpdi0+Y3J0YzsKPiArCXJldCA9IGxpZ2h0X3VwX2Nvbm5lY3Rvcih0 ZXN0LCBkcm0sIGNydGMsIGNvbm4sIHByZWZlcnJlZCwgY3R4KTsKPiArCUtVTklUX0FTU0VSVF9F USh0ZXN0LCByZXQsIDApOwo+ICsKPiArCXN0YXRlID0gZHJtX2t1bml0X2hlbHBlcl9hdG9taWNf c3RhdGVfYWxsb2ModGVzdCwgZHJtLCBjdHgpOwo+ICsJS1VOSVRfQVNTRVJUX05PVF9FUlJfT1Jf TlVMTCh0ZXN0LCBzdGF0ZSk7Cj4gKwo+ICsJbmV3X2Nvbm5fc3RhdGUgPSBkcm1fYXRvbWljX2dl dF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm4pOwo+ICsJS1VOSVRfQVNTRVJUX05PVF9FUlJf T1JfTlVMTCh0ZXN0LCBuZXdfY29ubl9zdGF0ZSk7Cj4gKwo+ICsJb2xkX2Nvbm5fc3RhdGUgPSBk cm1fYXRvbWljX2dldF9vbGRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjb25uKTsKPiArCUtVTklU X0FTU0VSVF9OT1RfRVJSX09SX05VTEwodGVzdCwgb2xkX2Nvbm5fc3RhdGUpOwo+ICsKPiArCW5l d19jb25uX3N0YXRlLT5oZG1pLmJyb2FkY2FzdF9yZ2IgPSBEUk1fSERNSV9CUk9BRENBU1RfUkdC X0ZVTEw7Cj4gKwo+ICsJS1VOSVRfQVNTRVJUX05FKHRlc3QsCj4gKwkJCW9sZF9jb25uX3N0YXRl LT5oZG1pLmJyb2FkY2FzdF9yZ2IsCj4gKwkJCW5ld19jb25uX3N0YXRlLT5oZG1pLmJyb2FkY2Fz dF9yZ2IpOwo+ICsKPiArCXJldCA9IGRybV9hdG9taWNfY2hlY2tfb25seShzdGF0ZSk7Cj4gKwlL VU5JVF9BU1NFUlRfRVEodGVzdCwgcmV0LCAwKTsKPiArCj4gKwluZXdfY29ubl9zdGF0ZSA9IGRy bV9hdG9taWNfZ2V0X25ld19jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm4pOwo+ICsJS1VOSVRf QVNTRVJUX05PVF9FUlJfT1JfTlVMTCh0ZXN0LCBuZXdfY29ubl9zdGF0ZSk7Cj4gKwlLVU5JVF9F WFBFQ1RfRVEodGVzdCwgbmV3X2Nvbm5fc3RhdGUtPmhkbWkuYnJvYWRjYXN0X3JnYiwgRFJNX0hE TUlfQlJPQURDQVNUX1JHQl9GVUxMKTsKPiArCj4gKwljcnRjX3N0YXRlID0gZHJtX2F0b21pY19n ZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ICsJS1VOSVRfQVNTRVJUX05PVF9FUlJf T1JfTlVMTCh0ZXN0LCBjcnRjX3N0YXRlKTsKPiArCUtVTklUX0VYUEVDVF9UUlVFKHRlc3QsIGNy dGNfc3RhdGUtPm1vZGVfY2hhbmdlZCk7Cj4gK30KPiArCj4gKy8qCj4gKyAqIFRlc3QgdGhhdCBp ZiB3ZSBzZXQgdGhlIFJHQiBxdWFudGl6YXRpb24gcHJvcGVydHkgdG8gdGhlIHNhbWUgdmFsdWUs Cj4gKyAqIHdlIGRvbid0IHRyaWdnZXIgYSBtb2RlIGNoYW5nZSBvbiB0aGUgY29ubmVjdG9yJ3Mg Q1JUQyBhbmQgbGVhdmUgdGhlCj4gKyAqIGNvbm5lY3RvciB1bmFmZmVjdGVkLgo+ICsgKi8KPiAr c3RhdGljIHZvaWQgZHJtX3Rlc3RfY2hlY2tfYnJvYWRjYXN0X3JnYl9jcnRjX21vZGVfbm90X2No YW5nZWQoc3RydWN0IGt1bml0ICp0ZXN0KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19oZWxw ZXJfY29ubmVjdG9yX2hkbWlfcHJpdiAqcHJpdjsKPiArCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1 aXJlX2N0eCAqY3R4Owo+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0 YXRlOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlOwo+ICsJ c3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ICsJc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlOwo+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnByZWZlcnJlZDsKPiAr CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRybTsK PiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiArCWludCByZXQ7Cj4gKwo+ICsJcHJpdiA9IGRy bV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9oZG1pX2luaXQodGVzdCk7Cj4gKwlLVU5JVF9BU1NF UlRfTk9UX05VTEwodGVzdCwgcHJpdik7Cj4gKwo+ICsJY3R4ID0gZHJtX2t1bml0X2hlbHBlcl9h Y3F1aXJlX2N0eF9hbGxvYyh0ZXN0KTsKPiArCUtVTklUX0FTU0VSVF9OT1RfRVJSX09SX05VTEwo dGVzdCwgY3R4KTsKPiArCj4gKwljb25uID0gJnByaXYtPmNvbm5lY3RvcjsKPiArCXByZWZlcnJl ZCA9IGZpbmRfcHJlZmVycmVkX21vZGUoY29ubik7Cj4gKwlLVU5JVF9BU1NFUlRfTk9UX05VTEwo dGVzdCwgcHJlZmVycmVkKTsKPiArCj4gKwlkcm0gPSAmcHJpdi0+ZHJtOwo+ICsJY3J0YyA9IHBy aXYtPmNydGM7Cj4gKwlyZXQgPSBsaWdodF91cF9jb25uZWN0b3IodGVzdCwgZHJtLCBjcnRjLCBj b25uLCBwcmVmZXJyZWQsIGN0eCk7Cj4gKwlLVU5JVF9BU1NFUlRfRVEodGVzdCwgcmV0LCAwKTsK PiArCj4gKwlzdGF0ZSA9IGRybV9rdW5pdF9oZWxwZXJfYXRvbWljX3N0YXRlX2FsbG9jKHRlc3Qs IGRybSwgY3R4KTsKPiArCUtVTklUX0FTU0VSVF9OT1RfRVJSX09SX05VTEwodGVzdCwgc3RhdGUp Owo+ICsKPiArCW5ld19jb25uX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRl KHN0YXRlLCBjb25uKTsKPiArCUtVTklUX0FTU0VSVF9OT1RfRVJSX09SX05VTEwodGVzdCwgbmV3 X2Nvbm5fc3RhdGUpOwo+ICsKPiArCW9sZF9jb25uX3N0YXRlID0gZHJtX2F0b21pY19nZXRfb2xk X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwgY29ubik7Cj4gKwlLVU5JVF9BU1NFUlRfTk9UX0VSUl9P Ul9OVUxMKHRlc3QsIG9sZF9jb25uX3N0YXRlKTsKPiArCj4gKwluZXdfY29ubl9zdGF0ZS0+aGRt aS5icm9hZGNhc3RfcmdiID0gb2xkX2Nvbm5fc3RhdGUtPmhkbWkuYnJvYWRjYXN0X3JnYjsKPiAr Cj4gKwlyZXQgPSBkcm1fYXRvbWljX2NoZWNrX29ubHkoc3RhdGUpOwo+ICsJS1VOSVRfQVNTRVJU X0VRKHRlc3QsIHJldCwgMCk7Cj4gKwo+ICsJb2xkX2Nvbm5fc3RhdGUgPSBkcm1fYXRvbWljX2dl dF9vbGRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjb25uKTsKPiArCUtVTklUX0FTU0VSVF9OT1Rf RVJSX09SX05VTEwodGVzdCwgb2xkX2Nvbm5fc3RhdGUpOwo+ICsKPiArCW5ld19jb25uX3N0YXRl ID0gZHJtX2F0b21pY19nZXRfbmV3X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwgY29ubik7Cj4gKwlL VU5JVF9BU1NFUlRfTk9UX0VSUl9PUl9OVUxMKHRlc3QsIG5ld19jb25uX3N0YXRlKTsKPiArCj4g KwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwKPiArCQkJb2xkX2Nvbm5fc3RhdGUtPmhkbWkuYnJvYWRj YXN0X3JnYiwKPiArCQkJbmV3X2Nvbm5fc3RhdGUtPmhkbWkuYnJvYWRjYXN0X3JnYik7Cj4gKwo+ ICsJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRj KTsKPiArCUtVTklUX0FTU0VSVF9OT1RfRVJSX09SX05VTEwodGVzdCwgY3J0Y19zdGF0ZSk7Cj4g KwlLVU5JVF9FWFBFQ1RfRkFMU0UodGVzdCwgY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkKTsKPiAr fQo+ICsKPiArc3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIGRybV9hdG9taWNfaGVscGVyX2Nvbm5l Y3Rvcl9oZG1pX2NoZWNrX3Rlc3RzW10gPSB7Cj4gKwlLVU5JVF9DQVNFKGRybV90ZXN0X2NoZWNr X2Jyb2FkY2FzdF9yZ2JfY3J0Y19tb2RlX2NoYW5nZWQpLAo+ICsJS1VOSVRfQ0FTRShkcm1fdGVz dF9jaGVja19icm9hZGNhc3RfcmdiX2NydGNfbW9kZV9ub3RfY2hhbmdlZCksCj4gKwl7IH0KPiAr fTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3Qga3VuaXRfc3VpdGUgZHJtX2F0b21pY19oZWxwZXJfY29u bmVjdG9yX2hkbWlfY2hlY2tfdGVzdF9zdWl0ZSA9IHsKPiArCS5uYW1lCQk9ICJkcm1fYXRvbWlj X2hlbHBlcl9jb25uZWN0b3JfaGRtaV9jaGVjayIsCj4gKwkudGVzdF9jYXNlcwk9IGRybV9hdG9t aWNfaGVscGVyX2Nvbm5lY3Rvcl9oZG1pX2NoZWNrX3Rlc3RzLAo+ICt9Owo+ICsKPiArLyoKPiAr ICogVGVzdCB0aGF0IHRoZSB2YWx1ZSBvZiB0aGUgQnJvYWRjYXN0IFJHQiBwcm9wZXJ0eSBvdXQg b2YgcmVzZXQgaXMgc2V0Cj4gKyAqIHRvIGF1dG8uCj4gKyAqLwo+ICtzdGF0aWMgdm9pZCBkcm1f dGVzdF9jaGVja19icm9hZGNhc3RfcmdiX3ZhbHVlKHN0cnVjdCBrdW5pdCAqdGVzdCkKPiArewo+ ICsJc3RydWN0IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9oZG1pX3ByaXYgKnByaXY7Cj4g KwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKPiArCXN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uOwo+ICsKPiArCXByaXYgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0 b3JfaGRtaV9pbml0KHRlc3QpOwo+ICsJS1VOSVRfQVNTRVJUX05PVF9OVUxMKHRlc3QsIHByaXYp Owo+ICsKPiArCWNvbm4gPSAmcHJpdi0+Y29ubmVjdG9yOwo+ICsJY29ubl9zdGF0ZSA9IGNvbm4t PnN0YXRlOwo+ICsJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIGNvbm5fc3RhdGUtPmhkbWkuYnJvYWRj YXN0X3JnYiwgRFJNX0hETUlfQlJPQURDQVNUX1JHQl9BVVRPKTsKPiArfQo+ICsKPiArc3RhdGlj IHN0cnVjdCBrdW5pdF9jYXNlIGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9oZG1pX3Jlc2V0 X3Rlc3RzW10gPSB7Cj4gKwlLVU5JVF9DQVNFKGRybV90ZXN0X2NoZWNrX2Jyb2FkY2FzdF9yZ2Jf dmFsdWUpLAo+ICsJeyB9Cj4gK307Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIGRy bV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9oZG1pX3Jlc2V0X3Rlc3Rfc3VpdGUgPSB7Cj4gKwku bmFtZQkJPSAiZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfcmVzZXQiLAo+ICsJLnRl c3RfY2FzZXMgCT0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfcmVzZXRfdGVzdHMs Cj4gK307Cj4gKwo+ICtrdW5pdF90ZXN0X3N1aXRlcygKPiArCSZkcm1fYXRvbWljX2hlbHBlcl9j b25uZWN0b3JfaGRtaV9jaGVja190ZXN0X3N1aXRlLAo+ICsJJmRybV9hdG9taWNfaGVscGVyX2Nv bm5lY3Rvcl9oZG1pX3Jlc2V0X3Rlc3Rfc3VpdGUsCj4gKyk7Cj4gKwo+ICtNT0RVTEVfQVVUSE9S KCJNYXhpbWUgUmlwYXJkIDxtcmlwYXJkQGtlcm5lbC5vcmc+Iik7Cj4gK01PRFVMRV9MSUNFTlNF KCJHUEwiKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jb25uZWN0 b3JfdGVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jb25uZWN0b3JfdGVzdC5jCj4g aW5kZXggOGYwNzBjYWNhYjNiLi40MWQzM2RlYTMwYWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3Rlc3RzL2RybV9jb25uZWN0b3JfdGVzdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3Rlc3RzL2RybV9jb25uZWN0b3JfdGVzdC5jCj4gQEAgLTEyLDYgKzEyLDggQEAKPiAgCj4gICNp bmNsdWRlIDxrdW5pdC90ZXN0Lmg+Cj4gIAo+ICsjaW5jbHVkZSAiLi4vZHJtX2NydGNfaW50ZXJu YWwuaCIKPiArCj4gIHN0cnVjdCBkcm1fY29ubmVjdG9yX2luaXRfcHJpdiB7Cj4gIAlzdHJ1Y3Qg ZHJtX2RldmljZSBkcm07Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBjb25uZWN0b3I7Cj4gQEAg LTM1NywxMCArMzU5LDEyMyBAQCBzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIGRybV9nZXRfdHZf bW9kZV9mcm9tX25hbWVfdGVzdF9zdWl0ZSA9IHsKPiAgCS50ZXN0X2Nhc2VzID0gZHJtX2dldF90 dl9tb2RlX2Zyb21fbmFtZV90ZXN0cywKPiAgfTsKPiAgCj4gK3N0cnVjdCBkcm1faGRtaV9jb25u ZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZV90ZXN0IHsKPiArCXVuc2lnbmVkIGludCBraW5k Owo+ICsJY29uc3QgY2hhciAqZXhwZWN0ZWRfbmFtZTsKPiArfTsKPiArCj4gKyNkZWZpbmUgQlJP QURDQVNUX1JHQl9URVNUKF9raW5kLCBfbmFtZSkJXAo+ICsJewkJCQkJXAo+ICsJCS5raW5kID0g X2tpbmQsCQkJXAo+ICsJCS5leHBlY3RlZF9uYW1lID0gX25hbWUsCQlcCj4gKwl9Cj4gKwo+ICtz dGF0aWMgdm9pZCBkcm1fdGVzdF9kcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2Jf bmFtZShzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gK3sKPiArCWNvbnN0IHN0cnVjdCBkcm1faGRtaV9j b25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZV90ZXN0ICpwYXJhbXMgPQo+ICsJCXRlc3Qt PnBhcmFtX3ZhbHVlOwo+ICsKPiArCUtVTklUX0VYUEVDVF9TVFJFUSh0ZXN0LAo+ICsJCQkgICBk cm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZShwYXJhbXMtPmtpbmQpLAo+ ICsJCQkgICBwYXJhbXMtPmV4cGVjdGVkX25hbWUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3QK PiArc3RydWN0IGRybV9oZG1pX2Nvbm5lY3Rvcl9nZXRfYnJvYWRjYXN0X3JnYl9uYW1lX3Rlc3QK PiArZHJtX2hkbWlfY29ubmVjdG9yX2dldF9icm9hZGNhc3RfcmdiX25hbWVfdmFsaWRfdGVzdHNb XSA9IHsKPiArCUJST0FEQ0FTVF9SR0JfVEVTVChEUk1fSERNSV9CUk9BRENBU1RfUkdCX0FVVE8s ICJBdXRvbWF0aWMiKSwKPiArCUJST0FEQ0FTVF9SR0JfVEVTVChEUk1fSERNSV9CUk9BRENBU1Rf UkdCX0ZVTEwsICJGdWxsIiksCj4gKwlCUk9BRENBU1RfUkdCX1RFU1QoRFJNX0hETUlfQlJPQURD QVNUX1JHQl9MSU1JVEVELCAiTGltaXRlZCAxNjoyMzUiKSwKPiArfTsKPiArCj4gK3N0YXRpYyB2 b2lkCj4gK2RybV9oZG1pX2Nvbm5lY3Rvcl9nZXRfYnJvYWRjYXN0X3JnYl9uYW1lX3ZhbGlkX2Rl c2MoY29uc3Qgc3RydWN0IGRybV9oZG1pX2Nvbm5lY3Rvcl9nZXRfYnJvYWRjYXN0X3JnYl9uYW1l X3Rlc3QgKnQsCj4gKwkJCQkJCSAgICAgY2hhciAqZGVzYykKPiArewo+ICsJc3ByaW50ZihkZXNj LCAiJXMiLCB0LT5leHBlY3RlZF9uYW1lKTsKPiArfQo+ICsKPiArS1VOSVRfQVJSQVlfUEFSQU0o ZHJtX2hkbWlfY29ubmVjdG9yX2dldF9icm9hZGNhc3RfcmdiX25hbWVfdmFsaWQsCj4gKwkJICBk cm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZV92YWxpZF90ZXN0cywKPiAr CQkgIGRybV9oZG1pX2Nvbm5lY3Rvcl9nZXRfYnJvYWRjYXN0X3JnYl9uYW1lX3ZhbGlkX2Rlc2Mp Owo+ICsKPiArc3RhdGljIHZvaWQgZHJtX3Rlc3RfZHJtX2hkbWlfY29ubmVjdG9yX2dldF9icm9h ZGNhc3RfcmdiX25hbWVfaW52YWxpZChzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gK3sKPiArCUtVTklU X0VYUEVDVF9OVUxMKHRlc3QsIGRybV9oZG1pX2Nvbm5lY3Rvcl9nZXRfYnJvYWRjYXN0X3JnYl9u YW1lKDMpKTsKPiArfTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSBkcm1faGRtaV9j b25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZV90ZXN0c1tdID0gewo+ICsJS1VOSVRfQ0FT RV9QQVJBTShkcm1fdGVzdF9kcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFt ZSwKPiArCQkJIGRybV9oZG1pX2Nvbm5lY3Rvcl9nZXRfYnJvYWRjYXN0X3JnYl9uYW1lX3ZhbGlk X2dlbl9wYXJhbXMpLAo+ICsJS1VOSVRfQ0FTRShkcm1fdGVzdF9kcm1faGRtaV9jb25uZWN0b3Jf Z2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZV9pbnZhbGlkKSwKPiArCXsgfQo+ICt9Owo+ICsKPiArc3Rh dGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9y Z2JfbmFtZV90ZXN0X3N1aXRlID0gewo+ICsJLm5hbWUgPSAiZHJtX2hkbWlfY29ubmVjdG9yX2dl dF9icm9hZGNhc3RfcmdiX25hbWUiLAo+ICsJLnRlc3RfY2FzZXMgPSBkcm1faGRtaV9jb25uZWN0 b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZV90ZXN0cywKPiArfTsKPiArCj4gK3N0YXRpYyB2b2lk IGRybV90ZXN0X2RybV9jb25uZWN0b3JfYXR0YWNoX2Jyb2FkY2FzdF9yZ2JfcHJvcGVydHkoc3Ry dWN0IGt1bml0ICp0ZXN0KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9pbml0X3ByaXYg KnByaXYgPSB0ZXN0LT5wcml2Owo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9 ICZwcml2LT5jb25uZWN0b3I7Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wOwo+ICsJaW50 IHJldDsKPiArCj4gKwlyZXQgPSBkcm1tX2Nvbm5lY3Rvcl9pbml0KCZwcml2LT5kcm0sIGNvbm5l Y3RvciwKPiArCQkJCSAgJmR1bW15X2Z1bmNzLAo+ICsJCQkJICBEUk1fTU9ERV9DT05ORUNUT1Jf SERNSUEsCj4gKwkJCQkgICZwcml2LT5kZGMpOwo+ICsJS1VOSVRfQVNTRVJUX0VRKHRlc3QsIHJl dCwgMCk7Cj4gKwo+ICsJcmV0ID0gZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfYnJvYWRjYXN0X3JnYl9w cm9wZXJ0eShjb25uZWN0b3IpOwo+ICsJS1VOSVRfQVNTRVJUX0VRKHRlc3QsIHJldCwgMCk7Cj4g Kwo+ICsJcHJvcCA9IGNvbm5lY3Rvci0+YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eTsKPiArCUtVTklU X0FTU0VSVF9OT1RfTlVMTCh0ZXN0LCBwcm9wKTsKPiArCUtVTklUX0VYUEVDVF9OT1RfTlVMTCh0 ZXN0LCBkcm1fbW9kZV9vYmpfZmluZF9wcm9wX2lkKCZjb25uZWN0b3ItPmJhc2UsIHByb3AtPmJh c2UuaWQpKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZHJtX3Rlc3RfZHJtX2Nvbm5lY3Rvcl9h dHRhY2hfYnJvYWRjYXN0X3JnYl9wcm9wZXJ0eV9oZG1pX2Nvbm5lY3RvcihzdHJ1Y3Qga3VuaXQg KnRlc3QpCj4gK3sKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX2luaXRfcHJpdiAqcHJpdiA9IHRl c3QtPnByaXY7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJnByaXYtPmNv bm5lY3RvcjsKPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3A7Cj4gKwlpbnQgcmV0Owo+ICsK PiArCXJldCA9IGRybW1fY29ubmVjdG9yX2hkbWlfaW5pdCgmcHJpdi0+ZHJtLCBjb25uZWN0b3Is Cj4gKwkJCQkgICAgICAgJmR1bW15X2Z1bmNzLAo+ICsJCQkJICAgICAgIERSTV9NT0RFX0NPTk5F Q1RPUl9IRE1JQSwKPiArCQkJCSAgICAgICAmcHJpdi0+ZGRjKTsKPiArCUtVTklUX0VYUEVDVF9F USh0ZXN0LCByZXQsIDApOwo+ICsKPiArCXJldCA9IGRybV9jb25uZWN0b3JfYXR0YWNoX2Jyb2Fk Y2FzdF9yZ2JfcHJvcGVydHkoY29ubmVjdG9yKTsKPiArCUtVTklUX0FTU0VSVF9FUSh0ZXN0LCBy ZXQsIDApOwo+ICsKPiArCXByb3AgPSBjb25uZWN0b3ItPmJyb2FkY2FzdF9yZ2JfcHJvcGVydHk7 Cj4gKwlLVU5JVF9BU1NFUlRfTk9UX05VTEwodGVzdCwgcHJvcCk7Cj4gKwlLVU5JVF9FWFBFQ1Rf Tk9UX05VTEwodGVzdCwgZHJtX21vZGVfb2JqX2ZpbmRfcHJvcF9pZCgmY29ubmVjdG9yLT5iYXNl LCBwcm9wLT5iYXNlLmlkKSk7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSBk cm1fY29ubmVjdG9yX2F0dGFjaF9icm9hZGNhc3RfcmdiX3Byb3BlcnR5X3Rlc3RzW10gPSB7Cj4g KwlLVU5JVF9DQVNFKGRybV90ZXN0X2RybV9jb25uZWN0b3JfYXR0YWNoX2Jyb2FkY2FzdF9yZ2Jf cHJvcGVydHkpLAo+ICsJS1VOSVRfQ0FTRShkcm1fdGVzdF9kcm1fY29ubmVjdG9yX2F0dGFjaF9i cm9hZGNhc3RfcmdiX3Byb3BlcnR5X2hkbWlfY29ubmVjdG9yKSwKPiArCXsgfQo+ICt9Owo+ICsK PiArc3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBkcm1fY29ubmVjdG9yX2F0dGFjaF9icm9hZGNh c3RfcmdiX3Byb3BlcnR5X3Rlc3Rfc3VpdGUgPSB7Cj4gKwkubmFtZSA9ICJkcm1fY29ubmVjdG9y X2F0dGFjaF9icm9hZGNhc3RfcmdiX3Byb3BlcnR5IiwKPiArCS5pbml0ID0gZHJtX3Rlc3RfY29u bmVjdG9yX2luaXQsCj4gKwkudGVzdF9jYXNlcyA9IGRybV9jb25uZWN0b3JfYXR0YWNoX2Jyb2Fk Y2FzdF9yZ2JfcHJvcGVydHlfdGVzdHMsCj4gK307Cj4gKwo+ICBrdW5pdF90ZXN0X3N1aXRlcygK PiAgCSZkcm1tX2Nvbm5lY3Rvcl9oZG1pX2luaXRfdGVzdF9zdWl0ZSwKPiAgCSZkcm1tX2Nvbm5l Y3Rvcl9pbml0X3Rlc3Rfc3VpdGUsCj4gLQkmZHJtX2dldF90dl9tb2RlX2Zyb21fbmFtZV90ZXN0 X3N1aXRlCj4gKwkmZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfYnJvYWRjYXN0X3JnYl9wcm9wZXJ0eV90 ZXN0X3N1aXRlLAo+ICsJJmRybV9nZXRfdHZfbW9kZV9mcm9tX25hbWVfdGVzdF9zdWl0ZSwKPiAr CSZkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZV90ZXN0X3N1aXRlCj4g ICk7Cj4gIAo+ICBNT0RVTEVfQVVUSE9SKCJNYXhpbWUgUmlwYXJkIDxtYXhpbWVAY2Vybm8udGVj aD4iKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9rdW5pdF9lZGlk LmggYi9kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2t1bml0X2VkaWQuaAo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi4yYmJhMzE2ZGUwNjQKPiAtLS0gL2Rldi9u dWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9rdW5pdF9lZGlkLmgKPiBAQCAt MCwwICsxLDEwNiBAQAo+ICsjaWZuZGVmIERSTV9LVU5JVF9FRElEX0hfCj4gKyNkZWZpbmUgRFJN X0tVTklUX0VESURfSF8KPiArCj4gKy8qCj4gKyAqIGVkaWQtZGVjb2RlIChoZXgpOgo+ICsgKgo+ ICsgKiAwMCBmZiBmZiBmZiBmZiBmZiBmZiAwMCAzMSBkOCAyYSAwMCAwMCAwMCAwMCAwMAo+ICsg KiAwMCAyMSAwMSAwMyA4MSBhMCA1YSA3OCAwMiAwMCAwMCAwMCAwMCAwMCAwMCAwMAo+ICsgKiAw MCAwMCAwMCAyMCAwMCAwMCAwMSAwMSAwMSAwMSAwMSAwMSAwMSAwMSAwMSAwMQo+ICsgKiAwMSAw MSAwMSAwMSAwMSAwMSAwMiAzYSA4MCAxOCA3MSAzOCAyZCA0MCA1OCAyYwo+ICsgKiA0NSAwMCA0 MCA4NCA2MyAwMCAwMCAxZSAwMCAwMCAwMCBmYyAwMCA1NCA2NSA3Mwo+ICsgKiA3NCAyMCA0NSA0 NCA0OSA0NCAwYSAyMCAyMCAyMCAwMCAwMCAwMCBmZCAwMCAzMgo+ICsgKiA0NiAxZSA0NiAwZiAw MCAwYSAyMCAyMCAyMCAyMCAyMCAyMCAwMCAwMCAwMCAxMAo+ICsgKiAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMSA5Mgo+ICsgKgo+ICsgKiAwMiAwMyAxYiA4MSBl MyAwNSAwMCAyMCA0MSAxMCBlMiAwMCA0YSA2ZCAwMyAwYwo+ICsgKiAwMCAxMiAzNCAwMCAyOCAy MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMAo+ICsgKiAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMAo+ICsgKiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMAo+ICsgKiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMAo+ICsgKiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMAo+ICsgKiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMAo+ICsgKiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCBkMAo+ICsgKgo+ICsgKiAtLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIEJs b2NrIDAsIEJhc2UgRURJRDoKPiArICogICBFRElEIFN0cnVjdHVyZSBWZXJzaW9uICYgUmV2aXNp b246IDEuMwo+ICsgKiAgIFZlbmRvciAmIFByb2R1Y3QgSWRlbnRpZmljYXRpb246Cj4gKyAqICAg ICBNYW51ZmFjdHVyZXI6IExOWAo+ICsgKiAgICAgTW9kZWw6IDQyCj4gKyAqICAgICBNYWRlIGlu OiAyMDIzCj4gKyAqICAgQmFzaWMgRGlzcGxheSBQYXJhbWV0ZXJzICYgRmVhdHVyZXM6Cj4gKyAq ICAgICBEaWdpdGFsIGRpc3BsYXkKPiArICogICAgIERGUCAxLnggY29tcGF0aWJsZSBUTURTCj4g KyAqICAgICBNYXhpbXVtIGltYWdlIHNpemU6IDE2MCBjbSB4IDkwIGNtCj4gKyAqICAgICBHYW1t YTogMi4yMAo+ICsgKiAgICAgTW9ub2Nocm9tZSBvciBncmF5c2NhbGUgZGlzcGxheQo+ICsgKiAg ICAgRmlyc3QgZGV0YWlsZWQgdGltaW5nIGlzIHRoZSBwcmVmZXJyZWQgdGltaW5nCj4gKyAqICAg Q29sb3IgQ2hhcmFjdGVyaXN0aWNzOgo+ICsgKiAgICAgUmVkICA6IDAuMDAwMCwgMC4wMDAwCj4g KyAqICAgICBHcmVlbjogMC4wMDAwLCAwLjAwMDAKPiArICogICAgIEJsdWUgOiAwLjAwMDAsIDAu MDAwMAo+ICsgKiAgICAgV2hpdGU6IDAuMDAwMCwgMC4wMDAwCj4gKyAqICAgRXN0YWJsaXNoZWQg VGltaW5ncyBJICYgSUk6Cj4gKyAqICAgICBETVQgMHgwNDogICA2NDB4NDgwICAgIDU5Ljk0MDQ3 NiBIeiAgIDQ6MyAgICAgMzEuNDY5IGtIeiAgICAgMjUuMTc1MDAwIE1Iego+ICsgKiAgIFN0YW5k YXJkIFRpbWluZ3M6IG5vbmUKPiArICogICBEZXRhaWxlZCBUaW1pbmcgRGVzY3JpcHRvcnM6Cj4g KyAqICAgICBEVEQgMTogIDE5MjB4MTA4MCAgIDYwLjAwMDAwMCBIeiAgMTY6OSAgICAgNjcuNTAw IGtIeiAgICAxNDguNTAwMDAwIE1IeiAoMTYwMCBtbSB4IDkwMCBtbSkKPiArICogICAgICAgICAg ICAgICAgICBIZnJvbnQgICA4OCBIc3luYyAgNDQgSGJhY2sgIDE0OCBIcG9sIFAKPiArICogICAg ICAgICAgICAgICAgICBWZnJvbnQgICAgNCBWc3luYyAgIDUgVmJhY2sgICAzNiBWcG9sIFAKPiAr ICogICAgIERpc3BsYXkgUHJvZHVjdCBOYW1lOiAnVGVzdCBFRElEJwo+ICsgKiAgICAgRGlzcGxh eSBSYW5nZSBMaW1pdHM6Cj4gKyAqICAgICAgIE1vbml0b3IgcmFuZ2VzIChHVEYpOiA1MC03MCBI eiBWLCAzMC03MCBrSHogSCwgbWF4IGRvdGNsb2NrIDE1MCBNSHoKPiArICogICAgIER1bW15IERl c2NyaXB0b3I6Cj4gKyAqICAgRXh0ZW5zaW9uIGJsb2NrczogMQo+ICsgKiBDaGVja3N1bTogMHg5 Mgo+ICsgKgo+ICsgKiAtLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIEJsb2NrIDEsIENUQS04 NjEgRXh0ZW5zaW9uIEJsb2NrOgo+ICsgKiAgIFJldmlzaW9uOiAzCj4gKyAqICAgVW5kZXJzY2Fu cyBJVCBWaWRlbyBGb3JtYXRzIGJ5IGRlZmF1bHQKPiArICogICBOYXRpdmUgZGV0YWlsZWQgbW9k ZXM6IDEKPiArICogICBDb2xvcmltZXRyeSBEYXRhIEJsb2NrOgo+ICsgKiAgICAgc1JHQgo+ICsg KiAgIFZpZGVvIERhdGEgQmxvY2s6Cj4gKyAqICAgICBWSUMgIDE2OiAgMTkyMHgxMDgwICAgNjAu MDAwMDAwIEh6ICAxNjo5ICAgICA2Ny41MDAga0h6ICAgIDE0OC41MDAwMDAgTUh6Cj4gKyAqICAg VmlkZW8gQ2FwYWJpbGl0eSBEYXRhIEJsb2NrOgo+ICsgKiAgICAgWUNiQ3IgcXVhbnRpemF0aW9u OiBObyBEYXRhCj4gKyAqICAgICBSR0IgcXVhbnRpemF0aW9uOiBTZWxlY3RhYmxlICh2aWEgQVZJ IFEpCj4gKyAqICAgICBQVCBzY2FuIGJlaGF2aW9yOiBObyBEYXRhCj4gKyAqICAgICBJVCBzY2Fu IGJlaGF2aW9yOiBBbHdheXMgVW5kZXJzY2FubmVkCj4gKyAqICAgICBDRSBzY2FuIGJlaGF2aW9y OiBBbHdheXMgVW5kZXJzY2FubmVkCj4gKyAqICAgVmVuZG9yLVNwZWNpZmljIERhdGEgQmxvY2sg KEhETUkpLCBPVUkgMDAtMEMtMDM6Cj4gKyAqICAgICBTb3VyY2UgcGh5c2ljYWwgYWRkcmVzczog MS4yLjMuNAo+ICsgKiAgICAgTWF4aW11bSBUTURTIGNsb2NrOiAyMDAgTUh6Cj4gKyAqICAgICBF eHRlbmRlZCBIRE1JIHZpZGVvIGRldGFpbHM6Cj4gKyAqIENoZWNrc3VtOiAweGQwICBVbnVzZWQg c3BhY2UgaW4gRXh0ZW5zaW9uIEJsb2NrOiAxMDAgYnl0ZXMKPiArICovCj4gK2NvbnN0IHVuc2ln bmVkIGNoYXIgdGVzdF9lZGlkX2hkbWlfMTA4MHBfcmdiX21heF8yMDBtaHpbXSA9IHsKPiArICAw eDAwLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweDAwLCAweDMxLCAweGQ4 LCAweDJhLCAweDAwLAo+ICsgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjEsIDB4 MDEsIDB4MDMsIDB4ODEsIDB4YTAsIDB4NWEsIDB4NzgsCj4gKyAgMHgwMiwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMCwKPiAr ICAweDAwLCAweDAwLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAw eDAxLCAweDAxLCAweDAxLAo+ICsgIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEs IDB4MDIsIDB4M2EsIDB4ODAsIDB4MTgsIDB4NzEsIDB4MzgsCj4gKyAgMHgyZCwgMHg0MCwgMHg1 OCwgMHgyYywgMHg0NSwgMHgwMCwgMHg0MCwgMHg4NCwgMHg2MywgMHgwMCwgMHgwMCwgMHgxZSwK PiArICAweDAwLCAweDAwLCAweDAwLCAweGZjLCAweDAwLCAweDU0LCAweDY1LCAweDczLCAweDc0 LCAweDIwLCAweDQ1LCAweDQ0LAo+ICsgIDB4NDksIDB4NDQsIDB4MGEsIDB4MjAsIDB4MjAsIDB4 MjAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZmQsIDB4MDAsIDB4MzIsCj4gKyAgMHg0NiwgMHgwMCwg MHgwMCwgMHhjNCwgMHgwMCwgMHgwYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgy MCwKPiArICAweDAwLCAweDAwLCAweDAwLCAweDEwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLAo+ICsgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDEsIDB4NDEsIDB4MDIsIDB4MDMsIDB4MWIsIDB4ODEsCj4gKyAgMHhlMywgMHgw NSwgMHgwMCwgMHgyMCwgMHg0MSwgMHgxMCwgMHhlMiwgMHgwMCwgMHg0YSwgMHg2ZCwgMHgwMywg MHgwYywKPiArICAweDAwLCAweDEyLCAweDM0LCAweDAwLCAweDI4LCAweDIwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLAo+ICsgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCj4gKyAgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwKPiArICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAo+ICsgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCj4gKyAgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwKPiArICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAo+ICsgIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCj4gKyAg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwKPiArICAweDAwLCAweDAwLCAweDAwLCAweGQwCj4gK307Cj4gKwo+ICsj ZW5kaWYgLy8gRFJNX0tVTklUX0VESURfSF8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJt X2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gaW5kZXggMDAwYTJh MTU2NjE5Li4zODY3YTRjMDFiNzggMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5l Y3Rvci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gQEAgLTM2OCw2ICsz NjgsMzAgQEAgZW51bSBkcm1fcGFuZWxfb3JpZW50YXRpb24gewo+ICAJRFJNX01PREVfUEFORUxf T1JJRU5UQVRJT05fUklHSFRfVVAsCj4gIH07Cj4gIAo+ICsvKioKPiArICogZW51bSBkcm1faGRt aV9icm9hZGNhc3RfcmdiIC0gQnJvYWRjYXN0IFJHQiBTZWxlY3Rpb24gZm9yIGFuIEhETUkgQGRy bV9jb25uZWN0b3IKPiArICovCj4gK2VudW0gZHJtX2hkbWlfYnJvYWRjYXN0X3JnYiB7Cj4gKwkv KioKPiArCSAqIEBEUk1fSERNSV9CUk9BRENBU1RfUkdCX0FVVE86IFRoZSBSR0IgcmFuZ2UgaXMg c2VsZWN0ZWQKPiArCSAqIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIG1vZGUuCj4gKwkgKi8K PiArCURSTV9IRE1JX0JST0FEQ0FTVF9SR0JfQVVUTywKPiArCj4gKwkvKioKPiArCSAqIEBEUk1f SERNSV9CUk9BRENBU1RfUkdCX0ZVTEw6IEZ1bGwgcmFuZ2UgUkdCIGlzIGZvcmNlZC4KPiArCSAq Lwo+ICsJRFJNX0hETUlfQlJPQURDQVNUX1JHQl9GVUxMLAo+ICsKPiArCS8qKgo+ICsJICogQERS TV9IRE1JX0JST0FEQ0FTVF9SR0JfTElNSVRFRDogTGltaXRlZCByYW5nZSBSR0IgaXMgZm9yY2Vk Lgo+ICsJICovCj4gKwlEUk1fSERNSV9CUk9BRENBU1RfUkdCX0xJTUlURUQsCj4gK307Cj4gKwo+ ICtjb25zdCBjaGFyICoKPiArZHJtX2hkbWlfY29ubmVjdG9yX2dldF9icm9hZGNhc3RfcmdiX25h bWUoZW51bSBkcm1faGRtaV9icm9hZGNhc3RfcmdiIGJyb2FkY2FzdF9yZ2IpOwo+ICsKPiAgLyoq Cj4gICAqIHN0cnVjdCBkcm1fbW9uaXRvcl9yYW5nZV9pbmZvIC0gUGFuZWwncyBNb25pdG9yIHJh bmdlIGluIEVESUQgZm9yCj4gICAqICZkcm1fZGlzcGxheV9pbmZvCj4gQEAgLTEwMzcsNiArMTA2 MSwxMSBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSB7Cj4gIAkgKiBAZHJtX2F0b21pY19o ZWxwZXJfY29ubmVjdG9yX2hkbWlfY2hlY2soKS4KPiAgCSAqLwo+ICAJc3RydWN0IHsKPiArCQkv KioKPiArCQkgKiBAYnJvYWRjYXN0X3JnYjogQ29ubmVjdG9yIHByb3BlcnR5IHRvIHBhc3MgdGhl Cj4gKwkJICogQnJvYWRjYXN0IFJHQiBzZWxlY3Rpb24gdmFsdWUuCj4gKwkJICovCj4gKwkJZW51 bSBkcm1faGRtaV9icm9hZGNhc3RfcmdiIGJyb2FkY2FzdF9yZ2I7Cj4gIAl9IGhkbWk7Cj4gIH07 Cj4gIAo+IEBAIC0xNzA2LDYgKzE3MzUsMTIgQEAgc3RydWN0IGRybV9jb25uZWN0b3Igewo+ICAJ ICovCj4gIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcml2YWN5X3NjcmVlbl9od19zdGF0ZV9wcm9w ZXJ0eTsKPiAgCj4gKwkvKioKPiArCSAqIEBicm9hZGNhc3RfcmdiX3Byb3BlcnR5OiBDb25uZWN0 b3IgcHJvcGVydHkgdG8gc2V0IHRoZQo+ICsJICogQnJvYWRjYXN0IFJHQiBzZWxlY3Rpb24gdG8g b3V0cHV0IHdpdGguCj4gKwkgKi8KPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKmJyb2FkY2FzdF9y Z2JfcHJvcGVydHk7Cj4gKwo+ICAjZGVmaW5lIERSTV9DT05ORUNUT1JfUE9MTF9IUEQgKDEgPDwg MCkKPiAgI2RlZmluZSBEUk1fQ09OTkVDVE9SX1BPTExfQ09OTkVDVCAoMSA8PCAxKQo+ICAjZGVm aW5lIERSTV9DT05ORUNUT1JfUE9MTF9ESVNDT05ORUNUICgxIDw8IDIpCj4gQEAgLTIwMjYsNiAr MjA2MSw3IEBAIGludCBkcm1fY29ubmVjdG9yX2F0dGFjaF9zY2FsaW5nX21vZGVfcHJvcGVydHko c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkJCQkgICAgICAgdTMyIHNjYWxp bmdfbW9kZV9tYXNrKTsKPiAgaW50IGRybV9jb25uZWN0b3JfYXR0YWNoX3Zycl9jYXBhYmxlX3By b3BlcnR5KAo+ICAJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICtpbnQgZHJt X2Nvbm5lY3Rvcl9hdHRhY2hfYnJvYWRjYXN0X3JnYl9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKTsKPiAgaW50IGRybV9jb25uZWN0b3JfYXR0YWNoX2NvbG9yc3BhY2Vf cHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4gIGludCBkcm1fY29u bmVjdG9yX2F0dGFjaF9oZHJfb3V0cHV0X21ldGFkYXRhX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IpOwo+ICBib29sIGRybV9jb25uZWN0b3JfYXRvbWljX2hkcl9tZXRh ZGF0YV9lcXVhbChzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX3N0YXRlLAo+IAo+IC0t IAo+IDIuNDMuMAo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LWFybS1rZXJuZWwK