From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id F00A4385828E for ; Tue, 16 Aug 2022 13:44:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org F00A4385828E Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 27GDd9UZ032551; Tue, 16 Aug 2022 13:44:43 GMT Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3hx2ccnwrt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 16 Aug 2022 13:44:42 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 27GCgDs3021329; Tue, 16 Aug 2022 13:44:42 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2109.outbound.protection.outlook.com [104.47.70.109]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3hx2d8fy9a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 16 Aug 2022 13:44:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dnVUaCr5NGzJAuJGExPpy/YoqA5KLy6ZEvW2vPkm95SzRj+92DL2x4k5tnsm2JwRdGFej8x5llNzMTrQcFYfAwSBUXh1Pg3On0VSjFGyZckE8NVNZhsX0q8jPB7CEqfYDA2JbnyuoBdd/GiThL1Vwl66DxpHbtqsSgOQ1v5U5ylaKYUtz+P+4wukk2GPIy3YtGWKt7F/UfXwaCX2O7wye9sH5eN4f0aaUWNjp1r8+RbPMBcE2V7Xwf0kQ028F4JOl2iiGJrI2aadi8uKZjVA2fBIkL0579Jp/MqIX2/l5zshRm38N17gHEtXH4bNB6qTkY+OYHa+GvQV72Ppm7O4hw== 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=wPsshBiDvZ3hF2pOhLJMeP6I2FvAGBe4xA9unbIdOaU=; b=MAWp/v15BQKE0/cD2kGDpMjjuJBxbyb1O9dh9lCaKzAsQMpquKr/NVWHYkjji3ysjbRLIscAT4PPubOb4vkxEj/Nc1rjzE5bLNMQVzBbb6LNBIEkMBLdim/J3eVQXDdUFf5KhvekvN4RPllfBvcQD5u7fZf8kWdQYaxKhuQJ7j9Ehz7Re2SvdNm5+S3EO//mG1j3jIv6TfH245C1rb34di0YOBmWVBd4DjeqmRJy8xhOLgS4j3Ws4bM+X9fnEFB8fno7VR5qfHa3sYJXbCcZbHwDuUeCRb8CXys/3+gYK1VAlgTPdznId6ScOfiKungP/JGYgUAkgGfVxcod9vXhtg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by DM5PR1001MB2394.namprd10.prod.outlook.com (2603:10b6:4:34::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.23; Tue, 16 Aug 2022 13:44:40 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::84af:9275:f1d7:de1]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::84af:9275:f1d7:de1%5]) with mapi id 15.20.5504.028; Tue, 16 Aug 2022 13:44:40 +0000 From: Qing Zhao To: Nathan Sidwell CC: GCC Patches Subject: Re: Where in C++ module streaming to handle a new bitfield added in "tree_decl_common" Thread-Topic: Where in C++ module streaming to handle a new bitfield added in "tree_decl_common" Thread-Index: AQHYpn5eQ7P249ih+Eq7kHVyJiuptK2wCPUAgAGWuAA= Date: Tue, 16 Aug 2022 13:44:40 +0000 Message-ID: <6AD940C2-BD52-4400-98B7-74826E650DE3@oracle.com> References: <2FC986DA-9B67-476D-9593-49F1B2BFA2A9@oracle.com> <65809051-2ecf-1f42-ec90-5d5b72935642@acm.org> In-Reply-To: <65809051-2ecf-1f42-ec90-5d5b72935642@acm.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3608.120.23.2.7) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b0469cda-6a25-4f2e-d13d-08da7f8d7801 x-ms-traffictypediagnostic: DM5PR1001MB2394:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: vj4cDAx3HdSFNFlekS7JYkdX5MX6pq6XiQIeCKgYJZcRIaGp4hHKz6pKN70ybEjGYFefGjhKxFqm+98A0FGfvnjvOJl2huj6dSizoPCNOhp99iuUE+3KlZCn77x3h/PMvPuS2QMqD51AsQDE13IDQXWH9+npV1isL1AVOimBFGl9yvCjy8/ZwJiG0Yr0Cwrd0vbvcTnl2VBYXvkuQBmwN2vJE5/S4BECb89TBkRkLkcARTS8SJ4Bu7pj5AZgcftQ9dRd7sdGJXZSaE86OO1DnSPTE89uLdpPYCdB4+AnTWDawVIG8z0rvPqv/2K4ZNwhBExQxX2C7rnfUxDKgUQM4qNwvVxvGAdL8XJ5OfXKjLs9p4Fk6iIJFY+0Ziflk+5fKOJPirwCvE+3tDQgf96IOUre75x/u8Q09q5C4DvRoQPPtiQp68gj7JUF7VrVCos9wJbXKMdjfr5+Ft1YCK6w2tHoYBRIRC1CZWhjV1W/mB/ZKpshTnMMCTvkTIAS6fpcEEYosspWRWquLeHpU4uF1UZPQCKDWtSQ+0Ekb9RHTgZRRKNbVdpY+Ld9rFrj22oZ6t/UdVCQmrV+ljxwqhRlY+lEYu1/rWK15zS5OZYOE2zSZ8NsjzmuFJ57LgLWG/SQE8eo50PwmB+BI/toQPsFPWb+Joa7t7SCV2yoRuilnfMgcfeH195u3P4H1uSv45RfoSLTXno2mItMUE9jKnQx8bD9WkiwR1TUuOZaKDe6G1rcLQxBLQUzlA1BytTlAFUIN0D6AqVs1b+dJ0UtRIUN7/UE2uXI09dOH4NOMAehdaI2QCdyWTiLq+Q8QijRy07Ul+8l4aCDb5ht/yaenXcGCBhq+T1qDUwxJwFvSZBXmsRVc9rtpZ3kYheJ2ZT2+hUmUA3hNsJZZm/WRWs2dnVCAw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR10MB4344.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(376002)(39860400002)(346002)(396003)(136003)(366004)(38070700005)(5660300002)(91956017)(76116006)(66946007)(64756008)(316002)(66476007)(66446008)(36756003)(66556008)(71200400001)(6486002)(478600001)(966005)(86362001)(8936002)(8676002)(4326008)(44832011)(122000001)(38100700002)(33656002)(6506007)(53546011)(41300700001)(6916009)(2906002)(6512007)(186003)(2616005)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dkhlVVYvVGVTdDNaYUVQV001TW1sdlR1dmY1RkVJcGtQZzhXRlV3eWwwRjdj?= =?utf-8?B?cjVYQkJIblZZcVQ1ZTBzNWoyMFpGMDgwZUtyS3cxK0Qxd25JVGhIamhQdU0x?= =?utf-8?B?WjJCbWd5a2pJS0JBMlFBeGV2Vmt4VGlYQmZxeHQweE9yUHQvcEVIZ2xaOENx?= =?utf-8?B?YWxJdlN5a0Q4bWl3TXBsLy9sVDZLaGttNUJCYks4Q0ZCaDNWdEV6VnN1VVo4?= =?utf-8?B?b0RTLzlLQ0Z3YTVRNmIwR0ZDWmIzOERCajhJTzBiaDNlVDl6MWdnWHNCYzNw?= =?utf-8?B?NFBYNE8rNjkvenNOTWNEaUdxNmFVQWQwZjhoQk5qdk1YaHFZUWc5U1AyMTl6?= =?utf-8?B?a2dRcDdtaE1TZnhLVklsMXNHVDVtdzdUc1RRNWxmc0JxTmdUSmIwOENWZlhJ?= =?utf-8?B?d25ocWxlNzZTdzlnOHJvSHpBZnFTU1NXYVAvSWlRZzRGN2J1WlhkSWlDUFBq?= =?utf-8?B?cXJkNFNkdmp2SE1CMGUwYzR5VnF5OGZZUWgzNmRsYmc5Ty9ZT280ZlZmVGhl?= =?utf-8?B?TlhaY1pLZ2xtUHhEZ3BHK1hHYk1YQnZyVWd2VkgyM0VrL3RFcTAxeWRIVjhW?= =?utf-8?B?SDRMWGZMdS9WSUQycHQrajhEZkpBYzBVQVJpeTRnNldtalZvMFhJc3hnbkFI?= =?utf-8?B?cUErOS9mdEo0K0tHUjNrRzV0YUVmdzVXa0VDelJiTm05RUEvVTY0RWFXL1d6?= =?utf-8?B?UWlsUzlGeVZyeHNRcVpOSmMzTko5V3l2L2ZEZTA5N0xVVExuc3dIdGd1UmEx?= =?utf-8?B?djVoZ29ldTMxN01rVll0UVNjMWRXSnJ2OFpHaTRNR3UvTGtIQU5XdGRhaVJR?= =?utf-8?B?K1FvNlFON1lWalpZSktoNGsxV0c4MFA3cnUrc3hGVUt3WlRJRHlUeTlhUmp3?= =?utf-8?B?UDNpd2ZsdFZRLy9BWVNSek1nMFZUc1ljdjNPQnVVR1ViRVBFNENIWnh6VjVC?= =?utf-8?B?UlUzdXR1d01acmZ4REN2SmcvSmdieGVjTWI0U294cXRVUFZxaU14RkdWZ3U3?= =?utf-8?B?alFYbUxrdlcvbmV3ajVQcVVSRGxpcGEwSklDaC93U3JrdTlrcmVFbjZtbnVK?= =?utf-8?B?WFAzd0hLZkl5dzd2ZC9GRVplUHVTV0N5RHJJNHVUa20yQTlIbWZCU3pvVjBl?= =?utf-8?B?dDNTREhkK0ZzRDlISjNhUm1FVmFIKytDK2ExZUhTRFVFV1dzbzByWGtIenRB?= =?utf-8?B?M3dtRk9jeE5ZanByK3JEdVdPTGIvUDZtSnZrT3RSMzc3azVxOWdJNVpKTm1r?= =?utf-8?B?eUU3d0ZyMDJSZ0VWMy8raHRXUGsxNHF1OU93djhyRitvakdHTyt1Wm1iSTIr?= =?utf-8?B?QkdFb0V6NXZJT3dyTE94T1RGQ1dldXRDdmJNNExORkVONWpNeVhISWk1SnVD?= =?utf-8?B?Y3A4cGxKMkZqUnZKYldob3o5L0NFeFl1YWdDZXFKM0phWWUzQTJxci9Kek9v?= =?utf-8?B?SXhrcll4RmJOU0FYdHpzY3I3VnJtR1dDeHk0RDlSTGdxUXZHQ3IwK0FlcDN3?= =?utf-8?B?dCtMbWRTalRHNnlGS2pERFBJR1Y0cWZ1bEhlaXROVjUxOUN4VldsOFNNeGxL?= =?utf-8?B?Z01TeHVYL25Yd3FsdlBzQlg0Tks4L1ZYbU45a2U4OWg2UGFDbTIvTU5zaFF0?= =?utf-8?B?U3d3ejE0Mk13WnFXUDJXaW5NTVdBQVM0WWhKZVQ5ajBzamlGQ0Rzb0I0UjZK?= =?utf-8?B?RlUvaUhmWlZpN1F0dndRMUttVzVxMDJSOE5BemxYckZSN2dEUjlVd3JiS3Fv?= =?utf-8?B?a1M4dUNBVll1TFg4TWwzaWNZcVNsSlZmTzgzQlhpZkl5bk1BdWhUVk41aXh1?= =?utf-8?B?SlJjUXNXbTRhbERvTXlFVUlDUFdxUmxNRnNWSjkvV3R2ditLRDE1SmxwdFBw?= =?utf-8?B?dm5zc0lmamNzanNCNjJZKzh2b1dRS0FIVFVIZUp6SnRVQmY4Mklsa05oM1Nk?= =?utf-8?B?dUwyNlFFemhIYW9LZWdNYlJPSjZ2RXJ5a1BMemhGMVJoKzcwVCtsTHp3a1lu?= =?utf-8?B?d0xJaGZpRk1MTDZLMU1jSStsUXVWL00vV05FZEErb3hjcUxvRXB0Rmc3Z3VP?= =?utf-8?B?Wi9HWTRRazFqNDJQWU5qd2gvMGUrZWJOZkRaK09laGZWRXdrQTgyN3Uvc1M4?= =?utf-8?B?REhidjdXaE12d1haYXI0eFkyQVVHd05KUU9uVkl6bVRZaXVMMnRBSGtZclpG?= =?utf-8?Q?hpHKRiNCbLJ6PRh2R8dijgo=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <330396BDF2937842BA03B98D46AFF160@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR10MB4344.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b0469cda-6a25-4f2e-d13d-08da7f8d7801 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Aug 2022 13:44:40.6535 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: PXeqa5jGBkgDpCBDGeahagMxQo1spNMQntQbjmPrZD5mvSfkti6vz5RJ1nkx2MVmPirehcpT83EyWAoF+G8SPw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1001MB2394 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.883,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-08-16_08,2022-08-16_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2207270000 definitions=main-2208160052 X-Proofpoint-GUID: Cwui08HARpska-H-Qick35YHBlN0b2Lw X-Proofpoint-ORIG-GUID: Cwui08HARpska-H-Qick35YHBlN0b2Lw X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Aug 2022 13:44:48 -0000 DQoNCj4gT24gQXVnIDE1LCAyMDIyLCBhdCA5OjI4IEFNLCBOYXRoYW4gU2lkd2VsbCA8bmF0aGFu QGFjbS5vcmc+IHdyb3RlOg0KPiANCj4gT24gOC8yLzIyIDEwOjQ0LCBRaW5nIFpoYW8gd3JvdGU6 DQo+PiBIaSwgTmF0aGFuLA0KPj4gSSBhbSBhZGRpbmcgYSBuZXcgYml0ZmllbGQg4oCcZGVjbF9u b3RfZmxleGFycmF54oCdIGluIOKAnHRyZWVfZGVjbF9jb21tb27igJ0gIChnY2MvdHJlZS1jb3Jl LmgpIGZvciB0aGUgbmV3IGdjYyBmZWF0dXJlIC1mc3RyaWN0LWZsZXgtYXJyYXlzLg0KPj4gPT09 PQ0KPj4gZGlmZiAtLWdpdCBhL2djYy90cmVlLWNvcmUuaCBiL2djYy90cmVlLWNvcmUuaA0KPj4g aW5kZXggZWE5ZjI4MWYxY2MuLjQ1OGM2ZTZjZWVhIDEwMDY0NA0KPj4gLS0tIGEvZ2NjL3RyZWUt Y29yZS5oDQo+PiArKysgYi9nY2MvdHJlZS1jb3JlLmgNCj4+IEBAIC0xODEzLDcgKzE4MTMsMTAg QEAgc3RydWN0IEdUWSgoKSkgdHJlZV9kZWNsX2NvbW1vbiB7DQo+PiAgICAgIFRZUEVfV0FSTl9J Rl9OT1RfQUxJR04uICAqLw0KPj4gICB1bnNpZ25lZCBpbnQgd2Fybl9pZl9ub3RfYWxpZ24gOiA2 Ow0KPj4gLSAgLyogMTQgYml0cyB1bnVzZWQuICAqLw0KPj4gKyAgLyogSW4gRklFTERfREVDTCwg dGhpcyBpcyBERUNMX05PVF9GTEVYQVJSQVkuICAqLw0KPj4gKyAgdW5zaWduZWQgaW50IGRlY2xf bm90X2ZsZXhhcnJheSA6IDE7DQo+IA0KPiBJcyBpdCBwb3NzaWJsZSB0byBpbnZlcnQgdGhlIG1l YW5pbmcgaGVyZSAtLSBzZXQgdGhlIGZsYWcgaWYgaXQgL0lTLyBhIGZsZXhpYmxlIGFycmF5PyBu ZWdhdGVkIGZsYWdzIGNhbiBiZSBjb25mdXNpbmcsIGFuZCBJIHNlZSB5b3VyIHBhdGNoIHNldHMg aXQgdG8gJyFpc19mbGV4aWJsZV9hcnJheSAoLi4uKScgYW55d2F5Pw0KPiANCj4+ICsNCj4+ICsg IC8qIDEzIGJpdHMgdW51c2VkLiAgKi8NCj4+ICAgLyogVUlEIGZvciBwb2ludHMtdG8gc2V0cywg c3RhYmxlIG92ZXIgY29weWluZyBmcm9tIGlubGluaW5nLiAgKi8NCj4+ICAgdW5zaWduZWQgaW50 IHB0X3VpZDsNCj4+ID09PT0NCj4+IChQbGVhc2UgcmVmZXIgdG8gdGhlIGZvbGxvd2luZyBmb3Ig ZGV0YWlsczoNCj4+IGh0dHBzOi8vZ2NjLmdudS5vcmcvcGlwZXJtYWlsL2djYy1wYXRjaGVzLzIw MjItSnVseS81OTg1NTYuaHRtbA0KPj4gaHR0cHM6Ly9nY2MuZ251Lm9yZy9waXBlcm1haWwvZ2Nj LXBhdGNoZXMvMjAyMi1KdWx5LzU5ODk2NS5odG1sDQo+IA0KPiANCj4gDQo+PiApDQo+PiBSaWNo YXJkIG1lbnRpb25lZCB0aGUgZm9sbG93aW5nOg0KPj4gIkkndmUgbm90IHNlZW4gaXQgc28geW91 IGFyZSBwcm9iYWJseSBtaXNzaW5nIGl0IC0gdGhlIGJpdCBoYXMgdG8gYmUNCj4+IHN0cmVhbWVk IGluIHRyZWUtc3RyZWFtZXIte2luLG91dH0uY2MgdG8gYmUgdXNhYmxlIGZyb20gTFRPLiAgUG9z c2libHkNCj4+IEMrKyBtb2R1bGUgc3RyZWFtaW5nIGFsc28gbmVlZHMgdG8gaGFuZGxlIGl0LuKA nQ0KPj4gSSBoYXZlIGZpZ3VyZWQgb3V0IHRoYXQgd2hlcmUgdG8gYWRkIHRoZSBoYW5kbGluZyBv ZiB0aGUgYml0IGluIOKAnHRyZWUtc3RyZWFtZXIte2luLCBvdXR9LmNjLA0KPj4gSG93ZXZlciwg aXTigJlzIHF1aXRlIGRpZmZpY3VsdCBmb3IgbWUgdG8gbG9jYXRlIHdoZXJlIHNob3VsZCBJIGFk ZCB0aGUgaGFuZGxpbmcgb2YgdGhpcyBuZXcgYml0IGluDQo+PiBDKysgbW9kdWxlIHN0cmVhbWlu ZywgIGNvdWxkIHlvdSBwbGVhc2UgaGVscCBtZSBvbiB0aGlzPw0KPiANCj4gDQo+IGFkZCBpdCBp biB0byB0cmVlc197aW4sb3V0fTo6Y29yZV9ib29scy4gIFlvdSBjb3VsZCBlbGlkZSBzdHJlYW1p bmcgZm9yIG5vbi1GSUVMRF9ERUNMIGRlY2xzLg0KDQpHb3QgaXQuIFRoYW5rcyBhIGxvdC4NCg0K UWluZw0KPiANCj4gSG9wZSB0aGF0IGhlbHBzLg0KPiANCj4gbmF0aGFuDQo+IA0KPiANCj4gDQo+ PiBUaGFua3MgYSBsb3QgZm9yIHlvdXIgaGVscC4NCj4+IFFpbmcNCj4gDQo+IA0KPiAtLSANCj4g TmF0aGFuIFNpZHdlbGwNCg0K