From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id A53A53884C8E; Wed, 14 Dec 2022 14:50:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A53A53884C8E 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 (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2BEE4KRA027340; Wed, 14 Dec 2022 14:50: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=FdzadFa/oXFzbg6ov8+Whn1P89E5rPVQwC2K11MDez8=; b=I1B8NkuMvbM6N5XmyEnp2TIT1Kx7+GR+gVloBZmm9o+6PXqVQoECi6yPkxJu7Nlmm4tB qTkHBJtgU2h28GQcPHflk2LYccdW+wRW0nwru//rsOwUw2ZWYQhMIvjwrpgF10U3nGzt UhcKcJ/72uFrzx+bZy5EWsEiv0160ciw88bhjtby/R/Nd3LiwniIZ2/dXxMBl2oFZlef 3LUvQeKhUpK9sO8ewxERCfSLQTLZlhHXEn+waxKrI+7hsQtFQ/4oxhM1nndWwGQGI9vi krfWLHIpS1hEZDmTvwxLwTs5EahanQ0PDHt7weADlaL0uIvtT7mnS3OxIs3r4nnx+pri nA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3meyewadd8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 14 Dec 2022 14:50:01 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2BEECFUD018819; Wed, 14 Dec 2022 14:50:01 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3meyeq52m8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 14 Dec 2022 14:50:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DVq2I1dxxn5jqHuXKsYEVF9fJJMcJha2EK3F9qsos3J5i7Yl1k1lf9KH76Rre0JLog8lxoAhH5T0Vx683rLCGWbLtdu4Br1Uy3L4WA0r2S0lWYQbk4fs3iab42ZxWy9wyhbfENlZwS5TiMhfSKoYHUInxEsF+loUCA/T/yIdcjHWDLtAbrm5AgvjFlWdkdCvJwTsz5lkKx+v1mbepG9SYaeAkU45tPLmZTVxBkC4AI5lIfR2IixiLtRZJ051f3p5iVxBbbWceCCjB79ujHNUytvW/Mdbu/kUz/Gebw19hVvAXM9bN+QZ9BrLGVmiBwh4nJCgOFpojhq3z5g32IwEPQ== 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=FdzadFa/oXFzbg6ov8+Whn1P89E5rPVQwC2K11MDez8=; b=OMtGnk2DE1HSfLm4lydzYdwAHN7ucI+H3Nohdtjr+aoGfu2L/llWIBd70OjNRcpQJUMqIH42PZjtiOyT0VIehSVU+xfOpzoZbLc78AlGfNHvm/v/B4fM4DpLaTt7oIDDztSrDFzlh48xAoV/U/lElCvA8HTmlWugJbbpeEJTLCRwGB4eiqRWo6qchs7ufNCSS90oBMbfPWe64o/VxivyFmRe06os2UaUyTlAY4IFYrDAhfwWLJQl1AP1it4JhAtswXU7/rJvWjbtk2DuTkSq5AeeaJ5kPN+2pddwmRQE8xHuHCnk4ar6p/cbxBWvSK136mP6zK2z90Rhbiqc9gHU4A== 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=FdzadFa/oXFzbg6ov8+Whn1P89E5rPVQwC2K11MDez8=; b=yfbOSU6OB5VClARd/Hg5Ee6PMmypJCYiiuRMJjJu3/tqr+0TkalIeQoIfmtdxMbWkRV9J/e1KfifcScrfktaG2x1nTltAiouj6oyjPwfJeVssNU9sRxpyig7KQmKlp4fwtecwRt22Qdyx/h7AMXLpFS//K+Zi8NezM9N+U9ueDo= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by SJ0PR10MB4797.namprd10.prod.outlook.com (2603:10b6:a03:2d8::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.19; Wed, 14 Dec 2022 14:49:58 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::9423:79b3:c0dc:1113]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::9423:79b3:c0dc:1113%9]) with mapi id 15.20.5880.019; Wed, 14 Dec 2022 14:49:58 +0000 From: Qing Zhao To: Richard Biener CC: "joseph@codesourcery.com" , "gcc-patches@gcc.gnu.org" , "keescook@chromium.org" , "siddhesh@gcc.gnu.org" Subject: Re: Ping---[V3][PATCH 2/2] Add a new warning option -Wstrict-flex-arrays. Thread-Topic: Ping---[V3][PATCH 2/2] Add a new warning option -Wstrict-flex-arrays. Thread-Index: AQHZCY5sSXlMD9UupU2COKrkmjhESK5r+8aAgAEnFgCAAFUegIAAC5IA Date: Wed, 14 Dec 2022 14:49:57 +0000 Message-ID: <9E785657-48EA-47B3-8E3D-86CEA1EC70E6@oracle.com> References: <20221206161844.2397151-1-qing.zhao@oracle.com> In-Reply-To: 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_|SJ0PR10MB4797:EE_ x-ms-office365-filtering-correlation-id: b76596bc-505a-4541-c181-08dadde27877 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: svYdZpxGIj7b+OcfJ5zZqhZ9h/ZorQXZv9DpgBMpjYN6lQ5WWImhcGemdewVWrgyF8bCBKKdKG0keyt8EZ1ATGaGg0+58eBT8lhhY+6nk+BqOPDzTUMSui5i2LuwhtqstKQnIBt43w8BMwYzdj31VptsraoAUpIed4geMR0tvxBaaWRGhuoG5Pitp7NgRjMbhtj6kAgGfyzUOqR/Wl9+/3mLHB9vigiUBZTH11/OGuXMT+JthFlDB1HGSeTurZHJwmjlMLhPtX+639S1Mtyevhjk3KXb2gSki4Agyfv4qwUPzlURlHPSJbqli4A9HCWLMSxOG1n8te66phG23HUHmwA7abNJIqZpHg8wQeSEAGdOvmDS48rnAUzSNUZS5s29kZoSRxyrwpoNM1byP3gOj2lob+HDWRfj75w75gsYyR/ZWpWQFXvLnJNuO9R2TZ+7dAFyYOsuywFttxwOanfgoD8ZdWE1MpkZREJZz9/JSPp/Gxd6+70HGwQTD1/+0eBF7fo5cylnzmmXGxWSqJcTT1F+PCg/X6ddGJQ1w/9g7JffqIVXhGnTcGNIHuU5Ltt7IXS4HbCo6pHjLFEQm7EFRHqQl77X/y+szKDYEekZVG+TpNMLfPmH1407z+1T07+Ic/FIEi6b41h+7j5c8PU8j4uan6Zc8XcCHzPQe6RSIgmymUnXioi4J6VUITCUVXzhvtUYQUTRuzXj+C/Z/k4rf1WLndvlyBxCw72cYxb99Kef4p8ftdVmE/c4Aq2Sv+iYPdMtrbRAymEhFkBnLmFVP0HfepW07WFxDkyiys8OFYw= 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:(13230022)(366004)(39860400002)(136003)(346002)(376002)(396003)(451199015)(122000001)(2906002)(84970400001)(44832011)(38100700002)(36756003)(41300700001)(76116006)(53546011)(66476007)(6506007)(91956017)(38070700005)(86362001)(6512007)(54906003)(4326008)(8936002)(5660300002)(26005)(30864003)(316002)(6916009)(64756008)(66556008)(66946007)(66446008)(8676002)(478600001)(186003)(6486002)(83380400001)(33656002)(71200400001)(2616005)(45980500001)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aENLVWV0a2FBNVRxeHJ0NDVjT1EwWmVWaEM2TGNlL0JEWk5NYzhDclVZR01M?= =?utf-8?B?alR4N0ZpYWp5ZU94dXIrcnVlZkFYaERjTVNvUWsvVm5WbzdnQS92RUdsblRn?= =?utf-8?B?Qjh5M092Zlp0L0pNMlM4Y1Uyd3ZySUx0a0hISDh6WjdkdHFXQ280a2hHUktn?= =?utf-8?B?ZE4vQXhCU0NMUkYwS2ZLdjQ1czNYakVpenkwcGdVTktmYnZnc0hpOHJrUjJr?= =?utf-8?B?bUFZL29pczlvbjVlVG9WRUh3TjlHRWFVQ2E1alVuNDF0R2tlWTRNSlpxYUxR?= =?utf-8?B?RWtOZW5tS3dSbGdVUUZjU0JwWUVUeFlIcm5uOExLbnJaOHZMY0JDVldkYm5G?= =?utf-8?B?N2pKRmFReFhvdzlKZ0RXZERCQ0JzR1N0TUpvVGJ3VE9mL0dUZThlRkl5ZU5v?= =?utf-8?B?K3kxLzdKTEM1WmhPK0EyR1UxUk9STGIrVVIyMFhVeVFvU0t1bDlLeTQ5SXZs?= =?utf-8?B?ZjJoMUNXanN2cFR5V0lqZGt5TEJ0dWtBTFk0WVBucnRYdm5GRFZpbTJLS2lD?= =?utf-8?B?VkhtZTNsWEZlaCt0Y0tsMVZsNXN0cFAyeFF4WVp2YWllbTRNem5DOGJNMm5h?= =?utf-8?B?MFBVNndINU83a29ZeXRZZU1qQ29jY1RURTNDMWtCaDlYRFFFZHJlU2pKMW5Q?= =?utf-8?B?d3R4Z3RpRUs4RDUvZmNXQ0hxY2NNWFoxYmhEb216Y1MrcVYweENwVVVPRDVQ?= =?utf-8?B?WnduOUxNdmZkaHZSdlBObnVpb085b2RlOFp2Zmh5TEZIaHI2QWNVQWRyNGZX?= =?utf-8?B?QUpxU0prN0FLSFJKbXgyZWhvRGtQemZUM01JVmdzY1dOWDRIeVlKQ1M4UGNI?= =?utf-8?B?WUNua0pOcFpsWG5XRVlmMTZHTHdNVEhrWkRuQ3JNSVRWMU4vNkNjN1dTMGxV?= =?utf-8?B?bFNHRXVueE8yRDlabURkRnNNQnRYR2VINHQyenlvNVpkTGs0d2piWVNiWUsz?= =?utf-8?B?dE05MERqVEEvUzB1cGs3RDRDU0FLcTVTakt6c0Iza1RZcDQ2WGw0Sm5oOGtS?= =?utf-8?B?VVd6OWZLYWxlaG5YNTFTM0dubXd1cS9rT2FXMW5vSE4ySHJyZllUcGJXeEhP?= =?utf-8?B?Qi96RmpXVHFkcG9GckdZYTNYbkovVDNHbVZra0g1dGFMNzRKQkcvNTR0U1ZT?= =?utf-8?B?ZTl2bVU1Q0p3Nm54cFBYZUVyWmZZbC9BZHpnbnB4LzRUZlVsMDRYS1k1ckMr?= =?utf-8?B?bHd1ZWw3Y0pZVXMwVWVyUlh3d3NCZUlQcE1FNWo4L3owcEVFYVYvSGlGSExH?= =?utf-8?B?bXBnamxwQk1KNlJPcTJRNHRuU3BkbUhjNG5HRFJzYXZnR2pGM1h0U3JpbWhs?= =?utf-8?B?RThLZWZNNjJvaEhoc2o5TUNUTU5kVGVxUU9LMzg5Sk41YkRKY2pTdTMxZEJN?= =?utf-8?B?UURyL1FUVWExWG9ld2pYUnR1SzI1WUNIZmJZTy9nMnFwK2svSklyRmk4M1N2?= =?utf-8?B?ZUJEaFFackxvS0VjSkV4RUZqaVBybE5kcG92ais4c0U4MTN0ampvQmh5ZTc1?= =?utf-8?B?ZTkzcWhqNlFHM3g0RHZVZVVCMm14VGlscVB1YmJsSFZyTXRrMm1pcTU4dzJH?= =?utf-8?B?WUk3cGUraDk4QjJ6RGJSek1Md3pBY0ZuVk9mTjh3cUIxbStWOHgvS21FNXJW?= =?utf-8?B?WDdoVnVLSGF1U0VzdFZFTVpPUGdGMUdQSnFUQVdwNmMyZTdDY0dmdkd5TTdF?= =?utf-8?B?SjkzbDJMYklxdGZnNWdhbnFVd3NXMzZjUWZ5Z1k2UGtLVHRlUVUrSyswRUsx?= =?utf-8?B?WjkxUnROMUpFVnhuNEpqSkpFRTdZUWdITS8vRGFxT3JHUTJldDA5bE5xcFNW?= =?utf-8?B?WmFWSmpPVTZhWlBMbzFCK0hRZ2cyWFBmL200Mys4T0lDek4vSXU1QlMvWjVz?= =?utf-8?B?dXY5c2N3blhxSnhCRzgyZkg2SW9MVlI3aXM5MTlEY2hnYmdORXNTVTZBRkFH?= =?utf-8?B?ZXpqTnpwckpxK3RVVEIrRCtZdHBUZzFnMXp4T1lxVHUrUC95YkI5ejJtSWhS?= =?utf-8?B?aC9qc20zbEw1dFZwenpyczl0WGoxTE4vTjNIdjdqYWF0T0JMR09KQTFZZWNy?= =?utf-8?B?MmFqcFcyNGttMDZNekppcmZ0SE1LWWRnNmw4a1Z4b01NYkFhTVErUXNlK2Ny?= =?utf-8?Q?dn2HM0QL4y/mpQtQtCO2eCDyN?= Content-Type: text/plain; charset="utf-8" Content-ID: <55ECBB72BCA05449B47BA87B98D759C8@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: b76596bc-505a-4541-c181-08dadde27877 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2022 14:49:57.9182 (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: rtC3uTcU3NwEL5Rbs0HfocqQjbNJlv8nmItawOdNml7hObAYO/NOZkGzTbmVi/z2NSJM+fE+5RAOzpqRJ1zY3A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4797 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-14_06,2022-12-14_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 mlxscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2212140118 X-Proofpoint-GUID: WhDbqqY_lLNuajdVe-SqA5JKwy2930rL X-Proofpoint-ORIG-GUID: WhDbqqY_lLNuajdVe-SqA5JKwy2930rL X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,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: DQoNCj4gT24gRGVjIDE0LCAyMDIyLCBhdCA5OjA4IEFNLCBRaW5nIFpoYW8gdmlhIEdjYy1wYXRj aGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4gd3JvdGU6DQo+IA0KPiANCj4gDQo+PiBPbiBE ZWMgMTQsIDIwMjIsIGF0IDQ6MDMgQU0sIFJpY2hhcmQgQmllbmVyIDxyZ3VlbnRoZXJAc3VzZS5k ZT4gd3JvdGU6DQo+PiANCj4+IE9uIFR1ZSwgMTMgRGVjIDIwMjIsIFFpbmcgWmhhbyB3cm90ZToN Cj4+IA0KPj4+IFJpY2hhcmQsIA0KPj4+IA0KPj4+IERvIHlvdSBoYXZlIGFueSBkZWNpc2lvbiBv biB0aGlzIG9uZT8gDQo+Pj4gRG8gd2UgbmVlZCB0aGlzIHdhcm5pbmcgb3B0aW9uIEZvciBHQ0M/ IA0KPj4gDQo+PiBMb29raW5nIGF0IHRoZSB0ZXN0Y2FzZXMgaXQgc2VlbXMgdGhhdCB0aGUgZGlh Z25vc3RpYyBhbWVuZHMNCj4+IC1XYXJyYXktYm91bmRzIGRpYWdub3N0aWNzIGZvciB0cmFpbGlu ZyBidXQgbm90IGZsZXhpYmxlIGFycmF5cz8NCj4gDQo+IFllcy4NCj4gDQo+PiBXb3VsZG4ndCBp dCBiZSBiZXR0ZXIgdG8gZ2VuZXJhbGx5IGRpYWdub3NlIHRoaXMsIHNvIGhhdmUNCj4+IC1XYXJy YXktYm91bmRzLCB3aXRoIC1mc3RyaWN0LWZsZXgtYXJyYXlzLCBmb3INCj4+IA0KPj4gc3RydWN0 IFggeyBpbnQgYVsxXTsgfTsNCj4+IGludCBmb28gKHN0cnVjdCBYICpwKQ0KPj4gew0KPj4gcmV0 dXJuIHAtPmFbMV07DQo+PiB9DQo+PiANCj4+IGVtaXQNCj4+IA0KPj4gd2FybmluZzogYXJyYXkg c3Vic2NyaXB0IDEgaXMgYWJvdmUgYXJyYXkgYm91bmRzIC4uLg0KPj4gbm90ZTogdGhlIHRyYWls aW5nIGFycmF5IGlzIG9ubHkgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgd2l0aCANCj4+IC1mbm8t c3RyaWN0LWZsZXgtYXJyYXlzDQo+IA0KPiBUaGlzIGlzIGdvb2QgdG9vLg0KPiBNeSBvbmx5IGNv bmNlcm4gd2l0aCBkb2luZyB0aGlzIGlzLCB0aGUgZGVmYXVsdCB3YXJuaW5nIG1lc3NhZ2VzIG9m IC1XYXJyYXktYm91bmRzIHdvdWxkIGJlIGRpZmZlcmVudCB0aGFuDQo+IHRoZSBjdXJyZW50IG9u ZXMsIHdpbGwgdGhpcyBoYXZlIGFueSBpbXBhY3Qgb24gdGhlIGN1cnJlbnQgdXNlcnM/DQoNCk15 IGJhZCwgdGhlIGRlZmF1bHQgd2FybmluZyBtZXNzYWdlIG9mIC1XYXJyYXktYm91bmRzIHdpdGhv dXQgLWZzdHJpY3QtZmxleC1hcnJheXMgc2hvdWxkIG5vdCBiZSBjaGFuZ2VkLg0KT25seSB3aGVu IC1mc3RyaWN0LWZsZXgtYXJyYXlzPU4gKE4+MCksIHRoZSB3YXJuaW5nIG1lc3NhZ2VzIG9mIC1X YXJyYXktYm91bmRzIHdpbGwgYmUgZGlmZmVyZW50IHRoYW4gdGhlIGN1cnJlbnQgb25lLg0KVGhp cyBzaG91bGQgYmUgZmluZS4NCj4gDQo+PiANCj4+ID8gIEhhdmluZyAtV3N0cmljdC1mbGV4LWFy cmF5cz1OIGFuZCBOIG5vdCBhZ3JlZSB3aXRoIHRoZQ0KPj4gLWZzdHJpY3QtZmxleC1hcnJheXMg bGV2ZWwgc291bmRzIGhhcmRseSB1c2VmdWwgdG8gbWUgYnV0IHRoZQ0KPj4gaW5mb3JtYXRpb24g dGhhdCB3ZSByYW4gaW50byBhIHRyYWlsaW5nIGFycmF5IGJ1dCBkaWRuJ3QgY29uc2lkZXINCj4+ IGl0IGEgZmxleCBhcnJheSBiZWNhdXNlIG9mIC1mc3RyaWN0LWZsZXgtYXJyYXlzIGlzIGFsd2F5 cyBhDQo+PiB1c2VmdWwgaW5mb3JtYXRpb24/DQo+IA0KPiAtV3N0cmljdC1mbGV4LWFycmF5cyBk b2VzIE5PVCBoYXZlIHRoZSBhcmd1bWVudCDigJxO4oCdLiAgSXRzIGxldmVsIHdpbGwgYmUgY29u c2lzdGVudCB3aXRoIHRoZSBsZXZlbCDigJxO4oCdIG9mIHRoZSBjb3JyZXNwb25kaW5nDQo+IC1m c3RyaWN0LWZsZXgtYXJyYXk9Ti4gIA0KPiAtV3N0cmljdC1mbGV4LWFycmF5cyBvcHRpb24gaXMg b25seSB2YWxpZCB3aGVuIC1mc3RyaWN0LWZsZXgtYXJyYXlzIGlzIHByZXNlbnQsIGl0IHdpbGwg cmVwb3J0IGFueSBtaXN1c2Ugb2YgdHJlYXRpbmcgdHJhaWxpbmcgYXJyYXkgDQo+IGFzIGZsZXhp YmxlIGFycmF5IGF0IHRoZSBMRVZFTCBvZiAtZnN0cmljdC1mbGV4LWFycmF5cy4gDQo+IA0KPiBM ZXQgbWUga25vdyBpZiBpdCBpcyBzdGlsbCBub3QgdmVyeSBjbGVhci4NCj4gDQo+IHRoYW5rcy4N Cj4gDQo+IFFpbmcNCj4+IA0KPj4gQnV0IG1heWJlIEkgbWlzdW5kZXJzdG9vZCB0aGlzIG5ldyBk aWFnbm9zdGljPw0KPj4gDQo+PiBUaGFua3MsDQo+PiBSaWNoYXJkLg0KPj4gDQo+PiANCj4+PiB0 aGFua3MuDQo+Pj4gDQo+Pj4gUWluZw0KPj4+IA0KPj4+PiBPbiBEZWMgNiwgMjAyMiwgYXQgMTE6 MTggQU0sIFFpbmcgWmhhbyA8cWluZy56aGFvQG9yYWNsZS5jb20+IHdyb3RlOg0KPj4+PiANCj4+ Pj4gJy1Xc3RyaWN0LWZsZXgtYXJyYXlzJw0KPj4+PiAgIFdhcm4gYWJvdXQgaW5wcm9wZXIgdXNh Z2VzIG9mIGZsZXhpYmxlIGFycmF5IG1lbWJlcnMgYWNjb3JkaW5nIHRvDQo+Pj4+ICAgdGhlIExF VkVMIG9mIHRoZSAnc3RyaWN0X2ZsZXhfYXJyYXkgKExFVkVMKScgYXR0cmlidXRlIGF0dGFjaGVk IHRvDQo+Pj4+ICAgdGhlIHRyYWlsaW5nIGFycmF5IGZpZWxkIG9mIGEgc3RydWN0dXJlIGlmIGl0 J3MgYXZhaWxhYmxlLA0KPj4+PiAgIG90aGVyd2lzZSBhY2NvcmRpbmcgdG8gdGhlIExFVkVMIG9m IHRoZSBvcHRpb24NCj4+Pj4gICAnLWZzdHJpY3QtZmxleC1hcnJheXM9TEVWRUwnLg0KPj4+PiAN Cj4+Pj4gICBUaGlzIG9wdGlvbiBpcyBlZmZlY3RpdmUgb25seSB3aGVuIExFVkVMIGlzIGJpZ2dl ciB0aGFuIDAuDQo+Pj4+ICAgT3RoZXJ3aXNlLCBpdCB3aWxsIGJlIGlnbm9yZWQgd2l0aCBhIHdh cm5pbmcuDQo+Pj4+IA0KPj4+PiAgIHdoZW4gTEVWRUw9MSwgd2FybmluZ3Mgd2lsbCBiZSBpc3N1 ZWQgZm9yIGEgdHJhaWxpbmcgYXJyYXkNCj4+Pj4gICByZWZlcmVuY2Ugb2YgYSBzdHJ1Y3R1cmUg dGhhdCBoYXZlIDIgb3IgbW9yZSBlbGVtZW50cyBpZiB0aGUNCj4+Pj4gICB0cmFpbGluZyBhcnJh eSBpcyByZWZlcmVuY2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyLg0KPj4+PiANCj4+Pj4g ICB3aGVuIExFVkVMPTIsIGluIGFkZGl0aW9uIHRvIExFVkVMPTEsIGFkZGl0aW9uYWwgd2Fybmlu Z3Mgd2lsbCBiZQ0KPj4+PiAgIGlzc3VlZCBmb3IgYSB0cmFpbGluZyBvbmUtZWxlbWVudCBhcnJh eSByZWZlcmVuY2Ugb2YgYSBzdHJ1Y3R1cmUgaWYNCj4+Pj4gICB0aGUgYXJyYXkgaXMgcmVmZXJl bmNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlci4NCj4+Pj4gDQo+Pj4+ICAgd2hlbiBMRVZF TD0zLCBpbiBhZGRpdGlvbiB0byBMRVZFTD0yLCBhZGRpdGlvbmFsIHdhcm5pbmdzIHdpbGwgYmUN Cj4+Pj4gICBpc3N1ZWQgZm9yIGEgdHJhaWxpbmcgemVyby1sZW5ndGggYXJyYXkgcmVmZXJlbmNl IG9mIGEgc3RydWN0dXJlIGlmDQo+Pj4+ICAgdGhlIGFycmF5IGlzIHJlZmVyZW5jZWQgYXMgYSBm bGV4aWJsZSBhcnJheSBtZW1iZXIuDQo+Pj4+IA0KPj4+PiBnY2MvQ2hhbmdlTG9nOg0KPj4+PiAN Cj4+Pj4gCSogZG9jL2ludm9rZS50ZXhpOiBEb2N1bWVudCAtV3N0cmljdC1mbGV4LWFycmF5cyBv cHRpb24uDQo+Pj4+IAkqIGdpbXBsZS1hcnJheS1ib3VuZHMuY2MgKGNoZWNrX291dF9vZl9ib3Vu ZHNfYW5kX3dhcm4pOiBBZGQgdHdvIG1vcmUNCj4+Pj4gCWFyZ3VtZW50cy4NCj4+Pj4gCShhcnJh eV9ib3VuZHNfY2hlY2tlcjo6Y2hlY2tfYXJyYXlfcmVmKTogSXNzdWUgd2FybmluZ3MgZm9yDQo+ Pj4+IAktV3N0cmljdC1mbGV4LWFycmF5cy4NCj4+Pj4gCSogb3B0cy5jYyAoZmluaXNoX29wdGlv bnMpOiBJc3N1ZSB3YXJuaW5nIGZvciB1bnN1cHBvcnRlZCBjb21iaW5hdGlvbg0KPj4+PiAJb2Yg LVdzdHJpY3RfZmxleF9hcnJheXMgYW5kIC1mc3RyaWN0LWZsZXgtYXJyYXkuDQo+Pj4+IAkqIHRy ZWUtdnJwLmNjIChleGVjdXRlX3Jhbmdlcl92cnApOiBFbmFibGUgdGhlIHBhc3Mgd2hlbg0KPj4+ PiAJd2Fybl9zdHJpY3RfZmxleF9hcnJheSBpcyB0cnVlLg0KPj4+PiANCj4+Pj4gZ2NjL2MtZmFt aWx5L0NoYW5nZUxvZzoNCj4+Pj4gDQo+Pj4+IAkqIGMub3B0IChXc3RyaWN0LWZsZXgtYXJyYXlz KTogTmV3IG9wdGlvbi4NCj4+Pj4gDQo+Pj4+IGdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0KPj4+ PiANCj4+Pj4gCSogZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMS5jOiBVcGRhdGUg dGVzdGluZyBjYXNlIHdpdGgNCj4+Pj4gCS1Xc3RyaWN0LWZsZXgtYXJyYXlzLg0KPj4+PiAJKiBn Y2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0yLmM6IExpa2V3aXNlLg0KPj4+PiAJKiBn Y2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0zLmM6IExpa2V3aXNlLg0KPj4+PiAJKiBn Y2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy00LmM6IExpa2V3aXNlLg0KPj4+PiAJKiBn Y2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy01LmM6IExpa2V3aXNlLg0KPj4+PiAJKiBn Y2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy02LmM6IExpa2V3aXNlLg0KPj4+PiAJKiBj LWMrKy1jb21tb24vV3N0cmljdC1mbGV4LWFycmF5cy5jOiBOZXcgdGVzdC4NCj4+Pj4gCSogZ2Nj LmRnL1dzdHJpY3QtZmxleC1hcnJheXMtMi5jOiBOZXcgdGVzdC4NCj4+Pj4gCSogZ2NjLmRnL1dz dHJpY3QtZmxleC1hcnJheXMtMy5jOiBOZXcgdGVzdC4NCj4+Pj4gCSogZ2NjLmRnL1dzdHJpY3Qt ZmxleC1hcnJheXMuYzogTmV3IHRlc3QuDQo+Pj4+IC0tLQ0KPj4+PiBnY2MvYy1mYW1pbHkvYy5v cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKw0KPj4+PiBnY2MvZG9jL2ludm9r ZS50ZXhpICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjcgKysrKy0NCj4+Pj4gZ2NjL2dp bXBsZS1hcnJheS1ib3VuZHMuY2MgICAgICAgICAgICAgICAgICAgIHwgMTAzICsrKysrKysrKysr KysrLS0tLQ0KPj4+PiBnY2Mvb3B0cy5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDggKysNCj4+Pj4gLi4uL2MtYysrLWNvbW1vbi9Xc3RyaWN0LWZsZXgtYXJyYXlzLmMg ICAgICAgIHwgICA5ICsrDQo+Pj4+IC4uLi9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5 cy0xLmMgICAgICB8ICAgNSArLQ0KPj4+PiAuLi4vZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1h cnJheXMtMi5jICAgICAgfCAgIDYgKy0NCj4+Pj4gLi4uL2djYy5kZy9XYXJyYXktYm91bmRzLWZs ZXgtYXJyYXlzLTMuYyAgICAgIHwgICA3ICstDQo+Pj4+IC4uLi9nY2MuZGcvV2FycmF5LWJvdW5k cy1mbGV4LWFycmF5cy00LmMgICAgICB8ICAgNSArLQ0KPj4+PiAuLi4vZ2NjLmRnL1dhcnJheS1i b3VuZHMtZmxleC1hcnJheXMtNS5jICAgICAgfCAgIDYgKy0NCj4+Pj4gLi4uL2djYy5kZy9XYXJy YXktYm91bmRzLWZsZXgtYXJyYXlzLTYuYyAgICAgIHwgICA3ICstDQo+Pj4+IGdjYy90ZXN0c3Vp dGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMtMi5jICB8ICAzOSArKysrKysrDQo+Pj4+IGdj Yy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMtMy5jICB8ICAzOSArKysrKysr DQo+Pj4+IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMuYyAgICB8ICAz OSArKysrKysrDQo+Pj4+IGdjYy90cmVlLXZycC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQ0KPj4+PiAxNSBmaWxlcyBjaGFuZ2VkLCAyNzMgaW5zZXJ0aW9ucygrKSwg MzQgZGVsZXRpb25zKC0pDQo+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2Mt YysrLWNvbW1vbi9Xc3RyaWN0LWZsZXgtYXJyYXlzLmMNCj4+Pj4gY3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMtMi5jDQo+Pj4+IGNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlzLTMu Yw0KPj4+PiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1m bGV4LWFycmF5cy5jDQo+Pj4+IA0KPj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL2MtZmFtaWx5L2Mub3B0 IGIvZ2NjL2MtZmFtaWx5L2Mub3B0DQo+Pj4+IGluZGV4IDBkMGFkMGE2Mzc0Li4zM2VkZWVmZDI4 NSAxMDA2NDQNCj4+Pj4gLS0tIGEvZ2NjL2MtZmFtaWx5L2Mub3B0DQo+Pj4+ICsrKyBiL2djYy9j LWZhbWlseS9jLm9wdA0KPj4+PiBAQCAtOTc2LDYgKzk3NiwxMSBAQCBXc3RyaW5nb3AtdHJ1bmNh dGlvbg0KPj4+PiBDIE9iakMgQysrIExUTyBPYmpDKysgVmFyKHdhcm5fc3RyaW5nb3BfdHJ1bmNh dGlvbikgV2FybmluZyBJbml0ICgxKSBMYW5nRW5hYmxlZEJ5KEMgT2JqQyBDKysgTFRPIE9iakMr KywgV2FsbCkNCj4+Pj4gV2FybiBhYm91dCB0cnVuY2F0aW9uIGluIHN0cmluZyBtYW5pcHVsYXRp b24gZnVuY3Rpb25zIGxpa2Ugc3RybmNhdCBhbmQgc3RybmNweS4NCj4+Pj4gDQo+Pj4+ICtXc3Ry aWN0LWZsZXgtYXJyYXlzDQo+Pj4+ICtDIEMrKyBWYXIod2Fybl9zdHJpY3RfZmxleF9hcnJheXMp IFdhcm5pbmcNCj4+Pj4gK1dhcm4gYWJvdXQgaW5wcm9wZXIgdXNhZ2VzIG9mIGZsZXhpYmxlIGFy cmF5IG1lbWJlcnMNCj4+Pj4gK2FjY29yZGluZyB0byB0aGUgbGV2ZWwgb2YgLWZzdHJpY3QtZmxl eC1hcnJheXMuDQo+Pj4+ICsNCj4+Pj4gV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdA0KPj4+PiBD IE9iakMgQysrIE9iakMrKyBWYXIod2Fybl9zdWdnZXN0X2F0dHJpYnV0ZV9mb3JtYXQpIFdhcm5p bmcNCj4+Pj4gV2FybiBhYm91dCBmdW5jdGlvbnMgd2hpY2ggbWlnaHQgYmUgY2FuZGlkYXRlcyBm b3IgZm9ybWF0IGF0dHJpYnV0ZXMuDQo+Pj4+IGRpZmYgLS1naXQgYS9nY2MvZG9jL2ludm9rZS50 ZXhpIGIvZ2NjL2RvYy9pbnZva2UudGV4aQ0KPj4+PiBpbmRleCA3MjYzOTI0MDliNi4uNDQwMmIw NDI3ZWYgMTAwNjQ0DQo+Pj4+IC0tLSBhL2djYy9kb2MvaW52b2tlLnRleGkNCj4+Pj4gKysrIGIv Z2NjL2RvYy9pbnZva2UudGV4aQ0KPj4+PiBAQCAtMzk4LDcgKzM5OCw3IEBAIE9iamVjdGl2ZS1D IGFuZCBPYmplY3RpdmUtQysrIERpYWxlY3RzfS4NCj4+Pj4gLVdzdHJpY3QtYWxpYXNpbmc9biAg LVdzdHJpY3Qtb3ZlcmZsb3cgIC1Xc3RyaWN0LW92ZXJmbG93PUB2YXJ7bn0gQGdvbA0KPj4+PiAt V3N0cmluZy1jb21wYXJlIEBnb2wNCj4+Pj4gLVduby1zdHJpbmdvcC1vdmVyZmxvdyAtV25vLXN0 cmluZ29wLW92ZXJyZWFkIEBnb2wNCj4+Pj4gLS1Xbm8tc3RyaW5nb3AtdHJ1bmNhdGlvbiBAZ29s DQo+Pj4+ICstV25vLXN0cmluZ29wLXRydW5jYXRpb24gLVdzdHJpY3QtZmxleC1hcnJheXMgQGdv bA0KPj4+PiAtV3N1Z2dlc3QtYXR0cmlidXRlPUBye1t9cHVyZUBye3x9Y29uc3RAcnt8fW5vcmV0 dXJuQHJ7fH1mb3JtYXRAcnt8fW1hbGxvY0Bye119IEBnb2wNCj4+Pj4gLVdzd2l0Y2ggIC1Xbm8t c3dpdGNoLWJvb2wgIC1Xc3dpdGNoLWRlZmF1bHQgIC1Xc3dpdGNoLWVudW0gQGdvbA0KPj4+PiAt V25vLXN3aXRjaC1vdXRzaWRlLXJhbmdlICAtV25vLXN3aXRjaC11bnJlYWNoYWJsZSAgLVdzeW5j LW5hbmQgQGdvbA0KPj4+PiBAQCAtNzgzNSw2ICs3ODM1LDMxIEBAIGhvd2V2ZXIsIGFyZSBub3Qg c3VpdGFibGUgYXJndW1lbnRzIHRvIGZ1bmN0aW9ucyB0aGF0IGV4cGVjdA0KPj4+PiBzdWNoIGFy cmF5cyBHQ0MgaXNzdWVzIHdhcm5pbmdzIHVubGVzcyBpdCBjYW4gcHJvdmUgdGhhdCB0aGUgdXNl IGlzDQo+Pj4+IHNhZmUuICBAeHJlZntDb21tb24gVmFyaWFibGUgQXR0cmlidXRlc30uDQo+Pj4+ IA0KPj4+PiArQGl0ZW0gLVdzdHJpY3QtZmxleC1hcnJheXMNCj4+Pj4gK0BvcGluZGV4IFdzdHJp Y3QtZmxleC1hcnJheXMNCj4+Pj4gK0BvcGluZGV4IFduby1zdHJpY3QtZmxleC1hcnJheXMNCj4+ Pj4gK1dhcm4gYWJvdXQgaW5wcm9wZXIgdXNhZ2VzIG9mIGZsZXhpYmxlIGFycmF5IG1lbWJlcnMN Cj4+Pj4gK2FjY29yZGluZyB0byB0aGUgQHZhcntsZXZlbH0gb2YgdGhlIEBjb2Rle3N0cmljdF9m bGV4X2FycmF5IChAdmFye2xldmVsfSl9DQo+Pj4+ICthdHRyaWJ1dGUgYXR0YWNoZWQgdG8gdGhl IHRyYWlsaW5nIGFycmF5IGZpZWxkIG9mIGEgc3RydWN0dXJlIGlmIGl0J3MNCj4+Pj4gK2F2YWls YWJsZSwgb3RoZXJ3aXNlIGFjY29yZGluZyB0byB0aGUgQHZhcntsZXZlbH0gb2YgdGhlIG9wdGlv bg0KPj4+PiArQG9wdGlvbnstZnN0cmljdC1mbGV4LWFycmF5cz1AdmFye2xldmVsfX0uDQo+Pj4+ ICsNCj4+Pj4gK1RoaXMgb3B0aW9uIGlzIGVmZmVjdGl2ZSBvbmx5IHdoZW4gQHZhcntsZXZlbH0g aXMgYmlnZ2VyIHRoYW4gMC4gIE90aGVyd2lzZSwNCj4+Pj4gK2l0IHdpbGwgYmUgaWdub3JlZCB3 aXRoIGEgd2FybmluZy4NCj4+Pj4gKw0KPj4+PiArd2hlbiBAdmFye2xldmVsfT0xLCB3YXJuaW5n cyB3aWxsIGJlIGlzc3VlZCBmb3IgYSB0cmFpbGluZyBhcnJheSByZWZlcmVuY2UNCj4+Pj4gK29m IGEgc3RydWN0dXJlIHRoYXQgaGF2ZSAyIG9yIG1vcmUgZWxlbWVudHMgaWYgdGhlIHRyYWlsaW5n IGFycmF5IGlzIHJlZmVyZW5jZWQNCj4+Pj4gK2FzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyLg0K Pj4+PiArDQo+Pj4+ICt3aGVuIEB2YXJ7bGV2ZWx9PTIsIGluIGFkZGl0aW9uIHRvIEB2YXJ7bGV2 ZWx9PTEsIGFkZGl0aW9uYWwgd2FybmluZ3Mgd2lsbCBiZQ0KPj4+PiAraXNzdWVkIGZvciBhIHRy YWlsaW5nIG9uZS1lbGVtZW50IGFycmF5IHJlZmVyZW5jZSBvZiBhIHN0cnVjdHVyZQ0KPj4+PiAr aWYgdGhlIGFycmF5IGlzIHJlZmVyZW5jZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIuDQo+ Pj4+ICsNCj4+Pj4gK3doZW4gQHZhcntsZXZlbH09MywgaW4gYWRkaXRpb24gdG8gQHZhcntsZXZl bH09MiwgYWRkaXRpb25hbCB3YXJuaW5ncyB3aWxsIGJlDQo+Pj4+ICtpc3N1ZWQgZm9yIGEgdHJh aWxpbmcgemVyby1sZW5ndGggYXJyYXkgcmVmZXJlbmNlIG9mIGEgc3RydWN0dXJlDQo+Pj4+ICtp ZiB0aGUgYXJyYXkgaXMgcmVmZXJlbmNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlci4NCj4+ Pj4gKw0KPj4+PiArDQo+Pj4+IEBpdGVtIC1Xc3VnZ2VzdC1hdHRyaWJ1dGU9QHJ7W31wdXJlQHJ7 fH1jb25zdEBye3x9bm9yZXR1cm5Acnt8fWZvcm1hdEBye3x9Y29sZEBye3x9bWFsbG9jQHJ7XX0N Cj4+Pj4gQG9waW5kZXggV3N1Z2dlc3QtYXR0cmlidXRlPQ0KPj4+PiBAb3BpbmRleCBXbm8tc3Vn Z2VzdC1hdHRyaWJ1dGU9DQo+Pj4+IGRpZmYgLS1naXQgYS9nY2MvZ2ltcGxlLWFycmF5LWJvdW5k cy5jYyBiL2djYy9naW1wbGUtYXJyYXktYm91bmRzLmNjDQo+Pj4+IGluZGV4IGRiMzQ1OWFmMzI1 Li44MjVmMTEzMzFiNSAxMDA2NDQNCj4+Pj4gLS0tIGEvZ2NjL2dpbXBsZS1hcnJheS1ib3VuZHMu Y2MNCj4+Pj4gKysrIGIvZ2NjL2dpbXBsZS1hcnJheS1ib3VuZHMuY2MNCj4+Pj4gQEAgLTI1Miwy NSArMjUyLDM0IEBAIGdldF91cF9ib3VuZHNfZm9yX2FycmF5X3JlZiAodHJlZSByZWYsIHRyZWUg KmRlY2wsDQo+Pj4+IA0KPj4+PiAvKiBHaXZlbiB0aGUgTE9XX1NVQl9PUkcsIExPV19TVUIgYW5k IFVQX1NVQiwgYW5kIHRoZSBjb21wdXRlZCBVUF9CT1VORA0KPj4+PiAgYW5kIFVQX0JPVU5EX1Ax LCBjaGVjayB3aGV0aGVyIHRoZSBhcnJheSByZWZlcmVuY2UgUkVGIGlzIG91dCBvZiBib3VuZC4N Cj4+Pj4gLSAgIElzc3VlIHdhcm5pbmdzIGlmIG91dCBvZiBib3VuZCwgcmV0dXJuIFRSVUUgaWYg d2FybmluZ3MgYXJlIGlzc3VlZC4gICovIA0KPj4+PiArICAgV2hlbiBvdXQgb2YgYm91bmRzLCBz ZXQgT1VUX09GX0JPVU5EIHRvIHRydWUuDQo+Pj4+ICsgICBJc3N1ZSB3YXJuaW5ncyBpZiBGT1Jf QVJSQVlfQk9VTkQgaXMgdHJ1ZS4NCj4+Pj4gKyAgIHJldHVybiBUUlVFIGlmIHdhcm5pbmdzIGFy ZSBpc3N1ZWQuICAqLw0KPj4+PiArDQo+Pj4+IA0KPj4+PiBzdGF0aWMgYm9vbA0KPj4+PiBjaGVj a19vdXRfb2ZfYm91bmRzX2FuZF93YXJuIChsb2NhdGlvbl90IGxvY2F0aW9uLCB0cmVlIHJlZiwN Cj4+Pj4gCQkJICAgICAgdHJlZSBsb3dfc3ViX29yZywgdHJlZSBsb3dfc3ViLCB0cmVlIHVwX3N1 YiwNCj4+Pj4gCQkJICAgICAgdHJlZSB1cF9ib3VuZCwgdHJlZSB1cF9ib3VuZF9wMSwNCj4+Pj4g CQkJICAgICAgY29uc3QgdmFsdWVfcmFuZ2UgKnZyLA0KPj4+PiAtCQkJICAgICAgYm9vbCBpZ25v cmVfb2ZmX2J5X29uZSkNCj4+Pj4gKwkJCSAgICAgIGJvb2wgaWdub3JlX29mZl9ieV9vbmUsIGJv b2wgZm9yX2FycmF5X2JvdW5kLA0KPj4+PiArCQkJICAgICAgYm9vbCAqb3V0X29mX2JvdW5kKQ0K Pj4+PiB7DQo+Pj4+IHRyZWUgbG93X2JvdW5kID0gYXJyYXlfcmVmX2xvd19ib3VuZCAocmVmKTsN Cj4+Pj4gdHJlZSBhcnR5cGUgPSBUUkVFX1RZUEUgKFRSRUVfT1BFUkFORCAocmVmLCAwKSk7DQo+ Pj4+IA0KPj4+PiBib29sIHdhcm5lZCA9IGZhbHNlOw0KPj4+PiArICAqb3V0X29mX2JvdW5kID0g ZmFsc2U7DQo+Pj4+IA0KPj4+PiAvKiBFbXB0eSBhcnJheS4gICovDQo+Pj4+IGlmICh1cF9ib3Vu ZCAmJiB0cmVlX2ludF9jc3RfZXF1YWwgKGxvd19ib3VuZCwgdXBfYm91bmRfcDEpKQ0KPj4+PiAt ICAgIHdhcm5lZCA9IHdhcm5pbmdfYXQgKGxvY2F0aW9uLCBPUFRfV2FycmF5X2JvdW5kc18sDQo+ Pj4+IC0JCQkgImFycmF5IHN1YnNjcmlwdCAlRSBpcyBvdXRzaWRlIGFycmF5IGJvdW5kcyBvZiAl cVQiLA0KPj4+PiAtCQkJIGxvd19zdWJfb3JnLCBhcnR5cGUpOw0KPj4+PiArICAgIHsNCj4+Pj4g KyAgICAgICpvdXRfb2ZfYm91bmQgPSB0cnVlOw0KPj4+PiArICAgICAgaWYgKGZvcl9hcnJheV9i b3VuZCkNCj4+Pj4gKwl3YXJuZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlvbiwgT1BUX1dhcnJheV9i b3VuZHNfLA0KPj4+PiArCQkJICAgICAiYXJyYXkgc3Vic2NyaXB0ICVFIGlzIG91dHNpZGUgYXJy YXkiDQo+Pj4+ICsJCQkgICAgICIgYm91bmRzIG9mICVxVCIsIGxvd19zdWJfb3JnLCBhcnR5cGUp Ow0KPj4+PiArICAgIH0NCj4+Pj4gDQo+Pj4+IGlmICh3YXJuZWQpDQo+Pj4+ICAgOyAvKiBEbyBu b3RoaW5nLiAgKi8NCj4+Pj4gQEAgLTI4MywyNCArMjkyLDMzIEBAIGNoZWNrX291dF9vZl9ib3Vu ZHNfYW5kX3dhcm4gKGxvY2F0aW9uX3QgbG9jYXRpb24sIHRyZWUgcmVmLA0KPj4+PiAJICAgICAg OiB0cmVlX2ludF9jc3RfbGUgKHVwX2JvdW5kLCB1cF9zdWIpKQ0KPj4+PiAJICAmJiBUUkVFX0NP REUgKGxvd19zdWIpID09IElOVEVHRVJfQ1NUDQo+Pj4+IAkgICYmIHRyZWVfaW50X2NzdF9sZSAo bG93X3N1YiwgbG93X2JvdW5kKSkNCj4+Pj4gLQl3YXJuZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlv biwgT1BUX1dhcnJheV9ib3VuZHNfLA0KPj4+PiAtCQkJICAgICAiYXJyYXkgc3Vic2NyaXB0IFsl RSwgJUVdIGlzIG91dHNpZGUgIg0KPj4+PiAtCQkJICAgICAiYXJyYXkgYm91bmRzIG9mICVxVCIs DQo+Pj4+IC0JCQkgICAgIGxvd19zdWIsIHVwX3N1YiwgYXJ0eXBlKTsNCj4+Pj4gKwl7DQo+Pj4+ ICsJICAqb3V0X29mX2JvdW5kID0gdHJ1ZTsNCj4+Pj4gKwkgIHdhcm5lZCA9IHdhcm5pbmdfYXQg KGxvY2F0aW9uLCBPUFRfV2FycmF5X2JvdW5kc18sDQo+Pj4+ICsJCQkgICAgICAgImFycmF5IHN1 YnNjcmlwdCBbJUUsICVFXSBpcyBvdXRzaWRlICINCj4+Pj4gKwkJCSAgICAgICAiYXJyYXkgYm91 bmRzIG9mICVxVCIsDQo+Pj4+ICsJCQkgICAgICAgbG93X3N1YiwgdXBfc3ViLCBhcnR5cGUpOw0K Pj4+PiArCX0NCj4+Pj4gICB9DQo+Pj4+IGVsc2UgaWYgKHVwX2JvdW5kDQo+Pj4+IAkgICAmJiBU UkVFX0NPREUgKHVwX3N1YikgPT0gSU5URUdFUl9DU1QNCj4+Pj4gCSAgICYmIChpZ25vcmVfb2Zm X2J5X29uZQ0KPj4+PiAJICAgICAgID8gIXRyZWVfaW50X2NzdF9sZSAodXBfc3ViLCB1cF9ib3Vu ZF9wMSkNCj4+Pj4gCSAgICAgICA6ICF0cmVlX2ludF9jc3RfbGUgKHVwX3N1YiwgdXBfYm91bmQp KSkNCj4+Pj4gLSAgICB3YXJuZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlvbiwgT1BUX1dhcnJheV9i b3VuZHNfLA0KPj4+PiAtCQkJICJhcnJheSBzdWJzY3JpcHQgJUUgaXMgYWJvdmUgYXJyYXkgYm91 bmRzIG9mICVxVCIsDQo+Pj4+IC0JCQkgdXBfc3ViLCBhcnR5cGUpOw0KPj4+PiArICAgIHsNCj4+ Pj4gKyAgICAgICpvdXRfb2ZfYm91bmQgPSB0cnVlOw0KPj4+PiArICAgICAgd2FybmVkID0gd2Fy bmluZ19hdCAobG9jYXRpb24sIE9QVF9XYXJyYXlfYm91bmRzXywNCj4+Pj4gKwkJCSAgICJhcnJh eSBzdWJzY3JpcHQgJUUgaXMgYWJvdmUgYXJyYXkgYm91bmRzIG9mICVxVCIsDQo+Pj4+ICsJCQkg ICB1cF9zdWIsIGFydHlwZSk7DQo+Pj4+ICsgICAgfQ0KPj4+PiBlbHNlIGlmIChUUkVFX0NPREUg KGxvd19zdWIpID09IElOVEVHRVJfQ1NUDQo+Pj4+IAkgICAmJiB0cmVlX2ludF9jc3RfbHQgKGxv d19zdWIsIGxvd19ib3VuZCkpDQo+Pj4+IC0gICAgd2FybmVkID0gd2FybmluZ19hdCAobG9jYXRp b24sIE9QVF9XYXJyYXlfYm91bmRzXywNCj4+Pj4gLQkJCSAiYXJyYXkgc3Vic2NyaXB0ICVFIGlz IGJlbG93IGFycmF5IGJvdW5kcyBvZiAlcVQiLA0KPj4+PiAtCQkJIGxvd19zdWIsIGFydHlwZSk7 DQo+Pj4+ICsgICAgew0KPj4+PiArICAgICAgKm91dF9vZl9ib3VuZCA9IHRydWU7DQo+Pj4+ICsg ICAgICB3YXJuZWQgPSB3YXJuaW5nX2F0IChsb2NhdGlvbiwgT1BUX1dhcnJheV9ib3VuZHNfLA0K Pj4+PiArCQkJICAgImFycmF5IHN1YnNjcmlwdCAlRSBpcyBiZWxvdyBhcnJheSBib3VuZHMgb2Yg JXFUIiwNCj4+Pj4gKwkJCSAgIGxvd19zdWIsIGFydHlwZSk7DQo+Pj4+ICsgICAgfQ0KPj4+PiBy ZXR1cm4gd2FybmVkOw0KPj4+PiB9DQo+Pj4+IA0KPj4+PiBAQCAtMzMzLDE0ICszNTEsMjEgQEAg YXJyYXlfYm91bmRzX2NoZWNrZXI6OmNoZWNrX2FycmF5X3JlZiAobG9jYXRpb25fdCBsb2NhdGlv biwgdHJlZSByZWYsDQo+Pj4+IA0KPj4+PiB0cmVlIGFyZyA9IFRSRUVfT1BFUkFORCAocmVmLCAw KTsNCj4+Pj4gY29uc3QgYm9vbCBjb21wcmVmID0gVFJFRV9DT0RFIChhcmcpID09IENPTVBPTkVO VF9SRUY7DQo+Pj4+ICsgIHVuc2lnbmVkIGludCBzdHJpY3RfZmxleF9hcnJheV9sZXZlbCA9IGZs YWdfc3RyaWN0X2ZsZXhfYXJyYXlzOw0KPj4+PiANCj4+Pj4gaWYgKGNvbXByZWYpDQo+Pj4+IC0g ICAgLyogVHJ5IHRvIGRldGVybWluZSBzcGVjaWFsIGFycmF5IG1lbWJlciB0eXBlIGZvciB0aGlz IENPTVBPTkVOVF9SRUYuICAqLw0KPj4+PiAtICAgIHNhbSA9IGNvbXBvbmVudF9yZWZfc2FtX3R5 cGUgKGFyZyk7DQo+Pj4+ICsgICAgew0KPj4+PiArICAgICAgLyogVHJ5IHRvIGRldGVybWluZSBz cGVjaWFsIGFycmF5IG1lbWJlciB0eXBlIGZvciB0aGlzIENPTVBPTkVOVF9SRUYuICAqLw0KPj4+ PiArICAgICAgc2FtID0gY29tcG9uZW50X3JlZl9zYW1fdHlwZSAoYXJnKTsNCj4+Pj4gKyAgICAg IC8qIEdldCB0aGUgbGV2ZWwgb2Ygc3RyaWN0X2ZsZXhfYXJyYXkgZm9yIHRoaXMgYXJyYXkgZmll bGQuICAqLw0KPj4+PiArICAgICAgdHJlZSBhZmllbGRfZGVjbCA9IFRSRUVfT1BFUkFORCAoYXJn LCAxKTsNCj4+Pj4gKyAgICAgIHN0cmljdF9mbGV4X2FycmF5X2xldmVsID0gc3RyaWN0X2ZsZXhf YXJyYXlfbGV2ZWxfb2YgKGFmaWVsZF9kZWNsKTsNCj4+Pj4gKyAgICB9DQo+Pj4+IA0KPj4+PiBn ZXRfdXBfYm91bmRzX2Zvcl9hcnJheV9yZWYgKHJlZiwgJmRlY2wsICZ1cF9ib3VuZCwgJnVwX2Jv dW5kX3AxKTsNCj4+Pj4gDQo+Pj4+IGJvb2wgd2FybmVkID0gZmFsc2U7DQo+Pj4+ICsgIGJvb2wg b3V0X29mX2JvdW5kID0gZmFsc2U7DQo+Pj4+IA0KPj4+PiB0cmVlIGFydHlwZSA9IFRSRUVfVFlQ RSAoVFJFRV9PUEVSQU5EIChyZWYsIDApKTsNCj4+Pj4gdHJlZSBsb3dfc3ViX29yZyA9IFRSRUVf T1BFUkFORCAocmVmLCAxKTsNCj4+Pj4gQEAgLTM2MSw3ICszODYsOCBAQCBhcnJheV9ib3VuZHNf Y2hlY2tlcjo6Y2hlY2tfYXJyYXlfcmVmIChsb2NhdGlvbl90IGxvY2F0aW9uLCB0cmVlIHJlZiwN Cj4+Pj4gd2FybmVkID0gY2hlY2tfb3V0X29mX2JvdW5kc19hbmRfd2FybiAobG9jYXRpb24sIHJl ZiwNCj4+Pj4gCQkJCQkgbG93X3N1Yl9vcmcsIGxvd19zdWIsIHVwX3N1YiwNCj4+Pj4gCQkJCQkg dXBfYm91bmQsIHVwX2JvdW5kX3AxLCB2ciwNCj4+Pj4gLQkJCQkJIGlnbm9yZV9vZmZfYnlfb25l KTsNCj4+Pj4gKwkJCQkJIGlnbm9yZV9vZmZfYnlfb25lLCB3YXJuX2FycmF5X2JvdW5kcywNCj4+ Pj4gKwkJCQkJICZvdXRfb2ZfYm91bmQpOw0KPj4+PiANCj4+Pj4gDQo+Pj4+IGlmICghd2FybmVk ICYmIHNhbSA9PSBzcGVjaWFsX2FycmF5X21lbWJlcjo6aW50XzApDQo+Pj4+IEBAIC0zNzMsMTkg KzM5OSw1NiBAQCBhcnJheV9ib3VuZHNfY2hlY2tlcjo6Y2hlY2tfYXJyYXlfcmVmIChsb2NhdGlv bl90IGxvY2F0aW9uLCB0cmVlIHJlZiwNCj4+Pj4gCQkJICAgICAgICJvZiBhbiBpbnRlcmlvciB6 ZXJvLWxlbmd0aCBhcnJheSAlcVQiKSksDQo+Pj4+IAkJCSBsb3dfc3ViLCBhcnR5cGUpOw0KPj4+ PiANCj4+Pj4gLSAgaWYgKHdhcm5lZCkNCj4+Pj4gKyAgaWYgKHdhcm5lZCB8fCBvdXRfb2ZfYm91 bmQpDQo+Pj4+ICAgew0KPj4+PiAtICAgICAgaWYgKGR1bXBfZmlsZSAmJiAoZHVtcF9mbGFncyAm IFRERl9ERVRBSUxTKSkNCj4+Pj4gKyAgICAgIGlmICh3YXJuZWQgJiYgZHVtcF9maWxlICYmIChk dW1wX2ZsYWdzICYgVERGX0RFVEFJTFMpKQ0KPj4+PiAJew0KPj4+PiAJICBmcHJpbnRmIChkdW1w X2ZpbGUsICJBcnJheSBib3VuZCB3YXJuaW5nIGZvciAiKTsNCj4+Pj4gCSAgZHVtcF9nZW5lcmlj X2V4cHIgKE1TR19OT1RFLCBUREZfU0xJTSwgcmVmKTsNCj4+Pj4gCSAgZnByaW50ZiAoZHVtcF9m aWxlLCAiXG4iKTsNCj4+Pj4gCX0NCj4+Pj4gDQo+Pj4+ICsgICAgICAvKiBpc3N1ZSB3YXJuaW5n cyBmb3IgLVdzdHJpY3QtZmxleC1hcnJheXMgYWNjb3JkaW5nIHRvIHRoZSBsZXZlbCBvZg0KPj4+ PiArCSBmbGFnX3N0cmljdF9mbGV4X2FycmF5cy4gICovDQo+Pj4+ICsgICAgICBpZiAob3V0X29m X2JvdW5kICYmIHdhcm5fc3RyaWN0X2ZsZXhfYXJyYXlzKQ0KPj4+PiArICAgICAgc3dpdGNoIChz dHJpY3RfZmxleF9hcnJheV9sZXZlbCkNCj4+Pj4gKwl7DQo+Pj4+ICsJICBjYXNlIDM6DQo+Pj4+ ICsJICAgIC8qIElzc3VlIGFkZGl0aW9uYWwgd2FybmluZ3MgZm9yIHRyYWlsaW5nIGFycmF5cyBb MF0uICAqLw0KPj4+PiArCSAgICBpZiAoc2FtID09IHNwZWNpYWxfYXJyYXlfbWVtYmVyOjp0cmFp bF8wKQ0KPj4+PiArCSAgICAgIHdhcm5lZCA9IHdhcm5pbmdfYXQgKGxvY2F0aW9uLCBPUFRfV3N0 cmljdF9mbGV4X2FycmF5cywNCj4+Pj4gKwkJCQkgICAidHJhaWxpbmcgYXJyYXkgJXFUIHNob3Vs ZCBub3QgYmUgdXNlZCBhcyAiDQo+Pj4+ICsJCQkJICAgImEgZmxleGlibGUgYXJyYXkgbWVtYmVy IGZvciBsZXZlbCAzIiwNCj4+Pj4gKwkJCQkgICBhcnR5cGUpOw0KPj4+PiArCSAgICAvKiBGQUxM VEhST1VHSC4gICovDQo+Pj4+ICsJICBjYXNlIDI6DQo+Pj4+ICsJICAgIC8qIElzc3VlIGFkZGl0 aW9uYWwgd2FybmluZ3MgZm9yIHRyYWlsaW5nIGFycmF5cyBbMV0uICAqLw0KPj4+PiArCSAgICBp ZiAoc2FtID09IHNwZWNpYWxfYXJyYXlfbWVtYmVyOjp0cmFpbF8xKQ0KPj4+PiArCSAgICAgIHdh cm5lZCA9IHdhcm5pbmdfYXQgKGxvY2F0aW9uLCBPUFRfV3N0cmljdF9mbGV4X2FycmF5cywNCj4+ Pj4gKwkJCQkgICAidHJhaWxpbmcgYXJyYXkgJXFUIHNob3VsZCBub3QgYmUgdXNlZCBhcyAiDQo+ Pj4+ICsJCQkJICAgImEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAyIGFuZCAiDQo+ Pj4+ICsJCQkJICAgImFib3ZlIiwgYXJ0eXBlKTsNCj4+Pj4gKwkgICAgLyogRkFMTFRIUk9VR0gu ICAqLw0KPj4+PiArCSAgY2FzZSAxOg0KPj4+PiArCSAgICAvKiBJc3N1ZSB3YXJuaW5ncyBmb3Ig dHJhaWxpbmcgYXJyYXlzIFtuXS4gICovDQo+Pj4+ICsJICAgIGlmIChzYW0gPT0gc3BlY2lhbF9h cnJheV9tZW1iZXI6OnRyYWlsX24pDQo+Pj4+ICsJICAgICAgd2FybmVkID0gd2FybmluZ19hdCAo bG9jYXRpb24sIE9QVF9Xc3RyaWN0X2ZsZXhfYXJyYXlzLA0KPj4+PiArCQkJCSAgICJ0cmFpbGlu ZyBhcnJheSAlcVQgc2hvdWxkIG5vdCBiZSB1c2VkIGFzICINCj4+Pj4gKwkJCQkgICAiYSBmbGV4 aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDEgYW5kICINCj4+Pj4gKwkJCQkgICAiYWJvdmUi LCBhcnR5cGUpOw0KPj4+PiArCSAgICBicmVhazsNCj4+Pj4gKwkgIGNhc2UgMDoNCj4+Pj4gKwkg ICAgLyogRG8gbm90aGluZy4gICovDQo+Pj4+ICsJICAgIGJyZWFrOw0KPj4+PiArCSAgZGVmYXVs dDoNCj4+Pj4gKwkgICAgZ2NjX3VucmVhY2hhYmxlICgpOw0KPj4+PiArCX0NCj4+Pj4gKw0KPj4+ PiAgICAgLyogQXZvaWQgbW9yZSB3YXJuaW5ncyB3aGVuIGNoZWNraW5nIG1vcmUgc2lnbmlmaWNh bnQgc3Vic2NyaXB0cw0KPj4+PiAJIG9mIHRoZSBzYW1lIGV4cHJlc3Npb24uICAqLw0KPj4+PiAg ICAgcmVmID0gVFJFRV9PUEVSQU5EIChyZWYsIDApOw0KPj4+PiAgICAgc3VwcHJlc3Nfd2Fybmlu ZyAocmVmLCBPUFRfV2FycmF5X2JvdW5kc18pOw0KPj4+PiArICAgICAgc3VwcHJlc3Nfd2Fybmlu ZyAocmVmLCBPUFRfV3N0cmljdF9mbGV4X2FycmF5cyk7DQo+Pj4+IA0KPj4+PiAgICAgaWYgKGRl Y2wpDQo+Pj4+IAlyZWYgPSBkZWNsOw0KPj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL29wdHMuY2MgYi9n Y2Mvb3B0cy5jYw0KPj4+PiBpbmRleCA3M2ZjOTc3NTZlNC4uOGRiNTNhZDZjNzcgMTAwNjQ0DQo+ Pj4+IC0tLSBhL2djYy9vcHRzLmNjDQo+Pj4+ICsrKyBiL2djYy9vcHRzLmNjDQo+Pj4+IEBAIC0x NDExLDYgKzE0MTEsMTQgQEAgZmluaXNoX29wdGlvbnMgKHN0cnVjdCBnY2Nfb3B0aW9ucyAqb3B0 cywgc3RydWN0IGdjY19vcHRpb25zICpvcHRzX3NldCwNCj4+Pj4gICAgIG9wdHMtPnhfcHJvZmls ZV9mbGFnID0gMDsNCj4+Pj4gICB9DQo+Pj4+IA0KPj4+PiArICBpZiAob3B0cy0+eF93YXJuX3N0 cmljdF9mbGV4X2FycmF5cykNCj4+Pj4gKyAgICBpZiAob3B0cy0+eF9mbGFnX3N0cmljdF9mbGV4 X2FycmF5cyA9PSAwKQ0KPj4+PiArICAgICAgew0KPj4+PiArCW9wdHMtPnhfd2Fybl9zdHJpY3Rf ZmxleF9hcnJheXMgPSAwOw0KPj4+PiArCXdhcm5pbmdfYXQgKFVOS05PV05fTE9DQVRJT04sIDAs DQo+Pj4+ICsJCSAgICAiJTwtV3N0cmljdC1mbGV4LWFycmF5cyU+IGlzIGlnbm9yZWQgd2hlbiIN Cj4+Pj4gKwkJICAgICIgJTwtZnN0cmljdC1mbGV4LWFycmF5cyU+IGRvZXMgbm90IHByZXNlbnQi KTsNCj4+Pj4gKyAgICAgIH0NCj4+Pj4gDQo+Pj4+IGRpYWdub3NlX29wdGlvbnMgKG9wdHMsIG9w dHNfc2V0LCBsb2MpOw0KPj4+PiB9DQo+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2Mt YysrLWNvbW1vbi9Xc3RyaWN0LWZsZXgtYXJyYXlzLmMgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNv bW1vbi9Xc3RyaWN0LWZsZXgtYXJyYXlzLmMNCj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+ Pj4gaW5kZXggMDAwMDAwMDAwMDAuLjcyYjRiN2M2NDA2DQo+Pj4+IC0tLSAvZGV2L251bGwNCj4+ Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vV3N0cmljdC1mbGV4LWFycmF5cy5j DQo+Pj4+IEBAIC0wLDAgKzEsOSBAQA0KPj4+PiArLyogVGVzdCB0aGUgdXNhZ2Ugb2Ygb3B0aW9u IC1Xc3RyaWN0LWZsZXgtYXJyYXlzLiAgKi8NCj4+Pj4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICov DQo+Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4LWFycmF5cyIgfSAqLw0K Pj4+PiArDQo+Pj4+ICtpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQ0KPj4+PiArew0K Pj4+PiArICAgIHJldHVybiAwOw0KPj4+PiArfQ0KPj4+PiArLyogeyBkZy13YXJuaW5nICJpcyBp Z25vcmVkIHdoZW4gXCctZnN0cmljdC1mbGV4LWFycmF5c1wnIGRvZXMgbm90IHByZXNlbnQiICIi IHsgdGFyZ2V0ICotKi0qIH0gMCB9ICovDQo+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy5kZy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTEuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMS5jDQo+Pj4+IGluZGV4IGQzNmJhNGQ4NmNi Li42NWM5ZmVjNDNhZiAxMDA2NDQNCj4+Pj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2Fy cmF5LWJvdW5kcy1mbGV4LWFycmF5cy0xLmMNCj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0xLmMNCj4+Pj4gQEAgLTEsNiArMSw2IEBADQo+ Pj4+IC0vKiBUZXN0IC1mc3RyaWN0LWZsZXgtYXJyYXlzICsgLVdhcnJheS1ib3VuZHMuICAqLw0K Pj4+PiArLyogVGVzdCAtZnN0cmljdC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91bmRzICsgLVdz dHJpY3QtZmxleC1hcnJheXMuICAqLw0KPj4+PiAvKiB7IGRnLWRvIGNvbXBpbGV9ICovDQo+Pj4+ IC0vKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnN0cmljdC1mbGV4LWFycmF5cz0xIC1XYXJyYXktYm91 bmRzIiB9ICovDQo+Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4LWFycmF5 cyAtZnN0cmljdC1mbGV4LWFycmF5cz0xIC1XYXJyYXktYm91bmRzIiB9ICovDQo+Pj4+IA0KPj4+ PiBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMSB7DQo+Pj4+ICAgaW50IGE7DQo+Pj4+IEBAIC0zMiw2 ICszMiw3IEBAIHZvaWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9fKSkgc3R1ZmYoDQo+Pj4+ ICAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+IHsNCj4+Pj4g ICBub3JtYWwtPmNbNV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCA1IGlz IGFib3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAqLw0KPj4+PiArICAgIAkJCS8qeyBkZy13YXJuaW5n ICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVs IDEgYW5kIGFib3ZlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovDQo+Pj4+ICAgdHJhaWxp bmdfMS0+Y1syXSA9IDI7IC8qIHsgZGctYm9ndXMgImFycmF5IHN1YnNjcmlwdCAiIH0gKi8NCj4+ Pj4gICB0cmFpbGluZ18wLT5jWzFdID0gMTsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0 ICIgfSAqLw0KPj4+PiAgIHRyYWlsaW5nX2ZsZXgtPmNbMTBdID0gMTA7IC8qIHsgZGctYm9ndXMg ImFycmF5IHN1YnNjcmlwdCAiIH0gKi8NCj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLmRnL1dhcnJheS1ib3VuZHMtZmxleC1hcnJheXMtMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0yLmMNCj4+Pj4gaW5kZXggZjYzMjA2ZTE5NDgu LjJiNWE4OTVjNTk4IDEwMDY0NA0KPj4+PiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJy YXktYm91bmRzLWZsZXgtYXJyYXlzLTIuYw0KPj4+PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy5k Zy9XYXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTIuYw0KPj4+PiBAQCAtMSw2ICsxLDYgQEANCj4+ Pj4gLS8qIFRlc3QgLWZzdHJpY3QtZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcy4gICovDQo+ Pj4+ICsvKiBUZXN0IC1mc3RyaWN0LWZsZXgtYXJyYXlzICsgLVdhcnJheS1ib3VuZHMgKyAtV3N0 cmljdC1mbGV4LWFycmF5cy4gICovDQo+Pj4+IC8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+Pj4+ IC0vKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnN0cmljdC1mbGV4LWFycmF5cz0yIC1XYXJyYXktYm91 bmRzIiB9ICovDQo+Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4LWFycmF5 cyAtZnN0cmljdC1mbGV4LWFycmF5cz0yIC1XYXJyYXktYm91bmRzIiB9ICovDQo+Pj4+IA0KPj4+ PiBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMSB7DQo+Pj4+ICAgaW50IGE7DQo+Pj4+IEBAIC0zMiw3 ICszMiw5IEBAIHZvaWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9fKSkgc3R1ZmYoDQo+Pj4+ ICAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+IHsNCj4+Pj4g ICBub3JtYWwtPmNbNV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCA1IGlz IGFib3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAqLw0KPj4+PiArICAgIAkJCS8qeyBkZy13YXJuaW5n ICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVs IDEgYW5kIGFib3ZlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovDQo+Pj4+ICAgdHJhaWxp bmdfMS0+Y1syXSA9IDI7IC8qIHsgZGctd2FybmluZyAiYXJyYXkgc3Vic2NyaXB0IDIgaXMgYWJv dmUgYXJyYXkgYm91bmRzIG9mIiAgfSAqLw0KPj4+PiArICAgIAkJCSAgLyogeyBkZy13YXJuaW5n ICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVs IDIgYW5kIGFib3ZlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovDQo+Pj4+ICAgdHJhaWxp bmdfMC0+Y1sxXSA9IDE7IC8qIHsgZGctYm9ndXMgImFycmF5IHN1YnNjcmlwdCAiIH0gKi8NCj4+ Pj4gICB0cmFpbGluZ19mbGV4LT5jWzEwXSA9IDEwOyAvKiB7IGRnLWJvZ3VzICJhcnJheSBzdWJz Y3JpcHQgIiB9ICovDQo+Pj4+IA0KPj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5cy0zLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9X YXJyYXktYm91bmRzLWZsZXgtYXJyYXlzLTMuYw0KPj4+PiBpbmRleCBlMzI3MzcxNGU4Yi4uMjVi OTAzZjI2MTUgMTAwNjQ0DQo+Pj4+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1i b3VuZHMtZmxleC1hcnJheXMtMy5jDQo+Pj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dh cnJheS1ib3VuZHMtZmxleC1hcnJheXMtMy5jDQo+Pj4+IEBAIC0xLDYgKzEsNiBAQA0KPj4+PiAt LyogVGVzdCAtZnN0cmljdC1mbGV4LWFycmF5cyArIC1XYXJyYXktYm91bmRzLiAgKi8NCj4+Pj4g Ky8qIFRlc3QgLWZzdHJpY3QtZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcyArIC1Xc3RyaWN0 LWZsZXgtYXJyYXlzLiAgKi8NCj4+Pj4gLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+Pj4gLS8q IHsgZGctb3B0aW9ucyAiLU8yIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTMgLVdhcnJheS1ib3VuZHMi IH0gKi8NCj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1Xc3RyaWN0LWZsZXgtYXJyYXlzIC1m c3RyaWN0LWZsZXgtYXJyYXlzPTMgLVdhcnJheS1ib3VuZHMiIH0gKi8NCj4+Pj4gDQo+Pj4+IHN0 cnVjdCB0cmFpbGluZ19hcnJheV8xIHsNCj4+Pj4gICBpbnQgYTsNCj4+Pj4gQEAgLTMyLDggKzMy LDExIEBAIHZvaWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9fKSkgc3R1ZmYoDQo+Pj4+ICAg c3RydWN0IHRyYWlsaW5nX2FycmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+IHsNCj4+Pj4gICBu b3JtYWwtPmNbNV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCA1IGlzIGFi b3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAqLyANCj4+Pj4gKyAgICAJCQkvKnsgZGctd2FybmluZyAi c2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAx IGFuZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLw0KPj4+PiAgIHRyYWlsaW5n XzEtPmNbMl0gPSAyOyAvKnsgZGctd2FybmluZyAiYXJyYXkgc3Vic2NyaXB0IDIgaXMgYWJvdmUg YXJyYXkgYm91bmRzIG9mIiB9ICovIA0KPj4+PiArICAgIAkJCSAgLyogeyBkZy13YXJuaW5nICJz aG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDIg YW5kIGFib3ZlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovDQo+Pj4+ICAgdHJhaWxpbmdf MC0+Y1sxXSA9IDE7IC8qeyBkZy13YXJuaW5nICJhcnJheSBzdWJzY3JpcHQgMSBpcyBvdXRzaWRl IGFycmF5IGJvdW5kcyBvZiIgfSAqLyANCj4+Pj4gKyAgICAJCQkgIC8qIHsgZGctd2FybmluZyAi c2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAz IiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovDQo+Pj4+ICAgdHJhaWxpbmdfZmxleC0+Y1sx MF0gPSAxMDsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0IiB9ICovDQo+Pj4+IA0KPj4+ PiB9DQo+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRz LWZsZXgtYXJyYXlzLTQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJheS1ib3VuZHMtZmxl eC1hcnJheXMtNC5jDQo+Pj4+IGluZGV4IGNhYmFlYTc3ZGMyLi41ZmM1MDBhMTljYSAxMDA2NDQN Cj4+Pj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4LWFycmF5 cy00LmMNCj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJvdW5kcy1mbGV4 LWFycmF5cy00LmMNCj4+Pj4gQEAgLTEsNiArMSw2IEBADQo+Pj4+IC0vKiBUZXN0IC1mc3RyaWN0 LWZsZXgtYXJyYXlzICsgLVdhcnJheS1ib3VuZHM9Mi4gICovDQo+Pj4+ICsvKiBUZXN0IC1mc3Ry aWN0LWZsZXgtYXJyYXlzICsgLVdhcnJheS1ib3VuZHM9MiArIC1Xc3RyaWN0LWZsZXgtYXJyYXlz LiAgKi8NCj4+Pj4gLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+Pj4gLS8qIHsgZGctb3B0aW9u cyAiLU8yIC1mc3RyaWN0LWZsZXgtYXJyYXlzPTEgLVdhcnJheS1ib3VuZHM9MiIgfSAqLw0KPj4+ PiArLyogeyBkZy1vcHRpb25zICItTzIgLVdzdHJpY3QtZmxleC1hcnJheXMgLWZzdHJpY3QtZmxl eC1hcnJheXM9MSAtV2FycmF5LWJvdW5kcz0yIiB9ICovDQo+Pj4+IA0KPj4+PiBzdHJ1Y3QgdHJh aWxpbmdfYXJyYXlfMSB7DQo+Pj4+ICAgaW50IGE7DQo+Pj4+IEBAIC0zMiw2ICszMiw3IEBAIHZv aWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9fKSkgc3R1ZmYoDQo+Pj4+ICAgc3RydWN0IHRy YWlsaW5nX2FycmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+IHsNCj4+Pj4gICBub3JtYWwtPmNb NV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCA1IGlzIGFib3ZlIGFycmF5 IGJvdW5kcyBvZiIgfSAqLw0KPj4+PiArICAgIAkJCS8qeyBkZy13YXJuaW5nICJzaG91bGQgbm90 IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDEgYW5kIGFib3Zl IiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovDQo+Pj4+ICAgdHJhaWxpbmdfMS0+Y1syXSA9 IDI7IC8qIHsgZGctYm9ndXMgImFycmF5IHN1YnNjcmlwdCAiIH0gKi8NCj4+Pj4gICB0cmFpbGlu Z18wLT5jWzFdID0gMTsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0ICIgfSAqLw0KPj4+ PiAgIHRyYWlsaW5nX2ZsZXgtPmNbMTBdID0gMTA7IC8qIHsgZGctYm9ndXMgImFycmF5IHN1YnNj cmlwdCAiIH0gKi8NCj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dhcnJh eS1ib3VuZHMtZmxleC1hcnJheXMtNS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5LWJv dW5kcy1mbGV4LWFycmF5cy01LmMNCj4+Pj4gaW5kZXggOGI3ZGI2ZTRmMzkuLjMwYmI0Y2E4ODMy IDEwMDY0NA0KPj4+PiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRzLWZs ZXgtYXJyYXlzLTUuYw0KPj4+PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91 bmRzLWZsZXgtYXJyYXlzLTUuYw0KPj4+PiBAQCAtMSw2ICsxLDYgQEANCj4+Pj4gLS8qIFRlc3Qg LWZzdHJpY3QtZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcz0yLiAgKi8NCj4+Pj4gKy8qIFRl c3QgLWZzdHJpY3QtZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcz0yICsgLVdzdHJpY3QtZmxl eC1hcnJheXMuICAqLw0KPj4+PiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+PiAtLyogeyBk Zy1vcHRpb25zICItTzIgLWZzdHJpY3QtZmxleC1hcnJheXM9MiAtV2FycmF5LWJvdW5kcz0yIiB9 ICovDQo+Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4LWFycmF5cyAtZnN0 cmljdC1mbGV4LWFycmF5cz0yIC1XYXJyYXktYm91bmRzPTIiIH0gKi8NCj4+Pj4gDQo+Pj4+IHN0 cnVjdCB0cmFpbGluZ19hcnJheV8xIHsNCj4+Pj4gICBpbnQgYTsNCj4+Pj4gQEAgLTMyLDcgKzMy LDkgQEAgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX25vaW5saW5lX18pKSBzdHVmZigNCj4+Pj4gICBz dHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdfZmxleCkNCj4+Pj4gew0KPj4+PiAgIG5v cm1hbC0+Y1s1XSA9IDU7ICAgLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCA1IGlzIGFi b3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAqLw0KPj4+PiArICAgIAkJCS8qeyBkZy13YXJuaW5nICJz aG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDEg YW5kIGFib3ZlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovDQo+Pj4+ICAgdHJhaWxpbmdf MS0+Y1syXSA9IDI7IC8qeyBkZy13YXJuaW5nICJhcnJheSBzdWJzY3JpcHQgMiBpcyBhYm92ZSBh cnJheSBib3VuZHMgb2YiIH0gKi8NCj4+Pj4gKyAgICAJCQkgIC8qIHsgZGctd2FybmluZyAic2hv dWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAyIGFu ZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLw0KPj4+PiAgIHRyYWlsaW5nXzAt PmNbMV0gPSAxOyAvKiB7IGRnLWJvZ3VzICJhcnJheSBzdWJzY3JpcHQgIiB9ICovDQo+Pj4+ICAg dHJhaWxpbmdfZmxleC0+Y1sxMF0gPSAxMDsgLyogeyBkZy1ib2d1cyAiYXJyYXkgc3Vic2NyaXB0 ICIgfSAqLw0KPj4+PiANCj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dh cnJheS1ib3VuZHMtZmxleC1hcnJheXMtNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV2FycmF5 LWJvdW5kcy1mbGV4LWFycmF5cy02LmMNCj4+Pj4gaW5kZXggMDM1YmY0ODEzOTYuLmU4NDdhNDQ1 MTZlIDEwMDY0NA0KPj4+PiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXktYm91bmRz LWZsZXgtYXJyYXlzLTYuYw0KPj4+PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9XYXJyYXkt Ym91bmRzLWZsZXgtYXJyYXlzLTYuYw0KPj4+PiBAQCAtMSw2ICsxLDYgQEANCj4+Pj4gLS8qIFRl c3QgLWZzdHJpY3QtZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcz0yLiAgKi8NCj4+Pj4gKy8q IFRlc3QgLWZzdHJpY3QtZmxleC1hcnJheXMgKyAtV2FycmF5LWJvdW5kcz0yICsgLVdzdHJpY3Qt ZmxleC1hcnJheXMuICAqLw0KPj4+PiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+PiAtLyog eyBkZy1vcHRpb25zICItTzIgLWZzdHJpY3QtZmxleC1hcnJheXM9MyAtV2FycmF5LWJvdW5kcz0y IiB9ICovDQo+Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV3N0cmljdC1mbGV4LWFycmF5cyAt ZnN0cmljdC1mbGV4LWFycmF5cz0zIC1XYXJyYXktYm91bmRzPTIiIH0gKi8NCj4+Pj4gDQo+Pj4+ IHN0cnVjdCB0cmFpbGluZ19hcnJheV8xIHsNCj4+Pj4gICBpbnQgYTsNCj4+Pj4gQEAgLTMyLDgg KzMyLDExIEBAIHZvaWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9fKSkgc3R1ZmYoDQo+Pj4+ ICAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzQgKnRyYWlsaW5nX2ZsZXgpDQo+Pj4+IHsNCj4+Pj4g ICBub3JtYWwtPmNbNV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCA1IGlz IGFib3ZlIGFycmF5IGJvdW5kcyBvZiIgfSAqLyANCj4+Pj4gKyAgICAJCQkvKnsgZGctd2Fybmlu ZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZl bCAxIGFuZCBhYm92ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLw0KPj4+PiAgIHRyYWls aW5nXzEtPmNbMl0gPSAyOyAvKnsgZGctd2FybmluZyAiYXJyYXkgc3Vic2NyaXB0IDIgaXMgYWJv dmUgYXJyYXkgYm91bmRzIG9mIiB9ICovDQo+Pj4+ICsgICAgCQkJICAvKiB7IGRnLXdhcm5pbmcg InNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwg MiBhbmQgYWJvdmUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8NCj4+Pj4gICB0cmFpbGlu Z18wLT5jWzFdID0gMTsgLyp7IGRnLXdhcm5pbmcgImFycmF5IHN1YnNjcmlwdCAxIGlzIG91dHNp ZGUgYXJyYXkgYm91bmRzIG9mIiB9ICovDQo+Pj4+ICsgICAgCQkJICAvKiB7IGRnLXdhcm5pbmcg InNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwg MyIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLw0KPj4+PiAgIHRyYWlsaW5nX2ZsZXgtPmNb MTBdID0gMTA7IC8qIHsgZGctYm9ndXMgImFycmF5IHN1YnNjcmlwdCAiIH0gKi8NCj4+Pj4gDQo+ Pj4+IH0NCj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxl eC1hcnJheXMtMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFycmF5cy0y LmMNCj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+Pj4gaW5kZXggMDAwMDAwMDAwMDAuLjJl MjQxZjk2MjA4DQo+Pj4+IC0tLSAvZGV2L251bGwNCj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvV3N0cmljdC1mbGV4LWFycmF5cy0yLmMNCj4+Pj4gQEAgLTAsMCArMSwzOSBAQA0KPj4+ PiArLyogVGVzdCAtV3N0cmljdC1mbGV4LWFycmF5cy4gICovDQo+Pj4+ICsvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLw0KPj4+PiArLyogeyBkZy1vcHRpb25zICItTzIgLVdzdHJpY3QtZmxleC1hcnJh eXMgLWZzdHJpY3QtZmxleC1hcnJheXM9MiIgfSAqLw0KPj4+PiArDQo+Pj4+ICtzdHJ1Y3QgdHJh aWxpbmdfYXJyYXlfMSB7DQo+Pj4+ICsgICAgaW50IGE7DQo+Pj4+ICsgICAgaW50IGI7DQo+Pj4+ ICsgICAgaW50IGNbNF07IA0KPj4+PiArfTsNCj4+Pj4gKw0KPj4+PiArc3RydWN0IHRyYWlsaW5n X2FycmF5XzIgew0KPj4+PiArICAgIGludCBhOw0KPj4+PiArICAgIGludCBiOw0KPj4+PiArICAg IGludCBjWzFdOyANCj4+Pj4gK307DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCB0cmFpbGluZ19hcnJh eV8zIHsNCj4+Pj4gKyAgICBpbnQgYTsNCj4+Pj4gKyAgICBpbnQgYjsNCj4+Pj4gKyAgICBpbnQg Y1swXTsNCj4+Pj4gK307DQo+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCB7DQo+Pj4+ICsg ICAgaW50IGE7DQo+Pj4+ICsgICAgaW50IGI7DQo+Pj4+ICsgICAgaW50IGNbXTsNCj4+Pj4gK307 DQo+Pj4+ICsNCj4+Pj4gK3ZvaWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9fKSkgc3R1ZmYo DQo+Pj4+ICsgICAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzEgKm5vcm1hbCwNCj4+Pj4gKyAgICBz dHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMiAqdHJhaWxpbmdfMSwNCj4+Pj4gKyAgICBzdHJ1Y3QgdHJh aWxpbmdfYXJyYXlfMyAqdHJhaWxpbmdfMCwNCj4+Pj4gKyAgICBzdHJ1Y3QgdHJhaWxpbmdfYXJy YXlfNCAqdHJhaWxpbmdfZmxleCkNCj4+Pj4gK3sNCj4+Pj4gKyAgICBub3JtYWwtPmNbNV0gPSA1 OyAJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBhcyBhIGZsZXhpYmxlIGFycmF5 IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiIH0gKi8NCj4+Pj4gKyAgICB0cmFpbGluZ18x LT5jWzJdID0gMjsgLyogeyBkZy13YXJuaW5nICJzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4 aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDIgYW5kIGFib3ZlIiB9ICovDQo+Pj4+ICsgICAg dHJhaWxpbmdfMC0+Y1sxXSA9IDE7IC8qIHsgZGctYm9ndXMgInNob3VsZCBub3QgYmUgdXNlZCBh cyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMiBhbmQgYWJvdmUiIH0gKi8NCj4+ Pj4gKyAgICB0cmFpbGluZ19mbGV4LT5jWzEwXSA9IDEwOyAvKiB7IGRnLWJvZ3VzICJzaG91bGQg bm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDIgYW5kIGFi b3ZlIiB9ICovDQo+Pj4+ICsNCj4+Pj4gK30NCj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMtMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcv V3N0cmljdC1mbGV4LWFycmF5cy0zLmMNCj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+Pj4g aW5kZXggMDAwMDAwMDAwMDAuLjk3ZWI2NWJhMGE5DQo+Pj4+IC0tLSAvZGV2L251bGwNCj4+Pj4g KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvV3N0cmljdC1mbGV4LWFycmF5cy0zLmMNCj4+Pj4g QEAgLTAsMCArMSwzOSBAQA0KPj4+PiArLyogVGVzdCAtV3N0cmljdC1mbGV4LWFycmF5cy4gICov DQo+Pj4+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+PiArLyogeyBkZy1vcHRpb25zICIt TzIgLVdzdHJpY3QtZmxleC1hcnJheXMgLWZzdHJpY3QtZmxleC1hcnJheXM9MyIgfSAqLw0KPj4+ PiArDQo+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMSB7DQo+Pj4+ICsgICAgaW50IGE7DQo+ Pj4+ICsgICAgaW50IGI7DQo+Pj4+ICsgICAgaW50IGNbNF07IA0KPj4+PiArfTsNCj4+Pj4gKw0K Pj4+PiArc3RydWN0IHRyYWlsaW5nX2FycmF5XzIgew0KPj4+PiArICAgIGludCBhOw0KPj4+PiAr ICAgIGludCBiOw0KPj4+PiArICAgIGludCBjWzFdOyANCj4+Pj4gK307DQo+Pj4+ICsNCj4+Pj4g K3N0cnVjdCB0cmFpbGluZ19hcnJheV8zIHsNCj4+Pj4gKyAgICBpbnQgYTsNCj4+Pj4gKyAgICBp bnQgYjsNCj4+Pj4gKyAgICBpbnQgY1swXTsNCj4+Pj4gK307DQo+Pj4+ICtzdHJ1Y3QgdHJhaWxp bmdfYXJyYXlfNCB7DQo+Pj4+ICsgICAgaW50IGE7DQo+Pj4+ICsgICAgaW50IGI7DQo+Pj4+ICsg ICAgaW50IGNbXTsNCj4+Pj4gK307DQo+Pj4+ICsNCj4+Pj4gK3ZvaWQgX19hdHRyaWJ1dGVfXygo X19ub2lubGluZV9fKSkgc3R1ZmYoDQo+Pj4+ICsgICAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzEg Km5vcm1hbCwNCj4+Pj4gKyAgICBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMiAqdHJhaWxpbmdfMSwN Cj4+Pj4gKyAgICBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMyAqdHJhaWxpbmdfMCwNCj4+Pj4gKyAg ICBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdfZmxleCkNCj4+Pj4gK3sNCj4+Pj4g KyAgICBub3JtYWwtPmNbNV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNl ZCBhcyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiIH0gKi8N Cj4+Pj4gKyAgICB0cmFpbGluZ18xLT5jWzJdID0gMjsgLyogeyBkZy13YXJuaW5nICJzaG91bGQg bm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDIgYW5kIGFi b3ZlIiB9ICovDQo+Pj4+ICsgICAgdHJhaWxpbmdfMC0+Y1sxXSA9IDE7IC8qIHsgZGctd2Fybmlu ZyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZl bCAzIiB9ICovDQo+Pj4+ICsgICAgdHJhaWxpbmdfZmxleC0+Y1sxMF0gPSAxMDsgLyogeyBkZy1i b2d1cyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBs ZXZlbCAzIiB9ICovDQo+Pj4+ICsNCj4+Pj4gK30NCj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLmRnL1dzdHJpY3QtZmxleC1hcnJheXMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRn L1dzdHJpY3QtZmxleC1hcnJheXMuYw0KPj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4+PiBp bmRleCAwMDAwMDAwMDAwMC4uMTEwZmRjNzI3NzgNCj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+PiAr KysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9Xc3RyaWN0LWZsZXgtYXJyYXlzLmMNCj4+Pj4gQEAg LTAsMCArMSwzOSBAQA0KPj4+PiArLyogVGVzdCAtV3N0cmljdC1mbGV4LWFycmF5cy4gICovDQo+ Pj4+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+PiArLyogeyBkZy1vcHRpb25zICItTzIg LVdzdHJpY3QtZmxleC1hcnJheXMgLWZzdHJpY3QtZmxleC1hcnJheXM9MSIgfSAqLw0KPj4+PiAr DQo+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMSB7DQo+Pj4+ICsgICAgaW50IGE7DQo+Pj4+ ICsgICAgaW50IGI7DQo+Pj4+ICsgICAgaW50IGNbNF07IA0KPj4+PiArfTsNCj4+Pj4gKw0KPj4+ PiArc3RydWN0IHRyYWlsaW5nX2FycmF5XzIgew0KPj4+PiArICAgIGludCBhOw0KPj4+PiArICAg IGludCBiOw0KPj4+PiArICAgIGludCBjWzFdOyANCj4+Pj4gK307DQo+Pj4+ICsNCj4+Pj4gK3N0 cnVjdCB0cmFpbGluZ19hcnJheV8zIHsNCj4+Pj4gKyAgICBpbnQgYTsNCj4+Pj4gKyAgICBpbnQg YjsNCj4+Pj4gKyAgICBpbnQgY1swXTsNCj4+Pj4gK307DQo+Pj4+ICtzdHJ1Y3QgdHJhaWxpbmdf YXJyYXlfNCB7DQo+Pj4+ICsgICAgaW50IGE7DQo+Pj4+ICsgICAgaW50IGI7DQo+Pj4+ICsgICAg aW50IGNbXTsNCj4+Pj4gK307DQo+Pj4+ICsNCj4+Pj4gK3ZvaWQgX19hdHRyaWJ1dGVfXygoX19u b2lubGluZV9fKSkgc3R1ZmYoDQo+Pj4+ICsgICAgc3RydWN0IHRyYWlsaW5nX2FycmF5XzEgKm5v cm1hbCwNCj4+Pj4gKyAgICBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMiAqdHJhaWxpbmdfMSwNCj4+ Pj4gKyAgICBzdHJ1Y3QgdHJhaWxpbmdfYXJyYXlfMyAqdHJhaWxpbmdfMCwNCj4+Pj4gKyAgICBz dHJ1Y3QgdHJhaWxpbmdfYXJyYXlfNCAqdHJhaWxpbmdfZmxleCkNCj4+Pj4gK3sNCj4+Pj4gKyAg ICBub3JtYWwtPmNbNV0gPSA1OyAJLyp7IGRnLXdhcm5pbmcgInNob3VsZCBub3QgYmUgdXNlZCBh cyBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciBmb3IgbGV2ZWwgMSBhbmQgYWJvdmUiIH0gKi8NCj4+ Pj4gKyAgICB0cmFpbGluZ18xLT5jWzJdID0gMjsgLyogeyBkZy1ib2d1cyAic2hvdWxkIG5vdCBi ZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZvciBsZXZlbCAxIGFuZCBhYm92ZSIg fSAqLw0KPj4+PiArICAgIHRyYWlsaW5nXzAtPmNbMV0gPSAxOyAvKiB7IGRnLWJvZ3VzICJzaG91 bGQgbm90IGJlIHVzZWQgYXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGxldmVsIDEgYW5k IGFib3ZlIiB9ICovDQo+Pj4+ICsgICAgdHJhaWxpbmdfZmxleC0+Y1sxMF0gPSAxMDsgLyogeyBk Zy1ib2d1cyAic2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIGZv ciBsZXZlbCAxIGFuZCBhYm92ZSIgfSAqLw0KPj4+PiArDQo+Pj4+ICt9DQo+Pj4+IGRpZmYgLS1n aXQgYS9nY2MvdHJlZS12cnAuY2MgYi9nY2MvdHJlZS12cnAuY2MNCj4+Pj4gaW5kZXggMzg0NmRj MWQ4NDkuLmU2YzZjNWEzMDFkIDEwMDY0NA0KPj4+PiAtLS0gYS9nY2MvdHJlZS12cnAuY2MNCj4+ Pj4gKysrIGIvZ2NjL3RyZWUtdnJwLmNjDQo+Pj4+IEBAIC0xMDg3LDcgKzEwODcsNyBAQCBleGVj dXRlX3Jhbmdlcl92cnAgKHN0cnVjdCBmdW5jdGlvbiAqZnVuLCBib29sIHdhcm5fYXJyYXlfYm91 bmRzX3AsDQo+Pj4+IGlmIChkdW1wX2ZpbGUgJiYgKGR1bXBfZmxhZ3MgJiBUREZfREVUQUlMUykp DQo+Pj4+ICAgcmFuZ2VyLT5kdW1wIChkdW1wX2ZpbGUpOw0KPj4+PiANCj4+Pj4gLSAgaWYgKHdh cm5fYXJyYXlfYm91bmRzICYmIHdhcm5fYXJyYXlfYm91bmRzX3ApDQo+Pj4+ICsgIGlmICgod2Fy bl9hcnJheV9ib3VuZHMgfHwgd2Fybl9zdHJpY3RfZmxleF9hcnJheXMpICYmIHdhcm5fYXJyYXlf Ym91bmRzX3ApDQo+Pj4+ICAgew0KPj4+PiAgICAgLy8gU2V0IGFsbCBlZGdlcyBhcyBleGVjdXRh YmxlLCBleGNlcHQgdGhvc2UgcmFuZ2VyIHNheXMgYXJlbid0Lg0KPj4+PiAgICAgaW50IG5vbl9l eGVjX2ZsYWcgPSByYW5nZXItPm5vbl9leGVjdXRhYmxlX2VkZ2VfZmxhZzsNCj4+Pj4gLS0gDQo+ Pj4+IDIuMzEuMQ0KPj4+PiANCj4+PiANCj4+PiANCj4+IA0KPj4gLS0gDQo+PiBSaWNoYXJkIEJp ZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQo+PiBTVVNFIFNvZnR3YXJlIFNvbHV0aW9ucyBHZXJt YW55IEdtYkgsIEZyYW5rZW5zdHJhc3NlIDE0NiwgOTA0NjEgTnVlcm5iZXJnLA0KPj4gR2VybWFu eTsgR0Y6IEl2byBUb3RldiwgQW5kcmV3IE15ZXJzLCBBbmRyZXcgTWNEb25hbGQsIEJvdWRpZW4g TW9lcm1hbjsNCj4+IEhSQiAzNjgwOSAoQUcgTnVlcm5iZXJnKQ0KDQo=