From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 647463EA97E for ; Tue, 30 Jun 2026 06:38:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782801526; cv=none; b=m1mr/WxBw7TiuDu27sGAVhRFyiKl6QAkr/6sOXB1vcfME4ziu4YULm/tF9XZ0pr+aH5qTpg6Jw9dldYZaNZH2JyP6BaaxrUBx8WC2gNBfKnUboSYjOY3B6Qif7yojRfUAnCpGZytK1jYjgoODuci9F7H+fCURCafnUqHTAbWYbI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782801526; c=relaxed/simple; bh=ZLUbwxhSKNyVvzWOpVIYQl4ML6snSR6y41KBEQtCtqw=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=HAfemCRdu/BrZjmORtV7vSprR5P2KQbbcH7eV21IgG5uY9xVPwsxEY28Uq3y/wG7YbGDKkojayW/2jziPaqjND7NdGyMjDv+rHScKmb/4td1bkeVY3HBLSLlfhEScPxI4m7o4Ei9TNq/zvzq60ILIp6Q2ip0ahC0dFWsqc0dMWI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=Z8szIURZ; arc=none smtp.client-ip=209.85.208.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="Z8szIURZ" Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-697df404e32so8644526a12.0 for ; Mon, 29 Jun 2026 23:38:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1782801516; x=1783406316; darn=vger.kernel.org; h=in-reply-to:autocrypt:from:content-language:references:cc:to :subject:user-agent:mime-version:date:message-id:from:to:cc:subject :date:message-id:reply-to; bh=ZLUbwxhSKNyVvzWOpVIYQl4ML6snSR6y41KBEQtCtqw=; b=Z8szIURZRVEt6Z5zdMI908slGI0eLEqzUrk/XCjtLJYbgqGaCcXLh/1ns0Fp5GwJWi dv02hb3LxPTDuBdAv837yhlGT8O/k75ArJPjv6DsUkQ5nrDBvPR1vJNT9TpaEeTwpfH0 yPaL5ri0d3JDMnnh0Ehtz2te7Zga7ZzJ6i9N8B82/TA6s6RbOxD+/xNpi4psH0UDqbk3 DlFlBl5oYPUZ8V6bltz7CJUXsPei9saHHz9siNAlSu3lj/gtV5HZE1r/XQHerDPrrYcA xLARgUYqrXlWyi9r4iuJ2Z/m+JXMgwL7YfmYaS0GMsP2uKNK7Z9NSrLN2zBKM/EQGU7A B8ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782801516; x=1783406316; h=in-reply-to:autocrypt:from:content-language:references:cc:to :subject:user-agent:mime-version:date:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ZLUbwxhSKNyVvzWOpVIYQl4ML6snSR6y41KBEQtCtqw=; b=c9IYpEoZNM1O2JaDRAIQlEfZ0XsEP4LQOIElfeL9Piu3iVlwIVAv21sktERneSuMiW KV7XBJmVqRHFlrUh/t0SWL2PGC/ZUUs5ERi6Z+TTVFwaZzG7LQT7PpOX71/0OBrg95pI bR/LUShr8NFTuwLmWTEBqA+Gd2RDNqXsb39MXs7wT07Tdr28AQlrQsNriC+jjCCJdiOE qoqqWSFgBMtmpAprlXvmHwX6+hmhsAsC3UeP+A1pKJxOFjEdakM/9YFwni+OHHv3t+ZV X6qmSMgBpvh05JJHItDOnU/SqjmTUQNJJKTYk8q/tzzYPkeWPmD3WyjF5log51/0fSS5 4PRg== X-Forwarded-Encrypted: i=1; AHgh+RrLXhb36ejRSsjfLhDotqKo+fpfSqFaxKmr8b5aTgFM04pCEtCjBFlIYU3NnS4h02jTC/3NTZaqjA==@vger.kernel.org X-Gm-Message-State: AOJu0YxSD6Sh9BpDrAD6z7p7OGfWf7F3KH8VASp6hpJDa2ZZ0mJXASpG Dj/Z/f1ii1aslykj1nHMAc3FXfPDnSzJS8DtbPnnSl+TMFMYW4sJedA/uEbe9mxqIDw= X-Gm-Gg: AfdE7ckVLCw46rpOEOJHnPSyUupObT2306hydQc9tMJ0hoLLgMQNj1BKxWOKm3fXu0o w4OtQKU3Rf2QtqnHOKpQGSijP7ue14cxag4f1vSQ5cWdJk54/qo6WlvYPKWVb2v3g51MzehtZIr QahBoUix4IbVrcANa1P9oGGA/K8qlT0lkba/obCCPRrnBUSV9ANKXftyWYraXRFWXn1Ms7shOkR tHenzoTCcqU3Ve36XlwDJfiTOIh2MflvYdfn2BP1xUTTCf/LIASA1Y+3GxlXKoFX2+zoJjg4msC hzow5y42E4tdsxaL0XfjABBvu3jiTg7JGMtwtygI6WVpI/N/FHvad8JjDj9CFtyJK0I9QyBc1ly cjQeQJ7x1v+DIP7237WTVDbwXqVfnOkRLtnKt9hS7qVAZ1gxuaR4JOUm3PMlwXFBgZ0uoIqZeMx iyEEhRjgE2UFBMETx7we/ykyQmgM8utjle6TgKBPabLMNnHqIkLCR7mfcKZ9/lA6Lk38ZmjwSaG 9cxvMuhFjZK6EE09kH7R0gLTeHijRwsQVgnPhgeF0w= X-Received: by 2002:a05:6402:5519:b0:698:3b7c:7e37 with SMTP id 4fb4d7f45d1cf-69879e40ab9mr910865a12.33.1782801516348; Mon, 29 Jun 2026 23:38:36 -0700 (PDT) Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112? (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de. [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6987c3a42f6sm596006a12.6.2026.06.29.23.38.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 29 Jun 2026 23:38:35 -0700 (PDT) Message-ID: Date: Tue, 30 Jun 2026 08:38:35 +0200 Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 16/32] cpufreq: Stop using 32-bit MSR interfaces To: Zhongqiu Han , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org Cc: "Rafael J. Wysocki" , Viresh Kumar References: <20260629060526.3638272-1-jgross@suse.com> <20260629060526.3638272-17-jgross@suse.com> Content-Language: en-US From: Juergen Gross Autocrypt: addr=jgross@suse.com; keydata= xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw== In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------MuQ4Zg3uAyhS9tCF1azVKHVX" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------MuQ4Zg3uAyhS9tCF1azVKHVX Content-Type: multipart/mixed; boundary="------------iD3tYE2bBBquqKhnq1lCiD65"; protected-headers="v1" From: Juergen Gross To: Zhongqiu Han , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org Cc: "Rafael J. Wysocki" , Viresh Kumar Message-ID: Subject: Re: [PATCH 16/32] cpufreq: Stop using 32-bit MSR interfaces References: <20260629060526.3638272-1-jgross@suse.com> <20260629060526.3638272-17-jgross@suse.com> In-Reply-To: --------------iD3tYE2bBBquqKhnq1lCiD65 Content-Type: multipart/mixed; boundary="------------lsJshUl2sUSfxw0jldYAe3BS" --------------lsJshUl2sUSfxw0jldYAe3BS Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gMjkuMDYuMjYgMTY6NTUsIFpob25ncWl1IEhhbiB3cm90ZToNCj4gT24gNi8yOS8yMDI2 IDI6MDUgUE0sIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBUaGUgMzItYml0IE1TUiBpbnRl cmZhY2VzIHJkbXNyKCkgYW5kIHdybXNyKCkgYXJlIHBsYW5uZWQgdG8gYmUNCj4+IHJlbW92 ZWQuIFVzZSB0aGUgcmVsYXRlZCA2NC1iaXQgdmFyaWFudHMgaW5zdGVhZC4NCj4gDQo+IEhl bGxvIEp1ZXJnZW4sDQo+IA0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3Mg PGpncm9zc0BzdXNlLmNvbT4NCj4+IC0tLQ0KPj4gwqAgZHJpdmVycy9jcHVmcmVxL2FjcGkt Y3B1ZnJlcS5jwqDCoMKgwqDCoMKgIHwgMjIgKysrKy0tLS0NCj4+IMKgIGRyaXZlcnMvY3B1 ZnJlcS9lX3Bvd2Vyc2F2ZXIuY8KgwqDCoMKgwqDCoCB8IDQ4ICsrKysrKysrLS0tLS0tLS0t DQo+PiDCoCBkcml2ZXJzL2NwdWZyZXEvbG9uZ2hhdWwuY8KgwqDCoMKgwqDCoMKgwqDCoMKg IHwgMTUgKysrLS0tDQo+PiDCoCBkcml2ZXJzL2NwdWZyZXEvbG9uZ3J1bi5jwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB8IDc4ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0NCj4+IMKg IGRyaXZlcnMvY3B1ZnJlcS9wb3dlcm5vdy1rNi5jwqDCoMKgwqDCoMKgwqAgfCAxMiArKy0t LQ0KPj4gwqAgZHJpdmVycy9jcHVmcmVxL3Bvd2Vybm93LWs4LmPCoMKgwqDCoMKgwqDCoCB8 IDY3ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQ0KPj4gwqAgZHJpdmVycy9jcHVmcmVxL3Nw ZWVkc3RlcC1jZW50cmluby5jIHwgMTYgKysrLS0tDQo+PiDCoCBkcml2ZXJzL2NwdWZyZXEv c3BlZWRzdGVwLWxpYi5jwqDCoMKgwqDCoCB8IDYzICsrKysrKysrKysrLS0tLS0tLS0tLS0N Cj4+IMKgIDggZmlsZXMgY2hhbmdlZCwgMTY2IGluc2VydGlvbnMoKyksIDE1NSBkZWxldGlv bnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcHVmcmVxL2FjcGktY3B1ZnJl cS5jIGIvZHJpdmVycy9jcHVmcmVxL2FjcGktY3B1ZnJlcS5jDQo+PiBpbmRleCAyMTYzOWQ5 YWM3NTMuLmI0MGZhOTliNWFiMiAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvY3B1ZnJlcS9h Y3BpLWNwdWZyZXEuYw0KPj4gKysrIGIvZHJpdmVycy9jcHVmcmVxL2FjcGktY3B1ZnJlcS5j DQo+PiBAQCAtMjQ2LDMyICsyNDYsMzIgQEAgc3RhdGljIHVuc2lnbmVkIGV4dHJhY3RfZnJl cShzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgDQo+PiAqcG9saWN5LCB1MzIgdmFsKQ0KPj4gwqAg c3RhdGljIHUzMiBjcHVfZnJlcV9yZWFkX2ludGVsKHN0cnVjdCBhY3BpX3BjdF9yZWdpc3Rl ciAqbm90X3VzZWQpDQo+PiDCoCB7DQo+PiAtwqDCoMKgIHUzMiB2YWwsIGR1bW15IF9fYWx3 YXlzX3VudXNlZDsNCj4+ICvCoMKgwqAgdTY0IHZhbDsNCj4+IC3CoMKgwqAgcmRtc3IoTVNS X0lBMzJfUEVSRl9DVEwsIHZhbCwgZHVtbXkpOw0KPj4gLcKgwqDCoCByZXR1cm4gdmFsOw0K Pj4gK8KgwqDCoCByZG1zcnEoTVNSX0lBMzJfUEVSRl9DVEwsIHZhbCk7DQo+PiArwqDCoMKg IHJldHVybiAodTMyKXZhbDsNCj4+IMKgIH0NCj4+IMKgIHN0YXRpYyB2b2lkIGNwdV9mcmVx X3dyaXRlX2ludGVsKHN0cnVjdCBhY3BpX3BjdF9yZWdpc3RlciAqbm90X3VzZWQsIHUzMiB2 YWwpDQo+PiDCoCB7DQo+PiAtwqDCoMKgIHUzMiBsbywgaGk7DQo+PiArwqDCoMKgIHN0cnVj dCBtc3IgbXNydmFsOw0KPj4gLcKgwqDCoCByZG1zcihNU1JfSUEzMl9QRVJGX0NUTCwgbG8s IGhpKTsNCj4+IC3CoMKgwqAgbG8gPSAobG8gJiB+SU5URUxfTVNSX1JBTkdFKSB8ICh2YWwg JiBJTlRFTF9NU1JfUkFOR0UpOw0KPj4gLcKgwqDCoCB3cm1zcihNU1JfSUEzMl9QRVJGX0NU TCwgbG8sIGhpKTsNCj4+ICvCoMKgwqAgcmRtc3JxKE1TUl9JQTMyX1BFUkZfQ1RMLCBtc3J2 YWwucSk7DQo+PiArwqDCoMKgIG1zcnZhbC5oID0gKG1zcnZhbC5oICYgfklOVEVMX01TUl9S QU5HRSkgfCAodmFsICYgSU5URUxfTVNSX1JBTkdFKTsNCj4gDQo+IG1zcnZhbC5sDQoNCk9o LCBpbmRlZWQuDQoNCj4gDQo+IHBsZWFzZSBmZWVsIGZyZWUgdG8gY29ycmVjdCBtZSBpZiB0 aGVyZSBpcyBhbnkgbWlzdW5kZXJzdGFuZGluZy4NCj4gDQo+IGhvdyBhYm91dCB1c2luZyB1 NjQgZGlyZWN0bHk/DQo+IA0KPiAgwqDCoMKgIHU2NCBtc3J2YWw7DQo+ICDCoMKgwqAgcmRt c3JxKE1TUl9JQTMyX1BFUkZfQ1RMLCBtc3J2YWwpOw0KPiAgwqDCoMKgIG1zcnZhbCA9ICht c3J2YWwgJiB+KHU2NClJTlRFTF9NU1JfUkFOR0UpIHwgKHZhbCAmIElOVEVMX01TUl9SQU5H RSk7DQo+ICDCoMKgwqAgd3Jtc3JxKE1TUl9JQTMyX1BFUkZfQ1RMLCBtc3J2YWwpOw0KPiAN Cj4gQXMgcGVyIG15IHVuZGVyc3RhbmRpbmcsIHdlIGNhbiB1c2UgdTY0IGluc3RlYWQgb2Yg c3RydWN0IG1zciBpbiBtYW55DQo+IG90aGVyIHBsYWNlcyBpbiB0aGlzIHBhdGNoIGFzIHdl bGwuDQoNCkkgZGlkbid0IGxvb2sgYXQgYWxsIHRoZSBNU1IgZGVmaW5pdGlvbnMgdG8gZmlu ZCBvdXQgd2hldGhlciBhIHBsYWluIHU2NCB3b3VsZA0Kd29yay4NCg0KV2lsbCBsb29rIGlu dG8gdGhpcyBpbiBtb3JlIGRldGFpbC4NCg0KPiANCj4+ICvCoMKgwqAgd3Jtc3JxKE1TUl9J QTMyX1BFUkZfQ1RMLCBtc3J2YWwucSk7DQo+PiDCoCB9DQo+PiDCoCBzdGF0aWMgdTMyIGNw dV9mcmVxX3JlYWRfYW1kKHN0cnVjdCBhY3BpX3BjdF9yZWdpc3RlciAqbm90X3VzZWQpDQo+ PiDCoCB7DQo+PiAtwqDCoMKgIHUzMiB2YWwsIGR1bW15IF9fYWx3YXlzX3VudXNlZDsNCj4+ ICvCoMKgwqAgdTY0IHZhbDsNCj4+IC3CoMKgwqAgcmRtc3IoTVNSX0FNRF9QRVJGX0NUTCwg dmFsLCBkdW1teSk7DQo+PiAtwqDCoMKgIHJldHVybiB2YWw7DQo+PiArwqDCoMKgIHJkbXNy cShNU1JfQU1EX1BFUkZfQ1RMLCB2YWwpOw0KPj4gK8KgwqDCoCByZXR1cm4gKHUzMil2YWw7 DQo+PiDCoCB9DQo+PiDCoCBzdGF0aWMgdm9pZCBjcHVfZnJlcV93cml0ZV9hbWQoc3RydWN0 IGFjcGlfcGN0X3JlZ2lzdGVyICpub3RfdXNlZCwgdTMyIHZhbCkNCj4+IMKgIHsNCj4+IC3C oMKgwqAgd3Jtc3IoTVNSX0FNRF9QRVJGX0NUTCwgdmFsLCAwKTsNCj4+ICvCoMKgwqAgd3Jt c3JxKE1TUl9BTURfUEVSRl9DVEwsIHZhbCk7DQo+PiDCoCB9DQo+PiDCoCBzdGF0aWMgdTMy IGNwdV9mcmVxX3JlYWRfaW8oc3RydWN0IGFjcGlfcGN0X3JlZ2lzdGVyICpyZWcpDQo+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9jcHVmcmVxL2VfcG93ZXJzYXZlci5jIGIvZHJpdmVycy9j cHVmcmVxL2VfcG93ZXJzYXZlci5jDQo+PiBpbmRleCBlYjVhOTIwOWQ4MjguLjEzNzA5Zjk2 NjdlYSAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvY3B1ZnJlcS9lX3Bvd2Vyc2F2ZXIuYw0K Pj4gKysrIGIvZHJpdmVycy9jcHVmcmVxL2VfcG93ZXJzYXZlci5jDQo+PiBAQCAtOTAsNyAr OTAsNyBAQCBzdGF0aWMgaW50IGVwc19hY3BpX2V4aXQoc3RydWN0IGNwdWZyZXFfcG9saWN5 ICpwb2xpY3kpDQo+PiDCoCBzdGF0aWMgdW5zaWduZWQgaW50IGVwc19nZXQodW5zaWduZWQg aW50IGNwdSkNCj4+IMKgIHsNCj4+IMKgwqDCoMKgwqAgc3RydWN0IGVwc19jcHVfZGF0YSAq Y2VudGF1cjsNCj4+IC3CoMKgwqAgdTMyIGxvLCBoaTsNCj4+ICvCoMKgwqAgdTY0IHZhbDsN Cj4+IMKgwqDCoMKgwqAgaWYgKGNwdSkNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4g MDsNCj4+IEBAIC05OSwzNSArOTksMzUgQEAgc3RhdGljIHVuc2lnbmVkIGludCBlcHNfZ2V0 KHVuc2lnbmVkIGludCBjcHUpDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7DQo+ PiDCoMKgwqDCoMKgIC8qIFJldHVybiBjdXJyZW50IGZyZXF1ZW5jeSAqLw0KPj4gLcKgwqDC oCByZG1zcihNU1JfSUEzMl9QRVJGX1NUQVRVUywgbG8sIGhpKTsNCj4+IC3CoMKgwqAgcmV0 dXJuIGNlbnRhdXItPmZzYiAqICgobG8gPj4gOCkgJiAweGZmKTsNCj4+ICvCoMKgwqAgcmRt c3JxKE1TUl9JQTMyX1BFUkZfU1RBVFVTLCB2YWwpOw0KPj4gK8KgwqDCoCByZXR1cm4gY2Vu dGF1ci0+ZnNiICogKCh2YWwgPj4gOCkgJiAweGZmKTsNCj4+IMKgIH0NCj4+IMKgIHN0YXRp YyBpbnQgZXBzX3NldF9zdGF0ZShzdHJ1Y3QgZXBzX2NwdV9kYXRhICpjZW50YXVyLA0KPj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKnBv bGljeSwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTMyIGRlc3Rfc3RhdGUp DQo+PiDCoCB7DQo+PiAtwqDCoMKgIHUzMiBsbywgaGk7DQo+PiArwqDCoMKgIHU2NCB2YWw7 DQo+PiDCoMKgwqDCoMKgIGludCBpOw0KPj4gwqDCoMKgwqDCoCAvKiBXYWl0IHdoaWxlIENQ VSBpcyBidXN5ICovDQo+PiAtwqDCoMKgIHJkbXNyKE1TUl9JQTMyX1BFUkZfU1RBVFVTLCBs bywgaGkpOw0KPj4gK8KgwqDCoCByZG1zcnEoTVNSX0lBMzJfUEVSRl9TVEFUVVMsIHZhbCk7 DQo+PiDCoMKgwqDCoMKgIGkgPSAwOw0KPj4gLcKgwqDCoCB3aGlsZSAobG8gJiAoKDEgPDwg MTYpIHwgKDEgPDwgMTcpKSkgew0KPj4gK8KgwqDCoCB3aGlsZSAodmFsICYgKCgxIDw8IDE2 KSB8ICgxIDw8IDE3KSkpIHsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB1ZGVsYXkoMTYpOw0K Pj4gLcKgwqDCoMKgwqDCoMKgIHJkbXNyKE1TUl9JQTMyX1BFUkZfU1RBVFVTLCBsbywgaGkp Ow0KPj4gK8KgwqDCoMKgwqDCoMKgIHJkbXNycShNU1JfSUEzMl9QRVJGX1NUQVRVUywgdmFs KTsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpKys7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg aWYgKHVubGlrZWx5KGkgPiA2NCkpIHsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHJldHVybiAtRU5PREVWOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0NCj4+IMKgwqDCoMKg wqAgfQ0KPj4gwqDCoMKgwqDCoCAvKiBTZXQgbmV3IG11bHRpcGxpZXIgYW5kIHZvbHRhZ2Ug Ki8NCj4+IC3CoMKgwqAgd3Jtc3IoTVNSX0lBMzJfUEVSRl9DVEwsIGRlc3Rfc3RhdGUgJiAw eGZmZmYsIDApOw0KPj4gK8KgwqDCoCB3cm1zcnEoTVNSX0lBMzJfUEVSRl9DVEwsIGRlc3Rf c3RhdGUgJiAweGZmZmYpOw0KPj4gwqDCoMKgwqDCoCAvKiBXYWl0IHVudGlsIHRyYW5zaXRp b24gZW5kICovDQo+PiDCoMKgwqDCoMKgIGkgPSAwOw0KPj4gwqDCoMKgwqDCoCBkbyB7DQo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgdWRlbGF5KDE2KTsNCj4+IC3CoMKgwqDCoMKgwqDCoCBy ZG1zcihNU1JfSUEzMl9QRVJGX1NUQVRVUywgbG8sIGhpKTsNCj4+ICvCoMKgwqDCoMKgwqDC oCByZG1zcnEoTVNSX0lBMzJfUEVSRl9TVEFUVVMsIHZhbCk7DQo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgaSsrOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmICh1bmxpa2VseShpID4gNjQp KSB7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVOT0RFVjsNCj4g DQo+IA0KPiAgwqDCoMKgwqBkbyB7DQo+ICDCoMKgwqDCoMKgwqDCoCB1ZGVsYXkoMTYpOw0K PiAgwqDCoMKgwqDCoMKgwqAgcmRtc3IoTVNSX0lBMzJfUEVSRl9TVEFUVVMsIGxvLCBoaSk7 DQo+ICDCoMKgwqDCoMKgwqDCoCBpKys7DQo+ICDCoMKgwqDCoMKgwqDCoCBpZiAodW5saWtl bHkoaSA+IDY0KSkgew0KPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVOT0RF VjsNCj4gIMKgwqDCoMKgwqDCoMKgIH0NCj4gIMKgwqDCoMKgfSB3aGlsZSAobG8gJiAoKDEg PDwgMTYpIHwgKDEgPDwgMTcpKSk7LS0+bG8gaGFzIGJlZW4gZGVsZXRlZD8NCg0KVGhhbmtz IGZvciBzcG90dGluZyB0aGF0LiBTZWVtcyBieSAzMi1iaXQgYWxseWVzY29uZmlnIHRyZWUg bG9zdCB0aGUgY29uZmlnDQplbnRyeSBuZWVkZWQgZm9yIGJ1aWxkaW5nIHRoaXMgc291cmNl Lg0KDQpXaWxsIGZpeCB0aGlzLg0KDQo+IA0KPiANCj4gDQo+IA0KPiANCj4+IEBAIC0xMzks MTAgKzEzOSwxMCBAQCBzdGF0aWMgaW50IGVwc19zZXRfc3RhdGUoc3RydWN0IGVwc19jcHVf ZGF0YSAqY2VudGF1ciwNCj4+IMKgwqDCoMKgwqAgdTggY3VycmVudF9tdWx0aXBsaWVyLCBj dXJyZW50X3ZvbHRhZ2U7DQo+PiDCoMKgwqDCoMKgIC8qIFByaW50IHZvbHRhZ2UgYW5kIG11 bHRpcGxpZXIgKi8NCj4+IC3CoMKgwqAgcmRtc3IoTVNSX0lBMzJfUEVSRl9TVEFUVVMsIGxv LCBoaSk7DQo+PiAtwqDCoMKgIGN1cnJlbnRfdm9sdGFnZSA9IGxvICYgMHhmZjsNCj4+ICvC oMKgwqAgcmRtc3JxKE1TUl9JQTMyX1BFUkZfU1RBVFVTLCB2YWwpOw0KPj4gK8KgwqDCoCBj dXJyZW50X3ZvbHRhZ2UgPSB2YWwgJiAweGZmOw0KPj4gwqDCoMKgwqDCoCBwcl9pbmZvKCJD dXJyZW50IHZvbHRhZ2UgPSAlZG1WXG4iLCBjdXJyZW50X3ZvbHRhZ2UgKiAxNiArIDcwMCk7 DQo+PiAtwqDCoMKgIGN1cnJlbnRfbXVsdGlwbGllciA9IChsbyA+PiA4KSAmIDB4ZmY7DQo+ PiArwqDCoMKgIGN1cnJlbnRfbXVsdGlwbGllciA9ICh2YWwgPj4gOCkgJiAweGZmOw0KPj4g wqDCoMKgwqDCoCBwcl9pbmZvKCJDdXJyZW50IG11bHRpcGxpZXIgPSAlZFxuIiwgY3VycmVu dF9tdWx0aXBsaWVyKTsNCj4+IMKgwqDCoMKgwqAgfQ0KPj4gwqAgI2VuZGlmDQo+PiBAQCAt MTcxLDggKzE3MSw4IEBAIHN0YXRpYyBpbnQgZXBzX3RhcmdldChzdHJ1Y3QgY3B1ZnJlcV9w b2xpY3kgKnBvbGljeSwgDQo+PiB1bnNpZ25lZCBpbnQgaW5kZXgpDQo+PiDCoCBzdGF0aWMg aW50IGVwc19jcHVfaW5pdChzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGljeSkNCj4+IMKg IHsNCj4+IMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IGk7DQo+PiAtwqDCoMKgIHUzMiBsbywg aGk7DQo+PiDCoMKgwqDCoMKgIHU2NCB2YWw7DQo+PiArwqDCoMKgIHN0cnVjdCBtc3Igc3Rh dHVzOw0KPj4gwqDCoMKgwqDCoCB1OCBjdXJyZW50X211bHRpcGxpZXIsIGN1cnJlbnRfdm9s dGFnZTsNCj4+IMKgwqDCoMKgwqAgdTggbWF4X211bHRpcGxpZXIsIG1heF92b2x0YWdlOw0K Pj4gwqDCoMKgwqDCoCB1OCBtaW5fbXVsdGlwbGllciwgbWluX3ZvbHRhZ2U7DQo+PiBAQCAt MTk1LDEzICsxOTUsMTMgQEAgc3RhdGljIGludCBlcHNfY3B1X2luaXQoc3RydWN0IGNwdWZy ZXFfcG9saWN5ICpwb2xpY3kpDQo+PiDCoMKgwqDCoMKgIHN3aXRjaCAoYy0+eDg2X21vZGVs KSB7DQo+PiDCoMKgwqDCoMKgIGNhc2UgMTA6DQo+PiAtwqDCoMKgwqDCoMKgwqAgcmRtc3Io MHgxMTUzLCBsbywgaGkpOw0KPj4gLcKgwqDCoMKgwqDCoMKgIGJyYW5kID0gKCgobG8gPj4g MikgXiBsbykgPj4gMTgpICYgMzsNCj4+ICvCoMKgwqDCoMKgwqDCoCByZG1zcnEoMHgxMTUz LCB2YWwpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGJyYW5kID0gKCgodmFsID4+IDIpIF4gdmFs KSA+PiAxOCkgJiAzOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHByX2NvbnQoIk1vZGVsIEEg Iik7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+PiDCoMKgwqDCoMKgIGNhc2Ug MTM6DQo+PiAtwqDCoMKgwqDCoMKgwqAgcmRtc3IoMHgxMTU0LCBsbywgaGkpOw0KPj4gLcKg wqDCoMKgwqDCoMKgIGJyYW5kID0gKCgobG8gPj4gNCkgXiAobG8gPj4gMikpKSAmIDB4MDAw MDAwZmY7DQo+PiArwqDCoMKgwqDCoMKgwqAgcmRtc3JxKDB4MTE1NCwgdmFsKTsNCj4+ICvC oMKgwqDCoMKgwqDCoCBicmFuZCA9ICgoKHZhbCA+PiA0KSBeICh2YWwgPj4gMikpKSAmIDB4 MDAwMDAwZmY7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcHJfY29udCgiTW9kZWwgRCAiKTsN Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsNCj4+IMKgwqDCoMKgwqAgfQ0KPj4gQEAg LTIzNywyMCArMjM3LDIwIEBAIHN0YXRpYyBpbnQgZXBzX2NwdV9pbml0KHN0cnVjdCBjcHVm cmVxX3BvbGljeSAqcG9saWN5KQ0KPj4gwqDCoMKgwqDCoCB9DQo+PiDCoMKgwqDCoMKgIC8q IFByaW50IHZvbHRhZ2UgYW5kIG11bHRpcGxpZXIgKi8NCj4+IC3CoMKgwqAgcmRtc3IoTVNS X0lBMzJfUEVSRl9TVEFUVVMsIGxvLCBoaSk7DQo+PiAtwqDCoMKgIGN1cnJlbnRfdm9sdGFn ZSA9IGxvICYgMHhmZjsNCj4+ICvCoMKgwqAgcmRtc3JxKE1TUl9JQTMyX1BFUkZfU1RBVFVT LCBzdGF0dXMucSk7DQo+PiArwqDCoMKgIGN1cnJlbnRfdm9sdGFnZSA9IHN0YXR1cy5sICYg MHhmZjsNCj4+IMKgwqDCoMKgwqAgcHJfaW5mbygiQ3VycmVudCB2b2x0YWdlID0gJWRtVlxu IiwgY3VycmVudF92b2x0YWdlICogMTYgKyA3MDApOw0KPj4gLcKgwqDCoCBjdXJyZW50X211 bHRpcGxpZXIgPSAobG8gPj4gOCkgJiAweGZmOw0KPj4gK8KgwqDCoCBjdXJyZW50X211bHRp cGxpZXIgPSAoc3RhdHVzLmwgPj4gOCkgJiAweGZmOw0KPj4gwqDCoMKgwqDCoCBwcl9pbmZv KCJDdXJyZW50IG11bHRpcGxpZXIgPSAlZFxuIiwgY3VycmVudF9tdWx0aXBsaWVyKTsNCj4+ IMKgwqDCoMKgwqAgLyogUHJpbnQgbGltaXRzICovDQo+PiAtwqDCoMKgIG1heF92b2x0YWdl ID0gaGkgJiAweGZmOw0KPj4gK8KgwqDCoCBtYXhfdm9sdGFnZSA9IHN0YXR1cy5oICYgMHhm ZjsNCj4+IMKgwqDCoMKgwqAgcHJfaW5mbygiSGlnaGVzdCB2b2x0YWdlID0gJWRtVlxuIiwg bWF4X3ZvbHRhZ2UgKiAxNiArIDcwMCk7DQo+PiAtwqDCoMKgIG1heF9tdWx0aXBsaWVyID0g KGhpID4+IDgpICYgMHhmZjsNCj4+ICvCoMKgwqAgbWF4X211bHRpcGxpZXIgPSAoc3RhdHVz LmggPj4gOCkgJiAweGZmOw0KPj4gwqDCoMKgwqDCoCBwcl9pbmZvKCJIaWdoZXN0IG11bHRp cGxpZXIgPSAlZFxuIiwgbWF4X211bHRpcGxpZXIpOw0KPj4gLcKgwqDCoCBtaW5fdm9sdGFn ZSA9IChoaSA+PiAxNikgJiAweGZmOw0KPj4gK8KgwqDCoCBtaW5fdm9sdGFnZSA9IChzdGF0 dXMuaCA+PiAxNikgJiAweGZmOw0KPj4gwqDCoMKgwqDCoCBwcl9pbmZvKCJMb3dlc3Qgdm9s dGFnZSA9ICVkbVZcbiIsIG1pbl92b2x0YWdlICogMTYgKyA3MDApOw0KPj4gLcKgwqDCoCBt aW5fbXVsdGlwbGllciA9IChoaSA+PiAyNCkgJiAweGZmOw0KPj4gK8KgwqDCoCBtaW5fbXVs dGlwbGllciA9IChzdGF0dXMuaCA+PiAyNCkgJiAweGZmOw0KPj4gwqDCoMKgwqDCoCBwcl9p bmZvKCJMb3dlc3QgbXVsdGlwbGllciA9ICVkXG4iLCBtaW5fbXVsdGlwbGllcik7DQo+PiDC oMKgwqDCoMKgIC8qIFNhbml0eSBjaGVja3MgKi8NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2NwdWZyZXEvbG9uZ2hhdWwuYyBiL2RyaXZlcnMvY3B1ZnJlcS9sb25naGF1bC5jDQo+PiBp bmRleCBhMThkMWQxMTcyNWYuLjRjMjU5OTI2NDMzMyAxMDA2NDQNCj4+IC0tLSBhL2RyaXZl cnMvY3B1ZnJlcS9sb25naGF1bC5jDQo+PiArKysgYi9kcml2ZXJzL2NwdWZyZXEvbG9uZ2hh dWwuYw0KPj4gQEAgLTExOCwxMyArMTE4LDE0IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgY2Fs Y19zcGVlZChpbnQgbXVsdCkNCj4+IMKgIHN0YXRpYyBpbnQgbG9uZ2hhdWxfZ2V0X2NwdV9t dWx0KHZvaWQpDQo+PiDCoCB7DQo+PiAtwqDCoMKgIHVuc2lnbmVkIGxvbmcgaW52YWx1ZSA9 IDAsIGxvLCBoaTsNCj4+ICvCoMKgwqAgdW5zaWduZWQgbG9uZyBpbnZhbHVlID0gMDsNCj4+ ICvCoMKgwqAgdTY0IHZhbDsNCj4+IC3CoMKgwqAgcmRtc3IoTVNSX0lBMzJfRUJMX0NSX1BP V0VST04sIGxvLCBoaSk7DQo+PiAtwqDCoMKgIGludmFsdWUgPSAobG8gJiAoMTw8MjJ8MTw8 MjN8MTw8MjR8MTw8MjUpKT4+MjI7DQo+PiArwqDCoMKgIHJkbXNycShNU1JfSUEzMl9FQkxf Q1JfUE9XRVJPTiwgdmFsKTsNCj4+ICvCoMKgwqAgaW52YWx1ZSA9ICh2YWwgJiAoMTw8MjJ8 MTw8MjN8MTw8MjR8MTw8MjUpKT4+MjI7DQo+PiDCoMKgwqDCoMKgIGlmIChsb25naGF1bF92 ZXJzaW9uID09IFRZUEVfTE9OR0hBVUxfVjIgfHwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBs b25naGF1bF92ZXJzaW9uID09IFRZUEVfUE9XRVJTQVZFUikgew0KPj4gLcKgwqDCoMKgwqDC oMKgIGlmIChsbyAmICgxPDwyNykpDQo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKHZhbCAmICgx PDwyNykpDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnZhbHVlICs9IDE2Ow0K Pj4gwqDCoMKgwqDCoCB9DQo+PiDCoMKgwqDCoMKgIHJldHVybiBlYmxjcltpbnZhbHVlXTsN Cj4+IEBAIC03NjEsNyArNzYyLDcgQEAgc3RhdGljIGludCBsb25naGF1bF9jcHVfaW5pdChz dHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGljeSkNCj4+IMKgwqDCoMKgwqAgc3RydWN0IGNw dWluZm9feDg2ICpjID0gJmNwdV9kYXRhKDApOw0KPj4gwqDCoMKgwqDCoCBjaGFyICpjcHVu YW1lID0gTlVMTDsNCj4+IMKgwqDCoMKgwqAgaW50IHJldDsNCj4+IC3CoMKgwqAgdTMyIGxv LCBoaTsNCj4+ICvCoMKgwqAgdTY0IHZhbDsNCj4+IMKgwqDCoMKgwqAgLyogQ2hlY2sgd2hh dCB3ZSBoYXZlIG9uIHRoaXMgbW90aGVyYm9hcmQgKi8NCj4+IMKgwqDCoMKgwqAgc3dpdGNo IChjLT54ODZfbW9kZWwpIHsNCj4+IEBAIC04MzUsOCArODM2LDggQEAgc3RhdGljIGludCBs b25naGF1bF9jcHVfaW5pdChzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGljeSkNCj4+IMKg wqDCoMKgwqAgfQ0KPj4gwqDCoMKgwqDCoCAvKiBDaGVjayBMb25naGF1bCB2ZXIuIDIgKi8N Cj4+IMKgwqDCoMKgwqAgaWYgKGxvbmdoYXVsX3ZlcnNpb24gPT0gVFlQRV9MT05HSEFVTF9W Mikgew0KPj4gLcKgwqDCoMKgwqDCoMKgIHJkbXNyKE1TUl9WSUFfTE9OR0hBVUwsIGxvLCBo aSk7DQo+PiAtwqDCoMKgwqDCoMKgwqAgaWYgKGxvID09IDAgJiYgaGkgPT0gMCkNCj4+ICvC oMKgwqDCoMKgwqDCoCByZG1zcnEoTVNSX1ZJQV9MT05HSEFVTCwgdmFsKTsNCj4+ICvCoMKg wqDCoMKgwqDCoCBpZiAodmFsID09IDApDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAvKiBMb29rcyBsaWtlIE1TUiBpc24ndCBwcmVzZW50ICovDQo+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBsb25naGF1bF92ZXJzaW9uID0gVFlQRV9MT05HSEFVTF9WMTsNCj4+ IMKgwqDCoMKgwqAgfQ0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3B1ZnJlcS9sb25ncnVu LmMgYi9kcml2ZXJzL2NwdWZyZXEvbG9uZ3J1bi5jDQo+PiBpbmRleCBmM2FhY2EwNDk2YTQu Ljk5YWJlZjMyZTdlNSAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvY3B1ZnJlcS9sb25ncnVu LmMNCj4+ICsrKyBiL2RyaXZlcnMvY3B1ZnJlcS9sb25ncnVuLmMNCj4+IEBAIC0zNSwyNyAr MzUsMjcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBsb25ncnVuX2xvd19mcmVxLCBsb25ncnVu X2hpZ2hfZnJlcTsNCj4+IMKgwqAgKi8NCj4+IMKgIHN0YXRpYyB2b2lkIGxvbmdydW5fZ2V0 X3BvbGljeShzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGljeSkNCj4+IMKgIHsNCj4+IC3C oMKgwqAgdTMyIG1zcl9sbywgbXNyX2hpOw0KPj4gK8KgwqDCoCBzdHJ1Y3QgbXNyIG1zcjsN Cj4+IC3CoMKgwqAgcmRtc3IoTVNSX1RNVEFfTE9OR1JVTl9GTEFHUywgbXNyX2xvLCBtc3Jf aGkpOw0KPj4gLcKgwqDCoCBwcl9kZWJ1ZygibG9uZ3J1biBmbGFncyBhcmUgJXggLSAleFxu IiwgbXNyX2xvLCBtc3JfaGkpOw0KPj4gLcKgwqDCoCBpZiAobXNyX2xvICYgMHgwMSkNCj4+ ICvCoMKgwqAgcmRtc3JxKE1TUl9UTVRBX0xPTkdSVU5fRkxBR1MsIG1zci5xKTsNCj4+ICvC oMKgwqAgcHJfZGVidWcoImxvbmdydW4gZmxhZ3MgYXJlICV4IC0gJXhcbiIsIG1zci5sLCBt c3IuaCk7DQo+PiArwqDCoMKgIGlmIChtc3IubCAmIDB4MDEpDQo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgcG9saWN5LT5wb2xpY3kgPSBDUFVGUkVRX1BPTElDWV9QRVJGT1JNQU5DRTsNCj4+ IMKgwqDCoMKgwqAgZWxzZQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHBvbGljeS0+cG9saWN5 ID0gQ1BVRlJFUV9QT0xJQ1lfUE9XRVJTQVZFOw0KPj4gLcKgwqDCoCByZG1zcihNU1JfVE1U QV9MT05HUlVOX0NUUkwsIG1zcl9sbywgbXNyX2hpKTsNCj4+IC3CoMKgwqAgcHJfZGVidWco ImxvbmdydW4gY3RybCBpcyAleCAtICV4XG4iLCBtc3JfbG8sIG1zcl9oaSk7DQo+PiAtwqDC oMKgIG1zcl9sbyAmPSAweDAwMDAwMDdGOw0KPj4gLcKgwqDCoCBtc3JfaGkgJj0gMHgwMDAw MDA3RjsNCj4+ICvCoMKgwqAgcmRtc3JxKE1TUl9UTVRBX0xPTkdSVU5fQ1RSTCwgbXNyLnEp Ow0KPj4gK8KgwqDCoCBwcl9kZWJ1ZygibG9uZ3J1biBjdHJsIGlzICV4IC0gJXhcbiIsIG1z ci5sLCBtc3IuaCk7DQo+PiArwqDCoMKgIG1zci5sICY9IDB4MDAwMDAwN0Y7DQo+PiArwqDC oMKgIG1zci5oICY9IDB4MDAwMDAwN0Y7DQo+PiDCoMKgwqDCoMKgIGlmIChsb25ncnVuX2hp Z2hfZnJlcSA8PSBsb25ncnVuX2xvd19mcmVxKSB7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg LyogQXNzdW1lIGRlZ2VuZXJhdGUgTG9uZ3J1biB0YWJsZSAqLw0KPj4gwqDCoMKgwqDCoMKg wqDCoMKgIHBvbGljeS0+bWluID0gcG9saWN5LT5tYXggPSBsb25ncnVuX2hpZ2hfZnJlcTsN Cj4+IMKgwqDCoMKgwqAgfSBlbHNlIHsNCj4+IC3CoMKgwqDCoMKgwqDCoCBwb2xpY3ktPm1p biA9IGxvbmdydW5fbG93X2ZyZXEgKyBtc3JfbG8gKg0KPj4gK8KgwqDCoMKgwqDCoMKgIHBv bGljeS0+bWluID0gbG9uZ3J1bl9sb3dfZnJlcSArIG1zci5sICoNCj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICgobG9uZ3J1bl9oaWdoX2ZyZXEgLSBsb25ncnVuX2xvd19mcmVx KSAvIDEwMCk7DQo+PiAtwqDCoMKgwqDCoMKgwqAgcG9saWN5LT5tYXggPSBsb25ncnVuX2xv d19mcmVxICsgbXNyX2hpICoNCj4+ICvCoMKgwqDCoMKgwqDCoCBwb2xpY3ktPm1heCA9IGxv bmdydW5fbG93X2ZyZXEgKyBtc3IuaCAqDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAoKGxvbmdydW5faGlnaF9mcmVxIC0gbG9uZ3J1bl9sb3dfZnJlcSkgLyAxMDApOw0KPj4g wqDCoMKgwqDCoCB9DQo+PiDCoMKgwqDCoMKgIHBvbGljeS0+Y3B1ID0gMDsNCj4+IEBAIC03 MSw3ICs3MSw3IEBAIHN0YXRpYyB2b2lkIGxvbmdydW5fZ2V0X3BvbGljeShzdHJ1Y3QgY3B1 ZnJlcV9wb2xpY3kgKnBvbGljeSkNCj4+IMKgwqAgKi8NCj4+IMKgIHN0YXRpYyBpbnQgbG9u Z3J1bl9zZXRfcG9saWN5KHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqcG9saWN5KQ0KPj4gwqAg ew0KPj4gLcKgwqDCoCB1MzIgbXNyX2xvLCBtc3JfaGk7DQo+PiArwqDCoMKgIHN0cnVjdCBt c3IgbXNyOw0KPj4gwqDCoMKgwqDCoCB1MzIgcGN0Z19sbywgcGN0Z19oaTsNCj4+IMKgwqDC oMKgwqAgaWYgKCFwb2xpY3kpDQo+PiBAQCAtOTMsMjQgKzkzLDI0IEBAIHN0YXRpYyBpbnQg bG9uZ3J1bl9zZXRfcG9saWN5KHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqcG9saWN5KQ0KPj4g wqDCoMKgwqDCoMKgwqDCoMKgIHBjdGdfbG8gPSBwY3RnX2hpOw0KPj4gwqDCoMKgwqDCoCAv KiBwZXJmb3JtYW5jZSBvciBlY29ub215IG1vZGUgKi8NCj4+IC3CoMKgwqAgcmRtc3IoTVNS X1RNVEFfTE9OR1JVTl9GTEFHUywgbXNyX2xvLCBtc3JfaGkpOw0KPj4gLcKgwqDCoCBtc3Jf bG8gJj0gMHhGRkZGRkZGRTsNCj4+ICvCoMKgwqAgcmRtc3JxKE1TUl9UTVRBX0xPTkdSVU5f RkxBR1MsIG1zci5xKTsNCj4+ICvCoMKgwqAgbXNyLmwgJj0gMHhGRkZGRkZGRTsNCj4+IMKg wqDCoMKgwqAgc3dpdGNoIChwb2xpY3ktPnBvbGljeSkgew0KPj4gwqDCoMKgwqDCoCBjYXNl IENQVUZSRVFfUE9MSUNZX1BFUkZPUk1BTkNFOg0KPj4gLcKgwqDCoMKgwqDCoMKgIG1zcl9s byB8PSAweDAwMDAwMDAxOw0KPj4gK8KgwqDCoMKgwqDCoMKgIG1zci5sIHw9IDB4MDAwMDAw MDE7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+PiDCoMKgwqDCoMKgIGNhc2Ug Q1BVRlJFUV9QT0xJQ1lfUE9XRVJTQVZFOg0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFr Ow0KPj4gwqDCoMKgwqDCoCB9DQo+PiAtwqDCoMKgIHdybXNyKE1TUl9UTVRBX0xPTkdSVU5f RkxBR1MsIG1zcl9sbywgbXNyX2hpKTsNCj4+ICvCoMKgwqAgd3Jtc3JxKE1TUl9UTVRBX0xP TkdSVU5fRkxBR1MsIG1zci5xKTsNCj4+IMKgwqDCoMKgwqAgLyogbG93ZXIgYW5kIHVwcGVy IGJvdW5kYXJ5ICovDQo+PiAtwqDCoMKgIHJkbXNyKE1TUl9UTVRBX0xPTkdSVU5fQ1RSTCwg bXNyX2xvLCBtc3JfaGkpOw0KPj4gLcKgwqDCoCBtc3JfbG8gJj0gMHhGRkZGRkY4MDsNCj4+ IC3CoMKgwqAgbXNyX2hpICY9IDB4RkZGRkZGODA7DQo+PiAtwqDCoMKgIG1zcl9sbyB8PSBw Y3RnX2xvOw0KPj4gLcKgwqDCoCBtc3JfaGkgfD0gcGN0Z19oaTsNCj4+IC3CoMKgwqAgd3Jt c3IoTVNSX1RNVEFfTE9OR1JVTl9DVFJMLCBtc3JfbG8sIG1zcl9oaSk7DQo+PiArwqDCoMKg IHJkbXNycShNU1JfVE1UQV9MT05HUlVOX0NUUkwsIG1zci5xKTsNCj4+ICvCoMKgwqAgbXNy LmwgJj0gMHhGRkZGRkY4MDsNCj4+ICvCoMKgwqAgbXNyLmggJj0gMHhGRkZGRkY4MDsNCj4+ ICvCoMKgwqAgbXNyLmwgfD0gcGN0Z19sbzsNCj4+ICvCoMKgwqAgbXNyLmggfD0gcGN0Z19o aTsNCj4+ICvCoMKgwqAgd3Jtc3JxKE1TUl9UTVRBX0xPTkdSVU5fQ1RSTCwgbXNyLnEpOw0K Pj4gwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4+IMKgIH0NCj4+IEBAIC0xNjAsNyArMTYwLDcg QEAgc3RhdGljIHVuc2lnbmVkIGludCBsb25ncnVuX2dldCh1bnNpZ25lZCBpbnQgY3B1KQ0K Pj4gwqAgc3RhdGljIGludCBsb25ncnVuX2RldGVybWluZV9mcmVxcyh1bnNpZ25lZCBpbnQg Kmxvd19mcmVxLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50ICpoaWdoX2ZyZXEpDQo+PiDC oCB7DQo+PiAtwqDCoMKgIHUzMiBtc3JfbG8sIG1zcl9oaTsNCj4+ICvCoMKgwqAgc3RydWN0 IG1zciBtc3I7DQo+PiDCoMKgwqDCoMKgIHUzMiBzYXZlX2xvLCBzYXZlX2hpOw0KPj4gwqDC oMKgwqDCoCB1MzIgZWF4LCBlYngsIGVjeCwgZWR4Ow0KPj4gwqDCoMKgwqDCoCB1MzIgdHJ5 X2hpOw0KPj4gQEAgLTE3OCwxNSArMTc4LDE3IEBAIHN0YXRpYyBpbnQgbG9uZ3J1bl9kZXRl cm1pbmVfZnJlcXModW5zaWduZWQgaW50ICpsb3dfZnJlcSwNCj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgICogRm9yIG1heGltdW0gZnJlcXVlbmN5LCByZWFkIG91dCBsZXZlbCB6ZXJvLg0K Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgKi8NCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBt aW5pbXVtICovDQo+PiAtwqDCoMKgwqDCoMKgwqAgcmRtc3IoTVNSX1RNVEFfTFJUSV9SRUFE T1VULCBtc3JfbG8sIG1zcl9oaSk7DQo+PiAtwqDCoMKgwqDCoMKgwqAgd3Jtc3IoTVNSX1RN VEFfTFJUSV9SRUFET1VULCBtc3JfaGksIG1zcl9oaSk7DQo+PiAtwqDCoMKgwqDCoMKgwqAg cmRtc3IoTVNSX1RNVEFfTFJUSV9WT0xUX01IWiwgbXNyX2xvLCBtc3JfaGkpOw0KPj4gLcKg wqDCoMKgwqDCoMKgICpsb3dfZnJlcSA9IG1zcl9sbyAqIDEwMDA7IC8qIHRvIGtIeiAqLw0K Pj4gK8KgwqDCoMKgwqDCoMKgIHJkbXNycShNU1JfVE1UQV9MUlRJX1JFQURPVVQsIG1zci5x KTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBtc3IubCA9IG1zci5oOw0KPj4gK8KgwqDCoMKgwqDC oMKgIHdybXNycShNU1JfVE1UQV9MUlRJX1JFQURPVVQsIG1zci5xKTsNCj4+ICvCoMKgwqDC oMKgwqDCoCByZG1zcnEoTVNSX1RNVEFfTFJUSV9WT0xUX01IWiwgbXNyLnEpOw0KPj4gK8Kg wqDCoMKgwqDCoMKgICpsb3dfZnJlcSA9IG1zci5sICogMTAwMDsgLyogdG8ga0h6ICovDQo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgLyogbWF4aW11bSAqLw0KPj4gLcKgwqDCoMKgwqDCoMKg IHdybXNyKE1TUl9UTVRBX0xSVElfUkVBRE9VVCwgMCwgbXNyX2hpKTsNCj4+IC3CoMKgwqDC oMKgwqDCoCByZG1zcihNU1JfVE1UQV9MUlRJX1ZPTFRfTUhaLCBtc3JfbG8sIG1zcl9oaSk7 DQo+PiAtwqDCoMKgwqDCoMKgwqAgKmhpZ2hfZnJlcSA9IG1zcl9sbyAqIDEwMDA7IC8qIHRv IGtIeiAqLw0KPj4gK8KgwqDCoMKgwqDCoMKgIG1zci5sID0gMDsNCj4+ICvCoMKgwqDCoMKg wqDCoCB3cm1zcnEoTVNSX1RNVEFfTFJUSV9SRUFET1VULCBtc3IucSk7DQo+PiArwqDCoMKg wqDCoMKgwqAgcmRtc3JxKE1TUl9UTVRBX0xSVElfVk9MVF9NSFosIG1zci5xKTsNCj4+ICvC oMKgwqDCoMKgwqDCoCAqaGlnaF9mcmVxID0gbXNyLmwgKiAxMDAwOyAvKiB0byBrSHogKi8N Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBwcl9kZWJ1ZygibG9uZ3J1biB0YWJsZSBpbnRlcmZh Y2UgdG9sZCAldSAtICV1IGtIelxuIiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKmxvd19mcmVxLCAqaGlnaF9mcmVxKTsNCj4+IEBAIC0yMDIsOSArMjA0LDkg QEAgc3RhdGljIGludCBsb25ncnVuX2RldGVybWluZV9mcmVxcyh1bnNpZ25lZCBpbnQgKmxv d19mcmVxLA0KPj4gwqDCoMKgwqDCoCBwcl9kZWJ1ZygiaGlnaCBmcmVxdWVuY3kgaXMgJXUg a0h6XG4iLCAqaGlnaF9mcmVxKTsNCj4+IMKgwqDCoMKgwqAgLyogZ2V0IGN1cnJlbnQgYm9y ZGVycyAqLw0KPj4gLcKgwqDCoCByZG1zcihNU1JfVE1UQV9MT05HUlVOX0NUUkwsIG1zcl9s bywgbXNyX2hpKTsNCj4+IC3CoMKgwqAgc2F2ZV9sbyA9IG1zcl9sbyAmIDB4MDAwMDAwN0Y7 DQo+PiAtwqDCoMKgIHNhdmVfaGkgPSBtc3JfaGkgJiAweDAwMDAwMDdGOw0KPj4gK8KgwqDC oCByZG1zcnEoTVNSX1RNVEFfTE9OR1JVTl9DVFJMLCBtc3IucSk7DQo+PiArwqDCoMKgIHNh dmVfbG8gPSBtc3IubCAmIDB4MDAwMDAwN0Y7DQo+PiArwqDCoMKgIHNhdmVfaGkgPSBtc3Iu aCAmIDB4MDAwMDAwN0Y7DQo+PiDCoMKgwqDCoMKgIC8qIGlmIGN1cnJlbnQgcGVyZl9wY3Rn IGlzIGxhcmdlciB0aGFuIDkwJSwgd2UgbmVlZCB0byBkZWNyZWFzZSB0aGUNCj4+IMKgwqDC oMKgwqDCoCAqIHVwcGVyIGxpbWl0IHRvIG1ha2UgdGhlIGNhbGN1bGF0aW9uIG1vcmUgYWNj dXJhdGUuDQo+PiBAQCAtMjE0LDE2ICsyMTYsMTggQEAgc3RhdGljIGludCBsb25ncnVuX2Rl dGVybWluZV9mcmVxcyh1bnNpZ25lZCBpbnQgKmxvd19mcmVxLA0KPj4gwqDCoMKgwqDCoMKg ICogb24gc29tZSBiYXJyaWVyIHZhbHVlcyAqLw0KPj4gwqDCoMKgwqDCoCBmb3IgKHRyeV9o aSA9IDgwOyB0cnlfaGkgPiAwICYmIGVjeCA+IDkwOyB0cnlfaGkgLT0gMTApIHsNCj4+IMKg wqDCoMKgwqDCoMKgwqDCoCAvKiBzZXQgdG8gMCB0byB0cnlfaGkgcGVyZl9wY3RnICovDQo+ PiAtwqDCoMKgwqDCoMKgwqAgbXNyX2xvICY9IDB4RkZGRkZGODA7DQo+PiAtwqDCoMKgwqDC oMKgwqAgbXNyX2hpICY9IDB4RkZGRkZGODA7DQo+PiAtwqDCoMKgwqDCoMKgwqAgbXNyX2hp IHw9IHRyeV9oaTsNCj4+IC3CoMKgwqDCoMKgwqDCoCB3cm1zcihNU1JfVE1UQV9MT05HUlVO X0NUUkwsIG1zcl9sbywgbXNyX2hpKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBtc3IubCAmPSAw eEZGRkZGRjgwOw0KPj4gK8KgwqDCoMKgwqDCoMKgIG1zci5oICY9IDB4RkZGRkZGODA7DQo+ PiArwqDCoMKgwqDCoMKgwqAgbXNyLmggfD0gdHJ5X2hpOw0KPj4gK8KgwqDCoMKgwqDCoMKg IHdybXNycShNU1JfVE1UQV9MT05HUlVOX0NUUkwsIG1zci5xKTsNCj4+IMKgwqDCoMKgwqDC oMKgwqDCoCAvKiByZWFkIG91dCBjdXJyZW50IGNvcmUgTUh6IGFuZCBjdXJyZW50IHBlcmZf cGN0ZyAqLw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGNwdWlkKDB4ODA4NjAwMDcsICZlYXgs ICZlYngsICZlY3gsICZlZHgpOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC8qIHJlc3RvcmUg dmFsdWVzICovDQo+PiAtwqDCoMKgwqDCoMKgwqAgd3Jtc3IoTVNSX1RNVEFfTE9OR1JVTl9D VFJMLCBzYXZlX2xvLCBzYXZlX2hpKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBtc3IubCA9IHNh dmVfbG87DQo+PiArwqDCoMKgwqDCoMKgwqAgbXNyLmggPSBzYXZlX2hpOw0KPj4gK8KgwqDC oMKgwqDCoMKgIHdybXNycShNU1JfVE1UQV9MT05HUlVOX0NUUkwsIG1zci5xKTsNCj4+IMKg wqDCoMKgwqAgfQ0KPiANCj4gQXMgc2FzaGlrby5kZXYgcG9pbnRlZCwgZnJvbSB0aGUgc2Vj b25kIGl0ZXIsIHRoaXMgcGF0Y2ggY29kZQ0KPiB3aWxsIGNsZWFyIHVwcGVyIDI1IGJpdHMg dG8gemVyby4NCj4gDQo+IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRjaHNldC8yMDI2MDYy OTA2MDUyNi4zNjM4MjcyLTEtamdyb3NzJTQwc3VzZS5jb20NCj4gDQo+IGZvciAodHJ5X2hp ID0gODA7IC4uLjsgLi4uKSB7DQo+IC3CoMKgIG1zcl9sbyAmPSAweEZGRkZGRjgwO8KgwqDC oCAvKiBpdGVyIDE6IFgubG9bMzE6N107IGl0ZXIgMis6IHNhbWUgKi8NCj4gLcKgwqAgbXNy X2hpICY9IDB4RkZGRkZGODA7DQo+IC3CoMKgIG1zcl9oaSB8PSB0cnlfaGk7DQo+IC3CoMKg IHdybXNyKHJlZywgbXNyX2xvLCBtc3JfaGkpOy8qIHdyaXRlcyBYLmhpWzMxOjddIHwgdHJ5 X2hpwqDCoMKgICovDQo+ICvCoMKgIG1zci5sICY9IDB4RkZGRkZGODA7wqDCoMKgwqDCoCAv KiBpdGVyIDIrOiBsb2NhbHM9MCAtPiBtYXNrID0gMMKgICovDQo+ICvCoMKgIG1zci5oICY9 IDB4RkZGRkZGODA7DQo+ICvCoMKgIG1zci5oIHw9IHRyeV9oaTsNCj4gK8KgwqAgd3Jtc3Jx KHJlZywgbXNyLnEpO8KgwqAgLyogPC0tIGl0ZXIgMisgd3JpdGVzIDAgKHZzIFguaGlbMzE6 N10pKi8NCj4gDQo+ICDCoMKgwqAgY3B1aWQoLi4uKTsNCj4gDQo+ICDCoMKgwqAgLyogcmVz dG9yZSAqLw0KPiAtwqDCoCB3cm1zcihyZWcsIHNhdmVfbG8sIHNhdmVfaGkpO8KgIC8qIGxv Y2FscyB1bnRvdWNoZWQgKi8NCj4gK8KgwqAgbXNyLmwgPSBzYXZlX2xvO8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIC8qIHBvaXNvbnMgbG9jYWxzIC0+bmV4dCBpdGVyIGJ1Z8KgICov DQo+ICvCoMKgIG1zci5oID0gc2F2ZV9oaTsNCj4gK8KgwqAgd3Jtc3JxKHJlZywgbXNyLnEp Ow0KPiB9DQo+IA0KPiBJJ20gbm90IHN1cmUgd2hldGhlciB0aGUgdXBwZXIgMjUgYml0cyBh cmUgcmVzZXJ2ZWQsIGJ1dCB0aGUgb3JpZ2luYWwNCj4gY29kZSBwcmVzZXJ2ZWQgdGhlbSBh Y3Jvc3MgaXRlcmF0aW9ucy4gSXQgbWlnaHQgYmUgc2FmZXIgdG8ga2VlcCB0aGF0DQo+IGJl aGF2aW9yIHVuY2hhbmdlZC4NCg0KV2lsbCBmaXggdGhhdC4NCg0KDQpKdWVyZ2VuDQo= --------------lsJshUl2sUSfxw0jldYAe3BS Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc" Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- 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 kt+z4drzFUyEjLM1vVvIMjkUoJs=3D =3DeeAB -----END PGP PUBLIC KEY BLOCK----- --------------lsJshUl2sUSfxw0jldYAe3BS-- --------------iD3tYE2bBBquqKhnq1lCiD65-- --------------MuQ4Zg3uAyhS9tCF1azVKHVX Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmpDZGsFAwAAAAAACgkQsN6d1ii/Ey+R mQf/e+w+2BhsJnpWYDBFq+VzMKM7bonXhk/QYZW0tS8JlIZjWNiE0hv3wZFGkzZr35h+FVZk9z3y DA2P60g2DNTbFFNczQU2QLtFNY0rEoY/CpUkRObdZsrEW06/TisvOm+74njD5Bn1bO1iZKDAVD+R 9bfzbTNpnrYzvmSXb+fizmyNphfymf8L9cZaKCCWCMV1SPuBvXzYhUbhULwZ0Yi6Ke6QpXqqK3SG Fnd64lBKNSFcAAz7DK3Z0b4fxBgweMEC5QAP7pBWq2hrRlrUuMS7PgZMyAz96ow8TpBtZNLBcVfz 3C54nWj/tRdeZPX0AzomOuLSmmZWS7SbDoTw15W4cA== =yQIp -----END PGP SIGNATURE----- --------------MuQ4Zg3uAyhS9tCF1azVKHVX--