From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 2B5AC1FF179 for ; Wed, 12 Nov 2025 11:49:49 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 671051EF99; Wed, 12 Nov 2025 11:50:36 +0100 (CET) Date: Wed, 12 Nov 2025 11:50:01 +0100 From: Wolfgang Bumiller To: Stefan Hanreich Message-ID: References: <20251112092225.17890-1-s.hanreich@proxmox.com> <20251112092225.17890-2-s.hanreich@proxmox.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20251112092225.17890-2-s.hanreich@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1762944576401 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.046 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 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LOTSOFHASH 0.25 Emails with lots of hash-like gibberish SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [types.rs, mod.rs] Subject: Re: [pdm-devel] [PATCH proxmox 1/3] pve-api-types: add FixedString type X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Cc: pdm-devel@lists.proxmox.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" T24gV2VkLCBOb3YgMTIsIDIwMjUgYXQgMTA6MjI6MDVBTSArMDEwMCwgU3RlZmFuIEhhbnJlaWNo IHdyb3RlOgo+IEEgY3VzdG9tLCBpbW11dGFibGUsIHN0cmluZyB0eXBlLCB0aGF0IGlzIGNvcGlh YmxlLCB3aGljaCBjYW4gaG9sZCB1cAo+IHRvIDIzIGNoYXJhY3RlcnMuIEl0IHdpbGwgYmUgdXNl ZCBsYXRlciBmb3Igc3RvcmluZyB0aGUgbmFtZSBvZgo+IHVua25vd24gZW51bSB2YXJpYW50cyB3 aGVuIHBhcnNpbmcgdGhlIHJldHVybiB2YWx1ZSBvZiBlbnVtCj4gcHJvcGVydGllcy4gVGhlIG1h aW4gcmVhc29uIGZvciBpbnRyb2R1Y2luZyB0aGlzIHR5cGUgaXMgdGhhdCBpdHMgY29weQo+IGFz IG9wcG9zZWQgdG8gU3RyaW5nLCB3aGljaCBsZXRzIHVzIGtlZXAgdGhlIENvcHkgaW1wbGVtZW50 YXRpb24gZm9yCj4gdGhlIGV4aXN0aW5nIGVudW1zLgo+IAo+IE1haW4gcmVhc29uIGZvciBjaG9v c2luZyAyMyBjaGFyYWN0ZXJzIGlzIHRoZSBmYWN0IHRoYXQgU3RyaW5nIGlzIDI0Cj4gYnl0ZXMg bGFyZ2UgYXMgd2VsbCAocHRyLCBsZW4sIGNhcGFjaXR5KS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBT dGVmYW4gSGFucmVpY2ggPHMuaGFucmVpY2hAcHJveG1veC5jb20+Cj4gLS0tCj4gIHB2ZS1hcGkt dHlwZXMvc3JjL3R5cGVzL2ZpeGVkX3N0cmluZy5ycyB8IDMzMSArKysrKysrKysrKysrKysrKysr KysrKysKPiAgcHZlLWFwaS10eXBlcy9zcmMvdHlwZXMvbW9kLnJzICAgICAgICAgIHwgICAzICsK PiAgMiBmaWxlcyBjaGFuZ2VkLCAzMzQgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgcHZlLWFwaS10eXBlcy9zcmMvdHlwZXMvZml4ZWRfc3RyaW5nLnJzCj4gCj4gZGlmZiAtLWdp dCBhL3B2ZS1hcGktdHlwZXMvc3JjL3R5cGVzL2ZpeGVkX3N0cmluZy5ycyBiL3B2ZS1hcGktdHlw ZXMvc3JjL3R5cGVzL2ZpeGVkX3N0cmluZy5ycwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5k ZXggMDAwMDAwMDAuLmYxNjkyMjI3Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3B2ZS1hcGktdHlw ZXMvc3JjL3R5cGVzL2ZpeGVkX3N0cmluZy5ycwo+IEBAIC0wLDAgKzEsMzMxIEBACj4gK3VzZSBz dGQ6OmNtcDo6T3JkZXJpbmc7Cj4gK3VzZSBzdGQ6OmVycm9yOjpFcnJvcjsKPiArdXNlIHN0ZDo6 Zm10Ojp7RGVidWcsIERpc3BsYXksIEZvcm1hdHRlcn07Cj4gK3VzZSBzdGQ6Om9wczo6RGVyZWY7 Cj4gK3VzZSBzdGQ6OnN0cjo6RnJvbVN0cjsKPiArCj4gK3VzZSBzZXJkZTo6e0Rlc2VyaWFsaXpl LCBTZXJpYWxpemV9Owo+ICsKPiArLy8vIEVycm9yIHR5cGUgdXNlZCBieSBjb25zdHJ1Y3RvcnMg b2YgW2BGaXhlZFN0cmluZ2BdCj4gKyNbZGVyaXZlKENsb25lLCBDb3B5LCBEZWJ1ZyldCj4gK3B1 YiBlbnVtIEZpeGVkU3RyaW5nRXJyb3Igewo+ICsgICAgVG9vTG9uZywKPiArfQoKSU1PIHRoaXMg ZG9lcyBub3QgbmVlZCB0byBiZSBhbiBlbnVtLiBgcHViIHN0cnVjdCBUb29Mb25nRXJyb3JgIHNo b3VsZApiZSBlbm91Z2guCgo+ICsKPiAraW1wbCBFcnJvciBmb3IgRml4ZWRTdHJpbmdFcnJvciB7 fQo+ICsKPiAraW1wbCBEaXNwbGF5IGZvciBGaXhlZFN0cmluZ0Vycm9yIHsKPiArICAgIGZuIGZt dCgmc2VsZiwgZjogJm11dCBzdGQ6OmZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gUmVzdWx0PCgpLCBz dGQ6OmZtdDo6RXJyb3I+IHsKCl4geW91J3JlIGltcG9ydGluZyBgRm9ybWF0dGVyYC4KQW5kIG9u IHRoYXQgbm90ZTogcGVyc29uYWxseSBJIHByZWZlciB0byBpbXBvcnQgYHN0ZDo6Zm10YCBhbmQg cHJlZml4Cml0cyBpdGVtcyB3aXRoIGBmbXQ6OipgLgoKPiArICAgICAgICBmLndyaXRlX3N0ciht YXRjaCBzZWxmIHsKPiArICAgICAgICAgICAgU2VsZjo6VG9vTG9uZyA9PiAic3RyaW5nIGlzIGxv bmdlciB0aGFuIDIzIGNoYXJhY3RlcnMiLAo+ICsgICAgICAgIH0pCj4gKyAgICB9Cj4gK30KPiAr Cj4gKy8vLyBBbiBpbW11dGFibGUgc3RyaW5nIHR5cGUgd2l0aCBhIG1heGltdW0gc2l6ZSBvZiAy MyBieXRlcy4KPiArLy8vCj4gKy8vLyBBZnRlciBjb25zdHJ1Y3Rpb24gaXQgaXMgZ3VhcmFudGVl ZCB0aGF0IGl0cyBjb250ZW50cyBhcmU6Cj4gKy8vLyAqIHZhbGlkIHV0Zi04Cj4gKy8vLyAqIG5v dCBsb25nZXIgdGhhbiAyMyBjaGFyYWN0ZXJzCj4gKy8vLwo+ICsvLy8gRml4ZWRTdHJpbmcgaXMg aW1tdXRhYmxlLCB0aGVyZWZvcmUgaXQgaXMgc3VmZmljaWVudCB0byB2YWxpZGF0ZSB0aGUgaW52 YXJpYW50cyBvbmx5IGF0Cj4gKy8vLyBjb25zdHJ1Y3Rpb24gdGltZSB0byBndWFyYW50ZWUgdGhh dCB0aGV5IHdpbGwgYWx3YXlzIGhvbGQgZHVyaW5nIHRoZSBsaWZlY3ljbGUgb2YgdGhlCj4gKy8v LyBzdHJ1Y3QuCj4gKyNbZGVyaXZlKENsb25lLCBDb3B5KV0KPiArcHViIHN0cnVjdCBGaXhlZFN0 cmluZyB7Cj4gKyAgICBidWY6IFt1ODsgMjNdLAo+ICsgICAgbGVuOiB1OCwKPiArfQo+ICsKPiAr aW1wbCBGaXhlZFN0cmluZyB7Cj4gKyAgICAvLy8gQ3JlYXRlcyBhIG5ldyBGaXhlZFN0cmluZyBp bnN0YW5jZSBmcm9tIGEgc3RyIHJlZmVyZW5jZS4KPiArICAgIC8vLwo+ICsgICAgLy8vICMgRXJy b3JzCj4gKyAgICAvLy8gVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBhbiBlcnJvciBpZjoKPiAr ICAgIC8vLyAqIFRoZSBwYXNzZWQgc3RyaW5nIGlzIGxvbmdlciB0aGFuIDIzIGJ5dGVzCj4gKyAg ICBwdWIgZm4gbmV3KHZhbHVlOiAmc3RyKSAtPiBSZXN1bHQ8U2VsZiwgRml4ZWRTdHJpbmdFcnJv cj4gewo+ICsgICAgICAgIGlmIHZhbHVlLmxlbigpID4gMjMgewo+ICsgICAgICAgICAgICByZXR1 cm4gRXJyKEZpeGVkU3RyaW5nRXJyb3I6OlRvb0xvbmcpOwo+ICsgICAgICAgIH0KPiArCj4gKyAg ICAgICAgbGV0IG11dCBidWYgPSBbMDsgMjNdOwo+ICsgICAgICAgIGJ1ZlsuLnZhbHVlLmxlbigp XS5jb3B5X2Zyb21fc2xpY2UodmFsdWUuYXNfYnl0ZXMoKSk7Cj4gKwo+ICsgICAgICAgIE9rKFNl bGYgewo+ICsgICAgICAgICAgICBidWYsCj4gKyAgICAgICAgICAgIC8vIFNBRkVUWTogc2VsZi5s ZW4gaXMgYXQgbGVhc3QgMCBhbmQgYXQgbW9zdCAyMywgd2hpY2ggZml0cyBpbnRvIHU4Cj4gKyAg ICAgICAgICAgIGxlbjogdmFsdWUubGVuKCkgYXMgdTgsCj4gKyAgICAgICAgfSkKPiArICAgIH0K PiArCj4gKyAgICAvLy8gQ3JlYXRlcyBhIG5ldyBGaXhlZFN0cmluZyBpbnN0YW5jZSBmcm9tIGEg c3RyIHJlZmVyZW5jZSwgdHJ1bmNhdGluZyBpZiByZXF1aXJlZAo+ICsgICAgLy8vCj4gKyAgICAv Ly8gSXQgd29ya3MgYnkgY29weWluZyB0aGUgYnl0ZXMgZnJvbSB0aGUgc3VwcGxpZWQgdmFsdWUg aW50byBpdHMgb3duIGxvY2FsIGJ1ZmZlci4gSWYgdGhlCj4gKyAgICAvLy8gc3RyaW5nIGlzIGxv bmdlciB0aGFuIDIzIGJ5dGVzLCB0aGVuIHRoaXMgbWV0aG9kcyB3aWxsIHRydW5jYXRlIHRoZSBz dHJpbmcgYXQgdGhlIG5lYXJlc3QKPiArICAgIC8vLyB1dGYtOCBib3VuZGFyeSwgc28gZXZlbiBp ZiBhIHN0cmluZyBsb25nZXIgdGhhbiAyMyBjaGFyYWN0ZXJzIGlzIHBhc3NlZCBpbiwgaXQgaXMg cG9zc2libGUKPiArICAgIC8vLyB0aGF0IGl0IGdldHMgdHJ1bmNhdGVkIHRvIGEgbGVuZ3RoIGxl c3MgdGhhbiAyMyBpZiB0aGUgdXRmLTggYm91bmRhcnkgZG9lc24ndCBwZXJmZWN0bHkKPiArICAg IC8vLyBhbGlnbiB3aXRoIHRoZSAyMyBieXRlcyBsaW1pdC4KPiArICAgIHB1YiBmbiBuZXdfdHJ1 bmNhdGVkKHZhbHVlOiAmc3RyKSAtPiBTZWxmIHsKCkkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIGtl ZXAgdGhpcyB1bmxlc3Mgd2UgYWxzbyBoYXZlIGEgd2F5IG9mIGNoZWNraW5nCmZvciB0aGlzLgpJ biBjYXNlIHdlIGRvIHdhbnQgdG8gdXNlIHRoaXM6IHNpbmNlIHZhbHVlcyB1cCB0byAzMSAoYSBw b3RlbnRpYWwKc3RpbGwtY2hlYXAtZW5vdWdoIGV4dGVuc2lvbiB0byB0aGlzIGBGaXhlZFN0cmlu Z2AncyBsZW5ndGggKHNpbmNlIGl0CndvdWxkIHRoZW4ganVzdCBiZSA0IHBvaW50ZXJzIGluIHNp emUpKSBvbmx5IHJlcXVpcmUgNSBiaXRzLCB3ZSBoYXZlIDMKYml0cyByZW1haW5pbmcgaW4gdGhl IGxlbmd0aCBieXRlIHdoaWNoIGNvdWxkIGJlIHVzZWQgdG8gc2lnbmFsIHRoYXQKdGhpcyB3YXMg YSB0cnVuY2F0ZWQgc3RyaW5nLCB3aGljaCBjb3VsZCBiZSByZXR1cm5lZCB2aWEgYQpgLmlzX3Ry dW5jYXRlZCgpYCBtZXRob2QsIGFuZCB3ZSBjb3VsZCByZWZ1c2UgdG8gc2VyaWFsaXplIHN1Y2gg YSBzdHJpbmcKd2l0aG91dCBjYWxsaW5nIHNvbWUgZXh0cmEgbWV0aG9kIGZpcnN0IChhbmQgaW5j bHVkZSBzb21lIG1hcmtlciBpbiB0aGUKRGVidWcgaW1wbCk/CgpCdXQgSU1POiBmb3Igbm93LCB3 ZSBqdXN0IGRvbid0IG5lZWQgaXQuCgo+ICsgICAgICAgIC8vIFRPRE86IHJlcGxhY2UsIG9uY2Ug W2BzdHI6OmZsb29yX2NoYXJfYm91bmRhcnlgXSBoYXMgYmVlbiBzdGFiaWxpemVkCj4gKyAgICAg ICAgbGV0IGxlbiA9IGlmIHZhbHVlLmxlbigpID4gMjMgewo+ICsgICAgICAgICAgICBsZXQgbXV0 IGluZGV4ID0gMjM7Cj4gKwo+ICsgICAgICAgICAgICB3aGlsZSBpbmRleCA+IDAgJiYgIXZhbHVl LmlzX2NoYXJfYm91bmRhcnkoaW5kZXgpIHsKPiArICAgICAgICAgICAgICAgIGluZGV4ID0gaW5k ZXggLSAxOwoKaW5kZXggLT0gMTsgOy0pCgpvcjoKICAgIHBhbmljISgiV2hvIGxldCBEb21pbmlr IGFkZCBlbW9qaXMgdG8gZW51bXM/IikKCj4gKyAgICAgICAgICAgIH0KPiArCj4gKyAgICAgICAg ICAgIGluZGV4Cj4gKyAgICAgICAgfSBlbHNlIHsKPiArICAgICAgICAgICAgdmFsdWUubGVuKCkK PiArICAgICAgICB9OwoKXiBBY3R1YWxseSB0aGUgYWJvdmUgY291bGQganVzdCBiZSBzaG9ydGVu ZWQgdG8KCmxldCBtdXQgbGVuID0gdmFsdWUubGVuKCk7CmlmIGxlbiA+IDIzIHsKICAgIGxlbiA9 IDIzOwogICAgd2hpbGUgLi4uIHsgbGVuIC09IDEgfQp9Cgo+ICsKPiArICAgICAgICBsZXQgbXV0 IGJ1ZiA9IFswOyAyM107Cj4gKyAgICAgICAgYnVmWy4ubGVuXS5jb3B5X2Zyb21fc2xpY2UoJnZh bHVlLmFzX2J5dGVzKClbLi5sZW5dKTsKPiArCj4gKyAgICAgICAgU2VsZiB7Cj4gKyAgICAgICAg ICAgIGJ1ZiwKPiArICAgICAgICAgICAgLy8gU0FGRVRZOiBzZWxmLmxlbiBpcyBhdCBsZWFzdCAw IGFuZCBhdCBtb3N0IDIzLCB3aGljaCBmaXRzIGludG8gdTgKPiArICAgICAgICAgICAgbGVuOiBs ZW4gYXMgdTgsCj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICsKPiArICAgIC8vLyBSZXR1cm5zIGEg c3RyIHJlZmVyZW5jZSB0byB0aGUgc3RvcmVkIGRhdGEKPiArICAgICNbaW5saW5lXQo+ICsgICAg cHViIGZuIGFzX3N0cigmc2VsZikgLT4gJnN0ciB7Cj4gKyAgICAgICAgLy8gU0FGRVRZOiBzZWxm LmJ1ZiBtdXN0IGJlIGEgdmFsaWQgdXRmLTggc3RyaW5nIGJ5IGNvbnN0cnVjdGlvbgo+ICsgICAg ICAgIHVuc2FmZSB7IHN0cjo6ZnJvbV91dGY4X3VuY2hlY2tlZChzZWxmLmFzX2J5dGVzKCkpIH0K PiArICAgIH0KPiArCj4gKyAgICAvLy8gUmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgc2V0IGJ5 dGVzIGluIHRoZSBzdG9yZWQgYnVmZmVyCj4gKyAgICAjW2lubGluZV0KPiArICAgIHB1YiBmbiBh c19ieXRlcygmc2VsZikgLT4gJlt1OF0gewo+ICsgICAgICAgIC8vIFNBRkVUWTogc2VsZi5sZW4g Pj0gMCBhbmQgc2VsZi5sZW4gPD0gMjMgYnkgY29uc3RydWN0aW9uCj4gKyAgICAgICAgdW5zYWZl IHsgc2VsZi5idWYuZ2V0X3VuY2hlY2tlZCguLnNlbGYubGVuIGFzIHVzaXplKSB9Cj4gKyAgICB9 Cj4gK30KPiArCj4gK2ltcGwgUGFydGlhbEVxIGZvciBGaXhlZFN0cmluZyB7CgpJTU8gLSByZWdh cmRpbmcgb3JkZXJpbmcgd2hlcmUgaXQgbWF0dGVycyAtIGl0IHdvdWxkIGJlIGVhc2llciB0byBy ZWFkCnN1Y2ggaW1wbHMgd2hlbiB0aGV5J3JlIHB1cmVseSBmb3J3YXJkZWQsIGVnLjoKCiAgICBQ YXJ0aWFsRXE6OmVxKHNlbGYuYXNfc3RyKCksIG90aGVyKQoKc2luY2UgdGhlbiBhbGwgaW1wbGVt ZW50YXRpb25zIGxvb2sgdGhlIHNhbWUgKG5vIG5lZWQgZm9yIGBTb21lKClgCndyYXBwaW5nIGlu IHRoZSBgUGFydGlhbE9yZGAgaW1wbCwgZm9yIGluc3RhbmNlLgoKQWxzbywgaXQgY291bGQgYmUg Z2VuZXJhdGVkIHdpdGggYSBzaW1wbGUgZm9yd2FyZGluZyBtYWNybyB3aGljaCB3b3VsZApJTU8g YWxzbyBtYWtlIHJldmlldyBlYXNpZXIgdGhhbiBoYXZpbmcgdG8gZ28gdGhyb3VnaCBlYWNoIG9m IHRoZW0KaW5kaXZpZHVhbGx5OgoKICAgIG1hY3JvX3J1bGVzISBmb3J3YXJkX2ltcGxfdG9fYnl0 ZXMgewogICAgICAgICgkKCR0cmFpdDppZGVudCB7JGZuOmlkZW50IC0+ICRvdXQ6dHkgfSkrKSA9 PiB7CiAgICAgICAgICAgICQoCiAgICAgICAgICAgICAgICBpbXBsICR0cmFpdCBmb3IgRml4ZWRT dHJpbmcgewogICAgICAgICAgICAgICAgICAgIGZuICRmbigmc2VsZiwgb3RoZXI6ICZTZWxmKSAt PiAkb3V0IHsKICAgICAgICAgICAgICAgICAgICAgICAgPFt1OF0gYXMgJHRyYWl0Pjo6JGZuKHNl bGYuYXNfYnl0ZXMoKSwgb3RoZXIuYXNfYnl0ZXMoKSkKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkrCiAgICAgICAgfTsKICAgIH0KCiAgICBmb3J3 YXJkX2ltcGxfdG9fYnl0ZXMhIHsKICAgICAgICBQYXJ0aWFsRXEgeyBlcSAtPiBib29sIH0KICAg ICAgICBQYXJ0aWFsT3JkIHsgcGFydGlhbF9jbXAgLT4gT3B0aW9uPE9yZGVyaW5nPiB9CiAgICAg ICAgT3JkIHsgY21wIC0+IE9yZGVyaW5nIH0KICAgIH0KCgpBbmQgZm9yIHRoZSBvbmVzIGJlbG93 OgoKICAgIG1hY3JvX3J1bGVzISBmb3J3YXJkX2ltcGxfdG9fc3RyX2JpZGlyIHsKICAgICAgICAo JCgkdHJhaXQ6aWRlbnQgeyRmbjppZGVudCAtPiAkb3V0OnR5IH0pKykgPT4gewogICAgICAgICAg ICAkKAogICAgICAgICAgICAgICAgaW1wbCAkdHJhaXQ8c3RyPiBmb3IgRml4ZWRTdHJpbmcgewog ICAgICAgICAgICAgICAgICAgIGZuICRmbigmc2VsZiwgb3RoZXI6ICZzdHIpIC0+ICRvdXQgewog ICAgICAgICAgICAgICAgICAgICAgICA8c3RyIGFzICR0cmFpdD46OiRmbihzZWxmLmFzX3N0cigp LCBvdGhlcikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgaW1wbCAkdHJhaXQ8Rml4ZWRTdHJpbmc+IGZvciAmc3RyIHsKICAgICAgICAgICAg ICAgICAgICBmbiAkZm4oJnNlbGYsIG90aGVyOiAmRml4ZWRTdHJpbmcpIC0+ICRvdXQgewogICAg ICAgICAgICAgICAgICAgICAgICA8c3RyIGFzICR0cmFpdD46OiRmbihzZWxmLCBvdGhlci5hc19z dHIoKSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICkrCiAgICAgICAgfTsKICAgIH0KCiAgICBmb3J3YXJkX2ltcGxfdG9fc3RyX2JpZGlyISB7CiAg ICAgICAgUGFydGlhbEVxIHsgZXEgLT4gYm9vbCB9CiAgICAgICAgUGFydGlhbE9yZCB7IHBhcnRp YWxfY21wIC0+IE9wdGlvbjxPcmRlcmluZz4gfQogICAgfQoKWWVzIEkgcmVhbGl6ZSB0aGF0IGZv ciAyIHRyYWl0cyB0aGlzIGRvZXNuJ3Qgc2F2ZSBtdWNoLCBidXQgaXQgd291bGQKbWFrZSB0aGUg aW50ZW50aW9uIGNsZWFyZXIgYW5kIElNTyBpcyBzdGlsbCBlYXNpZXIgdG8gcmV2aWV3LgoKPiAr ICAgICNbaW5saW5lXQo+ICsgICAgZm4gZXEoJnNlbGYsIG90aGVyOiAmRml4ZWRTdHJpbmcpIC0+ IGJvb2wgewo+ICsgICAgICAgIHNlbGYuYXNfYnl0ZXMoKSA9PSBvdGhlci5hc19ieXRlcygpCj4g KyAgICB9Cj4gK30KPiArCj4gK2ltcGwgRXEgZm9yIEZpeGVkU3RyaW5nIHt9Cj4gKwo+ICtpbXBs IFBhcnRpYWxPcmQgZm9yIEZpeGVkU3RyaW5nIHsKPiArICAgIGZuIHBhcnRpYWxfY21wKCZzZWxm LCBvdGhlcjogJkZpeGVkU3RyaW5nKSAtPiBPcHRpb248T3JkZXJpbmc+IHsKPiArICAgICAgICBT b21lKHNlbGYuY21wKG90aGVyKSkKPiArICAgIH0KPiArfQo+ICsKPiAraW1wbCBPcmQgZm9yIEZp eGVkU3RyaW5nIHsKPiArICAgICNbaW5saW5lXQo+ICsgICAgZm4gY21wKCZzZWxmLCBvdGhlcjog JkZpeGVkU3RyaW5nKSAtPiBPcmRlcmluZyB7Cj4gKyAgICAgICAgc2VsZi5hc19ieXRlcygpLmNt cChvdGhlci5hc19ieXRlcygpKQo+ICsgICAgfQo+ICt9Cj4gKwo+ICtpbXBsIERpc3BsYXkgZm9y IEZpeGVkU3RyaW5nIHsKPiArICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBzdGQ6OmZtdDo6Rm9y bWF0dGVyPCdfPikgLT4gUmVzdWx0PCgpLCBzdGQ6OmZtdDo6RXJyb3I+IHsKPiArICAgICAgICBm LndyaXRlX3N0cihzZWxmLmFzX3N0cigpKQoKQ29uc2lkZXIgZm9yd2FyZGluZyB0byAmc3RyJ3Mg Zm10IGluc3RlYWQgc28gdGhhdCB0aGluZ3Mgc3VjaCBhcwphbGlnbm1lbnQgZXRjLiB3b3JrOgoK ICAgIERpc3BsYXk6OmZtdChzZWxmLmFzX3N0cigpLCBmKQoKc28gdGhhdCBgcHJpbnRsbiEoInt0 aGVfZW51bTo+OH0iKWAgd2lsbCBwcmludCAiICAgICBmb28iIGluc3RlYWQgb2YKanVzdCAiZm9v IiwgYW5kIGB7eDowXjh9YCBwcm9kdWNlcyAiMDBmb28wMDAiIDstKQoKPiArICAgIH0KPiArfQo+ ICsKPiAraW1wbCBEZWJ1ZyBmb3IgRml4ZWRTdHJpbmcgewo+ICsgICAgZm4gZm10KCZzZWxmLCBm OiAmbXV0IHN0ZDo6Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBSZXN1bHQ8KCksIHN0ZDo6Zm10OjpF cnJvcj4gewo+ICsgICAgICAgIGYud3JpdGVfc3RyKHNlbGYuYXNfc3RyKCkpCgpTYW1lIGhlcmUg d2l0aCBgRGVidWc6OmZtdChzZWxmLmFzX3N0cigpLCBmKWAuCgo+ICsgICAgfQo+ICt9Cj4gKwo+ ICtpbXBsIERlcmVmIGZvciBGaXhlZFN0cmluZyB7Cj4gKyAgICB0eXBlIFRhcmdldCA9IHN0cjsK PiArCj4gKyAgICBmbiBkZXJlZigmc2VsZikgLT4gJnN0ciB7Cj4gKyAgICAgICAgc2VsZi5hc19z dHIoKQo+ICsgICAgfQo+ICt9Cj4gKwo+ICtpbXBsIEFzUmVmPHN0cj4gZm9yIEZpeGVkU3RyaW5n IHsKPiArICAgIGZuIGFzX3JlZigmc2VsZikgLT4gJnN0ciB7Cj4gKyAgICAgICAgc2VsZi5hc19z dHIoKQo+ICsgICAgfQo+ICt9CgpJJ2QgYWxzbyBhZGQgYEFzUmVmPFt1OF0+YCwgYW5kIGBCb3Jy b3c8c3RyPmAuIChUaGUgbGF0dGVyIHdvdWxkIGJlCnJlcXVpcmVkIHRvIGFsbG93IGEgYEhhc2hN YXA8Rml4ZWRTdHJpbmcsIFQ+YCB0byB1c2UgYC5nZXQoImtleSIpYCB3aXRoCmAmc3RyYCBmb3Ig YSBrZXkgLSBub3QgdGhhdCB0aGF0J3Mgc29tZXRoaW5nIHdlJ2QgZXhwZWN0IHRvIHNlZS4uLgoK PiArCj4gK2ltcGwgVHJ5RnJvbTxTdHJpbmc+IGZvciBGaXhlZFN0cmluZyB7Cj4gKyAgICB0eXBl IEVycm9yID0gRml4ZWRTdHJpbmdFcnJvcjsKPiArCj4gKyAgICBmbiB0cnlfZnJvbSh2YWx1ZTog U3RyaW5nKSAtPiBSZXN1bHQ8U2VsZiwgU2VsZjo6RXJyb3I+IHsKPiArICAgICAgICBGaXhlZFN0 cmluZzo6bmV3KHZhbHVlLmFzX3N0cigpKQo+ICsgICAgfQo+ICt9Cj4gKwo+ICtpbXBsIEZyb21T dHIgZm9yIEZpeGVkU3RyaW5nIHsKPiArICAgIHR5cGUgRXJyID0gRml4ZWRTdHJpbmdFcnJvcjsK PiArCj4gKyAgICBmbiBmcm9tX3N0cih2YWx1ZTogJnN0cikgLT4gUmVzdWx0PFNlbGYsIFNlbGY6 OkVycj4gewo+ICsgICAgICAgIEZpeGVkU3RyaW5nOjpuZXcodmFsdWUpCj4gKyAgICB9Cj4gK30K PiArCj4gK2ltcGwgVHJ5RnJvbTwmc3RyPiBmb3IgRml4ZWRTdHJpbmcgewo+ICsgICAgdHlwZSBF cnJvciA9IEZpeGVkU3RyaW5nRXJyb3I7Cj4gKwo+ICsgICAgZm4gdHJ5X2Zyb20odmFsdWU6ICZz dHIpIC0+IFJlc3VsdDxTZWxmLCBTZWxmOjpFcnJvcj4gewo+ICsgICAgICAgIEZpeGVkU3RyaW5n OjpuZXcodmFsdWUpCj4gKyAgICB9Cj4gK30KPiArCj4gK2ltcGwgUGFydGlhbEVxPHN0cj4gZm9y IEZpeGVkU3RyaW5nIHsKPiArICAgIGZuIGVxKCZzZWxmLCBvdGhlcjogJnN0cikgLT4gYm9vbCB7 Cj4gKyAgICAgICAgc2VsZi5hc19zdHIoKS5lcShvdGhlcikKPiArICAgIH0KPiArfQo+ICsKPiAr aW1wbCBQYXJ0aWFsRXE8Rml4ZWRTdHJpbmc+IGZvciAmc3RyIHsKPiArICAgIGZuIGVxKCZzZWxm LCBvdGhlcjogJkZpeGVkU3RyaW5nKSAtPiBib29sIHsKPiArICAgICAgICBzZWxmLmVxKCZvdGhl ci5hc19zdHIoKSkKPiArICAgIH0KPiArfQo+ICsKPiAraW1wbCBQYXJ0aWFsT3JkPHN0cj4gZm9y IEZpeGVkU3RyaW5nIHsKPiArICAgIGZuIHBhcnRpYWxfY21wKCZzZWxmLCBvdGhlcjogJnN0cikg LT4gT3B0aW9uPE9yZGVyaW5nPiB7Cj4gKyAgICAgICAgU29tZShzZWxmLmFzX3N0cigpLmNtcCgm b3RoZXIpKQo+ICsgICAgfQo+ICt9Cj4gKwo+ICtpbXBsIFBhcnRpYWxPcmQ8Rml4ZWRTdHJpbmc+ IGZvciAmc3RyIHsKPiArICAgIGZuIHBhcnRpYWxfY21wKCZzZWxmLCBvdGhlcjogJkZpeGVkU3Ry aW5nKSAtPiBPcHRpb248T3JkZXJpbmc+IHsKPiArICAgICAgICBTb21lKHNlbGYuY21wKCZvdGhl ci5hc19zdHIoKSkpCj4gKyAgICB9Cj4gK30KPiArCj4gK2ltcGwgU2VyaWFsaXplIGZvciBGaXhl ZFN0cmluZyB7Cj4gKyAgICBmbiBzZXJpYWxpemU8Uz4oJnNlbGYsIHNlcmlhbGl6ZXI6IFMpIC0+ IFJlc3VsdDxTOjpPaywgUzo6RXJyb3I+Cj4gKyAgICB3aGVyZQo+ICsgICAgICAgIFM6IHNlcmRl OjpTZXJpYWxpemVyLAo+ICsgICAgewo+ICsgICAgICAgIHNlcmlhbGl6ZXIuc2VyaWFsaXplX3N0 cihzZWxmLmFzX3N0cigpKQo+ICsgICAgfQo+ICt9Cj4gKwo+ICtpbXBsPCdkZT4gRGVzZXJpYWxp emU8J2RlPiBmb3IgRml4ZWRTdHJpbmcgewo+ICsgICAgZm4gZGVzZXJpYWxpemU8RD4oZGVzZXJp YWxpemVyOiBEKSAtPiBSZXN1bHQ8U2VsZiwgRDo6RXJyb3I+Cj4gKyAgICB3aGVyZQo+ICsgICAg ICAgIEQ6IHNlcmRlOjpEZXNlcmlhbGl6ZXI8J2RlPiwKPiArICAgIHsKPiArICAgICAgICBkZXNl cmlhbGl6ZXIuZGVzZXJpYWxpemVfc3RyKEZpeGVkU3RyaW5nVmlzaXRvcikKPiArICAgIH0KPiAr fQo+ICsKPiArc3RydWN0IEZpeGVkU3RyaW5nVmlzaXRvcjsKCl4gSSdkIHByZWZlciB0byBtb3Zl IHRoZSB0eXBlIGFuZCBWaXNpdG9yIGltcGwgaW50byB0aGUgYGZuIGRlc2VyaWFsaXplYC4KCj4g Kwo+ICtpbXBsPCdkZT4gc2VyZGU6OmRlOjpWaXNpdG9yPCdkZT4gZm9yIEZpeGVkU3RyaW5nVmlz aXRvciB7Cj4gKyAgICB0eXBlIFZhbHVlID0gRml4ZWRTdHJpbmc7Cj4gKwo+ICsgICAgZm4gZXhw ZWN0aW5nKCZzZWxmLCBmOiAmbXV0IEZvcm1hdHRlcikgLT4gc3RkOjpmbXQ6OlJlc3VsdCB7Cj4g KyAgICAgICAgZi53cml0ZV9zdHIoImEgc3RyaW5nIHRoYXQgaXMgYXQgbW9zdCAyMyBieXRlcyBs b25nIikKPiArICAgIH0KPiArCj4gKyAgICBmbiB2aXNpdF9zdHI8RT4oc2VsZiwgdjogJnN0cikg LT4gUmVzdWx0PFNlbGY6OlZhbHVlLCBFPgo+ICsgICAgd2hlcmUKPiArICAgICAgICBFOiBzZXJk ZTo6ZGU6OkVycm9yLAo+ICsgICAgewo+ICsgICAgICAgIHYudHJ5X2ludG8oKS5tYXBfZXJyKEU6 OmN1c3RvbSkKPiArICAgIH0KPiArCj4gKyAgICBmbiB2aXNpdF9zdHJpbmc8RT4oc2VsZiwgdjog U3RyaW5nKSAtPiBSZXN1bHQ8U2VsZjo6VmFsdWUsIEU+Cj4gKyAgICB3aGVyZQo+ICsgICAgICAg IEU6IHNlcmRlOjpkZTo6RXJyb3IsCj4gKyAgICB7CgpeIFlvdSBjYW4gZHJvcCB0aGlzLiBgdmlz aXRfc3RyaW5nYCBhbmQgYHZpc2l0X2JvcnJvd2VkX3N0cmAgYnkgZGVmYXVsdApmb3J3YXJkIHRv IGB2aXNpdF9zdHJgLgoKPiArICAgICAgICB2LnRyeV9pbnRvKCkubWFwX2VycihFOjpjdXN0b20p Cj4gKyAgICB9Cj4gK30KPiArCj4gKyNbY2ZnKHRlc3QpXQo+ICttb2QgdGVzdHMgewo+ICsgICAg dXNlIHN1cGVyOjoqOwo+ICsKPiArICAgIHVzZSBzZXJkZV9wbGFpbjsKPiArCj4gKyAgICAjW3Rl c3RdCj4gKyAgICBmbiB0ZXN0X2NvbnN0cnVjdCgpIHsKPiArICAgICAgICBsZXQgZml4ZWRfc3Ry aW5nID0gRml4ZWRTdHJpbmc6Om5ldygiIikuZXhwZWN0KCJlbXB0eSBzdHJpbmcgaXMgdmFsaWQi KTsKPiArICAgICAgICBhc3NlcnRfZXEhKCIiLCBmaXhlZF9zdHJpbmcpOwo+ICsKPiArICAgICAg ICBsZXQgZml4ZWRfc3RyaW5nID0gRml4ZWRTdHJpbmc6Om5ldygiYSIpLmV4cGVjdCgidmFsaWQg c3RyaW5nIik7Cj4gKyAgICAgICAgYXNzZXJ0X2VxISgiYSIsIGZpeGVkX3N0cmluZyk7Cj4gKwo+ ICsgICAgICAgIGxldCBmaXhlZF9zdHJpbmcgPSBGaXhlZFN0cmluZzo6bmV3KCLwn4yP8J+Mj/Cf jI/wn4yP8J+MjyIpLmV4cGVjdCgidmFsaWQgc3RyaW5nIik7Cj4gKyAgICAgICAgYXNzZXJ0X2Vx ISgi8J+Mj/CfjI/wn4yP8J+Mj/CfjI8iLCBmaXhlZF9zdHJpbmcpOwo+ICsKPiArICAgICAgICBs ZXQgZml4ZWRfc3RyaW5nID0KPiArICAgICAgICAgICAgRml4ZWRTdHJpbmc6Om5ldygiYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWEiKS5leHBlY3QoIjIzIGNoYXJhY3RlcnMgYXJlIGFsbG93ZWQiKTsK PiArICAgICAgICBhc3NlcnRfZXEhKCJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIsIGZpeGVkX3N0 cmluZyk7Cj4gKwo+ICsgICAgICAgIEZpeGVkU3RyaW5nOjpuZXcoIvCfjI/wn4yP8J+Mj/CfjI/w n4yP8J+MjyIpLmV4cGVjdF9lcnIoInN0cmluZyB0b28gbG9uZyIpOwo+ICsgICAgICAgIEZpeGVk U3RyaW5nOjpuZXcoImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIpLmV4cGVjdF9lcnIoInN0cmlu ZyB0b28gbG9uZyIpOwo+ICsgICAgfQo+ICsKPiArICAgICNbdGVzdF0KPiArICAgIGZuIHRlc3Rf c2VyaWFsaXplX2Rlc2VyaWFsaXplKCkgewo+ICsgICAgICAgIGxldCB2YWxpZF9zdHJpbmcgPSAi YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiOwo+ICsKPiArICAgICAgICBsZXQgZml4ZWRfc3RyaW5n OiBGaXhlZFN0cmluZyA9Cj4gKyAgICAgICAgICAgIHNlcmRlX3BsYWluOjpmcm9tX3N0cigiYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWEiKS5leHBlY3QoImRlc2VyaWFsaXphdGlvbiB3b3JrcyIpOwo+ ICsgICAgICAgIGFzc2VydF9lcSEodmFsaWRfc3RyaW5nLCBmaXhlZF9zdHJpbmcpOwo+ICsKPiAr ICAgICAgICBsZXQgc2VyaWFsaXplZF9zdHJpbmcgPQo+ICsgICAgICAgICAgICBzZXJkZV9wbGFp bjo6dG9fc3RyaW5nKCZmaXhlZF9zdHJpbmcpLmV4cGVjdCgiY2FuIGJlIHNlcmlhbGl6ZWQgaW50 byBhIHN0cmluZyIpOwo+ICsgICAgICAgIGFzc2VydF9lcSEodmFsaWRfc3RyaW5nLCBzZXJpYWxp emVkX3N0cmluZyk7Cj4gKwo+ICsgICAgICAgIHNlcmRlX3BsYWluOjpmcm9tX3N0cjo6PEZpeGVk U3RyaW5nPigiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIikKPiArICAgICAgICAgICAgLmV4cGVj dF9lcnIoImNhbm5vdCBkZXNlcmlhbGl6ZSBzdHJpbmcgdGhhdCBpcyB0b28gbG9uZyIpOwo+ICsg ICAgfQo+ICsKPiArICAgICNbdGVzdF0KPiArICAgIGZuIHRlc3Rfb3JkKCkgewo+ICsgICAgICAg IGxldCBmaXhlZF9zdHJpbmcgPSBGaXhlZFN0cmluZzo6bmV3KCJhYmMiKS5leHBlY3QoInZhbGlk IHN0cmluZyIpOwo+ICsKPiArICAgICAgICBhc3NlcnQhKGZpeGVkX3N0cmluZyA9PSBmaXhlZF9z dHJpbmcpOwo+ICsgICAgICAgIGFzc2VydCEoZml4ZWRfc3RyaW5nID49IGZpeGVkX3N0cmluZyk7 Cj4gKyAgICAgICAgYXNzZXJ0IShmaXhlZF9zdHJpbmcgPD0gZml4ZWRfc3RyaW5nKTsKPiArCj4g KyAgICAgICAgYXNzZXJ0ISgiYWIiIDwgZml4ZWRfc3RyaW5nKTsKPiArICAgICAgICBhc3NlcnQh KCJhYmMiID09IGZpeGVkX3N0cmluZyk7Cj4gKyAgICAgICAgYXNzZXJ0ISgiYWJjZCIgPiBmaXhl ZF9zdHJpbmcpOwo+ICsKPiArICAgICAgICBsZXQgbGFyZ2VyX2ZpeGVkX3N0cmluZyA9IEZpeGVk U3RyaW5nOjpuZXcoImFiY2RlIikuZXhwZWN0KCJ2YWxpZCBzdHJpbmciKTsKPiArCj4gKyAgICAg ICAgYXNzZXJ0IShsYXJnZXJfZml4ZWRfc3RyaW5nID4gZml4ZWRfc3RyaW5nKTsKPiArICAgICAg ICBhc3NlcnQhKGZpeGVkX3N0cmluZyA8IGxhcmdlcl9maXhlZF9zdHJpbmcpOwo+ICsgICAgfQo+ ICsKPiArICAgICNbdGVzdF0KPiArICAgIGZuIHRlc3RfdHJ1bmNhdGUoKSB7Cj4gKyAgICAgICAg bGV0IGZpeGVkX3N0cmluZyA9IEZpeGVkU3RyaW5nOjpuZXdfdHJ1bmNhdGVkKCJhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhIik7Cj4gKyAgICAgICAgYXNzZXJ0X2VxISgiYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWEiLCBmaXhlZF9zdHJpbmcpOwo+ICsKPiArICAgICAgICBsZXQgZml4ZWRfc3Ry aW5nID0gRml4ZWRTdHJpbmc6Om5ld190cnVuY2F0ZWQoImFhYWFhYWFhYWFhYWFhYWFhYfCfkq8i KTsKPiArICAgICAgICBhc3NlcnRfZXEhKCJhYWFhYWFhYWFhYWFhYWFhYWHwn5KvIiwgZml4ZWRf c3RyaW5nKTsKPiArCj4gKyAgICAgICAgLy8gJ/Cfkq8nIGlzIDQgYnl0ZXMgbG9uZwo+ICsgICAg ICAgIC8vIGZpcnN0IGJ5dGUgb2YgJ/Cfkq8nIGlzIGluc2lkZSB0aGUgMjMgYnl0ZSBsaW1pdCwg YnV0IGl0J3Mgbm90IGEgdmFsaWQgdXRmLTggYm91bmRhcnkgc28KPiArICAgICAgICAvLyBpdCBz aG91bGQgZ2V0IHRydW5jYXRlZAo+ICsgICAgICAgIGxldCBmaXhlZF9zdHJpbmcgPSBGaXhlZFN0 cmluZzo6bmV3X3RydW5jYXRlZCgiYWFhYWFhYWFhYWFhYWFhYWFhYWFh8J+SryIpOwo+ICsgICAg ICAgIGFzc2VydF9lcSEoImFhYWFhYWFhYWFhYWFhYWFhYWFhYSIsIGZpeGVkX3N0cmluZyk7Cj4g Kwo+ICsgICAgICAgIGxldCBmaXhlZF9zdHJpbmcgPSBGaXhlZFN0cmluZzo6bmV3X3RydW5jYXRl ZCgiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYfCfkq8iKTsKPiArICAgICAgICBhc3NlcnRfZXEhKCJh YWFhYWFhYWFhYWFhYWFhYWFhYWFhIiwgZml4ZWRfc3RyaW5nKTsKPiArCj4gKyAgICAgICAgbGV0 IGZpeGVkX3N0cmluZyA9IEZpeGVkU3RyaW5nOjpuZXdfdHJ1bmNhdGVkKCJhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYfCfkq8iKTsKPiArICAgICAgICBhc3NlcnRfZXEhKCJhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYSIsIGZpeGVkX3N0cmluZyk7Cj4gKwo+ICsgICAgICAgIC8vICfwn4yPJyBpcyA0IGJ5 dGVzIGxvbmcKPiArICAgICAgICBsZXQgZml4ZWRfc3RyaW5nID0gRml4ZWRTdHJpbmc6Om5ld190 cnVuY2F0ZWQoIvCfjI/wn4yP8J+Mj/CfjI/wn4yPIik7Cj4gKyAgICAgICAgYXNzZXJ0X2VxISgi 8J+Mj/CfjI/wn4yP8J+Mj/CfjI8iLCBmaXhlZF9zdHJpbmcpOwo+ICsKPiArICAgICAgICBsZXQg Zml4ZWRfc3RyaW5nID0gRml4ZWRTdHJpbmc6Om5ld190cnVuY2F0ZWQoIvCfjI/wn4yP8J+Mj/Cf jI/wn4yP8J+MjyIpOwo+ICsgICAgICAgIGFzc2VydF9lcSEoIvCfjI/wn4yP8J+Mj/CfjI/wn4yP IiwgZml4ZWRfc3RyaW5nKTsKPiArICAgIH0KPiArfQo+IGRpZmYgLS1naXQgYS9wdmUtYXBpLXR5 cGVzL3NyYy90eXBlcy9tb2QucnMgYi9wdmUtYXBpLXR5cGVzL3NyYy90eXBlcy9tb2QucnMKPiBp bmRleCBmZTUyYTE2OS4uOTY1M2RkNDYgMTAwNjQ0Cj4gLS0tIGEvcHZlLWFwaS10eXBlcy9zcmMv dHlwZXMvbW9kLnJzCj4gKysrIGIvcHZlLWFwaS10eXBlcy9zcmMvdHlwZXMvbW9kLnJzCj4gQEAg LTE3LDYgKzE3LDkgQEAgcHViIG1vZCBhcnJheTsKPiAgcHViIG1vZCBzdHJpbmdsaXN0Owo+ICBw dWIgbW9kIHZlcmlmaWVyczsKPiAgCj4gK21vZCBmaXhlZF9zdHJpbmc7Cj4gK3B1YiB1c2UgZml4 ZWRfc3RyaW5nOjp7Rml4ZWRTdHJpbmcsIEZpeGVkU3RyaW5nRXJyb3J9Owo+ICsKPiAgaW5jbHVk ZSEoIi4uL2dlbmVyYXRlZC90eXBlcy5ycyIpOwo+ICAKPiAgLy8vIEEgUFZFIFVwaWQsIGNvbnRy YXJ5IHRvIGEgUEJTIFVwaWQsIGNvbnRhaW5zIG5vICd0YXNrLWlkJyBudW1iZXIuCj4gLS0gCj4g Mi40Ny4zCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K cGRtLWRldmVsIG1haWxpbmcgbGlzdApwZG0tZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6 Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcGRtLWRldmVsCg==