Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lPDMY-0000vH-NX for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Mar 2021 23:56:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lPDMX-0006aH-Le for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Mar 2021 23:56:33 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lPDMX-0006aA-5P for pgsql-hackers@lists.postgresql.org; Wed, 24 Mar 2021 23:56:33 +0000 Received: from mail-bn7nam10on2062.outbound.protection.outlook.com ([40.107.92.62] helo=NAM10-BN7-obe.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lPDMT-0006cv-8N for pgsql-hackers@lists.postgresql.org; Wed, 24 Mar 2021 23:56:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BSb7W3mVK0l6Jc7521hLlSyAs4d5gc4hrm3zgoFDgh4y58FHdMysCywObYshQuZUv8HmAi5VaLg+RMN6aX/Jwn6bert/rWBWHB+nT+GJrBVgfvvKpTMEqvmELHrF/+F9qiBNWGFRsTI5n+k0uqkze/PhL01Vce7SRaQiHO/YZg/tJvr2Bkx3fn4sZc1KQ6YI9oMMvDRwDECxYS1U6pmh4Yumwl+2K3zXixMQKn2tIyxn9m25Gk717/EZdvt9Cqz8UItrl62bfDqSsAk0TZpLnqWBOor57BqjlBCTz/Qau6EHHGIq/U4tLQi6QzM6pSzts6vwQh3+FtttuQpY2hCrpg== 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=hUnmVYhgx9IiNprzBY/aJCoZ4vghKdbAOPImOfk+isQ=; b=VV67xLYQq+c43zCGIln2psGEN9lH0wEw3njMqNiMgQizkWsUNEJzxyQPv5Mrg9fuKl3tOmS/nH+TFMzDmNImytEO5YUVokWVFhCUBpORQ9SO0U5bvrm3X5qPZvNP9IxnnPxeQTe77xrP/kexUnmMsXKGrDXNUiMxnCwoE6fFrUeZ5QcIpuDmbc1cTiBehtyiIzb84vOh6dTbIGuSqXmb0dWeku86t2VriLzGKGzRHM/sbwddoCKMcWG5k0gW6fqI9LDBODxzmVLSM9R0PTyV4AW40iF9E5zIxJl/wbb7IR92DVeMCt8KiSUXCp39eWP4OHJarHXQnFSGxaF6vHz0EA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hUnmVYhgx9IiNprzBY/aJCoZ4vghKdbAOPImOfk+isQ=; b=ALRryHVe7PKYwlygoYVv6QDEFnCOKvGtnFa5wiM+AczjKS307lqVhV57mRE64ENbizZChe4k5p18g1g6rtgPAEgdoSaKt8sOKnPtEQ4+Cd726EYgONh7K32h46QyTCQFTeL6liIGhfWdh3C7+ZxYpcAGWYM0FYACvxiiuz7u1Ko= Received: from MWHPR05MB2896.namprd05.prod.outlook.com (2603:10b6:300:65::20) by MWHPR05MB3391.namprd05.prod.outlook.com (2603:10b6:301:3f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.9; Wed, 24 Mar 2021 23:56:24 +0000 Received: from MWHPR05MB2896.namprd05.prod.outlook.com ([fe80::4c6d:a666:643c:9244]) by MWHPR05MB2896.namprd05.prod.outlook.com ([fe80::4c6d:a666:643c:9244%8]) with mapi id 15.20.3977.024; Wed, 24 Mar 2021 23:56:24 +0000 From: Jacob Champion To: "sfrost@snowman.net" CC: "daniel@yesql.se" , "pgsql-hackers@lists.postgresql.org" , "hlinnaka@iki.fi" , "andrew.dunstan@2ndquadrant.com" , "thomas.munro@gmail.com" , "michael@paquier.xyz" , "andres@anarazel.de" Subject: Re: Support for NSS as a libpq TLS backend Thread-Topic: Support for NSS as a libpq TLS backend Thread-Index: AQHWM1w61GrKUIsl6UCBcYrYNRBt46kJRsIAgAA+PQCAGQsiAIAEdGUAgAAqk4CAAbpsAIABgI0AgCnqVACAA5UBgIAAY+MAgBTX7ACAACGAAIASngCAgAAfeICABYLFgIAbyjgAgABy24CACw63gIAAAzWAgAwa5QCAA6HPgIAAKuGAgAYXDoCAACZBAIABTCSAgAALLgCAAcj/gIAA61UAgAU5IwCAAT6LgIBg7KEAgAJv4YCAAEgzAIAAvXeAgABWToCAExoQAIAAROWAgAFJBgCAAknrgIAHT2aAgACARQCAAC2WAIABbrgAgABSL4CAC5w5gIABgPEAgAXTZYCAAkVWAIAAzGsAgArFR4CAHUTDgIABj0AAgAGZzQCAAAZRAIABAusAgAASXQCAAAtLgIAACCwAgABgtIA= Date: Wed, 24 Mar 2021 23:56:24 +0000 Message-ID: <50c5a423329ea9996a2a2b167931711189ed5d1b.camel@vmware.com> References: <1b16041447d57b45ca273f41d26f6e298d756f99.camel@vmware.com> <04E81B50-ACE9-40D3-9C66-7041F969A958@yesql.se> <21FABD55-5F80-4D8B-B994-3DB81D8742EE@yesql.se> <20210321234950.GQ20766@tamriel.snowman.net> <743a11e6668bef648c7a53f862038e6b2fad3755.camel@vmware.com> <05da9d530ab01e6959bd50c993d590ad73575c21.camel@vmware.com> <20210324170036.GS20766@tamriel.snowman.net> <8f741a425fd135ca38a28063730715499f7f6445.camel@vmware.com> <20210324181016.GU20766@tamriel.snowman.net> In-Reply-To: <20210324181016.GU20766@tamriel.snowman.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.4-0ubuntu1 authentication-results: snowman.net; dkim=none (message not signed) header.d=none;snowman.net; dmarc=none action=none header.from=vmware.com; x-originating-ip: [50.39.198.229] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a75d9e05-2a38-4d28-5953-08d8ef206e90 x-ms-traffictypediagnostic: MWHPR05MB3391: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hiJkdb9JdqOW/bA8BdFU8wlJlRl9MrifPix5vNb5Z2YXtZdoNeY5E3Jr7qhNZW6DJeYgdydRiqx1dL68LCk3CyH/qRUolTvV91xvLFDvHPIGSh4AfMMSR0YBmL2V7Kb5aZkeEXWksXAZSdzol3BN5F5FFjSPwmJltZObv7yheUj2JEKLPyorMcdxnJhsQZNfL9OO/cvai4BH2UUO3Hd4LDmXVEWzMp4H0gSxdL4pAFOSUGV/w7z+YIfcF9sLEBxZoIsf5wRvp5Wq2fN2axSQJgF7JQf12d+KFDPNIRsZLyfOvRSHX5UM0jc6p5qMNqsndmjpGw+OAG/mBPB8OFRKt5vQh47vj1vkIwSlO5FAm1qbTDZ4KTn63rd1e3y9AiUhXPXoLzK9G0i995ek8O2/sr7wYCWuRD/SObNR5wFpbTKW92lqO5ei9FwMIs45O2AWUYY8IO/Hfj6F7vH8yEzhBlb/9y3rRq0BWRWZrIZ9bfbqZS9HaAvLFNAVd3KHK4spNiRWUao5tf41t/fpErcoBfYxc2zw1my/eIGNu/0TqfeW4SAKop4cs+8uBO4DGh+vqMhNhAfOXpWxAta1k9V33S3Tfzv505Ajbje7NPx23kGUtdjvq/uiVnHMxl6a1vXwRZZBz9Nj3lhMW/ZBQNEpKC+KG1BGbpvPbZSIxQIl9I8= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR05MB2896.namprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(396003)(346002)(366004)(136003)(376002)(86362001)(83380400001)(36756003)(6486002)(38100700001)(6506007)(26005)(5660300002)(66556008)(8676002)(6916009)(8936002)(316002)(54906003)(6512007)(2616005)(478600001)(2906002)(66946007)(71200400001)(186003)(4326008)(76116006)(66476007)(66446008)(64756008);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?OHNCTUYwVTBqY0JCNEFBUXh3emh5UThjc1lycDU3NkRvVVlXVEZleFA4RG1O?= =?utf-8?B?QlRwTlRmUUlVNEN6SC81dURDUjB0RnVyRk83a2QvNzUzVTRBN0JMNklSN0xp?= =?utf-8?B?U2pBKzA4dXY4aVloZzdtRTBUZlp2bDRHazlHMEx3TnNaUWZheHFIZzF0QVhN?= =?utf-8?B?QVZ6TURHMGlLNDJCbUgybG1PYjduZnhuZkkyKzFRSmIrQUgyZUkwa2NQQk5u?= =?utf-8?B?NVQvMEtHaWVnV2VIM0prMU5qdmhtUEh3THdHazlpNm9FUnY1R2d2SjBxdDVv?= =?utf-8?B?d2EzbDNRNStJWThmbFFDeVJIZ21YYWkzUklGVWxXNTRYWDNQMy9kOEdtWjFU?= =?utf-8?B?cFREZVRRZ2JwNU5OZDlWSEJ2S3RQS1piMERYeXdnMEVhZHQ1YXYvOWk1c0Vz?= =?utf-8?B?S3R1VTJjeUlQeDhteEpGcHVMVU04eSsyNnRGOWl5dlczckVNRUFoWDVBOXZL?= =?utf-8?B?MDUwS1dxTGxYVnA0UlpSTTlPOGJJTUZQUUNVSUdjQmU4aUQ4YXRhak5UOXFS?= =?utf-8?B?WFVYMmVQeitLVm9uaUZYWDRkWHFjQWFIOHV3dHhGMnUzUlpmSktuZjAzVklV?= =?utf-8?B?OFZhcDByMDhKTkg5WkVRTjJBcE02ekJGSWhvK0JpNmV6Y2dNOXhoZ1JTbnVv?= =?utf-8?B?ekxiZCtRVVI4QmFnMzdzdUIxK0doaGU2NlR4VmRscklJdUZRTW5CN2NRblA3?= =?utf-8?B?SFQvS3d1VTZrWlZuTkZaYnUwMDNvSThlSU1NQ2JoNjgrMkh1dndEQjBVeTNE?= =?utf-8?B?UUlEUHQ1SDRFWStuTkdCaG94RGhMZFBnMURhVVc0dmw3QmowZFNxVG5iclpB?= =?utf-8?B?eXpqSkc3ckdmRHoxMW51STJONkxCMktSVk1Vem82bEtFNnhoTFZDOHhPdnNG?= =?utf-8?B?UWNqaVk2eEF4WDJSMzQwMlV1d3N5KzdpQ0xibG9NNmwxV2FoV0pCWENiZzg5?= =?utf-8?B?SERYSWVEQ0ZRMUlKM09tOE1UY3B6Q2xIOXE5S0JldHhYR2VqaEJZM2lMY0Mz?= =?utf-8?B?NVFYMjZSWk54dCs5cG1VcDdKakVNdy9JTVdPR1NkM1VldjJQKzYralArZVQx?= =?utf-8?B?b0I3eStoUFRkcjl1MXphdjlKZ0cvQXE0ODljK00wMmRBMmw2d0M0NUJRaWlG?= =?utf-8?B?WVdTVUVMamo4NW5jSGdFM3puZ1BMWWQxS0RVYWxRTHVZSjkrc1Y5YWhHVXlM?= =?utf-8?B?K21SbmVxKzZpSmZwejVBaVZvaDVFaUY3MFh4bUNaQUcxakFMRVNUT3gvV3Ez?= =?utf-8?B?MjFkc0FsZ2lub3hPZmhrVndaZzJIaVNBUzZhTE42YVB2Nnk0UE5aTzRzalJY?= =?utf-8?B?RVdNL2M2azV2aGJKcjkxNU9wZ25kOVRVZ1EvckEwVHhnS3FnODVkUmszbHli?= =?utf-8?B?UDA0c2JxMEU1M0JCeVFMTXpaRGRWUHcwb1lnd2Q4V3pHcU15ejBCTjVWNmlz?= =?utf-8?B?OHVQMSthd1pTaTREdnJ1SUxrRE10bkk5UGphcGRDZVhsR3Ftdk90d2tSZU9o?= =?utf-8?B?bTRXSXdaSWNsRjRGK0pzY1F6bjVmMHNGZkxiZmNEZktROG50MzJLYytHOGI2?= =?utf-8?B?dUVVcStsakRidDFXRnYwWUp3czNpcEIxNWhNQlVMMWVHcHpuVWQ2SjFxcjVC?= =?utf-8?B?SUJUT0NkbXVwZ2k3aEs0RHB5dThud1djRzRQMG1XeUp6QzZXeXBRRjlaYWZ0?= =?utf-8?B?dHg3cjRlTkRwOHdTcjdydFhkdjBHeXd0UHRuVHE0UVd4eGZkcnBaTTRoS0ls?= =?utf-8?Q?Rbz3rCICv6ClSV2+v1areEseoJmfPQBQ9jFu5de?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR05MB2896.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a75d9e05-2a38-4d28-5953-08d8ef206e90 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2021 23:56:24.2502 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ccc3268RPyATcLCwzXOueyqUIx5dIi7wWsqpAXlX3R7qKxyvY6/JtDZme0uODydxsW8xpW5JOKSDEKVN1ZRF8A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR05MB3391 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gV2VkLCAyMDIxLTAzLTI0IGF0IDE0OjEwIC0wNDAwLCBTdGVwaGVuIEZyb3N0IHdyb3RlOg0K PiAqIEphY29iIENoYW1waW9uIChwY2hhbXBpb25Adm13YXJlLmNvbSkgd3JvdGU6DQo+ID4gSSBj b3VsZCBzZWUgdGhpcyBiZWluZyBhIHByb2JsZW0gaWYgdHdvIGNsaWVudCBjZXJ0aWZpY2F0ZSBu aWNrbmFtZXMNCj4gPiBjb2xsaWRlIGFjcm9zcyBtdWx0aXBsZSBpbi11c2UgZGF0YWJhc2VzLCBt YXliZT8NCj4gDQo+IFJpZ2h0LCBpbiBzdWNoIGEgY2FzZSBlaXRoZXIgY2VydCBtaWdodCBnZXQg cmV0dXJuZWQgYW5kIGl0J3MgcG9zc2libGUNCj4gdGhhdCB0aGUgIndyb25nIiBvbmUgaXMgcmV0 dXJuZWQgYW5kIHRoZXJlZm9yZSB0aGUgY29ubmVjdGlvbiB3b3VsZCBlbmQNCj4gdXAgZmFpbGlu ZywgYXNzdW1pbmcgdGhhdCB0aGV5IGFyZW4ndCBhY3R1YWxseSB0aGUgc2FtZSBhbmQganVzdCBo YXBwZW4NCj4gdG8gYmUgaW4gYm90aC4NCj4gDQo+IFNlZW1zIGxpa2Ugd2UgY291bGQgdXNlIFNF Q01PRF9PcGVuVXNlckRCKCkgYW5kIHRoZW4gcGFzcyB0aGUgcmVzdWx0DQo+IGZyb20gdGhhdCBp bnRvIFBLMTFfTGlzdENlcnRzSW5TbG90KCkgYW5kIHNjYW4gdGhyb3VnaCB0aGUgY2VydHMgaW4g anVzdA0KPiB0aGUgc3BlY2lmaWVkIGRhdGFiYXNlIHRvIGZpbmQgdGhlIG9uZSB3ZSdyZSBsb29r aW5nIGZvciBpZiB3ZSByZWFsbHkNCj4gZmVlbCBjb21wZWxsZWQgdG8gdHJ5IGFuZCBhZGRyZXNz IHRoaXMgcmlzay4gIEkndmUgcmVhY2hlZCBvdXQgdG8gdGhlDQo+IE5TUyBmb2xrcyB0byBzZWUg aWYgdGhleSBoYXZlIGFueSB0aG91Z2h0cyBhYm91dCB0aGUgYmVzdCB3YXkgdG8gYWRkcmVzcw0K PiB0aGlzLg0KDQpTb21lIGFkZGl0aW9uYWwgZmluZGluZ3MgKE5TUyAzLjYzKSwgcGxlYXNlIGNv cnJlY3QgbWUgaWYgSSd2ZSBtYWRlIGFueSBtaXN0YWtlczoNCg0KVGhlIHZlcnkgZmlyc3QgTlNT SW5pdENvbnRleHQgY3JlYXRlZCBpcyBzcGVjaWFsLiBJZiBpdCBjb250YWlucyBhIGRhdGFiYXNl LCB0aGF0IGRhdGFiYXNlIHdpbGwgYmUgY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSAiaW50ZXJuYWwi IHNsb3QgYW5kIGl0cyBjZXJ0aWZpY2F0ZXMgY2FuIGJlIHJlZmVyZW5jZWQgZGlyZWN0bHkgYnkg bmlja25hbWUuIElmIGl0IGRvZXNuJ3QgaGF2ZSBhIGRhdGFiYXNlLCB0aGUgaW50ZXJuYWwgc2xv dCBoYXMgbm8gY2VydGlmaWNhdGVzLCBhbmQgaXQgd2lsbCBjb250aW51ZSB0byBoYXZlIHplcm8g Y2VydGlmaWNhdGVzIHVudGlsIE5TUyBpcyBjb21wbGV0ZWx5IHNodXQgZG93biBhbmQgcmVpbml0 aWFsaXplZCB3aXRoIGEgbmV3ICJmaXJzdCIgY29udGV4dC4NCg0KRGF0YWJhc2VzIHRoYXQgYXJl IG9wZW5lZCAqYWZ0ZXIqIHRoZSBmaXJzdCBvbmUgYXJlIGdpdmVuIHRoZWlyIG93biBzZXBhcmF0 ZSBzbG90cy4gQW55IGNlcnRpZmljYXRlcyB0aGF0IGFyZSBwYXJ0IG9mIHRob3NlIGRhdGFiYXNl cyBzZWVtaW5nbHkgY2FuJ3QgYmUgcmVmZXJlbmNlZCBkaXJlY3RseSBieSBuaWNrbmFtZS4gVGhl eSBoYXZlIHRvIGJlIHByZWZpeGVkIGJ5IHRoZWlyIHRva2VuIG5hbWUgLS0gYSBuYW1lIHdoaWNo IHlvdSBkb24ndCBoYXZlIGlmIHlvdSB1c2VkIE5TU19Jbml0Q29udGV4dCgpIHRvIGNyZWF0ZSB0 aGUgZGF0YWJhc2UuIFlvdSBoYXZlIHRvIHVzZSBTRUNNT0RfT3BlblVzZXJEQigpIGluc3RlYWQu IFRoaXMgZXhwbGFpbnMgc29tZSBzdHJhbmdlIGZhaWx1cmVzIEkgd2FzIHNlZWluZyBpbiBsb2Nh bCB0ZXN0aW5nLCB3aGVyZSB0aGUgb3JkZXIgb2YgSW5pdENvbnRleHQgZGV0ZXJtaW5lZCB3aGV0 aGVyIG91ciBjbGllbnQgY2VydGlmaWNhdGUgc2VsZWN0aW9uIHN1Y2NlZWRlZCBvciBmYWlsZWQu DQoNCklmIHlvdSBTRUNNT0RfT3BlblVzZXJEQigpIGEgZGF0YWJhc2UgdGhhdCBpcyBpZGVudGlj YWwgdG8gdGhlIGZpcnN0IChpbnRlcm5hbCkgZGF0YWJhc2UsIE5TUyBkZWR1cGxpY2F0ZXMgZm9y IHlvdSBhbmQganVzdCByZXR1cm5zIHRoZSBpbnRlcm5hbCBzbG90LiBXaGljaCBzZWVtcyBsaWtl IGl0J3MgaGVscGZ1bCwgZXhjZXB0IHlvdSdyZSBub3QgYWxsb3dlZCB0byBjbG9zZSB0aGF0IGRh dGFiYXNlLCBhbmQgeW91IGhhdmUgdG8ga25vdyBub3QgdG8gY2xvc2UgaXQgYnkgY2hlY2tpbmcg dG8gc2VlIHdoZXRoZXIgdGhhdCBzbG90IGlzIHRoZSAiaW50ZXJuYWwga2V5IHNsb3QiLiBJdCBh cHBlYXJzIHRvIHJlbWFpbiBvcGVuIHVudGlsIE5TUyBpcyBzaHV0IGRvd24gZW50aXJlbHkuDQpC dXQgaWYgeW91IG9wZW4gYSBkYXRhYmFzZSB0aGF0IGlzICpub3QqIHRoZSBtYWdpYyBpbnRlcm5h bCBkYXRhYmFzZSwNCmFuZCB0aGVuIG9wZW4gYSBkdXBsaWNhdGUgb2YgdGhhdCBvbmUsIE5TUyBj cmVhdGVzIHlldCBhbm90aGVyIG5ldyBzbG90DQpmb3IgdGhlIGR1cGxpY2F0ZS4gU28gU0VDTU9E X09wZW5Vc2VyREIoKSBtYXkgb3IgbWF5IG5vdCBiZSBhIHJlc291cmNlDQpob2csIGRlcGVuZGlu ZyBvbiB0aGUgZ2xvYmFsIHN0YXRlIG9mIHRoZSBwcm9jZXNzIGF0IHRoZSB0aW1lIGxpYnBxDQpv cGVucyBpdHMgZmlyc3QgY29ubmVjdGlvbi4gV2Ugd29uJ3QgYmUgYWJsZSB0byBjb250cm9sIHdo YXQgdGhlIHBhcmVudA0KYXBwbGljYXRpb24gd2lsbCBkbyBiZWZvcmUgbG9hZGluZyB1cyB1cC4N Cg0KSXQgYWxzbyBkb2Vzbid0IGxvb2sgbGlrZSBhbnkgb2YgdGhlIFNFQ01PRF8qIG1hY2hpbmVy eSB0aGF0IHdlJ3JlDQpsb29raW5nIGF0IGlzIHRocmVhZC1zYWZlLCBidXQgSSdkIHJlYWxseSBs aWtlIHRvIGJlIHdyb25nLi4uDQoNCi0tSmFjb2INCg==