From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pve-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 5F8E81FF16B for <inbox@lore.proxmox.com>; Thu, 6 Feb 2025 06:07:06 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 2480A18CE7; Thu, 6 Feb 2025 06:07:02 +0100 (CET) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738818412; x=1739423212; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VrDPbLcx8QnkYCq1P8AGpOyb5ZAYvP+6Jw4vWCsu774=; b=SDgptqEqGY2CcGIkHw5lIN7bKQY4DRPVxiC7Qa+02UymEawndPCV9HIxLyYtB3fS74 4I3H3XHXiXDDnGU/zV3srWKa4dpAQVlNq31iO6CFZxtkvcozOsEabDX6RsBgVsnyOb3W 5KU87yYQzs3o/mNHU0+W9bUAmcR/pzI/xGdWxD8AWaFoXTzpX6UmO6o7IJZY7bK0K5SB Wem+hmruH1EVN3kILD+Anh0SEq4BkCcNXCWg1WJ5eW5oaZ11dlWK7UUE12kfXKBebEXr Vtr+CVxwu2ENmGGAbkAq+mQaAjs2ONzovtpVwu/h8n7PdnYHJoNxTmzk9NDRKFRxzvds B/qg== X-Gm-Message-State: AOJu0YzLXTj98GY7D2hxM8OOougQ6aZokZ6tztKn5uf2ItP3cCSL+l3+ geeihBd2mKO1kpF0W0Rl/YjFrR8hguUT3qWqMl8L4eGJJeRYk4WMd475zxUr X-Gm-Gg: ASbGncuPNT8mNxcsufMyMqT26dBZhMU6ItNPuaFr6gEY9UYf0RPWM2hfr30DgS2nkfY j+WnufLFRf9mRbMmA01HUi1P2zgbP94T0btZy/GEdXjyilxYNMVyhqePVwHEuRduCqoUKkngVKg U4xsyYF2OI4wQCX8Bcayt3dULzC/jTD20KR5Il3rIZ+UoKktxlCIsB2Yj99klLvcBigx9vNoz4D HTLiryejYFfStzABrt4awde7qZII/iYT4EvPW2IDI4sRLbECdKLAQWZQZi/hEju6rNB0PnnqnRq Z8hzwSbJ1i9HvjI9MvHVJ0lvBlkAr7eHOfsU4fsneZhZP7UfeOkwFw== X-Google-Smtp-Source: AGHT+IFnLhax95dawk4ls3Rq8tdHQJfnHhE+J4oyXXiPQaTsC0txoTZYGHFb1YRZlK9jK6w3kyBUxg== X-Received: by 2002:a05:6402:40cd:b0:5d0:e570:508d with SMTP id 4fb4d7f45d1cf-5dcdb72e3fbmr6775504a12.17.1738818411193; Wed, 05 Feb 2025 21:06:51 -0800 (PST) X-Received: by 2002:a5d:6d8e:0:b0:38b:f3f4:57ae with SMTP id ffacd0b85a97d-38db4860bc6mr3800650f8f.10.1738818410488; Wed, 05 Feb 2025 21:06:50 -0800 (PST) MIME-Version: 1.0 References: <20241224202429.3072813-1-thomas@atskinner.net> <20241224202429.3072813-4-thomas@atskinner.net> <1737710597.ns84scjebn.astroid@yuna.none> In-Reply-To: <1737710597.ns84scjebn.astroid@yuna.none> From: Thomas Skinner <thomas@atskinner.net> Date: Wed, 5 Feb 2025 23:06:24 -0600 X-Gmail-Original-Message-ID: <CALn9RMe8dS2mMUP=3mqA6i4adQ-HvzXtiM_DxE4bORaDn8-D9A@mail.gmail.com> X-Gm-Features: AWEUYZnmaEf6k-76Kg1KFqN-vrmurus_oujfqztXGWh5fFL1nWSwNu7UxZRG4ls Message-ID: <CALn9RMe8dS2mMUP=3mqA6i4adQ-HvzXtiM_DxE4bORaDn8-D9A@mail.gmail.com> To: =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.082 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy FREEMAIL_FORGED_FROMDOMAIN 0.001 2nd level domains in From and EnvelopeFrom freemail headers are different FREEMAIL_FROM 0.001 Sender email is commonly abused enduser mail provider HEADER_FROM_DIFFERENT_DOMAINS 0.069 From and EnvelopeFrom 2nd level mail domains are different KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust RCVD_IN_MSPIKE_H2 0.001 Average reputation (+2) RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pve-devel] [PATCH access-control v2 1/1] fix #4411: openid: add logic for openid groups support X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Cc: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> T24gRnJpLCBKYW4gMjQsIDIwMjUgYXQgNDoxOOKAr0FNIEZhYmlhbiBHcsO8bmJpY2hsZXIKPGYu Z3J1ZW5iaWNobGVyQHByb3htb3guY29tPiB3cm90ZToKPgo+IE9uIERlY2VtYmVyIDI0LCAyMDI0 IDk6MjQgcG0sIFRob21hcyBTa2lubmVyIHdyb3RlOgo+ID4gU2lnbmVkLW9mZi1ieTogVGhvbWFz IFNraW5uZXIgPHRob21hc0BhdHNraW5uZXIubmV0Pgo+ID4gLS0tCj4gPiAgc3JjL1BWRS9BUEky L09wZW5JZC5wbSAgIHwgNjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwo+ID4gIHNyYy9QVkUvQWNjZXNzQ29udHJvbC5wbSB8IDEzICsrKysrLS0tCj4gPiAgc3JjL1BW RS9BdXRoL09wZW5JZC5wbSAgIHwgMzAgKysrKysrKysrKysrKysrKysrCj4gPiAgMyBmaWxlcyBj aGFuZ2VkLCAxMDcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0t Z2l0IGEvc3JjL1BWRS9BUEkyL09wZW5JZC5wbSBiL3NyYy9QVkUvQVBJMi9PcGVuSWQucG0KPiA+ IGluZGV4IDc3NDEwZTYuLjVjZmU1YTEgMTAwNjQ0Cj4gPiAtLS0gYS9zcmMvUFZFL0FQSTIvT3Bl bklkLnBtCj4gPiArKysgYi9zcmMvUFZFL0FQSTIvT3BlbklkLnBtCj4gPiBAQCAtMTMsNiArMTMs NyBAQCB1c2UgUFZFOjpDbHVzdGVyIHF3KGNmc19yZWFkX2ZpbGUgY2ZzX3dyaXRlX2ZpbGUpOwo+ ID4gIHVzZSBQVkU6OkFjY2Vzc0NvbnRyb2w7Cj4gPiAgdXNlIFBWRTo6SlNPTlNjaGVtYSBxdyhn ZXRfc3RhbmRhcmRfb3B0aW9uKTsKPiA+ICB1c2UgUFZFOjpBdXRoOjpQbHVnaW47Cj4gPiArdXNl IFBWRTo6QXV0aDo6T3BlbklkOwo+ID4KPiA+ICB1c2UgUFZFOjpSRVNUSGFuZGxlcjsKPiA+Cj4g PiBAQCAtMjIwLDYgKzIyMSw3MyBAQCBfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJfbWV0aG9kICh7Cj4g PiAgICAgICAgICAgICAgICRycGNlbnYtPmNoZWNrX3VzZXJfZW5hYmxlZCgkdXNlcm5hbWUpOwo+ ID4gICAgICAgICAgIH0KPiA+Cj4gPiArICAgICAgICAgaWYgKGRlZmluZWQobXkgJGdyb3Vwc19j bGFpbSA9ICRjb25maWctPnsnZ3JvdXBzLWNsYWltJ30pKSB7Cj4gPiArICAgICAgICAgICAgIGlm IChkZWZpbmVkKG15ICRncm91cHNfbGlzdCA9ICRpbmZvLT57JGdyb3Vwc19jbGFpbX0pKSB7Cj4g PiArICAgICAgICAgICAgICAgICBpZiAocmVmKCRncm91cHNfbGlzdCkgZXEgJ0FSUkFZJykgewo+ ID4gKyAgICAgICAgICAgICAgICAgICAgIFBWRTo6QWNjZXNzQ29udHJvbDo6bG9ja191c2VyX2Nv bmZpZyhzdWIgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBteSAkdXNlcmNmZyA9IGNm c19yZWFkX2ZpbGUoInVzZXIuY2ZnIik7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICMgcmVwbGFjZSBhbnkgaW52YWxpZCBjaGFyYWN0ZXJzIHdpdGgKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgbXkgJHJlcGxhY2VfY2hhcmFjdGVyID0gJGNvbmZpZy0+eydncm91cHMt cmVwbGFjZS1jaGFyYWN0ZXInfSAvLyAnXyc7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg IG15IEBvaWRjX2dyb3Vwc19saXN0ID0gbWFwIHsKPgo+IHN0eWxlIG5pdDogd2UgbW9zdGx5IHVz ZSBhcnJheSByZWZlcmVuY2VzIGluIG91ciBjb2RlLCBpLmUuCj4KPiBteSAkb2lkY19ncm91cF9s aXN0ID0gWyBtYXAgLi4uIF07Cj4KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRf ID1+IHMvW14kUFZFOjpBdXRoOjpPcGVuSWQ6Omdyb3VwbmFtZV9yZWdleF9jaGFyc10vJHJlcGxh Y2VfY2hhcmFjdGVyL2dyCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIH0gJGdyb3Vwc19s aXN0LT5AKjsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIyBsaXN0IGdyb3Vw cyB0aGF0IGV4aXN0IGluIHB2ZQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBteSBAZXhp c3RpbmdfZ3JvdXBzX2xpc3QgPSBrZXlzICV7JHVzZXJjZmctPntncm91cHN9fTsKPgo+IHNhbWUg aGVyZQo+Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIG15IEBncm91cHNfaW50 ZXJzZWN0Owo+Cj4gYW5kIGhlcmUKPgo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo ICRjb25maWctPnsnZ3JvdXBzLWF1dG9jcmVhdGUnfSApIHsKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgcG9wdWxhdGUgYWxsIGdyb3VwcyBpbiBjbGFpbQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQGdyb3Vwc19pbnRlcnNlY3QgPSBAb2lkY19ncm91cHNfbGlz dDsKPgo+IGFuZCBoZXJlIDspCj4KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgfQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKPgo+IHN0eWxlIG5pdDogdGhlICd9JyBh bmQgJ2Vsc2Ugeycgc2hvdWxkIGJlIG9uIGEgc2luZ2xlIGxpbmUKPgo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyBvbmx5IHBvcHVsYXRlIGdyb3VwcyB0aGF0IGFyZSBpbiB0aGUg b2lkYyBsaXN0IGFuZCBleGlzdCBpbiBwdmUKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEBncm91cHNfaW50ZXJzZWN0ID0gQHtQVkU6OlRvb2xzOjphcnJheV9pbnRlcnNlY3QoCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXEBvaWRjX2dyb3Vwc19saXN0LAo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxAZXhpc3RpbmdfZ3JvdXBzX2xp c3QsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfTsKPgo+IHRoZW4gdGhpcyBz aW1wbHkgYmVjb21lcwo+Cj4gJGdyb3Vwc19pbnRlcnNlY3QgPSBQVkU6OlRvb2xzOjphcnJheV9p bnRlcnNlY3QoJG9pZGNfZ3JvdXBzX2xpc3QsICRleGlzdGluZ19ncm91cHNfbGlzdCk7CgpVbmRl cnN0b29kIGZvciBhbGwgdGhlIGFib3ZlIGFuZCB3aWxsIGZpeC4gQXBvbG9naWVzIGZvciBtaXNz aW5nIHRoZW0Kd2hlbiB0aGV5IGFyZSBjbGVhcmx5IGluIHRoZSBzdHlsZSBndWlkZS4gSXMgdGhl cmUgYW55IGxpbnRpbmcgc2V0dXAKdGhhdCB5b3UnZCByZWNvbW1lbmQgZm9yIG15IGRldiBlbnZp cm9ubWVudCB0aGF0IHdvdWxkIGhlbHAgY2F0Y2gKdGhlc2UgZm9yIGZ1dHVyZSBwYXRjaGVzIGJl Zm9yZSBJIHNlbmQgdGhlbT8gSSBkb24ndCB3YW50IHRvIHJlY3JlYXRlCnRoZSB3aGVlbCBpZiB0 aGUgUHJveG1veCB0ZWFtIGFscmVhZHkgaGFzIHNvbWV0aGluZyBpbi1wbGFjZSB0aGF0CmNvdWxk IGJlIHNoYXJlZC4KCj4gYnV0IHNpbmNlIHRoZSBleGlzdGluZyBncm91cHMgYXJlIGFscmVhZHkg YSBoYXNoLCB5b3UgY291bGQgYWxzbyBkbyB0aGUKPiBpbnRlcnNlY3Rpb24gKyBjb252ZXJzaW9u IHRvIGEgaGFzaCBpbiBhIHNpbmdsZSBnbyBoZXJlIChzZWUgYmVsb3cgZm9yCj4gd2h5IGEgaGFz aCBpcyBuaWNlciBhbnl3YXkpOgo+Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk Y29uZmlnLT57J2dyb3Vwcy1hdXRvY3JlYXRlJ30pIHsKPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMgcG9wdWxhdGUgYWxsIGdyb3VwcyBpbiBjbGFpbQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJGdyb3Vwc19pbnRlcnNlY3QgPSB7IG1hcCB7ICRfID0+IDEgfSAk b2lkY19ncm91cHNfbGlzdC0+QCogfTsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBl bHNlIHsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcG9wdWxhdGUgb25seSBl eGlzdGluZyBncm91cHMKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBteSAk Z3JvdXAgKCRvaWRjX2dyb3Vwc19saXN0LT5AKikgewo+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRncm91cHNfaW50ZXJzZWN0LT57JGdyb3VwfSA9IDEgaWYgJHVzZXJjZmct Pntncm91cHN9LT57JGdyb3VwfTsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQo+Cj4KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAjIGlmIGdyb3Vw cyBzaG91bGQgYmUgb3ZlcndyaXR0ZW4sIGZpbmQgYW5kIGRlbGV0ZSB0aGUgb25lcyB0byByZW1v dmUKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkY29uZmlnLT57J2dyb3Vwcy1v dmVyd3JpdGUnfSApIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZ2V0IHRo ZSBncm91cHMgdGhhdCBuZWVkIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgdXNlcgo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbXkgJWdyb3Vwc19yZW1vdmVfdXNlcjsKPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRncm91cHNfcmVtb3ZlX3VzZXJ7ICRfIH0gPSB1bmRl Zgo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBrZXlzICV7JHVzZXJj ZmctPnt1c2Vyc30tPnskdXNlcm5hbWV9LT57Z3JvdXBzfX07Cj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkZWxldGUgJGdyb3Vwc19yZW1vdmVfdXNlcnsgJF8gfSBmb3IgQGdyb3Vw c19pbnRlcnNlY3Q7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGVu c3VyZSB1c2VyIGlzIG5vdCBhIG1lbWJlciBvZiB0aGVzZSBncm91cHMKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBWRTo6QWNjZXNzQ29udHJvbDo6ZGVsZXRlX3VzZXJfZ3JvdXBf c2luZ2xlKAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR1c2VybmFtZSwK PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdXNlcmNmZywKPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkXywKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkgZm9yIGtleXMgJWdyb3Vwc19yZW1vdmVfdXNlcjsKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAjIGdl dCB0aGUgZ3JvdXBzIHRoYXQgbmVlZCB0byBiZSBhZGRlZCB0byB0aGUgdXNlcgo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICBteSAlZ3JvdXBzX2FkZF91c2VyOwo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAkZ3JvdXBzX2FkZF91c2VyeyAkXyB9ID0gdW5kZWYgZm9yIEBncm91cHNf aW50ZXJzZWN0Owo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgJGdyb3Vwc19h ZGRfdXNlcnsgJF8gfQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGtleXMg JXskdXNlcmNmZy0+e3VzZXJzfS0+eyR1c2VybmFtZX0tPntncm91cHN9fTsKPiA+ICsKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgIyBlbnN1cmUgdXNlciBpcyBhIG1lbWJlciBvZiB0aGVz ZSBncm91cHMKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgUFZFOjpBY2Nlc3NDb250cm9s OjphZGRfdXNlcl9ncm91cCgKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR1c2Vy bmFtZSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR1c2VyY2ZnLAo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJF8KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgKSBmb3Iga2V5cyAlZ3JvdXBzX2FkZF91c2VyOwo+ID4gKwo+Cj4KPiB3ZSBkb24ndCBkbyBw b3N0LWZvciBlaXRoZXIgOykKPgo+IHlvdSBjYW4ganVzdCBkbwo+Cj4gIyBjb252ZXJ0cyBncm91 cCBpbnRlcnNlY3Rpb24gdG8gaGFzaCAoYnV0IHNlZSBhYm92ZSA7KSkKPiBteSAkZ3JvdXBzX2lu dGVyc2VjdF9oYXNoID0geyBtYXAgeyAkXyA9PiAxIH0gJGdyb3Vwc19pbnRlcnNlY3QtPkAgfTsK Pgo+IGlmICgkY29uZmlnLT57J2dyb3Vwcy1vdmVyd3JpdGUnfSkgewo+ICAgICBteSAkdXNlcl9n cm91cHMgPSAkdXNlcmNmZy0+e3VzZXJzfS0+eyR1c2VybmFtZX0tPntncm91cHN9Owo+ICAgICBm b3IgbXkgJGdyb3VwIChrZXlzICR1c2VyX2dyb3Vwcy0+JSopIHsKPiAgICAgICAgIGRlbGV0ZSAk dXNlcl9ncm91cHMtPnskZ3JvdXB9IGlmICFncm91cHNfaW50ZXJzZWN0X2hhc2gtPnskZ3JvdXB9 Owo+ICAgICB9Cj4gfQo+Cj4gYW5kIHNpbWlsYXJseSBmb3IgdGhlIGFkZGl0aW9uLCBhbHRob3Vn aCB3aXRoIGFkZGl0aW9uLCB5b3UgY291bGQgZXZlbgo+IGRvIGl0IHVuY29uZGl0aW9uYWxseSBz aW5jZSBpdCBpcyBib3RoIGNoZWFwIGFuZCBpZGVtcG90ZW50IChpdCBqdXN0Cj4gc2V0cyB0d28g Ym9vbGVhbnMgaW4gdGhlICR1c2VyY2ZnIGhhc2gpLgo+Cj4gb3IgeW91IGNvdWxkIG1ha2UgaXQg YSBiaXQgZWFzaWVyLCBhbmQganVzdCBkZWxldGUgYWxsIGdyb3VwcyBhbmQgdGhlbgo+IGFkZCBh bGwgdGhlIGdyb3VwcyBpbiB0aGUgaW50ZXJzZWN0aW5nIHNldCwgd2hpY2ggd291bGQgYmUgc2lt aWxhciB0bwo+IGhvdyB3ZSBkbyBpdCB3aGVuIGRpcmVjdGx5IG92ZXJ3cml0aW5nIGEgdXNlcidz IGdyb3VwIHZpYSB0aGUgQVBJL3B2ZXVtOgo+Cj4gaHR0cHM6Ly9naXQucHJveG1veC5jb20vP3A9 cHZlLWFjY2Vzcy1jb250cm9sLmdpdDthPWJsb2I7Zj1zcmMvUFZFL0FQSTIvVXNlci5wbTtoPTUz NWU1OGUwYjNkYmQ0YzhkOGM4ODJiNzg0NTE3MzQ4OTgwM2Q4ZDA7aGI9SEVBRCNsNDE3Cj4KPiB0 aGUgY2hhbmdlcyB3aWxsIG9ubHkgcGVyc2lzdGVkIG9uLWRpc2sgb25jZSB5b3UgaGl0IHRoZSBj ZnNfd3JpdGUgaW4gdGhlCj4gbmV4dCBsaW5lLCBzbyB0aGlzIHNob3VsZG4ndCBiZSBhbiBpc3N1 ZS4KClRoZSByZWFzb24gdGhhdCBJIG1hZGUgYW4gYWRqdXN0bWVudCB0byB0aGUgYmVoYXZpb3Ig d2FzIHB1cmVseSBmb3IKZnV0dXJlIGF1ZGl0aW5nIChvbmx5IHJlcG9ydCBncm91cHMgYWRkZWQv cmVtb3ZlZCksIHdoaWNoIHNwZWFrcyB0bwp0aGUgYmVsb3cgY29tbWVudHMgYWJvdXQgbG9nZ2lu Zy4gSG93ZXZlciwgZXZlbiBqdXN0IGhhdmluZyBsb2dnaW5nIG9mCmdyb3VwIG1lbWJlcnNoaXAg Y2F1c2VkIGJ5IE9JREMgd291bGQgYmUgc3VmZmljaWVudC4gUGx1cywgc2ltcGxpZnlpbmcKdGhp cyBtYWtlcyBhIGxvdCBtb3JlIHNlbnNlIHRvIG1lIGluIGhpbmRzaWdodC4KCj4gc29tZSBoaWdo ZXItbGV2ZWwgcXVlc3Rpb25zOgo+Cj4gZG8gd2Ugd2FudCB0byBoYXZlIGEgYml0IG1vcmUgbG9n Z2luZyBoZXJlLCBhbHRob3VnaCBpdCB3b3VsZCBvbmx5IGVuZAo+IHVwIGluIHN5c2xvZy9qb3Vy bmFsLi4gbWF5YmUgYXQgbGVhc3QgZm9yIGdyb3VwcyB3aGljaCBhcmUgY3JlYXRlZD8KCkkgZG9u J3QgbWluZCBhZGRpbmcgbW9yZSBsb2dnaW5nIGF0IGFsbC4gSSdtIGFsbCBmb3Igc3VwcG9ydGlu ZyBtb3JlCmF1ZGl0YWJsZSBhY3Rpb25zLiBEbyB5b3UgaGF2ZSBhbnkgb3RoZXIgc3VnZ2VzdGlv bnMgb2Ygd2hlcmUgbG9nZ2luZwp3b3VsZCBiZSB1c2VmdWw/IE15IGN1cnJlbnQgdGhvdWdodHMg YXJlOiBncm91cHMgYXV0byBjcmVhdGVkLCB1c2VyCnJlbW92ZWQgZnJvbSBncm91cHMsIHVzZXIg YWRkZWQgdG8gZ3JvdXBzLgoKPiBkbyB3ZSB3YW50IHRvIG1hbmdsZSB0aGUgZ3JvdXAgbmFtZXMg dG8gaW5jbHVkZSB0aGUgT0lEQy1yZWFsbSBuYW1lLAo+IGxpa2Ugd2UgZG8gZm9yIExEQVAvQUQg c3luY2luZz8gdGhhdCB3YXkgaXQgaXMgbW9yZSBjbGVhciB0aGF0IHRob3NlCj4gZ3JvdXBzIG9y aWdpbmF0ZWQgZnJvbSBPSURDLi4gZG93bnNpZGUgaXMgdGhhdCB5b3UgY2FuJ3QgdXNlIGEgZ3Jv dXAKPiBzaGFyZWQgYmV0d2VlbiBPSURDIGFuZCBvdGhlciByZWFsbXMuLgoKWWVzLCB0aGlzIHdh cyB3aGF0IHdlbnQgdGhyb3VnaCBteSBtaW5kIGluIGNvbnNpZGVyYXRpb24uIEFkZGluZyB0aGUK cHJlZml4IGRlZmluaXRlbHkgd291bGQgbWFrZSB0aGVtIG5lYXJseSB1bmlxdWUgYWNyb3NzIHBy b3ZpZGVycy4gT24KdGhlIGZsaXBzaWRlLCB0aGUgZ3JvdXBzIG5hbWVzIHNob3VsZCBiZSBhYmxl IHRvIGJlIGNvbnRyb2xsZWQgYXQgdGhlCklkUC4gV2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgYWRk aW5nIGFuIGFkdmFuY2VkIG9wdGlvbiBmb3IgYWRkaW5nIGEKcHJlZml4IHRvIHRoZSBmcm9udCBv ZiB0aGUgZ3JvdXAgbmFtZSBhcyB0aGUgcmVhbG0gbmFtZSwgdGhhdCB3YXkgdGhlCnVzZXIgY291 bGQgaGF2ZSBib3RoIG9wdGlvbnMgKEknbSB0aGlua2luZyBhIGJvb2xlYW4gdGhhdCBhZGRzIHdo YXQKeW91IHN1Z2dlc3RlZCBhYm92ZSwgZGVmYXVsdCBvcHRlZCBvdXQpPyBBY3R1YWxseSBtaWdo dCBub3QgYmUgYSBiYWQKaWRlYSBmb3Igb3RoZXIgYXV0aCB0eXBlcywgdG9vLgoKPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgY2ZzX3dyaXRlX2ZpbGUoInVzZXIuY2ZnIiwgJHVzZXJjZmcp Owo+ID4gKyAgICAgICAgICAgICAgICAgICAgIH0sICJvcGVuaWQgZ3JvdXAgbWFwcGluZyBmYWls ZWQiKTsKPiA+ICsgICAgICAgICAgICAgICAgIH0gZWxzZSB7Cj4gPiArICAgICAgICAgICAgICAg ICAgICAgc3lzbG9nKCdlcnInLCAiZ3JvdXBzIGxpc3QgaXMgbm90IGFuIGFycmF5OyBncm91cHMg d2lsbCBub3QgYmUgdXBkYXRlZCIpOwo+ID4gKyAgICAgICAgICAgICAgICAgfQo+ID4gKyAgICAg ICAgICAgICB9IGVsc2Ugewo+ID4gKyAgICAgICAgICAgICAgICAgc3lzbG9nKCdlcnInLCAiZ3Jv dXBzIGNsYWltICckZ3JvdXBzX2NsYWltJyBpcyBub3QgZm91bmQgaW4gY2xhaW1zIik7Cj4gPiAr ICAgICAgICAgICAgIH0KPiA+ICsgICAgICAgICB9Cj4gPiArCj4gPiAgICAgICAgICAgbXkgJHRp Y2tldCA9IFBWRTo6QWNjZXNzQ29udHJvbDo6YXNzZW1ibGVfdGlja2V0KCR1c2VybmFtZSk7Cj4g PiAgICAgICAgICAgbXkgJGNzcmZ0b2tlbiA9IFBWRTo6QWNjZXNzQ29udHJvbDo6YXNzZW1ibGVf Y3NyZl9wcmV2ZW50aW9uX3Rva2VuKCR1c2VybmFtZSk7Cj4gPiAgICAgICAgICAgbXkgJGNhcCA9 ICRycGNlbnYtPmNvbXB1dGVfYXBpX3Blcm1pc3Npb24oJHVzZXJuYW1lKTsKPiA+IGRpZmYgLS1n aXQgYS9zcmMvUFZFL0FjY2Vzc0NvbnRyb2wucG0gYi9zcmMvUFZFL0FjY2Vzc0NvbnRyb2wucG0K PiA+IGluZGV4IDQ3ZjJkMzguLmQ2NDNhMDAgMTAwNjQ0Cj4gPiAtLS0gYS9zcmMvUFZFL0FjY2Vz c0NvbnRyb2wucG0KPiA+ICsrKyBiL3NyYy9QVkUvQWNjZXNzQ29udHJvbC5wbQo+ID4gQEAgLTk5 MCwxMiArOTkwLDE3IEBAIHN1YiBkZWxldGVfdXNlcl9ncm91cCB7Cj4gPiAgICAgIG15ICgkdXNl cm5hbWUsICR1c2VyY2ZnKSA9IEBfOwo+ID4KPiA+ICAgICAgZm9yZWFjaCBteSAkZ3JvdXAgKGtl eXMgJXskdXNlcmNmZy0+e2dyb3Vwc319KSB7Cj4gPiAtCj4gPiAtICAgICBkZWxldGUgKCR1c2Vy Y2ZnLT57Z3JvdXBzfS0+eyRncm91cH0tPnt1c2Vyc30tPnskdXNlcm5hbWV9KQo+ID4gLSAgICAg ICAgIGlmICR1c2VyY2ZnLT57Z3JvdXBzfS0+eyRncm91cH0tPnt1c2Vyc30tPnskdXNlcm5hbWV9 Owo+ID4gKyAgICAgZGVsZXRlX3VzZXJfZ3JvdXBfc2luZ2xlKCR1c2VybmFtZSwgJHVzZXJjZmcs ICRncm91cCk7Cj4KPiB0byBiZSBob25lc3QgSSBhbSBub3Qgc3VyZSB3aHkgdGhhdCBwb3N0LWlm IGlzIHRoZXJlIGluIHRoZSBmaXJzdCBwbGFjZS4uCj4KPiB3aGVuIHBhcnNpbmcgdGhlIGNvbmZp ZywgdGhlIGdyb3VwIGlzIGluaXRpYWxpemVkIHdpdGggYW4gZW1wdHkgJ3VzZXJzJwo+IGhhc2gg YXMgbWVtYmVycyBiZWZvcmUgZmlsbGluZyB1c2luZyB0aGUgbWVtYmVyIGxpc3QsIHNvIHRoZXJl IGlzIG5vCj4gcmlzayBvZiBhdXRvLXZpdmlmeWluZyBzb21ldGhpbmcgaGVyZS4uCj4KPiBpZiB5 b3Ugd2FudCB0byBkZWxldGUgYSB1c2VyJ3MgZ3JvdXAgbWVtYmVyc2hpcCwgeW91IGNhbiBqdXN0 Cj4KPiBkZWxldGUgJHVzZXJjZmctPntncm91cHN9LT57JGdyb3VwfS0+e3VzZXJzfS0+eyR1c2Vy bmFtZX07Cj4KPiBhbmQgd2UgZG9uJ3QgbmVlZCB0aGlzIHJlZmFjdG9yaW5nCgpXaWxsIHVwZGF0 ZSBhbmQgcmVtb3ZlIHRoZSByZWZhY3Rvci4gVGhhbmtzIGZvciBwb2ludGluZyB0aGF0IG91dC4K Cj4gPiAgICAgIH0KPiA+ICB9Cj4gPgo+ID4gK3N1YiBkZWxldGVfdXNlcl9ncm91cF9zaW5nbGUg ewo+ID4gKyAgICBteSAoJHVzZXJuYW1lLCAkdXNlcmNmZywgJGdyb3VwKSA9IEBfOwo+ID4gKwo+ ID4gKyAgICBkZWxldGUgKCR1c2VyY2ZnLT57Z3JvdXBzfS0+eyRncm91cH0tPnt1c2Vyc30tPnsk dXNlcm5hbWV9KQo+ID4gKyAgICAgaWYgJHVzZXJjZmctPntncm91cHN9LT57JGdyb3VwfS0+e3Vz ZXJzfS0+eyR1c2VybmFtZX07Cj4gPiArfQo+ID4gKwo+ID4gIHN1YiBkZWxldGVfdXNlcl9hY2wg ewo+ID4gICAgICBteSAoJHVzZXJuYW1lLCAkdXNlcmNmZykgPSBAXzsKPiA+Cj4gPiBAQCAtMTI5 Myw3ICsxMjk4LDcgQEAgUFZFOjpKU09OU2NoZW1hOjpyZWdpc3Rlcl9mb3JtYXQoJ3B2ZS1ncm91 cGlkJywgXCZ2ZXJpZnlfZ3JvdXBuYW1lKTsKPiA+ICBzdWIgdmVyaWZ5X2dyb3VwbmFtZSB7Cj4g PiAgICAgIG15ICgkZ3JvdXBuYW1lLCAkbm9lcnIpID0gQF87Cj4gPgo+ID4gLSAgICBpZiAoJGdy b3VwbmFtZSAhfiBtL15bQS1aYS16MC05XC5cLV9dKyQvKSB7Cj4gPiArICAgIGlmICgkZ3JvdXBu YW1lICF+IG0vXlskUFZFOjpBdXRoOjpPcGVuSWQ6Omdyb3VwbmFtZV9yZWdleF9jaGFyc10rJC8p IHsKPgo+IHNlZSBiZWxvdyA7KSBpZiB0aGUgUkUgbW92ZXMgdGhlcmUsIHdlIGNvdWxkIGFjdHVh bGx5IG1vdmUgdGhlIHdob2xlCj4gaGVscGVyIGFuZCBmb3JtYXQgcmVnaXN0cmF0aW9uIChtYXli ZSBhcyBhIHNlcGFyYXRlIGNvbW1pdC9wYXRjaD8pCgpXb3VsZCBhIHNlcGFyYXRlIHBhdGNoIGZv ciB0aGlzIGJlIHByZWZlcnJlZD8gSSBkb24ndCBtaW5kIHdvcmtpbmcgaXQKaW50byB0aGlzIG9u ZSBhcyB3ZWxsLgoKPiA+Cj4gPiAgICAgICBkaWUgImdyb3VwIG5hbWUgJyRncm91cG5hbWUnIGNv bnRhaW5zIGludmFsaWQgY2hhcmFjdGVyc1xuIiBpZiAhJG5vZXJyOwo+ID4KPiA+IGRpZmYgLS1n aXQgYS9zcmMvUFZFL0F1dGgvT3BlbklkLnBtIGIvc3JjL1BWRS9BdXRoL09wZW5JZC5wbQo+ID4g aW5kZXggYzhlNGRiOS4uZDdiNTU3NCAxMDA3NTUKPiA+IC0tLSBhL3NyYy9QVkUvQXV0aC9PcGVu SWQucG0KPiA+ICsrKyBiL3NyYy9QVkUvQXV0aC9PcGVuSWQucG0KPiA+IEBAIC05LDYgKzksOCBA QCB1c2UgUFZFOjpDbHVzdGVyIHF3KGNmc19yZWdpc3Rlcl9maWxlIGNmc19yZWFkX2ZpbGUgY2Zz X3dyaXRlX2ZpbGUgY2ZzX2xvY2tfZmlsZQo+ID4KPiA+ICB1c2UgYmFzZSBxdyhQVkU6OkF1dGg6 OlBsdWdpbik7Cj4gPgo+ID4gK291ciAkZ3JvdXBuYW1lX3JlZ2V4X2NoYXJzID0gcXIvQS1aYS16 MC05XC5cLV8vOwo+Cj4gdGhpcyBzaG91bGQgcHJvYmFibHkgYmUgaW4gUFZFOjpBdXRoOjpQbHVn aW4sIHdoZXJlIHRoZSB1c2VyIGFuZCByZWFsbQo+IFJFcyBhcmUgYXMgd2VsbC4KCkknbSBqdXN0 IHJlY2VudGx5IGRpdmluZyBpbnRvIHBsdWdpbnMgaW4gYW5vdGhlciBwYXRjaCBJJ20gd29ya2lu ZyBvbgphbmQgZGVmaW5pdGVseSBzZWUgd2hlcmUgdGhpcyBtYWtlcyBtb3JlIHNlbnNlLgoKPiA+ ICsKPiA+ICBzdWIgdHlwZSB7Cj4gPiAgICAgIHJldHVybiAnb3BlbmlkJzsKPiA+ICB9Cj4gPiBA QCAtNDIsNiArNDQsMzAgQEAgc3ViIHByb3BlcnRpZXMgewo+ID4gICAgICAgICAgIHR5cGUgPT4g J3N0cmluZycsCj4gPiAgICAgICAgICAgb3B0aW9uYWwgPT4gMSwKPiA+ICAgICAgIH0sCj4gPiAr ICAgICAiZ3JvdXBzLWNsYWltIiA9PiB7Cj4gPiArICAgICAgICAgZGVzY3JpcHRpb24gPT4gIk9w ZW5JRCBjbGFpbSB1c2VkIHRvIHJldHJpZXZlIGdyb3VwcyB3aXRoLiIsCj4gPiArICAgICAgICAg dHlwZSA9PiAnc3RyaW5nJywKPgo+IHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHJlc3RyaWN0ZWQg KG91ciB1c3VhbCBzYWZlaWQgbWlnaHQgYmUgdG9vCj4gc3RyaWN0IChJIGtub3cgc29tZSBPSURD IHByb3ZpZGVycyBsaWtlIHRvIHVzZXIgdGhpbmdzIGxpa2UgQCBhbmQgOiBpbgo+IGF0dHJpYnV0 ZXMsIHdvdWxkIGhhdmUgdG8gY2hlY2sgd2hhdCB0aGUgc3BlYyBzYXlzIGhlcmU/KSwgYnV0IHNv bWUKPiBzZW5zaWJsZSBzZXQgb2YgY2hhcmFjdGVycyBhdCBsZWFzdCB3b3VsZCBiZSBuaWNlIDsp KQoKSWYgdGhpcyBmaWVsZCBtdXN0IGJlIHJlc3RyaWN0ZWQsIHRoZW4gSSdkIHN1Z2dlc3Qgd2Ug c3RhcnQgd2l0aApwcmludGFibGUgQVNDSUkgY2hhcmFjdGVycyBhcyBhIHJlYXNvbmFibGUgbGlt aXRhdGlvbi4gVGhhdCB3b3VsZApjb3ZlciBldmVyeXRoaW5nIHRoYXQgd291bGQgbGlrZWx5IGVu ZCB1cCBpbiBhIEpXVC4gSWYgYW55dGhpbmcKb3V0c2lkZSBvZiB0aGF0IGlzIG5lZWRlZCwgYSBw YXRjaCBjb3VsZCBiZSBzdWJtaXR0ZWQuIENvdWxkIHN0YXJ0CndpdGggYSAxMjggY2hhcmFjdGVy IGxpbWl0IG9uIGxlbmd0aCBhcyB3ZWxsLiBUaG91Z2h0cz8KCgo+ID4gKyAgICAgICAgIG9wdGlv bmFsID0+IDEsCj4gPiArICAgICB9LAo+ID4gKyAgICAgImdyb3Vwcy1hdXRvY3JlYXRlIiA9PiB7 Cj4gPiArICAgICAgICAgZGVzY3JpcHRpb24gPT4gIkF1dG9tYXRpY2FsbHkgY3JlYXRlIGdyb3Vw cyBpZiB0aGV5IGRvIG5vdCBleGlzdC4iLAo+ID4gKyAgICAgICAgIG9wdGlvbmFsID0+IDEsCj4g PiArICAgICAgICAgdHlwZSA9PiAnYm9vbGVhbicsCj4gPiArICAgICAgICAgZGVmYXVsdCA9PiAw LAo+ID4gKyAgICAgfSwKPiA+ICsgICAgICJncm91cHMtb3ZlcndyaXRlIiA9PiB7Cj4gPiArICAg ICAgICAgZGVzY3JpcHRpb24gPT4gIkFsbCBncm91cHMgd2lsbCBiZSBvdmVyd3JpdHRlbiBmb3Ig dGhlIHVzZXIgb24gbG9naW4uIiwKPiA+ICsgICAgICAgICB0eXBlID0+ICdib29sZWFuJywKPiA+ ICsgICAgICAgICBkZWZhdWx0ID0+IDAsCj4gPiArICAgICAgICAgb3B0aW9uYWwgPT4gMSwKPiA+ ICsgICAgIH0sCj4gPiArICAgICAiZ3JvdXBzLXJlcGxhY2UtY2hhcmFjdGVyIiA9PiB7Cj4gPiAr ICAgICAgICAgZGVzY3JpcHRpb24gPT4gIkNoYXJhY3RlciB1c2VkIHRvIHJlcGxhY2UgYW55IGlu dmFsaWQgY2hhcmFjdGVycyBpbiBncm91cHMgZnJvbSBwcm92aWRlci4iLAo+ID4gKyAgICAgICAg IHR5cGUgPT4gJ3N0cmluZycsCj4gPiArICAgICAgICAgcGF0dGVybiA9PiBxci9eWyRncm91cG5h bWVfcmVnZXhfY2hhcnNdJC8sCj4gPiArICAgICAgICAgZGVmYXVsdCA9PiAnXycsCj4gPiArICAg ICAgICAgb3B0aW9uYWwgPT4gMSwKPiA+ICsgICAgIH0sCj4gPiAgICAgICBwcm9tcHQgPT4gewo+ ID4gICAgICAgICAgIGRlc2NyaXB0aW9uID0+ICJTcGVjaWZpZXMgd2hldGhlciB0aGUgQXV0aG9y aXphdGlvbiBTZXJ2ZXIgcHJvbXB0cyB0aGUgRW5kLVVzZXIgZm9yIgo+ID4gICAgICAgICAgICAg ICAuIiByZWF1dGhlbnRpY2F0aW9uIGFuZCBjb25zZW50LiIsCj4gPiBAQCAtNzMsNiArOTksMTAg QEAgc3ViIG9wdGlvbnMgewo+ID4gICAgICAgImNsaWVudC1rZXkiID0+IHsgb3B0aW9uYWwgPT4g MSB9LAo+ID4gICAgICAgYXV0b2NyZWF0ZSA9PiB7IG9wdGlvbmFsID0+IDEgfSwKPiA+ICAgICAg ICJ1c2VybmFtZS1jbGFpbSIgPT4geyBvcHRpb25hbCA9PiAxLCBmaXhlZCA9PiAxIH0sCj4gPiAr ICAgICAiZ3JvdXBzLWNsYWltIiA9PiB7IG9wdGlvbmFsID0+IDEgfSwKPiA+ICsgICAgICJncm91 cHMtYXV0b2NyZWF0ZSIgPT4geyBvcHRpb25hbCA9PiAxIH0sCj4gPiArICAgICAiZ3JvdXBzLW92 ZXJ3cml0ZSIgPT4geyBvcHRpb25hbCA9PiAxIH0sCj4gPiArICAgICAiZ3JvdXBzLXJlcGxhY2Ut Y2hhcmFjdGVyIiA9PiB7IG9wdGlvbmFsID0+IDF9LAo+ID4gICAgICAgcHJvbXB0ID0+IHsgb3B0 aW9uYWwgPT4gMSB9LAo+ID4gICAgICAgc2NvcGVzID0+IHsgb3B0aW9uYWwgPT4gMSB9LAo+ID4g ICAgICAgImFjci12YWx1ZXMiID0+IHsgb3B0aW9uYWwgPT4gMSB9LAo+ID4gLS0KPiA+IDIuMzku NQo+ID4KPiA+Cj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+ID4gcHZlLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gcHZlLWRldmVsQGxpc3RzLnByb3ht b3guY29tCj4gPiBodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0 aW5mby9wdmUtZGV2ZWwKPiA+Cj4gPgo+ID4KPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KcHZlLWRldmVsIG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlz dHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4v bGlzdGluZm8vcHZlLWRldmVsCg==