From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id A337B740034 for ; Tue, 10 Oct 2023 01:50:05 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=Kk2xapWLB3A1JHhcGR0V7K31BhhvtFn+fO4d9d/4bFo=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1696902604; v=1; b=TtTvDjUGLgG3tbgdVMbp42r2UTWm4D41x8NyfDq0o35jx82nisyN8eKyT48p70bXIVay+YRO vcgO6FYzSBzw43zZAFU/AQzLysGvoI3d/sr6ukxcm8JzAX17hL81PiLbcObNHOhOcrdtqV+p/tV z3ervBZ5FouYiYHA0rNPShCE= X-Received: by 127.0.0.2 with SMTP id 01c1YY7687511xW1TwX9H1jO; Mon, 09 Oct 2023 18:50:04 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web10.81735.1696902602804828352 for ; Mon, 09 Oct 2023 18:50:03 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10858"; a="383169233" X-IronPort-AV: E=Sophos;i="6.03,211,1694761200"; d="scan'208";a="383169233" X-Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2023 18:50:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10858"; a="823594736" X-IronPort-AV: E=Sophos;i="6.03,211,1694761200"; d="scan'208";a="823594736" X-Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga004.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 09 Oct 2023 18:50:01 -0700 X-Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Mon, 9 Oct 2023 18:50:01 -0700 X-Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Mon, 9 Oct 2023 18:50:01 -0700 X-Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.41) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Mon, 9 Oct 2023 18:50:01 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f5YvbgzMZ+1KQpuwKZSYASM3kb8t5/StEPzFK8j2L9SkYNwW8NDmYPvVkbZ1jvOcfzLVDbE97+KUASbD2K0gO1f0TaxsQ8pMytdC1diwhBZ7EhN3gWQfDGM27QmT4KLKntgpQK3G2HJ6EEQfxhhP8yPnbC32UYu4EAy14/j3XrxrG2sCHNWJEpvHZuZnCTbW3BRxYjHIy0lTdFrAqQLSF710Dkeo6qiRATRWYxjsAaLskO1JTKRS1Jkvl7eBx3bzPlTK+UycoI6gQ340TABUYncXKVBXqcqfyZp2OGdySKoiip2CdBKbCVlX481Zd9VvoD8JYrfObSF16r+SAJU8KA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/9PJakUnQd2O9xrJV73WD049ySkds++50UlcriGej6Q=; b=G5W0PfA+tI2SoSmTH6G7FkOWYlSouHCsKvnHO7G+t7JJtp06H2P7WN6HrHr9kQlPtM68UWH5RE4I6meswlX7s3IHmgeZ2C9cmpxqpfkaOfgDZWDWBl/m//CyLRZTSV1tdhLgFtleaTL+ljGjzsEMOK2WHTFRsfJJmn79eEdCSkE01ruoPbD7MVaX+AgK9+8UwlQSWFHgIQh1E+tllRofyMtFs2qLiq6Yvc34yZL/DdtCy3MUnUsho30hNYOeXS7UtecqXyOxK1GG07AVXjtDB8xg+SS/mJoqU6gT+OdbUoa0iWoNtK+Pv/ANg55iG7TehL4N84NAF9pr5pVVyIn+HQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none X-Received: from PH0PR11MB5046.namprd11.prod.outlook.com (2603:10b6:510:3b::20) by CY8PR11MB7745.namprd11.prod.outlook.com (2603:10b6:930:90::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6863.36; Tue, 10 Oct 2023 01:49:58 +0000 X-Received: from PH0PR11MB5046.namprd11.prod.outlook.com ([fe80::3513:5c7e:37e9:5d32]) by PH0PR11MB5046.namprd11.prod.outlook.com ([fe80::3513:5c7e:37e9:5d32%4]) with mapi id 15.20.6863.032; Tue, 10 Oct 2023 01:49:58 +0000 From: "Wenxing Hou" To: "devel@edk2.groups.io" , "sean.brogan@microsoft.com" , "mikuback@linux.microsoft.com" , "Kinney, Michael D" , "Gao, Liming" CC: "Li, Yi1" Subject: Re: [edk2-devel] [PATCH v3 09/11] CryptoPkg: Add Mbedtls submodule in CI Thread-Topic: [edk2-devel] [PATCH v3 09/11] CryptoPkg: Add Mbedtls submodule in CI Thread-Index: AQHZ8iU0pv5a0WcSR0qQl7lZvRdPobA+YDeggAPyxNA= Date: Tue, 10 Oct 2023 01:49:57 +0000 Message-ID: References: <20230928153416.537-1-wenxing.hou@intel.com> <178919F6750E1B48.1188@groups.io> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB5046:EE_|CY8PR11MB7745:EE_ x-ms-office365-filtering-correlation-id: f3689522-2a7b-4479-8949-08dbc9333583 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: u1DY9vdMfYfC8Dch/pjuJN3YXgO2TBoFbE71KD5n+rY6fJrLT/yaIzSDLtj+XV/1RG9YBDuL+1MG37zKg1oXsNdeq+CWqQ9vThviZdnD4X2E+6JVKr54V8VgwLJBoFDk2bmf260jzI6w21u3aEqUKPJZwFm7EmTBdBzRxaM+S6PubD0baUYExllA+xePNL8s3DHeoBy1AnaS+MnuV85wTzJomoK8VmtWZedQEj7BT7x9mje6Ki57Xi5XGFpdDxF7ApW3fpea2DWxyr1qUJJD1sqlaTdvjTFD7SKYBi/6JJk+8amgNXQARiWTF/L+WKScc+0cFNbV1AATdnnM63uWyQVrDpvJUjdJLaLwgKVUVNoHlxAdSGl6+S2kaGWCvFRdabDYtm+rHi8gsc5q6IRNHvCn8KSzNe7WtirTrdGaEjdvVKWqpglSXZ5+hJLsV2JjZXrgnIAxyhklT4QyNThgli/6mriSk/Rz3YdGXIhA3TdzpiuGdXWM1HLZ0S+9GCWGyke6/mXOd5ATDxulKvor911wthSpmpknIkrGuiIEoqxYou5cMMuLpnSHQs5Ck1P5uip/S2QYrxvN2bBXV8EKpsjkXwGQbX5sh12DhGegsBHVDPKlgw2QhIX2aOfrOKMR+kCIqSCTQlvjMLwbP1ilbA== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?cxezv9gYuL7sXMEe/uPCMQkVy7Yx7u+69SF6kIaQHTJvFNWziTC1sAqXNpFB?= =?us-ascii?Q?x1Njbi/SxkwsELCFzKEEAJ7WM1v3UhZ6SrodApWe2t1w5W83SNwyRxg8pPEx?= =?us-ascii?Q?xSQSY9wfA6CJdfcd6KWydpFKkty7/8MqYDzOWpjBl27GCqKcxlSOvlJQ7SRw?= =?us-ascii?Q?DuD4L4ATfyHjSn8WK/pt/YiZINsLFEhYKjoBHlaoal2xtXJGJhBKkVpjWEGE?= =?us-ascii?Q?7Dgq5na80pKjPz2yLIW1IP3pYuwMp3oETEJjJO2n1JmzqIc6UgmGRG9W+BRz?= =?us-ascii?Q?zbF1h5M5iqyQk5a9OqsSFJ0DxxJTU7OgrjZ2G5HeJOwaqMNmSDcvzhWfFYyA?= =?us-ascii?Q?ZgHa/UoE8y+su7iuCRZjwDE3LR5no38OTlFWlVGDfc8UIzOveovG427qE6rx?= =?us-ascii?Q?vI8LTF4r7Wl5p+S6po15RsUCMMb+QM4xlBdCJ7meB2q5ZxzisyD4U93zE3La?= =?us-ascii?Q?LMZVdadD/h9O8xEmoUfrFxgjn4/VnvszmUDedSol1EV2Q4IFN/pb++9y4/er?= =?us-ascii?Q?YVZgkyjSHkgHWA3MZmImKdCWE4Alw7UmPXPl9ZjK/9JTkXktoaR6npzTJPJc?= =?us-ascii?Q?gnHoeblD4UWHbz/E9Xv24Ony6JMJ6m5k4dN0HTuWwZ1y6BG+uLIHgMDa26rC?= =?us-ascii?Q?cx7Fzn7IOeAE/Po/8LcU/7AG0AzEZG567XBSpsoTzOXA8yVNVrIRbJ/fTger?= =?us-ascii?Q?RBega9dR1fcrm2htv/mrRB2W/2wEt0EKXs8R/gx5OdXPDjjsfF1tADCM1XwW?= =?us-ascii?Q?Fa1xFIX3+m8+gM8zHY/yg2r094YLtRWS+FVYLO7+bLWwCjbOFx29ems/fkMp?= =?us-ascii?Q?WzCr5+y8VnGtdTYjVAGgFZp0UT9zEHA9RsTxa2fdvJeC/vUjoBAQ/conTJYi?= =?us-ascii?Q?Hya3ZXml8JmClCaVsgZ4E6PSmh8M/M2bf7wnOukHkLF38VJAKOEL0h9Z4IpK?= =?us-ascii?Q?vUFWjjQm0/H9S4VY0F0pIZnUJEjAWPVJgOounQifER3ipGSRJCl2nRTTszO7?= =?us-ascii?Q?c18M/UDodO9i6vg6TfkvMvYmmx6vSVEb/0XqAb4KIzyYvXy3PL3xu0Ex0JFT?= =?us-ascii?Q?DblKkaotrkPV1DCB4b8FrSgZfRTGGz4rKosPQBBlgzkVIOBfYkf0sfE1teC/?= =?us-ascii?Q?F3SOKgMX8sotdzdKV5ghlNUgAlhn0GVh6qYyAxsZjVBtr4iLC4q9WmwKhoGJ?= =?us-ascii?Q?V5ukN1cHb7eScXuKGluJzgYb9tzKe/wxNxFYPiso2f0FXpQxBHAHlH2h/BzP?= =?us-ascii?Q?r+TOAYfpsIKQ68p/cktyVqZFhMU7SB1y+f+UIVW+HsVwcGEcPwLvJqhjY5Mt?= =?us-ascii?Q?DYurmR/l18SylI0VShloEjvU+eqZ1kycy5jLwPjmXNcyfG8g8jvCXdRGwu5M?= =?us-ascii?Q?kmJCa/GARantqaSZg8l3lkUwbh703rN0G8tMLgJx9AgOYkYzh4DZy+7MuMpr?= =?us-ascii?Q?rq6sofIyX8oxM6v+yzSJ9Y873uq3GlD8fDuIfC42HAB5Q9p9/Ci2AEO2KeQi?= =?us-ascii?Q?r4DC9K6DI4FLNnRLmxQVg5DCB3ONYA8c28O99o4aJ6djQSddAL7tUAWht9yX?= =?us-ascii?Q?dbjLCJUr/7uX69N03ya2E4f8m0QlHz3KvrDXYAy5?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5046.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f3689522-2a7b-4479-8949-08dbc9333583 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Oct 2023 01:49:58.0819 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: IUyvKsyCTB/E6+qGPS37YZti4/tq2MlIiHY5E8pAua8msf07rSvSMIGbcmwURxJv75zWfOCueGWE+WMW7zsMEw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR11MB7745 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,wenxing.hou@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: YCqVEwozbsn3IhZztGZ6DST3x7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=TtTvDjUG; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") Hi all, Could you help me take a look at this patch?=20 Thank you very much!! Thanks. Wenxing -----Original Message----- From: Hou, Wenxing=20 Sent: Saturday, October 7, 2023 9:39 PM To: devel@edk2.groups.io; sean.brogan@microsoft.com; mikuback@linux.microso= ft.com; Kinney, Michael D ; gaoliming@byosoft.c= om.cn Cc: Li, Yi1 Subject: RE: [edk2-devel] [PATCH v3 09/11] CryptoPkg: Add Mbedtls submodule= in CI Hi all, My patch is about enabling Mbedtls. And this patch will change the pytool. Could you review this patch for the pytool change? Thanks Wenxing -----Original Message----- From: devel@edk2.groups.io On Behalf Of Wenxing Hou Sent: Thursday, September 28, 2023 11:34 PM To: devel@edk2.groups.io Cc: Yao, Jiewen ; Li, Yi1 ; Lu, Xia= oyu1 ; Jiang, Guomin Subject: [edk2-devel] [PATCH v3 09/11] CryptoPkg: Add Mbedtls submodule in = CI Change CI for new Mbedtls submodule. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4177 Cc: Jiewen Yao Cc: Yi Li Cc: Xiaoyu Lu Cc: Guomin Jiang Signed-off-by: Wenxing Hou --- .pytool/CISettings.py | 2 ++ CryptoPkg/CryptoPkg.ci.yaml | 12 +++++++++++- CryptoPkg/CryptoPkg.dec | 3 ++- CryptoPkg/CryptoPkg.dsc | 8 ++++++++ CryptoPkg/Private/Library/MbedTlsLib.h | 12 ++++++++++++ 5 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 Cryp= toPkg/Private/Library/MbedTlsLib.h diff --git a/.pytool/CISettings.py b/.pytool/CISettings.py index 6fb7342f81= ..c5803a877c 100644 --- a/.pytool/CISettings.py +++ b/.pytool/CISettings.py @@ -199,6 +199,8 @@ class Settings(CiBuildSettingsManager, UpdateSettingsMa= nager, SetupSettingsManag "MdePkg/Library/BaseFdtLib/libfdt", False)) rs.append(= RequiredSubmodule( "MdePkg/Library/MipiSysTLib/mipisyst", False= ))+ rs.append(RequiredSubmodule(+ "CryptoPkg/Library/Mbed= TlsLib/mbedtls", False)) return rs def GetName(self):diff --gi= t a/CryptoPkg/CryptoPkg.ci.yaml b/CryptoPkg/CryptoPkg.ci.yaml index 59ba56d41e..967612230d 100644 --- a/CryptoPkg/CryptoPkg.ci.yaml +++ b/CryptoPkg/CryptoPkg.ci.yaml @@ -38,10 +38,20 @@ # This has OpenSSL interfaces that aren't UEFI spec compliant = "Library/BaseCryptLib/Hash/CryptParallelHash.h", "L= ibrary/Include/fcntl.h",+ # This has Mbedtls interfaces that are= n't UEFI spec compliant+ "Library/Include/stdint.h",+ = "Library/Include/stubs-32.h", # These directories contain auto= -generated OpenSSL content "Library/OpensslLib", "L= ibrary/IntrinsicLib",- "Library/BaseCryptLib/Pk/CryptPkcs7Verify= Base.c"+ "Library/BaseCryptLib/Pk/CryptPkcs7VerifyBase.c",+ = # mbedtls+ "Library/MbedTlsLib/mbedtls",+ # Th= is has mbedtls interfaces that aren't UEFI spec compliant+ "Libr= ary/MbedTlsLib/EcSm2Null.c",+ "Library/MbedTlsLib/CrtWrapper.c",= + "Library/MbedTlsLib/Include/mbedtls/mbedtls_config.h",+ = "Library/BaseCryptLibMbedTls/SysCall" ] }, "CompilerPl= ugin": {diff --git a/CryptoPkg/CryptoPkg.dec b/CryptoPkg/CryptoPkg.dec index a5fa81a338..e613b6b1ae 100644 --- a/CryptoPkg/CryptoPkg.dec +++ b/CryptoPkg/CryptoPkg.dec @@ -28,9 +28,9 @@ Library/OpensslLib/OpensslGen/include Library/OpensslLib/OpensslGen/pr= oviders/common/include Library/MbedTlsLib/Include- Library/MbedTlsLib/mb= edtls Library/MbedTlsLib/mbedtls/include Library/MbedTlsLib/mbedtls/inc= lude/mbedtls+ Library/MbedTlsLib/mbedtls/library [LibraryClasses] ## @= libraryclass Provides basic library functions for cryptographic primitives= .@@ -49,6 +49,7 @@ ## @libraryclass Provides library functions from the openssl project. = # OpensslLib|Private/Library/OpensslLib.h+ MbedTlsLib|Private/Library/= MbedTlsLib.h ## @libraryclass Provides compiler intrinsic functions re= quired to link openssl project. #diff --git a/CryptoPkg/CryptoPkg.dsc b/C= ryptoPkg/CryptoPkg.dsc index a55dcb9668..6a0104a3bb 100644 --- a/CryptoPkg/CryptoPkg.dsc +++ b/CryptoPkg/CryptoPkg.dsc @@ -364,6 +364,14 @@ CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf CryptoPkg/Library/BaseC= ryptLib/SmmCryptLib.inf CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.in= f+ CryptoPkg/Library/BaseCryptLibMbedTls/BaseCryptLib.inf+ CryptoPkg/Libr= ary/BaseCryptLibMbedTls/SecCryptLib.inf+ CryptoPkg/Library/BaseCryptLibMbe= dTls/PeiCryptLib.inf+ CryptoPkg/Library/BaseCryptLibMbedTls/SmmCryptLib.in= f+ CryptoPkg/Library/BaseCryptLibMbedTls/RuntimeCryptLib.inf+ CryptoPkg/L= ibrary/BaseCryptLibMbedTls/TestBaseCryptLib.inf+ CryptoPkg/Library/MbedTls= Lib/MbedTlsLib.inf+ CryptoPkg/Library/MbedTlsLib/MbedTlsLibFull.inf Cryp= toPkg/Library/BaseCryptLibNull/BaseCryptLibNull.inf CryptoPkg/Library/Int= rinsicLib/IntrinsicLib.inf CryptoPkg/Library/TlsLib/TlsLib.infdiff --git = a/CryptoPkg/Private/Library/MbedTlsLib.h b/CryptoPkg/Private/Library/MbedTl= sLib.h new file mode 100644 index 0000000000..30517a76d3 --- /dev/null +++ b/CryptoPkg/Private/Library/MbedTlsLib.h @@ -0,0 +1,12 @@ +/** @file+ MbedTlsLib class with APIs from the mbedtls project++=20 +Copyright (c) 2023, Intel Corporation. All rights reserved.
+ +SPDX-License-Identifier: BSD-2-Clause-Patent++**/++#ifndef=20 +MBEDTLS_LIB_H_+#define MBEDTLS_LIB_H_++#endif-- 2.26.2.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D Groups.io Links: You receive all messages sent to this group. View/Reply Online (#109161): https://edk2.groups.io/g/devel/message/109161 Mute This Topic: https://groups.io/mt/101639984/6360182 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [wenxing.hou@intel.com] -= =3D-=3D-=3D-=3D-=3D-=3D -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#109473): https://edk2.groups.io/g/devel/message/109473 Mute This Topic: https://groups.io/mt/101816236/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-