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 E4E20E9A03B for ; Wed, 18 Feb 2026 01:53:51 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsWjx-0007CL-OI; Tue, 17 Feb 2026 20:52:33 -0500 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 1vsWjv-0007Bz-DA; Tue, 17 Feb 2026 20:52:31 -0500 Received: from pdx-out-005.esa.us-west-2.outbound.mail-perimeter.amazon.com ([52.13.214.179]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsWjs-0005F9-4A; Tue, 17 Feb 2026 20:52:31 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazoncorp2; t=1771379548; x=1802915548; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=QNgMYQG55uLndwuZXf+YFr1Fjz5BDXtiyzmiHn4qOg4=; b=AWGLGh93EZAcbI71/YqFlkb1dmvjde+4ByKJ019GVaIJVaIt1JjsOBVF WewjQaSeh8tJM8RQESgfnNpJCIzPnI25BZcpVP0vYfgT35upShChhvryt PGQNKzbVOgTC/njh6hc/sVVOgaxSK/Spa9kSJudQwqOouL7XxFCFpr/ud 1X417bRHGhBQPmLSXk+udyMJht9SSquFD0ZyafMGtMpSkgLC9hqnfi1qx J+gUCRyASLUj1xXqOFnXVirRMY4Q6hNyDqmNBioyDWfPjq/Qv/OMVAPlE 1OVoqkXxIdAshJYnThgqst91c12N2o9is5/1icdedBYjeESm257YQiaaB A==; X-CSE-ConnectionGUID: TexyZQ3/Qwmk3xMtDLGaJg== X-CSE-MsgGUID: SZJ2Hq4CSYufZky05Y/AbA== X-IronPort-AV: E=Sophos;i="6.21,297,1763424000"; d="scan'208";a="13261392" Received: from ip-10-5-12-219.us-west-2.compute.internal (HELO smtpout.naws.us-west-2.prod.farcaster.email.amazon.dev) ([10.5.12.219]) by internal-pdx-out-005.esa.us-west-2.outbound.mail-perimeter.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2026 01:52:26 +0000 Received: from EX19MTAUWC001.ant.amazon.com [205.251.233.105:6549] by smtpin.naws.us-west-2.prod.farcaster.email.amazon.dev [10.0.55.107:2525] with esmtp (Farcaster) id 5b767f59-cd1d-4935-9b4e-fd445c0e6f0b; Wed, 18 Feb 2026 01:52:25 +0000 (UTC) X-Farcaster-Flow-ID: 5b767f59-cd1d-4935-9b4e-fd445c0e6f0b Received: from EX19D020UWC004.ant.amazon.com (10.13.138.149) by EX19MTAUWC001.ant.amazon.com (10.250.64.174) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.35; Wed, 18 Feb 2026 01:52:25 +0000 Received: from ip-10-253-83-51.amazon.com (172.19.99.218) by EX19D020UWC004.ant.amazon.com (10.13.138.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.35; Wed, 18 Feb 2026 01:52:22 +0000 From: Alexander Graf To: CC: , Peter Maydell , "Thomas Huth" , , , , , Cornelia Huck , , Dorjoy Chowdhury , Pierrick Bouvier , Paolo Bonzini , Tyler Fanelli , , Subject: [PATCH 03/10] accel: Add Nitro Enclaves accelerator Date: Wed, 18 Feb 2026 01:51:43 +0000 Message-ID: <20260218015151.4052-4-graf@amazon.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20260218015151.4052-1-graf@amazon.com> References: <20260218015151.4052-1-graf@amazon.com> MIME-Version: 1.0 X-Originating-IP: [172.19.99.218] X-ClientProxiedBy: EX19D043UWC001.ant.amazon.com (10.13.139.202) To EX19D020UWC004.ant.amazon.com (10.13.138.149) Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=52.13.214.179; envelope-from=prvs=502105d20=graf@amazon.de; helo=pdx-out-005.esa.us-west-2.outbound.mail-perimeter.amazon.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.043, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, UNPARSEABLE_RELAY=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-arm@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-arm-bounces+qemu-arm=archiver.kernel.org@nongnu.org Sender: qemu-arm-bounces+qemu-arm=archiver.kernel.org@nongnu.org Tml0cm8gRW5jbGF2ZXMgYXJlIGEgY29uZmlkZW50aWFsIGNvbXB1dGUgdGVjaG5vbG9neSB3aGlj aAphbGxvd3MgYSBwYXJlbnQgaW5zdGFuY2UgdG8gY2FydmUgb3V0IHJlc291cmNlcyBmcm9tIGl0 c2VsZgphbmQgc3Bhd24gYSBjb25maWRlbnRpYWwgc2libGluZyBWTSBuZXh0IHRvIGl0c2VsZi4g U2ltaWxhcgp0byBvdGhlciBjb25maWRlbnRpYWwgY29tcHV0ZSBzb2x1dGlvbnMsIHRoaXMgc2li bGluZyBpcwpjb250cm9sbGVkIGJ5IGFuIHVuZGVybHlpbmcgdm1tLCBidXQgc3RpbGwgaGFzIGEg aGlnaGVyIGxldmVsCnZtbSAoUUVNVSkgdG8gaW1wbGVtZW50IHNvbWUgb2YgaXRzIEkvTyBmdW5j dGlvbmFsaXR5IGFuZApsaWZlY3ljbGUuCgpBZGQgYW4gYWNjZWxlcmF0b3IgdG8gZHJpdmUgdGhp cyBpbnRlcmZhY2UuIEluIGNvbWJpbmF0aW9uIHdpdGgKZm9sbG93LW9uIHBhdGNoZXMgdG8gZW5o YW5jZSB0aGUgTml0cm8gRW5jbGF2ZXMgbWFjaGluZSBtb2RlbCwgdGhpcwp3aWxsIGFsbG93IHVz ZXJzIHRvIHJ1biBhIE5pdHJvIEVuY2xhdmUgdXNpbmcgUUVNVS4KClNpZ25lZC1vZmYtYnk6IEFs ZXhhbmRlciBHcmFmIDxncmFmQGFtYXpvbi5jb20+Ci0tLQogTUFJTlRBSU5FUlMgICAgICAgICAg ICAgICAgICAgfCAgIDYgKwogYWNjZWwvS2NvbmZpZyAgICAgICAgICAgICAgICAgfCAgIDMgKwog YWNjZWwvbWVzb24uYnVpbGQgICAgICAgICAgICAgfCAgIDEgKwogYWNjZWwvbml0cm8vbWVzb24u YnVpbGQgICAgICAgfCAgIDMgKwogYWNjZWwvbml0cm8vbml0cm8tYWNjZWwuYyAgICAgfCAzMzMg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogYWNjZWwvbml0cm8vdHJhY2UtZXZl bnRzICAgICAgfCAgIDYgKwogYWNjZWwvbml0cm8vdHJhY2UuaCAgICAgICAgICAgfCAgIDIgKwog YWNjZWwvc3R1YnMvbWVzb24uYnVpbGQgICAgICAgfCAgIDEgKwogYWNjZWwvc3R1YnMvbml0cm8t c3R1Yi5jICAgICAgfCAgMTEgKysKIGluY2x1ZGUvc3lzdGVtL2h3X2FjY2VsLmggICAgIHwgICAx ICsKIGluY2x1ZGUvc3lzdGVtL25pdHJvLWFjY2VsLmggIHwgIDI1ICsrKwogbWVzb24uYnVpbGQg ICAgICAgICAgICAgICAgICAgfCAgMTEgKysKIG1lc29uX29wdGlvbnMudHh0ICAgICAgICAgICAg IHwgICAyICsKIHFlbXUtb3B0aW9ucy5oeCAgICAgICAgICAgICAgIHwgICA4ICstCiBzY3JpcHRz L21lc29uLWJ1aWxkb3B0aW9ucy5zaCB8ICAgMyArCiAxNSBmaWxlcyBjaGFuZ2VkLCA0MTIgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhY2NlbC9uaXRy by9tZXNvbi5idWlsZAogY3JlYXRlIG1vZGUgMTAwNjQ0IGFjY2VsL25pdHJvL25pdHJvLWFjY2Vs LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhY2NlbC9uaXRyby90cmFjZS1ldmVudHMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBhY2NlbC9uaXRyby90cmFjZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgYWNjZWwv c3R1YnMvbml0cm8tc3R1Yi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9zeXN0ZW0vbml0 cm8tYWNjZWwuaAoKZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKaW5kZXgg ZDNhYTZkNjczMi4uM2QwMDIxNDNhZSAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJ TlRBSU5FUlMKQEAgLTU4Myw2ICs1ODMsMTIgQEAgRjogaW5jbHVkZS9zeXN0ZW0vbXNodi5oCiBG OiBpbmNsdWRlL2h3L2h5cGVydi9odmdkayouaAogRjogaW5jbHVkZS9ody9oeXBlcnYvaHZoZGsq LmgKIAorTml0cm8gRW5jbGF2ZXMgKG5hdGl2ZSkKK006IEFsZXhhbmRlciBHcmFmIDxncmFmQGFt YXpvbi5jb20+CitTOiBNYWludGFpbmVkCitGOiBhY2NlbC9uaXRyby8KK0Y6IGluY2x1ZGUvc3lz dGVtL25pdHJvLWFjY2VsLmgKKwogWDg2IE1TSFYgQ1BVcwogTTogTWFnbnVzIEt1bGtlIDxtYWdu dXMua3Vsa2VAbGludXgubWljcm9zb2Z0LmNvbT4KIFI6IFdlaSBMaXUgPHdlaS5saXVAa2VybmVs Lm9yZz4KZGlmZiAtLWdpdCBhL2FjY2VsL0tjb25maWcgYi9hY2NlbC9LY29uZmlnCmluZGV4IGE2 MGYxMTQ5MjMuLjZkMDUyODc1ZWUgMTAwNjQ0Ci0tLSBhL2FjY2VsL0tjb25maWcKKysrIGIvYWNj ZWwvS2NvbmZpZwpAQCAtMTYsNiArMTYsOSBAQCBjb25maWcgS1ZNCiBjb25maWcgTVNIVgogICAg IGJvb2wKIAorY29uZmlnIE5JVFJPCisgICAgYm9vbAorCiBjb25maWcgWEVOCiAgICAgYm9vbAog ICAgIHNlbGVjdCBGU0RFVl85UCBpZiBWSVJURlMKZGlmZiAtLWdpdCBhL2FjY2VsL21lc29uLmJ1 aWxkIGIvYWNjZWwvbWVzb24uYnVpbGQKaW5kZXggMjg5Yjc0MjBmZi4uN2RhMTJiOTc0MSAxMDA2 NDQKLS0tIGEvYWNjZWwvbWVzb24uYnVpbGQKKysrIGIvYWNjZWwvbWVzb24uYnVpbGQKQEAgLTEy LDYgKzEyLDcgQEAgaWYgaGF2ZV9zeXN0ZW0KICAgc3ViZGlyKCd4ZW4nKQogICBzdWJkaXIoJ3N0 dWJzJykKICAgc3ViZGlyKCdtc2h2JykKKyAgc3ViZGlyKCduaXRybycpCiBlbmRpZgogCiAjIHF0 ZXN0CmRpZmYgLS1naXQgYS9hY2NlbC9uaXRyby9tZXNvbi5idWlsZCBiL2FjY2VsL25pdHJvL21l c29uLmJ1aWxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmUwMWMxYmFi OTYKLS0tIC9kZXYvbnVsbAorKysgYi9hY2NlbC9uaXRyby9tZXNvbi5idWlsZApAQCAtMCwwICsx LDMgQEAKK25pdHJvX3NzID0gc3Muc291cmNlX3NldCgpCituaXRyb19zcy5hZGQoZmlsZXMoJ25p dHJvLWFjY2VsLmMnKSkKK3N5c3RlbV9zcy5hZGRfYWxsKHdoZW46ICdDT05GSUdfTklUUk8nLCBp Zl90cnVlOiBuaXRyb19zcykKZGlmZiAtLWdpdCBhL2FjY2VsL25pdHJvL25pdHJvLWFjY2VsLmMg Yi9hY2NlbC9uaXRyby9uaXRyby1hY2NlbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLmJlYTc2ZmNkMGIKLS0tIC9kZXYvbnVsbAorKysgYi9hY2NlbC9uaXRyby9uaXRy by1hY2NlbC5jCkBAIC0wLDAgKzEsMzMzIEBACisvKgorICogTml0cm8gRW5jbGF2ZXMgYWNjZWxl cmF0b3IKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAyNiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBh ZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIEF1dGhvcnM6CisgKiAgIEFs ZXhhbmRlciBHcmFmIDxncmFmQGFtYXpvbi5jb20+CisgKgorICogTml0cm8gRW5jbGF2ZXMgYXJl IGEgY29uZmlkZW50aWFsIGNvbXB1dGUgdGVjaG5vbG9neSB3aGljaAorICogYWxsb3dzIGEgcGFy ZW50IGluc3RhbmNlIHRvIGNhcnZlIG91dCByZXNvdXJjZXMgZnJvbSBpdHNlbGYKKyAqIGFuZCBz cGF3biBhIGNvbmZpZGVudGlhbCBzaWJsaW5nIFZNIG5leHQgdG8gaXRzZWxmLiBTaW1pbGFyCisg KiB0byBvdGhlciBjb25maWRlbnRpYWwgY29tcHV0ZSBzb2x1dGlvbnMsIHRoaXMgc2libGluZyBp cworICogY29udHJvbGxlZCBieSBhbiB1bmRlcmx5aW5nIHZtbSwgYnV0IHN0aWxsIGhhcyBhIGhp Z2hlciBsZXZlbAorICogdm1tIChRRU1VKSB0byBpbXBsZW1lbnQgc29tZSBvZiBpdHMgSS9PIGZ1 bmN0aW9uYWxpdHkgYW5kCisgKiBsaWZlY3ljbGUuCisgKgorICogVGhpcyBhY2NlbGVyYXRvciBk cml2ZXMgL2Rldi9uaXRyb19lbmNsYXZlcyB0byBzcGF3biBhIE5pdHJvCisgKiBFbmNsYXZlLiBJ dCB3b3JrcyBpbiB0YW5kZW0gd2l0aCB0aGUgbml0cm9fZW5jbGF2ZXMgbWFjaGluZQorICogd2hp Y2ggZW5zdXJlcyB0aGUgY29ycmVjdCBiYWNrZW5kIGRldmljZXMgYXJlIGF2YWlsYWJsZSBhbmQK KyAqIHRoYXQgdGhlIGluaXRpYWwgc2VlZCAoYW4gRUlGIGZpbGUpIGlzIGxvYWRlZCBhdCB0aGUg Y29ycmVjdAorICogb2Zmc2V0IGluIG1lbW9yeS4KKyAqCisgKiBUaGUgYWNjZWwgc3RhcnRzIHRo ZSBlbmNsYXZlIG9uIGZpcnN0IHZDUFUgMCBtYWluIGxvb3AgZW50cnksCisgKiB0byBlbnN1cmUg dGhhdCBhbGwgZGV2aWNlIHNldHVwIGlzIGZpbmlzaGVkIGFuZCB0aGF0IHdlIGhhdmUKKyAqIGEg d29ya2luZyB2Q1BVIGxvb3AuCisgKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjAtb3ItbGF0ZXIKKyAqLworCisjaW5jbHVkZSAicWVtdS9vc2RlcC5oIgorI2luY2x1ZGUgInFl bXUvZXJyb3ItcmVwb3J0LmgiCisjaW5jbHVkZSAicWFwaS9lcnJvci5oIgorI2luY2x1ZGUgInFh cGkvdmlzaXRvci5oIgorI2luY2x1ZGUgInFlbXUvbW9kdWxlLmgiCisjaW5jbHVkZSAicWVtdS9y Y3UuaCIKKyNpbmNsdWRlICJxZW11L2FjY2VsLmgiCisjaW5jbHVkZSAicWVtdS9ndWVzdC1yYW5k b20uaCIKKyNpbmNsdWRlICJxZW11L21haW4tbG9vcC5oIgorI2luY2x1ZGUgImFjY2VsL2FjY2Vs LW9wcy5oIgorI2luY2x1ZGUgImFjY2VsL2FjY2VsLWNwdS1vcHMuaCIKKyNpbmNsdWRlICJzeXN0 ZW0vY3B1cy5oIgorI2luY2x1ZGUgImh3L2NvcmUvY3B1LmgiCisjaW5jbHVkZSAiaHcvY29yZS9i b2FyZHMuaCIKKyNpbmNsdWRlICJody9jb3JlL3N5c2J1cy5oIgorI2luY2x1ZGUgInN5c3RlbS9y YW1ibG9jay5oIgorI2luY2x1ZGUgInN5c3RlbS9uaXRyby1hY2NlbC5oIgorI2luY2x1ZGUgInRy YWNlLmgiCisKKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlICJzdGFuZGFyZC1oZWFk ZXJzL2xpbnV4L25pdHJvX2VuY2xhdmVzLmgiCisKK2Jvb2wgbml0cm9fYWxsb3dlZDsKKwordHlw ZWRlZiBzdHJ1Y3QgTml0cm9BY2NlbFN0YXRlIHsKKyAgICBBY2NlbFN0YXRlIHBhcmVudF9vYmo7 CisKKyAgICBpbnQgbmVfZmQ7CisgICAgaW50IGVuY2xhdmVfZmQ7CisgICAgdWludDY0X3Qgc2xv dF91aWQ7CisgICAgdWludDY0X3QgZW5jbGF2ZV9jaWQ7CisgICAgYm9vbCBkZWJ1Z19tb2RlOwor fSBOaXRyb0FjY2VsU3RhdGU7CisKK3N0YXRpYyBpbnQgbml0cm9faW5pdF9tYWNoaW5lKEFjY2Vs U3RhdGUgKmFzLCBNYWNoaW5lU3RhdGUgKm1zKQoreworICAgIE5pdHJvQWNjZWxTdGF0ZSAqcyA9 IE5JVFJPX0FDQ0VMKGFzKTsKKyAgICB1aW50NjRfdCBzbG90X3VpZCA9IDA7CisgICAgaW50IHJl dDsKKworICAgIHMtPm5lX2ZkID0gb3BlbigiL2Rldi9uaXRyb19lbmNsYXZlcyIsIE9fUkRXUiB8 IE9fQ0xPRVhFQyk7CisgICAgaWYgKHMtPm5lX2ZkIDwgMCkgeworICAgICAgICBlcnJvcl9yZXBv cnQoIm5pdHJvOiBmYWlsZWQgdG8gb3BlbiAvZGV2L25pdHJvX2VuY2xhdmVzOiAlcyIsCisgICAg ICAgICAgICAgICAgICAgICBzdHJlcnJvcihlcnJubykpOworICAgICAgICByZXR1cm4gLWVycm5v OworICAgIH0KKworICAgIHJldCA9IGlvY3RsKHMtPm5lX2ZkLCBORV9DUkVBVEVfVk0sICZzbG90 X3VpZCk7CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgZXJyb3JfcmVwb3J0KCJuaXRybzog TkVfQ1JFQVRFX1ZNIGZhaWxlZDogJXMiLCBzdHJlcnJvcihlcnJubykpOworICAgICAgICBjbG9z ZShzLT5uZV9mZCk7CisgICAgICAgIHJldHVybiAtZXJybm87CisgICAgfQorICAgIHMtPmVuY2xh dmVfZmQgPSByZXQ7CisgICAgcy0+c2xvdF91aWQgPSBzbG90X3VpZDsKKworICAgIHJldHVybiAw OworfQorCitzdGF0aWMgaW50IG5pdHJvX2RvbmF0ZV9yYW1fYmxvY2soUkFNQmxvY2sgKnJiLCB2 b2lkICpvcGFxdWUpCit7CisgICAgTml0cm9BY2NlbFN0YXRlICpzID0gb3BhcXVlOworICAgIHN0 cnVjdCBuZV91c2VyX21lbW9yeV9yZWdpb24gcmVnaW9uID0geworICAgICAgICAuZmxhZ3MgPSAw LAorICAgICAgICAubWVtb3J5X3NpemUgPSByYi0+dXNlZF9sZW5ndGgsCisgICAgICAgIC51c2Vy c3BhY2VfYWRkciA9ICh1aW50NjRfdCkodWludHB0cl90KXJiLT5ob3N0LAorICAgIH07CisKKyAg ICBpZiAoIXJiLT51c2VkX2xlbmd0aCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAg ICBpZiAoaW9jdGwocy0+ZW5jbGF2ZV9mZCwgTkVfU0VUX1VTRVJfTUVNT1JZX1JFR0lPTiwgJnJl Z2lvbikgPCAwKSB7CisgICAgICAgIGVycm9yX3JlcG9ydCgibml0cm86IE5FX1NFVF9VU0VSX01F TU9SWV9SRUdJT04gZmFpbGVkIGZvciAlcyAiCisgICAgICAgICAgICAgICAgICAgICAiKCUiIFBS SXU2NCAiIGJ5dGVzKTogJXMiLCByYi0+aWRzdHIsIHJiLT51c2VkX2xlbmd0aCwKKyAgICAgICAg ICAgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSk7CisgICAgICAgIHJldHVybiAtZXJybm87Cisg ICAgfQorICAgIHJldHVybiAwOworfQorCisvKgorICogU3RhcnQgdGhlIEVuY2xhdmUuIFRoaXMg Z2V0cyBjYWxsZWQgd2hlbiB0aGUgZmlyc3QgdkNQVSAwIGVudGVycyBpdHMgbWFpbgorICogbG9v cC4gQXQgdGhpcyBwb2ludCBtZW1vcnkgaXMgc2V0IHVwIGFuZCB0aGUgRUlGIGlzIGxvYWRlZC4g VGhpcyBmdW5jdGlvbgorICogZG9uYXRlcyBtZW1vcnksIGFkZHMgdkNQVXMsIGFuZCBzdGFydHMg dGhlIGVuY2xhdmUuCisgKi8KK3N0YXRpYyB2b2lkIG5pdHJvX2RvX3N0YXJ0KE5pdHJvQWNjZWxT dGF0ZSAqcykKK3sKKyAgICBNYWNoaW5lU3RhdGUgKm1zID0gTUFDSElORShxZGV2X2dldF9tYWNo aW5lKCkpOworICAgIGludCBucl9jcHVzID0gbXMtPnNtcC5jcHVzOworICAgIGludCBpLCByZXQ7 CisgICAgc3RydWN0IG5lX2VuY2xhdmVfc3RhcnRfaW5mbyBzdGFydF9pbmZvID0geworICAgICAg ICAuZmxhZ3MgPSBzLT5kZWJ1Z19tb2RlID8gTkVfRU5DTEFWRV9ERUJVR19NT0RFIDogMCwKKyAg ICAgICAgLmVuY2xhdmVfY2lkID0gcy0+ZW5jbGF2ZV9jaWQsCisgICAgfTsKKworICAgIHJldCA9 IHFlbXVfcmFtX2ZvcmVhY2hfYmxvY2sobml0cm9fZG9uYXRlX3JhbV9ibG9jaywgcyk7CisgICAg aWYgKHJldCA8IDApIHsKKyAgICAgICAgZXJyb3JfcmVwb3J0KCJuaXRybzogZmFpbGVkIHRvIGRv bmF0ZSBtZW1vcnkiKTsKKyAgICAgICAgZXhpdCgxKTsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAw OyBpIDwgbnJfY3B1czsgaSsrKSB7CisgICAgICAgIHVpbnQzMl90IGNwdV9pZCA9IDA7CisgICAg ICAgIGlmIChpb2N0bChzLT5lbmNsYXZlX2ZkLCBORV9BRERfVkNQVSwgJmNwdV9pZCkgPCAwKSB7 CisgICAgICAgICAgICBlcnJvcl9yZXBvcnQoIm5pdHJvOiBORV9BRERfVkNQVSBmYWlsZWQ6ICVz Iiwgc3RyZXJyb3IoZXJybm8pKTsKKyAgICAgICAgICAgIGV4aXQoMSk7CisgICAgICAgIH0KKyAg ICB9CisKKyAgICByZXQgPSBpb2N0bChzLT5lbmNsYXZlX2ZkLCBORV9TVEFSVF9FTkNMQVZFLCAm c3RhcnRfaW5mbyk7CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgc3dpdGNoIChlcnJubykg eworICAgICAgICBjYXNlIE5FX0VSUl9OT19NRU1fUkVHSU9OU19BRERFRDoKKyAgICAgICAgICAg IGVycm9yX3JlcG9ydCgibml0cm86IG5vIG1lbW9yeSByZWdpb25zIGFkZGVkIik7CisgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBORV9FUlJfTk9fVkNQVVNfQURERUQ6CisgICAgICAg ICAgICBlcnJvcl9yZXBvcnQoIm5pdHJvOiBubyB2Q1BVcyBhZGRlZCIpOworICAgICAgICAgICAg YnJlYWs7CisgICAgICAgIGNhc2UgTkVfRVJSX0VOQ0xBVkVfTUVNX01JTl9TSVpFOgorICAgICAg ICAgICAgZXJyb3JfcmVwb3J0KCJuaXRybzogbWVtb3J5IGlzIGJlbG93IHRoZSBtaW5pbXVtICIK KyAgICAgICAgICAgICAgICAgICAgICAgICAicmVxdWlyZWQgc2l6ZS4gVHJ5IGluY3JlYXNpbmcg LW0iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5FX0VSUl9GVUxMX0NPUkVT X05PVF9VU0VEOgorICAgICAgICAgICAgZXJyb3JfcmVwb3J0KCJuaXRybzogcmVxdWlyZXMgZnVs bCBDUFUgY29yZXMuICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiVHJ5IGluY3JlYXNpbmcg LXNtcCB0byBhIG11bHRpcGxlIG9mIHRocmVhZHMgIgorICAgICAgICAgICAgICAgICAgICAgICAg ICJwZXIgY29yZSBvbiB0aGlzIGhvc3QgKGUuZy4gLXNtcCAyKSIpOworICAgICAgICAgICAgYnJl YWs7CisgICAgICAgIGNhc2UgTkVfRVJSX05PVF9JTl9JTklUX1NUQVRFOgorICAgICAgICAgICAg ZXJyb3JfcmVwb3J0KCJuaXRybzogbm90IGluIGluaXQgc3RhdGUiKTsKKyAgICAgICAgICAgIGJy ZWFrOworICAgICAgICBjYXNlIE5FX0VSUl9JTlZBTElEX0ZMQUdfVkFMVUU6CisgICAgICAgICAg ICBlcnJvcl9yZXBvcnQoIm5pdHJvOiBpbnZhbGlkIGZsYWcgdmFsdWUgZm9yIE5FX1NUQVJUX0VO Q0xBVkUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5FX0VSUl9JTlZBTElE X0VOQ0xBVkVfQ0lEOgorICAgICAgICAgICAgZXJyb3JfcmVwb3J0KCJuaXRybzogaW52YWxpZCBl bmNsYXZlIENJRCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg ICAgICAgICBlcnJvcl9yZXBvcnQoIm5pdHJvOiBORV9TVEFSVF9FTkNMQVZFIGZhaWxlZDogJXMg KGVycm5vICVkKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZXJyb3IoZXJybm8pLCBl cnJubyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBleGl0KDEpOwor ICAgIH0KKworICAgIHMtPmVuY2xhdmVfY2lkID0gc3RhcnRfaW5mby5lbmNsYXZlX2NpZDsKKyAg ICB0cmFjZV9uaXRyb19lbmNsYXZlX3N0YXJ0ZWQocy0+ZW5jbGF2ZV9jaWQpOworCisgICAgLyoK KyAgICAgKiBQdXNoIGVuY2xhdmUgQ0lEIHRvIGFsbCBkZXZpY2VzIHRoYXQgbmVlZCBpdC4KKyAg ICAgKiBFYWNoIGRldmljZSBoYW5kbGVzIGl0cyBvd24gY29ubmVjdGlvbiAoY29uc29sZSwgaGVh cnRiZWF0KS4KKyAgICAgKi8KKyAgICB7CisgICAgICAgIEJ1c1N0YXRlICpzeXNidXMgPSBzeXNi dXNfZ2V0X2RlZmF1bHQoKTsKKyAgICAgICAgQnVzQ2hpbGQgKmtpZDsKKworICAgICAgICBRVEFJ TFFfRk9SRUFDSChraWQsICZzeXNidXMtPmNoaWxkcmVuLCBzaWJsaW5nKSB7CisgICAgICAgICAg ICBEZXZpY2VTdGF0ZSAqZGV2ID0ga2lkLT5jaGlsZDsKKyAgICAgICAgICAgIGlmIChvYmplY3Rf cHJvcGVydHlfZmluZChPQkpFQ1QoZGV2KSwgImVuY2xhdmUtY2lkIikpIHsKKyAgICAgICAgICAg ICAgICBvYmplY3RfcHJvcGVydHlfc2V0X3VpbnQoT0JKRUNUKGRldiksICJlbmNsYXZlLWNpZCIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMtPmVuY2xhdmVfY2lk LCBOVUxMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLyoKKyAqIHZD UFUgZHVtbXkgdGhyZWFkIGZ1bmN0aW9uLiBUaGUgcmVhbCB2Q1BVcyBydW4gaW5zaWRlIHRoZSBl bmNsYXZlLgorICoKKyAqIEJhc2VkIG9uIGR1bW15X2NwdV90aHJlYWRfZm4oKSBmcm9tIGFjY2Vs L2R1bW15LWNwdXMuYy4KKyAqLworc3RhdGljIHZvaWQgKm5pdHJvX3ZjcHVfdGhyZWFkX2ZuKHZv aWQgKmFyZykKK3sKKyAgICBDUFVTdGF0ZSAqY3B1ID0gYXJnOworICAgIE5pdHJvQWNjZWxTdGF0 ZSAqcyA9IE5JVFJPX0FDQ0VMKGN1cnJlbnRfYWNjZWwoKSk7CisgICAgc2lnc2V0X3Qgd2FpdHNl dDsKKworICAgIHJjdV9yZWdpc3Rlcl90aHJlYWQoKTsKKworICAgIGJxbF9sb2NrKCk7CisgICAg cWVtdV90aHJlYWRfZ2V0X3NlbGYoY3B1LT50aHJlYWQpOworICAgIGNwdS0+dGhyZWFkX2lkID0g cWVtdV9nZXRfdGhyZWFkX2lkKCk7CisgICAgY3VycmVudF9jcHUgPSBjcHU7CisKKyAgICBzaWdl bXB0eXNldCgmd2FpdHNldCk7CisgICAgc2lnYWRkc2V0KCZ3YWl0c2V0LCBTSUdfSVBJKTsKKwor ICAgIGNwdV90aHJlYWRfc2lnbmFsX2NyZWF0ZWQoY3B1KTsKKyAgICBxZW11X2d1ZXN0X3JhbmRv bV9zZWVkX3RocmVhZF9wYXJ0MihjcHUtPnJhbmRvbV9zZWVkKTsKKworICAgIC8qIHZDUFUgMCBz dGFydHMgdGhlIGVuY2xhdmUgb24gZmlyc3QgZW50cnkgKi8KKyAgICBpZiAoY3B1LT5jcHVfaW5k ZXggPT0gMCkgeworICAgICAgICBuaXRyb19kb19zdGFydChzKTsKKyAgICB9CisKKyAgICBkbyB7 CisgICAgICAgIHFlbXVfcHJvY2Vzc19jcHVfZXZlbnRzKGNwdSk7CisgICAgICAgIGJxbF91bmxv Y2soKTsKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHNpZzsKKyAgICAgICAgICAgIHdoaWxl IChzaWd3YWl0KCZ3YWl0c2V0LCAmc2lnKSA9PSAtMSAmJgorICAgICAgICAgICAgICAgICAgIChl cnJubyA9PSBFQUdBSU4gfHwgZXJybm8gPT0gRUlOVFIpKSB7CisgICAgICAgICAgICAgICAgLyog cmV0cnkgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBicWxfbG9jaygpOwor ICAgIH0gd2hpbGUgKCFjcHUtPnVucGx1Zyk7CisKKyAgICBicWxfdW5sb2NrKCk7CisgICAgcmN1 X3VucmVnaXN0ZXJfdGhyZWFkKCk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lk IG5pdHJvX3N0YXJ0X3ZjcHVfdGhyZWFkKENQVVN0YXRlICpjcHUpCit7CisgICAgY2hhciB0aHJl YWRfbmFtZVtWQ1BVX1RIUkVBRF9OQU1FX1NJWkVdOworCisgICAgc25wcmludGYodGhyZWFkX25h bWUsIFZDUFVfVEhSRUFEX05BTUVfU0laRSwgIkNQVSAlZC9OaXRybyIsCisgICAgICAgICAgICAg Y3B1LT5jcHVfaW5kZXgpOworICAgIHFlbXVfdGhyZWFkX2NyZWF0ZShjcHUtPnRocmVhZCwgdGhy ZWFkX25hbWUsIG5pdHJvX3ZjcHVfdGhyZWFkX2ZuLAorICAgICAgICAgICAgICAgICAgICAgICBj cHUsIFFFTVVfVEhSRUFEX0pPSU5BQkxFKTsKK30KKworLyogUU9NIHByb3BlcnRpZXMgKi8KKwor c3RhdGljIGJvb2wgbml0cm9fZ2V0X2RlYnVnX21vZGUoT2JqZWN0ICpvYmosIEVycm9yICoqZXJy cCkKK3sKKyAgICByZXR1cm4gTklUUk9fQUNDRUwob2JqKS0+ZGVidWdfbW9kZTsKK30KKworc3Rh dGljIHZvaWQgbml0cm9fc2V0X2RlYnVnX21vZGUoT2JqZWN0ICpvYmosIGJvb2wgdmFsdWUsIEVy cm9yICoqZXJycCkKK3sKKyAgICBOSVRST19BQ0NFTChvYmopLT5kZWJ1Z19tb2RlID0gdmFsdWU7 Cit9CisKK3N0YXRpYyB2b2lkIG5pdHJvX2dldF9lbmNsYXZlX2NpZChPYmplY3QgKm9iaiwgVmlz aXRvciAqdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpu YW1lLCB2b2lkICpvcGFxdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJy b3IgKiplcnJwKQoreworICAgIHVpbnQ2NF90IHZhbCA9IE5JVFJPX0FDQ0VMKG9iaiktPmVuY2xh dmVfY2lkOworICAgIHZpc2l0X3R5cGVfdWludDY0KHYsIG5hbWUsICZ2YWwsIGVycnApOworfQor CitzdGF0aWMgdm9pZCBuaXRyb19zZXRfZW5jbGF2ZV9jaWQoT2JqZWN0ICpvYmosIFZpc2l0b3Ig KnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwg dm9pZCAqb3BhcXVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoq ZXJycCkKK3sKKyAgICB1aW50NjRfdCB2YWw7CisgICAgaWYgKHZpc2l0X3R5cGVfdWludDY0KHYs IG5hbWUsICZ2YWwsIGVycnApKSB7CisgICAgICAgIE5JVFJPX0FDQ0VMKG9iaiktPmVuY2xhdmVf Y2lkID0gdmFsOworICAgIH0KK30KKworc3RhdGljIHZvaWQgbml0cm9fYWNjZWxfY2xhc3NfaW5p dChPYmplY3RDbGFzcyAqb2MsIGNvbnN0IHZvaWQgKmRhdGEpCit7CisgICAgQWNjZWxDbGFzcyAq YWMgPSBBQ0NFTF9DTEFTUyhvYyk7CisgICAgYWMtPm5hbWUgPSAiTml0cm8iOworICAgIGFjLT5p bml0X21hY2hpbmUgPSBuaXRyb19pbml0X21hY2hpbmU7CisgICAgYWMtPmFsbG93ZWQgPSAmbml0 cm9fYWxsb3dlZDsKKworICAgIG9iamVjdF9jbGFzc19wcm9wZXJ0eV9hZGRfYm9vbChvYywgImRl YnVnLW1vZGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaXRyb19nZXRf ZGVidWdfbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbml0cm9fc2V0 X2RlYnVnX21vZGUpOworICAgIG9iamVjdF9jbGFzc19wcm9wZXJ0eV9zZXRfZGVzY3JpcHRpb24o b2MsICJkZWJ1Zy1tb2RlIiwKKyAgICAgICAgIlN0YXJ0IGVuY2xhdmUgaW4gZGVidWcgbW9kZSAo ZW5hYmxlcyBjb25zb2xlIG91dHB1dCkiKTsKKworICAgIG9iamVjdF9jbGFzc19wcm9wZXJ0eV9h ZGQob2MsICJlbmNsYXZlLWNpZCIsICJ1aW50NjQiLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbml0cm9fZ2V0X2VuY2xhdmVfY2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbml0cm9fc2V0X2VuY2xhdmVfY2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TlVMTCwgTlVMTCk7CisgICAgb2JqZWN0X2NsYXNzX3Byb3BlcnR5X3NldF9kZXNjcmlwdGlvbihv YywgImVuY2xhdmUtY2lkIiwKKyAgICAgICAgIkVuY2xhdmUgQ0lEICgwID0gYXV0by1hc3NpZ25l ZCBieSBOaXRybykiKTsKK30KKworc3RhdGljIGNvbnN0IFR5cGVJbmZvIG5pdHJvX2FjY2VsX3R5 cGUgPSB7CisgICAgLm5hbWUgPSBUWVBFX05JVFJPX0FDQ0VMLAorICAgIC5wYXJlbnQgPSBUWVBF X0FDQ0VMLAorICAgIC5pbnN0YW5jZV9zaXplID0gc2l6ZW9mKE5pdHJvQWNjZWxTdGF0ZSksCisg ICAgLmNsYXNzX2luaXQgPSBuaXRyb19hY2NlbF9jbGFzc19pbml0LAorfTsKK21vZHVsZV9vYmoo VFlQRV9OSVRST19BQ0NFTCk7CisKK3N0YXRpYyB2b2lkIG5pdHJvX2FjY2VsX29wc19jbGFzc19p bml0KE9iamVjdENsYXNzICpvYywgY29uc3Qgdm9pZCAqZGF0YSkKK3sKKyAgICBBY2NlbE9wc0Ns YXNzICpvcHMgPSBBQ0NFTF9PUFNfQ0xBU1Mob2MpOworICAgIG9wcy0+Y3JlYXRlX3ZjcHVfdGhy ZWFkID0gbml0cm9fc3RhcnRfdmNwdV90aHJlYWQ7CisgICAgb3BzLT5oYW5kbGVfaW50ZXJydXB0 ID0gZ2VuZXJpY19oYW5kbGVfaW50ZXJydXB0OworfQorCitzdGF0aWMgY29uc3QgVHlwZUluZm8g bml0cm9fYWNjZWxfb3BzX3R5cGUgPSB7CisgICAgLm5hbWUgPSBBQ0NFTF9PUFNfTkFNRSgibml0 cm8iKSwKKyAgICAucGFyZW50ID0gVFlQRV9BQ0NFTF9PUFMsCisgICAgLmNsYXNzX2luaXQgPSBu aXRyb19hY2NlbF9vcHNfY2xhc3NfaW5pdCwKKyAgICAuYWJzdHJhY3QgPSB0cnVlLAorfTsKK21v ZHVsZV9vYmooQUNDRUxfT1BTX05BTUUoIm5pdHJvIikpOworCitzdGF0aWMgdm9pZCBuaXRyb190 eXBlX2luaXQodm9pZCkKK3sKKyAgICB0eXBlX3JlZ2lzdGVyX3N0YXRpYygmbml0cm9fYWNjZWxf dHlwZSk7CisgICAgdHlwZV9yZWdpc3Rlcl9zdGF0aWMoJm5pdHJvX2FjY2VsX29wc190eXBlKTsK K30KKwordHlwZV9pbml0KG5pdHJvX3R5cGVfaW5pdCk7CmRpZmYgLS1naXQgYS9hY2NlbC9uaXRy by90cmFjZS1ldmVudHMgYi9hY2NlbC9uaXRyby90cmFjZS1ldmVudHMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTY3M2ViNWFhMgotLS0gL2Rldi9udWxsCisrKyBiL2Fj Y2VsL25pdHJvL3RyYWNlLWV2ZW50cwpAQCAtMCwwICsxLDYgQEAKKyMgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKyMKKyMgU2VlIGRvY3MvZGV2ZWwvdHJhY2luZy5y c3QgZm9yIHN5bnRheCBkb2N1bWVudGF0aW9uLgorCisjIG5pdHJvLWFjY2VsLmMKK25pdHJvX2Vu Y2xhdmVfc3RhcnRlZCh1aW50NjRfdCBjaWQpICJuaXRybzogZW5jbGF2ZSBzdGFydGVkLCBDSUQ9 JSJQUkl1NjQKZGlmZiAtLWdpdCBhL2FjY2VsL25pdHJvL3RyYWNlLmggYi9hY2NlbC9uaXRyby90 cmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjhjNTU2NDcyNWQK LS0tIC9kZXYvbnVsbAorKysgYi9hY2NlbC9uaXRyby90cmFjZS5oCkBAIC0wLDAgKzEsMiBAQAor LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIgKi8KKyNpbmNsdWRl ICJ0cmFjZS90cmFjZS1hY2NlbF9uaXRyby5oIgpkaWZmIC0tZ2l0IGEvYWNjZWwvc3R1YnMvbWVz b24uYnVpbGQgYi9hY2NlbC9zdHVicy9tZXNvbi5idWlsZAppbmRleCA0OGVjY2QxYjg2Li41ZGU0 YTI3OWZmIDEwMDY0NAotLS0gYS9hY2NlbC9zdHVicy9tZXNvbi5idWlsZAorKysgYi9hY2NlbC9z dHVicy9tZXNvbi5idWlsZApAQCAtMyw2ICszLDcgQEAgc3lzdGVtX3N0dWJzX3NzLmFkZCh3aGVu OiAnQ09ORklHX1hFTicsIGlmX2ZhbHNlOiBmaWxlcygneGVuLXN0dWIuYycpKQogc3lzdGVtX3N0 dWJzX3NzLmFkZCh3aGVuOiAnQ09ORklHX0tWTScsIGlmX2ZhbHNlOiBmaWxlcygna3ZtLXN0dWIu YycpKQogc3lzdGVtX3N0dWJzX3NzLmFkZCh3aGVuOiAnQ09ORklHX1RDRycsIGlmX2ZhbHNlOiBm aWxlcygndGNnLXN0dWIuYycpKQogc3lzdGVtX3N0dWJzX3NzLmFkZCh3aGVuOiAnQ09ORklHX0hW RicsIGlmX2ZhbHNlOiBmaWxlcygnaHZmLXN0dWIuYycpKQorc3lzdGVtX3N0dWJzX3NzLmFkZCh3 aGVuOiAnQ09ORklHX05JVFJPJywgaWZfZmFsc2U6IGZpbGVzKCduaXRyby1zdHViLmMnKSkKIHN5 c3RlbV9zdHVic19zcy5hZGQod2hlbjogJ0NPTkZJR19OVk1NJywgaWZfZmFsc2U6IGZpbGVzKCdu dm1tLXN0dWIuYycpKQogc3lzdGVtX3N0dWJzX3NzLmFkZCh3aGVuOiAnQ09ORklHX1dIUFgnLCBp Zl9mYWxzZTogZmlsZXMoJ3docHgtc3R1Yi5jJykpCiBzeXN0ZW1fc3R1YnNfc3MuYWRkKHdoZW46 ICdDT05GSUdfTVNIVicsIGlmX2ZhbHNlOiBmaWxlcygnbXNodi1zdHViLmMnKSkKZGlmZiAtLWdp dCBhL2FjY2VsL3N0dWJzL25pdHJvLXN0dWIuYyBiL2FjY2VsL3N0dWJzL25pdHJvLXN0dWIuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xODZjODQ0NGY4Ci0tLSAvZGV2 L251bGwKKysrIGIvYWNjZWwvc3R1YnMvbml0cm8tc3R1Yi5jCkBAIC0wLDAgKzEsMTEgQEAKKy8q CisgKiBOaXRybyBhY2NlbCBzdHVicyBmb3IgUUVNVQorICoKKyAqIENvcHlyaWdodCDCqSAyMDI2 IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu CisgKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKyAqLwor CisjaW5jbHVkZSAicWVtdS9vc2RlcC5oIgorCitib29sIG5pdHJvX2FsbG93ZWQ7CmRpZmYgLS1n aXQgYS9pbmNsdWRlL3N5c3RlbS9od19hY2NlbC5oIGIvaW5jbHVkZS9zeXN0ZW0vaHdfYWNjZWwu aAppbmRleCA2MjhhNTBlMDY2Li5mMGMxMGI2ZDgwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3N5c3Rl bS9od19hY2NlbC5oCisrKyBiL2luY2x1ZGUvc3lzdGVtL2h3X2FjY2VsLmgKQEAgLTE3LDYgKzE3 LDcgQEAKICNpbmNsdWRlICJzeXN0ZW0vbXNodi5oIgogI2luY2x1ZGUgInN5c3RlbS93aHB4Lmgi CiAjaW5jbHVkZSAic3lzdGVtL252bW0uaCIKKyNpbmNsdWRlICJzeXN0ZW0vbml0cm8tYWNjZWwu aCIKIAogLyoqCiAgKiBjcHVfc3luY2hyb25pemVfc3RhdGU6CmRpZmYgLS1naXQgYS9pbmNsdWRl L3N5c3RlbS9uaXRyby1hY2NlbC5oIGIvaW5jbHVkZS9zeXN0ZW0vbml0cm8tYWNjZWwuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5hOTNhYTZmYjAwCi0tLSAvZGV2L251 bGwKKysrIGIvaW5jbHVkZS9zeXN0ZW0vbml0cm8tYWNjZWwuaApAQCAtMCwwICsxLDI1IEBACisv KgorICogTml0cm8gRW5jbGF2ZXMgYWNjZWxlcmF0b3IgLSBwdWJsaWMgaW50ZXJmYWNlCisgKgor ICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisjaWZu ZGVmIFNZU1RFTV9OSVRST19BQ0NFTF9ICisjZGVmaW5lIFNZU1RFTV9OSVRST19BQ0NFTF9ICisK KyNpbmNsdWRlICJxZW11L2FjY2VsLmgiCisKK2V4dGVybiBib29sIG5pdHJvX2FsbG93ZWQ7CisK K3N0YXRpYyBpbmxpbmUgYm9vbCBuaXRyb19lbmFibGVkKHZvaWQpCit7CisgICAgcmV0dXJuIG5p dHJvX2FsbG93ZWQ7Cit9CisKKyNkZWZpbmUgVFlQRV9OSVRST19BQ0NFTCBBQ0NFTF9DTEFTU19O QU1FKCJuaXRybyIpCisKK3R5cGVkZWYgc3RydWN0IE5pdHJvQWNjZWxTdGF0ZSBOaXRyb0FjY2Vs U3RhdGU7CitERUNMQVJFX0lOU1RBTkNFX0NIRUNLRVIoTml0cm9BY2NlbFN0YXRlLCBOSVRST19B Q0NFTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBUWVBFX05JVFJPX0FDQ0VMKQorCisjZW5k aWYgLyogU1lTVEVNX05JVFJPX0FDQ0VMX0ggKi8KZGlmZiAtLWdpdCBhL21lc29uLmJ1aWxkIGIv bWVzb24uYnVpbGQKaW5kZXggNGFmMzJjM2UxZi4uYmRlZWU2NWRiMiAxMDA2NDQKLS0tIGEvbWVz b24uYnVpbGQKKysrIGIvbWVzb24uYnVpbGQKQEAgLTMwMiwxMSArMzAyLDEzIEBAIGFjY2VsZXJh dG9yX3RhcmdldHMgKz0geyAnQ09ORklHX1hFTic6IHhlbl90YXJnZXRzIH0KIGlmIGNwdSA9PSAn YWFyY2g2NCcKICAgYWNjZWxlcmF0b3JfdGFyZ2V0cyArPSB7CiAgICAgJ0NPTkZJR19IVkYnOiBb J2FhcmNoNjQtc29mdG1tdSddLAorICAgICdDT05GSUdfTklUUk8nOiBbJ2FhcmNoNjQtc29mdG1t dSddLAogICAgICdDT05GSUdfV0hQWCc6IFsnYWFyY2g2NC1zb2Z0bW11J10KICAgfQogZWxpZiBj cHUgPT0gJ3g4Nl82NCcKICAgYWNjZWxlcmF0b3JfdGFyZ2V0cyArPSB7CiAgICAgJ0NPTkZJR19I VkYnOiBbJ3g4Nl82NC1zb2Z0bW11J10sCisgICAgJ0NPTkZJR19OSVRSTyc6IFsneDg2XzY0LXNv ZnRtbXUnXSwKICAgICAnQ09ORklHX05WTU0nOiBbJ2kzODYtc29mdG1tdScsICd4ODZfNjQtc29m dG1tdSddLAogICAgICdDT05GSUdfV0hQWCc6IFsnaTM4Ni1zb2Z0bW11JywgJ3g4Nl82NC1zb2Z0 bW11J10sCiAgICAgJ0NPTkZJR19NU0hWJzogWyd4ODZfNjQtc29mdG1tdSddLApAQCAtODgxLDYg Kzg4MywxMSBAQCBpZiBnZXRfb3B0aW9uKCdodmYnKS5hbGxvd2VkKCkKICAgZW5kaWYKIGVuZGlm CiAKK25pdHJvID0gbm90X2ZvdW5kCitpZiBnZXRfb3B0aW9uKCduaXRybycpLmFsbG93ZWQoKSBh bmQgaG9zdF9vcyA9PSAnbGludXgnCisgIGFjY2VsZXJhdG9ycyArPSAnQ09ORklHX05JVFJPJwor ZW5kaWYKKwogbnZtbSA9IG5vdF9mb3VuZAogaWYgaG9zdF9vcyA9PSAnbmV0YnNkJwogICBudm1t ID0gY2MuZmluZF9saWJyYXJ5KCdudm1tJywgcmVxdWlyZWQ6IGdldF9vcHRpb24oJ252bW0nKSkK QEAgLTkyMiw2ICs5MjksOSBAQCBlbmRpZgogaWYgJ0NPTkZJR19IVkYnIG5vdCBpbiBhY2NlbGVy YXRvcnMgYW5kIGdldF9vcHRpb24oJ2h2ZicpLmVuYWJsZWQoKQogICBlcnJvcignSFZGIG5vdCBh dmFpbGFibGUgb24gdGhpcyBwbGF0Zm9ybScpCiBlbmRpZgoraWYgJ0NPTkZJR19OSVRSTycgbm90 IGluIGFjY2VsZXJhdG9ycyBhbmQgZ2V0X29wdGlvbignbml0cm8nKS5lbmFibGVkKCkKKyAgZXJy b3IoJ05JVFJPIG5vdCBhdmFpbGFibGUgb24gdGhpcyBwbGF0Zm9ybScpCitlbmRpZgogaWYgJ0NP TkZJR19OVk1NJyBub3QgaW4gYWNjZWxlcmF0b3JzIGFuZCBnZXRfb3B0aW9uKCdudm1tJykuZW5h YmxlZCgpCiAgIGVycm9yKCdOVk1NIG5vdCBhdmFpbGFibGUgb24gdGhpcyBwbGF0Zm9ybScpCiBl bmRpZgpAQCAtMzU5Myw2ICszNjAzLDcgQEAgaWYgaGF2ZV9zeXN0ZW0KICAgICAnYWNjZWwvaHZm JywKICAgICAnYWNjZWwva3ZtJywKICAgICAnYWNjZWwvbXNodicsCisgICAgJ2FjY2VsL25pdHJv JywKICAgICAnYXVkaW8nLAogICAgICdiYWNrZW5kcycsCiAgICAgJ2JhY2tlbmRzL3RwbScsCmRp ZmYgLS1naXQgYS9tZXNvbl9vcHRpb25zLnR4dCBiL21lc29uX29wdGlvbnMudHh0CmluZGV4IDI4 MzYxNTYyNTcuLjMxZDU5MTZjZmMgMTAwNjQ0Ci0tLSBhL21lc29uX29wdGlvbnMudHh0CisrKyBi L21lc29uX29wdGlvbnMudHh0CkBAIC03OSw2ICs3OSw4IEBAIG9wdGlvbignd2hweCcsIHR5cGU6 ICdmZWF0dXJlJywgdmFsdWU6ICdhdXRvJywKICAgICAgICBkZXNjcmlwdGlvbjogJ1dIUFggYWNj ZWxlcmF0aW9uIHN1cHBvcnQnKQogb3B0aW9uKCdodmYnLCB0eXBlOiAnZmVhdHVyZScsIHZhbHVl OiAnYXV0bycsCiAgICAgICAgZGVzY3JpcHRpb246ICdIVkYgYWNjZWxlcmF0aW9uIHN1cHBvcnQn KQorb3B0aW9uKCduaXRybycsIHR5cGU6ICdmZWF0dXJlJywgdmFsdWU6ICdhdXRvJywKKyAgICAg ICBkZXNjcmlwdGlvbjogJ05pdHJvIGFjY2VsZXJhdGlvbiBzdXBwb3J0JykKIG9wdGlvbignbnZt bScsIHR5cGU6ICdmZWF0dXJlJywgdmFsdWU6ICdhdXRvJywKICAgICAgICBkZXNjcmlwdGlvbjog J05WTU0gYWNjZWxlcmF0aW9uIHN1cHBvcnQnKQogb3B0aW9uKCd4ZW4nLCB0eXBlOiAnZmVhdHVy ZScsIHZhbHVlOiAnYXV0bycsCmRpZmYgLS1naXQgYS9xZW11LW9wdGlvbnMuaHggYi9xZW11LW9w dGlvbnMuaHgKaW5kZXggMzNmY2ZlN2NlNi4uOWI2ZmIyNDdmNyAxMDA2NDQKLS0tIGEvcWVtdS1v cHRpb25zLmh4CisrKyBiL3FlbXUtb3B0aW9ucy5oeApAQCAtMjgsNyArMjgsNyBAQCBERUYoIm1h Y2hpbmUiLCBIQVNfQVJHLCBRRU1VX09QVElPTl9tYWNoaW5lLCBcCiAgICAgIi1tYWNoaW5lIFt0 eXBlPV1uYW1lWyxwcm9wWz12YWx1ZV1bLC4uLl1dXG4iCiAgICAgIiAgICAgICAgICAgICAgICBz ZWxlY3RzIGVtdWxhdGVkIG1hY2hpbmUgKCctbWFjaGluZSBoZWxwJyBmb3IgbGlzdClcbiIKICAg ICAiICAgICAgICAgICAgICAgIHByb3BlcnR5IGFjY2VsPWFjY2VsMVs6YWNjZWwyWzouLi5dXSBz ZWxlY3RzIGFjY2VsZXJhdG9yXG4iCi0gICAgIiAgICAgICAgICAgICAgICBzdXBwb3J0ZWQgYWNj ZWxlcmF0b3JzIGFyZSBrdm0sIHhlbiwgaHZmLCBudm1tLCB3aHB4LCBtc2h2IG9yIHRjZyAoZGVm YXVsdDogdGNnKVxuIgorICAgICIgICAgICAgICAgICAgICAgc3VwcG9ydGVkIGFjY2VsZXJhdG9y cyBhcmUga3ZtLCB4ZW4sIGh2Ziwgbml0cm8sIG52bW0sIHdocHgsIG1zaHYgb3IgdGNnIChkZWZh dWx0OiB0Y2cpXG4iCiAgICAgIiAgICAgICAgICAgICAgICB2bXBvcnQ9b258b2ZmfGF1dG8gY29u dHJvbHMgZW11bGF0aW9uIG9mIHZtcG9ydCAoZGVmYXVsdDogYXV0bylcbiIKICAgICAiICAgICAg ICAgICAgICAgIGR1bXAtZ3Vlc3QtY29yZT1vbnxvZmYgaW5jbHVkZSBndWVzdCBtZW1vcnkgaW4g YSBjb3JlIGR1bXAgKGRlZmF1bHQ9b24pXG4iCiAgICAgIiAgICAgICAgICAgICAgICBtZW0tbWVy Z2U9b258b2ZmIGNvbnRyb2xzIG1lbW9yeSBtZXJnZSBzdXBwb3J0IChkZWZhdWx0OiBvbilcbiIK QEAgLTY3LDcgKzY3LDcgQEAgU1JTVAogCiAgICAgYGBhY2NlbD1hY2NlbHMxWzphY2NlbHMyWzou Li5dXWBgCiAgICAgICAgIFRoaXMgaXMgdXNlZCB0byBlbmFibGUgYW4gYWNjZWxlcmF0b3IuIERl cGVuZGluZyBvbiB0aGUgdGFyZ2V0Ci0gICAgICAgIGFyY2hpdGVjdHVyZSwga3ZtLCB4ZW4sIGh2 ZiwgbnZtbSwgd2hweCwgbXNodiBvciB0Y2cgY2FuIGJlCisgICAgICAgIGFyY2hpdGVjdHVyZSwg a3ZtLCB4ZW4sIGh2Ziwgbml0cm8sIG52bW0sIHdocHgsIG1zaHYgb3IgdGNnIGNhbiBiZQogICAg ICAgICBhdmFpbGFibGUuIEJ5IGRlZmF1bHQsIHRjZyBpcyB1c2VkLiBJZiB0aGVyZSBpcyBtb3Jl IHRoYW4gb25lCiAgICAgICAgIGFjY2VsZXJhdG9yIHNwZWNpZmllZCwgdGhlIG5leHQgb25lIGlz IHVzZWQgaWYgdGhlIHByZXZpb3VzIG9uZQogICAgICAgICBmYWlscyB0byBpbml0aWFsaXplLgpA QCAtMjI4LDcgKzIyOCw3IEBAIEVSU1QKIAogREVGKCJhY2NlbCIsIEhBU19BUkcsIFFFTVVfT1BU SU9OX2FjY2VsLAogICAgICItYWNjZWwgW2FjY2VsPV1hY2NlbGVyYXRvclsscHJvcFs9dmFsdWVd WywuLi5dXVxuIgotICAgICIgICAgICAgICAgICAgICAgc2VsZWN0IGFjY2VsZXJhdG9yIChrdm0s IHhlbiwgaHZmLCBudm1tLCB3aHB4LCBtc2h2IG9yIHRjZzsgdXNlICdoZWxwJyBmb3IgYSBsaXN0 KVxuIgorICAgICIgICAgICAgICAgICAgICAgc2VsZWN0IGFjY2VsZXJhdG9yIChrdm0sIHhlbiwg aHZmLCBuaXRybywgbnZtbSwgd2hweCwgbXNodiBvciB0Y2c7IHVzZSAnaGVscCcgZm9yIGEgbGlz dClcbiIKICAgICAiICAgICAgICAgICAgICAgIGlnZC1wYXNzdGhydT1vbnxvZmYgKGVuYWJsZSBY ZW4gaW50ZWdyYXRlZCBJbnRlbCBncmFwaGljcyBwYXNzdGhyb3VnaCwgZGVmYXVsdD1vZmYpXG4i CiAgICAgIiAgICAgICAgICAgICAgICBrZXJuZWwtaXJxY2hpcD1vbnxvZmZ8c3BsaXQgY29udHJv bHMgYWNjZWxlcmF0ZWQgaXJxY2hpcCBzdXBwb3J0IChkZWZhdWx0PW9uKVxuIgogICAgICIgICAg ICAgICAgICAgICAga3ZtLXNoYWRvdy1tZW09c2l6ZSBvZiBLVk0gc2hhZG93IE1NVSBpbiBieXRl c1xuIgpAQCAtMjQzLDcgKzI0Myw3IEBAIERFRigiYWNjZWwiLCBIQVNfQVJHLCBRRU1VX09QVElP Tl9hY2NlbCwKIFNSU1QKIGBgLWFjY2VsIG5hbWVbLHByb3A9dmFsdWVbLC4uLl1dYGAKICAgICBU aGlzIGlzIHVzZWQgdG8gZW5hYmxlIGFuIGFjY2VsZXJhdG9yLiBEZXBlbmRpbmcgb24gdGhlIHRh cmdldAotICAgIGFyY2hpdGVjdHVyZSwga3ZtLCB4ZW4sIGh2ZiwgbnZtbSwgd2hweCwgbXNodiBv ciB0Y2cgY2FuIGJlIGF2YWlsYWJsZS4KKyAgICBhcmNoaXRlY3R1cmUsIGt2bSwgeGVuLCBodmYs IG5pdHJvLCBudm1tLCB3aHB4LCBtc2h2IG9yIHRjZyBjYW4gYmUgYXZhaWxhYmxlLgogICAgIEJ5 IGRlZmF1bHQsIHRjZyBpcyB1c2VkLiBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGFjY2VsZXJh dG9yCiAgICAgc3BlY2lmaWVkLCB0aGUgbmV4dCBvbmUgaXMgdXNlZCBpZiB0aGUgcHJldmlvdXMg b25lIGZhaWxzIHRvCiAgICAgaW5pdGlhbGl6ZS4KZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWVzb24t YnVpbGRvcHRpb25zLnNoIGIvc2NyaXB0cy9tZXNvbi1idWlsZG9wdGlvbnMuc2gKaW5kZXggZThl ZGM1MjUyYS4uY2E1YjExMzExOSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tZXNvbi1idWlsZG9wdGlv bnMuc2gKKysrIGIvc2NyaXB0cy9tZXNvbi1idWlsZG9wdGlvbnMuc2gKQEAgLTE1OCw2ICsxNTgs NyBAQCBtZXNvbl9vcHRpb25zX2hlbHAoKSB7CiAgIHByaW50ZiAiJXNcbiIgJyAgbXVsdGlwcm9j ZXNzICAgIE91dCBvZiBwcm9jZXNzIGRldmljZSBlbXVsYXRpb24gc3VwcG9ydCcKICAgcHJpbnRm ICIlc1xuIiAnICBuZXRtYXAgICAgICAgICAgbmV0bWFwIG5ldHdvcmsgYmFja2VuZCBzdXBwb3J0 JwogICBwcmludGYgIiVzXG4iICcgIG5ldHRsZSAgICAgICAgICBuZXR0bGUgY3J5cHRvZ3JhcGh5 IHN1cHBvcnQnCisgIHByaW50ZiAiJXNcbiIgJyAgbml0cm8gICAgICAgICAgIE5pdHJvIGFjY2Vs ZXJhdGlvbiBzdXBwb3J0JwogICBwcmludGYgIiVzXG4iICcgIG51bWEgICAgICAgICAgICBsaWJu dW1hIHN1cHBvcnQnCiAgIHByaW50ZiAiJXNcbiIgJyAgbnZtbSAgICAgICAgICAgIE5WTU0gYWNj ZWxlcmF0aW9uIHN1cHBvcnQnCiAgIHByaW50ZiAiJXNcbiIgJyAgb3BlbmdsICAgICAgICAgIE9w ZW5HTCBzdXBwb3J0JwpAQCAtNDE4LDYgKzQxOSw4IEBAIF9tZXNvbl9vcHRpb25fcGFyc2UoKSB7 CiAgICAgLS1kaXNhYmxlLW5ldG1hcCkgcHJpbnRmICIlcyIgLURuZXRtYXA9ZGlzYWJsZWQgOzsK ICAgICAtLWVuYWJsZS1uZXR0bGUpIHByaW50ZiAiJXMiIC1EbmV0dGxlPWVuYWJsZWQgOzsKICAg ICAtLWRpc2FibGUtbmV0dGxlKSBwcmludGYgIiVzIiAtRG5ldHRsZT1kaXNhYmxlZCA7OworICAg IC0tZW5hYmxlLW5pdHJvKSBwcmludGYgIiVzIiAtRG5pdHJvPWVuYWJsZWQgOzsKKyAgICAtLWRp c2FibGUtbml0cm8pIHByaW50ZiAiJXMiIC1Ebml0cm89ZGlzYWJsZWQgOzsKICAgICAtLWVuYWJs ZS1udW1hKSBwcmludGYgIiVzIiAtRG51bWE9ZW5hYmxlZCA7OwogICAgIC0tZGlzYWJsZS1udW1h KSBwcmludGYgIiVzIiAtRG51bWE9ZGlzYWJsZWQgOzsKICAgICAtLWVuYWJsZS1udm1tKSBwcmlu dGYgIiVzIiAtRG52bW09ZW5hYmxlZCA7OwotLSAKMi40Ny4xCgoKCgpBbWF6b24gV2ViIFNlcnZp Y2VzIERldmVsb3BtZW50IENlbnRlciBHZXJtYW55IEdtYkgKVGFtYXJhLURhbnotU3RyLiAxMwox MDI0MyBCZXJsaW4KR2VzY2hhZWZ0c2Z1ZWhydW5nOiBDaHJpc3RvZiBIZWxsbWlzLCBBbmRyZWFz IFN0aWVnZXIKRWluZ2V0cmFnZW4gYW0gQW10c2dlcmljaHQgQ2hhcmxvdHRlbmJ1cmcgdW50ZXIg SFJCIDI1Nzc2NCBCClNpdHo6IEJlcmxpbgpVc3QtSUQ6IERFIDM2NSA1MzggNTk3Cg==