From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 543851FF15C for ; Fri, 19 Sep 2025 11:41:47 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7DD8A12778; Fri, 19 Sep 2025 11:42:02 +0200 (CEST) From: Gabriel Goller To: pve-devel@lists.proxmox.com Date: Fri, 19 Sep 2025 11:41:12 +0200 Message-ID: <20250919094122.73373-1-g.goller@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1758274878331 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.004 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 SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [RFC network/ve-rs 0/8] Template-based FRR config generation X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" Q3VycmVudGx5IHdlIGdlbmVyYXRlIHRoZSBmcnIgY29uZmlnIGJ5IGhhdmluZyBhIGZldyBydXN0 LXN0cnVjdHMgdGhhdCBsb29rCnZlcnkgc2ltaWxhciB0byB0aGUgbGl0ZXJhbCBmcnIgY29uZmln IC0tIHRoZXNlIHN0cnVjdHMgdGhlbiBpbXBsZW1lbnQgYSBjdXN0b20KdHJhaXQgc2ltaWxhciB0 byBEaXNwbGF5LCB3aGljaCBzZXJpYWxpemVzIHRoZSBjb25maWcgaW50byBhIFN0cmluZy4gVGhp cyBpcwpub3Qgb3B0aW1hbCBkdWUgdG8gbXVsdGlwbGUgcmVhc29ucywgdGhlIG1haW4gb25lIGJl aW5nIGl0J3MgcXVpdGUgdmVyYm9zZSBhbmQKYW5kIHRoZSBmYWN0IHRoYXQgd2Ugb2Z0ZW4gbWl4 ZWQgRGlzcGxheSBhbmQgRnJyRHVtcCBpbXBsZW1lbnRhdGlvbnMuIFRoaXMKbWVhbnMgdGhhdCBz b21ldGltZXMgc3RydWN0cyBhcmUgc2VyaWFsaXplZCB1c2luZyBEaXNwbGF5IGFuZCBzb21ldGlt ZXMgdXNpbmcKRnJyRHVtcC4gVGhlcmUgaXMgYWxzbyB0aGUgcXVlc3Rpb24gb2YgZ3JhbnVsYXJp dHksIHNvIGRvZXMgYSBzaW5nbGUgbGluZQpjb3JyZXNwb25kIHRvIGEgc2luZ2xlIEZyckR1bXAg aW1wbGVtZW50YXRpb24/IE9yIGRvZXMgZXZlcnkgZnJyIHdvcmQKY29ycmVzcG9uZCB0byBhbiBG cnJEdW1wIGltcGxlbWVudGF0aW9uIGFuZCBhIHJhbmRvbSBvbmUganVzdCBhZGRzIGEgJwonPwoK SW4gb3JkZXIgdG8gY2xlYW4gdGhpcyB1cCBhIGJpdCwgdGhlcmUgd2FzIGFuIGF0dGVtcHQgYXQg d3JpdGluZyBhIGZ1bGwtZmxlZGdlZApzZXJkZSBzZXJpYWxpemVyLCB3aGljaCB0YWtlcyBzdHJ1 Y3RzIGFuZCBjb252ZXJ0cyB0aGVtIGludG8gYmxvY2tzIGFuZCB1c2luZwpuZXN0ZWQgZW51bXMg YXMgdGhlIG9wdGlvbnMgb24gZXZlcnkgbGluZS4gVGhpcyB0dXJuZWQgb3V0IHRvIGJlIHF1aXRl CmRpZmZpY3VsdCBhbmQgaW52b2x2ZWQgYSBsb3Qgb2YgbWFnaWMgd2hlbiBjcmVhdGluZyB0aGUg Y29uZmlnIGluIHJ1c3QuCkVzcGVjaWFsbHkgdGhlIGVuZGluZyBzdGF0ZW1lbnRzIChlLmcuICdl eGl0LWFkZHJlc3MtZmFtaWx5JyB3aGVuIGV4aXRpbmcgYW4KYWRkcmVzcy1mYW1pbHkgYmxvY2ss IGJ1dCAnZXhpdCcgd2hlbiBleGl0aW5nIGEgcm91dGVyIGJsb2NrKSB0dXJuZWQgb3V0IHRvIGJl CnF1aXRlIHRyaWNreS4KClRoZSB0aGlyZCBhbmQgcHJvYmFibHkgbW9zdCBwb3B1bGFyIHdheSAo VnlvcyBhbmQgU29uaWMgYm90aCB1c2UgamluamEKdGVtcGxhdGVzIGFzIHdlbGwpIHRvIGdlbmVy YXRlIGZyciBjb25maWcgaXMgdG8gdXNlIHRlbXBsYXRlcy4gU28geW91IGJhc2ljYWxseQpoYXZl IHJ1c3Qtc3RydWN0cyB0aGF0IGxvb2sgc2ltaWxhciB0byB0aGUgZnJyIGNvbmZpZyBhbmQgaW1w bGVtZW50IGRlcml2ZSBvcgppbXBsZW1lbm50IHNlcmlhbGl6ZS4gVGhlbiB3ZSBjYW4gdXNlIHRl bXBsYXRlIGZpbGVzLCB3aGljaCBjb250YWluIHRoZSB3aG9sZQpjb25maWd1cmF0aW9uIHdpdGgg ZXZlcnkgb3B0aW9uIHdyYXBwZWQgaW4gYSBgaWZgIGJsb2NrIGFuZCBsaXN0cy9ibG9ja3MKd3Jh cHBlZCBpbiBgZm9yYCBsb29wcy4gRmluYWxseSwgd2UgY2FuIHVzZSB0aGUgcnVzdCBzdHJ1Y3Rz IHRvIGluc2VydCB0aGVtIGludG8KdGhlIHRlbXBsYXRlcyBhbmQgZ2V0IHRoZSBmdWxsIGZyciBj b25maWcuIFRoZSBtYWpvciBkb3duc2lkZSBvZiB0aGlzIGFwcHJvYWNoCmlzIHRoYXQgdGhlIGZy ciB0ZW1wbGF0ZSBmaWxlcyBnZXQgcXVpdGUgY29tcGxpY2F0ZWQgYW5kIGNhbiBiZSBhIG1ham9y IHNvdXJjZQpvZiBjb25maWcgZ2VuZXJhdGlvbiBlcnJvcnMuIEEgcG9zaXRpdmUgdGhpbmcgdGhv dWdoLCBpcyB0aGF0IHdlIGRvbid0IG5lZWQgdG8KbW9kZWwgdGhlIHdob2xlIGZyciBjb25maWcg d2l0aCBldmVyeSBvcHRpb24gYW5kIGV2ZXJ5IHByb3BlcnR5LCB3ZSBjYW4gZWFzaWx5CndyYXAg YSBmZXcgb3B0aW9ucyBpbnRvIGEgc2luZ2xlIChlLmcuKSBib29sLCBhbmQgdGhlbiBtYXliZSBz cGxpdCBpdCBvdXQgbGF0ZXIKd2hlbiB3ZSBhZGQgYSB1aSBvcHRpb24gZm9yIGVhY2ggcHJvcGVy dHkuCkhlcmUgSSBtYWRlIHRoZSBkZWNpc2lvbiB0byBzcGxpdCBldmVyeSBwcm90b2NvbCBpbnRv IGl0cyBvd24gdGVtcGxhdGUgZmlsZS4KVGhlc2UgdGVtcGxhdGUgZmlsZXMgdGhlbiBpbXBvcnQg c29tZSBjb21tb24gc3RydWN0cywgc3VjaCBhcyB0aGUgaW50ZXJmYWNlcyBhbmQKcm91dGUtbWFw cywgd2hpY2ggYXJlIHVzZWQgaW4gZXZlcnkgcHJvdG9jb2wuIFRvIGFjY29tbW9kYXRlIGZvciB0 aGlzLCBJIGFsc28gaGFkCnRvIGNoYW5nZSB0aGUgc3RydWN0dXJlIG9mIHRoZSBGcnJDb25maWc6 ClNvIHdlIG5vIGxvbmdlciBoYXZlOgoKY29uZmlnLwrilJzilIAgaW50ZXJmYWNlcy8K4pSCICDi lJzilIAgb3BlbmZhYnJpYwrilIIgIOKUnOKUgCBvc3BmCuKUnOKUgCByb3V0ZXJzLwrilIIgIOKU nOKUgCBvcGVuZmFicmljCuKUgiAg4pSc4pSAIG9zcGYKCmJ1dDoKCmNvbmZpZy8K4pSc4pSAIG9w ZW5mYWJyaWMvCuKUgiAg4pSc4pSAIGludGVyZmFjZXMK4pSCICDilJzilIAgcm91dGVycwrilJzi lIAgb3NwZi8K4pSCICDilJzilIAgaW50ZXJmYWNlcwrilIIgIOKUnOKUgCByb3V0ZXJzCgpXaGlj aCBwbGF5cyBtdWNoIG5pY2VyIHdpdGggdGhlIHRlbXBsYXRlcywgYW5kIElNTyBzdGlsbCBtYWtl cyBzZW5zZSBsb2dpY2FsbHkuCgpJIHVzZWQgbWluaWppbmphIGZvciB0aGlzIHNlcmllcywgYXMg dGhhdCBzZWVtcyB0byBiZSB0aGUgbW9zdCB1c2VkIHRlbXBsYXRlCmVuZ2luZSBpbiB0aGUgcnVz dCBlY29zeXN0ZW0sIGV2ZW4gdGhvdWdoIHdlIG1vc3RseSBzZWVtIHRvIHVzZSBoYW5kbGViYXJz LiBJCmRpc2N1c3NlZCB0aGlzIHdlIEx1a2FzIGFuZCBUaG9tYXMsIGFuZCB3ZSdsbCBkZWNpZGUg aW4gdGhlIG5leHQgZmV3IHdlZWtzIGlmCnRoaXMgaXMgZmluZSwgb3IgaXQncyBiZXR0ZXIgaWYg d2UgdXNlIHRoZSBzYW1lIHRlbXBsYXRpbmcgZW5naW5lCmV2ZXJ5d2hlcmUuCgpUaGUgY3VycmVu dCBmcnIuY29uZi5sb2NhbCBpcyBxdWl0ZSBicm9rZW4sIHNvIGluIG9yZGVyIHRvIGludHJvZHVj ZSBhIG5ldyBhbmQKKGEgYml0KSBzYW5lciBvcHRpb24gdG8gd3JpdGUgY3VzdG9tIGZyciBjb25m aWcsIGFkZCBhIGRpcmVjdG9yeSB3aGVyZSB0aGUgdXNlcgpjYW4gc3BlY2lmaWMgY3VzdG9tIHRl bXBsYXRlIGZpbGVzIHRvIGN1c3RvbWl6ZSB0aGUgZnJyIGNvbmZpZyBnZW5lcmF0ZWQgYnkgdGhl CnNkbiBzdGFjay4gSGF2aW5nIGEgdGVtcGxhdGluZyBlbmdpbmUgaXMgdmVyeSBwb3dlcmZ1bCBo ZXJlLCBhcyB0aGUgdXNlciBjb3VsZAp3cml0ZSBzb21ldGhpbmcgbGlrZSB0aGlzOgoKICAgIGlu dGVyZmFjZSB7eyBpbnRlcmZhY2VfbmFtZSB9fQogICAgeyUgaWYgaW50ZXJmYWNlX25hbWUgPT0g ImVuczE5IiAlfQogICAgIGlwIG5ldHdvcmsgcG9pbnQtdG8tcG9pbnQKICAgIHslIGVuZGlmICV9 CgpPYnZpb3VzbHkgaWYgeW91IGRvbid0IGtub3cgd2hhdCB5b3UncmUgZG9pbmcsIHlvdSBjYW4g YnJlYWsgZXZlcnl0aGluZywgc28gSSdkCndvdWxkbid0IGFkdmVydGlzZSB0aGlzIGZlYXR1cmUg dG9vIG11Y2ggOikKClRoZSBwdmUtbmV0d29yayBwYXRjaGVzIGFyZSBvbmx5IGhlcmUgdG8gbWFr ZSB0aGUgZ2VuZXJhdGVkIGZyciBjb25maWcgbmljZXIKKHJlbW92aW5nIGR1cGxpY2F0ZWQgIiEi IGNvbW1lbnRzKSBhbmQgZml4aW5nL2ltcHJvdmluZyB0aGUgdGVzdHMuCgp2ZS1yczoKCkdhYnJp ZWwgR29sbGVyICg0KToKICBmcnI6IGFkZCB0ZW1wbGF0ZXMgYW5kIHN0cnVjdHMgdG8gcmVwcmVz ZW50IHRoZSBmcnIgY29uZmlnCiAgc2RuLXR5cGVzOiBmb3J3YXJkIHNlcmlhbGl6ZSB0byBkaXNw bGF5IGZvciBORVQKICB2ZS1jb25maWc6IGZhYnJpY3M6IHVzZSBuZXcgcHJveG1veC1mcnIgc3Ry dWN0cyB0byBnZW5lcmF0ZSBmcnIgY29uZmlnCiAgdGVzdHM6IGFsd2F5cyBwcmVwZW5kIHRoZSBm cnIgZGVsaW1pdGVyL2NvbW1lbnQgIiEiIHRvIHRoZSBibG9jawoKIHByb3htb3gtZnJyL0Nhcmdv LnRvbWwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBwcm94bW94LWZyci9kZWJpYW4v Y29udHJvbCAgICAgICAgICAgICAgICAgICAgfCAgMTQgKwogcHJveG1veC1mcnIvZXhhbXBsZXMv cm91dGVfbWFwLnJzICAgICAgICAgICAgIHwgIDcwICsrKysrCiBwcm94bW94LWZyci9zcmMvbGli LnJzICAgICAgICAgICAgICAgICAgICAgICAgfCAxNjYgKysrKy0tLS0tLS0tCiBwcm94bW94LWZy ci9zcmMvb3BlbmZhYnJpYy5ycyAgICAgICAgICAgICAgICAgfCAgMTUgKy0KIHByb3htb3gtZnJy L3NyYy9vc3BmLnJzICAgICAgICAgICAgICAgICAgICAgICB8ICAzNyArLS0KIHByb3htb3gtZnJy L3NyYy9yb3V0ZV9tYXAucnMgICAgICAgICAgICAgICAgICB8IDEwOCArKy0tLS0tLQogcHJveG1v eC1mcnIvc3JjL3NlcmlhbGl6ZXIucnMgICAgICAgICAgICAgICAgIHwgMjU2ICsrKysrLS0tLS0t LS0tLS0tLQogcHJveG1veC1mcnIvdGVtcGxhdGVzL2FjY2Vzc19saXN0LmppbmphICAgICAgIHwg ICA2ICsKIHByb3htb3gtZnJyL3RlbXBsYXRlcy9mYWJyaWNkLmppbmphICAgICAgICAgICB8ICAz NiArKysKIHByb3htb3gtZnJyL3RlbXBsYXRlcy9pbnRlcmZhY2UuamluamEgICAgICAgICB8ICAg NCArCiBwcm94bW94LWZyci90ZW1wbGF0ZXMvb3NwZmQuamluamEgICAgICAgICAgICAgfCAgMjcg KysKIHByb3htb3gtZnJyL3RlbXBsYXRlcy9yb3V0ZV9tYXAuamluamEgICAgICAgICB8ICAxMSAr CiBwcm94bW94LXNkbi10eXBlcy9zcmMvbmV0LnJzICAgICAgICAgICAgICAgICAgfCAgIDQgKy0K IHByb3htb3gtdmUtY29uZmlnL3NyYy9zZG4vZmFicmljL2Zyci5ycyAgICAgICB8IDE0NSArKysr Ky0tLS0tCiBwcm94bW94LXZlLWNvbmZpZy9zcmMvc2RuL2Zyci5ycyAgICAgICAgICAgICAgfCAg MTEgKy0KIC4uLi9mYWJyaWNfX29wZW5mYWJyaWNfZGVmYXVsdF9wdmUuc25hcCAgICAgICB8ICAg MiArLQogLi4uL2ZhYnJpY19fb3BlbmZhYnJpY19kZWZhdWx0X3B2ZTEuc25hcCAgICAgIHwgICAy ICstCiAuLi4vZmFicmljX19vcGVuZmFicmljX2R1YWxzdGFja19wdmUuc25hcCAgICAgfCAgIDgg Ky0KIC4uLi9mYWJyaWNfX29wZW5mYWJyaWNfaXB2Nl9vbmx5X3B2ZS5zbmFwICAgICB8ICAgMiAr LQogLi4uL2ZhYnJpY19fb3BlbmZhYnJpY19tdWx0aV9mYWJyaWNfcHZlMS5zbmFwIHwgICAyICst CiAuLi4vc25hcHNob3RzL2ZhYnJpY19fb3NwZl9kZWZhdWx0X3B2ZS5zbmFwICAgfCAgIDIgKy0K IC4uLi9zbmFwc2hvdHMvZmFicmljX19vc3BmX2RlZmF1bHRfcHZlMS5zbmFwICB8ICAgMiArLQog Li4uL2ZhYnJpY19fb3NwZl9tdWx0aV9mYWJyaWNfcHZlMS5zbmFwICAgICAgIHwgICAyICstCiAy NCBmaWxlcyBjaGFuZ2VkLCA0MjYgaW5zZXJ0aW9ucygrKSwgNTEwIGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHByb3htb3gtZnJyL2V4YW1wbGVzL3JvdXRlX21hcC5ycwogY3JlYXRl IG1vZGUgMTAwNjQ0IHByb3htb3gtZnJyL3RlbXBsYXRlcy9hY2Nlc3NfbGlzdC5qaW5qYQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHByb3htb3gtZnJyL3RlbXBsYXRlcy9mYWJyaWNkLmppbmphCiBjcmVh dGUgbW9kZSAxMDA2NDQgcHJveG1veC1mcnIvdGVtcGxhdGVzL2ludGVyZmFjZS5qaW5qYQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHByb3htb3gtZnJyL3RlbXBsYXRlcy9vc3BmZC5qaW5qYQogY3JlYXRl IG1vZGUgMTAwNjQ0IHByb3htb3gtZnJyL3RlbXBsYXRlcy9yb3V0ZV9tYXAuamluamEKCgpuZXR3 b3JrOgoKR2FicmllbCBHb2xsZXIgKDQpOgogIHNkbjogcmVtb3ZlIGR1cGxpY2F0ZSBjb21tZW50 IGxpbmUgJyEnIGluIGZyciBjb25maWcKICBzZG46IGFkZCB0cmFpbGluZyBuZXdsaW5lIGluIGZy ciBjb25maWcKICBzZG46IHRlc3RzOiBhZGQgbWlzc2luZyBjb21tZW50ICchJyBpbiBmcnIgY29u ZmlnCiAgdGVzdHM6IHVzZSBUZXN0OjpEaWZmZXJlbmNlcyB0byBtYWtlIHRlc3QgYXNzZXJ0aW9u cwoKIGRlYmlhbi9jb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsK IHNyYy9QVkUvTmV0d29yay9TRE4vRnJyLnBtICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBz cmMvdGVzdC9ydW5fdGVzdF9kbnMucGwgICAgICAgICAgICAgICAgICAgICAgfCAxNSArKysrLS0t LS0KIHNyYy90ZXN0L3J1bl90ZXN0X2lwYW1zLnBsICAgICAgICAgICAgICAgICAgICB8IDEzICsr KystLS0tCiBzcmMvdGVzdC9ydW5fdGVzdF9zdWJuZXRzLnBsICAgICAgICAgICAgICAgICAgfCAz MSArKysrKysrKysrLS0tLS0tLS0tCiBzcmMvdGVzdC9ydW5fdGVzdF92bmV0c19ibGFja2JveC5w bCAgICAgICAgICAgfCAxNyArKysrKy0tLS0tCiBzcmMvdGVzdC9ydW5fdGVzdF96b25lcy5wbCAg ICAgICAgICAgICAgICAgICAgfCAgNSArLS0KIC4uLi9leHBlY3RlZF9jb250cm9sbGVyX2NvbmZp ZyAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vZXhwZWN0ZWRfY29udHJvbGxlcl9jb25maWcg ICAgICAgICAgICAgICAgfCAgMyArLQogLi4uL2V2cG4vZWJncC9leHBlY3RlZF9jb250cm9sbGVy X2NvbmZpZyAgICAgIHwgIDMgKy0KIC4uLi9lYmdwX2xvb3BiYWNrL2V4cGVjdGVkX2NvbnRyb2xs ZXJfY29uZmlnICB8ICAzICstCiAuLi4vZXZwbi9leGl0bm9kZS9leHBlY3RlZF9jb250cm9sbGVy X2NvbmZpZyAgfCAgMyArLQogLi4uL2V4cGVjdGVkX2NvbnRyb2xsZXJfY29uZmlnICAgICAgICAg ICAgICAgIHwgIDMgKy0KIC4uLi9leHBlY3RlZF9jb250cm9sbGVyX2NvbmZpZyAgICAgICAgICAg ICAgICB8ICAzICstCiAuLi4vZXhpdG5vZGVfc25hdC9leHBlY3RlZF9jb250cm9sbGVyX2NvbmZp ZyAgfCAgMyArLQogLi4uL2V4cGVjdGVkX2NvbnRyb2xsZXJfY29uZmlnICAgICAgICAgICAgICAg IHwgIDMgKy0KIC4uLi9ldnBuL2lwdjQvZXhwZWN0ZWRfY29udHJvbGxlcl9jb25maWcgICAgICB8 ICAzICstCiAuLi4vZXZwbi9pcHY0aXB2Ni9leHBlY3RlZF9jb250cm9sbGVyX2NvbmZpZyAgfCAg MyArLQogLi4uL2V4cGVjdGVkX2NvbnRyb2xsZXJfY29uZmlnICAgICAgICAgICAgICAgIHwgIDMg Ky0KIC4uLi9ldnBuL2lwdjYvZXhwZWN0ZWRfY29udHJvbGxlcl9jb25maWcgICAgICB8ICAzICst CiAuLi4vaXB2NnVuZGVybGF5L2V4cGVjdGVkX2NvbnRyb2xsZXJfY29uZmlnICAgfCAgMyArLQog Li4uL2V2cG4vaXNpcy9leHBlY3RlZF9jb250cm9sbGVyX2NvbmZpZyAgICAgIHwgIDMgKy0KIC4u Li9pc2lzX2xvb3BiYWNrL2V4cGVjdGVkX2NvbnRyb2xsZXJfY29uZmlnICB8ICAzICstCiAuLi4v ZXhwZWN0ZWRfY29udHJvbGxlcl9jb25maWcgICAgICAgICAgICAgICAgfCAgMyArLQogLi4uL2V4 cGVjdGVkX2NvbnRyb2xsZXJfY29uZmlnICAgICAgICAgICAgICAgIHwgIDMgKy0KIC4uLi9tdWx0 aXBsZXpvbmVzL2V4cGVjdGVkX2NvbnRyb2xsZXJfY29uZmlnICB8ICAzICstCiAuLi4vZXhwZWN0 ZWRfY29udHJvbGxlcl9jb25maWcgICAgICAgICAgICAgICAgfCAgNSArKy0KIC4uLi9vc3BmX2Zh YnJpYy9leHBlY3RlZF9jb250cm9sbGVyX2NvbmZpZyAgICB8ICA1ICsrLQogLi4uL2V2cG4vcnRf aW1wb3J0L2V4cGVjdGVkX2NvbnRyb2xsZXJfY29uZmlnIHwgIDMgKy0KIC4uLi9ldnBuL3Z4bGFu cG9ydC9leHBlY3RlZF9jb250cm9sbGVyX2NvbmZpZyB8ICAzICstCiAzMCBmaWxlcyBjaGFuZ2Vk LCA3MCBpbnNlcnRpb25zKCspLCA4OCBkZWxldGlvbnMoLSkKCgpTdW1tYXJ5IG92ZXIgYWxsIHJl cG9zaXRvcmllczoKICA1NCBmaWxlcyBjaGFuZ2VkLCA0OTYgaW5zZXJ0aW9ucygrKSwgNTk4IGRl bGV0aW9ucygtKQoKLS0gCkdlbmVyYXRlZCBieSBnaXQtbXVycHAgMC44LjAKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBs aXN0CnB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29t L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK