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 F0DA23858C5F for ; Thu, 9 Feb 2023 14:41:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F0DA23858C5F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 319BO4xU023934; Thu, 9 Feb 2023 14:41:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=L+RYanKSnk44FPjivMw67DY1ITPv7OxQWEa9vqc0a3I=; b=N+YPiHP2UphHderc7Sog5DcAHPhajwuGqtgYXa+S+MRQmmqT1h/OIkIexwyyFFVXCoVs g8F7wVdxfMNyqhPupbD6ot8JM7j02sV7z5qx+o6oyl7p6rN64LyN4Bnz5Ae8N+DgJqv9 fsUy80GL1EJwn4XU+2LV4hHybdDUf9tfK9QiOPrqITBoT7MslZX+BNYdCEyrOG8jz5+a zmDgAp9YUSxHOUW+wOowRvMKlO0PaCeDO+R2pyTygPCke3+oWlbc/OlfUqH/iahOiduV rSueqQANyhHDQXeJGsrLlzGGLb1rSr3i0IE2eT8GCPQBjqv/tjIoIV+aypQu0GyFjzDn QA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nhdsdtu8e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 09 Feb 2023 14:41:01 +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 319Dmh8Z002695; Thu, 9 Feb 2023 14:41:01 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3nhdtfeb3c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 09 Feb 2023 14:41:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Bh6AQ0osiF4kcW4Rzu58xYGLClAknNk1DGXRuHwsL29GtyCcd3+9f9zUMXZrHYkx1bojQkPJ2m+IqmSjYuGZMt9yMrbtCr6q/xtJmSUBCRRCA78CgICuSt+jGH3Ksby2Xtt7PL6YiJev/54fitjz43KJvbJU94KqpW7YsQ9F1MKG/wk8G1LFWQ70rIgPAZ+KRamQN1WOjCzEm9VkwUwBaXwf2sv1WOvpR7EKwQBhwM2kLOQkhHGCRTyBBMXJpiOzH/HTC5BZwzcT05wCcnavczDoTiJYokbUz8lGkL4h6UeFfzNlRmQDLCfN9l5bYFL9kmfBVwiEuyHPZ/dDO4BArA== 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=L+RYanKSnk44FPjivMw67DY1ITPv7OxQWEa9vqc0a3I=; b=OReuG/+7ECW9BLSRN4eVDjbNNhGdDdpoC3ARx4k671j5PbSruK445DJeli5r+rjNmsUC/qGpwqSAFJnidhyKGU/9SPWxdt9bvH6N/5+iKu1bd8NziF3nh0ZBADbzhorHYumE/NKYCGujKncS2O/nOjV9VqIrwcNXHP48ExbGDwXcFiSbwqbcIuKkCELGzhLu2jQAoOnsCtVsqC+JfeYHQwwekynF56dz+vOHdVOHxjC07uN7ZIJM6stsiUJRnwCzNCsMLIKtddcexJGmc0o54jBBZ6EiyYElk8X3HPiqIuYkFDV6AB+WUfsbo4O9UEu8+pvkbsGR2TtbIf/M7A8kBA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=L+RYanKSnk44FPjivMw67DY1ITPv7OxQWEa9vqc0a3I=; b=Z5OH2I9TWerubXlnS4dYPglWGigMhkw2ClPGW0f5K5RST2z213RunoGmNxV9506GWjQdd3xFao1Iy10fKG1mvd9+WHdqtGOrva3D/056D2IDerZ/RniYJW10g8+iAZJ52EA9vLEW+yQG5Qq8WYQBN/smWe0R2u2M4d/wR4ZIoPI= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by BLAPR10MB5281.namprd10.prod.outlook.com (2603:10b6:208:30f::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19; Thu, 9 Feb 2023 14:40:57 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::7030:ed2e:20d0:cd5b]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::7030:ed2e:20d0:cd5b%5]) with mapi id 15.20.6086.017; Thu, 9 Feb 2023 14:40:57 +0000 From: Qing Zhao To: Richard Biener , Joseph Myers , kees Cook CC: "gcc-patches@gcc.gnu.org" , "siddhesh@gotplt.org" Subject: Re: [PATCH 1/2] Handle component_ref to a structre/union field including flexible array member [PR101832] Thread-Topic: [PATCH 1/2] Handle component_ref to a structre/union field including flexible array member [PR101832] Thread-Index: AQHZNX31Ed6QQ1+7j0WzPTRpR3Dia665+UIAgAAsBICAASqFgIAAYHEAgAAAkICAAAwiAIABIE0AgABbkICABHfFAIAAVduAgACQPICAAQZgAIAASaCAgAALK4CAAD1ggIABA7+AgABDzYCAAEVvAIABAd6A Date: Thu, 9 Feb 2023 14:40:57 +0000 Message-ID: References: <20230131141140.3610133-1-qing.zhao@oracle.com> <20230131141140.3610133-2-qing.zhao@oracle.com> <812910BC-870E-4432-870D-538024F1A510@oracle.com> <3B30CFBF-5004-41A4-940D-1F23C010403B@oracle.com> <4E515AA5-2069-497E-A301-EC8ED744E780@oracle.com> <367EBE15-1675-4D29-A9C2-A4A57FA4DB62@oracle.com> <2184ee29-9a36-e85-11c5-81c47aa22055@codesourcery.com> <91678405-D50E-405A-98FB-F3BA6888577E@oracle.com> <2AB95191-B5D9-41AC-916A-C57ED20DF55E@oracle.com> <17bc7992-23b6-63dc-3a3a-1be016d3bbb@codesourcery.com> <50AC7191-4B2D-4BAE-8DEA-DE9CC21C4787@oracle.com> In-Reply-To: <50AC7191-4B2D-4BAE-8DEA-DE9CC21C4787@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3696.120.41.1.1) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR10MB4344:EE_|BLAPR10MB5281:EE_ x-ms-office365-filtering-correlation-id: 8caf84aa-3c50-4b5b-cafb-08db0aaba7da x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YUa/+KKyTEsxTE1gXiGqr5oajZZOf8wT3yuWn8Szbpb0Utw4DEmrvyDMvNTg3piU3Khx5EZUM24DkVivocynTWjq1yi3y8uWxm4Lt/hhaYPLx1fFaifMsCOn6+YLHtEwwued8ZlB1q+mN8VnafgZpnoLuPCDjWeCZ6XciFFF3FsP92SPwbkKxq5gqZYKuFjGC7rkfuYPn7NlNYtw0zOs1xRQmhWPKTjgEcx1pBG7wGtKgfI8RFWqshriHIpaJaEumNOcTsZKcDRfMVxk/5w9VHd4WMKdVU4jFAfpOZiOHxDCkng8Pw8IaKKGt5Ln4ifzNYwPH+nZILQnq/SL1q2Ur91pPS8OZBY6NNgNBCdchArtzpCTsnpcGChk69LV9CGh9ZdOz0opp2mjcUxs3OLJhIOdovHopBaMtCrtqmGUVwnua4mf9jul9DugKabGA/0kWX4Tc1W7xXZh801Y/tgf2L3Fn9tqJu/NBHHu//9n9KOlVlAWcrlBtfUu/M7anxGoqwe/Tr4iVxePa8odiKTlmUN63AfHeh/OFXFvFA1sT9Yvr1VvPyXizr1OSQGeQCi/YqmvPwCMBNNnzH62d+EC3Q2BcfWZvTZJukY/k5fgz71XoJUWiZRmR3YOu7Z0omJhpo0z5xEwcma0lhZztsSh2lwVvYNcd5rE1c8uoQZpPFhFgG6kXwE/PDsgcEdN+LK/DtV6lb6pgjafla8v57OqqO8rrqJTviKVEY2RjZ1ykpdA/sMHgs/NGeJw0gcxmHdyQ19/SlWD7mQPW/ksBUYa/PSPawtkN8dC6sViGF6p6uPA6Z3wGRRManO5we4Y4E3U 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:(13230025)(39860400002)(396003)(366004)(376002)(136003)(346002)(451199018)(83380400001)(2906002)(36756003)(44832011)(26005)(186003)(71200400001)(53546011)(6512007)(6506007)(8936002)(4326008)(33656002)(5660300002)(41300700001)(8676002)(966005)(6486002)(478600001)(86362001)(38100700002)(91956017)(122000001)(2616005)(38070700005)(66946007)(66446008)(76116006)(66556008)(316002)(66476007)(54906003)(64756008)(110136005)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZTBTNHBHUlFJTml2T2NlWFJVQW9mUk1JVUkyM3hUWisyeUxBQkY2VEorRUNS?= =?utf-8?B?NG1NWklsKzF3T29zYURVZDdCMlA1UklnV3N1QTcvVjJqaFRSZ1NXOEZLb1Vy?= =?utf-8?B?dElzUmFCb3I4N1ZITjVFVTNEc09LU3Z2eUxtR1FMYVBiSEgyMXJDbThGQ1hR?= =?utf-8?B?WHFBdGFxNW5VWUI3N1N3Y3ZWNnUxdHRlNjZmSVV2YVlMcDhkMXh6alV4WTIw?= =?utf-8?B?MHZ2cXFOc1F1QmJxazQyNWpnb3NNLzJhYitFOXplMGJVU1k5REdmVzZGV3Aw?= =?utf-8?B?ZlRjUjJ3U3d6UEpmMzg4OUhqM0piK1lhdWJQN2hJcnRJREVOQ2RmMFJaL0k4?= =?utf-8?B?S05QWkdzZFBmZ2VzdmVWa0tvQ0FOdWl4MXpvTHN1ZGZNNllLN05VOXJkWUV3?= =?utf-8?B?cjNVKzhMUVVTQ05CTjRld05uaURDZUZkZzlsRmJUSndSUFJreHF6Tlh4L1c3?= =?utf-8?B?RnU4RjZnWStaR0M2SjdiWXdhaVlvUkN0UldJcGRCem4zRHFWRnpWaGd6RFRw?= =?utf-8?B?YTh6YVppSWZKSmJPS2M3YUsxOG9YUVZuVmZZRHlwRTdpaU1qSEN0a2N6NGU1?= =?utf-8?B?NHorMmFwSTgzQ1Y1MVp1QWhZT1Y1Q1Jhem1HZXdGZ1FNa0oxanJWTEFNWEYx?= =?utf-8?B?Z0pVZnlnQWdRQ3AyK1oxVWUraE04NTFyaVBwWmxNTFlHZVZIVit5UndkTFo3?= =?utf-8?B?QjBUVEx0TVlYYjZ4MHdaRWIzaWZyZ2ZVQ0RSc0RuY2FyNHVpUmtxYkV5QnFa?= =?utf-8?B?eG0xNGcvUVIwWmVoZlR5VGtaNkh2UnlzdmZmbnR6R3o1a3EvU1l1dm5iTXVP?= =?utf-8?B?MzQzc1d6MXlMcXErb2ZHczRxV0hvcHYwYkNWWHkyeFJJWWw3WmxBQ1pBbFpY?= =?utf-8?B?VGtxOWJnZ1NFcmIxWkx4WHFPcmw1TjZHZFNtZEozNWRUK0dmQXdhalJNL2Fj?= =?utf-8?B?RS9kTDVOMGVFWmhJNmdrMm1HeWxyTHBNRW54UC9HZVhjS0Myeis0RWozVE1G?= =?utf-8?B?RUdDeC9VS3daVVUvRlBZNFIvWlJKUGVTZjEyTWVndktHY0hSRm1VSG9pakUz?= =?utf-8?B?ZExDNzhWck9qVGppemp6dGpLV0NZYk5raUJ0b2xqQmIwN281QVFHOHJ2T1Zu?= =?utf-8?B?N0VaaVFpZngzUXU1RnloMzM3aWovUnVVdTVkV2I1QWY2M1VKUm1ubFlOMm16?= =?utf-8?B?L3gzUFM4ZHZia1JnUkVwQWQrT1g3VWw4N0J2dk82dUZoYlU0TkFPZXpMZTha?= =?utf-8?B?Q0NPSGZiY3RjR2U0N2QvZk1DT2NGVjdkVlN6NFlRWXlqYncxUVJhelZ5NjJC?= =?utf-8?B?NjBBTnY0Wm1vVjh4RVJ0UnpmTDg4cjQ4U25jYkEwMXdmQ0M2S2ZwbzIyQzEx?= =?utf-8?B?RERicERBS21tb0Yzb0VhTmFJVGZoM0swRnZVaXI3WjNTUStncFhVYjdMM09o?= =?utf-8?B?b0tPRlJnM3VUY2xPYVN6dU1tNUVnZ1N3Zy9pYmtiSUZycm4vRm5tOE9tZml6?= =?utf-8?B?K1FuTkQxQmpJRlJqR1F6SFBRdUFjUXZkNDI1d0VBK2RMckFFODgvQXNjVjR2?= =?utf-8?B?Zmx6bVZHRE9Da2N3Tk9VTmZiN21TNEtrUURZMGNRZUwwTi9jUzlEZDBGVzdz?= =?utf-8?B?eS90TGhLVkFhQ2x6eXRHdHk5MHBuZzJJMWhjKzJuVjFVL01hTW5abXZ2ODhR?= =?utf-8?B?d05odjhlcGc2TFlTV1NSNlVRSnRUUGdwTVpWSmozZEtHUm9BS1N1b2JWMTBC?= =?utf-8?B?SE4rYmFTeFd4UU9aTm5pV2hpZ1BnVnFBaGpNSzExcVVhdGdIUnpTUmVtMUhm?= =?utf-8?B?ZXcyYmQ1SDc1SFJ4UGg1T0JpWkZQdkFHSE50Q3p1dTN1NU0wT3NPa2dmT0dw?= =?utf-8?B?K2hkYzdTa0wrbWE4L3dFQTBmcjYvcVdEOFMzYU16eEhMK09hYWFHL3U0WGV6?= =?utf-8?B?aTRweVpBUlJrWVF0dXFpdHRha2pFdEpVUk0rV1M5eVZRaExvLzNuWmxCOFF4?= =?utf-8?B?RGt1MlNjNXVkbmY1QW1xeDUveEpWbEhwYkd3OGJiL1RIVGt0bmE5YUNGMkcx?= =?utf-8?B?c3cwblNWNVFaZUdmZ0tVcWYwdU1KaWZOeSs2R3VKelBNU1hEa01zaUtYeVRq?= =?utf-8?B?cWVYOVJkZStlb3F3YVFnSFVuSDMycmdNMk5mUTBoeXpEcUFyNTR5RmNsM3JF?= =?utf-8?B?VHc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <9B17783632CBDC45AC6B36CBAF9BF730@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: znOViyxnjx9kR5MylSufnTkRdN4FqsspmEHBgDzYwFHRePl0oqLK2cbE+kpJOJYtKOn4r/t7oS2jGj9qcqFMJtcfeZG1YawV2pAcihVcWOd/1X7mpLKC9aesm0R3v5uibrwV7P/LSThccMBJFdrc1c5/GG7hrkLaH51G48YQfoyWF+ghlIfqIJEXyB88nF2x+HFk9nf/z8Fw3RoxsGoCHCcWOWITAKNcMMxQLJ3DuCL9vFrHzprDtYmkGntR9QXSwGe+D1iHLFp8PoG4DVf8DqCY7A5qMGUkWwYfigEdrVSi+Mx6nVVL1/3KZH5ZesyvwVkZY8bztO38toaos2GEM6qUvB24+G8dxOAZVexNBQccIt9uSB4hSP9DUSTD9yMABHTYA+h7irpo38tj6UvId6u9uROm/l12hsx0qMexrHt8FJ/cCMgUwNmzMXPQe12QYTVDzSVo0dfZ74xg+53F3sYJDuwtu3qoV1+6xSFQBulIGtbdCn/ETkm9Bg5DFYSdmg4NmSrcafpAwo4l2pa1s5/z18VCnUwRmCirlZFQNBrWf+03gjLtgK1JQR8VRMa1StOh2OcK1IXGooh+JhHWSXtcjcBP8QMkGsXqTt7U36OogVQYb7arIxfaGvCK+/DnGsPCxPClRqzQvQRzrYh/d3mt8zwr9BuCmQBkgrXZ3AdR4oU3GiZdkf5KF9tyhngQHRyxn3eh6YCZh4oGKeSpZLfNPBDHPFQ32xBg21PdxDnpjtNyNNZon4ZlJkSKXApo0MHpkzie5sK46j1vq+Og3Gs1d3Vf8rVj2e9E4okHmvLN0TC72NEjST0/nTDwV3X8c4dQ2MWwdfDIcg1tqVueXnjk+KG3SnG1sRtChg8BaMoeBb13LUDKNhpr/eiiYr5T 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: 8caf84aa-3c50-4b5b-cafb-08db0aaba7da X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2023 14:40:57.4563 (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: Tm9NOudVf9Jp0sJAdD6pG2H7FO6GsnKjKMJlqnKLBjsILTpd68l0CMs4Xbl2Qh0rlnrYaAbY9KgWJabcX8RsVg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5281 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.170.22 definitions=2023-02-09_10,2023-02-09_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 phishscore=0 suspectscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302090139 X-Proofpoint-ORIG-GUID: Jz44P6dFFQSNqDyy9bC6Ikuc_-vTUpIK X-Proofpoint-GUID: Jz44P6dFFQSNqDyy9bC6Ikuc_-vTUpIK X-Spam-Status: No, score=-5.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_SHORT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: DQoNCj4gT24gRmViIDgsIDIwMjMsIGF0IDY6MTggUE0sIFFpbmcgWmhhbyB2aWEgR2NjLXBhdGNo ZXMgPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPiB3cm90ZToNCj4gDQo+IA0KPiANCj4+IE9uIEZl YiA4LCAyMDIzLCBhdCAyOjA5IFBNLCBKb3NlcGggTXllcnMgPGpvc2VwaEBjb2Rlc291cmNlcnku Y29tPiB3cm90ZToNCj4+IA0KPj4gT24gV2VkLCA4IEZlYiAyMDIzLCBRaW5nIFpoYW8gdmlhIEdj Yy1wYXRjaGVzIHdyb3RlOg0KPj4gDQo+Pj4gQnV0IEkgbm90aWNlZCB0aGF0IOKAnGZsZXhpYmxl X2FycmF5X3R5cGVfcOKAnSBsYXRlciB3YXMgbW92ZWQgZnJvbSBGRSB0bw0KPj4+IG1pZGRsZS1l bmQgYW5kIHB1dCBpbnRvIHRyZWUuY2MsIHRyZWUuaCBhcyBhIGdlbmVyYWwgdXRpbGl0eSByb3V0 aW5lLCBhbmQgdG8gDQo+Pj4gDQo+Pj4gLyogRGV0ZXJtaW5lIHdoZXRoZXIgVFlQRSBpcyBhIHN0 cnVjdHVyZSB3aXRoIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyLA0KPj4+ICBvciBhIHVuaW9uIGNv bnRhaW5pbmcgc3VjaCBhIHN0cnVjdHVyZSAocG9zc2libHkgcmVjdXJzaXZlbHkpLiAgKi8NCj4+ PiANCj4+PiBIb3dldmVyLCBzaW5jZSB0aGlzIHJvdXRpbmUgZG9lcyBub3QgY292ZXIgdGhlIGNh c2VzIHdoZW4gdGhlIHN0cnVjdHVyZSANCj4+PiB3aXRoIGZsZXhpYmxlIGFycmF5IG1lbWJlciB3 YXMgcmVjdXJzaXZlbHkgZW1iZWRkZWQgaW50byBzdHJ1Y3R1cmVzLCAod2hpY2ggd2UgDQo+Pj4g YWdyZWVkIHRoYXQgaXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgYSBmbGV4aWJsZSBzaXplZCB0 eXBlKS4gDQo+Pj4gDQo+Pj4gVGhlcmVmb3JlLCBJIGZlZWwgdGhhdCBJdCBtaWdodCBub3QgYmUg cHJvcGVyIHRvIGluY2x1ZGUgdGhpcyByb3V0aW5lIGluIG1pZGRsZSBlbmQgDQo+Pj4gKGFuZCBh Y3R1YWxseSBubyBvdGhlciBwbGFjZXMgSW4gbWlkZGxlIGVuZCB1c2UgdGhpcyByb3V0aW5lIHNv IGZhcikuDQo+PiANCj4+IEkgdGhpbmsgd2UndmUgZXN0YWJsaXNoZWQgdGhhdCBkaWFnbm9zdGlj cyBhbmQgYXQgbGVhc3Qgc29tZSBtaWRkbGUtZW5kIA0KPj4gcHVycG9zZXMgbmVlZCBkaWZmZXJl bnQgY29uZGl0aW9ucy4NCj4gDQo+IFllcywgYWdyZWVkLg0KPiANCj4+IERpYWdub3N0aWNzIGZv ciBuZXN0aW5nIGEgc3RydWN0dXJlIA0KPj4gd2l0aCBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBp bnNpZGUgYW5vdGhlciBzdHJ1Y3R1cmUgc2hvdWxkIG9ubHkgY291bnQgW10gDQo+PiBhcyBhIGZs ZXhpYmxlIGFycmF5IG1lbWJlciwNCj4gDQo+IERpYWdub3N0aWNzIHNob3VsZCBiZSBjb25zaXN0 ZW50IHdpdGggdGhlIGRvY3VtZW50YXRpb24uIA0KPiBUaGUgdXNlIGNhc2VzIHRoYXQgdmlvbGF0 ZSB3aGF0IGlzIGRlZmluZWQgaW4gZG9jdW1lbnRhdGlvbiBzaG91bGQgYmUgZGlhZ25vc3RpY3Mu IA0KPiANCj4gVGhpcyBpbmNsdWRlIGJvdGggQyBzdGFuZGFyZCBhbmQgR0NDIGV4dGVuc2lvbi4g DQo+IEZvciBDIHN0YW5kYXJkIHZpb2xhdGlvbiwgLXBlZGFudGljIHdpbGwgcmVwb3J0IHRoZW0u DQo+IEZvciBHQ0MgZXh0ZW5zaW9uLCB0aGUgY29ycmVzcG9uZGluZyB3YXJuaW5nIG1lc3NhZ2Ug c2hvdWxkIHJlcG9ydCB0aGVtLg0KPiANCj4gQW5kIGJvdGggc3VjaCB3YXJuaW5nIGNhbiBiZSBp c3N1ZWQgZWl0aGVyIGluIEZFIG9yIGluIE1pZGRsZSBlbmQuIA0KPiANCj4gSXMgdGhlIGFib3Zl IHVuZGVyc3RhbmQgY29ycmVjdD8NCj4gDQo+PiB3aGVyZWFzIHBlcm1pdHRpbmcgZmxleGlibGUg YXJyYXkgdXNlcyBpbiB0aGUgDQo+PiBtaWRkbGUgZW5kIHNob3VsZCBhbGxvdyBbMF0gYW5kIFsx XSB1bmRlciBzb21lIGNpcmN1bXN0YW5jZXMgKGRlcGVuZGluZyBvbiANCj4+IGNvbW1hbmQtbGlu ZSBvcHRpb25zKS4NCj4gDQo+PiANCj4+PiBCdXQ6DQo+Pj4gDQo+Pj4gc3RydWN0IGZsZXgwIHsg aW50IG47IGludCBkYXRhWzBdOyB9Ow0KPj4+IHN0cnVjdCBvdXRfZmxleF9lbmQwIHsgaW50IG07 IHN0cnVjdCBmbGV4MCBmbGV4X2RhdGE7IH07IA0KPj4+IHN0cnVjdCBvdXRlcl9mbGV4X2VuZDAg eyBpbnQgcDsgc3RydWN0IG91dF9mbGV4X2VuZDAgb3V0X2ZsZXhfZGF0YTsgfTsgDQo+Pj4gDQo+ Pj4gSW4gdGhlIGFib3ZlLCBvbmx5IOKAnGZsZXgw4oCdIGlzIGZsZXhpYmxlIHNpemVkIHR5cGUg YnkgZGVmYXVsdC4gDQo+Pj4gQnV0IOKAnG91dF9mbGV4X2VuZDDigJ0gYW5kIOKAnG91dF9mbGV4 X2VuZDDigJ0gYXJlIE5vdCBjb25zaWRlcmVkIGFzIGZsZXhpYmxlIHNpemVkIHR5cGUgYnkgZGVm YXVsdD8gDQo+PiANCj4+IEl0IHdvdWxkIGJlIE9LIChhbmQgSSdtIG5vdCBzYXlpbmcgaGVyZSB0 aGF0IHRoaXMgaXMgbmVjZXNzYXJpbHkgDQo+PiBkZXNpcmFibGUpLCBzaW5jZSB0aGF0J3MgYXQg dGhlIGVuZCBvZiBhbm90aGVyIHN0cnVjdHVyZSByYXRoZXIgdGhhbiBpbiANCj4+IHRoZSBtaWRk bGUsIHRvIGNvbnNpZGVyIHRoZW0gZmxleGlibGUgZm9yIHRoZSBwdXJwb3NlcyBvZiBjb2RlIGdl bmVyYXRpb24uDQo+IA0KPiBUaGlzIGlzIHRoZSBwYXJ0IEkgYW0gc3RpbGwgbm90IHZlcnkgY2xl YXIgYW5kIG5vdCBmZWVsIHZlcnkgY29tZm9ydGFibGU6DQo+IA0KPiBJbiB0aGUgZG9jdW1lbnRh dGlvbiBvbiBHQ0MgZXh0ZW5zaW9uIG9mIGVtYmVkZGluZyBzdHJ1Y3R1cmUgd2l0aCBmbGV4aWJs ZSBhcnJheSBtZW1iZXIgaW50byBhbm90aGVyIHN0cnVjdHVyZS91bmlvbiwgDQo+IA0KPiBTaG91 bGQgd2UgaW5jbHVkZSBbMF0sIFsxXSBhbmQgW25dIGNhc2VzIGFzIEdDQyBleHRlbnNpb24gYnkg ZGVmYXVsdD8gT3Igd2Ugb25seSBpbmNsdWRlIFtdIGZvciBuZXN0ZWQgc3RydWN0IGFzIGFuIGV4 dGVuc2lvbj8NCj4gDQo+IEZvciBleGFtcGxlOg0KPiANCj4gc3RydWN0IGZsZXgwICB7IGludCBs ZW5ndGg7IGNoYXIgZGF0YVswXTsgfTsNCj4gDQo+IHN0cnVjdCBvdXRfZmxleDAgeyBpbnQgbTsg c3RydWN0IGZsZXgwIGZsZXhfZGF0YTsgfTsNCj4gc3RydWN0IG91dF9mbGV4MF9taWQgIHsgIHN0 cnVjdCBmbGV4MCBmbGV4X2RhdGE7IGludCBtfTsNCj4gDQo+IFNob3VsZCB3ZSB0cmVhdCB0aGUg YWJvdmUgb3V0X2ZsZXgwLT5mbGV4X2RhdGEgYXMgZmxleGlibGUgYXJyYXkgYnkgZGVmYXVsdD8N Cj4gU2hvdWxkIHdlIGlzc3VlIHdhcm5pbmcgZm9yIHRoZSBhYm92ZSBvdXRfZmxleDlfbWlkIHdp dGggYSBuZXcgd2FybmluZyBvcHRpb24gLVdnbnUtdmFyaWFibGUtc2l6ZWQtdHlwZS1hdC1lbmQ/ DQo+IA0KPiBIb3cgYWJvdXQgdGhlIGZvbGxvd2luZzoNCj4gc3RydWN0IGZsZXgxICB7IGludCBs ZW5ndGg7IGNoYXIgZGF0YVsxXTsgfTsNCj4gDQo+IHN0cnVjdCBvdXRfZmxleDEgeyBpbnQgbTsg c3RydWN0IGZsZXgxIGZsZXhfZGF0YTsgfTsNCj4gc3RydWN0IG91dF9mbGV4MV9taWQgIHsgIHN0 cnVjdCBmbGV4MSBmbGV4X2RhdGE7IGludCBtfTsNCj4gDQo+IEFuZDoNCj4gc3RydWN0IGZsZXhu IHsgaW50IGxlbmd0aDsgY2hhciBkYXRhWzRdOyB9Ow0KPiANCj4gc3RydWN0IG91dF9mbGV4biB7 IGludCBtOyBzdHJ1Y3QgZmxleG4gZmxleF9kYXRhOyB9Ow0KPiBzdHJ1Y3Qgb3V0X2ZsZXhuX21p ZCAgeyAgc3RydWN0IGZsZXhuIGZsZXhfZGF0YTsgaW50IG19Ow0KPiANCj4gPz8/Pw0KPiANCg0K TW9yZSB0aG91Z2h0IG9uIHRoZSBhYm92ZToNCg0KSSB0aGluayB0aGF0IHdlIG5lZWQgdG8gYmUg bW9yZSBjYXJlZnVsIHdpdGggdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIEdDQyBleHRlbnNpb24g b24gZW1iZWRkaW5nIHN0cnVjdHVyZSB3aXRoIGZsZXhpYmxlIGFycmF5IG1lbWJlciBpbnRvIHRo ZSBlbmQgb2YgYW5vdGhlciBzdHJ1Y3R1cmUvdW5pb24uIA0KQXMgUmljaGFyZCBtZW50aW9uZWQg YmVmb3JlLCBkb2N1bWVudGF0aW9uIG1pZ2h0IGVuY291cmFnZSBwZW9wbGUgdG8gdXNlIGl04oCm DQoNClNvLCB0aGUgbWFqb3IgcXVlc3Rpb24gaGVyZSBpczoNCg0KIGluIGFkZGl0aW9uIHRvIHRo ZSBDOTkgc3RhbmRhcmQgZmxleGlibGUgYXJyYXkgbWVtYmVyIFsgXSwgc2hhbGwgd2UgaW5jbHVk ZSBbMF0sIFsxXSBvciBldmVuIFs0XSBpbnRvIHRoaXMgZXh0ZW5zaW9uLCBhbmQgdHJlYXQgdGhl IHN0cnVjdHVyZSB3aXRoIGEgdHJhaWxpbmcgWzBdLCBbMV0sIG9yIFs0XSBlbWJlZGRlZCBpbnRv IGFub3RoZXIgc3RydWN0dXJlL3VuaW9uIHN0aWxsIGFzIGZsZXhpYmxlLXNpemVkPw0KDQpJIHRo aW5rIHRoYXQgd2UgbWlnaHQgbmVlZCB0byBsaW1pdCB0aGlzIGV4dGVuc2lvbiBPTkxZIHRvIEM5 OSBzdGFuZGFyZCBGQU0gWyBdLiAgQWxsIG90aGVyIFswXSwgWzFdLCBvciBbNF0gc2hvdWxkIGJl IGV4Y2x1ZGVkIGZyb20gdGhpcyBleHRlbnNpb24uIFRoZSByZWFzb25zIGFyZToNCg0KMS4gVGhl IHJlYWwgdXNhZ2VzIG9mIHN1Y2ggR0NDIGV4dGVuc2lvbiAoZW1iZWRkaW5nIHN0cnVjdHVyZSB3 aXRoIEZBTSBpbnRvIGFub3RoZXIgc3RydWN0dXJlL3VuaW9uKSwgYXMgbXkgdW5kZXJzdGFuZGlu ZywgdGhlIG9sZCBnbGliY+KAmXMgPF9HX2NvbmZpZy5oPiAoaHR0cHM6Ly9nY2MuZ251Lm9yZy9s ZWdhY3ktbWwvZ2NjLXBhdGNoZXMvMjAwMi0wOC9tc2cwMTE0OS5odG1sKSwgYW5kIHRoZSBidWcg aHR0cHM6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTAxODMyLCBPTkxZ IGludm9sdmVkIEM5OSBzdGFuZGFyZCBGQU07DQoNCjIuIEVtYmVkZGluZyBhIHN0cnVjdHVyZSB3 aXRoIEM5OSBGQU0gW10gaW50byB0aGUgZW5kIG9mIGFub3RoZXIgc3RydWN0dXJlLCBhbmQgc3Rp bGwgdHJlYXQgaXQgZmxleGlibGUgc2l6ZWQgbWlnaHQgaGF2ZSBtb3JlIHVzYWdlcywgYW5kIGFz IGRpc2N1c3NlZCB3aXRoIEtlZXMsIGl0IG1pZ2h0IGJlIHJlYXNvbmFibGUgdG8gcHJvbW90ZSB0 aGlzIGludG8gYSAgQyBzdGFuZGFyZCBsYXRlciBpZiBuZWVkZWQuDQoNClNvLCBiYXNlZCBvbiB0 aGlzIGNvbnNpZGVyYXRpb24sIEkgdGhpbmsgSSBzaG91bGQgb25seSBkb2N1bWVudCB0aGUgZm9s bG93aW5nIGFzIEdDQyBleHRlbnNpb246DQoNCnN0cnVjdCBmbGV4ICB7IGludCBsZW5ndGg7IGNo YXIgZGF0YVsgXTsgfTsNCnN0cnVjdCBvdXRfZmxleCB7IGludCBtOyBzdHJ1Y3QgZmxleCBmbGV4 X2RhdGE7IH07DQoNCklzc3VlIHdhcm5pbmdzIGZvciB0aGUgZm9sbG93aW5nOiAod2hlbiB0aGUg c3RydWN0dXJlIGlzIG5vdCBhdCB0aGUgZW5kKQ0KDQpzdHJ1Y3Qgb3V0X2ZsZXhfbWlkICB7ICBz dHJ1Y3QgZmxleCBmbGV4X2RhdGE7IGludCBtfTsNCg0KDQpIb3dldmVyLCBmb3IgdGhlIHRyYWls aW5nIFswXSwgWzFdLCBvciBbNF0sIHdoZW4gc3VjaCBzdHJ1Y3R1cmUgZW1iZWRkZWQgaW50byB0 aGUgZW5kIG9mIGFub3RoZXIgc3RydWN0dXJlLCBXZSBzaG91bGQgTk9UIHRyZWF0IHRoZSBvdXRl ciBzdHJ1Y3R1cmUgYXMgZmxleGlibGUgc2l6ZWQuIA0KTG9naWNhbGx5LCB3ZSB3aWxsIE5PVCBp c3N1ZSB3YXJuaW5ncyB3aGVuIHN1Y2ggc3RydWN0dXJlIGlzIG5vdCBhdCB0aGUgZW5kLiANCg0K TGV0IG1lIGtub3cgaWYgeW91IGhhdmUgYW55IGNvbW1lbnQgb3Igc3VnZ2VzdGlvbnMuDQoNCnRo YW5rcy4NCg0KUWluZyANCj4gDQo+PiANCj4+IFdoYXQgbXVzdCBiZSBhdm9pZGVkIGlzIC1wZWRh bnRpYyBkaWFnbm9zdGljcyBmb3INCj4+IA0KPj4gc3RydWN0IGZsZXgxIHsgaW50IG47IGludCBk YXRhWzFdOyB9Ow0KPj4gc3RydWN0IG91dF9mbGV4X2VuZDEgeyBpbnQgbTsgc3RydWN0IGZsZXgx IGZsZXhfZGF0YTsgfTsNCj4+IA0KPj4gcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGNvbnNpZGVyZWQg ZmxleGlibGUgb3Igbm90LCBzaW5jZSB0aGF0J3MgY2xlYXJseSANCj4+IHZhbGlkIGluIHN0YW5k YXJkIEMuDQo+IFllcywgYWdyZWVkLg0KPiANCj4gVGhhbmtzLg0KPiANCj4gUWluZw0KPj4gDQo+ PiAtLSANCj4+IEpvc2VwaCBTLiBNeWVycw0KPj4gam9zZXBoQGNvZGVzb3VyY2VyeS5jb20NCg0K