From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 68FA1C35FFF for ; Fri, 21 Mar 2025 07:59:51 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvXHt-0001jG-ES; Fri, 21 Mar 2025 03:59:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tvXHs-0001iq-96 for grub-devel@gnu.org; Fri, 21 Mar 2025 03:59:28 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tvXHo-0003Nm-R3 for grub-devel@gnu.org; Fri, 21 Mar 2025 03:59:27 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-3965c995151so841820f8f.1 for ; Fri, 21 Mar 2025 00:59:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1742543962; x=1743148762; darn=gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=rJ88vkI+WkQMPW/8c4UVXwx0D59NV1GUJ1IN8hUm3PA=; b=dgTHvIHT6RHJraSQK6SPSViEJf0In/iog6sVqmNEXki9iBx/1QNnn4mIr/essKRb0u ONnBsHz87g7M8kjkcvpKzSrMsCpYe7YsotowE/Y+6HyqTYg47nn109Z+JtXg5/h8RfG4 kMtDOMQhhYsdePsA0DXb2r5k7EAUNpuamJ3JZCEmnMVNwzH7iWKd86onpfUip1p1stjB YcQ8s/aJUT/32zBsUZ8VQUYsMmRfgkQg/Bkonb5TTXZ7tNp9XpMnKfoK59AUwkWNqGLs 7IB3e5Dv6Y2rqMtErgrLrCWwq+8o0VsVhXqmVTVjRqqMHLC1FKWlG6TQpPSKlmhmcpOS gqUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742543962; x=1743148762; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=rJ88vkI+WkQMPW/8c4UVXwx0D59NV1GUJ1IN8hUm3PA=; b=GzL+3VaVTG3bFjxJnKYronCLpy6ljj1vUfBOJBySbDuPs4Ldv9mAWs54rwIaM+DWW5 /CJt5EgTEDwYOQ5KMoVXAnaxIkSn6b16erWsp12V4n3UMMw5oE8vLzH5h7yPHVBbOTw4 J1ynCWPhA+DC4CSphpcLa1nQjEVU2i1Lg1DodWEZzHe54g6ABxmNpMo7HYnePNDNa1Hc LLf7bKt1437tKMg2RzAGN1Vd0EP4LLC/ORypa8s+uFw4mBhVowb36gbx4yQW3n7XP7yJ ksvUQr5O8Ig6LNmpfnWDmgZa6B+9WwryGSegWTjrDt4B38Vm2Cl0aSrB1ATeLZdVATbE iRYg== X-Gm-Message-State: AOJu0YyL1o/u7Fgd1wG81XvivquvBSPTryLGqhI8IeIbwJ38NwlHSzk7 pjo5gUWBABfg4ahO10NoDIMsEAJxXqhmO2qFYqign5jEeX5Cr4EHtjH7OZtyxJohFWIwnDzmGdn t X-Gm-Gg: ASbGncvMxcQl5mbK7eVe6HBAh3hw6MMyEMRBU5Z3tGtmZA8PX7rx1xp6x7tGaBqWjDf cNGly+pR/ADtM5OHBziXKJ8Sd9vlAifSCidqQ+cDUYGGgDuZtCbq6htH9aN2zzdFOKY8NQaTrtO 8O0+AWbl3eLQC2Mw9skw9H8mv0yxChxMVmKWa485n5ZvObPGqMpix3QHcBxZcLPMK5o8O4oSyf0 PhXUSIdv9ie5QHMhLzGVQ8OQRrpK60xCGodxJzP2S4HA2G0E1jxzcxSus8QdWlfuOyfwD5nFLdN 2WCc8sPJtNtgOhJP1pPjPhwRsCssulNgCFShnoGuP7LEqpYcactWPK3ZaejaeDz4QW5LM8gp/2c = X-Google-Smtp-Source: AGHT+IFz9hMzAFkuMapzjKOyIGYTJzlHfNeQEG8yE1O0LSdWAo1LdtCDb4wzagCM7cKeGcldzlxcOw== X-Received: by 2002:a5d:6c6e:0:b0:391:2a9a:478c with SMTP id ffacd0b85a97d-3997f90a7d3mr2057859f8f.23.1742543961612; Fri, 21 Mar 2025 00:59:21 -0700 (PDT) Received: from localhost (111-240-129-118.dynamic-ip.hinet.net. [111.240.129.118]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-227811f1423sm10322175ad.221.2025.03.21.00.59.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 00:59:21 -0700 (PDT) To: The development of GNU GRUB Subject: [PATCH v4 00/12] TPM2 key protector follow-up patches Date: Fri, 21 Mar 2025 15:58:56 +0800 Message-ID: <20250321075908.10523-1-glin@suse.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42d; envelope-from=glin@suse.com; helo=mail-wr1-x42d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Gary Lin via Grub-devel Reply-To: The development of GNU GRUB Cc: Gary Lin , Daniel Kiper , mchang@suse.com, patrick.colp@oracle.com, Stefan Berger , jejb@linux.ibm.com, Glenn Washburn Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Z2l0OiBodHRwczovL2dpdGh1Yi5jb20vbGNwL2dydWIyL3RyZWUvdHBtMi1mb2xsb3ctdXAtdjQK ClRoaXMgcGF0Y2hzZXQgaXMgdGhlIGNvbGxlY3Rpb24gb2Ygc2V2ZXJhbCBlbmhhbmNlbWVudHMg Zm9yIFRQTTIga2V5CnByb3RlY3Rvci4KCiogUGF0Y2ggMSBpbnRyb2R1Y2VzIHRoZSBQQ1IgZHVt cCB0byBoZWxwIGRlYnVnZ2luZyBwb2xpY3kgZmFpbC4KKiBQYXRjaCAyIGFkZHMgdGhlIG5ldyBj b21tYW5kIHRvIGR1bXAgUENScyBpbiBHUlVCIHNoZWxsIGFuZCB0aGUKKiBkb2N1bWVudGF0aW9u IG9mIHRoZSBjb21tYW5kLgoqIFBhdGNoIDMgZml4ZXMgYSBtaW5vciBpc3N1ZSBpbiB0c3MyLgoq IFBhdGNoIDR+NyBleHRlbmQgdGhlIE5WIGluZGV4IG1vZGUgdG8gc3VwcG9ydCAnTlYgaW5kZXgn IGhhbmRsZXMKICBhbmQgVFBNIDIuMCBLZXkgRmlsZSBmb3JtYXQuCiAgLSBUaGFua3MgdG8gSmFt ZXMgQm90dG9tbGV5IGZvciBob3cgdG8gZGV0ZWN0IFRQTSAyLjAgS2V5IEZpbGUgZm9ybWF0Lgog ICAgaHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9ncnViLWRldmVsLzIwMjQtMTEv bXNnMDAwNzguaHRtbAoqIFBhdGNoIDh+MTEgdXBkYXRlIHRoZSB0ZXN0IGNhc2VzIGFuZCB0aGUg ZG9jdW1lbnRhdGlvbiBmb3IgTlYgaW5kZXgKICBtb2RlLgoqIFBhdGNoIDEyIGRvY3VtZW50cyB0 aGUgZXh0ZXJuYWwgcGFja2FnZXMgbmVlZGVkIGZvciBUUE0yIGtleSBwcm90ZWN0b3IKICB0ZXN0 cy4KCnY0OgotIFVwZGF0aW5nIHRoZSBjb21taXQgbWVzc2FnZXMgYW5kIHRoZSBkb2N1bWVudGF0 aW9uCi0gTWVyZ2luZyB0aGUgdHBtMl9kdW1wX3BjciBkb2N1bWVudGF0aW9uIHBhdGNoCi0gU3Bs aXR0aW5nIHRoZSB0ZXN0Y2FzZSBwYXRjaCBpbnRvIDMgc21hbGxlciBwYXRjaGVzCi0gRG9jdW1l bnRpbmcgdGhlIGV4dGVybiBwYWNrYWdlcyBuZWVkZWQgZm9yIFRQTTIga2V5IHByb3RlY3RvciB0 ZXN0cwoKdjM6Ci0gQW1lbmRpbmcgdGhlIGZ1bmN0aW9uIG5hbWVzIHRvIG1ha2UgdGhlbSBtb3Jl IGNvbXByZWhlbnNpdmUKLSBGaXhpbmcgYSBmZXcgbW9yZSB0eXBvcyBhbmQgdGhlIGluZGVudGF0 aW9ucyAKLSBJbXByb3ZpbmcgdGhlIGRvY3VtZW50Cgp2MjoKLSBBbWVuZGluZyB0aGUgY29tbWl0 IG1lc3NhZ2VzIGFuZCB0aGUgZXJyb3IgbWVzc2FnZXMKLSBGaXhpbmcgdGhlIHJldHVybiB2YWx1 ZXMgYW5kIHRoZSBjaGVja3MgZm9yICdib29sJwotIFJlbW92aW5nICdwb2xpY3l3cml0ZScgd2hl biBkZWZpbmluZyB0aGUgTlYgaW5kZXggaGFuZGxlCi0gRml4aW5nIHRoZSB0eXBvIGFuZCB0aGUg c3RyYXkgd2hpdGVzcGFjZQotIFJlbW92aW5nIGdydWJfdHBtMl9mbHVzaGNvbnRleHQoKSBmcm9t IHRoZSBmdW5jdGlvbnMgdG8gcmVtb3ZlCiAgdGhlIHBlcnNpc3RlbnQgaGFuZGxlIGFuZCB0aGUg TlYgaW5kZXggaGFuZGxlCi0gQXZvaWRpbmcgb25lIGZhaWx1cmUgdGVzdCBjYXNlIHRvIHN0b3Ag dGhlIHdob2xlIHRlc3QKLSBJbXByb3ZpbmcgdGhlIGRvY3VtZW50IAoKR2FyeSBMaW4gKDEyKToK ICB0cG0yX2tleV9wcm90ZWN0b3I6IGR1bXAgUENScyBvbiBwb2xpY3kgZmFpbAogIHRwbTJfa2V5 X3Byb3RlY3RvcjogQWRkICd0cG0yX2R1bXBfcGNyJyBjb21tYW5kCiAgdHNzMjogRml4IHRoZSBt aXNzaW5nIGF1dGhDb21tYW5kCiAgdHNzMjogQWRkIFRQTSAyLjAgTlYgaW5kZXggY29tbWFuZHMK ICB0cG0yX2tleV9wcm90ZWN0b3I6IFVuc2VhbCBrZXkgZnJvbSBhIGJ1ZmZlcgogIHRwbTJfa2V5 X3Byb3RlY3RvcjogU3VwcG9ydCBOViBpbmRleCBoYW5kbGVzCiAgdXRpbC9ncnViLXByb3RlY3Q6 IFN1cHBvcnQgTlYgaW5kZXggbW9kZQogIHRlc3RzL3RwbTJfa2V5X3Byb3RlY3Rvcl90ZXN0OiBT aW1wbGlmeSB0aGUgTlYgaW5kZXggbW9kZSB0ZXN0CiAgdGVzdHMvdHBtMl9rZXlfcHJvdGVjdG9y X3Rlc3Q6IFJlc2V0ICdyZXQnIG9uIGZhaWwKICB0ZXN0cy90cG0yX2tleV9wcm90ZWN0b3JfdGVz dDogQWRkIG1vcmUgTlYgaW5kZXggbW9kZSB0ZXN0cwogIGRvY3M6IFVwZGF0ZSBOViBpbmRleCBt b2RlIG9mIFRQTTIga2V5IHByb3RlY3RvcgogIElOU1RBTEw6IERvY3VtZW50IHRoZSBwYWNrYWdl cyBuZWVkZWQgZm9yIFRQTTIga2V5IHByb3RlY3RvciB0ZXN0cwoKIElOU1RBTEwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBkb2NzL2dydWIudGV4aSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMTQgKysrKysrKysrLS0KIC4uLi9jb21tYW5k cy90cG0yX2tleV9wcm90ZWN0b3IvbW9kdWxlLmMgICAgICB8IDM0NSArKysrKysrKysrKysrKyst LS0KIGdydWItY29yZS9saWIvdHNzMi90cG0yX2NtZC5jICAgICAgICAgICAgICAgICB8IDIxMSAr KysrKysrKysrLQogZ3J1Yi1jb3JlL2xpYi90c3MyL3RwbTJfY21kLmggICAgICAgICAgICAgICAg IHwgIDMyICsrCiBncnViLWNvcmUvbGliL3RzczIvdHNzMl9tdS5jICAgICAgICAgICAgICAgICAg fCAgMzkgKysKIGdydWItY29yZS9saWIvdHNzMi90c3MyX211LmggICAgICAgICAgICAgICAgICB8 ICAxMiArCiBncnViLWNvcmUvbGliL3RzczIvdHNzMl90eXBlcy5oICAgICAgICAgICAgICAgfCAg IDYgKwogdGVzdHMvdHBtMl9rZXlfcHJvdGVjdG9yX3Rlc3QuaW4gICAgICAgICAgICAgIHwgMTU1 ICsrKy0tLS0tCiB1dGlsL2dydWItcHJvdGVjdC5jICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAzNDMgKysrKysrKysrKysrKystLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDExMjAgaW5zZXJ0aW9u cygrKSwgMjM4IGRlbGV0aW9ucygtKQoKUmFuZ2UtZGlmZiBhZ2FpbnN0IHYzOgogMTogIGNmMmJl MWM2NiAhICAxOiAgYmJkNTM0ZjZiIHRwbTJfa2V5X3Byb3RlY3RvcjogZHVtcCBQQ1JzIG9uIHBv bGljeSBmYWlsCiAgICBAQCBDb21taXQgbWVzc2FnZQogICAgIAogICAgICAgICBUaGUgc2FtcGxl IG91dHB1dDoKICAgICAKICAgIC0gICAgUENSIE1pc21hdGNoaW5nISBDaGVjayBmaXJtd2FyZSBh bmQgYm9vdGxvYWRlciBiZWZvcmUgdHlwaW5nIHBhc3NwaHJhc2UhCiAgICArICAgIFBDUiBNaXNt YXRjaCEgQ2hlY2sgZmlybXdhcmUgYW5kIGJvb3Rsb2FkZXIgYmVmb3JlIHR5cGluZyBwYXNzcGhy YXNlIQogICAgICAgICBUUE0gUENSIFtzaGEyNTZdOgogICAgLSAgICAgIDAwOiAxMTVjODliZmEw ZTU5ZTA1MGNkYTVkMjY2NDAzMWQyMjUzMDVmMzU4MmNmMGMyYWZjYjdjMWYxYWMyYTdjZjhkCiAg ICAtICAgICAgMDE6IDA3OWIzZWFkY2EyNWUxMDI0OGRhZWE0YjFkNTA4ZTVjZmI3MDNkYjI4Mzg2 YmU4MDlhMGIzNzVjMGEwYTgwYTUKICAgIC0gICAgICAwMjogMmNkOGVjM2RlNmEwN2UxZmQzOTY3 NjEwMGRiNTdiYTYyMzcyZTgyMGMxOTgxMmZlZTU1ODk5ZjY1NzQ2ZTE5MgogICAgLSAgICAgIDAz OiA5NDIzYjU4NWQ0ZWFjMDVjOTdhMGMwNmJjYTg4OThhZDBjYTUxOWE2YjgxMGRjYjkxMTI5YmNk YzEwZjRiMTEyCiAgICAtICAgICAgMDQ6IGZhMzZiZjVjOTExMGQzODkxZjA0MGUyMTQ2ZDE1NzQ4 NGNkNDExMjNmYThmYWY0YmM2YjkxZGIzZDEyYjcwY2EKICAgIC0gICAgICAwNTogMTNlOWVhOWUz OGU1MjU4ZTZlZTJiNmFlOTRhM2NlY2UwMTM3NDkwZWY5NWM2NWNhYWFjMTBjZGY1ZTFiYzQwZAog ICAgLSAgICAgIDA2OiAzYWMxMGQ3NDkwNTRhODE4ODA2Nzg4ZjRlNGVhYTJmYjRkZDdkMTNjZTBl OTlkYzE3NTE0NWI2M2MzNGJiNzFjCiAgICAtICAgICAgMDc6IGE2NjU3YTYwZjc3OTI4Y2FkNjE0 YTdhZDE1M2FiOWFlMGJlZDQ4ZTMzYjcwMzQ4YWUxMWEyNjc2MjAwMmIzYmMKICAgIC0gICAgICAw ODogNDJlMDRmNWJhYzE5NjU1MzVjYjZiZGIzMGM2MmJiMTk5YjFiYTIxZDFlYzZiMjJkMGRhMTU5 ZGZjOTI1YjhiYgogICAgLSAgICAgIDA5OiA1YzgzZThiZTc5ZDRhNDMyZTZkNDA5NjEwZGUzODll ZTZmMWFjMGMxOTNmMzhkODRhOWZmOTRmMzYwYmQ0NThiCiAgICArICAgICAgMDA6IDE3NDAxZjM3 NzEwOTg0YzFkOGEwM2E4MWZmZjNhYjU2N2FlOTI5MWJhYzYxZTIxNzE1Yjg5MGVlMjg4Nzk3MzgK ICAgICsgICAgICAwMTogN2ExMTQzMjliYTM4ODQ0NWE5NmU4ZGIyYTA3Mjc4NTkzN2MxYjdhODgw M2VkN2NjNjgyYjg3ZjNmZjNkZDdhOAogICAgKyAgICAgIDAyOiAxMWMyNzc2ODQ5ZThlMjRiN2Q4 MGM5MjZjYmM0MjU3ODcxYmZmYTc0NGRhZGZlZmQzZWQwNDljZTI1MTQzZTA1CiAgICArICAgICAg MDM6IDZjMzNiMzYyMDczZTI4ZTMwYjQ3MzAyYmJkZDNlNmY5Y2VlNGRlYmNhM2EzMDRlNjQ2Zjhj NjgyNDU3MjQzNTAKICAgICsgICAgICAwNDogNjJkMzg4Mzg0ODNlY2ZkMjQ4NGVlM2EyZTU0NTBk OGNhM2IzNWZjNzJjZGE2YThjNjIwZjlmNDM1MjFjMzdkMQogICAgKyAgICAgIDA1OiBkOGE4NWNi MzcyMjFhYjdkMWYyY2M1ZjU1NGRiZTA0NjNhY2I2Nzg0YjViOGRjMzE2NGNjYWE2NmQ4ZmZmMGUx CiAgICArICAgICAgMDY6IDkyNjJlMzdjYmU3MWVkNGRhZjgxNWI0YTQ4ODFmYjcyNTFjOWQzNzEw OTJkZGU4Mjc1NTdkNTM2ODEyMWUxMGUKICAgICsgICAgICAwNzogMjE5ZDU0MjIzM2JlNDkyZDYy YjA3OWZmZTQ2Y2YxMzM5NmE4YzI3ZTUyMGU4OGIwOGVhZjJlNmQzYjdlNzBmNQogICAgKyAgICAg IDA4OiBkZTFmNjFjOTczYjY3M2U1MDVhZGViZTBkN2U4ZmI2NWZkZTZjMjRkZDRhYjRmYmFmZjll MjhiMThkZjZlY2QzCiAgICArICAgICAgMDk6IGMxZGU3Mjc0ZmEzZTg3OWExNmQ3ZTZlNzYyOWUz NDYzZDk1ZjY4YWRjZmQxN2M0NzcxODM4NDZkY2NjNDFjODkKICAgICAgICAgICAxMDogMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MAogICAgICAgICAgIDExOiAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgICAgICAgICAgMTI6IDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKICAgICAgICAg ICAxMzogMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMAogICAgLSAgICAgIDE0OiA4OTRkZDhlNGNhMWJiNjJlMDU1ZjY3NGY5Mzkw YTM5YzQ2NDNlYmRkMTAxNDcwMmZlZWYwMDBjNDdlMzZhMDAzCiAgICArICAgICAgMTQ6IDlhYjll YmU0ODc5YTdmNGRkMDBjMDRmMzdlNzljZmQ2OWQwZGQ3YThiY2M2YjAxMTM1NTI1YjY3Njc2YTNl NDAKICAgICAgICAgICAxNTogMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAogICAgICAgICAgIDE2OiAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgICAgICAg ICAgMTc6IGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmYKICAgIEBAIENvbW1pdCBtZXNzYWdlCiAgICAgCiAgICAgICAgIFNpZ25l ZC1vZmYtYnk6IEdhcnkgTGluIDxnbGluQHN1c2UuY29tPgogICAgICAgICBSZXZpZXdlZC1ieTog U3RlZmFuIEJlcmdlciA8c3RlZmFuYkBsaW51eC5pYm0uY29tPgogICAgKyAgICBSZXZpZXdlZC1i eTogRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJAb3JhY2xlLmNvbT4KICAgICAKICAgICAgIyMg Z3J1Yi1jb3JlL2NvbW1hbmRzL3RwbTJfa2V5X3Byb3RlY3Rvci9tb2R1bGUuYyAjIwogICAgIEBA IGdydWItY29yZS9jb21tYW5kcy90cG0yX2tleV9wcm90ZWN0b3IvbW9kdWxlLmM6IHRwbTJfcHJv dGVjdG9yX3NpbXBsZV9wb2xpY3lfc2VxIChjb25zdCB0cG0yX3Byb3RlY3Rvcl9jb250ZXh0X3Qg KmN0eCwKIDI6ICAwNTIwODlhODQgISAgMjogIGEwYzk0OWJhOCB0cG0yX2tleV9wcm90ZWN0b3I6 IEFkZCAndHBtMl9kdW1wX3BjcicgY29tbWFuZAogICAgQEAgQ29tbWl0IG1lc3NhZ2UKICAgICAg ICAgc28gdGhlIG5ldyAndHBtMl9kdW1wX3BjcicgY29tbWFuZCBpcyBhZGRlZCB0byBwcmludCBh bGwgUENScyBvZiB0aGUKICAgICAgICAgc3BlY2lmaWVkIGJhbmsuCiAgICAgCiAgICArICAgIEFs c28gdXBkYXRlIHRoZSBkb2N1bWVudCBmb3IgdGhlIG5ldyBjb21tYW5kLgogICAgKwogICAgICAg ICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IExpbiA8Z2xpbkBzdXNlLmNvbT4KICAgICAgICAgVGVzdGVk LWJ5OiBTdGVmYW4gQmVyZ2VyIDxzdGVmYW5iQGxpbnV4LmlibS5jb20+CiAgICArICAgIFJldmll d2VkLWJ5OiBEYW5pZWwgS2lwZXIgPGRhbmllbC5raXBlckBvcmFjbGUuY29tPgogICAgKwogICAg KyAjIyBkb2NzL2dydWIudGV4aSAjIwogICAgK0BAIGRvY3MvZ3J1Yi50ZXhpOiB5b3UgZm9yZ2V0 IGEgY29tbWFuZCwgeW91IGNhbiBydW4gdGhlIGNvbW1hbmQgQGNvbW1hbmR7aGVscH0KICAgICsg KiB0ZXN0OjogICAgICAgICAgICAgICAgICAgICAgICBDaGVjayBmaWxlIHR5cGVzIGFuZCBjb21w YXJlIHZhbHVlcwogICAgKyAqIHRwbTJfa2V5X3Byb3RlY3Rvcl9pbml0OjogICAgIEluaXRpYWxp emUgdGhlIFRQTTIga2V5IHByb3RlY3RvcgogICAgKyAqIHRwbTJfa2V5X3Byb3RlY3Rvcl9jbGVh cjo6ICAgIENsZWFyIHRoZSBUUE0yIGtleSBwcm90ZWN0b3IKICAgICsrKiB0cG0yX2R1bXBfcGNy OjogICAgICAgICAgICAgICBEdW1wIFRQTTIgUENScwogICAgKyAqIHRydWU6OiAgICAgICAgICAg ICAgICAgICAgICAgIERvIG5vdGhpbmcsIHN1Y2Nlc3NmdWxseQogICAgKyAqIHRydXN0OjogICAg ICAgICAgICAgICAgICAgICAgIEFkZCBwdWJsaWMga2V5IHRvIGxpc3Qgb2YgdHJ1c3RlZCBrZXlz CiAgICArICogdW5zZXQ6OiAgICAgICAgICAgICAgICAgICAgICAgVW5zZXQgYW4gZW52aXJvbm1l bnQgdmFyaWFibGUKICAgICtAQCBkb2NzL2dydWIudGV4aToga2V5IGFuZCB1bnNlYWwgaXQgd2l0 aCB0aGUgZ2l2ZW4gUENSIGxpc3QgYW5kIGJhbmsuCiAgICArIENsZWFyIHRoZSBUUE0yIGtleSBw cm90ZWN0b3IgaWYgcHJldmlvdXNseSBpbml0aWFsaXplZC4KICAgICsgQGVuZCBkZWZmbgogICAg KyAKICAgICsrQG5vZGUgdHBtMl9kdW1wX3BjcgogICAgKytAc3Vic2VjdGlvbiB0cG0yX2R1bXBf cGNyCiAgICArKwogICAgKytAZGVmZm4gQ29tbWFuZCB0cG0yX2R1bXBfcGNyIFtAdmFye2Jhbmt9 XQogICAgKytQcmludCBhbGwgUENScyBvZiB0aGUgc3BlY2lmaWVkIFRQTSAyLjAgQHZhcntiYW5r fS4gVGhlIHN1cHBvcnRlZCBiYW5rcyBhcmUKICAgICsrQHNhbXB7c2hhMX0sIEBzYW1we3NoYTI1 Nn0sIEBzYW1we3NoYTM4NH0sIGFuZCBAc2FtcHtzaGE1MTJ9LiBJZiBAdmFye2Jhbmt9CiAgICAr K2lzIG5vdCBzcGVjaWZpZWQsIEBzYW1we3NoYTI1Nn0gaXMgY2hvc2VuIGJ5IGRlZmF1bHQuCiAg ICArKwogICAgKytTaW5jZSBHUlVCIG1lYXN1cmVzIGV2ZXJ5IGNvbW1hbmQgaW50byBQQ1IgOCwg aW52b2tpbmcgQGNvbW1hbmR7dHBtMl9kdW1wX3Bjcn0KICAgICsrYWxzbyBleHRlbmRzIFBDUiA4 LCBzbyBQQ1IgOCB3aWxsIG5vdCBiZSBhIHN0YWJsZSB2YWx1ZSBpbiBHUlVCIHNoZWxsLgogICAg KytAZW5kIGRlZmZuCiAgICArKwogICAgKyBAbm9kZSB0cnVlCiAgICArIEBzdWJzZWN0aW9uIHRy dWUKICAgICsgCiAgICAgCiAgICAgICMjIGdydWItY29yZS9jb21tYW5kcy90cG0yX2tleV9wcm90 ZWN0b3IvbW9kdWxlLmMgIyMKICAgICBAQCBncnViLWNvcmUvY29tbWFuZHMvdHBtMl9rZXlfcHJv dGVjdG9yL21vZHVsZS5jOiBzdGF0aWMgZ3J1Yl9leHRjbWRfdCB0cG0yX3Byb3RlY3Rvcl9pbml0 X2NtZDsKIDM6ICAwMWYyN2RmOGEgPCAgLTogIC0tLS0tLS0tLSBkb2NzOiBEb2N1bWVudCB0cG0y X2R1bXBfcGNyCiA0OiAgMjQyNDgzYzg3ICEgIDM6ICBiYmQ0YWQzNzcgdHNzMjogRml4IHRoZSBt aXNzaW5nIGF1dGhDb21tYW5kCiAgICBAQCBDb21taXQgbWVzc2FnZQogICAgIAogICAgICAgICBT aWduZWQtb2ZmLWJ5OiBHYXJ5IExpbiA8Z2xpbkBzdXNlLmNvbT4KICAgICAgICAgUmV2aWV3ZWQt Ynk6IFN0ZWZhbiBCZXJnZXIgPHN0ZWZhbmJAbGludXguaWJtLmNvbT4KICAgICsgICAgUmV2aWV3 ZWQtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+CiAgICAgCiAgICAg ICMjIGdydWItY29yZS9saWIvdHNzMi90cG0yX2NtZC5jICMjCiAgICAgQEAgZ3J1Yi1jb3JlL2xp Yi90c3MyL3RwbTJfY21kLmM6IGdydWJfdHBtMl9yZWFkcHVibGljIChjb25zdCBUUE1JX0RIX09C SkVDVF90IG9iamVjdEhhbmRsZSwKIDU6ICAzZjBhY2E4YWYgPSAgNDogIGQyZmJhMzk2MyB0c3My OiBBZGQgVFBNIDIuMCBOViBpbmRleCBjb21tYW5kcwogNjogIDczM2I4YzUwNyAhICA1OiAgOWI3 ZWJjODE4IHRwbTJfa2V5X3Byb3RlY3RvcjogVW5zZWFsIGtleSBmcm9tIGEgYnVmZmVyCiAgICBA QCBDb21taXQgbWVzc2FnZQogICAgICAgICB0cG0yX2tleV9wcm90ZWN0b3I6IFVuc2VhbCBrZXkg ZnJvbSBhIGJ1ZmZlcgogICAgIAogICAgICAgICBFeHRyYWN0IHRoZSBsb2dpYyB0byBoYW5kbGUg dGhlIGZpbGUgYnVmZmVyIGZyb20gdGhlIFNSSyByZWNvdmVyCiAgICAtICAgIGZ1bmN0aW9uIHRv IHByZXBhcmUgdG8gbG9hZCB0aGUgc2VhbGVkIGtleSBmcm9tIHRoZSBOViBpbmRleCBoYW5kbGUu CiAgICArICAgIGZ1bmN0aW9uIHRvIHByZXBhcmUgdG8gbG9hZCB0aGUgc2VhbGVkIGtleSBmcm9t IHRoZSBOViBpbmRleCBoYW5kbGUsCiAgICArICAgIHNvIHRoZSBOViBpbmRleCBtb2RlIGNhbiBz aGFyZSB0aGUgc2FtZSBjb2RlIHBhdGggaW4gdGhlIGxhdGVyIHBhdGNoLgogICAgICAgICBUaGUg U1JLIHJlY292ZXIgZnVuY3Rpb24gbm93IG9ubHkgcmVhZHMgdGhlIGZpbGUgYW5kIHNlbmRzIHRo ZSBmaWxlCiAgICAtICAgIGJ1ZmZlciB0byB0aGUgbmV3IGZ1bmN0aW9uLiBCZXNpZGVzIHRoaXMs IHRoZSBmaWxlIGZvcm1hdCBpcyBkZXRlY3RlZAogICAgLSAgICBhdXRvbWF0aWNhbGx5IGJlZm9y ZSB1bm1hcnNoYWxsaW5nIHRoZSBkYXRhLCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHVzZQogICAg LSAgICB0aGUgY29tbWFuZCBvcHRpb24gdG8gc3BlY2lmeSB0aGUgZmlsZSBmb3JtYXQgYW55bW9y ZS4gSW4gb3RoZXIgd29yZHMsCiAgICAtICAgICctLXRwbTJrZXknIGFuZCAnLS1rZXlmaWxlJyBh cmUgdGhlIHNhbWUgbm93LgogICAgKyAgICBidWZmZXIgdG8gdGhlIG5ldyBmdW5jdGlvbi4KICAg ICsKICAgICsgICAgQmVzaWRlcyB0aGlzLCB0byBhdm9pZCBpbnRyb2R1Y2luZyBtb3JlIG9wdGlv bnMgZm9yIHRoZSBOViBpbmRleCBtb2RlLAogICAgKyAgICB0aGUgZmlsZSBmb3JtYXQgaXMgZGV0 ZWN0ZWQgYXV0b21hdGljYWxseSBiZWZvcmUgdW5tYXJzaGFsbGluZyB0aGUgZGF0YSwKICAgICsg ICAgc28gdGhlcmUgaXMgbm8gbmVlZCB0byB1c2UgdGhlIGNvbW1hbmQgb3B0aW9uIHRvIHNwZWNp ZnkgdGhlIGZpbGUgZm9ybWF0CiAgICArICAgIGFueW1vcmUuIEluIG90aGVyIHdvcmRzLCAnLS10 cG0ya2V5JyBhbmQgJy0ta2V5ZmlsZScgYXJlIHRoZSBzYW1lIG5vdy4KICAgICsKICAgICsgICAg QWxzbyB1cGRhdGUgZ3J1Yi50ZXh0IHRvIGFkZHJlc3MgdGhlIGNoYW5nZS4KICAgICAKICAgICAg ICAgU2lnbmVkLW9mZi1ieTogR2FyeSBMaW4gPGdsaW5Ac3VzZS5jb20+CiAgICAgICAgIFJldmll d2VkLWJ5OiBTdGVmYW4gQmVyZ2VyIDxzdGVmYW5iQGxpbnV4LmlibS5jb20+CiAgICAgCiAgICAr ICMjIGRvY3MvZ3J1Yi50ZXhpICMjCiAgICArQEAgZG9jcy9ncnViLnRleGk6IG9wdGlvbnMgYXJl IEBvcHRpb257LVR9LCBAb3B0aW9uey1rfSwgQG9wdGlvbnstYX0sIGFuZCBAb3B0aW9uey1zfS4g T24gdGhlCiAgICArIG90aGVyIGhhbmQsIHRoZSBOViBpbmRleC1zcGVjaWZpYyBvcHRpb24gaXMg QG9wdGlvbnstbn0uCiAgICArIAogICAgKyBUaGUga2V5IGZpbGUgZm9yIFNSSyBtb2RlIGNhbiBi ZSBzdXBwbGllZCB3aXRoIGVpdGhlciBAb3B0aW9uey1UfSBvcgogICAgKy1Ab3B0aW9uey1rfS4g VGhlIEBvcHRpb257LVR9IG9wdGlvbiBpcyBmb3IgdGhlIHBhdGggdG8gdGhlIGtleSBmaWxlIGlu CiAgICArLVRQTSAyLjAgS2V5IEZpbGUgZm9ybWF0LiBTaW5jZSB0aGUgcGFyYW1ldGVycyBmb3Ig dGhlIFRQTSBjb21tYW5kcyBhcmUgd3JpdHRlbgogICAgKy1pbiB0aGUgZmlsZSwgdGhlcmUgaXMg bm8gbmVlZCB0byBzZXQgdGhlIFBDUiBsaXN0KEBvcHRpb257LXB9KSBhbmQKICAgICstYmFuayhA b3B0aW9uey1ifSkgd2hlbiB1c2luZyB0aGUgQG9wdGlvbnstVH0gb3B0aW9uLiBUaGUgQG9wdGlv bnsta30gb3B0aW9uCiAgICArLWlzIGZvciB0aGUga2V5IGZpbGUgaW4gdGhlIHJhdyBmb3JtYXQs IGFuZCB0aGUgQG9wdGlvbnstcH0gYW5kIEBvcHRpb257LWJ9CiAgICArLW9wdGlvbnMgYXJlIG5l Y2Vzc2FyeSBmb3IgdGhlIG5vbi1kZWZhdWx0IFBDUiBsaXN0IG9yIGJhbmsuIEluIGdlbmVyYWws CiAgICArK0BvcHRpb257LWt9LiBUaG9zZSB0d28gb3B0aW9ucyB3ZXJlIHVzZWQgdG8gZGlzdGlu Z3Vpc2ggdGhlIGZpbGUgZm9ybWF0cyBidXQKICAgICsrYXJlIHNhbWUgbm93LiBUaGVyZSBhcmUg dHdvIHN1cHBvcnRlZCBmaWxlIGZvcm1hdHM6IHJhdyBmb3JtYXQgYW5kIFRQTSAyLjAKICAgICsr S2V5IEZpbGUgZm9ybWF0LiBXaGVuIHVzaW5nIHRoZSBrZXkgZmlsZSBpbiB0aGUgcmF3IGZvcm1h dCwgdGhlIEBvcHRpb257LXB9CiAgICArK2FuZCBAb3B0aW9uey1ifSBvcHRpb25zIGFyZSBuZWNl c3NhcnkgZm9yIHRoZSBub24tZGVmYXVsdCBQQ1IgbGlzdCBvciBiYW5rLgogICAgKytPbiB0aGUg b3RoZXIgaGFuZCwgd2hlbiB1c2luZyB0aGUga2V5IGZpbGUgaW4gVFBNIDIuMCBLZXkgRmlsZSBm b3JtYXQsIHRoZQogICAgKyt0aGUgcGFyYW1ldGVycyBmb3IgdGhlIFRQTSBjb21tYW5kcyBhcmUg d3JpdHRlbiBpbiB0aGUgZmlsZSwgYW5kIHRoZXJlIGlzIG5vCiAgICArK25lZWQgdG8gc2V0IHRo ZSBQQ1IgbGlzdChAb3B0aW9uey1wfSkgYW5kIGJhbmsoQG9wdGlvbnstYn0pLiBJbiBnZW5lcmFs LAogICAgKyBUUE0gMi4wIEtleSBGaWxlIGZvcm1hdCBpcyBwcmVmZXJyZWQgZHVlIHRvIHRoZSBz aW1wbGlmaWVkIEdSVUIgY29tbWFuZAogICAgKyBvcHRpb25zIGFuZCB0aGUgYXV0aG9yaXplZCBw b2xpY3kgc3VwcG9ydAogICAgKyAKICAgICsKICAgICAgIyMgZ3J1Yi1jb3JlL2NvbW1hbmRzL3Rw bTJfa2V5X3Byb3RlY3Rvci9tb2R1bGUuYyAjIwogICAgIEBAIGdydWItY29yZS9jb21tYW5kcy90 cG0yX2tleV9wcm90ZWN0b3IvbW9kdWxlLmM6IHRwbTJfcHJvdGVjdG9yX3Nya19yZWFkX2ZpbGUg KGNvbnN0IGNoYXIgKmZpbGVwYXRoLCB2b2lkICoqYnVmZmVyLCBncnViX3NpemVfdCAqCiAgICAg ICAgcmV0dXJuIGVycjsKIDc6ICBiOTJjZmI0YjAgISAgNjogIGM3OGM3ODc2MyB0cG0yX2tleV9w cm90ZWN0b3I6IFN1cHBvcnQgTlYgaW5kZXggaGFuZGxlcwogICAgQEAgQ29tbWl0IG1lc3NhZ2UK ICAgICAgICAgICAjIHRwbTJfbnZ1bmRlZmluZSAtQyBvIDB4MTAwMDAwMAogICAgIAogICAgICAg ICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IExpbiA8Z2xpbkBzdXNlLmNvbT4KICAgICsgICAgUmV2aWV3 ZWQtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+CiAgICAgCiAgICAg ICMjIGdydWItY29yZS9jb21tYW5kcy90cG0yX2tleV9wcm90ZWN0b3IvbW9kdWxlLmMgIyMKICAg ICBAQCBncnViLWNvcmUvY29tbWFuZHMvdHBtMl9rZXlfcHJvdGVjdG9yL21vZHVsZS5jOiB0cG0y X3Byb3RlY3Rvcl9zcmtfcmVjb3ZlciAoY29uc3QgdHBtMl9wcm90ZWN0b3JfY29udGV4dF90ICpj dHgsCiA4OiAgYmU0ZDkzY2IyICEgIDc6ICAxMGViNmE2YjAgdXRpbC9ncnViLXByb3RlY3Q6IFN1 cHBvcnQgTlYgaW5kZXggbW9kZQogICAgQEAgQ29tbWl0IG1lc3NhZ2UKICAgICAgICAgdHlwZXMg b2YgVFBNIGhhbmRsZXMuCiAgICAgCiAgICAgICAgIDEuIFBlcnNpc3RlbnQgaGFuZGxlICgweDgx MDAwMDAwfjB4ODFGRkZGRkYpCiAgICAtICAgICAgIFRQTSAyLjAgS2V5IEZpbGUgZm9ybWF0ICgt LXRwbTJrZXkpIGlzIG5vdCBzdXBwb3J0ZWQgZHVlIHRvIHRoZQogICAgLSAgICAgICBsaW1pdGF0 aW9uIG9mIHBlcnNpc3RlbnQgaGFuZGxlcy4gVGhpcyAnZ3J1Yi1wcm90ZWN0JyBjb21tYW5kCiAg ICAtICAgICAgIHNlYWxzIHRoZSBrZXkgaW50byB0aGUgcGVyc2lzdGVudCBoYW5kbGUgMHg4MTAw MDAwMC4KICAgICsgICAgICAgT25seSB0aGUgcmF3IGZvcm1hdCBpcyBzdXBwb3J0ZWQgZHVlIHRv IHRoZSBsaW1pdGF0aW9uIG9mIHBlcnNpc3RlbnQKICAgICsgICAgICAgaGFuZGxlcy4gVGhpcyAn Z3J1Yi1wcm90ZWN0JyBjb21tYW5kIHNlYWxzIHRoZSBrZXkgaW50byB0aGUKICAgICsgICAgICAg cGVyc2lzdGVudCBoYW5kbGUgMHg4MTAwMDAwMC4KICAgICAKICAgICAgICAgICAjIGdydWItcHJv dGVjdCBcCiAgICAgICAgICAgICAgIC0tcHJvdGVjdG9yPXRwbTIgXAogICAgQEAgQ29tbWl0IG1l c3NhZ2UKICAgICAgICAgICAgICAgLS10cG0yLWV2aWN0IFwKICAgICAgICAgICAgICAgLS10cG0y LW52aW5kZXg9MHgxMDAwMDAwCiAgICAgCiAgICArICAgIEFsc28gc2V0IGFuZCBjaGVjayB0aGUg Ym9vbGVhbiB2YXJpYWJsZXMgd2l0aCB0cnVlL2ZhbHNlIGluc3RlYWQgb2YgMS8wLgogICAgKwog ICAgICAgICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IExpbiA8Z2xpbkBzdXNlLmNvbT4KICAgICAgICAg UmV2aWV3ZWQtYnk6IFN0ZWZhbiBCZXJnZXIgPHN0ZWZhbmJAbGludXguaWJtLmNvbT4KICAgICAK IDk6ICAxNWJjZTU4ZWQgISAgODogIDNkNTgzNjI2OCB0ZXN0cy90cG0yX2tleV9wcm90ZWN0b3Jf dGVzdDogQW1lbmQgdGhlIE5WIGluZGV4IG1vZGUgdGVzdAogICAgQEAgTWV0YWRhdGEKICAgICBB dXRob3I6IEdhcnkgTGluIDxnbGluQHN1c2UuY29tPgogICAgIAogICAgICAjIyBDb21taXQgbWVz c2FnZSAjIwogICAgLSAgICB0ZXN0cy90cG0yX2tleV9wcm90ZWN0b3JfdGVzdDogQW1lbmQgdGhl IE5WIGluZGV4IG1vZGUgdGVzdAogICAgKyAgICB0ZXN0cy90cG0yX2tleV9wcm90ZWN0b3JfdGVz dDogU2ltcGxpZnkgdGhlIE5WIGluZGV4IG1vZGUgdGVzdAogICAgIAogICAgICAgICBTaW5jZSAn Z3J1Yi1wcm90ZWN0JyBhbHJlYWR5IHN1cHBvcnRzIE5WIGluZGV4IG1vZGUsIHRwbTJfc2VhbF9u digpIGlzCiAgICAgICAgIHJlcGxhY2VkIHdpdGggb25lICdncnViLXByb3RlY3QnIGNvbW1hbmQg dG8gc2ltcGxpZnkgdGhlIHRlc3Qgc2NyaXB0LgogICAgIAogICAgLSAgICBUd28gbW9yZSBOViBp bmRleCB0ZXN0IGNhc2VzIGFyZSBhbHNvIGFkZGVkIHRvIHRlc3Qga2V5IHNlYWxpbmcgYW5kCiAg ICAtICAgIHVuc2VhbGluZyB3aXRoIHRoZSBOViBpbmRleCBoYW5kbGUgMHgxMDAwMDAwLgogICAg LQogICAgLSAgICBBbHNvLCB0aGVyZSBpcyBhIG1pbm9yIGZpeCB0byByZXNldCAncmV0JyB0byAw IHdoZW4gYSB0ZXN0IGNhc2UgZmFpbHMgc28KICAgIC0gICAgdGhhdCB0aGUgb3RoZXIgdGVzdCBj YXNlcyBjb3VsZCBjb250aW51ZS4KICAgICsgICAgJ3RwbTJfZXZpY3Rjb250cm9sJyBpcyBhbHNv IHJlcGxhY2VkIHdpdGggJ2dydWItcHJvdGVjdCAtLXRwbTItZXZpY3QnLgogICAgIAogICAgICAg ICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IExpbiA8Z2xpbkBzdXNlLmNvbT4KICAgIC0gICAgUmV2aWV3 ZWQtYnk6IFN0ZWZhbiBCZXJnZXIgPHN0ZWZhbmJAbGludXguaWJtLmNvbT4KICAgICAKICAgICAg IyMgdGVzdHMvdHBtMl9rZXlfcHJvdGVjdG9yX3Rlc3QuaW4gIyMKICAgICBAQCB0ZXN0cy90cG0y X2tleV9wcm90ZWN0b3JfdGVzdC5pbjogRU9GCiAgICBAQCB0ZXN0cy90cG0yX2tleV9wcm90ZWN0 b3JfdGVzdC5pbjogRU9GCiAgICAgLQllY2hvICJGYWlsZWQgdG8gZmx1c2ggdGhlIHRyYW5zaWVu dCBoYW5kbGVzOiAke3JldH0iID4mMgogICAgIC0JcmV0dXJuIDEKICAgICAtICAgIGZpCiAgICAt K3RwbTJfc2VhbF91bnNlYWxfbnYoKSB7CiAgICAtKyAgICBoYW5kbGVfdHlwZT0iJDEiCiAgICAt KyAgICBrZXlfdHlwZT0iJDIiCiAgICAtIAogICAgKy0KICAgICAtICAgICMgU2VhbCB0aGUga2V5 IGludG8gVFBNCiAgICAgLSAgICB0cG0yX2NyZWF0ZSAtUSBcCiAgICAgLQktQyAiJHtwcmltYXJ5 X2ZpbGV9IiBcCiAgICBAQCB0ZXN0cy90cG0yX2tleV9wcm90ZWN0b3JfdGVzdC5pbjogRU9GCiAg ICAgLQllY2hvICJGYWlsZWQgdG8gZmx1c2ggdGhlIHRyYW5zaWVudCBoYW5kbGVzOiAke3JldH0i ID4mMgogICAgIC0JcmV0dXJuIDEKICAgICAtICAgIGZpCiAgICAtKyAgICBleHRyYV9vcHQ9IiIK ICAgIC0rICAgIGV4dHJhX2dydWJfb3B0PSIiCiAgICAtIAogICAgKy0KICAgICAtICAgIHRwbTJf bG9hZCAtUSBcCiAgICAgLQktQyAiJHtwcmltYXJ5X2ZpbGV9IiBcCiAgICAgLQktdSAiJHtrZXlw dWJfZmlsZX0iIFwKICAgIEBAIHRlc3RzL3RwbTJfa2V5X3Byb3RlY3Rvcl90ZXN0LmluOiBFT0YK ICAgICAtICAgIGlmIFsgIiR7cmV0fSIgLW5lIDAgXTsgdGhlbgogICAgIC0JZWNobyAiRmFpbGVk IHRvIGZsdXNoIHRoZSB0cmFuc2llbnQgaGFuZGxlczogJHtyZXR9IiA+JjIKICAgICAtCXJldHVy biAxCiAgICAtKyAgICBpZiBbICIkaGFuZGxlX3R5cGUiID09ICJudmluZGV4IiBdOyB0aGVuCiAg ICAtKwludl9pbmRleD0iMHgxMDAwMDAwIgogICAgLSsgICAgZWxzZQogICAgLSsJbnZfaW5kZXg9 IjB4ODEwMDAwMDAiCiAgICAtICAgICBmaQogICAgLSAKICAgICstICAgIGZpCiAgICArLQogICAg IC0gICAgdHBtMl9ldmljdGNvbnRyb2wgLVEgLUMgbyAtYyAiJHtzZWFsaW5nX2N0eF9maWxlfSIg JHtudl9pbmRleH0gfHwgcmV0PSQ/CiAgICAgLSAgICBpZiBbICIke3JldH0iIC1uZSAwIF07IHRo ZW4KICAgICAtCWVjaG8gIkZhaWxlZCB0byBzdG9yZSB0aGUgc2VhbGVkIGtleSBpbnRvICR7bnZf aW5kZXh9OiAke3JldH0iID4mMgogICAgIC0JcmV0dXJuIDEKICAgIC0rICAgIGlmIFsgIiRrZXlf dHlwZSIgPT0gInRwbTJrZXkiIF07IHRoZW4KICAgIC0rCWV4dHJhX29wdD0iLS10cG0ya2V5Igog ICAgLSsgICAgZWxzZQogICAgLSsJZXh0cmFfZ3J1Yl9vcHQ9Ii0tcGNycz0wLDEiCiAgICAtICAg ICBmaQogICAgLSAKICAgICstICAgIGZpCiAgICArLQogICAgIC0gICAgcmV0dXJuIDAKICAgICAt fQogICAgIC0KICAgIC0tdHBtMl9zZWFsX3Vuc2VhbF9udigpIHsKICAgIC0tICAgIG52X2luZGV4 PSIweDgxMDAwMDAwIgogICAgKyB0cG0yX3NlYWxfdW5zZWFsX252KCkgewogICAgKyAgICAgbnZf aW5kZXg9IjB4ODEwMDAwMDAiCiAgICAgLSAgICBwY3JfbGlzdD0ic2hhMjU2OjAsMSIKICAgIC0t CiAgICArIAogICAgICAgICAgZ3J1Yl9jZmc9JHt0cG0ydGVzdGRpcn0vdGVzdGNhc2UuY2ZnCiAg ICAgIAogICAgICAgICAgIyBTZWFsIHRoZSBrZXkgaW50byBhIE5WIGluZGV4IGd1YXJkZWQgYnkg UENSIDAgYW5kIDEKICAgIEBAIHRlc3RzL3RwbTJfa2V5X3Byb3RlY3Rvcl90ZXN0LmluOiBFT0YK ICAgICAgCXJldHVybiA5OQogICAgICAgICAgZmkKICAgICAgCiAgICAtICAgICAjIFdyaXRlIHRo ZSBUUE0gdW5zZWFsaW5nIHNjcmlwdAogICAgLSAgICAgY2F0ID4gJHtncnViX2NmZ30gPDxFT0YK ICAgIC0gbG9vcGJhY2sgbHVrcyAoaG9zdCkke2x1a3NmaWxlfQogICAgLS10cG0yX2tleV9wcm90 ZWN0b3JfaW5pdCAtLW1vZGU9bnYgLS1udmluZGV4PSR7bnZfaW5kZXh9IC0tcGNycz0wLDEKICAg IC0rdHBtMl9rZXlfcHJvdGVjdG9yX2luaXQgLS1tb2RlPW52IC0tbnZpbmRleD0ke252X2luZGV4 fSAke2V4dHJhX2dydWJfb3B0fQogICAgLSBpZiBjcnlwdG9tb3VudCAtYSAtLXByb3RlY3RvciB0 cG0yOyB0aGVuCiAgICAtICAgICBjYXQgKGNyeXB0bzApKzEKICAgIC0gZmkKICAgICBAQCB0ZXN0 cy90cG0yX2tleV9wcm90ZWN0b3JfdGVzdC5pbjogRU9GCiAgICAgICAgICAke2dydWJzaGVsbH0g LS10aW1lb3V0PSR7dGltZW91dH0gLS1lbXUtb3B0cz0iLXQgJHt0cG0yZGV2fSIgPCAiJHtncnVi X2NmZ30iID4gIiR7dGVzdG91dHB1dH0iIHx8IHJldD0kPwogICAgICAKICAgIEBAIHRlc3RzL3Rw bTJfa2V5X3Byb3RlY3Rvcl90ZXN0LmluOiBFT0YKICAgICAgCiAgICAgICAgICBpZiBbICIke3Jl dH0iIC1lcSAwIF07IHRoZW4KICAgICAgCWlmICEgZ3JlcCAtcSAiXiR7dnRleHR9JCIgIiR7dGVz dG91dHB1dH0iOyB0aGVuCiAgICAtQEAgdGVzdHMvdHBtMl9rZXlfcHJvdGVjdG9yX3Rlc3QuaW46 IHNya3Rlc3RzKz0oIkVDQyB0cmFuc2llbnQgZmFsbGJhY2tfc3JrIikKICAgIC0gZm9yIGkgaW4g IiR7IXNya3Rlc3RzW0BdfSI7IGRvCiAgICAtICAgICB0cG0yX3NlYWxfdW5zZWFsICR7c3JrdGVz dHNbJGldfSB8fCByZXQ9JD8KICAgIC0gICAgIGlmIFsgIiR7cmV0fSIgLWVxIDAgXTsgdGhlbgog ICAgLS0gICAgICAgIGVjaG8gIlRQTTIgWyR7c3JrdGVzdHNbJGldfV06IFBBU1MiCiAgICAtKwll Y2hvICJUUE0yIFtTUktdWyR7c3JrdGVzdHNbJGldfV06IFBBU1MiCiAgICAtICAgICBlbGlmIFsg IiR7cmV0fSIgLWVxIDEgXTsgdGhlbgogICAgLS0gICAgICAgIGVjaG8gIlRQTTIgWyR7c3JrdGVz dHNbJGldfV06IEZBSUwiCiAgICAtKwllY2hvICJUUE0yIFtTUktdWyR7c3JrdGVzdHNbJGldfV06 IEZBSUwiCiAgICAtKwlyZXQ9MAogICAgLSAgICAgZWxzZQogICAgLS0JZWNobyAiVW5leHBlY3Rl ZCBmYWlsdXJlIFske3Nya3Rlc3RzWyRpXX1dIiA+JjIKICAgIC0rCWVjaG8gIlVuZXhwZWN0ZWQg ZmFpbHVyZSBbU1JLXVske3Nya3Rlc3RzWyRpXX1dIiA+JjIKICAgIC0gCWV4aXQgJHtyZXR9CiAg ICAtICAgICBmaQogICAgLSBkb25lCiAgICAtIAogICAgLS0jIFRlc3RjYXNlIGZvciBOViBpbmRl eCBtb2RlCiAgICAtLXRwbTJfc2VhbF91bnNlYWxfbnYgfHwgcmV0PSQ/CiAgICAtLWlmIFsgIiR7 cmV0fSIgLWVxIDAgXTsgdGhlbgogICAgLS0gICAgZWNobyAiVFBNMiBbTlYgSW5kZXhdOiBQQVNT IgogICAgLS1lbGlmIFsgIiR7cmV0fSIgLWVxIDEgXTsgdGhlbgogICAgLS0gICAgZWNobyAiVFBN MiBbTlYgSW5kZXhdOiBGQUlMIgogICAgLS1lbHNlCiAgICAtLSAgICBlY2hvICJVbmV4cGVjdGVk IGZhaWx1cmUgW05WIGluZGV4XSIgPiYyCiAgICAtLSAgICBleGl0ICR7cmV0fQogICAgLS1maQog ICAgLSsjIFRlc3RjYXNlcyBmb3IgTlYgaW5kZXggbW9kZQogICAgLStkZWNsYXJlIC1hIG52dGVz dHM9KCkKICAgIC0rbnZ0ZXN0cys9KCJwZXJzaXN0ZW50IHJhdyIpCiAgICAtK252dGVzdHMrPSgi bnZpbmRleCByYXciKQogICAgLStudnRlc3RzKz0oIm52aW5kZXggdHBtMmtleSIpCiAgICAtKwog ICAgLStmb3IgaSBpbiAiJHshbnZ0ZXN0c1tAXX0iOyBkbwogICAgLSsgICAgdHBtMl9zZWFsX3Vu c2VhbF9udiAke252dGVzdHNbJGldfSB8fCByZXQ9JD8KICAgIC0rICAgIGlmIFsgIiR7cmV0fSIg LWVxIDAgXTsgdGhlbgogICAgLSsJZWNobyAiVFBNMiBbTlYgSW5kZXhdWyR7bnZ0ZXN0c1skaV19 XTogUEFTUyIKICAgIC0rICAgIGVsaWYgWyAiJHtyZXR9IiAtZXEgMSBdOyB0aGVuCiAgICAtKwll Y2hvICJUUE0yIFtOViBJbmRleF1bJHtudnRlc3RzWyRpXX1dOiBGQUlMIgogICAgLSsJcmV0PTAK ICAgIC0rICAgIGVsc2UKICAgIC0rCWVjaG8gIlVuZXhwZWN0ZWQgZmFpbHVyZSBbTlYgaW5kZXhd WyR7bnZ0ZXN0c1skaV19XSIgPiYyCiAgICAtKwlleGl0ICR7cmV0fQogICAgLSsgICAgZmkKICAg IC0rZG9uZQogICAgLSAKICAgIC0gZXhpdCAwCiAtOiAgLS0tLS0tLS0tID4gIDk6ICBiODM1ZGY4 OWUgdGVzdHMvdHBtMl9rZXlfcHJvdGVjdG9yX3Rlc3Q6IFJlc2V0ICdyZXQnIG9uIGZhaWwKIC06 ICAtLS0tLS0tLS0gPiAxMDogIDRjMGNjNTBhNSB0ZXN0cy90cG0yX2tleV9wcm90ZWN0b3JfdGVz dDogQWRkIG1vcmUgTlYgaW5kZXggbW9kZSB0ZXN0cwoxMDogIGI3ODJkMGJkYiAhIDExOiAgMTU2 YzgxNDIyIGRvY3M6IFVwZGF0ZSBOViBpbmRleCBtb2RlIG9mIFRQTTIga2V5IHByb3RlY3Rvcgog ICAgQEAgZG9jcy9ncnViLnRleGk6IFdoZW4vQWZ0ZXIgdGhlIHNoaW0gb3IgR1JVQiBhcmUgdXBk YXRlZCwgaXQgb25seSByZXF1aXJlcyB0byBydW4KICAgICArVGhlIHJhbmdlIG9mIHBlcnNpc3Rl bnQgaGFuZGxlcyBpcyBmcm9tIEBrYmR7MHg4MTAwMDAwMH0gdG8gQGtiZHsweDgxRkZGRkZGfS4K ICAgICArVGhlIHBlcnNpc3RlbnQgaGFuZGxlIGlzIGRlc2lnbmVkIHRvIG1ha2UgVFBNIG9iamVj dHMgcGVyc2lzdGVudCB0aHJvdWdoCiAgICAgK3Bvd2VyIGN5Y2xlcywgYW5kIG9ubHkgVFBNIG9i amVjdHMsIHN1Y2ggYXMgUlNBIG9yIEVDIGtleXMsIGFyZSBhY2NlcHRlZC4KICAgIC0rVGh1cywg VFBNIDIuMCBLZXkgRmlsZSBmb3JtYXQgaXMgbm90IHN1cHBvcnRlZCBieSBwZXJzaXN0ZW50IGhh bmRsZXMuIFRoZQogICAgLStmb2xsb3dpbmcgc2hvd3MgdGhlIEBjb21tYW5ke2dydWItcHJvdGVj dH0gY29tbWFuZCB0byBzZWFsIHRoZSBkaXNrIGtleQogICAgLStAZmlsZXtsdWtzLmtleX0gaW50 byB0aGUgcGVyc2lzdGVudCBoYW5kbGUgQGtiZHsweDgxMDAwMDAwfSB3aXRoIHRoZSBQQ1JzCiAg ICAtK0BrYmR7MCwyLDQsN30uCiAgICArK1RodXMsIG9ubHkgdGhlIHJhdyBmb3JtYXQgaXMgc3Vw cG9ydGVkIGJ5IHBlcnNpc3RlbnQgaGFuZGxlcy4gVGhlIGZvbGxvd2luZwogICAgKytzaG93cyB0 aGUgQGNvbW1hbmR7Z3J1Yi1wcm90ZWN0fSBjb21tYW5kIHRvIHNlYWwgdGhlIGRpc2sga2V5IEBm aWxle2x1a3Mua2V5fQogICAgKytpbnRvIHRoZSBwZXJzaXN0ZW50IGhhbmRsZSBAa2JkezB4ODEw MDAwMDB9IHdpdGggdGhlIFBDUnMgQGtiZHswLDIsNCw3fS4KICAgICAgCiAgICAgIEBleGFtcGxl CiAgICAgLSMgQGtiZHt0cG0yX2NyZWF0ZXByaW1hcnkgLUMgbyAtZyBzaGEyNTYgLUcgZWNjIC1j IHByaW1hcnkuY3R4fQogLTogIC0tLS0tLS0tLSA+IDEyOiAgZjQ3NzU4NTEwIElOU1RBTEw6IERv Y3VtZW50IHRoZSBwYWNrYWdlcyBuZWVkZWQgZm9yIFRQTTIga2V5IHByb3RlY3RvciB0ZXN0cwot LSAKMi40My4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KR3J1Yi1kZXZlbCBtYWlsaW5nIGxpc3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0dHBzOi8vbGlz dHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2dydWItZGV2ZWwK