Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp4653234ybg; Mon, 21 Oct 2019 12:15:32 -0700 (PDT) X-Google-Smtp-Source: APXvYqxBoz9WXygUEwk7u2hqlbRAJEU6T4XeU6QbHZVTiGdRCngEsI+W6nA9COwVKJAOzmJZV/lW X-Received: by 2002:a17:906:7202:: with SMTP id m2mr23241329ejk.138.1571685332829; Mon, 21 Oct 2019 12:15:32 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1571685332; cv=pass; d=google.com; s=arc-20160816; b=oYqXj/f/ZvAvRmJAQrB/islAh2ltn7BEgstcz08ZrT+lT5mbXR1FpoNKs+o9iUIbkG aMEkrNijIg8xHMglQo6BXAoJArBG+v0aZ3IbzUTE32iu3mHPIW1xbIsA8bD1O0rhtrLn LP1sOxwRjyGK59wiyhd59hp+qpqTO0Oiy9a8sbuOtoNxIvqZ4QCWkSWgkl6IwlJNu7ht oQUJiAJnKomxDM1nDGs6ROohIcVM8rCblUml4RhboiEW9BgmvWuDMG612Xz6WnekPN2u bC9V4HJfYuWOhaMbSSY8D3xUbwtOdT7dckZJW3TVrRzgO+KeQQFbBquDYEXSyMRjH5gK VywQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=jEiRWP4Vj3ZLIseYZbqGxa35Uty0byDGM0a56QTX15o=; b=FImZdmGb1lVeLNBHZOhfqbWVpT/6g2Wjt/kmPhoHPKfYyAJky2eCiTyvznRuLsG7Bv nrrIS4pq+z1IMzF2TZyQ7FztU+UfQhwqBlm+bgqEDOCwspD7s4RiijcV3/F6MhEO8be/ F4CEHttRuFWr0ZirqN97J3ov/ODDNVsEGkWd1f/v9KoMn1CQ1C8znCLv3JC6AU+pu/mW egjS3kAiVpIaOxIkZmrGpS6IxyKFvVxdDgrXH7RoQnwYN+uqsUSwSWADa+TKChaEV9AB 17rWLpg47yjZ1ouGolCCxMLY/WK4guyHICVM6SxBPi8ka5UmTszE0OgXFS2AR9MygHzP 71bg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@verimatrix.com header.s=selector2 header.b=Am7LaNWH; arc=pass (i=1 spf=pass spfdomain=verimatrix.com dkim=pass dkdomain=verimatrix.com dmarc=pass fromdomain=verimatrix.com); spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=verimatrix.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p9si10678117edc.96.2019.10.21.12.15.00; Mon, 21 Oct 2019 12:15:32 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@verimatrix.com header.s=selector2 header.b=Am7LaNWH; arc=pass (i=1 spf=pass spfdomain=verimatrix.com dkim=pass dkdomain=verimatrix.com dmarc=pass fromdomain=verimatrix.com); spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=verimatrix.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730048AbfJUTO2 (ORCPT + 99 others); Mon, 21 Oct 2019 15:14:28 -0400 Received: from mail-eopbgr750073.outbound.protection.outlook.com ([40.107.75.73]:15355 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726672AbfJUTO2 (ORCPT ); Mon, 21 Oct 2019 15:14:28 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aJybciLe6sqj+1FiOsMftOBjW9OFpCwFTzpgXsS/0h7h9hamV7BPTl5YNfJfjZC/ulgRVjocvPv9vjtnRzVWqLz1VSCEpkqIYRtOniWDL676cQBdMxT5bOcFqn2tYvXtpVflN/niFGB6rEqmBAIEfh58o0QavyZV/m/EUBsxfqlGKiMdSGnZH4Vwpv42Oy+a5hEAIsGhewlCa/EOvN6cC0CcUIX4iyRGaKmdtJCcgPa9VkDR062poHWDv95awYrG56AxKxRH5n0nENom6b+X4bgAVNMDwY0kPHiUHPahGbUjeOX/wfIHyGGVSfBuF8yHzfez4XQ1CysNLXekO710zQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jEiRWP4Vj3ZLIseYZbqGxa35Uty0byDGM0a56QTX15o=; b=VX/oBko06ii/mBqUNokhy+2Reli7SP2BEOxStnJ0LM4VVAAoCM9lGgXwCJlhJj16qXop/tL7HJhb9EuzXDg8Z0mKswkphENkNkR65hQB85Tz5qh20Shmvf9gQjhX/oO1X5vC5gcpWQ3yG2jYO9bJWjWKZxyDjo3valGJvTUpW08yTUuHR4HLON5LCGxsjZuXnA38lHZfeg7KUYkKJdqqNQw6dRaAM1u84dDi6umokiC1KxP1dbVBrV3zvJ6Gwiy7KdNqHqI10sqirQgTmMnjpwO0APzPfV+v95p3pPaxzv9k9Yt4Z6zipkA7KQIpbZRgrBgOob+cu7BdTe6/5hwXGQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=verimatrix.com; dmarc=pass action=none header.from=verimatrix.com; dkim=pass header.d=verimatrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=verimatrix.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jEiRWP4Vj3ZLIseYZbqGxa35Uty0byDGM0a56QTX15o=; b=Am7LaNWHgg3qsCXqUs5413qtD/uftPMoB74IZ8qILlZo2hgTpkqfPXr3mAkMlNnUEpR06fx8mORC8JwGol0uw8U8WQ6HuXBNcPiUzZbGK/x9T/GnI9rsu28DhHuNC5p3Z60tczXohNfYTWBvWur4zUFg735dprZ40trKPrQ9CIQ= Received: from MN2PR20MB2973.namprd20.prod.outlook.com (52.132.172.86) by MN2PR20MB2254.namprd20.prod.outlook.com (20.179.144.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2367.24; Mon, 21 Oct 2019 19:14:22 +0000 Received: from MN2PR20MB2973.namprd20.prod.outlook.com ([fe80::b986:4f02:3206:31e4]) by MN2PR20MB2973.namprd20.prod.outlook.com ([fe80::b986:4f02:3206:31e4%7]) with mapi id 15.20.2347.029; Mon, 21 Oct 2019 19:14:22 +0000 From: Pascal Van Leeuwen To: Ard Biesheuvel CC: "linux-crypto@vger.kernel.org" , "herbert@gondor.apana.org.au" Subject: RE: Key endianness? Thread-Topic: Key endianness? Thread-Index: AdWH7WiyGB6aVNy7SJOkTaAoiPGHOgADxdEgAAKexAAAAMmMEAABGwoAAAHCGpAAA8IUgAAAEpiwAAFumgAABSaBEA== Date: Mon, 21 Oct 2019 19:14:22 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=pvanleeuwen@verimatrix.com; x-originating-ip: [188.204.2.113] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9fc8175b-596d-4b2a-5f99-08d7565ae154 x-ms-traffictypediagnostic: MN2PR20MB2254: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 0197AFBD92 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(376002)(39850400004)(366004)(396003)(346002)(136003)(13464003)(43544003)(189003)(199004)(5660300002)(3480700005)(8676002)(478600001)(52536014)(9686003)(256004)(14444005)(6246003)(229853002)(81156014)(81166006)(11346002)(4326008)(66066001)(446003)(476003)(71190400001)(55016002)(25786009)(8936002)(14454004)(71200400001)(6436002)(54906003)(66446008)(64756008)(66556008)(3846002)(66476007)(33656002)(53546011)(74316002)(7696005)(6506007)(7736002)(66946007)(99286004)(15974865002)(76176011)(305945005)(7116003)(6116002)(86362001)(6916009)(102836004)(486006)(26005)(76116006)(316002)(2906002)(186003)(18886075002);DIR:OUT;SFP:1101;SCL:1;SRVR:MN2PR20MB2254;H:MN2PR20MB2973.namprd20.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: verimatrix.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2Tl738zmgOOnFcfNXq24tsDNeKPwxGuRTQmmIEvbhPO24mGGjyF5vraJ/JKOkHa8ofNYlndlANZ6uoisvxPFBXeGT+wac4Ofb17e//CZRNi2l1RDHx/DwhRnLayvam8YH18zWK7GaBhqbg+k3roIswep1ZltDyifd3/NhTirSbSEkqtWeEmS2ajsvhU5GIspgFsgDb/st0lDjtUiJtmvqRU1emAVE9f29+707oWGpwLOrHqlYOGsnYocxCko1E9ZwPAXghJCooGGaYgSKKXwIq2ZPrDCJlXQJRgxG82WccS8xNN1RgYoqZKha0UOdKwbbmJ8vFZhCSPLXqAZ0o0knW138nb9GZDsdpBtIt3FYudQRCzZ/FBTH7FWF88yi1rurA9QSy4lDkQXIw03dXTsYhcPdm+u3PvdJuyGxlqUWIG9nxZcbDLF5xhSO9RQEzVg x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: verimatrix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9fc8175b-596d-4b2a-5f99-08d7565ae154 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Oct 2019 19:14:22.1674 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: dcb260f9-022d-4495-8602-eae51035a0d0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 2NDtY5/48AXt7EekWTWxpXyL7fd/V9oVfn4WrqMw+lnYKolyo/5VHGgAyW3cycpP3sfR6uYbcTtqfboHQBUN/oBQzz72caWEKKx3Fvaex9o= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR20MB2254 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBcmQgQmllc2hldXZlbCA8YXJk LmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4gU2VudDogTW9uZGF5LCBPY3RvYmVyIDIxLCAyMDE5 IDY6MTUgUE0NCj4gVG86IFBhc2NhbCBWYW4gTGVldXdlbiA8cHZhbmxlZXV3ZW5AdmVyaW1hdHJp eC5jb20+DQo+IENjOiBsaW51eC1jcnlwdG9Admdlci5rZXJuZWwub3JnOyBoZXJiZXJ0QGdvbmRv ci5hcGFuYS5vcmcuYXUNCj4gU3ViamVjdDogUmU6IEtleSBlbmRpYW5uZXNzPw0KPiANCj4gT24g TW9uLCAyMSBPY3QgMjAxOSBhdCAxNzo1NSwgUGFzY2FsIFZhbiBMZWV1d2VuDQo+IDxwdmFubGVl dXdlbkB2ZXJpbWF0cml4LmNvbT4gd3JvdGU6DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGlu YXJvLm9yZz4NCj4gPiA+IFNlbnQ6IE1vbmRheSwgT2N0b2JlciAyMSwgMjAxOSA1OjMyIFBNDQo+ ID4gPiBUbzogUGFzY2FsIFZhbiBMZWV1d2VuIDxwdmFubGVldXdlbkB2ZXJpbWF0cml4LmNvbT4N Cj4gPiA+IENjOiBsaW51eC1jcnlwdG9Admdlci5rZXJuZWwub3JnOyBoZXJiZXJ0QGdvbmRvci5h cGFuYS5vcmcuYXUNCj4gPiA+IFN1YmplY3Q6IFJlOiBLZXkgZW5kaWFubmVzcz8NCj4gPiA+DQo+ ID4gPiBwWw0KPiA+ID4NCj4gPiA+IE9uIE1vbiwgMjEgT2N0IDIwMTkgYXQgMTc6MjMsIFBhc2Nh bCBWYW4gTGVldXdlbg0KPiA+ID4gPHB2YW5sZWV1d2VuQHZlcmltYXRyaXguY29tPiB3cm90ZToN Cj4gPiA+ID4NCj4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ IEZyb206IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiA+ID4g PiA+IFNlbnQ6IE1vbmRheSwgT2N0b2JlciAyMSwgMjAxOSAyOjU0IFBNDQo+ID4gPiA+ID4gVG86 IFBhc2NhbCBWYW4gTGVldXdlbiA8cHZhbmxlZXV3ZW5AdmVyaW1hdHJpeC5jb20+DQo+ID4gPiA+ ID4gQ2M6IGxpbnV4LWNyeXB0b0B2Z2VyLmtlcm5lbC5vcmc7IGhlcmJlcnRAZ29uZG9yLmFwYW5h Lm9yZy5hdQ0KPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBLZXkgZW5kaWFubmVzcz8NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IE9uIE1vbiwgMjEgT2N0IDIwMTkgYXQgMTQ6NDAsIFBhc2NhbCBWYW4gTGVl dXdlbg0KPiA+ID4gPiA+IDxwdmFubGVldXdlbkB2ZXJpbWF0cml4LmNvbT4gd3JvdGU6DQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4g PiA+ID4gPiBGcm9tOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4N Cj4gPiA+ID4gPiA+ID4gU2VudDogTW9uZGF5LCBPY3RvYmVyIDIxLCAyMDE5IDE6NTkgUE0NCj4g PiA+ID4gPiA+ID4gVG86IFBhc2NhbCBWYW4gTGVldXdlbiA8cHZhbmxlZXV3ZW5AdmVyaW1hdHJp eC5jb20+DQo+ID4gPiA+ID4gPiA+IENjOiBsaW51eC1jcnlwdG9Admdlci5rZXJuZWwub3JnOyBo ZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXUNCj4gPiA+ID4gPiA+ID4gU3ViamVjdDogUmU6IEtl eSBlbmRpYW5uZXNzPw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBPbiBNb24sIDIxIE9j dCAyMDE5IGF0IDEyOjU2LCBQYXNjYWwgVmFuIExlZXV3ZW4NCj4gPiA+ID4gPiA+ID4gPHB2YW5s ZWV1d2VuQHZlcmltYXRyaXguY29tPiB3cm90ZToNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+IEFub3RoZXIgZW5kaWFubmVzcyBxdWVzdGlvbjoNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiA+IEkgaGF2ZSBzb21lIGRhdGEgc3RydWN0dXJlIHRoYXQgY2FuIGJlIGVpdGhl ciBsaXR0bGUgb3IgYmlnIGVuZGlhbiwNCj4gPiA+ID4gPiA+ID4gPiBkZXBlbmRpbmcgb24gdGhl IGV4YWN0IHVzZSBjYXNlLiBDdXJyZW50bHksIEkgaGF2ZSBpdCBkZWZpbmVkIGFzIHUzMi4NCj4g PiA+ID4gPiA+ID4gPiBUaGlzIGNhdXNlcyBzcGFyc2UgZXJyb3JzIHdoZW4gYWNjZXNzaW5nIGl0 IHVzaW5nIGNwdV90b19YZTMyKCkgYW5kDQo+ID4gPiA+ID4gPiA+ID4gWGUzMl90b19jcHUoKS4N Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IE5vdywgZm9yIHRoZSBiaWcgZW5kaWFu IGNhc2UsIEkgY291bGQgdXNlIGh0b25sKCkvbnRvaGwoKSBpbnN0ZWFkLA0KPiA+ID4gPiA+ID4g PiA+IGJ1dCB0aGlzIGlzIGluY29uc2lzdGVudCB3aXRoIGFsbCBvdGhlciBlbmRpYW4gY29udmVy c2lvbnMgaW4gdGhlDQo+ID4gPiA+ID4gPiA+ID4gZHJpdmVyIC4uLiBhbmQgdGhlcmUncyBubyBs aXR0bGUgZW5kaWFuIGFsdGVybmF0aXZlIEknbSBhd2FyZSBvZi4NCj4gPiA+ID4gPiA+ID4gPiBT byBJIGRvbid0IHJlYWxseSBsaWtlIHRoYXQgYXBwcm9hY2guDQo+ID4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gPiBBbHRlcm5hdGl2ZWx5LCBJIGNvdWxkIGRlZmluZSBhIHVuaW9uIG9mIGJv dGggYSBiaWcgYW5kIGxpdHRsZQ0KPiA+ID4gPiA+ID4gPiA+IGVuZGlhbiB2ZXJzaW9uIG9mIHRo ZSBkYXRhIGJ1dCB0aGF0IHdvdWxkIHJlcXVpcmUgdG91Y2hpbmcgYSBsb3QNCj4gPiA+ID4gPiA+ ID4gPiBvZiBsZWdhY3kgY29kZSAodW5sZXNzIEkgdXNlIGEgQzExIGFub255bW91cyB1bmlvbiAu Li4gbm90IHN1cmUNCj4gPiA+ID4gPiA+ID4gPiBpZiB0aGF0IHdvdWxkIGJlIGFsbG93ZWQ/KSBh bmQgSU1ITyBpcyBhIGJpdCBzaWxseS4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ IElzIHRoZXJlIHNvbWUgd2F5IG9mIHRlbGxpbmcgc3BhcnNlIHRvIF9ub3RfIGNoZWNrIGZvciAi Y29ycmVjdCINCj4gPiA+ID4gPiA+ID4gPiB1c2Ugb2YgdGhlc2UgZnVuY3Rpb25zIGZvciBhIGNl cnRhaW4gdmFyaWFibGU/DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gSW4gdGhpcyBjYXNlLCBqdXN0IHVzZSAoX19mb3JjZSBfX1hl MzIqKSB0byBjYXN0IGl0IHRvIHRoZSBjb3JyZWN0DQo+ID4gPiA+ID4gPiA+IHR5cGUuIFRoaXMg YW5ub3RhdGVzIHRoZSBjYXN0IGFzIGJlaW5nIGludGVudGlvbmFsbHkgZW5kaWFuLXVuY2xlYW4s DQo+ID4gPiA+ID4gPiA+IGFuZCBzaHV0cyB1cCBTcGFyc2UuDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiBUaGFua3MgZm9yIHRyeWluZyB0byBoZWxwIG91dCwgYnV0IHRoYXQganVzdCBnaXZl cyBtZSBhbg0KPiA+ID4gPiA+ID4gImVycm9yOiBub3QgYW4gbHZhbHVlIiBmcm9tIGJvdGggc3Bh cnNlIGFuZCBHQ0MuDQo+ID4gPiA+ID4gPiBCdXQgSSdtIHByb2JhYmx5IGRvaW5nIGl0IHdyb25n IHNvbWVob3cgLi4uDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSXQgZGVwZW5k cyBvbiB3aGF0IHlvdSBhcmUgY2FzdGluZy4gQnV0IGRvaW5nIHNvbWV0aGluZyBsaWtlDQo+ID4g PiA+ID4NCj4gPiA+ID4gPiB1MzIgbCA9IC4uLg0KPiA+ID4gPiA+IF9fbGUzMiBsbCA9IChfX2Zv cmNlIF9fbGUzMilsDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBzaG91bGQgbm90IHRyaWdnZXIgYSBz cGFyc2Ugd2FybmluZy4NCj4gPiA+ID4gPg0KPiA+ID4gPiBJIHdhcyBhY3R1YWxseSBjYXN0aW5n IHRoZSBsZWZ0IHNpZGUsIG5vdCB0aGUgcmlnaHQgc2lkZSwNCj4gPiA+ID4gYXMgdGhhdCdzIHdo ZXJlIG15IHNwYXJzZSBpc3N1ZSB3YXMuIE11c3QgYmUgbXkgcG9vciBncmFzcA0KPiA+ID4gPiBv ZiB0aGUgQyBsYW5ndWFnZSBodXJ0aW5nIG1lIGhlcmUgYXMgSSBkb24ndCB1bmRlcnN0YW5kIHdo eQ0KPiA+ID4gPiBJJ20gbm90IGFsbG93ZWQgdG8gY2FzdCBhbiBhcnJheSBlbGVtZW50IHRvIGEg ZGlmZmVyZW50IHR5cGUNCj4gPiA+ID4gb2YgdGhlIF9zYW1lIHNpemVfIC4uLg0KPiA+ID4gPg0K PiA+ID4gPiBpLmUuIHdoeSBjYW4ndCBJIGRvIChfX2JlMzIpc29tZV91MzJfYXJyYXlbM10gPSBj cHVfdG9fYmUzMihzb21lX3ZhbHVlKT8NCj4gPiA+ID4NCj4gPiA+DQo+ID4gPiBCZWNhdXNlIHlv dSBjYW4gb25seSBjaGFuZ2UgdGhlIHR5cGUgb2YgYW4gZXhwcmVzc2lvbiBieSBjYXN0aW5nLCBh bmQNCj4gPiA+IGFuIGx2YWx1ZSBpcyBub3QgYW4gZXhwcmVzc2lvbi4gQSB2YXJpYWJsZSBoYXMg YSB0eXBlIGFscmVhZHksIGFuZCB5b3UNCj4gPiA+IGNhbm5vdCBjYXN0IHRoYXQgYXdheSAtIHdo YXQgd291bGQgdGhhdCBtZWFuLCBleGFjdGx5PyBXb3VsZCBhbGwNCj4gPiA+IG9jY3VycmVuY2Vz IG9mIHNvbWVfdTMyX2FycmF5W10gc3VkZGVubHkgaGF2ZSBhIGRpZmZlcmVudCB0eXBlPyBPcg0K PiA+ID4gb25seSBlbGVtZW50IFszXT8NCj4gPiA+DQo+ID4gSSB0aGluayBpdCB3b3VsZCBiZSBw ZXJmZWN0bHkgbG9naWNhbCB0byBkbyBzdWNoIGEgY2FzdCBhbmQgSSdtIHJlYWxseQ0KPiA+IHN1 cnByaXNlZCB0aGF0IGl0IGlzIG5vdCBsZWdhbC4gT2J2aW91c2x5LCBpdCB3b3VsZCBvbmx5IGFw cGx5IHRvIHRoZQ0KPiA+IGFjdHVhbCBhc3NpZ25tZW50IGl0IGlzIHVzZWQgd2l0aC4gSXQncyBh IGNhc3QsIG5vdCBhIHJlZGVmaW5pdGlvbi4NCj4gPiBBZnRlciBhbGwsIGEgdmFyaWFibGUgb3Ig YW4gYXJyYXkgaXRlbSBpcyBqdXN0IHNvbWUgc3RvcmFnZSBhcmVhIGluDQo+ID4gbWVtb3J5LiBX aHkgc2hvdWxkbid0IEkgYmUgYWJsZSB0byB3cml0ZSB0byBpdCBfYXMgaWZfIGl0IGlzIHNvbWUN Cj4gPiBkaWZmZXJlbnQgdHlwZSAoaWYgSSBrbm93IHdoYXQgSSdtIGRvaW5nIGFuZCBlc3BlY2lh bGx5IGlmIGl0IGlzIHRoZQ0KPiA+IGV4YWN0IHNhbWUgc2l6ZSBpbiBtZW1vcnkpPw0KPiA+DQo+ ID4gPg0KPiA+ID4gPiBJIG1hbmFnZWQgdG8gd29yayBhcm91bmQgaXQgYnkgZG9pbmcgKihfX2Jl MzIgKikmc29tZV91MzJfYXJyYXlbM10gPQ0KPiA+ID4gPiBidXQgdGhhdCdzIHByZXR0eSB1Z2x5 IC4uLiBhIGJldHRlciBhcHByb2FjaCBpcyBzdGlsbCB3ZWxjb21lLg0KPiA+ID4gPg0KPiA+ID4N Cj4gPiA+IFlvdSBuZWVkIHRvIGNhc3QgdGhlIHJpZ2h0IGhhbmQgc2lkZSwgbm90IHRoZSBsZWZ0 IGhhbmQgc2lkZS4gSWYNCj4gPiA+IHNvbWVfdTMyX2FycmF5IGlzIHUzMltdLCBmb3JjZSBjYXN0 IGl0IHRvIChfX2ZvcmNlIHUzMikNCj4gPiA+DQo+ID4NCj4gPiBTdXJlLCB5b3UgY2FuIGRvIHRo ZSBjYXN0aW5nIG9uIHRoZSByaWdodCBoYW5kIHNpZGUsIGJ1dCB0aGF0IG1heSBub3QNCj4gPiBj b252ZXkgd2hhdCB5b3UgX3JlYWxseV8gd2FudCB0byBkbywgcGFydGljdWxhcmx5IGluIHRoaXMg Y2FzZS4NCj4gPiBBcyBJIF9yZWFsbHlfIHdhbnQgdG8gd3JpdGUgYSBiaWcgZW5kaWFuIHdvcmQg dGhlcmUuIEkgZG9uJ3Qgd2FudCB0bw0KPiA+IHByZXRlbmQgSSBsb29zZSB0aGUgZW5kaWFubmVz cyBzb21ld2hlcmUgYWxvbmcgdGhlIHdheS4gVGhhdCB3cml0dGVuDQo+ID4gd29yZCBpcyBzdGls bCB2ZXJ5IG11Y2ggYmlnIGVuZGlhbi4NCj4gPiAoSSBrbm93IHByYWN0aWNhbGx5IGl0IG1ha2Vz IG5vIGRpZmZlcmVuY2UsIGJ1dCBjYXN0aW5nIHRoZSBsZWZ0IHNpZGUNCj4gPiB3b3VsZCBqdXN0 IGJlIHNvIG11Y2ggY2xlYXJlciBJTUhPKQ0KPiA+DQo+IA0KPiANCj4gTm8sIGl0IHJlYWxseSBp c24ndCwgYW5kIEkgYW0gdGlyZWQgb2YgaGF2aW5nIGFub3RoZXIgZW5kbGVzcyBkZWJhdGUgYWJv dXQgdGhpcy4NCj4gDQpJIHdhcyBub3QgaW50ZW5kaW5nIHRvIHN0YXJ0IGEgZGViYXRlIC0gSSB3 YXMganVzdCBiZWluZyBhIG5ld2J5IEMgcHJvZ3JhbW1lcg0KYmVpbmcgX2hvbmVzdGx5IHN1cnBy aXNlZF8gYnkgdGhpcyBsaW1pdGF0aW9uLiBZb3UgKG9yIEksIGFueXdheSkgd291bGQganVzdCBl eHBlY3QNCml0IHRvIHdvcmsuIFRoZSByZXN0IGlzIHBlcnNvbmFsIHRhc3RlLCB3aGljaCBpcyBp cyBub3QgZGViYXRhYmxlIChpdCBqdXN0IGlzKS4NCg0KPiBDIHBlcm1pdHMgY2FzdGluZyBvZiBl eHByZXNzaW9ucywgbm90IG9mIGx2YWx1ZXMuDQo+IC4uLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+IElmIHRoZQ0KPiA+ID4gPiA+ID4gPiBoYXJkd2FyZSBjaG9vc2VzIHRvIHJlb3JkZXIgdGhv c2UgYnl0ZXMgZm9yIHNvbWUgcmVhc29uLCBpdCBpcyB0aGUNCj4gPiA+ID4gPiA+ID4gcmVzcG9u c2liaWxpdHkgb2YgdGhlIGRyaXZlciB0byB0YWtlIGNhcmUgb2YgdGhhdCBmcm9tIHRoZSBDUFUg c2lkZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFdoaWNoIHN0aWxsIHJlcXVpcmVzIHlv dSB0byBrbm93IHRoZSBieXRlIG9yZGVyIGFzIHVzZWQgYnkgdGhlIEFQSS4NCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBPbmx5IGlmIEFQSSBtZWFucyB0aGUgQUVTIG9yIENoYUNo YSBzcGVjaWZpYyBoZWxwZXIgcm91dGluZXMgdGhhdCB3ZQ0KPiA+ID4gPiA+IGhhdmUgaW4gdGhl IGtlcm5lbC4gSWYgeW91IGFyZSB1c2luZyB0aGUgQUVTIGhlbHBlcnMsIHRoZW4geWVzLCB5b3UN Cj4gPiA+ID4gPiBuZWVkIHRvIGVuc3VyZSB0aGF0IHlvdSB1c2UgdGhlIHNhbWUgY29udmVudGlv bi4gQnV0IHRoZSBhbGdvcml0aG1zDQo+ID4gPiA+ID4gdGhlbXNlbHZlcyBhcmUgZnVsbHkgZGVm aW5lZCBieSB0aGVpciBzcGVjaWZpY2F0aW9uLCBhbmQgc28gd2hhdCBvdGhlcg0KPiA+ID4gPiA+ IGltcGxlbWVudGF0aW9ucyBpbiB0aGUga2VybmVsIGRvIGlzIG5vdCByZWFsbHkgcmVsZXZhbnQu DQo+ID4gPiA+ID4NCj4gPiA+ID4gV2hhdCBpcyByZWxldmFudCBpcyB3aGF0IHRoZSBBUEkgZXhw ZWN0cw0KPiA+ID4NCj4gPiA+IEJ1dCAqd2hpY2gqIEFQST8gVGhlIHNrY2lwaGVyIEFQSSB1c2Vz IHU4W10gZm9yIGluL291dHB1dCBhbmQga2V5cywNCj4gPiA+IGFuZCBob3cgdGhlc2UgYnl0ZSBh cnJheXMgYXJlIGludGVycHJldGVkIGlzIG5vdCAoYW5kIGNhbm5vdCkgYmUNCj4gPiA+IGRlZmlu ZWQgYXQgdGhpcyBsZXZlbCBvZiBhYnN0cmFjdGlvbi4NCj4gPiA+DQo+ID4gWWVzLCBza2NpcGhl ciBBUEkuIE9idmlvdXNseS4gQXMgdGhhdCdzIHdoYXQgd2UncmUgdGFsa2luZyBhYm91dC4NCj4g PiBBbmQgX29mIGNvdXJzZV8gaXQgaGFzIHRvIGJlIGRlZmluZWQgYXQgdGhhdCBsZXZlbCBvZiBh YnN0cmFjdGlvbi4NCj4gPiAod2hpY2ggZG9lc24ndCBwcmVjbHVkZSBpbmhlcml0aW5nIGl0IGZy b20gc29tZSBvdGhlciBzcGVjaWZpY2F0aW9uKQ0KPiA+IE90aGVyd2lzZSB5b3Ugd291bGQgbm90 IGFibGUgdG8gZS5nLiBleGNoYW5nZSBrZXlzIGJldHdlZW4gZGlmZmVyZW50DQo+ID4gcGxhdGZv cm1zLg0KPiA+DQo+IA0KPiBTbyB3aGF0IGV4YWN0bHkgYXJlIHlvdSBzdWdnZXN0aW5nPyBUaGF0 IHRoZSBza2NpcGhlciBBUEkgc2hvdWxkDQo+IHNwZWNpZnkgdGhhdCB0aGUga2V5IGlzIHU4W10s IHVubGVzcyB0aGUgYWxnbyBpbiBxdWVzdGlvbiBvcGVyYXRlcyBvbg0KPiAzMi1iaXQgd29yZHMs IGluIHdoaWNoIGNhc2UgaXQgaXMgbGUzMltdLCB1bmxlc3MgdGhlIGFsZ28gaW4gcXVlc3Rpb24N Cj4gb3BlcmF0ZXMgb24gNjQtYml0IHdvcmRzLCBpbiB3aGljaCBjYXNlIGl0IGlzIGxlNjRbXSBl dGMgZXRjPyBEbyB5b3UNCj4gc2VyaW91c2x5IHRoaW5rIHRoYXQgYXQgdGhlIHNrY2lwaGVyIEFQ SSBsZXZlbCB3ZSBzaG91bGQgbWFuZGF0ZSBhbGwNCj4gb2YgdGhhdD8gVGhhdCBpcyBpbnNhbmUu DQo+IA0KWW91IHRoaW5rIGJlaW5nIF9jbGVhcl8gb24gdGhlIGFjdHVhbCBieXRlIG9yZGVyIGlz IF9pbnNhbmVfPyBTZXJpb3VzbHk/DQpMaWtlIEkgc2FpZCwgaW5oZXJpdGluZyB0aGF0IGZyb20g dGhlIGFsZ29yaXRobSBzcGVjIGlzIGZpbmUgYnV0IG5vdCBhbGwNCmFsZ29yaXRobSBzcGVjcyBh cmUgY2xlYXIgYW5kIHVuYW1iaWd1b3VzIHcuci50LiBieXRlIG9yZGVyLiANCg0KSSBrbm93IHRo aXMgaXMgbm90IGNyeXB0byBwZXJzZSwgYnV0IHdoYXQgd291bGQgYmUgdGhlIGxvZ2ljYWwgYnl0 ZSBvcmRlcg0KZm9yIGEgQ1JDMzIgImtleSIgY29uc2lkZXJpbmcgaXQgaXMgYSAzMiBiaXQgd29y ZD8gVGhlIENSQzMyIGRlZmluaXRpb24NCnN1cmUgaXNuJ3QgZ29pbmcgdG8gaGVscCB5b3UgdGhl cmUsIGl0IGlzIHNwZWNpZmllZCBvbiAzMiBiaXQgd29yZHMgb25seS4NClNvIGluIHN1Y2ggY2Fz ZXMgaXQgbXVzdCBiZSBjbGVhciBob3cgdGhlIGJ5dGUgc3RyZWFtIG1hcHMgb250byB0aGUgd29y ZC4NCg0KPiA+ID4NCj4gPiA+ID4gLi4uIGFuZCBmcm9tIDIwIHllYXJzIG9mDQo+ID4gPiA+IGV4 cGVyaWVuY2UgSSB3b3VsZCBzYXkgbWFueSBhbGdvcml0aG0gc3BlY2lmaWNhdGlvbnMgYXJlIG5v dCBleGFjdGx5DQo+ID4gPiA+IHZlcnkgY2xlYXIgb24gdGhlIGJ5dGUgb3JkZXIgYXQgYWxsLCBv ZnRlbiBhc3N1bWluZyB0aGlzIHRvIGJlDQo+ID4gPiA+ICJvYnZpb3VzIi4gKGFuZCBpZiBpdCdz IG5vdCBsaXR0bGUtZW5kaWFuLCBpdCdzIG5vdCBvYnZpb3VzIHRvIG1lIDstKQ0KPiA+ID4gPg0K PiA+ID4NCj4gPiA+IEkgYWdyZWUgdGhhdCBub3QgYWxsIHNwZWNzIGFyZSBjcnlzdGFsIGNsZWFy IG9uIHRoaXMuIEJ1dCBpdCBpcyBzdGlsbA0KPiA+ID4gdGhlIGFsZ29yaXRobSB0aGF0IG5lZWRz IHRvIGRlZmluZSB0aGlzLg0KPiA+ID4NCj4gPiBJbiBhbiBpZGVhbCB3b3JsZCwgcHJvYmFibHku IEluIHRoZSByZWFsIHdvcmxkLCBpdCBpcyBlbnRpcmVseSBwb3NzaWJsZQ0KPiA+IGZvciBhbiBp bXBsZW1lbnRhdGlvbiB0byBleHBlY3QgdGhlIGtleSBieXRlcyBpbiBhIGRpZmZlcmVudCBvcmRl ci4NCj4gPiBXb3VsZCBub3QgYmUgdGhlIGZpcnN0IHRpbWUgSSBydW4gaW50byB0aGF0Lg0KPiA+ DQo+IA0KPiBPZiBjb3Vyc2UuIEJ1dCB0aGF0IGlzIG5vdCB0aGUgcG9pbnQuIFRoZSBza2NpcGhl ciBBUEkgY2Fubm90IHBvc3NpYmx5DQo+IHJlYXNvbiBhYm91dCBieXRlIG9yZGVycyBvZiBhbGwg Y3VycmVudCBhbmQgZnV0dXJlIGFsZ29yaXRobXMgdGhhdCBpdA0KPiBtYXkgZXZlciBlbmNhcHN1 bGF0ZS4NCj4NCldlbGwsIHNvIGZhciBJIGdvdCB0aGUgaW1wcmVzc2lvbiB0aGF0IGF0IGxlYXN0 IHRoZSBpbnRlbnRpb24gaXMNCnRvIGZvbGxvdyB0aGUgY2lwaGVyIHNwZWNpZmljYXRpb24uIFRo YXQncyBhIHN0YXJ0LiBZb3UgY291bGQgYWRkDQpzb21lIGdlbmVyaWMgcnVsZXMgb24gdG9wIG9m IHRoYXQsIGxpa2UgImlmIHRoZSBzcGVjaWZpY2F0aW9uIGlzDQp3b3JkIGJhc2VkIGFuZCBkb2Vz IG5vdCBtYW5kYXRlIGEgYnl0ZSBvcmRlciwgdGhhbiB0aGVzZSB3b3JkcyANCnNoYWxsIGJlIHN0 b3JlZCBpbiBsaXR0bGUtZW5kaWFuIGJ5dGUgb3JkZXIiLiBJdCdzIG5vdCB0aGF0IGhhcmQuDQpZ b3UgcmVhbGx5IGRvbid0IG5lZWQgdG8ga25vdyAiZnV0dXJlIGFsZ29yaXRobSIgZGV0YWlscyBm b3IgdGhhdC4NCg0KUmVnYXJkcywNClBhc2NhbCB2YW4gTGVldXdlbg0KU2lsaWNvbiBJUCBBcmNo aXRlY3QsIE11bHRpLVByb3RvY29sIEVuZ2luZXMgQCBWZXJpbWF0cml4DQp3d3cuaW5zaWRlc2Vj dXJlLmNvbQ0KDQo=