From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: passt.top; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=F8HzRAlo; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by passt.top (Postfix) with ESMTPS id 406F15A0265 for ; Wed, 06 May 2026 12:57:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1778065045; 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:autocrypt:autocrypt; bh=6TwmNIKwTpobQgBfPqZ2eOfvGsQY3JyJS9OKWYEuJfk=; b=F8HzRAloqX54EMt8oqM43nE3voYLLSZU2eZo1GRx5HGl8yALbwpVdSNM2Bmh3jCKzxDzLA ZoSLa8M4ZCHBVpTIu1S491bjHxlYwqm5F7fTrPFWS9qasuHs4UTG/soFfbzDjz0WvwhQBV Mz/gC+J2/F2ht6h+5J+5F6lqmWdv10M= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-648-C2ZOx1g3NAWyIF_0qOIaYg-1; Wed, 06 May 2026 06:57:24 -0400 X-MC-Unique: C2ZOx1g3NAWyIF_0qOIaYg-1 X-Mimecast-MFC-AGG-ID: C2ZOx1g3NAWyIF_0qOIaYg_1778065044 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-4891f97aef0so38682645e9.2 for ; Wed, 06 May 2026 03:57:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778065043; x=1778669843; h=content-transfer-encoding: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=6TwmNIKwTpobQgBfPqZ2eOfvGsQY3JyJS9OKWYEuJfk=; b=EkAxowniipnY9mTydlKPQbGZAGqNkmaLhne038mo0q6x19El2rhg5+vb2P/Wvs6XVf rqJSvlwtMA9Q+GqVcA3Xvdf1ICE27RZkVqOA0d4Cog391+pNSDcKgD03nD3D8M6mifSI wo5aGf1ITN4lTKkESTe9PPkqxisMBfVzTzZh/IUlkV2RB22BhQcPjrxiWOmfD6/W2JFw CrAfFEfmTgDrHL21IGFkbCP5VF/FCnVLzXWNewCkr7Awrh1+5fPHYYFtWkRUJpX1a2El k0CWimo5iBYSBjMfZevaDXolUoteL6n9MEDjVoqUP+HFjwO/5wje2/AHkpCpeTvX0sIi sHgw== X-Forwarded-Encrypted: i=1; AFNElJ/RyRjWfpQjXTvQblu26b22/NfYOUYxJnGuq4PX+Itmp6cvAnvQkk8fJlGBuTJTh6d6d448XPSJBFs=@passt.top X-Gm-Message-State: AOJu0YwG9ievu8VHljZg5g6bByWsRqsfoS6zk3ULLloZKVULN5aQdfSy mxoNo28OKlT5v+arOEnyKjm5qkM6LP1VQjGLi9VUIGJZaopZM8DRE48wFbN9Isj84H9aPizxr30 N7ZvPIGbQhv5VDDZ5WcveIXSDWcqaDjDgW/Wns0U8hOXQV+zryAC0yg== X-Gm-Gg: AeBDieteWUHUscAFKEUAWkcBK0I2Z8NWcZl4hg7CyeKdTGwaUf0oo7n2BUZ+Mz2mayN 1IFYgDkOFXJn2ne88M08yiRx6V8OA4iPpu0Pj51K/WHEBanTuWyxjPeJiTiVzDSika9hgq+gATR 3i3P/YNp1Ri6jhJCshK5b2p2dvY/JiRKnnm6fSqGgtMYTfu0gvAfnMZXvQ/cTfrh97jPMbaqBUT tOUO4hFINyFr1qexa9Xy1AWlDL0309TCAGPcb1PSy0/gylLuvew3PaU/AM+wnINug7Q1I55euNu d1jHZYXnYgOOYyQCixpLmQJuw0wspIRaRTkOU60q4eReWudtzvoPXcU5nywCjgb6PuLTdLs13xf q8d9sJ052rH/LolYCCPbm+GAvM/54/MljHPiL0b4DHJ+M6K76K0iCkxhWTwh8zEDp2w== X-Received: by 2002:a05:600c:c094:b0:48a:557e:6b4f with SMTP id 5b1f17b1804b1-48e51f45a0dmr34166475e9.23.1778065043524; Wed, 06 May 2026 03:57:23 -0700 (PDT) X-Received: by 2002:a05:600c:c094:b0:48a:557e:6b4f with SMTP id 5b1f17b1804b1-48e51f45a0dmr34166055e9.23.1778065042927; Wed, 06 May 2026 03:57:22 -0700 (PDT) Received: from [192.168.100.100] (82-64-211-94.subs.proxad.net. [82.64.211.94]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48e53891163sm42798625e9.2.2026.05.06.03.57.22 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 06 May 2026 03:57:22 -0700 (PDT) Message-ID: <968e8019-e98c-48bb-927b-7f7b2f37deff@redhat.com> Date: Wed, 6 May 2026 12:57:21 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v9 10/23] pesto, conf: Have pesto connect to passt and check versions To: Stefano Brivio , passt-dev@passt.top References: <20260506092241.1607480-1-sbrivio@redhat.com> <20260506092241.1607480-11-sbrivio@redhat.com> From: Laurent Vivier Autocrypt: addr=lvivier@redhat.com; keydata= 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 In-Reply-To: <20260506092241.1607480-11-sbrivio@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: WY0MhnpBHLCksI2qD3caKeTe0gN5u_kAnuhaC2oszRA_1778065044 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: MSHQFAK4BM5FRVLY4RHHDIWV6LMPUTUG X-Message-ID-Hash: MSHQFAK4BM5FRVLY4RHHDIWV6LMPUTUG X-MailFrom: lvivier@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Jon Maloy , David Gibson X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: T24gNS82LzI2IDExOjIyLCBTdGVmYW5vIEJyaXZpbyB3cm90ZToNCj4gRnJvbTogRGF2aWQgR2li c29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+DQo+IA0KPiBTdGFydCBpbXBsZW1lbnRp bmcgcGVzdG8gaW4gZWFybmVzdC4gIENyZWF0ZSBhIGNvbnRyb2wvY29uZmlndXJhdGlvbg0KPiBz b2NrZXQgaW4gcGFzc3QuICBIYXZlIHBlc3RvIGNvbm5lY3QgdG8gaXQgYW5kIHJldHJpZXZlIGEg c2VydmVyIGdyZWV0aW5nDQo+IFBlcmZvcm0gc29tZSBiYXNpYyB2ZXJzaW9uIGNoZWNraW5nLg0K PiANCj4gU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIu aWQuYXU+DQo+IFtzYnJpdmlvOiBBdm9pZCBwb3RlbnRpYWwgcmVjdXJzaXZlIGNhbGxpbmcgYmV0 d2VlbiBjb25mX2FjY2VwdCgpIGFuZA0KPiAgIGNvbmZfY2xvc2UoKSwgcmVwb3J0ZWQgYnkgY2xh bmctdGlkeV0NCj4gW3Nicml2aW86IEluIGNvbmYoKSwgY2hlY2sgd2UncmUgbm90IGV4Y2VlZGlu ZyBzaXplb2YoYy0+Y29udHJvbF9wYXRoKQ0KPiAgIGluc3RlYWQgb2Ygc2l6ZW9mKGMtPnNvY2tl dF9wYXRoKSwgYW5kLCBpbiBwZXN0bydzIG1haW4oKSwgcHJpbnQNCj4gICBhcmd2W29wdGluZF0g aW5zdGVhZCBvZiBhcmd2WzFdIHRvIGluZGljYXRlIGFuIGludmFsaWQgc29ja2V0IHBhdGgsDQo+ ICAgYm90aCByZXBvcnRlZCBieSBKb24gTWFsb3ldDQo+IFtzYnJpdmlvOiBJbiBwZXN0bydzIG1h aW4oKSwgZHJvcCB1bm5lY2Vzc2FyeSBuZXdsaW5lIGZyb20gZXJyb3INCj4gICBtZXNzYWdlLCBy ZXBvcnRlZCBieSBMYXVyZW50XQ0KPiBbc2JyaXZpbzogRG9uJ3QgdXNlIFNPQ0tfTk9OQkxPQ0sg b24gYWNjZXB0NCgpLCBhcyB0aGF0IG9ubHkgYXBwbGllcw0KPiAgIHRvIHRoZSAqbmV3KiBmaWxl IGRlc2NyaXB0b3IsIHdoaWNoIHdlIGRvbid0IHdhbnQgLS0gc2V0IE9fTk9OQkxPQ0sNCj4gICBv biB0aGUgbGlzdGVuaW5nIGZpbGUgZGVzY3JpcHRvciB1c2luZyBmY250bCgpXQ0KPiBbc2JyaXZp bzogU3dpdGNoIHRvIHByb3RvY29sIHZlcnNpb24gMSwgYW5kIHJlZmxlY3QgdGhlIHRydWUgbWFn aWMNCj4gICBiZWhpbmQgcGVzdG8sIGkuZS4gYmFzaWwsIGludG8gdGhlIG1hZ2ljIHN0cmluZ10N Cg0KQnV0IHRoZSByZWFsIHZhbHVlIGlzIGluIHBpbmUgbnV0cyAoMTEwIOKCrC9rZyBoZXJlKS4N CihJIG1ha2UgbWluZSB3aXRoIGJlYXIncyBnYXJsaWMgYW5kIGFsbW9uZHMpDQoNCj4gW3Nicml2 aW86IEZpeCBjb25mbGljdHMgaW4gdGhlIE1ha2VmaWxlIGNhdXNlZCBieSB0aGUgZmFjdCB0aGF0 IEknbQ0KPiAgIG5vdCBtZXJnaW5nIGEgcHJldmlvdXMgc2VyaWVzIHJld29ya2luZyBpdF0NCj4g U2lnbmVkLW9mZi1ieTogU3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0LmNvbT4NCg0KUmV2 aWV3ZWQtYnk6IExhdXJlbnQgVml2aWVyIDxsdml2aWVyQHJlZGhhdC5jb20+DQoNCj4gLS0tDQo+ ICAgTWFrZWZpbGUgICAgIHwgICAyICstDQo+ICAgY29uZi5jICAgICAgIHwgMTg0ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiAgIGNvbmYuaCAg ICAgICB8ICAgMiArDQo+ICAgZXBvbGxfdHlwZS5oIHwgICA0ICsrDQo+ICAgcGFzc3QuMSAgICAg IHwgICA1ICsrDQo+ICAgcGFzc3QuYyAgICAgIHwgICA4ICsrKw0KPiAgIHBhc3N0LmggICAgICB8 ICAgNiArKw0KPiAgIHBlc3RvLmMgICAgICB8ICA0NyArKysrKysrKysrKystDQo+ICAgcGVzdG8u aCAgICAgIHwgIDIyICsrKysrKw0KPiAgIHNlcmlhbGlzZS5jICB8ICAgMyArDQo+ICAgMTAgZmls ZXMgY2hhbmdlZCwgMjc5IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZm IC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQ0KPiBpbmRleCAyNjM5NDcyLi5iMTAwM2Q4IDEw MDY0NA0KPiAtLS0gYS9NYWtlZmlsZQ0KPiArKysgYi9NYWtlZmlsZQ0KPiBAQCAtNDUsNyArNDUs NyBAQCBQQVNTVF9TUkNTID0gYXJjaC5jIGFycC5jIGJpdG1hcC5jIGNoZWNrc3VtLmMgY29uZi5j IGRoY3AuYyBkaGNwdjYuYyBcDQo+ICAgCXZob3N0X3VzZXIuYyB2aXJ0aW8uYyB2dV9jb21tb24u Yw0KPiAgIFFSQVBfU1JDUyA9IHFyYXAuYw0KPiAgIFBBU1NUX1JFUEFJUl9TUkNTID0gcGFzc3Qt cmVwYWlyLmMNCj4gLVBFU1RPX1NSQ1MgPSBwZXN0by5jDQo+ICtQRVNUT19TUkNTID0gcGVzdG8u YyBzZXJpYWxpc2UuYw0KPiAgIFNSQ1MgPSAkKFBBU1NUX1NSQ1MpICQoUVJBUF9TUkNTKSAkKFBB U1NUX1JFUEFJUl9TUkNTKSAkKFBFU1RPX1NSQ1MpDQo+ICAgDQo+ICAgTUFOUEFHRVMgPSBwYXNz dC4xIHBhc3RhLjEgcGVzdG8uMSBxcmFwLjEgcGFzc3QtcmVwYWlyLjENCj4gZGlmZiAtLWdpdCBh L2NvbmYuYyBiL2NvbmYuYw0KPiBpbmRleCAwNTg2MTA3Li41ZWMwMDcyIDEwMDY0NA0KPiAtLS0g YS9jb25mLmMNCj4gKysrIGIvY29uZi5jDQo+IEBAIC00OCw2ICs0OCwxMCBAQA0KPiAgICNpbmNs dWRlICJpc29sYXRpb24uaCINCj4gICAjaW5jbHVkZSAibG9nLmgiDQo+ICAgI2luY2x1ZGUgInZo b3N0X3VzZXIuaCINCj4gKyNpbmNsdWRlICJlcG9sbF9jdGwuaCINCj4gKyNpbmNsdWRlICJjb25m LmgiDQo+ICsjaW5jbHVkZSAicGVzdG8uaCINCj4gKyNpbmNsdWRlICJzZXJpYWxpc2UuaCINCj4g ICANCj4gICAjZGVmaW5lIE5FVE5TX1JVTl9ESVIJIi9ydW4vbmV0bnMiDQo+ICAgDQo+IEBAIC01 NDEsNiArNTQ1LDcgQEAgc3RhdGljIHZvaWQgdXNhZ2UoY29uc3QgY2hhciAqbmFtZSwgRklMRSAq ZiwgaW50IHN0YXR1cykNCj4gICAJCSIgIC0tcnVuYXMgVUlEfFVJRDpHSUQgCVJ1biBhcyBnaXZl biBVSUQsIEdJRCwgd2hpY2ggY2FuIGJlXG4iDQo+ICAgCQkiICAgIG51bWVyaWMsIG9yIGxvZ2lu IGFuZCBncm91cCBuYW1lc1xuIg0KPiAgIAkJIiAgICBkZWZhdWx0OiBkcm9wIHRvIHVzZXIgXCJu b2JvZHlcIlxuIg0KPiArCQkiICAtYywgLS1jb25mLXBhdGggUEFUSAlDb25maWd1cmF0aW9uIHNv Y2tldCBwYXRoXG4iDQo+ICAgCQkiICAtaCwgLS1oZWxwCQlEaXNwbGF5IHRoaXMgaGVscCBtZXNz YWdlIGFuZCBleGl0XG4iDQo+ICAgCQkiICAtLXZlcnNpb24JCVNob3cgdmVyc2lvbiBhbmQgZXhp dFxuIik7DQo+ICAgDQo+IEBAIC03NzksNiArNzg0LDkgQEAgc3RhdGljIHZvaWQgY29uZl9wcmlu dChjb25zdCBzdHJ1Y3QgY3R4ICpjKQ0KPiAgIAljaGFyIGJ1ZltJTkFOWV9BRERSU1RSTEVOXTsN Cj4gICAJaW50IGk7DQo+ICAgDQo+ICsJaWYgKGMtPmZkX2NvbnRyb2xfbGlzdGVuID49IDApDQo+ ICsJCWluZm8oIkNvbmZpZ3VyYXRpb24gc29ja2V0OiAlcyIsIGMtPmNvbnRyb2xfcGF0aCk7DQo+ ICsNCj4gICAJaWYgKGMtPmlmaTQgPiAwIHx8IGMtPmlmaTYgPiAwKSB7DQo+ICAgCQljaGFyIGlm bltJRk5BTVNJWl07DQo+ICAgDQo+IEBAIC0xMDcyLDYgKzEwODAsMTkgQEAgc3RhdGljIHZvaWQg Y29uZl9vcGVuX2ZpbGVzKHN0cnVjdCBjdHggKmMpDQo+ICAgCQlpZiAoYy0+cGlkZmlsZV9mZCA8 IDApDQo+ICAgCQkJZGllX3BlcnJvcigiQ291bGRuJ3Qgb3BlbiBQSUQgZmlsZSAlcyIsIGMtPnBp ZGZpbGUpOw0KPiAgIAl9DQo+ICsNCj4gKwljLT5mZF9jb250cm9sID0gLTE7DQo+ICsJaWYgKCpj LT5jb250cm9sX3BhdGgpIHsNCj4gKwkJYy0+ZmRfY29udHJvbF9saXN0ZW4gPSBzb2NrX3VuaXgo Yy0+Y29udHJvbF9wYXRoKTsNCj4gKwkJaWYgKGMtPmZkX2NvbnRyb2xfbGlzdGVuIDwgMCkgew0K PiArCQkJZGllX3BlcnJvcigiQ291bGRuJ3Qgb3BlbiBjb250cm9sIHNvY2tldCAlcyIsDQo+ICsJ CQkJICAgYy0+Y29udHJvbF9wYXRoKTsNCj4gKwkJfQ0KPiArCQlpZiAoZmNudGwoYy0+ZmRfY29u dHJvbF9saXN0ZW4sIEZfU0VURkwsIE9fTk9OQkxPQ0spKQ0KPiArCQkJZGllX3BlcnJvcigiQ291 bGRuJ3Qgc2V0IE9fTk9OQkxPQ0sgb24gY29udHJvbCBzb2NrZXQiKTsNCj4gKwl9IGVsc2Ugew0K PiArCQljLT5mZF9jb250cm9sX2xpc3RlbiA9IC0xOw0KPiArCX0NCj4gICB9DQo+ICAgDQo+ICAg LyoqDQo+IEBAIC0xMTA3LDYgKzExMjgsMjUgQEAgZmFpbDoNCj4gICAJZGllKCJJbnZhbGlkIE1B QyBhZGRyZXNzOiAlcyIsIHN0cik7DQo+ICAgfQ0KPiAgIA0KPiArLyoqDQo+ICsgKiBjb25mX3Nv Y2tfbGlzdGVuKCkgLSBTdGFydCBsaXN0ZW5pbmcgZm9yIGNvbm5lY3Rpb25zIG9uIGNvbmZpZ3Vy YXRpb24gc29ja2V0DQo+ICsgKiBAYzoJCUV4ZWN1dGlvbiBjb250ZXh0DQo+ICsgKi8NCj4gK3N0 YXRpYyB2b2lkIGNvbmZfc29ja19saXN0ZW4oY29uc3Qgc3RydWN0IGN0eCAqYykNCj4gK3sNCj4g Kwl1bmlvbiBlcG9sbF9yZWYgcmVmID0geyAudHlwZSA9IEVQT0xMX1RZUEVfQ09ORl9MSVNURU4g fTsNCj4gKw0KPiArCWlmIChjLT5mZF9jb250cm9sX2xpc3RlbiA8IDApDQo+ICsJCXJldHVybjsN Cj4gKw0KPiArCWlmIChsaXN0ZW4oYy0+ZmRfY29udHJvbF9saXN0ZW4sIDApKQ0KPiArCQlkaWVf cGVycm9yKCJDb3VsZG4ndCBsaXN0ZW4gb24gY29uZmlndXJhdGlvbiBzb2NrZXQiKTsNCj4gKw0K PiArCXJlZi5mZCA9IGMtPmZkX2NvbnRyb2xfbGlzdGVuOw0KPiArCWlmIChlcG9sbF9hZGQoYy0+ ZXBvbGxmZCwgRVBPTExJTiB8IEVQT0xMRVQsIHJlZikpDQo+ICsJCWRpZV9wZXJyb3IoIkNvdWxk bid0IGFkZCBjb25maWd1cmF0aW9uIHNvY2tldCB0byBlcG9sbCIpOw0KPiArfQ0KPiArDQo+ICAg LyoqDQo+ICAgICogY29uZigpIC0gUHJvY2VzcyBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGFuZCBz ZXQgY29uZmlndXJhdGlvbg0KPiAgICAqIEBjOgkJRXhlY3V0aW9uIGNvbnRleHQNCj4gQEAgLTEx ODksOSArMTIyOSwxMCBAQCB2b2lkIGNvbmYoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQ0KPiAgIAkJeyJtaWdyYXRlLWV4aXQiLCBub19hcmd1bWVudCwJCU5VTEwsCQkyOSB9 LA0KPiAgIAkJeyJtaWdyYXRlLW5vLWxpbmdlciIsIG5vX2FyZ3VtZW50LAlOVUxMLAkJMzAgfSwN Cj4gICAJCXsic3RhdHMiLCByZXF1aXJlZF9hcmd1bWVudCwJCU5VTEwsCQkzMSB9LA0KPiArCQl7 ImNvbmYtcGF0aCIsCXJlcXVpcmVkX2FyZ3VtZW50LAlOVUxMLAkJJ2MnIH0sDQo+ICAgCQl7IDAg fSwNCj4gICAJfTsNCj4gLQljb25zdCBjaGFyICpvcHRzdHJpbmcgPSAiK2RxZmVsOmhzOkY6STpw OlA6bTphOm46TTpnOmk6bzpEOlM6SDo0NjF0OnU6VDpVOiI7DQo+ICsJY29uc3QgY2hhciAqb3B0 c3RyaW5nID0gIitkcWZlbDpoczpjOkY6STpwOlA6bTphOm46TTpnOmk6bzpEOlM6SDo0NjF0OnU6 VDpVOiI7DQo+ICAgCWNvbnN0IGNoYXIgKmxvZ25hbWUgPSAoYy0+bW9kZSA9PSBNT0RFX1BBU1RB KSA/ICJwYXN0YSIgOiAicGFzc3QiOw0KPiAgIAlib29sIG9wdF90ID0gZmFsc2UsIG9wdF9UID0g ZmFsc2UsIG9wdF91ID0gZmFsc2UsIG9wdF9VID0gZmFsc2U7DQo+ICAgCWNoYXIgdXNlcm5zW1BB VEhfTUFYXSA9IHsgMCB9LCBuZXRuc1tQQVRIX01BWF0gPSB7IDAgfTsNCj4gQEAgLTE0NDksNiAr MTQ5MCwxMyBAQCB2b2lkIGNvbmYoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQ0KPiAgIA0KPiAgIAkJCWMtPmZkX3RhcCA9IC0xOw0KPiAgIAkJCWJyZWFrOw0KPiArCQljYXNl ICdjJzoNCj4gKwkJCXJldCA9IHNucHJpbnRmKGMtPmNvbnRyb2xfcGF0aCwgc2l6ZW9mKGMtPmNv bnRyb2xfcGF0aCksDQo+ICsJCQkJICAgICAgICIlcyIsIG9wdGFyZyk7DQo+ICsJCQlpZiAocmV0 IDw9IDAgfHwgcmV0ID49IChpbnQpc2l6ZW9mKGMtPmNvbnRyb2xfcGF0aCkpDQo+ICsJCQkJZGll KCJJbnZhbGlkIGNvbmZpZ3VyYXRpb24gcGF0aDogJXMiLCBvcHRhcmcpOw0KPiArCQkJYy0+ZmRf Y29udHJvbF9saXN0ZW4gPSBjLT5mZF9jb250cm9sID0gLTE7DQo+ICsJCQlicmVhazsNCj4gICAJ CWNhc2UgJ0YnOg0KPiAgIAkJCWVycm5vID0gMDsNCj4gICAJCQlmZF90YXBfb3B0ID0gc3RydG9s KG9wdGFyZywgTlVMTCwgMCk7DQo+IEBAIC0xODcxLDYgKzE5MTksMTQwIEBAIHZvaWQgY29uZihz dHJ1Y3QgY3R4ICpjLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+ICAgCQkJZndkX3J1bGVfcGFy c2UoJ1UnLCAiYXV0byIsIGMtPmZ3ZFtQSUZfU1BMSUNFXSk7DQo+ICAgCX0NCj4gICANCj4gKwlj b25mX3NvY2tfbGlzdGVuKGMpOw0KPiArDQo+ICAgCWlmICghYy0+cXVpZXQpDQo+ICAgCQljb25m X3ByaW50KGMpOw0KPiAgIH0NCj4gKw0KPiArc3RhdGljIHZvaWQgY29uZl9hY2NlcHQoc3RydWN0 IGN0eCAqYyk7DQo+ICsNCj4gKy8qKg0KPiArICogY29uZl9jbG9zZSgpIC0gQ2xvc2UgY29uZmln dXJhdGlvbiAvIGNvbnRyb2wgc29ja2V0IGFuZCBjbGVhbiB1cA0KPiArICogQGM6CQlFeGVjdXRp b24gY29udGV4dA0KPiArICovDQo+ICtzdGF0aWMgdm9pZCBjb25mX2Nsb3NlKHN0cnVjdCBjdHgg KmMpDQo+ICt7DQo+ICsJZGVidWcoIkNsb3NpbmcgY29uZmlndXJhdGlvbiBzb2NrZXQiKTsNCj4g KwllcG9sbF9jdGwoYy0+ZXBvbGxmZCwgRVBPTExfQ1RMX0RFTCwgYy0+ZmRfY29udHJvbCwgTlVM TCk7DQo+ICsJY2xvc2UoYy0+ZmRfY29udHJvbCk7DQo+ICsJYy0+ZmRfY29udHJvbCA9IC0xOw0K PiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIGNvbmZfbGlzdGVuX2hhbmRsZXIoKSAtIEhhbmRsZSBl dmVudHMgb24gY29uZmlndXJhdGlvbiBsaXN0ZW5pbmcgc29ja2V0DQo+ICsgKiBAYzoJCUV4ZWN1 dGlvbiBjb250ZXh0DQo+ICsgKiBAZXZlbnRzOgllcG9sbCBldmVudHMNCj4gKyAqLw0KPiArdm9p ZCBjb25mX2xpc3Rlbl9oYW5kbGVyKHN0cnVjdCBjdHggKmMsIHVpbnQzMl90IGV2ZW50cykNCj4g K3sNCj4gKwlpZiAoZXZlbnRzICE9IEVQT0xMSU4pIHsNCj4gKwkJZXJyKCJVbmV4cGVjdGVkIGV2 ZW50IDB4JTA0eCBvbiBjb25maWd1cmF0aW9uIHNvY2tldCIsIGV2ZW50cyk7DQo+ICsJCXJldHVy bjsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoYy0+ZmRfY29udHJvbCA+PSAwKSB7DQo+ICsJCS8qIEln bm9yZSB0aGUgbmV3IGNvbm5lY3Rpb24gZm9yIG5vdywgYmxvY2tpbmcgaXQgdW50aWwgdGhlDQo+ ICsJCSAqIGN1cnJlbnQgb25lIGZpbmlzaGVzLg0KPiArCQkgKi8NCj4gKwkJcmV0dXJuOw0KPiAr CX0NCj4gKw0KPiArCWNvbmZfYWNjZXB0KGMpOw0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIGNv bmZfYWNjZXB0KCkgLSBBY2NlcHQgYSBuZXcgY29udHJvbCBjb25uZWN0aW9uDQo+ICsgKiBAYzoJ CUV4ZWN1dGlvbiBjb250ZXh0DQo+ICsgKi8NCj4gK3N0YXRpYyB2b2lkIGNvbmZfYWNjZXB0KHN0 cnVjdCBjdHggKmMpDQo+ICt7DQo+ICsJc3RydWN0IHBlc3RvX2hlbGxvIGhlbGxvID0gew0KPiAr CQkubWFnaWMgPSBQRVNUT19TRVJWRVJfTUFHSUMsDQo+ICsJCS52ZXJzaW9uID0gaHRvbmwoUEVT VE9fUFJPVE9DT0xfVkVSU0lPTiksDQo+ICsJfTsNCj4gKwl1bmlvbiBlcG9sbF9yZWYgcmVmID0g eyAudHlwZSA9IEVQT0xMX1RZUEVfQ09ORiB9Ow0KPiArCXN0cnVjdCB1Y3JlZCB1YyA9IHsgMCB9 Ow0KPiArCXNvY2tsZW5fdCBsZW4gPSBzaXplb2YodWMpOw0KPiArCWludCBmZCwgcmM7DQo+ICsN Cj4gK3JldHJ5Og0KPiArCWVycigiJXM6ICVpIiwgX19mdW5jX18sIF9fTElORV9fKTsNCj4gKwlm ZCA9IGFjY2VwdDQoYy0+ZmRfY29udHJvbF9saXN0ZW4sIE5VTEwsIE5VTEwsIFNPQ0tfQ0xPRVhF Qyk7DQo+ICsJaWYgKGZkIDwgMCkgew0KPiArCQllcnIoIiVzOiAlaSIsIF9fZnVuY19fLCBfX0xJ TkVfXyk7DQo+ICsJCWlmIChlcnJubyAhPSBFQUdBSU4pDQo+ICsJCQl3YXJuX3BlcnJvcigiYWNj ZXB0NCgpIG9uIGNvbmZpZ3VyYXRpb24gbGlzdGVuaW5nIHNvY2tldCIpOw0KPiArCQlyZXR1cm47 DQo+ICsJfQ0KPiArDQo+ICsJZXJyKCIlczogJWkiLCBfX2Z1bmNfXywgX19MSU5FX18pOw0KPiAr DQo+ICsJaWYgKGdldHNvY2tvcHQoZmQsIFNPTF9TT0NLRVQsIFNPX1BFRVJDUkVELCAmdWMsICZs ZW4pIDwgMCkNCj4gKwkJd2Fybl9wZXJyb3IoIkNhbid0IGdldCBjb25maWd1cmF0aW9uIGNsaWVu dCBjcmVkZW50aWFscyIpOw0KPiArDQo+ICsJYy0+ZmRfY29udHJvbCA9IHJlZi5mZCA9IGZkOw0K PiArCXJjID0gZXBvbGxfYWRkKGMtPmVwb2xsZmQsIEVQT0xMSU4gfCBFUE9MTEVULCByZWYpOw0K PiArCWlmIChyYyA8IDApIHsNCj4gKwkJd2Fybl9wZXJyb3IoImVwb2xsX2N0bCgpIG9uIGNvbmZp Z3VyYXRpb24gc29ja2V0Iik7DQo+ICsJCWdvdG8gZmFpbDsNCj4gKwl9DQo+ICsNCj4gKwlyYyA9 IHdyaXRlX2FsbF9idWYoZmQsICZoZWxsbywgc2l6ZW9mKGhlbGxvKSk7DQo+ICsJaWYgKHJjIDwg MCkgew0KPiArCQl3YXJuX3BlcnJvcigiRXJyb3Igd3JpdGluZyBjb25maWd1cmF0aW9uIHByb3Rv Y29sIGhlbGxvIik7DQo+ICsJCWdvdG8gZmFpbDsNCj4gKwl9DQo+ICsNCj4gKwlpbmZvKCJBY2Nl cHRlZCBjb25maWd1cmF0aW9uIGNsaWVudCwgUElEICVpIiwgdWMucGlkKTsNCj4gKwlpZiAoIVBF U1RPX1BST1RPQ09MX1ZFUlNJT04pIHsNCj4gKwkJd2FybigNCj4gKyJXYXJuaW5nOiBVc2luZyBl eHBlcmltZW50YWwgdW5zdXBwb3J0ZWQgY29uZmlndXJhdGlvbiBwcm90b2NvbCIpOw0KPiArCX0N Cj4gKw0KPiArCXJldHVybjsNCj4gKw0KPiArZmFpbDoNCj4gKwljb25mX2Nsb3NlKGMpOw0KPiAr CWdvdG8gcmV0cnk7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogY29uZl9oYW5kbGVyKCkgLSBI YW5kbGUgZXZlbnRzIG9uIGNvbmZpZ3VyYXRpb24gc29ja2V0DQo+ICsgKiBAYzoJCUV4ZWN1dGlv biBjb250ZXh0DQo+ICsgKiBAZXZlbnRzOgllcG9sbCBldmVudHMNCj4gKyAqLw0KPiArdm9pZCBj b25mX2hhbmRsZXIoc3RydWN0IGN0eCAqYywgdWludDMyX3QgZXZlbnRzKQ0KPiArew0KPiArCWlm IChldmVudHMgJiBFUE9MTElOKSB7DQo+ICsJCWNoYXIgZGlzY2FyZFtCVUZTSVpdOw0KPiArCQlz c2l6ZV90IG47DQo+ICsNCj4gKwkJZG8gew0KPiArCQkJbiA9IHJlYWQoYy0+ZmRfY29udHJvbCwg ZGlzY2FyZCwgc2l6ZW9mKGRpc2NhcmQpKTsNCj4gKwkJCWlmIChuID4gMCkNCj4gKwkJCQlkZWJ1 ZygiRGlzY2FyZGVkICV6ZCBieXRlcyBvZiBjb25maWcgZGF0YSIsIG4pOw0KPiArCQl9IHdoaWxl IChuID4gMCk7DQo+ICsJCWlmIChuID09IDApIHsNCj4gKwkJCWRlYnVnKCJDb25maWd1cmF0aW9u IGNsaWVudCBFT0YiKTsNCj4gKwkJCWdvdG8gY2xvc2U7DQo+ICsJCX0NCj4gKwkJaWYgKGVycm5v ICE9IEVBR0FJTiAmJiBlcnJubyAhPSBFV09VTERCTE9DSykgew0KPiArCQkJZXJyX3BlcnJvcigi RXJyb3IgcmVhZGluZyBjb25maWcgZGF0YSIpOw0KPiArCQkJZ290byBjbG9zZTsNCj4gKwkJfQ0K PiArCX0NCj4gKw0KPiArCWlmIChldmVudHMgJiBFUE9MTEhVUCkgew0KPiArCQlkZWJ1ZygiQ29u ZmlndXJhdGlvbiBjbGllbnQgaGFuZ3VwIik7DQo+ICsJCWdvdG8gY2xvc2U7DQo+ICsJfQ0KPiAr DQo+ICsJcmV0dXJuOw0KPiArDQo+ICtjbG9zZToNCj4gKwljb25mX2Nsb3NlKGMpOw0KPiArDQo+ ICsJLyogQ2hlY2sgaWYgYW55IG90aGVyIGNsaWVudHMgYXJlIHdhaXRpbmcgdG8gY29ubmVjdCAq Lw0KPiArCWNvbmZfYWNjZXB0KGMpOw0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvY29uZi5oIGIvY29u Zi5oDQo+IGluZGV4IGI0NWFkNzQuLjE2Zjk3MTggMTAwNjQ0DQo+IC0tLSBhL2NvbmYuaA0KPiAr KysgYi9jb25mLmgNCj4gQEAgLTgsNSArOCw3IEBADQo+ICAgDQo+ICAgZW51bSBwYXNzdF9tb2Rl cyBjb25mX21vZGUoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSk7DQo+ICAgdm9pZCBjb25mKHN0cnVj dCBjdHggKmMsIGludCBhcmdjLCBjaGFyICoqYXJndik7DQo+ICt2b2lkIGNvbmZfbGlzdGVuX2hh bmRsZXIoc3RydWN0IGN0eCAqYywgdWludDMyX3QgZXZlbnRzKTsNCj4gK3ZvaWQgY29uZl9oYW5k bGVyKHN0cnVjdCBjdHggKmMsIHVpbnQzMl90IGV2ZW50cyk7DQo+ICAgDQo+ICAgI2VuZGlmIC8q IENPTkZfSCAqLw0KPiBkaWZmIC0tZ2l0IGEvZXBvbGxfdHlwZS5oIGIvZXBvbGxfdHlwZS5oDQo+ IGluZGV4IGE5MGZmYjYuLjA2MTMyNWEgMTAwNjQ0DQo+IC0tLSBhL2Vwb2xsX3R5cGUuaA0KPiAr KysgYi9lcG9sbF90eXBlLmgNCj4gQEAgLTQ2LDYgKzQ2LDEwIEBAIGVudW0gZXBvbGxfdHlwZSB7 DQo+ICAgCUVQT0xMX1RZUEVfUkVQQUlSLA0KPiAgIAkvKiBOZXRsaW5rIG5laWdoYm91ciBzdWJz Y3JpcHRpb24gc29ja2V0ICovDQo+ICAgCUVQT0xMX1RZUEVfTkxfTkVJR0gsDQo+ICsJLyogQ29u ZmlndXJhdGlvbiBsaXN0ZW5pbmcgc29ja2V0ICovDQo+ICsJRVBPTExfVFlQRV9DT05GX0xJU1RF TiwNCj4gKwkvKiBDb25maWd1cmF0aW9uIHNvY2tldCAqLw0KPiArCUVQT0xMX1RZUEVfQ09ORiwN Cj4gICANCj4gICAJRVBPTExfTlVNX1RZUEVTLA0KPiAgIH07DQo+IGRpZmYgLS1naXQgYS9wYXNz dC4xIGIvcGFzc3QuMQ0KPiBpbmRleCA2MzAzYWViLi45MDhmZDRhIDEwMDY0NA0KPiAtLS0gYS9w YXNzdC4xDQo+ICsrKyBiL3Bhc3N0LjENCj4gQEAgLTEyNyw2ICsxMjcsMTEgQEAgbG9naW4gbmFt ZSBhbmQgZ3JvdXAgbmFtZSBjYW4gYmUgcGFzc2VkLiBUaGlzIHJlcXVpcmVzIHByaXZpbGVnZXMg KGVpdGhlcg0KPiAgIGluaXRpYWwgZWZmZWN0aXZlIFVJRCAwIG9yIENBUF9TRVRVSUQgY2FwYWJp bGl0eSkgdG8gd29yay4NCj4gICBEZWZhdWx0IGlzIHRvIGNoYW5nZSB0byB1c2VyIFxmSW5vYm9k eVxmUiBpZiBzdGFydGVkIGFzIHJvb3QuDQo+ICAgDQo+ICsuVFANCj4gKy5CUiBcLWMgIiwgIiBc LVwtY29uZi1wYXRoICIgIiBcZklwYXRoICIgIiAoRVhQRVJJTUVOVEFMKQ0KPiArUGF0aCBmb3Ig Y29uZmlndXJhdGlvbiBhbmQgY29udHJvbCBzb2NrZXQgdXNlZCBieSBcZkJwZXN0b1xmUigxKSB0 bw0KPiArZHluYW1pY2FsbHkgdXBkYXRlIHBhc3N0IG9yIHBhc3RhJ3MgY29uZmlndXJhdGlvbi4N Cj4gKw0KPiAgIC5UUA0KPiAgIC5CUiBcLWggIiwgIiBcLVwtaGVscA0KPiAgIERpc3BsYXkgYSBo ZWxwIG1lc3NhZ2UgYW5kIGV4aXQuDQo+IGRpZmYgLS1naXQgYS9wYXNzdC5jIGIvcGFzc3QuYw0K PiBpbmRleCBmODQ0MTljLi5iYzQyZWEzIDEwMDY0NA0KPiAtLS0gYS9wYXNzdC5jDQo+ICsrKyBi L3Bhc3N0LmMNCj4gQEAgLTgwLDYgKzgwLDggQEAgY2hhciAqZXBvbGxfdHlwZV9zdHJbXSA9IHsN Cj4gICAJW0VQT0xMX1RZUEVfUkVQQUlSX0xJU1RFTl0JPSAiVENQX1JFUEFJUiBoZWxwZXIgbGlz dGVuaW5nIHNvY2tldCIsDQo+ICAgCVtFUE9MTF9UWVBFX1JFUEFJUl0JCT0gIlRDUF9SRVBBSVIg aGVscGVyIHNvY2tldCIsDQo+ICAgCVtFUE9MTF9UWVBFX05MX05FSUdIXQkJPSAibmV0bGluayBu ZWlnaGJvdXIgbm90aWZpZXIgc29ja2V0IiwNCj4gKwlbRVBPTExfVFlQRV9DT05GX0xJU1RFTl0J PSAiY29uZmlndXJhdGlvbiBsaXN0ZW5pbmcgc29ja2V0IiwNCj4gKwlbRVBPTExfVFlQRV9DT05G XQkJPSAiY29uZmlndXJhdGlvbiBzb2NrZXQiLA0KPiAgIH07DQo+ICAgc3RhdGljX2Fzc2VydChB UlJBWV9TSVpFKGVwb2xsX3R5cGVfc3RyKSA9PSBFUE9MTF9OVU1fVFlQRVMsDQo+ICAgCSAgICAg ICJlcG9sbF90eXBlX3N0cltdIGRvZXNuJ3QgbWF0Y2ggZW51bSBlcG9sbF90eXBlIik7DQo+IEBA IC0zMDMsNiArMzA1LDEyIEBAIHN0YXRpYyB2b2lkIHBhc3N0X3dvcmtlcih2b2lkICpvcGFxdWUs IGludCBuZmRzLCBzdHJ1Y3QgZXBvbGxfZXZlbnQgKmV2ZW50cykNCj4gICAJCWNhc2UgRVBPTExf VFlQRV9OTF9ORUlHSDoNCj4gICAJCQlubF9uZWlnaF9ub3RpZnlfaGFuZGxlcihjKTsNCj4gICAJ CQlicmVhazsNCj4gKwkJY2FzZSBFUE9MTF9UWVBFX0NPTkZfTElTVEVOOg0KPiArCQkJY29uZl9s aXN0ZW5faGFuZGxlcihjLCBldmVudG1hc2spOw0KPiArCQkJYnJlYWs7DQo+ICsJCWNhc2UgRVBP TExfVFlQRV9DT05GOg0KPiArCQkJY29uZl9oYW5kbGVyKGMsIGV2ZW50bWFzayk7DQo+ICsJCQli cmVhazsNCj4gICAJCWRlZmF1bHQ6DQo+ICAgCQkJLyogQ2FuJ3QgaGFwcGVuICovDQo+ICAgCQkJ YXNzZXJ0KDApOw0KPiBkaWZmIC0tZ2l0IGEvcGFzc3QuaCBiL3Bhc3N0LmgNCj4gaW5kZXggNjJi OGRjZC4uYjNmMDQ5ZCAxMDA2NDQNCj4gLS0tIGEvcGFzc3QuaA0KPiArKysgYi9wYXNzdC5oDQo+ IEBAIC0xNTgsNiArMTU4LDcgQEAgc3RydWN0IGlwNl9jdHggew0KPiAgICAqIEBmb3JlZ3JvdW5k OgkJUnVuIGluIGZvcmVncm91bmQsIGRvbid0IGxvZyB0byBzdGRlcnIgYnkgZGVmYXVsdA0KPiAg ICAqIEBub2ZpbGU6CQlNYXhpbXVtIG51bWJlciBvZiBvcGVuIGZpbGVzICh1bGltaXQgLW4pDQo+ ICAgICogQHNvY2tfcGF0aDoJCVBhdGggZm9yIFVOSVggZG9tYWluIHNvY2tldA0KPiArICogQGNv bnRyb2xfcGF0aDoJUGF0aCBmb3IgY29udHJvbC9jb25maWd1cmF0aW9uIFVOSVggZG9tYWluIHNv Y2tldA0KPiAgICAqIEByZXBhaXJfcGF0aDoJVENQX1JFUEFJUiBoZWxwZXIgcGF0aCwgY2FuIGJl ICJub25lIiwgZW1wdHkgZm9yIGRlZmF1bHQNCj4gICAgKiBAcGNhcDoJCVBhdGggZm9yIHBhY2tl dCBjYXB0dXJlIGZpbGUNCj4gICAgKiBAcGlkZmlsZToJCVBhdGggdG8gUElEIGZpbGUsIGVtcHR5 IHN0cmluZyBpZiBub3QgY29uZmlndXJlZA0KPiBAQCAtMTY5LDYgKzE3MCw4IEBAIHN0cnVjdCBp cDZfY3R4IHsNCj4gICAgKiBAZXBvbGxmZDoJCUZpbGUgZGVzY3JpcHRvciBmb3IgZXBvbGwgaW5z dGFuY2UNCj4gICAgKiBAZmRfdGFwX2xpc3RlbjoJRmlsZSBkZXNjcmlwdG9yIGZvciBsaXN0ZW5p bmcgQUZfVU5JWCBzb2NrZXQsIGlmIGFueQ0KPiAgICAqIEBmZF90YXA6CQlBRl9VTklYIHNvY2tl dCwgdHVudGFwIGRldmljZSwgb3IgcHJlLW9wZW5lZCBzb2NrZXQNCj4gKyAqIEBmZF9jb250cm9s X2xpc3RlbjoJTGlzdGVuaW5nIGNvbnRyb2wvY29uZmlndXJhdGlvbiBzb2NrZXQsIGlmIGFueQ0K PiArICogQGZkX2NvbnRyb2w6CQlDb250cm9sL2NvbmZpZ3VyYXRpb24gc29ja2V0LCBpZiBhbnkN Cj4gICAgKiBAZmRfcmVwYWlyX2xpc3RlbjoJRmlsZSBkZXNjcmlwdG9yIGZvciBsaXN0ZW5pbmcg VENQX1JFUEFJUiBzb2NrZXQsIGlmIGFueQ0KPiAgICAqIEBmZF9yZXBhaXI6CQlDb25uZWN0ZWQg QUZfVU5JWCBzb2NrZXQgZm9yIFRDUF9SRVBBSVIgaGVscGVyDQo+ICAgICogQG91cl90YXBfbWFj OglQYXN0YS9wYXNzdCdzIE1BQyBvbiB0aGUgdGFwIGxpbmsNCj4gQEAgLTIyMyw2ICsyMjYsNyBA QCBzdHJ1Y3QgY3R4IHsNCj4gICAJaW50IGZvcmVncm91bmQ7DQo+ICAgCWludCBub2ZpbGU7DQo+ ICAgCWNoYXIgc29ja19wYXRoW1VOSVhfUEFUSF9NQVhdOw0KPiArCWNoYXIgY29udHJvbF9wYXRo W1VOSVhfUEFUSF9NQVhdOw0KPiAgIAljaGFyIHJlcGFpcl9wYXRoW1VOSVhfUEFUSF9NQVhdOw0K PiAgIAljaGFyIHBjYXBbUEFUSF9NQVhdOw0KPiAgIA0KPiBAQCAtMjQwLDYgKzI0NCw4IEBAIHN0 cnVjdCBjdHggew0KPiAgIAlpbnQgZXBvbGxmZDsNCj4gICAJaW50IGZkX3RhcF9saXN0ZW47DQo+ ICAgCWludCBmZF90YXA7DQo+ICsJaW50IGZkX2NvbnRyb2xfbGlzdGVuOw0KPiArCWludCBmZF9j b250cm9sOw0KPiAgIAlpbnQgZmRfcmVwYWlyX2xpc3RlbjsNCj4gICAJaW50IGZkX3JlcGFpcjsN Cj4gICAJdW5zaWduZWQgY2hhciBvdXJfdGFwX21hY1tFVEhfQUxFTl07DQo+IGRpZmYgLS1naXQg YS9wZXN0by5jIGIvcGVzdG8uYw0KPiBpbmRleCBmMDkxNmU4Li5hYjQ3NmM1IDEwMDY0NA0KPiAt LS0gYS9wZXN0by5jDQo+ICsrKyBiL3Blc3RvLmMNCj4gQEAgLTMzLDYgKzMzLDcgQEANCj4gICAN Cj4gICAjaW5jbHVkZSAiY29tbW9uLmgiDQo+ICAgI2luY2x1ZGUgInNlY2NvbXBfcGVzdG8uaCIN Cj4gKyNpbmNsdWRlICJzZXJpYWxpc2UuaCINCj4gICAjaW5jbHVkZSAicGVzdG8uaCINCj4gICAj aW5jbHVkZSAibG9nLmgiDQo+ICAgDQo+IEBAIC02Niw2ICs2Nyw4IEBAIHN0YXRpYyB2b2lkIHVz YWdlKGNvbnN0IGNoYXIgKm5hbWUsIEZJTEUgKmYsIGludCBzdGF0dXMpDQo+ICAgICoNCj4gICAg KiBSZXR1cm46IDAgb24gc3VjY2Vzcywgd29uJ3QgcmV0dXJuIG9uIGZhaWx1cmUNCj4gICAgKg0K PiArICogI3N5c2NhbGxzOnBlc3RvIHNvY2tldCBzMzkweDpzb2NrZXRjYWxsIGk2ODY6c29ja2V0 Y2FsbA0KPiArICogI3N5c2NhbGxzOnBlc3RvIGNvbm5lY3Qgc2h1dGRvd24gY2xvc2UNCj4gICAg KiAjc3lzY2FsbHM6cGVzdG8gZXhpdF9ncm91cCBmc3RhdCByZWFkIHdyaXRlDQo+ICAgICovDQo+ ICAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPiBAQCAtNzYsOSArNzksMTIgQEAg aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPiAgIAkJeyJ2ZXJzaW9uIiwJbm9fYXJn dW1lbnQsCQlOVUxMLAkJMSB9LA0KPiAgIAkJeyAwIH0sDQo+ICAgCX07DQo+ICsJc3RydWN0IHNv Y2thZGRyX3VuIGEgPSB7IEFGX1VOSVgsICIiIH07DQo+ICAgCWNvbnN0IGNoYXIgKm9wdHN0cmlu ZyA9ICJkaCI7DQo+ICsJc3RydWN0IHBlc3RvX2hlbGxvIGhlbGxvOw0KPiAgIAlzdHJ1Y3Qgc29j a19mcHJvZyBwcm9nOw0KPiAtCWludCBvcHRuYW1lOw0KPiArCWludCBvcHRuYW1lLCByZXQsIHM7 DQo+ICsJdWludDMyX3Qgc192ZXJzaW9uOw0KPiAgIA0KPiAgIAlwcmN0bChQUl9TRVRfRFVNUEFC TEUsIDApOw0KPiAgIA0KPiBAQCAtMTIyLDUgKzEyOCw0MiBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpDQo+ICAgDQo+ICAgCWRlYnVnKCJkZWJ1Z19mbGFnPSVkLCBwYXRoPVwiJXNc IiIsIGRlYnVnX2ZsYWcsIGFyZ3Zbb3B0aW5kXSk7DQo+ICAgDQo+IC0JZGllKCJwZXN0byBpcyBu b3QgaW1wbGVtZW50ZWQgeWV0Iik7DQo+ICsJaWYgKChzID0gc29ja2V0KEFGX1VOSVgsIFNPQ0tf U1RSRUFNLCAwKSkgPCAwKQ0KPiArCQlkaWVfcGVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIEFGX1VO SVggc29ja2V0Iik7DQo+ICsNCj4gKwlyZXQgPSBzbnByaW50ZihhLnN1bl9wYXRoLCBzaXplb2Yo YS5zdW5fcGF0aCksICIlcyIsIGFyZ3Zbb3B0aW5kXSk7DQo+ICsJaWYgKHJldCA8PSAwIHx8IHJl dCA+PSAoaW50KXNpemVvZihhLnN1bl9wYXRoKSkNCj4gKwkJZGllKCJJbnZhbGlkIHNvY2tldCBw YXRoIFwiJXNcIiIsIGFyZ3Zbb3B0aW5kXSk7DQo+ICsNCj4gKwlyZXQgPSBjb25uZWN0KHMsIChz dHJ1Y3Qgc29ja2FkZHIgKikmYSwgc2l6ZW9mKGEpKTsNCj4gKwlpZiAocmV0IDwgMCkgew0KPiAr CQlkaWVfcGVycm9yKCJGYWlsZWQgdG8gY29ubmVjdCB0byAlcyIsIGEuc3VuX3BhdGgpOw0KPiAr CX0NCj4gKw0KPiArCXJldCA9IHJlYWRfYWxsX2J1ZihzLCAmaGVsbG8sIHNpemVvZihoZWxsbykp Ow0KPiArCWlmIChyZXQgPCAwKQ0KPiArCQlkaWVfcGVycm9yKCJDb3VsZG4ndCByZWFkIHNlcnZl ciBncmVldGluZyIpOw0KPiArDQo+ICsJaWYgKG1lbWNtcChoZWxsby5tYWdpYywgUEVTVE9fU0VS VkVSX01BR0lDLCBzaXplb2YoaGVsbG8ubWFnaWMpKSkNCj4gKwkJZGllKCJCYWQgbWFnaWMgbnVt YmVyIGZyb20gc2VydmVyIik7DQo+ICsNCj4gKwlzX3ZlcnNpb24gPSBudG9obChoZWxsby52ZXJz aW9uKTsNCj4gKw0KPiArCWlmIChzX3ZlcnNpb24gPiBQRVNUT19QUk9UT0NPTF9WRVJTSU9OKSB7 DQo+ICsJCWRpZSgiVW5rbm93biBzZXJ2ZXIgcHJvdG9jb2wgdmVyc2lvbiAlIlBSSXUzMiIgPiAl IlBSSXUzMiwNCj4gKwkJICAgIHNfdmVyc2lvbiwgUEVTVE9fUFJPVE9DT0xfVkVSU0lPTik7DQo+ ICsJfQ0KPiArDQo+ICsJLyogY3BwY2hlY2stc3VwcHJlc3Mga25vd25Db25kaXRpb25UcnVlRmFs c2UgKi8NCj4gKwlpZiAoIXNfdmVyc2lvbikgew0KPiArCQlpZiAoUEVTVE9fUFJPVE9DT0xfVkVS U0lPTikNCj4gKwkJCWRpZSgiVW5zdXBwb3J0ZWQgZXhwZXJpbWVudGFsIHNlcnZlciBwcm90b2Nv bCIpOw0KPiArCQlGUFJJTlRGKHN0ZGVyciwNCj4gKyJXYXJuaW5nOiBVc2luZyBleHBlcmltZW50 YWwgcHJvdG9jb2wgdmVyc2lvbiwgY2xpZW50IGFuZCBzZXJ2ZXIgbXVzdCBtYXRjaFxuIik7DQo+ ICsJfQ0KPiArDQo+ICsJaWYgKHNodXRkb3duKHMsIFNIVVRfUkRXUikgPCAwIHx8IGNsb3NlKHMp IDwgMCkNCj4gKwkJZGllX3BlcnJvcigiRXJyb3Igc2h1dHRpbmcgZG93biBjb250cm9sIHNvY2tl dCIpOw0KPiArDQo+ICsJZXhpdCgwKTsNCj4gICB9DQo+IGRpZmYgLS1naXQgYS9wZXN0by5oIGIv cGVzdG8uaA0KPiBpbmRleCBlOWIzMjlmLi4zYzkzZDNlIDEwMDY0NA0KPiAtLS0gYS9wZXN0by5o DQo+ICsrKyBiL3Blc3RvLmgNCj4gQEAgLTksNCArOSwyNiBAQA0KPiAgICNpZm5kZWYgUEVTVE9f SA0KPiAgICNkZWZpbmUgUEVTVE9fSA0KPiAgIA0KPiArI2luY2x1ZGUgPGFzc2VydC5oPg0KPiAr I2luY2x1ZGUgPHN0ZGludC5oPg0KPiArDQo+ICsjZGVmaW5lIFBFU1RPX1NFUlZFUl9NQUdJQwki YmFzaWw6cyINCj4gKw0KPiArLyogVmVyc2lvbiAwIGlzIHJlc2VydmVkIGZvciB1bnJlbGVhc2Vk IC8gdW5zdXBwb3J0ZWQgZXhwZXJpbWVudGFsIHZlcnNpb25zICovDQo+ICsjZGVmaW5lIFBFU1RP X1BST1RPQ09MX1ZFUlNJT04JMQ0KPiArDQo+ICsvKioNCj4gKyAqIHN0cnVjdCBwZXN0b19oZWxs byAtIFNlcnZlciBpbnRyb2R1Y3Rpb24gbWVzc2FnZQ0KPiArICogQG1hZ2ljOglQRVNUT19TRVJW RVJfTUFHSUMNCj4gKyAqIEB2ZXJzaW9uOglWZXJzaW9uIG51bWJlcg0KPiArICovDQo+ICtzdHJ1 Y3QgcGVzdG9faGVsbG8gew0KPiArCWNoYXIgbWFnaWNbOF07DQo+ICsJdWludDMyX3QgdmVyc2lv bjsNCj4gK30gX19hdHRyaWJ1dGVfXyAoKF9fcGFja2VkX18pKTsNCj4gKw0KPiArc3RhdGljX2Fz c2VydChzaXplb2YoUEVTVE9fU0VSVkVSX01BR0lDKQ0KPiArCSAgICAgID09IHNpemVvZigoKHN0 cnVjdCBwZXN0b19oZWxsbyAqKTApLT5tYWdpYyksDQo+ICsJICAgICAgIlBFU1RPX1NFUlZFUl9N QUdJQyBoYXMgd3Jvbmcgc2l6ZSIpOw0KPiArDQo+ICAgI2VuZGlmIC8qIFBFU1RPX0ggKi8NCj4g ZGlmZiAtLWdpdCBhL3NlcmlhbGlzZS5jIGIvc2VyaWFsaXNlLmMNCj4gaW5kZXggOTQ0ZTc0MS4u MzQ2ZGY5OSAxMDA2NDQNCj4gLS0tIGEvc2VyaWFsaXNlLmMNCj4gKysrIGIvc2VyaWFsaXNlLmMN Cj4gQEAgLTYsNiArNiw5IEBADQo+ICAgICogUEFTVEEgLSBQYWNrIEEgU3VidGxlIFRhcCBBYnN0 cmFjdGlvbg0KPiAgICAqICBmb3IgbmV0d29yayBuYW1lc3BhY2UvdGFwIGRldmljZSBtb2RlDQo+ ICAgICoNCj4gKyAqIFBFU1RPIC0gUHJvZ3JhbW1hYmxlIEV4dGVuc2libGUgU29ja2V0IFRyYW5z bGF0aW9uIE9yY2hlc3RyYXRvcg0KPiArICogIGZyb250LWVuZCBmb3IgcGFzc3QoMSkgYW5kIHBh c3RhKDEpIGZvcndhcmRpbmcgY29uZmlndXJhdGlvbg0KPiArICoNCj4gICAgKiBzZXJpYWxpc2Uu YyAtIFNlcmlhbGlzYXRpb24gb2YgZGF0YSBzdHJ1Y3R1cmVzIG92ZXIgYnl0ZXN0cmVhbXMNCj4g ICAgKg0KPiAgICAqIENvcHlyaWdodCBSZWQgSGF0DQoNCg==